Anda di halaman 1dari 9

Patrones de Diseos aplicados al

desarrollo de Software JAVA EE

Patrones de Diseos aplicados al desarrollo de Software JAVA

Objetivos
 Necesidad de un orden y de estndares
 Revisin de los Patrones de diseo

Patrones de Diseos aplicados al desarrollo de Software JAVA

Page 1

Motivacin
 Disear soluciones basadas en tecnologa
OO en forma ordenada
 Presentar soluciones estndares para la
implementacin aplicaciones empresariales

Patrones de Diseos aplicados al desarrollo de Software JAVA

Arquitectura J2EE

Patrones de Diseos aplicados al desarrollo de Software JAVA

Page 2

Ejemplo: Patrones J2EE


 El 8 de Marzo del 2001, el Centro Java de Sun public (como
beta) un catlogo de patrones.
 Los patrones J2EE describen tpicos problemas encontrado por
desarrolladores de aplicaciones empresariales y proveen
soluciones para estos problemas.
 En esencia, estos patrones contienen las mejores soluciones para
ayudar a los desarrolladores a disear y construir aplicaciones
para la plataforma J2EE.
 Aunque estos patrones son representados desde un nivel lgico
de abstraccin, todos contienen en sus descripciones originales
en la web de Sun, varias estrategisa que ofrecen una gran
cantidad de detalles para su implementacin.
 En los primeros 60 das en los que estos patrones estuvieron a
disposicin de los desarrolladores (en forma de documentos
Html), fueron accedidos ms de 120.000 veces, lo que evidencia
el xito de estas soluciones dentro de la comunidad Java.

Patrones de Diseos aplicados al desarrollo de Software JAVA

Diseo de aplicaciones web con los Core


J2EE Patterns
 El diseo de aplicaciones Web basadas en los
Patrones J2EE se organiza alrededor de la
utilizacin de varios elementos:
Un controlador frontal, dispatchers
(despachadores),
Vistas compuestas (composite views), vistas
(JSPs) y
Los helpers (ayudantes) de las vistas
(JavaBeans).

Patrones de Diseos aplicados al desarrollo de Software JAVA

Page 3

Patrones de Diseo de J2EE


 Para explicar el funcionamiento de cada uno de los patrones de
diseo que se mencionarn a continuacin, nos basaremos en el
Catlogo de Patrones de J2EE presentado en el Sitio Web Oficial
de Sun Microsystems [1].
 Los patrones de diseo de J2EE presentados por Sun
Microsystems, han sido divididos en capas (presentacin,
negocios, integracin) segn su funcionalidad.
 Los patrones de la capa de presentacin contienen toda la
informacin relacionada con los servlets y tecnologa JSP [1].
 Los patrones de la capa de Lgica de Negocios, contienen toda la
informacin relacionada con los Enterprise Java Beans.
 Por ultimo, los patrones de la capa de Integracin contienen toda
la informacin relacionada con el Java Message Service [1] y la
tecnologa para conexin con base de datos de java JDBC.

Patrones de Diseos aplicados al desarrollo de Software JAVA

Capas y Patrones
 El catlogo de patrones de
J2EE, esta basado en las
capas numeradas 1, 2, 3, que
se muestran en la figura,
 Esta separacin permite que
los patrones diseados para
cada componente puedan
enfocarse en aspectos
especficos del desarrollo de la
aplicacin, adems de proveer
una mayor modularidad y la
posibilidad de realizar cambios
en un componente
determinado sin afectar a los
otros componentes.

Patrones de Diseos aplicados al desarrollo de Software JAVA

Page 4

Patrn Decorating Filter


 Contexto:
 La mayora de los sistemas existentes en Internet manejan solicitudes web
 El procesamiento de dichas solicitudes involucra un nmero variable de
servicios en el sistema.
 Problema
 El problema central en el cual se enfoca este patrn es el pre-procesamiento y
post procesamiento de peticiones, por lo cual se debe proveer un mecanismo
que permita aadir y remover componentes que sirvan para realizar el
procesamiento de las peticiones que llegan al sistema.

Patrones de Diseos aplicados al desarrollo de Software JAVA

Patrn Front Controller


 Contexto
 Este patrn surge con la finalidad de proveer un mecanismo que permita a
la capa de presentacin controlar y coordinar el procesamiento de cada
usuario a lo largo de mltiples solicitudes, adems debe permitir
administrar dichos mecanismos de una forma centralizada o distribuida.
 Problema
 El problema principal que debe resolver este patrn es que el sistema
requiere un punto de acceso centralizado para el manejo de solicitudes de
la capa de presentacin para con ello, ayudar a la integracin de los
servicios del sistema, recuperacin de contenido, manejo de vistas y
navegacin.
 Cuando el usuario accede a una vista directamente sin pasar a travs de un
mecanismo centralizado

Patrones de Diseos aplicados al desarrollo de Software JAVA

Page 5

10

Patrn Helper View


 Contexto
 Los Sistemas manejan solicitudes Web. Los procesos de la capa de presentacin
requieren la generacin de una vista basada en una plantilla y un modelo dinmico.
 Problema
 Los cambios de la capa de presentacin ocurren a menudo y son difciles de desarrollar
y mantener, debido a la combinacin de la lgica de negocio para el acceso a los datos
y la lgica de formateo de la presentacin, esto hace que el sistema sea menos flexible,
menos reutilizable, y menos adaptable a los cambios.
 Mezclar la lgica de negocio con el procesamiento de las vistas tambin reduce la
modularidad y disminuye la separacin de roles a la hora de asignar tareas a los
miembros de un equipo de desarrollo de software o de aplicaciones web.

Patrones de Diseos aplicados al desarrollo de Software JAVA

11

Patrn Service to Worker


 Contexto
 Los Sistemas manejan solicitudes Web.
 Los procesos de la capa de presentacin requieren la generacin de una vista
basada en una plantilla y un modelo dinmico.
 Problema
 Los cambios de la capa de Presentacin ocurren a menudo y son difciles de
desarrollar y mantener, debido a la combinacin de la lgica de negocio para
el acceso a los datos y la lgica de formateo de la presentacin, esto hace que
el sistema sea menos flexible, menos reutilizable, y menos adaptable a los
cambios.

Patrones de Diseos aplicados al desarrollo de Software JAVA

Page 6

12

Patrn Dispatcher View


 Contexto
 Los Sistemas manejan solicitudes Web. Los procesos de la capa de presentacin
requieren la generacin de una vista basada en una plantilla y un modelo dinmico.
 Problema
 Los cambios de la capa de Presentacin ocurren a menudo y son difciles de
desarrollar y mantener, debido a la combinacin de la lgica de negocio para el acceso
a los datos y la lgica de formateo de la presentacin, esto hace que el sistema sea
menos flexible, menos reutilizable, y menos adaptable a los cambios.
 Las porciones de lgica de negocio que son mezcladas con las vistas deben ser
adaptadas al modelo intermedio para su visualizacin.
 Mezclar la lgica de negocio con el procesamiento de las vistas tambin reduce la
modularidad y disminuye la separacin de roles a la hora de asignar tareas a los
miembros de un equipo de desarrollo de software o de aplicaciones web.

Patrones de Diseos aplicados al desarrollo de Software JAVA

13

Patrn Value Object


 Contexto
 La aplicacin cliente necesita intercambiar datos con algn Enterprise Java Bean
(EJB) o empaquetar datos para transferencia.

 Problema
 Los aplicaciones J2EE implementan componentes de negocios del lado de
servidor como beans de sesin (session beans) y beans de entidad (entity beans).
 Las aplicaciones J2EE requieren la estructuracin de paquetes de datos para la
transferencia WEB o EJB

Patrones de Diseos aplicados al desarrollo de Software JAVA

Page 7

14

Patrn Business Delegate


 Contexto
 El sistema expone sus servicios de negocio por medio de un API a sus clientes, a travs
de una red.
 Problema
 Los componentes de la capa de presentacin interactan directamente con los servicios
de la lgica de negocios. Esta interaccin expone los detalles de implementacin del API
de la capa de lgica de negocios hacia la capa de presentacin. Como resultado de esto,
los componentes de la capa de presentacin son vulnerables a los cambios de
implementacin que se realicen en la capa de lgica de negocios.
 Adicionalmente, podra existir un detrimento serio en el rendimiento de la red, debido a
que los componentes de la capa de presentacin que utilizan el API de la capa de lgica
de negocios, podran realizar mltiples invocaciones a travs de la red.
 Esto ocurre cuando los componentes de la capa de presentacin no poseen mecanismos
de cach o servicios agregados.
 Finalmente, la exposicin directa del API a los clientes, el mismo, se va obligado a lidiar
con la nter conectividad a la cual esta asociada la tecnologa de los EJB.

Patrones de Diseos aplicados al desarrollo de Software JAVA

15

Patrn Data Access Object


 Contexto
 El acceso a los datos puede variar dependiendo del origen de los datos
(datasource).
 El acceso a almacenes persistentes de datos, tales como una base de datos,
vara grandemente dependiendo del tipo de almacenamiento (bases de datos
relaciones, orientadas a objetos, etc) y la implementacin del fabricante.

 Problema
 Muchas aplicaciones J2EE pueden requerir el uso de data persistente en algn
momento. Para muchas aplicaciones, los repositorios persistentes utilizan
mecanismos diferentes y existen grandes diferencias entre las APIs usadas por
los distintos repositorios.
 Otras aplicaciones pueden necesitar acceder a los datos que residen en un
mainframe, un servicio B2B o un repositorio LDAP.
 Tpicamente, las aplicaciones usan componentes distribuidos compartidos para
representar la data persistente. Una aplicacin es analizada para determinar si
debe utilizar persistencia manejada por el bean(BMP) o por el contenedor de
beans(CMP).
 Las aplicaciones pueden usar el API JDBC para acceder a los datos residentes
en una base de datos relacional.
 El API JDBC permite un acceso estndar y manipulacin de datos en un
almacenamiento persistente. JDBC permite a las aplicaciones J2EE usar
sentencias SQL, las cuales son estndar para el manejo de tablas en bases de
datos relacionales. Sin embargo, incluso dentro de un ambiente relacional, la
sintaxis y el formato de las sentencias SQL puede variar dependiendo del
manejador de base de datos que se utilice.

Patrones de Diseos aplicados al desarrollo de Software JAVA

Page 8

16

Patrn Data Access Object

Patrones de Diseos aplicados al desarrollo de Software JAVA

Page 9

17

Anda mungkin juga menyukai