Preface
Chapter 1 Introduction
1.1 Why this book is important
1.1.1 The false SOA
1.1.2 The ideal SOA
1.1.3 The real SOA
1.2 Objectives of this book
1.2.1 Understanding SOA,service-orientation,and Web services
1.2.2 Learning how to build SOA with Web services
1.3 Who this book is for
1.4 What this book does not cover
1.5 How this book is organized
1.5.1 Part Ⅰ:SOA and Web Services Fundamentals
1.5.2 Part Ⅱ:SOA and WS-* Extensions
1.5.3 Part Ⅲ:SOA and Service-Orientation
1.5.4 Part Ⅳ:Building SOA(Planning and Analysis)
1.5.5 Part Ⅴ:Building SOA(Technology and Design)
1.5.6 Conventions
1.6 Additional information
1.6.1 The XML & Web Services Integration Framework(XWIF)
1.6.2 www.serviceoriented.ws
1.6.3 Contact the Author
Chapter 2 Case Studies
2.1 How case studies are used
2.1.1 Style characteristics
2.1.2 Relationship to abstract content
2.1.3 Code samples
2.2 Case #1 background:RailCo Ltd.
2.2.1 History
2.2.2 Technical infrastructure
2.2.3 Automation solutions
2.2.4 Business goals and obstacles
2.3 Case #2 background:Transit Line Systems Inc
2.3.1 History
2.3.2 Technical infrastructure
2.3.3 Automation solutions
2.3.4 Business goals and obstacles
Part Ⅰ SOA and Web Services Fundamentals
Chapter 3 Introducing SOA
3.1 Fundamental SOA
3.1.1 A service-oriented analogy
3.1.2 How services encapsulate logic
3.1.3 How services relate
3.1.4 How services communicate
3.1.5 How services are designed
3.1.6 How services are built
3.1.7 Primitive SOA
3.2 Common characteristics of contemporary SOA
3.2.1 Contemporary SOA is at the core of the service-oriented computing platform
3.2.2 Contemporary SOA increases quality of service
3.2.3 Contemporary SOA is fundamentally autonomous
3.2.4 Contemporary SOA is based on open standards
3.2.5 Contemporary SOA supports vendor diversity
3.2.6 Contemporary SOA promotes discovery
3.2.7 Contemporary SOA fosters intrinsic interoperability
3.2.8 Contemporary SOA promotes federation
3.2.9 Contemporary SOA promotes architectural composability
3.2.10 Contemporary SOA fosters inherent reusability
3.2.11 Contemporary SOA emphasizes extensibility
3.2.12 Contemporary SOA supports a service-oriented business modeling paradigm
3.2.13 Contemporary SOA implements layers of abstraction
3.2.14 Contemporary SOA promotes loose coupling throughout the enterprise
3.2.15 Contemporary SOA promotes organizational agility
3.2.16 Contemporary SOA is a building block
3.2.17 Contemporary SOA is an evolution
3.2.18 Contemporary SOA is still maturing
3.2.19 Contemporary SOA is an achievable ideal
3.2.20 Defining SOA
3.2.21 Separating concrete characteristics
3.3 Common misperceptions about SOA
3.3.1 "An application that uses Web services is service-oriented."
3.3.2 "SOA is just a marketing term used to re-brand Web services."
3.3.3 "SOA is just a marketing term used to re-brand distributed computing with Web services."
3.3.4 "SOA simplifies distributed computing."
3.3.5 "An application with Web services that uses WS-* extensions is service-oriented."
3.3.6 "If you understand Web services you won?t have a problem building SOA."
3.3.7 "Once you go SOA,everything becomes interoperable."
3.4 Common tangible benefits of SOA
3.4.1 Improved integration(and intrinsic interoperability)
3.4.2 Inherent reuse
3.4.3 Streamlined architectures and solutions
3.4.4 Leveraging the legacy investment
3.4.5 Establishing standardized XML data representation
3.4.6 Focused investment on communications infrastructure
3.4.7 "Best-of-breed" alternatives
3.4.8 Organizational agility
3.5 Common pitfalls of adopting SOA
3.5.1 Building service-oriented architectures like traditional distributed architectures
3.5.2 Not standardizing SOA
3.5.3 Not creating a transition plan
3.5.4 Not starting with an XML foundation architecture
3.5.5 Not understanding SOA performance requirements
3.5.6 Not understanding Web services security
3.5.7 Not keeping in touch with product platforms and standards development
Chapter 4 The Evolution of SOA
4.1 An SOA timeline(from XML to Web services to SOA)
4.1.1 XML:a brief history
4.1.2 Web services:a brief history
4.1.3 SOA:a brief history
4.1.4 How SOA is re-shaping XML and Web services
4.2 The continuing evolution of SOA(standards organizations and contributing vendors)
4.2.1 "Standards" vs"Specifications" vs"Extensions"
4.2.2 Standards organizations that contribute to SOA
4.2.3 Major vendors that contribute to SOA
4.3 The roots of SOA(comparing SOA to past architectures)
4.3.1 What is architecture?
4.3.2 SOA vsclient-server architecture
4.3.3 SOA vsdistributed Internet architecture
4.3.4 SOA vshybrid Web service architecture
4.3.5 Service-orientation and object-orientation(Part Ⅰ)
Chapter 5 Web Services and Primitive SOA
5.1 The Web services framework
5.2 Services(as Web services)
5.2.1 Service roles
5.2.2 Service models
5.3 Service descriptions(with WSDL)
5.3.1 Service endpoints and service descriptions
5.3.2 Abstract description
5.3.3 Concrete description
5.3.4 Metadata and service contracts
5.3.5 Semantic descriptions
5.3.6 Service description advertisement and discovery
5.4 Messaging(with SOAP)
5.4.1 Messages
5.4.2 Nodes
5.4.3 Message paths
Part Ⅱ SOA and WS-* Extensions
What is "WS-*"?
Chapter 6 Web Services and Contemporary SOA(Part Ⅰ:Activity Management and Composition)
6.1 Message exchange patterns
6.1.1 Primitive MEPs
6.1.2 MEPs and SOAP
6.1.3 MEPs and WSDL
6.1.4 MEPs and SOA
6.2 Service activity
6.2.1 Primitive and complex service activities
6.2.2 Service activities and SOA
6.3 Coordination
6.3.1 Coordinator composition
6.3.2 Coordination types and coordination protocols
6.3.3 Coordination contexts and coordination participants
6.3.5 The activation and registration process
6.3.5 The completion process
6.3.6 Coordination and SOA
6.4 Atomic transactions
6.4.1 ACID transactions
6.4.2 Atomic transaction protocols
6.4.3 The atomic transaction coordinator
6.4.4 The atomic transaction process
6.4.5 Atomic transactions and SOA
6.5 Business activities
6.5.1 Business activity protocols
6.5.2 The business activity coordinator
6.5.3 Business activity states
6.5.4 Business activities and atomic transactions
6.5.5 Business activities and SOA
6.6 Orchestration
6.6.1 Business protocols and process definition
6.6.2 Process services and partner services
6.6.3 Basic activities and structured activities
6.6.4 Sequences,flows,and links
6.6.5 Orchestrations and activities
6.6.6 Orchestration and coordination
6.6.7 Orchestration and SOA
6.7 Choreography
6.7.1 Collaboration
6.7.2 Roles and participants
6.7.3 Relationships and channels
6.7.4 Interactions and work units
6.7.5 Reusability,composability,and modularity
6.7.6 Orchestrations and choreographies
6.7.7 Choreography and SOA
Chapter 7 Web Services and Contemporary SOA(Part Ⅱ:Advanced Messaging,Metadata,and Security)
7.1 Addressing
7.1.1 Endpoint references
7.1.2 Message information headers
7.1.3 Addressing and transport protocol independence
7.1.4 Addressing and SOA
7.2 Reliable messaging
7.2.1 RM Source,RM Destination,Application Source,and Application Destination
7.2.2 Sequences
7.2.3 Acknowledgements
7.2.4 Delivery assurances
7.2.5 Reliable messaging and addressing
7.2.6 Reliable messaging and SOA
7.3 Correlation
7.3.1 Correlation in abstract
7.3.2 Correlation in MEPs and activities
7.3.3 Correlation in coordination
7.3.4 Correlation in orchestration
7.3.5 Correlation in addressing
7.3.6 Correlation in reliable messaging
7.3.7 Correlation and SOA
7.4 Policies
7.4.1 The WS-Policy framework
7.4.2 Policy assertions and policy alternatives
7.4.3 Policy assertion types and policy vocabularies
7.4.4 Policy subjects and policy scopes
7.4.5 Policy expressions and policy attachments
7.4.6 What you really need to know
7.4.7 Policies in coordination
7.4.8 Policies in orchestration and choreography
7.4.9 Policies in reliable messaging
7.4.10 Policies and SOA
7.5 Metadata exchange
7.5.1 The WS-MetadataExchange specification
7.5.2 Get Metadata request and response messages
7.5.3 Get request and response messages
7.5.4 Selective retrieval of metadata
7.5.5 Metadata exchange and service description discovery
7.5.6 Metadata exchange and version control
7.5.7 Metadata exchange and SOA
7.6 Security
7.6.1 Identification,authentication,and authorization
7.6.2 Single sign-on
7.6.3 Confidentiality and integrity
7.6.4 Transport-level security and message-level security
7.6.5 Encryption and digital signatures
7.6.6 Security and SOA
7.7 Notification and eventing
7.7.1 Publish-and-subscribe in abstract
7.7.2 One concept,two specifications
7.7.3 The WS-Notification Framework
7.7.4 The WS-Eventing specification
7.7.5 WS-Notification and WS-Eventing
7.7.6 Notification,eventing,and SOA
Part Ⅲ SOA and Service-Orientation
Chapter 8 Principles of Service-Orientation
8.1 Service-orientation and the enterprise
8.2 Anatomy of a service-oriented architecture
8.2.1 Logical components of the Web services framework
8.2.2 Logical components of automation logic
8.2.3 Components of an SOA
8.2.4 How components in an SOA inter-relate
8.3 Common principles of service-orientation
8.3.1 Services are reusable
8.3.2 Services share a formal contract
8.3.3 Services are loosely coupled
8.3.4 Services abstract underlying logic
8.3.5 Services are composable
8.3.6 Services are autonomous
8.3.7 Services are stateless
8.3.8 Services are discoverable
8.4 How service-orientation principles inter-relate
8.4.1 Service reusability
8.4.2 Service contract
8.4.3 Service loose coupling
8.4.4 Service abstraction
8.4.5 Service composability
8.4.6 Service autonomy
8.4.7 Service statelessness
8.4.8 Service discoverability
8.5 Service-orientation and object-orientation(Part Ⅱ)
8.6 Native Web service support for service-orientation principles
Chapter 9 Service Layers
9.1 Service-orientation and contemporary SOA
9.1.1 Mapping the origins and supporting sources of concrete SOA characteristics
9.1.2 Unsupported SOA characteristics
9.2 Service layer abstraction
9.2.1 Problems solved by layering services
9.3 Application service layer
9.4 Business service layer
9.5 Orchestration service layer
9.6 Agnostic services
9.7 Service layer configuration scenarios
9.7.1 Scenario #1:Hybrid application services only
9.7.2 Scenario #2:Hybrid and utility application services
9.7.3 Scenario #3:Task-centric business services and utility application services
9.7.4 Scenario #4:Task-centric business services,entity-centric business services,and utility application services
9.7.5 Scenario #5:Process services,hybrid application services,and utility application services
9.7.6 Scenario #6:Process services,task-centric business services,and utility application services
9.7.7 Scenario #7:Process services,task-centric business services,entity-centric business services,and utility application services
9.7.8 Scenario #8:Process services,entity-centric business services,and utility application services
Part Ⅳ Building SOA(Planning and Analysis)
Chapter 10 SOA Delivery Strategies
10.1 SOA delivery lifecycle phases
10.1.1 Basic phases of the SOA delivery lifecycle
10.1.2 Service-oriented analysis
10.1.3 Service-oriented design
10.1.4 Service development
10.1.5 Service testing
10.1.6 Service deployment
10.1.7 Service administration
10.1.8 SOA delivery strategies
10.2 The top-down strategy
10.2.1 Process
10.2.2 Pros and cons
10.3 The bottom-up strategy
10.3.1 Process
10.3.2 Pros and cons
10.4 The agile strategy
10.4.1 Process
10.4.2 Pros and cons
Chapter 11 Service-Oriented Analysis(Part Ⅰ:Introduction)
11.1 Introduction to service-oriented analysis
11.1.1 Objectives of service-oriented analysis
11.1.2 The service-oriented analysis process
11.2 Benefits of a business-centric SOA
11.2.1 Business services build agility into business models
11.2.2 Business services prepare a process for orchestration
11.2.3 Business services enable reuse
11.2.4 Only business services can realize the service-oriented enterprise
11.3 Deriving business services
11.3.1 Sources from which business services can be derived
11.3.2 Types of derived business services
11.3.3 Business services and orchestration
Chapter 12 Service-Oriented Analysis(Part Ⅱ:Service Modeling)
12.1 Service modeling(a step-by-step process)
12.1.1 "Services" versus "Service Candidates"
12.1.2 Process description
12.2 Service modeling guidelines
12.2.1 Take into account potential cross-process reusability of logic being encapsulated(task-centric business service candidates)
12.2.2 Consider potential intra-process reusability of logic being encapsulated(task-centric business service candidates)
12.2.3 Factor in process-related dependencies(task-centric business service candidates)
12.2.4 Model for cross-application reuse(application service candidates)
12.2.5 Speculate on further decomposition requirements
12.2.6 Identify logical units of work with explicit boundaries
12.2.7 Prevent logic boundary creep
12.2.8 Emulate process services when not using orchestration(task-centric business service candidates)
12.2.9 Target a balanced model
12.2.10 Classify service modeling logic
12.2.11 Allocate appropriate modeling resources
12.2.12 Create and publish business service modeling standards
12.3 Classifying service model logic
12.3.1 The SOE model
12.3.2 The enterprise business model
12.3.3 "Building Blocks" versus "Service Models"
12.3.4 Basic modeling building blocks
12.4 Contrasting service modeling approaches(an example)
Part Ⅴ Building SOA(Technology and Design)
Chapter 13 Service-Oriented Design(Part Ⅰ:Introduction)
13.1 Introduction to service-oriented design
13.1.1 Objectives of service-oriented design
13.1.2 "Design standards" versus "Industry standards"
13.1.3 The service-oriented design process
13.1.4 Prerequisites
13.2 WSDL-related XML Schema language basics
13.2.1 The schema element
13.2.2 The element element
13.2.3 The complexType and simpleType elements
13.2.4 The import and include elements
13.2.5 Other important elements
13.3 WSDL language basics
13.3.1 The definitions element
13.3.2 The types element
13.3.3 The message and part elements
13.3.4 The portType,interface,and operation elements
13.3.5 The input and output elements(when used with operation)
13.3.6 The binding element
13.3.7 The input and output elements(when used with binding)
13.3.8 The service,port,and endpoint elements
13.3.9 The import element
13.3.10 The documentation element
13.4 SOAP language basics
13.4.1 The Envelope element
13.4.2 The Header element
13.4.3 The Body element
13.4.4 The Fault element
13.5 Service interface design tools
13.5.1 Auto-generation
13.5.2 Design tools
13.5.3 Hand coding
Chapter 14 Service-Oriented Design(Part Ⅱ:SOA Composition Guidelines)
14.1 Steps to composing SOA
14.1.1 Step 1:Choose service layers
14.1.2 Step 2:Position core standards
14.1.3 Step 3:Choose SOA extensions
14.2 Considerations for choosing service layers
14.3 Considerations for positioning core SOA standards
14.3.1 Industry standards and SOA
14.3.2 XML and SOA
14.3.3 The WS-I Basic Profile
14.3.4 WSDL and SOA
14.3.5 XML Schema and SOA
14.3.6 SOAP and SOA
14.3.7 Namespaces and SOA
14.3.8 UDDI and SOA
14.4 Considerations for choosing SOA extensions
14.4.1 Choosing SOA characteristics
14.4.2 Choosing WS-* specifications
14.4.3 WS-BPEL and SOA
Chapter 15 Service-Oriented Design(Part Ⅲ:Service Design)
15.1 Service design overview
15.1.1 Design standards
15.1.2 About the process descriptions
15.1.3 Prerequisites
15.2 Entity-centric business service design(a step-by-step process)
15.2.1 Process description
15.3 Application service design(a step-by-step process)
15.3.1 Process description
15.4 Task-centric business service design(a step-by-step process)
15.4.1 Process description
15.5 Service design guidelines
15.5.1 Apply naming standards
15.5.2 Apply a suitable level of interface granularity
15.5.3 Design service operations to be inherently extensible
15.5.4 Identify known and potential service requestors
15.5.5 Consider using modular WSDL documents
15.5.6 Use namespaces carefully
15.5.7 Use the SOAP document and literal attribute values
15.5.8 Use WS-I Profiles even if WS-I compliance isn't required
15.5.9 Document services with metadata
Chapter 16 Service-Oriented Design(Part Ⅳ:Business Process Design)
16.1 WS-BPEL language basics
16.1.1 A brief history of BPEL4WS and WS-BPEL
16.1.2 Prerequisites
16.1.3 The process element
16.1.4 The partnerLinks and partnerLink elements
16.1.5 The partnerLinkType element
16.1.6 The variables element
16.1.7 The getVariableProperty and getVariableData functions
16.1.8 The sequence element
16.1.9 The invoke element
16.1.10 The receive element
16.1.11 The reply element
16.1.12 The switch,case,and otherwise elements
16.1.13 The assign,copy,from,and to elements
16.1.14 faultHandlers,catch,and catchAll elements
16.1.15 Other WS-BPEL elements
16.2 WS-Coordination overview
16.2.1 The CoordinationContext element
16.2.2 The Identifier and Expires elements
16.2.3 The CoordinationType element
16.2.4 The RegistrationService element
16.2.5 Designating the WS-BusinessActivity coordination type
16.2.6 Designating the WS-AtomicTransaction coordination type
16.3 Service-oriented business process design(a step-by-step process)
16.3.1 Process description
Chapter 17 Fundamental WS-* Extensions
You mustUnderstand this
17.1 WS-Addressing language basics
17.1.1 The EndpointReference element
17.1.2 Message information header elements
17.1.3 WS-Addressing reusability
17.2 WS-ReliableMessaging language basics
17.2.1 The Sequence,MessageNumber,and LastMessage elements
17.2.2 The SequenceAcknowledgement and AcknowledgementRange elements
17.2.3 The Nack element
17.2.4 The AckRequested element
17.2.5 Other WS-ReliableMessaging elements
17.3 WS-Policy language basics
17.3.1 The Policy element and common policy assertions
17.3.2 The ExactlyOne element
17.3.3 The All element
17.3.4 The Usage attribute
17.3.5 The Preference attribute
17.3.6 The PolicyReference element
17.3.7 The PolicyURIs attribute
17.3.8 The PolicyAttachment element
17.3.9 Additional types of policy assertions
17.4 WS-MetadataExchange language basics
17.4.1 The GetMetadata element
17.4.2 The Dialect element
17.4.3 The Identifier element
17.4.4 The Metadata,MetadataSection,and MetadataReference elements
17.4.5 The Get message
17.5 WS-Security language basics
17.5.1 The Security element(WS-Security)
17.5.2 The UsernameToken,Username,and Password elements(WS-Security)
17.5.3 The BinarySecurityToken element(WS-Security)
17.5.4 The SecurityTokenReference element(WS-Security)
17.5.5 Composing Security element contents(WS-Security)
17.5.6 The EncryptedData element(XML-Encryption)
17.5.7 The CipherData,CipherValue,and CipherReference elements(XML-Encryption)
17.5.8 XML-Signature elements
Chapter 18 SOA Platforms
18.1 SOA platform basics
18.1.1 Basic platform building blocks
18.1.2 Common SOA platform layers
18.1.3 Relationship between SOA layers and technologies
18.1.4 Fundamental service technology architecture
18.1.5 Vendor platforms
18.2 SOA support in J2EE
18.2.1 Platform overview
18.2.2 Primitive SOA support
18.2.3 Support for service-orientation principles
18.2.4 Contemporary SOA support
18.3 SOA support in .NET
18.3.1 Platform overview
18.3.2 Primitive SOA support
18.3.3 Support for service-orientation principles
18.3.4 Contemporary SOA support
18.4 Integration considerations
Appendix A Case Studies:Conclusion
A.1 RailCo Ltd
A.2 Transit Line Systems Inc
A.3 The Oasis Car Wash
Appendix B Service Models Reference
Glossary
About the Author
About the Photographs
Index