Arquitecturas típicas. Mario Muñoz Organero Departamento p de Ingeniería g Telemática http://www.it.uc3m.es/mario Panorámica de la asignatura RED Comunicaciones Servidores información Intercambio de datos Clientes Mario Muñoz Organero. Servidores de información 2 Arquitecturas Cliente-servidor con cliente pesado (thick o fat client) El programa cliente tiene la lógica de la aplicación y obtiene datos que le resultan necesarios del servidor Típica de muchos de los servicios de información en Internet (ej. DNS) Cliente ligero (arquitecturas multi-capa o “multi-tier”) La lógica de aplicación y control de la presentación se realiza en el servidor ¿Cliente “thin-fat”? thin-fat ? AJAX Servidores de información Mario Muñoz Organero. 3 Arquitecturas cliente/servidor Nivel Cliente Nivel Servidor “Fat clie ent” Cliente Lógica de negocio g Mario Muñoz Organero. Servidor Datos Servidores de información 4 Arquitecturas multi multi-tier tier (multi(multi nivel)) En las arquitecturas multi-tier, se añaden niveles (tiers) software adicionales que se encargan de realizar ciertas tareas críticas Los niveles intermedios extienden la responsabilidad del lado del servidor Los “Fat Fat client client” se convierten en “Thin Thin client client” Aunque pueden estar situados en sistemas independientes Cada nivel comunica sólo con los niveles contiguos a través de interfaces claramente definidas Mario Muñoz Organero. Servidores de información 5 Distribución de la lógica en el servidor (multi-tier) ( ) Un servidor de información puede descomponerse en 3 funciones principales: Control de la presentación de la información que se envía a los clientes Mantenimiento M t i i t de d la l “lógica “ló i de d negocio” i ” Almacenamiento permanente de la información. Dependiendo de cómo se implemente físicamente obtenemos un servidor en: 1 capa o grada o tier 2 capas o gradas d o tiers ti 3 capas o gradas o tiers Mario Muñoz Organero. Servidores de información 6 Distribución de la lógica en el servidor Capa de presentación ((PL)) Capa de lógica de negocio g (BLL) Capa de datos ((DL)) Cliente tier tier tier Servidores de información Mario Muñoz Organero. 7 Contando “Tiers” Fat Client Cliente Cliente + PL + BLL Fat Server Cliente + PL middleware PL+ BLL+DL 1 -tier ti Mario Muñoz Organero. DL BLL+DL 2 – tier ti Servidores de información 8 3 tiers Client N Navegador d HTTP, Servicios Web Client + PL PL Servidor Web middleware middleware BLL BLL middleware Se v do de Servidor aplicaciones SQL,... Q , DL Base de datos DL Servidores de información Mario Muñoz Organero. 9 Ejemplo: arquitectura multi-nivel Nivel Cliente Nivel Medio Thin client Lógica de negocio Windows Unix Componente cuenta t cliente li t Prese entación Macintosh Nivel Datos Java Componente banco SAP/R3 server Componente movimiento Driver base de datos Conector Browser Back End DBMS server Sevicio Se c o transacciones a sacc o es Servidor Web Mario Muñoz Organero. Servidor Aplicaciones Servidores de información 10 Ventajas de las arquitecturas multi multinivel Las partes críticas de la aplicación se encuentran en el nivel medio,, más cercanos a nivel de datos → acceso más eficiente Sólo los datos necesarios son transferidos al cliente → menor g de red carga Problema: al aumentar el número de niveles aumenta el número de comunicaciones, aumentando el tiempo de respuesta Mayor flexibilidad, modularidad y escalabilidad. Además: Menores costes de desarrollo (reusabilidad). Facilidad en el cambio de la base de datos Aislamiento frente a cambios Seguridad Localización de fallos Servidores de información Mario Muñoz Organero. 11 Tecnologías y formatos P l Perl SSL/TLS XHTML HTML CGI PHP XML .NET Servidor info Web Services ASP Servlets SOAP J2EE UDDI JSP Bases de datos JavaScript Mario Muñoz Organero. EJBs Código en el cliente AJAX Applets Servidores de información 12 ¿Qué veremos? Objetivo: Utilizar la plataforma J2EE para el d desarrollo ll de d un servidor id de d información. i f ió JSPs, Servlets PL CORBA, RMI, Servicios Web BLL EJB EJBs Servidores de información Mario Muñoz Organero. 13 Web Container Cliente Web HTTP EJB Container Servlets, JSP RMI-IIOP JCA Arquitectura de aplicación Web J2EE Nivel datos (EIS) JDBC JDBC Mario Muñoz Organero. Servidores de información 14 Servidor de aplicaciones Es un sistema de soporte para componentes de servidor Instanciación de componentes Comunicación Sincronización de acceso concurrentes Preparación de un entorno seguro Disponibilidad Seguridad de transacciones Servidores de información Mario Muñoz Organero. 15 Elementos de un servidor de aplicaciones Servicio de transacciones Gestión estado COM Componentes Servicio S i i d de nombres b Servicio de directorio CORBA Los elementos constitutivos del servidor de aplicaciones p se denominan también componentes y pueden instalarse y administrase de forma independiente Tareas de infraestructura: EJB Proporciona un entorno de desarrollo para los componentes, que a su vez proporcionan la lógica de negocio Los componentes de servidor utilizan los servicios del servidor de aplicaciones Servlets Pooling instancias Web Adapter Conectores Legados Balance carga Pooling conexiones Comunicación Seguridad Mario Muñoz Organero. Cliente/Servidor Cli t /S id (HTTP, IIOP, RMI, DCOM) M Mensajes j (Pub/Sub, colas) Eventos Data streaming Servidores de información 16 Arquitectura de aplicación J2EE Nivel cliente Nivel(es) servidor de aplicación Web Container Nivel EIS Bases de datos EJB Container Cliente Web Container Cliente Aplicaciones legado Servlets, JSP Enterprise JavaBeans Servicios y APIs JNDI, RMI-IIOP,… Servicios y APIs JNDI, JMS, JTA,… Servicios y APIs JNDI, JMS, JTA,… J2SE J2EE J2EE Cliente Java Mario Muñoz Organero. Sistemas ERP Servidores de información 17 Enterprise JavaBeans Enterprise JavaBeans (EJB) es una completa especificación de arquitectura para componentes de servicio Permite el desarrollo en Java de aplicaciones multi-nivel, basadas en componentes y orientadas a transacciones, que se apoyan en p y otros p productos middleware servidores de aplicación Objetivos de la arquitectura de componentes EJB: Facilitar el desarrollo de aplicaciones, concentrándose en la lógica de negocio: desarrollo, aplicación y aspectos de tiempo de ejecución Independencia del proveedor de componentes mediante la especificación de interfaces Independencia depe de c a de la a p plataforma ata o a g gracias ac as a al p principio: c p o “Write te O Once ce Run u Anywhere” (WORA) y a su realización en Java Compatibilidad con Java-APIs existentes, con sistemas de servidor de terceros y con protocolos CORBA Mario Muñoz Organero. Servidores de información 18 Containers (contenedores) Ofrecen el entorno de ejecución para todos los componentes de aplicación Proporcionan una vista uniforme de los servicios solicitados en la especificación Herramientas adicionales (Deployment Tools) para la instalación y configuración de componentes (también en tiempo de ejecución) Las tareas principales de los componentes del lado del servidor son la gestión de recursos y del ciclo de vida Applet Container Servlet/JSP Container EJB Container JSP Tools Applets Servlet Engine Enterprise JavaBeans JSP: JSP: JSP: Applic. Client Container (J2SE) Mario Muñoz Organero. Gestión recursos Servicios Servicios Servidores de información 19