Arquitecturas de Sistemas Cesar J. Bustacara Medina, MsE. Architecture metamodel Software Architecture is part of Software Architects are actors in System architecture is represented by Architecture Design Process produces Software Architecture Description has Logical view Process view is made of relates to is a Architecture Style guide Architectural view has Architectural style is a Architectural Pattern Deployment view Use case view is made of has Implementation view constrains Form Component Connection depicts Constraints satisfies constrains Requirements Architectural Blueprint 2 Arquitecturas de Sistemas Tipos de Arquitecturas Arquitecturas Monolíticas (Mainframes) Arquitecturas de archivos compartidos Arquitecturas tradicionales Client/Server Arquitecturas de DOS capas cliente-servidor (Twotier Client/Server) Modelo Two-Tier modificado Arquitecturas de TRES capas (Three-Tier) Arquitectura J2EE Arquitectura .NET Arquitecturas empresariales 3 Arquitecturas Monolíticas (Mainframes) Mainframe : •Manejo de las aplicaciones •Procesamiento •Almacenamiento de Archivos •Prestación de servicios Las terminales : •Medio de presentación de información •Captura de datos. 4 Arquitecturas de archivos compartidos Computador central: central •Almacenar los archivos •Prestar servicios sobre ellos Los Clientes (PCs) : •Realizar operaciones de procesamiento de datos •Ejecutar aplicaciones. 5 Arquitecturas tradicionales Client/Server El servidor : • Manejar la base de datos. Los clientes : • Realizar las consultas • Procesar los datos • Actualizar los datos. 6 Arquitecturas de DOS capas clienteservidor (TWO tier Client/Server) El servidor : •Manejar la base de datos •Realizar algún procesamiento de datos. Los clientes : •Realizar las consultas •Procesar los datos •Actualizar los datos. 7 Adicionalmente, Todo el procesamiento es hecho al lado del cliente. El servidor de BD es un repositorio. La “logica” en el servidor puede incluir restricciones simples (e.g. foreign key constraints, not null constraints). Las restricciones de la base de datos desabilita operaciones que pueden causar problemas obvios de integridad en los datos. 8 Diferentes modelos Aplicación Internet DB Web Server DB b) Tier 1 Software Application Desktop Database Drivers Tier 2 c) DB d) 9 Diferentes Modelos 10 Principales ventajas: Familiar: La arquitectura es familiar y simple de implementar. Es similar a los programas tradicionales en mainframe. Accessible: Muchas herramientas funcionan unicamente dentro de modelo two-tier (herramientas de reportes). 11 Principales ventajas: Productividad: muchas herramientas RAD tienen optimizaciones especiales que reducen el trabajo para desarrollo de modelos two-tier (Visual Basic, PowerBuilder, Delphi, C++ Builder). Probado: el modelo two-tier ha sido altamente probado y es bien entendido. 12 Tipos de aplicaciones para usar un modelo two-tier Que soporten un numero limitado de usuarios (no mas de algunos cientos). La aplicación esta en red y las bases de datos son “locales” (no sobre WAN o Internet). Un nivel normal de seguridad es requerido (los datos no son sensibles). El aceso a datos desde aplicaciones externas es mínimo. 13 Principales desventajas Escalabilidad: El desempeño de las aplicaciones se degrada rapidamente cuando el número de usuarios concurrentes alcanza un umbral entre cientos de usuarios y miles de usuarios. Esto es verdad incluso para los servidores grandes de bases de datos. 14 Principales desventajas Baja reutilización de la lógica: Mantiene la lógica del negocio en el cliente. Cuando la lógica esta en el cliente, es más dificil reusar la lógica entre aplicaciones y entre herramientas. Distribución de la Aplicación: La aplicación debe ser distribuida a cada cliente. Cuando existe un gran número de usuarios, implica una sobrecarga administrativa (soporte técnico). 15 Principales desventajas Uso Remoto: Usuarios remotos (clientes), probablemente no desean instalar aplicaciones -- prefieren clientes livianos "thin” o clientes que no requieren instalación-. Estructura de la BD: Aplicaciones que accesan la BD serán dependientes de la estructura actual de la BD, implicando mayor dificultad para rediseñar la BD sin incluir cambio de codigo. 16 Modelo two-tier Modificado 17 Modelo two-tier modificado Para incrementar la reutilización de la lógica del negocio es colocarla dentro de triggers o procedimientos almacenados en la BD. Las validaciones son ejecutadas llamando un procedimiento almacenado apropiado 18 Modelo two-tier modificado Ejemplo: La lógica del negocio puede indicar que nunca una materia es matriculada a menos que sus prerrequisitos hayan sido aprobados. 19 Ventajas Mejor Re-uso: La misma lógica (en stored procedures & triggers) puede ser iniciada desde muchas aplicaciones cliente y herramientas. Mejor integridad de datos: cuando la lógica es validada al disparar los triggers (antes de insertar y actualizar), la integridad de los datos puede ser garantizada. 20 Ventajas Incrementa el desempeño para validaciones complejas: Cuando la lógica del negocio requiere muchos accesos a la BD para ejecutar una tarea, el trafico en la red se reduce significativamente cuando toda la validación es encapsulada en un procedimiento almacenado. 21 Ventajas Incrementa la seguridad: Los procedimientos almacenados pueden aumentar la seguridad siempre y cuando los detalles de la lógica del negocio sea encapsulada en un servidor central seguro. 22 Ventajas Distribución reducida: Cambios en la lógica del negocio solo requieren actualización en la BD y no tienen que ser distribuidos a todos los clientes. 23 Desventajas La mayor desventaja tanto del modelo two-tier tradicional como del modificado, es la ESCALABILIDAD, la cual es manejada por el modelo threetier. 24 Arquitecturas de TRES capas (ThreeTier) La aplicación es dividida en tres capas (tier) formales: Presentación (o capa GUI), Intermedia (o Servidor de Aplicación) y de Datos. La clave en el módelo es el SERVIDOR DE APLICACIONES, que encapsula las aplicaciones de la lógica del negocio. 25 Modelos DB Internet Web Server Tier 1 Tier 2 Tier 3 26 Modelos User Interface Application Logic DB XML 27 Modelos 28 Arquitecturas de TRES capas (Three-Tier) En el modelo three-tier el servidor de aplicaciones puede estar implementado en una o más capas y puede estar distribuido en uno o más lugares. 29 Presentation Tier Contiene todo el código necesario para la interface de usuario. Es una capa liviana (thin client), que no contiene lógica del negocio. Usa Visual Basic, PowerBuilder, Delphi, etc., y más recientemente Web-browser (HTML) y JavaScript. 30 Presentation Tier Puede incluir una gran variedad de clientes: Clientes estándar (como parte de una aplicación cliente/servidor). Clientes internet. Herramientas de reportes. 31 Middle Tier (Application Server) Contiene las reglas del negocio que frecuentemente son segmentadas en pequeños componentes de software, que son accesados por la capa de presentación. 32 Middle Tier (Application Server) Implementada como una o varias capas. Distribuida en una o varias máquinas. Un monitor de procesamiento de transacciones (TP) o un Object Request Broker (ORB) puede ser usado para balancear los requerimientos de los clientes a través de múltiples servidores de BD. 33 Middle Tier (Application Server) Un TP o un ORB puede ser usado para iniciar o detener instancias de servidores de aplicación adicionales. Es posible soportar más usuarios adicionando servidores de aplicación, sin necesidad de rediseñar o reconstruir la aplicación. 34 Middle Tier (Application Server) No es necesario ubicar físicamente desde el inicio el servidor de aplicaciones. En versiones beta (prueba o que tiene un numero de usuarios limitado), la middle tier puede ser instalada (deployed) sobre la máquina cliente o sobre el servidor de BD. 35 Middle Tier (Application Server) La middle tier nunca debe recuperar o manipular datos de la BD directamente. Siempre debe hacerlo a través de la capa de datos (Data Layer). 36 Data Tier Contiene los datos requeridos por la aplicación (BD, documentos XML o un servicio de directorios “LDAP”). La base de datos puede ser centralizada o distribuida. 37 Data Tier Incluye procedimientos para recuperación de datos desde la capa de negocios y ejecuta las tareas CRUD (Create, Replace, Update, Delete). 38 Ventajas Escalabilidad: Incrementa la escalabilidad dado que el servidor de aplicaciones puede ser instalado sobre muchas máquinas. Solo se requiere una conexión por cada servidor de aplicaciones a la BD. 39 Ventajas Monitores TP ó ORBs pueden ser usados para balaceo de carga y para manejar dinamicamente el numero de servidores de aplicación disponibles. 40 Ventajas Mejor Reutilización: La misma logica puede ser iniciada desde muchos clientes o aplicaciones. Incremento en la integridad de Datos: la middle tier puede garantizar que solamente datos validos son actualizados en la BD, y el riezgo de datos corruptos es eliminado. 41 Ventajas Incremento en la seguridad: puede ser implementada en varias capas (no unicamente en la BD). La seguridad puede aumentar dado que el cliente no tiene aceso directo a la BD. La lógica de negocios es generalmente más segura si esta en un servidor central seguro. 42 Ventajas Distribución reducida: Cambios en la lógica del negocio solo necesita ser actualizada en el servidor de aplicaciones, no en todos los clientes. Incremento en la disponibilidad: aplicaciones de mision-critica pueden hacer uso de servidores de aplicación y de bases de datos redundantes. 43 Ventajas Con servidores redundantes, es posible diseñar aplicaciones que se recuperen a fallas de red o de servidores Ocultar la estructura de la BD: el cliente no conoce la estructura de la BD, esto hace que los cambios sean transparentes para el usuario. 44 Ventajas Un servicio en la capa intermedia que intercambia información/datos con otras aplicaciones puede mantener su interface original mientras se realizan actualizaciones a la estructura de la BD. 45 Desventajas Incremento de la Complejidad/Esfuerzo: Es mas dificial construir aplicaciones three-tier que two-tier. Las ventajas provistas por las herramientas cliente (Visual Basic, PowerBuilder, Delphi) se pierden en arquitecturas three-tier. 46 Arquitectura J2EE Multiniveles (n-tier): Client-tier: HTML, WML, XML, Applets Swing, etc. Web-tier : Servlets, JSP, XML, XLST, Beans Business-tier : EJB, JTA, CORBA, RMI/IIOP, etc. Connector-tier : JDBC, JNDI, JMS,JINI, JCA. EIS-tier: RDBMS, ERP, CRM, Mail Server, Legacy systems, dispositivos electrónicos, etc. Portable : Plataforma operacional, RDBMS Escalable Robusta (Transacciones Distribuidas, Thread Safe) Distribuida 47 Modelo 48 Modelo 49 Web-tier (Presentation-tier) WEB-CONTAINER (Tomcat Jakarta) HTML Java Servlets COMPONENTES DEL NEGOCIO Enterprise Java Beans SERVLET Navegador WML JSP RMI (Remote Method Invocation) Celular XML, C-HTML XSLT eXtensible Style Language Transformer PDA (Pilot) 50 Business-tier (EJB-tier) Business-CONTAINER (JoNas, Jboss, Websphere, iPlanet, Web Logic) Conectores Java Connector Architecture EJB Componentes de Presentación JSP, Servlet, etc. JTA JDBC JCA Mail JMS JINI Power Builder RMI / IIOP CORBA Visual Basic 51 Arquitectura Ideal Client-tier Connector-tier EIS-tier Componentes Componentes Presentación (Business rules) Browser INTERNET Servidor Web RDBMS CORBA Celular PDA (Pilot) Business-tier web-tier Portable Escalable Robusta Distribuida Legacy Systems (Cobol, etc.) Delphi Power Builder Visual Basic Directorio de Servicios 52 ERP/CRM Arquitectura J2EE 53 Arquitectura .NET Es la combinación de: Framework Common language runtime (CLR) Class libraries ASP.NET Web Services .NET Enterprise Servers 54 .NET y .NET Framework Web Services Office.Net Building Blocks (e.g. for Services) ... ... Servicios WEB XML .NET Applications Enterprise Servers Languages: SQL Server C#, Visual Basic, etc BizTalk ... Runtime Common Type System Common Language Runtime Services: .NET and COM+ Cliente - Cliente Cliente - Servidor Servidor Servidor Servicio-Servicio Clientes Inteligentes Servidores .NET Herramientas de desarrollo .NET Framework Operating System 55 .NET Framework XML Web Services User Interface (Web Forms) User Interface (Windows Forms) ASP.NET Base Framework Classes Common Language Runtime Base Frame Data & XML Classes 56 Common Language Runtime (CLR) Base Class Library Support Thread Support COM Marshaler Type Checker Exception Manager Security Engine Debug Engine Common Language Runtime MSIL to Native Compilers (JIT) Code Manager Garbage Collector (GC) Class Loader Integración multilenguaje Gestión de memoria, hilos y procesos Gestión de la seguridad Gestión fuerte de tipos Enlace dinámico Librerías de clases 57 Modelos de Programación Consistent API availability regardless of language and programming model .NET Framework RAD, Composition, Delegation Visual Basic® Forms Subclassing, Power, Expressiveness MFC/ATL Stateless, Code embedded in HTML pages ASP Windows API 58 Características de .NET Fuerte respaldo Mas eficiente que anteriores versiones y más fácil de instalar Migración de Visual Basic a Visual Basic .NET factible Curva de aprendizaje suave Herramientas de desarrollo. 59 Arquitecturas empresariales Objetivos de una AE Robustez Buen desempeño Escalabilidad Tomar ventaja de los principios de diseño ofrecidor por los OO. Evitar complejidad RUP vrs XP 61 Objetivos de una AE Extensibilidad Mantenibilidad Productividad Facil de probar Promueva la reusabilidad Soportar multiples tipos de clientes Portabilidad Persistencia. 62 Tipos de arquitecturas Arquitecturas no distribuidas Aplicaciones web con interfaces a componentes del negocio. Web application that access local business objects. Arquitecturas distribuidas Aplicaciones distribuidas con objetos del negocio remotos. Aplicaciones web que exponen un interface tipo web service” 63 Aplicaciones web con interfaces a componentes del negocio. 64 Aplicaciones web accediendo interfaces locales de business objects. 65 Aplicaciones distribuidas con objetos del negocio remotos. 66 Aplicaciones web que exponen un interface tipo web service” 67 Arquitecturas típicas de aplicaciones 68 Bibliografia Subrahmanyam Allamaraju, Professional Java Server Programming J2EE Edition, Wrox, 2000. Couch and Steinberg, Java 2 Enterprise Edition, Sams Publishing, 2002. Carnell John, Oracle 8i Application Programming with Java, PL/SQL and XML, Wrox, 2000. Tutorial J2EE, http://java.sun.com/j2ee/1.4/docs/tutorial/doc/index. html 69
© Copyright 2024