|
Comments
Did you read today's front page stories & breaking news?
SYS-CON.TV
|
Service-Oriented Architecture Best Practices for Transition Planning
Taking control of SOA
By: Thomas Erl
Oct. 28, 2004 12:00 AM
Despite the magnitude of a migration to a service-oriented platform, the continuing uncertainty of critical WS-* standards, and the often thundering impact of large-scale SOA deployments, now is the time to start considering the move. The key to a successful transition is to find a spot of calm amidst the storm of activity surrounding SOA, and develop an intuitive plan that will guide your organization through a path of technical obstacles, organizational resistance, and ever-shifting industry trends. Count yourself lucky if you've had the foresight to coordinate your migration efforts around this type of plan. Many organizations stumble their way into the world of Web services and what they perceive to be SOA. This "inadvertent migration" is often the result of blindly adopting updates to established development tools and following the vendor's lead with regards to how the next generation of applications should be built this time around. The danger of allowing architecture to evolve in this manner is that you never attain a sufficient level of control over the underlying technology. Little or none of your environments become standardized, and new product platforms further entrench layers of proprietary technology. One of the core benefits of SOA is its ability to unify previously disparate environments. In planning a migration to a standardized adoption of SOA you therefore have an opportunity to erase some of the neglect from the past. Web services and the vendor-neutral communications framework they establish can bridge disparity and unify interoperability on both data representation and messaging levels. SOA fully leverages this framework by introducing standard service design characteristics that foster interoperability between services, solutions, and organizations. The potential upside is obviously significant, and well worth the battle that lies ahead in achieving this transition. Your best defense against the potential disruptions, costs, and risks that can follow SOA into an organization is the creation of an SOA Transition Plan. This article provides a set of best practices that will assist you in preparing for and developing such a plan. Define SOA Within Your Own Organization Without a clear vision of what SOA is in the abstract, you will be in no position to contribute to or even assess the merits of a transition plan. This is because the core of the plan will need to consist of a high-level design in which you define how and to what extent SOA will become part of your organization. This definition will then become the ultimate goal of your migration effort, followed by detailed technical designs, organization processes, and strategic decisions that will be determined in support of this goal. Invest in an Impact Analysis Before Developing the Transition Plan SOA's reach is broad. Hence the scope of this report may exceed what you are accustomed to associating with a traditional impact analysis. Specifically, this type of research effort tends to include in-depth assessments of current and upcoming development tools, infrastructure requirements, skill-set and training requirements, proposed new middleware, changes to organizational processes, changes to security models and policies, and a list of recommendations associated with architecture, custom standards, and project management approaches. Keep in mind that if you decide to postpone your transition, much of this analysis work may lose its value. While SOA design principles will remain relatively static, a great deal of the underlying technology will continue to evolve and change. Even a delay of one year will require a significant re-analysis. On the other hand, if you do decide to proceed with a transition now, this upfront analysis effort will have already laid the groundwork for your project. (However, if you are planning a long-term migration, re-analysis may still be required, and should be a task scheduled as part of the plan.) Set the Scope of the Transition Setting the scope of your migration pretty much determines the structure and size of your plan. The scope also dictates a great many parts of your plan's deliverables, including the amount of new technology introduced, the extent to which existing organizational processes are modified, the number of new or revised standards required, and the migration model that is chosen. The use of a migration model, such as the Layered Scope Model, is highly advisable, as it provides you with a customizable template for building project phases around specific migration milestones. Change the Project Team's Mindset One of the more significant revelations team members will be faced with is how much SOA differs from an architecture that uses Web services only peripherally. Even a large-scale deployment of Web services does not necessarily constitute an SOA. This new design paradigm brings with it a set of distinct principles that need to be applied in order for an architecture to be considered truly service-oriented. There also needs to be a common acceptance of the fact that service-oriented theory is not solely related to the eventual implementation of technology. Concepts, such as process encapsulation and service composition, extend beyond technical environments, and can change the manner in which business processes are structured and modeled. This has significant implications, as the introduction of SOAs can force change beyond the realm of technology, affecting business analysts and existing modeling standards. Without a sound understanding of these and other changes to how distributed solutions are traditionally designed, you will introduce risks to your project. Foremost of these is the danger of laying a weak foundation built around the use of Web services, but omitting the unique characteristics that define SOA. Expect Evolution to be Part of the Migration These, and other SOA characteristics, can lead to significant benefits and an overall superior enterprise. Achieving all of this, however, comes at the price of serious commitment and investment. It also requires that you stay open to the sometimes unpredictable evolutionary nature of SOA. In larger scale transition projects, it is not uncommon for the environment you end up migrating toward to be very different from what you originally defined in your transition plan. Further, it will likely continue to change soon after the migration project finishes. This is the nature of SOA. And, while WS-* standards continue on their volatile path, products that implement these standards will undergo continuous refinements. This can turn a physical target architecture into a moving target. It is easier to simply accept this ahead of time than to get frustrated at having to continually adapt. The bottom line is that when you document the environment you want to establish upon completion of your migration, realize that what actually gets implemented will likely differ. Then, compensate for this by incorporating a means of facilitating regular change (through iterative design cycles, for example, into your plan. Use Speculative Analysis to Build Toward a Future State With this approach you obviously run the danger of wasting time and money on features that end up not getting used. Of course, anything can change and no speculation can be guaranteed. However, if a little more up-front design and development effort can spare the significantly larger amount of effort required to redesign and redevelop solutions (which incurs associated testing and deployment overhead), then it's worth the gamble. For example, imagine that the results of your analysis indicate a strong likelihood of two systems having to communicate with each other within a year after you introduce SOA to your organization. In this case you are better off taking that potential requirement into account ahead of time. It may not even necessarily require that you build new functionality into your current system; you can often accommodate future state architectures simply by designing increasingly autonomous services with highly generic interfaces, and by positioning these services as future application endpoints. Prepare for Post-Migration Growth Many organizations focus almost exclusively on the introductory phase of the migration, ignoring what it will take to maintain and expand these environments. This oversight can be costly. For example, IT managers are often shocked when they realize how little of their existing infrastructure can be used to manage large-scale Web services deployments (the second shock generally occurs when the cost of upgrading the administration infrastructure is presented). The best way to avoid this situation is to speculate on the growth rate of Web services and SOAs within your organization, and to then dedicate part of the up-front analysis to an evaluation of current administration tools. Match up licenses with expected administration requirements, add a contingency for changes in the marketplace and growth variance, and put this figure in your initial budget. Finally, even if the anticipated usage of SOAs is minimal upon completion of the transition, ensure that an extensible support infrastructure is delivered as part of the migration project. Plan Transition Phases Around the Introduction of Custom Standards "Phasing in SOA means phasing in standards." Base your approach on a motto similar to this, and you should see the delivery of standards documents take a prominent place in your migration project. Planning the delivery of standards, however, is only the first step. The enforcement of a standardized SOA will not only introduce changes to technology and the organization as a whole, it will also impose new constraints and limitations. It should therefore be recognized that phasing in SOA and associated custom standards in a controlled manner requires the support and cooperation of the entire IT department. Though an entirely separate topic, also worth noting is the creation of standards for distributed applications that will not be immediately migrated to SOA. There are a number of steps you can take to build service-oriented characteristics into a solution in preparation for a future migration. Not only will this ease an eventual transition to the Web services platform, it will greatly facilitate any integration with service-oriented applications in the interim. Other Best Practices
A good transition plan must coordinate the strategic positioning of new concepts and technologies within an organization. With SOA, the execution of the plan achieves an alignment of proprietary technology and open industry standards with an organization's business goals. In other words, you need to seize ownership over how SOA is phased in on corporate, organizational, and technical levels. Approaching migration in this manner minimizes dependencies on external drivers, and places the evolution of this architectural platform in your hands. Reader Feedback: Page 1 of 1
Your Feedback
Latest Cloud Developer Stories
Subscribe to the World's Most Powerful Newsletters
Subscribe to Our Rss Feeds & Get Your SYS-CON News Live!
|
SYS-CON Featured Whitepapers
Most Read This Week
Breaking Cloud Computing News
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||