Tema 1
Tema 1
Distributed Systems
Introduction and
basic concepts
RPC termination
In gRPC, both the client and server make independent and local
determinations of the success of the call, and their conclusions may
not match. This means that, for example, you could have an RPC
that finishes successfully on the server side (“I have sent all my
responses!”) but fails on the client side (“The responses arrived after
my deadline!”). It’s also possible for a server to decide to complete
before a client has sent all its requests.
https://grpc.io/docs/what-is-grpc/core-concepts/
The procedure call model would elevate the task of creating application protocols to that
of defining procedures and their calling sequences. It would also provide the foundation for a
true DPS that encourages and facilitates the work of the applications programmer by
gracefully extending the local programming environment, via the RTE, to embrace modules
on other machines.
This integration of local and network programming environments can even be carried as far
as modifying compilers to provide minor variants of their normal procedure-calling
constructs for addressing remote procedures.
James E. White
A High-Level Framework for
Network-Based Resource Sharing
RFC 707, 1976
●
63 · 109 web pages
●
1 · 1012 URLs
http://www.internetlivestats.com/google-search-statistics/
Distributed Systems :: Introduction 8
Example
Cloud Computing
Cloud computing provides arbitrary software and
hardware IT resources over the Internet:
● On-demand.
● passive | active
● invokes | replies invoca: llamada de un método de un objeto
● heavy | light
● simple | complex deben poder gestionar la concurrencia (múltiples clientes simultáneamente)
http://www.omg.org/spec/index.htm
Distributed Systems :: Introduction 24
Scalability
capacidad para adaptarse a la demanda
https://www.crn.com
Distributed Systems :: Introduction 25
Concurrency
se ejecutan procesos en cada instante
● Security
Tools:
● Security at different levels
● SSL, Public Key Infrastructure, VPN, etc.
● KPI: Number of security incidents per day/week/month
● e-mail Localización
● URL Localización
● DNS Nombres simbólicos (indirección). No dice como se debe hacer la elección, si una maquina esta carga le da la IP de otra maquina
Localización, Transparencia de fallos (DNS primario y secundario...). Transparencia de replicación (Replicado en un montón de
servidores base de datos distribuida)
Applications, services
Middleware
Operating system
Platform
Source: Colouris
Universal references
● A unique non-ambiguous way to locate resources.
● Resource Naming.
Canonical representation
● Common network-level data representation and
format.
Language bindings
● Definition of common interfaces.
Source: Colouris
● Sockets
● Client/Server
● Remote invocation (RPC / RMI)
● Indirect communication
Distributed Systems :: Introduction 39
Sockets
IPC mechanism (ie, provides communication between
processes) eventually running on different computers.
● It introduced TCP/IP in UNIX
● Virtually universal low-level interface
● Access to link, network and transport layers
● Very efficient, but complex and error-prone
● Communication protocol agnostic
● Distributed application features are implemented ad-hoc
● A protocol is designed for each application.
accept() connect()
recv() send()
processing
send() recv()
close() close()
Fuente https://geeks.ms
Fuente: https://indico.cern.ch/
http://doc.zeroc.com/display/Ice/Slice+Compilation
Distributed Systems :: Introduction 47
Indirect Communication
Some applications are better suited to an event-driven paradigm.
● Events distributed by publishers are generated in event channels
that are...
● filtered (source vs. destination)
● grouped
● analyzed
● replicated
● Received by subscribers
● An event management application (broker) manages the
distribution of events and subscriptions
Source: https://cloudamqp.com
Distributed Systems :: Introduction 50
Fundamental models
Forma en la que se especifica el funcionamiento de un sistema distribuido
● Failure Model
● Security Model
send
Z
receive receive
m3 m1 m2 User A:
A
receive receive receive 1. From Z: Re: Meeting
t1 t2 t3 2. From X: Meeting
3. From Y: Re: Meeting
process p process q
send m receive
Communication channel
Outgoing message buffer Incoming message buffer
http://www.cs.hut.fi/Opinnot/T-106.5250/Cmaps/Ch05/Programming%20models%20for%20distributed%20systems.html
Distributed Systems :: Introduction 58
Security model
Definition and classification of attacks/threats that can
affect a DS:
● Basis for analysis of potential threats and for building
robust systems
Safety can be achieved:
● Protecting objects
● Authorization: only to beneficiaries of the (main) rights
● Authentication: third party/mainframe identification
Client
result Server
●
Securing processes and their interactions
Copy of m
The enemy
m’
Process p m Process q
Communication channel
http://www.cs.hut.fi/Opinnot/T-106.5250/Cmaps/Ch05/Programming%20models%20for%20distributed%20systems.html
Distributed Systems :: Introduction 61
References
G. Coulouris, Distributed Systems: Concepts and
Design, Addison Wesley 2011
● Chapter 1 – Characterization of distributed
systems.
● Chapter 2 – System models