Table of Contents
Preface
Chapter 1: SOA Survival Guide
Chapter 2: Drawing SOA Architecture
Chapter 3: Separating BPM and SOA Processes
Chapter 4: Modeling Orchestration and Choreography
Chapter 5: Short and Long-Running Processes
Chapter 6: Flat Form
Chapter 7: Dynamic Processes and the Change Problem
Chapter 8: Simulating SOA
Chapter 9: Measuring SOA Complexity
Index
- Chapter 1: SOA Survival Guide
- SOA from 184 Billion Feet
- The Model Stack
- The Secret They Couldn't Hide—SOA is Process-Oriented
- Summary
- Chapter 2: Drawing SOA Architecture
- The 4+1 Structure of an SOA Architecture Document
- Using ARIS Methodology to Organize the Logical View
- Example—Competitive Enrollment
- Data and Service Interfaces for Retailer Enrollment
- BPMN Processes for Retailer Enrollment
- Enrollment Process
- Drop Process
- Switch Process
- ESB Processes
- Traceability to Functional Requirements
- Summary of BPMN Processes
- Service Composition of Retailer Enrollment Using SCA
- On Modeling Tools
- Summary
- Chapter 3: Separating BPM and SOA Processes
- The Model Stack
- A Reference Architecture
- Vendor Offerings
- Where Does BPEL Fit?
- Design Tips on Separating BPM and SOA
- Example—Process for Handling Credit Card Disputes
- Disputes on the Model Stack
- BPM-Oriented Disputes with TIBCO
- Architecture
- iProcess Business Processes
- BusinessWorks Orchestration Processes
- ActiveMatrix ESB Processes
- SOA-Oriented Disputes with BEA
- Architecture
- Weblogic Integration Orchestration Process
- About the Examples
- Summary
- The Model Stack
- Chapter 4: Modeling Orchestration and Choreography
- Choreography versus Orchestration
- Examples—Energy Enrollment, Email Bank Transfer
- Modeling Choreography in BPMN
- The Invisible Hub in BPEL
- Choreography in WS-CDL with Pi4SOA
- Defining Roles and Relationships
- Building a Control Flow of Interactions
- Generating a BPEL Role Process
- Tips on Modeling Orchestration
- Dependable Routing
- About the Examples
- Summary
- Chapter 5: Short and Long-Running Processes
- Process Duration—the Long and Short of It
- Stateful and Stateless Processes in BEA's Weblogic Integration
- How to Keep Long-Running State
- State in Oracle's BPEL Process Manager
- State in BEA's Weblogic Integration
- Our Own State Model
- Combining Short-Running Processes with State in TIBCO's BusinessWorks
- Our Use Case—Sending Money by Email
- The Router Process
- The Request Process
- The Transfer Process
- The Cancellation Process
- The Expiration Process
- A Note on Implementation
- Fast Short-Running BPEL
- Uses of Short-Running Processes
- Architecture for Short-Running Processes
- Example of a Very Fast Process
- Running the Very Fast Process on the Optimized Engine
- Managing Inbound Events and Timeouts
- Compiled Form
- Compiled Code—What Not To Do
- About the Examples
- Summary
- Process Duration—the Long and Short of It
- Chapter 6: Flat Form
- Our Use Case: Credit Card Disputes
- The Disputes Process as Requirements Flowchart
- Disputes in BPEL—Naïve Form
- Naïve BPEL
- The Flatness of Naive Approach
- Disputes in BPEL—Flat State Machine
- Dispute State Diagram
- State Diagram in BPEL
- The Flatness of State Form
- Disputes in BPEL: Flat Event Loop
- The BPEL Event Loop
- The Flatness of Event Form
- Disputes in BPEL: Flat Control Flow
- Arrow Surgery
- Managing Flow in BPEL
- The Flatness of Flow Form
- Flat Concurrency
- Long-Lived Concurrency
- How Not to Design the Voting Process
- The Flat Voting Process
- Advantages and Disadvantages of Flat Form
- About the Examples
- Summary
- Our Use Case: Credit Card Disputes
- Chapter 7: Dynamic Processes and the Change Problem
- The Change Problem
- A Risky Change
- A Riskier Change
- The "Change Region"
- Poor Man's Change: Versioning
- Process-Oriented Methods
- Pre-Migration Intelligence Process
- The Migration Process
- Post-Migration Intelligence Process
- Design Rationale
- Rule-Oriented Methods
- Goal-Oriented Methods
- Processes as Role Activity Diagrams
- Processes as Gantt Charts
- About the Examples
- Summary
- The Change Problem
- Chapter 8: Simulating SOA
- Simulation, and Why it Suits SOA
- Poisson Processes
- Poisson in Excel
- Discrete Event Simulation
- The Simulation Program
- Tracing a Web Service Simulation Run
- Discrete Simulation and the Real System: A Striking Contrast
- Non-Poisson Processes
- Poisson Processes
- The Ideal SOA Simulator
- BPEL Simulation Examples
- Scenarios
- Queues and Bursts in the Scenarios
- Interpreting the Results of a Simulation
- About the Examples
- Summary
- Simulation, and Why it Suits SOA
- Chapter 9: Measuring SOA Complexity
- Applying McCabe's Formula for BPEL and TIBCO BusinessWorks
- Calculating McCabe Complexity
- McCabe Complexity for BPEL
- McCabe Complexity for TIBCO's BusinessWorks
- A Better Formula for BPEL
- About the Examples
- Further Reading
- Summary
- Applying McCabe's Formula for BPEL and TIBCO BusinessWorks



