Week 1

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 22

DISTRIBUTED SYSTEMS DEVELOPMENT

WEEK 1

Lecturer: Edison Kagona

BIT-6 S1-205
What is a distributed system?
“A collection of autonomous computers linked by a network with
software designed to produce an integrated facility”.

“A collection of independent computers that appear to the users


of the system as a single computer”

“An application that executes a collection of protocols to


coordinate the actions of multiple processes on a network, such
that all components cooperate together to perform a single or
small set of related tasks.”

More humorously:
“A distributed system is one in which a failure of a computer
you didn’t even know existed can render your own computer
unusable.” (Leslie Lamport)
What is a distributed system?
Points to note:
• A distributed system consists of components (i.e.
computers) that are autonomous (Independent).

• Distributed systems range in complexity from a few


interacting processes on a laptop or phone to the hundreds
of thousands of computers that cooperate to bring Google,
Facebook, and other large Web applications into existence.

• Users (people or programs) think they are dealing with a


single system (the autonomous components need to
collaborate).

• No assumptions are made concerning the type of


computers or the way that computers are interconnected.
What is a distributed system?
• Differences between the various computers and the ways in
which they communicate and the internal organization of the
distributed system are mostly hidden from users.

• Users and applications can interact with a distributed system


in a consistent and uniform way, regardless of where and
when interaction takes place.

• Distributed systems should also be relatively easy to expand


or scale.

• A distributed system will normally be continuously available,


although some parts may be temporarily out of order. Users
and applications should not notice that parts are being
replaced or fixed, or that new parts are added to serve more
users or applications.
What is a distributed system?
• Distributed systems are often organized by means of a
layer of software-that is, logically placed between a
higher-level layer consisting of users and applications,
and a layer underneath consisting of operating systems
and basic communication facilities
Distributed Systems
 They are Networked
Distributed systems are composed of multiple
processes that are almost always accessed through a
network usually the Internet. Even for internal
applications, communication is often done using
standard Internet protocols.

 That are far from each other


There is some time it takes for messages to be
passed (latency.)

 Owned by someone else


Distribution system services are not under our control
Examples

Distributed systems
 Department computing cluster
 Corporate systems
 Cloud systems (e.g. Google, Microsoft, etc.)

Applications
 Emails
 News
 Multimedia information systems-video conferencing
 Airline reservation systems
 Banking systems
 File downloads
 Messaging
Advantages of Distributed Systems vs. Centralized

Economics
Commodity microprocessors have better price/performance than
mainframes

Speed
Collective power of large number of systems is potentially infinite.

Geographic and Responsibility Distribution


Can provide better speed in geographic regions by not going
over slower transoceanic cables

Reliability
One machine’s failure need not bring down the system

Extensibility
Computers and software can be added incrementally
Advantages of Distributed Systems vs. Standalones
Data Sharing
Multiple users can access common databases and data files

Device/Resource Sharing
e.g., printers, servers, other CPUs…

Communication
Communication with other systems…

Flexibility
Spread workload to different & most appropriate systems

Extensibility
Add resources and software as needed
Disadvantages of Distributed Systems
Software
Little software exists compared to PCs (for example) but the
situation is improving with the cloud.

Networking
Still slow and can cause other problems (e.g., when disconnected)

Security
Data may be accessed by unauthorized users through network
interfaces

Privacy
Data may be accessed securely but without the owner’s consent
(significant issue in modern systems)
Desirable Characteristics of Distributed Systems

 Fault-Tolerant: It can recover from component failures


without performing incorrect actions.

 Highly Available: It can restore operations, permitting it to


resume providing services even when some components
have failed.

 Recoverable: Failed components can restart themselves and


rejoin the system, after the cause of failure has been repaired.

 Consistent: The system can coordinate actions by multiple


components often in the presence of concurrency and failure.
This underlies the ability of a distributed system to act like a
non-distributed system.
Desirable Characteristics of Distributed Systems

 Scalable: It can operate correctly even as some aspect


of the system is scaled to a larger size. For example, an
increase in the number of users or servers, or overall
load on the system should not have a significant effect.

 Predictable Performance: The ability to provide


desired responsiveness in a timely manner.

 Secure: The system authenticates access to data and


services

 Continue operating correctly even when


components fail.
Goals of Distributed Systems
The four important goals that should be met to make building a
distributed system worth the effort are

1. Resource Sharing: A distributed system should make its


resources easily accessible

2. Distribution Transparency: A distributed system should


reasonably hide the fact that resources are distributed across a
network

3. Openness: A distributed system can be extended in various


ways without disrupting existing systems and services

4. Scalability. the ability of the system to dynamically adjust its


own computing performance by changing
available computing resources and scheduling methods
Resource Sharing
The users (and applications) should access
remote resources and share them in a controlled
and efficient way.

The resources may be


 Hardware Devices: printers, disks, memory,
sensors.

 Software: Compilers, libraries, toolkits,


computational kernels.

 Data: databases, files


Resource Sharing
Resources are shared for:
• Economical reasons: it is cheaper for example to
share a printer, supercomputers, high-performance
storage systems, imagesetters, and other
expensive peripherals

• Collaboration and exchange of information e.g. the


Internet for exchanging files, mails, documents,
audio, and video, groupware (that is, using
software for collaborative editing, teleconferencing
etc), e-commerce etc.
Resource Sharing
N.B. As connectivity and sharing increase, security
is becoming increasingly important.

There is little protection against eavesdropping or


intrusion on communication.

Another security problem is tracking


communication which violates privacy.

Increased connectivity can also lead to unwanted


communication, such as electronic junk mail, often
called spam.
Resource Sharing
Resource Sharing
Client-Server
Advantages
 All files are stored in a central location

 Network peripherals are controlled centrally

 Backups and network security is controlled


centrally

 Users can access shared data which is


centrally controlled

19
Client-Server
Advantages
 Physically centralized

 Secure OS

 Better performance

 Very Reliable

20
Client-Server
Disadvantages
 A specialist network operating system is needed

 The server is expensive to purchase

 Specialist staff such as a network manager is


needed

 If any part of the network fails a lot of disruption


can occur

 More hardware intensive


21
NEXT: Distributed Systems Vs Centralized
Systems

You might also like