Documentación Proyecto Preventaweb completo

Anuncio
1
Proyecto Preventaweb
Documentación Proyecto
Preventaweb
ÍNDICE
1.
Estructura del Proyecto .................................................................................................. 2
2.
Organización en Capas................................................................................................. 12

Capa de Acceso a Datos .......................................................................................... 12

Capa de Negocios ...................................................................................................... 12

Capa de Servicios Web. ............................................................................................ 12

Capa de Vista de la Aplicación. .............................................................................. 12
Proyecto Preventaweb
2
1. Estructura del Proyecto
El Proyecto del sistema preventa web constituye el centro de funcionalidad de la
aplicación, es decir, el Servidor del mismo. El mismo se encuentra estructurado como
una aplicación Java de tipo web. El mismo lo que hace es publicar los servicios
básicos en el servidor de aplicaciones Apache Tomcat. Para ello, implementa las
funcionalidades básicas de altas, bajas y modificaciones de los diferentes registros de
las tablas de la base de datos. Para ello, se estructura a la aplicación en diferentes
capas, entre las cuales se considera las clases de acceso a datos, los ABM de los
registros, el mapeo de entidades de datos relacionales al modelo de objetos, y los
servicios web. La idea base de este proyecto es la de funcionar como el servidor de
datos de la aplicación, de modo tal que la misma maneje en forma centralizada las
sincronizaciones de los distintos vendedores que utilizan la aplicación Android en una
base de datos SQLite central, para luego levantar los cambios en el ERP.
Para ello se hizo uso de los lenguajes y los frameworks que se mencionó
anteriormente:

En el Servidor:
o Todo el desarrollo completo del sistema se realizó en el entorno de
desarrollo Eclipse.
o Se utilizó el lenguaje de programación Java para desarrollar todas las
capas.
o Se utilizan archivos XML para efectuar la configuración de los distintos
componentes de la aplicación.
o Se utiliza Hibernate para construir la capa de acceso a datos.
o Se utiliza Spring para formular el sistema de modo de exponer sus
funcionalidades mediante Servicios Web.
o Se utiliza Apache Maven para manejar la estructura completa del
proyecto y gestionar las dependencias.
o El componente Servidor de la aplicación se publica en el servidor
Apache, de modo tal que desde el cliente se consuman los servicios web y se
utilicen bases de datos SQLite para sincronizar información en estado offline u
online.
 En el cliente se trata de una aplicación Android, que opera sobre dispositivos
móviles que brindan soporte a la misma. Esta aplicación consume los servicios web
publicados por el servidor (La aplicación Java Web) para sincronizarse con los datos
del mismo; cuando se encuentra offline, registra todas sus operaciones mediante el
uso de bases de datos SQLite localmente; y cuando se encuentra online, se conecta
al servidor y sincroniza sus datos en el mismo mediante los servicios web.
La estructuración del proyecto Preventaweb es la indicada en la figura siguiente:
3
Proyecto Preventaweb
Como se puede visualizar en la figura correspondiente, el proyecto parte del
directorio ar.com.vgmsistemas.
Dentro de la estructura básica, para la vista de exploración tenemos:
 src/main/java – en este paquete se muestran todos los paquetes de la
aplicación. Los mismos son:
o ar.com.vgmsistemas.dto – este paquete contiene todas las clases de
entidad que representan los objetos de acceso a datos. Cada clase Java define
un objeto de la base de datos que se corresponde con una tabla de la misma, y
se caracteriza por poseer los atributos correspondientes, los getters y setters
de cada uno.
4
Proyecto Preventaweb
o ar.com.vgmsistemas.dto.mapping – este paquete contiene todos los
ficheros de mapeo XML de las tablas de la base de datos, los mismos son los
correspondientes a cada clase del paquete anterior. Son ficheros que tienen la
extensión .hbm.XML, ya que son los ficheros de mapeo de Hibernate.
5
Proyecto Preventaweb
o ar.com.vgmsistemas.dao – este paquete contiene interfaces asociadas
con las cada objeto de datos que extienden de la clase IGenericDao, la cual
tiene los métodos de ABM y consultas básicos y sin implementación.
6
Proyecto Preventaweb
o ar.com.vgmsistemas.dao.filesystem – este paquete posee la clase
denominada ManageFilesDao.java, la cual se caracteriza por realizar
operaciones sobre archivos del sistema de archivos del equipo. Se utiliza para
cargar, copiar o transferir datos en la base de datos en función a lo presente en
los archivos.
o ar.com.vgmsistemas.dao.hibernate – este paquete posee las clases
necesarias para realizar el ABM de las diferentes entidades, mapeadas a
archivos XML en el paquete dto.mapping, de las cuales cada una extiende de
7
Proyecto Preventaweb
la clase GenericHibernateDao.java, la cual define los métodos base que son
implementados en las otras.
o ar.com.vgmsistemas.Helper – este paquete posee la clase Helper, que
posee los métodos básicos para manejar el contexto de los servicios web, con
JAXB1.
o ar.com.vgmsistemas.service – este paquete contiene las interfaces
correspondientes a los servicios web de la aplicación. Los mismos luego son
implementados en el paquete webservice.
1
JAXB: es una clase que forma parte del estándar para servicios web con SOAP y otras clases asociadas,
JAXR y JAXW-S.
8
Proyecto Preventaweb
o ar.com.vgmsistemas.webservice – este paquete posee las clases java
correspondientes a la implementación de cada servicio web.
o ar.com.vgmsistemas.configuration – este paquete posee la clase java
Configuracion.java, la cual permite trabajar con la base de datos nativamente,
y posee los métodos para manejar el nombre y la URL de la base de datos.
9
Proyecto Preventaweb
o ar.com.vgmsistemas.bo – este paquete contiene las clases que abstraen
los procesos de negocio de la aplicación. Las mismas llaman a sus
correspondientes concretizaciones en el paquete Bo.
 src/main/resources – este directorio contiene los recursos correspondientes
de la aplicación. En este caso, se cuenta con el fichero log4j.properties, el cual se
utiliza para el manejo de eventos de log de la aplicación y es el único recurso
requerido por la misma.
 src/test/java – en este directorio se deben ubicar los ficheros de test de unidad
JUnit para el sistema, que en esta implementación no se disponen.
 src/test/resources – en este directorio se ubican los recursos para los test
definidos en el paquete anterior.
 JRE System Library – en este directorio se ubican todas las librerías utilizadas
por la aplicación.
10
Proyecto Preventaweb
 Maven Dependencies – en este paquete se ubican todas las dependencias
requeridas por el componente Maven que utiliza la aplicación.
 src – este paquete contiene los ficheros y archivos de configuración de la
aplicación
11
Proyecto Preventaweb
En donde se puede visualizar los directorios main y test. Dentro del directorio main
tenemos el directorio de la aplicación, llamado webapp y dos subdirectorios
asociados; bd donde tenemos los ficheros de configuración de la base de datos y
WEB-INF, que contiene los ficheros de configuración XML de la aplicación. Luego se
tiene el fichero index.jsp, que es la página que se mostrará al inicio en el navegador
web cuando se inicialice la aplicación.
 Target – contiene todos los componentes que se empaquetarán dentro de la
aplicación cuando se la construya para obtener el fichero .war.
 Pom.xml – es el fichero de configuración de implementa el modelo de objetos
de Maven para la aplicación.
En el desarrollo del proyecto Preventaweb se utiliza la herramienta de versionado
para mantener bajo control de versiones al mismo. Para ello, se dispone de un
repositorio Google Code y allí se encuentra depositado el código fuente del proyecto.
La estructura del repositorio es la siguiente:
12
Proyecto Preventaweb
En donde se puede visualizar que el árbol de estructuración del proyecto posee dos
ramas, Cobranza y Egresos. Cobranza es la raíz del sistema definitivo y egresos
es la copia correspondiente que se encuentra en producción.
2. Organización en Capas
El proyecto Preventaweb se caracteriza por poseer una arquitectura ClienteServidor, siendo las siguientes las capas que lo conforman:

Capa de Acceso a Datos: en esta capa se encuentra toda la lógica para el
acceso a los datos presentes en la base de datos de la aplicación. Se realiza el mapeo
objeto-relacional con los datos presentes en la bases de datos SQLite. (Para más
información, ver Documentación Capa de Acceso a Datos).

Capa de Negocios: en esta capa se encuentra toda la lógica de la aplicación
cuya función es la de realizar las operaciones definidas para el negocio en sí. Las
funciones generales aquí son las de alta, baja y modificaciones. (Para más
información, ver Documentación Capa de Negocios).

Capa de Servicios Web: en esta capa se encuentran presente los diferentes
servicios web, que proveen las funcionalidades para ser consumidas por las
aplicaciones Android que corren en los dispositivos móviles. (Para más información,
ver Documentación Capa de Servicios Web).

Capa de Vista de la Aplicación: en esta capa se ubica toda la lógica para
construir la interface de usuario de tipo web de la aplicación. En esta implementación
en particular no se puso énfasis en esta capa ya que lo importante es ofrecer los
servicios web para que los clientes puedan consumirlos. Es por ello que no se
documenta esta capa.
Descargar