Networked applications: a guide to new computing infrastructure
David G. Messerschmitt · 1999
Preface Chapter 1 Introduction 1.1 A Historical Perspective 1.1.1 Technology View 1.1.2 User and Organization View 1.1.3 Unrelenting Change 1.2 Computing in the Future Electrification: Lessons from an Earlier Technological Advance 1.3 Bits are the Atoms of the Information Economy 1.4 Roadmap to the Book Any Information Can Be Represented By Bits Further Reading Chapter 2 The Applications 2.1 Users, Organizations, and Applications 2.1.1 Before Networking 2.1.2 After Networking 2.2 Application Building Blocks 2.3 Social Applications 2.3.1 Characteristics of User Groups 2.3.2 Styles of Social Applications 2.3.3 Remote Conferencing with Shared Workspace 2.3.4 Groupware Collaborative Authoring 2.3.5 Discussion Forums Calendar and Scheduling Newsgroups 2.3.6 Cyberspace Applications World Wide Web 2.3.7 Back to the Big Picture 2.4 Information Management 2.4.1 Finding Useful Information 2.4.2 Autonomous Information Sources 2.5 Education and Training Role of Push and Pull in Work Groups 2.6 Business Applications 2.6.1 Departmental Applications 2.6.2 Enterprise Applications SAP: Largest ERP Vendor Data Warehouses and Data Mining 2.6.3 Cross-Enterprise Applications: Electronic Commerce Legacy Applications and the Year 2000 Problem Dell Computer and Mass Customization 2.6.4 Consumer Applications 2.7 Similarity of Social Systems and Networked Computing amazon.com: On-Line Merchant 2.8 Open Issues 2.8.1 The Productivity Quandary 2.8.2 How Are New Business Applications Invented and Developed? 2.8.3 The Glut of Information and Communications 2.8.4 Accommodating Change Further Reading Chapter 3 Computers, Networks, and Organizations 3.1 Computing Systems 3.1.1 The System Architecture 3.1.2 Decomposition of Systems 3.1.3 Hosts and the Network 3.2 Client/Server Computing 3.2.1 Two-Tier Client/Server 3.2.2 Three-Tier Client/Server 3.2.3 Thin and Ultrathin Clients 3.2.4 The Future of Client/Server Data Warehouses and OLAP An Ultrathin Client: The Network Computer (NC) 3.3 Internet, Intranet, Extranet 3.3.1 Intranets 3.3.2 Extranets 3.3.3 Internet Applications 3.4 Networked Computing and the Organization 3.4.1 Rationale for Networked Computing 3.4.2 The Application Life Cycle 3.5 Open Issues: What Lies beyond Client/Server Computing? Further Reading Chapter 4 Software Architecture and Standardization 4.1 What Makes a Good Architecture 4.1.1 Decomposition and Modularity 4.1.2 Granularity and Hierarchy 4.1.3 Interfaces: The Module's Face to the World 4.1.4 Abstraction Example of Abstraction: The Flora 4.1.5 Encapsulation 4.1.6 Modularity and Interfaces in Computing 4.2 Architecture of the Software Infrastructure 4.2.1 Goals of the Infrastructure 4.2.2 Layering A Layered View of the Life and Social Sciences 4.3 Standardization 4.3.1 Reference Models and Interfaces Standardization within Applications 4.3.2 Organization of the Standardization Process International Organization for Standardization (ISO) 4.3.3 Control and Enforcement of Standards Internet Engineering Task Force (IETF) Chapter 5 Industry and Government 5.1 Participants, Products, and Services 5.1.1 Types of Suppliers 5.1.2 Types of Consumers 5.1.3 Types of Information Goods 5.1.4 Types of Software Goods 5.1.5 Equipment: The Component Model 5.2 Changes in Industry Structure 5.2.1 From Stovepipe to Layering 5.2.2 Less Vertical Integration and More Diversification Dell as Subsystem Integrator Information Appliances 5.2.3 Venture Capital and Start-up Companies 5.2.4 Computing/Communications Convergence 5.3 Obstacles to Change 5.3.1 The Network Effect 5.3.2 Lock-In The Success of the Web The Value of Consumer Lock-In to a Supplier 5.3.3 Path-Dependent Effects Microsoft vs. Everybody Else 5.4 Challenges for Suppliers 5.4.1 Properties of Information 5.4.2 How Software Differs from Information 5.4.3 Protecting Investments with Intellectual Property 5.4.4 Selling Content and Software Are Shrink-Wrapped Applications Poor Quality and Overfeatured? 5.5 Government Roles 5.5.1 Protecting Intellectual Property Intellectual Property as a Strategic Tool 5.5.2 Government Policies and Laws Patents and Standardization 5.6 Open Issues 5.6.1 How Is the Industry Organized? 5.6.2 Sovereignty and the Global Internet 5.6.3 The Language of the Internet 5.6.4 Archiving Digital Information 5.6.5 A New Partnership Further Reading Chapter 6 Application Software 6.1 Some Overriding Issues 6.1.1 Software Complexity 6.1.2 Acquiring an Application 6.1.3 Development Methodology: Decomposition vs. Assembly 6.1.4 Software Reuse Component Standards 6.1.5 Location of Data and Computation 6.2 Tightly Coupled Data and Processing Models 6.2.1 Object-Oriented Programming Modeling and Representation 6.2.2 Software Components and Frameworks Components, Frameworks, and the Industrial Revolution 6.3 Loosely Coupled Data and Processing 6.3.1 Database Management Extending Databases to Objects: ORDBMS and ODBMS 6.3.2 Document Management: XML eXtensible Markup Language (XML) Further Reading Chapter 7 Communications Support for Applications 7.1 Algorithms, Protocols, and Policies 7.2 Abstract Communication Services 7.2.1 Message Service The Hypertext Transfer Protocol (HTTP) Is a Message Delivered for Sure? 7.2.2 Message with Reply Service 7.2.3 Timing and Concurrency 7.2.4 The Session 7.2.5 The Broadcast 7.3 Internet Communication Services 7.3.1 Internet Protocol (IP) 7.3.2 User Datagram Protocol (UDP) 7.3.3 Transmission Control Protocol (TCP) RMI Is Layered on Messages 7.3.4 Internet Inter-ORB Protocol (IIOP) 7.3.5 Multimedia Sessions Internet Streaming Message Protocols Further Reading Chapter 8 Trustworthiness: Reliability and Security 8.1 The Facets of Trustworthiness 8.1.1 Program and System Correctness Diversity, Reliability, and Security 8.1.2 Security: Countering External Threats Uses of Data Replication Availability, Security, and the Market Computer Viruses 8.2 Computer and Network Security Measures 8.2.1 Encryption Ensures Confidentiality 8.2.2 Authentication Certificates and a National Identity Card 8.2.3 Message Integrity and Nonrepudiation 8.2.4 Combining Techniques 8.2.5 Security Policies Legal Sanctions 8.3 Electronic Payments 8.3.1 On-Line Credit Card Systems Questions about Digital Cash 8.4 Open Issues Privacy and Anonymous Digital Cash 8.4.1 How Do We Deal with Increasing vulnerability? 8.4.2 National Security and Law Enforcement Needs 8.4.3 Individual Privacy 8.4.4 Theft and Piracy of Software and Information Further Reading Chapter 9 Middleware Can Assist the Application 9.1 Message-Oriented Middleware as an Aid to Workflow 9.2 Transaction Processing 9.2.1 Example of the Challenges: Travel Reservations 9.2.2 What Is a Transaction? 9.2.3 Transaction Processing Architecture The ACID Properties of Transactions Open Transaction Processing Standards 9.3 Mobile Code and Mobile Agents 9.3.1 Interactivity and Scalability Mobile Code, Agents, and Objects 9.3.2 Interoperability Mobile Code and Network Effects 9.3.3 Mobile Agents 9.3.4 Mobile Code and Agent Middleware Java and Information Appliances 9.4 Distributed Object Management Java as a De Facto Standard 9.4.1 One DOM Standard: CORBA Java and Security 9.4.2 Services Offered by DOM Competing Distributed Object Visions: DCOM and CORBA 9.4.3 Interoperability among ORBs: IIOP 9.5 Open Issue: Are Middleware Service Providers Needed? The OMG Process Further Reading Portability vs. Interoperability Chapter 10 Performance and Quality 10.1 Performance and Quality Metrics 10.1.1 Performance 10.1.2 Quality 10.1.3 Factors in Performance and Quality 10.2 The Role of Concurrency 10.2.1 Concurrency with Multiple Hosts 10.2.2 Concurrency in a Single Host Different Forms of Multitasking 10.2.3 Resource Conflicts and Transactions Why Networks Use Packets 10.3 Scalability Scalability in Production 10.3.1 Blocking 10.3.2 Duplicated Work 10.3.3 Faulty Load Balancing 10.3.4 Congestion 10.3.5 The Role of Application Architecture in Scalability 10.3.6 Mobile Code and Scalability Today's Operating Systems 10.4 Operating Systems Operating Systems and Winner-Take-All Effects Further Reading Chapter 11 Networks 11.1 Functions of a Network 11.1.1 Sharing: Statistical Multiplexing Origins of the Internet 11.1.2 Packet Forwarding and Routing 11.1.3 Name Services Simulcast and Multicast 11.1.4 Flow Control 11.1.5 Congestion Control The Value of a Name 11.2 Quality of Service (QoS) Congestion and Network Externalities 11.2.1 The Internet Transport Protocols and QoS Cost of a Congestion Control Infrastructure 11.2.2 Integrated Services 11.2.3 Pricing Network Services The Evolution of the Internet 11.3 Network Security 11.3.1 Secure and Insecure Authentication 11.3.2 Security Flaws in Public Servers 11.3.3 Firewalls and Packet Filtering Today's Internet Pricing Firewalls Limit Innovation 11.3.4 Where to Use Encryption and Authentication 11.4 Open Issues 11.4.1 The Future of the Internet 11.4.2 Making Money on the Internet Further Reading Chapter 12 Communications 12.1 Communications Service Providers 12.1.1 Communications Regulation 12.2 Current Developments in Data Communications 12.2.1 Broadband Network Access for Residences 12.2.2 Nomadic and Untethered Internet Access Internet Roaming 12.2.3 IP Telephony Wireless Access Protocol (WAP) 12.2.4 Integrated IP Networks 12.3 Impact of a Communications Link 12.3.1 Impact on Message Latency Fiber Optics and Optical Networking 12.3.2 Mitigating Communications Bottlenecks Caching and Copyright Law 12.4 Open Issues 12.4.1 Is Communications Regulation Needed? 12.4.2 Regulation of the Internet Further Reading JPEG and MPEG Glossary References