Vous êtes sur la page 1sur 40

Clase 10

Diseo de Sistemas Distribuidos

Conocer las diferentes tecnologas de comunicacin


para con los sistemas distribuidos
Conocer las consideraciones al disear sistemas
distribuidos

Introduccin
Sistemas Distribuidos
Tecnologas de comunicacin
Diseo de los Sistemas Distribuidos

Arquitectura orientada a servicios

Evolucin
50s 70s : Una computadora mltiples
usuarios
80s 90s : Una computadora un usuario
2000s : Un usuario mltiples computadoras
Actualmente la informacin es totalmente
distribuida, aunque los datos centralizados se
siguen utilizando.

Procesamiento distribuido

La distribucin del cmputo puede realizarse de


diversas formas de acuerdo a su grado de
acoplamiento en:
Fuertemente
acopladas:
Multiprocesadores
(memoria compartida). UMA (Uniform Memory
Access)
Dbilmente
acopladas:
Multicomputadoras
(memoria privada). NUMA (Non Uniform Memory
Access).
5

Sistemas Multiprocesadores

Sistemas Multicomputadoras

Estn basados en el modelo cliente/servidor


Este modelo se basa en un protocolo solicitud
respuesta. El cliente enva una solicitud de cierto
servicio al servidor, el servidor realiza el trabajo y
regresa el resultado de la operacin.
La principal ventaja de este protocolo es su
sencillez, nicamente se necesita
la ubicacin del servidor.

Sistemas Multicomputadoras

Peer to Peer

Es una red de computadoras en la que todos o


algunos aspectos funcionan sin clientes ni
servidores fijos, sino una serie de nodos que se
comportan como iguales entre s:

Grid Computing

Llamamos grid al sistema de computacin distribuido


que permite compartir recursos no centrados
geogrficamente para resolver problemas de gran
escala. Los recursos compartidos pueden ser
ordenadores
(PC,
estaciones
de
trabajo,
supercomputadores, porttiles, mviles, etc.), software,
datos e informacin, instrumentos especiales (radio,
telescopios, etc.) o personas.

10

Cluster

El trmino cluster se aplica a los conjuntos o


conglomerados de computadoras construidos
mediante la utilizacin de hardware comunes y que
se comportan como si fuesen una nica
computadora

11

Es aquel que se ejecuta como un sistema


centralizado, pero que realmente se ejecuta
sobre mltiples e independientes CPU,
hacindolo de una forma transparente
para los usuarios

12

Caractersticas

Mltiples elementos de procesamiento


Mecanismos de intercomunicacin
Independencia a fallos en los nodos
procesamiento
Estado de comparticin
Esquema de proteccin
Sistemas Abiertos
Plataforma diversas (heterogneas)

de

13

Ventajas

Compartir informacin y otros recursos


Economizar el rendimiento (procesamiento y
almacenamiento)
Crecimiento incremental
Alta disponibilidad
Confiabilidad (tolerancia a fallos)

14

Tecnologas de comunicacin

RPC (Remote Procedure Call)


Es una comunicacin entre procesos que permite
que un programa ejecute una subrutina o
procedimiento en otro espacio de direcciones
(comnmente en otro ordenador en una red
compartida) sin que el programador codifique
explcitamente los detalles de esta interaccin
remota.

15

Tecnologas de comunicacin

Sockets
Elemento final de un flujo de comunicacin entre
procesos sobre la red.
Los sistemas operativos proporcionan una API para
sockets, que es una interfaz de programacin de
aplicaciones, que permite a los programas controlar
y usar los sockets de red.
Una direccin de socket es la combinacin de una
direccin IP y un nmero de puerto.
16

Tecnologas de comunicacin

Comunicacin de bajo nivel de red:

17

Tecnologas de comunicacin

RMI (Remote Method Invocation)


Es un mecanismo ofrecido por Java para invocar un
mtodo de manera remota. Forma parte del
entorno estndar de ejecucin de Java y
proporciona un mecanismo simple para la
comunicacin de servidores en aplicaciones
distribuidas basadas exclusivamente en Java. Es
orientado a objetos.

18

Tecnologas de comunicacin

CORBA
(Common Object Request Broker Architecture)
Es una arquitectura marco para el desarrollo de
aplicaciones distribuidas orientadas a objetos
basada en unas especificaciones para las interface
de los objetos utilizados.
Utiliza un intermediario ORB (Object Request
Broker)

19

Tecnologas de comunicacin

COM/DCOM
COM (Component Object Model) y DCOM
(Distributed Component Objetc Model) definen la
arquitectura distribuida orientada a componentes
de Microsoft. A grandes rasgos su funcionamiento y
objetivos son similares a los de CORBA.
No implementa herencia, sino que usa un modelo
de reutilizacin de los objetos antiguos
incorporndolos dentro de los nuevos.
20

Tecnologas de comunicacin

EJB (Enterprise JavaBeans)


Es una arquitectura de componentes del lado del
servidor para la construccin modular de
aplicaciones empresariales Java.
La especificacin EJB proporciona una forma
estndar para ejecutar el cdigo de back-end de las
aplicaciones (en lugar de cdigo de interfaz de
'front-end').
Orientados
a
manejar
las
preocupaciones comunes como la persistencia, la
integridad de las transacciones y la seguridad de los
componentes.
21

Tecnologas de comunicacin

Componentes: DCOM vs EJB

22

Tecnologas de comunicacin

SOAP (Simple Object Access Protocol)


Es un protocolo para el intercambio de informacin
estructurada en la implementacin de servicios
web. Se basa en XML para el formato del mensaje,
y por lo general se basa en otros protocolos de capa
de aplicacin, sobre todo de transferencia de
hipertexto (HTTP) para la negociacin y transmisin
del mensaje.

23

Tecnologas de comunicacin

REST (Representational State Transfer)


Estilo de arquitectura de software para sistemas
distribuidos con servicios web.
Las solicitudes y las respuestas se construyen
alrededor
de
la
transferencia
de
las
representaciones de los recursos. Un recurso puede
ser prcticamente cualquier elemento con
significado. Una representacin de un recurso suele
ser un documento que recoge el estado actual o
previsto del recurso.
24

Tecnologas de comunicacin

Servicios Web: SOAP vs REST

25

Tecnologas de comunicacin

Middleware
Los componentes en un sistema distribuido pueden
implementarse en distintos lenguajes de programacin y
ejecutarse en tipos de procesador diferentes por completo.
Por lo tanto un sistema distribuido requiere software que
pueda gestionar esas diversas partes y garantizar que
puedan comunicarse e intercambiar datos.
El trmino se usa para referirse a este software: se
encuentra en el centro, entre los componentes distribuidos
del sistema

26

Tecnologas de comunicacin

Middleware
Soporte de interaccin
Soporte de provisin de servicios comunes

27

Conflictos

Transparencia

En qu medida el sistema distribuido debe aparecer al usuario


como un solo sistema? Cundo es til para los usuarios
entender que el sistema es distribuido?

Apertura

Un sistema debe disearse usando protocolos estndar que


soporte interoperabilidad o deben usarse protocolos ms
especializados que restrinjan la libertad del diseador?

Escalabilidad

Cmo puede construirse el sistema para que sea escalable?


Esto es cmo podra disearse un sistema global para que su
capacidad se pueda aumentar en respuesta a demandas
crecientes hechas sobre el sistema?
28

Conflictos

Seguridad

Cmo pueden definirse e implementarse polticas de


seguridad tiles que se apliquen a travs de un conjunto de
sistemas administrados de manera independientes?

Calidad de servicio

Cmo debe especificarse la calidad del servicio que se entrega


a los usuarios del sistema y cmo debe implementarse el
sistema para entregar una calidad de servicio aceptable para
todos los usuarios?

Gestin de fallas

Cmo pueden detectarse las fallas del sistema, contenerse (de


modo que tengan efectos mnimos sobre otros componentes
del sistema) y repararse?
29

Arquitectura maestro-esclavo

Que se usa en sistemas de tiempo real en los que se


requiere garanta de tiempos de respuesta de
interaccin
Existe una dependencia funcional y tcnica del
cliente

30

Arquitectura cliente-servidor 2 niveles

Se usa para sistemas cliente servidor simple, y en


situaciones donde es importante centralizar el
sistema por razones de seguridad. En algunos casos
la comunicacin del cliente y el servidor est
encriptado

31

Arquitectura cliente-servidor multinivel

Se usa cuando existe un enorme volumen de


transacciones a procesar por el servidor

32

Arquitectura de componentes distribuidos

Se usa cuando es necesario combinar los recursos


de diferentes sistemas y base de datos, o como un
modelo de implementacin para sistemas clienteservidor multinivel
Ejemplo: CORBA

33

Arquitectura peer to peer

Se usa cuando los clientes intercambian de manera


local la informacin almacenada, y el papel del
servidor es presentar a los clientes entre s.
Tambin puede usarse cuando se deba elaborar un
amplio nmero de clculos independientes

34

Servicio

Es un componente de software que entrega


funcionalidad especfica y til, y es independiente a
la aplicacin que lo usa.
Permite el acceso a una o ms capacidades, que son
proporcionadas mediante una interfaz definida y se
ejecuta acorde con las restricciones y polticas
especificadas en la descripcin del servicio.

35

Servicio

Un intermediario es opcional para ubicar los servicios


El proveedor y el consumidor mantienen un contrato de
servicio

36

SOA (Service Oriented Architecture)

Es una forma de desarrollar sistemas distribuidos en


la que los componentes del sistema son servicios
independientes y generalmente se ejecutan en
computadoras distribuidas geogrficamente
Implementan recursos de software disponibles y
visibles en una red como servicios bien definidos.
Cada servicio debe resolver un objetivo de negocio
predefinido y ejecutarse como una unidad de
trabajo separada
37

SOA

Bajo acoplamiento y alta cohesin:

38

El procesamiento de cmputo distribuido puede


estar fuertemente acoplado (multiprocesadores) o
dbilmente acoplado (multicomputadores)
Un Sistemas Distribuido es aquel que se ejecuta
como un sistema centralizado, pero que realmente
se ejecuta sobre mltiples e independientes CPU,
hacindolo de una forma transparente para los
usuarios
Hay diferentes tecnologas de comunicacin para los
SD: no orientadas a objetos, orientadas a objetos,
orientadas a componentes y orientadas a servicios
web
Para el diseo de sistemas distribuidos existen
conflictos que debe ser comprendidos y previstos
39

Qu tipo de tecnologas para la comunicacin de


sistemas distribuidos conoce?

40

Vous aimerez peut-être aussi