You are previewing Enterprise SOA: Service-Oriented Architecture Best Practices.
O'Reilly logo
Enterprise SOA: Service-Oriented Architecture Best Practices

Book Description

"By delivering SAP's next-generation applications based on a Services-Oriented Architecture, SAP is at the forefront of making Web services work for the enterprise. The Enterprise Services Architecture enables unprecedented flexibility in business process deployment, allowing companies to execute and innovate end-to-end processes across departments and companies, with minimum disruption to other systems and existing IT investments. This strategy comes to life with SAP NetWeaver, which is the technological foundation of the Enterprise Services Architecture. It provides easy integration of people, information, and systems in heterogeneous IT environments and provides a future proof application platform. Enterprise SOA provides readers with the architectural blueprints and SOA-driven project management strategies that are required to successfully adopt SOA on an enterprise level."

—Dr. Peter Graf, SVP Product Marketing, SAP

The SOA principles outlined in this book enable enterprises to leverage robust and proven middleware platforms, including CORBA, to build flexible and business-oriented service architectures. The authors also clearly describe the right strategies for using Model Driven Architecture (MDA) to manage SOA Service Repositories in a platform-independent way, enabling enterprises to better address the problem of heterogeneity at many levels. The Object Management Group was created just to address this central problem of integration in the face of constantly changing heterogeneity and platform churn, so I strongly recommend this book for the bookshelf of every enterprise architect and developer.

—Richard Mark Soley, Ph.D. chairman and chief executive officer, Object Management Group, Inc.

Enterprise SOA provides strategies that help large enterprises to increase the agility of their IT systems—one of the most pressing issues of contemporary IT. Covering both a business and architectural view, these strategies aim to promote the implementation of an IT infrastructure that can serve as a base for the development of truly flexible business processes. This book covers its subject with great profoundness based on real world evidence. It is in the interest of everybody involved with software architecture—particularly for anybody who intends to establish a Service-Oriented Architecture—to read this book.

—Dr. Helge Heß, director Business Process Management, IDS Scheer AG

"...The SOA principles described in this book are the foundation on which enterprises can build an IT architecture that will satisfy today's most important IT requirements—agility and flexibility—at affordable costs..."

—Martin Frick, Head of IT, Winterthur Group

Providing the roadmap for delivering on the promise of Service-Oriented Architecture

Enterprise SOA presents a complete roadmap for leveraging the principles of Service-Oriented Architectures to reduce cost and risk, improve efficiency and agility, and liberate your organization from the vagaries of changing technology.

  • Benefit from the lessons of four enterprise-level SOA case studies from Credit Suisse, Halifax Bank of Scotland, and other world-class enterprises

  • Make your business technology independent and manage infrastructure heterogeneity by focusing on architecture, not specific implementation techniques

  • Recognize the technical and nontechnical success factors for SOA in the enterprise

  • Define and communicate the economic value proposition of an SOA

  • Apply pragmatic design principles to solve the problems of data and process integrity in an SOA environment

Whether you're a manager, architect, analyst, or developer, if you must drive greater value from IT services, Enterprise SOA will show you how—from start to finish.

About the Authors

DIRK KRAFZIG, KARL BANKE, and DIRK SLAMA have many years of experience in enterprise IT, including project management and distributed system design for large-scale projects. This book subsumes the knowledge of Service-Oriented Architectures that they have acquired since 1998, when they made their first steps toward this new architecture paradigm.

About the Web Site

Web site www.enterprise-soa.com, provides a variety of supplemental material, including: articles, examples, and additional case studies.

© Copyright Pearson Education. All rights reserved.

Table of Contents

  1. Copyright
    1. Dedication
  2. Praise for Enterprise SOA
  3. The Coad Series
  4. Acknowledgments
  5. About the Authors
    1. Dirk Krafzig
    2. Karl Banke
    3. Dirk Slama
  6. Foreword
  7. Reader's Guide
    1. Who Should Read This Book
    2. A Roadmap for This Book
      1. Part I: Architectural Roadmap
      2. Part II: Organizational Roadmap
      3. Part III: Real-World Experience
  8. 1. An Enterprise IT Renovation Roadmap
    1. 1.1. Agony Versus Agility
    2. 1.2. Enterprise Software Is a Different Animal
    3. 1.3. The Importance of Enterprise Software Architectures
    4. 1.4. The Requirements for an Enterprise Software Architecture
    5. 1.5. The Relation of Enterprise Architecture and Enterprise Standards
    6. 1.6. Organizational Aspects
    7. 1.7. Lifelong Learning
    8. 1.8. The Enterprise IT Renovation Roadmap
  9. 2. Evolution of the Service Concept
    1. 2.1. Milestones of Enterprise Computing
    2. 2.2. Programming Paradigms
    3. 2.3. Distributed Computing
    4. 2.4. Business Computing
    5. 2.5. Conclusion
      1. References
        1. Bibliography
      2. URLs
  10. 3. Inventory of Distributed Computing Concepts
    1. 3.1. Heterogeneity of Communication Mechanisms
    2. 3.2. Communication Middleware
      1. 3.2.1. RPC
      2. 3.2.2. DISTRIBUTED OBJECTS
      3. 3.2.3. MOM
      4. 3.2.4. TRANSACTION MONITORS
      5. 3.2.5. APPLICATION SERVERS
    3. 3.3. Synchrony
    4. 3.4. Interface Versus Payload Semantics
      1. 3.4.1. DOCUMENT-CENTRIC MESSAGES
    5. 3.5. Tight Versus Loose Coupling
    6. 3.6. Conclusion
      1. References
        1. Bibliography
      2. URLs
  11. I. Architectural Roadmap
    1. 4. Service-Oriented Architectures
      1. 4.1. What Is a Software Architecture?
      2. 4.2. What Is a Service-Oriented Architecture?
      3. 4.3. Elements of a Service-Oriented Architecture
        1. 4.3.1. APPLICATION FRONTENDS
        2. 4.3.2. SERVICES
        3. 4.3.3. SERVICE REPOSITORY
          1. 4.3.3.1. Development-Time Binding
          2. 4.3.3.2. Runtime Binding
        4. 4.3.4. SERVICE BUS
      4. 4.4. Conclusion
        1. References
          1. Bibliography
        2. URLs
    2. 5. Services as Building Blocks
      1. 5.1. Service Types
        1. 5.1.1. MOTIVATION
        2. 5.1.2. CLASSIFICATION
        3. 5.1.3. BASIC SERVICES
          1. 5.1.3.1. Data-Centric Services
          2. 5.1.3.2. Logic-Centric Services
        4. 5.1.4. INTERMEDIARY SERVICES
          1. 5.1.4.1. Technology Gateways
          2. 5.1.4.2. Adapters
          3. 5.1.4.3. Façades
          4. 5.1.4.4. Functionality-Adding Services
        5. 5.1.5. PROCESS-CENTRIC SERVICES
        6. 5.1.6. PUBLIC ENTERPRISE SERVICES
      2. 5.2. Layers on the Enterprise Level
      3. 5.3. Conclusion
        1. References
          1. Bibliography
    3. 6. The Architectural Roadmap
      1. 6.1. The Architectural Roadmap
      2. 6.2. Fundamental SOA
      3. 6.3. Networked SOA
      4. 6.4. Process-Enabled SOA
      5. 6.5. Conclusion
    4. 7. SOA and Business Process Management
      1. 7.1. Introduction to BPM
        1. 7.1.1. BPM VERSUS BPMS
        2. 7.1.2. WHEN TO CHOOSE A BPMS
        3. 7.1.3. OVERVIEW OF A BPM SYSTEM
          1. 7.1.3.1. Modeling Languages
          2. 7.1.3.2. Architecture of a BPM System
        4. 7.1.4. VISION AND CAVEAT
      2. 7.2. BPM and the Process-Enabled SOA
        1. 7.2.1. THE PAST: DATA AND FUNCTIONS VERSUS OBJECTS VERSUS SERVICES
        2. 7.2.2. THE FUTURE: CORE BUSINESS LOGIC VERSUS PROCESS CONTROL LOGIC
        3. 7.2.3. DESIGN IMPLICATIONS FOR SOA ARCHITECTS
      3. 7.3. Conclusion
        1. References
          1. Bibliography
        2. URLs
    5. 8. Managing Process Integrity
      1. 8.1. Data Versus Process Integrity
        1. 8.1.1. DATA INTEGRITY
        2. 8.1.2. PROCESS INTEGRITY
        3. 8.1.3. TECHNICAL FAILURES VERSUS BUSINESS EXCEPTIONS
        4. 8.1.4. WHO OWNS THE PROCESS LOGIC?
      2. 8.2. Technical Concepts and Solutions
        1. 8.2.1. LOGGING AND T RACING
        2. 8.2.2. ACID TRANSACTIONS
        3. 8.2.3. TRANSACTION MONITORS AND DISTRIBUTED 2PC
        4. 8.2.4. PROBLEMS WITH 2PC AND TIGHTLY COUPLED ACID TRANSACTIONS
          1. 8.2.4.1. Performance
          2. 8.2.4.2. Lack of Support for Long-Lived Transactions
          3. 8.2.4.3. Problems with the Integration of Legacy Systems and Packaged Applications
          4. 8.2.4.4. Organizational Challenges
          5. 8.2.4.5. 2PC Is Not Suited for Discontinuous Networks
        5. 8.2.5. NESTED AND MULTILEVEL TRANSACTIONS
        6. 8.2.6. PERSISTENT QUEUES AND TRANSACTIONAL STEPS
        7. 8.2.7. T RANSACTION CHAINS AND COMPENSATION
        8. 8.2.8. SAGAS
        9. 8.2.9. BPM AND PROCESS INTEGRITY
        10. 8.2.10. RELATED WEB SERVICE STANDARDS
      3. 8.3. Recommendations for SOA Architects
        1. 8.3.1. EXAMPLE SCENARIO: TRAVEL ITINERARY MANAGEMENT
        2. 8.3.2. OPTIMISTIC CONCURRENCY CONTROL SHOULD BE THE DEFAULT
          1. 8.3.2.1. Implementing Optimistic Concurrency Control
          2. 8.3.2.2. Use of Optimistic Concurrency Control in the Example
          3. 8.3.2.3. Use of Pessimistic Concurrency Control in an Example
        3. 8.3.3. MAKE UPDATE OPERATIONS IDEMPOTENT
          1. 8.3.3.1. Use Sequence Numbers to Create Idempotent Update Operations
          2. 8.3.3.2. Idempotent Operations Simplify Error Handling
        4. 8.3.4. AVOID DISTRIBUTED 2PC
          1. 8.3.4.1. First Iteration: Client Controlled Transactions
          2. 8.3.4.2. Second Iteration: Server Controlled Transactions
          3. 8.3.4.3. Third Iteration: Implicit Application Level Protocol
        5. 8.3.5. BUILD TRANSACTIONAL STEPS
          1. 8.3.5.1. Fourth Iteration: Fully Transactional Step
          2. 8.3.5.2. Fifth Iteration: Semi-Transactional Step
          3. 8.3.5.3. Sixth Iteration: Choosing the Right Level of Granularity for Individual Steps
        6. 8.3.6. USE SIMPLE YET FLEXIBLE COMPENSATING LOGIC
        7. 8.3.7. COMBINE SOA, MOA, AND BPM TO INCREASE FLEXIBILITY
      4. 8.4. Conclusion
        1. References
          1. Bibliography
    6. 9. Infrastructure of the Service Bus
      1. 9.1. Software Buses and the Service Bus
        1. 9.1.1. BASIC CONCEPTS OF A REAL-WORLD SERVICE BUS
        2. 9.1.2. SERVICE STUB AND DISPATCHER
          1. 9.1.2.1. Code Generation
          2. 9.1.2.2. Top-Down Approach
          3. 9.1.2.3. Bottom-Up Approach
          4. 9.1.2.4. Code Generation With MDA
        3. 9.1.3. EXECUTION CONTAINERS
          1. 9.1.3.1. Cross-Container Integration
      2. 9.2. Logging and Auditing
        1. 9.2.1. ERROR REPORTING
        2. 9.2.2. DISTRIBUTED LOGGING
        3. 9.2.3. LOGGING AND TRANSACTION BOUNDARIES
        4. 9.2.4. LOGGING FRAMEWORKS AND CONFIGURATION
      3. 9.3. Availability and Scalability
        1. 9.3.1. SCALABILITY AND AVAILABILITY USING WEB SERVICES
        2. 9.3.2. SCALABILITY AND AVAILABILITY USING EJBS
        3. 9.3.3. SCALABILITY AND AVAILABILITY USING CORBA
        4. 9.3.4. SCALABILITY AND AVAILABILITY USING CICS
        5. 9.3.5. SCALABILITY AND AVAILABILITY OF WRAPPED LEGACY APPLICATIONS
        6. 9.3.6. SCALABILITY AND AVAILABILITY IN A HETEROGENEOUS SOA
      4. 9.4. Securing SOAs
        1. 9.4.1. AUTHENTICATION
          1. 9.4.1.1. Authentication and Middleware
          2. 9.4.1.2. Authentication and SOAP
        2. 9.4.2. AUTHORIZATION
        3. 9.4.3. ENCRYPTION AND T RANSPORT SECURITY
        4. 9.4.4. T RUST DOMAINS
        5. 9.4.5. SECURITY AND HETEROGENEITY
        6. 9.4.6. OTHER SECURITY TOPICS
      5. 9.5. Conclusion
        1. References
          1. Bibliography
        2. URLs
    7. 10. SOA in Action
      1. 10.1. Building Web Applications
      2. 10.2. Enterprise Application Integration
        1. 10.2.1. SERVICE ENABLEMENT
        2. 10.2.2. STABILITY AND UPGRADE ABILITY
      3. 10.3. Business-to-Business
      4. 10.4. Fat Clients
      5. 10.5. Designing for Small Devices
      6. 10.6. Multi-Channel Applications
        1. 10.6.1. FUNDAMENTAL SOA
        2. 10.6.2. SERVICE FA<ADE
        3. 10.6.3. PROCESS-ENABLED SOA
      7. 10.7. Conclusion
        1. References
          1. Bibliography
        2. URLs
  12. II. Organizational Roadmap
    1. 11. Motivation and Benefits
      1. 11.1. The Enterprise Perspective
        1. 11.1.1. AGILITY
        2. 11.1.2. COST SAVINGS
          1. 11.1.2.1. Cost Savings at the Business Level
          2. 11.1.2.2. IT Cost Savings
        3. 11.1.3. REUSE AND THE RESULTING BENEFITS
        4. 11.1.4. INDEPENDENCE FROM TECHNOLOGY
        5. 11.1.5. ADEQUATE BUSINESS INFRASTRUCTURE
        6. 11.1.6. MORE EFFICIENT DEVELOPMENT PROCESS
        7. 11.1.7. EVOLUTIONARY APPROACH
        8. 11.1.8. SOA ENABLES FEEDBACK AT DIFFERENT LEVELS
        9. 11.1.9. MITIGATING RISK
      2. 11.2. The Personal Perspective
      3. 11.3. Conclusion
        1. References
          1. Bibliography
        2. URLs
    2. 12. The Organizational SOA Roadmap
      1. 12.1. Stakeholders and Potential Conflicts of Interest
      2. 12.2. The Organizational SOA Roadmap
      3. 12.3. Four Pillars for Success
        1. 12.3.1. BUDGET
        2. 12.3.2. INITIAL PROJECT
        3. 12.3.3. SOA TEAM
        4. 12.3.4. BACKERS
      4. 12.4. An Ideal World
        1. 12.4.1. STRUCTURES AND PROCESSES
        2. 12.4.2. SOA SPECIFICS
      5. 12.5. The Real World—Organization-Wide Standards
        1. 12.5.1. AN EXAMPLE OF FAILURE
        2. 12.5.2. TWO SUCCESS STORIES—SOAS AT CREDIT SUISSE AND WINTERTHUR
      6. 12.6. Recommendations for the SOA Protagonist
      7. 12.7. Conclusion
        1. URLs
    3. 13. SOA-Driven Project Management
      1. 13.1. Established Project Management Methodologies
      2. 13.2. SOA-Driven Project Management
        1. 13.2.1. USE SOA ARTIFACTS AS PROJECT CONTROL ELEMENTS
        2. 13.2.2. INCLUDE SERVICE DESIGNS IN THE PROJECT DEFINITION
        3. 13.2.3. LEVERAGE SOA TO DECOMPOSE COMPLEX SYSTEMS
          1. 13.2.3.1. Vertical Versus Horizontal Slicing
          2. 13.2.3.2. Thin Thread Model
        4. 13.2.4. LEVERAGE SOA TO DRIVE DEVELOPMENT ITERATIONS
          1. 13.2.4.1. Use SOA as the Basis for Divide & Conquer Strategies
          2. 13.2.4.2. Use SOA to Manage Parallel Iterations
        5. 13.2.5. TAKE A STEP-BY-STEP APPROACH TOWARD PROCESS INTEGRITY
      3. 13.3. Configuration Management
        1. 13.3.1. CHALLENGES FOR AN SOA CONFIGURATION MANAGEMENT
        2. 13.3.2. RECOMMENDATIONS FOR THE SOA INTEGRATION TEAM
      4. 13.4. Testing
      5. 13.5. Conclusion
        1. References
          1. Bibliography
        2. URLs
  13. III. Real-World Experience
    1. 14. Deutsche Post AG Case Study
      1. 14.1. Project Scope
        1. 14.1.1. BUSINESS IMPACT
        2. 14.1.2. TECHNOLOGY IMPACT
      2. 14.2. Implementation
        1. 14.2.1. PROCESSES AND STRUCTURES
        2. 14.2.2. SERVICE REGISTRY
        3. 14.2.3. PROJECT MANAGEMENT
      3. 14.3. Technology
        1. 14.3.1. ARCHITECTURE
        2. 14.3.2. REPOSITORY, SERVICE INTERFACES, AND CONTRACTS
        3. 14.3.3. CHOREOGRAPHY, SECURITY, AND MANAGEMENT
      4. 14.4. Lessons Learned, Benefits, and Perspectives
        1. References
          1. Bibliography
        2. Links
    2. 15. Winterthur Case Study
      1. 15.1. Project Scope
        1. 15.1.1. BUSINESS IMPACT
        2. 15.1.2. TECHNOLOGY IMPACT
      2. 15.2. Implementation
        1. 15.2.1. PROCESSES AND STRUCTURES
        2. 15.2.2. SERVICE REPOSITORY
        3. 15.2.3. PROJECT MANAGEMENT
      3. 15.3. Technology
        1. 15.3.1. ARCHITECTURE
        2. 15.3.2. REPOSITORY, SERVICE INTERFACES, AND CONTRACTS
        3. 15.3.3. CHOREOGRAPHY, SECURITY, AND MANAGEMENT
      4. 15.4. Lessons Learned, Benefits, and Perspectives
    3. 16. Credit Suisse Case Study
      1. 16.1. Project Scope
        1. 16.1.1. BUSINESS IMPACT
        2. 16.1.2. TECHNOLOGY IMPACT
      2. 16.2. Implementation
        1. 16.2.1. PROCESSES AND STRUCTURES
        2. 16.2.2. SERVICE REPOSITORY
        3. 16.2.3. PROJECT MANAGEMENT
      3. 16.3. Technology
        1. 16.3.1. ARCHITECTURE
          1. 16.3.1.1. Synchronous Integration with the CSIB
          2. 16.3.1.2. Asynchronous Integration with the EBI
          3. 16.3.1.3. Bulk Integration Infrastructure
        2. 16.3.2. REPOSITORY, SERVICE INTERFACES, AND CONTRACTS
        3. 16.3.3. CHOREOGRAPHY, SECURITY, AND MANAGEMENT
      4. 16.4. Lessons Learned, Benefits, and Perspectives
        1. References
          1. Bibliography
    4. 17. Halifax Bank Of Scotland: IF.com
      1. 17.1. Project Scope
        1. 17.1.1. BUSINESS IMPACT
          1. 17.1.1.1. Greenfield Project
          2. 17.1.1.2. Offsetting
          3. 17.1.1.3. The IF.com Success Story
        2. 17.1.2. TECHNOLOGY IMPACT
          1. 17.1.2.1. IF's Service Architecture
          2. 17.1.2.2. Basic, Intermediary, and Process-Oriented Services
          3. 17.1.2.3. Project Schedule
      2. 17.2. Implementation
        1. 17.2.1. XML SERVICES
        2. 17.2.2. SERVICE REPOSITORY
        3. 17.2.3. PROJECT MANAGEMENT
          1. 17.2.3.1. Design in Action
          2. 17.2.3.2. Work Streams and IT Steering Committee
          3. 17.2.3.3. Architecture Board
          4. 17.2.3.4. The XML Tsar and His XML Tsardom
      3. 17.3. Technology
        1. 17.3.1. ARCHITECTURE
        2. 17.3.2. SERVICE REPOSITORY, SERVICE INTERFACES, AND CONTRACTS
          1. 17.3.2.1. Basic Services
          2. 17.3.2.2. Banking Engine Services
          3. 17.3.2.3. Service Versus Service Interfaces
      4. 17.4. Lessons Learned, Benefits, and Perspectives
        1. URLs