Download Presentación de PowerPoint

Document related concepts
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