這是專門為本科生和研究生設計的教材,供分布式計算課程使用,不僅詳細介紹了分布式程序設計技術(shù)的核心概念和原理,還采用learn by doing方法,使讀者能通過程序設計和實驗練習來鞏固所學知識。本書特色:·專門為本科生和研究生設計·突出顯示關(guān)鍵術(shù)語、保留字和標識符:用粗體顯示關(guān)鍵術(shù)語和短語;用斜體顯示特殊單詞,比如程序的標識符、非標準的協(xié)議名稱或操作名稱;Java語言和協(xié)議的保留字和標識符也用斜體顯示·重點討論計算抽象(也稱為細節(jié)隱藏)和范例·揉合了概念與實踐,使用示范代碼和動手練習來說明和鞏固所提出的概念·為learn by doing教學而設計,提供了示范代碼和實驗活動·提供教輔,包括演示文稿、示范代碼、網(wǎng)站和教師手冊·提供參考文獻,供讀者進一步探索分布工計算領(lǐng)域通過本書的閱讀,讀者能應用基本的分布式編程技術(shù)來建立網(wǎng)絡服務和網(wǎng)絡應用。
作者簡介
暫缺《分布式計算原理與應用:英文版》作者簡介
圖書目錄
Preface Acknowledgment CHAPTER 1 Distributed Computing,An Introduction 1.1 Definitions 1.2 The History of Distributed Computing 1.3 Different Forms of Computing Monolithic Computing Distributed Computing Parallel Computing Cooperative Computing 1.4 The Strengths and Weaknesses of Distributed Computing 1.5 Basics of Operating Systems Computer Programs and Processes Concurrent Programming 1.6 Network Basics Protocols Network Architecture Network Architecture Protocols Connection-Oriented versus Connectionless Communication Network Resources Host Identification and Internet Protocol Addresses Identifying Processes with Protocol Ports Email Addresses Email Addresses URLs 1.7 Software Engineering Basics Procedural versus Object-Oriented Programming The Unified Modeling Language The Architecture of Distributed Applications Toolkits,Frameworks,and Components Summary Exercises References CHAPTER 2 Interprocess Communications 2.1 An Archetypal IPC Program Interface 2.2 Event Synchronization Synchronous Send and Synchronous Receive Asynchronous Send and Synchronous Receive Synchronous Send and Asynchronous Receive Asynchronous Send and Asynchronous Receive 2.3 Timeouts and Threading 2.4 Deadlocks and Timeouts 2.5 Data Representation 2.6 Data Encoding 2.7 Text-Based Protocols 2.8 Request-Response Protocols 2.9 Event Diagram and Sequence Diagram 2.10 Connection-Oriented versus Connectionless IPC 2.11 The Evolution of Paradigms for Interprocess Communications Summary Exercises References CHAPTER 3 Distributed Computing Paradigms 3.1 Paradigms and Abstraction Abstraction Paradigms 3.2 An Example Application 3.3 Paradigms for Distributed Applications Message Passing The Client-Server Paradigm The Peer-to-Peer Paradigm The Message System Paradigm Remote Procedure Call Model The Distributed Objects Paradigms The Object Space The Mobile Agent Paradigm The Network Services Paradigm The Collaborative Application(Groupware)Paradigm 3.4 Trade-offs Level of Abstraction versus Overhead Scalability Cross-Platform Support Summary Exercises References CHAPTER 4 The Socket API 4.1 Backgroun 4.2 The Socket Metaphor in IPC 4.3 The Datagram Socket API The Connectionless Datagram Socket Connection-Oriented Datagram Socket API 4.4 The Stream-Mode Socket API Operations and Event Synchronization 4.5 Sockets with Nonblocking I/O Operations 4.6 Secure Socket API The Secure Socket Layer The Java Secure Socket Extension Summary Exercises References CHAPTER 5 The Client-Server Paradigm 5.1 Background 5.2 Client-Server Paradigm Issues A Service Session The Protocol for a Service Interprocess Communications and Event Synchronization Data Representation 5.3 Software Engineering for a Network Service Software Architecture IPC Mechanism Daytime Client-Server Using Connectionless Datagram Socket Daytime Client-Server Using Stream-Mode Socket Testing a Network Service 5.4 Connection-Oriented and Connectionless Servers Connectionless Echo Client-Server The Echo Server Connection-Oriented Echo Client-Server 5.5 Iterative Server and Concurrent Server 5.6 Stateful Servers Global State Information Session State Information Summary Exercises References CHAPTER 6 Group Communication 6.1 Unicasting versus Multicasting 6.2 An Archetypal Multicast API 6.3 Connectionless versus Connection-Oriented Multicast 6.4 Reliable Multicasting versus Unreliable Multicasting Unreliable Multicasting Reliable Multicasting 6.5 The Java Basic Multicast API IP Multicast Addresses Joining a Multicast Group Sending to a Multicast Group 6.6 Reliable Multicast API Summary Exercises References CHAPTER 7 Distributed Objects 7.1 Message Passing versus Distributed Objects 7.2 An Archetypal Distributed Object architecture 7.3 Distributed Object Systems 7.4 Remote Procedure Calls 7.5 Remote Method Invocation 7.6 The Java RMI Architecture Client-Side Architecture Server-Side Architecture Object Registry 7.7 The API for the Java RMI The Remote Interface The Server-Side Software The Client-Side Software 7.8 A Sample RMI Application 7.9 Steps for Building an RMI Application Algorithm for Developing Server-Side Software Algorithm for Developing Client-Side Software 7.10 Testing and Debugging 7.11 Comparison of RMI and Socket APIs 7.12 Food for Thought Summary Exercises References CHAPTER 8 Advanced RMI 8.1 Client Callback Client-Side Augmentation for Client Callback Server-Side Augmentations for Client Callback Steps for Building an RMI Application with Client Callback 8.2 Stub Downloading 8.3 RMI Security Manager Instantiation of a Security Manager in an RMI Program The Syntax of a Java Security Policy File Specifying Stub Downloading and a Security Policy File Algorithms for Building an RMI Application,Allowing for Stub Downloading Summary Exercises References CHAPTER 9 Internet Applications 9.1 HTML 9.2 XML-The Extensible Markup Language 9.3 HTTP The Client Request The Server Response Content Type and MIME A Basic HTTP Client HTTP,a Connection-Oriented,Stateless Protocol 9.4 Dynamically Generated Web Contents 9.5 Common Gateway Interface(CGI) A Web Form Query String Processing Encoding and Decoding Query Strings Environment Variables Used with CGI 9.6 Web Session and Session State Data Using Hidden Form Fields for Transferring Session State Data Using Cookies for Transferring Session State Data Syntax of the Set-Cookie HTTP Response Header Line Sample Code for Using Cookies to Pass State Data Data Privacy and Security Concerns Summary Exercises References CHAPTER 10 The Common Object Request Broker Architecture 10.1 The Basic Architecture 10.2 The CORBA Object Interface 10.3 Inter-ORB Protocols 10.4 Object Servers and Object Clients 10.5 CORBA Object References 10.6 CORBA Naming Service and the Interoperable Naming Service The CORBA Naming Service The Interoperable Naming Service 10.7 CORBA Object Services 10.8 Object Adapters 10.9 Java IDL Key Java IDL Packages Java IDL Tools An Example CORBA Application Compiling and Running a Java IDL Application Client Callback 10.10 Trade-offs Summary Exercises References CHAPTER 11 Internet Applications-Part 2 11.1 Applets 11.2 Servlets Architectural Support Servlet Programming State Information Maintenance in Servlet Programming 11.3 Web Services 11.4 The Simple Object Access Protocol(SOAP) A SOAP Request A SOAP Response Apache SOAP Ready-Made Web Services Invoking a Web Service Using Apache SOAP Implementing a Web Service Using Apache SOAP Summary Exercises References CHAPTER 12 Advanced Distributed Computing Paradigms 12.1 Message Queue System Paradigm The Point-to-Point Message Model The Publish/Subscribe Message Model 12.2 Mobile Agents Basic Architecture Advantages of Mobile Agents Mobile-Agent Framework Systems 12.3 Network Services 12.4 Object Spaces Summary Exercises References Epilogue Index