Process-Centric Architecture for Enterprise Software Systems

Book description

The increasing adoption of Business Process Management (BPM) has inspired pioneering software architects and developers to effectively leverage BPM-based software and process-centric architecture (PCA) to create software systems that enable essential business processes. Reflecting this emerging trend and evolving field, Process-Centric Architecture for Enterprise Software Systems provides a complete and accessible introduction explaining this architecture. The text presents, in detail, the analysis and design principles used in process-centric architecture. Illustrative examples demonstrate how to architect and design enterprise systems based on the business processes central to your organization. It covers the architectural aspects of business process management, the evolution of IT systems in enterprises, the importance of a business process focus, the role of workflows, business rules, enterprise application integration, and business process modeling languages such as WS-BPEL and BPML. It also investigates: Fundamental concepts of process-centric architecture style The PCA approach to architecting enterprise IT systems Business process driven applications and integration Two case studies that illustrate how to architect and design enterprise applications based on PCA SOA in the context of process-centric architecture Standards, technologies, and infrastructure behind PCA Explaining how to architect enterprise systems using a BPMS technology platform, J2EE components, and Web services, this forward-looking book will empower you to create systems centered on business processes and make today's enterprise processes successful and agile.

Table of contents

  1. Cover
  2. Half Title
  3. Title Page
  4. Copyright Page
  5. Dedication
  6. Table of Contents
  7. Preface
  8. Acknowledgments
  9. Author
  10. Part I The Process-Centric Architecture Paradigm
    1. 1 Introduction
      1. 1.1 Objectives
      2. 1.2 Enterprise Software Systems
      3. 1.3 Architecture for Systems
        1. 1.3.1 IT Architecture
        2. 1.3.2 IT System Architecture
        3. 1.3.3 Architectural Styles and Patterns
      4. 1.4 Introduction to Business Processes
      5. 1.5 Activities in Business Processes
      6. 1.6 Types of Activities
        1. 1.6.1 Manual
        2. 1.6.2 System
      7. 1.7 Importance of Business Processes to Enterprise
        1. 1.7.1 Processes Are Unique
          1. 1.7.1.1 Work Culture
          2. 1.7.1.2 Change
          3. 1.7.1.3 Employees/People
          4. 1.7.1.4 Systems
          5. 1.7.1.5 Vision and Mission
        2. 1.7.2 Processes Are Organization Wide
      8. 1.8 Process-Centric Architecture—A Quick Introduction
        1. 1.8.1 Background
        2. 1.8.2 Concept
        3. 1.8.3 Benefits
        4. 1.8.4 The Book
      9. 1.9 Exercise Questions
    2. 2 Evolution of IT Architecture
      1. 2.1 Objectives
      2. 2.2 Historical Perspective on Enterprise Computing Architectures
        1. 2.2.1 The 1960s
        2. 2.2.2 The 1970s
        3. 2.2.3 The 1980s
        4. 2.2.4 The 1990s
        5. 2.2.5 The 2000s
      3. 2.3 Traditional Ways of Supporting Business
      4. 2.4 Workflows
      5. 2.5 Packages
      6. 2.6 Integration
      7. 2.7 Business-IT Gap
      8. 2.8 Exercise Questions
    3. 3 Concept of Process-Centric Architecture
      1. 3.1 Objectives
      2. 3.2 The Case for a New Approach
      3. 3.3 What Is Process-Centric Architecture?
      4. 3.4 Process Logic Abstraction
      5. 3.5 Qualities Addressed
      6. 3.6 Structure
        1. 3.6.1 Business Process Model
        2. 3.6.2 Process Layer
        3. 3.6.3 Business Logic Elements
        4. 3.6.4 UI Application Layer
        5. 3.6.5 Clients
        6. 3.6.6 Business Rules Layer
      7. 3.7 Dynamics
      8. 3.8 Principles
        1. 3.8.1 Business Process-Driven System
        2. 3.8.2 Highly Abstracted Components
        3. 3.8.3 Automated Processes
        4. 3.8.4 Process Thinking Oriented
        5. 3.8.5 Explicit Processes
        6. 3.8.6 Flexible Processes
        7. 3.8.7 Service-Based Activities
        8. 3.8.8 Implementation-Isolated Processes
        9. 3.8.9 Executable Process Specifications
        10. 3.8.10 Interacting Processes
        11. 3.8.11 Business Controlled System
        12. 3.8.12 Reusable Processes
        13. 3.8.13 Mobile Processes
        14. 3.8.14 Process-Level Programming
          1. 3.8.14.1 New Programming Abstraction
          2. 3.8.14.2 Minimized Coding
        15. 3.8.15 Composable Processes
        16. 3.8.16 Autonomous Processes
      9. 3.9 Integration Concept as Handled in PCA
      10. 3.10 Workflow in PCA
      11. 3.11 Holistic View in Architecture
      12. 3.12 Similar Approaches
      13. 3.13 PCA in the Context of Other Architectures
      14. 3.14 Exercise Questions
    4. 4 Business Process Management
      1. 4.1 Objectives
      2. 4.2 What Is BPM?
      3. 4.3 PCA and BPM
      4. 4.4 Business Process Life Cycle
        1. 4.4.1 Process Design
        2. 4.4.2 Process Modeling
        3. 4.4.3 Process Simulation
        4. 4.4.4 Process Design-Time Optimization
        5. 4.4.5 Process Deployment
        6. 4.4.6 Process Execution
        7. 4.4.7 Process Monitoring
        8. 4.4.8 Process Analysis
        9. 4.4.9 Process Optimization
      5. 4.5 Six Sigma
      6. 4.6 Lean
      7. 4.7 Process Redesign
      8. 4.8 Process Automation
      9. 4.9 BPMS Products
      10. 4.10 BPM Landscape
      11. 4.11 Exercise Questions
    5. 5 Components of PCA
      1. 5.1 Objectives
      2. 5.2 The Business Process Model
        1. 5.2.1 Structure
        2. 5.2.2 Relationships
          1. 5.2.2.1 Business Logic Elements
          2. 5.2.2.2 The Process Layer
        3. 5.2.3 Properties of Processes
        4. 5.2.4 Levels of Models
          1. 5.2.4.1 High-Level Business Process Model
          2. 5.2.4.2 Executable Process Model
      3. 5.3 Process Layer
        1. 5.3.1 Responsibilities
        2. 5.3.2 Interrelationships
          1. 5.3.2.1 Process Model
          2. 5.3.2.2 Business Logic Elements
          3. 5.3.2.3 UI Application Layer
          4. 5.3.2.4 External Process Systems or Other Processes
        3. 5.3.3 Structure
      4. 5.4 Business Logic Elements
        1. 5.4.1 Principles
      5. 5.5 User Interface Application Layer
      6. 5.6 Exercise Questions
    6. 6 Process Execution
      1. 6.1 Objectives
      2. 6.2 Deployment
      3. 6.3 Execution
        1. 6.3.1 System Participation
          1. 6.3.1.1 Solicit-Response
          2. 6.3.1.2 Notification
          3. 6.3.1.3 Request-Response
          4. 6.3.1.4 One-Way
        2. 6.3.2 Critical Aspects at Run-Time
          1. 6.3.2.1 Errors
          2. 6.3.2.2 Transactions
          3. 6.3.2.3 Compensation
          4. 6.3.2.4 Correlation
        3. 6.3.3 Human Participation
          1. 6.3.3.1 Allocation
          2. 6.3.3.2 Execution
          3. 6.3.3.3 Notification
        4. 6.3.4 Life-Cycle Stages
      4. 6.4 Addressing Integration
      5. 6.5 Workflow
      6. 6.6 Business Rules
      7. 6.7 Flows Handled in a Process
      8. 6.8 Exercise Questions
    7. 7 Benefits of Process-Centric Architecture
      1. 7.1 Objectives
      2. 7.2 Business Benefits
        1. 7.2.1 Business—IT Alignment
        2. 7.2.2 Better Control for Business
        3. 7.2.3 Reuse
        4. 7.2.4 Central Store of Processes
        5. 7.2.5 Process Management
        6. 7.2.6 Mergers and Acquisitions
      3. 7.3 Benefits to IT Systems
        1. 7.3.1 Flexibility
        2. 7.3.2 Agility
        3. 7.3.3 Interoperability
        4. 7.3.4 Scalability of the IT System Is Improved
        5. 7.3.5 Maintainability
      4. 7.4 Scalability of the PCA Style and Approach
      5. 7.5 Complexity versus Manageability
      6. 7.6 Raised Level of Abstraction for the IT System
      7. 7.7 Exercise Questions
  11. Part II Architecting it Systems, the Process-Centric Style (Designing PCA)
    1. 8 The Approach
      1. 8.1 Objectives
      2. 8.2 A Typical Manifestation of Process-Centric Architecture
        1. 8.2.1 The Architecture
          1. 8.2.1.1 Process Engine
          2. 8.2.1.2 Process Repository
          3. 8.2.1.3 Applications
          4. 8.2.1.4 Application Server
          5. 8.2.1.5 Adapter Layer
          6. 8.2.1.6 Business Rules Engine
          7. 8.2.1.7 Web Server
        2. 8.2.2 Legacy Components
      3. 8.3 Architectural Design in PCA
        1. 8.3.1 When to Apply?
        2. 8.3.2 How to Apply?
          1. 8.3.2.1 Modeling Business Processes—Prerequisites
          2. 8.3.2.2 Top-Down Approach (or Leaned to Top Approach)
        3. 8.3.3 Levels of Models
          1. 8.3.3.1 High-Level Business Process Modeling
          2. 8.3.3.2 Executable Business Process Modeling
      4. 8.4 Re-Architecting an Existing IT System for PCA
        1. 8.4.1 A Scenario
        2. 8.4.2 Approach
          1. 8.4.2.1 Justification
          2. 8.4.2.2 Re-Architecture
      5. 8.5 Addition of an IT Subsystem to an Existing IT System
      6. 8.6 Exercise Questions
    2. 9 SOA for Services
      1. 9.1 Objectives
      2. 9.2 Services
      3. 9.3 Service-Oriented Architecture
      4. 9.4 Bottom-Up Approach
      5. 9.5 Need for SOA in PCA
      6. 9.6 Complementary Approach to Architectural Design
        1. 9.6.1 Context
        2. 9.6.2 Top-Down
        3. 9.6.3 Design of Services in the Context of PCA
        4. 9.6.4 Leverage What Is Available
        5. 9.6.5 Binding
        6. 9.6.6 Complementary
      7. 9.7 Exercise Questions
    3. 10 Standards and Technologies
      1. 10.1 Objectives
      2. 10.2 Standards
      3. 10.3 Process Modeling Standards
        1. 10.3.1 BPMN
        2. 10.3.2 XPDL™
      4. 10.4 Process Execution Standards
        1. 10.4.1 WS-BPEL
          1. 10.4.1.1 A Combination of Interoperability Standards...
          2. 10.4.1.2 Structure
          3. 10.4.1.3 Bindings
          4. 10.4.1.4 Extensions
        2. 10.4.2 BPML
      5. 10.5 Inter-Process Layer Interactions
      6. 10.6 Business Logic Interaction Standards
      7. 10.7 Technologies and Tools
        1. 10.7.1 Process Component and Process Layer
        2. 10.7.2 Adapter Layer or Collaboration Layer
        3. 10.7.3 Implementation of Business Logic
        4. 10.7.4 Server Components
        5. 10.7.5 Design-Time Component
        6. 10.7.6 Operations and Administration
      8. 10.8 Implementation Options
      9. 10.9 Exercise Questions
    4. 11 Case Study—Architectural Design Applying PCA
      1. 11.1 Objectives
      2. 11.2 Case Study I
        1. 11.2.1 Modeling of the Business Process
          1. 11.2.1.1 Design Rationale
        2. 11.2.2 Detail-Level Business Process Modeling
        3. 11.2.3 Logical Architecture
        4. 11.2.4 Services
      3. 11.3 Case Study II
        1. 11.3.1 The Process
        2. 11.3.2 Background Context
        3. 11.3.3 The Current System
          1. 11.3.3.1 Applications
          2. 11.3.3.2 Flow Support
          3. 11.3.3.3 Issues
        4. 11.3.4 The New System
          1. 11.3.4.1 The Business Process Model
          2. 11.3.4.2 Detailed Process Model
          3. 11.3.4.3 Services Design
          4. 11.3.4.4 User Activities
          5. 11.3.4.5 Executable Process Definition
          6. 11.3.4.6 Embodiment
      4. 11.4 Exercise Questions
    5. 12 Implementation Considerations
      1. 12.1 Objectives
      2. 12.2 Types of Business Processes
        1. 12.2.1 Rules-Centric
        2. 12.2.2 Workflow Oriented
        3. 12.2.3 STP Oriented
        4. 12.2.4 EAI Oriented
      3. 12.3 Process Infrastructure
        1. 12.3.1 Legacy BPMSs
          1. 12.3.1.1 Application Server Legacy
          2. 12.3.1.2 Workflow Legacy
          3. 12.3.1.3 EAI Legacy
          4. 12.3.1.4 Rule Engine Legacy
          5. 12.3.1.5 DMS Legacy
          6. 12.3.1.6 Package Legacy
        2. 12.3.2 Pure-Play BPMSs
      4. 12.4 Best Practices
      5. 12.5 Practicalities in Architectural Design
        1. 12.5.1 Some Common Situations
          1. 12.5.1.1 Recurrent Tasks
          2. 12.5.1.2 Making Task Nodes Work
          3. 12.5.1.3 Audit Data Capture
          4. 12.5.1.4 Batch Processing Platform
          5. 12.5.1.5 Workflow Application
          6. 12.5.1.6 Third-Party Data Integration
          7. 12.5.1.7 Business Activity Monitoring Application
          8. 12.5.1.8 Splitting the Responsibilities between the Specific Application and the Process Layer/BPMS
          9. 12.5.1.9 Existing System with a Process Engine
        2. 12.5.2 Anti-Patterns
          1. 12.5.2.1 Screen Chaining
          2. 12.5.2.2 Huge Data Transfer
          3. 12.5.2.3 Batch Integration with Legacy
      6. 12.6 Exercise Questions
  12. Bibliography
  13. Index

Product information

  • Title: Process-Centric Architecture for Enterprise Software Systems
  • Author(s): Parameswaran Seshan
  • Release date: June 2010
  • Publisher(s): Auerbach Publications
  • ISBN: 9781439857106