Intercepting Filter

RECU-0113 (Recurso Patrón)

Descripción

Este patrón ayuda a la detección, identificación y correcto procesamiento de las diferentes tipologías de peticiones.

Contexto

A la hora de realizar una gestión de peticiones, una de nuestras primeras cuestiones es contemplar la tipología de las mismas. La capa de presentación recibe muchas peticiones de diversa tipología. Normalmente cada tipo de petición conlleva un tipo de procesamiento propio (reenvios a componentes, cifrado, auditadas , etc.). Resulta necesario identificar y estandarizar el procedimiento que recibe cada tipo de petición.

Problema

Obviamente, con este patrón vamos a tener que realizar un esfuerzo previo en decodificar las peticiones y un esfuerzo en interpretar las respuestas producidas por el cliente. Una petición web recorre varias comprobaciones previas a su procesamiento (autentificación, validación de permisos, navegador, etc.). En algunos de estas comprobaciones, se evalúa si se continua o no el procesamiento.

La clave para solventar este problema de una forma flexible y no obstrusiva es tener un mecanismo simple para añadir y eliminar componentes de procesamiento, en el que cada componente completa una acción de filtrado específica.

Solución

Es necesario crear un conjunto de filtros conectables para procesar servicios comunes de una forma estándar sin requerir cambios en el código principal del procesamiento de la petición. Estos filtros son los encargados de capturar las peticiones y realizar la lógica de preprocesado que permite identificar a las mismas, asi como las respuestas salientes que utilizamos en las actividades de post-procesado. Podemos añadir y eliminar estos filtros a discreción, sin necesitar cambios en nuestro código existente.

Podemos, en efecto, decorar nuestro procesamiento principal con una veriedad de servicios comunes, como la seguridad, el logging, el depurado, etc. Estos filtros son componentes independientes del código de la aplicación principal, y pueden añadirse o eliminarse de forma declarativa.

Interfaz y Participantes

  • Manejador de Filtros: Crea la Cadena de Filtros a comprobar, en su orden correspondiente.
  • Cadena de Filtros: es una secuencia ordenada de filtros.
  • Filtro: Filtros individuales mapeados a un objetivo, son procesado a peticion de Cadena de Filtros.
  • Objetivo: El recurso que el Cliente solicitó.
  • Cliente: Solicita un recurso al Manejador de Filtros.

A continuación se ofrece el diagrama de secuencia de colaboración entre los participantes del patrón.

Clasificación

Otros

Enlaces externos

Contenidos relacionados

Pautas
Área: Desarrollo » Patrones de Diseño » Capa de presentación
Código Título Tipo Carácter
LIBP-0345 Uso de Patrones J2EE de la Capa de Presentación Libro de pautas Directriz Recomendada
Recursos
Área: Desarrollo » Patrones de Diseño
Código Título Tipo Carácter
RECU-0013 Patrones de diseño Ficha Recomendado