Explains the role of emerging middleware in enabling modern distributed enterprises.
Shows how three powerful technologies (object-orientation, client/server, and Innternet) can be combined to form a powerful IT infrastructure for organizations of today and tomorrow.
Leads you systematically through the dense technology jungle by using numerous case studies and examples, discussing industrial products, outlining trends, and highlighting technical/management implications.
This book systematically answers critical management and technical questions about the modern IT infrastructure, in particular, middleware. KEY TOPICS:Among the topics covered are: distributed object technologies such as CORBA, OLE/ActiveX, and OpenDoc; middleware for the World Wide Web such as Web browsers, Web gateways, and Java; middleware for remote SQL, such as SQL gateways, ODBC and DRDA; network operating systems such as OSF DCE; client/server transaction processing middleware, and middleware for mobile, groupware, legacy access, and distributed multimedia applications. MARKET: For information systems management, programmers, systems analysts, and other computing professionals.
I: GETTING STARTED.1. The Big Picture.
Introduction. A Framework for Discussion. Applications in 1990s and Beyond. Classification of Applications. Object-Oriented Client/Server Internet Applications. Promises and Pitfalls. What Is an Object-Oriented Client/Server Internet Environment? Concepts. What Is Middleware? Functional View of Middleware. Middleware Logical Components (Layers) and Examples. Why This Book? State of the Practice: General Observations. State of the Market: General Observations. State of the Art: General Trends. Summary. A Case Study. Problems and Exercises. Additional Information. References.2: Information-Technology Building Blocks.
Introduction. Client/Server Fundamentals. Definitions. Client/Server as a Special Case of Distributed Computing. IT Building Blocks-The C/S View. Client/Server Processes-The Applications. Middleware. Network Services. Local Software. Operating Systems. Computing Hardware. Application Architectures and Sample Configurations. Overview. Single-Physical-Tiered Architectures. Two-Physical-Tiered Architecture Overview. Three-Physical-Tiered Architecture Overview. Sample Configurations. Choosing Number of Tiers. IT Building Blocks-A Second Look. Network Services. Middleware Layers-A Closer Look. Applications. State of the Practice: Typical Examples. Overview. Client Examples. Server Examples. State of the Market: Commercial Products. State of the Art: Standards and Trends. Summary. Case Study: IT Building Blocks for XYZCorp. Problems and Exercises. Additional Information. References.
II. UNDERSTANDING THE MIDDLEWARE.3. Basic C/S Middleware and OSF DCE.
Introduction. Basic C/S Middleware and Network Operating Systems. Remote-Procedure Call (RPC). The RPC Paradigm. RPC Analysis. Strengths and Weaknesses of RPC. Remote-Data Access (RDA). RDA Paradigm. RDA Analysis. Strengths and Weaknesses of RDA. Message-Oriented Middleware (MOM). Queued-Message-Processing (QMP) Paradigm. QMP Analysis. Strengths and Weaknesses. Other Paradigms. Basic Management and Support Services. Security. Fault (Failure) Management. Naming and Dictionary Services. Performance. Open Software Foundation's Distributed Computing Environment (DCE). Overview. OSF/DCE Services. DCE Example. DCE Summary and Trends. State of the Practice: Short Case Studies. State of the Market: Products. State of the Art: Standards. Summary. Case Study: XYZCorp Chooses a Network Operating System. Problems and Exercises. Additional Information. References.4. Internet and World Wide Web.
Introduction. Internet and Intranets: A Quick Overview. Overview of World Wide Web. Brief History. World Wide Web Middleware. A Simple Example. Hypertext Markup Language (HTML). Hypertext Transfer Protocol (HTTP). Web Browsers. Java and Java Applets. What Is Java and Why Is It So Hot? What Is HotJava? What Is a Java Applet? Java Details. Web Sites and Web Servers. Web Gateways: Accessing Non-Web Information. Web Gateway Overview. Common Gateway Interface (CGI). Server-Side Includes (SSI). Gateway as a Standalone Server. Mobile Code Systems (Java Gateways). State of the Practice: Web Middleware for Enterprise Use. Overview. Relational Gateways for Web. Web Access to Legacy Information. State of the Market. State of the Art: Integrating Web with Objects and AI. Summary. Case Study: Intranet and Web for XYZCorp. Problems and Exercises. Additional Information. References.5. Distributed-Data Management and Remote SQL Middleware.
Introduction. Concepts and Definitions. Review of Basic Concepts. Distributed-Data Access Management: What and Why. Distributed-Data Model. Distributed File Processing. Single-Site Remote-Database Access: The Simple SQL Middleware. Overview. SQL Clients. SQL Servers. Distributed-Query Processing and Distributed-Database Servers. Overview. Heterogeneous and Federated Databases.in Network Environments. Remote-Data and Distributed-Database Standards: ODBC, DRDA, and ISO RDA. Open Database Connectivity (ODBC) API. Other SQL API Standards. Distributed-Relational-Database Architecture (DRDA): An Exchange Protocol. ISO RDA. Web Access to Relational Databases. Overview. Technical and Architectural Considerations. Observations and Comments. State of the Practice: Examples. State of the Market: SQL Middleware and Gateways. SQL Middleware for Distributed-Data Access. SQL Gateways. State of the Art: Object-Oriented Multidatabase Systems. Summary. Case Study: XYZCorp Provides Web Access to Corporate Data. Problems and Exercises. Additional Information. References.6. Client/Server Transaction Processing.
Introduction. Review of Transaction Concepts. The ACID Properties. Transaction Models. Transaction Managers. Distributed-Transaction Processing Concepts. Distributed ACID. Distributed-Transaction Models. Distributed-Transaction Managers: The TP-Heavy Approach. Standards for Distributed-Transaction Processing. Data-Replication Servers: Another Approach to Updating. Replicated Data. Overview. Definitions and Technical Considerations. General Architecture of Replication Servers. Framework for Analyzing/Selecting Data-Replication Servers. Two-Phase Commit versus Data-Replication Servers. Two-Phase Commit. Trade-offs Between Two-Phase Commit and Replication Servers. C/S Transaction Processing: TP-Less, TP-Lite, TP-Heavy. TP-Less. TP-Lite. TP-Heavy. Trade-offs Between TP-Lite and TP-Heavy. Distributed-Data and Transaction Management: A Consolidation. Global Data Definition and Translation Challenges. Global Directory Allocation (Name Services) Challenges. Distributed-File Processing Challenges. Distributed-Query Processing Challenges. Distributed-Transaction Processing Challenges. A Distributed-Data and Transaction Management Evaluation Framework. Example of an Open Distributed-Transaction Processor: Encina. Overview. Encina Toolkit Executive. Encina Toolkit Server Core. Encina Extended TP Services. Encina Summary and Trends. State of the Practice: Examples and Case Studies. State of the Market. State of the Art: Object Orientation in Transaction Management. Summary. Case Study: XYZCorp Uses Client/Server Transaction Processing. Problems and Exercises. Additional Information. References.7. Distributed Objects (CORBA and OLE/ActiveX)
Introduction. Objects in Distributed Systems. Concepts. Object Frameworks, Business Objects, and Components. Distributed Objects for Enterprisewide Applications. Interfaces and Interface Definition Language. Common Object Request Broker Architecture (CORBA). Object-Management Architecture. Basic CORBA Concepts. Object-Request Broker Structure. Object Adapters. Using CORBA. CORBA 2.0 Overview. ORB 2.0 Features. CORBA 2.0 Object Services. CORBA 2.0 Common Facilities. CORBA 2.0 Inter-ORB Architecture. Bridges Between ORBs (Half and Full Bridges). CORBA Summary. Compound-Document Middleware: OLE and OpenDoc. Overview. Microsoft's Object Linking and Embedding (OLE). OpenDoc. Compound Document Middleware Summary and Trends. ActiveX-Going Beyond OLE. Overview. DCOM (Distributed Component Object Model) as an ORB. Web Browsers as Containers of ActiveX Components. ActiveX Controls-Building Downloadable Web-based Components. ActiveX Server. General Observations and Comments. State of the Practice: Examples. State of the Market: Commercial Products. State of the Art: ANSA and ISO ODP. ANSA Consortium. ISO ODP (Open Distributed Processing). Summary. Case Study: XYZCorp Investigates Distributed-Object Technologies. Problems and Exercises. Additional Information. References. Appendix 7A: A Detailed CORBA Example. Overview. Create CORBA Definitions. Build the Server. Build a Client (Static Invocation). Build a Client (Dynamic Invocation).8. Mobile Computing, Groupware, Multimedia, and Legacy Data Access Middleware.
Introduction. Mobile Computing Applications. Overview of Mobile Computing Environments. Mobile Computing Application Issues. Middleware for Mobile Computing Applications. State of the Art, Market, and Practice. Distributed-Multimedia Applications. Overview. Middleware for Distributed-Multimedia Applications. State of the Practice, Market, and Art. Middleware for Collaboration: Groupware and Workflows.Overview. Groupware and Lotus Notes. Workflow. State of the Practice, Market, and Art. Legacy Access/Integration Middleware. Overview. Screen Scrapers. Database Gateways. Application Gateways. Object Wrappers-A Step Toward Integration. Integration Gateways-The Super Wrappers. Summary. Case Study: XYZCorp Investigates Emerging Technologies. Problems and Exercises. Additional Information. References.9. Putting the Pieces Together-A Synthesis.
Introduction. Putting The Pieces Together-IT Infrastructure. Overview. Analysis of Infrastructure Requirements. IT Infrastructure Architecture. Implementation Considerations. IBM's Open Distributed Computing Blueprint-Example of an Infrastructure. Overview. The Distributed System Services. Distributed Resource Management. Other Open Distributed Computing Services. Summary of IBM's Open Distributed Computing (ODC). Middleware State of the Practice. Middleware State of the Market. State of the Art: General Trends. Concluding Comments. Case Study: XYZCorp Synthesis of IT Infrastructure Architecture. Problems and Exercises. Additional Information. References.
III. TUTORIALS ON SPECIAL TOPICS.10. Object-Oriented Concepts and Technologies-A Tutorial.
Introduction. Basic Object Concepts. Object: The Basic Building Block. Messages: Activating Objects. Classes. Inheritance. Object Based versus Object Orientation. Abstraction. Encapsulation (Information Hiding). Polymorphism. Object-Oriented User Interfaces. Object-Oriented Design and Programming. Object-Oriented Databases. State of the Practice: General Observations. Summary. Case Study: XYZCorp Investigates OO. Additional Information. References.11. Network Technologies and Architecture-A Tutorial.
Introduction. Enterprise Network Concepts. Typical Existing Networks. Local-Area Networks. Metropolitan-Area Networks-The Large LANs. Typical Wide-Area Networks. Network Architectures and the OSI Reference Model. Overview. Network Interconnectivity. Emerging Communication Technologies. Overview. Interrelationships among Emerging Technologies. Foundations of Emerging Technologies. SONET (Synchronous Optical Network). Fast Packet-Switching Networks ("Fast Relays"). Frame Relay. ATM (Asynchronous Transfer Mode). Switched Multimegabit Data Service (SMDS). Broadband ISDN (BISDN). Mobile Communications (Cellular Networks and Wireless LANs/WANs). Summary of Emerging Technologies. Sample Network Architectures (TCP/IP, SNA, LAN NOSs). Overview. Transmission-Control Program/Internet Protocol (TCP/IP) Stack. IBM's System Network Architecture (SNA). LAN Network Stacks and Network Operating Systems. Analysis and Comparison of Network Stacks. Network Interconnectivity (Routers, Bridges, Gateways). Bridges. Routers and Firewalls. Network Gateways. State of the Practice: Enterprise Network Examples. State of the Market: General Observations. State of the Art. Summary. Case Study: XYZCorp Establishes a Network Architecture. Additional Information. References.
Book Objectives and Highlights
The basic premise of this book is that the applications of today and tomorrow will be increasingly based on three fundamental technologies: object orientation, client/server, and Internet (especially World Wide Web). The focus of this book is on the infrastructure (environment) that supports these applications (we call this, for a lack of better term, the object-oriented client/server Internet environment). In particular, we concentrate on the complex and crucial enabling technologies known as "middleware." These technologies provide business-unaware services to enable the modern distributed applications and services. There is no "one size fits all" solution at present; thus the modern environments will continue to consist of numerous middleware components such as Web browsers, SQL servers, client/server transaction processors, OSF/DCE, CORBA, OLE, mobile computing middleware, distributed-multimedia middleware, Lotus Notes, workflow software, and mediators ("surround technologies") for access/integration of legacy systems. Therefore, it is extremely important to concentrate on interrelationships instead of detailed discussion of one topic.
The objective of this book is to discuss the key enabling technologies, their characteristics, and their interrelationships. Our particular focus is on middleware, owing to its importance and complexity. We will define middleware, establish its role, discuss the key players in the middleware field, and show how the middleware components interrelate with other building blocks such as network services and applications. The book is intended as a guide and a tutorial for the IT managers and practitioners who are involved in IT engineering and reengineering. It has been, and can be, used as a text or a reference book in university courses. The topics discussed are shown in the sidebar "Book Outline."
A framework for discussion is introduced early to serve as a roadmap for study and to guide the analysis and synthesis of the existing and evolving technologies.
Tutorials on network technologies and object-oriented concepts are included so that the book can be used by experienced professionals as well as novices.
A single case study is introduced in the first chapter and developed throughout the book to illustrate the topics discussed. Hints and outline solutions are suggested for the case study. In addition, several other examples and case studies are included in each chapter.
Each chapter highlights key points and includes several sidebars for quick study.
Each chapter concludes with a discussion of state of the market (e.g., available products), state of the practice (e.g., case studies and examples), and state of the art (e.g., standards and continuing research).
Each chapter is written as a self-contained tutorial with numerous references for additional studies.
The readers of this book should be able to develop an understanding of the key components of the object-oriented client/server Internet environments, the interrelationships between its components, and their role in enabling the modern distributed enterprises.
This book can be used as a guide to modern distributed computing platforms. However, discussion of application issues is beyond its scope. A companion book Application (Re)Engineering: Building Web-based Applications and Dealing with Legacies, Prentice Hall concentrates on application issues and covers topics such as methodology for application engineering/reengineering, Web-based application development considerations, enterprise data architectures, software application architectures, strategies to deal with legacy applications, Web access and integration of legacy systems, data warehouses, and application migration/transition issues. These two are intended as complimentary books.
Intended Audience and Recommended Usage
This book is based on a synthesis of experience gained from three different sources. First, extensive project-management, consulting, and system-integration assignments in the recent years in client/server systems, object-oriented technologies, Web-based applications, middleware evaluation, legacy data access, data warehousing, and data migration. Second, development and teaching of industrial training courses on client/server technologies and distributed systems that have been taught several times in the telecommunications industry and general IT community. Finally, teaching of graduate-level special- topics courses in distributed systems for IT majors and computer-science students. This experience indicates that this book should be useful as a reference for most IT managers and practitioners and also as a textbook for university courses and industrial training seminars. Specifically, this book should be of value to:
Architects and designers of information services (application designers, database designers, network designers).
Analysts and consultants of information technologies.
Planners of IT infrastructure and platforms.
Managers of information technologies (CIO, MIS managers, database administrators, application- development managers).
System integrators who combine databases, networks, and application among platforms.
Teachers of university courses in information technologies.
Technical trainers for professional-development courses in information technologies.
Researchers in information technologies who need a broad coverage of the subject matter.
Students for an introduction to the subject matter with numerous references for additional studies.
Depending on the reader's background and interest, the book can be used in a variety of ways. Perhaps the best way is to go through it sequentially and read the tutorials in Part III on an as-needed basis.
Two suggested outlines follow: one for a university course and one for a two-day professional training course. These outlines are based on experience of teaching several university courses and industrial seminars in the recent years (topics have naturally evolved over time). To assure a clear understanding, these courses are very case-study/project intensive.
University Course Outline: Modern Distributed Computing Platforms:
2/Network Technologies/Chapter 11
3/Network Architectures/Chapter 11
4/IT Building Blocks/Chapter 2
5/Basic Client/Server and OSF DCE/Chapter 3
6/Internet and World Wide Web/Chapter 4
7/Distributed-Data Management/Chapter 5
8/Midterm Examination (or Project 1 Due)
9/Client/Server Transaction Processing/Chapter 6
10/Object-Oriented Concepts/Chapter 10
11/Distributed Object Technologies/Chapter 7
12/Emerging Technologies (Mobile Computing,Groupware, Distributed Multimedia)/Chapter 8
14/Conclusions and Wrapup
15/Final Examination (or Project 2 Due)
Professional Training Course: Emerging Distributed Computing Technologies:
1/Introduction/1 Hour/Chapter 1
2/Network Technologies and Architectures/2 Hours/Chapter 11
3/IT Building Blocks /1.5 Hour/Chapter 2
4/Basic Client/Server and OSF DCE/1.5 Hour/Chapter 3
5/Internet and World Wide Web/1.5 Hour/Chapter 4
6/Distributed-Data Management/1 Hour/Chapter 5
7/Client/Server Transaction Processing/1 Hour/Chapter 6
8/Object-Oriented Concepts and Distributed Object Technologies/2 Hours/Chapter 10 & Chapter 7
9/Emerging Technologies (Mobile Computing,Groupware, Distributed Multimedia)/1 Hour/Chapter 8
10/Synthesis/0.5 Hour/Chapter 9
11/Case Studies and Wrapup/1 Hour