ARQUITECTURA MVC
JAVA 2
Yhoan Galeano Urrea
un auge que viene fuerte
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.
Su facilidad de administración centralizada las hace ideales tanto para su despliegue en redes de amplio alcance como en redes corporativas.
y porque?
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.
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.
y entonces como se resuelve este problema?
arquitectura mvc
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 (Modelo), una capa para centralizar la lógica de negocio (Controlador) y por último una interfaz gráfica que facilite al usuario el uso del sistema (Vistas).
¿Investigar los componentes del modelo N?
CONCEPTO 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:
CONCEPTO arquitectura mvc (continuación)
- 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.
y que obtenemos con esto
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.
BUSCAR QUE ES:
¿alto acoplamiento y baja cohesión?
de que se componen las apps web
Al final lo que llega al ordenar de un cliente es HTML, CSS y puede que algo de JAVASCRIPT, donde estas interactuan con una capa que realiza la lógica del negocio y estable una conexión con otra capa para acceder a la base de datos y realizar operaciones.
¿que es http (Hypertext Transfer Protocol) ?
arquitectura mvc en j2ee
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:
que contiene entonces cada capa modelo
El modelo, que permite la interacción con la base de datos, sería modelado por un conjunto de clases Java, existiendo dos claras alternativas de implementación, utilizando objetos java tradicionales llamados POJOs (Plain Old Java Objects) o bien utilizando EJB (Enterprise JavaBeans) en sistemas con unas mayores necesidades de concurrencia o distribución.
¿Que es el patrón llamado DAO?
¿Que es JPA?
QUE CONTIENE ENTONCES CADA CAPA VISTAS
La vista proporcionará una serie de páginas web dinámicamente al cliente, siendo para él simples páginas HTML. Existen múltiples marcos de trabajo o frameworks que generan estas páginas web a partir de distintos formatos, siendo el más extendido el de páginas JSP (JavaServer Pages), que mediante un conjunto de tags XML proporcionan un interfaz sencillo y adecuado a clases Java y objetos proporcionados por el servidor de aplicaciones.
¿Que es JSP?
QUE CONTIENE ENTONCES CADA CAPA VISTAS (CONTINUACIÓN)
Esto permite que sean sencillas de desarrollar por personas con conocimientos de HTML.
Entre estos tags tienen mención especial la librería estándar JSTL (JavaServer Pages Standard Tag Library) que proporciona una gran funcionalidad y versatilidad (helpers).
BOOTSTRAP PARA EL DISEÑO DE LA APP
QUE CONTIENE ENTONCES CADA CAPA controlador
El controlador en la plataforma J2EE se desarrolla mediante Servlets, que hacen de intermediarios entre la vista y el modelo, más versátiles que los JSP para esta función al estar escritos como clases Java normales, evitando mezclar código visual (HTML, XML...) con código Java.
funcionamiento
-
El usuario realiza una acción en su navegador, que llega al servidor mediante una petición HTTP y es recibida por un Servlet (controlador). Esa petición es interpretada y se transforma en la ejecución de código java que delegará al modelo la ejecución de una acción de éste.
-
El modelo recibe las peticiones del controlador, a través de un interfaz o fachada que encapsulará y ocultará la complejidad del modelo al controlador. El resultado de esa petición será devuelto al controlador
FUNCIONAMIENTO
-
El controlador recibe del modelo el resultado, y en función de éste, selecciona la vista que será mostrada al usuario, y le proporcionará los datos recibidos del modelo y otros datos necesarios para su transformación a HTML. Una vez hecho esto el control pasa a la vista para la realización de esa transformación.
-
En la vista se realiza la transformación tras recibir los datos del controlador, elaborando la respuesta HTML adecuada para que el usuario la visualice.