Distributed Systems: Page - 1
Distributed Systems: Page - 1
Introduction
A distributed system is a software system in which components located on networked
computers communicate and coordinate their actions by passing messages. The components
interact with each other in order to achieve a common goal.
Examples of distributed systems and applications of distributed computing include the following:
telecommunication networks:
telephone networks and cellular networks,
computer networks such as the Internet,
wireless sensor networks,
routing algorithms;
Page | 1
network applications:
World wide web and peer-to-peer networks,
massively multiplayer online games and virtual reality communities,
distributed databases and distributed database management systems,
Resource Sharing
Openness
Concurrency
Scalability
Fault Tolerance
Transparency
Resource Sharing
Openness
Openness is concerned with extensions and improvements of distributed systems.
Detailed interfaces of components need to be published.
New components have to be integrated with existing components.
Differences in data representation of interface types on different processors (of
different vendors) have to be resolved.
Page | 2
Concurrency
Components access and update shared resources (e.g. variables, databases, device
drivers).
Integrity of the system may be violated if concurrent updates are not coordinated.
o Lost updates
o Inconsistent analysis
Scalability
Fault Tolerance
• recovery
• redundancy
Transparency
Distributed systems should be perceived by users and application programmers as a whole rather
than as a collection of cooperating components.
Page | 3
Access Transparency
Enables local and remote information objects to be accessed using identical operations.
Location Transparency
Enables information objects to be accessed without knowledge of their location.
Concurrency Transparency
Enables several processes to operate concurrently using shared information objects without
interference between them.
• Example: NFS
• Example: Automatic teller machine network
• Example: Database management system
Replication Transparency
Failure Transparency
Migration Transparency
Allows the movement of information objects within a system without affecting the operations of
users or application programs
• Example: NFS
• Example: Web Pages
Performance Transparency
Allows the system to be reconfigured to improve performance as loads vary.
Page | 4
• Example: Distributed make.
Scaling Transparency
Allows the system and applications to expand in scale without change to the system structure or
the application algortithms.
• Example: World-Wide-Web
• Example: Distributed Database
• Multiprocessors
• Multicomputers
Networks of Computers
Networks of Computers
Page | 5
High degree of node heterogeneity:
• High-performance parallel systems (multiprocessors as well as multicomputers)
• High-end PCs and workstations (servers)
• Simple network computers (offer users only network access)
• Mobile computers (palmtops, laptops)
• Multimedia workstations
Some characteristics:
_ OS on each computer knows about the other computers
_ OS on different computers generally the same
_ Services are generally (transparently) distributed across computers
Page | 6
Network Operating System
Some characteristics:
_ Each computer has its own operating system with networking facilities
_ Computers work independently (i.e., they may even have different operating systems)
_ Services are tied to individual nodes (ftp, telnet, WWW)
_ Highly file oriented (basically, processors share only files)
Page | 7
-
Communication services: Abandon primitive socket based message passing in favor of:
_ Procedure calls across networks
_ Remote-object method invocation
_ Message-queuing systems
_ Advanced communication streams
_ Event notification service
Information system services: Services that help manage data in a distributed system:
_ Large-scale, system wide naming services
_ Advanced directory services (search engines)
_ Location services for tracking mobile objects
_ Persistent storage facilities
_ Data caching and replication
Control services: Services giving applications control over when, where, and how they access
Page | 8
_ Distributed transaction processing
_ Code migration
Security services: Services for secure processing and communication:
_ Authentication and authorization services
_ Simple encryption services
_ Auditing service
Page | 9