1 - Introduction and Background.- 1. Introduction.- 1.1 Aims and Objectives of this Book.- 1.2 Organization of Material.- 1.3 Intended Readership.- 2. Background and Context.- 2.1 Evolution of Distributed Computing.- Evolution of Key Technologies up to the mid 1990s.- 1955-1970.- 1970-1980.- 1980-late 1980s.- Late 1980s to mid 1990s.- Development of Distributed Computing to the mid 1990s.- 2.2 Distributed and Client/Server Computing.- Client/Server Computing.- Models of Client/Server Computing.- Distributed Computing.- Access and Security.- Concurrency and Maintenance of Consistency.- Fault Tolerance (Availability).- Heterogeneity and Transparency.- Inter-process Communication.- Naming.- Openness.- Scalability.- Resource Sharing and Management.- 2.3 An Architectural Approach.- Application Architecture.- 2.4 Elements of a Technology Architecture.- Architecture Constituents.- Capabilities for Application Development.- Integration Services.- Information Management: Databases.- Systems Management.- Network Services.- Platforms.- Middleware and Application Development Products.- SQL-based Products.- RPC (RPC-like Mechanism)-based Products.- Distributed Transaction Processing Monitors.- Object Brokers.- Message-Oriented Middleware.- 2.5 The Enterprise.- Forms of Organizational Structure.- "Traditional" Organizational Structure.- Challenges to Tradition.- Networked Organization.- Process Orientation.- The Complex Organization.- The Workgroup.- An Organizational Model.- Task.- Workgroup.- Function.- Process.- Organizational Unit.- Requirements on the Information System.- Changeability.- Formal and Informal Communication.- Variation from a Standard.- Visibility and Interoperability.- 2 - The Distributed Application.- 3. The Three-Tier Application Architecture.- 3.1 Partitioning the Application.- Design Principles.- Classifying Types of Application Behaviour.- Major Organizing Themes.- Assignment of Work.- Organization of Data.- The Third Tier.- Partitioning the Components.- Partitioning Summary.- Form of the Architecture.- Nature of the Tiers.- 3.2 Development Implications.- 3.3 Development, Deployment and Controlling Complexity.- Technology Solutions.- Organizational Solutions.- The Application Perspective.- Designing for Reuse.- Logical Groupings of Software.- Designing for Flexible Deployment.- Versioning.- Widget Master Revisited.- Response to Change Requirements.- Deployment Configurations.- 3.4 More Design Issues.- DAS and Business Objects.- Business Rules and the Three Tiers.- Application Development Revisited.- Order Entry.- Payment Allocation.- Business Rules and Data Separation of Presentation/Delivery from.- Building with Components.- The Architecture and the Business Model.- 3.5 Conclusion.- 4. The Three-Tier Architecture: An Object-Oriented Perspective Paul Taylor.- 4.1 Background.- Basis of the Object Paradigm.- Classes and Objects.- Encapsulation.- Inheritance and Polymorphism.- 4.2 Models.- Client Server Roles.- Modelling Object Interactions.- 4.3 Organizational Model.- Overview of Use Cases.- 4.4 Logical Architecture.- Organizing Principles.- Reuse and Components.- Services, Components and Objects.- Designing with Components.- Model the Use Cases.- Define Packages.- Model the Package and Object Collaborations.- Define Services.- 4.5 Summary.- 3 - Coupling and Dependency.- 5. Coupling in Distributed Systems.- 5.1 Introduction.- 5.2 Operationalizing Coupling in Distributed Systems.- Types of Information Flow along the Connection.- Data and Control Information.- Administrative Information.- Interface Complexity.- Binding.- Binding to a Form/Structure.- Binding to an Implementation.- Binding to an Occurrence.- Binding - Summary.- Types of Connection Between Modules.- Classification of Communication Types.- Communication Types and Coupling.- 5.3 Coupling, Middleware and Systems Design.- Default Coupling.- Application Induced Coupling.- 5.4 Coupling Summary.- 6. Software Dependency.- 6.1 Introduction.- Types of Software Dependency.- Processing Dependency.- Informational Dependency.- Implementing Software Dependencies.- Simple Processing Dependency.- Transactional Dependency.- Informational Dependency.- Dependencies and Appropriate Coupling.- 6.2 Identifying Software Dependencies.- Processing versus Informational Dependencies.- Transactional versus Non Transactional Dependencies.- Dependencies between Different Entities.- Dependencies with Partitioned or Replicated Data.- 6.3 Origins of Software Dependency.- Business Dependency.- Existing Systems and Software.- 6.4 Managing the Implementation of Informational Dependencies.- 6.5 Conclusion.- 4 - Distributed Computing and the Enterprise.- 7. The Enterprise and the Distributed Application: Alternative Architectures.- 7.1 Titanic Distributors Ltd.- 7.2 The Current System.- 7.3 Analysis of Dependency.- Enter and Process Order.- Apply Payment.- Order Processing.- Application of Payments.- 7.4 The New Distributed System.- A Single Global Distributed System.- System Growth and Coupling.- A Message-Based Clustered Architecture.- An Approach to Clustering.- A Message-Based Clustered Design for Titanic.- Clustering: Processing and Administrative Isolation.- A Request/Reply-Based Clustered Architecture.- 7.5 Distributed Application Alternatives: Discussion.- 8. The Federation.- 8.1 Overview.- 8.2 The Domain.- Demarcating Domain Boundaries.- Inside the Domain.- 8.3 The Federal Highway.- The Federal Directory Services.- Message Delivery Mechanisms.- 8.4 The Gatekeeper.- 8.5 The Contract: A Domain's Obligations to the Federation.- 8.6 Processing and Administrative Isolation.- 8.7 Transition to the Federation.- 8.8 Federated Architecture and Organizational Structure.- 8.9 Example: an Australian Transport Company.- 8.10 Conclusion.- 9. Implementing the Federation.- 9.1 Introduction.- Overview.- MQSeries Queuing Middleware.- The Directory Services Domain.- The Gatekeeper.- Publisher's Gatekeeper.- Subscriber's Gatekeeper.- 9.2 Federation Protocols.- Initiate a New Publication.- Subscribing to a Publication.- Start a Publication.- Publishing.- Delete Subscription to a Publication.- Delete a Publication.- Delete Domain.- Modify a Publication.- 10. Experiences in a Financial Institution.- 10.1 Motivation.- Application Data Interchange (ADI).- Objectives.- 10.2 The Approach to ADI.- Balancing and Control.- Intelligent Gateway and Message Formats.- Routers and Domains.- Underpinning Design Principles and Requirements.- Minimize Change to Existing Applications.- No Application Specific Logic.- Based on Messaging and Queuing Model.- Client/Server Model.- Time-Out.- Error Handling.- 10.3 ADI Conceptual Design.- ADI Components.- Intelligent Gateways and Data Transportation.- Flow Through an Intelligent Gateway.- ADI Functions and Support Features.- Data Format Standards.- Router/Data Transport Mechanism.- ADI Directory.- System Utilities.- Recovery.- 10.4 ADI Architecture: Summary and Discussion.- Summary.- ADI Benefits.- Discussion.- 10.5 Commentary.- 11. Pulling it all Together.- 11.1 Application Software and the Enterprise.- 11.2 Organizational Requirements.- Changeability.- Formal and Informal Communication.- Variation from a Standard.- Visibility and Interoperability.- 11.3 Conclusion.- I Appendix 1: Survey of Products.- Middleware.- SQL-based Middleware.- Pros and Cons of SQL-based Middleware.- Product Sets Using SQL-based Middleware.- RPC-Type Middleware.- DTP Monitors.- Object Brokers.- Message-Oriented Middleware.- Other Products.- Systems Management.- Standards.- Product Examples.- Information Management Services: Databases.- Network Services.- Appendix 2: Queue Organization.- MQSeries queues.- extpub queue - Queue manager: dirsermgr.- rep-to-extpub queue - Queue manager: dirsermgr.- newpub queue - Queue manager: dirsermgr.- newsubs - Queue manager: dirsermgr.- delsubs queue - Queue manager: dirsermgr.- delpub queue - Queue manager: dirsermgr.- rep-to-stopsubs queue - Queue manager: dirsermgr.- reqmod queue - Queue manager: dirsermgr.- rep-to-modpub queue - Queue manager: dirsermgr.- deldom queue - Queue manager: dirsermgr.- rep-to-reqmod queue - Queue manager: dirsermgr.- extpub queue - Queue manager: publisher.- newsubs queue - Queue manager: publisher.- delsubs queue - Queue Manager: publisher.- rep-to-delpub queue - Queue manager: publisher.- reqmod queue - Queue manager: publisher.- publication queue - Queue manager: subscriber.- stopsubs queue - Queue manager: subscriber.- modpub queue - Queue manager: subscriber.- rep-to-deldom queue - Queue manager: publisher or subscriber.- References.
Client/server and distributed technologies have made great strides since their emergence in the late 1980s to become very popular in the IT industry today. This book illustrates techniques not only for designing GUI client/server applications, but also for managing complex application environments containing both legacy and new applications.
Topics covered in this book include
- The what, when and how of the three tier client/server model
- Coupling and dependency: key design factors in distributed systems
- Distributed application design alternatives for the enterprise
- The Federated application structure for integrating the applications of the enterprise
- A real-life case study of a major financial institution
- Systems Architects and senior technical staff
Project Managers and Software Engineers involved with or interested in client/server computing, and final year undergraduate and postgraduate students will find this book useful.