Download anexo iv - Consell de Mallorca

Document related concepts
no text concepts found
Transcript
ANEXO IV
GUÍA DE DESARROLLO DE PROYECTOS J2EE
Consell de Mallorca
Servei d'Informàtica y Telecomunicacions
Versión 3.0
Junio 09
Índice
!
"
#
$
!
Guía de desarrollo proyectos J2EE - Consejo de Mallorca
2
1. Glosario
A continuación tenemos un glosario de términos utilizados en este documento:
•
Portlets: Micro aplicaciones autocontenidas compatibles con la especificación JSR-168 y
desplegables en un servidor compatible.
•
JSR: Java Specification Requests. Especificaciones y estándares para la tecnología JAVA.
o
JSR-168 y JSR-170: Estándares para la construcción de portlets. Ésta "Java
Specification Request" se compone de las interfaces y métodos para poder desplegar
un portlet en cualquier sistema de portales compatible con esta especificación.
o
JSR-127 y JSR-252: Estándares para la creación y mantenimiento de interfaces de
usuario
en
aplicaciones
de
servidor
en
Java
(http://www.jcp.org/en/JSR/detail?id=127). Es una implementación seguida por
diferentes fabricantes mayoritarios y bajo el marco de las "Java Specification
Request". Su implementación legacy es la Java Server Faces de Sun. No obstante,
diferentes fabricantes (Oracle, Apache) han desarrollado sus implementaciones
compatibles.
•
XML (eXtensible Markup Language o lenguaje de marcado extensible): Lenguaje basado
en documentos de texto plano con etiquetas que delimitan los elementos. Fue desarrollado
originalmente por W3C para separar en una plana web el contenido de la estructura, y con la
finalidad de acabar sustituyendo el HTML (http://www.w3.org/XML/). En la actualidad se ha
convertido en el formato estándar para intercambiar información entre aplicaciones.
•
JAAS (Java Authentication and Authorization Service): Interfaz Java para acceder a
servicios de autenticación y autorización de forma desvinculada al propio servicio
(http://java.sun.com/products/jaas/). Existen módulos de autenticación por Windows,
Kerberos, JNDI, etc. Para la autorización, JAAS extiende la arquitectura de seguridad de Java
y proporciona una política de control de acceso por usuario, grupos o roles.
•
Webservices: Aplicación de Software diseñada para soportar la interacción entre máquinas a
través de una red. Se rigen por una serie de estándares abiertos como XML, WSDL, UDI y
WSS (Oasis) que los hace independientes de la plataforma y del lenguaje de programación.
Se utiliza SOAP como protocolo de transporte.
•
POJO (Plain Old Java Object): término utilizado para enfatizar que un objeto Java no es
mes que un objeto bean de utilidad básica. A la practica son un conjunto de APIS hechas por
diferentes fabricantes que dan una alternativa a la implementación J2EE para EJB.
•
CASO (Central Authentication Service): Servicio de autenticación central para permitir la
integración a nivel de autenticación de diferentes sistemas.
•
Hibernate: Framework para implementar la capa de persistencia en Java. Es un proyecto de
código abierto que permite el mapeo de objetos a una base de datos relacional con su propio
lenguaje de acceso a los datos HQL y con SQL.
•
JPA (Java Persistence APIO): Framework para implementar la capa de persistencia en
Java. Es un proyecto de código abierto que permite el mapeo de objetos a una base de datos
relacional.
•
ICEFaces: Framework de componentes ajax java para el desarrollo de aplicaciones basadas
en el framework de desarrollo JSF(java server faces)
•
ZK: Framework java para el desarrollo de aplicaciones basadas en ajax
Guía de desarrollo proyectos J2EE - Consejo de Mallorca
3
2. Objetivo
Este documento contiene la descripción del entorno tecnológico y las bases para seguir un estándar
en el desarrollo de las aplicaciones J2EE. Las especificaciones descritas para el desarrollo de las
aplicaciones, está orientado a que puedan ser desplegadas y ejecutadas dentro de la intranet basada
en un portal de sexta generación.
Este documento se focaliza sobre el entorno tecnológico, guía de desarrollo e implantación,
nomenclatura y otras convenciones del entorno a producción
3. Entorno tecnológico
El sistema implantado sobre el que se desarrollará el proyecto dispone de:
LIFERAY: Portal "agregador de servicios web". Instalado sobre el servidor de aplicaciones
Apache Tomcat v.6
ALFRESCO: Gestor documental, que incorpora un sistema de gestión de Workflow.
Oracle Database 10 gr Real Application Cluster: para la base de datos relacional.
Capa lógica: J2EE1.5 (o superior), Portlets (JSR-168 y JSP-170).
Capa presentación: utilización de AJAX (frameworks: ICEFaces o ZK) para el desarrollo de
herramientas de backoffice, HTML, JSP, Java Server Faces (JSR-127 y JSR-252) o superior
por contenidos o herramientas de frontoffice.
Los mecanismos de autenticación y control de acceso se basan en los proporcionados por CAS
(Central Authentication Service) a nivel de servidor de aplicaciones.
El mecanismo de autenticación es único (Single-Sign-On):
Se permite el acceso a los usuarios de ALFRESCO a través del portal LifeRay.
Los usuarios que sean trabajadores del Consell de Mallorca, ya están dados de alta en un
Active Directory.
Los usuarios externos (ciudadanos, empresas, ayuntamientos u otras entidades) están
almacenados en un repositorio diferente.
La visión de las diferentes fuentes de usuarios es única mediante el uso de PenRose
Guía de desarrollo proyectos J2EE - Consejo de Mallorca
4
4. Estándar de aplicaciones J2EE
4.1.
Arquitectura general del sistema
El global de las nuevas aplicaciones y servicios seguirán la siguiente arquitectura:
Imagen 1: Arquitectura general
Consiste en una plataforma tecnológica horizontal que soporta servicios de portal, publicación, de
transacción que estarán agrupados en aplicaciones y servicios:
•
•
Aplicaciones (herramientas de backoffice): Entendidas como un conjunto estructurado de
páginas y formularios web para resolver una problemática, y una lógica de nivel alto o medio.
Podemos distinguir segun el alcance de la aplicación.
o
Aplicaciones corporativas todas aquellas aplicaciones de alcance general, y que su
funcionalidad hace que sea utilizada por usuarios de diferentes departamentos del
Consell de Mallorca.
o
Aplicaciones departamentales las aplicaciones de gestión de cada departamento
del Consell de Mallorca.
Servicios (herramientas de frontoffice): Formulario de consulta o un conjunto de páginas
con una lógica de aplicación muy baja. Orientados a la interacción con el usuario. De la
misma manera se pueden distinguir según el alcance del servicio:
o
Servicios corporativos todos aquellos servicios de alcance general destinados a
usuarios de diferentes departamentos del Consell de Mallorca.
o
Servicios departamentales los servicios destinados a departamentos o grupos de
trabajo concretos del Consell de Mallorca.
Guía de desarrollo proyectos J2EE - Consejo de Mallorca
5
o
Servicios para el ciudadano servicios de alcance global, destinados a todos los
ciudadanos que acceden al Consell de Mallorca telemáticamente
o
Servicios para otras entidades los servicios destinados a la interacción con otras
entidades como pueden ser ayuntamientos, universidades, empresas, etc.
También soporta servicios de comunicación e integración con otras administraciones, entidades y
empresas y tendrá que tener un sistema de BackOffice de administración y gestión tanto de los
contenidos como de la seguridad y la gestión de la plataforma.
Todos estos servicios se encuentran integrados por esta plataforma o portal sobre un servidor de
aplicaciones J2EE y permitirá ampliar con nuevas aplicaciones y/o servicios desarrollados a medida
siguiendo estándares java (JSR-168, JSR-170, JSR-127, JSR-252) y utilizando frameworks para el
desarrollo de aplicaciones web como JSF o persistencia de datos como Hibernate o JPA.
Todo este módulo de servidor de aplicaciones y servicios está integrado en lo que llamaremos portal.
Este portal es una aplicación web, que viene dada en un archivo con la extensión WAR, que será
desplegado en el servidor de aplicaciones. Todo el conjunto de aplicaciones y servicios de nueva
creación, serán Portlets siguiendo el estándar JSR-168 y JSR-252 que desplegarán desde dentro del
mismo portal.
Importante: Los usuarios de todas las aplicaciones no tienen que ser propios de cada aplicación sino
que tienen que utilizar la fuente de usuarios proporcionada para el sistema.
Características técnicas
•
Utilizando la especificación JSR-168 y JSR-252
•
Se utilizará la tecnología Java Server Faces como tecnología para desarrollar el patrón MVC
•
Se utilizará AJAX siempre que sea posible (ICEFaces o ZK)
•
A nivel de componentes, siempre que se puedan funcionalmente y no tengan ninguna
equivalencia con componentes AJAX se utilizarán los de la implementación de referencia
para asegurar la portabilidad entre librerías.
•
Se realizarán componentes JSF
•
El acceso a la base de datos de Oracle del propio desarrollo, se hará mediante capas de
persistencia (Hibernate o JPA).
•
El acceso a datos de otras aplicaciones o a la base de datos con información corporativa se
hará mediante el uso de WebServices publicados a WSAS(Web Service Application Server).
Arquitectura para las aplicaciones en ICEfaces:
Guía de desarrollo proyectos J2EE - Consejo de Mallorca
6
Imagen 2: Aplicación ICEfaces/JSF
Como se puede ver en la imagen, encontramos aplicaciones hechas siguiendo únicamente el patrón
MVC bajo la tecnología Java Server Faces (estándar JSR-127 y JSR-252) del proveedor Sun y los
componentes de ICEfaces. A continuación se presenta la arquitectura para aplicaciones con ZK:
Guía de desarrollo proyectos J2EE - Consejo de Mallorca
7
Imagen 3: Aplicación ZK
Presentación. La capa de presentación se basa en Java Server Faces. Para realizar toda la lógica
Ajax se utilizarán los componentes encapsulados ya hechos en JSF o ZK y componentes nuevos
hechos mediante la composición de otros ya hechos.
Interpretación. Beans contenidos en el propio container de la aplicación y que accederán a los
servicios.
4.2.
Seguridad y permisos
Los permisos se basan en la filosofía del portal (LIFERAY). Se pueden dar acceso a los portlets para
usuario y grupos de usuarios. Por lo tanto, en base a los roles identificados en la fase de análisis del
proyecto se diseñarán los portlets.
5. Nomenclatura
5.1.
J2EE
Se aplicarán las convenciones de nomenclatura de estándares de java.
Aplicaciones
Las aplicaciones J2EE se identificarán por un nombre que constará de una sola cadena de
caracteres identificativa toda ella en minúsculas. El nombre de esta cadena identificará la
aplicación al sistema, dará lugar a una nueva aplicación dentro del portal.
Los nombres de las aplicaciones tendrán relación con el nombre del esquema principal de base de
datos (Oracle) relacionado.
Guía de desarrollo proyectos J2EE - Consejo de Mallorca
8
Ejemplo:
solicitudes
nombre para la aplicación de las solicitudes informáticas
Portlets
Las aplicaciones tendrán agrupación lógica y funcional en portlets. Los nombres, igual que con las
aplicaciones, se trata de una sola cadena de caracteres identificativa, toda ella en minúsculas.
La agrupación en portlets se hace en función de las funcionalidades de la aplicación. Los criterios
para esta agrupación son flexibles, y es muy importante tener definidos los roles a la hora de
crearlos.
Ejemplo: Si en la aplicación "restaurante" controlamos el almacén del restaurante, la reserva de
mesas y los menús podríamos tener 3 portlets:
almacén
reservas
menú
Clases
Los nombres de las clases serán una cadena de caracteres con la primera letra en mayúsculas,
así como también será mayúscula la primera letra de cada palabra, el resto en minúsculas y sólo
puede estar formada por letras y números.
Ejemplos:
HolaMon
Multiplicar
ClasseExemple
Métodos y atributos
Los nombres de los métodos y atributos serán siempre en minúsculas, excepto cuándo son
agrupaciones de diversas palabras, en este caso la primera letra de las palabras 2º, 3º... será
mayúscula.
Ejemplos:
int longitudArray;
String nombre;
public boolean provocaOverflow (int numRegistres)
5.2.
Base de datos
Todo lo referente a la base de datos, se entregará con los scripts necesarios para la creación de
la base de datos así como toda la documentación asociada.
NO ESTÁN PERMITIDOS LOS DBLINKS para las integraciones con otras aplicaciones
existentes, ya que se harán mediante servicios web.
En el caso de nuevos desarrollos, los nombres de los esquemas así como sus contraseñas, las
fijará el Consell de Mallorca.
Los criterios con respecto a los nombres de las tablas, campos, secuencias y restricciones se
dejan a criterio de la parte desarrolladora de la aplicación. En cuanto a los usuarios (esquemas de
Oracle), tablespaces y datafiles seguirán la expuesta a continuación, aunque siempre, antes de
hacer cualquier implementación, se tendrá que consensuar con los responsables del proyecto del
Consell de Mallorca
Guía de desarrollo proyectos J2EE - Consejo de Mallorca
9
Usuarios, tablespaces y datafiles
Para cada aplicación se generarán tantos usuarios (esquemas) como haga falta.
Para cada esquema se crearán: un tablespace y tantos datafiles como se considere para datos,
un tablespace y un datafile temporales y un tablespace y tantos datafiles como se considere
para los índices. Se seguirá la siguiente nomenclatura:
•
Tablespace:
TS_AAA(_XXX) donde:
TS_
AAA
_XXX
prefijo de tablespace
prefijo del esquema
sólo se aplicará por los casos de tablespaces para índices (_IDX) y temporales
(_TMP)
Ejemplos:
TS_AVA
Tablespace de datos de la aplicación de averías
TS_AVA_IDX
Tablespace de índices de la aplicación de averías
TS_AVA_TMP
Tablespace temporal de la aplicación de averías
•
Datafile:
AAA(_XXX)(NN).dbf donde:
AAA
_XXX
NN
prefijo del esquema
sólo se aplicará por los casos de tablespaces para índices (_IDX) y temporales
(_TMP)
número de datafile (caso de datos y de índices)
Ejemplos:
AVA02.dbf
Segundo datafile de datos de la aplicación de averías
AVA_TMP.dbf
Datafile temporal de la aplicación de averías
AVA_IDX01.dbf
Primer datafile de índices de la aplicación de averías
6. Integración, pruebas y puesta en producción
Todo desarrollo pasará por las siguientes grandes etapas: Desarrollo, Integración, validación y
producción.
•
Desarrollo etapa de codificación del proyecto y se realizará en un entorno particular (para el
desarrollador, tanto interno como externo)
•
Integración todos los desarrollos requieren de una parte de integración, para este objetivo, el
Consell de Mallorca dispone de un entorno propio para los desarrollos internos y de los externos
que quieran utilizarlo antes de pasar a validación. Permite hacer pruebas funcionales internas y
de código (para la detección de errores de codificación relacionados con la integración con otros
módulos).
•
Validación Es la etapa que requiere de la validación funcional. El Consell dispone de un entorno
para este propósito y todo desarrollo habrá de ser testeado en este entorno y validado antes de la
puesta en producción.
Guía de desarrollo proyectos J2EE - Consejo de Mallorca
10
•
Producción, etapa en la cual se pasa el proyecto a real. El procedimiento para aplicaciones
J2EE se detalla a continuación:
Base de Datos: Documentación detallada en la que se indique:
•
Modelo de datos
•
Nombres de los esquemas necesarios
•
Scripts de creación de objetos de la base de datos indicando con qué usuario de BD se
tienen que ejecutar, el orden de ejecución y una pequeña descripción de lo que hacen.
•
Scripts de inserciones de registros indicando con qué usuario se tienen que ejecutar, por
que es necesaria esta información inicial y la orden de ejecución
•
Indicar de forma resaltada la interactuación con tablas de otras aplicaciones ya existentes
en caso de claves extranjeras.
•
Indicar de forma resaltada la utilización de información almacenada en tablas de otras
aplicaciones.
•
Otras informaciones que el equipo de desarrollo o empresa desarrolladora considere
relevantes a la hora de poner en producción la aplicación o de su mantenimiento y/o
explotación.
Archivos adjuntos (situados en la carpeta de base de datos) a la documentación:
•
Scripts de creación de objetos de la base de datos. No se entregarán archivos con
creación de objetos diferentes en el mismo archivo, sino que se entregarán diferentes
archivos para la creación de cada uno de los tipos de objeto que se tengan que crear, así
por ejemplo, habrá un archivo para la creación de las tablas, otro para la creación de las
vistas, de los disparadores, etc.
•
Scripts de inserción de registros con la información que forma parte de la carga inicial
necesaria para la puesta en marcha. Los inserts de las diferentes tablas se podrán
entregar dentro del mismo archivo indicando cada conjunto de inserts en qué tabla se
hace o bien separarlos en diferentes archivos de inserción de registros según las tablas
en las cuales se inserten.
Servidor de Aplicaciones: Documentación detallada (situado en la carpeta de documentación)
en la que se indique:
•
Nombre del archivo a desplegar con una pequeña descripción de sus funcionalidades
•
Listado de archivos a copiar en el servidor (librerías javascript, imágenes, librerías java
...) indicando la carpeta destino y sus funcionalidades.
•
Otras informaciones que el equipo de desarrollo o empresa desarrolladora considere
relevantes a la hora de poner en producción la aplicación o de su mantenimiento y/o
explotación.
Archivos adjuntos a la documentación:
•
Se entregará la aplicación empaquetada siguiendo el estándar J2EE en un archivo .war o
en caso necesario, un .ear. Este archivo se encontrará en la raíz de la carpeta Aplicación.
•
Todos los archivos que contengan exclusivamente código javascript con un nombre
orientativo de su finalidad. Los archivos tendrán la extensión .js. Estos archivos se
encontrarán en una carpeta con el nombre /javascript que estará dentro de la carpeta
Aplicación (. /Aplicacio/javascript).
Guía de desarrollo proyectos J2EE - Consejo de Mallorca
11
•
Todas las imágenes propias de la aplicación que no sean corporativas (estandarizadas al
diseño de la I2) con un nombre orientativo de su finalidad. Los formatos de las imágenes
sólo podrán ser .gif o .jpg, no se aceptarán imágenes en otros formatos. Todas dentro de
una carpeta llamada imatges (. /Aplicacio/imatges). La medida no excederá de 50KB para
los logos del departamento y/o aplicación y se encontrarán en una carpeta con el nombre
logos (./Aplicacio/imatges/logos). La medida de los iconos de aplicación que no sean
corporativos no excederán de 2KB y se encontrarán en una carpeta con el nombre icones
(./Aplicacio/imatges/icones). En caso de que haya imágenes o fotografías, éstas no
podrán exceder de 1 MB y se encontrarán en una carpeta con el nombre fotos
(./Aplicacio/imatges/fotos).
•
Las librerías java que sean de utilidad para otras aplicaciones se entregarán
empaquetadas en un archivo con extensión .jar con la documentación necesaria para
poderlas utilitzar (API). Las librerías se entregarán dentro de una carpeta nombrada lib
(./Aplicacio/lib). En caso de librerías de uso exclusivo por la aplicación instalada, nunca
tendrán que entregarse como librerías aparte y por lo tanto estarán incluidas dentro del
archivo de despliegue.
En caso de que las aplicaciones necesiten un archivo de configuración, éste siempre tendrá que
estar en formato XML, no se aceptarán archivos de configuración en otros formatos. También se
entregará un archivo DTD o ESCHEMA de definición de los tags empleados. Los dos archivos se
encontrarán dentro de una carpeta nombrada conf (. /Aplicacio/conf). Estos archivos se tienen
que entregar en esta carpeta por conocimiento del equipo de sistemas aunque se tienen que
incluir dentro del archivo de despliegue.
7. Control de versiones
Dependiendo del tamaño del proyecto desarrollado, se fijarán entregas (en el documento de
planificación, apartado 9 de este documento) con fases determinadas (versiones). Éstas se definirán
en función de las funcionalidades. Cada uno de estas fases del proyecto requerirá de una validación
por parte del Consell de Mallorca, y el mantenimiento correctivo realizado recibirá el nombre de
release.
Ejemplo:
Fase 1
projecteF1
Fase1 y revisión 1
projecteF1.1
8. Documentación
Junto con todo proyecto se tendrá que entregar una documentación. La documentación estará
elaborada íntegramente en catalán. El formato en que se tendrá que entregar será:
Documentos ofimáticos en formato abierto para la documentación textual (RTF).
Documentos para los diagramas UML.
Una versión en PDF.
Esta documentación tendrá que tener la aprobación por parte del responsable del proyecto del
Consell de Mallorca, en el momento de la entrega definitiva se presentará en forma de CD donde en
la portada figurarán los datos siguientes:
Fecha de entrega
Guía de desarrollo proyectos J2EE - Consejo de Mallorca
12
Nombre del proyecto
Nombre de la empresa contratista
Área del Consell a quien va dirigido (si es necesario)
La documentación técnica a entregar será la siguiente:
Planificación del proyecto (con fechas, hitos y tareas).
Documento de contexto. Incluye la información siguiente: Personas participantes en el
proyecto y su rol, descripción de la tecnología utilizada, descripción de los objetivos del
proyecto, diagrama de contexto del sistema.
Documento de análisis de requerimientos. Incluye: Casos de uso, diagramas de clases,
diagramas de actividades y otras informaciones o diagramas que se consideren
adecuados para realizar la descripción del comportamiento estático y dinámico de la
aplicación, flujo de acontecimientos principales y alternativos para cada caso de uso.
Documento de arquitectura del sistema. Incluye diagramas, aclaraciones y descripciones
de la arquitectura general del sistema.
Documento de diseño de la capa de dominio. Incluye diseño de las clases del modelo
conceptual, diagramas de colaboración, modelo estático y modelo conceptual definitivo.
Documento de la capa de servicios técnicos. Incluye diseño del modelo lógico de la base
de datos, diseño del subsistema de persistencia (en caso de ser necesario).
Documento de diseño de la capa de presentación y navegabilidad. Incluirá el diseño
gráfico de las pantallas, su aspecto gráfico así como los controles de interfaz gráfica de
usuario (desplegables, botones, etc.). También incluirá diagramas con el flujo de
navegación. Especificación de los componentes o clases que se utilizarán para
implementar estas pantallas y las interacciones con las clases de la parte lógica como el
documento de diseño.
Documento de implementación. Incluye: Diagrama de componentes y descripción de cada
uno de ellos y, si la aplicación se tiene que instalar en diversos servidores o ámbitos web,
diagrama de despliegue.
Documento de pruebas funcionales. Incluye un plan de pruebas funcionales y los
resultados de su realización para las funcionalidades incluidas en el documento de
análisis de requerimientos. Se detallarán datos como requerimiento certificado, fecha,
resultado, etc.:
o
Test básico funcional: Cumplido de los requisitos establecidos
o
Test de calificación funcional general
o
Test de compatibilidad entre navegadores (Firefox, IExplorer, Safari, Opera)
o
Test de navegación
o
Test de carga y rendimiento
o
Test de seguridad de acceso a datos
o
Test de instalación
Documento de pruebas en la construcción. Incluye un plan de pruebas y el resultado de la
realización de estas pruebas de funcionamiento en implementación e integración de
componentes.
o
Revisión de la documentación técnica asociada
o
Definición de un proceso de implementación y construcción
o
Estándares de codificación
o
Planificación de los tests de integración
Documento del cuaderno de carga llenado (plantilla que facilitará el Consell de Mallorca,
por la puesta en preproducción y producción de cada uno de las releases o versiones).
Guía de desarrollo proyectos J2EE - Consejo de Mallorca
13
9. Control y Seguimiento
9.1.
Reuniones de seguimiento
En caso de desarrollos internos o mixtos (con personal interno y externo) se harán reuniones
semanalmente con todos los miembros involucrados en las tareas de desarrollo y puesta en
producción con el fin de mantener en todo el equipo informado de la evolución del proyecto, hacer
un seguimiento de las tareas asignadas y establecimiento de nuevos hitos y asignación de
nuevas tareas.
9.2.
Comités de dirección
El Consell de Mallorca creará un comité de seguimiento formado por personas expertas en los
aspectos técnicos y funcionales del proyecto y serán trabajadores o asesores del Servicio de
Informática.
El objetivo de este comité será el de revisar periódicamente el desarrollo del proyecto. A tal efecto
se llevarán a cabo las tareas de revisión que el comité estime adecuados, especialmente para
comprobar si el adjudicatario está cumpliendo con los requerimientos y con los plazos del
proyecto. El comité podrá reunirse siempre que lo considere adecuado, pero como mínimo lo hará
para revisar los hitos determinados en la planificación.
Guía de desarrollo proyectos J2EE - Consejo de Mallorca
14