Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Arquitecturayservicios (v0 1) PDF
Arquitecturayservicios (v0 1) PDF
CASO DE PRUEBA:
Sistema para el alquiler, control de pelculas y
clientes en una videotienda
Documento de arquitectura
Y servicios
Versin <0.1>
Historia de Revisin
Fecha
18/03/2005
Versin
<0.1>
Descripcin
Creacin.
Responsable
Cristian Castaeda.
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 pelicula ......................................................................................... 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..................................................................................... 9
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 ..................................................................................................... 15
4.5 Facturas....................................................................................................... 16
4.6 Pelculas ...................................................................................................... 17
4.7 Referencias.................................................................................................. 17
4.8 Roles............................................................................................................ 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 consultar contratos ................................................................................ 20
5.1.4 Agregar Autorizado ............................................................................... 20
5.1.4 Eliminar Autorizado ............................................................................... 20
5.1.5 Actualizacin de afiliados ...................................................................... 21
5.1.6 Actualizacin de autorizados................................................................. 21
5.2 Pelculas ...................................................................................................... 21
5.2.1 Creacin Pelculas: ............................................................................... 21
5.2.2 Consulta de Pelculas:........................................................................... 21
5.2.3 Actualizacin de Pelculas:.................................................................... 22
5.2.4 Eliminar Pelculas:................................................................................. 22
5.2.5 Alquilar pelculas ................................................................................... 22
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)
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. 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 boolean crear( Afiliado Afiliado, int numeroContrato)
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.
Retornara un valor indicando si el afiliado se pudo o no crear.
public boolean eliminar( Afiliado Afiliado)
Este mtodo servir para la eliminacin de un afiliado a partir de un POJO de
Afiliado en el que estar solamente la informacin de la cedula de este.
Retornara un valor indicando si el afiliado se pudo borrar o no.
public Set buscar( Afiliado Afiliado, int numeroContrato)
Este mtodo servir para la bsqueda de afiliados a partir de un POJO de
Afiliado en el que solo estar la informacin de los criterios de la bsqueda y/o
del contrato. Retornara un set con los POJOs que cumplen con los criterios.
Puede ser vaci.
public boolean actualizar( Afiliado Afiliado, int numeroContrato)
Este mtodo servir para la actualizacin de la informacin de un afiliado a
partir de un POJO con la nueva informacin y del numero de contratos.
Retornara un valor indicando si la informacin se pudo actualizar.
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 boolean crear( Autorizado autorizado, int numeroContrato)
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. Retornara un valor indicando si el Autorizado se pudo o no crear.
public boolean eliminar( Autorizado autorizado)
Este mtodo servir para la eliminacin de un Autorizado a partir de un POJO
de Autorizado en el que estar solamente la informacin de la cedula de este.
Retornara un valor indicando si el Autorizado se pudo borrar o no.
public Set buscar( Autorizado autorizado, int numeroContrato)
Este mtodo servir para la bsqueda de Autorizados a partir de un POJO de
Autorizado en el que solo estar la informacin de los criterios de la bsqueda
y/o del contrato. Retornara un set con los POJOs que cumplen con los
criterios. Puede ser vacio.
public boolean actualizar( Autorizado autorizado, int numeroContrato)
Este mtodo servir para la actualizacin de la informacin de un Autorizado a
partir de un POJO con la nueva informacin y del numero de contratos.
Retornara un valor indicando si la informacin se pudo actualizar.
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 boolean crear( Contrato Contrato)
Este mtodo servir para la creacin de nuevos Contratos a partir de un POJO
de Contrato. Retornara un valor indicando si el Contrato se pudo o no crear.
public boolean eliminar( Contrato Contrato)
Este mtodo servir para la eliminacin de un Contrato a partir de un POJO de
Contrato. Retornara un valor indicando si el Contrato se pudo borrar o no.
15
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 boolean crear( Factura Factura)
Este mtodo servir para la creacin de nuevos Facturas a partir de un POJO
de Factura. Retornara un valor indicando si la Factura se pudo o no crear.
public boolean eliminar( Factura Factura)
Este mtodo servir para la eliminacin de un Factura a partir de un POJO de
Factura. Retornara un valor indicando si la Factura se pudo borrar o no.
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 boolean crear( Pelicula Pelicula)
Este mtodo servir para la creacin de nuevos Pelculas a partir de un POJO
de Pelicula. Retornara un valor indicando si la Pelicula se pudo o no crear.
public boolean eliminar( Pelicula Pelicula)
Este mtodo servir para la eliminacin de un Pelicula a partir de un POJO de
Pelicula. Retornara un valor indicando si la Pelicula se pudo borrar o no.
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 boolean crear( Referencia Referencia, int numeroContrato)
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. Retornara un valor indicando si el Referencia se pudo o no crear.
17
4.8 Roles
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 boolean crear( Rol Rol)
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 boolean eliminar( Rol Rol)
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.
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
5.2 Pelculas
Dentro del grupo de los servicios ofrecidos para las pelculas se han definido los
siguientes:
21
Definicin: Para la lectura de pelculas se debe recibir los criterios que debe tener
la pelcula que se quiere leer. El sistema deber realizar una bsqueda con HSQL
segn los criterios que se reciban y deber retornar el(los) POJO que
corresponda.
Prototipo: public Set consultarPelicula(Pelcula pelcula)
22
5.3 Facturas
Dentro del grupo de los servicios ofrecidos para las facturas se han definido los
siguientes:
23
5.4 Reportes
Dentro del grupo de los servicios ofrecidos para los reportes se han definido los
siguientes:
25
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 mas en este tema.
La definicin de las interfaces para nuestro sistema esta en el documento
Descripcin de Pantallas; Para mayor informacin al respecto remtase a este
documento.
26
7. Conclusiones
Con la realizacin de este documento, se han definido claramente las capas sobre
las cuales se basara nuestra aplicacin de prueba, que de manera mas 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.
Esta claro que ahora nos debemos preocuparnos por conocer mas de la ultima
capa de nuestra arquitectura, la capa de interfaz, por que es esta la piedra angular
de nuestro proyecto. Con el transcurso del proyecto, este documento se ira
depurando, lo que nos permitir establecer elementos importantes para la
definicin de la metodologa sobre la cual queremos trabajar.
27