{"product_id":"pattern-oriented-software-architecture-a-pattern-language-for-distributed-computing-hardback-9780470059029","title":"Pattern-Oriented Software Architecture, A Pattern Language for Distributed Computing (Hardback) 9780470059029","description":"\u003cfont face=\"Georgia\"\u003e\r\n\u003cp\u003e\u003cfont size=\"6\"\u003ePattern-Oriented Software Architecture, A Pattern Language for Distributed Computing\u003c\/font\u003e\u003cbr\u003e\r\n\r\n\r\n\r\n\r\n\r\n\u003c\/p\u003e\n\u003cp\u003e\u003cfont size=\"4\"\u003eFrank Buschmann (Author), Kevlin Henney (Author), Douglas C. Schmidt (Author)\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\u003cp\u003e\u003cfont size=\"3\"\u003e9780470059029, Wiley\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\u003cp\u003e\u003cfont size=\"3\"\u003eHardback, published 16 March 2007\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\u003cp\u003e\u003cfont size=\"3\"\u003e640 pages\u003cbr\u003e24.4 x 19.6 x 4.1 cm, 1.315 kg\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\r\n\r\n\u003cp align=\"justify\"\u003e\u003cem\u003e\u003cfont size=\"3\"\u003e\"The authors' decision to include a real-life use case was a good strategy it illustrate the application of the pattern language.\" (\u003ci\u003eComputing Reviews\u003c\/i\u003e, February 15, 2008)\u003c\/font\u003e\u003c\/em\u003e\u003c\/p\u003e\r\n\r\n\u003cp align=\"justify\"\u003e\u003cstrong\u003e\u003cfont size=\"3\"\u003eThe eagerly awaited \u003cb\u003ePattern-Oriented Software Architecture (POSA) Volume 4\u003c\/b\u003e is about a pattern language for distributed computing.  \u003cp\u003eThe authors will guide you through the best practices and introduce you to key areas of building distributed software systems. POSA 4 connects many stand-alone patterns, pattern collections and pattern languages from the existing body of literature found in the POSA series. Such patterns relate to and are useful for distributed computing to a single language.\u003c\/p\u003e \u003cul\u003e \u003cli\u003eThe panel of experts provides you with a consistent and coherent holistic view on the craft of building distributed systems.\u003c\/li\u003e \u003cli\u003eIncludes a foreword by Martin Fowler\u003c\/li\u003e \u003cli\u003eA must read for practitioners who want practical advice to develop a comprehensive language integrating patterns from key literature.\u003c\/li\u003e \u003c\/ul\u003e\u003c\/font\u003e\u003c\/strong\u003e\u003c\/p\u003e\r\n\r\n\u003cp\u003e\u003cfont size=\"3\"\u003e\u003cp\u003eForeword xv\u003c\/p\u003e \u003cp\u003eAbout This Book xvii\u003c\/p\u003e \u003cp\u003eAbout The Authors xxiii\u003c\/p\u003e \u003cp\u003eGuide To The Reader xxvii\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart I Some Concepts 1\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e1 On Patterns and Pattern Languages 3\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e1.1 Patterns Introduced 4\u003c\/p\u003e \u003cp\u003e1.2 Inside Patterns 6\u003c\/p\u003e \u003cp\u003e1.3 Between Patterns 10\u003c\/p\u003e \u003cp\u003e1.4 Into Pattern Languages 13\u003c\/p\u003e \u003cp\u003e1.5 Patterns Connected 15\u003c\/p\u003e \u003cp\u003e\u003cb\u003e2 On Distributed Systems 17\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e2.1 Benefits of Distribution 18\u003c\/p\u003e \u003cp\u003e2.2 Challenges of Distribution 20\u003c\/p\u003e \u003cp\u003e2.3 Technologies for Supporting Distribution 22\u003c\/p\u003e \u003cp\u003e2.4 Limitations of Middleware 32\u003c\/p\u003e \u003cp\u003e\u003cb\u003e3 On the Pattern Language 33\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e3.1 Intent, Scope, and Audience 34\u003c\/p\u003e \u003cp\u003e3.2 Origins and Genesis 35\u003c\/p\u003e \u003cp\u003e3.3 Structure and Content 36\u003c\/p\u003e \u003cp\u003e3.4 Presentation 44\u003c\/p\u003e \u003cp\u003e3.5 Practical Use 49\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart II A Story 53\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e4 Warehouse Management Process Control 57\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e4.1 System Scope 58\u003c\/p\u003e \u003cp\u003e4.2 Warehouse Management Process Control 60\u003c\/p\u003e \u003cp\u003e\u003cb\u003e5 Baseline Architecture 65\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e5.1 Architecture Context 66\u003c\/p\u003e \u003cp\u003e5.2 Partitioning the Big Ball of Mud 67\u003c\/p\u003e \u003cp\u003e5.3 Decomposing the Layers 68\u003c\/p\u003e \u003cp\u003e5.4 Accessing Domain Object Functionality 71\u003c\/p\u003e \u003cp\u003e5.5 Bridging the Network 72\u003c\/p\u003e \u003cp\u003e5.6 Separating User Interfaces 76\u003c\/p\u003e \u003cp\u003e5.7 Distributing Functionality 79\u003c\/p\u003e \u003cp\u003e5.8 Supporting Concurrent Domain Object Access 82\u003c\/p\u003e \u003cp\u003e5.9 Achieving Scalable Concurrency 85\u003c\/p\u003e \u003cp\u003e5.10 Crossing the Object-Oriented\/Relational Divide 87\u003c\/p\u003e \u003cp\u003e5.11 Configuring Domain Objects at Runtime 89\u003c\/p\u003e \u003cp\u003e5.12 Baseline Architecture Summary 90\u003c\/p\u003e \u003cp\u003e\u003cb\u003e6 Communication Middleware 95\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e6.1 A Middleware Architecture for Distributed Systems 96\u003c\/p\u003e \u003cp\u003e6.2 Structuring the Internal Design of the Middleware 100\u003c\/p\u003e \u003cp\u003e6.3 Encapsulating Low-level System Mechanisms 103\u003c\/p\u003e \u003cp\u003e6.4 Demultiplexing ORB Core Events 105\u003c\/p\u003e \u003cp\u003e6.5 Managing ORB Connections 108\u003c\/p\u003e \u003cp\u003e6.6 Enhancing ORB Scalability 111\u003c\/p\u003e \u003cp\u003e6.7 Implementing a Synchronized Request Queue 114\u003c\/p\u003e \u003cp\u003e6.8 Interchangeable Internal ORB Mechanisms 116\u003c\/p\u003e \u003cp\u003e6.9 Consolidating ORB Strategies 118\u003c\/p\u003e \u003cp\u003e6.10 Dynamic Configuration of ORBs 121\u003c\/p\u003e \u003cp\u003e6.11 Communication Middleware Summary 124\u003c\/p\u003e \u003cp\u003e\u003cb\u003e7 Warehouse Topology 129\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e7.1 Warehouse Topology Baseline 130\u003c\/p\u003e \u003cp\u003e7.2 Representing Hierarchical Storage 131\u003c\/p\u003e \u003cp\u003e7.3 Navigating the Storage Hierarchy 133\u003c\/p\u003e \u003cp\u003e7.4 Modeling Storage Properties 135\u003c\/p\u003e \u003cp\u003e7.5 Varying Storage Behavior 137\u003c\/p\u003e \u003cp\u003e7.6 Realizing Global Functionality 140\u003c\/p\u003e \u003cp\u003e7.7 Traversing the Warehouse Topology 142\u003c\/p\u003e \u003cp\u003e7.8 Supporting Control Flow Extensions 144\u003c\/p\u003e \u003cp\u003e7.9 Connecting to the Database 146\u003c\/p\u003e \u003cp\u003e7.10 Maintaining In-Memory Storage Data 147\u003c\/p\u003e \u003cp\u003e7.11 Configuring the Warehouse Topology 149\u003c\/p\u003e \u003cp\u003e7.12 Detailing the Explicit Interface 151\u003c\/p\u003e \u003cp\u003e7.13 Warehouse Topology Summary 153\u003c\/p\u003e \u003cp\u003e\u003cb\u003e8 The Story Behind The Pattern Story 157\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart III The Language 163\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e9 From Mud To Structure 167\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eDomain Model ** 182\u003c\/p\u003e \u003cp\u003eLayers ** 185\u003c\/p\u003e \u003cp\u003eModel-View-Controller ** 188\u003c\/p\u003e \u003cp\u003ePresentation-Abstraction-Control 191\u003c\/p\u003e \u003cp\u003eMicrokernel ** 194\u003c\/p\u003e \u003cp\u003eReflection * 197\u003c\/p\u003e \u003cp\u003ePipes and Filters ** 200\u003c\/p\u003e \u003cp\u003eShared Repository ** 202\u003c\/p\u003e \u003cp\u003eBlackboard 205\u003c\/p\u003e \u003cp\u003eDomain Object ** 208\u003c\/p\u003e \u003cp\u003e\u003cb\u003e10 Distribution Infrastructure 211\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eMessaging ** 221\u003c\/p\u003e \u003cp\u003eMessage Channel ** 224\u003c\/p\u003e \u003cp\u003eMessage Endpoint ** 227\u003c\/p\u003e \u003cp\u003eMessage Translator ** 229\u003c\/p\u003e \u003cp\u003eMessage Router ** 231\u003c\/p\u003e \u003cp\u003ePublisher-Subscriber ** 234\u003c\/p\u003e \u003cp\u003eBroker ** 237\u003c\/p\u003e \u003cp\u003eClient Proxy ** 240\u003c\/p\u003e \u003cp\u003eRequestor ** 242\u003c\/p\u003e \u003cp\u003eInvoker ** 244\u003c\/p\u003e \u003cp\u003eClient Request Handler ** 246\u003c\/p\u003e \u003cp\u003eServer Request Handler ** 249\u003c\/p\u003e \u003cp\u003e\u003cb\u003e11 Event Demultiplexing and Dispatching 253\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eReactor ** 259\u003c\/p\u003e \u003cp\u003eProactor * 262\u003c\/p\u003e \u003cp\u003eAcceptor-Connector ** 265\u003c\/p\u003e \u003cp\u003eAsynchronous Completion Token ** 268\u003c\/p\u003e \u003cp\u003e\u003cb\u003e12 Interface Partitioning 271\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eExplicit Interface ** 281\u003c\/p\u003e \u003cp\u003eExtension Interface ** 284\u003c\/p\u003e \u003cp\u003eIntrospective Interface ** 286\u003c\/p\u003e \u003cp\u003eDynamic Invocation Interface * 288\u003c\/p\u003e \u003cp\u003eProxy ** 290\u003c\/p\u003e \u003cp\u003eBusiness Delegate ** 292\u003c\/p\u003e \u003cp\u003eFacade ** 294\u003c\/p\u003e \u003cp\u003eCombined Method ** 296\u003c\/p\u003e \u003cp\u003eIterator ** 298\u003c\/p\u003e \u003cp\u003eEnumeration Method ** 300\u003c\/p\u003e \u003cp\u003eBatch Method ** 302\u003c\/p\u003e \u003cp\u003e\u003cb\u003e13 Component Partitioning 305\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eEncapsulated Implementation ** 313\u003c\/p\u003e \u003cp\u003eWhole-Part ** 317\u003c\/p\u003e \u003cp\u003eComposite ** 319\u003c\/p\u003e \u003cp\u003eMaster-Slave * 321\u003c\/p\u003e \u003cp\u003eHalf-Object plus Protocol ** 324\u003c\/p\u003e \u003cp\u003eReplicated Component Group * 326\u003c\/p\u003e \u003cp\u003e\u003cb\u003e14 Application Control 329\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003ePage Controller ** 337\u003c\/p\u003e \u003cp\u003eFront Controller ** 339\u003c\/p\u003e \u003cp\u003eApplication Controller ** 341\u003c\/p\u003e \u003cp\u003eCommand Processor ** 343\u003c\/p\u003e \u003cp\u003eTemplate View ** 345\u003c\/p\u003e \u003cp\u003eTransform View ** 347\u003c\/p\u003e \u003cp\u003eFirewall Proxy ** 349\u003c\/p\u003e \u003cp\u003eAuthorization ** 351\u003c\/p\u003e \u003cp\u003e\u003cb\u003e15 Concurrency 353\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eHalf-Sync\/Half-Async ** 359\u003c\/p\u003e \u003cp\u003eLeader\/Followers ** 362\u003c\/p\u003e \u003cp\u003eActive Object ** 365\u003c\/p\u003e \u003cp\u003eMonitor Object ** 368\u003c\/p\u003e \u003cp\u003e\u003cb\u003e16 Synchronization 371\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eGuarded Suspension ** 380\u003c\/p\u003e \u003cp\u003eFuture ** 382\u003c\/p\u003e \u003cp\u003eThread-Safe Interface * 384\u003c\/p\u003e \u003cp\u003eDouble-Checked Locking 386\u003c\/p\u003e \u003cp\u003eStrategized Locking ** 388\u003c\/p\u003e \u003cp\u003eScoped Locking ** 390\u003c\/p\u003e \u003cp\u003eThread-Specific Storage 392\u003c\/p\u003e \u003cp\u003eCopied Value ** 394\u003c\/p\u003e \u003cp\u003eImmutable Value ** 396\u003c\/p\u003e \u003cp\u003e\u003cb\u003e17 Object Interaction 399\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eObserver ** 405\u003c\/p\u003e \u003cp\u003eDouble Dispatch ** 408\u003c\/p\u003e \u003cp\u003eMediator * 410\u003c\/p\u003e \u003cp\u003eCommand ** 412\u003c\/p\u003e \u003cp\u003eMemento ** 414\u003c\/p\u003e \u003cp\u003eContext Object ** 416\u003c\/p\u003e \u003cp\u003eData Transfer Object ** 418\u003c\/p\u003e \u003cp\u003eMessage ** 420\u003c\/p\u003e \u003cp\u003e\u003cb\u003e18 Adaptation and Extension 423\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eBridge ** 436\u003c\/p\u003e \u003cp\u003eObject Adapter ** 438\u003c\/p\u003e \u003cp\u003eChain of Responsibility * 440\u003c\/p\u003e \u003cp\u003eInterpreter 442\u003c\/p\u003e \u003cp\u003eInterceptor ** 444\u003c\/p\u003e \u003cp\u003eVisitor ** 447\u003c\/p\u003e \u003cp\u003eDecorator 449\u003c\/p\u003e \u003cp\u003eExecute-Around Object ** 451\u003c\/p\u003e \u003cp\u003eTemplate Method * 453\u003c\/p\u003e \u003cp\u003eStrategy ** 455\u003c\/p\u003e \u003cp\u003eNull Object ** 457\u003c\/p\u003e \u003cp\u003eWrapper Facade ** 459\u003c\/p\u003e \u003cp\u003eDeclarative Component Configuration * 461\u003c\/p\u003e \u003cp\u003e\u003cb\u003e19 Modal Behavior 463\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eObjects for States * 467\u003c\/p\u003e \u003cp\u003eMethods for States * 469\u003c\/p\u003e \u003cp\u003eCollections for States ** 471\u003c\/p\u003e \u003cp\u003e\u003cb\u003e20 Resource Management 473\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eContainer * 488\u003c\/p\u003e \u003cp\u003eComponent Configurator * 490\u003c\/p\u003e \u003cp\u003eObject Manager ** 492\u003c\/p\u003e \u003cp\u003eLookup ** 495\u003c\/p\u003e \u003cp\u003eVirtual Proxy ** 497\u003c\/p\u003e \u003cp\u003eLifecycle Callback ** 499\u003c\/p\u003e \u003cp\u003eTask Coordinator * 501\u003c\/p\u003e \u003cp\u003eResource Pool ** 503\u003c\/p\u003e \u003cp\u003eResource Cache ** 505\u003c\/p\u003e \u003cp\u003eLazy Acquisition ** 507\u003c\/p\u003e \u003cp\u003eEager Acquisition ** 509\u003c\/p\u003e \u003cp\u003ePartial Acquisition * 511\u003c\/p\u003e \u003cp\u003eActivator ** 513\u003c\/p\u003e \u003cp\u003eEvictor ** 515\u003c\/p\u003e \u003cp\u003eLeasing ** 517\u003c\/p\u003e \u003cp\u003eAutomated Garbage Collection ** 519\u003c\/p\u003e \u003cp\u003eCounting Handle ** 522\u003c\/p\u003e \u003cp\u003eAbstract Factory ** 525\u003c\/p\u003e \u003cp\u003eBuilder * 527\u003c\/p\u003e \u003cp\u003eFactory Method ** 529\u003c\/p\u003e \u003cp\u003eDisposal Method ** 531\u003c\/p\u003e \u003cp\u003e\u003cb\u003e21 Database Access 533\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eDatabase Access Layer ** 538\u003c\/p\u003e \u003cp\u003eData Mapper ** 540\u003c\/p\u003e \u003cp\u003eRow Data Gateway ** 542\u003c\/p\u003e \u003cp\u003eTable Data Gateway ** 544\u003c\/p\u003e \u003cp\u003eActive Record 546\u003c\/p\u003e \u003cp\u003e\u003cb\u003e22 A Departing Thought 549\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eGlossary 553\u003c\/p\u003e \u003cp\u003eReferences 573\u003c\/p\u003e \u003cp\u003eIndex of Patterns 587\u003c\/p\u003e \u003cp\u003eIndex of Names 593\u003c\/p\u003e \u003cp\u003eSubject Index 595\u003c\/p\u003e\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\u003cp\u003e\u003cfont size=\"3\"\u003eSubject Areas: Computer programming \/ software development [\u003ca title=\"See our other books on Computer programming \/ software development\" href=\"https:\/\/freshlyprintedbooks.co.uk\/search?q=%22Computer%20programming%20\/%20software%20development%20%5BUM%5D%22\"\u003eUM\u003c\/a\u003e]\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\r\n\u003c\/font\u003e","brand":"Wiley","offers":[{"title":"Brand New","offer_id":52463028306200,"sku":"9780470059029","price":25.27,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0730\/2037\/5320\/files\/9780470059029.jpg?v=1785545868","url":"https:\/\/freshlyprintedbooks.co.uk\/products\/pattern-oriented-software-architecture-a-pattern-language-for-distributed-computing-hardback-9780470059029","provider":"Freshly Printed Books","version":"1.0","type":"link"}