Networking and Distributed Computing Lecture5: Introduction to Distributed System Assist. Lecturer: Suad Abdulelah Alasadi 18/4/2016 What is a Distributed System A distributed system is A collection of independent computers that appears to its users as a single coherent system. A distributed system consists of multiple autonomous computers that communicate through a computer network. The computers interact with each other in order to achieve a common goal. A computer program that runs in a distributed system is called a distributed program, and distributed programming is the process of writing such programs. Distributed computing is a field of computer science that studies distributed systems. Distributed computing also refers to the use of distributed systems to solve computational problems. In distributed computing, a problem is divided into many tasks, each of which is solved by one or more computers. They communicate with each other by message passing. 2 Example of Distributed systems • A distributed system is one in which components located at network computers communicate and coordinate their actions by message passing. • Three examples of distributed system • Internet • An intanet which ia a portion of the internet managed by an organization • Mobile computing 3 A typical portion of the Internet intranet % ISP % % % backbone satellite link desktop computer: server: network link: 4 5 6 Centralized vs. Distributed Computing terminal mainframe computer workstation network link network host centralized computing distributed computing 7 Centralized vs. Distributed Computing terminal mainframe computer workstation Early computing was performed on a single processor. Uni-processor computing can be called centralized computing. network link network host centralized computing distributed computing 8 Centralized vs. Distributed Computing terminal mainframe computer A distributed system is a collection of independent computers, interconnected via a network, capable of collaborating on a task. workstation Distributed computing is computing performed in a distributed system. network link Distributed computing has become increasingly common due advances that have made both machines and networks cheaper and faster computing centralized network host distributed computing 9 Advantages of Distributed Systems over Centralized Systems • Economics: a collection of microprocessors offer a better price/performance than mainframes. Low price/performance ratio: cost effective way to increase computing power. • Speed: a distributed system may have more total computing power than a mainframe. • Inherent distribution: Some applications are inherently distributed. Ex. a supermarket chain. • Reliability: If one machine crashes, the system as a whole can still survive. Higher availability and improved reliability. • Incremental growth: Computing power can be added in small increments. Modular expandability • Another deriving force: the existence of large number of personal computers, the need for people to collaborate and share information. 10 Advantages of Distributed Systems over Independent PCs – Data sharing: allow many users to access to a common data base – Resource Sharing: expensive peripherals like color printers – Communication: enhance human-to-human communication, e.g., email, chat – Flexibility: spread the workload over the available machines 11 Disadvantages of Distributed Systems – Software: difficult to develop software for distributed systems – Network: saturation, lossy transmissions – Security: easy access also applies to secrete data 12 Design Issues of Distributed Systems • • • • • Transparency Flexibility Reliability Performance Scalability 13 Design Issues of Distributed Systems 1. Transparency • How to achieve the single-system image, i.e., how to make a collection of computers appear as a single computer. 2. Flexibility Make it easier to change in hardware , software and services of distributed system component. 3. Reliability Distributed system should be more reliable than single system. 14 Design Issues of Distributed Systems 4. Performance •Performance loss due to communication delays •Performance loss due to making the system fault tolerant. 5. Scalability •Systems grow with time or become obsolete. Techniques that require resources linearly in terms of the size of the system are not scalable. e.g., broadcast based query won't work for large distributed systems. 15 Thank You 16