Search and Find
Service
Front Cover
1
SOA and Web Services Interface Design: Principles, Techniques, and Standards
4
Copyright Page
5
Contents
6
Acknowledgments
10
CHAPTER 1 SOA—A Common Sense Definition
12
1.1 Origins of SOA
12
1.1.1 Technology Becomes a Commodity
13
1.1.2 Technology Becomes an Enabler
14
1.1.3 Technology Becomes a Transformer
14
1.2 A Definition for SOA
15
1.3 Consumers, Services, and Intermediaries
16
1.4 Messaging—The Means of Interaction between Consumer and Services
18
1.5 SOA Capabilities
20
1.5.1 The Enterprise Service Bus—ESB
21
1.5.2 The Service Registry and Repository—SRR
23
1.5.3 Business Process Management—BPM
26
1.5.4 Business Activity Monitoring—BAM
29
1.5.5 Web Services Management—WSM
30
1.5.6 Closing the SOA Loop
32
1.6 The Benefits of SOA
34
CHAPTER 2 Core SOA Principles
36
2.1 Loose Coupling
36
2.2 Interoperability
43
2.3 Reusability
45
2.4 Discoverability
48
2.5 Governance
48
2.5.1 Design-Time Governance
50
2.5.2 Bind-Time Governance
50
2.5.3 Run-Time Governance
51
CHAPTER 3 Web Services and Other Service Types and Styles
54
3.1 Web Services and SOAP
54
3.2 ReST Style Services
59
3.3 Legacy Services and API's
62
CHAPTER 4 Data, the Missing Link
66
4.1 Data at Rest—Persistence
69
4.2 Data in Motion—Messaged Context
71
CHAPTER 5 Data Services
78
5.1 A Single Data at Rest Data Source
79
5.2 Multiple and Disparate Data at Rest Sources
88
5.3 Resolving Data Impedance with Data Services
101
5.4 CRUD-Based Data Services
104
CHAPTER 6 Transformation to Resolve Data Impedance
108
6.1 Transformation
113
6.2 Translation
123
6.3 Aggregation
128
6.4 Abstraction
131
6.5 Rationalization
133
CHAPTER 7 The Service interface—a Contract
138
7.1 Web Services Description Language—WSDL
141
7.2 XML Schemas—XSD
146
7.3 Extensible Markup Language
147
CHAPTER 8 Canonical Message Design
154
8.1 The Message Is a Hierarchy
156
8.2 Top-Down Canonical Message Design
160
8.2.1 Design Requirements
161
8.2.2 Conceptual Message Design
164
8.2.3 Logical Message Design
166
8.2.4 Physical Message Design
169
8.2.5 Create and Refine Message Schemas
179
8.2.6 Create WSDL
181
8.3 Model-Driven Interface Design
182
CHAPTER 9 The Enterprise Taxonomy
186
9.1 Focus on Common Business Language for Discovery
188
9.2 Broadening and Extending the Taxonomy
189
9.3 Registry Entries and Discovery
192
CHAPTER 10 XML Schema Basics
196
10.1 Elements
199
10.2 Attributes
201
10.3 simpleTypes
203
10.4 complexTypes
209
10.5 Groups
211
10.6 Namespaces
214
10.7 Import, Include
215
CHAPTER 11 XML Schema Design Patterns
222
11.1 complexType Patterns
223
11.2 Global Declaration Patterns
229
11.3 Local Declaration Patterns
233
11.4 Reusable Schema Patterns
236
11.5 substitutionGroup Patterns
241
CHAPTER 12 Schema Assembly and Reuse
246
12.1 Considerations for Schema Reuse
248
12.1.1 Identifying Service Interface Reuse Opportunities
248
12.1.2 Interface Schema Granularity
252
12.1.3 Designing the Interface Schema with Intent to Reuse
255
12.2 Namespaces
257
12.3 Schema Reuse by Reference and Assembly
259
12.4 Limitations and Complexities
264
CHAPTER 13 The Interface and Change
270
13.1 Schema Extension
272
13.2 Schema Versioning
279
13.3 Change and Capabilities of the ESB and WSM
286
CHAPTER 14 Service Operations and Overloading
290
14.1 Service Granularity
293
14.2 Scoping of Service Operations
296
14.3 Operations Overloading
298
CHAPTER 15 Selective Data Fragmentation
304
15.1 Avoiding a Complex or Non-deterministic Content Model
312
CHAPTER 16 Update Transactions
316
16.1 Update Transactions and State
318
16.2 Request-Reply Message Exchange Patterns
324
16.3 Complexities of Fire and Forget for Updates
326
CHAPTER 17 Fixed-Length Transactions
330
CHAPTER 18 Document Literal Interfaces
336
CHAPTER 19 Performance Analysis and Optimization Techniques
342
19.1 Complexity of Consumer and Service Behavior
343
19.2 Performance of the Enterprise Services Bus or Message Backbone
343
19.3 Security
344
19.4 Complexity and Size of the Message
345
19.4.1 Uniform Structure
345
19.4.2 Navigation and Data Graphs
348
19.4.3 Depth of Nesting
350
19.4.4 Verbosity
351
19.4.5 Abstract vs. Specific Cardinality
352
19.4.6 To Validate or Not to Validate
354
CHAPTER 20 Error Definition and Handling
358
APPENDIX A.1 Glossary and Abbreviations
364
APPENDIX A.2 Important Web Services and Related Specifications
368
APPENDIX A.3 References and Bibliography
372
INDEX
378
A
378
B
378
C
378
D
379
E
379
F
379
G
379
H
379
I
379
L
380
M
380
N
380
O
380
P
380
Q
380
R
381
S
381
T
382
U
382
V
382
W
382
X
382
All prices incl. VAT