java web

21
Página 1 de 21 GUÍA TÉCNICA Desarrollo de Sistemas de Información con arquitectura JAVA en el Gobierno de Extremadura GOBIERNO DE EXTREMADURA Dirección General de Administración Electrónica y Tecnologías de la Información GUÍA TÉCNICA Desarrollo de Sistemas de Información con arquitectura JAVA

Upload: mateo988

Post on 16-Dec-2015

5 views

Category:

Documents


0 download

DESCRIPTION

Java Web

TRANSCRIPT

  • Pgina 1 de 21

    GUA TCNICA

    Desarrollo de Sistemas de Informacin con

    arquitectura JAVA en el Gobierno de Extremadura

    GOBIERNO DE EXTREMADURA

    Direccin General de Administracin Electrnica y Tecnologas de la Informacin

    GUA TCNICA

    Desarrollo de Sistemas de Informacin con arquitectura JAVA

  • Nm Fecha Descripcin Autores

    2.0 10/02/10 Se actualiza la plataforma JAVA. Se realiza una revisin completa del documento EstandarJAVA.odt.

    SAE SIS

    3,0 01/07/14 Revisin completa del documento. SDP

    Pgina 2 de 21

    GOBIERNO DE EXTREMADURA

    Direccin General de Administracin Electrnica y Tecnologas de la Informacin

    GUA TCNICA

    Desarrollo de Sistemas de Informacin con arquitectura JAVA

    Control de versiones

  • Captulo Pgina

    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 aplicacin de un contexto 6

    3.3.- N ejecutar cdigo que afecte al comportamiento de la mquina virtual

    7

    3.4.- Aprovechar los recursos y liberas que ofrece Jboss 7

    3.5.- Tratamiento de procesos pesados en el servidor 8

    3.6.- Gestin 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.- Gestin de la aplicacin 13

    5.1.- Apache Maven 3 13

    5.2.- Despliegue de aplicaciones JAVA 14

    6.- Arquitectura de la aplicacin. Frameworks, utilidades y liberas 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.- Libreras disponibles en el servidor Jboss 20

    7.1.- Libreras incorporadas enel servidor 20

    8.- Sistema de log y auditora de la aplicacin 21

    Pgina 3 de 21

    GOBIERNO DE EXTREMADURA

    Direccin General de Administracin Electrnica y Tecnologas de la Informacin

    GUA TCNICA

    Desarrollo de Sistemas de Informacin con arquitectura JAVA

    ndice del Documento

  • Captulo Pgina

    8.1.- Jboss LogManagger 22

    La Direccin General de Administracin Electrnica y Tecnologas de la Informacin especifica en el presente documento las caractersticas que deben cumplir las aplicaciones realizadas en JAVA a implantar en la Junta de Extremadura.

    Se describe el entorno tecnolgico JAVA existente, a tener en cuenta a la hora de implementar aplicaciones compatibles con dicha plataforma.

    Otro objetivo es establecer los estndares, frameworks y libreras que deben utilizarse en las aplicaciones a desarrollar, para conseguir que cumpla con unos requisitos mnimos de calidad y estandarizacin, as como facilitar la tarea de mantenimiento de las aplicaciones.

    En principio, todas las aplicaciones web a implementar utilizando JAVA debern respetar los estndares aqu establecidos. Pero teniendo en cuenta la gran variedad de productos disponibles (frameworks, libreras, entornos, ...) y las caractersticas particulares de cada aplicacin, podr utilizarse algn componente, tecnologa o herramienta no descrita en este documento, siempre y cuando el la Direccin General de Administracin Electrnica y Tecnologas de la Informacin conozca este hecho y apruebe su uso.

    El entorno tecnolgico JAVA utilizado como referencia por el Gobierno de Extremadura para el desarrollo de sistemas de informacin es el siguiente:

    Java Platform, Enterprise Edition 6 (Oracle JDK 1.6)

    Es una plataforma de programacin para desarrollar y ejecutar software de aplicaciones en lenguaje de programacin Java con

    Pgina 4 de 21

    GOBIERNO DE EXTREMADURA

    Direccin General de Administracin Electrnica y Tecnologas de la Informacin

    GUA TCNICA

    Desarrollo de Sistemas de Informacin con arquitectura JAVA

    1.- Alcance del documento

    2.- Plataforma JAVA

  • arquitectura de niveles distribuida, basndose ampliamente en componentes de software modulares ejecutndose 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 cdigo 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.

    A continuacin se exponen los criterios a seguir en relacin a hacer compatibles las aplicaciones y sus entornos de ejecucion:

    Las aplicaciones web deben ser compatibles con los navegadores ms

    Pgina 5 de 21

    GOBIERNO DE EXTREMADURA

    Direccin General de Administracin Electrnica y Tecnologas de la Informacin

    GUA TCNICA

    Desarrollo de Sistemas de Informacin con arquitectura JAVA

    3.- Requisitos que deben cumplir las aplicaciones

    3.1.- Compatibilidad de navegadores y sistemas operativos

  • utilizados hoy en da. Se exige como mnimo compatibilidad con los navegadores: Internet Explorer Mozilla Firefox Chrome

    En todo momento hay que evitar cdigo que pueda provocar problemas de incompatibilidad entre navegadores diferentes e incluso entre diferentes versiones del mismo navegador.

    La aplicacin debe ejecutarse correctamente en clientes Windows y clientes Linux.

    La aplicacin debe funcionar correctamente independientemente del Sistema Operativo que corra en la mquina 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 cdigo con un sistema operativo en concreto.

    Debern cumplirse los siguientes criterios:

    Las aplicaciones debern implementarse y empaquetarse de manera que sea posible desplegar la misma aplicacin ms de una vez sobre el mismo servidor (con diferente nombre y contexto).

    Es frecuente que la misma aplicacin sea utilizada por ms 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 aplicacin son los siguientes: Ser necesario poder modificar el contexto de la aplicacin. Una de las

    posibilidades es cambiar el nombre del fichero .war de la aplicacin.

    Pgina 6 de 21

    GOBIERNO DE EXTREMADURA

    Direccin General de Administracin Electrnica y Tecnologas de la Informacin

    GUA TCNICA

    Desarrollo de Sistemas de Informacin con arquitectura JAVA

    3.2.- Independizar a la aplicacin de un contexto

  • En algunos servidores tambin es posible definir el contexto de la aplicacin en ficheros de configuracin (context.xml, jboss-web.xml, ...).

    Todas las referencias a URLs y/o recursos de la aplicacin deben ser relativas o dinmicas a partir del contexto de la aplicacin.

    El acceso a BD (datasource utilizado) debe ser parametrizable. As conseguiremos definir a la BD que accede cada aplicacin.

    Se deber parametrizar todo lo posible aquellos parmetros relacionados con la configuracin de la aplicacin, y que puedan desencadenar problemas en el momento de desplegar ms de una aplicacin sobre el mismo servidor.

    No puede existir cdigo en las aplicaciones que pueda modificar o cambiar el comportamiento de la mquina 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 estn corriendo en el servidor.

    Es requisito imprescindible que las aplicaciones aprovechen y usen las libreras proporcionadas por el servidor JBoss.

    Aparte de las libreras que incorpora por defecto JBoss, la Direccin General de Administracin Electrnica y Tecnologas de la Informacin incorporar un conjunto de ellas para que las aplicaciones desplegadas tengan acceso a las mismas.

    Para todo este conjuntos de libreras las aplicaciones tendrn que adaptarse a la versin proporcionada, y en ningn caso podrn

    Pgina 7 de 21

    GOBIERNO DE EXTREMADURA

    Direccin General de Administracin Electrnica y Tecnologas de la Informacin

    GUA TCNICA

    Desarrollo de Sistemas de Informacin con arquitectura JAVA

    3.3.- No ejecutar cdigo que afecte al comportamiento de la mquina virtual

    3.4.- Aprovechar los recursos y libreras que ofrece el servidor JBoss

  • incorporar en el WAR libreras ya disponibles o versiones diferentes de las mismas.

    En algunas ocasiones las aplicaciones web requieren la ejecucin de procesos que pueden llegar a consumir muchos recursos de mquina (memoria y procesador), y cuya ejecucin se puede alargar durante un tiempo no despreciable, como pueden ser: procesos de calculo complejo consultas masivas de datos creacin de listados o informes masivos de datos etc..

    La ejecucin de estos procesos de forma interactiva suele provocar problemas como: la perdida de timeout de la sesin web problemas con los sistemas de filtrado, seguridad, y/o balanceo de

    carga que puedan existir en la interconexin entre el cliente y el servidor.

    penalizacin del rendimiento del servidor Java, y en consecuencia penalizacin del rendimiento de las aplicaciones desplegadas.

    Si la aplicacin requiere de la ejecucin de algn proceso con estas caractersticas, es necesario que ofrezca al usuario una forma alternativa de ejecucin 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 llevara a cabo el proceso.

    A su vez deber implementarse un proceso de notificacin, de forma que cuando el proceso haya finalizado se le comunique al usuario de alguna forma. En ese momento el usuario de la aplicacin podr acceder o consultar los resultados de la ejecucin del proceso.

    Pgina 8 de 21

    GOBIERNO DE EXTREMADURA

    Direccin General de Administracin Electrnica y Tecnologas de la Informacin

    GUA TCNICA

    Desarrollo de Sistemas de Informacin con arquitectura JAVA

    3.5.- Tratamiento de procesos pesados en el servidor

  • Las aplicaciones que requieran de la gestin de documentos debern trabajar con el gestor de contenidos Alfresco.

    La Direccin General de Administracin Electrnica y Tecnologas de la Informacin proporcionar la documentacin necesaria para la interaccin con Alfresco mediante servicios web.

    Todo acceso a BD se deber hacer mediante la configuracin 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 travs del datasource correspondiente configurado en el servidor JBoss.

    El nombre del datasource (jndi-name) a su vez vendr parametrizado en la aplicacin.

    Opciones de parametrizacin: parmetro de contexto del fichero web.xml fichero de propiedades de la aplicacin fichero de configuracin de la aplicacin campo de base de datos

    Ejemplo de fichero web.xml:

    Pgina 9 de 21

    GOBIERNO DE EXTREMADURA

    Direccin General de Administracin Electrnica y Tecnologas de la Informacin

    GUA TCNICA

    Desarrollo de Sistemas de Informacin con arquitectura JAVA

    3.6.- Gestin de documentos mediante Alfresco

    4.- Bases de datos

    4.1.- Datasources

  • datasourcejava:/jdbc/sqlserver/dbPruebas

    Mediante esta configuracin JBoss proporciona un pool de conexiones parametrizable y configurable en caliente, que permite modificar los parmetros del pool y de las conexiones a la BD sin necesidad de reiniciar el servidor o desplegar de nuevo la aplicacin.

    Debido a que esta funcionalidad ya la proporciona el servidor, las aplicaciones no debern implementar ningn mecanismo de pool o cach de conexiones.

    Siguiendo estas pautas, la actualizacin del fichero -ds.xml, donde estn definidos los pool de conexiones, no debe ocasionar problemas en las aplicaciones.

    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 integrarn en el desplegable de la aplicacin (fichero .war de la aplicacin).

    A continuacin 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 travs de JDBC (Java Database Connectivity).

    http://www.microsoft.com/downloads/

    Pgina 10 de 21

    GOBIERNO DE EXTREMADURA

    Direccin General de Administracin Electrnica y Tecnologas de la Informacin

    GUA TCNICA

    Desarrollo de Sistemas de Informacin con arquitectura JAVA

    4.2.- Drivers JDBC

  • 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

    caractersticas 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 caractersticas de JDBC para manejar ORACLE.

    http://www.oracle.com/technetwork/database/features/jdbc

    Para la persistencia de objetos en BD relacionales deber utilizarse alguna de las siguientes dos opciones:

    JPA (versin 2.0) Java Persistence API (JPA) proporciona un estndar para gestionar

    datos relacionales en aplicaciones Java SE o Java EE, de forma que

    Pgina 11 de 21

    GOBIERNO DE EXTREMADURA

    Direccin General de Administracin Electrnica y Tecnologas de la Informacin

    GUA TCNICA

    Desarrollo de Sistemas de Informacin con arquitectura JAVA

    4.3.- Persistencia de objetos

    Hibernate (JPA)

  • adems se simplifique el desarrollo de la persistencia de datos. Aunque ha sido definida como parte de la especificacin EJB 3.0 (Java

    EE 5), que supone una simplificacin 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 (versin 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 aplicacin.

    Hibernate es software libre, distribuido bajo los trminos de la LGPL (Licencia Pblica General Menor de GNU).

    http://www.hibernate.org/

    Hibernate est certificada mediante el Sun Technology Compatibility Kit (TCK) como compatible con la especificacin Java Persistence API (JPA).

    Preferiblemente se utilizar esta opcin, Hibernate con anotaciones JPA, para implementar la persistencia de los objetos en bases de datos relaciones.

    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 mtodos a sentencias SQL.

    No se permitir el uso de SQL directamente. Si es necesario utilizar

    Pgina 12 de 21

    GOBIERNO DE EXTREMADURA

    Direccin General de Administracin Electrnica y Tecnologas de la Informacin

    GUA TCNICA

    Desarrollo de Sistemas de Informacin con arquitectura JAVA

    Maybatis (Versin 3.2.7)

  • sentencias SQL se har utilizando este framework. De esta forma podr migrarse fcilmente la BD a otro SGBD sin afectar al funcionamiento de la aplicacin.

    Preferiblemente las sentencias SQL y el mapeo de los objetos se definir en ficheros xml en lugar de utilizar anotaciones.

    Para la gestin del proyecto Java se utilizar la herramienta Apache Maven 3.

    Apache Maven es un software para la gestin de proyectos. Es similar en funcionalidad a Apache Ant, pero tiene un modelo de configuracin de construccin ms 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 mdulos y componentes externo, y el orden de construccin de los elementos.

    Una caracterstica clave de Maven es que est listo para usar en red. El motor incluido en su ncleo puede dinmicamente 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/

    Pgina 13 de 21

    GOBIERNO DE EXTREMADURA

    Direccin General de Administracin Electrnica y Tecnologas de la Informacin

    GUA TCNICA

    Desarrollo de Sistemas de Informacin con arquitectura JAVA

    5.- Gestin de la aplicacin

    5.1.- Apache Maven 3

  • Todas las aplicaciones web JAVA debern desplegarse en el servidor como un fichero WAR (Web ARchive).

    Las libreras (ficheros .jar) que forman parte de la aplicacin deben integrarse en el fichero .war de la aplicacin (carpeta web/WEB-INF/lib).

    Ninguna librera especifica de la aplicacin se desplegar en la carpeta de libreras compartidas del Servidor JBoss (JBOSS_HOME/server/default/lib).

    Como ya se ha indicado en este documento siempre se debern aprovechar y utilizar las libreras y recursos que dispone el servidor JBoss para las aplicaciones. De esta forma se optimizan los recursos en el servidor y se reduce el tamao final del fichero .war.

    El fichero de gestin del proyecto de Maven deber gestionar correctamente esta situacin, es decir, el caso de la dependencia de la aplicacin de ciertas libreras para la compilacin del proyecto, pero que no son necesarias en el despliegue de la aplicacin, ya que se encuentran en el classpath del servidor.

    Cualquier incorporacin de libreras ya disponibles en JBoss en el .war de la aplicacin deber ser justificado y aceptado por la Direccin General de Administracin Electrnica y Tecnologas de la Informacin.

    Pgina 14 de 21

    GOBIERNO DE EXTREMADURA

    Direccin General de Administracin Electrnica y Tecnologas de la Informacin

    GUA TCNICA

    Desarrollo de Sistemas de Informacin con arquitectura JAVA

    5.2.- Despliegue de aplicaciones web JAVA

  • En la eleccin 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 sern vlidos son los siguientes:

    Pgina 15 de 21

    JSF

    POJO EJB

    HibernateMyBatis

    CA

    PA D

    E PR

    ESEN

    TAC

    IN

    Struts2Spring MVC

    CA

    PA D

    E N

    EGO

    CIO

    CA

    PA D

    E N

    EGO

    CIO

    Sprin

    g

    GOBIERNO DE EXTREMADURA

    Direccin General de Administracin Electrnica y Tecnologas de la Informacin

    GUA TCNICA

    Desarrollo de Sistemas de Informacin con arquitectura JAVA

    6.- Arquitectura de la aplicacin. Frameworks, utilidades y libreras

    6.1.- Frameworks permitidos

  • Respecto a ello, se hacen las siguientes consideraciones:

    Capa de presentacin: para esta capa son vlidos los frameworks Struts2 y Spring MVC as como las implementaciones de JSF Mojarra y MyFaces. En cuanto a las extensiones de JSF son vlidas cualquiera de las existentes (IceFaces, RichFaces, ).

    Capa de negocio: preferentemente se utilizarn POJOs. Los EJBs estarn 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 implementacin de JPA Hibernate. Tambin 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 travs de uno de estos frameworks.

    La eleccin de una alternativa en cualquiera de las capas no condiciona la eleccin en cualquiera de las otras capas, de forma que sern consideradas vlidas 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 autorizacin previa del mismo por parte de la direccin del proyecto.

    Para cualquier framework que se necesite fuera de las capas aqu sealadas siempre se preferir la alternativa ofrecida por Spring (SpringWS para los servicios web, Spring Security para la gestin de la seguridad, ). En caso de que no exista una alternativa dentro de Spring se preferirn los frameworks ms utilizados para esa tarea en concreto (Quartz para tareas,...). En cualquier caso la inclusin de cualquier de estos frameworks se consultar previamente con la direccin 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 libreras ya instaladas en los mismos. Esto supone que las aplicaciones a implantar no debern incluir ninguna librera ni componente de los que ya provea la administracin, salvo motivos debidamente justificados.

    Pgina 16 de 21

    GOBIERNO DE EXTREMADURA

    Direccin General de Administracin Electrnica y Tecnologas de la Informacin

    GUA TCNICA

    Desarrollo de Sistemas de Informacin con arquitectura JAVA

  • Spring es un framework para aplicaciones Java que proporciona facilidad de crear componentes reutilizables, adaptndose fcilmente 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 libreras (ficheros .jar) que forman el ncleo de este framework.(ttp://www.springframework.org/ )

    La tecnologa JavaServer Faces (JSF) es un marco de trabajo para interfaces de usuario para aplicaciones J2EE. Por diseo, es particularmente til con aplicaciones basadas en la arquitectura MVC.

    JBoss incorpora la implementacin (Proyect Mojarra) de la especificacin JSF 1.2. , por lo que no es necesario aadir la implementacin de JSF directamente en el WAR.

    http://java.sun.com/javaee/javaserverfaces/ http://community.jboss.org/wiki/JBossWithJSFCDDL

    Se propone RichFaces como librera de componentes visuales JSF. RichFaces es una librera de componentes visuales para JSF, que adems

    posee un framework avanzado para la integracin de funcionalidades Ajax en dichos componentes visuales, mediante el soporte de la librera Ajax4JSF.

    Pgina 17 de 21

    GOBIERNO DE EXTREMADURA

    Direccin General de Administracin Electrnica y Tecnologas de la Informacin

    GUA TCNICA

    Desarrollo de Sistemas de Informacin con arquitectura JAVA

    6.2.- Spring Framework (versin 3.2.9)

    6.3.- JSF (Java Server Faces) (versin 1.2)

    6.3.1.- RichFaces (versin 3.3.3)

  • El uso de otra librera JSF deber ser aceptada por la Direccin General de Administracin Electrnica y Tecnologas de la Informacin.

    http://www.jboss.org/richfaces

    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 programacin. Estos servicios pueden comunicarse a travs 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 caractersticas principales de CXF son:

    Soporte para estndares de Servicios Web: CXF soporta varios estndares de servicios web incluyendo a SOAP, el Perfil Bsico, WSDL, WS-Addressing, WS-Policy, WS-ReliableMessaging y WS-Security.

    Interfaces: CXF soporta varios modelos de programacin como "interfaz". CXF implementa el API JAX-WS. Tambin 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 cdigo primero comenzando desde Java.

    Facilidad de uso: CXF est diseado para ser intuitivo y fcil de usar. Hay APIs simples para construir servicios comenzando por el cdigo, plugins de Maven para integrar esta herramienta, soporte para el API JAX-WS, soporte de XML de Spring para facilitar la configuracin, etc.

    Soporte para protocolos binarios y legacy: CXF fue diseado para proveer una arquitectura extensible que no slo soporte XML sino tambin otros binding no XML, como JSON y CORBA, en combinacin con cualquier tipo de transporte.

    Un punto muy importante a tener en cuenta de Apache CXF es su facilidad para la integracin con Spring.

    Pgina 18 de 21

    GOBIERNO DE EXTREMADURA

    Direccin General de Administracin Electrnica y Tecnologas de la Informacin

    GUA TCNICA

    Desarrollo de Sistemas de Informacin con arquitectura JAVA

    6.4.- Apache CXF (Versin 2.6)

  • http://cxf.apache.org/

    JasperReports es una herramienta de cdigo libre en Java para generar reportes. Puede generar presentaciones o diseos 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 grfico 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 librera libre para la generacin de todo tipo de grficos.

    http://www.jfree.org/jfreechart/

    Pgina 19 de 21

    GOBIERNO DE EXTREMADURA

    Direccin General de Administracin Electrnica y Tecnologas de la Informacin

    GUA TCNICA

    Desarrollo de Sistemas de Informacin con arquitectura JAVA

    6.5.- JasperReport

  • Las aplicaciones debern usar cuando as lo requieran las libreras que por defecto ofrece JBoss, as como las libreras que se han aadido posteriormente al servidor para que estn disponibles para todas las aplicaciones. Las aplicaciones no debern incorporar en su WAR las libreras (o una versin diferente de las mismas) que se encuentran en la instalacin de JBoss y las que se han aadido por la Direccin General de Administracin Electrnica y Tecnologas de la Informacin.

    El siguiente conjunto de libreras o frameworks se han aadido al servidor (JBOSS_HOME/server/default/lib/) para que estn disponibles para todas las aplicaciones desplegadas. Las aplicaciones debern adaptarse a la versin especificada.

    JDBC drivers

    Spring 3.2.9

    Pgina 20 de 21

    GOBIERNO DE EXTREMADURA

    Direccin General de Administracin Electrnica y Tecnologas de la Informacin

    GUA TCNICA

    Desarrollo de Sistemas de Informacin con arquitectura JAVA

    7.- Libreras disponibles en el servidor JBoss

    7.1- Libreras incorporadas al servidor

  • Para el sistema de log de la aplicacin se utilizar la viene incluida con Jboss y que est activada por defecto.

    Este sistema es completamente configurable en tiempo de ejecucin utilizando archivos externos de configuracin.

    https://docs.jboss.org/author/display/AS71/Logging+Configuration

    En el cdigo se utilizar la clase org.jboss.logging.Logger.

    Las aplicaciones no tienen la necesidad de incorporar en los ficheros .war la librera, ya que sta se encuentra en JBOSS_HOME/modules/system/layers/base/org/jboss/logmanager.

    Pgina 21 de 21

    GOBIERNO DE EXTREMADURA

    Direccin General de Administracin Electrnica y Tecnologas de la Informacin

    GUA TCNICA

    Desarrollo de Sistemas de Informacin con arquitectura JAVA

    8.- Sistema de log y auditora de la aplicacin

    8.1- Jboss LogManagger

    A continuacin se exponen los criterios a seguir en relacin a hacer compatibles las aplicaciones y sus entornos de ejecucion:Microsoft SQL ServerPostgreSQLMySQLORACLE