Here Is a Review Version of the Book for You to Check Out
Total Page:16
File Type:pdf, Size:1020Kb
modified 2:50 PM 25 June 2004 Cover.fm <version 1.0> 2 2nd REVIEW DRAFT 25 June 2004 (c) 2003 Kircher, Völter, Zdun FOR REVIEW ONLY PLEASE DO NOT DISTRIBUTE THE PDF ANY FURTHER modified 2:50 PM 25 June 2004 Cover.fm <version 1.0> 1 Table of Contents 1 Series Foreword.........................................................................5 2 Foreword ....................................................................................7 3 Preface ......................................................................................11 3.1 How to Read this Book .........................................................11 3.2 Goals of the Book..................................................................13 3.3 About the Authors .................................................................14 3.4 Acknowledgements ...............................................................16 3.5 Patterns and Pattern Languages.............................................17 3.6 Our Pattern Form...................................................................22 3.7 Key to the Illustrations ..........................................................25 4 Introduction To Distributed Systems ....................................29 4.1 Distributed Systems: Reasons and Challenges......................29 4.2 Communication Middleware.................................................35 4.3 Remoting Styles ....................................................................37 5 Pattern Language Overview...................................................49 5.1 Overview of the Pattern Chapters..........................................57 6 Basic Remoting Patterns.........................................................65 6.1 Interactions among the Patterns.............................................97 7 Identification Patterns...........................................................103 7.1 Interactions among the Patterns...........................................115 8 Lifecycle Management Patterns...........................................117 8.1 Basic Lifecycle Patterns ......................................................118 8.2 General Resource Management Patterns.............................129 8.3 Interactions among the Patterns...........................................142 modified 2:49 PM 25 June 2004 RemotingTOC.fm <version 1.0> 2 9 Extension Patterns ................................................................ 157 9.1 Interactions among the Patterns .......................................... 171 10 Extended Infrastructure Patterns ....................................... 175 10.1 Interactions among the Patterns .......................................... 193 11 Invocation Asynchrony Patterns ......................................... 197 11.1 Interactions among the Patterns .......................................... 216 11.2 Related Patterns: Invocation Asynchrony........................... 229 12 Related Concepts, Technologies, and Patterns................... 231 12.1 Related Patterns .................................................................. 232 12.2 Distribution Infrastructures................................................. 236 12.3 Quality Attributes................................................................ 246 12.4 Aspect-Orientation and Remoting ...................................... 251 13 Technology Projections ........................................................ 253 14 ....................................................................................................... .NET Remoting Technology Projection255 14.1 Brief History of .NET Remoting ........................................ 255 14.2 .NET Concepts - A Brief Introduction................................ 256 14.3 Pattern Map......................................................................... 258 14.4 An Simple .NET Remoting Example.................................. 259 14.5 Remoting Boundaries.......................................................... 264 14.6 Basic Internals..................................................................... 266 14.7 Error Handling .................................................................... 267 14.8 Server-Activated Instances ................................................. 268 14.9 Client-Dependent Instances and Leasing............................ 276 14.10 More Advanced Lifecycle Management............................. 283 14.11 Internals of .NET Remoting................................................ 285 modified 2:49 PM 25 June 2004 RemotingTOC.fm <version 1.0> 3 14.12 Extensibility of .NET Remoting..........................................289 14.13 Asynchronous Communication ...........................................296 14.14 Outlook to the Next Generation ..........................................302 15 Web Services Technology Projection...................................305 15.1 Brief History of Web Services ............................................305 15.2 Pattern Map .........................................................................310 15.3 SOAP Messages ..................................................................310 15.4 Message Processing.............................................................320 15.5 Protocol Integration.............................................................328 15.6 Marshalling using SOAP XML Encoding...........................330 15.7 Lifecycle Management ........................................................333 15.8 Client-Side Asynchrony ......................................................335 15.9 Web Services and QoS ........................................................340 15.10 Web Service Security ..........................................................342 15.11 Lookup of Web Services: UDDI .........................................343 15.12 Other Web Service Frameworks .........................................345 15.13 Consequences of the Pattern Variants Used in Web Services354 16 CORBA Technology Projection ...........................................357 16.1 Brief History of CORBA.....................................................357 16.2 Pattern Map .........................................................................359 16.3 Initial Example ....................................................................360 16.4 CORBA Basics....................................................................362 16.5 Messaging............................................................................382 16.6 Real-Time CORBA .............................................................387 17 Appendix ................................................................................395 17.1 Appendix A: Building Blocks for Component Infrastructures395 17.2 Appendix B: Extending AOP Frameworks for Remoting...399 modified 2:49 PM 25 June 2004 RemotingTOC.fm <version 1.0> 4 18 References.............................................................................. 407 modified 2:49 PM 25 June 2004 RemotingTOC.fm <version 1.0> 2 Series Foreword Series Foreword modified 2:49 PM 25 June 2004 ForewordFrankBuschmann.fm <version 1.0> 6 Series Foreword modified 2:49 PM 25 June 2004 ForewordFrankBuschmann.fm <version 1.0> 3 Foreword Foreword Many of today’s enterprise computing systems are powered by distrib- uted object middleware. Such systems, which are common in industries such as telecommunications, finance, manufacturing, and government, often support applications that are critical to particular business operations. Because of this, distributed object middleware is often held to stringent performance, reliability, and availability requirements. Fortunately, modern approaches have no problem meeting or exceeding these requirements. Today, successful distrib- uted object systems are essentially taken for granted. There was a time, however, when making such claims about the possi- bilities of distributed objects would have met with disbelief and derision. In their early days, distributed object approaches were often viewed as mere academic fluff with no practical utility. Fortunately, the creators of visionary distributed object systems such as Eden, Argus, Emerald, COMANDOS, and others were undeterred by such opinion. Despite the fact that the experimental distributed object systems of the 1980s were generally impractical — too big, too slow, or based on features available only from particular specialized platforms or programming languages — the exploration and experimentation required to put them together collectively paved the way for the prac- tical distributed objects systems that followed. The 1990s saw the rise of several commercially successful and popular distributed object approaches, notably the Common Object Request Broker Architecture (CORBA) promoted by the Object Management Group (OMG) and Microsoft’s Common Object Model (COM). CORBA was specifically designed to address the inherent heterogeneity of busi- ness computing networks, where mixtures of machine types, operating systems, programming languages, and application styles are the norm and must coexist and cooperate. COM, on the other hand, was built specifically to support component-oriented applications running on the Microsoft Windows operating system. Today, COM has been modified 2:49 PM 25 June 2004 ForewordSteveVinoski.fm <version 1.0> 8 Foreword largely subsumed by its successor, .NET, while CORBA remains in wide use as a well-proven architecture for building and deploying significant enterprise-scale heterogeneous systems, as well as real-time and embedded systems. As