Vous êtes sur la page 1sur 48

Arquitectura de Software

Clase 3: Middleware orientado a mensajes y servidores de aplicaciones

Objetivos
Entender los middleware orientados a mensajes Conocer las tecnologas relacionadas con los servidores de aplicaciones

Temas
1. Middleware orientado a mensajes 2. Servidores de Aplicaciones 3. Tecnologas relacionadas:
Java EE .NET PHP

Introduccin
Mensajes Es en el sentido ms general, es el objeto de la comunicacin. Est definido como la informacin que el emisor enva al receptor a travs de un canal de comunicacin determinado

Introduccin
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 funcin de un buffer

Middleware orientado a mensajes (MOM)


Permite a las aplicaciones distribuidas comunicarse mediante el envo de mensajes Se encarga de que todos los mensajes lleguen siempre a su destino La comunicacin entre emisor y receptor es asncrona, y en ningn momento estn directamente conectados. El emisor enva el mensaje y no se queda a la espera de recibir confirmacin de recepcin de su mensaje, sino que sigue trabajando normalmente.

Middleware orientado a mensajes


Elementos

Middleware orientado a mensajes


Elementos Productor Quien enva 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 tpicos, dependiente del modelo implementado.

MOM - Modelos de mensajera


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 aplicacin de gestin se encarga de obtenerlos y de enviarlos exclusivamente a la persona que los solicit.

MOM - Modelos de mensajera


Publicacin / suscripcin En estos sistemas hay dos actores: los emisores de informacin y los suscriptores o consumidores de dicha informacin. Los consumidores pueden suscribirse a un determinado tipo de mensajes que tengan relacin con un tema concreto o con informacin que cumpla un patrn determinado. Los emisores envan mensajes al MOM, y ste se encarga de hacrselo llegar a los suscriptores correspondientes.
10

MOM - Modelos de mensajera


Publicacin / suscripcin

Este modelo podra utilizarse en un sistema de monitorizacin de una red: una aplicacin (emisor) recoge datos de trfico, ocupacin de puertos, etc. y enva esos datos al administrador o administradores de la red (suscriptor) de forma automtica.
11

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 segn su prioridad

12

MOM - Caractersticas
Comunicacin asncrona entre aplicaciones para compartir informacin. No obstante, tambin hay soluciones que trabajan con conexiones sncronas o pseudo-sncronas Los mensajes son almacenados en colas hasta que el receptor est listo para recoger el mensaje Garanta de que los mensajes llegarn siempre a su destino

13

MOM - Caractersticas
Las aplicaciones estn aisladas de la complejidad de las redes y del hardware gracias al MOM. Por ello, no sufrirn ninguna modificacin aunque cambie parte de la red o del hardware utilizado La comunicacin entre aplicaciones es no bloqueante, es decir, que las aplicaciones que realizan una peticin no detienen su ejecucin mientras esperan el mensaje de respuesta.

14

MOM - Caractersticas
Las colas utilizadas pueden ser permanentes o dinmicas. Las primeras almacenan la informacin en disco, mientras que las segundas guardan los datos de forma temporal en la memoria voltil.

15

MOM - Caractersticas
Las aplicaciones que se comunican entre s, no estn conectadas directamente y eso facilita la programacin y permite crear nuevas funcionalidades. El emisor no necesita conocer la ubicacin fsica del receptor y viceversa. Muchas soluciones comerciales MOM proporcionan tambin encriptacin de datos extremo a extremo para incrementar la seguridad.

16

Mensajes con ACK


ACK (acknowledgement): acuse de recibo Es un mensaje que el destino de la comunicacin enva al origen de sta para confirmar la recepcin de un mensaje:

Se definen diferentes ACK con informacin ms compleja como peticiones de reenvi de ciertas tramas, informacin sobre incidencias en la red, etc.
17

MOM: AMQP
Advanced Message Queuing Protocol Es un estndar abierto para el paso de mensajes entre aplicaciones empresariales que define:
Encolamiento Enrutamiento subscripcin) Confiabilidad Seguridad (tanto punto-a-punto como publicacin-

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

MOM - Productos
JMS (Java Message Service) MQ Series (ahora WebSphere MQ) Apache Qpid OpenAMQP MSMQ (Microsoft) SonicMQ

19

Servidor de Aplicaciones
Un servidor de aplicaciones es una plataforma de software que proporciona un enfoque generalizado para la creacin de una aplicacin, sin importar el contenido funcional de la aplicacin El servidor se dedica a la ejecucin eficaz de los procedimientos (programas, rutinas, configuraciones) para soportar las aplicaciones desplegadas Los principales beneficios de la utilizacin de los servidores de aplicacin son la centralizacin y la disminucin de la complejidad en el desarrollo de aplicaciones.
20

Servidor de Aplicaciones
Facilita la implementacin de los sistemas distribuidos. Un sistema distribuido en oposicin a un sistema monoltico, permite mejorar tres aspectos fundamentales en una aplicacin:
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

Servidor de Aplicaciones
Caractersticas Naci como la evolucin natural de los servidores web Representa el servidor del medio en el tradicional esquema de 3 niveles (multipropsito) Generalmente gestionan la mayor parte (o totalidad) de las funciones de lgica de negocio y de acceso a datos de la aplicacin

22

Servidor de Aplicaciones
Caractersticas Brindan a los desarrolladores una Interfaz de Programacin de aplicaciones (API), de tal manera que no tengan que preocuparse del sistema operativo o por la cantidad de interfaces en una aplicacin web moderna Los servidores de aplicacin brindan tambin soporte a una gran variedad de estndares tales como: HTTP, XML, IIOP, JDBC, SSL, etc. que les permiten su funcionamiento en ambientes web y la conexin a una gran variedad de fuentes de datos, sistemas y dispositivos. Implementa soporte para colas y pool de conexiones
23

Servidor de Aplicaciones
Pool de conexiones Est demostrando que el mayor tiempo de una interaccin son las conexiones a otros sistemas Un pool de conexiones es un conjunto limitado de conexiones hacia un sistema

24

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

Servidor de Aplicaciones
Plataformas tecnolgicas Principales plataformas tecnolgicas 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

Servidores de Aplicaciones Java


Plataforma Java Java Platform, Enterprise Edition o Java EE (antes J2EE) define el conjunto bsico de principios activos y caractersticas de los servidores de aplicaciones Java Los mdulos 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 mensajera con JMS Soporte para Web Services a travs de JAX-WS Otros servicios como JNDI, JAAS, JMX, Mail, etc.
27

Servidores de Aplicaciones Java


Plataforma Java EE

28

Servidores de Aplicaciones Java


Arquitectura general

29

Servidores de Aplicaciones Java


Han sufrido varios cambios en los ltimos aos, producto de la incorporacin de patrones de diseo. Entre los cambios mas importantes estn:
La incorporacin de muchas librearas Enterprise en la versin Standard (desde JDK 1.4 hasta el JDK 1.6) El paso de los EJB 2.1 a 3.0, tuvo la inclusin de:
POJOs AOP Inyeccin de dependencias

Libreras originadas por la competencia de proyectos open source tipo: Struts, Spring, etc.

30

Servidores de Aplicaciones Java


Despliegue de aplicaciones con la versin EJB 2.1

31

Servidores de Aplicaciones Java


Despliegue de aplicaciones con la versin EJB 3.1

32

Servidores de Aplicaciones Java


Principales implementaciones comerciales WebLogic Server (Oracle) WebSphere (IBM) NetWeaver (SAP ) ColdFusion Anteriores:
Sun One Oracle IAS iPlanet JRun
33

Servidores de Aplicaciones Java


Principales implementaciones Open Source JBoss GlassFish JOnAS Geronimo Jetty Resin WildFly

34

Servidores de Aplicaciones .NET


Proporciona un entorno integrado para implementar y ejecutar aplicaciones de negocio personalizadas creadas con Microsoft .NET Framework Integracin natural con todos los productos Windows Dispone de servicios compatibles con las aplicaciones diseadas para usar COM+, Message Queue Server, Servicios web y Transacciones distribuidas Instalacin de fcil uso con opciones para los diversos servicios de rol y caractersticas que necesitar para ejecutar las aplicaciones de la organizacin.

35

Servidores de Aplicaciones .NET


Arquitectura general

36

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 rpido desarrollo de aplicaciones. .NET naci como respuesta al creciente mercado de los negocios en entornos Web, como competencia a la plataforma Java Es aadido al sistema operativo Windows y provee un extenso conjunto de soluciones predefinidas para necesidades generales de la programacin de aplicaciones.
37

Servidores de Aplicaciones .NET


Framework .NET

38

Servidores de Aplicaciones .NET


Implementaciones: Windows Server Caractersticas de servidor de aplicaciones:
Servicios de Active Directory Servidor web (IIS) Clusters tolerantes a fallas Balanceo de carga Seguridad integrada Servicios de implementacin de Windows Servicios de archivos Proteccin de accedo a redes
39

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 pginas web tanto local como remotamente Microsoft incluye pginas ASP y ASP.NET. Tambin pueden ser incluidos los de otros fabricantes, como PHP o Perl

40

Servidores de Aplicaciones .NET


Active Directory
Es el trmino que usa Microsoft para referirse a su implementacin 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 sesin en los equipos conectados a la red, as como tambin la administracin de polticas en toda la red Es conocido tambin como el controlador de dominio, ya que es el centro neurlgico de un dominio Windows Una de las responsabilidades es la autentificacin
41

Servidores de Aplicaciones Comparativa

42

Servidores de Aplicaciones PHP


Amplia experiencia en aplicaciones web y gestores de contenido Extendieron funcionalidad en servidores web para soportar aplicaciones de mayor complejidad Caractersticas:
Soporte para diagnstico de aplicaciones Almacenamiento en cach y capacidades para optimizacin Permite la administrar de aplicaciones que requieren un alto nivel de confiabilidad, desempeo y seguridad Facilita la interconexin con otras plataformas tipo Base de Datos o Java Incorporan soporte para mensajera y colas

Algunas soluciones son: Zend , Appserver.io, Quercus


43

Servidores de Aplicaciones - Ventajas


Mejora la integridad de datos y cdigos: al estar centralizada en una o un pequeo nmero de mquinas servidoras, las actualizaciones estn garantizadas para todos sus usuarios. Configuracin centralizada: los cambios en la configuracin de la aplicacin, como mover el servidor de base de datos o la configuracin del sistema, pueden ser hechos centralmente. Mayor Seguridad: se consideran ms seguras porque incorpora un nivel adicional proporcionado por el servidor de aplicaciones.
44

Servidores de Aplicaciones - Ventajas


Ayuda a la performance: limitando el trfico de la red solamente al trfico de la capa de presentacin, es percibido como un modelo cliente/servidor que mejora la performance de grandes aplicaciones. Facilita el despliegue de aplicaciones. Incluye un motor de ejecucin que soporta el despliegue y gestin de aplicaciones de negocio con capacidad para grandes prestaciones.

45

Servidores de Aplicaciones - Ventajas


Contribuye a la integracin. Habilita la publicacin de servicios web y permite integrar las aplicaciones nuevas con las infraestructuras y aplicaciones ya existentes. Soporta herramientas de gestin. Tiene un asistente para aadir 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

Resumen
Los MOM permite a las aplicaciones distribuidas comunicarse mediante el envo de mensajes. Tienen 2 modelos de mensajera: P2P y Publicacin / suscripcin Un servidor de aplicaciones es una plataforma de software que proporciona un enfoque generalizado para la creacin de una aplicacin, sin importar el contenido funcional de la aplicacin Java EE define el conjunto bsico de principios activos y caractersticas de los servidores de aplicaciones sobre tecnologa Java .NET proporciona un entorno integrado para implementar y ejecutar aplicaciones de negocio personalizadas creadas sobre entornos con productos Microsoft
47

Preguntas?

Qu implementaciones de servidores de aplicaciones conoce?

48

Vous aimerez peut-être aussi