3 Despliegue del aplicativo

Anuncio
ANEXO a la Guía de Estándares
Normativa de Empaquetado y
Entrega
1
Índice
1
Introducción _________________________________________________ 4
2
Empaquetado de los entregables ________________________________ 4
3
2.1
Empaquetado de los módulos_____________________________________ 4
2.2
Nombrado de los entregables _____________________________________ 5
2.3
Versionado de empaquetados ____________________________________ 6
2.4
Política de empaquetado de librerías _______________________________ 6
2.5
Elementos a excluir del empaquetado ______________________________ 8
Despliegue del aplicativo ______________________________________ 8
3.1
4
3.1.1
Contenido del EAR __________________________________________________ 9
3.1.2
Contenido del WAR _________________________________________________ 10
3.1.3
Contenido de módulos jar. ___________________________________________ 11
3.1.4
Recursos estáticos __________________________________________________ 11
3.1.5
Archivo con recursos dependientes del entorno __________________________ 11
3.1.6
Documentación ____________________________________________________ 12
3.2
Configuración de contexto ______________________________________ 13
3.3
Despliegues con EJBs ___________________________________________ 13
3.4
Despliegues con Webservices ____________________________________ 13
Configuración para arquitectura IAM WAS _______________________ 13
4.1
Descriptores de despliegue ______________________________________ 13
4.2
Configuración de Carga de clases _________________________________ 15
4.3
Configuración en el servidor WAS relativa a la aplicación ______________ 15
4.3.1
Configuración de la Sesión ___________________________________________ 15
4.3.2
Recarga de clases y JSPs _____________________________________________ 16
4.3.3
Propiedades personalizadas a nivel de servidor __________________________ 16
4.4
5
Componentes de la versión a desplegar _____________________________ 8
Configuración de propiedades específicas de la aplicación _____________ 18
Utilización de recursos ________________________________________ 19
2
5.1
Base de datos _________________________________________________ 19
5.1.1
Filegroup _________________________________________________________ 19
5.1.2
Nomenclatura de ficheros ___________________________________________ 19
5.1.3
Índices ___________________________________________________________ 19
5.1.4
Particionamiento __________________________________________________ 20
5.1.5
Acceso a base de datos desde WAS ___________________________________ 20
5.1.6
Requisitos para la ejecución de scripts _________________________________ 21
5.2
Ficheros de las aplicaciones _____________________________________ 22
3
1 Introducción
El objetivo de este documento es definir la normativa que se debe cumplir para
realizar las tareas de empaquetado y entrega de los aplicativos web J2EE del IAM, así
como permitir su validación antes del proceso de despliegue.
2 Empaquetado de los entregables
2.1 Empaquetado de los módulos
Se usará Maven 3.0.4 como herramienta de construcción de los artefactos.
Debe existir un pom.xml padre en la raíz del proyecto que contenga como mínimo la
siguiente configuración:



Módulos incluidos en el aplicativo.
Librerías del proyecto compartidas por sus módulos.
Java Development Kit (JDK) usado para compilar. Para el despliegue en
WAS 6.1 se debe compilar con JDK 5, mientras que para desplegar en
WAS 8 debemos compilar con JDK 6.
Cada módulo debe disponer también de su propio pom.xml que permite la
compilación y empaquetado de cada módulo.
Para realizar la compilación y empaquetado del aplicativo se ejecutará en la
raíz del proyecto el siguiente comando: mvn clean package. Adicionalmente se
pueden añadir distintas opciones (por ejemplo perfil a usar) que deberán ser indicadas
en la solicitud de auditoría.
Se debe generar al menos un entregable (EAR) correspondiente al aplicativo
que se colocará en la carpeta de despliegues. En caso de contener recursos (estáticos
o de configuración) se debe generar un fichero ZIP con los recursos estáticos y otro
fichero ZIP con los ficheros de configuración por cada entorno. En caso de tener
subsistemas (como puede ser internet e intranet) se crearan un directorio por
subsistema repitiendo el esquema.
A continuación se muestra un esquema donde se puede observar donde se
encuentra cada uno de los elementos descritos en esta apartado. Se supone una
entrega del proyecto CURSO en el tag V01.01.003
4
Ilustración 1. Esquema de la carpeta de despliegues de CURSO
2.2 Nombrado de los entregables
Cada entregable tendrá un nombre del proyecto más la versión a desplegar. La
normativa del proyecto y versión viene definida en el documento general de la Guía de
Estándares.
Los ficheros pom.xml indican la siguiente información:




<groupId> - nombre del paquete o grupo al que pertenece el proyecto.
En general será de la forma es.iam.grupoId, dónde grupoId es
[areaNegocio].[acronimoAplicativo].
<artifactId> - nombre del artefacto a empaquetar que representa.
<version> - versión del aplicativo que debe coincidir con el del
artefacto. No es necesario indicarlo si corresponde a un módulo debido
a que coincide con la versión definido en el pom padre.
<packaging>- indica el tipo de empaquetado: ear, war, jar, pom, ejb...
5
Los módulos JAR, WEB y EJB empaquetados dentro de un EAR deben tener la
misma versión que el EAR. Es obligatorio que el pom.xml que realiza el empaquetado
del EAR contenga la versión a entregar.
2.3 Versionado de empaquetados
Los empaquetados j2ee tienen un fichero especifico META-INF/MANIFEST.MF
que permite especificar propiedades de ese empaquetado (sea jar, war ó ear). Una de
las
propiedades de dicho fichero es "Implementacion-Version" que permite
especificar la versión del aplicativo. Esto permite conocer la versión desplegada de la
aplicación a través de la consola de WebSphere.
2.4 Política de empaquetado de librerías
Solo se podrán usar, y por tanto empaquetar, las librerías aprobadas por el IAM
que se encuentran publicadas en el gestor de artefactos corporativo.
Hay que tener en cuenta que algunas librerías, aunque estén publicadas en el
gestor de artefactos corporativo, solo deben usarse para compilar las fuentes o realizar
pruebas del sistema y por ese motivo no deben estar presentes en el empaquetado
final del aplicativo.
Las siguientes librerías se encuentran ya desplegadas en los servidores WAS
del IAM por lo que no deben ser incluidas en el empaquetado de los aplicativos.

API StandAlone eAS_TSP_v6.2.7

base.jar

classes12.jar

db2java.zip

db2jcc.jar

db2jcc_lidense_cu.jar

msbase.jar

msqlserver.jar

msutil.jar

ojdbc12.jar

ojdbc14_g.jar

ojdbc5.jar
6

spy.jar

sqlsever.jar

util.jar
No se deben tampoco incluir librerías propias de servidores de aplicaciones o
de la jdk, por ejemplo:

ant-antlr-*

core.jar

ffdc.jar

ffdc.jar

ivjejb35.jar

j2ee.jar

jaas.jar

jboss*.jar

jboss*.properties

jcert.jar

jdbc2_0-stdext.jar

jnet.jar

jsse.jar

jstl.jar

jta.jar

namespace.jar

rt.jar

server.jar

servlet.jar

xml.jar
No se deben empaquetar jar necesarios tan solo para realizar las pruebas del
sistema:
7

cactus*.jar

jmock*.jar

jtestcvase*.jar

junit*.jar

mockito*.jar

powermock*.jar

strutstest*.jar
2.5 Elementos a excluir del empaquetado
En este apartado se listan los elementos que no deben estar presentes en el
empaquetado final de ninguno de los módulos de un aplicativo.











Ficheros obsoletos, por ejemplo, con extensión .old
Ficheros duplicados con extensiones diferentes, por ejemplo, .desarrollo
y .producción.
Duplicación de una misma librería (.jar) con diferente versión.
Carpetas y ficheros propios del sistema de control de versiones.
Descriptores o ficheros de configuración propios de otros servidores de
aplicaciones.
Diferentes versiones de descriptores o ficheros de configuración
(web.xml.desarrollo)
Archivos con el código fuente no compilado (.java)
Clases de prueba de la aplicación (por ejemplo JUnit), ni clases que
implementen sentencias assert.
Clases que implementen un método main, puesto que son aplicaciones
WEB y no aplicaciones cliente.
Contenidos estáticos del aplicativo. Ver apartado Recursos estáticos
Archivos de configuración dependientes del entorno. Ver Archivo con
recursos dependientes del entorno
3 Despliegue del aplicativo
3.1 Componentes de la versión a desplegar
En esta arquitectura IAM WAS los artefactos del sistema se van a distribuir
entre los diferentes servidores y recursos. En este apartado se indican los artefactos
que deben formar parte de la versión que se entrega al Dpto. de Tecnologías Web.
8
3.1.1
Contenido del EAR
Solamente se permite el despliegue de artefactos EAR en el servidor WAS.
Consideramos la siguiente estructura estándar de directorios para los
aplicativos EAR:
/Directorio raíz del EAR








WAR 1
…
WAR N
EJB 1
…
EJB N
lib
META-INF
 application.xml
 MANIFEST.MF
Los módulos Web y EJB se empaquetan en el directorio raíz del EAR.
El directorio lib debe contener las librerías compartidas por todos los módulos
empaquetados en el EAR, salvo las librerías compartidas a nivel de servidor definidas
en el apartado Política de empaquetado de librerías.
El fichero META-INF/MANIFEST.MF se genera durante el proceso de
empaquetado realizado con Maven. Debe contener la siguiente información:
Manifest-version : 1.0
Build-Jdk: <Versión del JDK usado para compilar>
Created-By: <uso de Maven como herramienta de empaquetado>
Implementacion-Version : <versión del aplicativo>
El descriptor de despliegue de la aplicación META-INF/application.xml debe
cumplir con la especificación J2EE 1.4 para WAS 6.1 o Java EE 6 para WAS 8. Debe
contener una referencia a los distintos módulos WEB o EJB a desplegar así como el
context root de cada módulo.
Respecto a los descriptores de despliegue, el EAR no debe incluir la carpeta
META-INF/ibmconfig, ya que deberán utilizarse los recursos definidos a nivel de
servidor WAS.
9
El nombre del fichero .EAR tiene que corresponderse con el context root del
módulo Web principal, el cual debe coincidir con el acrónimo de la aplicación y
contexto que se haya indicado en el documento Despliegue de Aplicación Web .
3.1.2
Contenido del WAR
Cada módulo Web (aplicación o servicio web) contenido en el EAR se
empaqueta en un fichero WAR que tendrá la siguiente estructura:
/Directorio raíz del WAR


WEB-INF
 jsp
 classes
 META-INF
 Archivos de configuración independientes del
entorno
 lib
 web.xml
META-INF
 MANIFEST.MF
Los archivos jsp deben estar bajo el directorio WEB-INF/jsp pudiendo este
tener subdirectorios para facilitar el ordenado de las jsp.
El directorio WEB-INF/classes contiene las clases java compiladas así como
los ficheros de recursos propios de la aplicación y no dependientes de entorno.
El directorio lib únicamente debe contener las librerías JAR usadas
exclusivamente por el módulo Web.
El fichero META-INF/MANIFEST.MF debe contener la siguiente información:
Manifest-version : 1.0
Build-Jdk: <Versión del JDK usado para compilar>
Created-By: <uso de Maven como herramienta de empaquetado>
Implementacion-Version : <versión del aplicativo>
El descriptor de despliegue WEB-INF/web.xml debe cumplir
especificación de servlets 2.4 para WAS 6.1 y servlets 3.0 para WAS 8.0
con
la
Cualquier fichero de configuración no dependiente del entorno irá incluido
dentro del directorio WEB-INF.
10
3.1.3
Contenido de módulos jar.
El fichero META-INF/MANIFEST.MF debe contener la siguiente información:
Manifest-version : 1.0
Build-Jdk: <Versión del JDK usado para compilar>
Created-By: <uso de Maven como herramienta de empaquetado>
Implementacion-Version : <versión del aplicativo>
En caso de que el jar contenga en su interior EJB se empaquetaran junto con
su descriptor de despliegue
3.1.4
Recursos estáticos
Podemos considerar recursos estáticos a los archivos html (.htm, .html), los
documentos de ayuda/manuales (.doc, .pdf), las carpetas con hojas de estilo (.css),
carpetas con imágenes (.jpg, .gif, .png) y archivos javascript (.js), etc.
Estos elementos deben entregarse en un archivo ZIP independiente al EAR tal
y como se indica en el apartado Empaquetado de los módulos, pues se
despliegan en el servidor web frontal IBM HTTP Server. Todo lo referente al runtime
de los Applets también tiene que ser entregado conjuntamente con la parte estática y
no con el EAR de la aplicación.
En una aplicación con varios módulos WAR, para poder diferenciar los posibles
context roots, los recursos estáticos deberán ubicarse bajo un directorio con el
identificativo de cada context root.
Al menos se debe incluir una página estática (home.htm, index.htm,...), la cual
será declarada en el descriptor web.xml como welcome file. Dicha página será el punto
de entrada inicial en las aplicaciones que requieren SSL.
3.1.5
Archivo con recursos dependientes del entorno
Si se dispone de ficheros de configuración (.properties, .XML, etc.) y sus
propiedades dependen del entorno en que se encuentra desplegado, se entregarán en
un archivo ZIP adicional tal y como se indica en el apartado “Empaquetado de los
módulos”, que se desplegará en el repositorio de recursos de los servidores WAS. Se
agruparán en una carpeta para su despliegue en preproducción y otra para su
despliegue en producción y cuando dichos recursos se modifican con la actualización
de versión (o es el primer despliegue) deben incluirse en la entrega.
Para aplicaciones a desplegar en plataforma WAS 8 se entregará en un único
fichero, denominado serviciosIAM.properties, todas aquellas propiedades de los
11
servidores IAM y/o acceso a los mismos, a cumplimentar por las unidades de
Sistemas.
Estos ficheros incluyen:

Ficheros con parámetros propios de la aplicación cuyos valores
dependen del entorno

Ficheros con datos de servicios externos (URLs, máquinas, usuarios de
conexión, etc.)

Log4J.properties o similar

Almacenes de certificados propios de la aplicación
Se debe declarar un perfil (profile) en el script de .pom padre que permita el
empaquetado del archivo ZIP para al menos el entorno de preproducción y producción.
Entorno de desa: mvn clean package –P desa
(o mvn clean package ya que es el de por defecto)
Entorno de pre: mvn clean package –P pre
Entorno de pro: mvn clean package –P pro
Para preproducción el perfil tendrá el identificador pre y para producción tendrá
el identificador pro. En caso de crear un perfil para desarrollo su identificador será
desa y este será el perfil por defecto. Así los comandos a ejecutar por entorno serán
como siguen.
Se podrán crear perfiles adicionales siempre y cuando se ejecuten junto con los
perfiles obligatorios. Por ejemplo mvn clean package –P pre,internet.
En el documento Manual Técnico de Despliegue de Aplicación Web, se
deberán indicar los parámetros dependientes de cada entorno, independientemente de
que los ficheros ya contengan dichas modificaciones, ya que se verificará que los
valores son correctos antes de proceder a su despliegue.
3.1.6
Documentación
La documentación a aportar, para solicitar la petición de despliegue de la
aplicación, se encuentra indicada en la guía de estándares en el apartado IAS.
12
3.2 Configuración de contexto
Los context roots deben ser únicos en todo el IAM para evitar problemas de
colisión con otras aplicaciones y se deben evitar contextos estereotipo como
“/servlets”. Para ello, se debe anteponer en el context root los 5 caracteres que se
correspondan con el acrónimo de la aplicación a la que pertenecen.
3.3 Despliegues con EJBs
Se prohíbe la utilización de EJB 2.x., que requiera generación de clases y
despliegues. En caso de ser necesario su uso deberá ser justificado y se indicará en el
documento “Manual Técnico de Despliegue de Aplicación Web” de la aplicación. Este
documento deberá indicar que la aplicación requiere el despliegue de los EJBs.
3.4 Despliegues con Webservices
La Guía de Estándares define pautas específicas para el desarrollo de servicios
web para el IAM en su anexo “Manual de Servicios Web”
En el documento “Manual Técnico de Despliegue de Aplicación Web” se debe
indicar que la aplicación requiere el despliegue de los servicios web, para que en la
instalación de dicho EAR se marque el despliegue de los mismos.
4 Configuración para arquitectura IAM WAS
4.1 Descriptores de despliegue
Los descriptores de despliegue son los ficheros XML normalizados que
contienen información como el context root de la aplicación web, la declaración de los
recursos de la aplicación (datasources, url,...), los módulos EJBs y Web, etc.
A parte de los descriptores application.xml y web.xml, el EAR a implantar en la
plataforma IAM debe incluir los descriptores necesarios para el despliegue en el
servidor WAS. Las propiedades que se indiquen en ellos para el despliegue de la
aplicación, serán comprobadas en la instalación. Si dichas propiedades no han sido
justificadas en el documento “Manual Técnico de Despliegue de Aplicación Web”,
pueden ser ignoradas o cambiadas en su instalación.
En concreto, se ignorarán las propiedades de los descriptores bajo la carpeta
META-INF\ibmconfig del EAR, ya que deberán utilizarse los recursos definidos a nivel
de servidor WAS.
13
Con respecto a las propiedades de despliegue de los módulos Web se
recomienda tener configurado en a los descriptores application.xml y web.xml los
siguientes elementos:

<display-name> (application.xml): debe coincidir con el contexto de la
aplicación, es decir, si hay varios módulos war indíquese el que se
considere como principal.

<context-root>: identificativo de la aplicación y proyecto; se
recomienda que el contexto de todos los módulos de las aplicaciones
del mismo proyecto comiencen por 3-4 letras relativas al mismo, por
ejemplo: GITE, GITE_INF, GITE_WS

<servlet-mapping>: mapeo de URLs a servlets

<welcome-file-list>: al menos debe declararse la página estática de
inicio entregada con los componentes estáticos, fundamentalmente si
se trata de aplicaciones que requieren SSL

<error-page>: mapeo de errores 4xx y 5xx a una página personalizada
de la aplicación

<resource-def>: para definición de los pool de conexiones a base de
datos, recursos URL, etc.
Respecto al descriptor ibm-web-ext.xmi de WAS, localizado en el directorio
WEB-INF del WAR, se tendrá en cuenta:

fileServingEnabled="false":deshabilita el servicio de páginas

serveServletsByClassnameEnabled="false": los servlets deben
servirse solamente a través de una URI Referente, sin embargo, si esta
propiedad está habilitada, el servlet puede ser invocado especificando
el nombre de la clase. Por motivos de seguridad, esta propiedad debe
de estar a false.

reloadingEnabled="false": deshabilitar la recarga de clases a nivel de
Web Module. En el servidor WAS esta recarga se habilita a nivel de
aplicación cuando es necesario.

jspAttributes reloadEnabled="false": específica si se habilita la
recarga de clases cuando un JSP es modificado. En el servidor WAS
esta recarga se habilita a nivel de aplicación cuando es necesario
No deberán entregarse descriptores propios de otros servidores de
aplicaciones (jboss-web.xml, etc.). También debe tenerse especial cuidado en no
entregar diferentes versiones de los descriptores (web.xml.desarrollo) o ficheros
obsoletos de los mismos (web.xml.old).
14
4.2 Configuración de Carga de clases
El classloader mode de la aplicación se recomienda que sea en modo
PARENT_FIRST, lo que implica la utilización de las librerías ya disponibles en WAS
siempre que sea posible, evitando sobrecargar la memoria del servidor java con clases
en exceso, pero se admite también carga de clases PARENT_LAST.
Por otra parte, si hay más de un módulo WEB, se recomienda que la política
del WAR esté a nivel de MODULE y en ese caso debe incluirse en la documentación
la carga de clases a aplicar en cada módulo.
4.3 Configuración en el servidor WAS relativa a la aplicación
Los parámetros que afecten al rendimiento de las aplicaciones desplegadas se
deben configurar a nivel de servidor y no ir embebidos en el código de la aplicación.
Esto tiene un doble objetivo:

La normalización del procedimiento de configuración

El cambio dinámico de las propiedades.
Teniendo en cuenta que varias aplicaciones van a compartir el mismo servidor
WAS, cualquier parámetro que una aplicación necesite cambiar a nivel de servidor,
debe de ser acordado y aprobado de antemano.
4.3.1
Configuración de la Sesión
No se debe incluir información sobre tiempo de sesión en el descriptor web.xml.
Este dato se configura a nivel de aplicación en el servidor WAS: Tiempo de expiración
de la sesión. El valor por defecto será de 30 minutos. No debe indicarse en el fichero
web.xml ni modificarse por código este valor, pues de esta forma, en el servidor WAS
se podrá modificar convenientemente el valor para la aplicación ya desplegada.
Por defecto los servidores de IAM no tendrán habilitada la réplica de sesión
para evitar utilizar procesamiento y recursos innecesarios por el propio aplicativo, ya
que esta opción incide en el rendimiento de la aplicación y puede ocasionar problemas
serios de gestión de la memoria. En el caso de que la aplicación necesite dicha
replica, habrá que indicarlo en el documento “Manual Técnico de Despliegue de
Aplicación Web” y asegurarse de:

Que si se utiliza HTTPSession, todo lo que esté incluido sea serializable.

El tamaño de HTTPSession debe reducirse al máximo.
15
4.3.2
Recarga de clases y JSPs
Aunque en el descriptor ibm-web-ext.xmi, localizado en el WEB-INF de la
aplicación, se hayan incluido los atributos relativos a la recarga de clases, estos serán
ignorados y configurados en el servidor WAS.
En el entorno de desarrollo se habilitará la recarga de clases a nivel de Web
Module, así como la recarga cuando un JSP es modificado. Además, se proporcionará
un procedimiento automático de parada-despliegue-arranque de la aplicación.
Sin embargo, en los entorno de preproducción, formación y producción la
recarga de clases y JSPs estará deshabilitada, pues no se realizan despliegues de
componentes aislados. Por defecto, tampoco se realizará una precompilación de JSP
en el despliegue de las aplicaciones para minimizar el tiempo de parada de servicio.
De ser necesaria la recarga de los JSP, debe ser expresamente documentado en el
Manual Técnico de Despliegue.
4.3.3
Propiedades personalizadas a nivel de servidor
En determinadas circunstancias puede ser necesario especificar propiedades
personalizadas que modifiquen el comportamiento por defecto del contenedor Web del
servidor de aplicaciones.
Análogamente, las propiedades personalizadas en la JVM se utilizan para
modificar el comportamiento de la JVM así como definir variables específicas que
estarán disponibles para su uso por las aplicaciones desplegadas en el servidor de
aplicaciones.
Algunas de estas propiedades ya están incorporadas por defecto en los
servidores de la plataforma IAM WAS, pero otras deben solicitarse expresamente y su
incorporación se realizará una vez esté aprobado el cambio, dado que afecta a todas
las aplicaciones en el servidor.
NIVEL
PROPIEDAD
PERSONALIZADA
USO
POR DEFECTO
Contenedor
WEB
com.ibm.ws.webcontainer.
Esta propiedad permite invocar
filtros en las peticiones que no
tienen definido un mapeo a un
servlet.
Sin
esta
propiedad
configurada,
WAS
comprobaría
primero si la URL está mapeada a
un servlet o a un fichero antes de
enviar las peticiones a la cadena de
filtros, de modo que se produciría
un error 404 si no existiera esta
No activa
invokefilterscompatibility
16
propiedad
Contenedor
WEB
com.ibm.ws.webcontainer.
Contenedor
WEB
com.ibm.ws.webcontainer.
Contenedor
Web
HttpSessionIdReuse
Esta propiedad determina si el
gestor de sesiones puede usar el
identificador de sesión enviado del
navegador para preservar los datos
a través de aplicaciones Web que se
están ejecutando en un mismo
dominio.
No activa
JVM
WAS61_RECURSOS
Esta propiedad se usa desde los
aplicativos para conocer la ruta de
los recursos de las aplicaciones.
Activa
Esta propiedad se usa desde los
aplicativos para conocer la ruta de
los ficheros de logs de las
aplicaciones
Activa
Esta propiedad permite conocer el
nombre del servidor de aplicaciones
en el que se está ejecutando la
aplicación. Este nombre puede
usarse
como
parte
de
la
nomenclatura de ficheros NAS.
Activa
Configuración
de
proxy
para
llamadas a servicios externos al
IAM.
No activa
disallowAllFileServing
disallowserveservletsbyclassna
me
WAS8_RECURSOS
JVM
WAS61_LOGS
WAS8_LOGS
JVM
WAS61_SERVER_NAME
WAS8_SERVER_NAME
JVM
http.nonProxyHosts (ó https)
http.proxyHost
Esta propiedad impide que las
aplicaciones
puedan
servir
contenido estático desde el servidor
de
aplicaciones,
independientemente de la propia
configuración de la aplicación. Todo
este tipo de contenido se deber
proporcionar a través del servidor
Web
Activa
Esta propiedad impide
puedan invocar a los
directamente a través del
de la clase para evitar
riesgos de seguridad.
Activa
que se
servlets
nombre
posibles
http.proxyPort
http.proxySet
En el Manual Técnico de Despliegue se especificarán los valores que deben
asignarse para cada uno de estos parámetros cuando no sean los valores por defecto.
17
Estos valores pueden variar entre el entorno de desarrollo y producción, pero siempre
deberán indicarse los que correspondan al entorno de producción, los cuales serán
aplicados también en el entorno de preproducción
4.4 Configuración de propiedades específicas de la aplicación
La especificación J2EE o Java EE recomienda acceder siempre a los recursos
externos mediante un Resource Manager, y en concreto, para los ficheros de
configuración propios de la aplicación, la forma adecuada es definirlos mediante URLs
gestionadas por el URL Resource Manager. Estos recursos URL deben ser creados en
el WAS la primera vez que se necesite por la aplicación y podrán ser reutilizados por el
resto de aplicaciones del proyecto. Es el caso de la dirección URL del webService de
uWeb, que ya está definido a nivel de servidor WAS y por tanto disponible para que
todas las aplicaciones tengan dicha información independizada del entorno.
La configuración de parámetros de la aplicación dependientes del entorno
seguirá estas pautas:

URLs generales del IAM, por ejemplo dirección del webService de uWeb: se
utilizarán recursos URL creados en el WAS.

URLs específicas de la aplicación, por ejemplo, llamadas a webservices
creados en el ámbito del proyecto: se agruparán en uno o varios ficheros
.properties o .xml.

Parámetros propios de la aplicación: se agruparán en uno o varios ficheros
.properties o .xml.

Direcciones de los recursos NAS propios de la aplicación: se incluirá ese dato
dentro de un fichero de propiedades

Ficheros de configuración de trazas (log4j.properties, etc.): se ubicarán junto
con los ficheros de propiedades.
Los ficheros de propiedades se ubicarán en un repositorio único de la
plataforma WAS y se accederá a ellos mediante el recurso URL url/miAplicacion, único
para cada aplicación.
Para aplicaciones a desplegar en plataforma WAS 8 se entregará en un único
fichero, denominado serviciosIAM.properties, todas aquellas propiedades de los
servidores IAM y/o acceso a los mismos, a cumplimentar por las unidades de
Sistemas.
18
5 Utilización de recursos
5.1 Base de datos
En lo relativo a base de datos se deben seguir las siguientes indicaciones tanto
a la hora de solicitar su creación como para acceder a ella desde una aplicación
desplegada en un servidor WAS.
5.1.1
Filegroup
La base de datos deberá tener definidos de forma obligatoria para el entorno
productivo los siguientes filegroup’s:





PRIMARY para albergar las tablas del sistema
FG_DATAnn para albergar tablas de datos. (nn >=01 <=99)
FG_IMGnn para albergar imágenes (si las hubiere).
FG_TEXnn para albergar textos (si los hubiere).
FG_INDnn para albergar índices no cluster.
5.1.2
Nomenclatura de ficheros
A la hora de crear la base de datos los nombres de los ficheros de base de
datos serán similares a:





G:\nombre_bd\Datos\primary_01.mdf
G:\nombre_bd\Datos\Nombre_fichero_data01.ndf
G:\nombre_bd\Imagenes\Nombre_fichero_img01.ndf
G:\nombre_bd\Indices\Nombre_fichero_ind01.ndf
G:\nombre_bd\Log\Nombre_fichero_log01.ldf
5.1.3





Índices
Todo índice no cluster deberá ubicarse en los file groups (FG_INDnn) definidos
para ello.
No definir índice por la clave primaria, pues la definición de la clave primaria ya
lleva implícita la creación de un índice.
Definir índices por las columnas sobre las cuales haya definida una relación de
integridad (foreign key).
Si se crean índices por varias columnas colocar primero la columna que sea
más selectiva, es decir, por la que no se repitan mucho los valores y después
las menos selectivas.
Los índices sobre columnas que tiene mucha información duplicada no son
eficientes.
19

Defina índices clustered si necesita hacer consultas sobre un rango de valores
u ordenar datos por medio de GROUP BY u ORDER BY.
5.1.4
Particionamiento
En aquellas tablas en las que se estime un número muy elevado de filas, del
orden de más de 1 millón, deberá implementarse el particionamiento de la misma
habilitando para ello la definición de función y esquema de particionamiento.
5.1.5
Acceso a base de datos desde WAS
Los servidores de Bases de Datos corporativos sobre los que las aplicaciones
desplegadas en entorno WAS deben trabajar fundamentalmente son SQL Server 2005
y Oracle 10g. En cualquier caso, los proveedores de datos para SQL Server que
deben utilizarse serán los incluidos en el servidor de aplicaciones para la versión WAS
6, debiéndose utilizar los drivers JDBC que proporciona Microsoft para la versión WAS
8:


WAS 6:
o WebSphere embedded ConnectJDBC driver for MS SQL Server (SQL
Server 2000 y 2005)
o Oracle JDBC Driver (Oracle 9 ó 10)
o DB2 Universal JDBC Driver Provider (DB2 v7 y v8)
o DB2 UDB for iSeries (Toolbox) (AS400)
WAS 8:
o Microsoft SQL Server JDBC Driver 2.0 / 3.0 (SQL Server 2000 y 2005)
o Oracle JDBC Driver (Oracle 9 ó 10g)
o DB2 Universal JDBC Driver Provider (DB2 v7, v8 y superiores)
o DB2 UDB for iSeries (Toolbox) (AS400)
Para el acceso a la base de datos las aplicaciones deberán hacer referenciar a
un recurso de tipo datasource creado a nivel de célula WAS, ofreciendo las ventajas
de los pool de conexiones gestionado por el propio servidor WAS. Esto significa que la
aplicación no debe incluir en su empaquetado librerías de proveedores para acceso a
las bases de datos, ni se deberán abrir conexiones directamente a la base de datos
sino haciendo uso de las conexiones proporcionadas por el pool definido en el
datasource del servidor WAS.
El fichero en el que queda reflejado esta referencia es el descriptor web.xml:
<resource-ref id="ResourceRef_1256212520375">
<description> breve descripción sobre la BD a la que se asociará </description>
<res-ref-name>jdbc/miDatasource</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
20
Puesto que estos recursos pueden ser compartidos por las aplicaciones
desplegadas en la célula, se tendrá que estimar si una nueva aplicación puede o no
compartir el recurso ya creado, si debe ampliarse la capacidad de conexiones
máximas a base de datos o si necesita una configuración de parámetros específicos.
Todo ello debe venir debidamente documentado en el documento “Despliegue de
Aplicación Web”. En cuanto a la configuración de estos datasource:






El nombre JNDI del recurso seguirá el patrón jdbc/<nomBD>.
Debe indicarse si se precisa transacciones del tipo XA o no.
Nº mínimo de conexiones: por defecto se establecerá a 1.
Nº máximo de conexiones: por defecto a 10, se recomienda no superar las 30.
Tiempo de espera por la conexión: por defecto a 180 milisegundos.
Statement cache size: Especifica el número máximo de statements que puede
ser cacheado por conexión. Si la statement cache no es lo suficientemente
grande, es posible que ciertas ejecuciones de PrepareStatement y
CallableStatement sean desechadas para incluir otras nuevas. Hay que tener
en cuenta que este parámetro mejora el rendimiento de la aplicación, pero que
puede afectar a otros recursos como es la memoria.
 Nivel de aislamiento: propiedad personalizada que se configurará cuando
venga justificado en el documento “Manual Técnico de Despliegue de
Aplicación Web”
Respecto a los datos de autenticación utilizado para la conexión con la base de
datos:
 Los usuarios de autenticación para la conexión se definirán a nivel de servidor
WAS, pudiéndose crear más de un usuario para corresponderse con diferentes
perfiles de permisos en base de datos:
o La nomenclatura para usuarios con permisos de lectura/escritura
seguirá el patrón <nombreBD>WEB
o La nomenclatura para usuarios de sólo lectura seguirá el patrón
<nombreBD>DES
 El usuario será distinto del propietario de la base de datos u esquema Oracle,
definiendo en base de datos los permisos adecuados para cada perfil de
acceso.
 El usuario a utilizar para conectividad desde la aplicación web debe ser distinto
al utilizado desde procesos batch o aplicaciones cliente.
5.1.6
Requisitos para la ejecución de scripts
Los scripts entregados para su ejecución en bases de datos de los entornos de
preproducción y/o producción deberán incluir el lenguaje bajo el cual se van a ejecutar.
Por lo tanto deberá especificarse en cada script la siguiente sentencia: SET
LANGUAGE SPANISH ó SET LANGUAGE ENGLISH según corresponda para la
correcta ejecución del mismo.
21
En caso de utilizar gestor de base de datos Oracle (previa autorización del
comité de estándares), es imprescindible especificar el idioma, territorio y set de
caracteres de la base de datos. Por ejemplo, SPANISH, SPAIN y WE8ISO8859P1,
respectivamente.
5.2 Ficheros de las aplicaciones
No se debe hacer uso del disco local del servidor WAS generando documentos
desde las aplicaciones, lo que conlleva problemas de espacio y paralización del
servicio. Por el mismo motivo, no se puede usar el NAS propio de la plataforma
WAS ya que derivaría igualmente en una parada de los servicios.
Por ello, las aplicaciones a desplegar en WebSphere deberán venir
preparadas para trabajar con carpetas contenedoras NAS propias del aplicativo.,
aplicándose en la generación de:

Ficheros de traza de la aplicación a nivel INFO o DEBUG

Ficheros temporales generados por la aplicación, incluidos los ficheros
temporales de cualquiera de los frameworks o librerías de terceros que utiliza
la aplicación (AXIS, etc.)

Ficheros de tipo plantillas o formularios generados por la aplicación

Informes que se almacenen en disco

Archivos documentales o imágenes generados o almacenados por la aplicación
La dirección al recurso NAS deben configurarse mediante un recurso URL
del servidor WAS o en alguna propiedad incluida en los ficheros propios de la
aplicación, permitiendo su modificación en función del entorno de físico de ejecución
sin necesidad de alterar el EAR.
El recurso NAS será gestionado por el Dpto. de Desarrollo solicitante del
mismo, por lo que la política de borrado de ficheros o ampliación del espacio debe
asumirse dentro de dicha gestión. En cualquier caso, la aplicación puede verse
afectada si se queda sin espacio en dicho recurso, por lo que recomendamos:

Los ficheros temporales deben ser borrados por la propia aplicación lo
antes posible o en su defecto tener un mecanismo de borrado a través de
un proceso (batch) periódico.

El tamaño total de los ficheros temporales, documentales, de trazas, etc.,
no debe de superar nunca el tamaño máximo pedido en el entorno de
22
ejecución para cada aplicación. Para ello, la aplicación debe acotar
mediante configuración el tamaño de los ficheros y controlar las
excepciones por falta de espacio.

Obsérvese la importancia de diferenciar el servidor de origen en el nombre
del fichero pues si pudiera darse un conflicto en la arquitectura en cluster:
WAS 6: System.getProperty("WAS61_SERVER_NAME"));
WAS 8: System.getProperty("WAS8_SERVER_NAME"));
23
Descargar