Distributed Computing Systems CSCI 47806780 Distributed System A
Distributed Computing Systems CSCI 4780/6780
Distributed System A distributed system is: A collection of independent computers that appears to its users as a single coherent system.
Why Distributed Systems? • Distributed (and mobile) users – Desire to access data/resources • Distributed data/information – World Wide Web • Distributed organizations – Multi-location & multinational corporations • Distributed resources – Distributed file systems, grids, web farms • Enabling technology: – Advances in communications and networks
Characteristics of Distributed Systems • • • Hides heterogeneity and internal workings Easy to expand or scale Continuous availability Layered design Examples – Networked workstations – Distributed databases – WWW – Peer-to-peer systems
Distributed System Organization 1. 1 A distributed system organized as middleware. Note that the middleware layer extends over multiple machines.
Design Goals • Make resources available to users – Enable resource sharing in a controlled manner • Transparency – Hide distributed nature • Openness – Complies to standards with regard to syntax and semantics – Interoperability • Security & privacy • Scalability & performance
Transparency in a Distributed System Transparency Description Access Hide differences in data representation and how a resource is accessed Location Hide where a resource is located Migration Hide that a resource may move to another location Relocation Hide that a resource may be moved to another location while in use Replication Hide that a resource may have multiple copies Concurrency Hide that a resource may be shared by several competitive users Failure Hide the failure and recovery of a resource Persistence Hide whether a (software) resource is in memory or on disk • How much transparency is needed? • How much can we achieve?
Openness Security & Privacy • Openness – Follows rules that describe syntax and semantics – Interface definition language – Interoperability, portability – Mechanism-policy separation • Security – Access control – Data integrity – Data/service availability – Copyright protection
Scalability • Scalability with respect to size • Scalability with respect to geographical location • Scalability with respect to management Concept Example Centralized services A single server for all users Centralized data A single on-line telephone book Centralized algorithms Doing routing based on complete information Scalability Problems
Example • Problem: Design a Highly Scalable Map (Direction) Service • Data – Route information • Task – Computing shortest (least cost) routes • Option 1: Store all data at a single server, perform all computations there • Option 2: Store data centrally, but perform operations on multiple nodes • Option 3: Store data at multiple locations and perform operations in a distributed fashion
Characteristics of Distributed Algorithms • Single machine does not have complete information • Decisions are made based on local information • Failure of a node does not cause the algorithm to fail • No global clock • Distributed algorithms are much harder than centralized algorithms
Geographical Scalability Challenges • Synchronous communication – Waiting for a reply does not scale well!! • Unreliable networks – Broadcasting does not work • Centralized components – Will eventually become bottlenecks • Multiple administrative domains – Security mechanisms do not come for free
Scalability Techniques • Hiding communication latencies – Asynchronous communication – Reduce amount of data transmitted • Distribution – Spreading work across system • Caching and replication – Make copies of data and services • Balance load – Avoid hot spots
Scaling Techniques 1. 4 The difference between letting: a) a server or b) a client check forms as they are being filled
Scaling Techniques (2) 1. 5 An example of dividing the DNS name space into zones.
Pitfalls • • Network is reliable Network is secure Network is homogeneous Topology does not change Latency is zero Bandwidth is infinite Transport cost is zero Single administrator
Types of Distributed Systems • High-Performance Computing Systems • Cluster computing • Grid computing • Distributed Information Systems • Transaction processing systems • Enterprise application integration • P 2 P systems • Distributed Pervasive Systems • Mobile networks • Sensor networks
Cluster Computing • • • Super computing using PCs/workstations Used for parallel programming Homogeneity among nodes Master allocates nodes to tasks Compute nodes run standard operating systems (and may be a very thin middleware) • Middleware consists of parallel programming libraries
Cluster Computing Systems An example of a cluster computing system.
Grid Computing • Formed from heterogeneous set of machines • May belong to different organizations • Virtual organization • Resource access and management • 4 -layered organization • • Fabric layer – Interfacing to local resources Connectivity layer – Connection handling and security Resource layer – Managing a single resource Collective layer – Simultaneous management of multiple resources • Application layer – Hosts applications
Grid Computing Systems A layered architecture for grid computing systems.
Distributed Information Systems • Lots of networked applications • Sometimes belonging to different organizations • Little interoperability • Simplest integration • Bundling operations together at client end • Enterprise application integration • Applications talking to each other
Transaction Processing Systems
Properties of Transactions • Atomic: To the outside world, the transaction happens indivisibly. • Consistent: The transaction does not violate system invariants. • Isolated: Concurrent transactions do not interfere with each other. • Durable: Once a transaction commits, the changes are permanent.
Examples • Banking example • Airline ticket booking example
Nested Transactions • Transactions constructed from multiple subtransactions • Example: Travel Agent • Problem with nested transactions • What if one of the sub-transactions fail? • TP monitor architecture
Nested Transactions
Transaction Processing Architecture The role of a TP monitor in distributed systems.
Enterprise Application Integration Middleware as a communication facilitator in enterprise application integration.
Distributed Pervasive Systems • • Ad hoc composition Extreme heterogeneity Wired network/wireless network High churn rate Resource constraints Contextual changes Possible mobility
- Slides: 30