Enterprise Software Architecture and Design

eBook - Entities, Services, and Resources, Quantitative Software Engineering Series

120,99 €
(inkl. MwSt.)
E-Book Download

Download

Bibliografische Daten
ISBN/EAN: 9781118180501
Sprache: Englisch
Umfang: 600 S., 20.14 MB
Auflage: 1. Auflage 2012
E-Book
Format: EPUB
DRM: Adobe DRM

Beschreibung

This book fills a gap between high-level overview texts that are often too general and low-level detail oriented technical handbooks that lose sight the "big picture". This book discusses SOA from the low-level perspective of middleware, various XML-based technologies, and basic service design. It also examines broader implications of SOA, particularly where it intersects with business process management and process modeling. Concrete overviews will be provided of the methodologies in those fields, so that students will have a hands-on grasp of how they may be used in the context of SOA.

Autorenportrait

Dominic Duggan, PhD, is a faculty member in the Department of Computer Science at Stevens Institute of Technology. His research interests are in the design and development of secure and reliable software systems. His publications have appeared in leading journals and conferences.

Inhalt

List of Figures xv

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

Informationen zu E-Books

Herzlichen Glückwunsch zum Kauf eines Ebooks bei der BUCHBOX! Hier nun ein paar praktische Infos.

Adobe-ID

Hast du E-Books mit einem Kopierschutz (DRM) erworben, benötigst du dazu immer eine Adobe-ID. Bitte klicke einfach hier und trage dort Namen, Mailadresse und ein selbstgewähltes Passwort ein. Die Kombination von Mailadresse und Passwort ist deine Adobe-ID. Notiere sie dir bitte sorgfältig. 
 
Achtung: Wenn du kopiergeschützte E-Books OHNE Vergabe einer Adobe-ID herunterlädst, kannst du diese niemals auf einem anderen Gerät außer auf deinem PC lesen!!
 
Du hast dein Passwort zur Adobe-ID vergessen? Dann kannst du dies HIER neu beantragen.
 
 

Lesen auf dem Tablet oder Handy

Wenn du auf deinem Tablet lesen möchtest, verwende eine dafür geeignete App. 

Für iPad oder Iphone etc. hole dir im iTunes-Store die Lese-App Bluefire

Für Android-Geräte (z.B. Samsung) bekommst du die Lese-App Bluefire im GooglePlay-Store (oder auch: Aldiko)
 
Lesen auf einem E-Book-Reader oder am PC / MAC
 
Um die Dateien auf deinen PC herunter zu laden und auf dein E-Book-Lesegerät zu übertragen gibt es die Software ADE (Adobe Digital Editions).
 
 

Andere Geräte / Software

 

Kindle von Amazon. Wir empfehlen diese Geräte NICHT.

EPUB mit Adobe-DRM können nicht mit einem Kindle von Amazon gelesen werden. Weder das Dateiformat EPUB, noch der Kopierschutz Adobe-DRM sind mit dem Kindle kompatibel. Umgekehrt können alle bei Amazon gekauften E-Books nur auf dem Gerät von Amazon gelesen werden. Lesegeräte wie der Tolino sind im Gegensatz hierzu völlig frei: Du kannst bei vielen tausend Buchhandlungen online Ebooks für den Tolino kaufen. Zum Beispiel hier bei uns.

Software für Sony-E-Book-Reader

Wenn du einen Sony-Reader hast, dann findest du hier noch die zusätzliche Sony-Software.
 

Computer/Laptop mit Unix oder Linux

Die Software Adobe Digital Editions ist mit Unix und Linux nicht kompatibel. Mit einer WINE-Virtualisierung kommst du aber dennoch an deine E-Books.