Presentación de PowerPoint

Anuncio
Aplicaciones Web – Origen y Evolución
Cátedra Capgemini – Universitat de València
Pablo Mir Gómez
Diciembre de 2015
de
Copyright © Capgemini 2013.Diciembre
All Rights Reserved
2015
1
Contextualización
Arquitectura de Capas
Evolución
› JSPs y Servlets
› EJB
› Spring Fwk
› SOA
› Put it all together
Metodología
Fwk devon
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
2
Contextualización
Arquitectura de Capas
Evolución
Metodología
Fwk devon
Fundamentos básicos de las Aplicaciones Web
¿Dónde podemos encontrar hoy en día aplicaciones web? ¿Por qué se han impuesto
en el modelo de negocio actual? ¿Para qué sirven realmente?
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
3
Definición de Aplicación Web
Definimos Aplicación Web como toda aquella herramienta software codificada en un lenguaje
soportado por navegadores web y donde se confía la ejecución al navegador.
Existe una independencia clara y marcada de la plataforma, evitando problemas de distribución,
compatibilidad, actualizaciones, seguimiento, etc. Pero una dependencia estricta en su ejecución
(requieren siempre de un navegador web y cumplir estándares).
Facilita la interacción y la comunicación activa entre usuario e información.
En muchas ocasiones permite una centralización de la solución.
› Ofreciendo herramientas multi-dispositivo y evitando la generación de numerosas
versiones para escritorio, móvil (iOS, Android, Wphone).
› Leyendo y escribiendo información directamente en la fuente.
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
4
Antecedentes en el mundo de las Aplicaciones Web
Inicialmente, cada aplicación tenía su propio programa cliente instalada por separado en cada
ordenador.
El cliente realizaba peticiones y el servidor respondía.
Una mejora en la parte servidor, implicaba en muchos casos la modificación del cliente, con el
coste que ello suponía (soporte técnico, actualizaciones, gestión de errores…).
En las aplicaciones web, es la propia aplicación la que te sirve las páginas, es decir, cliente y
servidor son un único todo.
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
5
Ventajas en el uso de Aplicaciones Web
Multiplataforma
Independencia del sistema operativo pero adaptación a navegadores del mercado.
Centralización
Unificación de la información leída y escrita normalmente a tiempo real.
Free Space
No ocupan espacio en disco y por consiguiente, evitan instalaciones de software.
Instant Update
Siempre se dispone de la última versión liberada por el autor.
Recursos
Evitan el consumo de recursos que puede ocasionar una aplicación de escritorio.
Disponibilidad
En aplicaciones web de envergadura se ofrece servicio desde múltiples fuentes para evitar caídas.
Seguridad
Los virus no afectan al cliente, puesto que si existen, se alojan en el servidor.
Colaboración
Se favorece un modelo colaborativo y compartir la información.
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
6
Desventajas en el uso de Aplicaciones Web
Limitación
Normalmente están limitadas por el entorno y no ofrecen el 100% de funcionalidad.
Disponibilidad
La disponibilidad del servicio está supeditada a un tercero (pj. Empresa de hosting).
Conectividad
Pese a permitir funcionamientos offline, en algún momento deben sincronizar con servidor.
Recursos
La incorrecta gestión de memoria por parte del desarrollador, puede originar experiencias de
usuario nefastas y bloqueos en la operativa.
Seguridad
Los virus no afectan al cliente, pero pueden afectar a los datos del servidor si no están
debidamente protegidos.
Privacidad
Nuestra información se almacena en servidores cuya ubicación desconocemos. ¿Renunciamos a
nuestra privacidad?
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
7
Concepto de Centralización en Aplicaciones Web
Unificación de las fuentes de datos empleadas en los procesos de lectura y escritura, así como del
backend empleado en negocio.
En ocasiones, también se realiza unificación de la parte de vista, gracias a soluciones responsive.
Las características de la centralización son:
›
Origen de información único sin réplicas ni sincronizaciones
›
Mayor control y seguridad de la información
›
Fácil de mantener
›
Backend/Vista única favoreciendo multicanalidad (Móvil, Tablet, Escritorio…)
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
8
Concepto de Centralización en Aplicaciones Web
Vista A
Negocio A
A
Descentralización
B
Vista B
Responsive development
Negocio B
Pj. Cordova project
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
9
Concepto de Centralización en Aplicaciones Web
Centralización
N
e
g
o
c
i
o
A
V
i
s
t
a
A
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
10
Consideraciones a tener
en cuenta en el desarrollo
de AW
Una de las principales ventajas
competitivas de las Aplicaciones
Web es la independencia del
entorno,
no
independencia
contrarresta
dependencia
obstante,
del
con
de
esta
entorno
la
fuerte
ejecución
(navegador y estándares).
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
11
Consideraciones a tener en cuenta en el
desarrollo de AW
El desarrollador debe concienciarse del uso de
tecnologías estándar y transversales a cualquier
entorno de ejecución, desestimando aquellas que
puedan suponer un callejón sin salida en pocos
años (Flash, Silverlight, Applets…)
La
vulneración
de
estándares
sobre
los
navegadores web más comunes puede ocasionar
problemas de visualización y funcionamiento que
pueden ser arrastrados a negocio (pj. Valores
undefined en JavaScript).
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
12
Cronología de las Aplicaciones Web más relevantes de la historia
Las
aplicaciones
web
han
revolucionado la forma de utilizar
Nace
JavaScript
Aparece
Flash
Nuevo enfoque de las
WebApps. Gracias a él
se puede cambiar el
contenido de forma
dinámica
Surge una de las
primeras soluciones
de vista interactiva
contra las WebApps
internet, pasando de páginas con
contenido exclusivamente estático
a contenidos ricos e interactivos.
1987
1995
1996
1995
1998
1997
Comienzo del
camino
Surge
PHP
Surge
Hotmail
Primer
Periodismo en línea
Surge uno de los
primeros lenguajes
para el desarrollo de
WebApps: PERL
Rasmus Lerdorf pone
a disposición el
lenguaje PHP que
revolucionó la parte
servidor
Sabeer Bhatia y Jack
Smith construyen una
de las primeras
WebApps más
famosas
Nunca se había tomado
como medio de
comunicación. Difundió
noticia mediática antes
que la prensa
escrita
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
13
Cronología de las Aplicaciones Web más relevantes de la historia
Wikipedia
Conferencia
Web 2.0
Se lanza
Youtube
Aparece como subproyecto de Nupedia y
fomenta en desarrollo
colaborativo
John Battelle y Tim
O'Reilly liberaron el
concepto de Web
como Plataforma
Permite compartir
videos, alquilar
películas y es uno de
los sitios más famosos
hoy en día
1998
2003
2004
2004
2001
Google
MySpace
Google desarrolla su
primer motor de
búsqueda
Se convirtió en el
medio de
comunicación social
más visitado
2005
Surge
Digg y Facebook
2006 – Se lanza
Twitter
FB surge inicialmente
para estudiantes y
ahora es el segundo
sitio más visitado del
planeta
2007 – Aparece el
primer iPhone
2011 – KickStarter
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
14
Las Aplicaciones Web en el entorno empresarial
Hoy en día las empresas apuestan por la elaboración de soluciones íntegras, con una marcada
centralización tanto en arquitectura como en solución.
Los clientes buscan invertir poco dinero a cambio de soluciones desproporcionadamente
completas (pj. Para entornos de escritorio y móvil) y cada día abogan más por un modelo de fácil
mantenimiento y con una gran capacidad de interconexión entre los sistemas que ya poseen.
Gracias al modelo de centralización y a la arquitectura usada actualmente por la mayor parte de
consultoras (SOA), es mucho más sencillo conseguir la satisfacción del cliente y por consiguiente,
aportar más valor a los desarrollos. Esto no quiere decir que sea más sencillo construir una
solución (os cansareis de oír: “hacer esto no cuesta nada ¿no?” o “bueno, esto con una jornadita…”)…
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
15
Contextualización
Arquitectura de Capas
Evolución
Metodología
Fwk devon
Arquitectura de Capas
Principal definición de la arquitectura de capas sobre aplicaciones web. ¿Para qué se
emplea? ¿Programación modular?
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
16
Arquitectura de capas
El
objetivo
principal
de
esta
arquitectura se basa en la separación
de lógica de negocio y presentación.
Cuando existe un problema sólo se
ataca al nivel afectado.
Capa Web
al
Recibe y responde a todas
Debe
contemplar
las peticiones de usuario. Se
de
usabilidad,
Presenta
el
usuario.
principios
Permite un entorno colaborativo, en
accesibilidad,
el que los desarrolladores pueden
limpieza.
trabajar en paralelo sin perjudicarse.
Capa Negocio
sistema
sencillez
y
establecen
filtrados
peticiones
las
o
se
a
reglas
y
realizan
sistemas
externos.
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
17
Programación modular
La arquitectura de capas es el primer paso hacia la programación modular. Tecnologías como JSP,
PHP, JSF… no siguen puramente (por sí solas) un modelo MVC (Modelo-Vista-Controlador), lo que
provoca en muchas ocasiones que el programador localice Vista y Negocio sobre la página
implementada.
El hecho de introducir directivas (lenguaje servidor) en capas de vista acarrea validaciones,
condicionales, bucles… que únicamente deberían aparecer en negocio.
Por deferencia a estas tecnologías, cabe destacar que la principal culpa la tiene el desarrollador y
las prácticas que adquiera. Podemos separar CSS, JS, Java… en ficheros independientes tales
como *.css, *.js, *.java (servlets), pero incluso con ello, en algunas ocasiones seguiremos sin
emplear un modelo puro MVC.
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
18
Programación modular
El principal objetivo de la programación modular radica en la posibilidad de poder sustituir una
capa/modulo por otro, sin necesidad de adaptaciones o con un conjunto de cambios mínimos.
Del mismo modo que podemos sustituir un CSS por otro y cambiar el aspecto de una página en
segundos, podemos sustituir la capa de Base de Datos por otra y no tocar ninguna línea de
código.
JSPs
Servlets + Backend
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
19
Programación modular
El principal objetivo de la programación modular radica en la posibilidad de poder sustituir una
capa/modulo por otro, sin necesidad de adaptaciones o con un conjunto de cambios mínimos.
Del mismo modo que podemos sustituir un CSS por otro y cambiar el aspecto de una página en
segundos, podemos sustituir la capa de Base de Datos por otra y no tocar ninguna línea de
código.
JSPs
Servlets + Backend
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
20
Contextualización
Arquitectura de Capas
Evolución
Metodología
Fwk devon
» JSP + Servlets
Evolución de las aplicaciones web
Las aplicaciones web desde su origen, JSP-Servlets, EJB, Spring. Arquitectura SOA. El
modelo actual y su cohesión con la programación modular y la arquitectura de capas.
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
21
Orígenes de Aplicaciones Web Empresariales – JSPs/JSFs y Servlets
Siempre desde el contexto MVC presente:
› Servlets: Tratan la información de los formularios, generan contenido, redireccionan
peticiones…
› JSP: Facilitan el desarrollo y mantenimiento del contenido HTML.
› No crea beans!!
›
Usar <jsp:useBean … type=“paquete.Clase” /> en vez de <jsp:useBean … class=“paquete.Clase” />
› No modifica beans!!
›
Usar jsp:getProperty en vez de jsp:setProperty
› Java Beans y Enterprise Beans: Facilitan la implementación de la lógica de negocio.
Independientes de la presentación.
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
22
Controlador
Vista
Modelo
2. Procesado de petición
Petición HTTP
Servlets
Java Beans
Enterprise Beans
Respuesta HTTP
JSPs
3. Acceso a BD
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
23
Contextualización
Arquitectura de Capas
Evolución
Metodología
Fwk devon
» EJBs
Evolución de las aplicaciones web
Las aplicaciones web desde su origen, JSP-Servlets, EJB, Spring. Arquitectura SOA. El
modelo actual y su cohesión con la programación modular y la arquitectura de capas.
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
24
Orígenes de Aplicaciones Web Empresariales – EJBs
EJB es un modelo de componentes o framework que permite crear aplicaciones sin tener que
reinventar servicios como transacciones, seguridad, persistencia automática, etc.
El código se ejecuta en un entorno llamado “Contenedor EJB” encargado de proveer servicios.
Se apoyan mucho en tecnologías que nos aporten los servidores de aplicaciones (cada servidor
aporta las suyas…)
La versión actual de la especificación EJB es la 3.2
Existen numerosas evoluciones de EJB, sin embargo, es a partir de la 3.0 donde realmente el
trabajo con esta tecnología merece la pena, puesto que las versiones anteriores eran demasiado
complejas y tenían muchos problemas.
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
25
Problemas con la especificación EJB 2.x
Acoplamiento
Fuerte acoplamiento entre el código generado y las funciones propias de EJB. Se introducen
métodos en nuestras clases exclusivos para el funcionamiento de EJB (ejbCreate, ejbActivate…).
Descriptores
Se usan descriptores de despliegue (son complejos y propensos a fallos). Describen cómo se debe
desplegar cada EJB (de sesión con estado o sin estado, de entidad…)
Dependencia
Dependencia del JNDI cada vez que se tiene que acceder a un recurso, lo que supone una
operación repetitiva y tediosa en J2EE.
Persistencia
El desarrollo y gestión del modelo de persistencia es muy complejo.
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
26
Características principales del nuevo modelo simplicado de EJB 3.x
POJO
Los EJBs son objetos POJO (Plain Old Java Object) sin requisitos heredados.
Anotaciones
Se emplean anotaciones sobre los POJOs con objeto de generar código Java sin intrusiones.
Descriptores
Se elimina la dependencia de los descriptores de despliegue. Se pueden sustituir por anotaciones.
Persistencia
Se utiliza un nuevo modelo de persistencia completo basado en el estándar JPA y que reemplaza
los beans de entidad.
Enfoque
Los valores predeterminados se usan siempre que sea posible (enfoque “configuración por
excepción”).
Home
Se elimina el requerimiento de especificar una interfaz HOME.
Interceptores
La existencia de interceptores, elimina la necesidad de implementar interfaces de tipo callback.
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
27
Ejemplo de código entre EJB 2.x y EJB 3.x
// EJB 2.x
public class AccountBean implements javax.ejb.SessionBean {
SessionContext ctx;
DataSource accountDB;
public void setSessionContext(SessionContext ctx) {
this.ctx = ctx;
}
public void ejbCreate() {
accountDB=(DataSource)ctx.lookup("jdbc/accountDB");
}
public void ejbActivate() { }
public void ejbPassivate() { }
public void ejbRemove() { }
// EJB 3.x
@Stateless
public class AccountBean implements Account {
@Resource
private DataSource accountDB;
public void setAccountDeposit(int customerId,
double deposit) {
...
Connection conn=accountDB.getConnection();
...
}
...
}
public void setAccountDeposit(int empId, double deposit){
...
Connection conn = accountDB.getConnection();
...
}
...
}
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
28
Ejemplo de código entre EJB 2.x y EJB 3.x
// EJB 2.x
<session>
<ejb-name>AccountBean</ejb-name>
<local-home>AccountHome</local-home>
<local>Account</local>
<ejb-class>com.example.AccountBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
<resource-ref>
<res-ref-name>jdbc/accountDB</res-ref-name>
<res-ref-type>javax.sql.DataSource</res-ref-type>
<res-auth>Container</res-auth>
</resource-ref>
</session>
...
<assembly-descriptor>...</assembly-descriptor>
// EJB 3.x
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
29
Servidor de Aplicaciones
Contenedor de EJB
Módulo Vista
Lógica de negocio
Módulo DAO
Entidades JPA
Cliente Local
Cliente Remoto
Beans de sesión
Proveedor JMS
Beans gestionados por
Gestor de entidades
Cliente Remoto
mensajes
Pool de servicios: JMS, JTA, JNDI,
JDBC, Seguridad, WS…
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
30
Competidores directos: Spring vs EJB
La enorme dificultad en la utilización de las versiones previas de EJB (1.0, 1.1, 2.0, 2.1) motivaron
la aparición de tecnologías como Spring, que supieron imponerse y mantenerse hasta el día de
hoy en el mercado.
La versión 1.0 de Spring Framework fue liberada en Marzo de 2004 y su principal punto clave es
la flexibilidad y aportar una serie de ventajas que EJB incorporó demasiado tarde.
Pese a ello, no debemos olvidar los estándares y en esto, EJB es dominante.
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
31
Contextualización
Arquitectura de Capas
Evolución
Metodología
Fwk devon
» Spring Fwk
Evolución de las aplicaciones web
Las aplicaciones web desde su origen, JSP-Servlets, EJB, Spring. Arquitectura SOA. El
modelo actual y su cohesión con la programación modular y la arquitectura de capas.
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
32
Orígenes de Aplicaciones Web Empresariales – Spring Fwk
Spring Fwk no es una evolución de EJB, sino una alternativa... Y todo sea dicho, muy buena.
Algunas de sus principales características son:
flexibilidad
Permite una conexión sencilla con otras tecnologías o fwk’s (estándar o no), ampliando así sus capacidades
de manera muy relevante (alta capacidad de integración).
actualización
Al ser un fwk de un único fabricante, lo mantiene al día e incorpora últimas tecnologías.
aislamiento
Sólo necesitamos Spring para poder trabajar, lo podemos instalar en cualquier servidor de aplicaciones y no
presenta problemas ni condicionamientos. Podemos usarlo con aplicaciones web, con swing, JavaFX… Nos
aísla de muchas problemáticas.
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
33
Orígenes de Aplicaciones Web Empresariales – Spring Fwk
En contraprestación:
no estándar
complejo
Pero se ha consolidado
¿Configurar múltiples
como estándar de facto
características para que
en el mercado
funcionen juntas sin colisiones?
Sí claro y ¿cuándo decías que lo
necesitabas?
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
34
La solución del modelo empresarial
Spring Fwk es una solución muy versátil para grandes empresas, puesto que éstas disponen de
múltiples clientes que usan Servidores de Aplicaciones e infraestructuras muy diversas.
El motivo principal es que EJB presenta mucho acoplamiento de cara a Servidores de
Aplicaciones y por consiguiente, todos los desarrollos no se podrían enfocar de forma
homogénea.
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
35
Spring es un framework para el desarrollo de aplicaciones y contenedor
de inversión de control, de código abierto para la plataforma Java.
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
36
Inversión de Control (IoC)
Tradicionalmente, el desarrollador especificaba el flujo de acciones y decisiones mediante la
llamada a métodos… En la inversión de control es justamente al contrario: se especifican las
respuestas deseadas y se cede el control a una arquitectura externa.
Spring gestiona las creaciones y destrucciones de los objetos generados por el usuario y son
estos objetos los que procesan las respuestas y las gestionan.
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
37
Inyección de Dependencias
Otro de los puntos relevantes y esenciales de Spring es la inyección de dependencias. En este
caso, Spring gestiona los objetos y permite que, en vez de crear nuevos objetos en cada clase,
sean suministrados mediante su “inyección”.
Mediante la utilización de estos dos conceptos, nos es más sencillo cumplir con otros, tales como
la modularidad y la reutilización. Por lo que podemos generar bibliotecas comunes y modulares
que luego inyectaremos en los lugares requeridos de nuestra aplicación.
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
38
Módulo Vista
Lógica de negocio
Módulo DAO
Dispatcher Servlet
Entidades JPA
Petición HTTP
Basado en el patrón: Front
2. El Controller lanza
Controller, que nos da un
la petición
punto de entrada único.
Página de vista
Controller
Gestor de entidades
Handler Mapping
View Resolver
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
39
Contextualización
Arquitectura de Capas
Evolución
Metodología
Fwk devon
» SOA
Evolución de las aplicaciones web
Las aplicaciones web desde su origen, JSP-Servlets, EJB, Spring. Arquitectura SOA. El
modelo actual y su cohesión con la programación modular y la arquitectura de capas.
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
40
Arquitectura Orientada a Servicios - SOA
Esta arquitectura tiene tres objetivos principales: flexibilidad, escalabilidad e integración con
sistemas heredados.
Permite encapsular pequeños bloques funcionales y hacerlos accesibles mediante interfaces.
Estos bloques funcionales son considerados servicios (petición-respuesta) y pueden ser
consumidos por la propia aplicación web que los contiene o por aplicaciones externas.
Por tanto, pese a lo que se diga, SOA NO ES UNA METODOLOGÍA.
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
41
Arquitectura Orientada a Servicios - SOA
El encapsulado de servicios no sólo supone un buen sistema para la construcción de
aplicaciones, sino que beneficia al programador, puesto que permite atacar un problema de
forma más localizada. Gracias a esto, también mejora el tiempo de realización de cambios.
Esta arquitectura es el punto fuerte de la oferta de las consultoras actuales. La mayor parte de
clientes busca integración con los sistemas de los que ya dispone, migrando poco a poco sus
ecosistemas de aplicaciones, sin que les suponga un impacto grave en coste económico.
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
42
Contextualización
Arquitectura de Capas
Evolución
Metodología
Fwk devon
» Put it all together
Evolución de las aplicaciones web
Las aplicaciones web desde su origen, JSP-Servlets, EJB, Spring. Arquitectura SOA. El
modelo actual y su cohesión con la programación modular y la arquitectura de capas.
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
43
Spring Fwk
Módulo Vista
Lógica de negocio
Módulo DAO
Módulo SOA aislado y accesible desde sistemas externos
Petición HTTP
Model JPA <<
View
>> DTO
DTO
Interface
Entidades JPA
Interface
REST
Controller
Controller
Service
DAO
POOL de Servicios publicados
Model
Centralizamos Arquitectura y Lógica. No lo
hacemos con vista.
Utilizamos una arquitectura de capas con
MVC tanto en negocio como en vista.
Utilizamos maven para asegurar una gestión
de dependencias del proyecto centralizada
Hacemos uso de la programación modular
para elaborar componentes reutilizables.
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
44
Contextualización
Arquitectura de Capas
Evolución
Metodología
Fwk devon
Metodología
Proceso de Testing: JUnit, pruebas unitarias, pruebas de pares, pruebas de
integración… Integración continua, Análisis Estático, SCRUM
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
45
Me acaban de asignar un proyecto!! Y ahora qué hago?
En muchas ocasiones y sobretodo al comenzar nuestra carrera profesional, desconocemos los
pasos a seguir en el momento de asignación a un proyecto.
Si el alcance está definido y ya se ha acordado un comienzo, finalización, presupuesto y recursos
con el cliente, debemos seguir unos “sencillos” pasos que nos pueden facilitar la vida.
Requisitos
Acribilla al cliente a preguntas. Deja claros los objetivos y remarca las
facetas en las que pone interés. Posiblemente cuando entregues el
producto, lo primero que haga sea buscarlas.
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
46
Me acaban de asignar un proyecto!! Y ahora qué hago?
Analiza
Todo evolutivo debe acompañarse de un documento funcional que recoja
un análisis contextual, modelo de dominio, Arquitectura, Casos de Uso y
Mockups.
Estima
Cada caso de uso puede resumirse en un número: el volumen de horas
que va a costar implementarlo. El cliente debe ser conocedor del coste y
validarlo.
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
47
Me acaban de asignar un proyecto!! Y ahora qué hago?
Planifica
Jamás dejes nada al azar!!! El “Creo que llegamos” o “no te preocupes que
sobra tiempo” no suelen funcionar nunca. Toda acción debe ser
cuantificada y valorada para su inclusión en el pool de tareas.
SCRUM
Utiliza metodologías ágiles para la consecución de proyectos. Avanzar con
pequeños pasos y con una monitorización continua del cliente, motivará
acercarse más a un nivel óptimo de satisfacción.
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
48
Genial.
Pero… ¿para qué nos adentramos en metodología si el curso es sobre
Aplicaciones Web y Backend?
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
49
SCRUM y su vinculación con negocio
La metodología SCRUM establece una forma de relacionarse dentro del proyecto, pero también
define y acota las tareas del desarrollador (tarjetas).
Toda tarjeta SCRUM contempla un Caso de Uso completo o parcial y en algunos casos hay
dependencias entre ellos.
Una tarjeta SCRUM, es decir, un desarrollo, se considera terminada cuando:
› Se ha desarrollado el caso de uso reflejado en la misma.
› Se ha documentado tanto la parte técnica como la parte de usuario.
› Se han elaborado las pruebas necesarias para garantizar la calidad del software.
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
50
¿Cómo probamos el Backend?
Los métodos habituales para la realización de pruebas sobre el backend-vista de cualquier
aplicación web son:
Pruebas Unitarias
Normalmente se hace uso de JUnits y deben encargarse de cubrir los escenarios
funcionales básicos para el correcto desarrollo del Caso de Uso.
Pruebas de pares
Son realizadas por un miembro del equipo ajeno al desarrollo y por consiguiente a la
tarjeta SCRUM asignada. Garantizan la solución de errores básicos.
Pruebas funcionales
Son realizadas por el analista funcional que elaboró el documento origen de todo y
desencadenan en un documento de Plan de Pruebas escrito sin tecnicismos.
Pruebas integración
Batida de pruebas realizada sobre una réplica del entorno de despliegue oficial con objeto
de validar comportamientos anómalos en caso de interacción con terceros.
http://www.uv.es/capgeminiuv/programa.html
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
51
¿Cómo estabilizamos el Backend del proyecto?
Tras el ciclo de pruebas, el código se sube a los repositorios y puede dar comienzo un proceso de
integración de código fuente (automatizado en muchos casos).
El objetivo de este procedimiento se basa en evitar que el equipo trabaje de forma aislada y que
conforme avance el tiempo, las discrepancias del código sean tan graves que puedan producirse
errores por el propio merge (normalmente suele ocurrir los viernes o cualquier día a la hora de
irse a casa).
El proceso de integración continua abarca todo el ciclo de vida de construcción de la solución:
Compilación > Testing > Testing de Calidad > Despliegue
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
52
¿Cómo aportamos valor a nuestro desarrollo?
Dentro del proceso de integración continua, se lanza una tarea para evaluar la calidad del código
subido por cada usuario.
Este procedimiento permite al desarrollador mejorar su código y hacer frente a posibles errores,
tales como variables que pueden llegar a ser null en algún momento de la traza, vulneraciones
de estándares, reservas de memoria innecesarias…
Capgemini presenta a sus desarrolladores el estado de los
proyectos en todo momento mediante monitores y de este
modo, es posible ver a tiempo real quién ha subido un fallo
en algún proyecto de los existentes y corregirlo cuanto antes.
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
53
Contextualización
Arquitectura de Capas
Evolución
Metodología
Fwk devon
Breve introducción al fwk de desarrollo utilizado por Capgemini.
Fwk devon
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
54
Contextualización
Devon nació como herramienta de desarrollo propia y con el único objetivo de facilitar el día a día
a los desarrolladores.
Asimismo, con ella garantizábamos la estandarización de la forma de trabajo y un amplio
hándicap de reutilización (hasta entonces cada proyecto diseñaba su arquitectura y los
movimientos de personas entre proyectos se hacían complicados por el tiempo de adaptación).
Actualmente su versión estable es la 5.0, donde se incluyen las últimas librerías de Spring,
Hibernate, ExtJS 5, SenchaTouch 2 y un sinfín de módulos más. Sus principales principios son:
Multiplataforma, MultiBrowser/Multicanal, Opensource, SOA, continua evolución y últimas
tecnologías.
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
55
Aceleración en el desarrollo
Gracias al fwk, la gente que se dedica a desarrollar ha dejado de preocuparse por:
›
Configuración de librerías (Spring, Hibernate, Caché, Seguridad, i18n, properties, Reports…)
›
Crear un proyecto y partir de cero (Cuando creas un proyecto con el fwk partes de una plantilla
funcional)
›
Dependencias, builds… (Maven está automatizado para eliminar todos estos problemas al
desarrollador)
›
Tener un entorno de trabajo (devonfw no es sólo un fwk, sino un bundle de herramientas con todo
lo necesario para gestionar un proyecto: BD, Entornos, sistemas de caché, aplicaciones…)
›
Transaccionalidad (se utiliza el principio de transaccionalidad declarativa, evitando que el
desarrollador tenga que gestionar transacciones o se queden abiertas).
›
Gestión de conexiones (se aísla al desarrollador de la apertura y cierre de conexiones).
›
Controllers (se ha homogeineizado la comunicación de vista y negocio a través de anotaciones).
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
56
Web
Negocio
Datos
Más…
Estructura
Programación de tareas
Optimistic locking
Web Services
Schedulers
Auditoría
Mail
Eventos
Funcionalidades extendidas
Test en memoria
BO
Paginación
Seguridad
BO Asíncronas
Conversores
EDI
Monitorización de BO
Batch Query
Informes
Grids
Caché BO
Permisos y gestión de autorización
Búsquedas
Drools
BO
Controles
Forms
Caché
Gestión de Errores
Validaciones
Caché URLs
Accesos rápidos por teclado
Integración con Maps
Componente Gantt
jBPM
Batch
Permisos de visibilidad
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
57
Flexibilidad modular
test
Touch2
bam
WebExtJS5
batch
core
JPA
hibernate
ibatis
bpm
WebExtJS4
WebExtJS3
jsf
JDBC
rules
web
The happy path
reporting
birt
edi
ws
ucm
sws
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
58
Imagen visual, vista y multicanalidad
Devon hace uso de ExtJS como interfaz de vista por su gran versatilidad, rapidez, estandarización,
flexibilidad y escalabilidad.
Los proyectos móviles no son un problema con Sencha Touch, puesto que es multi-dispositivo y
multi-plataforma. Además funciona perfectamente con PhoneGap, que puede ser usado para
distribuir nuestras aplicaciones en las stores de Android, Apple, Wphone…
Asimismo, gracias a PhoneGap, podemos hacer uso de la API nativa del dispositivo y acceder así
a la cámara, contactos, etc.
Con devonfw la tecnología no es un problema, sino una oportunidad para el cliente
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
59
[email protected]
Diciembre de 2015
Copyright © Capgemini 2013. All Rights Reserved
60
Acerca de Capgemini
Con alrededor de 120.000 empleados en 40
países, Capgemini es uno de los principales
líderes en servicios de consultoría, tecnología y
outsourcing del mundo. El Grupo Capgemini
ha alcanzado unos ingresos globales de 9.700
millones de euros en 2011.
Capgemini en colaboración con sus clientes,
crea y proporciona las soluciones tecnológicas
y de negocio que mejor se ajustan a sus
necesidades y que conducen a alcanzar los
resultados deseados.
Siendo una organización profundamente
multicultural, Capgemini ha desarrollado su
propia forma de trabajar, la Collaborative
Business Experience TM, basada en su modelo
de producción Rightshore ®.
Para más información: www.es.capgemini.com
Rightshore® is a trademark belonging to Capgemini
www.capgemini.com
Diciembre de 2015
© 2015 Capgemini. All rights reserved.
Copyright © Capgemini 2013. All Rights Reserved
61
Descargar