Preface Chapter 1:Introduction 1.1 Objectives of this Book 1.2 Who this Book Is For 1.3 What this Book Does Not Cover Topics Covered by Other Books SOA Standardization Efforts 1.4 How this Book Is Organized Part I:Fundamentals Part II:Design Principles Part III:Supplemental Appendices 1.5 Symbols,Figures,and Style Conventions Symbol Legend How Color Is Used The Service Symbol 1.6 Additional Information Updates,Errata,and Resources(www.soabooks.com) Master Glossary(www.soaglossary.com) Referenced Specifications(www.soaspecs.com) Service-Oriented Computing Poster(www.soaposters.com) The SOA Magazine(www.soamag.com) Notification Service Contact the Author Chapter 2:Case Study 2.1 Case Study Background:Cutit Saws Ltd History Technical Infrastructure and Automation Environment Business Goals and Obstacles PART I:FUNDAMENTALS Chapter 3:Service-Oriented Computing and SOA 3.1 Design Fundamentals Design Characteristic Design Principle Design Paradigm Design Pattern Design Pattern Language Design Standard Best Practice A Fundamental Design Framework 3.2 Introduction to Service-Oriented Computing Service-Oriented Architecture Service-Orientation,Services,and Service-Oriented Solution Logic Service Compositions Service Inventory Understanding Service-Oriented Computing Elements Service Models SOA and Web Services Service Inventory Blueprints Service-Oriented Analysis and Service Modeling Service-Oriented Design Service-Oriented Architecture:Concepts,Technology,and Design 3.3 Goals and Benefits of Service-Oriented Computing Increased Intrinsic Interoperability Increased Federation Increased Vendor Diversification Options Increased Business and Technology Domain Alignment Increased ROI Increased Organizational Agility Reduced IT Burden 3.4 Case Study Background Chapter 4:Service-Orientation 4.1 Introduction to Service-Orientation Services in Business Automation Services Are Collections of Capabilities Service-Orientation as a Design Paradigm Service-Orientation and Interoperability 4.2 Problems Solved by Service-Orientation Life Before Service-Orientation The Need for Service-Orientation 4.3 Challenges Introduced by Service-Orientation Design Complexity The Need for Design Standards Top-Down Requirements Counter-Agile Service Delivery in Support of Agile Solution Delivery Governance Demands 4.4 Additional Considerations It Is Not a Revolutionary Paradigm Enterprise-wide Standardization Is Not Required Reuse Is Not an Absolute Requirement 4.5 Effects of Service-Orientation on the Enterprise Service-Orientation and the Concept of""Application"" Service-Orientation and the Concept of""Integration"" The Service Composition Application,Integration,and Enterprise Architectures 4.6 Origins and Influences of Service-Orientation Object-Orientation Web Services Business Process Management(BPM) Enterprise Application Integration(EAI) Aspect-Oriented Programming(AOP) 4.7 Case Study Background Chapter 5:Understanding Design Principles 5.1 Using Design Principles Incorporate Principles within Service-Oriented Analysis Incorporate Principles within Formal Design Processes Establish Supporting Design Standards Apply Principles to a Feasible Extent 5.2 Principle Profiles 5.3 Design Pattern References 5.4 Principles that Implement vs.Principles that Regulate 5.5 Principles and Service Implementation Mediums ""Capability""vs.""Operation""vs.""Method"" 5.6 Principles and Design Granularity Service Granularity Capability Granularity Data Granularity Constraint Granularity Sections on Granularity Levels 5.7 Case Study Background The Lab Project Business Process PART II:DESIGN PRINCIPLES Chapter 6:Service Contracts(Standardization and Design) 6.1 Contracts Explained Technical Contracts in Abstract Origins of Service Contracts 6.2 Profiling this Principle 6.3 Types of Service Contract Standardization Standardization of Functional Service Expression Standardization of Service Data Representation Standardization of Service Policies 6.4 Contracts and Service Design Data Representation Standardization and Transformation Avoidance Standardization and Granularity Standardized Service Contracts and Service Models How Standardized Service Contract Design Affects Other Principles 6.5 Risks Associated with Service Contract Design Versioning Technology Dependencies Development Tool Deficiencies 6.6 More About Service Contracts Non-Technical Service Contract Documents Web Service Contract Design for SOA 6.7 Case Study Example Planned Services Design Standards Standardized WSDL Definition Profiles Standardized XML Schema Definitions Standardized Service and Data Representation Layers Service Descriptions Conclusion Chapter 7:Service Coupling(Intra-Service and Consumer Dependencies) 7.1 Coupling Explained Coupling in Abstract Origins of Software Coupling 7.2 Profiling this Principle 7.3 Service Contract Coupling Types Logic-to-Contract Coupling(the coupling of service logic to the service contract) Contract-to-Logic Coupling(the coupling of the service contract to its logic) Contract-to-Technology Coupling(the coupling of the service contract to its underlying technology) Contract-to-Implementation Coupling(the coupling of the service contract to its implementation environment) Contract-to-Functional Coupling(the coupling of the service contract to external logic) 7.4 Service Consumer Coupling Types Consumer-to-Implementation Coupling Standardized Service Coupling and Contract Centralization Consumer-to-Contract Coupling Measuring Consumer Coupling 7.5 Service Loose Coupling and Service Design Coupling and Service-Orientation Service Loose Coupling and Granularity Coupling and Service Models How Service Loose Coupling Affects Other Principles 7.6 Risks Associated with Service Loose Coupling Limitations of Logic-to-Contract Coupling Problems when Schema Coupling Is""too loose"" 7.7 Case Study Example Coupling Levels of Existing Services Introducing the InvLegacyAPI Service Service Design Options Chapter 8:Service Abstraction(Information Hiding and Meta Abstraction Types) 8.1 Abstraction Explained Origins of Information Hiding 8.2 Profiling this Principle Why Service Abstraction Is Needed 8.3 Types of Meta Abstraction Technology Information Abstraction Functional Abstraction Programmatic Logic Abstraction Quality of Service Abstraction Meta Abstraction Types and the Web Service Regions of Influence Meta Abstraction Types in the Real World 8.4 Measuring Service Abstraction Contract Content Abstraction Levels Access Control Levels Abstraction Levels and Quality of Service Meta Information 8.5 Service Abstraction and Service Design Service Abstraction vs.Service Encapsulation How Encapsulation Can Affect Abstraction Service Abstraction and Non-Technical Contract Documents Service Abstraction and Granularity Service Abstraction and Service Models How Service Abstraction Affects Other Principles 8.6 Risks Associated with Service Abstraction Multi-Consumer Coupling Requirements Misjudgment by Humans Security and Privacy Concerns 8.7 Case Study Example Service Abstraction Levels Operation-Level Abstraction Examples Chapter 9:Service Reusability(Commercial and Agnostic Design) 9.1 Reuse Explained Reuse in Abstract Origins of Reuse 9.2 Profiling this Principle 9.3 Measuring Service Reusability and Applying Commercial Design Commercial Design Considerations Measures of Planned Reuse Measuring Actual Reuse Commercial Design Versus Gold-Plating 9.4 Service Reuse in SOA Reuse and the Agnostic Service The Service Inventory Blueprint 9.5 Standardized Service Reuse and Logic Centralization Understanding Logic Centralization Logic Centralization as an Enterprise Standard Logic Centralization and Contract Centralization Centralization and Web Services Challenges to Achieving Logic Centralization 9.6 Service Reusability and Service Design Service Reusability and Service Modeling Service Reusability and Granularity Service Reusability and Service Models How Service Reusability Affects Other Principles 9.7 Risks Associated with Service Reusability and Commercial Design Cultural Concerns Governance Concerns Reliability Concerns Security Concerns Commercial Design Requirement Concerns Agile Delivery Concerns 9.8 Case Study Example The Inventory Service Profile Assessing Current Capabilities Modeling for a Targeted Measure of Reusability The New EditItemRecord Operation The New ReportStockLevels Operation The New AdjustItemsQuantity Operation Revised Inventory Service Profile Chapter 10:Service Autonomy(Processing Boundaries and Control) 10.1 Autonomy Explained Autonomy in Abstract Origins of Autonomy 10.2 Profiling this Principle 10.3 Types of Service Autonomy Runtime Autonomy(execution) Design-Time Autonomy(governance) 10.4 Measuring Service Autonomy Service Contract Autonomy(services with normalized contracts) Shared Autonomy Service Logic Autonomy(partially isolated services) Pure Autonomy(isolated services) Services with Mixed Autonomy 10.5 Autonomy and Service Design Service Autonomy and Service Modeling Service Autonomy and Granularity Service Autonomy and Service Models How Service Autonomy Affects Other Principles 10.6 Risks Associated with Service Autonomy Misjudging the Service Scope Wrapper Services and Legacy Logic Encapsulation Overestimating Service Demand 10.7 Case Study Example Existing Implementation Autonomy of the GetItem Operation New Operation-Level Architecture with Increased Autonomy Effect on the Run Lab Project Composition Chapter 11:Service Statelessness(State Management Deferral and Stateless Design) 11.1 State Management Explained State Management in Abstract Origins of State Management Deferral vs.Delegation 11.2 Profiling this Principle 11.3 Types of State Active and Passive Stateless and Stateful Session and Context Data 11.4 Measuring Service Statelessness Non-Deferred State Management(low-to-no statelessness) Partially Deferred Memory(reduced statefulness) Partial Architectural State Management Deferral(moderate statelessness) Full Architectural State Management Deferral(high statelessness) Internally Deferred State Management(high statelessness) 11.5 Statelessness and Service Design Messaging as a State Deferral Option Service Statelessness and Service Instances Service Statelessness and Granularity Service Statelessness and Service Models How Service Statelessness Affects Other Principles 11.6 Risks Associated with Service Statelessness Dependency on the Architecture Increased Runtime Performance Demands Underestimating Delivery Effort 11.7 Case Study Example Solution Architecture with State Management Deferral Step 1 Step 2 Step 3 Step 4 Step 5 Step 6 Step 7 Chapter 12:Service Discoverability(Interpretability and Communication) 12.1 Discoverability Explained Discovery and Interpretation,Discoverability and Interpretability in Abstract Origins of Discovery 12.2 Profiling this Principle 12.3 Types of Discovery and Discoverability Meta Information Design-Time and Runtime Discovery Discoverability Meta Information Functional Meta Data Quality of Service Meta Data 12.4 Measuring Service Discoverability Fundamental Levels Custom Rating System 12.5 Discoverability and Service Design Service Discoverability and Service Modeling Service Discoverability and Granularity Service Discoverability and Policy Assertions Service Discoverability and Service Models How Service Discoverability Affects Other Principles 12.6 Risks Associated with Service Discoverability Post-Implementation Application of Discoverability Application of this Principle by Non-Communicative Resources 12.7 Case Study Example Service Profiles(Functional Meta Information) Related Quality of Service Meta Information Chapter 13:Service Composability(Composition Member Design and Complex Compositions) 13.1 Composition Explained Composition in Abstract Origins of Composition 13.2 Profiling this Principle 13.3 Composition Concepts and Terminology Compositions and Composition Instances Composition Members and Controllers Service Compositions and Web Services Service Activities Composition Initiators Point-to-Point Data Exchanges and Compositions Types of Compositions 13.4 The Complex Service Composition Stages in the Evolution of a Service Inventory Defining the Complex Service Composition Preparing for the Complex Service Composition 13.5 Measuring Service Composability and Composition Effectiveness Potential Evolutionary Cycle States of a Composition Composition Design Assessment Composition Runtime Assessment Composition Governance Assessment Measuring Composability 13.6 Composition and Service Design Service Composability and Granularity Service Composability and Service Models Service Composability and Composition Autonomy Service Composability and Orchestration How Service Composability Affects Other Principles 13.7 Risks Associated with Service Composition Composition Members as Single Points of Failure Composition Members as Performance Bottlenecks Governance Rigidity of""Over-Reuse""in Compositions 13.8 Case Study Example PART III:SUPPLEMENTAL Chapter 14:Service-Orientation and Object-Orientation:A Comparison of Principles and Concepts 14.1 A Tale of Two Design Paradigms 14.2 A Comparison of Goals Increased Business Requirements Fulfillment Increased Robustness Increased Extensibility Increased Flexibility Increased Reusability and Productivity 14.3 A Comparison of Fundamental Concepts Classes and Objects Methods and Attributes Messages Interfaces 14.4 A Comparison of Design Principles Encapsulation Inheritance Generalization and Specialization Abstraction Polymorphism Open-Closed Principle(OCP) Don恡 Repeat Yourself(DRY) Single Responsibility Principle(SRP) Delegation Association Composition Aggregation 14.5 Guidelines for Designing Service-Oriented Classes Implement Class Interfaces Limit Class Access to Interfaces Do Not Define Public Attributes in Interfaces Use Inheritance with Care Avoid Cross-Service""has-a""Relationships Use Abstract Classes for Modeling,Not Design Use Fa?ade Classes Chapter 15:Supporting Practices 15.1 Service Profiles Service-Level Profile Structure Capability Profile Structure Additional Considerations 15.2 Vocabularies Service-Oriented Computing Terms Service Classification Terms Types and Associated Terms Design Principle Application Levels 15.3 Organizational Roles Service Analyst Service Architect Service Custodian Schema Custodian Policy Custodian Service Registry Custodian Technical Communications Specialist Enterprise Architect Enterprise Design Standards Custodian(and Auditor) Chapter 16:Mapping Service-Orientation Principles to Strategic Goals 16.1 Principles that Increase Intrinsic Interoperability 16.2 Principles that Increase Federation 16.3 Principles that Increase Vendor Diversification Options 16.4 Principles that Increase Business and Technology Domain Alignment 16.5 Principles that Increase ROI 16.6 Principles that Increase Organizational Agility 16.7 Principles that Reduce the Overall Burden of IT PART IV:APPENDICES Appendix A:Case Study Conclusion Appendix B:Process Descriptions B.1 Delivery Processes Bottom-Up vs. Top-Down The Inventory Analysis Cycle Inventory Analysis and Service-Oriented Design Choosing a Delivery Strategy B.2 Service-Oriented Analysis Process Define Analysis Scope Identify Affected Systems Perform Service Modeling B.3 Service Modeling Process B.4 Service-Oriented Design Processes Design Processes and Service Models Service Design Processes and Service-Orientation Appendix C:Principles and Patterns Cross-Reference Additional Resources About the Author About the Photos Index