21

Click here to load reader

Cap 1 Introduccion a Los Sistemas Distribuidos

Embed Size (px)

DESCRIPTION

INTRODUCCION A SISTEMAS DISTRIBUIDOS

Citation preview

Page 1: Cap 1 Introduccion a Los Sistemas Distribuidos

12/02/2014

1

Samuel Luján NavarroEscuela Militar de Ingenieria

[email protected]

Febrero de 2014

1. Fundamentos de Sistemas Distribuidos

Sistemas Distribuidos

febrero de 2014 Samuel Luján Navarro

Objetivos

Al concluir el presente capítulo usted será capaz de:n Caracterizar los sistemas Distribuidos.n Describir diferentes modelos Cliente/Servidor

distribuidosn Entender el mecanismo de las Llamadas a

Procedimientos Remotos RPC.n Describir Sistemas de Objetos Distribuidosn Caracterizar los Sistemas Orientado a los Servicios

Page 2: Cap 1 Introduccion a Los Sistemas Distribuidos

12/02/2014

2

febrero de 2014 Samuel Luján Navarro

Temario

n Caracterización de Sistemas Distribuidos.n Sistemas Distribuidos Orientado a llamadas a

procedimientos remotos: RPC.n Sistemas Distribuidos Orientado a objetos

distribuidos: RMI y CORBAn Sistemas Distribuidos Orientado a servicios

distribuidos Web: XML, SOAP, WSDL y UDDI.

febrero de 2014 Samuel Luján Navarro

Caracterización 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 algún trabajo?.n Normalmente, ordenadores son semi-autónomos y débilmente acopladosn Cooperan entre si para resolver un problema colectivamente.n Transparencia de recursos

n Término que describe una amplia gama de ordenadores:n Débilmente acoplados (sistemas tales como redes WAN)n Fuertemente acoplados (como redes LAN)n Fuertemente acoplados (tales como sistemas de multiprocesador).

Page 3: Cap 1 Introduccion a Los Sistemas Distribuidos

12/02/2014

3

febrero de 2014 Samuel Luján Navarro

Caracterización de Sistemas Distribuidos

n Un sistema distribuido se puede caracterizar como una colección de procesadores autónomos mayormente comunicándose a través de una red.

n Tiene las siguientes características:n No tienen reloj físico común.n No tienen memoria compartida.n Separación geográfica.n Autonomía y heterogeneidad.

febrero de 2014 Samuel Luján Navarro

Definición de un Sistema Distribuido

“Un sistema distribuido es una colección de computadoras independientes que aparece a sus usuarios como un único y coherente sistema”Tanenbaun, Van Steen, “Principios y paradigmas de

Sistemas Distribuidos”

Page 4: Cap 1 Introduccion a Los Sistemas Distribuidos

12/02/2014

4

febrero de 2014 Samuel Luján Navarro

Definición 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 Diseño

(Tercera edición)”

febrero de 2014 Samuel Luján Navarro

Computación y paralelismo

n Conjunto de procesadores que son capaces de trabajar en cooperación para resolver un problema de cálculo.n Ssupercomputadoras paralelas con cientos o miles de procesadores. n Redes de estaciones de trabajo. n Estaciones de trabajo con múltiples procesadores.n Sistemas embebidos

n Ofrecen la posibilidad de concentrar los recursos computacionales n Procesadores.n Memoria.n Ancho de banda.

Page 5: Cap 1 Introduccion a Los Sistemas Distribuidos

12/02/2014

5

febrero de 2014 Samuel Luján Navarro

Ejemplos de Sistemas Distribuidos

n Internet.n Gran colección de computadoras interconectadas en red.n Hace posible ejecutar progrmas desde cualquier parte y en cualqiuer parte.

n Intranetsn Utiliza tecnología de Internet , tipicamente a administrada por una organización.n Compuesta de varias LANsn Conectada a Internet via Routers y protegida por firewalls.

n Computación mobil y Obícuan Laptopsn Dispositivos Handheldn Smartphones y tablets.n Dispositivos embebidos en aparatos como lavadoras, tevisores, refrigeradores,

automoviles, etc.

febrero de 2014 Samuel Luján Navarro

Discusión de Sistemas Distribuidos

n ¿Que debería proveer un sistema distribuido?.n La impresión de un sistema cuando en realidad se ejecutan múltiples sistemas.n Transparencia de recursos

n Temas de discusiónn Comunicación, manejo de errores, sincronizaciónn Protección, seguridadn Manjejo de recursos (Asignación de procesos, dispositivos, memoria,

Reasignación)n Asignación de nombres (a recursos, localización)n Administración de datos (archivos, compartir)n Prevención de abrazo Mortal.

Page 6: Cap 1 Introduccion a Los Sistemas Distribuidos

12/02/2014

6

febrero de 2014 Samuel Luján Navarro

Retos de Diseño

Retos de

diseño

Heterogeneo

Abierto

Seguro

Extensible

Fallos controllables

Concurrente

Transparente

Redes

Máquinas

SO

Lenguajes

AutenticaciónControl acceso

Confidencialidad

EspecificaciónDocumentación

y publicación interfaces

componentes clave.

Facilidad para incrementar el

número de componentes y

recursos.

Aviso

Mecanismos detección

Compartición simultánea de recursos entre

usuarios.

Acceso

Localización

Concurrencia

Persistencia

Fallos

Replicación

febrero de 2014 Samuel Luján Navarro

Herramientas y soporte de sistemas distribuidos

Herramientas y soporte

Hardware

Sistemas Operativos de red

Protocolos estándar de alto

nivel

Modelos Conceptuales

Estandarizan modo en que ordenadores

se comunican

Abstracción, soporte transparencia

Son la materialización de un modelo

conceptual

Ordenadores

Tecnologías

Lenguajes, entornos de

desarrollo y de ejecución

Líneas de conexión

Protocolos de bajo nivel

Establecen marco lógico, sirve de guía para el desarrollo de

aplicaciones

Con ellos se construyen e

implantan aplicaciones que

forman el sistema.

Page 7: Cap 1 Introduccion a Los Sistemas Distribuidos

12/02/2014

7

febrero de 2014 Samuel Luján Navarro

Tecnologías de Sistemas Distribuidos

Tecnologías de

Sistemas Distribuidos

Llamadas a funciones

Llamadas a funciones o

procedimientos remotos

Invocaciones a Métodos remotos

entre Objetos distribuidos

Web Services

RMI

CORBA

COM, DCOM

EJB

RPC

XML

SOAP

WSDL

UDDI

Sockets

febrero de 2014 Samuel Luján Navarro

Aplicación Distribuida

n ¿Que necesita una aplicación distribuida?n Mecanismos para localizar objetos en la red.n Comunicación con los objetos remotosn Mecanismos de intercambio de información (paso de parámetros)

Page 8: Cap 1 Introduccion a Los Sistemas Distribuidos

12/02/2014

8

febrero de 2014 Samuel Luján Navarro

Modelos de Interacción de procesos

n Cliente/Servidorn Cliente busca los servicios desde el servidorn Llamada a procedimientos Remotos

n Igual a Igual n Los procesos son igualesn Cada proceso puede enviar y recibir mensajes en la medida de sus

necesidades.n Memoria compartida

n No existe comunicación explícita, simplemente los datos están allí.n El sistema provee consistencia

n Otrosn Pipe (Streams entre los procesos)n Comunicación de grupo

febrero de 2014 Samuel Luján Navarro

Cliente/Servidor

n Ejecución de programas separados en procesos separadosn Clientes y servidoresn Procesos están relacionados, interactúan e intercambian información.n A menudo modelo de 3 capas.

n Basado en la idea de servicion Servidor provee serviciosn Cliente consume esos serviciosn Cliente inicia el diálogo con el servidor, el servidor espera pasivamente.

n Propiedadesn Servidor puede servir a muchos clientesn Cliente no sabe la localización del servidorn Pueden mezclarse diferentes plataformas (idealmente)n Mejora de performance por aumento de servidores (idealmente)

Page 9: Cap 1 Introduccion a Los Sistemas Distribuidos

12/02/2014

9

febrero de 2014 Samuel Luján Navarro

Comunicación en una Red

Cliente

ServidorHTTP

NavegadorGet xyz.html

Principio básico es el envío de mensajes

Contenido de xyz.html

Servidor

Usualmente después de realizar una conexión

febrero de 2014 Samuel Luján Navarro

Cliente/Servidor

n Código en el ClienteBuild messagesend (server, msg)recv (server, reply)

n Código en el ServidorLoop:

RecvReq (client, msg)interpret msgdo the workbuilt replysendReply (client, reply)

Page 10: Cap 1 Introduccion a Los Sistemas Distribuidos

12/02/2014

10

febrero de 2014 Samuel Luján Navarro

Problemas del paso de mensajes

n Diferentes disciplinas que llaman métodos o funcionesn Confusión para el programadorn Dificultad de separar integrar métodos.

n ¿Como codificar información? (parámetros y retornar valores)n enteros (16/32/64 bits)n números de punto flotanten Que hacer con los objetos ó punterosn Cada par de programas usa sus propias convenciones

n ¿Como sabe el cliente donde está localizado el servidor?n Es necesario un servicio de nombres.

febrero de 2014 Samuel Luján Navarro

Más problemas

n Seguridadn A cuales usuarios/máquinas se les permite hacer que?

n Chequeo de tiposn Cuando los parámetros cambian debe mantenerse consistencia.n Problemas de codificación son causados parcialmente por esto

n Escalabiliadn Cuando es servidor está sobrecargado debe ser divididon ¿Como sabe el cliente cual servidor usar?

n Corrección de errores cuando se producen problemas de comunicación.

Page 11: Cap 1 Introduccion a Los Sistemas Distribuidos

12/02/2014

11

febrero de 2014 Samuel Luján Navarro

Modelo de Llamadas a Funciones

n Evolución y desarrollo de los protocolos TCP/IPn No existía nivel intermedio de comunicacionesn Programadores trabajaban con API de bajo niveln Década de los 80s: Universidad de Berkeley desarrolla API de sockets

n Interfaz de Socketsn Conjunto de funciones y estructurasn Programador debe llamar con API proporcionada por Interfaz

febrero de 2014 Samuel Luján Navarro

Sistemas de Interfaces de Sockets

n Universidad de Berkeley (California)n Sistema propio del entorno Unixn Basado en librerías de funcionesn Facilita integración de aplicaciones en arquitectura TCP/IP

n Windows Sockets (Winsock API)n Sistema del entorno Windows de Microsoftn Similar a los sockets de la universidad de Berkeley

n Sockets en Java (Sun Microsystems)n Sistema propio del entorno Java

Page 12: Cap 1 Introduccion a Los Sistemas Distribuidos

12/02/2014

12

febrero de 2014 Samuel Luján Navarro

Modelo Cliente-Servidor Orientado a funciones

Interfaz de sockets

RED

Aplicación de usuario

TCP

IP

UDP

Interfaz de acceso y hardware

febrero de 2014 Samuel Luján Navarro

Llamados a Procedimientos Remotos:RPC

n function = método estático que retorna un valorn procdure = método estatico que no retorna un valorn RPC (Remote Procedure Call) Comunicación inter que se distingue

como una lamada a un procedimiento o función.n Implementación puede usar mensajes, sockets, etc. n Cliente y servidor pueden estar en diferentes proceso y máquinas.n Forma Orientada a objetos algunas veces llamada Invocación a

Métodos Remotos RMIn Ejemplos: Entorno de Computación Distribuida de Open Software

Foundation (OSF DCE) es un estándar para RPC. RPC de Sun sobre Unix usado para sistema de archivos NFS.

Page 13: Cap 1 Introduccion a Los Sistemas Distribuidos

12/02/2014

13

febrero de 2014 Samuel Luján Navarro

Codificación

n Código en el ClienteResult = serverproc (in_params, out_params)

n Código en el Servidorn El servidor podría usar el viejo paradigma de mensajesn o mejor:

Public staatic intserverproc (in_params, put_params)

n Cuando el código del Cliente y Servidor son similares a una función normal llamamos a esto RPC transparente

febrero de 2014 Samuel Luján Navarro

Características de RMI

n Modelo de objetos distribuidosn Objetos: normales y remotos

n Idean Objetos remotos existen en otro Hostn Objetos remotos pueden ser utlizados como un objeto normaln Comportamiento es descrito por la interfazn En entorno se encarga de la invocación remota

n Diferencias entre objetos normales y remotosn Referencias remotas pueden ser libremente distribuidas.n Clientes solamente conocen/usan la interfaz, no la implementaciónn Paso de objetos remotos por referencia, objetos normales por copia.n Manejo de errores más complicado. Invocación misma puede fallar

Page 14: Cap 1 Introduccion a Los Sistemas Distribuidos

12/02/2014

14

febrero de 2014 Samuel Luján Navarro

CORBA

n CORBA (Common Object Request Broker Architecture -arquitectura común de intermediarios en peticiones a objetos)

n OMG (Object Management Group) Conjunto de organizaciones que cooperan en la definición de estándares para la interoperabilidad en entornos heteregéneos.

n Fundado en 1989, en la actualidad lo componen más de 700 empresas y otros organismos.

n OMA (Object Management Architecture) Arquitectura de referencia sobre cual se pueden definir aplicaciones distribuidas sobre un entorno heteregéneo.

n Formalmente esta dividida en una serie de modelos:n Modelo de Objetosn Modelo de Interacciónn ...

febrero de 2014 Samuel Luján Navarro

OMA

n Aplicacines OMA estan compuestas por objetos distribuidos que cooperan entre si

Servicios Facilidades comunes

Intefaces de dominio

Aplicaciones

ORB

Aplicaciones

Objetos distribuidos Sistemas distribuidos

Page 15: Cap 1 Introduccion a Los Sistemas Distribuidos

12/02/2014

15

febrero de 2014 Samuel Luján Navarro

ORB

n ORB (Object Request Broker) Elemento central de la arquitecturan Proporciona las funcionalidades de interconexión entre los

objetos distribuidos n Servicios, facilidades y objetos de aplicación que forman una aplicaciónn Representa un bus de comunicación entre objetos

febrero de 2014 Samuel Luján Navarro

Arquitectura CORBA

Page 16: Cap 1 Introduccion a Los Sistemas Distribuidos

12/02/2014

16

febrero de 2014 Samuel Luján Navarro

Servicios CORBA

n Conjunto de objetos o grupos de objetosn Proporcionan una serie de funcionalidades elementales.n Objetos estan definidos de forma estándar (interfaces IDL

concretos).n Especificaciones se encuentran recogidas en los documentos COSS (Common

Object Services Specifications).

febrero de 2014 Samuel Luján Navarro

CORBA vs RMI

n CORBA permite una mayor heterogeneidad en el desarrollo de aplicaciones (RMI sólo se puede desarrollar con Java).

n CORBA ademas de las funcionalidades de comunicación, proporciona servicios.

n RMI funciona sobre CORBA (IIOP).n RMI es mucho más sencillo y cómodo de usar.n RMI permite el paso de objetos por valor y por referencia.

Page 17: Cap 1 Introduccion a Los Sistemas Distribuidos

12/02/2014

17

febrero de 2014 Samuel Luján Navarro

Web Servicesn Conjunto de protocolos y estándares para intercambiar datos

entre aplicaciones.n Distintas aplicaciones de software.n Lenguajes diferentesn Operan sobe cualquier plataforman Interoperabilidad se consigue por medio de estandares

abiertos

febrero de 2014 Samuel Luján Navarro

Arquitectura de servicios web

n Proveedor de servicios. Ofrece servicios en la web y publica las APIs para proveer acceso a los servicios.

n Registro del servicio. Registra y categoriza los servicios ofrecidos por los proveedores de servicios.

n Solicitador de servicio. Usa el registro del servicio para acceder a los servicios ofrecidos por los proveedores.

Page 18: Cap 1 Introduccion a Los Sistemas Distribuidos

12/02/2014

18

febrero de 2014 Samuel Luján Navarro

Web Services - Estandares empleados

n XML (Extensible Markup Language): Formato estándar para intercambio de datos.

n SOAP (Simple Object Access Protocol) Protocolo sobre el que se establece el intercambio.

n WSDL (Web Services Description Language): Descripción basada en XML de requisitos funcionales para establecer comunicación con servicios Web.

n UDDI (Universal Description, Discovery and Integration): Protocolo para publicar la información de los servicios Web. Permite comprobar qué servicios web están disponibles.

n Otros protocolos: HTTP (Hypertext Transfer Protocol), FTP (File Transfer Protocol), o SMTP (Simple Mail Transfer Protocol).

febrero de 2014 Samuel Luján Navarro

Web Services vs CORBA

CORBAn framework de componentes

orientados a objetosn Estrecha conexión C/S.

comparten la misma interfazn Ambos deben ejecutar un ORBn interacción C/S se realiza

directamente, sin necesidad de intermediación (excepto el ORB)

n Cliente obtiene identificador de objeto CORBA e invoca un método. Resultado puede ser otro objeto CORBA al que se pueden aplicar otros métodos.

Web Servicesn Centrado en torno a

paradigma de paso de mensajes.

n Todo está disociado.n Cliente envía un mensaje y

recibe un mensaje. n Respuesta no da acceso

inmediato a siguiente paso.

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

Page 19: Cap 1 Introduccion a Los Sistemas Distribuidos

12/02/2014

19

febrero de 2014 Samuel Luján Navarro

Cloud Computing

febrero de 2014 Samuel Luján Navarro

Computación 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 estándares de redes.

El uso de la palabra "nube" hace referencia a los dos conceptos esenciales:n Abstracción:

n Cloud computing abstrae detalles de implementación del sistema de usuarios y desarrolladores.

n Aplicaciones se ejecutan en sistemas físicos que no están especificados.n Datos se almacenan en lugares que son desconocidosn Administración de sistemas como servicio outsourcing.n Acceso de los usuarios es ubicuo.

n Virtualización: n Cloud computing virtualiza los sistemas ofreciendo y compartiendo recursos. n Sistemas de almacenamiento se proveen por demanda desde una infraestructura

centralizada.n Costos se fijan de acuerdo al uso de los recursosn Recursos se pueden extender con agilidad.

Page 20: Cap 1 Introduccion a Los Sistemas Distribuidos

12/02/2014

20

febrero de 2014 Samuel Luján Navarro

Modelos de servicio de Cloud Computing

Tres tipos de servicio universalmente aceptados:

IaaSInfrastructure as a Servicen Máquinas virtualesn Almacenamiento virtualn Infraestructura virtualn Otros activos de hardware.

PaaSPlatform as a Servicen Máquinas virtualesn Sistemas operativosn Aplicacionesn Serviciosn Frameworks de desarrollon Transaccionesn Estructuras de control.

IaaSSoftware as a Service: n Entornos operativos

completosn Aplicacionesn Gestiónn Interfaz de usuario.

febrero de 2014 Samuel Luján Navarro

Ejemplos de proveedores de *aaS

Page 21: Cap 1 Introduccion a Los Sistemas Distribuidos

12/02/2014

21

febrero de 2014 Samuel Luján Navarro

fin