Anda di halaman 1dari 5

La arquitectura cliente-servidor es un modelo de aplicacin distribuida en el que las

tareas se reparten entre los proveedores de recursos o servicios, llamados servidores, y los
demandantes, llamados clientes. Un cliente realiza peticiones a otro programa, el servidor,
quien le da respuesta. Esta idea tambin se puede aplicar a programas que se ejecutan sobre
una sola computadora, aunque es ms ventajosa en un sistema operativo multiusuario
distribuido a travs de una red de computadoras.
En esta arquitectura la capacidad de proceso est repartida entre los clientes y los
servidores, aunque son ms importantes las ventajas de tipo organizativo debidas a la
centralizacin de la gestin de la informacin y la separacin de responsabilidades, lo que
facilita y clarifica el diseo del sistema.
La separacin entre cliente y servidor es una separacin de tipo lgico, donde el servidor no
se ejecuta necesariamente sobre una sola mquina ni es necesariamente un slo programa.
Los tipos especficos de servidores incluyen los servidores web, los servidores de archivo,
los servidores del correo, etc. Mientras que sus propsitos varan de unos servicios a otros,
la arquitectura bsica seguir siendo la misma.
Una disposicin muy comn son los sistemas multicapa en los que el servidor se
descompone en diferentes programas que pueden ser ejecutados por diferentes
computadoras aumentando as el grado de distribucin del sistema.
La red cliente-servidor es una red de comunicaciones en la cual los clientes estn
conectados a un servidor, en el que se centralizan los diversos recursos y aplicaciones con
que se cuenta; y que los pone a disposicin de los clientes cada vez que estos son
solicitados. Esto significa que todas las gestiones que se realizan se concentran en el
servidor, de manera que en l se disponen los requerimientos provenientes de los clientes
que tienen prioridad, los archivos que son de uso pblico y los que son de uso restringido,
los archivos que son de slo lectura y los que, por el contrario, pueden ser modificados, etc.
Este tipo de red puede utilizarse conjuntamente en caso de que se este utilizando en una red
mixta.

Modelovistacontrolador
De Wikipedia, la enciclopedia libre
Saltar a: navegacin, bsqueda

Un diagrama sencillo que muestra la relacin entre el modelo, la vista y el controlador.


Nota: las lneas slidas indican una asociacin directa, y las punteadas una indirecta (por
ejemplo, patrn Observer).
El modelovistacontrolador (MVC) es un patrn de arquitectura de software que separa
los datos y la lgica de negocio de una aplicacin de la interfaz de usuario y el mdulo
encargado de gestionar los eventos y las comunicaciones. Para ello MVC propone la
construccin de tres componentes distintos que son el modelo, la vista y el controlador, es
decir, por un lado define componentes para la representacin de la informacin, y por otro
lado para la interaccin del usuario1 2 . Este patrn de arquitectura de software se basa en
las ideas de reutilizacin de cdigo y la separacin de conceptos, caractersticas que buscan
facilitar la tarea de desarrollo de aplicaciones y su posterior mantenimiento3 4 .

ndice
[ocultar]

1 Historia
2 Descripcin del patrn
o 2.1 Interaccin de los componentes
o 2.2 MVC y bases de datos
3 Uso en aplicaciones Web
4 Frameworks MVC
5 Vase tambin
6 Referencias
7 Enlaces externos

Historia[editar]

El patrn MVC fue una de las primeras ideas en el campo de las interfaces grficas de
usuario y uno de los primeros trabajos en describir e implementar aplicaciones software en
trminos de sus diferentes funciones5 .
MVC fue introducido por Trygve Reenskaug (web personal) en Smalltalk-76 durante su
visita a Xerox Parc6 7 en los aos 70 y, seguidamente, en los aos 80, Jim Althoff y otros
implementaron una versin de MVC para la biblioteca de clases de Smalltalk-808 . Slo
ms tarde, en 1988, MVC se expres como un concepto general en un artculo9 sobre
Smalltalk-80.
En esta primera definicin de MVC el controlador se defina como "el mdulo que se
ocupa de la entrada" (de forma similar a como la vista "se ocupa de la salida"). Esta
definicin no tiene cabida en las aplicaciones modernas en las que esta funcionalidad es
asumida por una combinacin de la 'vista' y algn framework moderno para desarrollo. El
'controlador', en las aplicaciones modernas de la dcada de 2000, es un mdulo o una
seccin intermedia de cdigo, que hace de intermediario de la comunicacin entre el
'modelo' y la 'vista', y unifica la validacin (utilizando llamadas directas o el "observer"
para desacoplar el 'modelo' de la 'vista' en el 'modelo' activo10 ).
Algunos aspectos del patrn MVC han evolucionado dando lugar a ciertas variantes del
concepto original, ya que "'las partes del MVC clsico realmente no tienen sentido para los
clientes actuales"11 :

HMVC (MVC Jerrquico)


MVA (Modelo-Vista-Adaptador)
MVP (Modelo-Vista-Presentador)
MVVM (Modelo-Vista Vista-Modelo)
... y otros que han adaptado MVC a diferentes contextos.

Descripcin del patrn[editar]

Una tpica colaboracin entre los componentes de un MVC


De manera genrica, los componentes de MVC se podran definir como sigue:

El Modelo: Es la representacin de la informacin con la cual el sistema opera, por


lo tanto gestiona todos los accesos a dicha informacin, tanto consultas como
actualizaciones, implementando tambin los privilegios de acceso que se hayan
descrito en las especificaciones de la aplicacin (lgica de negocio). Enva a la
'vista' aquella parte de la informacin que en cada momento se le solicita para que
sea mostrada (tpicamente a un usuario). Las peticiones de acceso o manipulacin
de informacin llegan al 'modelo' a travs del 'controlador'12 .
El Controlador: Responde a eventos (usualmente acciones del usuario) e invoca
peticiones al 'modelo' cuando se hace alguna solicitud sobre la informacin (por
ejemplo, editar un documento o un registro en una base de datos). Tambin puede
enviar comandos a su 'vista' asociada si se solicita un cambio en la forma en que se
presenta de 'modelo' (por ejemplo, desplazamiento o scroll por un documento o por
los diferentes registros de una base de datos), por tanto se podra decir que el
'controlador' hace de intermediario entre la 'vista' y el 'modelo' (vase Middleware).
La Vista: Presenta el 'modelo' (informacin y lgica de negocio) en un formato
adecuado para interactuar (usualmente la interfaz de usuario) por tanto requiere de
dicho 'modelo' la informacin que debe representar como salida.

Interaccin de los componentes[editar]


Aunque se pueden encontrar diferentes implementaciones de MVC, el flujo de control que
se sigue generalmente es el siguiente:
1. El usuario interacta con la interfaz de usuario de alguna forma (por ejemplo, el
usuario pulsa un botn, enlace, etc.)
2. El controlador recibe (por parte de los objetos de la interfaz-vista) la notificacin de
la accin solicitada por el usuario. El controlador gestiona el evento que llega,
frecuentemente a travs de un gestor de eventos (handler) o callback.
3. El controlador accede al modelo, actualizndolo, posiblemente modificndolo de
forma adecuada a la accin solicitada por el usuario (por ejemplo, el controlador
actualiza el carro de la compra del usuario). Los controladores complejos estn a
menudo estructurados usando un patrn de comando que encapsula las acciones y
simplifica su extensin.
4. El controlador delega a los objetos de la vista la tarea de desplegar la interfaz de
usuario. La vista obtiene sus datos del modelo para generar la interfaz apropiada
para el usuario donde se reflejan los cambios en el modelo (por ejemplo, produce un
listado del contenido del carro de la compra). El modelo no debe tener conocimiento
directo sobre la vista. Sin embargo, se podra utilizar el patrn Observador para
proveer cierta indireccin entre el modelo y la vista, permitiendo al modelo notificar
a los interesados de cualquier cambio. Un objeto vista puede registrarse con el
modelo y esperar a los cambios, pero aun as el modelo en s mismo sigue sin saber

nada de la vista. Este uso del patrn Observador no es posible en las aplicaciones
Web puesto que las clases de la vista estn desconectadas del modelo y del
controlador. En general el controlador no pasa objetos de dominio (el modelo) a la
vista aunque puede dar la orden a la vista para que se actualice. Nota: En algunas
implementaciones la vista no tiene acceso directo al modelo, dejando que el
controlador enve los datos del modelo a la vista. Por ejemplo en el MVC usado por
Apple en su framework Cocoa. Suele citarse como Modelo-Interface-Control, una
variacin del MVC ms puro
5. La interfaz de usuario espera nuevas interacciones del usuario, comenzando el ciclo
nuevamente....

MVC y bases de datos[editar]


Muchos sistemas informticos utilizan un Sistema de Gestin de Base de Datos para
gestionar los datos que debe utilizar la aplicacin; en lneas generales del MVC dicha
gestin corresponde al modelo. La unin entre capa de presentacin y capa de negocio
conocido en el paradigma de la Programacin por capas representara la integracin entre la
Vista y su correspondiente Controlador de eventos y acceso a datos, MVC no pretende
discriminar entre capa de negocio y capa de presentacin pero si pretende separar la capa
visual grfica de su correspondiente programacin y acceso a datos, algo que mejora el
desarrollo y mantenimiento de la Vista y elControlador en paralelo, ya que ambos cumplen
ciclos de vida muy distintos entre s.

Uso en aplicaciones Web[editar]


Aunque originalmente MVC fue desarrollado para aplicaciones de escritorio, ha sido
ampliamente adaptado como arquitectura para disear e implementar aplicaciones web en
los principales lenguajes de programacin. Se han desarrollado multitud de frameworks,
comerciales y no comerciales, que implementan este patrn (ver apartado siguiente
"Frameworks MVC"); estos frameworks se diferencian bsicamente en la interpretacin de
como las funciones MVC se dividen entre cliente y servidor13 .
Los primeros frameworks MVC para desarrollo web planteaban un enfoque de cliente
ligero en el que casi todas las funciones, tanto de la vista, el modelo y el controlador
recaan en el servidor. En este enfoque, el cliente manda la peticin de cualquier
hiperenlace o formulario al controlador y despus recibe de la vista una pgina completa y
actualizada (u otro documento); tanto el modelo como el controlador (y buena parte de la
vista) estn completamente alojados en el servidor. Como las tecnologas web han
madurado, ahora existen frameworks como JavaScriptMVC, Backbone o jQuery14 que
permiten que ciertos componentes MVC se ejecuten parcial o totalmente en el cliente
(vase AJAX).

Anda mungkin juga menyukai