- Aplicaciones en
capas - La arquitectura
MVC - Java Runtime
Environment - Librerías de
Java - Lenguaje de
programación Java - Marcos de trabajo en
Java - Conclusiones
- Bibliografía
utilizada
En los últimos años las aplicaciones web
han tenido gran auge gracias, en gran parte, a Internet y la
proliferación de sitios web por toda la red,
principalmente con el fin de fomentar el comercio
electrónico. Su facilidad de administración
centralizada las hace ideales tanto para su despliegue en redes
de amplio alcance como en redes corporativas. La facilidad de uso
de las interfaces web y el hecho de que cada día
más personas están acostumbradas a la
navegación por Internet hace que el tiempo de aprendizaje
se reduzca considerablemente respecto a las tradicionales
aplicaciones de escritorio.
Por otra parte, más reciente el creciente auge
(en aumento acelerado) de multitud de marcos de trabajo de
código abierto o libre hace que su desarrollo sea sencillo
y que un gran número de desarrolladores tengan experiencia
con ellos. Otro hecho a tener en cuenta es que una vez realizada
una aplicación web para uso interno de una empresa, por
ejemplo en una intranet, el poner esa funcionalidad, o incluso
funcionalidades nuevas, a disposición de empleados o el
público general tiene un coste mínimo a la vez que
una potencial proyección mundial.
Aplicaciones en
capas
La estrategia tradicional de utilizar aplicaciones
compactas causa gran cantidad de problemas de integración
en sistemas de aplicaciones complejos como pueden ser los
sistemas de gestión de una empresa o los sistemas de
información integrados consistentes en más de una
aplicación. Estas aplicaciones suelen encontrarse con
importantes problemas de escalabilidad, disponibilidad, seguridad
e integración. Para solventar estos problemas se ha
generalizado la división de las aplicaciones en capas que
normalmente serán tres: una capa que servirá para
guardar los datos (base de datos), una capa para centralizar la
lógica de negocio (modelo) y por último una
interfaz gráfica que facilite al usuario el uso del
sistema (presentación).
Figura 1.1. Arquitectura tradicional
en tres capas.
Si se establece una separación entre la capa de
interfaz gráfica (cliente), replicada en cada uno de los
entornos de usuario, y la capa del modelo, que quedaría
centralizada en un servidor de aplicaciones, según el
diagrama que podemos ver en la Figura 1.1, obtenemos una potente
arquitectura que otorga algunas ventajas:
Centralización de los aspectos de seguridad y
transaccionalidad, que serían responsabilidad del
modelo.No replicación de lógica de negocio en
los clientes: esto permite que las modificaciones y mejoras
sean automáticamente aprovechadas por el conjunto de
los usuarios, reduciendo los costes de
mantenimiento.Mayor sencillez de los clientes.
Si intentamos aplicar esto a las aplicaciones web,
debido a la obligatoria sencillez del software cliente que
será un navegador web, nos encontramos con una doble
posibilidad:
Crear un modelo de cuatro capas, separando cliente,
servidor web, modelo y almacén de datos. Esto permite una
mayor extensibilidad en caso de que existan también
clientes no web en el sistema, que trabajarían
directamente contra el servidor del modelo.
Sin embargo, la gran mayoría de las aplicaciones
web comunes utilizan una arquitectura basada en la de tres capas
extendida a las particularidades de la web.
Figura 1.2. Arquitectura web en tres
capas
La arquitectura
MVC
La arquitectura Model-View-Controller
surgió como patrón arquitectónico para el
desarrollo de interfaces gráficas de usuario en entornos
Smalltalk. Su concepto se basaba en separar el modelo de datos de
la aplicación de su representación de cara al
usuario y de la interacción de éste con la
aplicación, mediante la división de la
aplicación en tres partes fundamentales:
El modelo, que contiene la lógica de negocio
de la aplicaciónLa vista, que muestra al usuario la
información que éste necesita.El controlador, que recibe e interpreta la
interacción del usuario, actuando sobre modelo y vista
de manera adecuada para provocar cambios de estado en la
representación interna de los datos, así como
en su visualización.
Esta arquitectura ha demostrado ser muy apropiada para
las aplicaciones web y especialmente adaptarse bien a las
tecnologías proporcionadas por la plataforma J2EE, de
manera que:
Página siguiente |