You are on page 1of 3

Arquetipos para proyectos medianos

RECU-0124 (RECURSO ARQUETIPO SOFTWARE)

Tabla de contenidos

1. Introducción

2. Descripción

3. Arquetipo

4. Despliegue

5. Capturas

6. Contenidos relacionados

Área: Arquitectura Tecnológica

Carácter del recurso: Recomendado

Tecnologías: Java

Introducción

Este arquetipo pretende ser un punto de partida en la configuración y la estructura de aquellos


proyectos que no requieran de una gran envergadura ni la necesidad de servidor de
aplicaciones.

Este proyecto presenta una características funcionales concretas:

Presentan una complejidad considerada baja - media.

Presentan un tamaño considerado como bajo - medio.

Existe una concurrencia de usuarios considerada como media - alta.

Considera que es una aplicación de entorno de producción interno para cuestiones de


seguridad.

No es un sistema distribuido.

Por ello se ha recomendado seguir una arquitectura como la siguiente:

JSF para la capa de presentación, eligiendo RichFaces para su implementación.

JBoss Seam para la capa de negocio.

JPA para la capa de acceso a datos.

Descripción

Se ha escogido una estructura simple para su desarrollo, siguiendo el manual Estructura del
software del proyecto propuesto por MADEJA.

Se ha optado por la utilización de Facelets y JSF 1.2 RI como implementación de JSF, RichFaces
como implementación de funcionalidades Ajax por el soporte que da Seam a esta librería y su
mayor flexibilidad que ICEFaces, Seam como Framework de inyección de dependencias, IoC y
lógica de negocio de la aplicación.
La especificación JSR 299, que define el estándar de inyección e IoC, se basa fuertemente en
esta librería por lo que, para realizar el cambio, será suficiente con una mínima adopción del
estándar. La configuración por convenio y anotaciones de Seam le hace depender de muy
pocos xml de configuración. Seam también añade un nuevo contexto, transparente al
programador, de conversación.

Las entidades están definidas completamente con anotaciones JPA, sin ningún xml ni
referencia a ellas en el persistente.xml.

La configuración de los DAOS se ha realizado haciendo uso del patrón GenericDAO, que
definen unos métodos comunes a todos los DAOS. Existe una clase DAO por cada entidad y
dispone de una interfaz donde se definen e implementan los métodos propios, junto a la
implementación del GenericDAO con JPA. Una factoría de DAOs a la que se le inyecta el
EntityManager de JPA y que evita el tener que inyectar una dependencia en cada uno. Con
esto se evita una innecesaria dependencia a una tecnología concreta.

En la capa negocio se ha utilizado el patrón Bridge, ya que mantiene la funcionalidad común,


como es el acceso a datos.

Arquetipo

Para obtener el arquetipo acceda a su ficha en el Catálogo de Software. Existen versiones para
Maven2 y Maven 3.

Despliegue

El entorno utilizado es una maquina con windows, con PostgreSQL 8.4 como servidor de base
de datos

En el script PostgreSQL.sql ubicado en el directorio /src/main/config/sql se encuentran las


instrucciones necesarias para la creación del usuario y base de datos, si fuera necesario,
además del esquema y tablas obligatorias para el funcionamiento del arquetipo

En cuanto al tema de empaquetación e instalación, se ha realizado como cualquier aplicación


maven (mvn package -PperfilDelEmpaquetado) y una vez generado el war, se ha probado en
tomcat 6.0.20 pero deberia funcionar en cualquier versión de Tomcat 6.X .

Se utiliza el manager de tomcat para despliega el war.

Si se desea usar jetty con maven se utiliza la instrucción jetty:run-war -PperfilDelEmpaquetado

Instrucciones sobre PostgreSQL

El arquetipo intenta conectarse con un usuario madeja/madeja en una base de datos llamada
madeja y, con esa conexión, a un esquema llamado mdj_proy donde deberían estar el modelo
de datos. En el script están todas las instrucciones para configurar una instancia de PostgreSQL
para no tener que configurar el arquetipo. Se divide en dos bloques

Primer Bloque "configuración inicial" (Opcional)

Creación de un usuario madeja con contraseña madeja.

Creación de una base de datos con nombre madeja asociada al usuario madeja creado
anteriormente.

Segundo Bloque "creación estructura" (Obligatorio)


Creación del esquema mdjs_proy.

Creación del modelo de datos.

El Primer Bloque es opcional si se configura la conexión del arquetipo en el filter


correspondiente al entorno.

Capturas

You might also like