Download frameworks de desarrollo / lenguajes de programación

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