Regardless of the shape or size of your SOA, it will consist of a number of technology components that establish an environment in which your services will reside (Figure 14.1). The fundamental components that typically comprise an SOA include:
Figure 14.1. The most fundamental components of an SOA.
However, to support and realize the principles and characteristics we've explored as being associated with both the primitive and contemporary types of SOA requires some additional design effort.
Common questions that need to be answered at this stage include:
These issues lead to an exercise in composition, as we make choices that determine what technologies and architectural components are required and how these parts are best assembled.
Provided in Figure 14.2 and further described in the following sections is an informal set of steps for composing a service-oriented architecture. Depending on your goals and the nature of your technical environment, additional considerations likely will be needed.
Figure 14.2. Suggested steps for composing a preliminary SOA.
14.1.1. Step 1: Choose service layers
Composing an SOA requires that we first decide on a design configuration for the service layers that will comprise and standardize logic representation within our architecture. This step is completed by studying the candidate service layers produced during the service-oriented analysis phase and exploring service layers and service layer configuration scenarios provided in Chapter 9. Some guidelines are provided in the Considerations for choosing service layers section.
14.1.2. Step 2: Position core standards
Next, we need to assess which core standards should comprise our SOA and how they should be implemented to best support the features and requirements of our service-oriented solution. The Considerations for positioning core SOA standards section provides an overview of how each of the core XML and Web services specifications commonly is affected by principles and characteristics unique to SOA.
14.1.3. Step 3: Choose SOA extensions
This final part of our "pre-service design process" requires that we determine which contemporary SOA characteristics we want our service-oriented architecture to support. This will help us decide which of the available WS-* specifications should become part of our service-oriented environment. The Considerations for choosing SOA extensions section provides some guidelines for making these determinations.
SUMMARY OF KEY POINTS
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