You are on page 1of 21

12/02/2014

Sistemas Distribuidos
1. Fundamentos de
Sistemas
Distribuidos
Samuel Lujn Navarro
Escuela Militar de Ingenieria
slujan7e@yahoo.es
Febrero de 2014

Objetivos
Al concluir el presente captulo usted ser capaz de:
n Caracterizar los sistemas Distribuidos.
n Describir diferentes modelos Cliente/Servidor
distribuidos
n Entender el mecanismo de las Llamadas a
Procedimientos Remotos RPC.
n Describir Sistemas de Objetos Distribuidos
n Caracterizar los Sistemas Orientado a los Servicios
febrero de 2014

Samuel Lujn Navarro

12/02/2014

Temario

n
n

Caracterizacin de Sistemas Distribuidos.


Sistemas Distribuidos Orientado a llamadas a
procedimientos remotos: RPC.
Sistemas Distribuidos Orientado a objetos
distribuidos: RMI y CORBA
Sistemas Distribuidos Orientado a servicios
distribuidos Web: XML, SOAP, WSDL y UDDI.

febrero de 2014

Samuel Lujn Navarro

Caracterizacin de Sistemas Distribuidos


n

Que pasa si estamos utilizando un sistema, y un accidente en un


sistema que no tiene que ver con el nuestro nos impide hacer algn
trabajo?.
n
n
n

Normalmente, ordenadores son semi-autnomos y dbilmente acoplados


Cooperan entre si para resolver un problema colectivamente.
Transparencia de recursos

Trmino que describe una amplia gama de ordenadores:


n
n
n

Dbilmente acoplados (sistemas tales como redes WAN)


Fuertemente acoplados (como redes LAN)
Fuertemente acoplados (tales como sistemas de multiprocesador).

febrero de 2014

Samuel Lujn Navarro

12/02/2014

Caracterizacin de Sistemas Distribuidos


n

Un sistema distribuido se puede caracterizar como una coleccin de


procesadores autnomos mayormente comunicndose a travs de
una red.
Tiene las siguientes caractersticas:
n
n
n
n

No tienen reloj fsico comn.


No tienen memoria compartida.
Separacin geogrfica.
Autonoma y heterogeneidad.

febrero de 2014

Samuel Lujn Navarro

Definicin de un Sistema Distribuido


Un sistema distribuido es una coleccin de
computadoras independientes que aparece a
sus usuarios como un nico y coherente
sistema
Tanenbaun, Van Steen, Principios y paradigmas de
Sistemas Distribuidos

febrero de 2014

Samuel Lujn Navarro

12/02/2014

Definicin de un Sistema Distribuido


Definimos un sistema distribuido como aquel
en el cual componentes de software y hardware
ubicados en una red de computadoras, se
comunican y coordinan sus acciones tan solo
mediante el pase de mensajes.
Coulouris George, Jean Dollimore, Tim Kindberg,
Sistemas Distribuidos, Conceptos y Diseo
(Tercera edicin)
febrero de 2014

Samuel Lujn Navarro

Computacin y paralelismo
n

Conjunto de procesadores que son capaces de trabajar en


cooperacin para resolver un problema de clculo.
n
n
n
n

Ssupercomputadoras paralelas con cientos o miles de procesadores.


Redes de estaciones de trabajo.
Estaciones de trabajo con mltiples procesadores.
Sistemas embebidos

Ofrecen la posibilidad de concentrar los recursos computacionales


n
n
n

Procesadores.
Memoria.
Ancho de banda.

febrero de 2014

Samuel Lujn Navarro

12/02/2014

Ejemplos de Sistemas Distribuidos


n

Internet.
n
n

Intranets
n
n
n

Gran coleccin de computadoras interconectadas en red.


Hace posible ejecutar progrmas desde cualquier parte y en cualqiuer parte.
Utiliza tecnologa de Internet , tipicamente a administrada por una organizacin.
Compuesta de varias LANs
Conectada a Internet via Routers y protegida por firewalls.

Computacin mobil y Obcua


n
n
n
n

Laptops
Dispositivos Handheld
Smartphones y tablets.
Dispositivos embebidos en aparatos como lavadoras, tevisores, refrigeradores,
automoviles, etc.

febrero de 2014

Samuel Lujn Navarro

Discusin de Sistemas Distribuidos


n

Que debera proveer un sistema distribuido?.


n
n

La impresin de un sistema cuando en realidad se ejecutan mltiples sistemas.


Transparencia de recursos

Temas de discusin
n
n
n

n
n
n

Comunicacin, manejo de errores, sincronizacin


Proteccin, seguridad
Manjejo de recursos (Asignacin de procesos, dispositivos, memoria,
Reasignacin)
Asignacin de nombres (a recursos, localizacin)
Administracin de datos (archivos, compartir)
Prevencin de abrazo Mortal.

febrero de 2014

Samuel Lujn Navarro

12/02/2014

Retos de Diseo
Abierto
Redes
Mquinas

Heterogeneo

SO
Lenguajes
Extensible
Autenticacin
Control
acceso

Seguro

Confidencialidad

Retos
de
diseo

Especificacin
Documentacin
y publicacin
interfaces
componentes
clave.
Facilidad para
incrementar el
nmero de
componentes y
recursos.

Concurrente

Mecanismos
deteccin

Acceso

Fallos
controllables

Aviso

Comparticin
simultnea de
recursos entre
usuarios.

Localizacin
Transparente

Concurrencia
Persistencia
Fallos
Replicacin

febrero de 2014

Samuel Lujn Navarro

Herramientas y soporte de sistemas distribuidos


Ordenadores
Hardware

Lneas de conexin
Protocolos de
bajo nivel

Sistemas
Operativos de red

Herramientas
y soporte

Protocolos
estndar de alto
nivel

Estandarizan modo
en que ordenadores
se comunican

Modelos
Conceptuales

Establecen marco
lgico, sirve de gua
para el desarrollo de
aplicaciones

Tecnologas

Lenguajes,
entornos de
desarrollo y de
ejecucin
febrero de 2014

Abstraccin, soporte
transparencia

Son la
materializacin
de un modelo
conceptual
Con ellos se
construyen e
implantan
aplicaciones que
forman el
sistema.

Samuel Lujn Navarro

12/02/2014

Tecnologas de Sistemas Distribuidos


Llamadas a
funciones
Llamadas a
funciones o
procedimientos
remotos

Sockets

RPC

RMI

Tecnologas
de
Sistemas
Distribuidos

Invocaciones a
Mtodos remotos
entre Objetos
distribuidos

CORBA
COM, DCOM
EJB

XML
Web Services

SOAP
WSDL
UDDI

febrero de 2014

Samuel Lujn Navarro

Aplicacin Distribuida
n

Que necesita una aplicacin distribuida?


n
n
n

Mecanismos para localizar objetos en la red.


Comunicacin con los objetos remotos
Mecanismos de intercambio de informacin (paso de parmetros)

febrero de 2014

Samuel Lujn Navarro

12/02/2014

Modelos de Interaccin de procesos

Cliente/Servidor
n
n

Igual a Igual
n
n

Los procesos son iguales


Cada proceso puede enviar y recibir mensajes en la medida de sus
necesidades.

Memoria compartida
n
n

Cliente busca los servicios desde el servidor


Llamada a procedimientos Remotos

No existe comunicacin explcita, simplemente los datos estn all.


El sistema provee consistencia

Otros
n
n

Pipe (Streams entre los procesos)


Comunicacin de grupo

febrero de 2014

Samuel Lujn Navarro

Cliente/Servidor
n

Ejecucin de programas separados en procesos separados


n
n
n

Basado en la idea de servicio


n
n
n

Clientes y servidores
Procesos estn relacionados, interactan e intercambian informacin.
A menudo modelo de 3 capas.
Servidor provee servicios
Cliente consume esos servicios
Cliente inicia el dilogo con el servidor, el servidor espera pasivamente.

Propiedades
n
n
n
n

Servidor puede servir a muchos clientes


Cliente no sabe la localizacin del servidor
Pueden mezclarse diferentes plataformas (idealmente)
Mejora de performance por aumento de servidores (idealmente)

febrero de 2014

Samuel Lujn Navarro

12/02/2014

Comunicacin en una Red


Principio bsico es el envo de mensajes
Get xyz.html
Navegador
Contenido de xyz.html

Servidor
HTTP
Servidor

Cliente

Usualmente despus de realizar una conexin

febrero de 2014

Samuel Lujn Navarro

Cliente/Servidor
n

Cdigo en el Cliente
Build message
send (server, msg)
recv (server, reply)

Cdigo en el Servidor
Loop:
RecvReq (client, msg)
interpret msg
do the work
built reply
sendReply (client, reply)
febrero de 2014

Samuel Lujn Navarro

12/02/2014

Problemas del paso de mensajes


n

Diferentes disciplinas que llaman mtodos o funciones


n
n

Como codificar informacin? (parmetros y retornar valores)


n
n
n
n

Confusin para el programador


Dificultad de separar integrar mtodos.
enteros (16/32/64 bits)
nmeros de punto flotante
Que hacer con los objetos punteros
Cada par de programas usa sus propias convenciones

Como sabe el cliente donde est localizado el servidor?


n

Es necesario un servicio de nombres.

febrero de 2014

Samuel Lujn Navarro

Ms problemas
n

Seguridad
n

Chequeo de tipos
n
n

Cuando los parmetros cambian debe mantenerse consistencia.


Problemas de codificacin son causados parcialmente por esto

Escalabiliad
n
n

A cuales usuarios/mquinas se les permite hacer que?

Cuando es servidor est sobrecargado debe ser dividido


Como sabe el cliente cual servidor usar?

Correccin de errores cuando se producen problemas de


comunicacin.

febrero de 2014

Samuel Lujn Navarro

10

12/02/2014

Modelo de Llamadas a Funciones


n

Evolucin y desarrollo de los protocolos TCP/IP


n
n
n

No exista nivel intermedio de comunicaciones


Programadores trabajaban con API de bajo nivel
Dcada de los 80s: Universidad de Berkeley desarrolla API de sockets

Interfaz de Sockets
n
n

Conjunto de funciones y estructuras


Programador debe llamar con API proporcionada por Interfaz

febrero de 2014

Samuel Lujn Navarro

Sistemas de Interfaces de Sockets


n

Universidad de Berkeley (California)


n
n
n

Windows Sockets (Winsock API)


n
n

Sistema propio del entorno Unix


Basado en libreras de funciones
Facilita integracin de aplicaciones en arquitectura TCP/IP
Sistema del entorno Windows de Microsoft
Similar a los sockets de la universidad de Berkeley

Sockets en Java (Sun Microsystems)


n

Sistema propio del entorno Java

febrero de 2014

Samuel Lujn Navarro

11

12/02/2014

Modelo Cliente-Servidor Orientado a


funciones
Aplicacin de
usuario
Interfaz de sockets

TCP

UDP
IP
Interfaz de acceso
y hardware

RED
febrero de 2014

Samuel Lujn Navarro

Llamados a Procedimientos Remotos:RPC


n
n
n

n
n
n

function = mtodo esttico que retorna un valor


procdure = mtodo estatico que no retorna un valor
RPC (Remote Procedure Call) Comunicacin inter que se distingue
como una lamada a un procedimiento o funcin.
Implementacin puede usar mensajes, sockets, etc.
Cliente y servidor pueden estar en diferentes proceso y mquinas.
Forma Orientada a objetos algunas veces llamada Invocacin a
Mtodos Remotos RMI
Ejemplos: Entorno de Computacin Distribuida de Open Software
Foundation (OSF DCE) es un estndar para RPC.
RPC de Sun sobre Unix usado para sistema de archivos NFS.
febrero de 2014

Samuel Lujn Navarro

12

12/02/2014

Codificacin
n

Cdigo en el Cliente
Result = serverproc (in_params, out_params)

Cdigo en el Servidor
El servidor podra usar el viejo paradigma de mensajes
o mejor:

n
n

Public staatic int


serverproc (in_params, put_params)

Cuando el cdigo del Cliente y Servidor son similares a una funcin


normal llamamos a esto RPC transparente
febrero de 2014

Samuel Lujn Navarro

Caractersticas de RMI
n

Modelo de objetos distribuidos


n

Objetos: normales y remotos

Idea
n

Objetos remotos existen en otro Host

Objetos remotos pueden ser utlizados como un objeto normal

Comportamiento es descrito por la interfaz

En entorno se encarga de la invocacin remota

Diferencias entre objetos normales y remotos


n

Referencias remotas pueden ser libremente distribuidas.

Clientes solamente conocen/usan la interfaz, no la implementacin

Paso de objetos remotos por referencia, objetos normales por copia.

Manejo de errores ms complicado. Invocacin misma puede fallar

febrero de 2014

Samuel Lujn Navarro

13

12/02/2014

CORBA
n

CORBA (Common Object Request Broker Architecture arquitectura comn de intermediarios en peticiones a objetos)
OMG (Object Management Group) Conjunto de organizaciones
que cooperan en la definicin de estndares para la
interoperabilidad en entornos heteregneos.
Fundado en 1989, en la actualidad lo componen ms de 700
empresas y otros organismos.
OMA (Object Management Architecture) Arquitectura de referencia
sobre cual se pueden definir aplicaciones distribuidas sobre un
entorno heteregneo.
Formalmente esta dividida en una serie de modelos:
Modelo de Objetos
Modelo de Interaccin
n ...
febrero de 2014
n
n

Samuel Lujn Navarro

OMA
n

Aplicacines OMA estan compuestas por objetos distribuidos que


cooperan entre si
Aplicaciones

Aplicaciones

ORB
Servicios
Objetos distribuidos
febrero de 2014

Facilidades
comunes

Intefaces de
dominio

Sistemas distribuidos
Samuel Lujn Navarro

14

12/02/2014

ORB
n
n

ORB (Object Request Broker) Elemento central de la arquitectura


Proporciona las funcionalidades de interconexin entre los
objetos distribuidos
n
n

Servicios, facilidades y objetos de aplicacin que forman una aplicacin


Representa un bus de comunicacin entre objetos

febrero de 2014

Samuel Lujn Navarro

Arquitectura CORBA

febrero de 2014

Samuel Lujn Navarro

15

12/02/2014

Servicios CORBA
n
n
n

Conjunto de objetos o grupos de objetos


Proporcionan una serie de funcionalidades elementales.
Objetos estan definidos de forma estndar (interfaces IDL
concretos).
n

Especificaciones se encuentran recogidas en los documentos COSS (Common


Object Services Specifications).

febrero de 2014

Samuel Lujn Navarro

CORBA vs RMI
n

n
n
n

CORBA permite una mayor heterogeneidad en el desarrollo de


aplicaciones (RMI slo se puede desarrollar con Java).
CORBA ademas de las funcionalidades de comunicacin,
proporciona servicios.
RMI funciona sobre CORBA (IIOP).
RMI es mucho ms sencillo y cmodo de usar.
RMI permite el paso de objetos por valor y por referencia.

febrero de 2014

Samuel Lujn Navarro

16

12/02/2014

Web Services
n

n
n
n
n

Conjunto de protocolos y estndares para intercambiar datos


entre aplicaciones.
Distintas aplicaciones de software.
Lenguajes diferentes
Operan sobe cualquier plataforma
Interoperabilidad se consigue por medio de estandares
abiertos

febrero de 2014

Samuel Lujn Navarro

Arquitectura de servicios web


n

Proveedor de servicios.
Ofrece servicios en la web y
publica las APIs para proveer
acceso a los servicios.
Registro del servicio. Registra
y categoriza los servicios
ofrecidos por los proveedores
de servicios.
Solicitador de servicio. Usa el
registro del servicio para
acceder a los servicios ofrecidos
por los proveedores.
febrero de 2014

Samuel Lujn Navarro

17

12/02/2014

Web Services - Estandares empleados


XML (Extensible Markup Language): Formato estndar
para intercambio de datos.
SOAP (Simple Object Access Protocol) Protocolo sobre
el que se establece el intercambio.
WSDL (Web Services Description Language):
Descripcin basada en XML de requisitos funcionales
para establecer comunicacin con servicios Web.
UDDI (Universal Description, Discovery and
Integration): Protocolo para publicar la informacin de
los servicios Web. Permite comprobar qu servicios web
estn disponibles.
Otros protocolos: HTTP (Hypertext Transfer Protocol),
FTP (File Transfer Protocol), o SMTP (Simple Mail
Transfer Protocol).

febrero de 2014

Samuel Lujn Navarro

Web Services vs CORBA


CORBA
Web Services
n framework de componentes
n Centrado en torno a
orientados a objetos
paradigma de paso de
n Estrecha conexin C/S.
mensajes.
comparten la misma interfaz
n Ambos deben ejecutar un ORB
n Todo est disociado.
n

interaccin C/S se realiza


directamente, sin necesidad
de intermediacin (excepto el
ORB)
Cliente obtiene identificador
de objeto CORBA e invoca un
mtodo. Resultado puede ser
otro objeto CORBA al que se
pueden aplicar otros mtodos.

febrero de 2014

Cliente enva un mensaje y


recibe un mensaje.
Respuesta no da acceso
inmediato a siguiente paso.

Rendimiento bajo,
derivados de adoptar un
formato basado en texto.

Samuel Lujn Navarro

18

12/02/2014

Cloud
Computing

febrero de 2014

Samuel Lujn Navarro

Computacin en la nube
Cloud Computing se refiere a aplicaciones y servicios que se ejecutan en una red
distribuida utilizando recursos virtualizados que se acceden mediante protocolos
comunes de Internet y estndares de redes.
El uso de la palabra "nube" hace referencia a los dos conceptos esenciales:
n Abstraccin:
n

n
n
n
n

Cloud computing abstrae detalles de implementacin del sistema de usuarios y


desarrolladores.
Aplicaciones se ejecutan en sistemas fsicos que no estn especificados.
Datos se almacenan en lugares que son desconocidos
Administracin de sistemas como servicio outsourcing.
Acceso de los usuarios es ubicuo.

Virtualizacin:
n
n

n
n

Cloud computing virtualiza los sistemas ofreciendo y compartiendo recursos.


Sistemas de almacenamiento se proveen por demanda desde una infraestructura
centralizada.
Costos se fijan de acuerdo al uso de los recursos
Recursos se pueden extender con agilidad.

febrero de 2014

Samuel Lujn Navarro

19

12/02/2014

Modelos de servicio de Cloud Computing


Tres tipos de servicio universalmente aceptados:

IaaS
Infrastructure as a Service
n
n
n
n

Mquinas virtuales
Almacenamiento virtual
Infraestructura virtual
Otros activos de hardware.

PaaS
Platform as a Service
n
n
n
n
n
n
n

febrero de 2014

Mquinas virtuales
Sistemas operativos
Aplicaciones
Servicios
Frameworks de desarrollo
Transacciones
Estructuras de control.

IaaS
Software as a Service:
n

n
n
n

Entornos operativos
completos
Aplicaciones
Gestin
Interfaz de usuario.

Samuel Lujn Navarro

Ejemplos de proveedores de *aaS

febrero de 2014

Samuel Lujn Navarro

20

12/02/2014

fin
febrero de 2014

Samuel Lujn Navarro

21

You might also like