CHAPTER 1. SOA FUNDAMENTALS
Defining Service Oriented Architecture (SOA)
Putting SOA in Context
SOA As an Alignment Strategy
The SOA Umbrella
What’s a Service?
Service Actors
Serving Up SOA
Business Process Management
BPM & Workflow
SOA Governance
SOA Governance Model
SOA Job Role Impact
Before SOA
SOA Re-Organization
What Makes a Good Design?
Is SOA a New Concept?
Service Orienting the Enterprise
Service Oriented Thinking
SOA Is Perfect…NOT!
Service Characteristics
When Do I Need a Service?
About Services in SOA
Contract-Driven Software
SOA Standards
CHAPTER 2. SOA CASE STUDY
What is a Case Study?
Case Study Background
Additional Background
The Problem Statement
Status Quo Issues
Status Quo Issues (continued)
Opportunities
How Can SOA Help?
Example Solution Snippet
CHAPTER 3. INTRODUCTION TO WEB SERVICES
A Conceptual Look at Services
Defining Services
Three Key Service Questions
Service Communication Analogy
Connecting the Dots
SOA: Runtime Implementation
What Is a Web Service?
Enterprise Assets as Services
Web Service Development Workflow
Advantages of Web Services
Web Service Business Models
Example: Internal System Integration
Example: Business Process Externalization
Web Service Standards
Binding via SOAP
SOAP in Protocol Stack
SOAP Structure
SOAP Message Architecture
Applying SOAP
Interface via WSDL
WSDL Structure
Locating a Service
UDDI Overview
UDDI Structure
Applying UDDI
WS-I Overview
WS-I Deliverables
CHAPTER 4. LAYERS OF SERVICES
What Is Layering?
Service Layers
Layering Example
The Application Service Layer
The Business Service Layer
The Orchestration Layer
Layering Guidelines
The User Interface Layer
Context Awareness in SOA UI
Web 2.0 Data Aggregation
CHAPTER 5. SOA VALUE PROPOSITION
The SOA Value Proposition
Reducing Integration Expense
Integration Costs Illustration
Ripple Effect of Changes
The Value of Service Layering
Advantage of SOA Layering
Increasing Asset Reuse
SOA Economics/ROI
Asset Reuse Illustration
Service Reuse v. Object Reuse
Increasing Business Agility
Business Agility Illustration
Traditional EAI Approach
Problems with Traditional EAI Approach
Change Flow Using Legacy Approach
SOA Agility
Build the Services
Build the Process or Message Flow
We Can Easily Change the Process
Reducing Business Risk
Example: Compliance Using SOA
Business Advantages
ROI Quantification Hurdles
Real World SOA Example – Sears Canada
Real World SOA Example – BlueStar Energy
Real World SOA Example – Reliance Life Insurance
Real World SOA Example – Harley-Davidson
CHAPTER 6. ARCHITECTURAL TOPOLOGY FOR SOA
Vendor Confusion
Service Intermediaries
Intermediary Options
Intermediary Service
Centralized Bus
Logical Centralized Bus
De-centralized Framework
Policy Enforcement at Endpoints
Comparing the Approaches
CHAPTER 7. INTRODUCTION TO SERVICE ORIENTED ANALYSIS & DESIGN (SOAD)
Introduction to SOAD
Applying OOAD Principles
Encapsulation
Encapsulation in SOAD
Inheritance
Inheritance in SOAD
Polymorphism
Polymorphism in SOAD
Why OOAD Is Not Enough
Granularity
The Need for Loose Coupling
The SOAD Methodology
The SOAD Methodology Steps
Stage 1: Requirements Gathering & Process or Message Flow Modeling
Stage 1: Requirements Gathering & Process Modeling
Stage 2: Service Identification
Stage 3: Service Implementation
Stage 4: Process Implementation
SOAD Stages and SOA Lifecycle
CHAPTER 8. SOA SERVICE LIFE CYCLE
SOA Adoption
Adoption Stages
Managing Services
SOA Service Life Cycle Overview
SOA’s Circle of Life
Discovery Phase
Analysis & Design Phase
Implementation Phase
Deployment Phase
Monitor Phase
Retirement Phase
CHAPTER 9. STAGE 1: BUSINESS MODELING AND USE CASES
Stages of SOAD
Where are We in SOA Lifecycle?
Stage 1:Business Process Modeling
Basic Concepts
SOA and Business Process Model
Before You Get Started
Process Modeling Steps
Business Process Use Cases
Modeling the Business Processes
Use Case and Business Process
The Return Handling Process Model
Trading Partner Design Pattern
The UML Alternative
Best Practices
CHAPTER 10. BASIC XML SCHEMAS
What is XML Schema ?
Goals of Schema
Converting DTDs to Schema
Recall: Namespaces
The equivalent schema
Sample instance document
Documents Needed
XML Schema Namespaces
Link Documents to Schemas
Inline element declarations
XSchema Data Types
XSchema Type Definitions
XSchema Simple Data Types
Primitive Data Types
Simple Types
Facet – Restrictions on Element Content
Using the Facet
More Samples
Define Simple Element Type
Element Declaration
Element Occurrence Indicators
Complex Type
Attribute Declaration
Attribute Declarations
Occurrence of Attributes
Value Constraints on Attributes
Sequence Element
Element Choices
Express any order
Annotations
CHAPTER 11. COMPLEX DATA TYPES IN SCHEMA
Simple Types
Complex Types
Complex Type Example
Controlling Content
<sequence>
<choice>
<all>
Combining It All
The XML
Anonymous vs. Named
Address Example
Named Complex Types
Named ComplexType Example
Using Named Complex Type
The XML
<xs:any>
CHAPTER 12. WEB SERVICES DESCRIPTION LANGUAGE (WSDL)
WSDL Overview
WSDL Syntax Overview
<definitions>
<import>
<types>
<message>
<portType>
<operation>
<binding>
<service>
CHAPTER 13. SERVICE IDENTIFICATION AND SPECIFICATION
Stages of SOAD
Where are We in Service Lifecycle?
The Service Identification Stage
The Service Model
Service Model Example #1
Service Model Example #2
Service Model Example #3
Identify Service Operations from Business Process Model
Identify Service Operations from Message Flow Model
Group Operations as Services
Reuse Services and Applications
Define Logical Data Model
Specify Service Interface
Specify Business Process or Message Flow Interface
Business Process Case Study
Message Flow Case Study
Service Contract Template
Service Design Best Practices
CHAPTER 14. SIMPLE OBJECT ACCESS PROTOCOL (SOAP)
SOAP Overview
SOAP in Protocol Stack
SOAP Document Components
Example SOAP Request Document
Example SOAP Response Document
The <Envelope> Element
The <Header> Element
The <Body> Element
SOAP Communication Style
Communication Style Example
Setting the Style in WSDL
RPC/Encoded Style
RPC/Literal Style
Document/Literal Style
Document/Literal Wrapped Style
CHAPTER 15. SERVICE DESIGN AND IMPLEMENTATION
Stages of SOAD
Where are We in the SOA Lifecycle
Introduction
How Is a Service Developed?
Top Down Development
Web Services Programming Model
Apply OOAD in New Service Development
Bottom-Up Development
Bottom-Up Technology Choices (Java)
Example: JCA-Based Service
Example: JAX-WS Service
Bottom-Up Technology Choices (.NET)
Example: ASMX Service
Example: Adapter-Based Service
Data Mapping
Service Abstraction
Interface Mapping
Implementing the Services for UC001 Return Handling
Best Practices
CHAPTER 16. STAGE 4: BUSINESS PROCESS IMPLEMENTATION
Stages of SOAD
Where are We in the SOA Lifecycle?
Basics
Business Process Diagram
Process Automation Challenges…
…More Challenges
BPEL
Variables
Partnership
Example: A Buy-Sell Partnership.
Modeling Partnership in BPEL
Simple Activities
Invoke Activity
Structured Activities
Process Development Phases
Phase II Process Definition
Phase III Process Compilation
Phase IV Process Deployment
Phase VProcess Execution
What Is a Good Process Design?
Follow Integration Patterns
Example: A Simple Process
Additional Process Design Considerations
CHAPTER 17. SERVICE COMPONENT ARCHITECTURE(SCA)
Need For a New Programming Model …
Need For a New Programming Model
SCA Vendor Support
Service Component Architecture
SCA Basics
Assembling Services
SCA Components
Service Components
References and Wires
Wiring Example
Service Components
Imports
Export
Imports and Exports
Service Implementation Types
CHAPTER 18. ADAPTERS
What is an Adapter?
Adapter Example
The Adapter Pattern
Resource Adapters
Custom Adapters
Adapter Based Services
Advantages of Adapter Based Services
Generating Adapter Based Services
Communication Modes
Outbound Communication
Inbound Communication
CHAPTER 19. INFORMATION MANAGEMENT IN SOA
Introduction
SOA and Enterprise Information Management
Replication Overview
Operational Challenges
SOA and Data Basics
Intro: Operational Data
Data Publishing Event
Modeling Events
Data Mediation
Data Format
Generic Data Model
Example Generic Data Model
Mapping Data
Loading Data
Extract Transform Load (ETL)
ETL and SOA
Data Federation
SOA Data Layering
Data Federation vs ETL
CHAPTER 20. SOA CHALLENGES AND RISKS
SOA Challenges and Risks
Emerging Standards
Emerging Standards (contd)
Selecting Tools and Infrastructure
Service Selection and Creation
Service Management
Portfolio Management
Paradigm Shifting
Communication
Policies and Compliance
Project Management
Training and Re-skilling
Governance and Risk Mitigation
CHAPTER 21. GOVERNANCE FUNDAMENTALS
The Strategic Role of IT
Governing IT
IT Infrastructure Library (ITIL)
ITIL: Managing IT Activities
ICT Infrastructure Management (ICTIM)
ICTIM Processes
Control Objectives for Information and related Technology (COBIT)
Need for SOA Governance
SOA Governance
SOA Governance Adoption
Key Governance Relationships
SOA Governance Elements
SOA Governance Procedures
Recommended Procedures
More Recommended Procedure
SOA Governance Policies
Enterprise Policies
Business Policies
Service Policies
SOA Governance Metrics
More SOA Governance Metrics
Some Best Practices
Relevant Standards Work
OASIS SOA-RM
Reference Model in Context
OASIS SOA-RA
CHAPTER 22. OVERVIEW OF SERVICE REGISTRIES
Services Registry
Why Do We Need a Service Registry?
Main Activities when Using a Registry
Publish
Discovery
Dynamic Discovery
Management
Enforce Governance Lifecycle
SOA Registry Products
CHAPTER 23. MESSAGING AND ASYNCHRONOUS COMMUNICATION
Introduction
Asynchronous SOA
Basic Messaging Patterns
SOA Callbacks …
Callback Example
Implementing Callbacks
BPEL Correlation Sets
Additional Uses of Callbacks
Non-Blocking Calls in SOA
Parallel Activity
One-Way Non-Blocking Calls
Assured Delivery
Implementing the Publish Subscribe Pattern
SOA Client Behavior
BPEL Events Handling
Event Handler Details 1/2
Event Handler Details 2/2
CHAPTER 24. ERROR HANDLING AND TRANSACTION
Introduction
Error Handling in a Service
Designing Faults
Error Handling in a Process
Fault Handler
Fault Handler Example
Raising Faults in a Process
Transaction in SOA …
Transaction in SOA
Transaction and Short Lived Business Process
Transaction and Long Lived Business Process
Example: Long Running Process
Transaction Context Propagation
Example: Transaction Context Propagation
Compensation
Compensation in a Microflow
Compensation in a Long Running Process
Example Compensation
Compensation Handler
Compensation Guidelines
CHAPTER 25. SOA SECURITY PATTERNS
Key Challenges in SOA Security
Authentication Pattern
Authorization Pattern
Confidentiality Pattern
Non-repudiation Pattern
Inter-organization Authentication Pattern
Single Sign On Pattern
Federated Security Pattern
CHAPTER 26. SOA PATTERNS
Patterns: Introduction
SOA / EAI Patterns
Messaging Problem #1
Asynchronous Queuing Pattern – 1/2
Asynchronous Queuing Pattern – 2/2
Asynchronous Queuing Pattern Illustration
Messaging Problem #2
Event-Driven Messaging Pattern
Event Messaging Pattern Illustration
Messaging Problem #3
Reliable Messaging Pattern
Reliable Messaging Pattern Illustration
Protocol Integration Problem #1
Adapter Pattern
Adapter Pattern Illustration
Protocol Integration Problem #2
Canonical Protocol Pattern
Canonical Protocol Pattern Illustration
Protocol Integration Problem #3
Protocol Bridging Pattern
Protocol Bridging Pattern Illustration
Data Management Problem #1
Canonical Data Format Pattern
Canonical Data Format Illustration
Data Management Problem #2
Data Transformation Pattern
Data Transformation Illustration
Data Management Problem #3
Data Management Problem #3 (cont’d)
Schema Centralization Pattern
Schema Centralization Illustration
Service Design Problem #1
Service Design Problem #1 (cont)
Intermediate Routing Pattern
Intermediate Routing Illustration
Service Design Problem #2
Decoupled Contract Pattern
Decoupled Contract Illustration
Decoupled Contract Another Illustration
Service Design Problem #3
Service Encapsulation Pattern
Service Encapsulation Illustration
Service Design Problem #4
Service Decomposition Pattern
Service Decomposition Illustration
CHAPTER 27. SOA ANTIPATTERNS
What are Antipatterns?
Technology-driven SOA Adoption
So What’s New?
SOA Is the Cure All
Web Service is SOA
The Silo Approach
Fine Grained Service
Point-to-Point Communication
Stateful Services
CHAPTER 28. SOA INFRASTRUCTURE AND TOOLS
SOA Infrastructure and Tools
Network Appliances
Enterprise Service Bus
Service Container
Business Rules Engine
Business Activity Monitoring
Service & Policy Management
Business Process Engine
Service Registry
Service Repository
Development Tools
Tool Combinations
What is the minimum?
CHAPTER 29. GLOSSARY
Glossary
CHAPTER 30. SERVICE ORIENTED MODELING AND ARCHITECTURE (SOMA)
Introduction
SOMA
The Rational Unified Process
SOMA & RUP
CHAPTER 31. WS BPEL 2.0 A TECHNICAL OVERVIEW
WS BPEL 2.0
Motivation
History
Basics
BPEL Usage
BPEL Constructs
BPEL Constructs
Activities
BPEL Documents
Imports
Partner Links
Example: a Buy-Sell Partnership
Modeling Partnership in BPEL
Variables
Variable Properties
Correlation Sets
BPEL Activities
Standard Attributes
BPEL Basic Activities – invoke
BPEL Basic Activities – receive
BPEL Basic Activities – assign
BPEL Basic Activities – throw
BPEL Basic Activities – rethrow
BPEL Basic Activities – wait
BPEL Basic Activities – empty
BPEL Basic Activities – exit
Structured Activities – sequence
Structured Activities – if
Structured Activities – while
Structured Activities – repeatUntil
Structured Activities – pick
Structured Activities – flow
Structured Activities – forEach
BPEL Scopes
BPEL Handlers