You are on page 1of 39

Distributed System


Distributed Database

Distributed System

Computer 1 Computer 2 Computer 3 Computer 4

Application A Application B Application C

Distributed-system layer (middleware)

Local OS 1 Local OS 2 Local OS 3 Local OS 4

Network
Internet

A typical portion of the Internet


Intranet
Mobile

Portable and handheld devices in a distributed system


Cloud Computing

Cloud Computing
Characterization of Distributed System

!Heterogeneity: They must be constructed


from a variety of different networks, operating
systems, computer hardware and
programming languages.
Characterization of Distributed System

!Openness: Distributed systems should be


extensible- the first step is to publish the
interfaces of the components, but the
integration of components written by
different programmers is a real challenge.
Characterization of Distributed System

!Security: Encryption can be used to


provide adequate protection of shared
resources and to keep sensitive
information secret when is transmitted in
messages over a network.
Characterization of Distributed System

!Scalability: A distributed system is


scalable if the cost of adding a user is
a constant amount terms of the
resources that must be added.
Characterization of Distributed System

!Failure handling: Any process, computer


or network may fail independently of the
others. Therefore each component needs
to be aware of the possible ways in
which the components it depends on
may fail and be designed to deal with
each of those failures appropriately.
Characterization of Distributed System

!Concurrency: The presence of


multiple users in a distributed system is
a source of concurrent requests to its
resource. Each resource must be safe
in a concurrent environment.
Characterization of Distributed System

!Transparency: The aim is to make certain


aspects of distribution invisible to the
application programmer so that they need
only be concerned with the design of their
particular application. For example, they
need not be concerned with its location or
the details of how its operations are accessed
by other components, or whether it will be
replicated or migrated.
Goals of distributed system

!Making Resources Accesible


!Distribution Transparency
!Openness
!Scalability
Goals of distributed system

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.

Connecting users and resources also makes it easier to collaborate and


exchange information, as is clearly illustrated by the success of the Internet
with its simple protocols for exchanging files, mail. documents, audio, and
video.

However, as connectivity and sharing increase, security is becoming


increasingly important. In current practice, systems provide little protection
against eavesdropping or intrusion on communication
Goals of distributed system, Types of
distribution transparency
Goals of distributed system

Openness

An open distributed system is a system that offers services according to


standard rules that describe the syntax and semantics of those services.

Interoperability characterizes the extent by which two implementations of


systems or components from different manufacturers can co-exist and work
together by merely relying on each other's services as specified by a
common standard.

Portability characterizes to what extent an application developed for a


distributed system A can be executed. without modification, on a different
distributed system B that implements the same interfaces as A
Goals of distributed system

Openness

Another important goal for an open distributed system is that it should be


easy to configure the system out of different components (possibly from
different developers). Also, it should be easy to add new components or
replace existing ones without affecting those components that stay in
place. In other words, an open distributed system should also be extensible.
Goals of distributed system

Scalability
Scalability of a system can be measured along at least three different
dimensions:

First, a system can be scalable with respect to its size, meaning that we can
easily add more users and resources to the system.

Second, a geographically scalable system is one in which the users and


resources may lie far apart.

Third, a system can be administratively scalable, that it can still be easy to


manage even if it spans many independent administrative organizations
Types of Disitributed Systems

!Distributed Computing Systems


!Distributed Information Systems
!Distributed Pervasive System
Types of Disitributed Systems
Cluster Computing Systems
Cómputo
Master Node Computer node Computer node Computer node

Management
application Component of Component of Component of
parallel parallel parallel
Parallel libs application application application

Local OS Local OS Local OS Local OS

Standard Network

Remote access High-speed Network


Network
Types of Disitributed Systems
Cómputo
Applications

Collective layer

Connectivity layer Resource layer

Fabric layer

A layered architecture for grid computing systems


Types of Disitributed Systems
Información

Primitive Description
BEGIN_TRANSACTION Mark the start of a transaction
END_TRANSACTION Terminate the transaction and try to commit
ABORT_TRANSACTION Kill the transaction and restore the old values
READ Read data from a file, a table, or otherwise
WRITE Write data to a file, a table, or otherwise
Types of Disitributed Systems
Información
ACID properties

1. Atomic: To the outside world, the transaction happens


indivisibly.
2. Consistent: The transaction does not violate system
invariants.
3. Isolated: Concurrent transactions do not interfere with
each other.
4. Durable: Once a transaction commits, the changes are
permanent.
Types of Disitributed Systems
Información

Read,Write

End Transaction
Begin Transaction Commit
Partially
active Committed
committed

Reply
Abort Abort
Request

Failed Terminated
Types of Disitributed Systems
Información

The System Log


1. [start_Transaction, T]
2. [write_item, T,X, old_value, new_value]
3. [read_item, T,X]
4. [commit, T]
5. [abort, T]
Types of Disitributed Systems
Información

Nested transaction

Subtransaction Subtransaction

Airline database Hotel database

Two different (independent) databases


Subtransactions
Types of Disitributed Systems
Información
Reply

Server

Transaction Request
Request Request
Client TP Server
application monitor
Reply Reply

Request
Reply
Server

The role of a TP monitor in distributed systems


Types of Disitributed
Systems(Middleware) Información

Middleware as a communication facilitator in enterprise application


integration

Client application Client application

Communication middleware

Server-side Server-side Server-side


application application application
Types of Disitributed Systems
(Middleware) Información
Applications
RMI, RPC, and Events
Request reply protocol Middleware
Layers
External data
representation
Operating System
Middleware: Software that provides a programming model above the basic
buinding blocks procesess and message passing. The middleware layer uses
protocols based on messages between processes to provide its higher-level
abstractions such a remote invocations and event.
Types of Disitributed Systems
(Middleware) Información
Request-replay communication
Types of Disitributed Systems
(Middleware) Información
RPC (Remote Procedure Call)
Types of Disitributed Systems
(Middleware) Información
RMI (Remote Method Invocation)

Remote and local Invocations


Types of Disitributed Systems
(Middleware) Información
RMI (Remote Method Invocation)

A remote object and its remote


interface
Types of Disitributed Systems
(Middleware) Información
RMI (Remote Method Invocation)

Instantiation of remote objects


Types of Disitributed Systems

Masivos (Embebidos)

A distributed pervasive systems, are often


characterized by being small, battery-
powered, mobile, and having only a wireless
connection, although not all these
characteristics apply to all devices.

Three requirements for pervasive


applications:

1. Embrace contextual changes.


2. Encourage ad hoc composition.
3. Recognize sharing as the default.
Types of Disitributed Systems

Masivos (Embebidos)

Embrace contextual changes.

GSM
Architecture
Types of Disitributed Systems

Masivos (Embebidos)

Embrace contextual changes.


Types of Disitributed Systems

Masivos (Embebidos)

Recognize sharing as the default

You might also like