Cover image for Essential Business Process Modeling

Book description

Ten years ago, groupware bundled with email and calendar applications helped track the flow of work from person to person within an organization. Workflow in today's enterprise means more monitoring and orchestrating massive systems. A new technology called Business Process Management, or BPM, helps software architects and developers design, code, run, administer, and monitor complex network-based business processes

Sound complicated? It is. But it's downright frustrating when you have to search the Web for every little piece of information vital to the process. Essential Business Process Modeling gathers all the concepts, design, architecture, and standard specifications of BPM into one concise book, and offers hands-on examples that illustrate BPM's approach to process notation, execution, administration and monitoring.

Author Mike Havey demonstrates standard ways to code rigorous processes that are centerpieces of a service-oriented architecture (SOA), which defines how networks interact so that one can perform a service for the other. His book also shows how BPM complements enterprise application integration (EAI), a method for moving from older applications to new ones, and Enterprise Service BUS for integrating different web services, messaging, and XML technologies into a single network. BPM, he says, is to this collection of services what a conductor is to musicians in an orchestra: it coordinates their actions in the performance of a larger composition.

Essential Business Process Modeling teaches you how to develop examples of process-oriented applications using free tools that can be run on an average PC or laptop. You'll also learn about BPM design patterns and best practices, as well as some underlying theory. The best way to monitor processes within an enterprise is with BPM, and the best way to navigate BPM is with this valuable book.

BPM replaces those sketchy flowchart diagrams that business analysts draw on whiteboards with a precise model that uses standard graphical and XML representations, and an architecture that allows it converse with other services, systems, and users.

Table of Contents

  1. Essential Business Process Modeling
    1. SPECIAL OFFER: Upgrade this ebook with O’Reilly
    2. A Note Regarding Supplemental Files
    3. Preface
      1. Audience
      2. Assumptions This Book Makes
      3. Contents of This Book
      4. Conventions Used in This Book
      5. Using Code Examples
      6. Safari Enabled
      7. We'd Like to Hear from You
      8. Acknowledgments
    4. I. Concepts
      1. One. Introduction to Business Process Modeling
        1. 1.1. The Benefits of BPM
        2. 1.2. BPM Acid Test: The Process-Oriented Application
        3. 1.3. The Morass of BPM
          1. 1.3.1. Standards
          2. 1.3.2. Vendors
          3. 1.3.3. BPM Theory
        4. 1.4. Workflow
        5. 1.5. Roadmap
        6. 1.6. Summary
        7. 1.7. References
      2. Two. Prescription for a Good BPM Architecture
        1. 2.1. Designing a Solution
          1. 2.1.1. Understanding the Problem
          2. 2.1.2. The Local Perspective Guided by the Global Contract
          3. 2.1.3. Components of a Good Design
          4. 2.1.4. Run It on an Application Server
        2. 2.2. Components of the Design
          1. 2.2.1. Notation and Graphical Tool
          2. 2.2.2. Runtime Engine
          3. 2.2.3. Human Interaction
          4. 2.2.4. System Interaction
            1. 2.2.4.1. Adapters
            2. 2.2.4.2. The process is a web service
          5. 2.2.5. Administration and Monitoring
            1. 2.2.5.1. Persistence
            2. 2.2.5.2. Process versioning basics
            3. 2.2.5.3. BAM and process mining
          6. 2.2.6. Local View of Choreography: WS-CDL Toolkit
        3. 2.3. Standards
        4. 2.4. Summary
        5. 2.5. Reference
      3. Three. The Scenic Tour of Process Theory
        1. 3.1. Family Tree
        2. 3.2. The Pi-Calculus
          1. 3.2.1. The Pi-Calculus in a Nutshell
          2. 3.2.2. The Pi-Calculus and BPM
        3. 3.3. Petri Nets
          1. 3.3.1. Petri Nets in a Nutshell
            1. 3.3.1.1. Example
            2. 3.3.1.2. Petri Net Extensions
          2. 3.3.2. Petri Nets and BPM Patterns
            1. 3.3.2.1. AND and XOR split and join
            2. 3.3.2.2. Dead path elimination
          3. 3.3.3. Petri Nets and the Standards
        4. 3.4. State Machines and Activity Diagrams
          1. 3.4.1. State Machines and Activity Diagrams in a Nutshell
          2. 3.4.2. The Dualistic Activity Diagram: Flow Chart and State Machine
          3. 3.4.3. State, Activity, and the Standards
          4. 3.4.4. Event-Driven Process Chains
        5. 3.5. Summary
        6. 3.6. References
      4. Four. Process Design Patterns
        1. 4.1. Design Patterns and the GoF
        2. 4.2. Process Patterns and the P4
          1. Basic Patterns
          2. Advanced Branch and Join Patterns
          3. Structural Patterns
          4. Multiple Instances Patterns
          5. State-Based Patterns
          6. Cancellation Patterns
        3. 4.3. Yet Another Workflow Language (YAWL)
        4. 4.4. Additional Patterns
          1. 2.4.1. Communication Patterns
          2. 4.4.2. Human Workflow
        5. 4.5. Process Coding Standards
        6. 4.6. Summary
        7. 4.7. References
    5. II. Standards
      1. Five. Business Process Execution Language (BPEL)
        1. 5.1. Anatomy of a Process
        2. 5.2. BPEL Example
        3. 5.3. BPEL in a Nutshell
          1. 5.3.1. Basic Process Structure: Start, End, Activities, Sequence
          2. 5.3.2. Variables and Assignments
          3. 5.3.3. Exception Handling and Compensation
            1. 5.3.3.1. Compensation handler
            2. 5.3.3.2. Fault handler
            3. 5.3.3.3. Event handler
          4. 5.3.4. Split and Join
            1. 5.3.3.4. switch
            2. 5.3.3.5. flow
              1. 5.3.3.5.1. Parallel split and join
              2. 5.3.3.5.2. Links and synchronization dependencies
              3. 5.3.3.5.3. Dead path elimination
          5. 5.3.5. Loops
            1. 5.3.5.1. while
            2. 5.3.5.2. Implementing foreach
          6. 5.3.6. Participant Exchange
            1. 5.3.6.1. Partner link types
            2. 5.3.6.2. Partner links
            3. 5.3.6.3. Partners
            4. 5.3.6.4. Partner interactions
              1. 5.3.6.4.1. invoke
              2. 5.3.6.4.2. receive
              3. 5.3.6.4.3. reply
              4. 5.3.6.4.4. pick
            5. 5.3.6.5. Properties
            6. 5.3.6.6. Correlation
          7. 5.3.7. Transactions
          8. 5.3.8. Extensions
        4. 5.4. BPELJ
          1. 5.4.1. A Glimpse of BPELJ
          2. 5.4.2. BPELJ Source Code
          3. 5.4.3. Other Language Implementations
        5. 5.5. BPEL and Patterns
        6. 5.6. Summary
        7. 5.7. References
      2. Six. BPMI Standards: BPMN and BPML
        1. 6.1. BPMN
          1. 6.1.1. BPMN Example
          2. 6.1.2. BPMN in a Nutshell
            1. 6.1.2.1. Basic process structure: start, end, activities, sequence
            2. 6.1.2.2. Variables and assignments
            3. 6.1.2.3. Exception handling and compensation
            4. 6.1.2.4. Split and join
            5. 6.1.2.5. Loops
            6. 6.1.2.6. Participant exchange
            7. 6.1.2.7. Transactions
            8. 6.1.2.8. Extensions
          3. 6.1.3. BPEL Mapping
          4. 6.1.4. BPMN and Patterns
        2. 6.2. BPML
          1. 6.2.1. BPML Example
          2. 6.2.2. BPML in a Nutshell
            1. 6.2.2.1. Basic process structure: start, end, activities, sequence
            2. 6.2.2.2. Variables and assignments
            3. 6.2.2.3. Exception handling and compensation
            4. 6.2.2.4. Split and join
            5. 6.2.2.5. Loops
            6. 6.2.2.6. Participant exchange
            7. 6.2.2.7. Transactions
            8. 6.2.2.8. Extensions
          3. 6.2.3. BPML and Patterns
        3. 6.3. Summary
        4. 6.4. Reference
      3. Seven. The Workflow Management Coalition (WfMC)
        1. 7.1. The Reference Model
        2. 7.2. XPDL
          1. 7.2.1. The XPDL Model
          2. 7.2.2. XPDL Example
          3. 7.2.3. XPDL Elements
            1. 7.2.3.1. Basic process structure
            2. 7.2.3.2. Variables and assignments
            3. 7.2.3.3. Exception handling and compensation
            4. 7.2.3.4. Split and join
            5. 7.2.3.5. Loops
            6. 7.2.3.6. Participant exchange
            7. 7.2.3.7. Transactions
            8. 7.2.3.8. Extensions
          4. 7.2.4. XPDL and Patterns
        3. 7.3. WAPI
          1. 7.3.1. WAPI Functional Categories
            1. 7.3.1.1. Connection
            2. 7.3.1.2. Process control
            3. 7.3.1.3. Activity control
            4. 7.3.1.4. Worklist
            5. 7.3.1.5. Administration
            6. 7.3.1.6. Application invocation
          2. 7.3.2. WAPI Example: Complete All My Tasks
        4. 7.4. WfXML
          1. 7.4.1. WfXML Specification
          2. 7.4.2. WfXML Example
        5. 7.5. Summary
        6. 7.6. References
      4. Eight. World Wide Web Consortium (W3C): Choreography
        1. 8.1. About the W3C
        2. 8.2. Choreography and Orchestration
        3. 8.3. WS-CDL
          1. 8.3.1. Overview of WS-CDL
          2. 8.3.2. WS-CDL Example
          3. 8.3.3. Strengths of WS-CDL
          4. 8.3.4. The Future of WS-CDL
        4. 8.4. WSCI
          1. 8.4.1. Anatomy of a WSCI Application
          2. 8.4.2. WSCI Interface
          3. 8.4.3. WSCI Global Model
            1. 8.4.3.1. Writing a WSCI global model
          4. 8.4.4. Weaknesses in WSCI
          5. 8.4.5. The Future of WSCI
        5. 8.5. WSCL
          1. 8.5.1. Writing a WSCL Application
          2. 8.5.2. Weaknesses in WSCL
          3. 8.5.3. The Future of WSCL
        6. 8.6. Summary
        7. 8.7. References
      5. Nine. Other BPM Models
        1. 9.1. OMG: Model-Driven BPM
          1. 9.1.1. Model-Driven Architecture
          2. 9.1.2. BPM and MDA
            1. 9.1.2.1. BPDM
            2. 9.1.2.2. BPRI
            3. 9.1.2.3. UML to BPEL: IBM's emerging technologies toolkit
            4. 9.1.2.4. Other OMG BPM RFPs
        2. 9.2. ebXML BPSS: Collaboration
        3. 9.3. Microsoft XLANG: BPEL Forerunner
        4. 9.4. IBM WSFL: BPEL Forerunner
        5. 9.5. BPEL, XLANG, and WSFL
        6. 9.6. Summary
        7. 9.7. References
    6. III. Examples
      1. Ten. Example: Human Workflow in Insurance Claims Processing
        1. 10.1. Oracle BPEL Process Manager
        2. 10.2. Setting Up the Environment
        3. 10.3. Developing the Example
          1. 10.3.1. Create the Project and Define its WSDL
          2. 10.3.2. Create Variables, Partner Links, and Correlation
          3. 10.3.3. Add Flow and a Manual Task
          4. 10.3.4. Complete the Coding
          5. 10.3.5. A Killer App
        4. 10.4. Testing the Example
          1. 10.4.1. Test Case 1: Accepted on Escalation
          2. 10.4.2. Test Case 2: Kill
        5. 10.5. Summary
        6. 10.6. References
      2. Eleven. Example: Enterprise Message Broker
        1. 11.1. What Is a Message Broker?
          1. 11.1.1. BPM and Message Broker
        2. 11.2. Example: Employee Benefits Message Broker
          1. 11.2.1. BPMN Process Models
            1. 11.2.1.1. The Life Event process
            2. 11.2.1.2. The Pension process
            3. 11.2.1.3. The Medical process
          2. 11.2.2. BPEL Processes
            1. 11.2.2.1. Canonical XML
            2. 11.2.2.2. The Life Event process
            3. 11.2.2.3. The Pension process
            4. 11.2.2.4. The Medical process
            5. 11.2.2.5. Testing the Broker
        3. 11.3. Summary
    7. Key BPM Acronymns
    8. About the Author
    9. Colophon
    10. SPECIAL OFFER: Upgrade this ebook with O’Reilly