Definition of Distributed System LPU 3 A distributed system is: Components located at networked computers communicate and coordinate their actions by passing messages A distributed system is: Collection of independent computers that appear to the users of the system as a single computer [Tanenbaum]
Definition of Distributed System LPU 4 Machine B Local OS Machine A Local OS Machine C Local OS Network Distributed applications Middleware service
Definition of Distributed System LPU 5 "a collection of autonomous computers linked by a computer network with distributed system software" "a collection of processors interconnected by a communication network in which each processor has its own local memory and other peripherals and the communication between any two processors of the system takes place by message passing over the communication network" "one in which hardware or software components located at networked computers communicate and coordinate their actions only by passing messages"
Definition of Distributed System LPU 6 In other words, to the user, a DS looks like a single system a virtual uniprocessor The user doesn't know (or care) - where (on what machine) files are located - where a job is executed A Distributed System is made of several computers which have no shared memory have no shared clock communicate with each other via messages have their own operating systems
Advantages LPU 7 Why distributed systems Resource sharing Communication Inherent distribution Speed CPU running at speed of 50 MIPS MIPS Economy Incremental growth Reliability
Characteristics of DS LPU 8 Concurrency Distributed systems are concurrent systems Every software or hardware components is autonomous Process Concurrent tasks A and B are concurrent if either A can happen before B or B can happen before A Synchronization and coordination by message passing Lack of global clock Coordination and time Independent failure Failures of individual processes may remain undetected
Examples of Distributed Systems 1. The internet LPU 9 Heterogeneous network of computers and applications Implemented through Internet protocol
Examples of Distributed Systems 2. Distributed multimedia LPU 10 Often use the Internet infrastructure Characteristics Heterogeneous data sources that need to be synchronized in real time Video, Audio, Text Often: distribution services multicast Examples Tele teaching, Video conferencing
Examples of Distributed Systems 3. Intranet LPU 11 Locally administered network Usually proprietary Interfaces with the Internet via router Firewall the rest of server Web server Desktop computers File server router/firewall print and other servers other servers print Local area network server the Internet Issues File services need to share data Firewall impede Legitimate access
Examples of Distributed Systems (1) 4. Mobile and Ubiquitous computing LPU 12 Resource Sharing while on the move Primary concerns: resource discovery efficient use of limited bandwidth security (privacy)
Resource sharing and the Web Resource sharing pattern LPU 13 Search engine CSCW Computer-supported cooperative work Service Software that manages a collection of resources and presents them to users and applications via a well-defined interface Server Running program (a process that provide one or more services) Remote invocation Client’s request to server.
Challenges LPU 14 A number of challenges arises: Heterogeneity Openness Security Scalability Failure handling Concurrency of components Transparency
Challenges LPU 15 Heterogeneity networks computer hardware Operating systems Programming languages Middleware To over come differences in network, OS and languages CORBA
Challenges LPU 16 Openness Ensures extensibility and maintainability of the system Standard interfaces & their publication Addition of new resources RFC (Request for comments) specification for internet protocols. www. ietf.org Benefits of ODS key interfaces are published uniform communication mechanisms and access to shared resources Construction Heterogeneous components
Challenges LPU 17 Security confidentiality integrity availability Example A doctor might request access to hospital patient data In electronic commerce and banking, users send their credit card numbers across the internet Current security challenges Denial of service attack Security of mobile code
Challenges LPU 18 Scalability Controlling the cost of the physical resources Does the system remain effective given the expected growth Controlling the performance loss is more than one computer Preventing the software resources running out IP addressees :32 bits to 128 Avoiding performance bottleneck Decentralization of data/information
Challenges LPU 19 Computers vs. Web servers in the Internet DateComputersWeb serversPercentage 1993, July 1,776, , July6,642,000 23, , July19,540,0001,203, , July56,218,0006,598, Mid Internet : 150 million+ computers 667 million people 2.5 billion+ web pages
Challenges LPU 20 Failure handling Detecting failure Checksum can be used to detect corrupted data System crash (impossible) Masking Retransmission Redundant storage Tolerating failure Exception handling (timeout when waiting for web source)
Challenges LPU 21 Failure handling Recovery from failure Roll back Redundancy Redundant routes in network Replication of name tables in multiple domain name servers Database replication Availability Measure of the proportion of the time a server is available
Challenges LPU 22 Concurrency Consistent scheduling of threads (so that dependencies are preserved in concurrent transactions) Avoidance of deadlock Transparency Concealing the heterogeneous and distributed nature of the system so that it appears to the user like one system
Challenges : Transparency LPU 23 Access transparency: enables local and remote resources to be accessed using identical operations. Location transparency: enables resources to be accessed without knowledge of their location. Concurrency transparency: enables several processes to operate concurrently using shared resources without interference between them. Replication transparency: enables multiple instances of resources to be used to increase reliability and performance without knowledge of the replicas by users or application programmers. Failure transparency: enables the concealment of faults, allowing users and application programs to complete their tasks despite the failure of hardware or software components. Mobility transparency: allows the movement of resources and clients within a system without affecting the operation of users or programs. Performance transparency: allows the system to be reconfigured to improve performance as loads vary. Scaling transparency: allows the system and applications to expand in scale without change to the system structure or the application algorithms.