Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tema 1 PDF
Tema 1 PDF
Aplicaciones Empresariales
Índice
1-2
Aplicaciones empresariales
n En la asignatura “Internet y Sistemas
Distribuidos” (ISD) se estudiaron técnicas de diseño y
tecnologías para la construcción de aplicaciones
empresariales
n Para el desarrollo de la capa modelo
n Para el desarrollo de la capa de servicios remotos (y la
de acceso)
n Se proporcionó una introducción al desarrollo de la
interfaz de usuario (IU) de una aplicación Web
1-3
Arquitectura típica de una aplicación local
Capa IU
Aplicación local
(ordenador, Capa Acceso
móvil, tablet) Servicio
Red
Capa de servicios
Servidor
de aplicaciones
Capa modelo
Servicio Web
BD
1-4
Arquitectura típica de una aplicación Web
Servidor
de aplicaciones
Capa Modelo
Aplicación Web
BD
1-5
Desarrollo ágil (1)
n Para reducir costes (horas de desarrollo) y dar un
tiempo rápido de respuesta a las necesidades del
negocio, es vital poder desarrollar aplicaciones
ágilmente
n En poco tiempo
n Con buenos principios de ingeniería
n Los principios de diseño y tecnologías estudiados en
ISD para el desarrollo de la capa modelo y la capa IU
de una aplicación Web son correctos (¡son la base!),
pero por sí solos no permiten desarrollar ágilmente
1-6
Desarrollo ágil (2)
n Capa modelo
n Por cada entidad, es necesario desarrollar un DAO desde
cero con la API de JDBC => repetitivo y tedioso
n Por cada DAO, es necesario construir una factoría =>
repetitivo
n En la implementación de cada caso de uso, es necesario
codificar la gestión de conexiones y transacciones =>
repetitivo
1-7
Desarrollo ágil (3)
n Capa IU Web
n Por cada página, es necesario construir un servlet y una
plantilla JSP
n En cada página, necesitamos tratar aspectos recurrentes
(repetitivos)
n Gestión de layout
n Tratar errores en formularios
n Internacionalización (i18n)
n Visualización de listas de datos
n Seguridad
n Etc.
1-8
Desarrollo ágil (y 4)
n Conclusión
n Necesitamos técnicas de diseño adicionales
n Necesitamos tecnologías que automaticen los aspectos
recurrentes que surgen en la implementación de una
aplicación empresarial
1-9
Tecnologías Java estándares para desarrollo ágil (1)
1 - 10
Tecnologías Java estándares para desarrollo ágil (2)
1 - 11
Tecnologías Java estándares para desarrollo ágil (3)
1 - 12
Tecnologías Java estándares para desarrollo ágil (y 4)
Aplicación Web
Capa IU Capa
Navegador BD
Web modelo
Servlets JDBC
1 - 13
Tecnologías Java POJO para desarrollo ágil (1)
n Las primeras versiones de EJB (1.x y 2.x) y JSF (1.x) fueron
muy criticadas debido a su falta de agilidad de desarrollo, y en
el caso de EJB, incluso por su ineficiencia
n Además, las APIs estándares no siempre representan “las
mejores ideas” sobre cómo hacer las cosas ni tienen todo lo que
el desarrollador necesita “justo ahora”
n Esto dio pie a la comunidad Java, especialmente, a la
comunidad Open Source, a desarrollar frameworks alternativos
n A estos frameworks se les suele etiquetar con la palabra POJO
(Plain Old Java Object)
n Se dice que un framework sigue el enfoque POJO cuando
promueve un enfoque sencillo de desarrollo
n Los frameworks POJO han influido fuertemente en las nuevas
versiones de EJB y JSF
1 - 14
Tecnologías Java POJO para desarrollo ágil (2)
1 - 15
Tecnologías Java POJO para desarrollo ágil (3)
1 - 16
Tecnologías Java POJO para desarrollo ágil (4)
Servidor de aplicaciones
Aplicación Web
Capa IU Capa
Navegador BD
Web modelo BD
Servlets JDBC
1 - 17
Tecnologías Java POJO para desarrollo ágil (y 5)
1 - 18
Desarrollo ágil de servicios Web
n Cuando la capa modelo debe ser accedida
remotamente desde la capa IU (e.g. aplicación local,
capa modelo usada desde distintas aplicaciones,
etc.), podemos desarrollar servicios Web ágilmente
con
n JAX-WS (SOAP)
n Se estudió en ISD
n JAX-RS (REST)
n Se estudia en “Integración de Aplicaciones”
n Ambos estándares forman parte de Java EE y existen
diversas implementaciones para poder usarlos en servidores
de aplicaciones ligeros
1 - 19
Alternativas a las tecnologías Java
n .NET
n http://www.microsoft.com/net
n LAMP
n http://www.onlamp.com
n Ruby on Rails
n http://rubyonrails.org
n Framework Web para el lenguaje Ruby (http://www.ruby-
lang.org)
n Gran énfasis en agilidad
n Relaja la división en capas
n Convenciones de nombrado
n Generación de código prototipo/plantilla (“scaffolding”)
n Ha tenido impacto en el diseño de muchos frameworks Java
POJO modernos
n Node.js
n http://nodejs.org
1 - 20