
Enterprise Software Architecture and Design
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
More details
Other editions
Additional editions


Person
Content
Acknowledgements xxiii
1. Introduction 1
References / 6
2. Middleware 7
2.1 Enterprise Information Systems / 7
2.2 Communication / 12
2.3 System and Failure Models / 21
2.4 Remote Procedure Call / 34
2.5 Message-Oriented Middleware / 42
2.6 Web Services and Service-Oriented Architecture (SOA) / 46
2.7 Cloud Computing / 52
2.8 Naming and Discovery / 55
2.9 Further Reading / 56
References / 57
3. Data Modeling 59
3.1 Entities and Relationships / 60
3.1.1 Concepts and Entities / 60
3.1.2 Attributes and Relationships / 61
3.1.3 Properties of Relationship Types / 65
3.1.4 Special Relationship Types / 69
3.2 XML Schemas / 74
3.3 Defining New Types / 79
3.3.1 Defining Simple Types / 79
3.3.2 Defining Complex Types / 82
3.4 Derived Types / 85
3.4.1 Derived Simple Types / 86
3.4.2 Derived Complex Types / 87
3.5 Document Hierarchies / 94
3.6 Relationship Types in XML Schemas / 98
3.7 Metaschemas and Metamodels / 100
3.8 Further Reading / 102
References / 102
4. Data Processing 104
4.1 Processing XML Data / 104
4.1.1 Tree Processing / 105
4.1.2 Schema Binding / 109
4.1.3 Stream Processing / 114
4.1.4 External Processing / 119
4.2 Query Languages and XQuery / 122
4.3 XML Databases / 134
4.3.1 Storage as Relational Tables / 135
4.3.2 Storage as Large Strings / 137
4.3.3 Native XML Storage / 137
4.4 Web Services / 138
4.4.1 SOAP: (not so) Simple Object Access Protocol / 139
4.4.2 WSDL: Web Services Description Language / 145
4.4.3 Web Service Policy / 155
4.5 Presentation Layer: JSON and JQUERY / 159
References / 166
5. Domain-Driven Architecture 167
5.1 Software Architecture / 167
5.2 Domain-Driven Design / 168
5.3 Application Frameworks / 175
5.4 Domain-Specific Languages (DSLs) / 180
5.5 An Example API for Persistent Domain Objects / 188
5.6 Domain-Driven Architecture / 197
5.7 Further Reading / 205
References / 205
6. Service-Oriented Architecture 207
6.1 Services and Procedures / 207
6.2 Service-Oriented Architecture (SOA) / 211
6.3 Service Design Principles / 216
6.4 Service-Oriented Architecture (SOA) Governance / 218
6.5 Standardized Service Contract / 221
6.5.1 Operations Contract / 222
6.5.2 Data Contract / 223
6.5.3 Policy Contract / 224
6.5.4 Binding Contract / 226
6.5.5 Contract Versioning / 231
6.6 Service Loose Coupling / 237
6.6.1 Motivation for Loose Coupling / 237
6.6.2 Contract Development / 239
6.6.3 Loose Coupling Patterns / 242
6.6.4 Cost of Loose Coupling / 246
6.7 Service Abstraction / 248
6.7.1 Platform Abstraction / 248
6.7.2 Protocol Abstraction / 249
6.7.3 Procedural Abstraction / 261
6.7.4 State Abstraction / 264
6.7.5 Data Abstraction / 269
6.7.6 Endpoint Abstraction / 278
6.8 Service Reusability / 278
6.8.1 Parameterization and Bounded Polymorphism / 279
6.8.2 Subtyping, Inheritance, and Contracts / 284
6.8.3 Does Service-Oriented Architecture Require Subtyping? / 289
6.8.4 Patterns for Service Reusability / 292
6.9 Service Autonomy / 299
6.9.1 Replicating Computation / 300
6.9.2 Replicating State / 303
6.9.3 Sources of Errors and Rejuvenation / 308
6.9.4 Caching / 313
6.10 Service Statelessness / 323
6.10.1 Contexts and Dependency Injection / 331
6.11 Service Discoverability / 336
6.11.1 Global Discovery / 336
6.11.2 Local Discovery / 337
6.11.3 Layered Naming / 347
6.12 Further Patterns / 351
6.13 Further Reading / 352
References / 352
7. Resource-Oriented Architecture 359
7.1 Representational State Transfer / 359
7.2 RESTful Web Services / 369
7.3 Resource-Oriented Architecture (ROA) / 379
7.4 Interface Description Languages / 387
7.4.1 Web Services Description Language (WSDL) / 387
7.4.2 Web Application Description Language (WADL) / 390
7.5 An Example Application Program Interface (API) for Resource-Oriented Web Services / 396
7.6 Hypermedia Control and Contract Conformance / 406
7.7 Concluding Remarks / 412
7.8 Further Reading / 414
References / 414
Appendix A: Introduction to Haskell 416
A.1 Types and Functions / 416
A.2 Type Classes and Functors / 425
A.3 Monads / 431
A.4 Further Reading / 436
References / 436
Appendix B: Time in Distributed Systems 437
B.1 What Time Is It? / 437
B.2 Time and Causality / 443
B.3 Applications of Logical and Vector Time / 450
B.3.1 Mutual Exclusion / 450
B.3.2 Quorum Consensus / 451
B.3.3 Distributed Logging / 456
B.3.4 Causal Message Delivery / 458
B.3.5 Distributed Snapshots / 463
B.4 Virtual Time / 468
B.5 Further Reading / 470
References / 470
Index 473
System requirements
File format: ePUB
Copy protection: Adobe-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Install the free reader Adobe Digital Editions prior to download (see eBook Help).
- Tablet/smartphone (Android; iOS): Install the free app Adobe Digital Editions or the app PocketBook before downloading (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (not Kindle).
The file format ePub works well for novels and non-fiction books – i.e., „flowing” text without complex layout. On an e-reader or smartphone, line and page breaks automatically adjust to fit the small displays.
This eBook uses Adobe-DRM, a „hard” copy protection. If the necessary requirements are not met, unfortunately you will not be able to open the eBook. You will therefore need to prepare your reading hardware before downloading.
Please note: We strongly recommend that you authorise using your personal Adobe ID after installation of any reading software.
For more information, see our ebook Help page.