Contemporary SOA is a complex and sophisticated architectural platform that offers significant potential to solve many historic and current IT problems. In part, it achieves this potential by leveraging existing paradigms and technologies that support its overall vision. However, the majority of what it has to offer only can be harnessed thorough analysis and targeted design.
Listed here (and shown in Figure 9.1) are three of the primary influences of contemporary SOA discussed so far in this book:
Figure 9.1. External influences that form and support contemporary SOA.
There are, of course, many other influences. Fundamental XML concepts, for example, have driven and shaped SOA and Web services on a fundamental level. For now, though, let's focus on these three.
As previously stated, to fulfill the potential of this architecture, we need to understand the origins of its characteristics. This understanding equips us with a healthy knowledge of what intrinsically drives fundamental aspects of SOA. More importantly, though, it allows us to pinpoint exactly which parts of contemporary SOA must be manually bolted on to this architecture. This allows us to focus on analysis and design efforts that ensure that these parts of SOA are properly implemented and their benefits realized.
9.1.1. Mapping the origins and supporting sources of concrete SOA characteristics
In Chapter 3 we created a list of concrete characteristics commonly associated with contemporary SOA. These qualities represent the current state and expectations surrounding this architectural platform and are also a reflection of the technology being developed in its support.
We've reached a stage in this book where we've discussed each of the three contemporary SOA influences identified in the previous section as being either responsible for or that in some way relating to a number of these characteristics.
We want to ensure that we identify those characteristics not supported by these external influences so that we can discuss how they also can be realized. So let's take this opportunity to revisit our original list, with the intention of striking off the ones that already have been addressed.
Note
The WS-* specifications referenced in Table 9.1 are only those covered by this book. Additional specifications exist.
Characteristic |
Origin and/or Supporting Source |
---|---|
fundamentally autonomous |
Autonomy is one of the core service-orientation principles that can be applied to numerous parts of SOA. Pursuing autonomy when building and assembling service logic supports other SOA characteristics. |
based on open standards |
This is a natural by-product of basing SOA on the Web services technology platform and its ever-growing collection of WS-* specifications. The majority of Web services specifications are open and vendor-neutral. |
QoS capable |
The quality of service improvements provided by contemporary SOA are, for the most part, realized via vendor implementations of individual WS-* extensions. |
architecturally composable |
While composability, on a service level, is one of our service-orientation principles, for an architecture to be considered composable requires that the technology from which the architecture is built support this notion. For the most part, the specifications that comprise the WS-* landscape fully enable architectural composability by allowing a given SOA to only implement extensions it actually requires. |
vendor diversity |
This is really more of a benefit of SOA than an actual characteristic. Regardless, it is primarily realized through the use of the open standards provided by the Web services platform. |
intrinsic interoperability |
The standardized communications framework provided by Web services establishes the potential to foster limitless interoperability between services. This is no big secret. To foster intrinsic interoperability among services, though, requires forethought and good design standards. Although supported by a number of WS-* specifications, this characteristic is not directly enabled by our identified influences. |
discoverability |
Service-level discoverability is one of our fundamental principles of service-orientation. Implementing discoverability on an SOA level typically requires the use of directory technologies, such as UDDI (one of the first-generation Web services specifications). |
promotes federation |
Federation is a state achieved by extending SOA into the realm of service-oriented integration. A number of key WS-* extensions provide feature-sets that support the attainment of federation. Most notable among these are the specifications that implement the concepts of orchestration and choreography. |
inherent reusability |
Reusability is one of the primary principles of service-orientation and one that can be applied across service-oriented solution environments. SOA promotes the creation of inherently reusable service logic within individual services and across service compositionsa benefit attainable through quality service design. |
extensibility |
Given that Web services are composable and based on open standards, extensibility is a natural benefit of this platform. Several WS-* extensions introduce architectural mechanisms that build extensibility into a solution. However, for the most part, this is a characteristic that must be intentionally designed into services individually and into SOA as a whole. |
service-oriented business modeling |
This key characteristic is supported by orchestration, although not automatically. WS-* specifications, such as WS-BPEL, provide a dialect capable of expressing business process logic in an operational syntax resulting in a process definition. Only through deliberate design, though, can these types of process definitions actually be utilized to support service-oriented business modeling. |
layers of abstraction |
Service-orientation principles fully promote black box-type abstraction on a service interface level. However, to coordinate logic abstraction into layers, services must be designed and organized according to specific design standards. |
enterprise-wide loose coupling |
Loose coupling is one of the fundamental characteristics of Web services. Achieving a loosely coupled enterprise is a benefit expected from the coordinated proliferation of SOA and abstraction layers throughout an organization's business and application domains. |
organizational agility |
Though the use of Web services, service-orientation principles, and WS-* specifications support the concept of increasing an organization's agility, they do not directly enable it. This important characteristic requires dedicated analysis and design and relies on the realization of other SOA characteristics. |
9.1.2. Unsupported SOA characteristics
Having removed the concrete SOA characteristics that receive support from our identified external influences, we are now left with the following six:
The first two are somewhat enabled by different WS-* extensions. However, realizing these characteristics within SOA is a direct result of standardized, quality service design. The design guidelines provided in Chapter 15 provide recommendations for fostering these qualities. As a result, we'll take interoperability and extensibility off our list for now.
This leaves us with four remaining characteristics of contemporary SOA that are not directly supported or provided by the external influences we identified. These characteristics have been numbered here only to allow for easier referencing in later sections.
What is most interesting about our brief study is that these four characteristics actually provide some of the most crucial benefits of this architecture. The caveat, though, is that they require a conscious effort for us to realize. This translates into extra up-front work that simply comes with the territory of building contemporary SOA.
Incorporating these key qualities into SOA requires that some very fundamental decisions be made, long before the building process of individual services actually can commence. The remaining sections in this chapter explore how structuring SOA around the creation of specialized service layers directly determines the extent to which these characteristics can be manifested.
SUMMARY OF KEY POINTS |
---|
|
Introduction
Case Studies
Part I: SOA and Web Services Fundamentals
Introducing SOA
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
Service Layers
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
SOA Platforms
Appendix A. Case Studies: Conclusion