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