ISBN-10:
0470565454
ISBN-13:
9780470565452
Pub. Date:
03/13/2012
Publisher:
Wiley
Enterprise Software Architecture and Design: Entities, Services, and Resources / Edition 1

Enterprise Software Architecture and Design: Entities, Services, and Resources / Edition 1

by Dominic Duggan
Current price is , Original price is $137.0. You

Temporarily Out of Stock Online

Please check back later for updated availability.

Product Details

ISBN-13: 9780470565452
Publisher: Wiley
Publication date: 03/13/2012
Series: Quantitative Software Engineering Series , #10
Pages: 512
Product dimensions: 6.30(w) x 9.30(h) x 1.30(d)

About the Author

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.

Table of Contents

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.l 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.l 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

Customer Reviews

Most Helpful Customer Reviews

See All Customer Reviews