lunes, 7 de noviembre de 2011

La Arquitectura Modelo - Vista - Controlador como base de la plataforma de servicio (PARTE I)


En cubenube, hemos decidido utilizar para desarrollar nuestra plataforma la arquitectura de Modelo-Vista-Controlador (MVC), más que frecuente en los entornos de programación, la cual nos presenta una serie de ventajas a largo plazo para nada despreciables, asegurándonos una mejor gestión, actualización y mantenimiento del sistema. A continuación esquematizaré y os presentaré dicho sistema de manera superficial para su mejor entendimiento. En posteriores entradas del blog, iremos desmenuzando cada una de las partes con algo más de profundidad.

Esta arquitectura de programación, supone el abstraer el software en tres capas bien diferenciadas que interactúan entre sí, pero que ninguna de ellas tiene "consciencia" de lo que las otras hacen.

En principio esta manera de trabajar puede parecer un poco caótica ya que parece que cada una de las capas actúa de una manera libre y descoordinada, pero como veremos, esto no es así sino todo lo contrario.

Las tres capas de abstracción de las que se compone este tipo de arquitectura, como se deduce a partir de su nombre, son: el "Modelo", la "Vista", y el "Controlador". 


Empecemos con este último:
  • El Controlador: como su nombre indica es el organizador de la aplicación, decide que hacer según interactúe el usuario con la aplicación. Es el encargado de gestionar la seguridad de la aplicación, control de errores, responder a las acciones solicitadas por el usuario invocando a los diferentes modelos y transmitir los datos devueltos a la vista para que los presente al usuario.
  • El modelo: La parte encargada de la obtención, procesamiento, y almacenamiento de los datos según la acción transmitida desde el controlador. Una vez procesados esos datos, devuelve la información de respuesta al controlador en caso de ser necesario. Dichos datos pueden tener diferentes fuentes, ya sea una base de datos, ficheros de texto, ficheros XML, o cualquier otro sistema y/o combinación de los mismos. Es la única capa que puede tener interacción con los sistemas de almacenamiento.
  • La vista: Recibe por parte del controlador los nuevos datos a mostrar, y los representa de forma gráfica para mejor entendimiento del usuario y pueda seguir interactuando con la aplicación. En el caso del "cloud computing" y páginas web, es el que genera el código HTML, CSS, javascript, y cualquier otro lenguaje necesario, para mostrar dichos datos de una forma entendible y, en su medida, atractiva, al usuario.

Para poder explicar el funcionamiento en conjunto de las tres capas, se me ocurre el usar el símil de la cocina de un restaurante:

  1. El cliente realiza su comanda al camarero (capa de Vista) la cual se la transmite al jefe de cocina.
  2. Éste (el controlador) descompone y comprueba los datos de esa comanda (acción a realizar) y va llamando a las diferentes áreas de la cocina para su elaboración (los modelos).
  3. Los encargados de las áreas (modelos) solicitan a sus pinches (sistemas de almacenamiento) que les traigan los ingredientes necesarios, y cocinan los platos encargados (el procesamiento de datos). 
  4. Una vez terminados se los llevan de nuevo al jefe de cocina, el cual avisa a un camarero (no tiene porque ser el mismo) para que se los lleve al cliente, tal y como solicitó al principio.


Bueno, creo que por hoy es más que suficiente. Espero no haya resultado muy pesada la explicación. En el próximo post, hablaremos de las ventajas de este sistema y os hablaré un poco más en profundidad de esta arquitectura de programación.

No hay comentarios:

Publicar un comentario