Download frameworks de desarrollo / lenguajes de programación
Transcript
Marzo 2016 FRAMEWORKS DE DESARROLLO / LENGUAJES DE PROGRAMACIÓN ÍNDICE 01 Parte I: Situación Actual y Tendencias 02 Parte II: Experiencia en el uso de framework de desarrollo 03 Parte III: Proyectos/Experiencias que puedan ser similares a las necesidades de la CM Frameworks de desarrollo / lenguajes de programación | 2 PARTE I: Situación actual y tendencia LENGUAJES DE PROGRAMACIÓN Los lenguajes más populares a medio plazo seguirán siendo Java y la familia C. JavaScript pierde impulso en el último año: ¿hemos alcanzado ya el pico de expectativas de los frameworks web? Python o Ruby pueden ser opciones en contextos reducidos y situaciones específicas. En entornos de alta concurrencia, Scala y el lenguaje Go, diseñado por Google, son los indicados. El nuevo lenguaje que crece a un ritmo acelerado es Swift, el sucesor de Objective-C, sobre todo a partir del anuncio de Apple de liberarlo como open source. Los lenguajes se orientarán más al desarrollador que a la máquina, buscando concisión y productividad mediante mayores niveles de abstracción y robustez, y tendiendo a aumentar la estructuración ¡incluso en JavaScript! Fuente: www.tiobe.com (Febrero 2016) Frameworks de desarrollo / lenguajes de programación | 3 PARTE I: Situación actual y tendencia LENGUAJES DE PROGRAMACIÓN Java vuelve a tomar ventaja como plataforma preferida para el desarrollo empresarial C se mantiene indiscutible para sistemas o desarrollo de drivers de dispositivos Fuente: www.tiobe.com (Febrero 2016) Frameworks de desarrollo / lenguajes de programación | 4 PARTE I: Situación actual y tendencia LENGUAJES DE PROGRAMACIÓN apuestas sólidas como más para invertir en ellas en el presente son… Comunidad de desarrollo las la plataforma Java el frontal web en CSS y JavaScript la familia C, C++, C# y Objective-C los especializados Python y Ruby Implementación en proyectos Fuente: www.redmonk.com (Junio 2015) Frameworks de desarrollo / lenguajes de programación | 5 ÍNDICE 01 Parte I: Situación Actual y Tendencias Estado del Arte Arquitectura Referencia de Indra: iDynamics Metodología: Agile Calidad Transformación Digital Tendencias 02 Parte II: Experiencia en el uso de framework de desarrollo 03 Parte III: Proyectos/Experiencias que puedan ser similares a las necesidades de la CM Frameworks de desarrollo / lenguajes de programación | 6 Estado del Arte ENFOQUES EN DESUSO Tendencias Generación automatizada de código a partir de modelos (MDA / CASE) Desarrollo de aplicaciones de forma gráfica por personal de Negocio Impacto en Desarrollo La generación de código se reduce allí donde aporta valor y se realiza a partir de otros elementos de código o estructurales (e.g. catálogo de BB.DD.) Foco en herramientas de desarrollador (IDEs, editores, compiladores, automatización, gestión de dependencias, depuradores, profilers, continuidad, QA…) Los enfoques que han tratado de prescindir de forma generalizada del desarrollador han fracasado. La consecuencia positiva es una percepción mejorada de la importancia de las áreas de Desarrollo y Arquitectura. Fuente: www.tiobe.com (Febrero 2016) Frameworks de desarrollo / lenguajes de programación | 7 Estado del Arte CONTINUIDAD & DEVOPS Tendencias Integración continua Despliegue continuo Entrega continua Nuevas arquitecturas (microservicios) DevOps Impacto en Desarrollo Automatización end-to-end imprescindible Control y gestión total de dependencias Repositorios de artefactos Orientación a desarrollar servicios o componentes más que aplicaciones completas. Aseguramiento continuo de la calidad Después de una adopción lenta de la integración continua, ahora el mercado presiona para reducir el Time-To-Market y lograr entrega continua de software, incluso derribando la barrera tradicional entre Desarrollo y Operaciones Fuente: www.tiobe.com (Febrero 2016) Frameworks de desarrollo / lenguajes de programación | 8 Estado del Arte IRRUPCIÓN DEL CLOUD Tendencias Generalización del Software-as-a-Service (SaaS) Escalabilidad elástica a base de HW commodity Impacto en Desarrollo APIs de servicios ofrecidos por el cloud Plugins y herramientas específicos de cada proveedor de cloud Oferta de las herramientas de desarrollo en el propio cloud (Platformas-a-Service, PaaS) Diferenciación más marcada: programador vs arquitecto/integrador El cloud afecta al área de Desarrollo aumentando la diversidad de opciones disponibles y haciendo mucho más necesaria la figura del arquitecto capaz de entender cómo se va a desarrollar y ejecutar la aplicación sobre la plataforma. Fuente: www.tiobe.com (Febrero 2016) Frameworks de desarrollo / lenguajes de programación | 9 Estado del Arte CONTAINERIZATION INFRASTRUCTURE AS CODE Tendencias Uso de contenedores como “virtualización aligerada sin sistema operativo” El uso de contenedores se complementa a la perfección con Infrastructure-as-aService (IaaS) en el cloud Las áreas de Operaciones han descubierto los beneficios de tratar la configuración de los sistemas como si se tratase de código fuente Impacto en Desarrollo Desarrollo puede crear “pilas” o “imágenes” SW autocontenidas con la aplicación y todas sus dependencias. Se reduce el coste de automatizar el despliegue respecto a desplegar contra middleware o sistemas operativos Nuevos conjuntos de herramientas: Docker, Vagrant, Mesos, Kubernetes… El uso de contenedores ha ayudado a concebir arquitecturas distribuidas mediante microservicios, como alternativa al tradicional despliegue monolítico. El desarrollo cambia por completo con este enfoque de “SOA extremo”. Fuente: www.tiobe.com (Febrero 2016) Frameworks de desarrollo / lenguajes de programación | 10 Estado del Arte BIG DATA INTERNET OF THINGS Tendencias Altos volúmenes de datos Rapidez de adquisición y procesamiento Dispositivos con capacidades y protocolos limitados Impacto en Desarrollo Nuevas bases de datos no relacionales Middleware de paralelización (Hadoop / Storm / Spark) Nuevas plataformas (Arduino / Raspberri Pi) Herramientas de simulación de carga Aunque el sistema en desarrollo no sea de Big Data, hoy los usuarios ya esperan sistemas resilientes y escalables: los desarrollos tienen que prepararse para funcionar aceptablemente bajo condiciones extremas. Fuente: www.tiobe.com (Febrero 2016) Frameworks de desarrollo / lenguajes de programación | 11 Estado del Arte MOVILIDAD Tendencias Crecimiento explosivo de las Apps móviles Plataforma con capacidades diferentes al PC: geolocalización, interfaz táctil, reconocimiento de voz, foto y vídeo… Diversidad de plataformas: Android, iOS, Windows Phone… Importancia creciente de las redes sociales Impacto en Desarrollo Amplia fragmentación de plataformas y dispositivos ¿Aplicación nativa o web? Diseños gráficos duplicados para web de escritorio y web móvil Separación más marcada de backend (servicios) y frontales especializados. JavaScript “framework wars” Si la pasada década contempló el paso del escritorio a la web, en esta década la tendencia lleva desde el navegador al dispositivo móvil, un camino en el que se están replicando muchas situaciones y problemas de la transición anterior. Fuente: www.tiobe.com (Febrero 2016) Frameworks de desarrollo / lenguajes de programación | 12 ESTADO DEL ARTE ORACLE ADF Ventajas Desarrollo rápido de aplicaciones (RAD) Basado en Java EE Ejecuta sobre servidores de aplicaciones Desventajas Mantenimiento costoso de aplicaciones Desarrollo fuera de Java EE, ¿cómo? Lock-in con el proveedor (Oracle) Escasa comunidad de desarrolladores Costes de licenciamiento y formación Curva de aprendizaje muy alta. Lock-in con el IDE (JDeveloper) Consumo recursos (RAM, HD, Red) ADF es el intento de Oracle de hacer RAD en Java al estilo Delphi / Visual Basic. La experiencia con este enfoque nos dice que limita el tipo de software a realizar y dificulta el mantenimiento evolutivo de las aplicaciones. Fuente: www.tiobe.com (Febrero 2016) Frameworks de desarrollo / lenguajes de programación | 13 ÍNDICE 01 Parte I: Situación Actual y Tendencias Estado del Arte Arquitectura Referencia de Indra: iDynamics Metodología: Agile Calidad Transformación Digital Tendencias 02 Parte II: Experiencia en el uso de framework de desarrollo 03 Parte III: Proyectos/Experiencias que puedan ser similares a las necesidades de la CM Frameworks de desarrollo / lenguajes de programación | 14 iDynamics ¿QUÉ ES IDYNAMICS? IDYNAMICS ES MÁS QUE UNA ARQUITECTURA Está compuesta por: Arquitectura Técnica Herramientas de Productividad Componentes reutilizables Documentación Formación Frameworks de desarrollo / lenguajes de programación | 15 iDynamics ¿QUÉ VALOR APORTA IDYNAMICS? Componentes reutilizables y probados • Homogeneización y evolución tecnológica • Mas de 60 componentes reutilizables • Evoluciona al ritmo de las demandas de todos los clientes de Indra y de la Tecnología Evitar Riesgos • Tecnología probada seleccionada en base a experiencias • Basada en tecnología Open Source probada con amplia implantación en el mercado. Gestión del Conocimiento • Comunidad Open Source • Comunidad propia para la gestión de conocimiento, documentación, etc... Suite integrada • • • • • Reducción de costes Evitar costes por investigación propia Arranque rápido Minimizar curva de aprendizaje Herramientas de gestión de activos Factorización • Metodología ágil y orientada a la deslocalización • Implantada en más de 5 factorías Indra Construye sistemas en la nube • • • • Despliegue en Cloud Multiplataforma Escalibilidad Mantenimiento Metodología de trabajo • Eficiencia, Productividad y reutilización • Integrada con herramientas MIND. • Mas de 15 herramientas de productividad (desde ingeniería inversa hasta asistentes virtuales) Frameworks de desarrollo / lenguajes de programación | 16 iDynamics ASPECTOS CLAVES DE IDYNAMICS Homogeneización tecnológica de las soluciones desarrolladas a medida Asegurar la mejora continua de la calidad y el servicio en GENERA todas las fases del ciclo de vida Asegurar la escalabilidad y el rendimiento Proceso de desarrollo agnóstico (independiente de ACTIVOS REUTILIZACIÓN proveedor y plataforma tecnológica) CONSIGUE Aumentar la eficiencia, productividad y estandarización del modo de trabajo Mejorar la reutilización HERRAMIENTAS PRODUCTIVIDAD Reducción de los costes de formación, capacitación y PERMITE mantenimiento. Facilitar la movilidad de recursos entre operaciones (reducción de la curva de aprendizaje y adaptación en las mismas) NORMATIVA Y PROCEDIMIENTOS CONTROL Y CALIDAD Mejora de la gestión del conocimiento técnico de los recursos Frameworks de desarrollo / lenguajes de programación | 17 iDynamics ARQUITECTURA TÉCNICA EMPRESARIAL DE REFERENCIA DE INDRA Capas Arquitectura Proceso 1 Proceso 2 Gestor Transacciones Distribuidas Proceso N Procesos Bussines Process Manager (BPM)) Registro Integración Integración Servicios técnicos/ Infraestructura Repositorio Enterprise Service Bus (ESB) DICOM Registro y Repositorio Caché de Datos Componentes Integración Gestor Seguridad Sistemas Planificador Sistemas Procesador por Lotes JMS Procesador Diferido Recursos BBDD Soluciones Otros Sistemas Monitorización Frameworks de desarrollo / lenguajes de programación | 18 iDynamics ARQUITECTURA TÉCNICA DE SISTEMA DE REFERENCIA Capas Servicios técnicos/ Infraestructura Arquitectura Cliente Otros canales Gestor Transacciones Locales Gestor de Seguridad Presentación Monitorización Frontal Web Frontal Cliente Pesado Auditoría Servicio 1 Exposición e Integración de Servicios Lógica de Negocio Servicio 2 Servicio N Logs Servicio 1 Servicio 2 Servicio M Reglas Servicios ETL Contexto Componentes Comunes Presentación ORM Persistencia / Datos BBDD BBDD Repositorio de Datos Monitorización Frameworks de desarrollo / lenguajes de programación | 19 iDynamics ARQUITECTURA TÉCNICA DE SISTEMA DE REFERENCIA PARA JAVA Capas Servicios técnicos/ Infraestructura Arquitectura Cliente Otros canales Gestor de Seguridad mvc Presentación Gestor Transacciones Locales Frontal Cliente Rico (RIA) Auditoría Exposición e Integración de Servicios Lógica de Negocio Logs Contexto BPM Motor Reglas Servicios de Negocio Extracción, Transformación, Carga (ETL) Componentes Comunes Presentación Persistencia / Datos ORM Monitorización 20 Frameworks de desarrollo / lenguajes de programación | 20 iDynamics NUCLEO DE IDYNAMICS - SPRING ECOSISTEMA SPRING HERRAMIENTAS DE SPRING Spring es el corazón de las Arquitecturas Técnicas de Referencia para Java ROO (Rapid Application Development) Códigos ejemplo para cada Framework Tutoriales Documentación Desde Arquitectura somos miembros activos de la Comunidad Spring y aportamos propuestas que se incorporan en las nuevas versiones 21 Frameworks de desarrollo / lenguajes de programación | 21 iDynamics LA ARQUITECTURA SE ESTRUCTURA EN PATRONES, HERRAMIENTAS Y COMPONENTES Herramientas de Productividad de Desarrollo Patrones de Diseño de Arquitectura Lógica Cliente Presentación Generación Automática de CRUDS Generación de capa web a partir de tablas Negocio Creación automática de aplicaciones Generación automática de Buscadores Herramienta desarrollo de Reglas Modelado de Flujos de Navegación Herramientas de Productividad Datos Cliente inteligente de Visión de Logs, Auditoría, Monitorización Ingeniería inversa de Bases de Datos Configuración de Herramientas spring Herramienta ETL Catálogo de Componentes Técnicos y de Negocio reutilizables Componentes Reutilizables Log Gestión colas Motor Reglas Present. DOJO Single sign on Seguridad Gestión Transa. Batch Present. EXTJS Monitorización Informes Caché distribuida ETL Auditoría Planificador AZUL: pueden usarse para otra Arquitectura. … … … GRIS: Técnicos Present. DOJO Arquitectura Técnica Seguridad Log Plataforma de Ensamblaje de Componentes Técnicos Reutilizables CORE iDYNAMICS Frameworks de desarrollo / lenguajes de programación | 22 iDynamics EL ARQUITECTO SE CENTRA EN ELEGIR LOS COMPONENTES QUE SON NECESARIOS ENSAMBLAR Catálogo de Componentes técnicos reutilizables Log Gestión colas Motor Reglas Present. DOJO Single sign on … Seguridad Gestión Transa. Batch Present. EXTJS Monitorización … Informes Caché distribuida ETL Auditoría Planificador … Proyectos pequeños Proyectos medianos Proyectos grandes CORE iDYNAMICS 23 Frameworks de desarrollo / lenguajes de programación | 23 iDynamics ROADMAP Versión 4.1 Versión 4.2 Versión 5.0 Versión 5.1 Abr May Jun Jul Ago Sep 2015 Oct Nov Dic Ene Feb Mar Abr May 2016 Frameworks de desarrollo / lenguajes de programación | 24 iDynamics ¿QUÉ DIFERENCIA A IDYNAMICS QUE NO TIENEN OTRAS ARQUITECTURAS? Funcionalidad iDynamics Otras Arquitecturas Instalación ágil del entorno de desarrollo en un puesto de trabajo (todos los desarrolladores tienen puestos idénticamente configurados) Si (Manual) Componentes Técnicos generalizados dispuestos para su uso inmediato (23 Java, 17 en .NET y 20 en Tiempo Real) Si Algunos, pero no catalogados y generalizados Ensamblaje automático de los componentes de la arquitectura, basándose en los estándares definidos por los expertos de Arquitectura de la Organización. Si (Manual) 18 Herramientas de mejora de la productividad en Java Sí (Manual) Las herramientas de desarrollo de iDynamics propagan la Arquitectura de Referencia definida en la Organización. Sí (Manual) Interfaz amigable en lenguaje natural (Arquitecto Virtual) Si (Programación) Supervisión y comprobaciones automáticas a los desarrolladores de las reglas que deben cumplir la arquitectura (Arquitecto Virtual) Si NO Arquitectura Lógica automáticamente actualizada siempre online (Modelo de clases, modelo de datos, modelo servicios,…) Si NO Adaptable a los requisitos arquitectónicos del cliente satisfaciéndolos de forma transparente al programador Si La Arquitectura hace uso de los conocimientos disponibles en Indra y en el resto de organizaciones, basada en frameworks estándares de facto en la Industria del Desarrollo Software. Si En algunas En algunas 25 Frameworks de desarrollo / lenguajes de programación | 25 iDynamics MODELO DE GOBIERNO iDynamics en Comunidad basado en: Dinamizar a los usuarios de la Arquitectura que podrán: Descargar iDynamics Implantarla ellos mismos basándose en los manuales de la Comunidad Reportar los bugs que encuentren Contratar los servicios de Soporte de Indra El Órgano de Gobierno de la Comunidad (CORE): Crea y mantiene los activos reutilizables de la Arquitectura de iDynamics Soporta a los proyectos que contraten sus servicios mediante los Arquitectos Expertos Definen Versiones Oficiales Publican Parches Abrir y Resolver Tickets • Versiones Entorno • Parches •Versiones Documentación •Knoweledge Base •Sistema de Tickets / Incidencias Comunicar o Proponer Mejoras Incidencias Órgano de Gobierno Formar Dar Soporte Supervisar Arquitectos Expertos Arquitecto Experto Contratar Proyectos Documentación Dar Soporte Usuario 26 Frameworks de desarrollo / lenguajes de programación | 26 iDynamics FORMACIÓN Y ESPECIALIZACIÓN FORMACIÓN Formación reglada Introducción de iDynamics Introducción a la implantación de iDynamics Soporte documental y colaborativo Toda la documentación, cursos y guías de Componentes y Herramientas de mejora de la productividad se encuentra en el Portal de la Comunidad ESPECIALIZACIÓN Arquitectos Expertos: Actualmente hay 90 arquitectos expertos nacionales / internacionales en Indra. La especialización consiste en una autoformación guiada que finaliza en un examen / workshop para obtener una certificación. 27 Frameworks de desarrollo / lenguajes de programación | 27 iDynamics ROLES DEFINIDOS ROL Órgano de Gobierno FUNCIONES Supervisar, formar y dar soporte a los Arquitectos Expertos Definir qué componentes se incluyen en la versión oficial de iDynamics Para cada componente existe un propietario que lo mantiene, amplia y resuelve las incidencias reportadas Generalizar (agnostizar) Componentes creados en proyectos Solucionar e integrar incidencias detectadas en base a prioridades Coordinar la formación de todos los usuarios Arquitectos Expertos Soportar a los proyectos que contraten sus servicios Proponer y desarrollar nuevos componentes y mejoras de iDynamics Detectar bugs de la arquitectura e informarlos al Órgano de Gobierno Publicar consultas y respuestas en el foro de la comunidad Usuarios de iDynamics Descargar iDynamics Implantarla según los manuales públicos bajo su responsabilidad Reportar bugs encontrados mediante incidencias Colaborar en documentación y tests de la tecnología Solicitar componentes nuevos de la Plataforma Desarrollo de un componente nuevo sobre la Plataforma bajo aceptación y supervisión del OG Posibilidad de contratar los servicios de Soporte de los Arquitectos Expertos 28 Frameworks de desarrollo / lenguajes de programación | 28 iDynamics VERSIONES DE LA ARQUITECTURA VERSIÓN ENTERPRISE PARCHES CARACTERÍSTICAS Es la versión que el OG publica como homologada Tiene una planificación de entregas fijada Sólo la pueden modificar desde el OG El OG decide las mejoras o modificaciones que incluye El OG verifica que todos los parches no afectan a otros componentes Está ubicada en el SVN y se obtiene por contrato Son de la versión Oficial Los puede desarrollar el OG y los Arquitectos Experto Sólo el OG decide su publicación 29 Frameworks de desarrollo / lenguajes de programación | 29 iDynamics DETECCIÓN DE BUGS DE LA PLATAFORMA A través de la herramienta web JIRA se podrán reportar posibles bugs detectados en la plataforma. A estos bugs pueden responder otros miembros de la Comunidad ampliando información, indicando en qué versión está solucionado, como bypasearlo, etc El Órgano de Gobierno de la Comunidad revisará estos posibles bugs pudiéndolos levantar como incidencias, los que sean realmente, o descartándolos. Usuario Comunidad Órgano de Gobierno 30 Frameworks de desarrollo / lenguajes de programación | 30 ÍNDICE 01 Parte I: Situación Actual y Tendencias Estado del Arte Arquitectura Referencia de Indra: iDynamics Metodología: Agile Calidad Transformación Digital Tendencias 02 Parte II: Experiencia en el uso de framework de desarrollo 03 Parte III: Proyectos/Experiencias que puedan ser similares a las necesidades de la CM Frameworks de desarrollo / lenguajes de programación | 31 Metodología Ágil PROBLEMÁTICAS DE DESARROLLO Velocidad Incertidumbre Los períodos de obsolescencia son cada vez menores. Cada vez es más difícil determinar qué va a necesitar un mercado tan cambiante. Con la globalización han aparecido dos factores que están condicionando los desarrollos de software: Velocidad e Incertidumbre. Frameworks de desarrollo / lenguajes de programación | 32 Metodología Ágil PROBLEMÁTICAS DE DESARROLLO Consecuencia de estos dos factores, los procesos de desarrollo de software presentan una serie de problemas recurrentes Modificación de los requisitos funcionales durante la vida del proyecto. Aparición continua de nuevas tecnologías. Dificultad para obtener prototipos funcionales que permitan verificar las funcionalidades en fases tempranas. Detección de errores y problemas de integración en fases “demasiado avanzadas” del proyecto. Tendencia a “reinventar la rueda”. Consumo de recursos en tareas repetitivas. Frameworks de desarrollo / lenguajes de programación | 33 Metodología Ágil PROBLEMÁTICAS DE DESARROLLO Para solucionar los problemas existentes en el desarrollo de software se puede: Utilizar herramientas que automaticen las tareas. Aplicar metodologías ágiles en los proyectos que su naturaleza lo permita. Aplicar métodos de desarrollo orientados a pruebas (TDD). Definir un modelo de buenas prácticas. Compartir el conocimiento entre los miembros de los diferentes equipos de desarrollo. FINALIDAD: Mejorar la CALIDAD del software Frameworks de desarrollo / lenguajes de programación | 34 Metodología Ágil TIPOS DE METODOLOGÍAS ÁGILES Las metodologías ágiles se caracterizan por la obtención de prototipos funcionales desde fases muy tempranas del desarrollo. Incremento iterativo (SCRUM) Atendiendo a cuándo se obtienen estos prototipos tendremos metodologías ágiles de: El proyecto se divide en ciclos, obteniéndose un prototipo al final de cada ciclo. Incremento continuo (KANBAN) Las tareas van apareciendo de forma continua, y el equipo libera prototipos al finalizar las tareas. Frameworks de desarrollo / lenguajes de programación | 35 Metodología Ágil METODOLOGÍAS ÁGILES VS. TRADICIONALES • • • • • • Preparadas para los cambios durante el proyecto. El cliente es parte del equipo de desarrollo. Grupos pequeños (< 10 personas) Pocos roles. Se obtienen prototipos funcionales desde fases tempranas del desarrollo. Se aporta valor añadido al proyecto durante el desarrollo del mismo. • Presentan cierta resistencia a los cambios. • El cliente interactúa con el equipo mediante reuniones con el responsable. Ágiles Tradicionales • Grupos grandes. • Más roles. • No se dispone de prototipos funcionales hasta fases muy avanzadas del proyecto. • El proyecto no obtiene valor añadido durante su desarrollo. Frameworks de desarrollo / lenguajes de programación | 36 Metodología Ágil GESTIÓN ÁGIL: ENTREGA DE VALOR AL CLIENTE Gestión Ágil La utilización de un modelo de gestión evolutivo o ágil tiene las siguientes ventajas sobre la utilización de un modelo de gestión predictivo o tradicional: Reducción del Time To Market Reducción del desperdicio (80% vs 20%) Se mantiene la ventaja innovadora Las previsiones de inversión / ROI se suavizan Valor Ágil Tradicional Tiempo Frameworks de desarrollo / lenguajes de programación | 37 Metodología Ágil FUNDAMENTOS DEL DESARROLLO ÁGIL Metodología Ágil IC La Integración Continua es una técnica que consiste en compilar todo el proyecto y realizar todas las pruebas desarrolladas cada vez que se añade una nueva funcionalidad al producto TDD TDD o desarrollo orientado a pruebas (Test Driven Development) es una práctica de desarrollo que implica escribir primero las pruebas y desarrollar a posteriori el módulo a probar. Si se aplican conjuntamente prácticas TDD e Integración Continua, se asegura la ausencia total de efectos colaterales indeseables cuando se añade una nueva funcionalidad a una aplicación. Frameworks de desarrollo / lenguajes de programación | 38 Metodología Ágil SCRUM Procesos previos Definición de la pila del producto Planificación del sprint Análisis Funcional Pruebas funcionales Revisión Retrospectiva Construcción Seguimiento Fase 1: Inicio del proyecto Fase 2: Ejecución del sprint Frameworks de desarrollo / lenguajes de programación | 39 Metodología Ágil KANBAN Kanban es una metodología ágil más orientada a aquellos grupos de trabajo que cumplan las siguientes características: 1- Es necesario realizar entregas en cualquier momento, y no solamente a la finalización de un sprint. 2- Es necesario tener la posibilidad de cambiar la prioridad de tareas al vuelo. 3- El equipo de trabajo tenga que abordar tareas de diferentes proyectos en una misma unidad temporal. Si, además, se trabaja con Scrum, las entregas sólo se realizarán a la finalización de un sprint, no se podrán abordar tareas no planificadas en el presente sprint hasta su finalización y todas las tareas deberán ser del mismo proyecto. En otras palabras, Scrum se adecuará más a aquellos grupos de trabajo que puedan planificar las tareas de un proyecto en un período relativamente corto de tiempo (un sprint) y Kanban se adecuará mas a aquellos grupos de trabajo que reciban un flujo continúo de trabajo que se deba ir priorizando al vuelo. Las tareas pueden pertenecer a múltiples proyectos. Frameworks de desarrollo / lenguajes de programación | 40 Metodología Ágil SCRUMBAN Para el caso de servicios de mantenimiento, la propia naturaleza de las tareas que requieren, hace que continuamente aparezcan historias que deben de ser tratadas de inmediato. A la vez, se pueden estar haciendo desarrollos para evolución de un sistema. Esta situación hace que el equipo de trabajo se tenga que adaptar a una dualidad de forma que: 1- Por una parte, se tenga una lista de tareas a realizar que se pueden planificar e implementar aplicando prácticas metodológicas de incremento iterativo. Es el caso de desarrollos evolutivos y/o perfectivos. 2- Por otra parte, se tiene un flujo continuo e imprevisto de tareas que deben ser abordadas cuanto antes, como por ejemplo, la atención a incidencias o mantenimiento correctivo. SCRUM + KANBAN = SCRUMBAN Frameworks de desarrollo / lenguajes de programación | 41 ÍNDICE 01 Parte I: Situación Actual y Tendencias Estado del Arte Arquitectura Referencia de Indra: iDynamics Metodología: Agile Calidad Transformación Digital Tendencias 02 Parte II: Experiencia en el uso de framework de desarrollo 03 Parte III: Proyectos/Experiencias que puedan ser similares a las necesidades de la CM Frameworks de desarrollo / lenguajes de programación | 42 Calidad INTRODUCCIÓN El aseguramiento de calidad (Quality Assurance) cada vez se enfrenta a mayores dificultades por la mayor complejidad de los sistemas actuales: distribuidos, hiperintegrados, resilientes, big data, plataformas cloud... Con iDynamics, la arquitectura de los desarrollos, la metodología ágil y las herramientas elegidas están alineadas en un proceso iterativo y multidisciplinar para que el proceso de QA sea altamente efectivo. Integración continua Despliegue continuo Entrega continua Análisis de la calidad del código Pruebas automatizadas, Aspectos técnicos: unitarias, seguridad, rendimiento, integradas y funcionales escalabilidad… Frameworks de desarrollo / lenguajes de programación | 43 Calidad PRUEBAS UNITARIAS Y FUNCIONALES Pruebas Unitarias: Para cada una de las capas de las aplicaciones se desarrollan test unitarios con para mantener la consistencia dentro de cada capa. Pruebas Integradas: Se desarrollan test integrados con cada una de las capas de la aplicación para mantener la consistencia entre capas. entre Pruebas Funcionales: Dentro de las pruebas funcionales distinguimos dos partes: Documentación de Pruebas: Las pruebas son documentadas en la herramienta TestLink , de esta forma se tiene trazabilidad entre los requisitos establecidos y las pruebas funcionales asociadas a cada uno de ellos. Automatización de Pruebas: Las pruebas funcionales se automatizan a través de la herramienta Selenium , de esta forma se realizan de una forma sencilla y rápida tanto las pruebas de regresión como las nuevas pruebas funcionales definidas. Integración Continua: A través de la herramienta se automatizan las compilaciones del código de forma diaria, se ejecutan los test unitarios e integrados y las pruebas funcionales, la propia herramienta lo realiza de forma programada dos veces al día y obtenemos un informe con el resultado del estado del desarrollo del proyecto. JMS Frameworks de desarrollo / lenguajes de programación | 44 Calidad JENKINS Jenkins es el servidor de automatización open source líder del mercado para construcción, testeo, despliegue y automatización de virtualmente cualquier proyecto. Jenkins, desarrollado en Java, dispone de cientos de plugins y se integra de forma excelente con Maven y con contenedores Docker. Frameworks de desarrollo / lenguajes de programación | 45 Calidad SONARQUBE SonarQube es una plataforma abierta para gestionar la calidad del software, a lo largo de 7 ejes y multitud de análisis y dashboards de visualización SonarQube analiza más de 20 lenguajes diferentes, incluyendo Java, C/C#, JavaScript, CSS, Swift, XML y tecnologías Web. Frameworks de desarrollo / lenguajes de programación | 46 Calidad OPTIMIZACIÓN Apache JMeter Se trata de una herramienta Open Source diseñada para analizar y medir el rendimiento de un sistema mediante la ejecución de pruebas funcionales de carga. Multiplataforma: Unix (Solaris, Linux, etc.), Windows (98, NT, XP, etc.) OpenVMS Alpha 7.3+. Permite actuar sobre distintos tipos de servidores: Web (HTTP, HTTPS), SOAP, Base de datos (JDBC), LDAP, JMS, Email (POP3 e IMAP). Multihilo: Ejecución de pruebas de carga de forma concurrentes simulando acceso simultáneo de conjuntos de usuarios. Permite identificar desviaciones típicas en tiempos de respuesta. Monitorización de respuestas en gráficas online. Testeo distribuido. Profiling Herramienta de monitorización y diagnóstico de ejecución de aplicaciones: Detección de problemas de distribución de memoria, consumo, fugas. Ejecución de recolector de basura. Detección de cuellos de botella. Monitorización de hilos de ejecución activos y objetos en memoria. Bloqueos mutuos. Detección de SQL ineficiente. Identificación de secciones de código más frecuentemente ejecutadas. Identificación de secciones que presentan mayor tiempo de ejecución. JMS Frameworks de desarrollo / lenguajes de programación | 47 ÍNDICE 01 Parte I: Situación Actual y Tendencias Estado del Arte Arquitectura Referencia de Indra: iDynamics Metodología: Agile Calidad Transformación Digital Tendencias 02 Parte II: Experiencia en el uso de framework de desarrollo 03 Parte III: Proyectos/Experiencias que puedan ser similares a las necesidades de la CM Frameworks de desarrollo / lenguajes de programación | 48 Transformación Digital SOFIA2: SMART PLATFORM es una Plataforma IoT actúa como middleware + repositorio, es capaz de procesar miles de eventos por segundo, con capacidades almacenamiento y analítica Big Data, con reglas integradas, interfaces multiprotocolo y multilenguaje y todo operable desde una consola Web. MIDDLEWARE REPOSITORIO TIEMPO REAL BIG DATA ANALÍTICA REGLAS INTEGRADAS REDES SOCIALES https://www.youtube.com/watch?v=clkJvf8aa0A MULTIPROTOCOLO 100% WEB Frameworks de desarrollo / lenguajes de programación | 49 Transformación Digital SOFIA2: GARANTÍA DE EVOLUCIÓN Seguridad: Garantiza el acceso a la información tanto a nivel de invocación WS como de datos. Dispositivos: permite la interconexión de todo tipo de dispositivos Dispositivos Seguridad ICM Conectividad: ofreciendo diferentes mecanismos de conexión (REST, MQTT, Web Services, WebSockets, JMS,..) Conectividad Redes: la Plataforma debe soportar conexiones or dpiversas redes: TCP, Bluetooth, Zigbee,… Apps & Analytics Redes Base Datos: gestión ágil del modelo de datos de las aplicaciones, tanto para su uso en tiempo real como su almacenamiento BigData. Base Datos Apps & Analytics: Facilita el desarrollo y mantenimiento de aplicaciones y así como el acceso a los datos por terceros o para su explotación analítica Frameworks de desarrollo / lenguajes de programación | 50 Transformación Digital SOFIA2: MUCHO MÁS… SOCIAL MEDIA Capacidad de búsqueda activa en las redes sociales por palabras clave, y almacenamiento de la info como ontología, con posibilidad de representación geografica o analisis semántico… Publicación automática en redes sociales a partir de la información recibida y almacenada en el repositorio. Frameworks de desarrollo / lenguajes de programación | 51 Transformación Digital SOFIA2: MUCHO MÁS… OPENDATA Publicación de contenidos de interés público e importación de contenidos OpenData en la plataforma para su posterior uso. Frameworks de desarrollo / lenguajes de programación | 52 Transformación Digital SOFIA2: MUCHO MÁS… DASHBOARDS, GADGETS, GEOREFERENCIACION… Frameworks de desarrollo / lenguajes de programación | 53 Transformación Digital IDYNAMICS MOBILE Arquitectura móvil Mobile Apps iDynamics Mobile Plataforma móvil iDynamics Mobile proporciona un patrón arquitectónico para la homogeneización y automatización del desarrollo de Mobile Apps. Backends Frameworks de desarrollo / lenguajes de programación | 54 Transformación Digital IDYNAMICS MOBILE > Listeners Componentes de Negocio: Handlers Independientes, para funciones del cliente Personalizaciones y localizaciones Look & Feel nativo o híbrido Configuración dinámica Resources BUS Servicios de aplicación > Servicios arquitectónicos Threads Notifications Cache Security Self-Test Network File System Logging Geo Componentes Arquitectónicos: Comunes entre Apps Comunes entre plataformas Funciones específicas a bajo nivel Altamente probados Componentes reutilizables Configuración dinámica Accesories Frameworks de desarrollo / lenguajes de programación | 55 Transformación Digital PLATAFORMAS DE MOVILIDAD ¿Con cuáles trabajamos? Mas de 10 años de experiencia en el área de movilidad, desde el WAP 1.0 al HTML5 pasando por desarrollos nativos, híbridos y basados en plataformas de movilidad nos aportan el conocimiento requerido para poder evaluar puntos fuertes y débiles de cada una de las plataformas líderes. Frameworks de desarrollo / lenguajes de programación | 56 ÍNDICE 01 Parte I: Situación Actual y Tendencias Estado del Arte Arquitectura Referencia de Indra: iDynamics Metodología: Agile Calidad Transformación Digital Tendencias 02 Parte II: Experiencia en el uso de framework de desarrollo 03 Parte III: Proyectos/Experiencias que puedan ser similares a las necesidades de la CM Frameworks de desarrollo / lenguajes de programación | 57 Tendencias TENDENCIAS JAVA • • • • • • • • • • • • Lenguaje orientado a objetos y funcional con una programación elegante y concisa Compila y es compatible con Java Menos verboso que Java, promete más productividad Conjunto de frameworks para trabajar con Scala como Play, Scalatra, Lift, Bowler,… API ligera para JSON API HTTP 2.0 y WebSocket API mejorada procesos Sist. Operativo Mejoras de concurrencia Segmentación de la caché de código Compilador inteligente Código fuente modular para el JDK Trazado unificado en el Garbage Collector • • • • • • • • • • Plataforma (o framework) que busca el desarrollo simple de aplicaciones escalables y multihilo. Akka funciona sobre Scala y Java Akka ofrece un modelo de concurrencia basado en actores (en una máquina virtual JVM pueden correr millones de actores a la vez) Framework para el desarrollo de aplicación orientada sa eventos que se ejecuta en la máquina virtual de Java. Polyglot: Java, JS, Ruby, Python… Modelo de concurrencia simple Distributed Event Bus Sistema modular Soporte HTTP, TCP, WebSockets,… Frameworks de desarrollo / lenguajes de programación | 58 Tendencias TENDENCIAS EN EL MUNDO SPRING • • • • • • Simplifica la creación de aplicaciones de aplicaciones y servicios Spring extendiendo el concepto de Runtime configurando por debajo el AppServer, Contextos de Spring, monitorización,… todo basado en una aproximación Convention-Over-Configuration. • Es un motor de plantillas HTML (+XML), en este caso implementado sobre Java. Integrado con Spring MVC, Spring Security,Tiles,… Sencillo de usar Extensible Ecosistema alrededor: testing, Play, Eclipse,… • • • • • Provee una forma consistente para el acceso a repositorios tanto relacionales como no relacionales Soporte para Hadoop, MongoDB, Neo4J, Redis, Riak, Solr, ElasticSearch, Cassandra, DynamoDB,… Es la propuesta de Spring para desarrollar aplicaciones reactivas a eventos con baja latencia y alto throughput sobre la JVM (capaces de soportar millones de eventos por segundo). Se basa en el patrón Reactor y también en el modelo de Actores Funciona sobre LMAX Disruptor Frameworks de desarrollo / lenguajes de programación | 59 Tendencias TENDENCIAS EN EL MUNDO BIG DATA • • Conjunto de principios para arquitecturar sistemas Big Data en Tiempo Real. Se divide en 3 Capas: Batch layer, Serving layer y Speed layer. • • • • • • • • Sistema distribuido y particionado de mensajería. Ofrece rapidez, escalabilidad, durabilidad Soporte particiones en tópicos Sincronización entre clusters Gran rendimiento • • • Sistema distribuido de computación en tiempo real” Storm es para el procesamiento en tiempo real lo que Hadoop para el procesamiento por lotes. Puede usarse para procesamiento de streams, computación continua, RPC distribuida,… Es un motor distribuido para procesar grandes volúmenes de datos. Puede ser hasta ser 100 veces más rápido que un trabajo MapReduce Hadoop Ofrece ecosistema: Shark (SQL Engine), Streaming (como Storm), Mlib (Machine Learning), GraphX,… Frameworks de desarrollo / lenguajes de programación | 60 Tendencias TENDENCIAS EN DESARROLLO WEB • • • • • • • • Plataforma que permite desarrollar sobre Javascript para la capa servidor a través del motor Javascript Google’s V8 Extensible a través de módulos Módulos de integración con numersosos sistemas,… Muy eficiente • Framework Javascript opensource mantenido por Google con capacidades MVC para el desarrollo de aplicaciones SPI (Single Page Interface). Funcionamiento como motor de plantillas HTML a través de sus atributos customs Herramienta open source que nos permite construir aplicaciones multiplataforma en Javascript + HTML5 + CSS generando desplegables nativos Ofrece gran número de herramientas Soporta todas las principales plataformas Arquitectura de plugins • Polyfills son APIS cross-browser que aportan funcionalidad HTML5 a navegadores que no lo soportan nativamente. Si estás en navegador HTML5 se usa la funcionalidad HTML5 ysi estás en uno anterior, usa un workaround. El API es el de HTML5 (y no un nuevo API propio) • • Frameworks de desarrollo / lenguajes de programación | 61 Tendencias TENDENCIAS EN BASES DE DATOS • • • • • Movimiento que promueve un nuevo tipo de bd adecuado a necesidades. Soportan muy alta carga Almacenamiento escalable horizontalment Lenguaje de consultas sencillo 4 familias: Stores Key-Value, Colum Family Stores, Document Databases y Graph Databases • • • • • • Base de datos NoSQL, orientada a documentos. Rápida, escalable y fácil de usar (se la conoce como el MySQL NoSQL) Sin transacciones Escalable horizontalmente Almacenamiento BSON (Binary JSON) Indices geospaciales Frameworks de desarrollo / lenguajes de programación | 62 Tendencias OTRAS TENDENCIAS • • • • • • • • • • • Es un motor de búsqueda distribuido en tiempo real basado en Java. Funciona en tiempo real Distribuido y escalable horizontalmente Multi-tenancy Búsquedas full.text Orientado a documentos API RESTful • • • • • Ofrece un Server Proxy que gestiona API endpoints. Se basan en estándares (Oauth, JSON,…) Control Seguridad Monitorización y Control de Calidad del Servicio (QoS) Gestión y Provisión de APIs Es un sistema libre y open-source de caché distribuido de objetos en memoria. Tiene un diseño muy simple pensando en un simple despliegue y acceso. Es empleado por múltiples sitios webpara el almacenamiento en caché de datos en la memoria RAM, Ofrece APIS para la mayoría de los lenguajes: C, Java, PHP, Python, Perl,… Frameworks de desarrollo / lenguajes de programación | 63 ÍNDICE 01 Parte I: Situación Actual y Tendencias 02 Parte II: Experiencia en el uso de framework de desarrollo 03 Parte III: Proyectos/Experiencias que puedan ser similares a las necesidades de la CM Frameworks de desarrollo / lenguajes de programación | 64 Parte II: Experiencia en el uso de frameworks de desarrollo VENTAJAS Desarrollo de aplicaciones Web con la apariencia / funcionalidad a las aplicaciones típicas de escritorio basadas en Swing y/o Java Web Start. (RIA) Desarrollo estructurado de las aplicaciones por la definición propia del framework de desarrollo de 3 capas. Una normativa muy completa que ayuda a la calidad de las aplicaciones. Componentes propios que ayudan a la integración con sus sistemas actuales: USU / USUI / DOMI / GIS / etc. Arquetipos que ayudan al inicio de los proyectos desde 0. Entorno de desarrollo preparado para framework ATLAS Generador de código a partir de entidades de base de datos para patrones CRUD. Se facilitan herramientas para revisión de la calidad de código (COVER) Frameworks de desarrollo / lenguajes de programación | 65 Parte II: Experiencia en el uso de frameworks de desarrollo INCONVENIENTES Se identifican 3 categorías: Arquitectura empresarial. Ausencia de piezas arquitectónicas: Tareas asíncronas: Batch. ICM explota una plataforma de ejecución en modo Batch (Control M), pero su configuración es estática y no permite una relación dinámica con los proyectos. Es necesario un framework donde los proyectos puedan de una forma ágil, integrar tareas asíncronas -programadas y a demanda- (colas de ejecución de tareas, reintentos, notificación del resultado, almacenamiento automático de informes, etc.) Carpeta electrónica corporativa. ICM explota una plataforma Documentum pero carece de un desarrollo de Carpeta Electrónica corporativo. Plataforma de Reporting integrado con Carpeta Electrónica. ICM explota una plataforma de generación de informes (Crystal Reports) pero carece de un framework que permita a los proyectos una definición rápida y una generación semiautomática de los formularios de criterios, validación de los mismos y envío de esos parámetros al informe destino. Frameworks de desarrollo / lenguajes de programación | 66 Parte II: Experiencia en el uso de frameworks de desarrollo INCONVENIENTES Técnicas: Framework orientado a proyectos pequeños. El uso del ATLAS para proyectos grandes y multimódulo no está soportado por el framework, haciéndose muy difícil: El desarrollo de librerías compartidas. Complica la gestión de dependencias. No existe una capa de exposición de servicios. Obsolescencia en las tecnologías subyacentes en el framework. Las versiones utilizadas por el framework tanto de Spring como de Hibernate se han quedado obsoletas e impiden la utilización de nuevas características y técnicas de desarrollo: spring boot, spring data, JPA 2.1, HTML5, SASS, etc. La utilidad de ingeniería inversa genera código con problemas conocidos (antipatrón) lo que puede afectar seriamente al rendimiento: Problema de n+1 consultas. No genera relaciones M:N Frameworks de desarrollo / lenguajes de programación | 67 Parte II: Experiencia en el uso de frameworks de desarrollo INCONVENIENTES No existe un componente de log que deje trazas automáticas mediante una configuración sencilla. Ausencia de modo consulta en el acceso a las pantallas. Deficiencias en el arquetipo y falta de automatización en desarrollos tipo batch y batch a demanda. Tanto en el uso del framework como en la normativa falta la definición y las herramientas para poder la gestión de este tipo de componentes (cola de ejecución de tareas, programación de las tareas a demanda, etc.). Limitación al ámbito Request (guardando el estado en cliente) de las peticiones HTTP. Tanto componentes propios de Atlas (como puede ser la lista paginada) como otros formularios ad-hoc mejorarían al explotar la potencia del ámbito ViewScope de JSF2 para las peticiones dentro de una misma vista. Compatibilidad de las aplicaciones con versiones de navegadores ya obsoletos como puede ser iExplorer 7.0 que obliga a realizar adaptaciones de las pantallas en función de la versión de los mismos. Nuevas versiones de Atlas, no tienen una compatibilidad hacia atrás testada adecuadamente. Se producen bug’s. Frameworks de desarrollo / lenguajes de programación | 68 Parte II: Experiencia en el uso de frameworks de desarrollo INCONVENIENTES La capa de presentación utiliza tecnología JSF 2 que comparada con las nuevas tecnologías RIA queda muy limitada en relación a: Responsive. Esta tecnología no es responsive Recarga completa de pantallas a cada petición. Aunque está permitida la utilización de AJAX, JSF no gestiona de manera completa y cómoda el envío de formularios a la capa servidora. Excesivo tráfico entre cliente y servidor. El hecho de ser aplicaciones con una sesión muy limitada o sin sesión, hace que el volumen de datos intercambiado entre cliente y servidor crezca mucho en algunos casos. No válida para dispositivos de movilidad. Resulta muy complicada la implementación de componentes reutilizables. La técnica más adecuada para la implementación de componentes JSF 2 es composite. Esta técnica no genera verdaderos componentes, si no más bien se limita a definir una interfaz. Se han encontrado varios problemas de esta índole: utilización de bindings en los componentes, renderizados parciales con AJAX, utilización del value de componentes tipo UIInput, etc. Frameworks de desarrollo / lenguajes de programación | 69 Parte II: Experiencia en el uso de frameworks de desarrollo INCONVENIENTES Procedimiento y Normativa: Repositorio de código. La normativa para la utilización del repositorio de código (Subversion) no facilita el desarrollo de sistemas multimódulo, falta una política clara de versiones y dependencias. Obligación de realización de pruebas unitarias del código autogenerado o falta de generación de los casos de prueba. Ausencia de frameworks de pruebas unitarias de acceso a datos tipo DBUnit. Indefinición en la aplicación de las capas. La normativa exige la utilización de DAOs, servicios y controladores, pero no define claramente la responsabilidad de cada capa lógica. Esto hace que se encuentre muy frecuentemente en la capa de controladores código perteneciente a la capa de servicios e incluso a la capa de acceso a datos. P.ej. es muy frecuente incluir en el Controller que atiende a una página, fragmentos de código que tienen que ver con la capa de datos: definición de consultas, mantenimiento de datos, etc. Frameworks de desarrollo / lenguajes de programación | 70 Parte II: Experiencia en el uso de frameworks de desarrollo ÁREAS DE MEJORA Actualizar versiones de Richfaces, Spring e Hibernate (versiones anticuadas) e incorporación de los nuevos frameworks del ecosistema Spring (spring-data, spring-boot, etc.) Configuración del generador de código de Atlas que permita decidir los componentes visuales asociados a las relaciones entre los objetos. Actualmente solo genera ListaValores en este sentido, cuando se podría utilizar ComboValores en algunas situaciones. Creación de nuevo arquetipos para proyectos multimódulo, componentes visuales con tecnología composite , etc. de forma que se puedan reutilizar en los distintos proyectos de desarrollo del proveedor. Proveer mecanismos de validación de entrada de datos / presentación de errores al usuario que se puedan utilizar en los desarrollo a parte de los propios del ciclo de vida de JSF. Utilización de herramientas de integración continua y definición de procedimientos para control de versiones e integración continua. Frameworks de desarrollo / lenguajes de programación | 71 ÍNDICE 01 Parte I: Situación Actual y Tendencias 02 Parte II: Experiencia en el uso de framework de desarrollo 03 Parte III: Proyectos/Experiencias que puedan ser similares a las necesidades de la CM Frameworks de desarrollo / lenguajes de programación | 72 Parte III: Proyectos y experiencias similares a las necesidades de la cm ¿QUÉ CLIENTES YA HAN CONFIADO EN IDYNAMICS? 21 Clientes y 28 Proyectos 5 Software Labs 7 Mercados Frameworks de desarrollo / lenguajes de programación | 73 Parte III: Proyectos y experiencias similares a las necesidades de la cm Oficina de Arquitectura Empresarial Desarrollo, Mantenimiento y Evolución de Arquitectura de desarrollo global para el BBVA, actualmente más de 30 proyectos en desarrollo sobre la nueva arquitectura diseñada para el BBVA DESCRIPCIÓN • Diseño de la Arquitectura que simplifica el desarrollo de Aplicaciones en entornos distribuidos y soporte a proyectos • Selección de herramientas y suites de productividad • Desarrollo de componentes corporativos para ser utilizados en proyectos • Definición de guías el desarrollo para BBVA • Estandarización del modo de trabajo de los equipos • Soporte metodológico • Inclusión de nuevas herramientas de productividad para dar soporte a los nuevos desarrollos • Consultoría de arranque de proyectos • Formación a equipos de proyectos TECNOLOGÍA / KEYWORDS JAVA JEE SPRING MDA ECLIPSE WEBSPHERE APPSERVER BASADA EN iDynamics Frameworks de desarrollo / lenguajes de programación | 74 Parte III: Proyectos y experiencias similares a las necesidades de la cm AZKAR Definición, diseño y construcción de la plataforma para clientes AzkarView para efectuar el seguimiento de expediciones, incidencias y recogidas. Plataforma de seguimiento para clientes DESCRIPCIÓN Desarrollo de una nueva plataforma de cliente para que pueda gestionar, en tiempo real sus operaciones con Azkar. Cubre la funcionalidad de “Seguimiento de sus expediciones”, “Seguimiento y solicitud de ordenes de recogida”, “Gestión de las incidencias habidas en sus operaciones”, “Seguimiento de operaciones de logística”, “Etiquetaje de expediciones en Web”, “Integración con sistemas cliente (interoperabilidad”. Los datos s se sincronizan en tiempo real con el operacional de transporte (BIDEA) y logística (SISLOG) de Azkar, el volumen de dato a manejar es el siguiente: Expediciones: 12.222.197 Incidencias Bultos: Recogidas: 1.677.929 Transacciones diarias: 2.000.000 .: 151.888.785 41.501.522 Desarrollo de interfaces Web Service para interoperabilidad con clientes. TECNOLOGÍA / KEYWORDS Arquitectura JEE basada en la arquitectura de referencia de Indra iDynamics Integración con middleware TIBCO Integración con clientes a través de Web Services Programación con framework i-builder Arquitectura SOA Replicación y sincronización grandes volúmenes de datos con GOLDEN GATE DE ORACLE Frameworks de desarrollo / lenguajes de programación | 75 Parte III: Proyectos y experiencias similares a las necesidades de la cm Portal Empleado Portal del Empleado es una web para gestión de vacaciones, formación, datos del empleado, organigrama, gestión de dietas y descarga de nóminas Intranet DESCRIPCIÓN • Arquitectura multicapa JEE basada en iDynamics • Ofrece componentes ricos de presentación como calendarios y Gantt. • Utiliza motores de búsqueda. • Permite gestionar un workflow, permisos y autorizadores. • Dispone de una gestión integral de formación: cursos, acciones formativas, asistentes. • 150 usuarios x 8000 operaciones diarias. TECNOLOGÍA / KEYWORDS Arquitectura JEE basada en la arquitectura de referencia de Indra iDynamics Ext JS IBM WebSphere App Server Oracle Database Servicios web REST Jasper Reports Directorio LDAP Frameworks de desarrollo / lenguajes de programación | 76 Parte III: Proyectos y experiencias similares a las necesidades de la cm SGPR El Sistema Gestor de Puntos de Recarga centraliza la administración de los equipamientos físicos de los Operación de puntos de recarga puntos de recarga de vehículos eléctricos y ofrece a los clientes de iberdrola información útil, relevante y actualizada sobre los puntos de recarga que pueden usar en cada momento. DESCRIPCIÓN • Se trata de un sistema de administración de los dispositivos físicos de los puntos de recarga. • Arquitectura dirigida a Servicios y a Eventos basada en iDynamics. • La orientación a servicio permite reutilizar servicios de negocio entre el frontal administrativo y el frontal de clientes. • Los mecanismos de mensajería ofrecen la escalabilidad y robustez necesaria para gestionar la alta carga prevista para el sistema a medio o largo plazo. TECNOLOGÍA / KEYWORDS Arquitectura JEE basada en la arquitectura de referencia de Indra iDynamics IBM WebSphere App Server Oracle Database Servicios web SOAP / REST Mensajería JMS Frameworks de desarrollo / lenguajes de programación | 77 Parte III: Proyectos y experiencias similares a las necesidades de la cm Plataforma de consulta de servicios NEON Construcción de plataforma de consulta de servicios de información de pares y cobertura ADSL. Integración con los sistemas de backend de la compañía a través de la plataforma NEON de telefónica. Desarrollo basado en la arquitectura de referencia de Indra iDynamics. DESCRIPCIÓN Definición, diseño y construcción de la plataforma de consulta de servicios de NEON: Gestión Desarrollo de portal para consultas de servicios de información de par en el Nuevo Entorno de Operadores Nacionales (NEON) Integración de los servicios de consulta de información de disponibilidad de pares de cobre y cobertura ADSL provista por el entorno NEON de Telefónica de España Implantación de una arquitectura escalable que permita la inclusión de los nuevos servicios de información del Nuevo Entorno de Operadores Nacionales (NEON) Definición de una arquitectura de presentación que soporte el crecimiento de la aplicación. TECNOLOGÍA / KEYWORDS Arquitectura J2EE basada en la arquitectura de referencia de Indra iDynamics Desarrollo del front-end mediante ExtJS Integración con la plataforma de telefónica vía WS Servidor de Aplicaciones Jboss 5 Frameworks de desarrollo / lenguajes de programación | 78 Parte III: Proyectos y experiencias similares a las necesidades de la cm Servicio de Prestaciones Familiares Desarrollo del nuevo Sistema de Prestaciones Familiares de la Caja de los Andes de Chile. El Sistema gestiona las subvenciones, becas, pensiones, indemnizaciones laborales y cualquier otro tipo de ayuda dirigida a la población chilena.. DESCRIPCIÓN Las tareas realizadas en este proyecto son las siguientes:: Toma de Requisitos, Análisis Funcional y Plan de Pruebas. Diseño de Arquitectura y Diseño Técnico. Construcción de los distintos módulos de la aplicación con Arquitectura JEE. Despliegue de los distintos módulos en el servidor de aplicaciones Oracle Weblogic 11g. TECNOLOGÍA / KEYWORDS Arquitectura J2EE basada en la arquitectura de referencia de Indra iDynamics Reingeniería de procesos de negocio de lenguaje C a Java. Migración de datos con Talend Open Data Solutions y PL-SQL Servidor de Aplicaciones WebLogic 11 Gestor de Base de Datos Oracle 11g Frameworks de desarrollo / lenguajes de programación | 79 Parte III: Proyectos y experiencias similares a las necesidades de la cm SSRL Permite realizar seguimiento en tiempo casi real de los envíos realizados por los Ejércitos al teatro de operaciones, mediante la infraestructura de lectura automática y manual desplegada en los nodos de la cadena logística. Sistema de Seguimiento de Recursos Logísticos DESCRIPCIÓN • Aplicación web basada en la arquitectura iCore4TR que permite realizar seguimiento de los envíos realizados por los tres Ejércitos (>3 Mill. envíos anuales). • El sistema es el nodo central que registra las ubicaciones de los envíos mediante lecturas de etiquetas RFID activas o de códigos de barras realizadas en los nodos periféricos de paso, y permite obtener notificaciones y alarmas asociadas con una previsión de tránsito preestablecida. • El nodo central se integra con los sistemas logísticos de los tres Ejércitos mediante servicios web (gestionados por la Plataforma SOA del Ministerio de Defensa) para la obtención de los envíos a controlar, y mediante servicios rest con el sistema Site Manager (del proveedor SAVI) implantado en cada nodo periférico para gestionar la infraestructura necesaria para la lectura. TECNOLOGÍA / KEYWORDS Arquitectura JEE basada en la arquitectura de referencia de Indra iDynamics Plataforma SOA Tecnología hardware y software de SAVI Servicios web y rest RIA con ExtJS RFID activo Códigos de barras Frameworks de desarrollo / lenguajes de programación | 80 Parte III: Proyectos y experiencias similares a las necesidades de la cm IDYNAMICS MOBILE Procesos Electorales. Soluciones para la difusión de los datos de escrutinio Guía Urbana. Información Sociocultural del ayuntamiento de Madrid. ENCE. Plan Estratégico para la movilización del negocio (WFM, CRM, Gestión de Activos) Cita Médica Andalucía. Aplicación para la solicitud, consulta y anulación de cita médica Casos de Negocio CITI. Proyecto Instand Card. Redefinición de un proceso de negocio core del Banco FCC. Consultoría Sistema móvil de cita médica. Solicitud, consulta tecnológica para la definición de plataforma MDM/MAM corporativa y anulación de cita médica Repsol. Proyecto Q&A. Movilización de un Proceso de Gestión Documental Frameworks de desarrollo / lenguajes de programación | 81 Parte III: Proyectos y experiencias similares a las necesidades de la cm SERGAS HOGAR DIGITAL ASISTENCIAL Plataforma de Asistencia Domiciliaria que permita gestionar los procesos definidos dentro del marco Hogar Digital Asistencial de SERGAS, y acceder a servicios sanitarios y hospital en casa desde diferentes canales. El sistema Core permite realizar de forma remota y continuada el seguimiento del paciente por parte de los profesionales sanitarios. Los sistemas frontales suministran acceso para pacientes y cuidadores a los servicios sanitarios y hospital en casa desde diferentes canales: Portal Web, Televisión interactiva y Apps móviles IOS y Android. Principales funcionalidades: Registro de biomedidas (conectividad con dispositivos biomédicos). Calendario y Eventos (citas, medicación, etc.). Cuestionarios de salud Recursos formativos, Carpeta de Salud, Videoconferencia, Mensajería, alertas vía notificaciones PUSH, etc. Tecnología / Keywords Lenguaje de desarrollo: HTML5, CSS, JavaScript, Objective-C, Java. Plataforma Mobile : Android, iOS Plataformas SmartTV: Samsumg, LG Frameworks de desarrollo / lenguajes de programación | 82 Parte III: Proyectos y experiencias similares a las necesidades de la cm Automatización del proceso de contratación de tarjetas de CITI Reducción del tiempo de tramitación del alta de contratación, de 15 a 3 días Tecnología / Keywords Lenguaje de desarrollo: Objective-C Plataforma Mobile : iOS, Dispositivos iPad OCR, Firma Electrónica, Cloud Computing Instand Card. Proceso de solicitud de tarjetas para dispositivos iPAD. Solución de movilidad en Cloud para la tramitación de contratos de tarjetas de crédito que dota a los agentes colaboradores de una infraestructura móvil (tabletas) y la plataforma de servicios para realizar las contrataciones en cualquier lugar y con las pertinentes validaciones a los órganos reguladores. Movilización de la fuerza de ventas y comercial mediante la aportación de un sistema móvil de información, captación y tramitación de venta de productos de la compañía. Solución de firma manuscrita digitalizada avanzada para proporcionar la máxima capacidad de validación del documento electrónico tramitado Certificación de European Agency of Digital Trust (EADTrust) sobre el proceso de firma y garantía legal. Automatización del proceso de captura de información del usuario (datos del DNI), mediante OCR. Firma Manuscrita Digitalizada Avanzada Frameworks de desarrollo / lenguajes de programación | 83 Parte III: Proyectos y experiencias similares a las necesidades de la cm SISTEMA MÓVIL DE CITA MÉDICA Aplicación para la solicitud, consulta y anulación de cita médica. Gestión de las citas médicas de una forma gráfica y sencilla. Aplicación multiusuario para poder gestionar las citas de varias personas, almacenándose los perfiles para no tener que volver a introducir todos los datos Posibilidad de añadir la cita al calendario personal. Integración con las demás vías de solicitud de cita médica (presencial y telefónica). 54.000 gestiones en los primeros 2 meses, lo que supone un 4,12% de la actividad de Salud Responde 14.000 gestiones en sólo un mes en Sevilla Más de 28.000 descargas Tecnología / Keywords Lenguaje de desarrollo: PhoneGap, HTML5, CSS, JavaScript, JQueryMobile Plataforma Mobile : Multiplataforma Frameworks de desarrollo / lenguajes de programación | 84 Parte III: Proyectos y experiencias similares a las necesidades de la cm GESTIÓN DEL PARQUE DE DISPOSITIVOS MÓVILES Servicio de Gestión del Parque de Dispositivos Móviles Implantación de la solución MDM MobileIron para la gestión del parque de dispositivos móviles. Servicio de atención al usuario de dispositivos móviles integrado en el actual CAU general de REE. Definición de políticas de seguridad y buenas prácticas. Instalación, configuración y despliegue de la plataforma. Solución multiplataforma: Android, iOS, BlackBerry y Windows Phone. Escalable a un mayor número de dispositivos y plataformas. Multidispositivo: Tablets y Smartphones. Para la alta dirección y para equipos de trabajo en campo. Actualización del S.O. y securización de las comunicaciones . Administración centralizada y distribución de aplicaciones corporativas. Servicio de CAU durante 3 años. Soporte y mantenimiento (24x7), de primer nivel. Technology / Keywords Mobile Device Management Mobile Content Management Mulltiplataforma Políticas y buenas prácticas Frameworks de desarrollo / lenguajes de programación | 85 Parte III: Proyectos y experiencias similares a las necesidades de la cm GUÍA URBANA DEL AYUTAMIENTO DE MADRID Guía Urbana de información sociocultural del Ayto de Madrid. Solución móvil para la publicación de todos aquellos contenidos de interés socio-cultural en la ciudad de Madrid. Herramienta sobre tecnología iPhone/iPad y Android, que permite la consulta de información de interés al visitante de Madrid, a través de una interfaz de usuario fácil de usar e intuitiva. Inclusión de Servicios Basados en la Localización para permitir una mejor experiencia de usuario a la hora de consumir servicios y contenidos adecuados al perfil y las necesidades del usuario. Tecnología / Keywords Lenguaje de desarrollo: Java (J2EE), Javascript, Objective-C Plataforma Mobile : iOS iPad Frameworks de desarrollo / lenguajes de programación | 86 Parte III: Proyectos y experiencias similares a las necesidades de la cm SOLUCIÓN MÓVIL DEL SERVICIO DE ASISTENCIA Movilidad aplicada a la Gestión del Servicio de Asistencia en Carretera de Mapfre Asistencia. Ver Vídeo Aplicación móvil para dar cobertura nacional e internacional en 33 países. Solución multiplataforma desarrollada para sistemas operativos IOS (iPhone e iPad), Android, Symbian, Blackberry y Windows Phone. Herramienta para dar soporte a las necesidades de solicitud de servicio de ayuda en carretera y peticiones de valoración de seguros de viaje. Integración con Sistemas de Información corporativos de Mapfre (AMA) para la consulta e integración del workflow de negocio. Tecnología / Keywords Software SIG: Google Maps Lenguaje de desarrollo: Java (J2ME), Objective-C Plataforma Mobile : iOS iPhone, Android, Black Berry, Symbian. Frameworks de desarrollo / lenguajes de programación | 87 Parte III: Proyectos y experiencias similares a las necesidades de la cm APLICACIÓN MÓVIL PARA VOTO ELECTRÓNICO. ELECCIONES DE ARGENTINA(AGOSTO 2013) Movilidad aplicada al proceso de votación de las Elecciones Generales de Argentina Solución móvil sobre dispositivos móviles creando un dispositivo único, sobre plataformas Android e iOS, para tanto la emisión del voto electrónico, implementando QR codes cifrados, como para el conteo en la propia mesa electoral. Una sola aplicación configurable para una de las dos funcionalidades. Integración con servicios web definición de mesa y transmisión resultados. Manteniendo un protocolo comunicación seguro y la normativas seguridad pertinentes aplicables proceso electoral del país. de de de de al Tecnología / Keywords Dispositivos: Tablet / Smartphone Sistema Operativo: iOS, Android Integración Servicios REST JSON,. Frameworks de desarrollo / lenguajes de programación | 88 Parte III: Proyectos y experiencias similares a las necesidades de la cm SEGUIMIENTO DEL PROCESO ELECTORAL DE LA COMUNIDAD VALENCIANA Movilidad aplicada al seguimiento del proceso electoral de la Comunidad Valencia del 22 Mayo. Solución móvil sobre dispositivos IPAD de Apple para el seguimiento en tiempo real de los avances de participación y el recuento provisional a distintos niveles (Municipio, Provincia y Comunidad) de las elecciones municipales y autonómicas en la Comunidad Valenciana del 22 de Mayo del 2011. Uso de herramientas y procedimientos de representación temática sobre la cartografía base de referencia de la Comunidad Valenciana (Mapas de rangos, diagramas de barra, diagramas de tarta, etc.), para conseguir una rápida y fácil interpretación on-line de los datos de escrutinio. Tecnología / Keywords Software SIG: Bing Maps, ArcGis Server. Lenguaje de desarrollo: Java (J2EE), Javascript, Objective-C Plataforma Mobile : iOS iPad Frameworks de desarrollo / lenguajes de programación | 89 Parte III: Proyectos y experiencias similares a las necesidades de la cm SEGUIMIENTO DEL PROCESO ELECCIONES GENERALES 20N Movilidad aplicada al seguimiento del proceso Elecciones Generales 20 Noviembre. Solución móvil sobre dispositivos IPAD de Apple para el seguimiento en tiempo real de los avances de participación y el recuento provisional a distintos niveles (Municipio, Provincia, Comunidad, País) de las Elecciones Generales de 20 de Noviembre de 2011. Uso de herramientas y procedimientos de representación temática sobre la cartografía base de referencia del estado español (Mapas de rangos, diagramas de barra, diagramas de tarta, etc.), para conseguir una rápida y fácil interpretación on-line de los datos de escrutinio. Tecnología / Keywords Software SIG: Bing Maps, ArcGis Server. Lenguaje de desarrollo: Java (J2EE), Javascript, Objective-C Plataforma Mobile : iOS iPad Frameworks de desarrollo / lenguajes de programación | 90 Parte III: Proyectos y experiencias similares a las necesidades de la cm Aplicación móvil para la difusión de los resultados de las Elecciones Asamblea de Madrid Aplicación para el seguimiento de los resultados electorales desde dispositivos Android e iOS. La aplicación disponible para dispositivos Android e iOS dispone de una navegación sencilla y muy gráfica que facilita el acceso rápido a la información del área geográfica seleccionada y presenta los resultados agregados desde el ámbito local. Tecnología / Keywords Dispositivos: SmartPhones y Tablet Plataforma Mobile : iOS, Android Frameworks de desarrollo / lenguajes de programación | 91 Parte III: Proyectos y experiencias similares a las necesidades de la cm PROYECTOS SIMILARES: CTTI - Centro de Telecomunicaciones y Tecnologías de la Información (Generalitat de Catalunya). Canigó FW propio (http://canigo.ctti.gencat.cat/canigo/framework/) Canigó se define como un “Espacio de trabajo tecnológico común para el desarrollo y ejecución de aplicaciones en el ámbito de los sistemas corporativos y departamentales de la Generalitat de Cataluña”, siendo sus objetivos: Ofrecer una arquitectura común de construcción de aplicaciones J2EE. Proporcionar un entorno de trabajo, documentación, apoyo y mantenimiento de sus componentes. Simplificar la complejidad inherente a J2EE, ofreciendo un marco de referencia de trabajo. Ofrecer una solución alineada con los estándares y soluciones más utilizadas por la comunidad OpenSource. Ofrecer una solución abierta que permita añadir e intercambiar cualquier pieza con un coste reducido. Ofrecer una solución de interconectividad con los servicios corporativos. Ofrecer patrones de desarrollo ampliamente aceptados. Frameworks de desarrollo / lenguajes de programación | 92 Parte III: Proyectos y experiencias similares a las necesidades de la cm PROYECTOS SIMILARES: CTTI - Centro de Telecomunicaciones y Tecnologías de la Información (Generalitat de Catalunya). Arquitectura basada en MVC. Canigó define su ubicación según una arquitectura en 3 capas y 4 módulos transversales: Capas: • Capa de Presentación: los patrones de desarrollo actuales fomentan la separación de la capa de presentación en dos partes diferenciadas: • Servidor: con JSON y micro-servicios HTTP/REST • Cliente: cliente estático ligero basado en el punto anterior. • Capa Lógica de Negocio • Capa de Datos/Integración Módulos: • Módulo de Seguridad: tiene como propósito gestionar la autenticación y autorización de los usuarios que acceden a las aplicaciones • Módulo de Integración: facilitar el acceso a diferentes servicios que ofrece la Generalitat. • Módulo de Persistencia • Módulo de Soporte: módulo que facilita el uso de un conjunto adicional de funcionalidades mediante el framework (transferencia de ficheros, envío de correos, planificador de tareas. Manipulador de datos, merging, SMTP. • Módulo de Operación: instrumentalización y monitorización Frameworks de desarrollo / lenguajes de programación | 93 Parte III: Proyectos y experiencias similares a las necesidades de la cm PROYECTOS SIMILARES: CTTI - Centro de Telecomunicaciones y Tecnologías de la Información (Generalitat de Catalunya). Frameworks de desarrollo / lenguajes de programación | 94 Parte III: Proyectos y experiencias similares a las necesidades de la cm PROYECTOS SIMILARES: Generalitat de Valencia. No es un framework, es una arquitectura de desarrollo (e-sirca). Frameworks de desarrollo / lenguajes de programación | 95 Parte III: Proyectos y experiencias similares a las necesidades de la cm PROYECTOS SIMILARES: Generalitat de Valencia. Arquitectura validada en robustez y seguridad Frameworks de desarrollo / lenguajes de programación | 96 Parte III: Proyectos y experiencias similares a las necesidades de la cm PROYECTOS SIMILARES: Generalitat de Valencia. Frameworks de desarrollo / lenguajes de programación | 97 Parte III: Proyectos y experiencias similares a las necesidades de la cm PROYECTOS SIMILARES: Generalitat de Valencia. Frameworks de desarrollo / lenguajes de programación | 98 Parte III: Proyectos y experiencias similares a las necesidades de la cm PROYECTOS SIMILARES: Generalitat de Valencia. Frameworks de desarrollo / lenguajes de programación | 99 Parte III: Proyectos y experiencias similares a las necesidades de la cm PROYECTOS SIMILARES: Generalitat de Valencia. Frameworks de desarrollo / lenguajes de programación | 100 Parte III: Proyectos y experiencias similares a las necesidades de la cm PARTE III: PROYECTOS Y EXPERIENCIAS SIMILARES A LAS NECESIDADES DE LA CM Gas Natural ADA FW propio La Arquitectura de Desarrollo Avanzado (ADA) constituye un conjunto de herramientas, procedimientos y servicios que proporcionan una estructura de proyecto bien definida para crear aplicaciones de forma rápida y sencilla. ADA proporciona un entorno de desarrollo y explotación basado en tecnologías Java como Spring Framework, Hibernate, Apache Maven, Spring Integration, Spring Security, Adobe Flex y Vaadin en la capa de presentación. La unión de estas tecnologías permite un sencillo mantenimiento y evolución de las aplicaciones, siendo sus objetivos: Evolucionar la arquitectura basándola en estándares. Reducir los costes de desarrollo. Minimizar los costes de mantenimiento. Limitar el riesgo en desarrollo. Frameworks de desarrollo / lenguajes de programación | 101 Parte III: Proyectos y experiencias similares a las necesidades de la cm PARTE III: PROYECTOS Y EXPERIENCIAS SIMILARES A LAS NECESIDADES DE LA CM Gas Natural Frameworks de desarrollo / lenguajes de programación | 102 • Parte III: Proyectos y experiencias similares a las necesidades de la cm PARTE III: PROYECTOS Y EXPERIENCIAS SIMILARES A LAS NECESIDADES DE LA CM Gas Natural Capa de Presentación ADA permite utilizar distintas tecnologías para esta capa, por ejemplo, Flex o Vaadin mediante el desarrollo de los conectores adecuados. Vaadin: es un framework JAVA opensource para crear aplicaciones web HTML. A diferencia de las bibliotecas de JavaScript y soluciones basadas en plugin para navegador, cuenta con una arquitectura de servidor, lo que significa que la mayoría de la lógica se ejecuta en los servidores. AJAX se utiliza como tecnología en el lado del navegador. En el lado del cliente Vaadin se crea como una capa que extiende Google Web Toolkit, pero que a su vez en las últimas versiones también permite utilizar directamente componentes propios de GWT. Capa de Negocio/Servicios Ofrece a los desarrolladores las capacidades de Spring para facilitar la reutilización de servicios, la inyección de dependencias, la declaración de transacciones declarativas etc. Capa de Persistencia La capa de persistencia se ha realizado utilizando la implementación JPA 2.0 de Hibernate (Hibernate 3.5). La arquitectura provee de una herramienta encargada de generar el código fuente, la configuración y test de esta capa. . Frameworks de desarrollo / lenguajes de programación | 103 Indra Sistemas Avda. de Bruselas 35 28108 Alcobendas, Madrid España T +34 91 480 50 00 F +34 91 480 50 80 www.indracompany.com