Documento de arquitectura
Y servicios
Versin <1.0>
Historia de Revisin
Fecha
Versin
Descripcin
Responsable
18/03/2005
<0.1>
Creacin.
Cristian Castaeda.
1/4/2005
<1.0>
INVESTIGADORES:
ALEJANDRO BAEZ
CRISTIAN CASTAEDA
DIEGO CASTAEDA
DIRECTOR:
JAVIER SANCHEZ
TABLA DE CONTENIDO
1. Introduccin......................................................................................................... 4
2. Capa de base de datos ....................................................................................... 5
2.1 Plataforma ..................................................................................................... 5
2.2 Diseo (Diagrama entidad relacin) .............................................................. 5
2.3 Implementacin ............................................................................................. 7
2.3.1 Tabla constante....................................................................................... 7
2.3.2 Tabla pelcula ......................................................................................... 7
2.3.3 Tabla caja................................................................................................ 8
2.3.4 Tabla subtitulo ......................................................................................... 8
2.3.5 Tabla audio ............................................................................................. 8
2.3.6 Tabla contrato ......................................................................................... 9
2.3.7 Tabla persona ......................................................................................... 9
2.3.8 Tabla referencias................................................................................... 10
2.3.9 Tabla factura ......................................................................................... 10
2.3.10 Tabla detalle........................................................................................ 10
3. Mapeo objeto - relacional .................................................................................. 11
3.1 Por que Hibernate?...................................................................................... 11
3.2 Modelo de objetos ....................................................................................... 11
4. Capa DAO ......................................................................................................... 14
4.1 Afiliados ....................................................................................................... 14
4.2 autorizados .................................................................................................. 15
4.3 Contratos ..................................................................................................... 16
4.5 Facturas....................................................................................................... 16
4.6 Pelculas ...................................................................................................... 17
4.7 Referencias.................................................................................................. 17
4.8 Usuario ........................................................................................................ 18
5. Capa de servicios.............................................................................................. 19
5.1 Contratos ..................................................................................................... 19
5.1.1 Crear contratos...................................................................................... 19
5.1.2 Eliminar contratos (desafiliar)................................................................ 19
5.1.3 Agregar Autorizado ............................................................................... 20
5.1.4 Eliminar Autorizado ............................................................................... 20
5.1.5 Actualizacin de una referencia ............................................................ 20
5.1.6 Actualizacin de los referencias de un contrato .................................... 21
5.1.7 Actualizacin de un autorizado ............................................................. 21
5.1.8 Actualizacin de los autorizados de un contrato ................................... 21
5.1.9 consultar contratos ................................................................................ 22
5.2 Pelculas ...................................................................................................... 22
5.2.1 Creacin Pelculas: ............................................................................... 22
5.2.2 Consulta de Pelculas:........................................................................... 22
5.2.3 Actualizacin de Pelculas:.................................................................... 23
2
1. Introduccin
Para la verificacin de los resultados del proyecto titulado: Framework unificado
para desarrollo de interfaces J2EE con soporte a objetos persistentes en bases de
datos relacinales, se ha decidido el desarrollo de una aplicacin que nos sirva
para probar los resultados de este.
Luego de analizar varias opciones, decidimos desarrollar una aplicacin para una
videotienda, debido que al desarrollar esta aplicacin se podrn verificar muchos
elementos que sern manejados dentro del desarrollo de este proyecto, tales
como manejo de interfaces y manejo de objetos persistentes entre otros.
En este documento se describe el diseo de la arquitectura para la aplicacin.
Para este proyecto hemos definido una arquitectura multicapas, entre las capas
que hemos definido tenemos: Base de datos, mapeo objeto relacional, DAO,
business services e interfaz.
Lo que presentaremos mas adelante es la explicacin de por que de estas capas y
cual fue el diseo en las capas que sea conveniente.
2.1 Plataforma
Para la implementacin del diseo de la base de datos de nuestra aplicacin de la
videotienda, ser sobre ORACLE, ya que sobre esta plataforma existe la facilidad
de que podemos trabajar sobre el servidor de la universidad y esta lo
suficientemente probada como para que se avale su uso. Adems, todos los
integrantes del grupo tenemos conocimiento de la plataforma.
Subtitulo: Indica los idiomas en los que esta subtitulada una pelcula.
Audio: sirve para representar los distintos idiomas en que esta hablada una
pelcula.
Constante: Entidad donde se guardan los valores globales que maneja el
sistema.
Caja: Entidad que sirve para representar las diferentes categoras que
pueden tener las pelculas segn su importancia o antigedad.
Persona: Representa los distintos tipos de clientes que pueden interactuar
con la videotienda. Pueden ser afiliados o beneficiarios.
Referencias: Sirve para guardar las referencias personales asociadas a un
contrato.
Contrato: Sirve para representar una afiliacin de una persona a la
videotienda.
Factura: Sirve para representar los ingresos de la videotienda. Estn
asociados a un contrato.
Detalle factura: Sirve para representar los distintos rubros que pueden ser
cobrados en una factura.
2.3 Implementacin
Para la implementacin del modelo anteriormente descrito se crearon las
siguientes tablas en la base de datos:
KEY
(ID_TIPO_FORMATO)
KEY
(ID_TIPO_GENERO)
(ID_TIPO_CAJA)
CONSTRAINT
AUD_AUCON_FK
REFERENCES CONSTANTE(ID));
FOREIGN
KEY
(ID_TIPO_AUDIO)
(TIPO_DOC=TI OR TIPO_DOC=CC
OR TIPO_DOC=CE) NOT NULL,
10
Es open source
Es un framework maduro, ya que es uno de los mas utilizados actualmente
con muy buenos resultados.
Hibernate da un completo soporte al modelo de programacin orientado a
objetos, lo cual es una ventaja en el desarrollo de este proyecto ya que este
se har sobre JAVA.
Ofrece un lenguaje natural para la bsquedas en la base de datos (HSQL)
que es muy similar al que hemos manejado(SQL).
Maneja XML para los mapeos, lo que hace que estos sean de fcil
entendimiento por la estructura que este maneja.
11
12
13
4. Capa DAO
La siguiente capa dentro de nuestra arquitectura es la capa DAO. Esta capa surge
de la necesidad de mantener la integridad de los datos que tenemos guardados en
la base de datos. Para esto, hemos decidido utilizar el patrn DAO, el cual sirve
para separar el acceso a los datos de capas como la de lgica de negocio o
presentacin. Esto permite asegurar la integridad de nuestra base de datos y
poder tener un mayo mantenimiento dentro de nuestra aplicacin.
Para nuestra aplicacin, hemos decidido tener daos para afiliados, autorizados,
contratos, facturas, pelculas, referencias y roles. Todos ellos se encuentra dentro
del paquete Co.Edu.Javeriana.Fwj2ee.Dao de nuestra aplicacin. Todas las clases
que pertenezcan a este paquete lanzaran la excepcin DAOException. A
continuaciones describirn las funciones de cada uno de esos DAOs.
4.1 Afiliados
Este DAO se encarga de la creacin, eliminacin, modificacin y lectura de los
afiliados que existan en la videotienda. Los procedimientos que ofrecer son los
siguientes:
public void crear( Afiliado Afiliado, int numeroContrato) throws
DAOException
Este mtodo servir para la creacin de nuevos afiliados a partir de un POJO
de Afiliado y el numero del contrato al cual esta asociado este afiliado
14
4.2 autorizados
Este DAO se encarga de la creacin, eliminacin, modificacin y lectura de los
autorizados que existan en la videotienda. Los procedimientos que ofrecer son
los siguientes:
public void crear( Autorizado autorizado, int numeroContrato) throws
DAOException
Este mtodo servir para la creacin de nuevos Autorizados a partir de un
POJO de Autorizado y el numero del contrato al cual esta asociado este
Autorizado.
15
4.3 Contratos
Este DAO se encarga de la creacin, eliminacin, modificacin y lectura de los
contratos que existan en la videotienda. Los procedimientos que ofrecer son los
siguientes:
public void crear( Contrato Contrato) throws DAOException
Este mtodo servir para la creacin de nuevos Contratos a partir de un POJO
de Contrato.
public void eliminar( Contrato Contrato) throws DAOException
Este mtodo servir para la eliminacin de un Contrato a partir de un POJO de
Contrato.
4.5 Facturas
Este DAO se encarga de la creacin, eliminacin, modificacin y lectura de las
facturas que existan en la videotienda. Los procedimientos que ofrecer son los
siguientes:
public void crear( Factura Factura) throws DAOException
Este mtodo servir para la creacin de nuevos Facturas a partir de un POJO
de Factura.
public void eliminar( Factura Factura) throws DAOException
Este mtodo servir para la eliminacin de un Factura a partir de un POJO de
Factura.
public Set buscar( Factura Factura) throws DAOException
Este mtodo servir para la bsqueda de Facturas a partir de un POJO de
Factura. Retornara un Set de facturas con las que concuerden con la bsqueda
o vacio.
16
4.6 Pelculas
Este DAO se encarga de la creacin, eliminacin, modificacin y lectura de las
pelculas que existan en la videotienda. Los procedimientos que ofrecer son los
siguientes:
public void crear( Pelicula Pelicula) throws DAOException
Este mtodo servir para la creacin de nuevos Pelculas a partir de un POJO
de Pelicula.
public void eliminar( Pelicula Pelicula) throws DAOException
Este mtodo servir para la eliminacin de un Pelicula a partir de un POJO de
Pelcula.
public Set buscar( Pelicula Pelicula) throws DAOException
Este mtodo servir para la bsqueda de Pelculas a partir de un POJO de
Pelicula. Retornara un Set de Pelculas con las que concuerden con la
bsqueda o vacio.
public void actualizar( Pelicula Pelicula) throws DAOException
Este mtodo servir para la actualizacin de la informacin de una Pelicula a
partir de un POJO con la nueva informacin.
4.7 Referencias
Este DAO se encarga de la creacin, eliminacin, modificacin y lectura de las
referencias que existan en la videotienda. Los procedimientos que ofrecer son los
siguientes:
public void crear( Referencia Referencia, int numeroContrato) throws
DAOException
Este mtodo servir para la creacin de nuevas Referencias a partir de un
POJO de Referencia y el numero del contrato al cual esta asociado este
Referencia.
17
4.8 Usuario
Este DAO se encarga de la creacin, eliminacin, modificacin y lectura de los
roles que existan en la videotienda. Los procedimientos que ofrecer son los
siguientes:
public void crear( Usuario usuario) throws DAOException
Este mtodo servir para la creacin de nuevos Roles a partir de un POJO de
Rol. Retornara un valor indicando si el Rol se pudo o no crear.
public void eliminar(Usuario usuario) throws DAOException
Este mtodo servir para la eliminacin de un Rol a partir de un POJO de Rol.
Retornara un valor indicando si el Rol se pudo borrar o no.
18
5. Capa de servicios
La siguiente capa dentro de nuestra arquitectura es la capa de servicios. Esta
capa es la encargada de manejar toda la lgica del negocio, proveyendo a las
capas superiores todas las funcionalidades que fueron descritas para el sistema.
Los servicios los hemos agrupado segn los elementos que estn implicados
dentro de este, los grupos que hemos definido son: contratos, pelculas, facturas y
reportes.
Todos
ellos
se
encuentra
dentro
del
paquete
Co.Edu.Javeriana.Fwj2ee.Service de nuestra aplicacin. Todas las clases que
pertenezcan a este paquete lanzaran la excepcin ServiceException.
A continuacin se definirn cada unote los servicios que ofrecern estos grupos.
5.1 Contratos
Dentro del grupo de los servicios ofrecidos para los contratos se han definido los
siguientes:
19
21
5.2 Pelculas
Dentro del grupo de los servicios ofrecidos para las pelculas se han definido los
siguientes:
22
23
5.3 Facturas
Dentro del grupo de los servicios ofrecidos para las facturas se han definido los
siguientes:
24
5.4 Reportes
Dentro del grupo de los servicios ofrecidos para los reportes se han definido los
siguientes:
25
26
6. Capa de interfaz
Finalmente, utilizando todas las capas que se definieron bajo ella se encuentra la
capa de interfaz o de presentacin, esta es la encargada de interactuar con el
usuario, por ello se debe tener especial cuidado para desarrollarla.
Para nuestro proyecto, esta interfaz va a estar desarrollada sobre J2EE, que es la
finalidad de este proyecto de grado. Por eso posteriormente se realizara un nuevo
documento donde se especifiquen todos los elementos de diseo que debe tener
esta capa, luego de que se profundice ms en este tema.
27
7. Conclusiones
Con la realizacin de este documento, se han definido claramente las capas sobre
las cuales se basar nuestra aplicacin de prueba, que de manera ms general,
sern las mismas sobre las cuales se enmarca el desarrollo de este proyecto de
grado. Esto permiti que se defina de mejor manera las funcionalidades de cada
una de estas capas, lo cual permite el desarrollo de un mejor diseo.
Est claro que ahora nos debemos preocuparnos por conocer ms de la ltima
capa de nuestra arquitectura, la capa de interfaz, porque es esta la piedra angular
de nuestro proyecto. Con el transcurso del proyecto, este documento se ir
depurando, lo que nos permitir establecer elementos importantes para la
definicin de la metodologa sobre la cual queremos trabajar.
28