One of my favorite quotes came from an exchange I overheard while preparing to speak at a conference. Two IT professionals were discussing their respective environments, when one asked the other if his team was building a service-oriented architecture. The individual responded by saying "My architect thinks it's service-oriented, my developers insist it's object-oriented, and my analysts wish it would be more business-oriented. All I can tell you is that it isn't what it was before we started building Web services."
This candid statement is a sign of the times. Service-oriented architecture (SOA) has become the focal point of the IT industry, yet few fully understand it. This book aims to fill this knowledge gap by helping you accomplish the following goals:
Let's begin by identifying the most common obstacle to adopting SOA.
1.1.1. The false SOA
I cannot recall any one term causing as much confusion as "service-oriented." Its apparent ambiguity has led vendors, IT professionals, and the media to claim their own interpretations. This, of course, makes grasping the meaning of a technical architecture labeled as "service-oriented" all the more difficult.
SOA, as an abstract paradigm, has traditionally represented a baseline distributed architecture with no reference to implementation. While relevant to us, this model represents only a subset of SOA in its most common and contemporary form.
Coupled with the Web services platform and a set of commonly accepted service-orientation principles, SOA has emerged as an architectural platform explicitly distinct from its predecessors. It introduces new concepts supported by select technologies that significantly augment characteristics of traditional distributed computing platformsso much so that service-oriented environments often end up redefining IT infrastructure.
This contemporary variety of SOA has received its share of attention. It has been promoted as a platform capable of revolutionizing enterprise environments by leveraging advancements in Web services technology and injecting organizations with hopes of federation, agility, and cross-platform harmony.
Many have been led to the notion that a technical architecture deemed service-oriented is simply one comprised of Web services. This is a common but dangerous assumption that leads to the number one mistake made by organizations intending to adopt SOAthe perception that the benefits promised by current mainstream SOA are attainable solely through a deeper investment in the Web services platform.
The reason this is happening is understandable. It is difficult for an organization to measure the extent of service-orientation possessed by its automation solutions when it is not clear what it actually means for automation logic to be truly service-oriented. What is needed is an ideal organizations can use as a target model.
1.1.2. The ideal SOA
We all have ideals that we aspire to attain. Ideals represent a state of excellence that motivate us to accomplish things beyond what we may have been able to without the ideal to look up to.
Service-orientation presents an ideal vision of a world in which resources are cleanly partitioned and consistently represented. When applied to IT architecture, service-orientation establishes a universal model in which automation logic and even business logic conform to this vision. This model applies equally to a task, a solution, an enterprise, a community, and beyond.
By adhering to this vision, past technical and philosophical disparities are blanketed by layers of abstraction that introduce a globally accepted standard for representing logic and information. This level of standardization offers an enormous benefit potential for organizations, as many of the traditional challenges faced by ever-changing IT environments can be directly addressed through the application of these standardized layers.
The service-orientation ideal has sparked a movement that has positioned SOA as the next phase in the evolution of business automation. In the same manner in which mainframe systems were succeeded by client-server applications, and client-server environments then evolved into distributed solutions based on Web technologies, the contemporary, Web services-driven SOA is succeeding traditional distributed architecture on a global scale.
All major software manufacturers and vendors are promoting support for SOAsome even through direct involvement in the development of open standards. As a result, every major development platform now officially supports the creation of service-oriented solutions. It would appear as though the realization of the SOA ideal is well underway. Why, then, is the false SOA so common?
1.1.3. The real SOA
The reality is that the rise of the false SOA has distorted the vision of the ideal SOA. Not only is the false SOA divergent from the "true path of service-orientation," it reinforces SOA anti-patterns by extending and further entrenching the traditional distributed computing model to which SOA offers an alternative. The eventual realization that initial expectations will not be fulfilled can be further compounded once the costs, effort, and overall ugliness of a retro-fitting effort are calculated.
All of this can be avoided. What is required is an understanding of service-orientation, how it shapes technical architecture into SOA, and concrete, step-by-step processes for realizing SOA in a contemporary form.
Be forewarned, though, that SOA makes some impositions. A change in mindset is required, as business logic now needs to be viewed within a service-oriented context. Applying this context also requires a change in automation logic, as solutions now need to be built in support of service-orientation. Finally, a technical architecture capable of hosting service-oriented automation logic further introduces new technology and infrastructure requirements.
Real SOAs demand that an organization undergo this form of top-down transformation. However, the ideal an organization works toward during this process is not necessarily part of a universal vision of global service-orientation. It is an ideal based on how the concept of service-orientation, the architectural model provided by contemporary SOA, and the feature set offered by supporting technologies can benefit the vision and goals of your organization.
A real SOA requires real change, real foresight, and real commitment. Most of all, though, it requires guidance. This last requirement is what this book intends to assist you with.
Part I: SOA and Web Services Fundamentals
The Evolution of SOA
Web Services and Primitive SOA
Part II: SOA and WS-* Extensions
Web Services and Contemporary SOA (Part I: Activity Management and Composition)
Web Services and Contemporary SOA (Part II: Advanced Messaging, Metadata, and Security)
Part III: SOA and Service-Orientation
Principles of Service-Orientation
Part IV: Building SOA (Planning and Analysis)
SOA Delivery Strategies
Service-Oriented Analysis (Part I: Introduction)
Service-Oriented Analysis (Part II: Service Modeling)
Part V: Building SOA (Technology and Design)
Service-Oriented Design (Part I: Introduction)
Service-Oriented Design (Part II: SOA Composition Guidelines)
Service-Oriented Design (Part III: Service Design)
Service-Oriented Design (Part IV: Business Process Design)
Fundamental WS-* Extensions
Appendix A. Case Studies: Conclusion