Details

Enterprise Software Architecture and Design


Enterprise Software Architecture and Design

Entities, Services, and Resources
Quantitative Software Engineering Series, Band 10 1. Aufl.

von: Dominic Duggan

120,99 €

Verlag: Wiley
Format: EPUB
Veröffentl.: 12.01.2012
ISBN/EAN: 9781118180501
Sprache: englisch
Anzahl Seiten: 600

DRM-geschütztes eBook, Sie benötigen z.B. Adobe Digital Editions und eine Adobe ID zum Lesen.

Beschreibungen

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.
<b>List of Figures xv</b> <p><b>Acknowledgements xxiii</b></p> <p><b>1. Introduction 1</b></p> <p>References / 6</p> <p><b>2. Middleware 7</b></p> <p>2.1 Enterprise Information Systems / 7</p> <p>2.2 Communication / 12</p> <p>2.3 System and Failure Models / 21</p> <p>2.4 Remote Procedure Call / 34</p> <p>2.5 Message-Oriented Middleware / 42</p> <p>2.6 Web Services and Service-Oriented Architecture (SOA) / 46</p> <p>2.7 Cloud Computing / 52</p> <p>2.8 Naming and Discovery / 55</p> <p>2.9 Further Reading / 56</p> <p>References / 57</p> <p><b>3. Data Modeling 59</b></p> <p>3.1 Entities and Relationships / 60</p> <p>3.1.1 Concepts and Entities / 60</p> <p>3.1.2 Attributes and Relationships / 61</p> <p>3.1.3 Properties of Relationship Types / 65</p> <p>3.1.4 Special Relationship Types / 69</p> <p>3.2 XML Schemas / 74</p> <p>3.3 Defining New Types / 79</p> <p>3.3.1 Defining Simple Types / 79</p> <p>3.3.2 Defining Complex Types / 82</p> <p>3.4 Derived Types / 85</p> <p>3.4.1 Derived Simple Types / 86</p> <p>3.4.2 Derived Complex Types / 87</p> <p>3.5 Document Hierarchies / 94</p> <p>3.6 Relationship Types in XML Schemas / 98</p> <p>3.7 Metaschemas and Metamodels / 100</p> <p>3.8 Further Reading / 102</p> <p>References / 102</p> <p><b>4. Data Processing 104</b></p> <p>4.1 Processing XML Data / 104</p> <p>4.1.1 Tree Processing / 105</p> <p>4.1.2 Schema Binding / 109</p> <p>4.1.3 Stream Processing / 114</p> <p>4.1.4 External Processing / 119</p> <p>4.2 Query Languages and XQuery / 122</p> <p>4.3 XML Databases / 134</p> <p>4.3.1 Storage as Relational Tables / 135</p> <p>4.3.2 Storage as Large Strings / 137</p> <p>4.3.3 Native XML Storage / 137</p> <p>4.4 Web Services / 138</p> <p>4.4.1 SOAP: (not so) Simple Object Access Protocol / 139</p> <p>4.4.2 WSDL: Web Services Description Language / 145</p> <p>4.4.3 Web Service Policy / 155</p> <p>4.5 Presentation Layer: JSON and JQUERY / 159</p> <p>References / 166</p> <p><b>5. Domain-Driven Architecture 167</b></p> <p>5.1 Software Architecture / 167</p> <p>5.2 Domain-Driven Design / 168</p> <p>5.3 Application Frameworks / 175</p> <p>5.4 Domain-Specific Languages (DSLs) / 180</p> <p>5.5 An Example API for Persistent Domain Objects / 188</p> <p>5.6 Domain-Driven Architecture / 197</p> <p>5.7 Further Reading / 205</p> <p>References / 205</p> <p><b>6. Service-Oriented Architecture 207</b></p> <p>6.1 Services and Procedures / 207</p> <p>6.2 Service-Oriented Architecture (SOA) / 211</p> <p>6.3 Service Design Principles / 216</p> <p>6.4 Service-Oriented Architecture (SOA) Governance / 218</p> <p>6.5 Standardized Service Contract / 221</p> <p>6.5.1 Operations Contract / 222</p> <p>6.5.2 Data Contract / 223</p> <p>6.5.3 Policy Contract / 224</p> <p>6.5.4 Binding Contract / 226</p> <p>6.5.5 Contract Versioning / 231</p> <p>6.6 Service Loose Coupling / 237</p> <p>6.6.1 Motivation for Loose Coupling / 237</p> <p>6.6.2 Contract Development / 239</p> <p>6.6.3 Loose Coupling Patterns / 242</p> <p>6.6.4 Cost of Loose Coupling / 246</p> <p>6.7 Service Abstraction / 248</p> <p>6.7.1 Platform Abstraction / 248</p> <p>6.7.2 Protocol Abstraction / 249</p> <p>6.7.3 Procedural Abstraction / 261</p> <p>6.7.4 State Abstraction / 264</p> <p>6.7.5 Data Abstraction / 269</p> <p>6.7.6 Endpoint Abstraction / 278</p> <p>6.8 Service Reusability / 278</p> <p>6.8.1 Parameterization and Bounded Polymorphism / 279</p> <p>6.8.2 Subtyping, Inheritance, and Contracts / 284</p> <p>6.8.3 Does Service-Oriented Architecture Require Subtyping? / 289</p> <p>6.8.4 Patterns for Service Reusability / 292</p> <p>6.9 Service Autonomy / 299</p> <p>6.9.1 Replicating Computation / 300</p> <p>6.9.2 Replicating State / 303</p> <p>6.9.3 Sources of Errors and Rejuvenation / 308</p> <p>6.9.4 Caching / 313</p> <p>6.10 Service Statelessness / 323</p> <p>6.10.1 Contexts and Dependency Injection / 331</p> <p>6.11 Service Discoverability / 336</p> <p>6.11.1 Global Discovery / 336</p> <p>6.11.2 Local Discovery / 337</p> <p>6.11.3 Layered Naming / 347</p> <p>6.12 Further Patterns / 351</p> <p>6.13 Further Reading / 352</p> <p>References / 352</p> <p><b>7. Resource-Oriented Architecture 359</b></p> <p>7.1 Representational State Transfer / 359</p> <p>7.2 RESTful Web Services / 369</p> <p>7.3 Resource-Oriented Architecture (ROA) / 379</p> <p>7.4 Interface Description Languages / 387</p> <p>7.4.1 Web Services Description Language (WSDL) / 387</p> <p>7.4.2 Web Application Description Language (WADL) / 390</p> <p>7.5 An Example Application Program Interface (API) for Resource-Oriented Web Services / 396</p> <p>7.6 Hypermedia Control and Contract Conformance / 406</p> <p>7.7 Concluding Remarks / 412</p> <p>7.8 Further Reading / 414</p> <p>References / 414</p> <p><b>Appendix A: Introduction to Haskell 416</b></p> <p>A.1 Types and Functions / 416</p> <p>A.2 Type Classes and Functors / 425</p> <p>A.3 Monads / 431</p> <p>A.4 Further Reading / 436</p> <p>References / 436</p> <p><b>Appendix B: Time in Distributed Systems 437</b></p> <p>B.1 What Time Is It? / 437</p> <p>B.2 Time and Causality / 443</p> <p>B.3 Applications of Logical and Vector Time / 450</p> <p>B.3.1 Mutual Exclusion / 450</p> <p>B.3.2 Quorum Consensus / 451</p> <p>B.3.3 Distributed Logging / 456</p> <p>B.3.4 Causal Message Delivery / 458</p> <p>B.3.5 Distributed Snapshots / 463</p> <p>B.4 Virtual Time / 468</p> <p>B.5 Further Reading / 470</p> <p>References / 470</p> <p><b>Index 473</b></p>
<b>Dominic Duggan, PhD</b>, 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.
<b>Provides principles and best practices for the design and development of enterprise software applications</b> <p>Enterprise software drives much of the world's IT systems in critical domains such as healthcare, finance, e-commerce, and government. Web services and cloud computing are two manifestations of the growing sophistication and interconnectedness of business IT processes. Despite its importance, the agreed best practices for building enterprise software are still very much a "work in progress." This text provides a timely review of the principles and practice of enterprise software architecture, including the perspectives of software-oriented architecture (SOA), domain-driven design, and representational state transfer (REST).</p> <p>It also features:</p> <ul> <li> <p>Both the implementation-oriented perspective of the hands-on developer and the design-oriented perspective of the software architect</p> </li> <li> <p>Discussion of the support for enterprise software development provided by popular frameworks such as Java Enterprise Edition and Windows Communication Foundation, including illustrative examples</p> </li> <li> <p>Discussion of trends in computer science research that promise to have a bearing on the hard problems associated with building reliable enterprise applications</p> </li> <li> <p>Review of basic concepts that any enterprise software developer or architect will need to understand, in programming languages and distributed systems</p> </li> </ul> <p>Intended to bridge the gap between high-level conceptual overviews and in-depth technical tutorials, <i>Enterprise Software Architecture and Design</i> is ideal for students in computer science, information systems, and systems engineering, as well as software development professionals, computer scientists, and software architects.</p>

Diese Produkte könnten Sie auch interessieren:

Domain Architectures
Domain Architectures
von: Daniel J. Duffy
PDF ebook
31,99 €