Implementación de una visión de arquitectura Experiencias y Resultados

Slides:



Advertisements
Presentaciones similares
Red Social: “Un millón de Amigos”.
Advertisements

Portal Hacienda Digital
Universidad Nacional Autónoma de Honduras
Tecnologías Cliente / Servidor Capitulo III Richard Jiménez V. clienteserver.wordpress.com.
Servicios Web.
Arquitectura Orientada a Servicios (SOA)
PROCESOS ITIL Entrega Soporte Usuario Cliente Gestión de niveles
MI PROGRAMA DE FORMACION
El Papel del DWH en una Arquitectura Orientada a Servicios
Guia Diseño Robert Echeverria
SILVIA BEATRIZ GAVILANES NARANJO KELLY VERÓNICA CARVAJAL CUJI
“SISTEMA DE PASANTÍAS PARA LA FACULTAD DE INGENIERÍA
Java 2 Platform Enterprise Edition
Ingeniería del Software
Yeimi Constanza Patiño
HERRAMIENTAS CASE.
Contexto: Aplicación gráfica.  Siempre que se piensa en separar la funcionalidad de una aplicación de su interacción con el usuario, bien sea una aplicación.
Propósito: * Mostrar indicativos porcentuales de los diversos microorganismos con los que se alimentan el camarón en un manejo semi-intensivo aplicado.
¿Quienes Somos? Scorpion Computer Services es una compañía diversificada en el área de la informática, nuestros servicios están orientados a la automatización.
BASES DE DATOS INTRODUCCION
Arquitectura de una aplicación
Evaluación de sistemas de cómputo
Contenido: 1- Que es el .Net Framework 2- Arquitectura en .Net
DATA WAREHOUSE Equipo 9.
Las etapas de un proyecto
/ Teléfono : Web : Build Solutions IT.
Eloísa Orozco Bueno Alvaro Padilla Vilema
Desarrollo de aplicaciones para ambientes distribuidos
Aplicaciones empresariales Adrián Guillen Carlos Marcano Carlos Sanmartín
Arquitectura Orientada a Servicios
Un sistema de gestión de bases de datos: Es un conjunto de programas que permite a los usuarios crear y mantener una base de datos. Por tanto, el SGBD.
Más de los SIG.
Arquitectura Orientada a Servicios Alicia Maita Harold Martínez Esteban Reyes Verónica Betancout - SOA -
Servidores Conceptos Generales.
Haga clic para modificar el estilo de subtítulo del patrón 28/04/09 Por ARLEDY SARRIA MOLINA NAZLY DIAZ ARIZA JHOANNA MARQUELLA DESARROLLO DE SOFTWARE.
Página 1 19/04/2005 Materia: Tecnología de la Información Curso: Profesora Ariana Rosenthal Tecnología de la Información Profesora Ariana Rosenthal Repaso.
Eguana Reports Servidor de Reportes basado en Tecnología Java y XML Presentado por: Roy Cox S. Fernando Pérez M. José Pérez S.
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
Araí: integración e interoperabilidad de soluciones SIU
CICLO DE VIDA Y NORMAALIZACION DE UN SISTEMA DE BASE DE DATOS
“condición que necesita el usuario para resolver un problema o conseguir un objetivo determinado”. Los requisitos de un sistema son los aspectos que el.
Términos y Conceptos Básicos
Implementación de la Arquitectura Empresarial
Ciclo de vida de un sistema
UNIVERSIDAD LATINA II. FUNCIONES DEL ADMINISTRADOR.
CONTRATOS DE CLIENTES Orlando Sedamano Cornejo Marco Bustinza
DISEÑO CURRICULAR Presentado por: Cesar Augusto Sáenz María Alejandra Hernández 1.contenidos curriculares de competencia.
Introducción al proceso de verificación y validación.
Tecnologías Cliente / Servidor Capitulo II Richard Jiménez V. clienteserver.wordpress.com.
Capítulo 12. Tecnología y herramientas. Ricardo García Mataix
Gestión de proyectos fin de carrera
Preocupaciones del Analista Programador & Usuarios
Arquitectura de una aplicación Arquitectur a: desarrolla un plan general del sistema, asegurando que las necesidades de los usuarios sean atendidas. Ingeniería.
SOLUCIONES EMPRESARIALES
PARÁMETROS PARA LA PRESENTACIÓN DE PROYECTOS EN SISTEMAS
República Bolivariana de Venezuela Universidad Nacional Experimental Politécnica de la Fuerza Armada (UNEFA) Carrera: Ingeniería de Sistemas Cátedra: Análisis.
Las fases del ciclo de la vida de desarrollo de sistemas
El administrador de los formatos de bases de datos Es el profesional que administra las tecnologías de la información y la comunicación, siendo responsable.
Integrantes Miguel Betancourt Alexis Tacuri.  Activiti es una plataforma para la formación de flujos de trabajo y procesos empresariales dentro del.
Servicios Web Conjunto de aplicaciones o de tecnologías con capacidad para interoperar en la Web. Estas aplicaciones o tecnologías intercambian datos entre.
CICLO DE VIDA DE UN SOFTWARE. Es el conjunto de los programas de cómputo, procedimientos, reglas, documentación y datos asociados, que forman parte de.
Autores: Myriam Montes, Iván Viera, Carlos Caizaguano, José Sancho
Diccionario/Directorio de Datos
BASES DE DATOS CONCEPTOS BASICOS Elizabeth Maite Zarate Machaca “El tratamiento eficiente de la información al servicio del usuario”
BASES DE DATOS DISTRIBUIDAS M.C.C. María Guadalupe Villanueva Carrasco INGENIERIA EN SISTEMAS COMPUTACIONALES.
Entregables del Proyecto
Definición: Es un estilo de programación, su objetivo primordial es la separación de la capa de presentación, capa de negocio y la capa de datos. ARQUITECTURA.
Servicios Web-SOA Aula: Fomento 05/06/2006 a 08/05/2006.
Junio, 2013.
Transcripción de la presentación:

Implementación de una visión de arquitectura Experiencias y Resultados Andrés Camilo Bustamante Analista de Arquitectura Gerencia de Desarrollo andrbube@suramericana.com.co Suramericana de Seguros S.A.

Agenda Visión Inicial Proceso de conformación del equipo Experiencias y productos Arquitectura Inicial Plataforma de Publicación de Servicios Logros Preguntas y Respuestas

Visión Inicial Problemática Respuestas rápidas a requerimientos del negocio Ofrecer disponibilidad de soluciones de negocio en cualquier momento, desde cualquier lugar Aprovechar relaciones de gran valor para el negocio con clientes, socios y proveedores Facilitar la automatización de procesos de negocio complejos Proveer seguridad y confiabilidad en las transacciones de negocio Soportar un gran número de usuarios dificil de medir y que puede crecer a gran velocidad

Visión Inicial Reto Velocidad (de desarrollo y de ejecución) Construir aplicaciones con prácticas de diseño e infraestructura lo suficientemente robustas que nos brinden: Velocidad (de desarrollo y de ejecución) Disponibilidad Confiabilidad Proyección Seguridad Calidad en nuestros productos

Visión Inicial Objetivo General Definir una Arquitectura eficiente para la construcción de aplicaciones basada en plataformas abiertas y escalables sobre la cual se implementará toda la estrategia de desarrollo informático a largo plazo.

Objetivos Específicos Visión Inicial Objetivos Específicos Definir las especificaciones: Arquitectura de aplicaciones, de integración y de datos. Definir la infraestructura: Estándares tecnológicos, plataformas y herramientas. Definir el esquema de gobierno: políticas y normas, mejores prácticas, esquemas de coordinación y reporte.

Agenda Visión Inicial Proceso de conformación del equipo Experiencias y productos Arquitectura Inicial Plataforma de Publicación de Servicios Logros Preguntas y Respuesta

Proceso de Conformación del Equipo

Proceso de conformación del equipo Infraestructura Estándares tecnológicos Plataforma de integración y Servidor de Aplicaciones Herramientas y esquemas de administración Especificaciones Arquitectura ( Diseño ) Aplicaciones Técnica Modelo de Integración Modelo de Información Modelo de Interfaces Equipo de Arquitectura Gobierno Coordinación y reporte Políticas y normativas Mejores prácticas (Patrones, Frameworks) Publicación y Documentación

Proceso de conformación del equipo Iniciativa gerencial Necesidad evidente en todos los equipos Definición de perfil de arquitecto Habilidades Responsabiliddes Finalidades Entorno Formulación de proyectos

Proceso de conformación del equipo Definición de perfil de arquitecto - Habilidades Las principales habilidades se deben concentrar en el análisis y diseño de sistemas. Debe conocer y dominar todos los elementos de la infraestructura tecnológica que tiene a su disposición. Se debe concentrar en la optimización y reutilización de todos estos elementos de infraestructura en los desarrollos de software de la organización. Para ello su principal herramienta de trabajo es el uso de patrones de software (patrones de diseño y arquitectura). Estos patrones de diseño se pueden definir como las mejores prácticas que son reconocidas y que buscan solucionar un problema recurrente.

Proceso de conformación del equipo Definición de perfil de arquitecto - Responsabilidades Definición y desarrollo del marco de referencia técnico dentro del cual se logran satisfacer las necesidades de negocio Diseño y reutilización de todos los elementos que conforman la arquitectura Proveer las bases técnicas y administrativas para el diseño y la implementación de sistemas Soportar el procesos de análisis en los proyectos para mantener una consistencia entre los requisitos y la arquitectura

Proceso de conformación del equipo Definición de perfil de arquitecto - Finalidades Análisis y diseños de sistemas (evaluaciones de arquitectura) Soporte técnico y metodológico Evaluación e implantación de nuevas tecnologías (investigación) Definición y administración de toda lógica no funcional Definición y evaluación de esquemas de integración

Proceso de conformación del equipo Entorno El cargo se desarrolla internamente en la Gerencia de Desarrollo informático. Es un puente entre las áreas técnicas y las áreas de desarrollo informático, brindando un soporte en lo relacionado con toda la infraestructura que soportan las aplicaciones (software de la compañía)

Proceso de conformación del equipo Vicepresidencia Administrativa Visión Gerencia de Desarrollo Coordinación Gerencia Técnica Políticas EQUIPO DE ARQUITECTURA Proyecto Gerencia de Grupo de Integración Cambio en Producción Apoyo metodológico Directrices

Procesos de Conformación Conformación actual: Un ejecutivo de arquitectura Tres analistas de arquitectura Un DA (Data Administrator) Un practicante Fuerte relación con la Gerencia Técnica Administración de la plataforma de Bases de Datos Administración de la plataforma Web Application Server J2EE Plataforma Microsoft Soporte para la gerencia de desarrollo

Agenda Visión Inicial Proceso de conformación del equipo Experiencias y productos Arquitectura Inicial Plataforma de Publicación de Servicios Logros Preguntas y Respuesta

Experiencias y Productos Service Oriented Architecture – SOA Plataforma de Publicación de Servicios

Experiencias y Productos Definción de modelo de arquitectura general y un modelo de arquitectura de aplicaciones: SOA MVC Lógica no funcional para el desarrollo de aplicaciones Oracle Application Server 10g Oracle Database 10g Microsoft .NET Framework Definición de modelo de gobierno Especificación de normas, estándares y técnicas Definición de herramientas de desarrollo Jdeveloper, Enterprise Architect, REM, CVS Definición de metodología de desarrollo

Propuesta Inicial de Arquitectura Directorio de Componentes Servicios Servicios de Autenticación y Autorización Servicios de Manipulación de inconsistencias

Persistencia Almacenar y recuperar instancias de objetos del negocio Solucionar la impedancia entre el modelo objetual y el relacional Acceso a repositorios de datos heterogéneos

Persistencia

Persistencia En este nivel se almacena la información permanente de la aplicación. Estos datos pueden almacenarse en un modelo de datos relacional, un servidor NDS, colas de mensajes, archivos texto o XML, o cualquier otro mecanismo de almacenamiento permanente. Repositorio De Datos Archivos XML Oracle MQ

Persistencia

Persistencia Manipulación y consulta de datos Operaciones permitidas por cada tipo de repositorio No tiene inteligencia de negocio Entrega de datos a través de XML Encapsula la complejidad de acceso a cada repositorio Para su implementación se aplicarán los patrones DAO y Factory que facilitan el desacople entre el nivel de Repositorio y el de Persistencia

Persistencia

Persistencia Recuperar instancias de objetos del negocio en los repositorios de datos Almacenar instancias de objetos del negocio en los repositorios de datos Saber cómo construir objetos del negocio a partir del XML obtenido de la capa inferior de Acceso a Datos Saber cómo almacenar un objeto del negocio utilizando el componente DAO adecuado Utilizar el Cache de objetos para mejorar el rendimiento y la escalabilidad de los sistemas

Persistencia

Persistencia Responsabilidades Restricciones Mantener en memoria principal información utilizada frecuentemente por las aplicaciones Ofrecer esquemas de vencimiento de cache Restricciones Los objetos en este nivel deben estar relacionados a entidades cuyos cambios en el tiempo sean mínimos, por ejemplo ciudades y parámetros de aplicación Los objetos en el modelo de cache no debe permitir actualizaciones o entradas diferentes a las existentes en el repositorio de datos.

Persistencia Espejismos Realidades Con la capa de persistencia se solucionarán todos los problemas de acceso a datos de las aplicaciones (Framework de Persistencia, Framework de mapeo Objeto Relacional) El cache será una buena solución para mejorar el rendimiento de las aplicaciones Realidades Mucha de la lógica de negocio está implementada en procedimientos almacenados que deben ser reutilizados por todo el software de la compañía Las bases de datos corporativas son accedidas por muchos sistemas diferentes, por lo que el a menudo el uso de cache no resulta factible

Persistencia Productos Conjuntos de mejores prácticas para el acceso a datos Bind Variables, patrón DAO, patron Factory, DTO Framework liviano de persistencia “casero” Utilidades que aceleran el desarrollo e implementan buenas prácticas. Por ejemplo: Liberación adecuada de recursos (conexiones), uso adecuado de fechas, etc. Evaluación de Frameworks de Persistencia Evaluación de productos como BC4J, TopLink, Hibernate

Propuesta Inicial de Arquitectura

Componentes de Negocio Los componentes del negocio son unidades de software autónomas capaces de realizar operaciones puntuales. La unión de varios componentes del negocio en una operación conforma un servicio. En esta capa, los programadores también cuentan con un Framework unificado de utilidades, desarrolladas tanto por proveedores como internamente.

Componentes de Negocio

Componentes de Negocio Uno de los objetivos de crear una arquitectura base para la construcción de aplicaciones es poder reutilizar la funcionalidad existente. El nivel de Componentes de Aplicación se crea para facilitar la reutilización. Aquí se crearan unidades atómicas de software, es decir, programas con funcionalidad puntual y sin dependencias ni prerrequisitos de procesamiento. En este nivel se encontrará gran parte del core del negocio. La combinación de esta unidades de software conformarán los servicios.

Componentes de Negocio Reglas de Construcción de Unidades de Software Atomicidad Acoplamiento débil entre componentes Orientación hacia Procesos Construcción con base en estándares Reutilización de Funcionalidad

Componentes de Negocio

Componentes de Negocio En este nivel se encontrará un conjunto de utilidades que faciliten el desarrollo de componentes de negocio. La construcción de este nivel se implementa bajo un patrón Fachada

Componentes de Negocio Espejismos Los componentes de negocio siempre utilizarán el framework centralizado sin tener que hacer invocaciones directas de utilidades de terceros, de esta forma los cambios en estas utilidades no afectarán la estabilidad de los componentes de negocio Facilita la capacitación de los desarrolladores en las utilidades disponibles. El diseño es más claro y fácil de entender Se reduce considerablemente el tiempo de diseño de las aplicaciones Permite la convivencia de diferentes versiones de las utilidades

Componentes de Negocio Realidades El esfuerazo necesario para mantener la fachada actualizada es muy grande, por lo que se convierte en un cuello de botella para el proceso de desarrollo. Se debe proveer un conjunto de frameworks estándar de la compañía de manera que sea posible su mantenimient y que contenga las utilidades más importantes Cada proveedor tiene gran parte de su propiedad intelectual en frameworks que aceleran el desarrollo. Estos frameworks deben ser mantenidos por el propio proveedor y en lo posible no deben ser compartidos entre aplicaciones. Cada aplicación tiene su propia versión.

Propuesta Inicial de Arquitectura Directorio de Componentes Servicios

Servicios Los servicios son componentes que, a través de las llamadas a componentes del negocio en un orden específico, orquestan las funciones para ejecutar procesos. Los objetivos de los servicios son facilitar la composición de aplicaciones, reutilizar funcionalidades existentes y mantener disponibles las soluciones del negocio en cualquier momento y desde cualquier lugar Servicios

Servicios Reglas de Construcción de Servicios Encapsulamiento: La lógica de servicios debe ser accedida sólo a través de una interfaz pública bien definida. Acoplamiento débil: Su ejecución no depende de la interacción con componentes externos Construcción con base en componentes: Los servicios son una combinación de componentes de negocio. Su lógica de procesamiento se debe limitar a instanciar los componentes y a tomar decisiones simples dependiendo de los resultados de los métodos invocados.

Servicios Reglas de Construcción de Servicios 4. Enfoque en procesos: La combinación de los componentes utilizados por un servicio debe representar un proceso. 5. Orientación a uso en la red: Un servicio debe tener una interfaz accesible desde la red. Para nuestra tecnología los servicios deben exponerse como componentes límite. En el momento de adquirir la infraestructura adecuada, los servicios podrán exponerse como EJBs, WebServices, etc.

Servicios Reglas de Construcción de Servicios 6. Reutilización: Los servicios deben ser diseñados para ser reutilizables, evitando la duplicidad de implementación de la misma lógica. 7. Construcción con base en estándares: Disminuye el tiempo de mantenimiento y hace mas fácil la capacitación en su funcionamiento, además fortalece la reutilización.

Servicios Espejismos El desarrollo de aplicaciones orientadas a servicios es más fácil pues se reutilizan los servicios existentes Debido a que los servicios son sólo una combinación de componentes, las modificaciones se hacen en forma rápida y sencilla Se tiene claramente ubicado en que parte de la aplicación se encuentran los procesos de negocio

Servicios Realidades El desarrollo de aplicaciones a partir de servicios requiere un cambio del proceso de desarrollo, pues hay que pensar en servicios y no solamente en funciones específicas del sistema Mientras no cambie la especificación de la interfaz y su semántica, cualquier cambio en los servicios será transparente para los consumidores. Si hay un cambio en alguno de estos dos aspectos se hace necesaria la verificación de TODOS los consumidores de los servicios Durante el ciclo de desarrollo y pruebas el ambiente de ejecución debe ser MUY estable pues una aplicación depende de servicios por fuera de su dominio

Propuesta Inicial de Arquitectura Servicios de Autenticación y Autorización

Servicios de Autenticación y Autorización Reto Los servicios deben ser publicados y consumidos entre aplicaciones con sistemas de seguridad heterogeneos Objetivo Los servicios de autenticación y autorización deben facilitar la labor del desarrollador implementando una solución estándar reutilizable

Servicios de Autenticación y Autorización Sistema de Seguridad X Sistema de Seguridad Y Consumidor A Consumidor B Consumidor C Servicio Autenticación Autorización

Servicios de Autenticación y Autorización Espejísmos El problema de la seguridad está resuelto en la lógica no funcional de las plataformas La seguridad declarativa es suficiente para las aplicaciones empresariales Se pueden consolidar los sistemas de seguridad corporativos en un único sistema de seguridad centralizado

Servicios de Autenticación y Autorización Realidades El problema de seguridad en las aplicaciones empresariales es complejo, pues se tienen conjuntos de restricciones, perfiles, cargos, etc... Estos escenarios no son fácilmente implementados con la LNF de las plataformas o con la seguridad declarativa. Se requiere la seguridad dinámica o “programática” Es un hecho que existen muchos sistemas de software tanto internos como externos que probablemente no compartan los requisitos de seguridad y que requieran sistemas de seguridad diferentes. Esto situación no cambiará mucho, aunque se deben tratar de consolidarlos para tener una cantidad administrable

Productos – Aplicación Orientadas a Servicios VISTAS Opciones de Usuario Parámetros de servicios SERVICIO 1 SERVICIO 2 CONTROLLER Administrador de Vistas Control de flujo de aplicación SERVICIOS Propios Reutilización SERVICIO N

Productos – Aplicación Orientadas a Servicios 1. HTTP Request Desde opción de aplicación 2. Solicutud Descripción Servicio (http Request) 4. Descripción Del Servicio (http Response) Directorio De Servicios NSS 3. Consuta Detalles Servicio

Productos – Directorio de Servicios Vista de Descripción del Servicio XML de solicitud de descripción de servicio

Productos – Sistema de Seguridad de Servicios Respuesta a Requerimiento REQUERIMIENTO XML Patrón Fachada Sistema de Seguridad SQL SERVER MVM MUS

Producto - Publicación de Servicios PUBS

Productos – Publicación de Servicios PUBS ¿Qué es PUBS? Conjunto de frameworks, programas y prácticas que pretenden solucionar los problemas comunes de los desarrolladores cuando quieren lograr la integración entre aplicaciones

Productos – Publicación de Servicios PUBS ¿Qué hace PUBS? Define e implementa un modelo de seguridad extensible que facilita la integración de sistemas con modelos de seguridad heterogéneos Provee herramientas para publicar y consumir servicios desde plataformas Java, Microsoft y C/S Ofrece un lenguaje común (interoperabilidad) entre las diferentes plataformas Provee un servicio de localización dinámica Provee un directorio de servicios

Productos – Publicación de Servicios PUBS Módulo de Seguridad Proxy de Seguridad Módulo de Localización CONSUMIDOR Framework Consumidor Framework Publicador HTTP Request SERVICIO HTTP Response - XML

Productos – Publicación de Servicios PUBS XML es el lenguaje común, los frameworks se encargan de la interpretación de esta información

Productos – Publicación de Servicios PUBS Registro y consulta de servicios y localización dinámica

Productos – Publicación de Servicios PUBS FrameworksPubs.pbl FrameworksPubs.jar FrameworksPubs.dll Aplicaciones Proxy PUBS C/S AplicaciónJ2EE Directorio Localizador Middleware Adaptadores en PL/SQL Acceso a Datos Adaptadores de seguridad Middleware Base de Datos Metadata Sesiones Repositorios de seguridad Autenticación Autorización Backend

Productos – Publicación de Servicios PUBS Conclusiones Logra integrar aplicaciones, incluso, aplicaciones desarrolladas en plataformas diferentes Provee mecanismos para compartir servicios de procesamiento y servicios con interfaz de usuario Resuelve el problema de autenticación y autorización entre plataformas de seguridad diferentes Se logra reutilizar funcionalidad clave entre las aplicaciones (calidad de la información, p.e.)

Agenda Visión Inicial Proceso de conformación del equipo Experiencias y productos Arquitectura Inicial Plataforma de Publicación de Servicios Logros Preguntas y Respuesta

Logros Se logró consolidar el área de arquitectura y están claramende definidas sus responsabilidades y alcance Se logró implementar una Arquitectura Orientada a Servicios mediante la adquisición de productos y el diseño de una plataforma de acuerdo con nuestras necesidades Se logró la especificación de un conjunto de normas y políticas claras para el diseño e implementación de aplicaciones

Logros Se tienen herramienta y procedimientos para la evaluación de la arquitectura de los proyectos presentados por los proveedores e internos Los proyectos tiene un soporte técnico importante que les facilita el análisis y la mitigación de riesgos de tecnología Se está mejorando el proceso de desarrollo mediante la implementación de una metodología de desarrollo clara y acorde con las condiciones tecnológicas y del negocio

Agenda Visión Inicial Proceso de conformación del equipo Experiencias y productos Arquitectura Inicial Plataforma de Publicación de Servicios Logros Preguntas y Respuesta

Preguntas y Respuestas