SOA Fundamentals
Objectives
SOA in Context
Defining SOA
What makes a good design?
The SOA Umbrella
What s a Service?
Service Actors
Serving up SOA
SOA and Business Process Management
BPM Value Add
SOA Governance
SOA Governance Model
SOA Job Role Impact
SOA Value
Is this a New Concept?
Service Orienting the Enterprise
Service Oriented Thinking
SOA is Perfect
Service Characteristics
About Services in SOA
Contract-driven software
SOA Standards
Summary
SOA Case Study
Objectives
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
Summary
Introduction to Web Services
Objectives
A Conceptual Look at Services
Defining Services
Service Communication Analogy
Three Key Service Questions
Connecting the Dots
SOA Runtime Implementation
What is a Web Service?
Enterprise Assets as Services
Typical Development Workflow
Advantages of Web Services
Web Service Business Models
Example: Internal System Integration
Example: Business Process Externalization
Binding via SOAP
SOAP in Protocol Stack
SOAP Structure
SOAP Message Architecture
Applying SOAP
Interface via WSDL
WSDL Structure
Applying WSDL
Locating a Service
UDDI Overview
UDDI Terminology
UDDI Structure
Applying UDDI
WS-I Overview
WS-I Deliverables
Summary
Enterprise Service Bus (ESB)
Objectives
SOA and the ESB Pattern
Loose Coupling
Service Invocation
Business Process
Data Integration
Enterprise Service Bus (ESB)
Legacy System Integration
Unsupported Protocol
The Role of ESB in SOA
ESB: Software Artifacts
ESB - Software Artifacts
Business Process
Business Process: Example
Minimum ESB Capabilities
Minimum ESB Capabilities: Integration
Minimum ESB Capabilities: Communication
Minimum ESB Capabilities: Service Interaction
Minimum ESB Capabilities: Management
Security and ESB
Summary
Layers of Services
Objectives
What is Layering?
SOA Layers
Common Layers
Auxiliary Layers
Digesting the Layers
The Application Service Layer
The Business Service Layer
The Orchestration Layer
Layering Rules of Thumb
SOA User Interface
Portal Site's Context Awareness
Web 2.0 Data Aggregation
Summary
SOA Value Proposition
Objectives
The SOA Value Proposition
Reducing integration expense
Integration costs illustration
Ripple effect of changes
The value of SOA layering
SOA reduces integration costs
Increasing asset reuse
Asset reuse illustration
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
We Can Easily Change the Process
Reducing business risk
Risk reduction illustration
SOA Eases Compliance Risk
Other Advantages
Business Advantages
Hasn’t this been said before?
Hasn’t this been said before?
ROI Quantification Hurdles
Real World SOA Example 1
Real World SOA Example 2
Real World SOA Example 3
Real World SOA Example 4
Summary
Introduction to Service Oriented Analysis & Design (SOAD)
Objectives
Introduction to SOAD
Applying OOAD Principles
Abstraction
Abstraction in SOAD
Encapsulation
Encapsulation in SOAD
Modularity
Modularity in SOAD
Hierarchy
Hierarchy 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 Modeling
Stage 2: Service Identification
Stage 3: Service Implementation
Stage 4: Process Implementation
SOAD Stages and SOA Lifecycle
Summary
Stage 1: Business Modeling and Use Cases
Objectives
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
Return Handling Use Case
Modeling the Business Processes
Use Case and Business Process
The Return Handling Process Model
Return Handling Process Model
Trading Partner Design Pattern
The UML Alternative
Best Practices
Summary
Software Platform for SOA
Objectives
SOA Development Iteration
Types of Software Needed to Support SOA
Oracle SOA Suite
IBM Software Offering
IBM WebSphere Process Server
IBM IT Service Management (ITSM) Tools
TIBCO BusinessWorks
TIBCO SmartMapper
webMethods Fabric
webMethods: Enterprise Service Platform (ESP)
webMethods: Business Process Management (BPM)
webMethods: Business Activity Monitoring (BAM)
webMethods: Composite Application Development
WebLogic Integration
Microsoft BizTalk Server 2006
Windows Workflow Foundation (WF)
Summary
Introduction to WebSphere Integration Developer (WID) v6
Objectives
WebSphere Process Server v6
WebSphere Integration Developer (WID) v6
SCA Basics
Wiring Example
Key Features of WID
Perspectives, Views and Editors
Creating Artifacts
Unit Testing Artifacts
Summary
SOA Service Life Cycle
Objectives
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
Summary
Stage 2: Service Identification
Objectives
Stages of SOAD
Where are We in the SOA Lifecycle?
Stage 2: Service Identification
The Service Model
Developing a service model
Service Model Example #1
Service Model Example #2
Service Model Example #3
Service model granularity
SOAD Stage 2 Process
Identifying Services
Service Identification Check
Specify the Service Interface
Specify The Process Interface
Identify Services from UC001 Return Handling
Identify Services from UC001 Return Handling
Identify Services from UC001 Return Handling (continued)
Service Contract Template
Service Contract Template Part 2
Service Contract Template Part 3
Service Design Best Practices
Summary
XML Programming
Objectives
XML Overview
Data and Document Structure
An Employee Document
Tags
First XML Document
Markup Languages
What is XML ?
Why XML?
An Example of XML Document
Well-Formed v. Valid XML Document
Enforcing Validity: DTDs
Presentation Style
Sections of an XML Document
XML Elements
Nesting and Hierarchy of XML Elements
Tag Attributes
Naming Rules
Namespaces
Using Namespaces
Java API for XML
The XML Example
Example SAX Handler
Example: Begin Parsing
Once Again with Namespace
Using DOM to Parse
With Namespace Enabled
Example: Build DOM Document
Example: Save DOM Document in a File
Persisting XML
Summary
XML Schema Basics
Objectives
What is an XML Schema?
Role of XML Schema in SOA
Creating a Schema File
Defining a Simple Element
Defining a Complex Element
Defining Element Attributes
Referring to an Element From Another Element
Defining Abstract Data Types
Adding Restrictions
Referring to a Schema from an XML Document
Validating the XML Against the Schema
Summary
Web services Description Language (WSDL)
Objectives
WSDL Overview
WSDL Document Tags
WSDL Namespaces
Sample WSDL Document Structure
<definitions>
<import>
<types>
<message>
<portType>
<operation>
One-way <operation>
Request-Response <operation>
Solicit-Response <operation>
Notification <operation>
Modeling Simple Operation
Modeling Complex Operation
Modeling Complex Message
<binding>
More on <binding>
<binding> Syntax
SOAP Binding Example
<service> and <port>
More on <port>
WSDL SOAP Binding Extensions
soap:binding
soap:operation
RPC or Document Style?
WSDL API for Java
Summary
Simple Object Access Protocol (SOAP)
Objectives
SOAP Overview
SOAP in Protocol Stack
SOAP Components
SOAP HTTP Request Example
SOAP HTTP Response Example
Message Envelope
The Header Element
Header Attributes
SOAP Body
SOAP Fault
Communication Style
RPC/Encoded Style
RPC/Literal Style
Enabling RPC Styles
Document/Literal Style
Document/Literal Wrapped Style
Details of the Wrapped Style
Enabling Document Literal Style
Summary
Stage 3: Service Design and Implementation
Objectives
Stages of SOAD
Where are We in the SOA Lifecycle?
Introduction
How Is a Service Developed?
Top Down Development
Web Service Implementation Choices
Apply OOAD in New Service Development
Top-Down Summary
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
Interface Mapping
Implementing the Services for UC001 Return Handling
Best Practices
Summary
Web Services Software Development Methodology
Objectives
Need for a Software Methodology in Web Services
The Software Lifecycle
Software Lifecycle
Service Provider
Provider: Green Field
Provider: Top-down
Provider: Bottom-up
Provider: Meet in the Middle
The Service Requester
Summary
Stage 4: Business Process Implementation
Objectives
Stages of SOAD
Where are We in the SOA Lifecycle?
Basics
Business Process Diagram
Challenges in Process Implementation
Challenges in Process Implementation
BPEL
Variables
Partnership
Example: A Buy-Sell Partnership
Modeling Partnership in BPEL
Simple Activities
Invoke Activity
Structured Activities
Lifecycle of Process Development
Lifecycle of Process Development
Phase II Process Definition Details
Phase III Compilation Details
Phase IV Deployment Details
Phase V Business Process Execution
What Is a Good Process Design?
Follow Integration Patterns
Example: A Simple Process
Additional Process Design Considerations
Summary
Applying Traditional Security to SOA
Objectives
Public Key Infrastructure (PKI)
Digital Signature
Digital Signature Process
Certificates
Authentication
Basic HTTP Authentication
Secure Socket Layer (SSL)
Basic Authentication Over HTTPS
Securing non-HTTP Traffic
Summary
SOA Security Standards
Objectives
SOA Security Model
SOA Security Policies
Transport Level Security Policy
Message Level Security Policy
Data Level Security Policy
Overview of Web Services Security
Securing XML Data
XML Digital Signatures
XML Encryption
WS-Security Tokens
WS-Security Considerations
Putting it all together
Phase 1: The Service-side
Phase 1: Build a secure service
Phase 2: The Client
Phase 2: Build a secure client
Phase 3: Production
Audit Tracking
Identity Assertion Using SAML
SAML SOAP Example
Summary
Introduction to SOA Testing
Introduction
The SOA Components to Test
SOA Testing Challenges
Layered Component Testing
Testing the SOA Layers
Phased Testing
Parts of a Test Framework
Unit Testing SOA Components
Introduction
Unit Testing a Web Service
Other Types of Services
Verification Scenarios
Unit Testing Guidance
Unit Testing SOA Components
More Details Testing Data Maps
Data Map Test Guidance
More Details Business Process
Unit Testing Business Process
Business Process Test Guidance
Human workflow
Unit Test Human Interface
Human Interface Test Guidance
White Box Testing
Integration Test
Introduction
Types of Integration Tests
The Governance Aspect
Component Ownership
Setting Up a Service Integration Test System
Setting Up a Process Integration Test System
Creating a Script To Test a Service
Running a Test Case for a Service
Creating a Business Process Test Script
Running a Test Case for a Process
Non-Functional Testing
Introduction
Performance Testing
Security Testing
Common Web Service Attacks
Interoperability Testing
WS-Interoperability
Interoperability Testing a Service
Interoperability Testing a Business Process
.NET Interoperability
Process State Persistence Testing
Process Versioning Testing
SOA Challenges and Risks
Objectives
SOA Challenges and Risks
Emerging Standards
Emerging Standards (cont'd)
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
Summary
SOA Patterns
Objectives
Patterns: Introduction
SOA Patterns
Messaging Channel Patterns
Messaging Channel Patterns for SOA
Messaging Channel Patterns
Messaging Channel Patterns for SOA
Messaging Channel Patterns
Message Type Pattern
Deferred Response in SOA
Message Routing Patterns
Message Routing Patterns in SOA
Message Transformation Patterns
Message Transformation Patterns in SOA
Summary
SOA Antipatterns
Objectives
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
Summary
Scenario
Objectives
Appendix A. Introduction to UDDI
Objectives
UDDI Overview
UDDI in Web Services Architecture
UDDI
Businesses and Services in UDDI
Static and Dynamic Web Services
UDDI Registry Structure
UDDI Registry Structure -tModel
UDDI Registry Structure
UDDI Interactions
UDDI in WebSphere
Summary