03 MOM y Servidores Aplicaciones

48
Arquitectura de Software Clase 3: Middleware orientado a mensajes y servidores de aplicaciones 1

Transcript of 03 MOM y Servidores Aplicaciones

Page 1: 03 MOM y Servidores Aplicaciones

Arquitectura de Software

Clase 3:

Middleware orientado a mensajes y servidores de aplicaciones

1

Page 2: 03 MOM y Servidores Aplicaciones

Objetivos

• Entender los middleware orientados a mensajes

• Conocer las tecnologías relacionadas con los servidores de aplicaciones

2

Page 3: 03 MOM y Servidores Aplicaciones

Temas

1. Middleware orientado a mensajes

2. Servidores de Aplicaciones

3. Tecnologías relacionadas:

Java EE

.NET

PHP

3

Page 4: 03 MOM y Servidores Aplicaciones

Introducción

Mensajes

• Es en el sentido más general, es el objeto de la comunicación. Está definido como la información que el emisor envía al receptor a través de un canal de comunicación determinado

4

Page 5: 03 MOM y Servidores Aplicaciones

Introducción

Colas / Queue

• Elemento que presta servicios de transporte a diversas entidades tales como datos, objetos o eventos son almacenados y mantenidos para ser procesados posteriormente. En estos contextos, la cola realiza la función de un buffer

5

Page 6: 03 MOM y Servidores Aplicaciones

Middleware orientado a mensajes (MOM) • Permite a las aplicaciones distribuidas comunicarse

mediante el envío de mensajes

• Se encarga de que todos los mensajes lleguen siempre a su destino

• La comunicación entre emisor y receptor es asíncrona, y en ningún momento están directamente conectados. El emisor envía el mensaje y no se queda a la espera de recibir confirmación de recepción de su mensaje, sino

que sigue trabajando normalmente.

6

Page 7: 03 MOM y Servidores Aplicaciones

Middleware orientado a mensajes

Elementos

7

Page 8: 03 MOM y Servidores Aplicaciones

Middleware orientado a mensajes

Elementos

• Productor

Quien envía o genera el mensaje

• Consumidor

Quien lee o utiliza el mensaje

• Destino

Entidad donde los mensajes son dirigidos y son almacenados dentro del middleware. Pueden ser colas o tópicos, dependiente del modelo implementado.

8

Page 9: 03 MOM y Servidores Aplicaciones

MOM - Modelos de mensajería

Punto a Punto (P2P)

• Los mensajes van dirigidos a un único receptor.

• El mensaje queda almacenado en una cola hasta que el receptor quiera o pueda recogerlo.

• Ejemplo: una persona solicita unos determinados datos y la aplicación de gestión se encarga de obtenerlos y de enviarlos exclusivamente a la persona que los solicitó.

9

Page 10: 03 MOM y Servidores Aplicaciones

Publicación / suscripción

• En estos sistemas hay dos actores: los emisores de información y los suscriptores o consumidores de dicha información.

• Los consumidores pueden suscribirse a un determinado tipo de mensajes que tengan relación con un tema concreto o con información que cumpla un patrón determinado.

• Los emisores envían mensajes al MOM, y éste se encarga de hacérselo llegar a los suscriptores correspondientes.

10

MOM - Modelos de mensajería

Page 11: 03 MOM y Servidores Aplicaciones

Publicación / suscripción

• Este modelo podría utilizarse en un sistema de monitorización de una red: una aplicación (emisor) recoge datos de tráfico, ocupación de puertos, etc. y envía esos datos al administrador o administradores de la red (suscriptor) de forma automática.

11

MOM - Modelos de mensajería

Page 12: 03 MOM y Servidores Aplicaciones

MOM - Tipos de Colas

• Colas FIFO (First In First Out)

– Todos los mensajes tienen el mismo nivel de prioridad

– Los mensajes son tomados en el orden que han llegado

• Colas por prioridad

– Los mensajes son guardados en colas FIFO según su prioridad

12

Page 13: 03 MOM y Servidores Aplicaciones

MOM - Características

• Comunicación asíncrona entre aplicaciones para compartir información. No obstante, también hay soluciones que trabajan con conexiones síncronas o pseudo-síncronas

• Los mensajes son almacenados en colas hasta que el receptor está listo para recoger el mensaje

• Garantía de que los mensajes llegarán siempre a su destino

13

Page 14: 03 MOM y Servidores Aplicaciones

MOM - Características

• Las aplicaciones están aisladas de la complejidad de las redes y del hardware gracias al MOM. Por ello, no sufrirán ninguna modificación aunque cambie parte de la red o del hardware utilizado

• La comunicación entre aplicaciones es no bloqueante, es decir, que las aplicaciones que realizan una petición no detienen su ejecución mientras esperan el mensaje de respuesta.

14

Page 15: 03 MOM y Servidores Aplicaciones

MOM - Características

• Las colas utilizadas pueden ser permanentes o dinámicas. Las primeras almacenan la información en disco, mientras que las segundas guardan los datos de forma temporal en la memoria volátil.

15

Page 16: 03 MOM y Servidores Aplicaciones

MOM - Características

• Las aplicaciones que se comunican entre sí, no están conectadas directamente y eso facilita la programación y permite crear nuevas funcionalidades.

• El emisor no necesita conocer la ubicación física del receptor y viceversa.

• Muchas soluciones comerciales MOM proporcionan también encriptación de datos extremo a extremo para incrementar la seguridad.

16

Page 17: 03 MOM y Servidores Aplicaciones

Mensajes con ACK

• ACK (acknowledgement): acuse de recibo

• Es un mensaje que el destino de la comunicación envía al origen de ésta para confirmar la recepción de un mensaje:

• Se definen diferentes ACK con información más compleja como peticiones de reenvió de ciertas tramas, información sobre incidencias en la red, etc.

17

Page 18: 03 MOM y Servidores Aplicaciones

MOM: AMQP

Advanced Message Queuing Protocol

• Es un estándar abierto para el paso de mensajes entre aplicaciones empresariales que define:

– Encolamiento

– Enrutamiento (tanto punto-a-punto como publicación-subscripción)

– Confiabilidad

– Seguridad

• Estipula el comportamiento tanto del servidor como del cliente, hasta el punto de que las implementaciones de diferentes proveedores sean verdaderamente interoperables, de la misma manera que los protocolos SMTP, HTTP, FTP

18

Page 19: 03 MOM y Servidores Aplicaciones

MOM - Productos

• JMS (Java Message Service)

• MQ Series (ahora WebSphere MQ)

• Apache Qpid

• OpenAMQP

• MSMQ (Microsoft)

• SonicMQ

19

Page 20: 03 MOM y Servidores Aplicaciones

Servidor de Aplicaciones

• Un servidor de aplicaciones es una plataforma de software que proporciona un enfoque generalizado para la creación de una aplicación, sin importar el contenido funcional de la aplicación

• El servidor se dedica a la ejecución eficaz de los procedimientos (programas, rutinas, configuraciones) para soportar las aplicaciones desplegadas

• Los principales beneficios de la utilización de los servidores de aplicación son la centralización y la disminución de la complejidad en el desarrollo de aplicaciones.

20

Page 21: 03 MOM y Servidores Aplicaciones

Servidor de Aplicaciones

• Facilita la implementación de los sistemas distribuidos. Un sistema distribuido en oposición a un sistema monolítico, permite mejorar tres aspectos fundamentales en una aplicación:

– La alta disponibilidad

– Escalabilidad

– Mantenimiento

• Incluyen soporte de conectividad que les permite intercomunicarse con variados servicios, para efectos de confiabilidad, seguridad, no-repudio, etc.

21

Page 22: 03 MOM y Servidores Aplicaciones

Servidor de Aplicaciones

Características

• Nació como la evolución natural de los servidores web

• Representa el servidor del medio en el tradicional esquema de 3 niveles (multipropósito)

• Generalmente gestionan la mayor parte (o totalidad) de las funciones de lógica de negocio y de acceso a datos de la aplicación

22

Page 23: 03 MOM y Servidores Aplicaciones

Servidor de Aplicaciones

Características

• Brindan a los desarrolladores una Interfaz de Programación de aplicaciones (API), de tal manera que no tengan que preocuparse del sistema operativo o por la cantidad de interfaces en una aplicación web moderna

• Los servidores de aplicación brindan también soporte a una gran variedad de estándares tales como: HTTP, XML, IIOP, JDBC, SSL, etc. que les permiten su funcionamiento en ambientes web y la conexión a una gran variedad de fuentes de datos, sistemas y dispositivos.

• Implementa soporte para colas

y pool de conexiones

23

Page 24: 03 MOM y Servidores Aplicaciones

Servidor de Aplicaciones

Pool de conexiones

• Está demostrando que el mayor tiempo de una interacción son las conexiones a otros sistemas

• Un pool de conexiones es un conjunto limitado de conexiones hacia un sistema

24

Page 25: 03 MOM y Servidores Aplicaciones

Servidor de Aplicaciones

Pool de conexiones

• Los servidores de aplicaciones implementan pools de diferentes tipos

• Los clientes van solicitando las conexiones para realizar consultas o actualizaciones, y se van asignando.

• A medida que las solicitudes van finalizando, las conexiones son devueltas al pool para que sean reutilizadas

25

Page 26: 03 MOM y Servidores Aplicaciones

Servidor de Aplicaciones Plataformas tecnológicas

• Principales plataformas tecnológicas han marcado el desarrollo de los servidores de aplicaciones:

• JAVA

Iniciado por Sun Microsystems, actualmente continua bajo el liderazgo de Oracle. Cuenta con el apoyo de la JCP y Apache Software Foundation

• .NET

Plataforma de aplicaciones de Microsoft

• PHP

26

Page 27: 03 MOM y Servidores Aplicaciones

Servidores de Aplicaciones Java

Plataforma Java

• Java Platform, Enterprise Edition o Java EE (antes J2EE) define el conjunto básico de principios activos y características de los servidores de aplicaciones Java

• Los módulos web incluyen Servlets y Java Server Pages

• Enterprise JavaBeans (EJB) se utilizan para gestionar los componentes de negocio con soporte para transacciones y acceso a datos

• Incorpora mensajería con JMS

• Soporte para Web Services a través de JAX-WS

• Otros servicios como JNDI, JAAS, JMX, Mail, etc.

27

Page 28: 03 MOM y Servidores Aplicaciones

Servidores de Aplicaciones Java

Plataforma Java EE

28

Page 29: 03 MOM y Servidores Aplicaciones

Servidores de Aplicaciones Java

Arquitectura general

29

Page 30: 03 MOM y Servidores Aplicaciones

Servidores de Aplicaciones Java

• Han sufrido varios cambios en los últimos años, producto de la incorporación de patrones de diseño.

• Entre los cambios mas importantes están:

– La incorporación de muchas librearías Enterprise en la versión Standard (desde JDK 1.4 hasta el JDK 1.6)

– El paso de los EJB 2.1 a 3.0, tuvo la inclusión de:

• POJOs

• AOP

• Inyección de dependencias

– Librerías originadas por la competencia de proyectos open source tipo: Struts, Spring, etc.

30

Page 31: 03 MOM y Servidores Aplicaciones

Servidores de Aplicaciones Java

Despliegue de aplicaciones con la versión EJB 2.1

31

Page 32: 03 MOM y Servidores Aplicaciones

Servidores de Aplicaciones Java Despliegue de aplicaciones con la versión EJB 3.1

32

Page 33: 03 MOM y Servidores Aplicaciones

Servidores de Aplicaciones Java

Principales implementaciones comerciales

• WebLogic Server (Oracle)

• WebSphere (IBM)

• NetWeaver (SAP )

• ColdFusion

• Anteriores:

– Sun One

– Oracle IAS

– iPlanet

– JRun

33

Page 34: 03 MOM y Servidores Aplicaciones

Servidores de Aplicaciones Java

Principales implementaciones Open Source

• JBoss

• GlassFish

• JOnAS

• Geronimo

• Jetty

• Resin

• WildFly

34

Page 35: 03 MOM y Servidores Aplicaciones

Servidores de Aplicaciones .NET

• Proporciona un entorno integrado para implementar y ejecutar aplicaciones de negocio personalizadas creadas con Microsoft .NET Framework

• Integración natural con todos los productos Windows

• Dispone de servicios compatibles con las aplicaciones diseñadas para usar COM+, Message Queue Server, Servicios web y Transacciones distribuidas

• Instalación de fácil uso con opciones para los diversos servicios de rol y características que necesitará para ejecutar las aplicaciones de la organización.

35

Page 36: 03 MOM y Servidores Aplicaciones

Servidores de Aplicaciones .NET Arquitectura general

36

Page 37: 03 MOM y Servidores Aplicaciones

Servidores de Aplicaciones .NET

Framework .NET

• Framework de Microsoft que hace un énfasis en la transparencia de redes, con independencia de hardware y que permita un rápido desarrollo de aplicaciones.

• .NET nació como respuesta al creciente mercado de los negocios en entornos Web, como competencia a la plataforma Java

• Es añadido al sistema operativo Windows y provee un extenso conjunto de soluciones predefinidas para necesidades generales de la

programación de aplicaciones.

37

Page 38: 03 MOM y Servidores Aplicaciones

Servidores de Aplicaciones .NET

Framework .NET

38

Page 39: 03 MOM y Servidores Aplicaciones

Servidores de Aplicaciones .NET

Implementaciones: Windows Server

• Características de servidor de aplicaciones:

– Servicios de Active Directory

– Servidor web (IIS)

– Clusters tolerantes a fallas

– Balanceo de carga

– Seguridad integrada

– Servicios de implementación de Windows

– Servicios de archivos

– Protección de accedo a redes

39

Page 40: 03 MOM y Servidores Aplicaciones

Servidores de Aplicaciones .NET

Internet Information Service

• Es el servicio web sobre el sistema operativo Microsoft Windows. Las computadoras que tienen este servicio instalado pueden publicar páginas web tanto local como remotamente

• Microsoft incluye páginas ASP y ASP.NET. También pueden ser incluidos los de otros fabricantes, como PHP o Perl

40

Page 41: 03 MOM y Servidores Aplicaciones

Servidores de Aplicaciones .NET

Active Directory

• Es el término que usa Microsoft para referirse a su implementación de servicio de directorio en una red de computadoras

• Es un servicio establecido en uno o varios servidores en donde se crean objetos tales como usuarios, equipos o grupos, con el objetivo de administrar los inicios de sesión en los equipos conectados a la red, así como también la administración de políticas en toda la red

• Es conocido también como el controlador de dominio, ya que es el centro neurálgico de un dominio Windows

• Una de las responsabilidades es la autentificación

41

Page 42: 03 MOM y Servidores Aplicaciones

Servidores de Aplicaciones - Comparativa

42

Page 43: 03 MOM y Servidores Aplicaciones

Servidores de Aplicaciones PHP

• Amplia experiencia en aplicaciones web y gestores de contenido

• Extendieron funcionalidad en servidores web para soportar aplicaciones de mayor complejidad

• Características: – Soporte para diagnóstico de aplicaciones

– Almacenamiento en caché y capacidades para optimización

– Permite la administrar de aplicaciones que requieren un alto nivel de confiabilidad, desempeño y seguridad

– Facilita la interconexión con otras plataformas tipo Base de Datos o Java

– Incorporan soporte para mensajería y colas

• Algunas soluciones son: Zend , Appserver.io, Quercus

43

Page 44: 03 MOM y Servidores Aplicaciones

Servidores de Aplicaciones - Ventajas • Mejora la integridad de datos y códigos: al estar

centralizada en una o un pequeño número de máquinas servidoras, las actualizaciones están garantizadas para todos sus usuarios.

• Configuración centralizada: los cambios en la configuración de la aplicación, como mover el servidor de base de datos o la configuración del sistema, pueden ser hechos centralmente.

• Mayor Seguridad: se consideran más seguras porque incorpora un nivel adicional proporcionado por el servidor de aplicaciones.

44

Page 45: 03 MOM y Servidores Aplicaciones

Servidores de Aplicaciones - Ventajas

• Ayuda a la performance: limitando el tráfico de la red solamente al tráfico de la capa de presentación, es percibido como un modelo cliente/servidor que mejora la performance de grandes aplicaciones.

• Facilita el despliegue de aplicaciones. Incluye un motor de ejecución que soporta el despliegue y gestión de aplicaciones de negocio con capacidad para grandes prestaciones.

45

Page 46: 03 MOM y Servidores Aplicaciones

Servidores de Aplicaciones - Ventajas

• Contribuye a la integración. Habilita la publicación de servicios web y permite integrar las aplicaciones nuevas con las infraestructuras y aplicaciones ya existentes.

• Soporta herramientas de gestión. Tiene un asistente para añadir roles muy amigable que ayuda a elegir los servicios y funcionalidades necesarios para ejecutar las aplicaciones corporativas.

• Soporta comportamiento de middleware orientado a mensajes

46

Page 47: 03 MOM y Servidores Aplicaciones

Resumen

• Los MOM permite a las aplicaciones distribuidas comunicarse mediante el envío de mensajes. Tienen 2 modelos de mensajería: P2P y Publicación / suscripción

• Un servidor de aplicaciones es una plataforma de software que proporciona un enfoque generalizado para la creación de una aplicación, sin importar el contenido funcional de la aplicación

• Java EE define el conjunto básico de principios activos y características de los servidores de aplicaciones sobre tecnología Java

• .NET proporciona un entorno integrado para implementar y ejecutar aplicaciones de negocio personalizadas creadas sobre entornos con productos Microsoft

47

Page 48: 03 MOM y Servidores Aplicaciones

¿Preguntas?

• ¿Qué implementaciones de servidores de aplicaciones conoce?

48