380 likes | 983 Views
Arquitectura de Referencia SOA. Temario. Arquitectura de software, SOA y Web Services Por que SOA? Arquitectura de Referencia SOA Roadmap de implementación de SOA Lucasian Labs – Plataforma de Servicios LEAF - Lucasian Enterprise Application Framework Componentes LEAF SOA y LEAF
E N D
Temario • Arquitectura de software, SOA y Web Services • Por que SOA? • Arquitectura de Referencia SOA • Roadmap de implementación de SOA • Lucasian Labs – Plataforma de Servicios • LEAF - Lucasian Enterprise Application Framework • Componentes LEAF • SOA y LEAF • Casos de éxito LEAF
Arquitectura de Software Proyectos sin Arquitectura, ni Frameworks
Arquitectura de Software IEEE 1471 • Arquitectura es la organización fundamental de un sistema descrita en: • Sus componentes. • Relación entre ellos y con el ambiente. • Principios que guían su diseño y evolución. • La arquitectura debe satisfacer los requerimientos de calidad de servicio. El nivel conceptual más alto de un sistema en su ambiente.
Arquitectura Orientada a Servicios (SOA) • SOA es una arquitectura conceptual. • Organiza funciones de negocio como servicios interoperables. • Permite reutilización de servicios para dar cumplimiento a las necesidades del negocio. • SOA es basado en estándares. • Independencia de fabricantes. • SOA es una estrategia de IT, a nivel empresarial.
Que es un Servicio? • Un servicio es un componente que provee un conjunto de funciones de negocios. • Los servicios son conceptualmente: • Autónomos • Opacos • Bajamente acoplados.
SOA y Web Services Los Servicios Web juegan un papel importante en una arquitectura SOA, ya que brindan mecanismos independientes de la plataforma para exponer, descubrir e invocar servicios. SOA requiere que un servicio: • Sea descubrible e invocable dinámicamente. UDDI, WSDL, SOAP. • Tenga una definición del contrato independiente de plataforma. XML. • Pueda interoperar con otros servicios. HTTP.
Por que SOA? • Permite que el área de IT satisfaga más ágilmente las necesidades del negocio, cerrando cada vez más la brecha entre la evolución del negocio y el soporte tecnológico. • Crea servicios basados en estándares, interoperables e independientes de un proveedor específico. • Reutilización de servicios para la creación de nuevas aplicaciones o funcionalidades que apoyan los procesos de negocio.
Arquitectura de Referencia SOA • OASIS - Modelo de Referencia SOA Conceptual: Neutral en Tecnología Modelo de Referencia SOA Frameworks Arquitectura de Referencia SOA Dependiente de Tecnología. Reutilizable entre Proyectos. Patrones de Diseño Instancia Arquitectura de Referencia. Específica de cada Proyecto. Arquitectura Concreta
Arquitectura Concreta:Servicios de Negocio Session Facade Session Facade EIS Front Controller Presentation Business Resources Session Facade LDAP Servicios de Negocio: Web Services, EJBs.
Arquitectura Concreta:Servicios de Negocio y Persistencia Session Facade Session Facade Front Controller Presentation Business Integration Resources Composite Entity Session Facade Composite Entity LDAP Servicios de Negocio y Persistencia: Web Services, EJBs.
Arquitectura Concreta:Orquestación y Procesos de Negocio Session Facade Session Facade Front Controller Presentation Business Session Facade Process Orchestration Servicios de Negocio: Web Services, EJBs.
Arquitectura Concreta:Servicios de Negocio y Persistencia Session Facade Session Facade Business Process Business Logic Integration Resources Composite Entity Session Facade Composite Entity Process Orchestration LDAP Servicios de Negocio y Persistencia: Web Services, EJBs.
Ruta de Implementación a SOA • Evaluar grado de madurez SOA y definir grados de madurez que la organización quiere alcanzar en el tiempo. • Implementar un proyecto piloto utilizando SOA con servicios simples que impacten mas de un área de negocio. • Para el caso de sistemas legados habilitar funciones de negocio requeridas por el proyecto piloto como servicios. Evolución SOA
Plataforma de Servicios Lucasian Definir estrategia de IT alineada con objetivos y metas organizacionales Estrategia Empresarial Arquitectura Empresarial Definir arquitectura general para los proyectos de la organización Arquitectura de Referencia SOA Gerencia IT Mentoring de Arquitectura y Diseño Workshop de Arquitectura Definir arquitectura para un proyecto específico Proyectos IT Valoración de Arquitectura
Que es un Framework? Definición • Es un subsistema de software parcialmente construido, de propósito general para resolver un tipo específico de problema. • Los framework deben ser instanciados • Define la arquitectura para una familia de subsistemas • Provee bloques básicos de construcción y adaptadores. Típicamente un framework se construye a partir de patrones de diseño. Los frameworks imponen patrones de diseño para su uso
Que es un Framework? • Ventajas • Son probados. • Algunos reutilizan mejores prácticas de diseño. • Organizan ciertos aspectos del desarrollo de un proyecto. • Minimización de riesgos. • Frameworks Caja-Negra • Alto nivel de abstracción. • Problemas para identificación y corrección de errores en desarrollo y producción. • Mecanismos limitados de extensibilidad. • No permiten optimizaciones. • Riesgos de compatibilidad entre versiones. • Dependencias potenciales con un fabricante.
Lucasian Enterprise Application Framework • Framework Caja-Blanca. • Arquitectura de Referencia SOA para Java Enterprise Edition, soportada con: patrones de diseño, componentes y servicios probados. • Aumenta la productividad para Java, hasta en un 80% en servicios de negocio. • Disminuye costos en tareas repetitivas de programación. • Aumenta la calidad de los componentes Java desarrollados en un proyecto. • Disminuye riesgos a través de la adherencia a estándares y mejores prácticas de arquitectura, diseño y programación.
Arquitectura de Referencia SOA y LEAF Conceptual: Neutral en Tecnología Modelo de Referencia SOA Frameworks Para Java Arquitectura de Referencia SOA Para Java Enterprise Edition LEAF Implementa Arquitectura De referencia Para Java Enterprise Edition Patrones de Diseño Java Enterprise Edition Arquitecturas Concretas para Proyectos creadas Con LEAF Arquitectura Concreta Proyectos Java
Componentes de LEAF 3i Session Facade Front Controller Presentation Business Integration Resources Composite Entity LEAF JSF Components Servicios Horizontales y Frameworks <<Runtime>> Exceptions Framework <<Runtime>> Qos Framework <<Runtime>> Security Framework <<Runtime>> Auditory Framework
LEAF Mindware Guías y Mejores Prácticas para Proyectos Java EE • Lineamientos de Arquitectura de Software para Proyectos J2EE • Framework de Patrones de Diseño J2EE • Arquitectura de Desarrollo de Proyectos J2EE • Guía de Codificación y Estilo con Java. • Guía de Documentación Técnica con JavaDoc. • Mejores Prácticas de programación con Java. • Guía de Manejo de Excepciones con J2EE • Guía de Afinamiento de Contenedores J2EE (BEA WebLogic Server, Oracle Internet Application Server) • Guía de Pruebas de Stress de aplicaciones J2EE
Quién utiliza LEAF? • LEAF se ha utilizado en proyectos de compañías prestigiosas del sector financiero en Colombia: • Sistemas Corporativos - Grupo AVAL • Porvenir S.A. • Banco AV Villas • Opencard S.A. • Delima – Marsh • Lucasian Labs
Matriz de Compatibilidad Matriz de compatibilidad de Contenedores y bases de datos soportados por LEAF: Sistemas Operativos Middleware Bases de Datos * Los productos anteriores, son marcas y logos registrados de sus correspondientes empresas
Generación de Servicios – Service Facades • Generación de Servicios de Negocios. • Generación de clases cliente de integración con servicios de negocios, con framework de validaciones de datos. • Ejecución de alto rendimiento. • Framework de Calidad de Servicio para visibilidad operacional. • Portabilidad entre contenedores: BEA Web Logic 8.x, 9.x, Oracle Internet Application Server 10g, Jboss 3.x, 4.x.
Generación de Data Access Objects y Value Objects • Generación de clases para integración con bases de datos relacionales. • Múltiples servicios para administración de datos. • Código optimizado para Oracle DB. • Acceso a datos de alto rendimiento. • Mejores prácticas de Java y SQLs. • Generación de Value Objects, para transporte de información. • Framework de Calidad de Servicio. • Framework de Validaciones de Datos, locales y remotos. • Forward-caching de validaciones.
Generación de Composite Entities y Data Transfer Objects • Generación de clases Java para mapeo de objetos con bases de datos relacionales. • Múltiples servicios para administración de datos. • Reutilización de DAOs. • Inserciones y actualizaciones masivas • Consultas consolidadas en paralelo de alto desempeño. • Acceso a datos de alto rendimiento. • Mejores prácticas de Java y SQLs. • Generación de Data Transfer Objects. • Framework de Calidad de Servicio.
Generación de Read-Only Entities y Data Transfer Objects • Generación de clases Java para lectura óptima de datos con bases de datos relacionales. • Múltiples servicios para consulta de datos. • Paginación, ordenamiento, filtros. • Acceso a datos de alto rendimiento. • Mejores prácticas de Java y SQLs. • Generación de Data Transfer Objects. • Framework de Calidad de Servicio.
Caso de Estudio – Grupo AVAL Sistema de Comercio Internacional (SISCOI) Sistemas Corporativos - Grupo AVAL. • Grupo Aval es una sociedad "holding" propietaria - directa o indirectamente - de la mayoría de las acciones de empresas líderes del sector financiero, básicamente bancos comerciales y sus compañías filiales (compañías fiduciarias, de leasing, almacenadoras, corporaciones financieras) y la mayor administradora de fondos de pensiones en el país. • A junio de 2003, estas entidades representaban el 19.1% de los activos del sector bancario en Colombia. • SISCOI es el Sistema de Comercio Internacional utilizado por los Bancos de Bogotá, de Occidente y Popular. • Actualmente SISCOI opera en plataforma Forte y se está realizando su migración a J2EE a través de un esfuerzo común de los tres Bancos, liderado por Grupo AVAL.
Caso de Estudio – Grupo AVAL Dominio de Negocio • En SISCOI se administran las operaciones de comercio internacional de estos bancos: giros internacionales, remesas, ordenes de pago, compra y venta de divisas, declaraciones de cambio, operaciones de deuda externa, etc. Plataforma Tecnológica • Oracle Jdeveloper 10g, Oracle Internet Application Server 10g, Oracle 8i DB. • LEAF 2.0 • Arquitectura de Referencia J2EE con Patrones de Diseño. • Integración con Base de Datos con Data Access Objects. • Servicios de Negocios: Stateless Session EJBs • Interface de Usuario Web con Java Server Faces (JSF). • Usuarios: 160 en los tres bancos • Volumen de Transacciones por mes: 32.000 en los tres bancos
Caso de Estudio – Grupo AVAL • 1666 clases Java de presentación y negocio. 434 JSPs. • 35% clases Java de Presentación. • 65% clases Java de negocio. • 630 clases Java de negocio generadas con asistentes de LEAF. • 46% de clases Java han sido codificadas manualmente. • 4 developers de presentación. • 1.5 developers de negocio.
Caso de Estudio – OPENCARD S.A. OPENCARD 7 – OPENCARD S.A. • OPENCARD S.A. es una compañía de desarrollo de software, la cual provee un sistema para administración de tarjetas de créditos para entidades financieras y tiendas de cadena. • Instalaciones en 13 de los más importantes Bancos Colombianos, 2 instalaciones en otros países latinoamericanos y 1 en USA. Plataforma Tecnológica: • Oracle Jdeveloper 10g, OC4J 10g, Oracle 10g DB. • RUP, IBM Rational Modeler, IBM Rational Requisite Pro. • LEAF 2.0 • Arquitectura de Referencia J2EE con Patrones de Diseño. • Integración con Base de Datos con Data Access Objects. • Servicios de Negocios: Stateless Session EJBs • Interface de Usuario Web con Java Server Faces (JSP). • Altos requerimientos de seguridad, concurrencia y procesos batch.
Caso de Estudio – OPENCARD S.A. • 960 clases Java de presentación y negocio. 315 JSPs. • 21% clases Java de Presentación. • 79% clases Java de negocio. • 530 clases Java de negocio generadas con asistentes de LEAF. (76%) • 147 clases Java codificadas manualmente. (24%) • 4 developers de presentación. • 1.5 developers de negocio.
Caso de Estudio – PORVENIR S.A. SISTEMA MULTIFONDOS – PORVENIR S.A. • PORVENIR S.A. compañía líder en el mercado Colombiano de fondos de pensiones. • Proyecto para remplazar el core de la operación del fondo de pensiones y cesantias. • 900 usuarios del sistema, 2’000.000 de clientes y un portafolio de aproximado 9 billones de pesos. Plataforma Tecnológica: • Oracle Jdeveloper 10g, OC4J 10g, Oracle 10g DB. • LEAF 2.0 • Arquitectura de J2EE basada en Patrones de Diseño. • Integración con Base de Datos con Data Access Objects. • Servicios de Negocios: Stateless Session EJBs • Interface de Usuario Web con Java Server Faces (JSP). • Altos requerimientos de seguridad, concurrencia y procesos batch.
Caso de Estudio – PORVENIR S.A. • 1602 clases Java de presentación y negocios. 220 JSPs. • 15% clases Java de Presentación. • 85% clases Java de negocio. • 1059 clases Java de negocio generadas con asistentes de LEAF. (77%) • 265 clases Java codificadas manualmente. (23%) • 5 developers de presentación. • 5 developers de negocio.