Guía técnica para Desarrollo de aplicaciones JAVA

Anuncio
GUÍA TÉCNICA
GOBIERNO DE EXTREMADURA
Dirección General de
Administración Electrónica y Tecnologías de la Información
Desarrollo de Sistemas de
Información con arquitectura JAVA
GUÍA TÉCNICA
Desarrollo de Sistemas
de Información con
arquitectura JAVA en el
Gobierno de
Extremadura
Página 1 de 21
GUÍA TÉCNICA
GOBIERNO DE EXTREMADURA
Dirección General de
Administración Electrónica y Tecnologías de la Información
Desarrollo de Sistemas de
Información con arquitectura JAVA
Control de versiones
Núm
Fecha
Descripción
2.0
10/02/10
• Se actualiza la plataforma JAVA.
• Se realiza una revisión completa del documento “EstandarJAVA.odt”.
3,0
01/07/14
• Revisión completa del documento.
Página 2 de 21
Autores
SAE – SIS
SDP
GUÍA TÉCNICA
GOBIERNO DE EXTREMADURA
Dirección General de
Administración Electrónica y Tecnologías de la Información
Desarrollo de Sistemas de
Información con arquitectura JAVA
Índice del Documento
Capítulo
Página
1- Alcance del documento
1
2.- Plataforma JAVA
4
3.- Requisitos que deben cumplir las aplicaciones.
5
3.1.- Comptabilidad de navegadores y Sistemas Operativos
5
3.2.- Independizar a la aplicación de un contexto
6
3.3.- N ejecutar código que afecte al comportamiento de la máquina
virtual
7
3.4.- Aprovechar los recursos y liberías que ofrece Jboss
7
3.5.- Tratamiento de procesos pesados en el servidor
8
3.6.- Gestión de documentos mediante Alfresco
9
4.- Bases de datos
9
4.1.- Datasources
9
4.2.- Drivers JDBF
10
4.3.- Persistencia de objetos
11
5.- Gestión de la aplicación
13
5.1.- Apache Maven 3
13
5.2.- Despliegue de aplicaciones JAVA
14
6.- Arquitectura de la aplicación. Frameworks, utilidades y liberías
15
6.1.- Frameworks permitidos
15
6.2.- Spring Framework
17
6.3.-JSF (Java Server Faces)
17
6.4.- Apache CXF
18
6.5.- JasperReports
19
7.- Librerías disponibles en el servidor Jboss
20
7.1.- Librerías incorporadas enel servidor
20
8.- Sistema de log y auditoría de la aplicación
21
Página 3 de 21
GUÍA TÉCNICA
GOBIERNO DE EXTREMADURA
Dirección General de
Administración Electrónica y Tecnologías de la Información
Desarrollo de Sistemas de
Información con arquitectura JAVA
Capítulo
8.1.- Jboss LogManagger
Página
22
1.- Alcance del documento
La Dirección General de Administración Electrónica y Tecnologías de la
Información especifica en el presente documento las características que deben
cumplir las aplicaciones realizadas en JAVA a implantar en la Junta de
Extremadura.
Se describe el entorno tecnológico JAVA existente, a tener en cuenta a la
hora de implementar aplicaciones compatibles con dicha plataforma.
Otro objetivo es establecer los estándares, frameworks y librerías que
deben utilizarse en las aplicaciones a desarrollar, para conseguir que cumpla
con unos requisitos mínimos de calidad y estandarización, así como facilitar la
tarea de mantenimiento de las aplicaciones.
En principio, todas las aplicaciones web a implementar utilizando JAVA
deberán respetar los estándares aquí establecidos. Pero teniendo en cuenta la
gran variedad de productos disponibles (frameworks, librerías, entornos, ...) y
las características particulares de cada aplicación, podrá utilizarse algún
componente, tecnología o herramienta no descrita en este documento, siempre
y cuando el la Dirección General de Administración Electrónica y Tecnologías de
la Información conozca este hecho y apruebe su uso.
2.- Plataforma JAVA
El entorno tecnológico JAVA utilizado como referencia por el Gobierno de
Extremadura para el desarrollo de sistemas de información es el siguiente:
•
Java Platform, Enterprise Edition 6 (Oracle JDK 1.6)
◦ Es una plataforma de programación para desarrollar y ejecutar
software de aplicaciones en lenguaje de programación Java con
Página 4 de 21
GUÍA TÉCNICA
GOBIERNO DE EXTREMADURA
Dirección General de
Administración Electrónica y Tecnologías de la Información
Desarrollo de Sistemas de
Información con arquitectura JAVA
arquitectura de
niveles distribuida, basándose ampliamente en
componentes de software modulares ejecutándose sobre un servidor
de aplicaciones.
◦ http://www.oracle.com/us/technologies/java/enterprise-edition
•
JBoss EAP 6
◦ JBoss es un servidor de aplicaciones J2EE de código abierto
implementado en Java. Al estar basado en Java, JBoss puede ser
utilizado en cualquier sistema operativo que lo soporte.
◦ Los principales desarrolladores trabajan para una empresa de
servicios, JBoss Inc., adquirida por Red Hat. El proyecto está apoyado
por una red mundial de colaboradores.
◦ JBoss implementa todo el paquete de servicios de J2EE.
◦ http://www.jboss.org/products/eap/
Las aplicaciones tienen que ser 100% compatibles con esta
plataforma.
3.- Requisitos que deben cumplir las aplicaciones
3.1.- Compatibilidad de navegadores y sistemas operativos
A continuación se exponen los criterios a seguir en relación a hacer
compatibles las aplicaciones y sus entornos de ejecucion:
•
Las aplicaciones web deben ser compatibles con los navegadores más
Página 5 de 21
GUÍA TÉCNICA
GOBIERNO DE EXTREMADURA
Dirección General de
Administración Electrónica y Tecnologías de la Información
Desarrollo de Sistemas de
Información con arquitectura JAVA
utilizados hoy en día. Se exige como mínimo compatibilidad con los
navegadores:
◦ Internet Explorer
◦ Mozilla Firefox
◦ Chrome
En todo momento hay que evitar código que pueda provocar problemas
de incompatibilidad entre navegadores diferentes e incluso entre
diferentes versiones del mismo navegador.
•
La aplicación debe ejecutarse correctamente en clientes Windows y
clientes Linux.
•
La aplicación debe funcionar correctamente independientemente del
Sistema Operativo que corra en la máquina servidora, de forma que se
pueda migrar el software de base de la maquina servidora sin afectar al
funcionamiento del aplicativo. Por lo que se debe evitar cualquier
dependencia en el código con un sistema operativo en concreto.
3.2.- Independizar a la aplicación de un contexto
Deberán cumplirse los siguientes criterios:
•
Las aplicaciones deberán implementarse y empaquetarse de manera que
sea posible desplegar la misma aplicación más de una vez sobre el
mismo servidor (con diferente nombre y contexto).
Es frecuente que la misma aplicación sea utilizada por más de un órgano
funcinal, por lo que es necesario desplegarla en el mismo servidor con
diferente nombre.
Para conseguir esta compatibilidad, los aspectos que hay que tener en
cuenta a la hora de desarrollar la aplicación son los siguientes:
◦ Será necesario poder modificar el contexto de la aplicación. Una de las
posibilidades es cambiar el nombre del fichero .war de la aplicación.
Página 6 de 21
GUÍA TÉCNICA
GOBIERNO DE EXTREMADURA
Dirección General de
Administración Electrónica y Tecnologías de la Información
Desarrollo de Sistemas de
Información con arquitectura JAVA
En algunos servidores también es posible definir el contexto de la
aplicación en ficheros de configuración (context.xml, jbossweb.xml, ...).
◦ Todas las referencias a URLs y/o recursos de la aplicación deben ser
relativas o dinámicas a partir del contexto de la aplicación.
◦ El acceso a BD (datasource utilizado) debe ser parametrizable. Así
conseguiremos definir a la BD que accede cada aplicación.
◦ Se deberá parametrizar todo lo posible aquellos parámetros
relacionados con la configuración de la aplicación, y que puedan
desencadenar problemas en el momento de desplegar más de una
aplicación sobre el mismo servidor.
3.3.- No ejecutar código que afecte al comportamiento de la
máquina virtual
•
No puede existir código en las aplicaciones que pueda modificar o
cambiar el comportamiento de la máquina virtual de JBoss. Existen
algunas instrucciones, tales como System.setProperty(String key, String
value) ó System.gc() que tienen efectos sobre la maquina virtual que
ejecuta JBoss, y por lo tanto puede tener efectos secundarios sobre el
resto de aplicaciones que están corriendo en el servidor.
3.4.- Aprovechar los recursos y librerías que ofrece el servidor
JBoss
•
•
•
Es requisito imprescindible que las aplicaciones aprovechen y usen las
librerías proporcionadas por el servidor JBoss.
Aparte de las librerías que incorpora por defecto JBoss, la Dirección
General de Administración Electrónica y Tecnologías de la Información
incorporará un conjunto de ellas para que las aplicaciones desplegadas
tengan acceso a las mismas.
Para todo este conjuntos de librerías las aplicaciones tendrán que
adaptarse a la versión proporcionada, y en ningún caso podrán
Página 7 de 21
GUÍA TÉCNICA
GOBIERNO DE EXTREMADURA
Dirección General de
Administración Electrónica y Tecnologías de la Información
Desarrollo de Sistemas de
Información con arquitectura JAVA
incorporar en el WAR librerías ya disponibles o versiones diferentes de
las mismas.
3.5.- Tratamiento de procesos pesados en el servidor
•
En algunas ocasiones las aplicaciones web requieren la ejecución de
procesos que pueden llegar a consumir muchos recursos de máquina
(memoria y procesador), y cuya ejecución se puede alargar durante un
tiempo no despreciable, como pueden ser:
◦ procesos de calculo complejo
◦ consultas masivas de datos
◦ creación de listados o informes masivos de datos
◦ etc..
•
La ejecución de estos procesos de forma interactiva suele provocar
problemas como:
◦ la perdida de timeout de la sesión web
◦ problemas con los sistemas de filtrado, seguridad, y/o balanceo de
carga que puedan existir en la interconexión entre el cliente y el
servidor.
◦ penalización del rendimiento del servidor Java, y en consecuencia
penalización del rendimiento de las aplicaciones desplegadas.
•
Si la aplicación requiere de la ejecución de algún proceso con estas
características, es necesario que ofrezca al usuario una forma alternativa
de ejecución que no ocasione los problemas anteriormente mencionados,
y lance el proceso en “segundo plano”, e incluso en su caso pudiese
derivarlo a otro servidor que llevaría a cabo el proceso.
A su vez deberá implementarse un “proceso de notificación”, de forma
que cuando el proceso haya finalizado se le comunique al usuario de
alguna forma. En ese momento el usuario de la aplicación podrá acceder
o consultar los resultados de la ejecución del proceso.
Página 8 de 21
GUÍA TÉCNICA
GOBIERNO DE EXTREMADURA
Dirección General de
Administración Electrónica y Tecnologías de la Información
Desarrollo de Sistemas de
Información con arquitectura JAVA
3.6.- Gestión de documentos mediante Alfresco
•
Las aplicaciones que requieran de la gestión de documentos deberán
trabajar con el gestor de contenidos Alfresco.
•
La Dirección General de Administración Electrónica y Tecnologías de la
Información proporcionará la documentación necesaria para la
interacción con Alfresco mediante servicios web.
4.- Bases de datos
4.1.- Datasources
•
Todo acceso a BD se deberá hacer mediante la configuración de un datasource a BD en el
servidor JBoss (ficheros –ds.xml). No se permite el acceso a bases de datos que no sea a
través del datasource correspondiente configurado en el servidor JBoss.
El nombre del datasource (jndi-name) a su vez vendrá parametrizado en la
aplicación.
Opciones de parametrización:
• parámetro de contexto del fichero web.xml
• fichero de propiedades de la aplicación
• fichero de configuración de la aplicación
• campo de base de datos
Ejemplo de fichero web.xml:
…
<context-param>
Página 9 de 21
GUÍA TÉCNICA
GOBIERNO DE EXTREMADURA
Dirección General de
Administración Electrónica y Tecnologías de la Información
Desarrollo de Sistemas de
Información con arquitectura JAVA
<param-name>datasource</param-name>
<param-value>java:/jdbc/sqlserver/dbPruebas</param-value>
</context-param>
…
•
Mediante esta configuración JBoss proporciona un pool de conexiones parametrizable y
configurable “en caliente”, que permite modificar los parámetros del pool y de las
conexiones a la BD sin necesidad de reiniciar el servidor o desplegar de nuevo la
aplicación.
Debido a que esta funcionalidad ya la proporciona el servidor, las aplicaciones no deberán
implementar ningún mecanismo de pool o caché de conexiones.
Siguiendo estas pautas, la actualización del fichero -ds.xml, donde están definidos los pool
de conexiones, no debe ocasionar problemas en las aplicaciones.
4.2.- Drivers JDBC
Los drivers JDBC utilizados para acceder a las BD se encuentran en el
classpath del servidor (JBOSS_HOME/server/default/lib), por lo que éstos
nunca se integrarán en el desplegable de la aplicación (fichero .war de la
aplicación).
A continuación se indican los sistemas gestores de bases de datos
permitidos y los drivers JDBC respectivos instalados en el servidor JBoss:
Microsoft SQL Server
•
Microsoft sql server jdbc driver 2.0 (sqljdbc4.jar)
◦ Driver de Microsoft que permite a las aplicaciones Java, acceder a las
bases de datos Microsoft SQL Server 2000, Microsoft SQL Server 2005
y Microsoft SQL Server 2008 a través de JDBC (Java Database
Connectivity).
◦ http://www.microsoft.com/downloads/
Página 10 de 21
GUÍA TÉCNICA
GOBIERNO DE EXTREMADURA
Dirección General de
Administración Electrónica y Tecnologías de la Información
Desarrollo de Sistemas de
Información con arquitectura JAVA
PostgreSQL
•
PostgreSQL JDBC Driver (postgresql-8.4-701.jdbc4.jar)
◦ Driver JDBC 4 de PostgreSQL.
◦ http://jdbc.postgresql.org/
MySQL
•
MySQL Connector/J 5.1 (mysql-connector-java-5.1.11-bin.jar)
◦ El MySQL Connector/J es un driver JDBC 4 y contiene todas las
características de JDBC para manejar Mysql.
◦ http://dev.mysql.com/downloads/connector/j/
ORACLE
•
ORACLE JDBC driver (ojdb6.jar)
◦ El driver JDBC 4 para ORACLE, contiene todas las características de
JDBC para manejar ORACLE.
◦ http://www.oracle.com/technetwork/database/features/jdbc
4.3.- Persistencia de objetos
Para la persistencia de objetos en BD relacionales deberá utilizarse
alguna de las siguientes dos opciones:
Hibernate (JPA)
•
JPA (versión 2.0)
◦ Java Persistence API (JPA) proporciona un estándar para gestionar
datos relacionales en aplicaciones Java SE o Java EE, de forma que
Página 11 de 21
GUÍA TÉCNICA
GOBIERNO DE EXTREMADURA
Dirección General de
Administración Electrónica y Tecnologías de la Información
Desarrollo de Sistemas de
Información con arquitectura JAVA
además se simplifique el desarrollo de la persistencia de datos.
◦ Aunque ha sido definida como parte de la especificación EJB 3.0 (Java
EE 5), que supone una simplificación sobre versiones anteriores, ya
no requiere de un contenedor EJB ni un servidor de aplicaciones Java
EE.
Es una API de persistencia de POJOs (Plain Old Java Object). Es decir,
objetos simples que no heredan ni implementan otras clases (como
los EJBs).
◦ http://java.sun.com/javaee/technologies/persistence.jsp
•
Hibernate (versión 4.2.14)
◦ Hibernate es una herramienta de Mapeo objeto-relacional ORM para la
plataforma Java que facilita el mapeo de atributos entre una base de
datos relacional tradicional y el modelo de objetos de una aplicación.
◦ Hibernate es software libre, distribuido bajo los términos de la LGPL
(Licencia Pública General Menor de GNU).
◦ http://www.hibernate.org/
•
Hibernate está certificada mediante el Sun Technology Compatibility Kit
(TCK) como compatible con la especificación Java Persistence API (JPA).
•
Preferiblemente se utilizará esta opción, Hibernate con anotaciones
JPA, para implementar la persistencia de los objetos en bases de datos
relaciones.
◦
◦Maybatis (Versión 3.2.7)
◦
Como alternativa a Hibernate, se podrá usar MyBatis. Es una
herramienta de persistencia Java que se encarga de mapear sentencias
SQL y procedimientos almacenados con objetos a partir de ficheros XML
o anotaciones.
A diferencia de las herramientas ORM, MyBatis no mapea objetos
Java a tablas de base de datos sino métodos a sentencias SQL.
No se permitirá el uso de SQL directamente. Si es necesario utilizar
Página 12 de 21
GUÍA TÉCNICA
GOBIERNO DE EXTREMADURA
Dirección General de
Administración Electrónica y Tecnologías de la Información
Desarrollo de Sistemas de
Información con arquitectura JAVA
sentencias SQL se hará utilizando este framework. De esta forma podrá
migrarse fácilmente la BD a otro SGBD sin afectar al funcionamiento de
la aplicación.
Preferiblemente las sentencias SQL y el mapeo de los objetos se
definirá en ficheros xml en lugar de utilizar anotaciones.
5.- Gestión de la aplicación
5.1.- Apache Maven 3
Para la gestión del proyecto Java se utilizará la herramienta Apache
Maven 3.
•
•
•
•
Apache Maven es un software para la gestión de proyectos. Es similar en
funcionalidad a Apache Ant, pero tiene un modelo de configuración de
construcción más simple, basado en un formato XML.
Maven utiliza un Project Object Model (POM) para describir el proyecto de
software a construir, sus dependencias de otros módulos y componentes
externo, y el orden de construcción de los elementos.
Una característica clave de Maven es que está listo para usar en red. El motor
incluido en su núcleo puede dinámicamente descargar plugins de un repositorio,
el mismo repositorio que provee acceso a muchas versiones de diferentes
proyectos Open Source en Java, de Apache y otras organizaciones y
desarrolladores.
http://maven.apache.org/
Página 13 de 21
GUÍA TÉCNICA
GOBIERNO DE EXTREMADURA
Dirección General de
Administración Electrónica y Tecnologías de la Información
Desarrollo de Sistemas de
Información con arquitectura JAVA
5.2.- Despliegue de aplicaciones web JAVA
•
Todas las aplicaciones web JAVA deberán desplegarse en el servidor
como un fichero WAR (Web ARchive).
Las librerías (ficheros .jar) que forman parte de la aplicación deben
integrarse en el fichero .war de la aplicación (carpeta web/WEB-INF/lib).
Ninguna librería especifica de la aplicación se desplegará en la carpeta de
librerías
compartidas
del
Servidor
JBoss
(JBOSS_HOME/server/default/lib).
•
Como ya se ha indicado en este documento siempre se deberán
aprovechar y utilizar las librerías y recursos que dispone el servidor
JBoss para las aplicaciones. De esta forma se optimizan los recursos en
el servidor y se reduce el tamaño final del fichero .war.
•
El fichero de gestión del proyecto de Maven deberá gestionar
correctamente esta situación, es decir, el caso de la dependencia de la
aplicación de ciertas librerías para la compilación del proyecto, pero que
no son necesarias en el despliegue de la aplicación, ya que se encuentran
en el classpath del servidor.
•
Cualquier incorporación de librerías ya disponibles en JBoss en el .war de
la aplicación deberá ser justificado y aceptado por la Dirección General
de Administración Electrónica y Tecnologías de la Información.
Página 14 de 21
GUÍA TÉCNICA
GOBIERNO DE EXTREMADURA
Dirección General de
Administración Electrónica y Tecnologías de la Información
Desarrollo de Sistemas de
Información con arquitectura JAVA
6.- Arquitectura de la aplicación. Frameworks, utilidades y
librerías
6.1.- Frameworks permitidos
CAPA DE
NEGOCIO
Struts2
Spring MVC
JSF
EJB
Spring
CAPA DE
NEGOCIO
CAPA DE
PRESENTACIÓ
N
En la elección de los frameworks partimos del marco de trabajo que
ofrece Spring y para cada capa definimos distintas alternativas que siempre se
deben utilizar integradas con el mismo.
En este contexto los frameworks de soporte a la arquitectura que serán
válidos son los siguientes:
MyBatis
Página 15 de 21
POJO
Hibernate
GUÍA TÉCNICA
GOBIERNO DE EXTREMADURA
Dirección General de
Administración Electrónica y Tecnologías de la Información
Desarrollo de Sistemas de
Información con arquitectura JAVA
Respecto a ello, se hacen las siguientes consideraciones:
•
Capa de presentación: para esta capa son válidos los frameworks Struts2
y Spring MVC así como las implementaciones de JSF Mojarra y MyFaces.
En cuanto a las extensiones de JSF son válidas cualquiera de las
existentes (IceFaces, RichFaces, …).
•
Capa de negocio: preferentemente se utilizarán POJOs. Los EJBs estarán
permitidos únicamente cuando que exista un condicionante (rendimiento,
memoria, …) que así lo aconseje. En este caso se debe justificar su uso.
•
Capa de acceso a datos: preferentemente se utilizará las implementación
de JPA Hibernate. También se puede utilizar MyBatis si la complejidad de
la base de datos a utilizar así lo aconseja. En cualquier caso no se
permitirá el acceso directos a bases de datos (JDBC), siempre se
realizará dicho acceso a través de uno de estos frameworks.
La elección de una alternativa en cualquiera de las capas no condiciona la
elección en cualquiera de las otras capas, de forma que serán consideradas
válidas las arquitecturas constituidas por cualquiera de las combinaciones
posibles.
Si se cree conveniente utilizar un framework que no se encuentre entre
los propuestos su uso queda supeditado a la autorización previa del mismo por
parte de la dirección del proyecto.
Para cualquier framework que se necesite fuera de las capas aquí
señaladas siempre se preferirá la alternativa ofrecida por Spring (SpringWS
para los servicios web, Spring Security para la gestión de la seguridad, …). En
caso de que no exista una alternativa dentro de Spring se preferirán los
frameworks más utilizados para esa tarea en concreto (Quartz para tareas,...).
En cualquier caso la inclusión de cualquier de estos frameworks se consultará
previamente con la dirección del proyecto.
A efectos de facilitar y coordinar las implantaciones de aplicativos en los
Sistemas de la Junta de Extremadura, se proporcionará una plataforma basada
en los servidores Tomcat o Jboss con las librerías ya instaladas en los mismos.
Esto supone que las aplicaciones a implantar no deberán incluir ninguna
librería ni componente de los que ya provea la administración, salvo motivos
debidamente justificados.
Página 16 de 21
GUÍA TÉCNICA
GOBIERNO DE EXTREMADURA
Dirección General de
Administración Electrónica y Tecnologías de la Información
Desarrollo de Sistemas de
Información con arquitectura JAVA
6.2.- Spring Framework (versión 3.2.9)
Spring es un framework para aplicaciones Java que proporciona
facilidad de crear componentes reutilizables, adaptándose fácilmente con otros
frameworks como Hibernate, JSF, Apache CXF, etc.
El principio en el que se basa este framework es “Dependency
Injection”.
Se integrará en el servidor JBoss las librerías (ficheros .jar) que forman
el núcleo de este framework.
(ttp://www.springframework.org/ )
6.3.- JSF (Java Server Faces) (versión 1.2)
•
•
•
•
La tecnología JavaServer Faces (JSF) es un marco de trabajo para
interfaces de usuario para aplicaciones J2EE. Por diseño, es
particularmente útil con aplicaciones basadas en la arquitectura MVC.
JBoss incorpora la implementación (“Proyect Mojarra”) de la
especificación JSF 1.2. , por lo que no es necesario añadir la
implementación de JSF directamente en el WAR.
http://java.sun.com/javaee/javaserverfaces/
http://community.jboss.org/wiki/JBossWithJSFCDDL
◦
◦6.3.1.- RichFaces (versión 3.3.3)
◦
•
•
Se propone RichFaces como librería de componentes visuales JSF.
RichFaces es una librería de componentes visuales para JSF, que además
posee un framework avanzado para la integración de funcionalidades
Ajax en dichos componentes visuales, mediante el soporte de la librería
Ajax4JSF.
Página 17 de 21
GUÍA TÉCNICA
GOBIERNO DE EXTREMADURA
Dirección General de
Administración Electrónica y Tecnologías de la Información
•
•
Desarrollo de Sistemas de
Información con arquitectura JAVA
El uso de otra librería JSF deberá ser aceptada por la Dirección General
de Administración Electrónica y Tecnologías de la Información.
http://www.jboss.org/richfaces
6.4.- Apache CXF (Versión 2.6)
Apache CXF es un framework de servicios de Software Libre. CXF nos
ayuda a construir y desarrollar servicios usando JAXWS y JAXRS como API de
programación. Estos servicios pueden comunicarse a través de una gran
variedad de protocolos como como SOAP, XML/HTTP, HTTP RESTful, o CORBA,
y puede trabajar sobre transportes como HTTP, JMS o JBI.
Las características principales de CXF son:
•
Soporte para estándares de Servicios Web: CXF soporta varios
estándares de servicios web incluyendo a SOAP, el Perfil Básico, WSDL,
WS-Addressing, WS-Policy, WS-ReliableMessaging y WS-Security.
•
Interfaces: CXF soporta varios modelos de programación como
"interfaz". CXF implementa el API JAX-WS. También incluye una "interfaz
simple" que permite crear clientes y endpoints sin utilizar anotaciones.
CXF soporta el desarrollo por “contrato primero” con WSDL, y el
desarrollo por “código primero” comenzando desde Java.
•
Facilidad de uso: CXF está diseñado para ser intuitivo y fácil de usar. Hay
APIs simples para construir servicios comenzando por el código, plugins
de Maven para integrar esta herramienta, soporte para el API JAX-WS,
soporte de XML de Spring para facilitar la configuración, etc.
•
Soporte para protocolos binarios y legacy: CXF fue diseñado para
proveer una arquitectura extensible que no sólo soporte XML sino
también otros binding no XML, como JSON y CORBA, en combinación con
cualquier tipo de transporte.
•
Un punto muy importante a tener en cuenta de Apache CXF es su
facilidad para la integración con Spring.
Página 18 de 21
GUÍA TÉCNICA
GOBIERNO DE EXTREMADURA
Dirección General de
Administración Electrónica y Tecnologías de la Información
•
Desarrollo de Sistemas de
Información con arquitectura JAVA
http://cxf.apache.org/
6.5.- JasperReport
•
JasperReports es una herramienta de código libre en Java para generar
reportes. Puede generar presentaciones o diseños en la pantalla, para la
impresora o para archivos en formato PDF, HTML, RTF, XLS, CSV y XML.
Está escrita en Java y se puede utilizar en una gran variedad de
aplicaciones Java, incluyendo J2EE o aplicaciones Web.
•
http://www.jasperforge.org/
•
Es recomendable utilizar la herramienta iReport que es un editor gráfico
que está implementado en java y se integra perfectamente con el
JasperReport.
•
http://jasperforge.org/plugins/project/project_home.php?
projectname=ireport
•
Otra ventaja de utilizar JasperReport es que se integra perfectamente
con el JfreeChart que es una librería libre para la generación de todo
tipo de gráficos.
•
http://www.jfree.org/jfreechart/
Página 19 de 21
GUÍA TÉCNICA
GOBIERNO DE EXTREMADURA
Dirección General de
Administración Electrónica y Tecnologías de la Información
Desarrollo de Sistemas de
Información con arquitectura JAVA
7.- Librerías disponibles en el servidor JBoss
Las aplicaciones deberán usar cuando así lo requieran las librerías que
por defecto ofrece JBoss, así como las librerías que se han añadido
posteriormente al servidor para que estén disponibles para todas las
aplicaciones.
Las aplicaciones no deberán incorporar en su WAR las librerías (o una
versión diferente de las mismas) que se encuentran en la instalación de JBoss
y las que se han añadido por la Dirección General de Administración
Electrónica y Tecnologías de la Información.
7.1- Librerías incorporadas al servidor
El siguiente conjunto de librerías o frameworks se han añadido al
servidor (JBOSS_HOME/server/default/lib/) para que estén disponibles para
todas las aplicaciones desplegadas. Las aplicaciones deberán adaptarse a la
versión especificada.
•
JDBC drivers
•
Spring 3.2.9
Página 20 de 21
GUÍA TÉCNICA
GOBIERNO DE EXTREMADURA
Dirección General de
Administración Electrónica y Tecnologías de la Información
Desarrollo de Sistemas de
Información con arquitectura JAVA
8.- Sistema de log y auditoría de la aplicación
8.1- Jboss LogManagger
Para el sistema de log de la aplicación se utilizará la viene incluida con
Jboss y que está activada por defecto.
•
•
Este sistema es completamente configurable en tiempo de ejecución
utilizando archivos externos de configuración.
https://docs.jboss.org/author/display/AS71/Logging+Configuration
En el código se utilizará la clase org.jboss.logging.Logger.
Las aplicaciones no tienen la necesidad de incorporar en los ficheros .war la
librería,
ya
que
ésta
se
encuentra
en
JBOSS_HOME/modules/system/layers/base/org/jboss/logmanager.
Página 21 de 21
Descargar