Post on 18-Jan-2016
description
transcript
12/02/2014
1
Samuel Luján NavarroEscuela Militar de Ingenieria
slujan7e@yahoo.es
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
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).
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”
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.
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.
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.
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)
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)
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)
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.
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
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.
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
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
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
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.
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.
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.
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.
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
12/02/2014
21
febrero de 2014 Samuel Luján Navarro
fin