第 1 讲 分布式系统概述 §1.1 分布式系统的定义 §1.2 分布式系统分类 §1.3 分布式系统体系结构
§1.1 分布式系统的定义 A distributed system is: A collection of independent computers that Appears to its users as a single coherent system.
分布式系统定义 Figure 1-1. A distributed system organized as middleware. The middleware layer extends over multiple machines, and offers each application the same interface.
分布式系统的基本目标 Making resources accessible Distribution transparency Openness Scalability
Making Resources Accessible Making it easy for users and applications to access remote resources Share remote resources in a controlled and efficient manner Benefits Better economics by sharing expensive resources Easier to collaborate and exchange information Create virtual organizations where geographically dispersed people can work together using groupware Enables electronic commerce Problems Eavesdropping or intrusion on communication Tracking of communication to build a profile
Transparency in a Distributed System Figure 1-2. Different forms of transparency in a distributed system (ISO, 1995). Transparency is NOT always good! Cost in performance!
Openness In form of services Services are described via interfaces Interface Definition Language (IDL) Interoperability, Portability, Extensibility
Scalability Scalability can be measured against three dimensions Size: be able to easily add more users and resources to a system Geography: be able to handle users and resources that are far apart Administrative: be able to manage even if it spans independent administrative organizations
Scaling Techniques Hiding communication latency Code at client: e.g. Javascript to check a form Distributing components Divide a component into smaller parts E.g. dividing the DNS name space into zones Replicating components Caching is a special form of replication
Centralized versus distributed Centralized approach Distributed approach No global clock No complete/global information Decisions based only on local information Failure locality
§1.2 分布式系统分类 Distributed Computing Systems Cluster Computing Systems Grid Computing Systems Cloud Computing Systems Distributed Information Systems Transaction Processing Systems Enterprise Application Integration Distributed Pervasive Systems Home Systems Electronic Health Care Systems Sensor Networks
Cluster Computing Systems Figure 1-6. An example of a cluster computing system.
Grid Computing Systems Figure 1-7. A layered architecture for grid computing systems.
Cloud Computing Systems servers storage Provisioning Manager Virtual Machines Monitoring Manager Provisioning Interface
Transaction Processing Systems Figure 1-9. A nested transaction.
Transaction Processing Systems Figure The role of a TP monitor in distributed systems.
Enterprise Application Integration Figure Middleware as a communication facilitator in enterprise application integration. RPC, RMI and MOM are examples.
Distributed Pervasive Systems Embrace contextual changes. Encourage ad hoc composition. Recognize sharing as the default.
Electronic Health Care Systems Figure Monitoring a person in a pervasive electronic health care system, using (a) a local hub or (b) a continuous wireless connection.
Wireless Sensor Networks Centralized storage and process. Distributed storage and process.
§1.3 分布式系统体系结构 Software architecture how various software components are organized and how they interact System architecture An instance of a software architecture after deciding on the software components, their interaction and their placement.
Architectural Styles Layered architectures Object-based architectures Event-based architectures Data-shared architectures
System Architecture Centralized architectures Application layering Multitiered architectures Decentralized architectures Structured peer-to-peer Unstructured peer-to-peer Hybrid architectures Edge-server systems Collaborative distributed systems
Centralized Architectures
Application Layering Figure 2-4. The simplified organization of an Internet search engine
Application Layering Figure 2-5. Alternative client-server organizations (a)–(e).
Multitiered Architectures Figure 2-6. An example of a server acting as client.
Decentralized Architecture Structured peer-to-peer Distributed Hash Table Content-Addressable Network Unstructured peer-to-peer
Structured Peer-to-Peer Architectures Data mapping in Chord and CAN.
Unstructured Peer-to-Peer Architectures The overlay network resembles a random graph. Each node maintains a list of c neighbors, where, ideally, each of theses neighbors represents a randomly chosen live node from the current set of nodes. The list of neighbors is referred to as a partial view. How to maintain a partial view? Nodes are in push or pull mode. Using only one mode leads to isolated sub-networks so most nodes will do both (exchange mode) To add to the group, simply contact any node. To leave, simply leave.
Topology Management of Overlay Networks A two-layered approach for constructing and maintaining specific overlay topologies
Network with Superpeers
Hybrid Architectures: edge-server systems Figure Viewing the Internet as consisting of a collection of edge servers.
Hybrid Architectures: collaborative sys. Figure The principal working of BitTorrent
Summary 分布式系统定义 分布式系统的目标 Making resources accessible Distribution transparency Openness Scalability 分布式系统的类型 Distributed computing system Distributed information system Distributed pervasive system 分布式系统体系结构 Centralized Decentralized Hybrid
Homework Questions