1. Requisitos y Patrones de diseño en J2EE
Presentaremos una lista de requisitos que surgen a la hora de crear una aplicación J2EE. Junto al requisito, se indica el o los patrones que se suelen aplicar. Esto puede ser util a la hora de identificar cual puede ser (los) patrones a aplicar.
|
Requisitos |
Patrones |
|---|---|
|
Intercepting Filter |
|
|
Añadir la capacidad de logging, depuracion, u otro comportamiento que debe completar cada request |
Front Controller Intercepting Filter |
|
Centralizar el control para el manejo de la request |
Front Controller Intercepting Filter Application Controller |
|
Crear un interfaz generico de tipo Command o un objeto que contenga el contexto, de manera que se reduzca el acoplamiento entre los elementos que manejan el control c y los elementos que actuan como helpers |
Front Controller Application Controller Context Object |
|
Si hemos de implementar nuestro Controller como un servlet o bien como JSP |
Front Controller |
|
Crear una vista a partir de varias sub-vistas |
Composite View |
|
Si hemos de implementar nuestra View como un servlet bien como JSP |
View Helper |
|
Como descomponer nuestra View y Model |
View Helper |
|
Donde encapsular los datos provenientes de la presentacion y su logica |
View Helper |
|
Si debemos de implementar nuestros Helpers como JavaBeans o como Custom tags |
View Helper |
|
Combinar multiples patrones de presentación |
Intercepting Filter Dispatcher View |
|
Donde encapsular el manejo de la Vista y la lógica de Navegacion, lo que implica seleccionar una de las Vistas y servirla |
Pattern Service to Worker Dispatcher View |
|
Donde guardar el estado de la Session |
Session State on the Client Session State in the Presentation Tier Storing State on the Business Tier |
|
Control de acceso del cliente a ciertas vistas |
Design "Controlling Client Access" Hide Resources From a Client |
|
Controlar el flujo de requests hacia la aplicacion |
Design "Duplicate Form Submissions" Design "Introduce Synchronizer Token" |
|
Controlar la llegada de submits duplicados |
Design "Duplicate Form Submissions" Introduce Synchronizer Token |
|
Problemas de diseño al usar el mecanismo de populacion de valores estandar de JSP <jsp:setProperty> |
"Helper PropertiesâIntegrity and Consistency" |
|
Reducción del acoplamiento entre la capa de presentación y la de negocio |
"Hide Presentation Tier-Specific Details From the Business Tier" "Introduce Business Delegate" |
|
Particionar el codigo de acceso a datos |
"Separate Data Access Code |
|
Requisitos |
Patrones |
|---|---|
|
Reducir el acoplamiento entre la capa de presentación y la capa de negocio |
Business Delegate |
|
Poner en cache los servicios de la capa de negocio a los clientes |
Business Delegate |
|
Ocultar los detalles de implementacion de lookup/creacion/acceso de los servicios de la capa de negocio |
Business Delegate Service Locator |
|
Encapsular las dependencias propietarias de lookup en los servicios |
Service Locator |
|
Proveer un metodo uniforme para lookup y creacion en los servicios de la capa de negocio |
Service Locator |
|
Ocultar la complejidad de las dependencias de los enterprise bean y el lookup de los componentes JMS |
Service Locator |
|
Transferir los datos entre los objetos de negocio y los clientes pasando por las distintas capas |
Transfer Object |
|
Proveer de un interfaz simple para los clientes remotos |
Business Delegate Session Façade Application Service |
|
Reducir las invocaciones a metodos remotos mediante el acceso a metodos que agrupen varias funcionalidades dentro de la capa de negocio |
Session Façade |
|
Manejar las relaciones entre los componentes enterprise bean y ocultar la complejidad de las interacciones |
Session Façade |
|
Proteger los componentes de la capa de negocio de ser expuestos directamente al cliente |
Session Façade Application Service |
|
Proveer una capa uniforme de acceso a los componentes de la capa de negocio |
Session Façade Application Service |
|
Implementar un modelo conceptual de dominio complejo mediante objetos |
Business Object |
|
Identificar objetos que manejan dependencias y sus objetos dependientes en el diseño de objetos de negocio y entity beans |
Business Object Composite Entity |
|
Diseñar entity beans que manejan varias otras dependencias |
Composite Entity |
|
Reducir o eliminar la dependencia entre entity beans y el esquema de base de datos |
Composite Entity |
|
Reducir o eliminar la dependencia entre entity beans locales y entity beans remote |
Composite Entity |
|
Reducir el numero de entity beans y mejorar su manejo |
Composite Entity |
|
Obtener el modelo de datos de la aplicacion a partir de componer varios componentes de la capa de negocio |
Transfer Object Assembler |
|
Construcción dinamica del modelo de datos de aplicacion |
Transfer Object Assembler |
|
Ocultar la complejidad de la construcción del modelo de datos a los clientes |
Transfer Object Assembler |
|
Proveer de un procesamiento de peticiones y resultados en la capa de negocio |
Value List Handler |
|
Reducir la sobrecarga del uso de metodos lookup de enterprise bean |
Value List Handler |
|
Proveer de peticion-resultados cacheados para el cliente, dentro del servidor, con posibilidad de hacer-deshacer |
Value List Handler |
|
Elegir entre el uso de sessions beans con estado o sin el |
Session Bean—Stateless Versus Stateful |
|
Evitar el acceso directo por parte del cliente a entity beans |
Wrap Entities With Session |
|
Encapsular los servicios de la capa de negocio y ocultar los detalles de implementación |
Introduce Business Delegate |
|
Añadir logica de negocio dentro de un entity bean |
Business Logic in Entity Beans Move Business Logic to Session |
|
Crear session beans como gruesos servicios de la capa de negocio |
Merge Session Beans Wrap Entities With Session |
|
Reducir o eliminar sobrecargas de red o servidor debido a la comunicacion entity-bean-to-entity-bean |
Reduce Inter-Entity Bean Communication |
|
Particionar el codigo de acceso a datos |
Separate Data Access Code |
|
Requisitos |
Patrones |
|---|---|
|
Reducir el acoplamiento entre la capa de negocio y la de recursos |
Data Access Object |
|
Centralizar el acceso a la capa de recursos |
Data Access Object |
|
Minimizar la complejidad de los componentes de la capa de recursos y los de la capa de negocio |
Data Access Object |
|
Proveer procesamiento asincrono en aplicaciones empresariales |
Service Activator |
|
Enviar una peticion asincrona hacia los servicios de la capa de negocio |
Service Activator |
|
Procesamiento asincrono de una peticion, subdividiendola en sub tareas concurrentes |
Service Activator |
|
Persistir de manera transparente un objeto del modelo |
Domain Store |
|
Implementar un framework de persistencia propio |
Domain Store |
|
Exponer un servicio web mediante XML y un protocolo standard de Internet |
Web Service Broker |
|
Ofrecer de forma centralizada y distribuir servicios existentes bajo la forma de web services |
Web Service Broker |
No hay comentarios :
Publicar un comentario