Modelo-Vista-Controlador (MVC) Edgardo Bermúdez Pedro Martínez Víctor González.

47
Modelo-Vista-Controlador (MVC) Edgardo Bermúdez Pedro Martínez Víctor González

Transcript of Modelo-Vista-Controlador (MVC) Edgardo Bermúdez Pedro Martínez Víctor González.

Page 1: Modelo-Vista-Controlador (MVC) Edgardo Bermúdez Pedro Martínez Víctor González.

Modelo-Vista-Controlador (MVC)

Edgardo BermuacutedezPedro MartiacutenezViacutector Gonzaacutelez

Modelo-Vista-Controlador

Este patroacuten fue descrito por primera vez por Trygve Reenskaug en 1979 y la implementacioacuten original fue realizada en Smalltalk en los laboratorios Xerox

MVC se basa en la separacioacuten de la aplicacioacuten en tres capas principales Modelo Vista y Controlador

Se usa (eacutel o alguna de sus variantes) en la gran mayoriacutea de las interfaces de usuario

Modelo-Vista-Controlador

Modelo es la representacioacuten especiacutefica del dominio de la informacioacuten sobre la cual funciona la aplicacioacuten

El modelo es otra forma de llamar a la capa de dominio

La loacutegica de dominio antildeade significado a los datos por ejemplo calculando si hoy es el cumpleantildeos del usuario o los totales impuestos o portes en un carrito de la compra

Modelo-Vista-Controlador

Vista Se presenta el modelo en un formato adecuado para interactuar usualmente un elemento de interfaz de usuario

Controlador Este responde a eventos usualmente acciones del usuario e invoca cambios en el modelo y probablemente en la vista

Modelo-Vista-Controlador

En general

Modelo-Vista-Controlador

Muchas aplicaciones utilizan un mecanismo de almacenamiento persistente (como puede ser una base de datos) para almacenar los datos MVC no menciona especiacuteficamente esta capa de acceso a datos porque supone que estaacute encapsulada por el modelo

El objetivo primordial del MVC es la reutilizacioacuten del coacutedigo ya implementado

Esta tarea se facilita mucho si a la hora de programar tenemos la precaucioacuten de separar el coacutedigo en varias partes que sean susceptibles de ser reutilizadas sin modificaciones

Modelo-Vista-Controlador

Ejemplos

Los datos de una hoja de caacutelculo pueden mostrarse de en formato tabular con un graacutefico de barras con uno de sectores

Los datos son el modelo Si cambia el modelo las vistas deberiacutean actualizarse en

consonancia El usuario manipula el modelo a traveacutes de las vistas 1048698 (en realidad a traveacutes de los controladores)

Modelo-Vista-Controlador

Mas de una Vista de un Modelo de Datos

Modelo-Vista-Controlador

MVC es utilizado con mayor frecuencia en las aplicaciones web donde la Vista es la paacutegina HTML y el Controlador es el coacutedigo que reuacutene la data dinaacutemica y genera el contenido de la paacutegina

El Modelo es representado por el contenido actual que usualmente se encuentra almacenado en una base de datos o en archivos XML

Modelo-Vista-Controlador

Modelo-Vista-Controlador

Fortalezas 1048698 Se presenta la misma informacioacuten de distintas formas

1048698 Las vistas y comportamiento de una aplicacioacuten deben reflejar las manipulaciones de los datos de forma inmediata

1048698 Deberiacutea ser faacutecil cambiar la interfaz de usuario (incluso en tiempo de ejecucioacuten)

1048698 Permitir diferentes estaacutendares de interfaz de usuario o portarla a otros entornos no deberiacutea afectar al coacutedigo de la aplicacioacuten

Modelo-Vista-Controlador

En UMLSe propone para el desarrollo del

Modelo de Anaacutelisis de las aplicaciones tres tipos de clases fundamentales con las cuales podemos expresar todas las funciones de cualquier software con sus respectivas responsabilidades

Clase Interfaz ltltInterfacegtgtRecepcionar peticiones al sistemaMostrar respuestas del sistema

Clase Entidad ltltEntitygtgtGestionar datos (informacioacuten) necesaria para el sistemaAlmacenar datos (informacioacuten) persistentes del sistemaProvee la funcionalidad principal dela aplicacioacuten

Clase Controlador ltltControllergtgtProcesar Informacioacuten del sistemaGestionar visualizacioacuten de respuesta del sistemaObtiene los datos del modelo

Modelo-Vista-Controlador

Variante inicial del Patroacuten MVC

Variantes del Modelo

- Variante en la cual no existe ninguna comunicacioacuten entre el Modelo y la Vista y esta uacuteltima recibe los datos a mostrar a traveacutes del Controlador

Modelo-Vista-Controlador

Variante en la cual se desarrolla una comunicacioacuten entre el Modelo y la Vista donde esta uacuteltima al mostrar los datos los busca directamente en el Modelo dada una indicacioacuten del Controlador disminuyendo el conjunto de responsabilidades de este uacuteltimo

Variante Intermedia del Patroacuten MVC

Modelo-Vista-Controlador

Muchas interfaces graacuteficas de usuario como Swing o MFC hacen innecesario el uso de un controlador

1048698 Definen su propio flujo de control y manejan los eventos internamente

1048698 Integran asiacute la vista y el controlador

1048698 A esta variante se la suele denominar Document-View

Modelo-Vista-Controlador

Un controlador (controladorjava por ejemplo) puede gestionar el clic en un botoacuten de tal forma que recoge datos por medio del Modelo (modelcargar_texto()) y los manda a la Vista (el applet) para su actualizacioacuten (vistamostrar_texto( ))

Responde al click en botoacuten abrir La respuesta al evento es hacer que se abra en la vista el archivo correspondiente a la referencia seleccionada en el combo box void b_abrir_actionPerformed(ActionEvent e) hellip

String texto_archivo = modelcargar_texto( indice_ref ) Obtener texto de archivo Si la carga de archivo es ok lo muestro Si no aviso de error if (texto_archivo = null)

vistamostrar_texto(texto_archivo) Mostrar texto vistamostrar_aviso(Carga de + path + completada)

else

vistamostrar_aviso(Error en la carga de + path)

PROXY

Proxy

Propoacutesito

Proporciona un sustituto de otro objeto con el fin de controlar su acceso

MotivacioacutenRazoacuten para controlar el acceso a un

objeto Diferir el coste de su creacioacuten e inicializacioacuten hasta que el objeto realmente se necesite

Proxy

Ejemplo

Editor de documentos que permite objetos graacuteficos abrir un documento deberiacutea ser raacutepido realmente no todos los objetos son visibles a la vez

SolucioacutenCrear los objetos ldquobajo demandardquo

Proxy

Solucioacuten

Usar un objeto que sustituya a la imagen real (PROXY)

El proxy actuacutea como si fuese la imagen y la instancia cuando es necesario

Proxy

Solucioacuten

La imagen estaacute guardada en archivos separados y el Proxy guarda el nombre del archivo como la referencia al objeto real El Proxy tambieacuten guarda el tamantildeo

Proxy

Proxy

El editor de documento accede a la imagen a traveacutes de la interfaz definida por la clase abstracta Graphic

ImageProxy es una clase para las imaacutegenes que es creada por demanda contiene el nombre del archivo como una referencia a la imagen en el disco

El nombre del archivo es pasado como argumento al constructor de ImageProxy

Proxy

ImageProxy tambieacuten guarda el tamantildeo de la imagen y una referencia a la instancia real Esta referencia no seraacute valida hasta que el Proxy instancie la imagen real

La operacioacuten Draw se asegura que la imagen esta instanciada antes de responder la solicitud

GetExtent reenviacutea la solicitud a la imagen solo si ya fue instanciada de lo contrario ImageProxy devuelve el tamantildeo que tiene guardado

Proxy

AplicacionesDonde exista la necesidad de referenciar un objeto de forma maacutes versaacutetil y sofisticada que un puntero

Proxy remoto (Ambassador Embajador)

Proporciona un representante local de un objeto en un

espacio de memoria diferenteProxy virtual

Para crear objetos de gran tamantildeo bajo demanda

Proxy

Proxy de proteccioacutenControla el acceso al objeto original Es uacutetil si el objeto original tiene diferentes derechos de acceso

Referencia elegante (smart pointers)Realiza acciones adicionales cuando se acceden a los elementos referenciados

Proxy

Estructura

Proxy

Diagrama de Secuencia

Proxy

Participantes

ProxyMantiene un referencia al objeto realMantiene un mismo interfaz que el objeto

realMantiene el acceso al objeto realCodificacioacuten de peticiones Caching de

informacioacuten comprobar permisos

Proxy

Participantes

SubjectDefine el interfaz comuacuten a Proxy y

RealSubject

RealSubjectDefine el objeto real que representa el Proxy

Proxy

ConsecuenciasEl proxy introduce un nivel de indireccioacuten

cuando accede a un objeto La indireccioacuten

tiene muchos usos dependiendo del tipo de

proxyRemoto ocultar espacio de memoriaVirtual optimizaciones creando objetos bajo

demandaProteccioacuten tareas adicionales

Proxy

Relacionados

Si ofrece un interfaz distinto (proxy de seguridad)

AdapterTiene una implementacioacuten similar a

Decorator

PROXYBROKER

ProxyBroker

PropoacutesitoEstructurar sistemas distribuidos en los cuales surge la necesidad de una iteracioacuten remota entre componentes

MotivacioacutenDesacoplar la interaccioacuten de los usuarios en los clientes y servidores

ProxyBroker

Ejemplo

En el desarrollo de un ldquoMercado Webrdquo tenemos desarrollados dos agentes el comprador y el vendedor Pero estos estaacuten desarrollados en plataformas diferentes que no permite que tengan comunicacioacuten

ProxyBroker

Solucioacuten

Cuando un cliente necesita comprar un producto solicita a traveacutes de un Proxy al agente Broker los vendedores que tiene registrado El Broker se comunica por un Proxy con el servidor para llevar a cabo la peticioacuten

ProxyBroker

Solucioacuten

El agente Broker entrega la informacioacuten necesaria a el proxy-cliente y al proxy-servidor para que estos establezcan una comunicacioacuten efectiva que permita realizar la operacioacuten

ProxyBroker

Los broker permiten realizar conexiones entre clientes y servidores de diferentes plataformas

Le entregan la informacioacuten necesaria a los Proxy para que estos realicen las conexiones

ProxyBroker

Otro ejemplo

El broker sirve de intermediario entre el comprador y el vendedor

Permitiendo que logren conectarse y realizar la transaccioacuten

ProxyBroker

Los patrones ProxyBroker se pueden implementar de diferentes maneras esto depende de los requerimientos de los sistemas

Una Forma de implementarlos es permitiendo que los Proxy cliente y servidor se comuniquen entre ellos cuando es posible

ProxyBroker

ProxyBroker

Diagrama de Secuencia

ProxyBroker

Otra manera muy usada es no permitir que los Proxy cliente y servidor se comuniquen

Esta restriccioacuten podriacutea ser necesaria por poliacuteticas de seguridad de los servidores

Tambieacuten por mantener un orden y control de todo lo que pasa por los Proxys

ProxyBroker

ProxyBroker

ProxyBroker

Consecuencias

Aislamiento Entre la aplicacioacuten y los servidores

Sencillez permite que sea mas sencilla la construccioacuten de los sistemas

Flexibilidad Permite cambiar capas sin afectar las aplicaciones relacionadas con esta

ProxyBroker

EjemplosEste patroacuten es muy usado por sistemas con estaacutendar CORBA (Arquitectura comuacuten de intermediarios en peticiones a objetos)

Microsofts OLE 2x World Wide Web ATM-P

Page 2: Modelo-Vista-Controlador (MVC) Edgardo Bermúdez Pedro Martínez Víctor González.

Modelo-Vista-Controlador

Este patroacuten fue descrito por primera vez por Trygve Reenskaug en 1979 y la implementacioacuten original fue realizada en Smalltalk en los laboratorios Xerox

MVC se basa en la separacioacuten de la aplicacioacuten en tres capas principales Modelo Vista y Controlador

Se usa (eacutel o alguna de sus variantes) en la gran mayoriacutea de las interfaces de usuario

Modelo-Vista-Controlador

Modelo es la representacioacuten especiacutefica del dominio de la informacioacuten sobre la cual funciona la aplicacioacuten

El modelo es otra forma de llamar a la capa de dominio

La loacutegica de dominio antildeade significado a los datos por ejemplo calculando si hoy es el cumpleantildeos del usuario o los totales impuestos o portes en un carrito de la compra

Modelo-Vista-Controlador

Vista Se presenta el modelo en un formato adecuado para interactuar usualmente un elemento de interfaz de usuario

Controlador Este responde a eventos usualmente acciones del usuario e invoca cambios en el modelo y probablemente en la vista

Modelo-Vista-Controlador

En general

Modelo-Vista-Controlador

Muchas aplicaciones utilizan un mecanismo de almacenamiento persistente (como puede ser una base de datos) para almacenar los datos MVC no menciona especiacuteficamente esta capa de acceso a datos porque supone que estaacute encapsulada por el modelo

El objetivo primordial del MVC es la reutilizacioacuten del coacutedigo ya implementado

Esta tarea se facilita mucho si a la hora de programar tenemos la precaucioacuten de separar el coacutedigo en varias partes que sean susceptibles de ser reutilizadas sin modificaciones

Modelo-Vista-Controlador

Ejemplos

Los datos de una hoja de caacutelculo pueden mostrarse de en formato tabular con un graacutefico de barras con uno de sectores

Los datos son el modelo Si cambia el modelo las vistas deberiacutean actualizarse en

consonancia El usuario manipula el modelo a traveacutes de las vistas 1048698 (en realidad a traveacutes de los controladores)

Modelo-Vista-Controlador

Mas de una Vista de un Modelo de Datos

Modelo-Vista-Controlador

MVC es utilizado con mayor frecuencia en las aplicaciones web donde la Vista es la paacutegina HTML y el Controlador es el coacutedigo que reuacutene la data dinaacutemica y genera el contenido de la paacutegina

El Modelo es representado por el contenido actual que usualmente se encuentra almacenado en una base de datos o en archivos XML

Modelo-Vista-Controlador

Modelo-Vista-Controlador

Fortalezas 1048698 Se presenta la misma informacioacuten de distintas formas

1048698 Las vistas y comportamiento de una aplicacioacuten deben reflejar las manipulaciones de los datos de forma inmediata

1048698 Deberiacutea ser faacutecil cambiar la interfaz de usuario (incluso en tiempo de ejecucioacuten)

1048698 Permitir diferentes estaacutendares de interfaz de usuario o portarla a otros entornos no deberiacutea afectar al coacutedigo de la aplicacioacuten

Modelo-Vista-Controlador

En UMLSe propone para el desarrollo del

Modelo de Anaacutelisis de las aplicaciones tres tipos de clases fundamentales con las cuales podemos expresar todas las funciones de cualquier software con sus respectivas responsabilidades

Clase Interfaz ltltInterfacegtgtRecepcionar peticiones al sistemaMostrar respuestas del sistema

Clase Entidad ltltEntitygtgtGestionar datos (informacioacuten) necesaria para el sistemaAlmacenar datos (informacioacuten) persistentes del sistemaProvee la funcionalidad principal dela aplicacioacuten

Clase Controlador ltltControllergtgtProcesar Informacioacuten del sistemaGestionar visualizacioacuten de respuesta del sistemaObtiene los datos del modelo

Modelo-Vista-Controlador

Variante inicial del Patroacuten MVC

Variantes del Modelo

- Variante en la cual no existe ninguna comunicacioacuten entre el Modelo y la Vista y esta uacuteltima recibe los datos a mostrar a traveacutes del Controlador

Modelo-Vista-Controlador

Variante en la cual se desarrolla una comunicacioacuten entre el Modelo y la Vista donde esta uacuteltima al mostrar los datos los busca directamente en el Modelo dada una indicacioacuten del Controlador disminuyendo el conjunto de responsabilidades de este uacuteltimo

Variante Intermedia del Patroacuten MVC

Modelo-Vista-Controlador

Muchas interfaces graacuteficas de usuario como Swing o MFC hacen innecesario el uso de un controlador

1048698 Definen su propio flujo de control y manejan los eventos internamente

1048698 Integran asiacute la vista y el controlador

1048698 A esta variante se la suele denominar Document-View

Modelo-Vista-Controlador

Un controlador (controladorjava por ejemplo) puede gestionar el clic en un botoacuten de tal forma que recoge datos por medio del Modelo (modelcargar_texto()) y los manda a la Vista (el applet) para su actualizacioacuten (vistamostrar_texto( ))

Responde al click en botoacuten abrir La respuesta al evento es hacer que se abra en la vista el archivo correspondiente a la referencia seleccionada en el combo box void b_abrir_actionPerformed(ActionEvent e) hellip

String texto_archivo = modelcargar_texto( indice_ref ) Obtener texto de archivo Si la carga de archivo es ok lo muestro Si no aviso de error if (texto_archivo = null)

vistamostrar_texto(texto_archivo) Mostrar texto vistamostrar_aviso(Carga de + path + completada)

else

vistamostrar_aviso(Error en la carga de + path)

PROXY

Proxy

Propoacutesito

Proporciona un sustituto de otro objeto con el fin de controlar su acceso

MotivacioacutenRazoacuten para controlar el acceso a un

objeto Diferir el coste de su creacioacuten e inicializacioacuten hasta que el objeto realmente se necesite

Proxy

Ejemplo

Editor de documentos que permite objetos graacuteficos abrir un documento deberiacutea ser raacutepido realmente no todos los objetos son visibles a la vez

SolucioacutenCrear los objetos ldquobajo demandardquo

Proxy

Solucioacuten

Usar un objeto que sustituya a la imagen real (PROXY)

El proxy actuacutea como si fuese la imagen y la instancia cuando es necesario

Proxy

Solucioacuten

La imagen estaacute guardada en archivos separados y el Proxy guarda el nombre del archivo como la referencia al objeto real El Proxy tambieacuten guarda el tamantildeo

Proxy

Proxy

El editor de documento accede a la imagen a traveacutes de la interfaz definida por la clase abstracta Graphic

ImageProxy es una clase para las imaacutegenes que es creada por demanda contiene el nombre del archivo como una referencia a la imagen en el disco

El nombre del archivo es pasado como argumento al constructor de ImageProxy

Proxy

ImageProxy tambieacuten guarda el tamantildeo de la imagen y una referencia a la instancia real Esta referencia no seraacute valida hasta que el Proxy instancie la imagen real

La operacioacuten Draw se asegura que la imagen esta instanciada antes de responder la solicitud

GetExtent reenviacutea la solicitud a la imagen solo si ya fue instanciada de lo contrario ImageProxy devuelve el tamantildeo que tiene guardado

Proxy

AplicacionesDonde exista la necesidad de referenciar un objeto de forma maacutes versaacutetil y sofisticada que un puntero

Proxy remoto (Ambassador Embajador)

Proporciona un representante local de un objeto en un

espacio de memoria diferenteProxy virtual

Para crear objetos de gran tamantildeo bajo demanda

Proxy

Proxy de proteccioacutenControla el acceso al objeto original Es uacutetil si el objeto original tiene diferentes derechos de acceso

Referencia elegante (smart pointers)Realiza acciones adicionales cuando se acceden a los elementos referenciados

Proxy

Estructura

Proxy

Diagrama de Secuencia

Proxy

Participantes

ProxyMantiene un referencia al objeto realMantiene un mismo interfaz que el objeto

realMantiene el acceso al objeto realCodificacioacuten de peticiones Caching de

informacioacuten comprobar permisos

Proxy

Participantes

SubjectDefine el interfaz comuacuten a Proxy y

RealSubject

RealSubjectDefine el objeto real que representa el Proxy

Proxy

ConsecuenciasEl proxy introduce un nivel de indireccioacuten

cuando accede a un objeto La indireccioacuten

tiene muchos usos dependiendo del tipo de

proxyRemoto ocultar espacio de memoriaVirtual optimizaciones creando objetos bajo

demandaProteccioacuten tareas adicionales

Proxy

Relacionados

Si ofrece un interfaz distinto (proxy de seguridad)

AdapterTiene una implementacioacuten similar a

Decorator

PROXYBROKER

ProxyBroker

PropoacutesitoEstructurar sistemas distribuidos en los cuales surge la necesidad de una iteracioacuten remota entre componentes

MotivacioacutenDesacoplar la interaccioacuten de los usuarios en los clientes y servidores

ProxyBroker

Ejemplo

En el desarrollo de un ldquoMercado Webrdquo tenemos desarrollados dos agentes el comprador y el vendedor Pero estos estaacuten desarrollados en plataformas diferentes que no permite que tengan comunicacioacuten

ProxyBroker

Solucioacuten

Cuando un cliente necesita comprar un producto solicita a traveacutes de un Proxy al agente Broker los vendedores que tiene registrado El Broker se comunica por un Proxy con el servidor para llevar a cabo la peticioacuten

ProxyBroker

Solucioacuten

El agente Broker entrega la informacioacuten necesaria a el proxy-cliente y al proxy-servidor para que estos establezcan una comunicacioacuten efectiva que permita realizar la operacioacuten

ProxyBroker

Los broker permiten realizar conexiones entre clientes y servidores de diferentes plataformas

Le entregan la informacioacuten necesaria a los Proxy para que estos realicen las conexiones

ProxyBroker

Otro ejemplo

El broker sirve de intermediario entre el comprador y el vendedor

Permitiendo que logren conectarse y realizar la transaccioacuten

ProxyBroker

Los patrones ProxyBroker se pueden implementar de diferentes maneras esto depende de los requerimientos de los sistemas

Una Forma de implementarlos es permitiendo que los Proxy cliente y servidor se comuniquen entre ellos cuando es posible

ProxyBroker

ProxyBroker

Diagrama de Secuencia

ProxyBroker

Otra manera muy usada es no permitir que los Proxy cliente y servidor se comuniquen

Esta restriccioacuten podriacutea ser necesaria por poliacuteticas de seguridad de los servidores

Tambieacuten por mantener un orden y control de todo lo que pasa por los Proxys

ProxyBroker

ProxyBroker

ProxyBroker

Consecuencias

Aislamiento Entre la aplicacioacuten y los servidores

Sencillez permite que sea mas sencilla la construccioacuten de los sistemas

Flexibilidad Permite cambiar capas sin afectar las aplicaciones relacionadas con esta

ProxyBroker

EjemplosEste patroacuten es muy usado por sistemas con estaacutendar CORBA (Arquitectura comuacuten de intermediarios en peticiones a objetos)

Microsofts OLE 2x World Wide Web ATM-P

Page 3: Modelo-Vista-Controlador (MVC) Edgardo Bermúdez Pedro Martínez Víctor González.

Modelo-Vista-Controlador

Modelo es la representacioacuten especiacutefica del dominio de la informacioacuten sobre la cual funciona la aplicacioacuten

El modelo es otra forma de llamar a la capa de dominio

La loacutegica de dominio antildeade significado a los datos por ejemplo calculando si hoy es el cumpleantildeos del usuario o los totales impuestos o portes en un carrito de la compra

Modelo-Vista-Controlador

Vista Se presenta el modelo en un formato adecuado para interactuar usualmente un elemento de interfaz de usuario

Controlador Este responde a eventos usualmente acciones del usuario e invoca cambios en el modelo y probablemente en la vista

Modelo-Vista-Controlador

En general

Modelo-Vista-Controlador

Muchas aplicaciones utilizan un mecanismo de almacenamiento persistente (como puede ser una base de datos) para almacenar los datos MVC no menciona especiacuteficamente esta capa de acceso a datos porque supone que estaacute encapsulada por el modelo

El objetivo primordial del MVC es la reutilizacioacuten del coacutedigo ya implementado

Esta tarea se facilita mucho si a la hora de programar tenemos la precaucioacuten de separar el coacutedigo en varias partes que sean susceptibles de ser reutilizadas sin modificaciones

Modelo-Vista-Controlador

Ejemplos

Los datos de una hoja de caacutelculo pueden mostrarse de en formato tabular con un graacutefico de barras con uno de sectores

Los datos son el modelo Si cambia el modelo las vistas deberiacutean actualizarse en

consonancia El usuario manipula el modelo a traveacutes de las vistas 1048698 (en realidad a traveacutes de los controladores)

Modelo-Vista-Controlador

Mas de una Vista de un Modelo de Datos

Modelo-Vista-Controlador

MVC es utilizado con mayor frecuencia en las aplicaciones web donde la Vista es la paacutegina HTML y el Controlador es el coacutedigo que reuacutene la data dinaacutemica y genera el contenido de la paacutegina

El Modelo es representado por el contenido actual que usualmente se encuentra almacenado en una base de datos o en archivos XML

Modelo-Vista-Controlador

Modelo-Vista-Controlador

Fortalezas 1048698 Se presenta la misma informacioacuten de distintas formas

1048698 Las vistas y comportamiento de una aplicacioacuten deben reflejar las manipulaciones de los datos de forma inmediata

1048698 Deberiacutea ser faacutecil cambiar la interfaz de usuario (incluso en tiempo de ejecucioacuten)

1048698 Permitir diferentes estaacutendares de interfaz de usuario o portarla a otros entornos no deberiacutea afectar al coacutedigo de la aplicacioacuten

Modelo-Vista-Controlador

En UMLSe propone para el desarrollo del

Modelo de Anaacutelisis de las aplicaciones tres tipos de clases fundamentales con las cuales podemos expresar todas las funciones de cualquier software con sus respectivas responsabilidades

Clase Interfaz ltltInterfacegtgtRecepcionar peticiones al sistemaMostrar respuestas del sistema

Clase Entidad ltltEntitygtgtGestionar datos (informacioacuten) necesaria para el sistemaAlmacenar datos (informacioacuten) persistentes del sistemaProvee la funcionalidad principal dela aplicacioacuten

Clase Controlador ltltControllergtgtProcesar Informacioacuten del sistemaGestionar visualizacioacuten de respuesta del sistemaObtiene los datos del modelo

Modelo-Vista-Controlador

Variante inicial del Patroacuten MVC

Variantes del Modelo

- Variante en la cual no existe ninguna comunicacioacuten entre el Modelo y la Vista y esta uacuteltima recibe los datos a mostrar a traveacutes del Controlador

Modelo-Vista-Controlador

Variante en la cual se desarrolla una comunicacioacuten entre el Modelo y la Vista donde esta uacuteltima al mostrar los datos los busca directamente en el Modelo dada una indicacioacuten del Controlador disminuyendo el conjunto de responsabilidades de este uacuteltimo

Variante Intermedia del Patroacuten MVC

Modelo-Vista-Controlador

Muchas interfaces graacuteficas de usuario como Swing o MFC hacen innecesario el uso de un controlador

1048698 Definen su propio flujo de control y manejan los eventos internamente

1048698 Integran asiacute la vista y el controlador

1048698 A esta variante se la suele denominar Document-View

Modelo-Vista-Controlador

Un controlador (controladorjava por ejemplo) puede gestionar el clic en un botoacuten de tal forma que recoge datos por medio del Modelo (modelcargar_texto()) y los manda a la Vista (el applet) para su actualizacioacuten (vistamostrar_texto( ))

Responde al click en botoacuten abrir La respuesta al evento es hacer que se abra en la vista el archivo correspondiente a la referencia seleccionada en el combo box void b_abrir_actionPerformed(ActionEvent e) hellip

String texto_archivo = modelcargar_texto( indice_ref ) Obtener texto de archivo Si la carga de archivo es ok lo muestro Si no aviso de error if (texto_archivo = null)

vistamostrar_texto(texto_archivo) Mostrar texto vistamostrar_aviso(Carga de + path + completada)

else

vistamostrar_aviso(Error en la carga de + path)

PROXY

Proxy

Propoacutesito

Proporciona un sustituto de otro objeto con el fin de controlar su acceso

MotivacioacutenRazoacuten para controlar el acceso a un

objeto Diferir el coste de su creacioacuten e inicializacioacuten hasta que el objeto realmente se necesite

Proxy

Ejemplo

Editor de documentos que permite objetos graacuteficos abrir un documento deberiacutea ser raacutepido realmente no todos los objetos son visibles a la vez

SolucioacutenCrear los objetos ldquobajo demandardquo

Proxy

Solucioacuten

Usar un objeto que sustituya a la imagen real (PROXY)

El proxy actuacutea como si fuese la imagen y la instancia cuando es necesario

Proxy

Solucioacuten

La imagen estaacute guardada en archivos separados y el Proxy guarda el nombre del archivo como la referencia al objeto real El Proxy tambieacuten guarda el tamantildeo

Proxy

Proxy

El editor de documento accede a la imagen a traveacutes de la interfaz definida por la clase abstracta Graphic

ImageProxy es una clase para las imaacutegenes que es creada por demanda contiene el nombre del archivo como una referencia a la imagen en el disco

El nombre del archivo es pasado como argumento al constructor de ImageProxy

Proxy

ImageProxy tambieacuten guarda el tamantildeo de la imagen y una referencia a la instancia real Esta referencia no seraacute valida hasta que el Proxy instancie la imagen real

La operacioacuten Draw se asegura que la imagen esta instanciada antes de responder la solicitud

GetExtent reenviacutea la solicitud a la imagen solo si ya fue instanciada de lo contrario ImageProxy devuelve el tamantildeo que tiene guardado

Proxy

AplicacionesDonde exista la necesidad de referenciar un objeto de forma maacutes versaacutetil y sofisticada que un puntero

Proxy remoto (Ambassador Embajador)

Proporciona un representante local de un objeto en un

espacio de memoria diferenteProxy virtual

Para crear objetos de gran tamantildeo bajo demanda

Proxy

Proxy de proteccioacutenControla el acceso al objeto original Es uacutetil si el objeto original tiene diferentes derechos de acceso

Referencia elegante (smart pointers)Realiza acciones adicionales cuando se acceden a los elementos referenciados

Proxy

Estructura

Proxy

Diagrama de Secuencia

Proxy

Participantes

ProxyMantiene un referencia al objeto realMantiene un mismo interfaz que el objeto

realMantiene el acceso al objeto realCodificacioacuten de peticiones Caching de

informacioacuten comprobar permisos

Proxy

Participantes

SubjectDefine el interfaz comuacuten a Proxy y

RealSubject

RealSubjectDefine el objeto real que representa el Proxy

Proxy

ConsecuenciasEl proxy introduce un nivel de indireccioacuten

cuando accede a un objeto La indireccioacuten

tiene muchos usos dependiendo del tipo de

proxyRemoto ocultar espacio de memoriaVirtual optimizaciones creando objetos bajo

demandaProteccioacuten tareas adicionales

Proxy

Relacionados

Si ofrece un interfaz distinto (proxy de seguridad)

AdapterTiene una implementacioacuten similar a

Decorator

PROXYBROKER

ProxyBroker

PropoacutesitoEstructurar sistemas distribuidos en los cuales surge la necesidad de una iteracioacuten remota entre componentes

MotivacioacutenDesacoplar la interaccioacuten de los usuarios en los clientes y servidores

ProxyBroker

Ejemplo

En el desarrollo de un ldquoMercado Webrdquo tenemos desarrollados dos agentes el comprador y el vendedor Pero estos estaacuten desarrollados en plataformas diferentes que no permite que tengan comunicacioacuten

ProxyBroker

Solucioacuten

Cuando un cliente necesita comprar un producto solicita a traveacutes de un Proxy al agente Broker los vendedores que tiene registrado El Broker se comunica por un Proxy con el servidor para llevar a cabo la peticioacuten

ProxyBroker

Solucioacuten

El agente Broker entrega la informacioacuten necesaria a el proxy-cliente y al proxy-servidor para que estos establezcan una comunicacioacuten efectiva que permita realizar la operacioacuten

ProxyBroker

Los broker permiten realizar conexiones entre clientes y servidores de diferentes plataformas

Le entregan la informacioacuten necesaria a los Proxy para que estos realicen las conexiones

ProxyBroker

Otro ejemplo

El broker sirve de intermediario entre el comprador y el vendedor

Permitiendo que logren conectarse y realizar la transaccioacuten

ProxyBroker

Los patrones ProxyBroker se pueden implementar de diferentes maneras esto depende de los requerimientos de los sistemas

Una Forma de implementarlos es permitiendo que los Proxy cliente y servidor se comuniquen entre ellos cuando es posible

ProxyBroker

ProxyBroker

Diagrama de Secuencia

ProxyBroker

Otra manera muy usada es no permitir que los Proxy cliente y servidor se comuniquen

Esta restriccioacuten podriacutea ser necesaria por poliacuteticas de seguridad de los servidores

Tambieacuten por mantener un orden y control de todo lo que pasa por los Proxys

ProxyBroker

ProxyBroker

ProxyBroker

Consecuencias

Aislamiento Entre la aplicacioacuten y los servidores

Sencillez permite que sea mas sencilla la construccioacuten de los sistemas

Flexibilidad Permite cambiar capas sin afectar las aplicaciones relacionadas con esta

ProxyBroker

EjemplosEste patroacuten es muy usado por sistemas con estaacutendar CORBA (Arquitectura comuacuten de intermediarios en peticiones a objetos)

Microsofts OLE 2x World Wide Web ATM-P

Page 4: Modelo-Vista-Controlador (MVC) Edgardo Bermúdez Pedro Martínez Víctor González.

Modelo-Vista-Controlador

Vista Se presenta el modelo en un formato adecuado para interactuar usualmente un elemento de interfaz de usuario

Controlador Este responde a eventos usualmente acciones del usuario e invoca cambios en el modelo y probablemente en la vista

Modelo-Vista-Controlador

En general

Modelo-Vista-Controlador

Muchas aplicaciones utilizan un mecanismo de almacenamiento persistente (como puede ser una base de datos) para almacenar los datos MVC no menciona especiacuteficamente esta capa de acceso a datos porque supone que estaacute encapsulada por el modelo

El objetivo primordial del MVC es la reutilizacioacuten del coacutedigo ya implementado

Esta tarea se facilita mucho si a la hora de programar tenemos la precaucioacuten de separar el coacutedigo en varias partes que sean susceptibles de ser reutilizadas sin modificaciones

Modelo-Vista-Controlador

Ejemplos

Los datos de una hoja de caacutelculo pueden mostrarse de en formato tabular con un graacutefico de barras con uno de sectores

Los datos son el modelo Si cambia el modelo las vistas deberiacutean actualizarse en

consonancia El usuario manipula el modelo a traveacutes de las vistas 1048698 (en realidad a traveacutes de los controladores)

Modelo-Vista-Controlador

Mas de una Vista de un Modelo de Datos

Modelo-Vista-Controlador

MVC es utilizado con mayor frecuencia en las aplicaciones web donde la Vista es la paacutegina HTML y el Controlador es el coacutedigo que reuacutene la data dinaacutemica y genera el contenido de la paacutegina

El Modelo es representado por el contenido actual que usualmente se encuentra almacenado en una base de datos o en archivos XML

Modelo-Vista-Controlador

Modelo-Vista-Controlador

Fortalezas 1048698 Se presenta la misma informacioacuten de distintas formas

1048698 Las vistas y comportamiento de una aplicacioacuten deben reflejar las manipulaciones de los datos de forma inmediata

1048698 Deberiacutea ser faacutecil cambiar la interfaz de usuario (incluso en tiempo de ejecucioacuten)

1048698 Permitir diferentes estaacutendares de interfaz de usuario o portarla a otros entornos no deberiacutea afectar al coacutedigo de la aplicacioacuten

Modelo-Vista-Controlador

En UMLSe propone para el desarrollo del

Modelo de Anaacutelisis de las aplicaciones tres tipos de clases fundamentales con las cuales podemos expresar todas las funciones de cualquier software con sus respectivas responsabilidades

Clase Interfaz ltltInterfacegtgtRecepcionar peticiones al sistemaMostrar respuestas del sistema

Clase Entidad ltltEntitygtgtGestionar datos (informacioacuten) necesaria para el sistemaAlmacenar datos (informacioacuten) persistentes del sistemaProvee la funcionalidad principal dela aplicacioacuten

Clase Controlador ltltControllergtgtProcesar Informacioacuten del sistemaGestionar visualizacioacuten de respuesta del sistemaObtiene los datos del modelo

Modelo-Vista-Controlador

Variante inicial del Patroacuten MVC

Variantes del Modelo

- Variante en la cual no existe ninguna comunicacioacuten entre el Modelo y la Vista y esta uacuteltima recibe los datos a mostrar a traveacutes del Controlador

Modelo-Vista-Controlador

Variante en la cual se desarrolla una comunicacioacuten entre el Modelo y la Vista donde esta uacuteltima al mostrar los datos los busca directamente en el Modelo dada una indicacioacuten del Controlador disminuyendo el conjunto de responsabilidades de este uacuteltimo

Variante Intermedia del Patroacuten MVC

Modelo-Vista-Controlador

Muchas interfaces graacuteficas de usuario como Swing o MFC hacen innecesario el uso de un controlador

1048698 Definen su propio flujo de control y manejan los eventos internamente

1048698 Integran asiacute la vista y el controlador

1048698 A esta variante se la suele denominar Document-View

Modelo-Vista-Controlador

Un controlador (controladorjava por ejemplo) puede gestionar el clic en un botoacuten de tal forma que recoge datos por medio del Modelo (modelcargar_texto()) y los manda a la Vista (el applet) para su actualizacioacuten (vistamostrar_texto( ))

Responde al click en botoacuten abrir La respuesta al evento es hacer que se abra en la vista el archivo correspondiente a la referencia seleccionada en el combo box void b_abrir_actionPerformed(ActionEvent e) hellip

String texto_archivo = modelcargar_texto( indice_ref ) Obtener texto de archivo Si la carga de archivo es ok lo muestro Si no aviso de error if (texto_archivo = null)

vistamostrar_texto(texto_archivo) Mostrar texto vistamostrar_aviso(Carga de + path + completada)

else

vistamostrar_aviso(Error en la carga de + path)

PROXY

Proxy

Propoacutesito

Proporciona un sustituto de otro objeto con el fin de controlar su acceso

MotivacioacutenRazoacuten para controlar el acceso a un

objeto Diferir el coste de su creacioacuten e inicializacioacuten hasta que el objeto realmente se necesite

Proxy

Ejemplo

Editor de documentos que permite objetos graacuteficos abrir un documento deberiacutea ser raacutepido realmente no todos los objetos son visibles a la vez

SolucioacutenCrear los objetos ldquobajo demandardquo

Proxy

Solucioacuten

Usar un objeto que sustituya a la imagen real (PROXY)

El proxy actuacutea como si fuese la imagen y la instancia cuando es necesario

Proxy

Solucioacuten

La imagen estaacute guardada en archivos separados y el Proxy guarda el nombre del archivo como la referencia al objeto real El Proxy tambieacuten guarda el tamantildeo

Proxy

Proxy

El editor de documento accede a la imagen a traveacutes de la interfaz definida por la clase abstracta Graphic

ImageProxy es una clase para las imaacutegenes que es creada por demanda contiene el nombre del archivo como una referencia a la imagen en el disco

El nombre del archivo es pasado como argumento al constructor de ImageProxy

Proxy

ImageProxy tambieacuten guarda el tamantildeo de la imagen y una referencia a la instancia real Esta referencia no seraacute valida hasta que el Proxy instancie la imagen real

La operacioacuten Draw se asegura que la imagen esta instanciada antes de responder la solicitud

GetExtent reenviacutea la solicitud a la imagen solo si ya fue instanciada de lo contrario ImageProxy devuelve el tamantildeo que tiene guardado

Proxy

AplicacionesDonde exista la necesidad de referenciar un objeto de forma maacutes versaacutetil y sofisticada que un puntero

Proxy remoto (Ambassador Embajador)

Proporciona un representante local de un objeto en un

espacio de memoria diferenteProxy virtual

Para crear objetos de gran tamantildeo bajo demanda

Proxy

Proxy de proteccioacutenControla el acceso al objeto original Es uacutetil si el objeto original tiene diferentes derechos de acceso

Referencia elegante (smart pointers)Realiza acciones adicionales cuando se acceden a los elementos referenciados

Proxy

Estructura

Proxy

Diagrama de Secuencia

Proxy

Participantes

ProxyMantiene un referencia al objeto realMantiene un mismo interfaz que el objeto

realMantiene el acceso al objeto realCodificacioacuten de peticiones Caching de

informacioacuten comprobar permisos

Proxy

Participantes

SubjectDefine el interfaz comuacuten a Proxy y

RealSubject

RealSubjectDefine el objeto real que representa el Proxy

Proxy

ConsecuenciasEl proxy introduce un nivel de indireccioacuten

cuando accede a un objeto La indireccioacuten

tiene muchos usos dependiendo del tipo de

proxyRemoto ocultar espacio de memoriaVirtual optimizaciones creando objetos bajo

demandaProteccioacuten tareas adicionales

Proxy

Relacionados

Si ofrece un interfaz distinto (proxy de seguridad)

AdapterTiene una implementacioacuten similar a

Decorator

PROXYBROKER

ProxyBroker

PropoacutesitoEstructurar sistemas distribuidos en los cuales surge la necesidad de una iteracioacuten remota entre componentes

MotivacioacutenDesacoplar la interaccioacuten de los usuarios en los clientes y servidores

ProxyBroker

Ejemplo

En el desarrollo de un ldquoMercado Webrdquo tenemos desarrollados dos agentes el comprador y el vendedor Pero estos estaacuten desarrollados en plataformas diferentes que no permite que tengan comunicacioacuten

ProxyBroker

Solucioacuten

Cuando un cliente necesita comprar un producto solicita a traveacutes de un Proxy al agente Broker los vendedores que tiene registrado El Broker se comunica por un Proxy con el servidor para llevar a cabo la peticioacuten

ProxyBroker

Solucioacuten

El agente Broker entrega la informacioacuten necesaria a el proxy-cliente y al proxy-servidor para que estos establezcan una comunicacioacuten efectiva que permita realizar la operacioacuten

ProxyBroker

Los broker permiten realizar conexiones entre clientes y servidores de diferentes plataformas

Le entregan la informacioacuten necesaria a los Proxy para que estos realicen las conexiones

ProxyBroker

Otro ejemplo

El broker sirve de intermediario entre el comprador y el vendedor

Permitiendo que logren conectarse y realizar la transaccioacuten

ProxyBroker

Los patrones ProxyBroker se pueden implementar de diferentes maneras esto depende de los requerimientos de los sistemas

Una Forma de implementarlos es permitiendo que los Proxy cliente y servidor se comuniquen entre ellos cuando es posible

ProxyBroker

ProxyBroker

Diagrama de Secuencia

ProxyBroker

Otra manera muy usada es no permitir que los Proxy cliente y servidor se comuniquen

Esta restriccioacuten podriacutea ser necesaria por poliacuteticas de seguridad de los servidores

Tambieacuten por mantener un orden y control de todo lo que pasa por los Proxys

ProxyBroker

ProxyBroker

ProxyBroker

Consecuencias

Aislamiento Entre la aplicacioacuten y los servidores

Sencillez permite que sea mas sencilla la construccioacuten de los sistemas

Flexibilidad Permite cambiar capas sin afectar las aplicaciones relacionadas con esta

ProxyBroker

EjemplosEste patroacuten es muy usado por sistemas con estaacutendar CORBA (Arquitectura comuacuten de intermediarios en peticiones a objetos)

Microsofts OLE 2x World Wide Web ATM-P

Page 5: Modelo-Vista-Controlador (MVC) Edgardo Bermúdez Pedro Martínez Víctor González.

Modelo-Vista-Controlador

En general

Modelo-Vista-Controlador

Muchas aplicaciones utilizan un mecanismo de almacenamiento persistente (como puede ser una base de datos) para almacenar los datos MVC no menciona especiacuteficamente esta capa de acceso a datos porque supone que estaacute encapsulada por el modelo

El objetivo primordial del MVC es la reutilizacioacuten del coacutedigo ya implementado

Esta tarea se facilita mucho si a la hora de programar tenemos la precaucioacuten de separar el coacutedigo en varias partes que sean susceptibles de ser reutilizadas sin modificaciones

Modelo-Vista-Controlador

Ejemplos

Los datos de una hoja de caacutelculo pueden mostrarse de en formato tabular con un graacutefico de barras con uno de sectores

Los datos son el modelo Si cambia el modelo las vistas deberiacutean actualizarse en

consonancia El usuario manipula el modelo a traveacutes de las vistas 1048698 (en realidad a traveacutes de los controladores)

Modelo-Vista-Controlador

Mas de una Vista de un Modelo de Datos

Modelo-Vista-Controlador

MVC es utilizado con mayor frecuencia en las aplicaciones web donde la Vista es la paacutegina HTML y el Controlador es el coacutedigo que reuacutene la data dinaacutemica y genera el contenido de la paacutegina

El Modelo es representado por el contenido actual que usualmente se encuentra almacenado en una base de datos o en archivos XML

Modelo-Vista-Controlador

Modelo-Vista-Controlador

Fortalezas 1048698 Se presenta la misma informacioacuten de distintas formas

1048698 Las vistas y comportamiento de una aplicacioacuten deben reflejar las manipulaciones de los datos de forma inmediata

1048698 Deberiacutea ser faacutecil cambiar la interfaz de usuario (incluso en tiempo de ejecucioacuten)

1048698 Permitir diferentes estaacutendares de interfaz de usuario o portarla a otros entornos no deberiacutea afectar al coacutedigo de la aplicacioacuten

Modelo-Vista-Controlador

En UMLSe propone para el desarrollo del

Modelo de Anaacutelisis de las aplicaciones tres tipos de clases fundamentales con las cuales podemos expresar todas las funciones de cualquier software con sus respectivas responsabilidades

Clase Interfaz ltltInterfacegtgtRecepcionar peticiones al sistemaMostrar respuestas del sistema

Clase Entidad ltltEntitygtgtGestionar datos (informacioacuten) necesaria para el sistemaAlmacenar datos (informacioacuten) persistentes del sistemaProvee la funcionalidad principal dela aplicacioacuten

Clase Controlador ltltControllergtgtProcesar Informacioacuten del sistemaGestionar visualizacioacuten de respuesta del sistemaObtiene los datos del modelo

Modelo-Vista-Controlador

Variante inicial del Patroacuten MVC

Variantes del Modelo

- Variante en la cual no existe ninguna comunicacioacuten entre el Modelo y la Vista y esta uacuteltima recibe los datos a mostrar a traveacutes del Controlador

Modelo-Vista-Controlador

Variante en la cual se desarrolla una comunicacioacuten entre el Modelo y la Vista donde esta uacuteltima al mostrar los datos los busca directamente en el Modelo dada una indicacioacuten del Controlador disminuyendo el conjunto de responsabilidades de este uacuteltimo

Variante Intermedia del Patroacuten MVC

Modelo-Vista-Controlador

Muchas interfaces graacuteficas de usuario como Swing o MFC hacen innecesario el uso de un controlador

1048698 Definen su propio flujo de control y manejan los eventos internamente

1048698 Integran asiacute la vista y el controlador

1048698 A esta variante se la suele denominar Document-View

Modelo-Vista-Controlador

Un controlador (controladorjava por ejemplo) puede gestionar el clic en un botoacuten de tal forma que recoge datos por medio del Modelo (modelcargar_texto()) y los manda a la Vista (el applet) para su actualizacioacuten (vistamostrar_texto( ))

Responde al click en botoacuten abrir La respuesta al evento es hacer que se abra en la vista el archivo correspondiente a la referencia seleccionada en el combo box void b_abrir_actionPerformed(ActionEvent e) hellip

String texto_archivo = modelcargar_texto( indice_ref ) Obtener texto de archivo Si la carga de archivo es ok lo muestro Si no aviso de error if (texto_archivo = null)

vistamostrar_texto(texto_archivo) Mostrar texto vistamostrar_aviso(Carga de + path + completada)

else

vistamostrar_aviso(Error en la carga de + path)

PROXY

Proxy

Propoacutesito

Proporciona un sustituto de otro objeto con el fin de controlar su acceso

MotivacioacutenRazoacuten para controlar el acceso a un

objeto Diferir el coste de su creacioacuten e inicializacioacuten hasta que el objeto realmente se necesite

Proxy

Ejemplo

Editor de documentos que permite objetos graacuteficos abrir un documento deberiacutea ser raacutepido realmente no todos los objetos son visibles a la vez

SolucioacutenCrear los objetos ldquobajo demandardquo

Proxy

Solucioacuten

Usar un objeto que sustituya a la imagen real (PROXY)

El proxy actuacutea como si fuese la imagen y la instancia cuando es necesario

Proxy

Solucioacuten

La imagen estaacute guardada en archivos separados y el Proxy guarda el nombre del archivo como la referencia al objeto real El Proxy tambieacuten guarda el tamantildeo

Proxy

Proxy

El editor de documento accede a la imagen a traveacutes de la interfaz definida por la clase abstracta Graphic

ImageProxy es una clase para las imaacutegenes que es creada por demanda contiene el nombre del archivo como una referencia a la imagen en el disco

El nombre del archivo es pasado como argumento al constructor de ImageProxy

Proxy

ImageProxy tambieacuten guarda el tamantildeo de la imagen y una referencia a la instancia real Esta referencia no seraacute valida hasta que el Proxy instancie la imagen real

La operacioacuten Draw se asegura que la imagen esta instanciada antes de responder la solicitud

GetExtent reenviacutea la solicitud a la imagen solo si ya fue instanciada de lo contrario ImageProxy devuelve el tamantildeo que tiene guardado

Proxy

AplicacionesDonde exista la necesidad de referenciar un objeto de forma maacutes versaacutetil y sofisticada que un puntero

Proxy remoto (Ambassador Embajador)

Proporciona un representante local de un objeto en un

espacio de memoria diferenteProxy virtual

Para crear objetos de gran tamantildeo bajo demanda

Proxy

Proxy de proteccioacutenControla el acceso al objeto original Es uacutetil si el objeto original tiene diferentes derechos de acceso

Referencia elegante (smart pointers)Realiza acciones adicionales cuando se acceden a los elementos referenciados

Proxy

Estructura

Proxy

Diagrama de Secuencia

Proxy

Participantes

ProxyMantiene un referencia al objeto realMantiene un mismo interfaz que el objeto

realMantiene el acceso al objeto realCodificacioacuten de peticiones Caching de

informacioacuten comprobar permisos

Proxy

Participantes

SubjectDefine el interfaz comuacuten a Proxy y

RealSubject

RealSubjectDefine el objeto real que representa el Proxy

Proxy

ConsecuenciasEl proxy introduce un nivel de indireccioacuten

cuando accede a un objeto La indireccioacuten

tiene muchos usos dependiendo del tipo de

proxyRemoto ocultar espacio de memoriaVirtual optimizaciones creando objetos bajo

demandaProteccioacuten tareas adicionales

Proxy

Relacionados

Si ofrece un interfaz distinto (proxy de seguridad)

AdapterTiene una implementacioacuten similar a

Decorator

PROXYBROKER

ProxyBroker

PropoacutesitoEstructurar sistemas distribuidos en los cuales surge la necesidad de una iteracioacuten remota entre componentes

MotivacioacutenDesacoplar la interaccioacuten de los usuarios en los clientes y servidores

ProxyBroker

Ejemplo

En el desarrollo de un ldquoMercado Webrdquo tenemos desarrollados dos agentes el comprador y el vendedor Pero estos estaacuten desarrollados en plataformas diferentes que no permite que tengan comunicacioacuten

ProxyBroker

Solucioacuten

Cuando un cliente necesita comprar un producto solicita a traveacutes de un Proxy al agente Broker los vendedores que tiene registrado El Broker se comunica por un Proxy con el servidor para llevar a cabo la peticioacuten

ProxyBroker

Solucioacuten

El agente Broker entrega la informacioacuten necesaria a el proxy-cliente y al proxy-servidor para que estos establezcan una comunicacioacuten efectiva que permita realizar la operacioacuten

ProxyBroker

Los broker permiten realizar conexiones entre clientes y servidores de diferentes plataformas

Le entregan la informacioacuten necesaria a los Proxy para que estos realicen las conexiones

ProxyBroker

Otro ejemplo

El broker sirve de intermediario entre el comprador y el vendedor

Permitiendo que logren conectarse y realizar la transaccioacuten

ProxyBroker

Los patrones ProxyBroker se pueden implementar de diferentes maneras esto depende de los requerimientos de los sistemas

Una Forma de implementarlos es permitiendo que los Proxy cliente y servidor se comuniquen entre ellos cuando es posible

ProxyBroker

ProxyBroker

Diagrama de Secuencia

ProxyBroker

Otra manera muy usada es no permitir que los Proxy cliente y servidor se comuniquen

Esta restriccioacuten podriacutea ser necesaria por poliacuteticas de seguridad de los servidores

Tambieacuten por mantener un orden y control de todo lo que pasa por los Proxys

ProxyBroker

ProxyBroker

ProxyBroker

Consecuencias

Aislamiento Entre la aplicacioacuten y los servidores

Sencillez permite que sea mas sencilla la construccioacuten de los sistemas

Flexibilidad Permite cambiar capas sin afectar las aplicaciones relacionadas con esta

ProxyBroker

EjemplosEste patroacuten es muy usado por sistemas con estaacutendar CORBA (Arquitectura comuacuten de intermediarios en peticiones a objetos)

Microsofts OLE 2x World Wide Web ATM-P

Page 6: Modelo-Vista-Controlador (MVC) Edgardo Bermúdez Pedro Martínez Víctor González.

Modelo-Vista-Controlador

Muchas aplicaciones utilizan un mecanismo de almacenamiento persistente (como puede ser una base de datos) para almacenar los datos MVC no menciona especiacuteficamente esta capa de acceso a datos porque supone que estaacute encapsulada por el modelo

El objetivo primordial del MVC es la reutilizacioacuten del coacutedigo ya implementado

Esta tarea se facilita mucho si a la hora de programar tenemos la precaucioacuten de separar el coacutedigo en varias partes que sean susceptibles de ser reutilizadas sin modificaciones

Modelo-Vista-Controlador

Ejemplos

Los datos de una hoja de caacutelculo pueden mostrarse de en formato tabular con un graacutefico de barras con uno de sectores

Los datos son el modelo Si cambia el modelo las vistas deberiacutean actualizarse en

consonancia El usuario manipula el modelo a traveacutes de las vistas 1048698 (en realidad a traveacutes de los controladores)

Modelo-Vista-Controlador

Mas de una Vista de un Modelo de Datos

Modelo-Vista-Controlador

MVC es utilizado con mayor frecuencia en las aplicaciones web donde la Vista es la paacutegina HTML y el Controlador es el coacutedigo que reuacutene la data dinaacutemica y genera el contenido de la paacutegina

El Modelo es representado por el contenido actual que usualmente se encuentra almacenado en una base de datos o en archivos XML

Modelo-Vista-Controlador

Modelo-Vista-Controlador

Fortalezas 1048698 Se presenta la misma informacioacuten de distintas formas

1048698 Las vistas y comportamiento de una aplicacioacuten deben reflejar las manipulaciones de los datos de forma inmediata

1048698 Deberiacutea ser faacutecil cambiar la interfaz de usuario (incluso en tiempo de ejecucioacuten)

1048698 Permitir diferentes estaacutendares de interfaz de usuario o portarla a otros entornos no deberiacutea afectar al coacutedigo de la aplicacioacuten

Modelo-Vista-Controlador

En UMLSe propone para el desarrollo del

Modelo de Anaacutelisis de las aplicaciones tres tipos de clases fundamentales con las cuales podemos expresar todas las funciones de cualquier software con sus respectivas responsabilidades

Clase Interfaz ltltInterfacegtgtRecepcionar peticiones al sistemaMostrar respuestas del sistema

Clase Entidad ltltEntitygtgtGestionar datos (informacioacuten) necesaria para el sistemaAlmacenar datos (informacioacuten) persistentes del sistemaProvee la funcionalidad principal dela aplicacioacuten

Clase Controlador ltltControllergtgtProcesar Informacioacuten del sistemaGestionar visualizacioacuten de respuesta del sistemaObtiene los datos del modelo

Modelo-Vista-Controlador

Variante inicial del Patroacuten MVC

Variantes del Modelo

- Variante en la cual no existe ninguna comunicacioacuten entre el Modelo y la Vista y esta uacuteltima recibe los datos a mostrar a traveacutes del Controlador

Modelo-Vista-Controlador

Variante en la cual se desarrolla una comunicacioacuten entre el Modelo y la Vista donde esta uacuteltima al mostrar los datos los busca directamente en el Modelo dada una indicacioacuten del Controlador disminuyendo el conjunto de responsabilidades de este uacuteltimo

Variante Intermedia del Patroacuten MVC

Modelo-Vista-Controlador

Muchas interfaces graacuteficas de usuario como Swing o MFC hacen innecesario el uso de un controlador

1048698 Definen su propio flujo de control y manejan los eventos internamente

1048698 Integran asiacute la vista y el controlador

1048698 A esta variante se la suele denominar Document-View

Modelo-Vista-Controlador

Un controlador (controladorjava por ejemplo) puede gestionar el clic en un botoacuten de tal forma que recoge datos por medio del Modelo (modelcargar_texto()) y los manda a la Vista (el applet) para su actualizacioacuten (vistamostrar_texto( ))

Responde al click en botoacuten abrir La respuesta al evento es hacer que se abra en la vista el archivo correspondiente a la referencia seleccionada en el combo box void b_abrir_actionPerformed(ActionEvent e) hellip

String texto_archivo = modelcargar_texto( indice_ref ) Obtener texto de archivo Si la carga de archivo es ok lo muestro Si no aviso de error if (texto_archivo = null)

vistamostrar_texto(texto_archivo) Mostrar texto vistamostrar_aviso(Carga de + path + completada)

else

vistamostrar_aviso(Error en la carga de + path)

PROXY

Proxy

Propoacutesito

Proporciona un sustituto de otro objeto con el fin de controlar su acceso

MotivacioacutenRazoacuten para controlar el acceso a un

objeto Diferir el coste de su creacioacuten e inicializacioacuten hasta que el objeto realmente se necesite

Proxy

Ejemplo

Editor de documentos que permite objetos graacuteficos abrir un documento deberiacutea ser raacutepido realmente no todos los objetos son visibles a la vez

SolucioacutenCrear los objetos ldquobajo demandardquo

Proxy

Solucioacuten

Usar un objeto que sustituya a la imagen real (PROXY)

El proxy actuacutea como si fuese la imagen y la instancia cuando es necesario

Proxy

Solucioacuten

La imagen estaacute guardada en archivos separados y el Proxy guarda el nombre del archivo como la referencia al objeto real El Proxy tambieacuten guarda el tamantildeo

Proxy

Proxy

El editor de documento accede a la imagen a traveacutes de la interfaz definida por la clase abstracta Graphic

ImageProxy es una clase para las imaacutegenes que es creada por demanda contiene el nombre del archivo como una referencia a la imagen en el disco

El nombre del archivo es pasado como argumento al constructor de ImageProxy

Proxy

ImageProxy tambieacuten guarda el tamantildeo de la imagen y una referencia a la instancia real Esta referencia no seraacute valida hasta que el Proxy instancie la imagen real

La operacioacuten Draw se asegura que la imagen esta instanciada antes de responder la solicitud

GetExtent reenviacutea la solicitud a la imagen solo si ya fue instanciada de lo contrario ImageProxy devuelve el tamantildeo que tiene guardado

Proxy

AplicacionesDonde exista la necesidad de referenciar un objeto de forma maacutes versaacutetil y sofisticada que un puntero

Proxy remoto (Ambassador Embajador)

Proporciona un representante local de un objeto en un

espacio de memoria diferenteProxy virtual

Para crear objetos de gran tamantildeo bajo demanda

Proxy

Proxy de proteccioacutenControla el acceso al objeto original Es uacutetil si el objeto original tiene diferentes derechos de acceso

Referencia elegante (smart pointers)Realiza acciones adicionales cuando se acceden a los elementos referenciados

Proxy

Estructura

Proxy

Diagrama de Secuencia

Proxy

Participantes

ProxyMantiene un referencia al objeto realMantiene un mismo interfaz que el objeto

realMantiene el acceso al objeto realCodificacioacuten de peticiones Caching de

informacioacuten comprobar permisos

Proxy

Participantes

SubjectDefine el interfaz comuacuten a Proxy y

RealSubject

RealSubjectDefine el objeto real que representa el Proxy

Proxy

ConsecuenciasEl proxy introduce un nivel de indireccioacuten

cuando accede a un objeto La indireccioacuten

tiene muchos usos dependiendo del tipo de

proxyRemoto ocultar espacio de memoriaVirtual optimizaciones creando objetos bajo

demandaProteccioacuten tareas adicionales

Proxy

Relacionados

Si ofrece un interfaz distinto (proxy de seguridad)

AdapterTiene una implementacioacuten similar a

Decorator

PROXYBROKER

ProxyBroker

PropoacutesitoEstructurar sistemas distribuidos en los cuales surge la necesidad de una iteracioacuten remota entre componentes

MotivacioacutenDesacoplar la interaccioacuten de los usuarios en los clientes y servidores

ProxyBroker

Ejemplo

En el desarrollo de un ldquoMercado Webrdquo tenemos desarrollados dos agentes el comprador y el vendedor Pero estos estaacuten desarrollados en plataformas diferentes que no permite que tengan comunicacioacuten

ProxyBroker

Solucioacuten

Cuando un cliente necesita comprar un producto solicita a traveacutes de un Proxy al agente Broker los vendedores que tiene registrado El Broker se comunica por un Proxy con el servidor para llevar a cabo la peticioacuten

ProxyBroker

Solucioacuten

El agente Broker entrega la informacioacuten necesaria a el proxy-cliente y al proxy-servidor para que estos establezcan una comunicacioacuten efectiva que permita realizar la operacioacuten

ProxyBroker

Los broker permiten realizar conexiones entre clientes y servidores de diferentes plataformas

Le entregan la informacioacuten necesaria a los Proxy para que estos realicen las conexiones

ProxyBroker

Otro ejemplo

El broker sirve de intermediario entre el comprador y el vendedor

Permitiendo que logren conectarse y realizar la transaccioacuten

ProxyBroker

Los patrones ProxyBroker se pueden implementar de diferentes maneras esto depende de los requerimientos de los sistemas

Una Forma de implementarlos es permitiendo que los Proxy cliente y servidor se comuniquen entre ellos cuando es posible

ProxyBroker

ProxyBroker

Diagrama de Secuencia

ProxyBroker

Otra manera muy usada es no permitir que los Proxy cliente y servidor se comuniquen

Esta restriccioacuten podriacutea ser necesaria por poliacuteticas de seguridad de los servidores

Tambieacuten por mantener un orden y control de todo lo que pasa por los Proxys

ProxyBroker

ProxyBroker

ProxyBroker

Consecuencias

Aislamiento Entre la aplicacioacuten y los servidores

Sencillez permite que sea mas sencilla la construccioacuten de los sistemas

Flexibilidad Permite cambiar capas sin afectar las aplicaciones relacionadas con esta

ProxyBroker

EjemplosEste patroacuten es muy usado por sistemas con estaacutendar CORBA (Arquitectura comuacuten de intermediarios en peticiones a objetos)

Microsofts OLE 2x World Wide Web ATM-P

Page 7: Modelo-Vista-Controlador (MVC) Edgardo Bermúdez Pedro Martínez Víctor González.

Modelo-Vista-Controlador

Ejemplos

Los datos de una hoja de caacutelculo pueden mostrarse de en formato tabular con un graacutefico de barras con uno de sectores

Los datos son el modelo Si cambia el modelo las vistas deberiacutean actualizarse en

consonancia El usuario manipula el modelo a traveacutes de las vistas 1048698 (en realidad a traveacutes de los controladores)

Modelo-Vista-Controlador

Mas de una Vista de un Modelo de Datos

Modelo-Vista-Controlador

MVC es utilizado con mayor frecuencia en las aplicaciones web donde la Vista es la paacutegina HTML y el Controlador es el coacutedigo que reuacutene la data dinaacutemica y genera el contenido de la paacutegina

El Modelo es representado por el contenido actual que usualmente se encuentra almacenado en una base de datos o en archivos XML

Modelo-Vista-Controlador

Modelo-Vista-Controlador

Fortalezas 1048698 Se presenta la misma informacioacuten de distintas formas

1048698 Las vistas y comportamiento de una aplicacioacuten deben reflejar las manipulaciones de los datos de forma inmediata

1048698 Deberiacutea ser faacutecil cambiar la interfaz de usuario (incluso en tiempo de ejecucioacuten)

1048698 Permitir diferentes estaacutendares de interfaz de usuario o portarla a otros entornos no deberiacutea afectar al coacutedigo de la aplicacioacuten

Modelo-Vista-Controlador

En UMLSe propone para el desarrollo del

Modelo de Anaacutelisis de las aplicaciones tres tipos de clases fundamentales con las cuales podemos expresar todas las funciones de cualquier software con sus respectivas responsabilidades

Clase Interfaz ltltInterfacegtgtRecepcionar peticiones al sistemaMostrar respuestas del sistema

Clase Entidad ltltEntitygtgtGestionar datos (informacioacuten) necesaria para el sistemaAlmacenar datos (informacioacuten) persistentes del sistemaProvee la funcionalidad principal dela aplicacioacuten

Clase Controlador ltltControllergtgtProcesar Informacioacuten del sistemaGestionar visualizacioacuten de respuesta del sistemaObtiene los datos del modelo

Modelo-Vista-Controlador

Variante inicial del Patroacuten MVC

Variantes del Modelo

- Variante en la cual no existe ninguna comunicacioacuten entre el Modelo y la Vista y esta uacuteltima recibe los datos a mostrar a traveacutes del Controlador

Modelo-Vista-Controlador

Variante en la cual se desarrolla una comunicacioacuten entre el Modelo y la Vista donde esta uacuteltima al mostrar los datos los busca directamente en el Modelo dada una indicacioacuten del Controlador disminuyendo el conjunto de responsabilidades de este uacuteltimo

Variante Intermedia del Patroacuten MVC

Modelo-Vista-Controlador

Muchas interfaces graacuteficas de usuario como Swing o MFC hacen innecesario el uso de un controlador

1048698 Definen su propio flujo de control y manejan los eventos internamente

1048698 Integran asiacute la vista y el controlador

1048698 A esta variante se la suele denominar Document-View

Modelo-Vista-Controlador

Un controlador (controladorjava por ejemplo) puede gestionar el clic en un botoacuten de tal forma que recoge datos por medio del Modelo (modelcargar_texto()) y los manda a la Vista (el applet) para su actualizacioacuten (vistamostrar_texto( ))

Responde al click en botoacuten abrir La respuesta al evento es hacer que se abra en la vista el archivo correspondiente a la referencia seleccionada en el combo box void b_abrir_actionPerformed(ActionEvent e) hellip

String texto_archivo = modelcargar_texto( indice_ref ) Obtener texto de archivo Si la carga de archivo es ok lo muestro Si no aviso de error if (texto_archivo = null)

vistamostrar_texto(texto_archivo) Mostrar texto vistamostrar_aviso(Carga de + path + completada)

else

vistamostrar_aviso(Error en la carga de + path)

PROXY

Proxy

Propoacutesito

Proporciona un sustituto de otro objeto con el fin de controlar su acceso

MotivacioacutenRazoacuten para controlar el acceso a un

objeto Diferir el coste de su creacioacuten e inicializacioacuten hasta que el objeto realmente se necesite

Proxy

Ejemplo

Editor de documentos que permite objetos graacuteficos abrir un documento deberiacutea ser raacutepido realmente no todos los objetos son visibles a la vez

SolucioacutenCrear los objetos ldquobajo demandardquo

Proxy

Solucioacuten

Usar un objeto que sustituya a la imagen real (PROXY)

El proxy actuacutea como si fuese la imagen y la instancia cuando es necesario

Proxy

Solucioacuten

La imagen estaacute guardada en archivos separados y el Proxy guarda el nombre del archivo como la referencia al objeto real El Proxy tambieacuten guarda el tamantildeo

Proxy

Proxy

El editor de documento accede a la imagen a traveacutes de la interfaz definida por la clase abstracta Graphic

ImageProxy es una clase para las imaacutegenes que es creada por demanda contiene el nombre del archivo como una referencia a la imagen en el disco

El nombre del archivo es pasado como argumento al constructor de ImageProxy

Proxy

ImageProxy tambieacuten guarda el tamantildeo de la imagen y una referencia a la instancia real Esta referencia no seraacute valida hasta que el Proxy instancie la imagen real

La operacioacuten Draw se asegura que la imagen esta instanciada antes de responder la solicitud

GetExtent reenviacutea la solicitud a la imagen solo si ya fue instanciada de lo contrario ImageProxy devuelve el tamantildeo que tiene guardado

Proxy

AplicacionesDonde exista la necesidad de referenciar un objeto de forma maacutes versaacutetil y sofisticada que un puntero

Proxy remoto (Ambassador Embajador)

Proporciona un representante local de un objeto en un

espacio de memoria diferenteProxy virtual

Para crear objetos de gran tamantildeo bajo demanda

Proxy

Proxy de proteccioacutenControla el acceso al objeto original Es uacutetil si el objeto original tiene diferentes derechos de acceso

Referencia elegante (smart pointers)Realiza acciones adicionales cuando se acceden a los elementos referenciados

Proxy

Estructura

Proxy

Diagrama de Secuencia

Proxy

Participantes

ProxyMantiene un referencia al objeto realMantiene un mismo interfaz que el objeto

realMantiene el acceso al objeto realCodificacioacuten de peticiones Caching de

informacioacuten comprobar permisos

Proxy

Participantes

SubjectDefine el interfaz comuacuten a Proxy y

RealSubject

RealSubjectDefine el objeto real que representa el Proxy

Proxy

ConsecuenciasEl proxy introduce un nivel de indireccioacuten

cuando accede a un objeto La indireccioacuten

tiene muchos usos dependiendo del tipo de

proxyRemoto ocultar espacio de memoriaVirtual optimizaciones creando objetos bajo

demandaProteccioacuten tareas adicionales

Proxy

Relacionados

Si ofrece un interfaz distinto (proxy de seguridad)

AdapterTiene una implementacioacuten similar a

Decorator

PROXYBROKER

ProxyBroker

PropoacutesitoEstructurar sistemas distribuidos en los cuales surge la necesidad de una iteracioacuten remota entre componentes

MotivacioacutenDesacoplar la interaccioacuten de los usuarios en los clientes y servidores

ProxyBroker

Ejemplo

En el desarrollo de un ldquoMercado Webrdquo tenemos desarrollados dos agentes el comprador y el vendedor Pero estos estaacuten desarrollados en plataformas diferentes que no permite que tengan comunicacioacuten

ProxyBroker

Solucioacuten

Cuando un cliente necesita comprar un producto solicita a traveacutes de un Proxy al agente Broker los vendedores que tiene registrado El Broker se comunica por un Proxy con el servidor para llevar a cabo la peticioacuten

ProxyBroker

Solucioacuten

El agente Broker entrega la informacioacuten necesaria a el proxy-cliente y al proxy-servidor para que estos establezcan una comunicacioacuten efectiva que permita realizar la operacioacuten

ProxyBroker

Los broker permiten realizar conexiones entre clientes y servidores de diferentes plataformas

Le entregan la informacioacuten necesaria a los Proxy para que estos realicen las conexiones

ProxyBroker

Otro ejemplo

El broker sirve de intermediario entre el comprador y el vendedor

Permitiendo que logren conectarse y realizar la transaccioacuten

ProxyBroker

Los patrones ProxyBroker se pueden implementar de diferentes maneras esto depende de los requerimientos de los sistemas

Una Forma de implementarlos es permitiendo que los Proxy cliente y servidor se comuniquen entre ellos cuando es posible

ProxyBroker

ProxyBroker

Diagrama de Secuencia

ProxyBroker

Otra manera muy usada es no permitir que los Proxy cliente y servidor se comuniquen

Esta restriccioacuten podriacutea ser necesaria por poliacuteticas de seguridad de los servidores

Tambieacuten por mantener un orden y control de todo lo que pasa por los Proxys

ProxyBroker

ProxyBroker

ProxyBroker

Consecuencias

Aislamiento Entre la aplicacioacuten y los servidores

Sencillez permite que sea mas sencilla la construccioacuten de los sistemas

Flexibilidad Permite cambiar capas sin afectar las aplicaciones relacionadas con esta

ProxyBroker

EjemplosEste patroacuten es muy usado por sistemas con estaacutendar CORBA (Arquitectura comuacuten de intermediarios en peticiones a objetos)

Microsofts OLE 2x World Wide Web ATM-P

Page 8: Modelo-Vista-Controlador (MVC) Edgardo Bermúdez Pedro Martínez Víctor González.

Modelo-Vista-Controlador

Mas de una Vista de un Modelo de Datos

Modelo-Vista-Controlador

MVC es utilizado con mayor frecuencia en las aplicaciones web donde la Vista es la paacutegina HTML y el Controlador es el coacutedigo que reuacutene la data dinaacutemica y genera el contenido de la paacutegina

El Modelo es representado por el contenido actual que usualmente se encuentra almacenado en una base de datos o en archivos XML

Modelo-Vista-Controlador

Modelo-Vista-Controlador

Fortalezas 1048698 Se presenta la misma informacioacuten de distintas formas

1048698 Las vistas y comportamiento de una aplicacioacuten deben reflejar las manipulaciones de los datos de forma inmediata

1048698 Deberiacutea ser faacutecil cambiar la interfaz de usuario (incluso en tiempo de ejecucioacuten)

1048698 Permitir diferentes estaacutendares de interfaz de usuario o portarla a otros entornos no deberiacutea afectar al coacutedigo de la aplicacioacuten

Modelo-Vista-Controlador

En UMLSe propone para el desarrollo del

Modelo de Anaacutelisis de las aplicaciones tres tipos de clases fundamentales con las cuales podemos expresar todas las funciones de cualquier software con sus respectivas responsabilidades

Clase Interfaz ltltInterfacegtgtRecepcionar peticiones al sistemaMostrar respuestas del sistema

Clase Entidad ltltEntitygtgtGestionar datos (informacioacuten) necesaria para el sistemaAlmacenar datos (informacioacuten) persistentes del sistemaProvee la funcionalidad principal dela aplicacioacuten

Clase Controlador ltltControllergtgtProcesar Informacioacuten del sistemaGestionar visualizacioacuten de respuesta del sistemaObtiene los datos del modelo

Modelo-Vista-Controlador

Variante inicial del Patroacuten MVC

Variantes del Modelo

- Variante en la cual no existe ninguna comunicacioacuten entre el Modelo y la Vista y esta uacuteltima recibe los datos a mostrar a traveacutes del Controlador

Modelo-Vista-Controlador

Variante en la cual se desarrolla una comunicacioacuten entre el Modelo y la Vista donde esta uacuteltima al mostrar los datos los busca directamente en el Modelo dada una indicacioacuten del Controlador disminuyendo el conjunto de responsabilidades de este uacuteltimo

Variante Intermedia del Patroacuten MVC

Modelo-Vista-Controlador

Muchas interfaces graacuteficas de usuario como Swing o MFC hacen innecesario el uso de un controlador

1048698 Definen su propio flujo de control y manejan los eventos internamente

1048698 Integran asiacute la vista y el controlador

1048698 A esta variante se la suele denominar Document-View

Modelo-Vista-Controlador

Un controlador (controladorjava por ejemplo) puede gestionar el clic en un botoacuten de tal forma que recoge datos por medio del Modelo (modelcargar_texto()) y los manda a la Vista (el applet) para su actualizacioacuten (vistamostrar_texto( ))

Responde al click en botoacuten abrir La respuesta al evento es hacer que se abra en la vista el archivo correspondiente a la referencia seleccionada en el combo box void b_abrir_actionPerformed(ActionEvent e) hellip

String texto_archivo = modelcargar_texto( indice_ref ) Obtener texto de archivo Si la carga de archivo es ok lo muestro Si no aviso de error if (texto_archivo = null)

vistamostrar_texto(texto_archivo) Mostrar texto vistamostrar_aviso(Carga de + path + completada)

else

vistamostrar_aviso(Error en la carga de + path)

PROXY

Proxy

Propoacutesito

Proporciona un sustituto de otro objeto con el fin de controlar su acceso

MotivacioacutenRazoacuten para controlar el acceso a un

objeto Diferir el coste de su creacioacuten e inicializacioacuten hasta que el objeto realmente se necesite

Proxy

Ejemplo

Editor de documentos que permite objetos graacuteficos abrir un documento deberiacutea ser raacutepido realmente no todos los objetos son visibles a la vez

SolucioacutenCrear los objetos ldquobajo demandardquo

Proxy

Solucioacuten

Usar un objeto que sustituya a la imagen real (PROXY)

El proxy actuacutea como si fuese la imagen y la instancia cuando es necesario

Proxy

Solucioacuten

La imagen estaacute guardada en archivos separados y el Proxy guarda el nombre del archivo como la referencia al objeto real El Proxy tambieacuten guarda el tamantildeo

Proxy

Proxy

El editor de documento accede a la imagen a traveacutes de la interfaz definida por la clase abstracta Graphic

ImageProxy es una clase para las imaacutegenes que es creada por demanda contiene el nombre del archivo como una referencia a la imagen en el disco

El nombre del archivo es pasado como argumento al constructor de ImageProxy

Proxy

ImageProxy tambieacuten guarda el tamantildeo de la imagen y una referencia a la instancia real Esta referencia no seraacute valida hasta que el Proxy instancie la imagen real

La operacioacuten Draw se asegura que la imagen esta instanciada antes de responder la solicitud

GetExtent reenviacutea la solicitud a la imagen solo si ya fue instanciada de lo contrario ImageProxy devuelve el tamantildeo que tiene guardado

Proxy

AplicacionesDonde exista la necesidad de referenciar un objeto de forma maacutes versaacutetil y sofisticada que un puntero

Proxy remoto (Ambassador Embajador)

Proporciona un representante local de un objeto en un

espacio de memoria diferenteProxy virtual

Para crear objetos de gran tamantildeo bajo demanda

Proxy

Proxy de proteccioacutenControla el acceso al objeto original Es uacutetil si el objeto original tiene diferentes derechos de acceso

Referencia elegante (smart pointers)Realiza acciones adicionales cuando se acceden a los elementos referenciados

Proxy

Estructura

Proxy

Diagrama de Secuencia

Proxy

Participantes

ProxyMantiene un referencia al objeto realMantiene un mismo interfaz que el objeto

realMantiene el acceso al objeto realCodificacioacuten de peticiones Caching de

informacioacuten comprobar permisos

Proxy

Participantes

SubjectDefine el interfaz comuacuten a Proxy y

RealSubject

RealSubjectDefine el objeto real que representa el Proxy

Proxy

ConsecuenciasEl proxy introduce un nivel de indireccioacuten

cuando accede a un objeto La indireccioacuten

tiene muchos usos dependiendo del tipo de

proxyRemoto ocultar espacio de memoriaVirtual optimizaciones creando objetos bajo

demandaProteccioacuten tareas adicionales

Proxy

Relacionados

Si ofrece un interfaz distinto (proxy de seguridad)

AdapterTiene una implementacioacuten similar a

Decorator

PROXYBROKER

ProxyBroker

PropoacutesitoEstructurar sistemas distribuidos en los cuales surge la necesidad de una iteracioacuten remota entre componentes

MotivacioacutenDesacoplar la interaccioacuten de los usuarios en los clientes y servidores

ProxyBroker

Ejemplo

En el desarrollo de un ldquoMercado Webrdquo tenemos desarrollados dos agentes el comprador y el vendedor Pero estos estaacuten desarrollados en plataformas diferentes que no permite que tengan comunicacioacuten

ProxyBroker

Solucioacuten

Cuando un cliente necesita comprar un producto solicita a traveacutes de un Proxy al agente Broker los vendedores que tiene registrado El Broker se comunica por un Proxy con el servidor para llevar a cabo la peticioacuten

ProxyBroker

Solucioacuten

El agente Broker entrega la informacioacuten necesaria a el proxy-cliente y al proxy-servidor para que estos establezcan una comunicacioacuten efectiva que permita realizar la operacioacuten

ProxyBroker

Los broker permiten realizar conexiones entre clientes y servidores de diferentes plataformas

Le entregan la informacioacuten necesaria a los Proxy para que estos realicen las conexiones

ProxyBroker

Otro ejemplo

El broker sirve de intermediario entre el comprador y el vendedor

Permitiendo que logren conectarse y realizar la transaccioacuten

ProxyBroker

Los patrones ProxyBroker se pueden implementar de diferentes maneras esto depende de los requerimientos de los sistemas

Una Forma de implementarlos es permitiendo que los Proxy cliente y servidor se comuniquen entre ellos cuando es posible

ProxyBroker

ProxyBroker

Diagrama de Secuencia

ProxyBroker

Otra manera muy usada es no permitir que los Proxy cliente y servidor se comuniquen

Esta restriccioacuten podriacutea ser necesaria por poliacuteticas de seguridad de los servidores

Tambieacuten por mantener un orden y control de todo lo que pasa por los Proxys

ProxyBroker

ProxyBroker

ProxyBroker

Consecuencias

Aislamiento Entre la aplicacioacuten y los servidores

Sencillez permite que sea mas sencilla la construccioacuten de los sistemas

Flexibilidad Permite cambiar capas sin afectar las aplicaciones relacionadas con esta

ProxyBroker

EjemplosEste patroacuten es muy usado por sistemas con estaacutendar CORBA (Arquitectura comuacuten de intermediarios en peticiones a objetos)

Microsofts OLE 2x World Wide Web ATM-P

Page 9: Modelo-Vista-Controlador (MVC) Edgardo Bermúdez Pedro Martínez Víctor González.

Modelo-Vista-Controlador

MVC es utilizado con mayor frecuencia en las aplicaciones web donde la Vista es la paacutegina HTML y el Controlador es el coacutedigo que reuacutene la data dinaacutemica y genera el contenido de la paacutegina

El Modelo es representado por el contenido actual que usualmente se encuentra almacenado en una base de datos o en archivos XML

Modelo-Vista-Controlador

Modelo-Vista-Controlador

Fortalezas 1048698 Se presenta la misma informacioacuten de distintas formas

1048698 Las vistas y comportamiento de una aplicacioacuten deben reflejar las manipulaciones de los datos de forma inmediata

1048698 Deberiacutea ser faacutecil cambiar la interfaz de usuario (incluso en tiempo de ejecucioacuten)

1048698 Permitir diferentes estaacutendares de interfaz de usuario o portarla a otros entornos no deberiacutea afectar al coacutedigo de la aplicacioacuten

Modelo-Vista-Controlador

En UMLSe propone para el desarrollo del

Modelo de Anaacutelisis de las aplicaciones tres tipos de clases fundamentales con las cuales podemos expresar todas las funciones de cualquier software con sus respectivas responsabilidades

Clase Interfaz ltltInterfacegtgtRecepcionar peticiones al sistemaMostrar respuestas del sistema

Clase Entidad ltltEntitygtgtGestionar datos (informacioacuten) necesaria para el sistemaAlmacenar datos (informacioacuten) persistentes del sistemaProvee la funcionalidad principal dela aplicacioacuten

Clase Controlador ltltControllergtgtProcesar Informacioacuten del sistemaGestionar visualizacioacuten de respuesta del sistemaObtiene los datos del modelo

Modelo-Vista-Controlador

Variante inicial del Patroacuten MVC

Variantes del Modelo

- Variante en la cual no existe ninguna comunicacioacuten entre el Modelo y la Vista y esta uacuteltima recibe los datos a mostrar a traveacutes del Controlador

Modelo-Vista-Controlador

Variante en la cual se desarrolla una comunicacioacuten entre el Modelo y la Vista donde esta uacuteltima al mostrar los datos los busca directamente en el Modelo dada una indicacioacuten del Controlador disminuyendo el conjunto de responsabilidades de este uacuteltimo

Variante Intermedia del Patroacuten MVC

Modelo-Vista-Controlador

Muchas interfaces graacuteficas de usuario como Swing o MFC hacen innecesario el uso de un controlador

1048698 Definen su propio flujo de control y manejan los eventos internamente

1048698 Integran asiacute la vista y el controlador

1048698 A esta variante se la suele denominar Document-View

Modelo-Vista-Controlador

Un controlador (controladorjava por ejemplo) puede gestionar el clic en un botoacuten de tal forma que recoge datos por medio del Modelo (modelcargar_texto()) y los manda a la Vista (el applet) para su actualizacioacuten (vistamostrar_texto( ))

Responde al click en botoacuten abrir La respuesta al evento es hacer que se abra en la vista el archivo correspondiente a la referencia seleccionada en el combo box void b_abrir_actionPerformed(ActionEvent e) hellip

String texto_archivo = modelcargar_texto( indice_ref ) Obtener texto de archivo Si la carga de archivo es ok lo muestro Si no aviso de error if (texto_archivo = null)

vistamostrar_texto(texto_archivo) Mostrar texto vistamostrar_aviso(Carga de + path + completada)

else

vistamostrar_aviso(Error en la carga de + path)

PROXY

Proxy

Propoacutesito

Proporciona un sustituto de otro objeto con el fin de controlar su acceso

MotivacioacutenRazoacuten para controlar el acceso a un

objeto Diferir el coste de su creacioacuten e inicializacioacuten hasta que el objeto realmente se necesite

Proxy

Ejemplo

Editor de documentos que permite objetos graacuteficos abrir un documento deberiacutea ser raacutepido realmente no todos los objetos son visibles a la vez

SolucioacutenCrear los objetos ldquobajo demandardquo

Proxy

Solucioacuten

Usar un objeto que sustituya a la imagen real (PROXY)

El proxy actuacutea como si fuese la imagen y la instancia cuando es necesario

Proxy

Solucioacuten

La imagen estaacute guardada en archivos separados y el Proxy guarda el nombre del archivo como la referencia al objeto real El Proxy tambieacuten guarda el tamantildeo

Proxy

Proxy

El editor de documento accede a la imagen a traveacutes de la interfaz definida por la clase abstracta Graphic

ImageProxy es una clase para las imaacutegenes que es creada por demanda contiene el nombre del archivo como una referencia a la imagen en el disco

El nombre del archivo es pasado como argumento al constructor de ImageProxy

Proxy

ImageProxy tambieacuten guarda el tamantildeo de la imagen y una referencia a la instancia real Esta referencia no seraacute valida hasta que el Proxy instancie la imagen real

La operacioacuten Draw se asegura que la imagen esta instanciada antes de responder la solicitud

GetExtent reenviacutea la solicitud a la imagen solo si ya fue instanciada de lo contrario ImageProxy devuelve el tamantildeo que tiene guardado

Proxy

AplicacionesDonde exista la necesidad de referenciar un objeto de forma maacutes versaacutetil y sofisticada que un puntero

Proxy remoto (Ambassador Embajador)

Proporciona un representante local de un objeto en un

espacio de memoria diferenteProxy virtual

Para crear objetos de gran tamantildeo bajo demanda

Proxy

Proxy de proteccioacutenControla el acceso al objeto original Es uacutetil si el objeto original tiene diferentes derechos de acceso

Referencia elegante (smart pointers)Realiza acciones adicionales cuando se acceden a los elementos referenciados

Proxy

Estructura

Proxy

Diagrama de Secuencia

Proxy

Participantes

ProxyMantiene un referencia al objeto realMantiene un mismo interfaz que el objeto

realMantiene el acceso al objeto realCodificacioacuten de peticiones Caching de

informacioacuten comprobar permisos

Proxy

Participantes

SubjectDefine el interfaz comuacuten a Proxy y

RealSubject

RealSubjectDefine el objeto real que representa el Proxy

Proxy

ConsecuenciasEl proxy introduce un nivel de indireccioacuten

cuando accede a un objeto La indireccioacuten

tiene muchos usos dependiendo del tipo de

proxyRemoto ocultar espacio de memoriaVirtual optimizaciones creando objetos bajo

demandaProteccioacuten tareas adicionales

Proxy

Relacionados

Si ofrece un interfaz distinto (proxy de seguridad)

AdapterTiene una implementacioacuten similar a

Decorator

PROXYBROKER

ProxyBroker

PropoacutesitoEstructurar sistemas distribuidos en los cuales surge la necesidad de una iteracioacuten remota entre componentes

MotivacioacutenDesacoplar la interaccioacuten de los usuarios en los clientes y servidores

ProxyBroker

Ejemplo

En el desarrollo de un ldquoMercado Webrdquo tenemos desarrollados dos agentes el comprador y el vendedor Pero estos estaacuten desarrollados en plataformas diferentes que no permite que tengan comunicacioacuten

ProxyBroker

Solucioacuten

Cuando un cliente necesita comprar un producto solicita a traveacutes de un Proxy al agente Broker los vendedores que tiene registrado El Broker se comunica por un Proxy con el servidor para llevar a cabo la peticioacuten

ProxyBroker

Solucioacuten

El agente Broker entrega la informacioacuten necesaria a el proxy-cliente y al proxy-servidor para que estos establezcan una comunicacioacuten efectiva que permita realizar la operacioacuten

ProxyBroker

Los broker permiten realizar conexiones entre clientes y servidores de diferentes plataformas

Le entregan la informacioacuten necesaria a los Proxy para que estos realicen las conexiones

ProxyBroker

Otro ejemplo

El broker sirve de intermediario entre el comprador y el vendedor

Permitiendo que logren conectarse y realizar la transaccioacuten

ProxyBroker

Los patrones ProxyBroker se pueden implementar de diferentes maneras esto depende de los requerimientos de los sistemas

Una Forma de implementarlos es permitiendo que los Proxy cliente y servidor se comuniquen entre ellos cuando es posible

ProxyBroker

ProxyBroker

Diagrama de Secuencia

ProxyBroker

Otra manera muy usada es no permitir que los Proxy cliente y servidor se comuniquen

Esta restriccioacuten podriacutea ser necesaria por poliacuteticas de seguridad de los servidores

Tambieacuten por mantener un orden y control de todo lo que pasa por los Proxys

ProxyBroker

ProxyBroker

ProxyBroker

Consecuencias

Aislamiento Entre la aplicacioacuten y los servidores

Sencillez permite que sea mas sencilla la construccioacuten de los sistemas

Flexibilidad Permite cambiar capas sin afectar las aplicaciones relacionadas con esta

ProxyBroker

EjemplosEste patroacuten es muy usado por sistemas con estaacutendar CORBA (Arquitectura comuacuten de intermediarios en peticiones a objetos)

Microsofts OLE 2x World Wide Web ATM-P

Page 10: Modelo-Vista-Controlador (MVC) Edgardo Bermúdez Pedro Martínez Víctor González.

Modelo-Vista-Controlador

Modelo-Vista-Controlador

Fortalezas 1048698 Se presenta la misma informacioacuten de distintas formas

1048698 Las vistas y comportamiento de una aplicacioacuten deben reflejar las manipulaciones de los datos de forma inmediata

1048698 Deberiacutea ser faacutecil cambiar la interfaz de usuario (incluso en tiempo de ejecucioacuten)

1048698 Permitir diferentes estaacutendares de interfaz de usuario o portarla a otros entornos no deberiacutea afectar al coacutedigo de la aplicacioacuten

Modelo-Vista-Controlador

En UMLSe propone para el desarrollo del

Modelo de Anaacutelisis de las aplicaciones tres tipos de clases fundamentales con las cuales podemos expresar todas las funciones de cualquier software con sus respectivas responsabilidades

Clase Interfaz ltltInterfacegtgtRecepcionar peticiones al sistemaMostrar respuestas del sistema

Clase Entidad ltltEntitygtgtGestionar datos (informacioacuten) necesaria para el sistemaAlmacenar datos (informacioacuten) persistentes del sistemaProvee la funcionalidad principal dela aplicacioacuten

Clase Controlador ltltControllergtgtProcesar Informacioacuten del sistemaGestionar visualizacioacuten de respuesta del sistemaObtiene los datos del modelo

Modelo-Vista-Controlador

Variante inicial del Patroacuten MVC

Variantes del Modelo

- Variante en la cual no existe ninguna comunicacioacuten entre el Modelo y la Vista y esta uacuteltima recibe los datos a mostrar a traveacutes del Controlador

Modelo-Vista-Controlador

Variante en la cual se desarrolla una comunicacioacuten entre el Modelo y la Vista donde esta uacuteltima al mostrar los datos los busca directamente en el Modelo dada una indicacioacuten del Controlador disminuyendo el conjunto de responsabilidades de este uacuteltimo

Variante Intermedia del Patroacuten MVC

Modelo-Vista-Controlador

Muchas interfaces graacuteficas de usuario como Swing o MFC hacen innecesario el uso de un controlador

1048698 Definen su propio flujo de control y manejan los eventos internamente

1048698 Integran asiacute la vista y el controlador

1048698 A esta variante se la suele denominar Document-View

Modelo-Vista-Controlador

Un controlador (controladorjava por ejemplo) puede gestionar el clic en un botoacuten de tal forma que recoge datos por medio del Modelo (modelcargar_texto()) y los manda a la Vista (el applet) para su actualizacioacuten (vistamostrar_texto( ))

Responde al click en botoacuten abrir La respuesta al evento es hacer que se abra en la vista el archivo correspondiente a la referencia seleccionada en el combo box void b_abrir_actionPerformed(ActionEvent e) hellip

String texto_archivo = modelcargar_texto( indice_ref ) Obtener texto de archivo Si la carga de archivo es ok lo muestro Si no aviso de error if (texto_archivo = null)

vistamostrar_texto(texto_archivo) Mostrar texto vistamostrar_aviso(Carga de + path + completada)

else

vistamostrar_aviso(Error en la carga de + path)

PROXY

Proxy

Propoacutesito

Proporciona un sustituto de otro objeto con el fin de controlar su acceso

MotivacioacutenRazoacuten para controlar el acceso a un

objeto Diferir el coste de su creacioacuten e inicializacioacuten hasta que el objeto realmente se necesite

Proxy

Ejemplo

Editor de documentos que permite objetos graacuteficos abrir un documento deberiacutea ser raacutepido realmente no todos los objetos son visibles a la vez

SolucioacutenCrear los objetos ldquobajo demandardquo

Proxy

Solucioacuten

Usar un objeto que sustituya a la imagen real (PROXY)

El proxy actuacutea como si fuese la imagen y la instancia cuando es necesario

Proxy

Solucioacuten

La imagen estaacute guardada en archivos separados y el Proxy guarda el nombre del archivo como la referencia al objeto real El Proxy tambieacuten guarda el tamantildeo

Proxy

Proxy

El editor de documento accede a la imagen a traveacutes de la interfaz definida por la clase abstracta Graphic

ImageProxy es una clase para las imaacutegenes que es creada por demanda contiene el nombre del archivo como una referencia a la imagen en el disco

El nombre del archivo es pasado como argumento al constructor de ImageProxy

Proxy

ImageProxy tambieacuten guarda el tamantildeo de la imagen y una referencia a la instancia real Esta referencia no seraacute valida hasta que el Proxy instancie la imagen real

La operacioacuten Draw se asegura que la imagen esta instanciada antes de responder la solicitud

GetExtent reenviacutea la solicitud a la imagen solo si ya fue instanciada de lo contrario ImageProxy devuelve el tamantildeo que tiene guardado

Proxy

AplicacionesDonde exista la necesidad de referenciar un objeto de forma maacutes versaacutetil y sofisticada que un puntero

Proxy remoto (Ambassador Embajador)

Proporciona un representante local de un objeto en un

espacio de memoria diferenteProxy virtual

Para crear objetos de gran tamantildeo bajo demanda

Proxy

Proxy de proteccioacutenControla el acceso al objeto original Es uacutetil si el objeto original tiene diferentes derechos de acceso

Referencia elegante (smart pointers)Realiza acciones adicionales cuando se acceden a los elementos referenciados

Proxy

Estructura

Proxy

Diagrama de Secuencia

Proxy

Participantes

ProxyMantiene un referencia al objeto realMantiene un mismo interfaz que el objeto

realMantiene el acceso al objeto realCodificacioacuten de peticiones Caching de

informacioacuten comprobar permisos

Proxy

Participantes

SubjectDefine el interfaz comuacuten a Proxy y

RealSubject

RealSubjectDefine el objeto real que representa el Proxy

Proxy

ConsecuenciasEl proxy introduce un nivel de indireccioacuten

cuando accede a un objeto La indireccioacuten

tiene muchos usos dependiendo del tipo de

proxyRemoto ocultar espacio de memoriaVirtual optimizaciones creando objetos bajo

demandaProteccioacuten tareas adicionales

Proxy

Relacionados

Si ofrece un interfaz distinto (proxy de seguridad)

AdapterTiene una implementacioacuten similar a

Decorator

PROXYBROKER

ProxyBroker

PropoacutesitoEstructurar sistemas distribuidos en los cuales surge la necesidad de una iteracioacuten remota entre componentes

MotivacioacutenDesacoplar la interaccioacuten de los usuarios en los clientes y servidores

ProxyBroker

Ejemplo

En el desarrollo de un ldquoMercado Webrdquo tenemos desarrollados dos agentes el comprador y el vendedor Pero estos estaacuten desarrollados en plataformas diferentes que no permite que tengan comunicacioacuten

ProxyBroker

Solucioacuten

Cuando un cliente necesita comprar un producto solicita a traveacutes de un Proxy al agente Broker los vendedores que tiene registrado El Broker se comunica por un Proxy con el servidor para llevar a cabo la peticioacuten

ProxyBroker

Solucioacuten

El agente Broker entrega la informacioacuten necesaria a el proxy-cliente y al proxy-servidor para que estos establezcan una comunicacioacuten efectiva que permita realizar la operacioacuten

ProxyBroker

Los broker permiten realizar conexiones entre clientes y servidores de diferentes plataformas

Le entregan la informacioacuten necesaria a los Proxy para que estos realicen las conexiones

ProxyBroker

Otro ejemplo

El broker sirve de intermediario entre el comprador y el vendedor

Permitiendo que logren conectarse y realizar la transaccioacuten

ProxyBroker

Los patrones ProxyBroker se pueden implementar de diferentes maneras esto depende de los requerimientos de los sistemas

Una Forma de implementarlos es permitiendo que los Proxy cliente y servidor se comuniquen entre ellos cuando es posible

ProxyBroker

ProxyBroker

Diagrama de Secuencia

ProxyBroker

Otra manera muy usada es no permitir que los Proxy cliente y servidor se comuniquen

Esta restriccioacuten podriacutea ser necesaria por poliacuteticas de seguridad de los servidores

Tambieacuten por mantener un orden y control de todo lo que pasa por los Proxys

ProxyBroker

ProxyBroker

ProxyBroker

Consecuencias

Aislamiento Entre la aplicacioacuten y los servidores

Sencillez permite que sea mas sencilla la construccioacuten de los sistemas

Flexibilidad Permite cambiar capas sin afectar las aplicaciones relacionadas con esta

ProxyBroker

EjemplosEste patroacuten es muy usado por sistemas con estaacutendar CORBA (Arquitectura comuacuten de intermediarios en peticiones a objetos)

Microsofts OLE 2x World Wide Web ATM-P

Page 11: Modelo-Vista-Controlador (MVC) Edgardo Bermúdez Pedro Martínez Víctor González.

Modelo-Vista-Controlador

Fortalezas 1048698 Se presenta la misma informacioacuten de distintas formas

1048698 Las vistas y comportamiento de una aplicacioacuten deben reflejar las manipulaciones de los datos de forma inmediata

1048698 Deberiacutea ser faacutecil cambiar la interfaz de usuario (incluso en tiempo de ejecucioacuten)

1048698 Permitir diferentes estaacutendares de interfaz de usuario o portarla a otros entornos no deberiacutea afectar al coacutedigo de la aplicacioacuten

Modelo-Vista-Controlador

En UMLSe propone para el desarrollo del

Modelo de Anaacutelisis de las aplicaciones tres tipos de clases fundamentales con las cuales podemos expresar todas las funciones de cualquier software con sus respectivas responsabilidades

Clase Interfaz ltltInterfacegtgtRecepcionar peticiones al sistemaMostrar respuestas del sistema

Clase Entidad ltltEntitygtgtGestionar datos (informacioacuten) necesaria para el sistemaAlmacenar datos (informacioacuten) persistentes del sistemaProvee la funcionalidad principal dela aplicacioacuten

Clase Controlador ltltControllergtgtProcesar Informacioacuten del sistemaGestionar visualizacioacuten de respuesta del sistemaObtiene los datos del modelo

Modelo-Vista-Controlador

Variante inicial del Patroacuten MVC

Variantes del Modelo

- Variante en la cual no existe ninguna comunicacioacuten entre el Modelo y la Vista y esta uacuteltima recibe los datos a mostrar a traveacutes del Controlador

Modelo-Vista-Controlador

Variante en la cual se desarrolla una comunicacioacuten entre el Modelo y la Vista donde esta uacuteltima al mostrar los datos los busca directamente en el Modelo dada una indicacioacuten del Controlador disminuyendo el conjunto de responsabilidades de este uacuteltimo

Variante Intermedia del Patroacuten MVC

Modelo-Vista-Controlador

Muchas interfaces graacuteficas de usuario como Swing o MFC hacen innecesario el uso de un controlador

1048698 Definen su propio flujo de control y manejan los eventos internamente

1048698 Integran asiacute la vista y el controlador

1048698 A esta variante se la suele denominar Document-View

Modelo-Vista-Controlador

Un controlador (controladorjava por ejemplo) puede gestionar el clic en un botoacuten de tal forma que recoge datos por medio del Modelo (modelcargar_texto()) y los manda a la Vista (el applet) para su actualizacioacuten (vistamostrar_texto( ))

Responde al click en botoacuten abrir La respuesta al evento es hacer que se abra en la vista el archivo correspondiente a la referencia seleccionada en el combo box void b_abrir_actionPerformed(ActionEvent e) hellip

String texto_archivo = modelcargar_texto( indice_ref ) Obtener texto de archivo Si la carga de archivo es ok lo muestro Si no aviso de error if (texto_archivo = null)

vistamostrar_texto(texto_archivo) Mostrar texto vistamostrar_aviso(Carga de + path + completada)

else

vistamostrar_aviso(Error en la carga de + path)

PROXY

Proxy

Propoacutesito

Proporciona un sustituto de otro objeto con el fin de controlar su acceso

MotivacioacutenRazoacuten para controlar el acceso a un

objeto Diferir el coste de su creacioacuten e inicializacioacuten hasta que el objeto realmente se necesite

Proxy

Ejemplo

Editor de documentos que permite objetos graacuteficos abrir un documento deberiacutea ser raacutepido realmente no todos los objetos son visibles a la vez

SolucioacutenCrear los objetos ldquobajo demandardquo

Proxy

Solucioacuten

Usar un objeto que sustituya a la imagen real (PROXY)

El proxy actuacutea como si fuese la imagen y la instancia cuando es necesario

Proxy

Solucioacuten

La imagen estaacute guardada en archivos separados y el Proxy guarda el nombre del archivo como la referencia al objeto real El Proxy tambieacuten guarda el tamantildeo

Proxy

Proxy

El editor de documento accede a la imagen a traveacutes de la interfaz definida por la clase abstracta Graphic

ImageProxy es una clase para las imaacutegenes que es creada por demanda contiene el nombre del archivo como una referencia a la imagen en el disco

El nombre del archivo es pasado como argumento al constructor de ImageProxy

Proxy

ImageProxy tambieacuten guarda el tamantildeo de la imagen y una referencia a la instancia real Esta referencia no seraacute valida hasta que el Proxy instancie la imagen real

La operacioacuten Draw se asegura que la imagen esta instanciada antes de responder la solicitud

GetExtent reenviacutea la solicitud a la imagen solo si ya fue instanciada de lo contrario ImageProxy devuelve el tamantildeo que tiene guardado

Proxy

AplicacionesDonde exista la necesidad de referenciar un objeto de forma maacutes versaacutetil y sofisticada que un puntero

Proxy remoto (Ambassador Embajador)

Proporciona un representante local de un objeto en un

espacio de memoria diferenteProxy virtual

Para crear objetos de gran tamantildeo bajo demanda

Proxy

Proxy de proteccioacutenControla el acceso al objeto original Es uacutetil si el objeto original tiene diferentes derechos de acceso

Referencia elegante (smart pointers)Realiza acciones adicionales cuando se acceden a los elementos referenciados

Proxy

Estructura

Proxy

Diagrama de Secuencia

Proxy

Participantes

ProxyMantiene un referencia al objeto realMantiene un mismo interfaz que el objeto

realMantiene el acceso al objeto realCodificacioacuten de peticiones Caching de

informacioacuten comprobar permisos

Proxy

Participantes

SubjectDefine el interfaz comuacuten a Proxy y

RealSubject

RealSubjectDefine el objeto real que representa el Proxy

Proxy

ConsecuenciasEl proxy introduce un nivel de indireccioacuten

cuando accede a un objeto La indireccioacuten

tiene muchos usos dependiendo del tipo de

proxyRemoto ocultar espacio de memoriaVirtual optimizaciones creando objetos bajo

demandaProteccioacuten tareas adicionales

Proxy

Relacionados

Si ofrece un interfaz distinto (proxy de seguridad)

AdapterTiene una implementacioacuten similar a

Decorator

PROXYBROKER

ProxyBroker

PropoacutesitoEstructurar sistemas distribuidos en los cuales surge la necesidad de una iteracioacuten remota entre componentes

MotivacioacutenDesacoplar la interaccioacuten de los usuarios en los clientes y servidores

ProxyBroker

Ejemplo

En el desarrollo de un ldquoMercado Webrdquo tenemos desarrollados dos agentes el comprador y el vendedor Pero estos estaacuten desarrollados en plataformas diferentes que no permite que tengan comunicacioacuten

ProxyBroker

Solucioacuten

Cuando un cliente necesita comprar un producto solicita a traveacutes de un Proxy al agente Broker los vendedores que tiene registrado El Broker se comunica por un Proxy con el servidor para llevar a cabo la peticioacuten

ProxyBroker

Solucioacuten

El agente Broker entrega la informacioacuten necesaria a el proxy-cliente y al proxy-servidor para que estos establezcan una comunicacioacuten efectiva que permita realizar la operacioacuten

ProxyBroker

Los broker permiten realizar conexiones entre clientes y servidores de diferentes plataformas

Le entregan la informacioacuten necesaria a los Proxy para que estos realicen las conexiones

ProxyBroker

Otro ejemplo

El broker sirve de intermediario entre el comprador y el vendedor

Permitiendo que logren conectarse y realizar la transaccioacuten

ProxyBroker

Los patrones ProxyBroker se pueden implementar de diferentes maneras esto depende de los requerimientos de los sistemas

Una Forma de implementarlos es permitiendo que los Proxy cliente y servidor se comuniquen entre ellos cuando es posible

ProxyBroker

ProxyBroker

Diagrama de Secuencia

ProxyBroker

Otra manera muy usada es no permitir que los Proxy cliente y servidor se comuniquen

Esta restriccioacuten podriacutea ser necesaria por poliacuteticas de seguridad de los servidores

Tambieacuten por mantener un orden y control de todo lo que pasa por los Proxys

ProxyBroker

ProxyBroker

ProxyBroker

Consecuencias

Aislamiento Entre la aplicacioacuten y los servidores

Sencillez permite que sea mas sencilla la construccioacuten de los sistemas

Flexibilidad Permite cambiar capas sin afectar las aplicaciones relacionadas con esta

ProxyBroker

EjemplosEste patroacuten es muy usado por sistemas con estaacutendar CORBA (Arquitectura comuacuten de intermediarios en peticiones a objetos)

Microsofts OLE 2x World Wide Web ATM-P

Page 12: Modelo-Vista-Controlador (MVC) Edgardo Bermúdez Pedro Martínez Víctor González.

Modelo-Vista-Controlador

En UMLSe propone para el desarrollo del

Modelo de Anaacutelisis de las aplicaciones tres tipos de clases fundamentales con las cuales podemos expresar todas las funciones de cualquier software con sus respectivas responsabilidades

Clase Interfaz ltltInterfacegtgtRecepcionar peticiones al sistemaMostrar respuestas del sistema

Clase Entidad ltltEntitygtgtGestionar datos (informacioacuten) necesaria para el sistemaAlmacenar datos (informacioacuten) persistentes del sistemaProvee la funcionalidad principal dela aplicacioacuten

Clase Controlador ltltControllergtgtProcesar Informacioacuten del sistemaGestionar visualizacioacuten de respuesta del sistemaObtiene los datos del modelo

Modelo-Vista-Controlador

Variante inicial del Patroacuten MVC

Variantes del Modelo

- Variante en la cual no existe ninguna comunicacioacuten entre el Modelo y la Vista y esta uacuteltima recibe los datos a mostrar a traveacutes del Controlador

Modelo-Vista-Controlador

Variante en la cual se desarrolla una comunicacioacuten entre el Modelo y la Vista donde esta uacuteltima al mostrar los datos los busca directamente en el Modelo dada una indicacioacuten del Controlador disminuyendo el conjunto de responsabilidades de este uacuteltimo

Variante Intermedia del Patroacuten MVC

Modelo-Vista-Controlador

Muchas interfaces graacuteficas de usuario como Swing o MFC hacen innecesario el uso de un controlador

1048698 Definen su propio flujo de control y manejan los eventos internamente

1048698 Integran asiacute la vista y el controlador

1048698 A esta variante se la suele denominar Document-View

Modelo-Vista-Controlador

Un controlador (controladorjava por ejemplo) puede gestionar el clic en un botoacuten de tal forma que recoge datos por medio del Modelo (modelcargar_texto()) y los manda a la Vista (el applet) para su actualizacioacuten (vistamostrar_texto( ))

Responde al click en botoacuten abrir La respuesta al evento es hacer que se abra en la vista el archivo correspondiente a la referencia seleccionada en el combo box void b_abrir_actionPerformed(ActionEvent e) hellip

String texto_archivo = modelcargar_texto( indice_ref ) Obtener texto de archivo Si la carga de archivo es ok lo muestro Si no aviso de error if (texto_archivo = null)

vistamostrar_texto(texto_archivo) Mostrar texto vistamostrar_aviso(Carga de + path + completada)

else

vistamostrar_aviso(Error en la carga de + path)

PROXY

Proxy

Propoacutesito

Proporciona un sustituto de otro objeto con el fin de controlar su acceso

MotivacioacutenRazoacuten para controlar el acceso a un

objeto Diferir el coste de su creacioacuten e inicializacioacuten hasta que el objeto realmente se necesite

Proxy

Ejemplo

Editor de documentos que permite objetos graacuteficos abrir un documento deberiacutea ser raacutepido realmente no todos los objetos son visibles a la vez

SolucioacutenCrear los objetos ldquobajo demandardquo

Proxy

Solucioacuten

Usar un objeto que sustituya a la imagen real (PROXY)

El proxy actuacutea como si fuese la imagen y la instancia cuando es necesario

Proxy

Solucioacuten

La imagen estaacute guardada en archivos separados y el Proxy guarda el nombre del archivo como la referencia al objeto real El Proxy tambieacuten guarda el tamantildeo

Proxy

Proxy

El editor de documento accede a la imagen a traveacutes de la interfaz definida por la clase abstracta Graphic

ImageProxy es una clase para las imaacutegenes que es creada por demanda contiene el nombre del archivo como una referencia a la imagen en el disco

El nombre del archivo es pasado como argumento al constructor de ImageProxy

Proxy

ImageProxy tambieacuten guarda el tamantildeo de la imagen y una referencia a la instancia real Esta referencia no seraacute valida hasta que el Proxy instancie la imagen real

La operacioacuten Draw se asegura que la imagen esta instanciada antes de responder la solicitud

GetExtent reenviacutea la solicitud a la imagen solo si ya fue instanciada de lo contrario ImageProxy devuelve el tamantildeo que tiene guardado

Proxy

AplicacionesDonde exista la necesidad de referenciar un objeto de forma maacutes versaacutetil y sofisticada que un puntero

Proxy remoto (Ambassador Embajador)

Proporciona un representante local de un objeto en un

espacio de memoria diferenteProxy virtual

Para crear objetos de gran tamantildeo bajo demanda

Proxy

Proxy de proteccioacutenControla el acceso al objeto original Es uacutetil si el objeto original tiene diferentes derechos de acceso

Referencia elegante (smart pointers)Realiza acciones adicionales cuando se acceden a los elementos referenciados

Proxy

Estructura

Proxy

Diagrama de Secuencia

Proxy

Participantes

ProxyMantiene un referencia al objeto realMantiene un mismo interfaz que el objeto

realMantiene el acceso al objeto realCodificacioacuten de peticiones Caching de

informacioacuten comprobar permisos

Proxy

Participantes

SubjectDefine el interfaz comuacuten a Proxy y

RealSubject

RealSubjectDefine el objeto real que representa el Proxy

Proxy

ConsecuenciasEl proxy introduce un nivel de indireccioacuten

cuando accede a un objeto La indireccioacuten

tiene muchos usos dependiendo del tipo de

proxyRemoto ocultar espacio de memoriaVirtual optimizaciones creando objetos bajo

demandaProteccioacuten tareas adicionales

Proxy

Relacionados

Si ofrece un interfaz distinto (proxy de seguridad)

AdapterTiene una implementacioacuten similar a

Decorator

PROXYBROKER

ProxyBroker

PropoacutesitoEstructurar sistemas distribuidos en los cuales surge la necesidad de una iteracioacuten remota entre componentes

MotivacioacutenDesacoplar la interaccioacuten de los usuarios en los clientes y servidores

ProxyBroker

Ejemplo

En el desarrollo de un ldquoMercado Webrdquo tenemos desarrollados dos agentes el comprador y el vendedor Pero estos estaacuten desarrollados en plataformas diferentes que no permite que tengan comunicacioacuten

ProxyBroker

Solucioacuten

Cuando un cliente necesita comprar un producto solicita a traveacutes de un Proxy al agente Broker los vendedores que tiene registrado El Broker se comunica por un Proxy con el servidor para llevar a cabo la peticioacuten

ProxyBroker

Solucioacuten

El agente Broker entrega la informacioacuten necesaria a el proxy-cliente y al proxy-servidor para que estos establezcan una comunicacioacuten efectiva que permita realizar la operacioacuten

ProxyBroker

Los broker permiten realizar conexiones entre clientes y servidores de diferentes plataformas

Le entregan la informacioacuten necesaria a los Proxy para que estos realicen las conexiones

ProxyBroker

Otro ejemplo

El broker sirve de intermediario entre el comprador y el vendedor

Permitiendo que logren conectarse y realizar la transaccioacuten

ProxyBroker

Los patrones ProxyBroker se pueden implementar de diferentes maneras esto depende de los requerimientos de los sistemas

Una Forma de implementarlos es permitiendo que los Proxy cliente y servidor se comuniquen entre ellos cuando es posible

ProxyBroker

ProxyBroker

Diagrama de Secuencia

ProxyBroker

Otra manera muy usada es no permitir que los Proxy cliente y servidor se comuniquen

Esta restriccioacuten podriacutea ser necesaria por poliacuteticas de seguridad de los servidores

Tambieacuten por mantener un orden y control de todo lo que pasa por los Proxys

ProxyBroker

ProxyBroker

ProxyBroker

Consecuencias

Aislamiento Entre la aplicacioacuten y los servidores

Sencillez permite que sea mas sencilla la construccioacuten de los sistemas

Flexibilidad Permite cambiar capas sin afectar las aplicaciones relacionadas con esta

ProxyBroker

EjemplosEste patroacuten es muy usado por sistemas con estaacutendar CORBA (Arquitectura comuacuten de intermediarios en peticiones a objetos)

Microsofts OLE 2x World Wide Web ATM-P

Page 13: Modelo-Vista-Controlador (MVC) Edgardo Bermúdez Pedro Martínez Víctor González.

Modelo-Vista-Controlador

Variante inicial del Patroacuten MVC

Variantes del Modelo

- Variante en la cual no existe ninguna comunicacioacuten entre el Modelo y la Vista y esta uacuteltima recibe los datos a mostrar a traveacutes del Controlador

Modelo-Vista-Controlador

Variante en la cual se desarrolla una comunicacioacuten entre el Modelo y la Vista donde esta uacuteltima al mostrar los datos los busca directamente en el Modelo dada una indicacioacuten del Controlador disminuyendo el conjunto de responsabilidades de este uacuteltimo

Variante Intermedia del Patroacuten MVC

Modelo-Vista-Controlador

Muchas interfaces graacuteficas de usuario como Swing o MFC hacen innecesario el uso de un controlador

1048698 Definen su propio flujo de control y manejan los eventos internamente

1048698 Integran asiacute la vista y el controlador

1048698 A esta variante se la suele denominar Document-View

Modelo-Vista-Controlador

Un controlador (controladorjava por ejemplo) puede gestionar el clic en un botoacuten de tal forma que recoge datos por medio del Modelo (modelcargar_texto()) y los manda a la Vista (el applet) para su actualizacioacuten (vistamostrar_texto( ))

Responde al click en botoacuten abrir La respuesta al evento es hacer que se abra en la vista el archivo correspondiente a la referencia seleccionada en el combo box void b_abrir_actionPerformed(ActionEvent e) hellip

String texto_archivo = modelcargar_texto( indice_ref ) Obtener texto de archivo Si la carga de archivo es ok lo muestro Si no aviso de error if (texto_archivo = null)

vistamostrar_texto(texto_archivo) Mostrar texto vistamostrar_aviso(Carga de + path + completada)

else

vistamostrar_aviso(Error en la carga de + path)

PROXY

Proxy

Propoacutesito

Proporciona un sustituto de otro objeto con el fin de controlar su acceso

MotivacioacutenRazoacuten para controlar el acceso a un

objeto Diferir el coste de su creacioacuten e inicializacioacuten hasta que el objeto realmente se necesite

Proxy

Ejemplo

Editor de documentos que permite objetos graacuteficos abrir un documento deberiacutea ser raacutepido realmente no todos los objetos son visibles a la vez

SolucioacutenCrear los objetos ldquobajo demandardquo

Proxy

Solucioacuten

Usar un objeto que sustituya a la imagen real (PROXY)

El proxy actuacutea como si fuese la imagen y la instancia cuando es necesario

Proxy

Solucioacuten

La imagen estaacute guardada en archivos separados y el Proxy guarda el nombre del archivo como la referencia al objeto real El Proxy tambieacuten guarda el tamantildeo

Proxy

Proxy

El editor de documento accede a la imagen a traveacutes de la interfaz definida por la clase abstracta Graphic

ImageProxy es una clase para las imaacutegenes que es creada por demanda contiene el nombre del archivo como una referencia a la imagen en el disco

El nombre del archivo es pasado como argumento al constructor de ImageProxy

Proxy

ImageProxy tambieacuten guarda el tamantildeo de la imagen y una referencia a la instancia real Esta referencia no seraacute valida hasta que el Proxy instancie la imagen real

La operacioacuten Draw se asegura que la imagen esta instanciada antes de responder la solicitud

GetExtent reenviacutea la solicitud a la imagen solo si ya fue instanciada de lo contrario ImageProxy devuelve el tamantildeo que tiene guardado

Proxy

AplicacionesDonde exista la necesidad de referenciar un objeto de forma maacutes versaacutetil y sofisticada que un puntero

Proxy remoto (Ambassador Embajador)

Proporciona un representante local de un objeto en un

espacio de memoria diferenteProxy virtual

Para crear objetos de gran tamantildeo bajo demanda

Proxy

Proxy de proteccioacutenControla el acceso al objeto original Es uacutetil si el objeto original tiene diferentes derechos de acceso

Referencia elegante (smart pointers)Realiza acciones adicionales cuando se acceden a los elementos referenciados

Proxy

Estructura

Proxy

Diagrama de Secuencia

Proxy

Participantes

ProxyMantiene un referencia al objeto realMantiene un mismo interfaz que el objeto

realMantiene el acceso al objeto realCodificacioacuten de peticiones Caching de

informacioacuten comprobar permisos

Proxy

Participantes

SubjectDefine el interfaz comuacuten a Proxy y

RealSubject

RealSubjectDefine el objeto real que representa el Proxy

Proxy

ConsecuenciasEl proxy introduce un nivel de indireccioacuten

cuando accede a un objeto La indireccioacuten

tiene muchos usos dependiendo del tipo de

proxyRemoto ocultar espacio de memoriaVirtual optimizaciones creando objetos bajo

demandaProteccioacuten tareas adicionales

Proxy

Relacionados

Si ofrece un interfaz distinto (proxy de seguridad)

AdapterTiene una implementacioacuten similar a

Decorator

PROXYBROKER

ProxyBroker

PropoacutesitoEstructurar sistemas distribuidos en los cuales surge la necesidad de una iteracioacuten remota entre componentes

MotivacioacutenDesacoplar la interaccioacuten de los usuarios en los clientes y servidores

ProxyBroker

Ejemplo

En el desarrollo de un ldquoMercado Webrdquo tenemos desarrollados dos agentes el comprador y el vendedor Pero estos estaacuten desarrollados en plataformas diferentes que no permite que tengan comunicacioacuten

ProxyBroker

Solucioacuten

Cuando un cliente necesita comprar un producto solicita a traveacutes de un Proxy al agente Broker los vendedores que tiene registrado El Broker se comunica por un Proxy con el servidor para llevar a cabo la peticioacuten

ProxyBroker

Solucioacuten

El agente Broker entrega la informacioacuten necesaria a el proxy-cliente y al proxy-servidor para que estos establezcan una comunicacioacuten efectiva que permita realizar la operacioacuten

ProxyBroker

Los broker permiten realizar conexiones entre clientes y servidores de diferentes plataformas

Le entregan la informacioacuten necesaria a los Proxy para que estos realicen las conexiones

ProxyBroker

Otro ejemplo

El broker sirve de intermediario entre el comprador y el vendedor

Permitiendo que logren conectarse y realizar la transaccioacuten

ProxyBroker

Los patrones ProxyBroker se pueden implementar de diferentes maneras esto depende de los requerimientos de los sistemas

Una Forma de implementarlos es permitiendo que los Proxy cliente y servidor se comuniquen entre ellos cuando es posible

ProxyBroker

ProxyBroker

Diagrama de Secuencia

ProxyBroker

Otra manera muy usada es no permitir que los Proxy cliente y servidor se comuniquen

Esta restriccioacuten podriacutea ser necesaria por poliacuteticas de seguridad de los servidores

Tambieacuten por mantener un orden y control de todo lo que pasa por los Proxys

ProxyBroker

ProxyBroker

ProxyBroker

Consecuencias

Aislamiento Entre la aplicacioacuten y los servidores

Sencillez permite que sea mas sencilla la construccioacuten de los sistemas

Flexibilidad Permite cambiar capas sin afectar las aplicaciones relacionadas con esta

ProxyBroker

EjemplosEste patroacuten es muy usado por sistemas con estaacutendar CORBA (Arquitectura comuacuten de intermediarios en peticiones a objetos)

Microsofts OLE 2x World Wide Web ATM-P

Page 14: Modelo-Vista-Controlador (MVC) Edgardo Bermúdez Pedro Martínez Víctor González.

Modelo-Vista-Controlador

Variante en la cual se desarrolla una comunicacioacuten entre el Modelo y la Vista donde esta uacuteltima al mostrar los datos los busca directamente en el Modelo dada una indicacioacuten del Controlador disminuyendo el conjunto de responsabilidades de este uacuteltimo

Variante Intermedia del Patroacuten MVC

Modelo-Vista-Controlador

Muchas interfaces graacuteficas de usuario como Swing o MFC hacen innecesario el uso de un controlador

1048698 Definen su propio flujo de control y manejan los eventos internamente

1048698 Integran asiacute la vista y el controlador

1048698 A esta variante se la suele denominar Document-View

Modelo-Vista-Controlador

Un controlador (controladorjava por ejemplo) puede gestionar el clic en un botoacuten de tal forma que recoge datos por medio del Modelo (modelcargar_texto()) y los manda a la Vista (el applet) para su actualizacioacuten (vistamostrar_texto( ))

Responde al click en botoacuten abrir La respuesta al evento es hacer que se abra en la vista el archivo correspondiente a la referencia seleccionada en el combo box void b_abrir_actionPerformed(ActionEvent e) hellip

String texto_archivo = modelcargar_texto( indice_ref ) Obtener texto de archivo Si la carga de archivo es ok lo muestro Si no aviso de error if (texto_archivo = null)

vistamostrar_texto(texto_archivo) Mostrar texto vistamostrar_aviso(Carga de + path + completada)

else

vistamostrar_aviso(Error en la carga de + path)

PROXY

Proxy

Propoacutesito

Proporciona un sustituto de otro objeto con el fin de controlar su acceso

MotivacioacutenRazoacuten para controlar el acceso a un

objeto Diferir el coste de su creacioacuten e inicializacioacuten hasta que el objeto realmente se necesite

Proxy

Ejemplo

Editor de documentos que permite objetos graacuteficos abrir un documento deberiacutea ser raacutepido realmente no todos los objetos son visibles a la vez

SolucioacutenCrear los objetos ldquobajo demandardquo

Proxy

Solucioacuten

Usar un objeto que sustituya a la imagen real (PROXY)

El proxy actuacutea como si fuese la imagen y la instancia cuando es necesario

Proxy

Solucioacuten

La imagen estaacute guardada en archivos separados y el Proxy guarda el nombre del archivo como la referencia al objeto real El Proxy tambieacuten guarda el tamantildeo

Proxy

Proxy

El editor de documento accede a la imagen a traveacutes de la interfaz definida por la clase abstracta Graphic

ImageProxy es una clase para las imaacutegenes que es creada por demanda contiene el nombre del archivo como una referencia a la imagen en el disco

El nombre del archivo es pasado como argumento al constructor de ImageProxy

Proxy

ImageProxy tambieacuten guarda el tamantildeo de la imagen y una referencia a la instancia real Esta referencia no seraacute valida hasta que el Proxy instancie la imagen real

La operacioacuten Draw se asegura que la imagen esta instanciada antes de responder la solicitud

GetExtent reenviacutea la solicitud a la imagen solo si ya fue instanciada de lo contrario ImageProxy devuelve el tamantildeo que tiene guardado

Proxy

AplicacionesDonde exista la necesidad de referenciar un objeto de forma maacutes versaacutetil y sofisticada que un puntero

Proxy remoto (Ambassador Embajador)

Proporciona un representante local de un objeto en un

espacio de memoria diferenteProxy virtual

Para crear objetos de gran tamantildeo bajo demanda

Proxy

Proxy de proteccioacutenControla el acceso al objeto original Es uacutetil si el objeto original tiene diferentes derechos de acceso

Referencia elegante (smart pointers)Realiza acciones adicionales cuando se acceden a los elementos referenciados

Proxy

Estructura

Proxy

Diagrama de Secuencia

Proxy

Participantes

ProxyMantiene un referencia al objeto realMantiene un mismo interfaz que el objeto

realMantiene el acceso al objeto realCodificacioacuten de peticiones Caching de

informacioacuten comprobar permisos

Proxy

Participantes

SubjectDefine el interfaz comuacuten a Proxy y

RealSubject

RealSubjectDefine el objeto real que representa el Proxy

Proxy

ConsecuenciasEl proxy introduce un nivel de indireccioacuten

cuando accede a un objeto La indireccioacuten

tiene muchos usos dependiendo del tipo de

proxyRemoto ocultar espacio de memoriaVirtual optimizaciones creando objetos bajo

demandaProteccioacuten tareas adicionales

Proxy

Relacionados

Si ofrece un interfaz distinto (proxy de seguridad)

AdapterTiene una implementacioacuten similar a

Decorator

PROXYBROKER

ProxyBroker

PropoacutesitoEstructurar sistemas distribuidos en los cuales surge la necesidad de una iteracioacuten remota entre componentes

MotivacioacutenDesacoplar la interaccioacuten de los usuarios en los clientes y servidores

ProxyBroker

Ejemplo

En el desarrollo de un ldquoMercado Webrdquo tenemos desarrollados dos agentes el comprador y el vendedor Pero estos estaacuten desarrollados en plataformas diferentes que no permite que tengan comunicacioacuten

ProxyBroker

Solucioacuten

Cuando un cliente necesita comprar un producto solicita a traveacutes de un Proxy al agente Broker los vendedores que tiene registrado El Broker se comunica por un Proxy con el servidor para llevar a cabo la peticioacuten

ProxyBroker

Solucioacuten

El agente Broker entrega la informacioacuten necesaria a el proxy-cliente y al proxy-servidor para que estos establezcan una comunicacioacuten efectiva que permita realizar la operacioacuten

ProxyBroker

Los broker permiten realizar conexiones entre clientes y servidores de diferentes plataformas

Le entregan la informacioacuten necesaria a los Proxy para que estos realicen las conexiones

ProxyBroker

Otro ejemplo

El broker sirve de intermediario entre el comprador y el vendedor

Permitiendo que logren conectarse y realizar la transaccioacuten

ProxyBroker

Los patrones ProxyBroker se pueden implementar de diferentes maneras esto depende de los requerimientos de los sistemas

Una Forma de implementarlos es permitiendo que los Proxy cliente y servidor se comuniquen entre ellos cuando es posible

ProxyBroker

ProxyBroker

Diagrama de Secuencia

ProxyBroker

Otra manera muy usada es no permitir que los Proxy cliente y servidor se comuniquen

Esta restriccioacuten podriacutea ser necesaria por poliacuteticas de seguridad de los servidores

Tambieacuten por mantener un orden y control de todo lo que pasa por los Proxys

ProxyBroker

ProxyBroker

ProxyBroker

Consecuencias

Aislamiento Entre la aplicacioacuten y los servidores

Sencillez permite que sea mas sencilla la construccioacuten de los sistemas

Flexibilidad Permite cambiar capas sin afectar las aplicaciones relacionadas con esta

ProxyBroker

EjemplosEste patroacuten es muy usado por sistemas con estaacutendar CORBA (Arquitectura comuacuten de intermediarios en peticiones a objetos)

Microsofts OLE 2x World Wide Web ATM-P

Page 15: Modelo-Vista-Controlador (MVC) Edgardo Bermúdez Pedro Martínez Víctor González.

Modelo-Vista-Controlador

Muchas interfaces graacuteficas de usuario como Swing o MFC hacen innecesario el uso de un controlador

1048698 Definen su propio flujo de control y manejan los eventos internamente

1048698 Integran asiacute la vista y el controlador

1048698 A esta variante se la suele denominar Document-View

Modelo-Vista-Controlador

Un controlador (controladorjava por ejemplo) puede gestionar el clic en un botoacuten de tal forma que recoge datos por medio del Modelo (modelcargar_texto()) y los manda a la Vista (el applet) para su actualizacioacuten (vistamostrar_texto( ))

Responde al click en botoacuten abrir La respuesta al evento es hacer que se abra en la vista el archivo correspondiente a la referencia seleccionada en el combo box void b_abrir_actionPerformed(ActionEvent e) hellip

String texto_archivo = modelcargar_texto( indice_ref ) Obtener texto de archivo Si la carga de archivo es ok lo muestro Si no aviso de error if (texto_archivo = null)

vistamostrar_texto(texto_archivo) Mostrar texto vistamostrar_aviso(Carga de + path + completada)

else

vistamostrar_aviso(Error en la carga de + path)

PROXY

Proxy

Propoacutesito

Proporciona un sustituto de otro objeto con el fin de controlar su acceso

MotivacioacutenRazoacuten para controlar el acceso a un

objeto Diferir el coste de su creacioacuten e inicializacioacuten hasta que el objeto realmente se necesite

Proxy

Ejemplo

Editor de documentos que permite objetos graacuteficos abrir un documento deberiacutea ser raacutepido realmente no todos los objetos son visibles a la vez

SolucioacutenCrear los objetos ldquobajo demandardquo

Proxy

Solucioacuten

Usar un objeto que sustituya a la imagen real (PROXY)

El proxy actuacutea como si fuese la imagen y la instancia cuando es necesario

Proxy

Solucioacuten

La imagen estaacute guardada en archivos separados y el Proxy guarda el nombre del archivo como la referencia al objeto real El Proxy tambieacuten guarda el tamantildeo

Proxy

Proxy

El editor de documento accede a la imagen a traveacutes de la interfaz definida por la clase abstracta Graphic

ImageProxy es una clase para las imaacutegenes que es creada por demanda contiene el nombre del archivo como una referencia a la imagen en el disco

El nombre del archivo es pasado como argumento al constructor de ImageProxy

Proxy

ImageProxy tambieacuten guarda el tamantildeo de la imagen y una referencia a la instancia real Esta referencia no seraacute valida hasta que el Proxy instancie la imagen real

La operacioacuten Draw se asegura que la imagen esta instanciada antes de responder la solicitud

GetExtent reenviacutea la solicitud a la imagen solo si ya fue instanciada de lo contrario ImageProxy devuelve el tamantildeo que tiene guardado

Proxy

AplicacionesDonde exista la necesidad de referenciar un objeto de forma maacutes versaacutetil y sofisticada que un puntero

Proxy remoto (Ambassador Embajador)

Proporciona un representante local de un objeto en un

espacio de memoria diferenteProxy virtual

Para crear objetos de gran tamantildeo bajo demanda

Proxy

Proxy de proteccioacutenControla el acceso al objeto original Es uacutetil si el objeto original tiene diferentes derechos de acceso

Referencia elegante (smart pointers)Realiza acciones adicionales cuando se acceden a los elementos referenciados

Proxy

Estructura

Proxy

Diagrama de Secuencia

Proxy

Participantes

ProxyMantiene un referencia al objeto realMantiene un mismo interfaz que el objeto

realMantiene el acceso al objeto realCodificacioacuten de peticiones Caching de

informacioacuten comprobar permisos

Proxy

Participantes

SubjectDefine el interfaz comuacuten a Proxy y

RealSubject

RealSubjectDefine el objeto real que representa el Proxy

Proxy

ConsecuenciasEl proxy introduce un nivel de indireccioacuten

cuando accede a un objeto La indireccioacuten

tiene muchos usos dependiendo del tipo de

proxyRemoto ocultar espacio de memoriaVirtual optimizaciones creando objetos bajo

demandaProteccioacuten tareas adicionales

Proxy

Relacionados

Si ofrece un interfaz distinto (proxy de seguridad)

AdapterTiene una implementacioacuten similar a

Decorator

PROXYBROKER

ProxyBroker

PropoacutesitoEstructurar sistemas distribuidos en los cuales surge la necesidad de una iteracioacuten remota entre componentes

MotivacioacutenDesacoplar la interaccioacuten de los usuarios en los clientes y servidores

ProxyBroker

Ejemplo

En el desarrollo de un ldquoMercado Webrdquo tenemos desarrollados dos agentes el comprador y el vendedor Pero estos estaacuten desarrollados en plataformas diferentes que no permite que tengan comunicacioacuten

ProxyBroker

Solucioacuten

Cuando un cliente necesita comprar un producto solicita a traveacutes de un Proxy al agente Broker los vendedores que tiene registrado El Broker se comunica por un Proxy con el servidor para llevar a cabo la peticioacuten

ProxyBroker

Solucioacuten

El agente Broker entrega la informacioacuten necesaria a el proxy-cliente y al proxy-servidor para que estos establezcan una comunicacioacuten efectiva que permita realizar la operacioacuten

ProxyBroker

Los broker permiten realizar conexiones entre clientes y servidores de diferentes plataformas

Le entregan la informacioacuten necesaria a los Proxy para que estos realicen las conexiones

ProxyBroker

Otro ejemplo

El broker sirve de intermediario entre el comprador y el vendedor

Permitiendo que logren conectarse y realizar la transaccioacuten

ProxyBroker

Los patrones ProxyBroker se pueden implementar de diferentes maneras esto depende de los requerimientos de los sistemas

Una Forma de implementarlos es permitiendo que los Proxy cliente y servidor se comuniquen entre ellos cuando es posible

ProxyBroker

ProxyBroker

Diagrama de Secuencia

ProxyBroker

Otra manera muy usada es no permitir que los Proxy cliente y servidor se comuniquen

Esta restriccioacuten podriacutea ser necesaria por poliacuteticas de seguridad de los servidores

Tambieacuten por mantener un orden y control de todo lo que pasa por los Proxys

ProxyBroker

ProxyBroker

ProxyBroker

Consecuencias

Aislamiento Entre la aplicacioacuten y los servidores

Sencillez permite que sea mas sencilla la construccioacuten de los sistemas

Flexibilidad Permite cambiar capas sin afectar las aplicaciones relacionadas con esta

ProxyBroker

EjemplosEste patroacuten es muy usado por sistemas con estaacutendar CORBA (Arquitectura comuacuten de intermediarios en peticiones a objetos)

Microsofts OLE 2x World Wide Web ATM-P

Page 16: Modelo-Vista-Controlador (MVC) Edgardo Bermúdez Pedro Martínez Víctor González.

Modelo-Vista-Controlador

Un controlador (controladorjava por ejemplo) puede gestionar el clic en un botoacuten de tal forma que recoge datos por medio del Modelo (modelcargar_texto()) y los manda a la Vista (el applet) para su actualizacioacuten (vistamostrar_texto( ))

Responde al click en botoacuten abrir La respuesta al evento es hacer que se abra en la vista el archivo correspondiente a la referencia seleccionada en el combo box void b_abrir_actionPerformed(ActionEvent e) hellip

String texto_archivo = modelcargar_texto( indice_ref ) Obtener texto de archivo Si la carga de archivo es ok lo muestro Si no aviso de error if (texto_archivo = null)

vistamostrar_texto(texto_archivo) Mostrar texto vistamostrar_aviso(Carga de + path + completada)

else

vistamostrar_aviso(Error en la carga de + path)

PROXY

Proxy

Propoacutesito

Proporciona un sustituto de otro objeto con el fin de controlar su acceso

MotivacioacutenRazoacuten para controlar el acceso a un

objeto Diferir el coste de su creacioacuten e inicializacioacuten hasta que el objeto realmente se necesite

Proxy

Ejemplo

Editor de documentos que permite objetos graacuteficos abrir un documento deberiacutea ser raacutepido realmente no todos los objetos son visibles a la vez

SolucioacutenCrear los objetos ldquobajo demandardquo

Proxy

Solucioacuten

Usar un objeto que sustituya a la imagen real (PROXY)

El proxy actuacutea como si fuese la imagen y la instancia cuando es necesario

Proxy

Solucioacuten

La imagen estaacute guardada en archivos separados y el Proxy guarda el nombre del archivo como la referencia al objeto real El Proxy tambieacuten guarda el tamantildeo

Proxy

Proxy

El editor de documento accede a la imagen a traveacutes de la interfaz definida por la clase abstracta Graphic

ImageProxy es una clase para las imaacutegenes que es creada por demanda contiene el nombre del archivo como una referencia a la imagen en el disco

El nombre del archivo es pasado como argumento al constructor de ImageProxy

Proxy

ImageProxy tambieacuten guarda el tamantildeo de la imagen y una referencia a la instancia real Esta referencia no seraacute valida hasta que el Proxy instancie la imagen real

La operacioacuten Draw se asegura que la imagen esta instanciada antes de responder la solicitud

GetExtent reenviacutea la solicitud a la imagen solo si ya fue instanciada de lo contrario ImageProxy devuelve el tamantildeo que tiene guardado

Proxy

AplicacionesDonde exista la necesidad de referenciar un objeto de forma maacutes versaacutetil y sofisticada que un puntero

Proxy remoto (Ambassador Embajador)

Proporciona un representante local de un objeto en un

espacio de memoria diferenteProxy virtual

Para crear objetos de gran tamantildeo bajo demanda

Proxy

Proxy de proteccioacutenControla el acceso al objeto original Es uacutetil si el objeto original tiene diferentes derechos de acceso

Referencia elegante (smart pointers)Realiza acciones adicionales cuando se acceden a los elementos referenciados

Proxy

Estructura

Proxy

Diagrama de Secuencia

Proxy

Participantes

ProxyMantiene un referencia al objeto realMantiene un mismo interfaz que el objeto

realMantiene el acceso al objeto realCodificacioacuten de peticiones Caching de

informacioacuten comprobar permisos

Proxy

Participantes

SubjectDefine el interfaz comuacuten a Proxy y

RealSubject

RealSubjectDefine el objeto real que representa el Proxy

Proxy

ConsecuenciasEl proxy introduce un nivel de indireccioacuten

cuando accede a un objeto La indireccioacuten

tiene muchos usos dependiendo del tipo de

proxyRemoto ocultar espacio de memoriaVirtual optimizaciones creando objetos bajo

demandaProteccioacuten tareas adicionales

Proxy

Relacionados

Si ofrece un interfaz distinto (proxy de seguridad)

AdapterTiene una implementacioacuten similar a

Decorator

PROXYBROKER

ProxyBroker

PropoacutesitoEstructurar sistemas distribuidos en los cuales surge la necesidad de una iteracioacuten remota entre componentes

MotivacioacutenDesacoplar la interaccioacuten de los usuarios en los clientes y servidores

ProxyBroker

Ejemplo

En el desarrollo de un ldquoMercado Webrdquo tenemos desarrollados dos agentes el comprador y el vendedor Pero estos estaacuten desarrollados en plataformas diferentes que no permite que tengan comunicacioacuten

ProxyBroker

Solucioacuten

Cuando un cliente necesita comprar un producto solicita a traveacutes de un Proxy al agente Broker los vendedores que tiene registrado El Broker se comunica por un Proxy con el servidor para llevar a cabo la peticioacuten

ProxyBroker

Solucioacuten

El agente Broker entrega la informacioacuten necesaria a el proxy-cliente y al proxy-servidor para que estos establezcan una comunicacioacuten efectiva que permita realizar la operacioacuten

ProxyBroker

Los broker permiten realizar conexiones entre clientes y servidores de diferentes plataformas

Le entregan la informacioacuten necesaria a los Proxy para que estos realicen las conexiones

ProxyBroker

Otro ejemplo

El broker sirve de intermediario entre el comprador y el vendedor

Permitiendo que logren conectarse y realizar la transaccioacuten

ProxyBroker

Los patrones ProxyBroker se pueden implementar de diferentes maneras esto depende de los requerimientos de los sistemas

Una Forma de implementarlos es permitiendo que los Proxy cliente y servidor se comuniquen entre ellos cuando es posible

ProxyBroker

ProxyBroker

Diagrama de Secuencia

ProxyBroker

Otra manera muy usada es no permitir que los Proxy cliente y servidor se comuniquen

Esta restriccioacuten podriacutea ser necesaria por poliacuteticas de seguridad de los servidores

Tambieacuten por mantener un orden y control de todo lo que pasa por los Proxys

ProxyBroker

ProxyBroker

ProxyBroker

Consecuencias

Aislamiento Entre la aplicacioacuten y los servidores

Sencillez permite que sea mas sencilla la construccioacuten de los sistemas

Flexibilidad Permite cambiar capas sin afectar las aplicaciones relacionadas con esta

ProxyBroker

EjemplosEste patroacuten es muy usado por sistemas con estaacutendar CORBA (Arquitectura comuacuten de intermediarios en peticiones a objetos)

Microsofts OLE 2x World Wide Web ATM-P

Page 17: Modelo-Vista-Controlador (MVC) Edgardo Bermúdez Pedro Martínez Víctor González.

PROXY

Proxy

Propoacutesito

Proporciona un sustituto de otro objeto con el fin de controlar su acceso

MotivacioacutenRazoacuten para controlar el acceso a un

objeto Diferir el coste de su creacioacuten e inicializacioacuten hasta que el objeto realmente se necesite

Proxy

Ejemplo

Editor de documentos que permite objetos graacuteficos abrir un documento deberiacutea ser raacutepido realmente no todos los objetos son visibles a la vez

SolucioacutenCrear los objetos ldquobajo demandardquo

Proxy

Solucioacuten

Usar un objeto que sustituya a la imagen real (PROXY)

El proxy actuacutea como si fuese la imagen y la instancia cuando es necesario

Proxy

Solucioacuten

La imagen estaacute guardada en archivos separados y el Proxy guarda el nombre del archivo como la referencia al objeto real El Proxy tambieacuten guarda el tamantildeo

Proxy

Proxy

El editor de documento accede a la imagen a traveacutes de la interfaz definida por la clase abstracta Graphic

ImageProxy es una clase para las imaacutegenes que es creada por demanda contiene el nombre del archivo como una referencia a la imagen en el disco

El nombre del archivo es pasado como argumento al constructor de ImageProxy

Proxy

ImageProxy tambieacuten guarda el tamantildeo de la imagen y una referencia a la instancia real Esta referencia no seraacute valida hasta que el Proxy instancie la imagen real

La operacioacuten Draw se asegura que la imagen esta instanciada antes de responder la solicitud

GetExtent reenviacutea la solicitud a la imagen solo si ya fue instanciada de lo contrario ImageProxy devuelve el tamantildeo que tiene guardado

Proxy

AplicacionesDonde exista la necesidad de referenciar un objeto de forma maacutes versaacutetil y sofisticada que un puntero

Proxy remoto (Ambassador Embajador)

Proporciona un representante local de un objeto en un

espacio de memoria diferenteProxy virtual

Para crear objetos de gran tamantildeo bajo demanda

Proxy

Proxy de proteccioacutenControla el acceso al objeto original Es uacutetil si el objeto original tiene diferentes derechos de acceso

Referencia elegante (smart pointers)Realiza acciones adicionales cuando se acceden a los elementos referenciados

Proxy

Estructura

Proxy

Diagrama de Secuencia

Proxy

Participantes

ProxyMantiene un referencia al objeto realMantiene un mismo interfaz que el objeto

realMantiene el acceso al objeto realCodificacioacuten de peticiones Caching de

informacioacuten comprobar permisos

Proxy

Participantes

SubjectDefine el interfaz comuacuten a Proxy y

RealSubject

RealSubjectDefine el objeto real que representa el Proxy

Proxy

ConsecuenciasEl proxy introduce un nivel de indireccioacuten

cuando accede a un objeto La indireccioacuten

tiene muchos usos dependiendo del tipo de

proxyRemoto ocultar espacio de memoriaVirtual optimizaciones creando objetos bajo

demandaProteccioacuten tareas adicionales

Proxy

Relacionados

Si ofrece un interfaz distinto (proxy de seguridad)

AdapterTiene una implementacioacuten similar a

Decorator

PROXYBROKER

ProxyBroker

PropoacutesitoEstructurar sistemas distribuidos en los cuales surge la necesidad de una iteracioacuten remota entre componentes

MotivacioacutenDesacoplar la interaccioacuten de los usuarios en los clientes y servidores

ProxyBroker

Ejemplo

En el desarrollo de un ldquoMercado Webrdquo tenemos desarrollados dos agentes el comprador y el vendedor Pero estos estaacuten desarrollados en plataformas diferentes que no permite que tengan comunicacioacuten

ProxyBroker

Solucioacuten

Cuando un cliente necesita comprar un producto solicita a traveacutes de un Proxy al agente Broker los vendedores que tiene registrado El Broker se comunica por un Proxy con el servidor para llevar a cabo la peticioacuten

ProxyBroker

Solucioacuten

El agente Broker entrega la informacioacuten necesaria a el proxy-cliente y al proxy-servidor para que estos establezcan una comunicacioacuten efectiva que permita realizar la operacioacuten

ProxyBroker

Los broker permiten realizar conexiones entre clientes y servidores de diferentes plataformas

Le entregan la informacioacuten necesaria a los Proxy para que estos realicen las conexiones

ProxyBroker

Otro ejemplo

El broker sirve de intermediario entre el comprador y el vendedor

Permitiendo que logren conectarse y realizar la transaccioacuten

ProxyBroker

Los patrones ProxyBroker se pueden implementar de diferentes maneras esto depende de los requerimientos de los sistemas

Una Forma de implementarlos es permitiendo que los Proxy cliente y servidor se comuniquen entre ellos cuando es posible

ProxyBroker

ProxyBroker

Diagrama de Secuencia

ProxyBroker

Otra manera muy usada es no permitir que los Proxy cliente y servidor se comuniquen

Esta restriccioacuten podriacutea ser necesaria por poliacuteticas de seguridad de los servidores

Tambieacuten por mantener un orden y control de todo lo que pasa por los Proxys

ProxyBroker

ProxyBroker

ProxyBroker

Consecuencias

Aislamiento Entre la aplicacioacuten y los servidores

Sencillez permite que sea mas sencilla la construccioacuten de los sistemas

Flexibilidad Permite cambiar capas sin afectar las aplicaciones relacionadas con esta

ProxyBroker

EjemplosEste patroacuten es muy usado por sistemas con estaacutendar CORBA (Arquitectura comuacuten de intermediarios en peticiones a objetos)

Microsofts OLE 2x World Wide Web ATM-P

Page 18: Modelo-Vista-Controlador (MVC) Edgardo Bermúdez Pedro Martínez Víctor González.

Proxy

Propoacutesito

Proporciona un sustituto de otro objeto con el fin de controlar su acceso

MotivacioacutenRazoacuten para controlar el acceso a un

objeto Diferir el coste de su creacioacuten e inicializacioacuten hasta que el objeto realmente se necesite

Proxy

Ejemplo

Editor de documentos que permite objetos graacuteficos abrir un documento deberiacutea ser raacutepido realmente no todos los objetos son visibles a la vez

SolucioacutenCrear los objetos ldquobajo demandardquo

Proxy

Solucioacuten

Usar un objeto que sustituya a la imagen real (PROXY)

El proxy actuacutea como si fuese la imagen y la instancia cuando es necesario

Proxy

Solucioacuten

La imagen estaacute guardada en archivos separados y el Proxy guarda el nombre del archivo como la referencia al objeto real El Proxy tambieacuten guarda el tamantildeo

Proxy

Proxy

El editor de documento accede a la imagen a traveacutes de la interfaz definida por la clase abstracta Graphic

ImageProxy es una clase para las imaacutegenes que es creada por demanda contiene el nombre del archivo como una referencia a la imagen en el disco

El nombre del archivo es pasado como argumento al constructor de ImageProxy

Proxy

ImageProxy tambieacuten guarda el tamantildeo de la imagen y una referencia a la instancia real Esta referencia no seraacute valida hasta que el Proxy instancie la imagen real

La operacioacuten Draw se asegura que la imagen esta instanciada antes de responder la solicitud

GetExtent reenviacutea la solicitud a la imagen solo si ya fue instanciada de lo contrario ImageProxy devuelve el tamantildeo que tiene guardado

Proxy

AplicacionesDonde exista la necesidad de referenciar un objeto de forma maacutes versaacutetil y sofisticada que un puntero

Proxy remoto (Ambassador Embajador)

Proporciona un representante local de un objeto en un

espacio de memoria diferenteProxy virtual

Para crear objetos de gran tamantildeo bajo demanda

Proxy

Proxy de proteccioacutenControla el acceso al objeto original Es uacutetil si el objeto original tiene diferentes derechos de acceso

Referencia elegante (smart pointers)Realiza acciones adicionales cuando se acceden a los elementos referenciados

Proxy

Estructura

Proxy

Diagrama de Secuencia

Proxy

Participantes

ProxyMantiene un referencia al objeto realMantiene un mismo interfaz que el objeto

realMantiene el acceso al objeto realCodificacioacuten de peticiones Caching de

informacioacuten comprobar permisos

Proxy

Participantes

SubjectDefine el interfaz comuacuten a Proxy y

RealSubject

RealSubjectDefine el objeto real que representa el Proxy

Proxy

ConsecuenciasEl proxy introduce un nivel de indireccioacuten

cuando accede a un objeto La indireccioacuten

tiene muchos usos dependiendo del tipo de

proxyRemoto ocultar espacio de memoriaVirtual optimizaciones creando objetos bajo

demandaProteccioacuten tareas adicionales

Proxy

Relacionados

Si ofrece un interfaz distinto (proxy de seguridad)

AdapterTiene una implementacioacuten similar a

Decorator

PROXYBROKER

ProxyBroker

PropoacutesitoEstructurar sistemas distribuidos en los cuales surge la necesidad de una iteracioacuten remota entre componentes

MotivacioacutenDesacoplar la interaccioacuten de los usuarios en los clientes y servidores

ProxyBroker

Ejemplo

En el desarrollo de un ldquoMercado Webrdquo tenemos desarrollados dos agentes el comprador y el vendedor Pero estos estaacuten desarrollados en plataformas diferentes que no permite que tengan comunicacioacuten

ProxyBroker

Solucioacuten

Cuando un cliente necesita comprar un producto solicita a traveacutes de un Proxy al agente Broker los vendedores que tiene registrado El Broker se comunica por un Proxy con el servidor para llevar a cabo la peticioacuten

ProxyBroker

Solucioacuten

El agente Broker entrega la informacioacuten necesaria a el proxy-cliente y al proxy-servidor para que estos establezcan una comunicacioacuten efectiva que permita realizar la operacioacuten

ProxyBroker

Los broker permiten realizar conexiones entre clientes y servidores de diferentes plataformas

Le entregan la informacioacuten necesaria a los Proxy para que estos realicen las conexiones

ProxyBroker

Otro ejemplo

El broker sirve de intermediario entre el comprador y el vendedor

Permitiendo que logren conectarse y realizar la transaccioacuten

ProxyBroker

Los patrones ProxyBroker se pueden implementar de diferentes maneras esto depende de los requerimientos de los sistemas

Una Forma de implementarlos es permitiendo que los Proxy cliente y servidor se comuniquen entre ellos cuando es posible

ProxyBroker

ProxyBroker

Diagrama de Secuencia

ProxyBroker

Otra manera muy usada es no permitir que los Proxy cliente y servidor se comuniquen

Esta restriccioacuten podriacutea ser necesaria por poliacuteticas de seguridad de los servidores

Tambieacuten por mantener un orden y control de todo lo que pasa por los Proxys

ProxyBroker

ProxyBroker

ProxyBroker

Consecuencias

Aislamiento Entre la aplicacioacuten y los servidores

Sencillez permite que sea mas sencilla la construccioacuten de los sistemas

Flexibilidad Permite cambiar capas sin afectar las aplicaciones relacionadas con esta

ProxyBroker

EjemplosEste patroacuten es muy usado por sistemas con estaacutendar CORBA (Arquitectura comuacuten de intermediarios en peticiones a objetos)

Microsofts OLE 2x World Wide Web ATM-P

Page 19: Modelo-Vista-Controlador (MVC) Edgardo Bermúdez Pedro Martínez Víctor González.

Proxy

Ejemplo

Editor de documentos que permite objetos graacuteficos abrir un documento deberiacutea ser raacutepido realmente no todos los objetos son visibles a la vez

SolucioacutenCrear los objetos ldquobajo demandardquo

Proxy

Solucioacuten

Usar un objeto que sustituya a la imagen real (PROXY)

El proxy actuacutea como si fuese la imagen y la instancia cuando es necesario

Proxy

Solucioacuten

La imagen estaacute guardada en archivos separados y el Proxy guarda el nombre del archivo como la referencia al objeto real El Proxy tambieacuten guarda el tamantildeo

Proxy

Proxy

El editor de documento accede a la imagen a traveacutes de la interfaz definida por la clase abstracta Graphic

ImageProxy es una clase para las imaacutegenes que es creada por demanda contiene el nombre del archivo como una referencia a la imagen en el disco

El nombre del archivo es pasado como argumento al constructor de ImageProxy

Proxy

ImageProxy tambieacuten guarda el tamantildeo de la imagen y una referencia a la instancia real Esta referencia no seraacute valida hasta que el Proxy instancie la imagen real

La operacioacuten Draw se asegura que la imagen esta instanciada antes de responder la solicitud

GetExtent reenviacutea la solicitud a la imagen solo si ya fue instanciada de lo contrario ImageProxy devuelve el tamantildeo que tiene guardado

Proxy

AplicacionesDonde exista la necesidad de referenciar un objeto de forma maacutes versaacutetil y sofisticada que un puntero

Proxy remoto (Ambassador Embajador)

Proporciona un representante local de un objeto en un

espacio de memoria diferenteProxy virtual

Para crear objetos de gran tamantildeo bajo demanda

Proxy

Proxy de proteccioacutenControla el acceso al objeto original Es uacutetil si el objeto original tiene diferentes derechos de acceso

Referencia elegante (smart pointers)Realiza acciones adicionales cuando se acceden a los elementos referenciados

Proxy

Estructura

Proxy

Diagrama de Secuencia

Proxy

Participantes

ProxyMantiene un referencia al objeto realMantiene un mismo interfaz que el objeto

realMantiene el acceso al objeto realCodificacioacuten de peticiones Caching de

informacioacuten comprobar permisos

Proxy

Participantes

SubjectDefine el interfaz comuacuten a Proxy y

RealSubject

RealSubjectDefine el objeto real que representa el Proxy

Proxy

ConsecuenciasEl proxy introduce un nivel de indireccioacuten

cuando accede a un objeto La indireccioacuten

tiene muchos usos dependiendo del tipo de

proxyRemoto ocultar espacio de memoriaVirtual optimizaciones creando objetos bajo

demandaProteccioacuten tareas adicionales

Proxy

Relacionados

Si ofrece un interfaz distinto (proxy de seguridad)

AdapterTiene una implementacioacuten similar a

Decorator

PROXYBROKER

ProxyBroker

PropoacutesitoEstructurar sistemas distribuidos en los cuales surge la necesidad de una iteracioacuten remota entre componentes

MotivacioacutenDesacoplar la interaccioacuten de los usuarios en los clientes y servidores

ProxyBroker

Ejemplo

En el desarrollo de un ldquoMercado Webrdquo tenemos desarrollados dos agentes el comprador y el vendedor Pero estos estaacuten desarrollados en plataformas diferentes que no permite que tengan comunicacioacuten

ProxyBroker

Solucioacuten

Cuando un cliente necesita comprar un producto solicita a traveacutes de un Proxy al agente Broker los vendedores que tiene registrado El Broker se comunica por un Proxy con el servidor para llevar a cabo la peticioacuten

ProxyBroker

Solucioacuten

El agente Broker entrega la informacioacuten necesaria a el proxy-cliente y al proxy-servidor para que estos establezcan una comunicacioacuten efectiva que permita realizar la operacioacuten

ProxyBroker

Los broker permiten realizar conexiones entre clientes y servidores de diferentes plataformas

Le entregan la informacioacuten necesaria a los Proxy para que estos realicen las conexiones

ProxyBroker

Otro ejemplo

El broker sirve de intermediario entre el comprador y el vendedor

Permitiendo que logren conectarse y realizar la transaccioacuten

ProxyBroker

Los patrones ProxyBroker se pueden implementar de diferentes maneras esto depende de los requerimientos de los sistemas

Una Forma de implementarlos es permitiendo que los Proxy cliente y servidor se comuniquen entre ellos cuando es posible

ProxyBroker

ProxyBroker

Diagrama de Secuencia

ProxyBroker

Otra manera muy usada es no permitir que los Proxy cliente y servidor se comuniquen

Esta restriccioacuten podriacutea ser necesaria por poliacuteticas de seguridad de los servidores

Tambieacuten por mantener un orden y control de todo lo que pasa por los Proxys

ProxyBroker

ProxyBroker

ProxyBroker

Consecuencias

Aislamiento Entre la aplicacioacuten y los servidores

Sencillez permite que sea mas sencilla la construccioacuten de los sistemas

Flexibilidad Permite cambiar capas sin afectar las aplicaciones relacionadas con esta

ProxyBroker

EjemplosEste patroacuten es muy usado por sistemas con estaacutendar CORBA (Arquitectura comuacuten de intermediarios en peticiones a objetos)

Microsofts OLE 2x World Wide Web ATM-P

Page 20: Modelo-Vista-Controlador (MVC) Edgardo Bermúdez Pedro Martínez Víctor González.

Proxy

Solucioacuten

Usar un objeto que sustituya a la imagen real (PROXY)

El proxy actuacutea como si fuese la imagen y la instancia cuando es necesario

Proxy

Solucioacuten

La imagen estaacute guardada en archivos separados y el Proxy guarda el nombre del archivo como la referencia al objeto real El Proxy tambieacuten guarda el tamantildeo

Proxy

Proxy

El editor de documento accede a la imagen a traveacutes de la interfaz definida por la clase abstracta Graphic

ImageProxy es una clase para las imaacutegenes que es creada por demanda contiene el nombre del archivo como una referencia a la imagen en el disco

El nombre del archivo es pasado como argumento al constructor de ImageProxy

Proxy

ImageProxy tambieacuten guarda el tamantildeo de la imagen y una referencia a la instancia real Esta referencia no seraacute valida hasta que el Proxy instancie la imagen real

La operacioacuten Draw se asegura que la imagen esta instanciada antes de responder la solicitud

GetExtent reenviacutea la solicitud a la imagen solo si ya fue instanciada de lo contrario ImageProxy devuelve el tamantildeo que tiene guardado

Proxy

AplicacionesDonde exista la necesidad de referenciar un objeto de forma maacutes versaacutetil y sofisticada que un puntero

Proxy remoto (Ambassador Embajador)

Proporciona un representante local de un objeto en un

espacio de memoria diferenteProxy virtual

Para crear objetos de gran tamantildeo bajo demanda

Proxy

Proxy de proteccioacutenControla el acceso al objeto original Es uacutetil si el objeto original tiene diferentes derechos de acceso

Referencia elegante (smart pointers)Realiza acciones adicionales cuando se acceden a los elementos referenciados

Proxy

Estructura

Proxy

Diagrama de Secuencia

Proxy

Participantes

ProxyMantiene un referencia al objeto realMantiene un mismo interfaz que el objeto

realMantiene el acceso al objeto realCodificacioacuten de peticiones Caching de

informacioacuten comprobar permisos

Proxy

Participantes

SubjectDefine el interfaz comuacuten a Proxy y

RealSubject

RealSubjectDefine el objeto real que representa el Proxy

Proxy

ConsecuenciasEl proxy introduce un nivel de indireccioacuten

cuando accede a un objeto La indireccioacuten

tiene muchos usos dependiendo del tipo de

proxyRemoto ocultar espacio de memoriaVirtual optimizaciones creando objetos bajo

demandaProteccioacuten tareas adicionales

Proxy

Relacionados

Si ofrece un interfaz distinto (proxy de seguridad)

AdapterTiene una implementacioacuten similar a

Decorator

PROXYBROKER

ProxyBroker

PropoacutesitoEstructurar sistemas distribuidos en los cuales surge la necesidad de una iteracioacuten remota entre componentes

MotivacioacutenDesacoplar la interaccioacuten de los usuarios en los clientes y servidores

ProxyBroker

Ejemplo

En el desarrollo de un ldquoMercado Webrdquo tenemos desarrollados dos agentes el comprador y el vendedor Pero estos estaacuten desarrollados en plataformas diferentes que no permite que tengan comunicacioacuten

ProxyBroker

Solucioacuten

Cuando un cliente necesita comprar un producto solicita a traveacutes de un Proxy al agente Broker los vendedores que tiene registrado El Broker se comunica por un Proxy con el servidor para llevar a cabo la peticioacuten

ProxyBroker

Solucioacuten

El agente Broker entrega la informacioacuten necesaria a el proxy-cliente y al proxy-servidor para que estos establezcan una comunicacioacuten efectiva que permita realizar la operacioacuten

ProxyBroker

Los broker permiten realizar conexiones entre clientes y servidores de diferentes plataformas

Le entregan la informacioacuten necesaria a los Proxy para que estos realicen las conexiones

ProxyBroker

Otro ejemplo

El broker sirve de intermediario entre el comprador y el vendedor

Permitiendo que logren conectarse y realizar la transaccioacuten

ProxyBroker

Los patrones ProxyBroker se pueden implementar de diferentes maneras esto depende de los requerimientos de los sistemas

Una Forma de implementarlos es permitiendo que los Proxy cliente y servidor se comuniquen entre ellos cuando es posible

ProxyBroker

ProxyBroker

Diagrama de Secuencia

ProxyBroker

Otra manera muy usada es no permitir que los Proxy cliente y servidor se comuniquen

Esta restriccioacuten podriacutea ser necesaria por poliacuteticas de seguridad de los servidores

Tambieacuten por mantener un orden y control de todo lo que pasa por los Proxys

ProxyBroker

ProxyBroker

ProxyBroker

Consecuencias

Aislamiento Entre la aplicacioacuten y los servidores

Sencillez permite que sea mas sencilla la construccioacuten de los sistemas

Flexibilidad Permite cambiar capas sin afectar las aplicaciones relacionadas con esta

ProxyBroker

EjemplosEste patroacuten es muy usado por sistemas con estaacutendar CORBA (Arquitectura comuacuten de intermediarios en peticiones a objetos)

Microsofts OLE 2x World Wide Web ATM-P

Page 21: Modelo-Vista-Controlador (MVC) Edgardo Bermúdez Pedro Martínez Víctor González.

Proxy

Solucioacuten

La imagen estaacute guardada en archivos separados y el Proxy guarda el nombre del archivo como la referencia al objeto real El Proxy tambieacuten guarda el tamantildeo

Proxy

Proxy

El editor de documento accede a la imagen a traveacutes de la interfaz definida por la clase abstracta Graphic

ImageProxy es una clase para las imaacutegenes que es creada por demanda contiene el nombre del archivo como una referencia a la imagen en el disco

El nombre del archivo es pasado como argumento al constructor de ImageProxy

Proxy

ImageProxy tambieacuten guarda el tamantildeo de la imagen y una referencia a la instancia real Esta referencia no seraacute valida hasta que el Proxy instancie la imagen real

La operacioacuten Draw se asegura que la imagen esta instanciada antes de responder la solicitud

GetExtent reenviacutea la solicitud a la imagen solo si ya fue instanciada de lo contrario ImageProxy devuelve el tamantildeo que tiene guardado

Proxy

AplicacionesDonde exista la necesidad de referenciar un objeto de forma maacutes versaacutetil y sofisticada que un puntero

Proxy remoto (Ambassador Embajador)

Proporciona un representante local de un objeto en un

espacio de memoria diferenteProxy virtual

Para crear objetos de gran tamantildeo bajo demanda

Proxy

Proxy de proteccioacutenControla el acceso al objeto original Es uacutetil si el objeto original tiene diferentes derechos de acceso

Referencia elegante (smart pointers)Realiza acciones adicionales cuando se acceden a los elementos referenciados

Proxy

Estructura

Proxy

Diagrama de Secuencia

Proxy

Participantes

ProxyMantiene un referencia al objeto realMantiene un mismo interfaz que el objeto

realMantiene el acceso al objeto realCodificacioacuten de peticiones Caching de

informacioacuten comprobar permisos

Proxy

Participantes

SubjectDefine el interfaz comuacuten a Proxy y

RealSubject

RealSubjectDefine el objeto real que representa el Proxy

Proxy

ConsecuenciasEl proxy introduce un nivel de indireccioacuten

cuando accede a un objeto La indireccioacuten

tiene muchos usos dependiendo del tipo de

proxyRemoto ocultar espacio de memoriaVirtual optimizaciones creando objetos bajo

demandaProteccioacuten tareas adicionales

Proxy

Relacionados

Si ofrece un interfaz distinto (proxy de seguridad)

AdapterTiene una implementacioacuten similar a

Decorator

PROXYBROKER

ProxyBroker

PropoacutesitoEstructurar sistemas distribuidos en los cuales surge la necesidad de una iteracioacuten remota entre componentes

MotivacioacutenDesacoplar la interaccioacuten de los usuarios en los clientes y servidores

ProxyBroker

Ejemplo

En el desarrollo de un ldquoMercado Webrdquo tenemos desarrollados dos agentes el comprador y el vendedor Pero estos estaacuten desarrollados en plataformas diferentes que no permite que tengan comunicacioacuten

ProxyBroker

Solucioacuten

Cuando un cliente necesita comprar un producto solicita a traveacutes de un Proxy al agente Broker los vendedores que tiene registrado El Broker se comunica por un Proxy con el servidor para llevar a cabo la peticioacuten

ProxyBroker

Solucioacuten

El agente Broker entrega la informacioacuten necesaria a el proxy-cliente y al proxy-servidor para que estos establezcan una comunicacioacuten efectiva que permita realizar la operacioacuten

ProxyBroker

Los broker permiten realizar conexiones entre clientes y servidores de diferentes plataformas

Le entregan la informacioacuten necesaria a los Proxy para que estos realicen las conexiones

ProxyBroker

Otro ejemplo

El broker sirve de intermediario entre el comprador y el vendedor

Permitiendo que logren conectarse y realizar la transaccioacuten

ProxyBroker

Los patrones ProxyBroker se pueden implementar de diferentes maneras esto depende de los requerimientos de los sistemas

Una Forma de implementarlos es permitiendo que los Proxy cliente y servidor se comuniquen entre ellos cuando es posible

ProxyBroker

ProxyBroker

Diagrama de Secuencia

ProxyBroker

Otra manera muy usada es no permitir que los Proxy cliente y servidor se comuniquen

Esta restriccioacuten podriacutea ser necesaria por poliacuteticas de seguridad de los servidores

Tambieacuten por mantener un orden y control de todo lo que pasa por los Proxys

ProxyBroker

ProxyBroker

ProxyBroker

Consecuencias

Aislamiento Entre la aplicacioacuten y los servidores

Sencillez permite que sea mas sencilla la construccioacuten de los sistemas

Flexibilidad Permite cambiar capas sin afectar las aplicaciones relacionadas con esta

ProxyBroker

EjemplosEste patroacuten es muy usado por sistemas con estaacutendar CORBA (Arquitectura comuacuten de intermediarios en peticiones a objetos)

Microsofts OLE 2x World Wide Web ATM-P

Page 22: Modelo-Vista-Controlador (MVC) Edgardo Bermúdez Pedro Martínez Víctor González.

Proxy

Proxy

El editor de documento accede a la imagen a traveacutes de la interfaz definida por la clase abstracta Graphic

ImageProxy es una clase para las imaacutegenes que es creada por demanda contiene el nombre del archivo como una referencia a la imagen en el disco

El nombre del archivo es pasado como argumento al constructor de ImageProxy

Proxy

ImageProxy tambieacuten guarda el tamantildeo de la imagen y una referencia a la instancia real Esta referencia no seraacute valida hasta que el Proxy instancie la imagen real

La operacioacuten Draw se asegura que la imagen esta instanciada antes de responder la solicitud

GetExtent reenviacutea la solicitud a la imagen solo si ya fue instanciada de lo contrario ImageProxy devuelve el tamantildeo que tiene guardado

Proxy

AplicacionesDonde exista la necesidad de referenciar un objeto de forma maacutes versaacutetil y sofisticada que un puntero

Proxy remoto (Ambassador Embajador)

Proporciona un representante local de un objeto en un

espacio de memoria diferenteProxy virtual

Para crear objetos de gran tamantildeo bajo demanda

Proxy

Proxy de proteccioacutenControla el acceso al objeto original Es uacutetil si el objeto original tiene diferentes derechos de acceso

Referencia elegante (smart pointers)Realiza acciones adicionales cuando se acceden a los elementos referenciados

Proxy

Estructura

Proxy

Diagrama de Secuencia

Proxy

Participantes

ProxyMantiene un referencia al objeto realMantiene un mismo interfaz que el objeto

realMantiene el acceso al objeto realCodificacioacuten de peticiones Caching de

informacioacuten comprobar permisos

Proxy

Participantes

SubjectDefine el interfaz comuacuten a Proxy y

RealSubject

RealSubjectDefine el objeto real que representa el Proxy

Proxy

ConsecuenciasEl proxy introduce un nivel de indireccioacuten

cuando accede a un objeto La indireccioacuten

tiene muchos usos dependiendo del tipo de

proxyRemoto ocultar espacio de memoriaVirtual optimizaciones creando objetos bajo

demandaProteccioacuten tareas adicionales

Proxy

Relacionados

Si ofrece un interfaz distinto (proxy de seguridad)

AdapterTiene una implementacioacuten similar a

Decorator

PROXYBROKER

ProxyBroker

PropoacutesitoEstructurar sistemas distribuidos en los cuales surge la necesidad de una iteracioacuten remota entre componentes

MotivacioacutenDesacoplar la interaccioacuten de los usuarios en los clientes y servidores

ProxyBroker

Ejemplo

En el desarrollo de un ldquoMercado Webrdquo tenemos desarrollados dos agentes el comprador y el vendedor Pero estos estaacuten desarrollados en plataformas diferentes que no permite que tengan comunicacioacuten

ProxyBroker

Solucioacuten

Cuando un cliente necesita comprar un producto solicita a traveacutes de un Proxy al agente Broker los vendedores que tiene registrado El Broker se comunica por un Proxy con el servidor para llevar a cabo la peticioacuten

ProxyBroker

Solucioacuten

El agente Broker entrega la informacioacuten necesaria a el proxy-cliente y al proxy-servidor para que estos establezcan una comunicacioacuten efectiva que permita realizar la operacioacuten

ProxyBroker

Los broker permiten realizar conexiones entre clientes y servidores de diferentes plataformas

Le entregan la informacioacuten necesaria a los Proxy para que estos realicen las conexiones

ProxyBroker

Otro ejemplo

El broker sirve de intermediario entre el comprador y el vendedor

Permitiendo que logren conectarse y realizar la transaccioacuten

ProxyBroker

Los patrones ProxyBroker se pueden implementar de diferentes maneras esto depende de los requerimientos de los sistemas

Una Forma de implementarlos es permitiendo que los Proxy cliente y servidor se comuniquen entre ellos cuando es posible

ProxyBroker

ProxyBroker

Diagrama de Secuencia

ProxyBroker

Otra manera muy usada es no permitir que los Proxy cliente y servidor se comuniquen

Esta restriccioacuten podriacutea ser necesaria por poliacuteticas de seguridad de los servidores

Tambieacuten por mantener un orden y control de todo lo que pasa por los Proxys

ProxyBroker

ProxyBroker

ProxyBroker

Consecuencias

Aislamiento Entre la aplicacioacuten y los servidores

Sencillez permite que sea mas sencilla la construccioacuten de los sistemas

Flexibilidad Permite cambiar capas sin afectar las aplicaciones relacionadas con esta

ProxyBroker

EjemplosEste patroacuten es muy usado por sistemas con estaacutendar CORBA (Arquitectura comuacuten de intermediarios en peticiones a objetos)

Microsofts OLE 2x World Wide Web ATM-P

Page 23: Modelo-Vista-Controlador (MVC) Edgardo Bermúdez Pedro Martínez Víctor González.

Proxy

El editor de documento accede a la imagen a traveacutes de la interfaz definida por la clase abstracta Graphic

ImageProxy es una clase para las imaacutegenes que es creada por demanda contiene el nombre del archivo como una referencia a la imagen en el disco

El nombre del archivo es pasado como argumento al constructor de ImageProxy

Proxy

ImageProxy tambieacuten guarda el tamantildeo de la imagen y una referencia a la instancia real Esta referencia no seraacute valida hasta que el Proxy instancie la imagen real

La operacioacuten Draw se asegura que la imagen esta instanciada antes de responder la solicitud

GetExtent reenviacutea la solicitud a la imagen solo si ya fue instanciada de lo contrario ImageProxy devuelve el tamantildeo que tiene guardado

Proxy

AplicacionesDonde exista la necesidad de referenciar un objeto de forma maacutes versaacutetil y sofisticada que un puntero

Proxy remoto (Ambassador Embajador)

Proporciona un representante local de un objeto en un

espacio de memoria diferenteProxy virtual

Para crear objetos de gran tamantildeo bajo demanda

Proxy

Proxy de proteccioacutenControla el acceso al objeto original Es uacutetil si el objeto original tiene diferentes derechos de acceso

Referencia elegante (smart pointers)Realiza acciones adicionales cuando se acceden a los elementos referenciados

Proxy

Estructura

Proxy

Diagrama de Secuencia

Proxy

Participantes

ProxyMantiene un referencia al objeto realMantiene un mismo interfaz que el objeto

realMantiene el acceso al objeto realCodificacioacuten de peticiones Caching de

informacioacuten comprobar permisos

Proxy

Participantes

SubjectDefine el interfaz comuacuten a Proxy y

RealSubject

RealSubjectDefine el objeto real que representa el Proxy

Proxy

ConsecuenciasEl proxy introduce un nivel de indireccioacuten

cuando accede a un objeto La indireccioacuten

tiene muchos usos dependiendo del tipo de

proxyRemoto ocultar espacio de memoriaVirtual optimizaciones creando objetos bajo

demandaProteccioacuten tareas adicionales

Proxy

Relacionados

Si ofrece un interfaz distinto (proxy de seguridad)

AdapterTiene una implementacioacuten similar a

Decorator

PROXYBROKER

ProxyBroker

PropoacutesitoEstructurar sistemas distribuidos en los cuales surge la necesidad de una iteracioacuten remota entre componentes

MotivacioacutenDesacoplar la interaccioacuten de los usuarios en los clientes y servidores

ProxyBroker

Ejemplo

En el desarrollo de un ldquoMercado Webrdquo tenemos desarrollados dos agentes el comprador y el vendedor Pero estos estaacuten desarrollados en plataformas diferentes que no permite que tengan comunicacioacuten

ProxyBroker

Solucioacuten

Cuando un cliente necesita comprar un producto solicita a traveacutes de un Proxy al agente Broker los vendedores que tiene registrado El Broker se comunica por un Proxy con el servidor para llevar a cabo la peticioacuten

ProxyBroker

Solucioacuten

El agente Broker entrega la informacioacuten necesaria a el proxy-cliente y al proxy-servidor para que estos establezcan una comunicacioacuten efectiva que permita realizar la operacioacuten

ProxyBroker

Los broker permiten realizar conexiones entre clientes y servidores de diferentes plataformas

Le entregan la informacioacuten necesaria a los Proxy para que estos realicen las conexiones

ProxyBroker

Otro ejemplo

El broker sirve de intermediario entre el comprador y el vendedor

Permitiendo que logren conectarse y realizar la transaccioacuten

ProxyBroker

Los patrones ProxyBroker se pueden implementar de diferentes maneras esto depende de los requerimientos de los sistemas

Una Forma de implementarlos es permitiendo que los Proxy cliente y servidor se comuniquen entre ellos cuando es posible

ProxyBroker

ProxyBroker

Diagrama de Secuencia

ProxyBroker

Otra manera muy usada es no permitir que los Proxy cliente y servidor se comuniquen

Esta restriccioacuten podriacutea ser necesaria por poliacuteticas de seguridad de los servidores

Tambieacuten por mantener un orden y control de todo lo que pasa por los Proxys

ProxyBroker

ProxyBroker

ProxyBroker

Consecuencias

Aislamiento Entre la aplicacioacuten y los servidores

Sencillez permite que sea mas sencilla la construccioacuten de los sistemas

Flexibilidad Permite cambiar capas sin afectar las aplicaciones relacionadas con esta

ProxyBroker

EjemplosEste patroacuten es muy usado por sistemas con estaacutendar CORBA (Arquitectura comuacuten de intermediarios en peticiones a objetos)

Microsofts OLE 2x World Wide Web ATM-P

Page 24: Modelo-Vista-Controlador (MVC) Edgardo Bermúdez Pedro Martínez Víctor González.

Proxy

ImageProxy tambieacuten guarda el tamantildeo de la imagen y una referencia a la instancia real Esta referencia no seraacute valida hasta que el Proxy instancie la imagen real

La operacioacuten Draw se asegura que la imagen esta instanciada antes de responder la solicitud

GetExtent reenviacutea la solicitud a la imagen solo si ya fue instanciada de lo contrario ImageProxy devuelve el tamantildeo que tiene guardado

Proxy

AplicacionesDonde exista la necesidad de referenciar un objeto de forma maacutes versaacutetil y sofisticada que un puntero

Proxy remoto (Ambassador Embajador)

Proporciona un representante local de un objeto en un

espacio de memoria diferenteProxy virtual

Para crear objetos de gran tamantildeo bajo demanda

Proxy

Proxy de proteccioacutenControla el acceso al objeto original Es uacutetil si el objeto original tiene diferentes derechos de acceso

Referencia elegante (smart pointers)Realiza acciones adicionales cuando se acceden a los elementos referenciados

Proxy

Estructura

Proxy

Diagrama de Secuencia

Proxy

Participantes

ProxyMantiene un referencia al objeto realMantiene un mismo interfaz que el objeto

realMantiene el acceso al objeto realCodificacioacuten de peticiones Caching de

informacioacuten comprobar permisos

Proxy

Participantes

SubjectDefine el interfaz comuacuten a Proxy y

RealSubject

RealSubjectDefine el objeto real que representa el Proxy

Proxy

ConsecuenciasEl proxy introduce un nivel de indireccioacuten

cuando accede a un objeto La indireccioacuten

tiene muchos usos dependiendo del tipo de

proxyRemoto ocultar espacio de memoriaVirtual optimizaciones creando objetos bajo

demandaProteccioacuten tareas adicionales

Proxy

Relacionados

Si ofrece un interfaz distinto (proxy de seguridad)

AdapterTiene una implementacioacuten similar a

Decorator

PROXYBROKER

ProxyBroker

PropoacutesitoEstructurar sistemas distribuidos en los cuales surge la necesidad de una iteracioacuten remota entre componentes

MotivacioacutenDesacoplar la interaccioacuten de los usuarios en los clientes y servidores

ProxyBroker

Ejemplo

En el desarrollo de un ldquoMercado Webrdquo tenemos desarrollados dos agentes el comprador y el vendedor Pero estos estaacuten desarrollados en plataformas diferentes que no permite que tengan comunicacioacuten

ProxyBroker

Solucioacuten

Cuando un cliente necesita comprar un producto solicita a traveacutes de un Proxy al agente Broker los vendedores que tiene registrado El Broker se comunica por un Proxy con el servidor para llevar a cabo la peticioacuten

ProxyBroker

Solucioacuten

El agente Broker entrega la informacioacuten necesaria a el proxy-cliente y al proxy-servidor para que estos establezcan una comunicacioacuten efectiva que permita realizar la operacioacuten

ProxyBroker

Los broker permiten realizar conexiones entre clientes y servidores de diferentes plataformas

Le entregan la informacioacuten necesaria a los Proxy para que estos realicen las conexiones

ProxyBroker

Otro ejemplo

El broker sirve de intermediario entre el comprador y el vendedor

Permitiendo que logren conectarse y realizar la transaccioacuten

ProxyBroker

Los patrones ProxyBroker se pueden implementar de diferentes maneras esto depende de los requerimientos de los sistemas

Una Forma de implementarlos es permitiendo que los Proxy cliente y servidor se comuniquen entre ellos cuando es posible

ProxyBroker

ProxyBroker

Diagrama de Secuencia

ProxyBroker

Otra manera muy usada es no permitir que los Proxy cliente y servidor se comuniquen

Esta restriccioacuten podriacutea ser necesaria por poliacuteticas de seguridad de los servidores

Tambieacuten por mantener un orden y control de todo lo que pasa por los Proxys

ProxyBroker

ProxyBroker

ProxyBroker

Consecuencias

Aislamiento Entre la aplicacioacuten y los servidores

Sencillez permite que sea mas sencilla la construccioacuten de los sistemas

Flexibilidad Permite cambiar capas sin afectar las aplicaciones relacionadas con esta

ProxyBroker

EjemplosEste patroacuten es muy usado por sistemas con estaacutendar CORBA (Arquitectura comuacuten de intermediarios en peticiones a objetos)

Microsofts OLE 2x World Wide Web ATM-P

Page 25: Modelo-Vista-Controlador (MVC) Edgardo Bermúdez Pedro Martínez Víctor González.

Proxy

AplicacionesDonde exista la necesidad de referenciar un objeto de forma maacutes versaacutetil y sofisticada que un puntero

Proxy remoto (Ambassador Embajador)

Proporciona un representante local de un objeto en un

espacio de memoria diferenteProxy virtual

Para crear objetos de gran tamantildeo bajo demanda

Proxy

Proxy de proteccioacutenControla el acceso al objeto original Es uacutetil si el objeto original tiene diferentes derechos de acceso

Referencia elegante (smart pointers)Realiza acciones adicionales cuando se acceden a los elementos referenciados

Proxy

Estructura

Proxy

Diagrama de Secuencia

Proxy

Participantes

ProxyMantiene un referencia al objeto realMantiene un mismo interfaz que el objeto

realMantiene el acceso al objeto realCodificacioacuten de peticiones Caching de

informacioacuten comprobar permisos

Proxy

Participantes

SubjectDefine el interfaz comuacuten a Proxy y

RealSubject

RealSubjectDefine el objeto real que representa el Proxy

Proxy

ConsecuenciasEl proxy introduce un nivel de indireccioacuten

cuando accede a un objeto La indireccioacuten

tiene muchos usos dependiendo del tipo de

proxyRemoto ocultar espacio de memoriaVirtual optimizaciones creando objetos bajo

demandaProteccioacuten tareas adicionales

Proxy

Relacionados

Si ofrece un interfaz distinto (proxy de seguridad)

AdapterTiene una implementacioacuten similar a

Decorator

PROXYBROKER

ProxyBroker

PropoacutesitoEstructurar sistemas distribuidos en los cuales surge la necesidad de una iteracioacuten remota entre componentes

MotivacioacutenDesacoplar la interaccioacuten de los usuarios en los clientes y servidores

ProxyBroker

Ejemplo

En el desarrollo de un ldquoMercado Webrdquo tenemos desarrollados dos agentes el comprador y el vendedor Pero estos estaacuten desarrollados en plataformas diferentes que no permite que tengan comunicacioacuten

ProxyBroker

Solucioacuten

Cuando un cliente necesita comprar un producto solicita a traveacutes de un Proxy al agente Broker los vendedores que tiene registrado El Broker se comunica por un Proxy con el servidor para llevar a cabo la peticioacuten

ProxyBroker

Solucioacuten

El agente Broker entrega la informacioacuten necesaria a el proxy-cliente y al proxy-servidor para que estos establezcan una comunicacioacuten efectiva que permita realizar la operacioacuten

ProxyBroker

Los broker permiten realizar conexiones entre clientes y servidores de diferentes plataformas

Le entregan la informacioacuten necesaria a los Proxy para que estos realicen las conexiones

ProxyBroker

Otro ejemplo

El broker sirve de intermediario entre el comprador y el vendedor

Permitiendo que logren conectarse y realizar la transaccioacuten

ProxyBroker

Los patrones ProxyBroker se pueden implementar de diferentes maneras esto depende de los requerimientos de los sistemas

Una Forma de implementarlos es permitiendo que los Proxy cliente y servidor se comuniquen entre ellos cuando es posible

ProxyBroker

ProxyBroker

Diagrama de Secuencia

ProxyBroker

Otra manera muy usada es no permitir que los Proxy cliente y servidor se comuniquen

Esta restriccioacuten podriacutea ser necesaria por poliacuteticas de seguridad de los servidores

Tambieacuten por mantener un orden y control de todo lo que pasa por los Proxys

ProxyBroker

ProxyBroker

ProxyBroker

Consecuencias

Aislamiento Entre la aplicacioacuten y los servidores

Sencillez permite que sea mas sencilla la construccioacuten de los sistemas

Flexibilidad Permite cambiar capas sin afectar las aplicaciones relacionadas con esta

ProxyBroker

EjemplosEste patroacuten es muy usado por sistemas con estaacutendar CORBA (Arquitectura comuacuten de intermediarios en peticiones a objetos)

Microsofts OLE 2x World Wide Web ATM-P

Page 26: Modelo-Vista-Controlador (MVC) Edgardo Bermúdez Pedro Martínez Víctor González.

Proxy

Proxy de proteccioacutenControla el acceso al objeto original Es uacutetil si el objeto original tiene diferentes derechos de acceso

Referencia elegante (smart pointers)Realiza acciones adicionales cuando se acceden a los elementos referenciados

Proxy

Estructura

Proxy

Diagrama de Secuencia

Proxy

Participantes

ProxyMantiene un referencia al objeto realMantiene un mismo interfaz que el objeto

realMantiene el acceso al objeto realCodificacioacuten de peticiones Caching de

informacioacuten comprobar permisos

Proxy

Participantes

SubjectDefine el interfaz comuacuten a Proxy y

RealSubject

RealSubjectDefine el objeto real que representa el Proxy

Proxy

ConsecuenciasEl proxy introduce un nivel de indireccioacuten

cuando accede a un objeto La indireccioacuten

tiene muchos usos dependiendo del tipo de

proxyRemoto ocultar espacio de memoriaVirtual optimizaciones creando objetos bajo

demandaProteccioacuten tareas adicionales

Proxy

Relacionados

Si ofrece un interfaz distinto (proxy de seguridad)

AdapterTiene una implementacioacuten similar a

Decorator

PROXYBROKER

ProxyBroker

PropoacutesitoEstructurar sistemas distribuidos en los cuales surge la necesidad de una iteracioacuten remota entre componentes

MotivacioacutenDesacoplar la interaccioacuten de los usuarios en los clientes y servidores

ProxyBroker

Ejemplo

En el desarrollo de un ldquoMercado Webrdquo tenemos desarrollados dos agentes el comprador y el vendedor Pero estos estaacuten desarrollados en plataformas diferentes que no permite que tengan comunicacioacuten

ProxyBroker

Solucioacuten

Cuando un cliente necesita comprar un producto solicita a traveacutes de un Proxy al agente Broker los vendedores que tiene registrado El Broker se comunica por un Proxy con el servidor para llevar a cabo la peticioacuten

ProxyBroker

Solucioacuten

El agente Broker entrega la informacioacuten necesaria a el proxy-cliente y al proxy-servidor para que estos establezcan una comunicacioacuten efectiva que permita realizar la operacioacuten

ProxyBroker

Los broker permiten realizar conexiones entre clientes y servidores de diferentes plataformas

Le entregan la informacioacuten necesaria a los Proxy para que estos realicen las conexiones

ProxyBroker

Otro ejemplo

El broker sirve de intermediario entre el comprador y el vendedor

Permitiendo que logren conectarse y realizar la transaccioacuten

ProxyBroker

Los patrones ProxyBroker se pueden implementar de diferentes maneras esto depende de los requerimientos de los sistemas

Una Forma de implementarlos es permitiendo que los Proxy cliente y servidor se comuniquen entre ellos cuando es posible

ProxyBroker

ProxyBroker

Diagrama de Secuencia

ProxyBroker

Otra manera muy usada es no permitir que los Proxy cliente y servidor se comuniquen

Esta restriccioacuten podriacutea ser necesaria por poliacuteticas de seguridad de los servidores

Tambieacuten por mantener un orden y control de todo lo que pasa por los Proxys

ProxyBroker

ProxyBroker

ProxyBroker

Consecuencias

Aislamiento Entre la aplicacioacuten y los servidores

Sencillez permite que sea mas sencilla la construccioacuten de los sistemas

Flexibilidad Permite cambiar capas sin afectar las aplicaciones relacionadas con esta

ProxyBroker

EjemplosEste patroacuten es muy usado por sistemas con estaacutendar CORBA (Arquitectura comuacuten de intermediarios en peticiones a objetos)

Microsofts OLE 2x World Wide Web ATM-P

Page 27: Modelo-Vista-Controlador (MVC) Edgardo Bermúdez Pedro Martínez Víctor González.

Proxy

Estructura

Proxy

Diagrama de Secuencia

Proxy

Participantes

ProxyMantiene un referencia al objeto realMantiene un mismo interfaz que el objeto

realMantiene el acceso al objeto realCodificacioacuten de peticiones Caching de

informacioacuten comprobar permisos

Proxy

Participantes

SubjectDefine el interfaz comuacuten a Proxy y

RealSubject

RealSubjectDefine el objeto real que representa el Proxy

Proxy

ConsecuenciasEl proxy introduce un nivel de indireccioacuten

cuando accede a un objeto La indireccioacuten

tiene muchos usos dependiendo del tipo de

proxyRemoto ocultar espacio de memoriaVirtual optimizaciones creando objetos bajo

demandaProteccioacuten tareas adicionales

Proxy

Relacionados

Si ofrece un interfaz distinto (proxy de seguridad)

AdapterTiene una implementacioacuten similar a

Decorator

PROXYBROKER

ProxyBroker

PropoacutesitoEstructurar sistemas distribuidos en los cuales surge la necesidad de una iteracioacuten remota entre componentes

MotivacioacutenDesacoplar la interaccioacuten de los usuarios en los clientes y servidores

ProxyBroker

Ejemplo

En el desarrollo de un ldquoMercado Webrdquo tenemos desarrollados dos agentes el comprador y el vendedor Pero estos estaacuten desarrollados en plataformas diferentes que no permite que tengan comunicacioacuten

ProxyBroker

Solucioacuten

Cuando un cliente necesita comprar un producto solicita a traveacutes de un Proxy al agente Broker los vendedores que tiene registrado El Broker se comunica por un Proxy con el servidor para llevar a cabo la peticioacuten

ProxyBroker

Solucioacuten

El agente Broker entrega la informacioacuten necesaria a el proxy-cliente y al proxy-servidor para que estos establezcan una comunicacioacuten efectiva que permita realizar la operacioacuten

ProxyBroker

Los broker permiten realizar conexiones entre clientes y servidores de diferentes plataformas

Le entregan la informacioacuten necesaria a los Proxy para que estos realicen las conexiones

ProxyBroker

Otro ejemplo

El broker sirve de intermediario entre el comprador y el vendedor

Permitiendo que logren conectarse y realizar la transaccioacuten

ProxyBroker

Los patrones ProxyBroker se pueden implementar de diferentes maneras esto depende de los requerimientos de los sistemas

Una Forma de implementarlos es permitiendo que los Proxy cliente y servidor se comuniquen entre ellos cuando es posible

ProxyBroker

ProxyBroker

Diagrama de Secuencia

ProxyBroker

Otra manera muy usada es no permitir que los Proxy cliente y servidor se comuniquen

Esta restriccioacuten podriacutea ser necesaria por poliacuteticas de seguridad de los servidores

Tambieacuten por mantener un orden y control de todo lo que pasa por los Proxys

ProxyBroker

ProxyBroker

ProxyBroker

Consecuencias

Aislamiento Entre la aplicacioacuten y los servidores

Sencillez permite que sea mas sencilla la construccioacuten de los sistemas

Flexibilidad Permite cambiar capas sin afectar las aplicaciones relacionadas con esta

ProxyBroker

EjemplosEste patroacuten es muy usado por sistemas con estaacutendar CORBA (Arquitectura comuacuten de intermediarios en peticiones a objetos)

Microsofts OLE 2x World Wide Web ATM-P

Page 28: Modelo-Vista-Controlador (MVC) Edgardo Bermúdez Pedro Martínez Víctor González.

Proxy

Diagrama de Secuencia

Proxy

Participantes

ProxyMantiene un referencia al objeto realMantiene un mismo interfaz que el objeto

realMantiene el acceso al objeto realCodificacioacuten de peticiones Caching de

informacioacuten comprobar permisos

Proxy

Participantes

SubjectDefine el interfaz comuacuten a Proxy y

RealSubject

RealSubjectDefine el objeto real que representa el Proxy

Proxy

ConsecuenciasEl proxy introduce un nivel de indireccioacuten

cuando accede a un objeto La indireccioacuten

tiene muchos usos dependiendo del tipo de

proxyRemoto ocultar espacio de memoriaVirtual optimizaciones creando objetos bajo

demandaProteccioacuten tareas adicionales

Proxy

Relacionados

Si ofrece un interfaz distinto (proxy de seguridad)

AdapterTiene una implementacioacuten similar a

Decorator

PROXYBROKER

ProxyBroker

PropoacutesitoEstructurar sistemas distribuidos en los cuales surge la necesidad de una iteracioacuten remota entre componentes

MotivacioacutenDesacoplar la interaccioacuten de los usuarios en los clientes y servidores

ProxyBroker

Ejemplo

En el desarrollo de un ldquoMercado Webrdquo tenemos desarrollados dos agentes el comprador y el vendedor Pero estos estaacuten desarrollados en plataformas diferentes que no permite que tengan comunicacioacuten

ProxyBroker

Solucioacuten

Cuando un cliente necesita comprar un producto solicita a traveacutes de un Proxy al agente Broker los vendedores que tiene registrado El Broker se comunica por un Proxy con el servidor para llevar a cabo la peticioacuten

ProxyBroker

Solucioacuten

El agente Broker entrega la informacioacuten necesaria a el proxy-cliente y al proxy-servidor para que estos establezcan una comunicacioacuten efectiva que permita realizar la operacioacuten

ProxyBroker

Los broker permiten realizar conexiones entre clientes y servidores de diferentes plataformas

Le entregan la informacioacuten necesaria a los Proxy para que estos realicen las conexiones

ProxyBroker

Otro ejemplo

El broker sirve de intermediario entre el comprador y el vendedor

Permitiendo que logren conectarse y realizar la transaccioacuten

ProxyBroker

Los patrones ProxyBroker se pueden implementar de diferentes maneras esto depende de los requerimientos de los sistemas

Una Forma de implementarlos es permitiendo que los Proxy cliente y servidor se comuniquen entre ellos cuando es posible

ProxyBroker

ProxyBroker

Diagrama de Secuencia

ProxyBroker

Otra manera muy usada es no permitir que los Proxy cliente y servidor se comuniquen

Esta restriccioacuten podriacutea ser necesaria por poliacuteticas de seguridad de los servidores

Tambieacuten por mantener un orden y control de todo lo que pasa por los Proxys

ProxyBroker

ProxyBroker

ProxyBroker

Consecuencias

Aislamiento Entre la aplicacioacuten y los servidores

Sencillez permite que sea mas sencilla la construccioacuten de los sistemas

Flexibilidad Permite cambiar capas sin afectar las aplicaciones relacionadas con esta

ProxyBroker

EjemplosEste patroacuten es muy usado por sistemas con estaacutendar CORBA (Arquitectura comuacuten de intermediarios en peticiones a objetos)

Microsofts OLE 2x World Wide Web ATM-P

Page 29: Modelo-Vista-Controlador (MVC) Edgardo Bermúdez Pedro Martínez Víctor González.

Proxy

Participantes

ProxyMantiene un referencia al objeto realMantiene un mismo interfaz que el objeto

realMantiene el acceso al objeto realCodificacioacuten de peticiones Caching de

informacioacuten comprobar permisos

Proxy

Participantes

SubjectDefine el interfaz comuacuten a Proxy y

RealSubject

RealSubjectDefine el objeto real que representa el Proxy

Proxy

ConsecuenciasEl proxy introduce un nivel de indireccioacuten

cuando accede a un objeto La indireccioacuten

tiene muchos usos dependiendo del tipo de

proxyRemoto ocultar espacio de memoriaVirtual optimizaciones creando objetos bajo

demandaProteccioacuten tareas adicionales

Proxy

Relacionados

Si ofrece un interfaz distinto (proxy de seguridad)

AdapterTiene una implementacioacuten similar a

Decorator

PROXYBROKER

ProxyBroker

PropoacutesitoEstructurar sistemas distribuidos en los cuales surge la necesidad de una iteracioacuten remota entre componentes

MotivacioacutenDesacoplar la interaccioacuten de los usuarios en los clientes y servidores

ProxyBroker

Ejemplo

En el desarrollo de un ldquoMercado Webrdquo tenemos desarrollados dos agentes el comprador y el vendedor Pero estos estaacuten desarrollados en plataformas diferentes que no permite que tengan comunicacioacuten

ProxyBroker

Solucioacuten

Cuando un cliente necesita comprar un producto solicita a traveacutes de un Proxy al agente Broker los vendedores que tiene registrado El Broker se comunica por un Proxy con el servidor para llevar a cabo la peticioacuten

ProxyBroker

Solucioacuten

El agente Broker entrega la informacioacuten necesaria a el proxy-cliente y al proxy-servidor para que estos establezcan una comunicacioacuten efectiva que permita realizar la operacioacuten

ProxyBroker

Los broker permiten realizar conexiones entre clientes y servidores de diferentes plataformas

Le entregan la informacioacuten necesaria a los Proxy para que estos realicen las conexiones

ProxyBroker

Otro ejemplo

El broker sirve de intermediario entre el comprador y el vendedor

Permitiendo que logren conectarse y realizar la transaccioacuten

ProxyBroker

Los patrones ProxyBroker se pueden implementar de diferentes maneras esto depende de los requerimientos de los sistemas

Una Forma de implementarlos es permitiendo que los Proxy cliente y servidor se comuniquen entre ellos cuando es posible

ProxyBroker

ProxyBroker

Diagrama de Secuencia

ProxyBroker

Otra manera muy usada es no permitir que los Proxy cliente y servidor se comuniquen

Esta restriccioacuten podriacutea ser necesaria por poliacuteticas de seguridad de los servidores

Tambieacuten por mantener un orden y control de todo lo que pasa por los Proxys

ProxyBroker

ProxyBroker

ProxyBroker

Consecuencias

Aislamiento Entre la aplicacioacuten y los servidores

Sencillez permite que sea mas sencilla la construccioacuten de los sistemas

Flexibilidad Permite cambiar capas sin afectar las aplicaciones relacionadas con esta

ProxyBroker

EjemplosEste patroacuten es muy usado por sistemas con estaacutendar CORBA (Arquitectura comuacuten de intermediarios en peticiones a objetos)

Microsofts OLE 2x World Wide Web ATM-P

Page 30: Modelo-Vista-Controlador (MVC) Edgardo Bermúdez Pedro Martínez Víctor González.

Proxy

Participantes

SubjectDefine el interfaz comuacuten a Proxy y

RealSubject

RealSubjectDefine el objeto real que representa el Proxy

Proxy

ConsecuenciasEl proxy introduce un nivel de indireccioacuten

cuando accede a un objeto La indireccioacuten

tiene muchos usos dependiendo del tipo de

proxyRemoto ocultar espacio de memoriaVirtual optimizaciones creando objetos bajo

demandaProteccioacuten tareas adicionales

Proxy

Relacionados

Si ofrece un interfaz distinto (proxy de seguridad)

AdapterTiene una implementacioacuten similar a

Decorator

PROXYBROKER

ProxyBroker

PropoacutesitoEstructurar sistemas distribuidos en los cuales surge la necesidad de una iteracioacuten remota entre componentes

MotivacioacutenDesacoplar la interaccioacuten de los usuarios en los clientes y servidores

ProxyBroker

Ejemplo

En el desarrollo de un ldquoMercado Webrdquo tenemos desarrollados dos agentes el comprador y el vendedor Pero estos estaacuten desarrollados en plataformas diferentes que no permite que tengan comunicacioacuten

ProxyBroker

Solucioacuten

Cuando un cliente necesita comprar un producto solicita a traveacutes de un Proxy al agente Broker los vendedores que tiene registrado El Broker se comunica por un Proxy con el servidor para llevar a cabo la peticioacuten

ProxyBroker

Solucioacuten

El agente Broker entrega la informacioacuten necesaria a el proxy-cliente y al proxy-servidor para que estos establezcan una comunicacioacuten efectiva que permita realizar la operacioacuten

ProxyBroker

Los broker permiten realizar conexiones entre clientes y servidores de diferentes plataformas

Le entregan la informacioacuten necesaria a los Proxy para que estos realicen las conexiones

ProxyBroker

Otro ejemplo

El broker sirve de intermediario entre el comprador y el vendedor

Permitiendo que logren conectarse y realizar la transaccioacuten

ProxyBroker

Los patrones ProxyBroker se pueden implementar de diferentes maneras esto depende de los requerimientos de los sistemas

Una Forma de implementarlos es permitiendo que los Proxy cliente y servidor se comuniquen entre ellos cuando es posible

ProxyBroker

ProxyBroker

Diagrama de Secuencia

ProxyBroker

Otra manera muy usada es no permitir que los Proxy cliente y servidor se comuniquen

Esta restriccioacuten podriacutea ser necesaria por poliacuteticas de seguridad de los servidores

Tambieacuten por mantener un orden y control de todo lo que pasa por los Proxys

ProxyBroker

ProxyBroker

ProxyBroker

Consecuencias

Aislamiento Entre la aplicacioacuten y los servidores

Sencillez permite que sea mas sencilla la construccioacuten de los sistemas

Flexibilidad Permite cambiar capas sin afectar las aplicaciones relacionadas con esta

ProxyBroker

EjemplosEste patroacuten es muy usado por sistemas con estaacutendar CORBA (Arquitectura comuacuten de intermediarios en peticiones a objetos)

Microsofts OLE 2x World Wide Web ATM-P

Page 31: Modelo-Vista-Controlador (MVC) Edgardo Bermúdez Pedro Martínez Víctor González.

Proxy

ConsecuenciasEl proxy introduce un nivel de indireccioacuten

cuando accede a un objeto La indireccioacuten

tiene muchos usos dependiendo del tipo de

proxyRemoto ocultar espacio de memoriaVirtual optimizaciones creando objetos bajo

demandaProteccioacuten tareas adicionales

Proxy

Relacionados

Si ofrece un interfaz distinto (proxy de seguridad)

AdapterTiene una implementacioacuten similar a

Decorator

PROXYBROKER

ProxyBroker

PropoacutesitoEstructurar sistemas distribuidos en los cuales surge la necesidad de una iteracioacuten remota entre componentes

MotivacioacutenDesacoplar la interaccioacuten de los usuarios en los clientes y servidores

ProxyBroker

Ejemplo

En el desarrollo de un ldquoMercado Webrdquo tenemos desarrollados dos agentes el comprador y el vendedor Pero estos estaacuten desarrollados en plataformas diferentes que no permite que tengan comunicacioacuten

ProxyBroker

Solucioacuten

Cuando un cliente necesita comprar un producto solicita a traveacutes de un Proxy al agente Broker los vendedores que tiene registrado El Broker se comunica por un Proxy con el servidor para llevar a cabo la peticioacuten

ProxyBroker

Solucioacuten

El agente Broker entrega la informacioacuten necesaria a el proxy-cliente y al proxy-servidor para que estos establezcan una comunicacioacuten efectiva que permita realizar la operacioacuten

ProxyBroker

Los broker permiten realizar conexiones entre clientes y servidores de diferentes plataformas

Le entregan la informacioacuten necesaria a los Proxy para que estos realicen las conexiones

ProxyBroker

Otro ejemplo

El broker sirve de intermediario entre el comprador y el vendedor

Permitiendo que logren conectarse y realizar la transaccioacuten

ProxyBroker

Los patrones ProxyBroker se pueden implementar de diferentes maneras esto depende de los requerimientos de los sistemas

Una Forma de implementarlos es permitiendo que los Proxy cliente y servidor se comuniquen entre ellos cuando es posible

ProxyBroker

ProxyBroker

Diagrama de Secuencia

ProxyBroker

Otra manera muy usada es no permitir que los Proxy cliente y servidor se comuniquen

Esta restriccioacuten podriacutea ser necesaria por poliacuteticas de seguridad de los servidores

Tambieacuten por mantener un orden y control de todo lo que pasa por los Proxys

ProxyBroker

ProxyBroker

ProxyBroker

Consecuencias

Aislamiento Entre la aplicacioacuten y los servidores

Sencillez permite que sea mas sencilla la construccioacuten de los sistemas

Flexibilidad Permite cambiar capas sin afectar las aplicaciones relacionadas con esta

ProxyBroker

EjemplosEste patroacuten es muy usado por sistemas con estaacutendar CORBA (Arquitectura comuacuten de intermediarios en peticiones a objetos)

Microsofts OLE 2x World Wide Web ATM-P

Page 32: Modelo-Vista-Controlador (MVC) Edgardo Bermúdez Pedro Martínez Víctor González.

Proxy

Relacionados

Si ofrece un interfaz distinto (proxy de seguridad)

AdapterTiene una implementacioacuten similar a

Decorator

PROXYBROKER

ProxyBroker

PropoacutesitoEstructurar sistemas distribuidos en los cuales surge la necesidad de una iteracioacuten remota entre componentes

MotivacioacutenDesacoplar la interaccioacuten de los usuarios en los clientes y servidores

ProxyBroker

Ejemplo

En el desarrollo de un ldquoMercado Webrdquo tenemos desarrollados dos agentes el comprador y el vendedor Pero estos estaacuten desarrollados en plataformas diferentes que no permite que tengan comunicacioacuten

ProxyBroker

Solucioacuten

Cuando un cliente necesita comprar un producto solicita a traveacutes de un Proxy al agente Broker los vendedores que tiene registrado El Broker se comunica por un Proxy con el servidor para llevar a cabo la peticioacuten

ProxyBroker

Solucioacuten

El agente Broker entrega la informacioacuten necesaria a el proxy-cliente y al proxy-servidor para que estos establezcan una comunicacioacuten efectiva que permita realizar la operacioacuten

ProxyBroker

Los broker permiten realizar conexiones entre clientes y servidores de diferentes plataformas

Le entregan la informacioacuten necesaria a los Proxy para que estos realicen las conexiones

ProxyBroker

Otro ejemplo

El broker sirve de intermediario entre el comprador y el vendedor

Permitiendo que logren conectarse y realizar la transaccioacuten

ProxyBroker

Los patrones ProxyBroker se pueden implementar de diferentes maneras esto depende de los requerimientos de los sistemas

Una Forma de implementarlos es permitiendo que los Proxy cliente y servidor se comuniquen entre ellos cuando es posible

ProxyBroker

ProxyBroker

Diagrama de Secuencia

ProxyBroker

Otra manera muy usada es no permitir que los Proxy cliente y servidor se comuniquen

Esta restriccioacuten podriacutea ser necesaria por poliacuteticas de seguridad de los servidores

Tambieacuten por mantener un orden y control de todo lo que pasa por los Proxys

ProxyBroker

ProxyBroker

ProxyBroker

Consecuencias

Aislamiento Entre la aplicacioacuten y los servidores

Sencillez permite que sea mas sencilla la construccioacuten de los sistemas

Flexibilidad Permite cambiar capas sin afectar las aplicaciones relacionadas con esta

ProxyBroker

EjemplosEste patroacuten es muy usado por sistemas con estaacutendar CORBA (Arquitectura comuacuten de intermediarios en peticiones a objetos)

Microsofts OLE 2x World Wide Web ATM-P

Page 33: Modelo-Vista-Controlador (MVC) Edgardo Bermúdez Pedro Martínez Víctor González.

PROXYBROKER

ProxyBroker

PropoacutesitoEstructurar sistemas distribuidos en los cuales surge la necesidad de una iteracioacuten remota entre componentes

MotivacioacutenDesacoplar la interaccioacuten de los usuarios en los clientes y servidores

ProxyBroker

Ejemplo

En el desarrollo de un ldquoMercado Webrdquo tenemos desarrollados dos agentes el comprador y el vendedor Pero estos estaacuten desarrollados en plataformas diferentes que no permite que tengan comunicacioacuten

ProxyBroker

Solucioacuten

Cuando un cliente necesita comprar un producto solicita a traveacutes de un Proxy al agente Broker los vendedores que tiene registrado El Broker se comunica por un Proxy con el servidor para llevar a cabo la peticioacuten

ProxyBroker

Solucioacuten

El agente Broker entrega la informacioacuten necesaria a el proxy-cliente y al proxy-servidor para que estos establezcan una comunicacioacuten efectiva que permita realizar la operacioacuten

ProxyBroker

Los broker permiten realizar conexiones entre clientes y servidores de diferentes plataformas

Le entregan la informacioacuten necesaria a los Proxy para que estos realicen las conexiones

ProxyBroker

Otro ejemplo

El broker sirve de intermediario entre el comprador y el vendedor

Permitiendo que logren conectarse y realizar la transaccioacuten

ProxyBroker

Los patrones ProxyBroker se pueden implementar de diferentes maneras esto depende de los requerimientos de los sistemas

Una Forma de implementarlos es permitiendo que los Proxy cliente y servidor se comuniquen entre ellos cuando es posible

ProxyBroker

ProxyBroker

Diagrama de Secuencia

ProxyBroker

Otra manera muy usada es no permitir que los Proxy cliente y servidor se comuniquen

Esta restriccioacuten podriacutea ser necesaria por poliacuteticas de seguridad de los servidores

Tambieacuten por mantener un orden y control de todo lo que pasa por los Proxys

ProxyBroker

ProxyBroker

ProxyBroker

Consecuencias

Aislamiento Entre la aplicacioacuten y los servidores

Sencillez permite que sea mas sencilla la construccioacuten de los sistemas

Flexibilidad Permite cambiar capas sin afectar las aplicaciones relacionadas con esta

ProxyBroker

EjemplosEste patroacuten es muy usado por sistemas con estaacutendar CORBA (Arquitectura comuacuten de intermediarios en peticiones a objetos)

Microsofts OLE 2x World Wide Web ATM-P

Page 34: Modelo-Vista-Controlador (MVC) Edgardo Bermúdez Pedro Martínez Víctor González.

ProxyBroker

PropoacutesitoEstructurar sistemas distribuidos en los cuales surge la necesidad de una iteracioacuten remota entre componentes

MotivacioacutenDesacoplar la interaccioacuten de los usuarios en los clientes y servidores

ProxyBroker

Ejemplo

En el desarrollo de un ldquoMercado Webrdquo tenemos desarrollados dos agentes el comprador y el vendedor Pero estos estaacuten desarrollados en plataformas diferentes que no permite que tengan comunicacioacuten

ProxyBroker

Solucioacuten

Cuando un cliente necesita comprar un producto solicita a traveacutes de un Proxy al agente Broker los vendedores que tiene registrado El Broker se comunica por un Proxy con el servidor para llevar a cabo la peticioacuten

ProxyBroker

Solucioacuten

El agente Broker entrega la informacioacuten necesaria a el proxy-cliente y al proxy-servidor para que estos establezcan una comunicacioacuten efectiva que permita realizar la operacioacuten

ProxyBroker

Los broker permiten realizar conexiones entre clientes y servidores de diferentes plataformas

Le entregan la informacioacuten necesaria a los Proxy para que estos realicen las conexiones

ProxyBroker

Otro ejemplo

El broker sirve de intermediario entre el comprador y el vendedor

Permitiendo que logren conectarse y realizar la transaccioacuten

ProxyBroker

Los patrones ProxyBroker se pueden implementar de diferentes maneras esto depende de los requerimientos de los sistemas

Una Forma de implementarlos es permitiendo que los Proxy cliente y servidor se comuniquen entre ellos cuando es posible

ProxyBroker

ProxyBroker

Diagrama de Secuencia

ProxyBroker

Otra manera muy usada es no permitir que los Proxy cliente y servidor se comuniquen

Esta restriccioacuten podriacutea ser necesaria por poliacuteticas de seguridad de los servidores

Tambieacuten por mantener un orden y control de todo lo que pasa por los Proxys

ProxyBroker

ProxyBroker

ProxyBroker

Consecuencias

Aislamiento Entre la aplicacioacuten y los servidores

Sencillez permite que sea mas sencilla la construccioacuten de los sistemas

Flexibilidad Permite cambiar capas sin afectar las aplicaciones relacionadas con esta

ProxyBroker

EjemplosEste patroacuten es muy usado por sistemas con estaacutendar CORBA (Arquitectura comuacuten de intermediarios en peticiones a objetos)

Microsofts OLE 2x World Wide Web ATM-P

Page 35: Modelo-Vista-Controlador (MVC) Edgardo Bermúdez Pedro Martínez Víctor González.

ProxyBroker

Ejemplo

En el desarrollo de un ldquoMercado Webrdquo tenemos desarrollados dos agentes el comprador y el vendedor Pero estos estaacuten desarrollados en plataformas diferentes que no permite que tengan comunicacioacuten

ProxyBroker

Solucioacuten

Cuando un cliente necesita comprar un producto solicita a traveacutes de un Proxy al agente Broker los vendedores que tiene registrado El Broker se comunica por un Proxy con el servidor para llevar a cabo la peticioacuten

ProxyBroker

Solucioacuten

El agente Broker entrega la informacioacuten necesaria a el proxy-cliente y al proxy-servidor para que estos establezcan una comunicacioacuten efectiva que permita realizar la operacioacuten

ProxyBroker

Los broker permiten realizar conexiones entre clientes y servidores de diferentes plataformas

Le entregan la informacioacuten necesaria a los Proxy para que estos realicen las conexiones

ProxyBroker

Otro ejemplo

El broker sirve de intermediario entre el comprador y el vendedor

Permitiendo que logren conectarse y realizar la transaccioacuten

ProxyBroker

Los patrones ProxyBroker se pueden implementar de diferentes maneras esto depende de los requerimientos de los sistemas

Una Forma de implementarlos es permitiendo que los Proxy cliente y servidor se comuniquen entre ellos cuando es posible

ProxyBroker

ProxyBroker

Diagrama de Secuencia

ProxyBroker

Otra manera muy usada es no permitir que los Proxy cliente y servidor se comuniquen

Esta restriccioacuten podriacutea ser necesaria por poliacuteticas de seguridad de los servidores

Tambieacuten por mantener un orden y control de todo lo que pasa por los Proxys

ProxyBroker

ProxyBroker

ProxyBroker

Consecuencias

Aislamiento Entre la aplicacioacuten y los servidores

Sencillez permite que sea mas sencilla la construccioacuten de los sistemas

Flexibilidad Permite cambiar capas sin afectar las aplicaciones relacionadas con esta

ProxyBroker

EjemplosEste patroacuten es muy usado por sistemas con estaacutendar CORBA (Arquitectura comuacuten de intermediarios en peticiones a objetos)

Microsofts OLE 2x World Wide Web ATM-P

Page 36: Modelo-Vista-Controlador (MVC) Edgardo Bermúdez Pedro Martínez Víctor González.

ProxyBroker

Solucioacuten

Cuando un cliente necesita comprar un producto solicita a traveacutes de un Proxy al agente Broker los vendedores que tiene registrado El Broker se comunica por un Proxy con el servidor para llevar a cabo la peticioacuten

ProxyBroker

Solucioacuten

El agente Broker entrega la informacioacuten necesaria a el proxy-cliente y al proxy-servidor para que estos establezcan una comunicacioacuten efectiva que permita realizar la operacioacuten

ProxyBroker

Los broker permiten realizar conexiones entre clientes y servidores de diferentes plataformas

Le entregan la informacioacuten necesaria a los Proxy para que estos realicen las conexiones

ProxyBroker

Otro ejemplo

El broker sirve de intermediario entre el comprador y el vendedor

Permitiendo que logren conectarse y realizar la transaccioacuten

ProxyBroker

Los patrones ProxyBroker se pueden implementar de diferentes maneras esto depende de los requerimientos de los sistemas

Una Forma de implementarlos es permitiendo que los Proxy cliente y servidor se comuniquen entre ellos cuando es posible

ProxyBroker

ProxyBroker

Diagrama de Secuencia

ProxyBroker

Otra manera muy usada es no permitir que los Proxy cliente y servidor se comuniquen

Esta restriccioacuten podriacutea ser necesaria por poliacuteticas de seguridad de los servidores

Tambieacuten por mantener un orden y control de todo lo que pasa por los Proxys

ProxyBroker

ProxyBroker

ProxyBroker

Consecuencias

Aislamiento Entre la aplicacioacuten y los servidores

Sencillez permite que sea mas sencilla la construccioacuten de los sistemas

Flexibilidad Permite cambiar capas sin afectar las aplicaciones relacionadas con esta

ProxyBroker

EjemplosEste patroacuten es muy usado por sistemas con estaacutendar CORBA (Arquitectura comuacuten de intermediarios en peticiones a objetos)

Microsofts OLE 2x World Wide Web ATM-P

Page 37: Modelo-Vista-Controlador (MVC) Edgardo Bermúdez Pedro Martínez Víctor González.

ProxyBroker

Solucioacuten

El agente Broker entrega la informacioacuten necesaria a el proxy-cliente y al proxy-servidor para que estos establezcan una comunicacioacuten efectiva que permita realizar la operacioacuten

ProxyBroker

Los broker permiten realizar conexiones entre clientes y servidores de diferentes plataformas

Le entregan la informacioacuten necesaria a los Proxy para que estos realicen las conexiones

ProxyBroker

Otro ejemplo

El broker sirve de intermediario entre el comprador y el vendedor

Permitiendo que logren conectarse y realizar la transaccioacuten

ProxyBroker

Los patrones ProxyBroker se pueden implementar de diferentes maneras esto depende de los requerimientos de los sistemas

Una Forma de implementarlos es permitiendo que los Proxy cliente y servidor se comuniquen entre ellos cuando es posible

ProxyBroker

ProxyBroker

Diagrama de Secuencia

ProxyBroker

Otra manera muy usada es no permitir que los Proxy cliente y servidor se comuniquen

Esta restriccioacuten podriacutea ser necesaria por poliacuteticas de seguridad de los servidores

Tambieacuten por mantener un orden y control de todo lo que pasa por los Proxys

ProxyBroker

ProxyBroker

ProxyBroker

Consecuencias

Aislamiento Entre la aplicacioacuten y los servidores

Sencillez permite que sea mas sencilla la construccioacuten de los sistemas

Flexibilidad Permite cambiar capas sin afectar las aplicaciones relacionadas con esta

ProxyBroker

EjemplosEste patroacuten es muy usado por sistemas con estaacutendar CORBA (Arquitectura comuacuten de intermediarios en peticiones a objetos)

Microsofts OLE 2x World Wide Web ATM-P

Page 38: Modelo-Vista-Controlador (MVC) Edgardo Bermúdez Pedro Martínez Víctor González.

ProxyBroker

Los broker permiten realizar conexiones entre clientes y servidores de diferentes plataformas

Le entregan la informacioacuten necesaria a los Proxy para que estos realicen las conexiones

ProxyBroker

Otro ejemplo

El broker sirve de intermediario entre el comprador y el vendedor

Permitiendo que logren conectarse y realizar la transaccioacuten

ProxyBroker

Los patrones ProxyBroker se pueden implementar de diferentes maneras esto depende de los requerimientos de los sistemas

Una Forma de implementarlos es permitiendo que los Proxy cliente y servidor se comuniquen entre ellos cuando es posible

ProxyBroker

ProxyBroker

Diagrama de Secuencia

ProxyBroker

Otra manera muy usada es no permitir que los Proxy cliente y servidor se comuniquen

Esta restriccioacuten podriacutea ser necesaria por poliacuteticas de seguridad de los servidores

Tambieacuten por mantener un orden y control de todo lo que pasa por los Proxys

ProxyBroker

ProxyBroker

ProxyBroker

Consecuencias

Aislamiento Entre la aplicacioacuten y los servidores

Sencillez permite que sea mas sencilla la construccioacuten de los sistemas

Flexibilidad Permite cambiar capas sin afectar las aplicaciones relacionadas con esta

ProxyBroker

EjemplosEste patroacuten es muy usado por sistemas con estaacutendar CORBA (Arquitectura comuacuten de intermediarios en peticiones a objetos)

Microsofts OLE 2x World Wide Web ATM-P

Page 39: Modelo-Vista-Controlador (MVC) Edgardo Bermúdez Pedro Martínez Víctor González.

ProxyBroker

Otro ejemplo

El broker sirve de intermediario entre el comprador y el vendedor

Permitiendo que logren conectarse y realizar la transaccioacuten

ProxyBroker

Los patrones ProxyBroker se pueden implementar de diferentes maneras esto depende de los requerimientos de los sistemas

Una Forma de implementarlos es permitiendo que los Proxy cliente y servidor se comuniquen entre ellos cuando es posible

ProxyBroker

ProxyBroker

Diagrama de Secuencia

ProxyBroker

Otra manera muy usada es no permitir que los Proxy cliente y servidor se comuniquen

Esta restriccioacuten podriacutea ser necesaria por poliacuteticas de seguridad de los servidores

Tambieacuten por mantener un orden y control de todo lo que pasa por los Proxys

ProxyBroker

ProxyBroker

ProxyBroker

Consecuencias

Aislamiento Entre la aplicacioacuten y los servidores

Sencillez permite que sea mas sencilla la construccioacuten de los sistemas

Flexibilidad Permite cambiar capas sin afectar las aplicaciones relacionadas con esta

ProxyBroker

EjemplosEste patroacuten es muy usado por sistemas con estaacutendar CORBA (Arquitectura comuacuten de intermediarios en peticiones a objetos)

Microsofts OLE 2x World Wide Web ATM-P

Page 40: Modelo-Vista-Controlador (MVC) Edgardo Bermúdez Pedro Martínez Víctor González.

ProxyBroker

Los patrones ProxyBroker se pueden implementar de diferentes maneras esto depende de los requerimientos de los sistemas

Una Forma de implementarlos es permitiendo que los Proxy cliente y servidor se comuniquen entre ellos cuando es posible

ProxyBroker

ProxyBroker

Diagrama de Secuencia

ProxyBroker

Otra manera muy usada es no permitir que los Proxy cliente y servidor se comuniquen

Esta restriccioacuten podriacutea ser necesaria por poliacuteticas de seguridad de los servidores

Tambieacuten por mantener un orden y control de todo lo que pasa por los Proxys

ProxyBroker

ProxyBroker

ProxyBroker

Consecuencias

Aislamiento Entre la aplicacioacuten y los servidores

Sencillez permite que sea mas sencilla la construccioacuten de los sistemas

Flexibilidad Permite cambiar capas sin afectar las aplicaciones relacionadas con esta

ProxyBroker

EjemplosEste patroacuten es muy usado por sistemas con estaacutendar CORBA (Arquitectura comuacuten de intermediarios en peticiones a objetos)

Microsofts OLE 2x World Wide Web ATM-P

Page 41: Modelo-Vista-Controlador (MVC) Edgardo Bermúdez Pedro Martínez Víctor González.

ProxyBroker

ProxyBroker

Diagrama de Secuencia

ProxyBroker

Otra manera muy usada es no permitir que los Proxy cliente y servidor se comuniquen

Esta restriccioacuten podriacutea ser necesaria por poliacuteticas de seguridad de los servidores

Tambieacuten por mantener un orden y control de todo lo que pasa por los Proxys

ProxyBroker

ProxyBroker

ProxyBroker

Consecuencias

Aislamiento Entre la aplicacioacuten y los servidores

Sencillez permite que sea mas sencilla la construccioacuten de los sistemas

Flexibilidad Permite cambiar capas sin afectar las aplicaciones relacionadas con esta

ProxyBroker

EjemplosEste patroacuten es muy usado por sistemas con estaacutendar CORBA (Arquitectura comuacuten de intermediarios en peticiones a objetos)

Microsofts OLE 2x World Wide Web ATM-P

Page 42: Modelo-Vista-Controlador (MVC) Edgardo Bermúdez Pedro Martínez Víctor González.

ProxyBroker

Diagrama de Secuencia

ProxyBroker

Otra manera muy usada es no permitir que los Proxy cliente y servidor se comuniquen

Esta restriccioacuten podriacutea ser necesaria por poliacuteticas de seguridad de los servidores

Tambieacuten por mantener un orden y control de todo lo que pasa por los Proxys

ProxyBroker

ProxyBroker

ProxyBroker

Consecuencias

Aislamiento Entre la aplicacioacuten y los servidores

Sencillez permite que sea mas sencilla la construccioacuten de los sistemas

Flexibilidad Permite cambiar capas sin afectar las aplicaciones relacionadas con esta

ProxyBroker

EjemplosEste patroacuten es muy usado por sistemas con estaacutendar CORBA (Arquitectura comuacuten de intermediarios en peticiones a objetos)

Microsofts OLE 2x World Wide Web ATM-P

Page 43: Modelo-Vista-Controlador (MVC) Edgardo Bermúdez Pedro Martínez Víctor González.

ProxyBroker

Otra manera muy usada es no permitir que los Proxy cliente y servidor se comuniquen

Esta restriccioacuten podriacutea ser necesaria por poliacuteticas de seguridad de los servidores

Tambieacuten por mantener un orden y control de todo lo que pasa por los Proxys

ProxyBroker

ProxyBroker

ProxyBroker

Consecuencias

Aislamiento Entre la aplicacioacuten y los servidores

Sencillez permite que sea mas sencilla la construccioacuten de los sistemas

Flexibilidad Permite cambiar capas sin afectar las aplicaciones relacionadas con esta

ProxyBroker

EjemplosEste patroacuten es muy usado por sistemas con estaacutendar CORBA (Arquitectura comuacuten de intermediarios en peticiones a objetos)

Microsofts OLE 2x World Wide Web ATM-P

Page 44: Modelo-Vista-Controlador (MVC) Edgardo Bermúdez Pedro Martínez Víctor González.

ProxyBroker

ProxyBroker

ProxyBroker

Consecuencias

Aislamiento Entre la aplicacioacuten y los servidores

Sencillez permite que sea mas sencilla la construccioacuten de los sistemas

Flexibilidad Permite cambiar capas sin afectar las aplicaciones relacionadas con esta

ProxyBroker

EjemplosEste patroacuten es muy usado por sistemas con estaacutendar CORBA (Arquitectura comuacuten de intermediarios en peticiones a objetos)

Microsofts OLE 2x World Wide Web ATM-P

Page 45: Modelo-Vista-Controlador (MVC) Edgardo Bermúdez Pedro Martínez Víctor González.

ProxyBroker

ProxyBroker

Consecuencias

Aislamiento Entre la aplicacioacuten y los servidores

Sencillez permite que sea mas sencilla la construccioacuten de los sistemas

Flexibilidad Permite cambiar capas sin afectar las aplicaciones relacionadas con esta

ProxyBroker

EjemplosEste patroacuten es muy usado por sistemas con estaacutendar CORBA (Arquitectura comuacuten de intermediarios en peticiones a objetos)

Microsofts OLE 2x World Wide Web ATM-P

Page 46: Modelo-Vista-Controlador (MVC) Edgardo Bermúdez Pedro Martínez Víctor González.

ProxyBroker

Consecuencias

Aislamiento Entre la aplicacioacuten y los servidores

Sencillez permite que sea mas sencilla la construccioacuten de los sistemas

Flexibilidad Permite cambiar capas sin afectar las aplicaciones relacionadas con esta

ProxyBroker

EjemplosEste patroacuten es muy usado por sistemas con estaacutendar CORBA (Arquitectura comuacuten de intermediarios en peticiones a objetos)

Microsofts OLE 2x World Wide Web ATM-P

Page 47: Modelo-Vista-Controlador (MVC) Edgardo Bermúdez Pedro Martínez Víctor González.

ProxyBroker

EjemplosEste patroacuten es muy usado por sistemas con estaacutendar CORBA (Arquitectura comuacuten de intermediarios en peticiones a objetos)

Microsofts OLE 2x World Wide Web ATM-P