- 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ón
La 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 |