The document provides an introduction to distributed systems, defining them as a collection of independent computers that communicate over a network to act as a single coherent system. It discusses the motivation for and characteristics of distributed systems, including concurrency, lack of a global clock, and independence of failures. Architectural categories of distributed systems include tightly coupled and loosely coupled, with examples given of different types of distributed systems such as database management systems, ATM networks, and the internet.
2. INTRODUCTION TO DISTRIBUTED
SYSTEMS
`
Definition
Motivation for Distributed system
Architectural Categories
Characteristics, Issues, Goals,
Advantages
Disadvantages
3. DEFINITION
A distributed system is a collection of independent
computers, interconnected via a network, capable of
collaborating on a task.
A distributed system can be characterized as collection of
multiple autonomous computers that communicate over a
communication network and having following features:
No common Physical clock
Enhanced Reliability
Increased performance/cost ratio
Access to geographically remote data and resources
Scalability
3
4. DEFINITION CNTD…
Distributed system is a collection of independent
entities that cooperate to solve a problem that cannot
be solved individually.
So, basically it is nothing but a collection of computers.
DCS do not share a common memory or do not have a
common physical clock, and the only way they can
communicate is through the message passing and for
that they require a communication network
5. Definition of a Distributed System
A distributed system is (Tannenbaum):
A collection of independent computers that
appears to its users as a single coherent
system.
A distributed system is (Lamport):
One in which the failure of a computer you
didn't even know existed can render your
own computer unusable
6. Overview…
Distributed system connects autonomous processors by
communication network.
The software component that run on each of the
computers use the local operating system and network
protocol stack.
The distributed software is termed as middleware.
The distributed execution is the execution of the
processes across the distributed system to collectively
achieve a common goal.
7. Motivation for Distributed system
Inherently distributed computation that is many
applications such as money transfer in the banking, or
reaching a consensus among the parties that are
geographically distant, the computation is inherently
distributed.
Resource sharing the sharing of the resources such as
peripherals, and a complete data set and so on and so forth.
Access the geographically remote data and resources, such
as bank database, supercomputer and so on.
Reliability enhanced reliability possibility of replicating the
resources and execution to enhance the reliability.
10. TIGHTLY COUPLED SYSTEMS
In these systems, there is a single system wide
primary memory (address space) that is shared
by all the processors . Usually tightly coupled
systems are referred to as parallel processing
systems.
CPU CPU
System-
Wide
Shared
memory CPU
Interconnection hardware
CPU
11. LOOSELY COUPLED SYSTEMS
In these systems, the processors do not share
memory, and each processor has its own local
memory .Loosely coupled systems are referred
to as distributed computing systems, or simply
distributed systems
Local memory
CPU
Local memory
CPU
Local memory
CPU
Local memory
CPU
Communication network
13. EXAMPLES OF DISTRIBUTED SYSTEMS
Database Management System
Automatic Teller Machine Network
Internet/World-Wide Web
Mobile and Ubiquitous Computing
13
18. WEB SERVERS AND WEB BROWSERS
18
Internet
Browsers
Web servers
www.google.com
www.uu.se
www.w3c.org
Protocols
Activity.html
http://www.w3c.org/Protocols/Activity.html
http://www.google.comlsearch?q=lyu
http://www.uu.se/
File system of
www.w3c.org
19. MOBILE AND UBIQUITOUS COMPUTING
19
Laptop
Mobile
Printer
Camera
Internet
Host intranet Home intranet
GSM/GPRS
Wireless LAN
phone
gateway
Host site
20. Distributed System
A distributed system organized as middleware. The
middleware layer extends over multiple machines,
and offers each application the same interface.
22. Making resources accessible
• The main goal of a distributed system is to make it
easy for the users (and applications) to access
remote resources, and to share them in a controlled
and efficient way.
• Resources can be just about anything, but typical
examples include things like printers, computers,
storage facilities, data, files, Web pages, and
networks,
Reasons to share resources.
• Economics.
23. OPENNESS
An open distributed system is a system that offers
services according to standard rules that describe
the syntax and semantics of those services.
Detailed interfaces of components need to be
published.
New components have to be integrated with
existing components. An open distributed system
should also be extensible.
Differences in data representation of interface types
on different processors (of different vendors) have
to be resolved.
23
24. TRANSPARENCY
Distributed systems should be perceived by users
and application programmers as a whole rather
than as a collection of cooperating components.
Ability to hide the fact that process and resources
are distributed .
Transparency has different aspects.
These represent various properties that distributed
systems should have.
24
26. ACCESS TRANSPARENCY
Enables local and remote information objects to be
accessed using identical operations.
Example: File system operations in NFS.
Example: Navigation in the Web.
Example: SQL Queries
26
27. LOCATION TRANSPARENCY
Enables information objects to be accessed
without knowledge of their location.
Example: File system operations in NFS
Example: Pages in the Web
Example: Tables in distributed databases
27
28. 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
28
29. REPLICATION TRANSPARENCY
Enables multiple instances of information
objects to be used to increase reliability and
performance without knowledge of the replicas
by users or application programs
Example: Distributed DBMS
Example: Mirroring Web Pages.
29
30. FAILURE TRANSPARENCY
Enables the concealment of faults
Allows users and applications to complete their
tasks despite the failure of other components.
Partial failure transparency is achievable but
complete failure transparency is not possible
Example: Database Management System
30
31. MIGRATION TRANSPARENCY
Allows the movement of information objects
within a system without affecting the operations
of users or application programs
Relocation Transparency:
Situation in which resources can be relocated
while they are being accessed without the user
or application noticing anything. In such cases,
the system is said to support relocation
transparency.
31
32. PERFORMANCE TRANSPARENCY
Allows the system to be reconfigured to
improve performance as loads vary.
Load should be evenly distributed among all the
machines.
32
33. SCALING TRANSPARENCY
Allows the system and applications to expand
in scale without change to the system structure
or the application algorithms.
Example: World-Wide-Web
Example: Distributed Database
33
34. HETEROGENEITY
Variety and differences in
Networks
Computer hardware
Operating systems
Programming languages
Implementations by different developers
34
35. SECURITY
In a distributed system, clients send requests to
access data managed by servers, resources in
the networks:
Doctors requesting records from hospitals
Users purchase products through electronic commerce
Security is required for:
Concealing the contents of messages: security and privacy
Identifying a remote user or other agent correctly
(authentication)
New challenges:
Denial of service attack
Security of mobile code
35
36. FAILURE HANDLING (FAULT
TOLERANCE)
Hardware, software and networks fail!
Distributed systems must maintain availability
even at low levels of hardware/software/network
reliability.
Fault tolerance is achieved by
recovery
redundancy
36
37. CONCURRENCY
Components in distributed systems are
executed in concurrent processes.
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.
37
38. SCALABILITY
Scalability of a system can be measured along at
least three different dimensions
scalability with respect to size: meaning that we can
easily add more users and resources to the system.
geographically scalable :system is one in which the
users and resources may lie far apart.
Administratively scalable: meaning that it can still be
easy to manage even if it spans many independent
administrative organizations.
39. SCALING TECHNIQUES
Hiding communication latencies
Asynchronous communication
Allocate more job to client machine
Distribution
Distribution involves taking a component, splitting it into
smaller parts, and subsequently spreading those parts
across the system. An excellent example of distribution
is the Internet Domain Name System (DNS)
Replicate
40. 4. BASIC DESIGN ISSUES
Specific issues for distributed systems:
Naming
Communication
Software structure
System architecture
Workload allocation
Consistency maintenance
40
41. NAMING
A name is resolved when translated into an
interpretable form for resource/object reference.
Communication identifier (IP address + port number)
Name resolution involves several translation steps
Design considerations
Choice of name space for each resource type
Name service to resolve resource names to comm. id.
Name services include naming context resolution,
hierarchical structure, resource protection
41
42. COMMUNICATION
Separated components communicate with sending
processes and receiving processes for data transfer
and synchronization.
Message passing: send and receive primitives
synchronous or blocking
asynchronous or non-blocking
Abstractions defined: channels, sockets, ports.
Communication patterns: client-server
communication (e.g., RPC, function shipping) and
group multicast
42
43. SOFTWARE STRUCTURE
Layers in centralized computer systems:
43
Applications
Middleware
Operating system
Computer and Network Hardware
44. SOFTWARE STRUCTURE
Layers and dependencies in distributed systems:
44
Applications
Distributed programming
support
Open
services
Open system kernel services
Computer and network hardware
46. ADVANTAGES OF DISTRIBUTED SYSTEM
Information Sharing among Distributed Users
Resource Sharing
Extensibility and Incremental growth
Shorter Response Time and Higher Output
Higher Reliability
Better Flexibility’s in meeting User’s needs
Better price/performance ratio
Scalability
Transparency
7
47. DISADVANTAGES OF DISTRIBUTED
SYSTEM
Difficulties of developing distributed
software
Networking Problem
Security Problems
Performance
Openness
Reliability and Fault Tolerance
8
48. REFERENCES:
Tanenbaum, Andrew S., and Maarten Van
Steen. Distributed systems: principles and
paradigms. Prentice-Hall, 2007.
Sinha, Pradeep K. Distributed operating systems:
concepts and design. PHI Learning Pvt. Ltd., 1998.
NOC:Distributed Systems,NPTEL