Download Presentación de PowerPoint
Transcript
FRAMEWORKS DE DESARROLLO/LENGUAJES DE PROGRAMACION AREA DE ARQUITECTURAS Dirección de Ingeniería, Soporte a Gestión de Aplicaciones y Centros de Competencia Marzo de 2016 Análisis interno de ATLAS OBJETIVOS DEL PROYECTO : Definir los Frameworks / lenguajes de programación en la agencia para los próximos años Establecer los distintos caminos para la realización de una Renovación Tecnológica de los Sistemas de Información / Aplicaciones Definición de matriz de Frameworks / lenguajes de programación a utilizar en función de la tipología de los sistemas de información / Aplicaciones a desarrollar INICIO DEL PROYECTO: 22/02/2016 FIN DEL PROYECTO: 18/03/2016 2 Actividades realizadas Asesoramiento externo por parte de; Fabricantes Consultores Proveedores Reuniones internas en la Agencia Información disponible en: http://intranet.madrid.org/arquitecturasw/proyecto-lenguajes 3 Análisis interno de ATLAS OBJETIVOS DEL PROYECTO : Definir los Frameworks / lenguajes de programación en la agencia para los próximos años Establecer los distintos caminos para la realización de una Renovación Tecnológica de los Sistemas de Información / Aplicaciones Definición de matriz de Frameworks / lenguajes de programación a utilizar en función de la tipología de los sistemas de información / Aplicaciones a desarrollar 4 Tendencias Lenguajes / Frameworks en el mercado Tanto fabricantes como proveedores coinciden en cuanto el uso y tendencias en los Lenguajes de Programación en el mercado. Java Javascript C / PHP Phyton / Ruby Java es el lenguaje más utilizado en la mayoria de las organizaciones para el desarrollo de aplicaciones empresariales. Javascript es el lenguaje emergente hoy en día aunque su grado de evolución es tal que son continuos los cambios de versión en los frameworks basados en este lenguaje. Existen una serie de lenguajes, de siempre, que se mantienen con el tiempo como pueden ser C y PHP. También proliferan otra serie de lenguajes aunque no son utilizados para la creación de aplicaciones empresariales, más bien como lenguajes de scripting, generadores de código .. FRAMEWORKS / LENGUAJES DE PROGRAMACIÓN 5 ICM: Comunicación e Imagen Corporativa Tendencias Lenguajes / Frameworks en el mercado FRAMEWORKS / LENGUAJES DE PROGRAMACIÓN http://www.digitallearning.es/blog/rankings-de-lenguajes-de-programacion/ 6 Tendencias Lenguajes / Frameworks en el mercado FRAMEWORKS / LENGUAJES DE PROGRAMACIÓN 7 Tendencias Lenguajes / Frameworks en el mercado http://spectrum.ieee.org/computing/software/the-2015-top-ten-programming-languages FRAMEWORKS / LENGUAJES DE PROGRAMACIÓN 8 Tendencia de mercado para la Capa de Presentación PRESENTACION JAVA JAVASCRIPT SE VEN DOS TENDENCIAS PARA LA IMPLEMENTACION DE LA CAPA DE PRESENTACION: • • JAVA-JSF: LA TENDENCIA GENERALIZADA ES USAR PRIMEFACES JAVASCRIPT: LA TENDENCIA GENERALIZADA ES UTILIZAR ANGULARJS SIN EMBARGO ACTUALMENTE HAY UNA VERSION 2 QUE ES BETA Y QUE CAMBIA RADICALMENTE CON LA VERSION 1 9 Tendencia de mercado para la Capa de Negocio NEGOCIO JAVA JAVASCRIPT SE VEN DOS TENDENCIAS PARA LA IMPLEMENTACION DE LA CAPA DE NEGOCIO: • • JAVA: LA TENDENCIA GENERALIZADA ES USAR SPRING (Varios proveedores aconsejan el uso de SPRING BATCH) JAVASCRIPT: VA EN AUMENTO EL USO DE NODE.JS SIN EMBARGO ESTA TECNOLOGIA LIMITA EL DESARROLLO A PROGRAMADORES JAVASCRIPT MUY EXPERIMIENTADOS. 10 Tendencia de mercado para la Capa de Acceso a Datos ACCESO A DATOS JAVA LA TENDENCIA GENERALIZADA ES USAR JPA Y LA IMPLEMENTACION DE HIBERNATE EN ALGUN CASO SE HA RECOMENDADO UTILIZAR SPRING DATA 11 Dos tendencias claras: JAVA Y JAVASCRIPT EXISTEN DOS TENDENCIAS: • • APLICACION JAVA: JSF- SPRING- HIBERNATE APLICACIÓN JAVASCRIPT + SERVICIO REST JAVASCRIPT APLICACIONES EMPRESARIALES APLICACIONES ORIENTACIÓN CIUDADANO 12 SOLUCIÓN ORACLE: ORACLE ADF FRAMEWORKS / LENGUAJES DE PROGRAMACIÓN 13 ORACLE ADF: Resumen opiniones de los Proveedores Principales Ventajas • Entorno de desarrollo visual • Desarrollo basado en asistentes • Stack completo con Oracle Fusion Middleware (SOA Suite, Oracle BPM, OSB, WebCenter, Oracle BI) Principales Inconvenientes • Solución propietaria • Alta curva de aprendizaje • Escasa comunidad de desarrolladores • Mantenimiento y evolución de aplicaciones costoso • Alto consumo de recursos (Ram, Red, HD …) • Coste de licencias FRAMEWORKS / LENGUAJES DE PROGRAMACIÓN 14 COMPARTE LAS SIGUIENTES TECNOLOGIAS DEL FRAMEWORK ATLAS: SOLUCION PROPIA DE INDRA: IDYNAMICS JSF SPRING HIBERNATE LOG4J 15 SOLUCION PROPIA EVERIS: J-EVERIS COMPARTE LAS SIGUIENTES TECNOLOGIAS DEL FRAMEWORK ATLAS: JSF SPRING HIBERNATE AXIS ECLIPSE MAVEN LOG4J FRAMEWORKS / LENGUAJES DE PROGRAMACIÓN 16 SOLUCION DE LA AGENCIA: ATLAS TECNOLOGIAS DEL FRAMEWORK 17 LIBRERÍA APLICACIÓN BATCH APLICACIÓN WEB DOCUMENTAL GENERACION DE CODIGO JBOSS HIBERNATE TOOLS SERVICIO WEB SOAP PRUEBAS: JUNIT, JMETER Y SOAPUI SERVICIO WEB RESTFUL CALIDAD: COVER APLICACIÓN DESKTOP AUTENTICACION AUTORIZACION AUDITORIA DE LOPD COMPONENTES VISUALES SERVICIO DE CACHE SERVICIO DE TRAZAS INTEGRACIONES GESTION DE LIBRERIAS Y AUTOMATIZACION MAVEN APLICACIÓN WEB SERVICIOS BASICOS ENTORNO DE DESARROLLO ECLIPSE ARQUETIPOS HERRAMIENTAS SOLUCION DE LA AGENCIA: ATLAS GESTION DOCUMENTAL INFORMES DE BUSINESS OBJECTS MEDICION DE AUDIENCIAS ENVIO DE SMS GIS: VISOR DE MAPAS ALMACENAMIENTO DE FICHEROS: FICA ADMIN. ELECTRONICA 18 ANALISTA GARTNER: Mark Driver 70% JAVA 20% .NET 10% OTROS OPENSOURCE (PHP, PHYTON, ETC) JAVA ES UNA SOLUCION COMPLEJA PERO POTENTISIMA LAS TECNOLOGIAS DEL FRAMEWORK ATLAS SON UNA BUENA OPCION RECOMIENDA FRAMEWORK SI O SI PARA AUMENTAR LA PRODUCTIVIDAD PRODUCTIVIDAD Y FLEXIBILIDAD SON CARACTERISTICAS QUE NO VAN DE LA MANO ORACLE ADF: SOLUCION PROPIETARIA CON ALTA CURVA DE APRENDIZAJE Herramientas sugeridas para el desarrollo rápido de aplicaciones: EXPERIENCIA DE ATLAS POR PROVEEDORES: NEORIS Principales Ventajas • Documentación completa y actualizada • Uso de Tecnologías estándar (JSF / SPRING / HIBERNATE) • Curva de aprendizaje baja teniendo conocimientos de las tecnologías base • Integración con servicios de Admon. Electrónica • Desarrollo ágil: Gestión de Catálogos y Componentes preconstruidos. • Grado de madurez apropiado • Grado de estabilidad alto frente a otros frameworks del sector público • Rendimiento adecuado (otros fw observados tienen graves deficiencias) Principales Inconvenientes • No se utilizan últimas versiones de librerías. • No se utilizan mecanismos de Integración continua • Revisión de la gestión de transacciones • Revisión de dependencias entre módulos y versionado • Uso complejo de determinados componentes Elementos de mejora • Sustituir Richfaces por Primefaces • Utilizar Spring Batch, Spring WS • Utilización de nuevas tecnologías tipo: Angular JS • Utilización de servicios REST • Utilización de sistemas de Integración continua FRAMEWORKS / LENGUAJES DE PROGRAMACIÓN 20 EXPERIENCIA DE ATLAS POR PROVEEDORES: INDRA Principales Ventajas •Desarrollo de aplicaciones Web con apariencia/funcionalidad a las aplicaciones típicas de escritorio+ •Desarrollo estructurado de las aplicaciones en tres 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 •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) Principales Inconvenientes •No se dispone de: - Carpeta Electrónica -Generación automática de informes –Tareas asíncronas (Batch) •Framework orientado a proyectos pequeños •Herramienta de generación automática de código no contempla casuística N+1 de Hibernate •Incompatibilidad de aplicaciones con navegadores obsoletos •Nuevas versiones de Atlas no tienen compatibilidad hacia atrás testada adecuadamente •Complicado el uso de componentes reutilizables •Normativa del uso de subversión para proyectos multi módulo Elementos de mejora •Actualizar versiones de Richfaces, Spring e Hibernate •Evolucionar y perfeccionar la herramienta de generación de código •Implementar mecanismos de validación de entrada de datos y presentación de errores •Creación de arquetipos para la generación de proyectos multi módulo •Utilización de sistemas de Integración continua •Implementar mecanismos de generación de aplicaciones Web Responsive FRAMEWORKS / LENGUAJES DE PROGRAMACIÓN 21 EXPERIENCIA DE ATLAS POR PROVEEDORES: EVERIS • • EVERIS presenta una metodología para la evaluación de arquitecturas (ArqEval). Se realiza una evaluación del framework ATLAS a ALTO NIVEL tal y como nos indican • Grado de cobertura global medio 42,2% DETECTAMOS QUE NO TIENEN LA INFORMACIÓN SUFICIENTE PARA REALIZAR UN ANÁLISIS REAL DE LA SITUACIÓN Mejoras en Arquitectura de Ejecución • Se detectan necesidades en los components de la capa de Front-end/capa de servicios/Acceso a Datos • Actualización de versions del framework, soporte multidispositivo, single sign on • Mejora de los componentes de acceso a datos • Implementación de arquitectura Batch y de Gestión de Trazas Mejoras en Arquitectura de Desarrollo • Cobertura baja tanto para las herramientas de desarrollo, como para el aseguramiento de la calidad y las pruebas • Se proponen iniciativas para la gestión automática de código y mejoras en la gestión de versiones de las aplics en producción Mejoras en la Arquitectura de Operación • Detectado elementos de mejora en los apartados de despliegue y configuración • Se proponen Iniciativas para la automatización de los despliegues FRAMEWORKS / LENGUAJES DE PROGRAMACIÓN 22 EXPERIENCIA DE ATLAS POR PROVEEDORES: AYESA Principales Ventajas • Buena experiencia en el uso del framework ATLAS • Las tareas de desarrollo se realizan relativamente rápida • La curva de aprendizaje es pequeña • El framework transmite confianza por la estabilidad de los componentes utilizados • Generación automática de CRUD • Muchas funcionalidades out of the box • Aisla al desarrollador de la complejidad de ciertas funcionalidades. Soporte experto a los desarrolladores. • Abundante documentación con normas incluidas • Simplificación en las tareas de mantenimiento pues las aplics están desarrolladas de forma similar • Estilo unificado, haciendo que todas las soluciones que se desarrollen tengan la misma apariencia • Verificación de la calidad de los desarrollos automatizada mediante herramienta de auditoría de código Principales Inconvenientes • Excesiva burocracia para realizar actividades fuera de norma • Limitación de las tecnologías a utilizar, puede provocar que no se utilice la más adecuada (librerías de código) • Limitación del uso de otros frameworks que podrían acelerar el desarrollo en ciertos casos • Complicado el uso de componentes reutilizables Elementos de mejora • Evolucionar el framework sustituyendo o evolucionando tecnologías, por ejemplo, Primefaces, Vaadin • Utilización de servidores de aplicaciones open source avanzados, tipo Wildfly • Incorporar una suite de interoperabilidad Open Source, como puede ser WSO2 para la interconexión e interoperabilidad de sistemas FRAMEWORKS / LENGUAJES DE PROGRAMACIÓN 23 EXPERIENCIA DE ATLAS POR PROVEEDORES: ATOS Principales Ventajas • Tecnologías actuales y demandadas por otros clientes: JSF-Spring-Hibernate • Entorno integrado de desarrollo con ayudas en el ciclo codificación-testcorrección. • Gran facilidad de empaquetado y despliegue. • Enfoque backward-compatibility para facilitar actualizaciones de framework en aplicativos Principales Inconvenientes • Complejidad en el uso de determinados componentes internos. Elementos de mejora • Dar la alternativa a frontends no acoplados (REST) para web y canales móviles. • Securización por tokens • Revisión de diseño gráfico en frontend JSF para adecuar a tendencias actuales (Responsive Design) • Bus de servicios para integración WS. • Soporte para cachés en memoria y sistemas GRID FRAMEWORKS / LENGUAJES DE PROGRAMACIÓN 24 Análisis interno en la Agencia de ATLAS Fortalezas Debilidades • Adaptación a ICM • Capacidad de amortización • Alto recorrido • Fiabilidad • Estabilidad • Portabilidad en infraestructuras • Desarrollo Ágil (CRUD) • Open source • Amplia comunidad de desarrollo • Multidispositivo • Escalabilidad • Modularidad en la separación capa • Lenguaje Java • Mantenibilidad • Abundancia de recursos en el mercado • Construido internamente • Fácil integración tecnologías de ICM • Estandarización en pruebas, funcionales, de rendimiento, monitorización • Existencia de arquetipos • Falta de conocimiento interno • Curva de aprendizaje • Tiempo de desarrollo mayor en valoraciones (4 a 1) • Bajo rendimiento por uso inadecuado de Hibernate • Problemas de rendimiento de forma habitual • Capacidad de inversión interna en framework frente producto de mercado • Coste alto en la subida de versiones • No dispone herramienta visual de desarrollo (drag and drop)-baja productividad • Pantallas complejas obligan desnormalización modelo de datos • Dudas en la seguridad • No es la herramienta adecuada para todo tipo de desarrollo (desarrollos pequeños) • Usabilidad de usuario • Diseño de componentes limitado • Falta de buenas practicas en Hibernate • Tiempo y esfuerzo en incorporar nuevas integraciones en el framework • Dependencia de navegadores • Diferencia de infraestructura entre entornos • Gestión de versiones con subversión 25 RESUMEN: Áreas de mejora Productividad Rendimiento Uso de Hibernate Capa de Presentación Conocimiento interno Integración continua Ciclo de vida Software Desarrollo Ágil Valoración de Proyectos 26 PLAN DE ACCION Productividad • Mejorar la estabilidad de los equipos de desarrollo y mantenimiento (CMMA). • Potenciar la inversión en el framework (equipo estable y especializado) Rendimiento Uso de Hibernate • Asegurar la creación de un plan de pruebas completo y la ejecución y control del mismo antes de la puesta en producción de las aplicaciones. • Posibilidad de incorporar una herramienta para realizar el control y seguimiento de las pruebas. • Infraestructuras en Cloud (PaaS, IaaS) • Tecnologías de cache y DataGrid • Manual de buenas practicas de Hibernate (en estado de elaboración) • Creación de aplicación ejemplo con catálogos y entidades de negocio que aplica las buenas prácticas del manual. • Modificación de la herramienta de generación automática de código con indicaciones de ayuda para una mejor implementación del código. 27 PLAN DE ACCIÓN Capa de presentación Conocimiento interno • Actualización del FrontEnd ATLAS incorporando la tecnología PrimeFaces en el framework. • Estudio e incorporación de una solución Javascript completa del tipo AngularJS, Backbone, Bootstrap … común para los frameworks ATLAS y MOVA • Plan de formación específico para el conocimiento del framework ATLAS impartido por personal de la Unidad de Arquitectura de Software. Integración continua • Incorporar al ciclo de vida una herramienta de integración continua: Jenkins que permita automatizar la revisión de calidad, despliegue, pruebas, gestión de versiones. 28 PLAN DE ACCION Desarrollo Ágil • Estudio de implantación de metodologías ágiles tipo SCRUM. • DevOps para la producción de productos y servicios software de forma ágil. • Infraestructuras en Cloud (PaaS, IaaS, SaaS). Herramienta de valoración • Es necesario disponer de una herramienta de valoración. Imprescindible que los requisitos estén bien definidos, preferentemente disponer del diseño funcional. Ciclo de vida • Revisar ciclo de vida completo para identificar problemas de productividad 29 LENGUAJE / FRAMEWORK DESARROLLO FUTURAS APLICACIONES CONCLUSIÓN ACERCA DEL LENGUAJE / FRAMEWORK A UTILIZAR PARA LOS PRÓXIMOS AÑOS EN LA AGENCIA LENGUAJE JAVA FRAMEWORK ATLAS TECNOLOGIAS OPEN SOURCE •JSF/Javascript •Spring •Hibernate 30 Análisis interno de ATLAS OBJETIVOS DEL PROYECTO : Definir los Frameworks / lenguajes de programación en la agencia para los próximos años Establecer los distintos caminos para la realización de una Renovación Tecnológica de los Sistemas de Información / Aplicaciones Definición de matriz de Frameworks / lenguajes de programación a utilizar en función de la tipología de los sistemas de información / Aplicaciones a desarrollar 31 Que nos dicen los proveedores … Todos los proveedores consultados coinciden en: • Actualizar las versión obsoletas de Oracle Forms a última versión • No construir Sistemas de Información nuevos en Oracle Forms 32 Situación actual de Tecnologías Tecnologías Total Framework 2 648 HTML 346 ATLAS 227 Forms 10g 201 Delphi 161 Forms 6i 122 Fatwire 83 Forms 4.5 63 Framework Justicia 59 Joomla 54 BI 37 BI Crystal Reports 34 Documentum 31 Delphi CGI 30 PRO*C 29 Crystal Reports 24 SAP 16 Microsoft .NET 14 TED 11 SharePoint 10 APP 5 ESB 4 UNIFACE 3 Tecnologías en la Agencia 0% 3% 2% 2% 2% 1% 1% 0% 0% 0% 29% 3% 4% 6% 7% 16% 9% 10% FRAMEWORKS / LENGUAJES DE PROGRAMACIÓN Framework 2 HTML ATLAS Forms 10g Delphi Forms 6i Fatwire Forms 4.5 Framework Justicia Joomla BI BI Crystal Reports Documentum Delphi CGI PRO*C Crystal Reports SAP Microsoft .NET TED SharePoint APP ESB UNIFACE 33 Renovación Tecnológica Roadmap de Tecnologías obsoletas Interacción con otros Sistemas de Información INTEGRACIÓN (Institucional, Sectorial, Ereg) TECNOLOGÍA GEA Gestor de Expedientes Integración fuerte con puesto cliente Puestos aislados (sin red) Grado de Obsolescencia Coste de migración Atlas Standalone Alto Alto ----- Alto Alto ----- Alto Alto Atlas/Atlas standalone Atlantix/?? Delphi CGI Atlas ----- Forms v4.5 Forms v11g/Atlas Forms v11g / Atlantix Atlas + Applet / ActiveX Atlas + Applet / ActiveX ----- Forms v6i Forms v11g Forms v11g ----- ----- Alto Bajo Forms v10g Forms v11g Forms v11g ----- ----- Medio Bajo Atlantix ----- ----- Alto Alto Atlas ----- ----Atlas + Applet / ActiveX ----- Bajo Alto Pro*C en Linux/Atlas Batch ----- ----- ----- Medio Alto Atlas ----- Atlas + Applet / ActiveX Atlas Standalone Alto Alto Delphi TED J2EE Framework 2 Pro*C Batch Otras (Uniface, Clipper...) FRAMEWORKS / LENGUAJES DE PROGRAMACIÓN 34 Análisis interno de ATLAS OBJETIVOS DEL PROYECTO : Definir los Frameworks / lenguajes de programación en la agencia para los próximos años Establecer los distintos caminos para la realización de una Renovación Tecnológica de los Sistemas de Información / Aplicaciones Definición de matriz de Frameworks / lenguajes de programación a utilizar en función de la tipología de los sistemas de información / Aplicaciones a desarrollar 35 Usuario CM Aplicación empresarial Aplicación informativa Aplicación multidispositivo Aplicación para teléfono móvil Aplicación móvil integración fuerte Desarrollo rápido limitado Ciudadano Colaborador ATLAS JAVA ATLAS JAVA ATLAS JAVA ATLAS JAVA ATLAS JAVA ATLAS JAVASCRIPT ATLAS JAVA ATLAS JAVASCRIPT ATLAS JAVASCRIPT ATLAS JAVASCRIPT ATLAS JAVASCRIPT MOVA MOVA MOVA NATIVO NATIVO NATIVO FRAMEWORKS / LENGUAJES DE PROGRAMACIÓN 36 Desarrollos empresariales Desarrollos rápidos Desarrollos Ciudadano Informacional Desarrollos Ciudadanos Tramitación Desarrollos móviles Desarrollos móviles Avanzados (uso intensivo) 37