You are on page 1of 9

Modelo de vista controlador

Objetivo

El objetivo del patrn MVC es desacoplar la presentacin de la informacin (vista) de su representacin (modelo), para as reducir la complejidad en el diseo arquitectnico (de IU) e incrementar la flexibilidad y mantenibilidad del cdigo. Desde un punto de vista muy personal (DMI), el patrn MVC es lo que le trae orden al caos, estructura al espagueti, arquitectura a la anarqua en los aspectos relacionados a la implementacin de interfaz de usuario

El patrn MVC (Modelo, Vista, Controlador), es un patrn de arquitectura de software que separa los datos de una aplicacin, la interfaz que ve el usuario de la logica del negocio en tres componentes distintos. Es ms frecuente en aplicaciones Web que en aplicaciones de escritorio, sin embargo es aplicable tambien a este, sin ningun problema, Java ya contaba hace rato con Observer y Observable, herramientas que nos ayudan a la interaccin entre la interfaz y el modelo, sin embargo, el ejemplo que dejamos a continuacin no hace uso de estas herramientas.

La descripcin del patrn MVC es:

Vista (View): Representa la interfaz de usuario y todas las herramientas con las cuales el usario hace uso del programa. Modelo (Model): Es donde esta toda la lgica del negocio, la representacin de todo el sistema incluido la interaccin con una base de datos, si es que el programa asi lo requiere. Controlador (Controller): Este componente es el que responde a la interaccin (eventos) que hace el usuario en la interfaz y realiza las peticiones al modelo para pasar estos a la vista. An no est del todo claro, pero con el siguiente ejemplo, lo comprenderemos mejor.

Ciclo de vida de MVC El ciclo de vida de MVC es normalmente representado por las 3 capas presentadas anteriormente y el cliente (tambin conocido como usuario). El siguiente diagrama representa el ciclo de vida de manera sencilla:

El primer paso en el ciclo de vida empieza cuando el usuario hace una solicitud al controlador con informacin sobre lo que el usuario desea realizar. Entonces el Controlador decide a quin debe delegar la tarea y es aqu donde el Modelo empieza su trabajo. En esta etapa, el Modelo se encarga de realizar operaciones sobre la informacin que maneja para cumplir con lo que le solicita el Controlador. Una vez que termina su labor, le regresa al Controlador la informacin resultante de sus operaciones, el cual a su vez redirige a laVista. La Vista se encarga de transformar los datos en informacin visualmente entendible para el usuario. Finalmente, la representacin grfica es transmitida de regreso al Controlador y ste se encarga de transmitrsela al usuario. El ciclo entero puede empezar nuevamente si el usuario as lo requiere.

Ventajas y Desventajas de MVC Las principales ventajas de hacer uso del patrn MVC son: La separacin del Modelo de la Vista, es decir, separar los datos de la representacin visual de los mismos. Es mucho ms sencillo agregar mltiples representaciones de los mismos datos o informacin. Facilita agregar nuevos tipos de datos segn sea requerido por la aplicacin ya que son independientes del funcionamiento de las otras capas. Crea independencia de funcionamiento. Facilita el mantenimiento en caso de errores. Ofrece maneras ms sencillas para probar el correcto funcionamiento del sistema. Permite el escalamiento de la aplicacin en caso de ser requerido.

Las desventajas de seguir el planteamiento de MVC son: La separacin de conceptos en capas agrega complejidad al sistema. La cantidad de archivos a mantener y desarrollar se incrementa considerablemente. La curva de aprendizaje del patrn de diseo es ms alta que usando otros modelos ms sencillos. Cabe mencionar que la comparacin de ventajas y desventajas de MVC puede ser un tema muy subjetivo y se puede prestar como tema de debate, sin embargo se tom ladecisin usando principalmente los puntos mencionados anteriormente ya que en trminos generales la balanza se inclina a favor del MVC en vez de en su contra. MVC en uso Actualmente existen muchos frameworks disponibles para el desarrollo de aplicaciones MVC; sin embargo su uso requiere de una comprensin completa de su funcionamiento hacindolas merecedoras de temas de tesis completas. En este caso se deseaba obtener resultados rpidos sin involucrar ms complejidad que la que el tema propio requiere, as que se decidi seguir el esquema que plantea MVC sin hacer uso de frameworks externos. Como anteriormente fue mencionado, el Sistema Asistente para la Generacin de Horarios de Cursos es una aplicacin Web y la plataforma de desarrollo elegida fue Java (de Sun Microsystems) ya que es un lenguaje de programacin sumamente maduro y robusto, no solo para aplicaciones de escritorio, sino para aplicaciones que corren sobre Internet usando estndares mundiales.

Para desarrollar aplicaciones Java para Internet es necesario hacer uso de la tecnologa Java Server Pages, las cuales permiten incrustar cdigo que generen pginas con contenido dinmico cuando cualquier cliente Web solicite informacin del servidor. Los JSPs pueden ser entendidos como una abstraccin de alto nivel de un Servlet ya que para poder ser entendidas por el servidor Web es necesario que sean compiladas en forma En MVC cada elemento tiene tres partes: Un modelo que contiene los datos y la funcionalidad de la aplicacin Juego ajedrez: estado del tablero, reglas del ajedrez, etc.

Una vista que gestiona como se muestran esos datos Juego ajedrez: ventana que dibuja el tablero, oyentes de eventos, etc.

Un controlador que determina que modificaciones hay que hacer en el modelo cuando se interacciona con la vista. Tambin puede contener algoritmos Juego ajedrez: control de eventos, algoritmo para pensar las jugadas, etc.

Componentes de un Modelo Vista Controlador

Componentes de interfaz de usuario. La mayor parte de las soluciones necesitan ofrecer al usuario un modo de interactuar con la aplicacin. Por ejemplo, una aplicacin comercial, un sitio Web permite al cliente ver productos y realizar pedidos, y una aplicacin basada en Windows permite a los vendedores escribir los datos de los pedidos de los clientes. Las interfaces de usuario se implementan utilizando formularios de Windows Forms, pginas ASP.NET, controles u otro tipo de tecnologa que permita procesar y dar formato a los datos de los usuarios, as como adquirir y validar los datos entrantes procedentes de stos.

Componentes de proceso de interfaz. En muchos casos, la interaccin del usuario con el sistema se realiza de acuerdo a un proceso predecible. Por ejemplo, en una aplicacin comercial, se podra implementar un procedimiento que permita ver los datos del producto. De este modo, el usuario puede seleccionar de una lista de categoras de productos disponibles y, a continuacin, elegir uno de los productos de la categora seleccionada para ver los detalles correspondientes. Del mismo modo, cuando el usuario realiza una compra, la interaccin sigue un proceso predecible de recoleccin de datos por parte del usuario, por el cual ste proporciona los detalles de los productos que desea adquirir, a continuacin los detalles de pago y, por ltimo, la informacin para el envo. Para facilitar la sincronizacin y organizacin de las interacciones con el usuario, resulta til utilizar componentes de proceso de interfaz de usuario individuales. De este modo, el flujo del proceso y la lgica de administracin de estado no se incluye en el cdigo de los componentes de interfaz de usuario, por lo que varias interfaces (Web, Windows, Mvil, etc.) podrn utilizar el mismo motor de interaccin bsica. Flujos de negocio. Una vez que el proceso de interfaz ha recopilado los datos necesarios, stos se pueden utilizar para ejecutar un proceso de negocios. Por ejemplo, luego de enviar los detalles del producto, el pago y el envo a la aplicacin comercial, puede comenzar el proceso de cobro del pago y preparacin del envo. Gran parte de los procesos de negocio implican la realizacin de varios pasos, los que se deben organizar y ejecutar en un determinado orden. Por ejemplo, el sistema empresarial necesita calcular el valor total del pedido, validar la informacin de la tarjeta de crdito, procesar el pago de la misma y preparar el envo del producto. Los flujos de trabajo de negocio definen y coordinan los procesos de negocio de varios pasos de ejecucin larga y se pueden implementar utilizando herramientas de administracin de procesos de negocios, como BizTalk Business Process Management u otras herramientas se encargan de automatizar flujos y procesos de negocio.

Componentes de negocio.

Independientemente de si el proceso de negocios consta de un nico paso o de un flujo de trabajo organizado, la aplicacin requerir probablemente el uso de componentes que implementen reglas de negocio y realicen tareas de negocio. Los componentes de negocio implementan la lgica de negocio de la aplicacin.

Agentes de servicios. Cuando un componente de negocio requiere el uso de la funcionalidad proporcionada por un servicio externo, tal vez sea necesario hacer uso de componentes que administren la semntica de la comunicacin con dicho servicio. Por ejemplo, los componentes de negocio de la aplicacin comercial descrita anteriormente podra utilizar un agente de servicios para administrar la comunicacin con el servicio de autorizacin de tarjetas de crdito y utilizar un segundo agente de servicios para controlar las conversaciones con el servicio de mensajera. Los agentes de servicios permiten aislar las particularidades de las llamadas a varios servicios desde la aplicacin y pueden proporcionar servicios adicionales, como el mapeo del formato de los datos que expone el servicio al formato que requiere la aplicacin. Interfaces de servicios. Para exponer lgica de negocios como un servicio, es necesario crear interfaces de servicios que soporten los contratos de comunicacin (comunicacin basada en mensajes, formatos, protocolos, seguridad y excepciones, entre otros) que requieren los clientes. Por ejemplo, el servicio de autorizacin de tarjetas de crdito debe exponer una interfaz de servicios que describa la funcionalidad que ofrece el servicio, as como la semntica de comunicacin requerida para llamar al mismo. Las interfaces de servicios tambin se denominan fachadas de negocios.

Componentes de acceso a datos. La mayora de las aplicaciones y servicios necesitan obtener acceso al repositorio de datos en un momento determinado del proceso de negocios. Por ejemplo: la aplicacin empresarial necesita recuperar los datos de los productos de una base de datos para mostrar al usuario los detalles de los mismos, as como insertar dicha informacin en la base de datos cuando un usuario realiza un pedido. Por lo tanto, es razonable abstraer la lgica necesaria para obtener acceso a los datos (y la estructura como estn estos almacenados) en una capa independiente de

componentes de acceso a datos, ya que de este modo se centraliza la funcionalidad de acceso a datos y se facilita la configuracin y el mantenimiento de la misma. Entidades de negocio. La mayora de las aplicaciones requieren el paso de datos entre distintos componentes. Por ejemplo, en la aplicacin comercial es necesario pasar una lista de productos de los componentes de acceso a datos a los componentes de interfaz de usuario para que ste pueda visualizar dicha lista. Los datos se utilizan para representar entidades de negocio del mundo real, como productos o pedidos. Las entidades de negocio que se utilizan de forma interna en la aplicacin suelen ser estructuras de datos, como DataSets de ADO.NET, DataReader o secuencias XML, aunque tambin se pueden implementar utilizando clases personalizadas (patrn Data Transfer Object DTO, que representan entidades del mundo real necesarias para la aplicacin, como productos, pedidos, o clientes. Verticales de seguridad, administracin operacional y comunicaciones. La aplicacin probablemente utilice tambin componentes para realizar la administracin de excepciones, autorizar a los usuarios a que realicen tareas determinadas y comunicarse con otros servicios y aplicaciones.

You might also like