2/05/2020
SISTEMAS DISTRIBUIDOS
Sesión 3
Middleware
Ing. Informático Iván Robles Fernández
MG-MSc-SMC-PMP-CIP N°177516
Ivan [Link] 202O
Usted es libre de copiar, distribuir y comunicar públicamente la obra y de hacer obras derivadas bajo las condiciones de la licencia Attribution-Share alike de Creative Commons.
Puede consultar el texto completo de la licencia en [Link]
2/05/2020 Sistemas Distribuidos 1
Logro de la Sesión
Al finalizar la sesión, el estudiante, define, identifica y realiza aplicaciones
de middlewares en entornos distribuidos.
2/05/2020 Sistemas Distribuidos 2
1
2/05/2020
Dudas de la clase anterior
2/05/2020 Sistemas Distribuidos 3
Conocimientos Previos
2/05/2020 Sistemas Distribuidos 4
2
2/05/2020
Utilidad
2/05/2020 Sistemas Distribuidos 5
2/05/2020 Sistemas Distribuidos 6
3
2/05/2020
Prerequisitos
Conceptos básicos de Conocimientos de Muchas Ganas!
redes Tecnologías Web
2/05/2020 Sistemas Distribuidos 7
Contenido
1 2 3 4 5
Definición Características Ejemplos Caso Conclusiones
Práctico
2/05/2020 Sistemas Distribuidos 8
4
2/05/2020
Contenido
1 2 3 4 5
Definición Características Ejemplos Caso Conclusiones
Práctico
2/05/2020 Sistemas Distribuidos 9
Definición Sistemas Distribuidos
Definición
• Es un software que asiste a una aplicación para interactuar o
comunicarse con otras aplicaciones, software, redes, hardware
y/o sistemas operativos.
• Ocultan la heterogeneidad, abstrae la complejidad
subyacente y proveen de un modelo de programación
conveniente para los desarrolladores de aplicaciones.
2/05/2020 Sistemas Distribuidos 10
5
2/05/2020
Definición Sistemas Distribuidos
Definición
• La organización IETF (Internet Engineering Task Force) en mayo de 1997
lo definió como sigue: – “Un Middleware puede ser visto como un
conjunto de servicios y funciones reutilizables, expandibles, que son
comúnmente utilizadas por muchas aplicaciones para funcionar bien
dentro de un ambiente interconectado”.
2/05/2020 Sistemas Distribuidos 11
Definición Sistemas Distribuidos
Definición
• Es un software que puede incrementar significativamente la
reusabilidad mediante soluciones utilizables rápidamente y basadas en
estándares aplicables a problemas y tareas comunes en
programación. Permite concentrarse en asuntos propios de la aplicación
y olvidarse de problemas comunes, estructurales o no, ya resueltos
previamente de forma elegante y satisfactoria..
2/05/2020 Sistemas Distribuidos 12
6
2/05/2020
Contenido
1 2 3 4 5
Definición Características Ejemplos Caso Conclusiones
Práctico
2/05/2020 Sistemas Distribuidos 13
Definición Sistemas Distribuidos
• Resumen de características
• –Independiza el servicio de su implantación, del sistema operativo y de los
protocolos de comunicaciones.
• –Permite la convivencia de distintos servicios en un mismo sistema.
• –Permite la transparencia en el sistema.
•En general pueden ser vistos como
–Abstracción de programación
2/05/2020 Sistemas Distribuidos 14
7
2/05/2020
Contenido
1 2 3 4 5
Definición Características Ejemplos Abstracción Conclusiones
2/05/2020 Sistemas Distribuidos 15
Arquitectura SD -Software Sistemas Distribuidos
• Ejemplos de middleware para dominios específicos incluyen:
• ODBC/JDBC, para bases de datos,
• Lotus para groupware,
• HTTP y SSL para la Web,
• CORBA, DCOM y JAVA RMI para objetos distribuidos.
2/05/2020 Sistemas Distribuidos 16
8
2/05/2020
Arquitectura SD -Software Sistemas Distribuidos
Ejemplos
2/05/2020 Sistemas Distribuidos 17
Arquitectura SD -Software Sistemas Distribuidos
Ejemplos
Type 3 driver – Network-Protocol Type 4 driver – Database-Protocol driver/Thin
driver (middleware driver) Driver(Pure Java driver)
2/05/2020 Sistemas Distribuidos 18
9
2/05/2020
Arquitectura SD -Software Sistemas Distribuidos
Ejemplos
Todos los programas Java que se conectan a una base de datos vía JDBC, utilizan un driver o controlador de
bases de datos. Es el intermediario entre la capa de negocio y la capa de base de datos y así mismo funge como
el “traductor” de las sentencias Java a sentencias SQL propias del manejador de bases de datos.
2/05/2020 Sistemas Distribuidos 19
Arquitectura SD -Software Sistemas Distribuidos
Ejemplos
• No todos los Middleware son iguales. e.g. : CORBA y Sockets
TCP/IP.
• Mientras que los Sockets no ofrecen control de tipos ni
homogeneización de arquitecturas,
• CORBA, DCOM, etc., ofrecen estas posibilidades
2/05/2020 Sistemas Distribuidos 20
10
2/05/2020
Contenido
1 2 3 4 5
Definición Características Ejemplos Abstracción Conclusiones
2/05/2020 Sistemas Distribuidos 21
Arquitectura SD -Hardware Sistemas Distribuidos
2/05/2020 Sistemas Distribuidos 22
11
2/05/2020
Arquitectura SD -Hardware Sistemas Distribuidos
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
2/05/2020 Sistemas Distribuidos 23
Arquitectura SD -Hardware Sistemas Distribuidos
MIDDLEWARE:RPC
• 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.
2/05/2020 Sistemas Distribuidos 24
12
2/05/2020
Arquitectura SD -Hardware Sistemas Distribuidos
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.
2/05/2020 Sistemas Distribuidos 25
Arquitectura SD -Hardware Sistemas Distribuidos
MIDDLEWARE:RMI
• RMI utiliza un paradigma orientado a objetos,
donde el usuario tiene que conocer el objeto y
el método del objeto que tiene que invocar.
• RMI hace exactamente lo mismo, pero RMI
pasa una referencia al objeto y al método que
se 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.
2/05/2020 Sistemas Distribuidos 26
13
2/05/2020
Arquitectura SD -Hardware Sistemas Distribuidos
MIDDLEWARE:RMI
• RMI Ejemplos :
• Java RMI, CORBA, Microsoft DCOM/COM +,
SOAP (Simple Object Access Protocolo)
2/05/2020 Sistemas Distribuidos 27
Arquitectura SD -Hardware Sistemas Distribuidos
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.
2/05/2020 Sistemas Distribuidos 28
14
2/05/2020
Arquitectura SD -Hardware Sistemas Distribuidos
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
2/05/2020 Sistemas Distribuidos 29
Arquitectura SD -Hardware Sistemas Distribuidos
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)
2/05/2020 Sistemas Distribuidos 30
15
2/05/2020
Contenido
1 2 3 4 5
Definición Características Ejemplos Abstracción Conclusiones
2/05/2020 Sistemas Distribuidos 31
Arquitectura SD -Hardware Sistemas Distribuidos
2/05/2020 Sistemas Distribuidos 32
16
2/05/2020
MUCHAS GRACIAS!
2/05/2020 Sistemas Distribuidos 33
17