870 likes | 887 Views
聰明人的六大標準. 基礎 指標 ( 能力 ) 元認知 (metacognition) 跳躍思考 現實指標 ( 能力 ) 好奇心 歸納整理 高層指標 ( 態度 ) 格局思維 ( 我 ) 待人接物 ( 他 ). Course Outline. Introduction Design Goals Characterization of Distributed Systems Communication Networking and Internetworking Interprocess Communication
E N D
聰明人的六大標準 • 基礎指標(能力) • 元認知 (metacognition) • 跳躍思考 • 現實指標(能力) • 好奇心 • 歸納整理 • 高層指標(態度) • 格局思維(我) • 待人接物(他) /31
Course Outline • Introduction • Design Goals • Characterization of Distributed Systems • Communication • Networking and Internetworking • Interprocess Communication • Distributed Operating Systems • Blockchain • Distributed File Systems • Model, Name Services • Case Studies • Distributed Synchronization • Timing and Coordination • Concurrency Control • Distributed Transactions • Shared Data • DeadLocks • Distributed Shared Memory • Replication, Recovery and Fault Tolerance • Security /31
CAPTheory-Eric Brewer, UCB,1998 Atomicity Consistency Isolation Durability Basically Available, Soft state, Eventually consistent Consistency Availability Partition Tolerance /31
Chapter 1: Introduction • Design Goals • Characterization of Distributed Systems /31
Challenges Design Goals • Heterogeneity • Portability and Interoperability • Mobile code, Adaptability • Middleware • Security • Failure Handling • Concurrency • Transparency • Openness • Reliability • Performance • Scalability • Transparency • Openness • Reliability • Performance • Scalability /31
Pitfalls • False assumptions made by first time developer: • The network is reliable. • The network is secure. • The network is homogeneous. • The topology does not change. • Latency is zero. • Bandwidth is infinite. • Transport cost is zero. • There is one administrator. /31
What is a distributed system? • A distributed system is a collection of connected independent computers that appear to the users of the system as a single coherent system. • Concurrency • No global clock • Independent failure • User’s perception: a single system • Coordinate user activities • Share resources : hardware, software, data /31
Centralized System • Non-autonomous parts • Homogeneous technology • Components shared by all users at all time • All resources are accessible • Software runs in a single process? • Single point of control? • Single point of failure? /31
Network Topology /31
Advantages and Disadvantages • Disadvantages • Less software support • Network problems • Transmission • Overloading • Loss of message • More components to fail • Security • Advantages • Economics • Speed • Reliability • Incremental growth • Sharing of Resources • Flexibility • Open System • Performance /31
Applications of Distributed System/Computing • Telecommunication Networks • Telephone, cellular, computer, sensor, routing • Real-Time Process Control • Aircraft/Industrial control systems • Parallel Computation • scientific/cluster/grid/volunteer computing, distributed rendering • Network Applications • WWW, P2P, Online Gaming, VR, Distributed DB/DBMS, NFS • Distributed Information Processing System • Banking, Airline Reservation /31
Parallel vs. Distributed • Parallel Computing • Multiple homogeneous/heterogeneous processors in “one” computer • Share or distributed memory • Goal is to execute a program faster by division of labor • Distributed Computing • Hardware that connects computers. • Software message passing between computers for • communication and coordination • Data, computing and users are distributed. • Goal is to transmit messages reliably and efficiently to share resources. /31
System Models • Varying models of use: • frequency, bandwidth, latency • Wide range of system environment: • hardware, software, OS, networks • Internal problems • Non-synchronized clocks, conflicting data updates, partial failure • External problems: • Attacks on integrity and secrecy, denial of services /31
Models • Design models • Physical models • Architectural models • Fundamental modes • Implementation models • The interaction model • The failure model • The security model /31
Physical Models • Baseline physical model: • Early distributed systems • Internet-scale distributed systems • More nodes, standards • Contemporary distributed systems • Mobile computing • Ubiquitous (embedded) computing • Cloud computing • Systems of systems /31
Architectural Models • Architectural elements • Architectural patterns • Associated middleware solutions /31
Architectural Elements • the fundamental building blocks of a distributed system • What are the entities that are communicating? • How do they communicate, or, more specifically, what communication paradigm is used? • What (potentially changing) roles and responsibilities do they have in the overall architecture? • How are they mapped on to the physical distributed infrastructure (what is their placement)? /31
Entities and Paradigms CORBA /31
Roles and Responsibilities P2P Client/Server /31
Placement • Largely for performance • but also reliability and security • Strategies • mapping of services to multiple servers; • caching; • mobile code; • mobile agents. /31
Architectural Patterns (1) • Tiered architecture, ajax • Layering /31
Architectural Patterns (2) • Thin clients • virtual network computing (VNC) • Proxy • Web services • Reflection • introspection • the dynamic discovery of properties of the system • intercession • the ability to dynamically modify structure or behavior /31
Categories of Middleware • the categorizations are not exact and that modern middleware platforms tend to offer hybrid solutions /31
Limitations of Middleware 信任, 轉帳 • Some communication-related functions can be completely and reliably implemented only with the knowledge and help of the application standing at the end points of the communication system. • Therefore, providing that function as a feature of the communication system itself is not always sensible. • Although an incomplete version of the function provided by the communication system may sometimes be useful as a performance enhancement. • Driving interest in context-aware and adaptive solutions to middleware /31
Fundamental Models • All the above, quite different, models of systems share some fundamental properties. • To make explicit all the relevant assumptions about the systems we are modelling. • To make generalizations concerning what is possible or impossible, given those assumptions. • Interaction model: • Failure model: • Security model: /31
Course Outline • Introduction • Design Goals • Characterization of Distributed Systems • Communication • Networking and Internetworking • Interprocess Communication • Distributed Operating Systems • Blockchain • Distributed File Systems • Model, Name Services • Case Studies • Distributed Synchronization • Timing and Coordination • Concurrency Control • Distributed Transactions • Shared Data • DeadLocks • Distributed Shared Memory • Replication, Recovery and Fault Tolerance • Security /67
Chapter 2: Communication • Networking and Internetworking • Interprocess Communication /67
Networking issues for distributed systems • Performance • Scalability • Reliability • Security • Mobility • Quality of service • Multicasting /60
Networkprinciples • Packet transmission • Data streaming • Switching schemes • Broadcast, Circuit switching, Packet switching, Frame Relay • Protocols • Routing • Congestion control • Internetworking • Routers, Bridges, Hubs, Switches, Tunnelling /60
Protocols • Protocol layers • Protocol suites • Packet assembly • Ports • Addressing • Packet delivery /60
TCP/IP layers /60
Encapsulation as it occurs when a message is transmitted via TCP over an Ethernet /60
The programmer's conceptual view of a TCP/IP Internet BlockChain SideChain /60
Internet protocols • IP addressing • The IP protocol • Address resolution, IP spoofing • IP routing • IP version 6 • MobileIP • TCP and UDP • Domain names • Firewalls /60
MobileIP /60
Domain names dividend.company.bonus.finance.bc Private Public department.institute.paper.research.bc /60
Case Study • Ethernet, WiFi and Bluetooth • BlockChain? /60
Chapter 2: Communication • Networking and Internetworking • Interprocess Communication /67
The characteristics of IPC • Synchronous and asynchronous communication • (Non-)blocking, statefulv.s. stateless • Message destinations • relocated but not to migrate • Reliability • Data loss, uncorrupted and without duplication • Ordering /60