Lista de Artículos Inicio
- Año II  




Model View Controller (MVC)

Miguel M. Anastacio Velásquez.

Marzo 24 del 2004.


Siempre la primera vez es la mejor; tomando como premisa que toda acción realizada por única y exclusiva vez tiene un sabor especial diferente al resto, llegamos a la conclusión que la rutina es un veneno de lento proceso, pero letal al fin.

El arte, porque es en si un arte, de programar no esta ajeno a esto, hay un hito que marca la belleza de la creación y lo tedioso de la rutina, muchos pasos se cierran sobre un circulo, y redundamos muchas veces en lo mismo. El acceso a datos, La capa de presentación, El modelo lógico, por definirlo de una manera técnicamente aceptable casi siempre ofrecen el mismo panorama, a no ser por ingeniosas combinaciones que no siempre van de la mano con el enemigo numero uno de todo proyecto informático: El Tiempo. Otra ideología casi convertida en objeto de culto, es aquella que reza: "Para que construir algo, que ya esta construido" nos entrega una opción mucho mas favorable a nuestra forma de vida, denomínese desde este punto, como: Desarrollo. Esta opción adquiere muchos nombres que en si vienen a ser caras de la misma moneda. Patrones, Plantillas, Modelo de Diseño, y demás formas de definir una misma visión: Reutilizar aquello que puede ser reutilizado.


Así por pura concepción matemática, la repetición continua de números con una razón incremental llega a ser una serie, la cual puede calcularse sus infinitos límites, también posee una formula elemental y única que permite, a su vez, generalizar toda la amplia gama de posibles resultados; nace así: El Patrón, El modelo, La Plantilla.

Uno de esas concepciones más elementales son los Patrones de Diseño. Los cuales a su vez son muchos y muy variados, pero concentran muchas de las ideas antes expuestas, Modelo lógico a seguir para plantear una solución de acuerdo a las particularidades de cada negocio, siguiendo un orden tecnológico para su posterior desarrollo.

MVC o simplemente Model View Controller, o en buen español: Modelo, Vista y Controlador, es a grandes rasgos: El Modelo a grandes rasgos es todo acceso a Base de Datos, y funciones que controlan la integridad de la data, una pequeña "lógica de negocio". La vista, como todo atisbo a un panorama escondido, es la cara de la aplicación, la presentación visual de los datos, o la transformación de la misma. Controlador? a simple vista el Modelo o acceso a datos y la Vista o capa de presentación requieren un eslabón que parece perdido, pues el controlador se encarga de esta necesaria función, enlazar el acceso a datos con la presentación de los mismos.


Hasta acá no se ha descubierto el fuego, ni inventado la rueda, un patrón MVC otorga más facilidad a nuestro desarrollo que no sea el modelo a seguir para construir una aplicación y cumplir con el factor de éxito más importante de todos: El Tiempo.

MVC y JAVA, El Patrón de Diseño MVC cumple con uno de los enunciados más antiguos de la programación distribuida, separar la presentación del acceso a datos y la lógica de negocios. Java represento (o representa) uno de los pilares mas importantes en desarrollo de aplicaciones distribuidas usando scripting del lado del servidor, que se conozca hasta la actualidad. Es por eso que el Modelo MVC esta orientado al lenguaje mas abierto y portable que se haya construido.

Modelo 1, Un nuevo intento, si bien es cierto las aplicaciones Web en un inicio fueron simplemente CGIs corriendo en un servidor Web con escasos recursos, pronto la gran acogida de las paginas dinámicas, hicieron que se idearan y construyeran aplicaciones Web mas complejas lo cual naturalmente incremento la carga en el servidor, anexado a las consultas, también cada vez mas complejas, a la base de datos, hicieron que se pensara por primera vez en el divorcio de ambos (presentación y acceso a datos).

Snapshoot. Modelo 1, nos referimos al mismo a un modelo hartamente conocido por todos, aquel que separa la presentación del acceso a datos, en una aplicación Web en Java (Jsp para este caso) se esquematizaría de la siguiente manera:




La filosofía del Modelo 1, es tan simple como su mismo primitivo diagrama, El Browser representa la carátula de la aplicación, mientras que las paginas JSP se encargan de recoger las peticiones del usuario y generan a la vez la respuesta que se le envía al mismo, lógica intermedia si se le puede llamar de algún modo, Nótese que el acceso a datos ya esta manejado por una lenteja.

Fe de Erratas, Desventajas? El procesar muchas peticiones y enviar la misma cantidad de respuestas, hacen que la página soporte demasiado trabajo, para el cual no esta diseñada, de igual manera al usarse scripting en su forma más pura, hace que el resultado sea totalmente desfavorable. La aplicación se hace cada vez más lenta, con cada petición. No menciono el gran dolor de cabeza que otorgara el intento de suicidio, de querer dar mantenimiento a este tipo de páginas, porque intuyo que cualquiera ya se lo imagino (o no quiere imaginárselo).

Modelo 2, Lo pasado, Pasado. Estamos ad portas de la ingeniería genética de las aplicaciones Web, presenciamos como un híbrido lleva a ver la luz con resultados mas que favorables, el Modelo 2, como toda mejora frente a su antecesor que parece morir en manos de la tanática ley del mas fuerte (y veloz), nos ofrece un panorama mucho mas claro y eficaz, desde todo punto de vista.


Snapshoot. Modelo 2, Uno, Dos, Tres Sonríe... esta es una gran instantánea, para una gran idea, quizá al desarrollar el rápido vistazo a este modelo, muchos pensaran que no es nada nuevo, quizá porque a estas alturas del partido, creemos que ya lo conocemos todo. Pues este modelo, aclaro nuevamente, no es nada nuevo. Pero siempre es loable, el primer chispazo y la primera luz, Colon hubiese llegado rápidamente a América si hubiera tenido un mapa, y ningún merito para la posteridad. El Modelo dos recrea, muta y mejora lo expuesto en el Modelo 1, helo hache:




La filosofía del Modelo 2, ya dijimos que es un derivado del modelo 1, aprovechando muchas ideas expresadas y quizás dejadas a medias en el anterior esquema, el acceso a la Base de Datos, sigue siendo controlado por la lenteja, pero el modelo de petición y respuesta al usuario sufre una ligera pero gran transformación, La vista, en este caso quien se encarga de la respuesta al usuario, son las paginas jsp, mientras que la sobrecarga de tareas, como procesar las peticiones y generar data de acuerdo a las mismas los realiza el Servlet, un componente medio, que actúa de Controlador entre los Datos y las vistas, El servlet instancia a un Bean (lenteja) para realizar la carga mas pesada de datos, para entregar a la vista datos ya procesados según las peticiones del Usuario.

Salmo 1.1, Esta demás decir que acá si ocurre una completa separación de la lógica, los datos y la presentación, hasta acá el MVC, no viene a ser mas que un modelo lógico o arquitectura de diseño Web, pues sumado a los patterns o frameworks existentes; Struts, por nombrar a uno de los mas conocidos y de fácil construcción, hacen de MVC una opción mas que aceptable y recomendable para el desarrollo de cualquier aplicación Web, bajo, claro esta, lenguaje Java. Les suena familiar a aplicación 3-tier, Windows DNA? cualquier parecido con la realidad no es coincidencia. SUN los cría, MS los junta.





Copyright © 2002-2004 Grupo Informatizate. Reservados todos los derechos.
Prohibida la reproducción total o parcial en cualquier formato sin previa autorización.
On-line desde el 27 de Noviembre del 2002