GOBIERNO DE EXTREMADURA

INFORME Servicio de Desarrollo de Proyectos (Rev. 1.0) Dirección General de Administración Electrónica y Tecnologías de la Información Asunto: Estánd

6 downloads 88 Views 250KB Size

Recommend Stories


GOBIERNO DE EXTREMADURA
GOBIERNO DE EXTREMADURA Presidencia de la Junta TEXTO CONSOLIDADO DE LA LEY 14/2010, DE 9 DE DICIEMBRE, DE CAZA DE EXTREMADURA, MODIFICADO POR LEY 12

GOBIERNO DE EXTREMADURA CONSEJERÍA DE EDUCACIÓN Y EMPLEO
GOBIERNO DE EXTREMADURA CONSEJERÍA DE EDUCACIÓN Y EMPLEO Resolución de 27 de Abril de 2016, de la Dirección General de Personal Docente, por la que s

Story Transcript

INFORME Servicio de Desarrollo de Proyectos (Rev. 1.0) Dirección General de Administración Electrónica y Tecnologías de la Información

Asunto: Estándar para el desarrollo de portales con el gestor de contenidos Liferay

Redactor del Informe: Servicio de Desarrollo de Proyectos

Fecha: Septiembre de 2012

GOBIERNO DE EXTREMADURA Consejería de Administración Pública Dirección General de Administración Electrónica y Tecnologías de la Información Servicio de Desarrollo de Proyectos

INFORME Asunto: Estándar para el desarrollo de portales con el gestor de contenidos LIFERAY

Página 1 de 15

INFORME Servicio de Desarrollo de Proyectos (Rev. 1.0) Dirección General de Administración Electrónica y Tecnologías de la Información

Asunto: Estándar para el desarrollo de portales con el gestor de contenidos Liferay

Redactor del Informe: Servicio de Desarrollo de Proyectos

Fecha: Septiembre de 2012

1 Alcance del documento Este documento establece las características que el Servicio de Desarrollo de Proyectos considera que deben cumplir las aplicaciones web desarrolladas en Java utilizando el gestor de portales Liferay. Se describe el entorno tecnológico existente, el cual hay que tener en cuenta a la hora de implementar y testear la compatibilidad de las aplicaciones desarrolladas. En este documento se establecen los estándares, frameworks y librerías que deben utilizarse en las aplicaciones a desarrollar, para asegurar unos requisitos mínimos de calidad y estandarización y una completa compatibilidad con el entorno, así como facilitar las tareas de despliegue y mantenimiento de las aplicaciones. En principio, todas las aplicaciones web desarrolladas en Java utilizando el gestor de portales Liferay deberán respetar las características establecidas en este documento. En el caso de necesitarse algún componente (framework, librería, entorno, etc.), tecnología o herramienta no descrita en el documento, el Servicio de Administración Electrónica deberá conocer este hecho y aprobar su uso. Este documento es complementario al documento Estándar de Aplicaciones Web Java 2.0. Como norma general, se deben seguir todas las directrices marcadas en dicho estándar que no han sido recogidas y/o modificadas en este documento.

Página 2 de 15

INFORME Servicio de Desarrollo de Proyectos (Rev. 1.0) Dirección General de Administración Electrónica y Tecnologías de la Información

Asunto: Estándar para el desarrollo de portales con el gestor de contenidos Liferay

Redactor del Informe: Servicio de Desarrollo de Proyectos

Fecha: Septiembre de 2012

2 Plataforma El entorno tecnológico para las aplicaciones desarrolladas con Liferay es el siguiente: •

Java Platform, Standard Edition 6.0 (jdk1.6.0_11) Es una plataforma de programación para desarrollar y ejecutar software de aplicaciones en lenguaje de programación Java con arquitectura de n niveles distribuida, basándose ampliamente en componentes de software modulares ejecutándose sobre un servidor de aplicaciones. http://java.sun.com/



JBoss AS 5.1.0 GA 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 Java EE. http://www.jboss.org/jbossas/



Liferay Portal 5.2.3 Liferay Portal es una plataforma o framework Open Source para construir portales web. Liferay proporciona inmediatamente amplias capacidades como Gestión Documental y de Contenido, Publicación Web y Espacios de Trabajo Compartidos, Colaboración Empresarial, Redes Sociales de Conocimiento, Portales Empresariales, Sitios Web 2.0, Integración de Aplicaciones Empresariales, etc. Liferay está 100% desarrollada en Java y utiliza estándares, frameworks y librerías ampliamente probados como hibernate, struts, spring, etc. Por tanto, es compatible con la mayoría SOs, contenedores Servlet, servidores de aplicaciones y Bases de Datos. http://www.liferay.com/



SQL Server 2008 SQL Server 2008 es un gestor de bases de datos transaccional basado en el modelo relacional. http://www.microsoft.com/sqlserver

Las aplicaciones tienen que ser 100% compatibles con esta plataforma.

Página 3 de 15

INFORME Servicio de Desarrollo de Proyectos (Rev. 1.0) Dirección General de Administración Electrónica y Tecnologías de la Información

Asunto: Estándar para el desarrollo de portales con el gestor de contenidos Liferay

Redactor del Informe: Servicio de Desarrollo de Proyectos

Fecha: Septiembre de 2012

3 Requisitos generales de las aplicaciones Los requisitos generales de las aplicaciones web desarrolladas en Java con el gestor de portales Liferay son las siguientes: •

Cada instalación o aplicación Liferay solo puede tener una instancia de portal. En caso de necesitar más de una instancia de portal se realizarán distintas instalaciones o aplicaciones.



Se eliminarán del war de liferay todos los elementos (jar, librerías, portlets, etc.) que no se empleen en el portal.



Los elementos desplegables automáticamente en el directorio deploy propio de una instalación de liferay vendrán integrados en el war de la aplicación, esto incluye todos los plugins, portles, temas, etc., que pudieran.



Todas las propiedades necesarias para el portal, se deberán definir en el fichero LIFERAY_WAR/WEB-INF/clases/portal-ext.properties. Nunca se deben almacenar propiedades en la base de datos (tabla portletpreferences).



Los enlaces presentes en la aplicación (en contenidos web, noticias, artículos, etc.) deben ser siempre relativos, para que se añada a la url automáticamente el servidor, puerto y contexto en el que se despliega la aplicación, por ej: http://servidor:8080/portalejemplo

Página 4 de 15

INFORME Servicio de Desarrollo de Proyectos (Rev. 1.0) Dirección General de Administración Electrónica y Tecnologías de la Información

Asunto: Estándar para el desarrollo de portales con el gestor de contenidos Liferay

Redactor del Informe: Servicio de Desarrollo de Proyectos

Fecha: Septiembre de 2012

4 Estructura de la aplicación La aplicación se debe entregar como un fichero war que pueda ser desplegado como una carpeta contexto.war en el directorio de despliegue de jboss, JBOSS_HOME/server/default/deploy. La estructura de directorios que debe tener el proyecto war es la siguiente: •

contexto.war ◦ /WEB-INF: contiene los ficheros de configuración de la aplicación, web.xml, jbossweb.xml, struts-config.xml, liferay-display.xml, etc. ▪ /classes: ficheros de configuración de liferay, portal-ext.properties, portal-developer.xml, etc. ▪ /lib: librerías de la aplicación, debe incluir las librerías del portal junto con las dependencias de la versión específica de Liferay. ▪ /tld: fichero tld. ▪ /tmp: fichero temporal. ◦ /wap: módulo web para wap. ◦ /layouttpl: ficheros de definición de los layout de liferay. ◦ /html: módulo web de la aplicación. ◦ /errors: página de error de la aplicación. ◦ /dtd: esquemas dtd de definición de los distintos ficheros de configuración de la aplicación.

Página 5 de 15

INFORME Servicio de Desarrollo de Proyectos (Rev. 1.0) Dirección General de Administración Electrónica y Tecnologías de la Información

Asunto: Estándar para el desarrollo de portales con el gestor de contenidos Liferay

Redactor del Informe: Servicio de Desarrollo de Proyectos

Fecha: Septiembre de 2012

5 Configuración de la aplicación: aislamiento y contexto Para poder desplegar más de una aplicación desarrollada con Liferay en un mismo servidor JBoss es necesario realizar una serie de cambios en la configuración de la aplicación: •

Fichero de propiedades: el fichero de propiedades Liferay de la aplicación (portalext.properties) se debe situar en LIFERAY_WAR/WEB-INF/classes.



Dependencia de librerías de Liferay: las librerías de las que depende la versión 5.2.3 de Liferay Portal se deben situar en el war de la aplicación (LIFERAY_WAR/WEB-INF/lib) y no en el servidor. Estas librerías se encuentran en el apartado de descargas de www.liferay.com y para la versión 5.2.3 son las siguientes: annotations.jar, container.jar, hsql.jar, portal-kernel.jar, portalservice.jar, portlet.jar, portlet-container.jar, saw-api.jar.



Cambio de contexto de la aplicación. Es necesario establecer el contexto de la aplicación en el fichero de propiedades de Liferay (LIFERAY_WAR/WEB-INF/classes/portal-ext.properties): portal.ctx=/contexto

También es necesario establecer el contexto de la aplicación en el fichero de despliegue de un war en JBoss (LIFERAY_WAR/WEB-INF/jboss-web.xml): … contexto



Aislar la aplicación del resto de aplicaciones del servidor para evitar conflicto de librerías. Para ello hay que establecer un repositorio de carga único por aplicación en el fichero LIFERAY_WAR/WEB-INF/jboss-web.xml: com.liferay.portal:loader=liferay-portal-contexto …



Evitar conflicto entre beans. En Liferay existen dos bean que pueden dar conflicto cuando se despliega más de una aplicación en un servidor. Para solucionarlo debemos por un lado establecer un nombre único para el bean statistics de hibernate, para ello debemos cambiar en el fichero hibernate-spring.xml de nuestra librería portal-impl.jar y establecer un nombre único para el bean.

Por otro lado, es necesario comentar la declaración del bean JMXMessageListener en el fichero messaging-spring.xml de nuestra librería portal-impl.jar: Página 6 de 15

INFORME Servicio de Desarrollo de Proyectos (Rev. 1.0) Dirección General de Administración Electrónica y Tecnologías de la Información

Asunto: Estándar para el desarrollo de portales con el gestor de contenidos Liferay

Redactor del Informe: Servicio de Desarrollo de Proyectos

Fecha: Septiembre de 2012





Establecer el directorio home de Liferay para la aplicación. Cada aplicación deberá tener su propio directorio home en el que liferay almacena documentos del respositorio, índices de lucene, posee los directorios de despliegue, etc. Para configurarlo debemos definir la propiedad adecuada en el fichero de propiedades de Liferay (LIFERAY_WAR/WEB-INF/classes/portalext.properties): liferay.home=/var/www/contexto/datos



Todos los portlets o temas desarrollados para el portal deben estar incluidos en el war de la aplicación, y no podrán ser desplegados automáticamente en el directorio deploy de Liferay.

Página 7 de 15

INFORME Servicio de Desarrollo de Proyectos (Rev. 1.0) Dirección General de Administración Electrónica y Tecnologías de la Información

Asunto: Estándar para el desarrollo de portales con el gestor de contenidos Liferay

Redactor del Informe: Servicio de Desarrollo de Proyectos

Fecha: Septiembre de 2012

6 Librerías 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 el Servicio de Administración Electrónica, a excepción de las librerías que incorpora Liferay 5.2.3.

6.1

Librerías de Liferay Como norma general, todas las librerías que incorpora Liferay en su versión 5.2.3., además de las librerías que aparecen en el paquete liferay-portal-dependencies-5.2.3, irán en el war de la aplicación en LIFERAY_WAR/WEB-INF/lib. Sin embargo, se han de eliminar las siguientes librerías de Liferay (de LIFERAY_WAR/WEBINF/lib) y usar las que trae el servidor JBoss 5.1.0: jaxen.jar, jaxrpc.jar, stax.jar, xercesImpl.jar, xml-apis.jar.

6.2

Librerías destacables proporcionadas por JBoss 5.1.0 Un resumen de las librerías más significativas que incorpora JBoss es el siguiente: JBOSS_HOME/common/lib •

jsp-api.jar



servlet-api.jar



log4j ◦ log4j.jar ◦ log4j-snmp-appender.jar



commons-collections.jar (3.1)



commons-logging.jar (1.1)



el-api.jar



Hibernate ◦ hibernate-annotations.jar ◦ hibernate-commons-annotations.jar ◦ hibernate-core.jar (3.3.1)

Página 8 de 15

INFORME Servicio de Desarrollo de Proyectos (Rev. 1.0) Dirección General de Administración Electrónica y Tecnologías de la Información

Asunto: Estándar para el desarrollo de portales con el gestor de contenidos Liferay

Redactor del Informe: Servicio de Desarrollo de Proyectos

Fecha: Septiembre de 2012

◦ hibernate-entitymanager.jar ◦ hibernate-jmx.jar ◦ hibernate-validator.jar ◦ hsqldb.jar ◦ hsqldb-plugin.jar •

slf4j ◦ slf4j-api.jar ◦ slf4j-jboss-logging.jar

JBOSS_HOME/server/default/jbossweb.sar/ •

JSTL ◦ jstl.jar (1.2)



JSF 1.2 ◦ jsf-libs/jsf-api.jar ◦ jsf-libs/jsf-impl.jar

Por otro lado se han modificado una serie de librerías para obtener funcionalidades necesarias para la plataforma en el servidor JBoss. Las librerías modificadas son las siguientes: •

JBoss logging ◦ JBOSS_HOME/lib/jboss-logging-jdk.jar de la versión 2.1.0GA a la versión 2.1.1GA ◦ JBOSS_HOME/lib/jboss-logging-log4j.jar de la versión 2.1.0GA a la versión 2.1.1GA ◦ JBOSS_HOME/lib/jboss-logging-spi.jar de la versión 2.1.0GA a la versión 2.1.1GA

6.3

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 ◦ mysql-connector-java-5.1.11-bin.jar ◦ postgresql-8.4-701.jdbc4.jar ◦ sqljdbc4.jar Página 9 de 15

INFORME Servicio de Desarrollo de Proyectos (Rev. 1.0) Dirección General de Administración Electrónica y Tecnologías de la Información

Asunto: Estándar para el desarrollo de portales con el gestor de contenidos Liferay

Redactor del Informe: Servicio de Desarrollo de Proyectos

Fecha: Septiembre de 2012

7 Bases de Datos 7.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 en el el fichero de propiedades de Liferay (LIFERAY_WAR/WEB-INF/classes/portal-ext.properties): jdbc.default.jndi.name=jdbc/ContextoLiferayPool

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.

7.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:

7.2.1

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 15

INFORME Servicio de Desarrollo de Proyectos (Rev. 1.0) Dirección General de Administración Electrónica y Tecnologías de la Información

Asunto: Estándar para el desarrollo de portales con el gestor de contenidos Liferay

Redactor del Informe: Servicio de Desarrollo de Proyectos

Fecha: Septiembre de 2012

7.2.2

PostgreSQL •

PostgreSQL JDBC Driver (postgresql-8.4-701.jdbc4.jar)

Driver JDBC 4 de PostgreSQL. http://jdbc.postgresql.org/

7.2.3

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 /

Página 11 de 15

INFORME Servicio de Desarrollo de Proyectos (Rev. 1.0) Dirección General de Administración Electrónica y Tecnologías de la Información

Asunto: Estándar para el desarrollo de portales con el gestor de contenidos Liferay

Redactor del Informe: Servicio de Desarrollo de Proyectos

Fecha: Septiembre de 2012

8 Mail Toda la configuración de mail se hará en el servidor JBoss (ficheros .xml). No se permite la configuración del servidor de mail en los ficheros de propiedades de Liferay, la configuración se realizará en el fichero mail-service.xml del servidor JBoss, por ejemplo: mail/ContextoMailSession nobody password

El nombre de la session de mail (jndi-name) a su vez vendrá parametrizado en la aplicación en el fichero de propiedades de Liferay (LIFERAY_WAR/WEB-INF/classes/portal-ext.properties): mail.session.jndi.name=mail/ContextoMailSession

Página 12 de 15

INFORME Servicio de Desarrollo de Proyectos (Rev. 1.0) Dirección General de Administración Electrónica y Tecnologías de la Información

Asunto: Estándar para el desarrollo de portales con el gestor de contenidos Liferay

Redactor del Informe: Servicio de Desarrollo de Proyectos

Fecha: Septiembre de 2012

9 Sistema de log y auditoría de la aplicación 9.1

Apache Log4j Para el sistema de log de la aplicación se utilizará la librería Apache log4j: •

Log4J es un producto open source que permite a los desarrolladores controlar la salida de sus mensajes y hacia donde son dirigidos con gran granularidad.



Este sistema es completamente configurable en tiempo de ejecución utilizando archivos externos de configuración.



http://logging.apache.org/log4j/

El servidor JBoss la usa como su API interna de log. El Mbean Log4jService configura el sistema Apache log4j. JBoss proporciona a las aplicaciones automáticamente la inicialización de esta librería que por defecto viene determinada en el fichero de configuración JBOSS_HOME/server/default/conf/jboss-log4j.xml. Las aplicaciones no tienen la necesidad de incorporar en los ficheros .war la librería log4j, ya que ésta se encuentra en JBOSS_HOME/common/lib/log4j.jar.

9.2

Configuración general de las trazas y ficheros de log Este punto difiere de lo especificado en el punto 8.2. del documento Estándar de Aplicaciones Web Java 2.0. debido a que los portales Liferay no permiten el uso del log de jboss. Cada aplicación deberá tener un fichero de log propio, en el que aparezcan las trazas de Liferay y de los componentes o portlets desarrollados. La configuración del log para la aplicación y de los niveles de traza de los distintos componentes debe hacerse en el fichero de configuración de JBoss, JBOSS_HOME/server/default/conf/jboss-log4j.xml. En el caso de portales Liferay no se puede configurar el uso de appenders defindos en la configuración de jboss como se especifica en el documento Estándar de Aplicaciones Web Java 2.0, y hay que hacer que el portal escriba en consola para después filtrar el logging de la aplicación mediante un filtro. Por tanto, no se debe configurar el log en el fichero de propiedades de liferay LIFERAY_WAR/WEB-INF/classes/log4j.properties, que debe quedar con el valor que trae por defecto: log4j.rootCategory=INFO, CONSOLE log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern=%d{ABSOLUTE} %-5p [%c{1}:%L] %m%n

Página 13 de 15

INFORME Servicio de Desarrollo de Proyectos (Rev. 1.0) Dirección General de Administración Electrónica y Tecnologías de la Información

Asunto: Estándar para el desarrollo de portales con el gestor de contenidos Liferay

Redactor del Informe: Servicio de Desarrollo de Proyectos

Fecha: Septiembre de 2012

Un ejemplo de configuración es del log para una aplicación Liferay en el fichero jboss-log4j.xml es:

Como vemos, se utiliza la clase org.jboss.logging.filter.TCLMCFilter para filtrar las trazas de log de la aplicación. Para ello es necesario disponer de las versiones 2.1.1GA de las librerías jboss-logging-jdk.jar, jboss-logging-log4j.jar y jbosslogging-spi.jar en JBOSS_HOME/lib, y reemplazar la versión 2.1.0GA de las librerías que es la que viene inicalmente en JBoss 5.1.0. Para los componentes o portlets desarrollados se deberán seguir además las características expuestas en el punto 8.2. Configuración general de las trazas y ficheros de log del documento Estándar de aplicaciones web Java 2.0.

Página 14 de 15

INFORME Servicio de Desarrollo de Proyectos (Rev. 1.0) Dirección General de Administración Electrónica y Tecnologías de la Información

Asunto: Estándar para el desarrollo de portales con el gestor de contenidos Liferay

Redactor del Informe: Servicio de Desarrollo de Proyectos

Fecha: Septiembre de 2012

10 Proxy En principio el portal Liferay está preparado para obtener la conexión a Internet para acceso a contenido externo a través de un proxy. Se debe comprobar que el portal desarrollado se comporta de forma correcta cuando se configura un proxy. La configuración del proxy se debe realizar en el fichero LIFERAY_WAR/WEB-INF/clases/systemext.properties: #Dirección ip del proxy http.proxyHost=192.168.0.200 o https.proxyHost=192.168.0.200 #Puerto del proxy http.proxyPort=4480 o https.proxyPort=4480 #Hosts a los que no se accederá a través del proxy http.nonProxyHosts=192.168.0.250

La configuración de la validación al proxy se debe realizar en el fichero LIFERAY_WAR/WEBINF/clases/portal-ext.properties: # Tipo de autenticación. com.liferay.portal.util.HttpImpl.proxy.auth.type=username-password com.liferay.portal.util.HttpImpl.proxy.auth.type=ntlm # Nombre de usuario y contraseña usada para autenticación http. com.liferay.portal.util.HttpImpl.proxy.username= com.liferay.portal.util.HttpImpl.proxy.password= # Nombre de usuario y contraseña usada para autenticación NTLM. com.liferay.portal.util.HttpImpl.proxy.ntlm.domain= com.liferay.portal.util.HttpImpl.proxy.ntlm.host=

Página 15 de 15

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.