Arquitectura de Software Componentes y Middleware [1] Hernán Astudillo Departamento de Informática Universidad Técnica Federico Santa María <hernan at acm.org> Componentes y Middleware • • • • Componentes Middleware Políticas y mecanismos Ejemplo de notación ad-hoc Sesión 13 [2004/v/04] Arquitectura de Software H.Astudillo 2 Sobre el informe Sesión 13 [2004/v/04] Arquitectura de Software H.Astudillo 3 1 Stakeholders analista sp ec s arquitecto arquitetura jefe de projeto ra etu uit arq ar qu ite tu ra revisor implantador sis tem a QA Sesión 13 [2004/v/04] sis tem a Arquitectura de Software H.Astudillo admin 4 Calidad según los stakeholders • La solución (computaciones) debe... – Satisfacer los requisitos (según analistas) • La solución (ejecutables) debe... – Ser administrable (según administradores) • La solución (software) debe… – Ser ‘construible’ (según programadores & diseñadores) – Ser ‘testeable’ (según QA) • La descripción de la solución debe... – Ser evaluable (según otros arquitectos) • El proceso de construcción debe... – Ser manejable (según jefe de proyecto) Sesión 13 [2004/v/04] Arquitectura de Software H.Astudillo 5 Componentes 2 Componentes • Componente [Whitehead] – Pieza separable (independiente del contexto) de software ejecutable – ...que tiene sentido como unidad – ...y puede interoperar con otros componentes – ...dentro de un ambiente de apoyo – ...y es accesable sólo vía sus interfaces – ...y está listo para usar (posiblemente requiriendo instalación y configuración) Sesión 13 [2004/v/04] Arquitectura de Software H.Astudillo 7 Componentes • Fuentes de componentes – – – – Dominio (entidades, propiedades...) Interfaces Capas de abstracción (“máquinas virtuales”) Instanciaciones de arquetipos Sesión 13 [2004/v/04] Arquitectura de Software H.Astudillo 8 Interoperabilidad • Problema: cooperación entre componentes – Número exponencial de pares • Se complica al introducir más de una tecnología • Mecanismos estandarizados para describir interfaces – CORBA IDL – COM IDL – Interoperabilidad entre tecnologías • “Modelos de componentes” • COM, CORBA, EJB • “Wrappers” (envoltorios) – Servicios • Propiedades transaccionales • Manejo de seguridad • Monitoreamiento Sesión 13 [2004/v/04] Arquitectura de Software H.Astudillo 9 3 Modelos de componentes [1/3] • Modelos de componentes distribuidos (clientes y servidores) – COM: Common Object Model (Microsoft; en .NET) – CORBA: Common ORB Architecture (OMG: Object Management Group) • ORB: Object Request Broker – Java (Sun, JCP) • Modelos extendidos para mejor apoyar servidores – MTS (Microsoft Transaction Service) – CCM (CORBA Component Model) – EJB (Enterprise Java Beans) • J2EE (Java 2 Enterprise Edition) Sesión 13 [2004/v/04] Arquitectura de Software H.Astudillo 10 Modelos de componentes [2/3] • Modelos extendidos con soporte adicional – – – – Manejo transaccional Seguridad Persistencia Disponibilidad • “Clustering”, balanceo de carga – Ambiente de ejecución • Ciclo de vida (instanciación, GC...) • “Threading” • “Pooling” de conexiones • Manejo de estado – Monitoreamiento dinámico Sesión 13 [2004/v/04] Arquitectura de Software H.Astudillo 11 Modelos de componentes [3/3] • Servicios – “Location” (ubicación) • detección de componentes/servicios; análogo a guía telefónica • JNDI (Java Naming & Directory Interface) • CORBA Naming Service & Trading Service – Manejo de transacciones • autenticación, autorización, inviolabilidad, no- repudiación • CORBA Security Service • JAASL Java Authentication & Authorization Service – Eventos, notificaciones & mensajería • Mensajes asíncronos, point-to-point & publish -subscribe • CORBA Notification (& Event) Services, Messaging Service • JMS: Java Messaging Service Sesión 13 [2004/v/04] Arquitectura de Software H.Astudillo 12 4 Terminologías de mercado “2 Capas” • 2 capas: “cliente-servidor” • Razón: concentrar recursos escasos en servidores centralizados – Redundancia mínima – Rendimiento puede sufrir – Autonomía mínima Sesión 13 [2004/v/04] Arquitectura de Software H.Astudillo 14 “3 capas” • 3 capas – Razón: compartir datos, preservando integridad (ACID) – “Negocio”: procesamiento propio del negocio – 2 partes: objetos de negocio (entidades del dominio) y lógica de control (funciones) – “Presentación”: interacción con usuarios (incl. informes) y otros sistemas – “Datos”: manejo de datos persistentes (incl. integridad) Sesión 13 [2004/v/04] Arquitectura de Software H.Astudillo 15 5 “4 capas” Sesión 13 [2004/v/04] Arquitectura de Software H.Astudillo 16 “4 capas” (Cont.) • “Usuario”: mecanismos de interacción con usuarios y otros sistemas • “Workspace”: manejo de sesiones y transacciones • “Negocio” (empresa): procesos y entidades del negocio • “Recursos”: elementos únicos compartidos (BD, sistemas legado, servicios) Sesión 13 [2004/v/04] Arquitectura de Software H.Astudillo 17 Productos • Categorías de productos – Empaquetados por tipo de problema y tipo de solución • Tipos de solución: tecnologías – “Middleware” – MOM, BD, “directory servers”, TP Monitors, “workflow”... • Tipos de problemas: servicios del negocio – Paquetes – ERP (Enterprise Resource Planning), CRM (Customer Relationship management) y variaciones, Knowledge Management... Sesión 13 [2004/v/04] Arquitectura de Software H.Astudillo 18 6 Middleware Middleware • “Middleware”: tecnologías para comunicar programas distribuidos • Britton propone clasificar middleware usando 8 aspectos de la comunicación – – – – – – – – Transporte (enlace) ( ej: TCP/IP) Protocolo (ej: HTTP) API (ej: ODBC) Formato ( ej: ASCII) Control de recursos en el servidor (ej: MTS) Directorios/nombres ( ej: DNS) Seguridad ( ej: Kerberos) Administración Sesión 13 [2004/v/04] Arquitectura de Software H.Astudillo 20 Dimensiones en Middleware (Cont.) • Participantes en la comunicación – programas/objetos cada vez más pequeños y numerosos – IP (hardware), TCP (procesos), IIOP (objetos) • Modo de comunicación – sesiones: protocolos con o sin ellas • TCP (IP con sesión), UDP (IP sin sesión) – topología: 1:M, peer-to-peer, M:1 – iniciador: push, pull – integridad vs. puntualidad (“timeliness”) • Interfaz – con API: número fijo de entradas – con IDL: mecanismo para definir API ad-hoc Sesión 13 [2004/v/04] Arquitectura de Software H.Astudillo 21 7 Servicios Web • Integración usando infraestructura Web/Internet • Aspectos – Transporte – Formato – Búsqueda • Soluciones empaquetadas (aún en desarrollo) – “Web services” • SOAP (Simple Object Access Protocol): HTTP + XML • WSDL (Web Service Description Language) • UDDI (Universal Description, Discovery and Integration) – REST: Representational State Transfer • HTTP + URL + XML/HTML/GIF/MIME/etc. (sin directorios) – CORBA: IIOP + “marshalling” + Directory/Trader Service Sesión 13 [2004/v/04] Arquitectura de Software H.Astudillo 22 Praxis Catálogos de arquitectura • Catálogos – Ingenieros tienen catálogos de partes disponibles • con especificaciones de contexto, parámetros... – Necesarios para centralizar y difundir información • Fundamento teórico propuesto – Clasificar Middleware • Análisis de dimensiones aún pendiente – Políticas y mecanismos • Enfoque análogo Sesión 13 [2004/v/04] Arquitectura de Software H.Astudillo 24 8 Recursos y referencias • Ivar Jacobson, Martin Griss, Patrik Jonsson – Software Reuse: Architecture, Process and Organization for Business Success, Addison Wesley (1997) • Chris Britton – IT Architectures & Middleware: Strategies for Building Large, Integrated Systems, Addison Wesley (2000) • Brett McLaughlin – Building Java Enterprise Applications, Vol. 1: Architecture, O'Reilly (2002) • Katharine Whitehead – Component-Based Development : Principles and Planning for Business Systems, Addison-Wesley (2002) Sesión 13 [2004/v/04] Arquitectura de Software H.Astudillo 25 9