domingo, 7 de julio de 2013

FRONT CONTROLLER



Contexto
El mecanismo de la capa de presentación manejo solicitud debe controlar y coordinar la tramitación de cada usuario en las distintas solicitudes. Estos mecanismos de control pueden ser administrados en cualquier forma centralizada o descentralizada. 

Problema
El sistema requiere un punto de acceso centralizado para la capa de presentación tratamiento de la petición para apoyar la integración de los servicios del sistema, recuperación de contenidos, gestión de vista y navegación. Cuando el usuario accede a la vista directamente sin pasar a través de un mecanismo centralizado, se pueden presentar dos problemas:
  • Se requiere que cada fin de proporcionar a sus propios servicios del sistema, resultando a menudo en código duplicado.
  • Ver navegación se deja a los puntos de vista. Esto puede dar lugar a mezclarse contenidos vista y vista de navegación.
Además, el control distribuido es más difícil de mantener, ya que los cambios a menudo tendrá que ser hecho en numerosos lugares. 

Fortalezas:
  • Servicios de procesamiento Sistema común termina por solicitud. Por ejemplo, el servicio de seguridad completa de autenticación y autorización de cheques.
  • La lógica que se maneja mejor en una ubicación central en su lugar se replica en numerosos puntos de vista.
  • Existen puntos de decisión con respecto a la recuperación y manipulación de datos.
  • Múltiples puntos de vista se utilizan para responder a las peticiones de negocio similares.
  • Un punto de contacto centralizado para el manejo de una solicitud puede ser útil, por ejemplo, para controlar y registrar el progreso de un usuario a través del sitio.
  • Los servicios del sistema y la lógica de control de la vista son relativamente sofisticados.
Solución
Utilice un controlador como el punto de contacto inicial para manejar una petición. El controlador gestiona el trámite de la solicitud, incluyendo la invocación de servicios de seguridad tales como la autenticación y la autorización, delegando procesos de negocio, la gestión de la elección de una conclusión acertada, manejo de errores, y la gestión de la selección de las estrategias de creación de contenido.
 
Estructura
La figura 7.7 representa el patrón Front Controller diagrama de clases. 
 


Figura 7.7 Diagrama de clase Front Controller  

Participantes y Responsabilidades
La Figura 7.8 muestra el diagrama de secuencia que representa el patrón Front Controller. Describe cómo el controlador controla una solicitud.
 

Figura 7.8 Diagrama de secuencia Front Controller

Controlador
El controlador es el punto de contacto inicial para manejar todos los pedidos en el sistema. El controlador puede delegar a un asistente para completar la autenticación y autorización de un usuario o para iniciar la recuperación de contacto.

Dispatcher
Un despachador es responsable de la gestión de vista y la navegación, controlando la elección de la siguiente vista a presentar al usuario, y proporcionar el mecanismo para el control a este recurso.
Un dispatcher se puede encapsular dentro de un controlador o puede ser un componente separado de trabajo en coordinación. El operador ofrece ya sea una estática despachar a la vista o un mecanismo de reenvío dinámico más sofisticado.
El operador utiliza el objeto RequestDispatcher (apoyado en la especificación de servlet) y encapsula algún procesamiento adicional.

Ayudante
Un ayudante se encarga de ayudar a la vista o al controlador a completar su procesamiento. Por lo tanto, los ayudantes tienen numerosas responsabilidades, incluyendo la recopilación de datos requeridos por la vista y el almacenamiento en el modelo intermedio, en cuyo caso la ayuda se conoce como un value bean. Además, los asistentes podrán adaptar este modelo de datos para el uso de la vista. Los helpers pueden servir peticiones de datos desde la vista simplemente proporcionando acceso a los datos en bruto o formato a los datos como el contenido Web.
Una vista podría trabajar con cualquier número de helpers, que normalmente están implementados como componentes JavaBeans (JSP 1.0 +) y etiquetas personalizadas (JSP 1.1 +). Además, un ayudante puede representar un objeto Command, un delegado (ver "Business Delegate" en la página 248), o un transformador XSL, que se utiliza en combinación con una hoja de estilos para adaptarse y convertir el modelo en la forma apropiada.

Ver
Una vista representa y muestra información al cliente. La vista recupera la información a partir de un modelo. Los helpers soportan vistas encapsulando y adaptando el modelo de datos subyacente para su uso en la pantalla.

Consecuencias 

  • Centraliza el Control
    Un controlador proporciona un lugar central para manejar los servicios del sistema y la lógica de negocio a través de múltiples peticiones. Un controlador maneja el procesamiento de lógica de negocios y solicitando asistencia. Acceso centralizado a una aplicación significa que las solicitudes son fácilmente rastreados y registrados. Tenga en cuenta, sin embargo, que centraliza el control, es posible introducir un punto único de fallo. En la práctica, esto raramente es un problema, sin embargo, ya que múltiples controladores típicamente existen, ya sea dentro de un único servidor o en un clúster.
  • Mejora la capacidad de administración de la Seguridad
    Un controlador centraliza el control, proporcionando un punto de estrangulamiento para los intentos de acceso ilegales en la aplicación Web. Además, la auditoría de una sola entrada en la aplicación requiere menos recursos que la distribución de los controles de seguridad en todas las páginas.
  • Mejora la Reutilización
    Un controlador promueve limpiador partición de aplicaciones y fomenta la reutilización, el código que es común entre los componentes se muda a un controlador o es gestionado por un controlador.


(© 2001-2002 Sun Microsystems, Inc. Todos los derechos reservados.)
 

No hay comentarios:

Publicar un comentario