Title: Modelos y Arquitecturas Distribuidas
1Modelos y Arquitecturas Distribuidas
Introducción
2Conceptos de Sistemas Distribuidos
- Objetivo Necesidad de compartir Información
entre diferentes Organizaciones integrando
Hardware (diferentes arquitecturas) y Software
(diferentes Sistemas Operativos y Lenguajes de
Programación) con el propósito de resolver
problemas en común. - Arquitectura Cliente-Servidor.
- Transparencia. Sistema funcione de forma similar
en todos los puntos de la red, independientemente
de la ubicación del usuario. - Eficiencia.
- Integración de Aplicaciones.
- Computación Distribuida.
- Compartir recursos.
- Distribución de carga.
- Ejecución de Aplicaciones en ambientes más
adecuados. - Fiabilidad.
- Comunicación.
- Costo.
- Disponibilidad.
3Sistemas Distribuidos Objetivos de Diseño
- Heterogéneo Redes, máquinas, sistemas
operativos, lenguajes de programación e
implementaciones. - Abierto Especificación, documentación y
publicación de los interfaces de los componentes
clave. - Seguro Autenticación, control de acceso,
confidencialidad, ... - Escalable Facilidad para incrementar el número
de componentes y recursos. - Controlable en fallos Detección, tolerancia,
recuperación y redundancia. - Concurrente Compartición de recursos entre
usuarios. - Transparente Componentes integrados .
4Evolución de la Arquitectura de los Sistemas
Informáticos
C/S 2 capas
C/S 3 capas
Sistemas Monolíticos
Presentación
Presentación
Negocio
Presentación
Negocio
Negocio
Negocio
Datos
Datos
Datos
BD
5Niveles de Servicio Software y Hardware
Aplicaciones y Servicios
MiddleWare
Servicios Específicos CORBA, RMI, DCOM, ...
Sistema Operativo
Plataforma
Hardware Computador y red
6Objetos-Distribuidos
- Características
- Uso de un Middleware Nivel de abstracción para
la comunicación de los objetos distribuidos. Este
oculta - Localización de objetos.
- Protocolos de comunicación.
- Hardware de computadora.
- Sistemas Operativos.
- Lenguaje de Programación.
- Modelo de objetos distribuidos Describe los
aspectos del paradigma de objetos que es aceptado
por la tecnología Herencia, Interfaces,
Excepciones, Polimorfismo, ... - Recolección de basura local y distribuida
(Garbage Collection) Determina los objetos que
no están siendo usados para a liberar recursos
como la memoria.
7El Modelo Cliente - Servidor
- Arquitectura de sistema distribuido
- - Clientes que dan acceso a usuarios a los
servicios. - - Servidores contienen información, servicios,
etc. - Cliente y Servidor son roles en una aplicación.
- - Una máquina puede ser cliente en un servicio y
servidor en otro. - Muy extendido en programación distribuida.
8Arquitecturas de Componentes Cliente/Servidor
- Modelos Clientes Servidor Orientados a
- Funciones Sockets.
- Implementación costosa.
- Orientado a funciones.
- Remote Procedure Calls (RPC).
- No soporta objetos explícitamente.
- Objetos (Componentes Distribuidos)
- Microsoft Distributed Component Object Model
(DCOM) - Menos maduro, menos portable y además
propietario. - Java Remote Method Invocation (RMI)
- Solo para JAVA.
- Common Object Request Broker Architecture (CORBA)
de la OMG. - Multiplataforma, multilenguaje, ...
- JINI, Enterprise JavaBeans.
- Programación Orientada a Objetos.
9Sockets y Acceso a Servicios
10Programación con Sockets
11RPC Llamada a Procedimiento Tradicional
12RPC Programa Distribuido
13RPC Modelo Procedural en Sistemas Distribuidos
14RPC y el Modelo OSI
15Llamada Remota a Procedimiento
16Programación en RPC
Fuente IDL
Compilador IDL
Stub Servidor
Cabecera
Stub Cliente
Fuente Cliente
Fuente Servidor
Compilador
Compilador
Run Time Library RTL
Run Time Library RTL
Objeto Cliente y Stub
Objeto Servidor y Stub
Linker
Linker
Ejecutable
Ejecutable
17Computación Distribuida Orientada a Objetos
Ventajas
18Modelo Cliente Servidor con Objetos Distribuidos
19Arquitectura de Java RMI
Capa de Aplicación
Objeto Servidor
Objeto Cliente
Capa de Representantes Proxy
Stub
Skeleton
Capa de RMI
Referencia Remota
Referencia Remota
Capa de Protocolo de Comunicación (TCP/IP)
Transporte
Transporte
Protocolos de Bajo Nivel
20Procesamiento de una Llamada
21Comunicación entre el Cliente y el Servidor
Objeto Servidor
Objeto Cliente
Stub
Skeleton
Solicitud Cliente
Referencia Remota
Respuesta Servidor
Referencia Remota
Transporte
Transporte
Protocolos de Bajo Nivel
22RMI Mecanismo de Comunicaciónentre Stub y
Skeleton
23CORBA (Common ObjectRequest Broker Architecture)
- CORBA Arquitectura Común para la Mediación de
Solicitudes entre Objetos) Comunicación entre
objetos remotos heterogéneos, independientemente
del lenguaje de implementación de los objetos
clientes y servidores, de la ubicación de los
servicios, del sistema operativo, etc.. - Respuesta del OMG (Object Management Group) en
1990 a las necesidades actuales de
interoperabilidad entre productos hardware y
software. Agrupa a mas de 700 empresas. - Estándar de arquitectura abierta para la
especificación del aspecto y la interoperabilidad
de componentes y objetos. Asimismo, define un
extenso conjunto de servicios distribuidos.
24Arquitectura Referencial de OMG
Interfaces De Aplicación
Interfaces De Dominios
Facilidades Comunes
CORBA Object Request Broker (MiddleWare)
Servicios de Objectos
25La Arquitectura CORBA
Objeto Cliente
Objeto Servidor
DII Dynamic Invocation
IDL Stub
ORB Interface
IDL Skeleton
DSI Dynamic Skeleton
Object Adapter (OA/POA)
ORB (IIOP)
26IDL (Interface Definition Language)
- CORBA incorpora un lenguaje de definición de
interfaces (IDL) - Independiente del lenguaje de implementación.
- Mapea hacia los lenguajes de programación
habituales. - Los ORBs llevan incorporados su traductor de IDL
a los lenguajes de implementación soportados.
Ada
Delphi
C
C
Java
SmallTalk
IDL
Object Request Broker (ORB)
27OMA
- Object Management Architecture.
- Arquitectura de referencia sobre cual se pueden
definir aplicaciones distribuidas sobre un
entorno heteregéneo. CORBA es la tecnología
asociada a esta arquitectura genérica. - Formalmente está dividida en una serie de
modelos - Modelo de Objetos.
- Modelo de Interacción.
- ...
28Arquitectura de DCOM (Distributed Component
Object Model) de Microsoft
Server
COM class
Client
Object COM Proxy
Library
Implementation
Object COM Stub
Library
Interface Stub
Interface Stub
Marshaling/ Demarshaling
SCM
SCM
Service Control Manager
Object eXporter IDentifier
Registry
Registry
OXID Object
Microsoft RPC
Oxid Resolver
Oxid Resolver
29Presentación en Tres Niveles
Basic Programming Architecture
Remoting Architecture
DCOM Architecture
30Remoting Architecture
Service control manager
COM library
Component server
Client
Class factory
Registry
Proxy
Stub
RPC channel
Component
Interface proxy
Interface stub