SISTEMAS DISTRIBUIDOS
Unidad 1:
Middleware
Los estudiantes explican el tema anterior:
¿Preguntas?
Arquitecturas de Sistemas Distribuidos
Enfoques de Arquitecturas de Sistemas Distribuidos
Punto de vista de Software o lógico
▪ Basados en capas
▪ Basados en objetos
▪ Centrados en datos
▪ Basados en eventos
Punto de vista de Hardware
▪ Centralizadas
▪ Descentralizadas
▪ Hibridos
Logro de la Sesión
Al finalizar la sesión, el estudiante, identifica las
principales arquitecturas de un sistema distribuido.
Prerequisitos
Conceptos básicos Conocimientos de
Muchas Ganas!
de redes Tecnologías Web
Contenido
1 2 3 4
Definición Características Ejemplos Caso Práctico
Actividad de lluvia de ideas
• Cuando Ud. Asiste a un restaurante a cenar, ¿Qué función cumple el mozo?
• Interacción procedimental entre un comensal y un camarero
• Interacción basada en mensajes entre un camarero y el personal de
cocina
• Explique con sus propias palabras: ¿Qué es escalabilidad?
• ¿Cómo se clasifican las arquitecturas de los Sistemas Distribuidos?
• Explique con sus propias palabras: ¿Qué es MiddleWare?
• Mencione un ejemplo de MiddleWare
Un sistema distribuido está constituido principalmente por los
siguientes estratos:
Plataforma La plataforma para sistemas y aplicaciones
distribuidas se compone de las capas de hardware y
software de nivel más bajo.
Middleware: Es un software que tiene como función
principal enmascarar el sistema distribuido para
proporcionar un modelo de programación a las
aplicaciones.
✓ CORBA
✓ Distintos sistemas operativos
✓ Distintos protocolos de comunicación
✓ Distintos lenguajes de programación
✓ Distinto hardware
Aplicaciones y servicios
Definición de middleware
Es un software que asiste a una aplicación para interactuar o comunicarse con otras
aplicaciones, software, redes, hardware y/o sistemas operativos.
Definición de middleware
Es un software que puede incrementar
significativamente la reusabilidad.
Permite concentrarse en asuntos
propios de la aplicación y olvidarse de
problemas comunes
Definición de middleware
El “Middleware” es la capa de software que se
ubica entre el sistema operativo y las aplicaciones
de los usuarios.
El middleware funciona como una capa de
abstracción de software distribuida que se sitúa
entre las capas de aplicaciones y las capas
inferiores (sistema operativo y red).
MiddleWare
Video
Funciones del middleware
✓ Ocultar la distribución: middleware maneja el hecho de que una aplicación esté
compuesta de muchas partes interconectadas ejecutándose en ubicaciones distribuidas.
✓ Ocultar la heterogeneidad: middleware oculta o hace transparente al usuario diversas
plataformas de sistemas operativos, protocolos de comunicación y dispositivos hardware.
✓ Proveer interfaces uniformes y estándares de alto nivel: tanto a los desarrolladores
como a los integradores de aplicaciones, de tal manera que las aplicaciones sean
fácilmente desarrolladas, reusadas, transportadas y puedan interoperar correctamente.
✓ Suministrar un conjunto de servicios comunes: para realizar varias actividades de
propósito general con el fín de evitar duplicar esfuerzos y facilitar la colaboración entre
aplicaciones.
Tipos de middleware
No solo hay un tipo de middleware, sino que existen numerosas formas de gestión de
datos en la nube. Algunos se concentran en una determinada variedad de conexión,
otros en funciones específicas de programas, componente operativo y las aplicaciones.
A continuación, te enumeramos los tipos más conocidos y utilizados por los
desarrolladores web.
Componentes básicos del Middleware
Los mecanismos básicos del Middleware, que deberá encontrar en todos los
modelos, son:
✓ API’s de alto nivel para la petición de forma transparente de los servicios.
✓ Un mecanismo de implementación e integración de los servicios construidos en el
Middleware.
✓ Herramientas para referenciar, catalogar, gestionar y localizar los recursos en la
plataforma.
✓ Facilidades de gestión distribuida.
✓ La plataforma del transportista.
✓ La interface con las API’s de bajo nivel del sistema.
✓ Si estamos en un modelo de objetos distribuidos, los recursos de gestión de estos
objetos OO.
Servicios middleware definidos en un modelo de componentes
El middleware implementa los servicios de componentes y ofrece interfaces a dichos
servicios. Para usar los servicios ofrecidos por la infraestructura de un modelo de
componentes, se puede considerar a los componentes como implementados en un
“contenedor”.
Para componentes que se
implementen como unidades de
programa y no como servicios
externos, el modelo de componentes
establece los servicios a ofrecer por
parte del middleware que apoye los
componentes en ejecución.
Tipos de soporte del Middleware
✓ Soporte de interacción, en el que el middleware coordina las interacciones entre
diferentes componentes del sistema. El middleware proporciona transparencia de
ubicación en cuanto a que no es necesario que los componentes conozcan las
ubicaciones físicas de los otros componentes. También puede soportar conversión
de parámetros si se usan diferentes lenguajes de programación para la
implementación de componentes, detección de eventos y comunicación, etcétera.
✓ La provisión de servicios comunes, en la que el middleware proporciona
implementaciones de reutilización de servicios que pueden requerir varios
componentes en el sistema distribuido. Al usar dichos servicios comunes, los
componentes pueden interoperar fácilmente y ofrecer a los usuarios servicios en
una forma consistente.
Tipos de middleware
✓ Interfaz de programación (API)
✓ Middleware centrado en el contenido
✓ Servidor de aplicaciones
✓ Motores de juegos
✓ Middleware orientado a mensajes (MOM)
✓ Agente de solicitudes de objetos (ORB)
✓ Portales
✓ Llamada de procedimiento remoto (RPC)
✓ Integración de datos
✓ Middleware de dispositivos
✓ Middleware integrado
✓ Middleware robótico
Ejemplos
✓ No todos los Middleware son iguales. e.g.: CORBAy Sockets TCP/IP.
✓ Mientras que los Sockets no ofrecen control de tipos ni homogeneización de
arquitecturas,
✓ CORBA, DCOM, etc., ofrecen estas posibilidades
MIDDLEWARE: SOCKETS
✓ Constituye la interfaz de programación
de la capa de transporte.
✓ Es un mecanismo de comunicación
bidireccional
✓ El más ampliamente usado
✓ Nacieron con la familia de
protocolos TCP/IP
✓ Existe prácticamente en cualquier plataforma
de computación
MIDDLEWARE: RPC
Llamada de procedimiento remoto
✓ RPC está basado en C, y como tal tiene una
semántica de programación estructurada
✓ Con RPC puede simplemente llamar a funciones
remotas exportadas a un servidor.
✓ RPC no se ocupa de objetos. Por el contrario, llama
a subrutinas específicas que ya están establecidas.
MIDDLEWARE: RPC
✓ Con RPC, se obtiene una llamada de
procedimiento que se ve más o menos
como una llamada local.
✓ RPC maneja las complejidades
involucradas al pasar la llamada de la
computadora local a la remota.
MIDDLEWARE: RMI
✓ RMI utiliza un paradigma orientado a objetos,
donde el usuario tiene que conocer el objeto yel invocar un método de manera remota
método del objeto que tiene que invocar.
✓ RMI hace exactamente lo mismo, pero RMI pasa
una referencia al objeto y al método quese está
llamando.
✓ RMI es un enfoque mejor en comparación
con RPC, especialmente con programas
más grandes, ya que proporciona un código
de producto de limpieza que es más fácil de
identificar si algo sale mal.
MIDDLEWARE: RMI
RMI Ejemplos:
Java RMI, CORBA, Microsoft
DCOM/COM +, SOAP (Simple
ObjectAccess Protocolo)
MIDDLEWARE: CORBA
Common Object Request Broker Architecture
(CORBA) es un estándar definido por Object
Management Group (OMG).
Permite que diversos componentes de software
escritos en múltiples lenguajes de programación y
que corren en diferentes computadoras, puedan
trabajar juntos.
Es decir, facilita el desarrollo de aplicaciones
distribuidas en entornos heterogéneos.
MIDDLEWARE: DCOM
DCOM permite llamadas a los objetos remotos
•Soporta interfaces múltiples escritas en un lenguaje IDL
similar a C++
Ventajas:
•DCOM permite el uso de varios lenguajes de programación
•DCOM soporta recolección distribuida de basura
Inconvenientes:
•Muy ligado a los sistemas operativos de Microsoft, aunque existen
implementaciones para Unix, y Apple Macintosh
JMS: middleware de mensajeria
Productor Consumidor
Suscriptor
Publicador Suscriptor
MIDDLEWARE: Sistemas Distribuidos
✓ Componente de software reutilizable y distribuido que ofrece
una funcionalidad concreta, independiente tanto del lenguaje
de programación en que está implementado como de la
plataforma de ejecución.
✓ Aplicaciones auto-contenidas que pueden ser descritas,
publicadas, localizadas e invocadas sobre la Internet (o
cualquier otra red)
MiddleWare
Video
https://www.youtube.com/watch?v=fkllEd8rc8I
https://www.youtube.com/watch?v=knlVvMjVnF0
https://youtu.be/3sYpKhF6B0k
Trabajo Grupal
1.- Elaborar un ejemplo en algún LP(Lenguaje de Programación) sobre:
- Sockets “cuando el servidor envía mensaje a los clientes” y “cuando un
cliente envía mensaje al servidor”
- Pilas
- Colas
- RPC “Llamadas a procedimientos remotos”
- RMI “Invocación a métodos remotos”
2.- Rellenar el siguiente cuadro:
Resumen