Nota: antes de utilizar esta
información y el producto al que da soporte, lea la información del apartado
“Avisos” al final de este documento.
23 de marzo de 2005
Este manual es la traducción del manual en inglés WebSphere Product Center: Support Guide. Esta edición de este documento se aplica a WebSphere Product Center (5724-I68), versión 5.2, y a todos los releases y modificaciones posteriores hasta que se indique lo contrario en nuevas ediciones.
© Copyright
International Business Machines Corporation 2001, 2005. Reservados todos los derechos.
US Government Users Restricted Rights
Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM
Corp.
Capítulo 1. Supervisión de WebSphere Product Center
Servicios de WebSphere Product Center
Obtener el estado abreviado de un servicio
Obtener el estado detallado de un servicio
Supervisión y gestión de bases de datos
1. Asignar más espacio siempre que sea
necesario
2. Aplicar fix packs / conjuntos de parches
3. Iniciar y cerrar la base de
datos / el gestor de base de datos
4. Analizar el esquema de la base de
datos y recopilar estadísticas
5. Reorganizar las tablas y los índices
6. Comprobar el estado de los trabajos de
copia de seguridad planificados
7. Restaurar y recuperar la base de datos
8. Ajustar el rendimiento de la base de datos.
Capítulo 2. Rendimiento de WebSphere Product Center
Gestión del espacio de disco
Archivos temporales
Páginas web en antememoria
Especificaciones de hardware
Capítulo 3. Administración de bases de datos
Usuario de base de datos
Copia de seguridad de base de datos
Copias de seguridad físicas
Copias de seguridad lógicas
Comprobación del estado de la base de datos
Configuración de las alertas de DB2 Health Center
Kit de utilidades de gestión de base de
datos
Capítulo 4. Almacén de documentos
Directorios
Arquitectura
Gestión del espacio de tablas
Supresión de archivos
Compresión GZIP opcional de archivos BLOB
Desfragmentación
Preguntas más frecuentes sobre el
almacén de documentos
Capítulo 5. Copia de seguridad y recuperación
Copia de seguridad de WebSphere Product Center
Copia de seguridad de base de datos
Recuperación
Capítulo 6. Registro de anotaciones de WebSphere Product Center
Archivos de configuración de las anotaciones
de servicios de WebSphere Product Center
Archivos de anotaciones generados en tiempo de
ejecución
Configuración de archivos de anotaciones
Cambiar la ubicación
Cambiar el tamaño del archivo
Cambiar la opción de copia de seguridad de archivo
Cambiar el patrón de conversión
Especificadores de conversión
Modificadores de formato
Caracteres de conversión
Archivos de configuración de anotaciones de WebSphere Product Center
Capítulo 7. Activación de la función de comprobación ortográfica
Limitaciones
Funciones de comprobación de la ortografía
Activación del corrector ortográfico
Requisitos
Configurar WebSphere Product Center para la configuración del tiempo de ejecución de WinterTree Spelling Engine
Integración de LDAP
Visión general de las características
Visión general de las funciones
Suposiciones
Limitaciones
Impacto en la migración de versiones anteriores a la 5.2
Integración de LDAP con WebSphere Product Center
1. Configurar el esquema de LDAP para los usuarios y las funciones
2. Editar el archivo de configuración de LDAP
3. Reiniciar el sistema
Capítulo 9. Resolución de problemas
Herramientas
Problemas del servidor de aplicaciones
Problemas del entorno
Valores del archivo de configuración incorrectos comunes
El servidor de aplicaciones no responde
Problemas de bases de datos
1. Conversión de caracteres durante la exportación / importación
de datos
2. Problemas de asignación de espacio en la base de datos
3. WebSphere Product Center se
ralentiza al detener un trabajo en ejecución
4. Problemas con la conmutación de archivos de anotaciones de reconstrucción
5. El middleware WebSphere Product Center se cuelga y la GUI se queda inactiva
6. Se cuelga el trabajo de análisis del esquema
Supervisión de errores en los archivos de
anotaciones
Problemas de conectividad
Errores de correo HTTP
Error de recuperación de FTP
Prueba de la conectividad de Java
Otros problemas
Detención y reinicio de WebSphere Product Center
Capítulo 10. Infraestructura de migración
Migración del release 4.2.0.x al release 5.2
Exportación de una empresa
Importación de una empresa
Impacto en la migración
Migración del release 4.2.1 al release 5.2
Capítulo 11. Soporte de servicios web
Soporte de WSDL (Web Services Definition Language)
Interfaz de usuario de servicios web
Operaciones de script que dan soporte a los servicios web
Soporte del estilo literal-documento
Capítulo 12. Interfaz de trabajo de línea de mandatos
Integración del planificador con IBM Tivoli Workload Scheduler
Control del planificador mediante la interfaz de línea de
mandatos
Capítulo 13. Procedimientos óptimos de integración
Definiciones y acrónimos
Dimensiones de integración
WebSphere Product Center como sistema de
origen o de destino
Sistema de control
Protocolo
Formato
Tamaño de los datos
Tipos de comunicación
Frecuencia
Hebra de integración
Acrónimos
Principios de diseño
Reutilización
Información compartida
Proceso de información
Manipulación de sucesos
Seguimiento de cambios
Conectores reutilizables
Implementación
Ampliación de la implementación
Ajuste de rendimiento
Validación
Estabilidad
Pruebas ampliables
Visibilidad
Informes
Documentación
Las diez directrices más importantes para las
integraciones en WebSphere Product Center
Usar terminología clara y común para
describir las integraciones
Reutilización
Visibilidad
Mini-integraciones
Entornos representativos o completos
Proceso de pruebas ampliable
Rendimiento
Establecer una única hebra con antelación
Diseñar especificaciones y documentación
Un único propietario
Integración de plataformas EAI
Enfoque
Ventajas adicionales
La supervisión de WebSphere Product Center se puede realizar usando los scripts rootadmin y rmi_status o a través de la GUI. Con WebSphere Product Center no se proporciona ninguna herramienta de supervisión independiente.
La creación de una herramienta de supervisión no forma parte del propósito de este documento; sin embargo, cabe mencionar una serie de ideas básicas:
- Cree un sistema principal virtual en un servidor de aplicaciones, o quizá en un servidor de supervisión aparte. Dado que rmi_status y rootadmin.sh generan carga del sistema, el uso de un servidor de supervisión aparte puede resultar más adecuado en muchos entornos.
- Utilice un lenguaje de creación de scripts como Perl para crear un envoltorio (wrapper) CGI para rootadmin.sh que controle y muestre el estado de los servicios.
- Cree un alias en el servidor web que apunte a $TOP/logs para facilitar el examen del archivo de anotaciones.
- Cree un programa de utilidad que analice los archivos de anotaciones en $TOP/logs en busca de excepciones y otros errores y que opcionalmente compruebe el estado del servicio. Este programa de utilidad podría notificar por correo electrónico o por algún otro medio los posibles errores al administrador. Ejecute este programa de utilidad fuera de cron.
Para obtener el estado abreviado de un servicio, especifique los siguientes parámetros:
-cmd=check -svc=<nombre del servicio>
El estado abreviado será una de las condiciones siguientes:
en ejecución El servicio está en ejecución y responde a una función de "latido". no encontrado No se encuentra el servicio. Es posible que no se haya iniciado el servicio o que éste se haya bloqueado. encontrado pero no responde Se ha encontrado el servicio registrado con el registro RMI, pero no responde a la función de "latido". Es posible que haya que reiniciar el servicio.
Para obtener el estado detallado de un servicio, especifique los siguientes parámetros en rootadmin.sh:
-cmd=status -svc=<nombre del servicio>
Se generará un archivo HTML que puede verse con cualquier navegador. En un terminal, use Lynx (o una herramienta similar) para dar formato a la salida.
El estado ofrece una visión general de las diferentes hebras que hay en ejecución en el servicio, así como el estado de las conexiones con la base de datos establecidas actualmente por el servicio.
Ejemplo:
Para obtener el estado del planificador:
rootadmin.sh -cmd=status -svc=scheduler > /tmp/sch_status.html; lynx /tmp/sch_status.html
o bien
rootadmin.sh -cmd=status -svc=scheduler > /tmp/sch_status.html; lynx -dump /tmp/sch_status.html
Nota: el signo ">" que se utiliza en el ejemplo anterior dirige los detalles del estado a un archivo.
La base de datos relacional es el principal almacenamiento para el grueso de la información sobre productos, por lo que resulta importante disponer de acciones de gestión que eviten cualquier degradación o pérdida de rendimiento.
La configuración de alertas en WebSphere Product Center permite notificar los problemas que puedan surgir, que así podrán resolverse antes de que se escapen de las manos. También debería implementarse un sistema de supervisión que controle constantemente la base de datos de WebSphere Product Center.
Conviene realizar regularmente las siguientes tareas:
- Asignar más espacio siempre que sea necesario.
- Aplicar los fix packs / conjuntos de parches necesarios.
- Iniciar y cerrar el gestor de base de datos, la base de datos y otros servicios siempre que sea necesario.
- Analizar el esquema de la base de datos y recopilar las estadísticas cuando sea necesario para lograr un mejor rendimiento.
- Reorganizar las tablas y los índices a intervalos de tiempo regulares para lograr un mejor rendimiento.
- Comprobar el estado de los trabajos de copia de seguridad planificados.
- Restaurar y recuperar la base de datos en caso preciso.
- Ajustar el rendimiento de la base de datos.
1. Asignar más espacio siempre que sea necesario
La gestión del espacio es una tarea continua para la mayoría. A no ser que tenga una base de datos totalmente estática, las tablas y los índices crecerán o disminuirán de tamaño regularmente. Necesita asegurarse de que haya espacio suficiente disponible para que esto suceda sin interrupción del proceso en curso. Asimismo, necesita asegurarse de que el espacio se usa de forma eficiente. Puede utilizar el centro de control de DB2 para asignar espacio cuando haga falta. También puede utilizar la interfaz de línea de mandatos para completar la misma tarea.
2. Aplicar fix packs / conjuntos de parches
Los fix packs / conjuntos de parches son mecanismos del suministrador del sistema de base de datos para ofrecer arreglos del producto totalmente probados e integrados de forma regular. Únicamente proporcionan soluciones para los problemas detectados; no incluyen nuevas funciones y no requieren certificación en el sistema de destino. Es muy importante aplicar los fix packs / conjuntos de parches cuando estén disponibles para evitar cualquier problema conocido con el sistema de base de datos. Póngase en contacto con el proveedor del sistema de base de datos para obtener más información sobre los arreglos.
3. Iniciar y cerrar la base de datos y el gestor de base de datos
Es necesario cerrar el gestor de base de datos y la base de datos para aplicar los arreglos, mover las bases de datos de un servidor a otro, etc. Deberá iniciar o cerrar la base de datos cuando y como convenga.
4. Analizar el esquema de la base de datos y recopilar estadísticas
El esquema de la base de datos se analiza para recopilar las últimas estadísticas sobre las tablas y los índices de la base de datos. El enfoque de optimización basada en costes usa las estadísticas para calcular el coste de cada plan de ejecución. Recopile estadísticas regularmente para que el optimizador disponga de la mejor información sobre los objetos del esquema. Por ejemplo, después de cargar un número considerable de filas en una tabla, resulta conveniente recopilar una nueva estadística de la tabla.
Para analizar el esquema de la base de datos, ejecute el script de shell analyze_schema.sh que se encuentra en el directorio $TOP/src/db/schema/util.
5. Reorganizar las tablas y los índices
Es recomendable reorganizar las tablas y los índices a intervalos de tiempo regulares para lograr un mejor rendimiento.
Actualmente, las bases de datos crecen más rápidamente que nunca, por lo que el administrador de bases de datos debe pasar una cantidad de tiempo considerable reorganizando y gestionando el espacio para lograr un rendimiento óptimo.
Un rendimiento óptimo significa un tiempo de respuesta óptimo. Pero esto puede verse afectado negativamente por una serie de cuestiones de gestión del espacio. La mayoría de estas cuestiones pueden incluirse en una de tres áreas principales: problemas relacionados con las tablas, índices estancados, y equilibrado de E/S y partición de datos.
La mayoría de administradores de bases de datos conocen bien los problemas relacionados con las tablas. Entre éstos se encuentran una infrautilización del espacio en bloques de tabla, filas encadenadas, baja proximidad de los datos y tablas fragmentadas (demasiado amplias).
La segunda gran cuestión que puede afectar al rendimiento son los índices estancados, índices que han crecido demasiado y contienen escasos datos.
Esta situación puede afectar enormemente al rendimiento de las exploraciones de rango de índice. También puede consumir mucho espacio de disco.
La tercera gran cuestión que puede afectar al rendimiento es el equilibrado de E/S y la partición de datos. Cuando objetos a los que se accede con frecuencia residen en el mismo archivo de datos, pueden producirse cuellos de botella de E/S. Herramientas como reorgchk en DB2 pueden darle información sobre los objetos que conviene reorganizar. Existen muchos métodos y herramientas disponibles para reorganizar objetos de bases de datos. Consulte la documentación específica del proveedor del sistema de base de datos sobre la reorganización de tablas e índices.
6. Comprobar el estado de los trabajos de copia de seguridad planificados
Las copias de seguridad son una parte integral del proceso de restauración y recuperación. Verifique el estado de todos los trabajos de copia de seguridad para asegurarse de que se ejecutan según la planificación.
La tarea de comprobación del estado de la copia de seguridad depende de cómo se haya definido el procedimiento de copia de seguridad y de las herramientas que se utilicen para realizar las copias de seguridad. Para obtener más información al respecto, consulte la documentación específica sobre copias de seguridad del proveedor del sistema de base de datos.
7. Restaurar y recuperar la base de datos
En el caso de una anomalía en la base de datos, puede determinar el tipo y la extensión de la anomalía. El análisis debería indicar los pasos necesarios para recuperar el sistema. Utilice el proceso de restauración y recuperación definido por su grupo de soporte de TI.
Restaurar una copia de seguridad física consiste en reconstruirla y ponerla a disposición del servidor de base de datos. Recuperar un archivo de datos restaurado consiste en actualizarlo usando registros de reconstrucción, es decir, registros de los cambios realizados en la base de datos después de hacer la copia de seguridad.
8. Ajustar el rendimiento de la base de datos
Una de las mayores responsabilidades de un administrador de bases de datos es asegurarse de que la base de datos esté correctamente ajustada. Cualquier sistema de gestión de bases de datos relacionales (RDBMS) es altamente ajustable y permite supervisar y ajustar la base de datos para aumentar su rendimiento.
A continuación se indican algunas razones por las que conviene realizar este ajuste de rendimiento:
- La velocidad de cálculo puede hacer perder un tiempo humano valioso (usuarios esperando una respuesta).
- Habilite su sistema para que mantenga la velocidad del negocio.
Optimice el uso del hardware para ahorrar dinero (las empresas gastan millones en hardware).
Consulte la documentación proporcionada con el producto DB2 para obtener más información sobre los distintos métodos disponibles para ajustar el rendimiento de la base de datos.
Es recomendable tener de 30 a 50 gigabytes de espacio disponible tanto para las particiones del middleware WebSphere Product Center como para las particiones temporales.
- Partición del middleware WebSphere Product Center: se recomiendan 30 GB. El tamaño del middleware es de 65-70 megabytes aproximadamente.
- Partición temporal: 2-4 GB de espacio de disco disponible (la partición se utiliza para retener muchos archivos de trabajo temporales grandes que se crean y luego se suprimen).
En una configuración de clúster, se necesita almacenamiento compartido para los servidores de aplicaciones. Aunque los archivos de imágenes y de HTML estático pueden sincronizarse con un programa de utilidad como rsync, también es recomendable tener almacenamiento compartido para los servidores web.
Para los servidores de aplicaciones, $TOP, el directorio FTP y el directorio raíz de documentos del servidor web (la ubicación del código HTML estático y las imágenes) se encuentran normalmente en el dispositivo compartido, mientras que las aplicaciones de soporte como Apache, JDK y el servidor de aplicaciones están instalados en el almacenamiento local. Los archivos de anotaciones se pueden guardar en el almacenamiento local o en el compartido. El directorio temporal según se especifica en common.properties debe ser local.
Archivos temporales
Los siguientes directorios contienen archivos temporales generados en tiempo de ejecución y se encuentran en el sistema de archivos:
Nota: los directorios de archivos temporales pueden ser diferentes en función de la versión de WebSphere Product Center que se haya instalado.
$TOP/public_html/created_files/distributor
- Finalidad: para distribuciones FTP de salida, el gestor de colas bajará un documento de la base de datos a este directorio y, a continuación, enviará el archivo a su destino vía FTP.
- Vida útil: el administrador del sistema debería suprimir todos los archivos de este directorio durante todos los periodos de inactividad programados de las aplicaciones. Ordene todos los archivos por fecha y suprima todo lo que sea anterior al periodo de gracia que la empresa haya establecido para todos los archivos de este directorio (el periodo de gracia recomendado es de 7 días).
Ejemplo con Linux
cd $TOP/public_html/created_files/distributor
find . -type f -mtime +7 -exec ls -l {} \; <-- para ver qué archivos se suprimirán
find . -type f -mtime +7 -exec rm -f {} \; <-- para suprimir los archivos
$TOP/public_html/suppliers/company code/aggregated_files/
- Finalidad: los archivos de importación/exportación cargados que se recuperan vía FTP se colocan en este directorio.
- Vida útil: no suprima este directorio del sistema de archivos; en caso necesario, suprímalo de la GUI de WebSphere Product Center.
$TOP/public_html/suppliers/company code/tmp_files:
- Finalidad: este directorio contiene archivos de trabajo temporales.
- Vida útil: es recomendable guardar los archivos en este directorio durante unas semanas y depurarlos regularmente. Si lo desea, puede eliminar los archivos automáticamente al reiniciar WebSphere Product Center o en función de una planificación definida (por ejemplo, los archivos que tengan más de dos semanas).
$TOP/logs
- Finalidad: este directorio contiene los archivos de anotaciones del middleware WebSphere Product Center.
- Vida útil: debe haber espacio de disco suficiente en función del nivel del archivo de anotaciones (error --> depuración). El administrador tiene un control total sobre el tamaño de este directorio. Es recomendable disponer de 2 o 3 gigabytes de espacio de disco disponible, por si acaso se necesita la modalidad de depuración. En condiciones normales, los archivos de anotaciones generan en un día de 30 a 40 megabytes de anotaciones aproximadamente, que pueden configurarse de forma que se autodepuren.
La instalación predeterminada de WebSphere Product Center está configurada para indicar a los servidores proxy que no guarden las páginas en antememoria. Permitir el almacenamiento en antememoria de páginas limitaría enormemente la posibilidad de utilizar el botón de retroceso del navegador, lo cual generaría mensajes de error y páginas caducadas. Si desea guardar en antememoria, utilice las funciones de navegación de la GUI y evite usar el botón de retroceso.
Edite el archivo: common.properties
Parámetro: no_cache_directive=on/offDe forma predeterminada, el parámetro está establecido en off.
Si se establece en on, los parámetros de la respuesta indicarán a los servidores proxy que no guarden en antememoria las páginas y la capacidad del botón de retroceso del navegador quedará considerablemente restringida.
Si se establece en off, el botón de retroceso del navegador será funcional y no generará errores.
La especificación de hardware debería elegirse en función de los procedimientos óptimos, la experiencia y los requisitos de capacidad para obtener un rendimiento óptimo de WebSphere Product Center.
Servidor de aplicaciones
Una gran mayoría de objetos de datos en WebSphere Product Center se almacena en el servidor de base de datos. Por ello, el almacenamiento en disco en los servidores de aplicaciones únicamente se utilizará para almacenar los componentes del sistema operativo, los ejecutables de WebSphere Product Center, componentes de terceras partes, archivos de trabajo temporales de WebSphere Product Center y archivos de anotaciones de WebSphere Product Center.
El middleware WebSphere Product Center utiliza varios componentes J2EE, cada uno de los cuales puede ocupar mucha memoria. WebSphere Product Center recomienda tener un servidor de aplicaciones con 4 GB de memoria, de los que 2,5 GB se utilizarán normalmente para una instancia del middleware WebSphere Product Center.
Servidor de base de datos
El tamaño del servidor de base de datos depende de diversos factores. Entre estos factores están el número de artículos del catálogo, el número de atributos asociados a cada artículo y el tamaño de los atributos de catálogo.
Una buena norma general es asignar 8 KB de espacio para cada atributo. Por ejemplo, un catálogo con 500.000 artículos, cada uno de los cuales tiene 14 atributos, requiere un espacio mínimo de almacenamiento de base de datos de 56 GB (500.000 artículos x 14 atributos x 8 KB).
Este espacio no incluye el espacio necesario para los archivos binarios de la base de datos, los segmentos de retrotracción, los espacios de tablas temporales, etc.
Arquitectura recomendada
La opción de utilizar un planificador opcional para manejar transacciones en segundo plano es recomendable en caso de que WebSphere Product Center se use para manejar trabajos por lotes grandes.
El usuario de la base de datos y la contraseña, creados para la instalación de WebSphere Product Center, se definen en common.properties. Si cambia la contraseña del usuario de la base de datos sin actualizar el archivo common.properties, el middleware WebSphere Product Center se bloqueará. Si es preciso cambiar la contraseña del usuario de la base de datos, asegúrese de actualizar la propiedad db_password en common.properties. La autentificación de contraseña tiene lugar en el sistema operativo en DB2.
Realizar una copia de seguridad de la base de datos y recuperarla es una de las operaciones más críticas que puede realizar un administrador de bases de datos (DBA). Por esta razón, es sumamente importante implementar una estrategia de copia de seguridad y recuperación bien definida. Aquí sugerimos las siguientes estrategias de copia de seguridad para mantener un rendimiento óptimo con WebSphere Product Center.
Copias de seguridad físicas
WebSphere Product Center recomienda realizar a diario una copia de seguridad física de la base de datos. Puede realizar una copia de seguridad física fuera de línea (copia de seguridad de imagen) de la base de datos o una copia de seguridad física en línea (copia de seguridad dinámica) de la base de datos en función de la disponibilidad del tiempo de inactividad del sistema. A la mayoría de las bases de datos de WebSphere Product Center se accede las 24 horas del día, los 7 días de la semana, lo cual significa que es posible que no haya tiempo de inactividad disponible para realizar una copia de seguridad de la base de datos fuera de línea. La base de datos debe ejecutarse en modalidad de retención de anotaciones en DB2 para poder realizar una copia de seguridad de la base de datos en línea. Realizar una copia de seguridad de la base de datos en línea permite recuperar la base de datos en el estado que tenía en un momento concreto. Para obtener más información, consulte la documentación del producto DB2.
Copias de seguridad lógicas
Las copias de seguridad lógicas almacenan información sobre los objetos del esquema creados para una base de datos. Puede usar el programa de utilidad DB2MOVE en DB2 para exportar selectivamente objetos específicos a fin de disfrutar de una protección y una flexibilidad adicional en la estrategia de copia de seguridad de una base de datos. Las exportaciones de bases de datos no sustituyen a las copias de seguridad físicas y no pueden proporcionar las mismas ventajas de recuperación completa que ofrece la copia de seguridad física. A veces, las copias de seguridad lógicas son muy prácticas para establecer criterios de calidad o probar instancias con los datos de producción. El kit de utilidades DBM de WebSphere Product Center también tiene instrucciones específicas de WebSphere Product Center sobre la realización de copias de seguridad lógicas del esquema de la base de datos de WebSphere Product Center.
Comprobar el estado del sistema de base de datos a intervalos regulares es fundamental para disfrutar de una alta disponibilidad del sistema.
Configuración de las alertas de DB2 Health Center
Use DB2 Health Center para supervisar el estado del entorno de la base de datos y realizar los cambios necesarios cuando sea preciso. El monitor de estado supervisa de forma continua una serie de indicadores de estado. Si el valor actual de un indicador de estado se encuentra fuera del rango operativo aceptable definido por sus umbrales de aviso y de alarma, el monitor de estado genera una alerta de estado. DB2 incluye un conjunto de valores de umbral predefinidos, que luego se pueden personalizar.
A continuación se indican algunas de las tareas clave que se pueden realizar con Health Center:
Ver el estado del entorno de la base de datos.
Ver las alertas para una instancia o una base de datos.
Ver información detallada sobre una alerta y las acciones recomendadas.
Configurar los valores del monitor de estado para un objeto específico, así como los valores predeterminados para un tipo de objeto o para todos los objetos de una instancia.
Seleccionar los contactos a los que se notificarán las alertas a través del correo electrónico o del buscapersonas.
Revisar el historial de alertas de una instancia.
Hay varios scripts de gestión de base de datos disponibles para gestionar la base de datos de WebSphere Product Center. Todos estos scripts están reunidos en forma de kit de utilidades.
Éstas son algunas de las tareas que se pueden realizar con el kit de utilidades para DB2:
- Depuración de los datos de la base de datos de WebSphere Product Center.
- Análisis del esquema de WebSphere Product Center y recopilación de estadísticas.
- Realización de copia de seguridad lógica del esquema de WebSphere Product Center.
- Recopilación de los detalles de configuración de la base de datos de WebSphere Product Center con sysinfo.sql.
El almacén de documentos es el área de WebSphere Product Center donde se almacenan todos los archivos de entrada y de salida. Esto incluye las entradas de datos masivos de importación, scripts, informes y archivos de especificaciones.
La estructura de la GUI proporciona hiperenlaces a archivos que están almacenados en la base de datos, que esencialmente son punteros a la ubicación de los archivos.
Directorios
El almacén de documentos se visualiza en forma de estructura de archivos. A los archivos se puede acceder desde los siguientes directorios del almacén de documentos:
archives
public_html
eventprocessor
schedule_logs
feed_files
scripts
ftp
tmp
params
users
Los directorios ftp y public_html pertenecen al sistema de archivos y están montados en el almacén de documentos. Están definidos en $TOP/etc/docstore_mount.xml. Este archivo incluye la ubicación de diversos puntos de montaje de sistema de archivos de sistema operativo.
Las variables utilizadas son "$ftp_root_dir" y "$supplier_base_dir", que están definidas en el archivo de configuración common.properties.
Arquitectura
La base de datos tiene un espacio de tablas destinado a los archivos almacenados en el almacén de documentos. Cuando se guarda un archivo en el almacén de documentos, se crea un nuevo registro en la base de datos. La base de datos almacena el archivo como un archivo BLOB (gran objeto binario).
Un archivo BLOB se refiere a cualquier bloque grande aleatorio de bits que necesita almacenarse en una base de datos, como una imagen o un archivo de sonido. Lo peculiar de un BLOB es que se trata de un objeto que no se puede interpretar dentro de la propia base de datos.
La base de datos almacena los archivos BLOB dentro de un espacio de tablas en la base de datos. La ventaja de este método es que la base de datos protege los datos, usando los mecanismos del servidor de base de datos que protegen todos los demás tipos de datos de tabla, como los mecanismos de copia de seguridad y recuperación o los de seguridad.
Gestión del espacio de tablas
La gestión del espacio es una tarea continua. La tabla del almacén de documentos crecerá o disminuirá de tamaño. Asegúrese de que hay suficiente espacio disponible para dar soporte a archivos binarios grandes sin que deba interrumpirse el proceso en curso. Asegúrese también de que el espacio se usa de forma eficiente.
Supresión de archivos
Cuando WebSphere Product Center suprime un archivo BLOB y las referencias correspondientes, el motor de base de datos no libera el espacio asignado, sino que lo reutiliza para nuevos archivos.
Así, cada archivo se almacena en un bloque de memoria y, cuando se suprime el archivo, el bloque de memoria se utiliza al añadir nuevos archivos.
Compresión GZIP opcional de archivos BLOB
Para comprimir documentos almacenados en archivos BLOB, lleve a cabo lo siguiente:
Edite el archivo: common.properties
Parámetro: gzip_blobs=true/false
- Los valores válidos son true y false.
- Si no hay ningún valor especificado, se toma false de forma predeterminada.
- Si se especifica true, los documentos almacenados en archivos BLOB se comprimen.
Desfragmentación
Como consecuencia de las múltiples adiciones y supresiones de archivos en el almacén de documentos, los bloques de memoria pueden fragmentarse. La fragmentación se produce de forma natural cuando se usa un disco frecuentemente al crear, suprimir y modificar archivos.
En un momento dado, el sistema operativo necesita almacenar partes de un archivo en clústeres no contiguos. Esto es totalmente invisible para los usuarios, pero puede reducir la velocidad de acceso a los datos, ya que la unidad de disco debe buscar en diferentes partes del disco para componer un solo archivo.
Para mejorar el rendimiento del almacén de documentos, lo mejor es exportar y luego importar la tabla DBL usando compress=y. Así, todos los archivos se colocan en un clúster continuo, lo cual incrementa el tiempo de importación de archivos.
Nota: según la asignación de espacio de tablas, puede que la desfragmentación no sea necesaria regularmente. Supervise la velocidad de disco regularmente para determinar si la desfragmentación del espacio de disco es necesaria.
Preguntas más frecuentes sobre el almacén de documentos
Problema: una vez suprimidos los archivos BLOB, ¿se sigue viendo afectada la velocidad de WebSphere Product Center?
No. Una vez suprimidas las filas, las páginas lentas del almacén de documentos mejoran.
Problema: ¿el espacio todavía asignado provoca lentitud en las exportaciones/importaciones?
Sí. La única manera de solucionar esto consiste en exportar e importar la tabla DBL con compress=y.
El método concreto de copia de seguridad y el software empleado no forman parte del propósito de este documento; sin embargo, presentamos aquí algunos conceptos relativos a la copia de seguridad.
La copia de seguridad de WebSphere Product Center consta de dos componentes: copia de seguridad de los directorios del sistema de archivos donde está instalado WebSphere Product Center y copia de seguridad de la base de datos.
Copia de seguridad de WebSphere Product Center
Para realizar una copia de seguridad de WebSphere Product Center, simplemente debe realizar una copia de seguridad del directorio $TOP tal como se define en common.properties. Dado que los archivos de estos directorios cambian, es recomendable realizar copias de seguridad a diario. Resulta conveniente realizar una planificación de copia de seguridad que conste de una copia de seguridad completa regular y copias de seguridad incrementales diarias.
Copia de seguridad de base de datos
El modo de realizar la copia de seguridad de la base de datos queda totalmente fuera del ámbito de este documento, sobre todo por la variedad de métodos disponibles: exportaciones, copias de seguridad dinámicas, copias de seguridad estáticas, duplicación de disco, etc. Sea cual sea el método elegido, lo único de lo que debe realizarse copia de seguridad es el esquema del usuario de la base de datos de WebSphere Product Center, según se define en common.properties.
Dado que la base de datos debe estar disponible para la ejecución de WebSphere Product Center, se recomienda usar copias de seguridad en línea o "dinámicas" diarias. Asimismo, deberían realizarse exportaciones o copias de seguridad fuera de línea regularmente.
Para más información sobre las copias de seguridad de bases de datos, consulte el apartado "Copia de seguridad de base de datos".
Recuperación
La recuperación se puede dividir en dos categorías: recuperación de WebSphere Product Center y archivos de soporte, y recuperación de la base de datos.
Para recuperar WebSphere Product Center y los archivos de soporte, simplemente debe restaurar los archivos o directorios que faltan en sus ubicaciones originales y, a continuación, iniciar WebSphere Product Center.
Para recuperar la base de datos, lleve a cabo los pasos siguientes:
- Cierre el servidor de aplicaciones.
- Cierre el middleware WebSphere Product Center.
- Restaure el esquema.
- Inicie el middleware WebSphere Product Center.
- Inicie el servidor de aplicaciones.
WebSphere Product Center proporciona archivos preconfigurados que generan archivos de anotaciones, que luego se pueden usar para resolver problemas en WebSphere Product Center. Este documento ofrece una visión general del mecanismo de anotación y explica cómo configurar los archivos de anotaciones.
Los archivos que se indican a continuación controlan diversos subsistemas dentro de WebSphere Product Center. La ubicación de la anotación generada se define en cada archivo.
Nota: todas las vías de acceso son relativas a $TOP.
/etc/logs/eventprocessor.log.xml
/etc/logs/scheduler.log.xml
/etc/logs/system.log.xml
/etc/logs/appsvr.log.xml
/etc/logs/workflowengine.log.xml
Los archivos de anotaciones generados en tiempo de ejecución pueden visualizarse para ver posibles errores, lo cual ayuda a resolver problemas relacionados con WebSphere Product Center o la infraestructura de soporte interna.
Los archivos de anotaciones generados por WebSphere Product Center se almacenan en $TOP/logs/*.log.
Las propiedades de los archivos de anotaciones de WebSphere Product Center pueden editarse según convenga (por ejemplo, ubicación, tamaño máximo, formato...). En los apartados siguientes se describen los elementos que se emplean para configurar las anotaciones y para proporcionar una lista de valores que se pueden usar al configurar un archivo de anotaciones de WebSphere Product Center.
Cambiar la ubicación
Nota: sólo se aplica a concatenadores de archivo y por intervalo.
Para cambiar la ubicación de un archivo de anotaciones generado, cambie los parámetros de los archivos de configuración de anotaciones especificados.
Por ejemplo:
<param name="File" value="${TOP}/logs/webserver_db.log " />
Cambiar el tamaño del archivo
Nota: sólo se aplica a concatenadores por intervalo
El tamaño del archivo de anotaciones puede establecerse en un tamaño de almacenamiento determinado antes de que empiece a rotar y a depurar el pedido superior de la salida. Para controlar el momento en el que el archivo empieza a truncarse, cambie el valor del parámetro de tamaño del archivo de anotaciones.
Por ejemplo:
<param name="maxFileSize" value="10MB" />
Cambiar la opción de copia de seguridad de archivo
Nota: sólo se aplica a concatenadores por intervalo
El registro de anotaciones puede configurarse de forma que mantenga un número determinado de copias de seguridad para un archivo de anotaciones. Una vez que se alcanza el valor máximo, se elimina el archivo más antiguo.
Por ejemplo:
<param name="maxBackupIndex" value="2" />
Cambiar el patrón de conversión
La configuración del diseño de los archivos de anotaciones puede cambiarse redefiniendo el patrón de conversión.
Por ejemplo:
<param name="ConversionPattern" value=
"%d [%t] %-5p %c (%F:%L) %x- %m%n"/>El patrón de conversión está estrechamente relacionado con el patrón de conversión de la función printf en C. Un patrón de conversión consta de texto literal y expresiones de control de formato denominadas especificadores de conversión.
Nota: es posible insertar cualquier texto literal dentro del patrón de conversión.
Cada especificador de conversión empieza con un signo de porcentaje ("%") y le siguen modificadores de formato opcionales y un carácter de conversión.
% (modificadores de formato)(carácter de conversión)
Por ejemplo:
%-5p [%t]: %m%n
- Los modificadores de formato controlan factores como el ancho de campo, el relleno y la justificación a la izquierda o la derecha.
- El carácter de conversión especifica el tipo de datos (por ejemplo, categoría, prioridad, fecha y nombre de hebra).
De forma predeterminada, la información relevante aparece en la salida tal cual. Sin embargo, con la ayuda de modificadores de formato es posible cambiar la anchura mínima de campo, la anchura máxima de campo y la justificación.
El modificador de formato opcional se sitúa entre el signo de porcentaje y el carácter de conversión. En el ejemplo, el especificador de conversión
%-5p significa que la prioridad del suceso de anotación debe justificarse a la izquierda con una anchura de cinco caracteres.El primer modificador de formato opcional es el distintivo de justificación a la izquierda, que es el carácter menos (-). Le sigue el modificador opcional de anchura mínima de campo. Se trata de una constante decimal que representa el número mínimo de caracteres que generará la salida. Si el artículo requiere menos caracteres, se rellenará, bien por la izquierda bien por la derecha, hasta alcanzar la anchura mínima.
De forma predeterminada, se rellena por la izquierda (justificación a la derecha), pero se puede especificar relleno por la derecha con el distintivo de justificación a la izquierda. El carácter de relleno es un espacio. Si el artículo es más extenso que la anchura mínima de campo, el campo se amplía para dar cabida a los datos. El valor nunca se trunca.
Este comportamiento puede cambiarse con el modificador de anchura máxima de campo, que se designa con un punto seguido de una constante decimal. Si el artículo es más largo que la anchura máxima de campo, los caracteres sobrantes se eliminan del principio del artículo, nunca del final.
Por ejemplo, si la anchura máxima de campo es ocho y el artículo tiene diez caracteres, se eliminan los dos primeros caracteres del artículo.
Nota: este comportamiento se desvía de la función printf en C, donde se trunca por el final.
En las páginas siguientes se proporcionan los valores que se emplean para definir los especificadores de conversión.
A continuación se muestran varios ejemplos de modificadores de formato para el especificador de conversión de categoría.
Modificador de formato
Justificación a la izquierda
Anchura
mínima
Anchura máxima
Comentarios
%20c
Falso
20
Ninguna
Rellenar con espacios por la izquierda si el nombre de la categoría tiene menos de 20 caracteres.
%-20c
Verdadero
20
Ninguna
Rellenar con espacios por la derecha si el nombre de la categoría tiene menos de 20 caracteres.
%30c
NA
Ninguna
30
Truncar por el principio si el nombre de la categoría tiene más de 30 caracteres.
%20.30c
Falso
20
30
Rellenar con espacios por la izquierda si el nombre de la categoría tiene menos de 20 caracteres. Pero si el nombre de la categoría tiene más de 30 caracteres, entonces truncar por el principio.
%-20.30c
Verdadero
20
30
Rellenar con espacios por la derecha si el nombre de la categoría tiene menos de 20 caracteres. Pero si el nombre de la categoría tiene más de 30 caracteres, entonces truncar por el principio.
A continuación se presenta una lista de caracteres de conversión reconocidos:
Carácter de conversión
Efecto
c
Se usa para generar como salida la categoría del suceso de anotación. Opcionalmente se puede añadir un especificador de precisión a continuación del especificador de conversión de categoría, que es una constante decimal entre paréntesis.
Si se incluye un especificador de precisión, entonces sólo se imprimirá el número correspondiente de componentes más a la derecha del nombre de la categoría. De forma predeterminada, el nombre de la categoría se imprime completo.
Por ejemplo, para el nombre de categoría "a.b.c" el patrón %c{2} generaría la salida "b.c".
d
Se usa para generar como salida la fecha del suceso de anotación. A continuación del especificador de conversión de fecha puede añadirse un especificador de formato de fecha entre llaves.
Por ejemplo, %d{HH:mm:ss,SSS} o %d{dd MMM yyyy HH:mm:ss,SSS}. Si no se define ningún especificador de formato de fecha, se toma el formato ISO8601.
El especificador de formato de fecha admite la misma sintaxis que la cadena de patrón temporal de SimpleDateFormat. Aunque forma parte del JDK estándar, el rendimiento de SimpleDateFormat es bastante bajo.
Para obtener mejores resultados, es recomendable utilizar los formateadores de fecha log4j. Pueden especificarse usando una de las cadenas "ABSOLUTE", "DATE" e "ISO8601" para especificar AbsoluteTimeDateFormat, DateTimeDateFormat e ISO8601DateFormat respectivamente. Por ejemplo, %d{ISO8601} o %d{ABSOLUTE}.
Estos formateadores de fecha dedicados ofrecen un rendimiento mucho mejor que SimpleDateFormat.
m
Se usa para generar como salida el mensaje proporcionado por WebSphere Product Center asociado con el suceso de anotación.
n
Genera como salida el carácter o los caracteres separadores de línea dependientes de la plataforma.
Este carácter de conversión ofrece prácticamente el mismo rendimiento que el uso de cadenas separadoras de línea no portables como "\n" o "\r\n". Por lo tanto, ésta es la forma más recomendable de especificar un separador de línea.
p
Se usa para generar como salida la prioridad del suceso de anotación.
r
Se usa para generar como salida el número de milisegundos transcurridos desde el inicio de WebSphere Product Center hasta la creación del suceso de anotación.
t
Se usa para generar como salida el nombre de la hebra que generó el suceso de anotación.
x
Se usa para generar como salida el contexto de diagnóstico anidado (NDC) asociado a la hebra que generó el suceso de anotación.
%
La secuencia %% genera como salida un único signo de porcentaje.
En los siguientes ejemplos se puede ver cómo se definen los archivos de anotaciones de WebSphere Product Center. Las entradas en negrita establecen la configuración de los archivos de anotaciones de WebSphere Product Center.
<!-- concatenador ASYNC básico -->
<appender name="ASYNC" class="org.apache.log4j.AsyncAppender">
<appender-ref ref="DEFAULT"/>
</appender>
<!-- concatenador CONSOLE básico. Es lo mismo que hacer system.out-->
<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[%t] %-5p %c (%F:%L) %x- %m%n"/>
</layout>
</appender>
<!-- concatenador FILE simple. Se abrirá el archivo y, si el concatenador tiene el valor true -->
<!-- no se truncará -->
<appender name="DEFAULT" class="org.apache.log4j.FileAppender">
<param name="File" value="${TOP}/logs/tomcat_default.log " />
<param name="Append" value="true" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c (%F:%L) %x- %m%n"/>
</layout>
</appender>
<!-- concatenador de archivo por intervalo. Se abrirá el archivo y, si el concatenador tiene el valor true -->
<!-- no se truncará -->
<!-- maxFileSize: tamaño antes de la rotación -->
<!-- maxBackupIndex: ¿cuántas copias de seguridad mantiene? -->
<appender name="DB" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="${TOP}/logs/tomcat_db.log " />
<param name="Append" value="true" />
<param name="maxFileSize" value="10MB" />
<param name="maxBackupIndex" value="2" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c (%F:%L) %x- %m%n"/>
</layout>
</appender>
<!-- Para la categoría austin.db, sólo hace falta mantener algunas anotaciones, de ahí -->
<!-- el concatenador por intervalo -->
<category name="austin.db" additivity=" false">
<priority value="INFO" />
<appender-ref ref="DB" />
</category>
<!-- LA CATEGORÍA RAÍZ -->
<!-- SIEMPRE DEBE SER LA ÚLTIMA ENTRADA Y TENER UN CONCATENADOR-->
<!-- Si ningún otro registro de anotaciones toma un suceso de anotación, lo manejará esta-->
<!-- norma. -->
<root>
<priority value="error"/>
<appender-ref ref="DEFAULT"/>
</root>
</log4j:configuration>
La función de comprobación de la ortografía de WebSphere Product Center está disponible gracias al uso de la infraestructura del producto de WinterTree denominado "Sentry Spell Checking Engine". Por este motivo, WebSphere Product Center no se empaqueta con ninguna función de comprobación ortográfica, y se requiere la compra del producto Spelling Service Engine versión 5.10 de WinterTree Software para activar la función de comprobación ortográfica.
Nota: para utilizar la función de comprobación de la ortografía en WebSphere Product Center, se necesita Wintertree Sentry Spelling Checker Engine Java SDK 5.10.
Con la función de comprobación ortográfica incluida en este release, los usuarios sólo pueden comprobar la ortografía en las pantallas de detalle de artículo y de edición única. El soporte para la comprobación ortográfica de las pantallas de edición múltiple o de edición masiva estarán disponibles en un release futuro.
En este documento se describen las tareas de configuración necesarias para que WebSphere Product Center utilice WinterTree Software Spelling Service Engine versión 5.10 durante la ejecución.
Para configurar WebSphere Product Center para la configuración del tiempo de ejecución de WinterTree Spelling Engine, es necesario modificar tres archivos de propiedades:
NOTA: una vez modificados todos los archivos de propiedades, reinicie WebSphere Product Center para activar los parámetros de configuración del tiempo de ejecución de Spelling Engine.
common.properties
Ubicación: <DIR_INSTAL_WPC5.2>/etc/default/common.properties
Valores: edite el archivo common.properties y añada los valores de propiedades siguientes:
spell_check=true (para activar el motor de comprobación de la
ortografía)
spell_check_vendor=wintertree (para establecer el proveedor del motor de
comprobación de la ortografía en WinterTree SSCE)
spell_check_vendor_class=common.plugins.wintertree.WinterTreePlugin (para
establecer el complemento para Wintertree SSCE)
spell_license=<clave_licencia> (escriba la clave de licencia del
software adquirido para Spelling Engine versión 5.10 de WinterTree en lugar de
<clave_licencia>)
spellservice.properties
Ubicación: <DIR_INSTAL_WPC5.2>/etc/default/plugins/wintertree/spellservice.properties
Valores: sustituya todas las apariciones de <DIR_INSTAL_WINTERTREE> en las propiedades MainLexicon<n> por la ubicación donde se ha instalado el software WinterTree Spelling Engine en su sistema.De este modo se configuran los diccionarios y las propiedades del tiempo de ejecución del motor de comprobación de la ortografía.
ccd.rc
Ubicación: <DIR_INSTAL_WPC5.2>/setup/ccd.rc
Crea un enlace simbólico en <DIR_INSTAL_WPC>/jars/ssce.jar con el archivo jar de WinterTree instalado llamado ssce.jar, que se encuentra en <DIR_INSTAL_WINTERTREE>/runtime/lib. Para ello, añada a este archivo la línea sin comentar que se muestra en el ejemplo siguiente.
Por ejemplo:
- AddJar $JARDIR/ssce.jar
La integración de LDAP (Lightweight Directory Access Protocol) mejora la infraestructura de seguridad de WebSphere Product Center gracias a la incorporación de tres funciones en WebSphere Product Center:
La integración de LDAP permite utilizar sistemas LDAP de terceros para fines de autentificación. Dada la complejidad que reviste el uso de las funciones de LDAP de terceros para dar autorización, se utiliza la infraestructura de autorización existente en WebSphere Product Center 5.2 para dar autorización a los usuarios de LDAP, ya que la autentificación se realizará en el ámbito de LDAP. Las credenciales de usuarios y funciones de LDAP en WPC se refieren al tiempo de ejecución y también se basan en operaciones de script llamadas por el usuario o el sistema. Cada usuario de LDAP en WebSphere Product Center se diferencia por el uso de un distintivo de LDAP.
La integración de LDAP con WebSphere Product Center proporciona una infraestructura mejorada de autorización de seguridad que permite dar soporte a más de 1000 usuarios eventuales que requieren autorización para diversas funciones (internas y externas). Por ejemplo, un gestor de categorías sería una función interna y un ayudante de gestor de marca sería una función externa.
En WebSphere Product Center 5.2, la integración de LDAP sólo se certifica con IBM Tivoli Directory Server versión 5.2 (que da soporte a LDAP v3). Sin embargo, la implementación se puede ampliar de modo que se pueda trabajar con los siguientes servidores LDAP: Sun Java System Directory Server 5.2, Weblogic 8.1 – Embedded LDAP Server y Novell® eDirectory™ 8.7.3.
Nota: en este release no hay soporte para las funciones de inicio de sesión único. Está previsto implementar la función de inicio de sesión único en un release futuro.
Si un usuario se autentifica en una sesión, seguirá autentificándose hasta el final de la sesión, incluso si la identidad del usuario cambia durante este período (por ejemplo, cambia la función, la contraseña, etc.).
La extracción de cadenas específicas de entorno local en las búsquedas de entradas LDAP no se ha certificado para este release.
Ha habido un cambio en los esquemas de entidad de usuario de WPC como resultado de la incorporación de un nuevo distintivo de LDAP para distinguir entre los usuarios de LDAP y los usuarios de WebSphere Product Center.
En este apartado se describen las tareas que deben llevarse a cabo para integrar LDAP para IBM Tivoli Directory Server Versión 5.2 con WebSphere Product Center 5.2. Se presupone que IBM Tivoli Directory Server Versión 5.2 se ha instalado correctamente. La configuración de LDAP requiere que se configure un esquema de LDAP para los usuarios y las funciones de IBM Tivoli Directory Server Versión 5.2.
Para integrar LDAP con WebSphere Product Center, efectúe las tareas siguientes:
1. Localizar el archivo de configuración empaquetado para la configuración de LDAP
2. Configurar el esquema de LDAP para los usuarios y las funciones correspondientes a IBM Tivoli Directory Server Versión 5.2
3. Editar el archivo de configuración de LDAP
4. Habilitar el distintivo de LDAP en WebSphere Product Center
5. Reiniciar WebSphere Product Center
<DIR_INSTAL_WPC5.2>/etc/default/ldap_config.xml
Crear un nuevo dominio
1. Cree un nuevo dominio desde la herramienta de administración web de IBM Tivoli Directory Server mediante la opción de menú Dominios y plantillas > Agregar dominio.
2. Rellene todos los campos obligatorios.
3. Seleccione la clase de objeto dominio como DN (nombre distinguido) primario.
Por ejemplo:DN relativo DN primario
cn=midominio dc=dominiowpc.dc=isl.dc=comCrear una nueva plantilla de usuario
1. Cree una nueva plantilla de usuario desde la herramienta de administración de Web de IBM Tivoli Directory Server pulsando Domininos y plantillas > Agregar plantilla del usuario.
2. Especifique la entrada de dominio creada anteriormente como nombre distinguido primario. Seleccione la clase de objeto estructural como inetOrgPerson.
3. Edite la pestaña Atributos necesarios para incluir la lista de atributos necesarios siguiente:
- Cn
- Sn
- Uid (éste es el atributo de nombre)
- TelephoneNumber
- TelexNumber
- postalAddress
4. Asocie esta plantilla de usuario con el dominio creado anteriormente mediante las opciones de menú Dominios y plantillas > Gestionar dominios > Editar.
Por ejemplo:
DN primario
dc=dominiowpc,dc=isl,dc=com
cn=miplantilla,dc=dominiowpc,dc=isl,dc=com
Crear un nuevo usuario1. Cree un nuevo usuario desde la herramienta de administración web de IBM Tivoli Directory Server mediante la opción de menú Usuarios y grupos > Agregar usuario.
2. Seleccione el dominio creado anteriormente como dominio para este usuario.
3. En la pestaña "Atributos obligatorios", incluya todos los atributos mencionados anteriormente.
Crear un nuevo grupo
1. Cree un nuevo grupo desde la herramienta de administración web de IBM Tivoli Directory Server mediante la opción de menú Usuarios y grupos > Agregar grupo.
2. Seleccione el dominio creado anteriormente como dominio para este grupo. La clase de objeto correspondiente al grupo es groupOfNames.
3. Asocie los usuarios a los grupos.
El archivo de configuración de LDAP siguiente es necesario para integrar LDAP con WebSphere Product Center:
<DIR_INSTAL_WPC5.2>/etc/default/ldap_config.xml
Edite el archivo ldap_config.xml para la autentificación de LDAP en tiempo de ejecución sustituyendo los valores entre paréntesis por los valores correspondientes de la instalación de LDAP.
<?xml version="1.0" encoding="UTF-8"?>
<LdapConfiguration>
<connectionInfo>
<connectionParam name = "java.naming.provider.url"> (especifique el URL del servidor LDAP)</connectionParam>
<connectionParam name = "java.naming.security.principal">(especifique el nombre de usuario para iniciar la sesión en el servidor LDAP)</connectionParam>
<connectionParam name = "java.naming.security.credentials">(especifique la contraseña para iniciar la sesión en el servidor LDAP)</connectionParam>
<connectionParam name = "java.naming.security.authentication">simple</connectionParam>
<connectionParam name = "java.naming.referral">follow</connectionParam>
<connectionParam name = "java.naming.factory.initial">com.sun.jndi.ldap.LdapCtxFactory</connectionParam>
<connectionParam name = "java.naming.ldap.version">3</connectionParam>
</connectionInfo>
<RoleMapping>
<Object name = "Role Class">groupOfNames</Object>
</RoleMapping>
<WPCUserCredentialMappings ParentDN="(Especifique el nombre distinguido base para los objetos de usuario)" ObjectClass="inetOrgPerson">
En el ejemplo actual, el nombre distinguido (DN) base es: cn=midominio,dc=dominiowpc,dc=isl,dc=com
<WPCUserParam name = "UserName">uid</WPCUserParam>
<WPCUserParam name = "FirstName">cn</WPCUserParam> >
<WPCUserParam name = "LastName">sn</WPCUserParam> >
<WPCUserParam name = "Email">mail</WPCUserParam> >
<WPCUserParam name = "Address">postalAddress</WPCUserParam> >
<WPCUserParam name = "Phone">telephoneNumber </WPCUserParam>
<WPCUserParam name = "Fax"> TelexNumber</WPCUserParam> >
</WPCUserCredentialMappings>
</LdapConfiguration>
En el archivo common.properties de WebSphere Product Center, habilite el distintivo de LDAP.
Por ejemplo:
enable_ldap=true
Tras realizar los cuatro pasos anteriores para configurar LDAP, reinicie WebSphere Product Center.
- Análisis del archivo de anotaciones
- netstat
- ps
- kill
- svrmgrl o sqlplus
- telnet
- jar
- tar
- gunzip
- El acceso de superusuario a los servidores web y de aplicaciones suele ser esencial.
Problemas del entorno
El pseudousuario de WebSphere Product Center en el servidor de aplicaciones debe tener configuradas las variables de entorno que se indican a continuación antes de iniciar WebSphere Product Center:
- TOP: el directorio superior de la instalación de WebSphere Product Center.
- DB2_HOME: necesario para archivos binarios de clientes DB2.
- JAVA_HOME: necesario para JDK.
- PATH: debe incluir $DB2_HOME/bin y conviene que también incluya $JAVA_HOME/bin.
Además, debe definirse el origen del script de shell init_ccd_vars.sh antes de iniciar WebSphere Product Center. Esto suele hacerse en el archivo .bashrc del usuario.
La variable de entorno CLASSPATH no debe modificarse una vez que ya se ha definido el origen de init_ccd_vars.sh.
Valores del archivo de configuración incorrectos comunes
- common.properties
El error más común es un especificador de base de datos incorrecto en common.properties. Una base de datos configurada incorrectamente presenta los siguientes síntomas:
appsvr, eventprocessor, queuemanager, scheduler y workflowengine no arrancan.
Errores en los archivos de anotaciones logs/db_pool y logs/svc/.
smtp_address. Smtp_address debe apuntar a un relé SMTP, ya sea sendmail en el sistema principal local u otro sistema que sea capaz enviar correo electrónico fuera de la organización.
- Archivo de licencia
No arrancará ningún servicio si falta el archivo de licencia (WPC_license.xml) o es incorrecto. Este error se refleja en los archivos de anotaciones debajo de logs/svc.
El servidor de aplicaciones no responde
Escenario
El servidor de aplicaciones no responde. Aunque es posible efectuar un ping al servidor, los usuarios no pueden conectarse al entorno y el administrador no puede conectarse al servidor de aplicaciones.
Comprobaciones
Compruebe si algún usuario ha iniciado recientemente un trabajo inusualmente grande. Si el trabajo se ha iniciado de forma deliberada, compruebe el script que utiliza.
1. Conversión de caracteres durante la exportación / importación de datos
2. Problemas de asignación de espacio en la base de datos
3. Problemas de daños en bloques de datos y en el índice
4. La importación o la exportación se cuelga sin que se produzca ningún cambio en la barra de estado tras un largo periodo de tiempo
5. Tras detener un trabajo en ejecución, la aplicación se ralentiza mucho
6. Problemas con la conmutación de archivos de anotaciones de reconstrucción
7. El middleware WebSphere Product Center se cuelga y la GUI se queda inactiva
8. Se cuelga el trabajo de análisis del esquema
9. La conexión SQL se reinicia automáticamente
1. Conversión de caracteres durante la exportación / importación de datos
Problema
Durante la exportación / importación de una base de datos para crear entornos de prueba usando una copia de la base de datos aparecen mensajes de error relativos al juego de caracteres utilizado.
Síntomas
Por ejemplo, si se exporta una base de datos que utiliza el juego de caracteres US7ASCII, aparece el siguiente mensaje de error en la anotación de exportación:
Export done in US7ASCII character set and UTF8 NCHAR character set server uses UTF8 character set (possible charset conversion)
Solución
Siempre que exporte o importe la base de datos, defina el parámetro NLS_LANG para que utilice el juego de caracteres american_america.utf8.
2. Problemas de asignación de espacio en la base de datos
Problema
A veces se producen anomalías en los trabajos de importación o de exportación debido a una asignación de espacio insuficiente para las tablas, los índices, los segmentos de retrotracción y los segmentos temporales.
Síntoma
Si el segmento de retrotracción está completo o si el espacio de tablas del segmento de retrotracción está lleno, aparecerá un mensaje de error en el archivo de anotaciones de alerta similar al mensaje siguiente:
ORA-1650: unable to extend rollback segment RBS8 by 512 in tablespace RBS
Failure to extend rollback segment 9 because of 1650 condition FULL status of rollback segment 9 set.
Solución
- Asegúrese de que hay suficiente espacio libre en los espacios de tablas. Para los trabajos más grandes, puede que se necesite más espacio en los segmentos de retrotracción y temporales.
- Compruebe el archivo de anotaciones de alertas todos los días para ver si se ha generado algún error relativo a problemas de espacio en la base de datos.
3. WebSphere Product Center se ralentiza al detener un trabajo en ejecución
Problema
Siempre que se detiene un trabajo, como una importación o una exportación, el sistema de base de datos tiene que retrotraer toda la transacción para devolver la base de datos a un estado coherente. Este proceso de retrotracción utiliza el máximo de recursos del sistema, como tiempo de CPU y memoria.
Síntomas
El middleware WebSphere Product Center se ralentiza al detener un trabajo en ejecución.
Solución
Espere hasta que finalice la retrotracción y el sistema vuelva a un estado normal. No detenga un proceso en ejecución a menos que sea necesario.
4. Problemas con la conmutación de archivos de anotaciones de reconstrucción
Problema
Un número inadecuado de archivos de anotaciones o un tamaño inapropiado puede provocar que el sistema de base de datos tenga que esperar mucho tiempo para realizar una conmutación de anotaciones.
Síntomas
El sistema de base de datos espera mucho tiempo para una conmutación de anotaciones y si todos los archivos de anotaciones de reconstrucción están activos.
Solución
- Incremente el número de archivos de anotaciones.
- Incremente el número de archivos de anotaciones de reconstrucción.
5. El middleware WebSphere Product Center se cuelga y la GUI se queda inactiva
Problema
Si aparecen errores al acceder al middleware WebSphere Product Center, es posible que se haya perdido la conexión con la base de datos.
Síntomas
El middleware WebSphere Product Center se queda congelado o en un estado de espera constante. Aparecen errores al intentar acceder al middleware WebSphere Product Center.
Solución
- Compruebe el estado del proceso de escucha.
- Compruebe el estado de la base de datos siempre que no se pueda establecer la conexión con la base de datos o con las pantallas del middleware WebSphere Product Center.
6. Se cuelga el trabajo de análisis del esquema
Problema
Es recomendable analizar el esquema de vez en cuando al cargar grandes cantidades de datos en la base de datos o depurar las tablas de la base de datos.
El middleware WebSphere Product Center debe detenerse antes de ejecutar el análisis del esquema. Si no se detiene el middleware, es posible que el trabajo de análisis del esquema se cuelgue porque las tablas están siendo usadas por el middleware.
Síntomas
WebSphere Product Center se cuelga al ejecutar el análisis del esquema.
Solución
Si el análisis del esquema se cuelga, detenga el trabajo de análisis, pare el middleware WebSphere Product Center, analice de nuevo el esquema e inicie WebSphere Product Center.
Analice el esquema a intervalos de tiempo regulares para recopilar las estadísticas más recientes sobre la distribución de los datos en la base de datos.
La supervisión y revisión de los archivos de anotaciones del sistema puede ayudar a diagnosticar y resolver muchos problemas.
Nota: este capítulo se ampliará en la próxima versión del documento, que incluirá más información sobre el uso de los archivos de anotaciones y técnicas de resolución de problemas.
Errores de correo HTTP
Cuando se produzcan errores de correo HTTP, tenga en cuenta lo siguiente:
1. ¿Puede reconocerse el destino en el recuadro de WebSphere Product Center?
- Use un navegador HTTP Linux/Unix como "Lynx" y escriba el URL del middleware WebSphere Product Center para ver si se puede acceder al destino.
- Si no hay ningún navegador disponible en el servidor de WebSphere Product Center, intente efectuar un telnet al puerto 80 del destino. Por ejemplo, si el URL de destino es http://mi_servidor/<nombre_url>, escriba "telnet mi_servidor 80" (el puerto 80 es el puerto http predeterminado en la mayoría de los servidores web).
2. Si WebSphere Product Center puede ver el destino, ¿funciona correctamente el distribuidor de WebSphere Product Center?
- Verifique la existencia de nuevos archivos en $TOP/public_html/created_files/distributor. Compruebe si algún archivo tiene la indicación de la hora aproximada del momento en que intentó enviar el archivo.
- Es posible que un script descontrolado haya generado un archivo de salida incorrecto. Verifique el tamaño del archivo. ¿Es el tamaño que esperaba? Si el archivo es un XML u otro tipo de archivo legible, imprímalo. ¿Contiene la información correcta?
3. Si el archivo existe, ¿la transferencia está en curso?
- Puede utilizar diversas herramientas para comprobar si una transferencia real está en curso. Como mínimo, necesitará usar una combinación de "netstat" y "snoop" (en Solaris) o "tcpdump" (en Linux).
- Controle sus expectativas. Si el archivo tiene un tamaño de 300 MB y se está enviando a un URL a través de Internet, el archivo sólo podrá alcanzar la velocidad máxima de la conexión a Internet.
Error de recuperación de FTP
Si WebSphere Product Center ha intentado conectarse a un servidor FTP de destino y no ha logrado encontrar el directorio especificado, se produce un error que indica que no se ha podido cambiar al directorio remoto.
Existen dos razones por las que puede darse este error:
- No se puede acceder a la dirección FTP de destino desde el servidor de WebSphere Product Center. Desde el servidor de WebSphere Product Center, intente establecer una conexión FTP directamente con el FTP de destino y verifique la transferencia de archivos.
- Es posible que el nombre de archivo usado sea incorrecto. Compruebe las mayúsculas y minúsculas y posibles errores ortográficos.
Prueba de la conectividad de Java
El URL de JDBC está definido en el archivo common.properties. Para probar la conectividad de Java desde el middleware WebSphere Product Center con el URL de JDBC, use el script siguiente:
$TOP/bin/test_java_db.sh
El script intenta conectarse con la base de datos y ejecutar una simple instrucción 'select count(*) from dual'. Si se establece la conexión, aparecen los resultados del script de prueba.
Detención y reinicio de WebSphere Product Center
Se ha informado de un problema cuando se utilizan scripts de detención regulares en Linux/Solaris. Al parecer, WebSphere Product Center no se detiene correctamente y sin problemas. Si le ocurre esto, detenga e inicie WebSphere Product Center siguiendo estos pasos:
1. Intente detener suavemente WebSphere Product Center ejecutando el siguiente script:
$TOP/bin/go/stop_local.sh
2. Espere aproximadamente un minuto. A continuación, escriba el siguiente mandato:
ps –u (NOMBRE_DE_USUARIO_SIN_PARÉNTESIS)
3. Si hay algún proceso Java activo, es posible que todavía haya algún trabajo planificado en curso. Si lo desea, deje que finalice el trabajo. En caso contrario, deténgalo manualmente con el siguiente script:
$TOP/bin/go/abort_local.sh
4. Espere aproximadamente treinta segundos y, a continuación, escriba el siguiente mandato:
ps –u (NOMBRE_DE_USUARIO_SIN_PARÉNTESIS)
5. Si sigue habiendo procesos Java activos, lo más probable es que la JVM se haya bloqueado. Deberá detener el proceso Java manualmente mediante el siguiente mandato:
kill `ps -u (NOMBRE_DE_USUARIO_SIN_PARÉNTESIS)
| grep java | cut -b10-15`Nota: si todavía existe algún proceso Java, es posible que haya que reiniciar el sistema.
6. Una vez detenidos todos los procesos Java, reinicie WebSphere Product Center con el siguiente script:
$TOP/bin/go/start_local.sh
7. Espere aproximadamente un minuto y compruebe que WebSphere Product Center se ha iniciado correctamente. Ejecute el script $TOP/bin/go/rmi_status.sh o conéctese al entorno de WebSphere Product Center.
Existe una infraestructura de migración para migrar el release 4.2.0.x al release 5.2. Más adelante se facilitará una infraestructura de migración para migrar WebSphere Product Center 5.0 y 5.1 a la versión 5.2. Puesto que hay pocos cambios importantes en el release 5.2 respecto al release 5.0, es posible realizar la migración de forma manual si resulta necesario. Póngase en contacto con el representante de WebSphere Product Center para obtener más información.
En el release 4.2.0.x hay scripts de shell que sirven de ayuda para la exportación y la importación de todos los objetos de una empresa determinada en WebSphere Product Center:
Exportaciones
Importaciones
Los scripts anteriores facilitan la exportación de todos los objetos de WPC de la versión 4.2.0.x en forma de archivo zip. Este archivo zip se puede importar en la versión 5.2 para realizar una migración.
Existen dos maneras de exportar una empresa de WPC 4.2.0.x:
1. Mediante un programa de utilidad de script de shell denominado $TOP/bin/exportCompanyAsZip.sh
Uso
exportCompanyAsZip --company_code=<código> --script_path=<vía_acceso_script_trigo>
donde:
A continuación se proporciona un script de ejemplo.
envObjList = new EnvObjectList();
envObjList.addAllObjectsToExport("CATALOG");
envObjList.addAllObjectsToExport("HIERARCHY_MAPS");
envObjList.addAllObjectsToExport("MAPS");
envObjList.addAllObjectsToExport("FEEDS");
envObjList.addAllObjectsToExport("LOOKUP_TABLE");
envObjList.addAllObjectsToExport("ATTRIBUTE_COLS");
envObjList.addAllObjectsToExport("CONTAINER_ACCESSPRV");
envObjList.addAllObjectsToExport("HIERARCHY");
envObjList.addAllObjectsToExport("COMPANY_ATTRIBUTES");
envObjList.addAllObjectsToExport("SPEC");
envObjList.addAllObjectsToExport("DATASOURCE");
envObjList.addAllObjectsToExport("USERS");
envObjList.addAllObjectsToExport("ACG");
envObjList.addAllObjectsToExport("ROLES");
envObjList.addAllObjectsToExport("CATALOG_CONTENT");
envObjList.addAllObjectsToExport("HIERARCHY_CONTENT");
envObjList.addAllObjectsToExport("LOOKUP_TABLE_CONTENT");
envObjList.addAllObjectsToExport("DOC_STORE");
envObjList.addAllObjectsToExport("MY_SETTINGS");
envObjList.addAllObjectsToExport("DISTRIBUTION");
envObjList.addAllObjectsToExport("DOC_STORE");
sDocFilePath = "archives/company.zip";
exportEnv(envObjList, sDocFilePath);
2. Ejecutando el script anterior en un entorno preparado para scripts de WebSphere Product Center (por ejemplo, un trabajo de importación, un informe o incluso directamente en el sandbox de scripts)
Determinados objetos de WPC predefinidos también se pueden exportar desde un entorno WPC como scripts utilizando el script de shell $TOP/bin/exportCompany.sh, que exporta los objetos como scripts de shell para que sea posible volver a crear estos objetos de WPC ejecutando estos scripts en otro entorno. Sin embargo, como parte de las tareas de migración, este método no se utilizará para exportar objetos de WPC, ya que este programa de utilidad no puede exportar el contenido de los objetos de WPC (como la información sobre artículos o la información sobre categoría de una jerarquía).
La importación de una empresa se puede realizar de tres maneras distintas.
1. Con el script de shell $TOP/bin/importCompanyFromZip.sh
Uso: importCompanyAsZip --company_code=<código> --zipfile_path=<vía_acceso_archivador_importación>
donde:
company_code corresponde al código de la empresa que se va a importar
zipfile_path corresponde a la ubicación del almacén de documentos donde se encuentra el archivo zip de la empresa.
2. Con el script de WPC importEnv(String VíaArchivoAlmDoc)
donde:
VíaArchivoAlmDoc es la ubicación del almacén de documentos donde se encuentra el archivo zip de la empresa.
Una empresa de WPC también se puede importar utilizando el resultado de exportCompany.sh. Sin embargo, como parte de las tareas de migración, este método no se utilizará, ya que exportCompany.sh no puede exportar el contenido de los objetos de WPC (como la información sobre artículos o la información sobre categoría de una jerarquía).
3. Con la opción “Importar entorno” de la GUI de la aplicación
Importación de datos mediante la GUI de la aplicación
En la infraestructura de herramientas de importación y exportación
existentes en WPC 4.2.0.x, los objetos de WPC siguientes no se
exportan:
Selecciones
Los recursos de exportación proporcionados en la versión 4.2.0.x se actualizará para dar soporte a la exportación también de estos objetos de WPC.
En WPC 5.2, se proporciona soporte para las solicitudes SOAP con formato literal-documento además del estilo de codificación RPC que existe en la versión anterior. Esta actividad de migración deberá probarse.
4.2.1 incluye el release oficial de las herramientas de importación y exportación. Estas herramientas proporcionan la función “Importar entorno” de la GUI para importar los datos exportados de una empresa en la misma versión de WebSphere Product Center a otra empresa de WebSphere Product Center mediante un archivo zip.
Un archivo de control XML define el orden de las importaciones. Este archivo de control se crea y se empaqueta en el archivo zip durante la exportación. La infraestructura de migración recomendada para los clientes sería utilizar exportCompanyAsZip.sh en la versión 4.2.0.x para exportar todos los datos de la empresa. El archivo zip de salida de este script debe poderse importar con la función “Importar entorno” o con importCompanyFromZip.sh en la versión 5.2.
Soporte de WSDL (Web Services Definition Language); soporte para WSDL 1.2 y solicitud/respuesta SOAP 1.2 para mensajes de solicitud sencillos. El menú Gestor de colaboración incluye un módulo de servicios web para la configuración de servicios en la consola de servicios web. Actualmente el único protocolo soportado es SOAP sobre HTTP.
Definiciones
WebSphere Product Center proporciona una capa de creación de scripts, que se puede utilizar como capa de API. Estos scripts se pueden hacer disponibles después como servicios web. Se crea un servicio web para cada función empresarial que tenga que estar disponible en WebSphere Product Center. Se crea la aplicación solicitante correspondiente para interactuar con el servicio web. El servicio web ejecutará uno o más scripts en WebSphere Product Center, y también colaborará con otros servicios web para proporcionar la función empresarial deseada.
En el diagrama siguiente se muestra un ejemplo de utilización de WSDL 1.2 y la solicitud/respuesta SOAP 1.2 para mensajes de solicitud sencillos.
Los servicios web se configuran mediante la consola de servicios web. En los pasos siguientes se utiliza un ejemplo de utilización de WSDL general.
1. Consola de servicios web. Pulse Nuevo y especifique la información necesaria para los campos siguientes:
- Nombre de servicio web (por ejemplo: solicitud_artículo)
- Descripción de servicio web (por ejemplo: Permite que una aplicación externa solicite los detalles de un artículo en función de los atributos de ID del artículo, como GTIN o UPC, GLN y mercado objetivo)
- Archivo de definición de servicios web (se describe más adelante)
- Script de implementación de servicios web (se describe más adelante)
2. Archivo de definición de servicios web
El archivo de definición de servicios web se carga desde la consola de servicios web y contiene una descripción del servicio web en formato WSDL 1.2. El servicio web utiliza la codificación de solicitud/respuesta SOAP 1.2 y el archivo WSDL incluye lo siguiente:
- XSD para el mensaje de solicitud
- XSD para el mensaje de respuesta
- XSD para el mensaje de error
- Todo el contenido restante que WSDL 1.2 requiere
Nota: el archivo de definición de servicios web se publica en el servidor HTTP predeterminado, que es el servidor HTTP de WebSphere Product Center. Es aquí donde se publica el script de definición de servicios web. El sistema proporciona asistencia a través del botón Ayuda.
3. Script de implementación de servicios web. A este script lo llama un mensaje de solicitud SOAP 1.2 de entrada compatible con la definición de servicio web anterior. El script de implementación de servicios web se encarga de lo siguiente:
- Analiza el mensaje de solicitud SOAP 1.2 de acuerdo con la definición de servicio web anterior.
- Normalmente consulta uno o varios contenedores de WebSphere Product Center para obtener información sobre productos.
- Crea un mensaje de respuesta SOAP 1.2 que contiene la información sobre productos.
- Envía el mensaje de respuesta SOAP 1.2 a la aplicación solicitante.
- Anota los mensajes de solicitud y respuesta en el almacén de documentos; también anota un enlace a los mensajes en el almacén de documentos de tal manera que la consola de mensajes pueda acceder a ellos.
4. Mensaje de solicitud de la aplicación solicitante. El administrador de la aplicación solicitante crea un proceso para crear los mensajes SOAP 1.2 de acuerdo con la definición de servicios web descrita en el paso 2.
5. Mensaje de respuesta de la aplicación solicitante. El administrador de la aplicación solicitante crea un proceso para recibir y manejar los mensajes SOAP 1.2 de acuerdo con la definición de servicios web descrita en el paso 2.
Una vez que los servicios web están configurados, se producen los sucesos siguientes:
1. El usuario ejecuta el proceso en la aplicación solicitante que desencadena el mensaje SOAP 1.2 que va de la aplicación solicitante al servidor HTTP de WebSphere Product Center.
2. El mensaje de solicitud sólo contiene atributos de ID como GTIN o UPC, GLN y mercado objetivo.
3. WebSphere Product Center ejecuta el script de implementación de servicios web para analizar el mensaje de solicitud SOAP 1.2, crea un mensaje de respuesta SOAP 1.2 y transmite el mensaje de respuesta.
4. (Opcional) El sistema anota el mensaje de solicitud y el mensaje de respuesta en el almacén de documentos. También anota un enlace al mensaje en el almacén de documentos de tal manera que la consola de mensajes pueda acceder a él.
5. La aplicación solicitante recibe el mensaje de respuesta.
6. La aplicación solicitante actúa en función del mensaje de respuesta.
Los archivos que se indican a continuación controlan diversos subsistemas dentro de WebSphere Product Center. La ubicación de la anotación generada se define en cada archivo.
Nota: todas las vías de acceso son relativas a $TOP.
/etc/logs/eventprocessor.log.xml
/etc/logs/scheduler.log.xml
/etc/logs/system.log.xml
/etc/logs/appsvr.log.xml
/etc/logs/workflowengine.log.xml
La consola de servicios web permite a los usuarios crear y gestionar servicios web disponibles a través de WebSphere Product Center. Se puede crear un documento WSDL para definir el servicio; se crea un script de implementación para controlar el modo en que se ejecuta el servicio.
La consola de servicios web contiene las columnas siguientes:
- Nombre: nombre del servicio web. Pulse en el nombre para ver los detalles del servicio web.
- Descripción: breve descripción utilizada para describir el servicio web.
- Protocolo: actualmente, SOAP_HTTP es el único protocolo disponible.
- Transacciones: número de transacciones del servicio. Pulse en el número para ver la transacción o pulse el botón Suprimir para eliminar el servicio web de la consola.
Para acceder a la consola de servicios web, seleccione lo siguiente en la barra de menús:
Gestor de colaboración > Servicios web > Consola de servicios web
Para crear un nuevo servicio web, seleccione lo siguiente en la barra de menús:
Gestor de colaboración > Servicios web > Nuevo servicio web
Aparecerá la pantalla "Detalle de servicio web". Especifique la información necesaria para definir el nuevo servicio web.
En este apartado se describe cada campo de la pantalla Detalle de servicio web.
Nota: consulte el apartado siguiente para ver los cambios realizados con el fin de dar soporte al estilo literal-documento en los servicios web.
Nombre de servicio web: especifique el nombre del servicio web. Este nombre pasa a formar parte del URL del servicio SOAP. No debe contener ningún espacio en blanco.
Descripción de servicio web: Especifique una descripción del servicio web.
Protocolo: el protocolo utilizado para el servicio web. Actualmente el único protocolo soportado es SOAP sobre HTTP. El valor por omisión es “SOAP_HTTP”.
Estilo: El estilo puede ser “LITERAL_DOCUMENTO” o “CODIFICACIÓN_RPC”. Al script WPC que implementa un servicio literal-documento se le pasará el cuerpo completo de la solicitud y deberá devolver el cuerpo completo de la respuesta. A un script de WPC de servicio de codificación RPC se le pasará una serie de parámetros de cadena y deberá devolver una sola cadena. Los servicios de codificación RPC pueden resultar más fáciles de usar para las aplicaciones sencillas, mientras que los servicios de tipo literal-documento ofrecen una mayor flexibilidad para servicios más complejos.
URL: proporciona el URL donde puede accederse al servicio. Este campo se rellena de forma automática después de guardar el servicio web.
URL WSDL: URL en el que se puede acceder al WSDL del servicio web. Este campo se rellena de forma automática después de guardar el servicio web.
WSDL: especifique un WSDL para este servicio. Un documento WSDL es una descripción de la interfaz, el URL y el protocolo del servicio en formato XML. Debe entrar este documento manualmente, aunque dispone de un documento WSDL de ejemplo más adelante. Debe especificar código XML válido para que el servicio web se guarde correctamente.
Script de implementación: Especifique un script de WPC que implemente este servicio. En el caso de un servicio de codificación RPC, los parámetros de entrada del servicio se encuentran en la variable de matriz "soapParams", y el valor de retorno del servicio debe ser una cadena guardada en la variable “out”. En el caso de un servicio de tipo literal-documento, el cuerpo de la solicitud SOAP se proporciona en la variable de cadena “soapMessage”, y el cuerpo de la respuesta debe guardarse en la variable “out”. En ambos casos, guarde el código de error en la variable "soapFaultCode" y el mensaje de error en la variable "soapFaultMsg" para devolver un error de SOAP. Más adelante se proporciona un script de implementación de ejemplo.
¿Almacenar solicitudes?: si se selecciona, WPC almacenará los parámetros de todas las solicitudes de entrada en el almacén de documentos. Estarán disponibles en la consola de transacciones.
¿Almacenar respuestas?: si se selecciona, WPC almacenará el contenido de todas las respuestas en el almacén de documentos. Estarán disponibles en la consola de transacciones.
Desplegado: si se selecciona, se desplegará el nuevo servicio. De lo contrario, este servicio no estará disponible.
El servicio web de tipo literal-documento siguiente devuelve un valor de nivel de existencias ("stock quote") para un símbolo de identificador de lista ("ticker") dado. Este breve ejemplo sólo devolverá un valor para el ticker “IBM”: todos los demás argumentos producirán un error de SOAP.
Este punto final de servicio web es equivalente a un método Java con la firma siguiente:
java.math.BigDecimal getStockQuote(String ticker);
Script de implementación
// analizar el documento de solicitud
var doc = new XmlDocument(message);
// obtener parámetro ticker
var ticker = parseXMLNode("ticker");
// aquí sólo se proporcionan niveles de existencias de IBM
if (ticker == "IBM") {
out.println("<ibm:getStockQuoteResponse
xmlns:ibm=\"http://ibm.com/wpc/test/stockQuote\">");
out.println(" <ibm:response>123.45</ibm:response>");
out.println("</ibm:getStockQuoteResponse>");
}
else {
soap_fault_msg.print("Only quotes for IBM are supported");
}
WSDL
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:y="http://ibm.com/wpc/test/stockQuote"
targetNamespace="http://ibm.com/wpc/test/stockQuote">
<types>
<xs:schema targetNamespace="http://ibm.com/wpc/test/stockQuote"
elementFormDefault="qualified">
<xs:element name="getStockQuote">
<xs:complexType>
<xs:sequence>
<xs:element name="ticker" type="xs:string" nillable="false"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="getStockQuoteResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="response" type="xs:decimal"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
</types>
<message name="getStockQuoteRequest">
<part name="parameters" element="y:getStockQuote"/>
</message>
<message name="getStockQuoteResponse">
<part name="parameters" element="y:getStockQuoteResponse"/>
</message>
<portType name="StockQuotePortType">
<operation name="getStockQuote">
<input message="y:getStockQuoteRequest"/>
<output message="y:getStockQuoteResponse"/>
</operation>
</portType>
<binding name="StockQuoteBinding" type="y:StockQuotePortType">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="getStockQuote">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="StockQuoteService">
<port name="StockQuotePort" binding="y:StockQuoteBinding">
<soap:address
location="http://example.wpc.ibm.com/services/StockQuoteService"/>
</port>
</service>
</definitions>
Para buscar todas las transacciones de los servicios web, abra la consola de transacciones seleccionando lo siguiente en la barra de menús:
Gestor de colaboración > Servicios web > Consola de transacciones
1. En la consola de transacciones vea la lista de transacciones en la tabla Transacciones de servicio web.
2. Pulse el botón Ver en la columna Respuesta o Solicitud. Los detalles de las transacciones aparecerán en una ventana del navegador nueva.
1. En la consola de transacciones, seleccione un período de fechas en los campos Desde fecha de llegada y Hasta fecha de llegada de la tabla "Búsqueda de transacciones de servicio web".
2. Pulse el botón Buscar. Todos los resultados de transacciones aparecerán en la tabla Transacciones de servicio web debajo de la tabla de búsqueda.
La integración de portales de proveedor proporciona numerosas ventajas a los minoristas:
WebSphere Product Center proporciona una infraestructura de servicios web para una correcta integración con WebSphere Portal Server, que tiene las características siguientes:
Para la integración con WebSphere Portal Server, las prestaciones de los servicios web incluyen soporte para las funciones siguientes:
Por lo tanto, la infraestructura de servicios web tiene las características siguientes:
Las operaciones de script incluidas en la lista siguiente dan soporte a los servicios web en WebSphere Product Center, y están disponibles en el sandbox de scripts:
Nota: para obtener información adicional (prototipo y descripción), consulte el sandbox de scripts en WebSphere Product Center.
· createWebService
· deleteWebService
· getDesc
· isDeployed
· getLoginString
· getImplScriptPath
· getName
· getProtocol
· getStoreIncoming
· getStoreOutgoing
· getStyle
· getUrl
· getWebServiceByName
· getWsdlDocPath
· getWsdlUrl
· invokeSoapServer
· saveWebService
· setDeployed
· setDesc
· setImplScriptPath
· setName
· setProtocol
· setStoreIncoming
· setStoreOutgoing
· setStyle
· setWsdlDocPath
Este apartado contiene información detallada para utilizar el estilo literal-documento para dar soporte a los servicios web en WebSphere Product Center. El estilo de codificación RPC de los servicios web ya estaba disponible en versiones anteriores. Sin embargo, los servicios web con codificación RPC sólo daban soporte a tipos de cadena simples. Para satisfacer la demanda de funciones de envío y recepción de tipos complejos, en WebSphere Product Center se ha incluido soporte para el estilo literal-documento de los servicios web.
Para desplegar un servicio web con estilo literal-documento, el usuario debe crear un servicio web que incluya un WSDL que defina el esquema del servicio y un script de desencadenante de WebSphere Product Center al que llamar cuando se encuentre una solicitud. Al guardar el servicio web, el usuario debe indicar explícitamente que se desplegará. Tras el despliegue, WebSphere Product Center creará un URL para el servicio web en el que se podrá acceder al WSDL desplegado. El URL del servicio web tendrá el formato siguiente:
http://<servidor_web_aplicaciones>:<número_puerto_aplicación>/services/<nombre_servicio_web_guardado>
Si se añade el texto “?wsdl” al final del URL, tendrá la vía de acceso al WSDL almacenado correspondiente al servicio web.
Una solicitud para un servicio web de tipo literal-documento estará incluida en un envoltorio SOAP, y el cuerpo del mensaje SOAP incluirá el documento de solicitud completo. Este documento de solicitud debe tener un formato XML correcto, y se pasará al manejador de servicios web de WebSphere Product Center sin modificaciones de ningún tipo. El llamador habría creado esta solicitud conociendo de antemano el formato del nodo de esquema del WSDL almacenado correspondiente al servicio web al que se llama.
El mecanismo de manejo de servicios web de WebSphere Product Center recibirá esta solicitud y validará su contenido comparándolo con el esquema WSDL correspondiente a las solicitudes con estilo literal-documento. Si la solicitud no es compatible con el esquema WSDL, se generará un error AxisFault. En caso contrario, WebSphere Product Center eliminará las referencias a espacios de nombres del cuerpo de la solicitud y pasará la solicitud modificada al script de desencadenante de WebSphere Product Center que se guardó durante el despliegue. La eliminación de los espacios de nombres es necesaria debido a que el contexto de scripts de WebSphere Product Center no puede manejar los documentos XML con espacios de nombres. El script de desencadenante de WebSphere Product Center tomará el contenido de la solicitud y lo utilizará tal como lo ha definido el autor del script. El script debe enviar sus resultados en forma de respuesta válida a la solicitud de entrada. Por lo tanto, la respuesta se validará comparándola con el WSDL antes de devolver la salida.
Ejemplo:
El esquema literal-documento sería éste:
<element name="getStockQuote"/>
<complexType>
<sequence>
<element name="ticker" type="xsd:string"/>
</sequence>
</complexType>
</element>
<element name="getStockQuoteResponse"/>
<complexType>
<sequence>
<element name="response" type="xsd:decimal"/>
</sequence>
</complexType>
</element>
Si el cliente ha invocado getStockQuote("IBM"), el flujo sería éste:
1. WebSphere Product Center recibe una solicitud SOAP de la pila Axis SOAP.
2. WebSphere Product Center valida el mensaje de solicitud comparándolo con el esquema anterior.
3. WebSphere Product Center elimina todos los prefijos de espacios de nombres del cuerpo de la solicitud. En este caso no es necesario, ya que este esquema define todo en el espacio de nombres predeterminado.
4. WebSphere Product Center invoca el script de desencadenante del servicio web. Las variables de entrada son las siguientes:
- operationName = "getStockQuote"
- message =
"<getStockQuote>
<ticker>IBM</ticker>
</getStockQuote>"5. El script de desencadenante graba la respuesta en la variable "out":
- out =
"<getStockQuoteResponse>
<response>83.76</response>
</getStockQuoteResponse>"6. WebSphere Product Center valida la respuesta comparándola con el esquema anterior.
7. WebSphere Product Center envía la respuesta SOAP completa al cliente a través de la pila Axis SOAP.
A continuación se enumeran las modificaciones incorporadas para dar soporte al estilo literal-documento.
En función de la versión de WebSphere Product Center, puede ser necesario realizar una pequeña modificación en la base de datos (DB2/Oracle). Póngase en contacto con el representante de WebSphere Product Center si tiene algún problema con la migración.
http://java.sun.com/developer/technicalArticles/xml/jaxrpcpatterns/
Debido a las limitaciones provocadas por la implementación del análisis XML incorporado en WebSphere Product Center (proporcionado por Xerces versión 2.4.0), la declaración de espacio de nombres debe estar definida localmente en el nodo de esquema del WSDL. El efecto se notará principalmente al desplegar servicios web con estilo literal-documento. Por ejemplo, a continuación se facilita un WSDL válido de ejemplo que no sería reconocido correctamente por WebSphere Product Center:
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:y="http://ibm.com/wpc/test/stockQuote" targetNamespace="http://ibm.com/wpc/test/stockQuote">
<types>
<xs:schema targetNamespace="http://ibm.com/wpc/test/stockQuote" elementFormDefault="qualified">
<xs:element name="getStockQuote">
<xs:complexType>
<xs:sequence>
<xs:element name="ticker" type="xs:string" nillable="false"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="getStockQuoteResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="response" type="xs:decimal"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
</types>
<message name="getStockQuoteRequest">
<part name="parameters" element="y:getStockQuote"/>
</message>
<message name="getStockQuoteResponse">
<part name="parameters" element="y:getStockQuoteResponse"/>
</message>
<portType name="StockQuotePortType">
<operation name="getStockQuote">
<input message="y:getStockQuoteRequest"/>
<output message="y:getStockQuoteResponse"/>
</operation>
</portType>
<binding name="StockQuoteBinding" type="y:StockQuotePortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="getStockQuote">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="StockQuoteService">
<port name="StockQuotePort" binding="y:StockQuoteBinding">
<soap:address location="http://localhost/axis/services/StockQuoteService"/>
</port>
</service>
</definitions>
El WSDL debería ser como éste para analizarse correctamente:
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:y="http://ibm.com/wpc/test/stockQuote" targetNamespace="http://ibm.com/wpc/test/stockQuote">
<types>
<xs:schema targetNamespace="http://ibm.com/wpc/test/stockQuote" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="getStockQuote">
<xs:complexType>
<xs:sequence>
<xs:element name="ticker" type="xs:string" nillable="false"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="getStockQuoteResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="response" type="xs:decimal"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
</types>
<message name="getStockQuoteRequest">
<part name="parameters" element="y:getStockQuote"/>
</message>
<message name="getStockQuoteResponse">
<part name="parameters" element="y:getStockQuoteResponse"/>
</message>
<portType name="StockQuotePortType">
<operation name="getStockQuote">
<input message="y:getStockQuoteRequest"/>
<output message="y:getStockQuoteResponse"/>
</operation>
</portType>
<binding name="StockQuoteBinding" type="y:StockQuotePortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="getStockQuote">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="StockQuoteService">
<port name="StockQuotePort" binding="y:StockQuoteBinding">
<soap:address location="http://localhost/axis/services/StockQuoteService"/>
</port>
</service>
</definitions>
ID de problema: P16473
Problema: al crear un nuevo servicio web y reiniciar WebSphere Product Center, aparece un error al intentar invocar ese servicio web.
Solución alternativa: dé acceso de grabación al archivo de configuración de Axis "server-config.wsdd", que se encuentra en el directorio "public_html/WEB-INF". Además, en los entornos en los que se utiliza WebLogic, la instancia de WebSphere Product Center debe desplegarse en formato de directorio ampliado. Si no se hace así, la función de redespliegue automático de Axis no desplegará los servicios web creados por WebSphere Product Center tras el reinicio, lo que provocará un error.
ID de problema: P16059
Al crear un servicio web con LITERAL_DOCUMENTO, guardarlo, volver al servicio web recién creado, cambiar el estilo por CODIFICACIÓN_RPC y guardarlo de nuevo, se muestra el estilo LITERAL_DOCUMENTO.
Se trata de una limitación conocida. El usuario no puede cambiar el estilo de un servicio web que se ha desplegado.
1. Vaya a common.properties. Defina un valor para "soap_company" y "soap_user". Estos valores serán la empresa y el usuario utilizados por las solicitudes SOAP de entrada para acceder a la base de datos y ejecutar scripts. Defina también un valor para "wpc_web_url".
Por ejemplo:
soap_company=acme
soap_user=Admin
wpc_web_url=http://miinstancia.acme.com:1234/
2. Reinicie WebSphere Product Center. Vaya a "Gestor de colaboración->Servicios web->Nuevo servicio web". Especifique o seleccione los valores proporcionados a continuación.
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSPY v2004 rel. 4 U (http://www.xmlspy.com) by Dave Marquard (IBM) -->
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:y="http://ibm.com/wpc/test/stockQuote" targetNamespace="http://ibm.com/wpc/test/stockQuote">
<types>
<xs:schema targetNamespace="http://ibm.com/wpc/test/stockQuote" elementFormDefault="qualified">
<xs:element name="getStockQuote">
<xs:complexType>
<xs:sequence>
<xs:element name="ticker" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="getStockQuoteResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="response" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
</types>
<message name="getStockQuoteRequest">
<part name="parameters" element="y:getStockQuote"/>
</message>
<message name="getStockQuoteResponse">
<part name="parameters" element="y:getStockQuoteResponse"/>
</message>
<portType name="StockQuotePortType">
<operation name="getStockQuote">
<input message="y:getStockQuoteRequest"/>
<output message="y:getStockQuoteResponse"/>
</operation>
</portType>
<binding name="StockQuoteBinding" type="y:StockQuotePortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="getStockQuote">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="StockQuoteService">
<port name="StockQuotePort" binding="y:StockQuoteBinding">
<soap:address location="http://localhost/axis/services/StockQuoteService"/>
</port>
</service>
</definitions>
// analizar el documento de solicitud
var doc = new XmlDocument(soapMessage);
// obtener parámetro ticker
var ticker = parseXMLNode("ibm:ticker");
// aquí sólo se proporcionan niveles de existencias de IBM
if (ticker == "IBM") {
out.println("<ibm:getStockQuoteResponse xmlns:ibm=\"http://ibm.com/wpc/test/stockQuote\">");
out.println("<ibm:response>123.45</ibm:response>");
out.println("</ibm:getStockQuoteResponse>");
}
else {
// ¿es necesario imprimir en soapFaultCode también?
soapFaultMsg.print("Only quotes for IBM are supported");
}
3. Seleccione ¿Almacenar solicitudes? para ver el historial de solicitudes desde la consola de transacciones.
4. Seleccione ¿Almacenar respuestas? para ver el historial de respuestas desde la consola de transacciones.
5. Seleccione Desplegado para desplegar el servicio web. El servicio web no estará disponible si no se selecciona esta opción.
6. Invoque el servicio web mediante com.ibm.ccd.soap.test.StockQuoteTest.java.
Uso: $JAVA_RT com.ibm.ccd.soap.test.StockQuoteTest <URL> <NÚM_CASO>
Ejemplo: $JAVA_RT com.ibm.ccd.soap.test.StockQuoteTest http://trillian:9099/services/DocumentWebServiceTest 0
<NÚM_CASO> puede ser un valor entero comprendido entre 0 y 5.
El valor 0 se puede utilizar para consultar el nivel de existencias de IBM. Consulte StockQuoteTest.java para obtener más información.
7. La respuesta será:
Called SOAP service at URL 'http://trillian:9099/services/TestingDocumentStyle14'
Request was '<ibm:getStockQuote xmlns:ibm="http://ibm.com/wpc/test/stockQuote">
<ibm:ticker>SNM</ibm:ticker>
</ibm:getStockQuote>'
SOAP call was successful.
Result was '<ibm:getStockQuoteResponse xmlns:ibm="http://ibm.com/wpc/test/stockQuote">
<ibm:response>123.45</ibm:response>
</ibm:getStockQuoteResponse>'
Se ha implementado una interfaz de línea de mandatos con el planificador de WebSphere Product Center para permitir la integración con un planificador externo, de forma automatizada si así se desea. Actualmente, esta función está certificada con IBM Tivoli Workload Scheduler. Esta función permite a los usuarios utilizar una interfaz de mandatos o la interfaz de usuario de Tivoli Workload Scheduler para iniciar una importación o una exportación en WebSphere Product Center.
Limitaciones: esta función sólo está soportada en la versión en inglés. Las instalaciones con "inglés de EE.UU." como idioma del servidor podrán utilizar esta función. Todos los demás idiomas no están totalmente soportados; los mensajes que aparecen en la consola de salida están en inglés. Está previsto que todos los demás idiomas del grupo 1 estén soportados en un Fix Pack o en un release futuro de WebSphere Product Center.
Existen dos métodos para ejecutar los trabajos de importación y exportación de WebSphere Product Center. El primero consiste en utilizar la interfaz de mandatos para desencadenar un trabajo mediante el planificador de WebSphere Product Center; el segundo consiste en utilizar la interfaz de usuario de Tivoli Workload Scheduler. Para utilizar el segundo método, deben cumplirse los requisitos siguientes:
1. En el servidor de aplicaciones debe haberse instalado Tivoli Workload Scheduler 8.2, Tivoli Management Framework 4.1 y Tivoli Management Framework Language Support 4.1.
2. Asegúrese de que el script de shell "run_job_template.sh" existe en la carpeta "$TOP/bin/” en el entorno en el que se ejecutarán los trabajos planificados.
3. Instale Tivoli Management Framework 4.1 en la máquina que se utilizará para ejecutar o planificar trabajos.
El planificador de WebSphere Product Center se integra con IBM Tivoli Workload Scheduler mediante un script de shell $TOP/bin/run_job_template.sh de WebSphere Product Center. Este script de shell debe estar en el entorno en el que se ejecutará un trabajo planificado; cada trabajo requiere su propio script de shell.
Por ejemplo:
Nombre del trabajo |
Script de shell relacionado |
Feed 1 |
run_job_feed1.sh |
Feed 2 |
run_job_feed2.sh |
DailyFeed3 | run_job_dailyfeed3.sh |
El archivo run_job_template debe modificarse en cada entorno de prueba o de producción para reflejar el trabajo que se ejecutará.
Por ejemplo:
Abra run_job_feed1.sh; verá lo siguiente:
#export TOP=<Path to WPC Installation home directory> # E.g. /usr/appinstalls/wpc52
#WPC_INIT_VARS=$TOP/setup/init_ccd_vars.sh
#. $WPC_INIT_VARS# Set the job related variables as needed and do not modify anything else after this
# CCD_JOB_NAME=<Job Name> # [Required]
# CCD_JOB_TYPE=<Job Type> # [Required, Valid values are import|export]
# CCD_COMPANY_CODE=<Company Code> # [Optional, Default Value is trigo]
# CCD_USERNAME=<User Name> # [Optional, Default Value is Admin]
# CCD_DEBUG=<Debug on or off> # [Optional, Default Value is off]
Nota: el valor predeterminado de CCD_COMPANY_CODE es "trigo", que es la empresa predeterminada que se crea al ejecutar create_schema.sh.
El conjunto de parámetros anterior sería:
export TOP=/usr/trigo/wpc52_41/bin
WPC_INIT_VARS=$TOP/setup/init_ccd_vars.sh
. $WPC_INIT_VARS# Set the job related variables as needed and do not modify anything else after this
CCD_JOB_NAME=Feed1 # [Required]
CCD_JOB_TYPE=import # [Required, Valid values are import|export]
CCD_COMPANY_CODE=test # [Optional, Default Value is trigo]
CCD_USERNAME=m # [Optional, Default Value is Admin]
CCD_DEBUG=on # [Optional, Default Value is off]
La interfaz de usuario de Tivoli Workload Scheduler se puede utilizar para desencadenar una importación o una exportación en WebSphere Product Center. La interfaz de usuario utiliza un script de shell para definir qué trabajo se ejecutará o se planificará. En este apartado se proporcionan los pasos detallados para ejecutar un trabajo con IBM Tivoli Workload Scheduler.
Para poder ejecutar un trabajo de WebSphere Product Center mediante Tivoli Workload Scheduler, es necesario crear una tarea para definirlo.
Crear una tarea
Al crear una tarea se define el sistema principal que se utilizará para ejecutar el trabajo planificado y la vía de acceso del archivo de script de shell necesario.
1. Abra Tivoli Desktop y, en el recuadro de diálogo "Tivoli Management Environment", especifique la información del servidor que contiene las aplicaciones necesarias para utilizar la función de planificador de fusión: WebSphere Product Center 5.2, Tivoli Workload Scheduler 8.2, Tivoli Management Framework 4.1 y Tivoli Management Framework Language Support 4.1. Cuando haya acabado, pulse Aceptar.
- Máquina host: escriba la dirección IP de la máquina del sistema principal.
- Conectarse como: escriba el nombre de usuario.
- Contraseña: escriba la contraseña del usuario.
2. Pulse dos veces en el nombre de la máquina del sistema principal en la que se ha instalado Tivoli Workload Scheduler. Aparece el diálogo "Región de política".
3. En la barra de menús, seleccione Crear > Biblioteca de tareas; se abrirá el diálogo Crear biblioteca de tareas. Especifique un nombre para la nueva biblioteca de tareas y pulse "Crear y cerrar".
4. Pulse dos veces en la biblioteca de tareas para crear una tarea. La creación de una tarea es similar a la creación de un trabajo en WebSphere Product Center.
5. En la barra de menús, seleccione Crear > Tarea y especifique un nombre para la tarea. Por ejemplo, “Tarea para entrada de datos masivos 1”.
6. Al editar la tarea, seleccione la función que será necesaria para ejecutar la tarea.
7. Seleccione la plataforma en la que se ejecutará la tarea. Si la tarea se ejecuta en una plataforma AIX, seleccione la opción AIX; aparecerá "Ejecutable AIX para la tarea". Especifique la información necesaria relativa a la ubicación donde se encuentra el script de shell “run_job_template” necesario:
- En el host: especifique el nombre del sistema principal en el que se encuentra “run_job_template”.
- Ruta al archivo: vía de acceso del archivo “run_job_template”.
Nota: los cambios realizados en run_job_template.sh no se reflejan dinámicamente en la tarea. En la pantalla "Editar tarea", deseleccione y vuelva a seleccionar la opción de plataforma y especifique la vía de acceso del script de shell actualizado para reflejar los últimos cambios realizados.
Para obtener información sobre cómo realizar cambios en "run_job_template.sh", consulte el apartado "Modificación de run_job_template.sh".8. Pulse el botón “Crear y cerrar” para guardar las modificaciones realizadas en la tarea.
Ejecutar una tarea
Una vez creada una tarea en la biblioteca de tareas, se puede ejecutar manualmente o a la hora planificada. La tarea, cuando se ejecuta, utiliza el sistema principal que tiene definido y el archivo de script "run_job_template.sh" para iniciar una importación o una exportación en WebSphere Product Center.
1. En la pantalla Biblioteca de tareas, pulse dos veces en la tarea que desea.
2. Seleccione la opción “Mostrar en escritorio” para ver los detalles de la ejecución y el estado del trabajo.
3. En "Nodos gestionados disponibles", seleccione el sistema principal que corresponda para que esté disponible en "Nodos gestionados seleccionados".
4. Pulse en “Ejecutar” y consulte el resultado en la pantalla Salida con formato. El escritorio mostrará los detalles de la ejecución del trabajo, que se pueden guardar pulsando "Guardar en archivo...".
Para poder planificar un trabajo, primero debe crear una tarea para el trabajo de WebSphere Product Center que desea planificar.
Crear una tarea
1. En Tivoli Desktop, pulse en un sistema principal y pulse dos veces en la biblioteca de tareas que desea para crear el trabajo.
2. En el menú Crear, seleccione Tarea y especifique un nombre de tarea.
3. Seleccione la tarea para la cual debe planificarse el trabajo.
4. Seleccione la opción “Mostrar en escritorio” para ver los detalles de la ejecución y el estado del trabajo.
5. En "Nodos gestionados disponibles", seleccione el sistema principal que desea para que esté disponible en "Nodos gestionados seleccionados".
6. Pulse "Crear y cerrar".
Ejecutar la tarea
1. Vaya a la página Biblioteca de tareas y deje Tivoli Desktop abierto.
2. Arrastre el trabajo “Trabajo para entrada de datos masivos 1” y suéltelo en “Planificador” en Tivoli Desktop.
3. Especifique una etiqueta de trabajo.
En este punto existen algunas opciones para ejecutar el trabajo en función de los requisitos del usuario. Por ejemplo, el trabajo se puede planificar para que se ejecute indefinidamente o para ejecutarlo a intervalos de tiempo regulares. El usuario puede cambiar los valores en la página Agregar trabajo planificado para ajustarlos a sus necesidades.
Supongamos que el usuario desea planificar un trabajo de modo que se ejecute tres veces a intervalos de una hora. En este caso, es importante que la hora sea exactamente la misma que la hora del servidor según el huso horario definido.
4. Seleccione "Repetir el trabajo" y escriba "3".
5. Escriba "60" como valor para los minutos.
6. Si el usuario desea enviar una notificación a un grupo determinado, seleccione "Enviar aviso de Tivoli", pulse "Grupos disponibles", seleccione el grupo que desea en la lista Grupos de avisos disponibles y pulse Establecer para cerrar la ventana.
7. Seleccione "Enviar diálogo de estado al escritorio".
8. Si en el entorno del usuario ya se ha configurado el correo electrónico, especifique un ID de correo electrónico para enviar la notificación.
9. Seleccione "Registrar en el archivo" y especifique la vía de acceso del archivo de anotaciones, el nombre de sistema principal y la vía de acceso de archivo que desee.
10. Pulse Planificar trabajo o Planificar trabajo y cerrar.
El estado de un trabajo se puede consultar mediante la función de avisos de IBM Tivoli Workload Scheduler. Si lo desean, los usuarios también puede conectarse a WebSphere Product Center para consultar el estado de un trabajo.
1. En la página Desktop, pulse dos veces en Notices.
2. Seleccione un grupo especificado y pulse Open.
Si así lo desea, el usuario puede realizar importaciones o exportaciones mediante el planificador de WebSphere Product Center a través de la interfaz de línea de mandatos. Ello requiere que el usuario disponga de los privilegios necesarios para acceder al servidor en el que se controlarán los trabajos planificados.
Para desencadenar un trabajo, utilice la línea de mandatos siguiente:
$JAVA_RT com.ibm.ccd.scheduler.common.RunJob --job_name="aaaa" --job_type=import|export [--company_code=bbbb --username=cccc --debug=on / off]
- job_name: nombre de la importación o exportación planificada
- job_type: selección de un trabajo de importación o de exportación
- company_code: nombre de la empresa con la que el trabajo planificado está relacionado
- username: nombre del usuario que tiene permiso para desencadenar el trabajo planificado
- debug: incluir información de depuración cuando se ejecuta un trabajo
Por ejemplo:
$JAVA_RT com.ibm.ccd.scheduler.common.RunJob --job_name="Entrada de datos masivos de artículos " --job_type=import --company_code=prueba --username=usuario1 --debug=on
Con esta línea de mandatos se desencadena un trabajo de importación denominado "Entrada de datos masivos de artículos" desde la empresa "prueba".
El propósito de este capítulo es resumir los procedimientos óptimos de integración en una implementación de WebSphere Product Center. El uso de estos procedimientos óptimos ayudará a lograr una integración fiable y de alta calidad entre sistemas. Para cubrir todos los aspectos de la integración, se ha desarrollado este documento a fin de identificar los procedimientos óptimos asociados con cada uno de los diferentes aspectos de la integración.
Elementos clave de integración:
- Principios de diseño
- Implementación
- Validación
- Visibilidad
Dimensiones de integración: podemos usar las dimensiones que se enumeran a continuación para entender los diversos tipos de implementación que se encuentran en WebSphere Product Center. En el resto del documento se resaltarán los procedimientos óptimos o las directrices aplicables a cada dimensión o tipo de implementación.
WebSphere Product Center como sistema de origen o de destino
La dimensión más evidente es si WebSphere Product Center es el sistema de origen o de destino para la información que se está intercambiando. Un sistema de origen limita una integración; las restricciones más importantes son: (a) la posibilidad de efectuar sindicaciones con diferencias; (b) la posibilidad de iniciar una integración; (c) la posibilidad de recibir una notificación sobre el éxito de la transmisión de datos o sobre anomalías y poder emprender una acción apropiada, y (d) los protocolos y formatos soportados, así como el soporte de una infraestructura EAI.
Sistema de control
Un sistema de control se puede definir como un sistema que actúa en función de un desencadenante interno para una integración. Un ejemplo sería WebSphere Product Center ejecutando una sindicación planificada como un trabajo. Otro ejemplo sería SAP desencadenando un adaptador de WBI como resultado de la adición de un artículo. El hecho de que WebSphere Product Center sea el sistema de origen o de destino para una integración es totalmente independiente de qué sistema sea el sistema de control en una integración. Hay varios casos posibles. Cuando interviene un intermediario, como un servidor FTP o una herramienta EAI, tanto el sistema de origen como el de destino pueden ser sistemas de control: según una planificación establecida, un sistema de legado coloca un archivo en un servidor FTP, mientras que WebSphere Product Center recoge el archivo según una planificación establecida. Un ejemplo de caso en el que WebSphere Product Center es un sistema de destino controlado (es decir, que espera que algo externo desencadene una importación de datos) sería WBI de IBM enviando un mensaje a WebSphere Product Center a través del llamador, siendo el contenido del mensaje la actualización de un artículo de Transora, por ejemplo. Un ejemplo de caso en el que WebSphere Product Center es un sistema de origen controlado (es decir, que espera que algo externo desencadene una exportación de datos) sería WBI de IBM sondeando una cola de WebSphere Product Center periódicamente para comprobar si hay algún archivo que pueda recopilar.
Protocolo
Existe mucha confusión en los equipos de implementación de WebSphere Product Center y en los recursos de cliente entre protocolo, formato y mensaje frente a integración basada en archivo. Por ello, uno de los objetivos de este documento es asegurarnos de establecer una nomenclatura común para estos conceptos. Son ejemplos de protocolo: el protocolo de transferencia de archivos (FTP), el protocolo de transferencia de hipertexto (HTTP), el protocolo simple de transferencia de correo (SMTP, es decir, el del correo electrónico), el servicio de mensajería de Java (JMS) e IBM WebSphere Message Queuing (IBM WebSphere MQ). Un protocolo define información de envoltorio y codifica datos como los números o la respuesta esperada, pero no tiene nada que ver con el contenido que transmite. En todas las integraciones hay que tener claro los protocolos que se utilizan, puesto que siempre habrá por lo menos uno. Además, en las diferentes fases de una integración pueden utilizarse distintos protocolos: el adaptador de WBI en SAP puede transmitir datos de SAP al WBI InterConnection Server (ICS) vía HTTP, que luego los pasa a un gestor de colas MQ de IBM para trasmitir dichos datos a otro gestor de colas al que WebSphere Product Center está conectado como cliente de MQ.
Formato
El formato en el que se presentan los datos es independiente del protocolo. Son ejemplos de formatos: los valores separados por comas (CSV), el delimitado por barra vertical, el lenguaje de códigos extensible (XML) o simplemente una estructura predefinida de campo y registro como en el caso de los mensajes de intercambio electrónico de datos (EDI). Cada formato define los campos ya sea a través de parámetros de ubicación/longitud, ya sea a través de etiquetas. Es importante tener presente la codificación que puede necesitarse para un formato determinado. Por ejemplo, en las implementaciones a menudo se olvida que caracteres como los corchetes angulares ('<', '>') deben evitarse en XML o que el contenido puede incluir comas en CSV.
Tamaño de los datos
Esta dimensión se confunde a menudo con la comunicación "basada en mensajes" o "basada en archivos", por lo que es importante aclarar este punto. La integración "basada en mensajes" suele implicar intercambios menores de datos y propiedades como las siguientes:
- Los datos se intercambian con mayor frecuencia y en porciones más pequeñas, por lo que se comunican cambios con un intervalo de tiempo mucho menor de incidencia que en los sistemas "por lotes" tradicionales, donde las exportaciones/importaciones pueden tener lugar con una frecuencia semanal.
- Los dos sistemas (origen y destino) están en contacto, por lo que un mensaje enviado se procesa y se acusa el recibo del mismo, en lugar de generar un archivo que puede navegar vía FTP o permanecer en un sistema de archivos durante una semana antes de recuperarlo para su procesamiento.
Sin embargo, no puede trazarse una línea clara que diferencie una integración basada en mensajes de una basada en archivos o una por lotes, por lo que es importante definir un conjunto de dimensiones preciso y evitar conjuntos confusos o que se solapen. Así pues, el tamaño global de los datos debería ser una dimensión más importante que el hecho de si se trata de una integración etiquetada como "basada en mensajes" o "por lotes".
Tipos de comunicación
Otra dimensión que hay que tener en cuenta es el tipo de comunicación que intervendrá en la integración. La comunicación síncrona ofrece una respuesta directa a un usuario o sistema sobre el resultado de una acción concreta. Si se usa HTTP para la comunicación, por ejemplo, el sistema o el usuario recibe una respuesta automática tras el envío de una acción. En cambio, la comunicación asíncrona realiza la acción sin esperar respuesta. Si la integración implica depositar un archivo en un servidor FTP de donde luego lo recogerá un sistema, por ejemplo, el sistema que ha depositado el archivo no recibe respuesta automática sobre el resultado de la acción.
Frecuencia
Junto con la dimensión "tamaño de los datos", esta dimensión de "frecuencia" captura la cantidad total de datos que deberán procesarse de forma periódica.
Hebra de integración
Esta dimensión intermedia de sistemas e infraestructura capta si se está utilizando o no una infraestructura EAI. Además, a veces en integraciones con sistemas de legado pueden escribirse programas intermedios para cargar o extraer datos en el sistema de legado. Es importante entender y documentar estos sistemas o programas intermedios, ya que con mucha frecuencia son el eslabón más débil en la cadena de integración.
Sobre todo en las integraciones complejas que pueden requerir múltiples saltos (de WebSphere Product Center a WBI y de ahí al sistema de destino, por ejemplo), medios no estándar (como actualizaciones directas de bases de datos), varios protocolos u otras negociaciones de la comunicación (como la comunicación a través de un cortafuegos), conviene establecer una única hebra de trabajo o una ruta completa de integración en una fase temprana. Esto identificará posibles problemas y dará tiempo suficiente a otras partes (como administradores de redes o equipos que trabajen en WBI de IBM) para resolver estos problemas de conectividad en paralelo.
Las dimensiones de una integración descritas deben convertirse en la terminología estándar para describir la integración en las implementaciones de WebSphere Product Center. La documentación proporcionada por los equipos de desarrollo en las fases de análisis y diseño deben usar estas dimensiones de forma clara y coherente.
Acrónimos
Acrónimo
Definición
EAI
Enterprise Application Integration (Integración de aplicaciones empresariales)
FTP
File Transfer Protocol (Protocolo de transferencia de archivos)
HTTP
Hyper Text Transfer Protocol (Protocolo de transferencia de hipertexto)
MQ
Middleware de cola de mensajes de IBM. A menudo se habla de IBM WebSphere MQ, dado que todas las soluciones de conectividad se incluyen ahora en la marca WebSphere.
ICS
WBI InterConnection Server de IBM (servidor de interconexión)
WBI
Gama WebSphere Business Integration de IBM, la gama de soluciones de EAI de IBM.
Reutilización
La base general subyacente a la metodología de implementación de la integración es la reutilización. A medida que WebSphere Product Center crece y se realizan más implementaciones de cliente, tenemos que poder escalar y solucionar rápidamente las integraciones tanto con sistemas antes no integrados como con los que estaban integrados con implementaciones anteriores. Para cumplir este requisito es preciso abordar todo esfuerzo de integración con la reutilización en mente, de modo que si alguna vez necesitamos realizar una integración con el mismo sistema para otro cliente, podremos hacerlo con la máxima eficiencia.
La reutilización se consigue: (a) aprovechando herramientas EAI como WBI de IBM y su modelo de objetos empresariales genéricos, (b) eligiendo formatos independientes del modelo de datos, (c) creando bibliotecas de scripts de WebSphere Product Center (acuse de recibo, sondeo, etc.) independientes del modelo de datos y que puedan reutilizarse en otras implementaciones.
Información compartida
La comunicación como medio para la integración
Conceptualmente, se puede pensar en la integración como una simple serie de sucesos que pueden desencadenarse por una comunicación entre un sistema de control WebSphere Product Center y uno o varios sistemas controlados. Estos sucesos pueden desencadenarse mediante mensajes que se transmiten entre los sistemas, procesos automatizados que sondean el contenido o los archivos, o cualquier otro medio de comunicación rudimentaria. Las comunicaciones pueden incluir, por ejemplo, el tipo de cambio que debe realizarse (adición, actualización, supresión), un ID de comunicación único (para seguimiento o confirmación), así como el contenido relevante para realizar el cambio ya sea en WebSphere Product Center o dentro del sistema o los sistemas integrales.
Medidas de fiabilidad
Además de la transmisión de información entre sistemas para comunicar cambios, debe existir un medio para comunicar si una transacción en particular se ha realizado satisfactoriamente o si se ha producido alguna anomalía. Estas comunicaciones con negociación pueden implementarse de forma intuitiva con formas síncronas de comunicación y permitir a los sistemas integrados realizar un seguimiento de una transacción determinada para ver si puede ser necesario reenviarla debido a una recepción incorrecta en el otro extremo, con lo cual se mejora y, en última instancia, se garantiza la fiabilidad de la integración.
Formatos de la información
El formato específico de estas comunicaciones debe diseñarse de forma suficientemente genérica para que tanto el formato como la funcionalidad del proceso que lo rodean puedan reutilizarse en otras implementaciones.
Al considerar el formato general que se vaya a utilizar para las comunicaciones entre sistemas, es importante tener en cuenta la utilidad de un formato a la luz de las siguientes necesidades:
- Juegos de caracteres internacionales y caracteres especiales (comas, comillas, corchetes angulares, etc.).
- Estructuras complejas (es decir, jerarquías de contenido y relaciones).
- Capacidad de manejar múltiples instancias de un marcador de posición de artículo o de contenido con diferentes valores por instancia.
Proceso de información
Aunque parece lógico que el formato de la información que se envía entre sistemas deba ser genérico en cierta medida, es comprensible que no todas las implementaciones encajen en un formato predefinido, especialmente si queremos que la integración sea un enlace directo entre WebSphere Product Center y el sistema o los sistemas integrales. Para evitar la necesidad de remodelar los formatos y las correlaciones entre formatos y las especificaciones de WebSphere Product Center en cada implementación a causa de diferencias, por ejemplo en los modelos de datos, es recomendable utilizar funciones de correlación reutilizables entre formatos XML y especificaciones de WebSphere Product Center.
Plataformas EAI
Una manera de hacerlo es usando plataformas EAI como la suite de WBI o webMethods, que permiten crear conectores reutilizables con los que WebSphere Product Center puede, por ejemplo, comunicarse a través de un único formato de mensajes completamente reutilizable (esto es, un único DTD XML). WBI puede convertir las diferencias que puedan surgir como consecuencia de las particularidades de una implementación, en lugar de tener que remodelar las funciones de WebSphere Product Center para poder procesar la información. Al no necesitar remodelar las funciones de WebSphere Product Center, pueden usarse las mismas funciones en diversas implementaciones.
Otras opciones
Otro factor que hay que tener en cuenta es que clientes concretos pueden necesitar reutilizar un formato que ya está en uso en otros sistemas de la misma empresa. Esto dificultaría a WebSphere Product Center la introducción de un DTD totalmente independiente que entonces debería convertirse para que lo entendieran otros sistemas de la empresa y no para que WebSphere Product Center pudiera utilizar el DTD que ya existe. En estos casos, debemos usar funciones reutilizables para realizar la conversión entre las especificaciones de WebSphere Product Center y el DTD.
También es posible que, incluso con una plataforma EAI en uso, este enfoque resulte más útil para un cliente concreto desde la perspectiva de comprender la correlación de la información gestionada por WebSphere Product Center con su DTD interno para comunicar información, por lo que podría ser un enfoque más adecuado.
Manipulación de sucesos
Lo ideal es que un proceso automatizado de WebSphere Product Center pueda manejar sucesos. Por ejemplo, una función de cola introducida en el release de WebSphere Product Center podría usarse para manejar tanto el envío de mensajes (colas de salida) como la recepción de respuestas y mensajes de entrada (colas de entrada). Entonces, los scripts de proceso de cola podrían utilizarse para manejar el proceso en sí de los mensajes y, así, llevar a cabo los sucesos que deben desencadenarse como resultado de un mensaje específico.
Sin embargo, la manipulación de sucesos no tiene que estar necesariamente vinculada de forma directa a una función específica o una versión concreta de WebSphere Product Center. Otros medios de manejar sucesos incluyen, entre otros, los trabajos planificados en WebSphere Product Center que sondean un servidor FTP o los trabajos planificados que comprueban un sistema de archivos local en busca de un archivo (mediante el almacén de documentos), con un script de desencadenante basado en llamador que pone en marcha sucesos basándose en información enviada. El método elegido dependerá, en último término, de una cuidadosa estimación del tamaño de los datos y de los requisitos de frecuencia de una integración determinada.
Seguimiento de cambios
Para poder implementar una sincronización completa entre sistemas, es preciso que en WebSphere Product Center haya un medio de seguimiento de los cambios realizados en el contenido y en los artículos que, además, pueda etiquetarse eficazmente como comunicado al sistema integral o no. Por ejemplo, si se suprime un artículo en WebSphere Product Center (como un sistema de origen), es probable que no solo queramos desencadenar un mensaje que se envíe al sistema de destino para notificarle que debe suprimir el mismo archivo, sino que también queramos realizar un seguimiento del éxito o las anomalías de esta comunicación concreta para que WebSphere Product Center pueda saber si el artículo se ha suprimido realmente en el sistema de destino.
Conectores reutilizables
Repositorio de conectores
A medida que evolucionan las implementaciones y nuestras asociaciones, crearemos gradualmente un repositorio de conectores reutilizables para varios sistemas. Siempre que sea posible, debemos esforzarnos por reutilizar estos conectores, pues las funciones relacionadas con el proceso de los artículos, etc. que fluyen por estos conectores pueden también reutilizarse sin necesidad de realizar modificaciones, o mínimas, desde del punto de vista de una implementación específica. No cabe duda de que esto acelerará enormemente el tiempo de ejecución de la implementación en conjunto y mejorará la fiabilidad y la estabilidad global de los conectores y de las implementaciones que los usen, ya que los problemas se detectan y se resuelven con el tiempo.
Al realizar una integración con sistemas que aún no tienen conectores definidos, conviene que intervenga un experto en integración que pueda crear rápidamente un conector reutilizable que luego pueda usarse para la integración en esa implementación concreta y que también pueda almacenarse en el repositorio de conectores para su uso posterior en caso de que alguna vez necesitemos realizar una integración con el sistema en otra implementación.
Uso de conectores
Los conectores deben utilizarse de modo que las modificaciones que haya que realizar se hagan mediante una capa EAI que maneje las conversiones de la información que se transmita entre los sistemas. En otras palabras, antes de reescribir cualquiera de las funciones reutilizables en WebSphere Product Center para procesar información pasada a través de EAI, conviene aprovechar la capacidad de la plataforma EAI para realizar las conversiones necesarias y así no tener que reescribir ninguna función en WebSphere Product Center.
Ampliación de la implementación
Mini-integraciones
Es conveniente dividir la gran tarea de una integración completa en tareas mucho más pequeñas y más fáciles de gestionar. Esto puede hacerse, por ejemplo, dividiendo una única integración completa en integraciones más pequeñas – desde integraciones "separadas" para cada tipo de artículo (especificación) hasta integraciones para cada contenedor (catálogo), pasando por integraciones para un grupo de atributos, si es preciso. Cuando se tenga la seguridad de que cada una de estas "mini-integraciones" funciona a la perfección, pueden combinarse para formar una única integración completa.
Granularidad de las funciones
Debe prestarse especial atención a los niveles en los que debe producirse la integración entre sistemas. Por ejemplo, al enviar cambios a un sistema de destino, tal vez queramos poder enviar todos los cambios realizados desde una fecha determinada, sólo los cambios de un catálogo concreto desde que se enviaron los últimos cambios, sólo los cambios que afectan a un grupo de artículos determinado o cualquier cambio que afecte a un atributo concreto para todos los artículos. Los requisitos específicos dependerán de la implementación, pero es importante considerar la granularidad necesaria en una fase temprana del proceso de diseño de la implementación para que pueda atenderse convenientemente.
Ajuste de rendimiento
Comentarios generales sobre el rendimiento
No deje los problemas de rendimiento para más tarde. Resulta más fácil cambiar y arreglar formatos y otros aspectos de la integración en fases avanzadas, pero un cuello de botella en el rendimiento puede requerir un rediseño importante y a veces soporte de ingeniería. Coloque recursos de medición del rendimiento en los scripts en el momento adecuado del desarrollo.
Medición del rendimiento
Suponiendo el enfoque de mini-integraciones (según se describe en el apartado Implementación), el rendimiento debería medirse en cada paso de la integración calculando el tiempo total necesario para cada tarea de mini-integración. Así podrán identificarse las áreas potenciales de bajo rendimiento de forma más detallada y resultará mucho más fácil ajustar el rendimiento.
Cómo ajustar el rendimiento
Una vez identificadas las áreas con problemas de rendimiento, deberá realizarse un análisis para determinar la causa del lento funcionamiento. Para efectuar un análisis detallado, pueden usarse herramientas como la creación de perfiles del middleware WebSphere Product Center y la pestaña de rendimiento de la pantalla sobre detalles del trabajo. El análisis puede aplicarse luego para centrarse en un área concreta de un script o consulta SQL y así poder llevar a cabo la acción conveniente: modificar o volver a escribir el script, o solicitar al departamento de ingeniería la mejora de las consultas una base de datos.
Validación
Estabilidad
Ventajas de las mini-integraciones
La implementación de mini-integraciones (según se describe en el apartado Implementación) debería proporcionar un nivel de confianza mucho mayor en el éxito de la integración, pues ofrece una lista detallada de todas las áreas en las que se ha comprobado que la integración funciona. Sin la visibilidad de las mini-integraciones, no solo es más difícil aportar pruebas de los detalles de la integración que funciona, sino que también es más probable que la integración en su conjunto experimente problemas difíciles de identificar, diagnosticar y depurar. Por ello, la implementación de mini-integraciones mejorará la estabilidad global de la integración.
Pruebas ampliables
Ventajas de las mini-integraciones
La implementación de mini-integraciones (según se describe en el apartado Implementación) permite probar la integración a un nivel mucho más detallado de modo que los errores o problemas que puedan surgir no queden ocultos por grandes complejidades (potencialmente irrelevantes). Así, como se ha mencionado anteriormente, los procesos de diagnóstico, depuración y resolución de problemas se agilizan considerablemente.
Entornos representativos o completos
Las pruebas de la integración deben realizarse en un entorno representativo con la misma configuración que el entorno final (las mismas especificaciones, normas de validación, normas de valor, vistas...), pero con el menor número posible de entidades representativas (entornos locales, catálogos, árboles de categorías, artículos, categorías, organizaciones, usuarios, funciones...). Esto reducirá el tiempo de ejecución de las pruebas, de carga de las pantallas y, en general, acelerará el tiempo de las pruebas en comparación con las pruebas en un entorno totalmente lleno de datos. Todas las pruebas y depuraciones deberían llevarse a cabo en este entorno.
Hasta que no se hayan completado las pruebas en el entorno representativo y se haya comprobado que todo parece funcionar no deberá verificarse la integración en un entorno completo y lleno de datos. No obstante, es importante cumplir este paso para asegurarse de que en el entorno representativo no se han pasado por alto accidentalmente escenarios marginales, así como para probar el rendimiento de la integración a nivel de producción.
Proceso de pruebas ampliable
Cualquier trabajo planificable (como importaciones o exportaciones) debe ejecutarse primero con un número muy reducido de artículos representativos: 10 o menos. Este número deberá incrementarse proporcionalmente al nivel de confianza adquirida en el script que está procesando dichos artículos. Este enfoque impide que se ejecute un trabajo masivo durante varias horas para descubrir al final que algo no ha funcionado pero el proceso no se detuvo a los pocos minutos de ejecución.
Hasta que no exista plena confianza en el funcionamiento del script asociado al trabajo en cuestión no deberá ejecutarse un trabajo que implique un conjunto de datos completo. Como en el caso de la recomendación del entorno completo, es importante cumplir este paso para asegurarse de que en las ejecuciones de trabajos pequeños no se han pasado por alto accidentalmente escenarios marginales, así como para probar el rendimiento del trabajo a nivel de producción.
Visibilidad
Informes
Ventajas de las mini-integraciones
La implementación de mini-integraciones (según se describe en el apartado Implementación) permite un nivel más detallado en los informes gracias a que las porciones de integración son más pequeñas y se pueden implementar más rápidamente. En comparación con la creación de informes sobre el progreso de la implementación a nivel de la integración completa, este nivel más detallado permite realizar un seguimiento más concreto y cuantitativo de la implementación.
Las mini-integraciones pueden listarse y su relación con la imagen global de la integración completa puede detallarse en una gráfica; de este modo puede extraerse una imagen precisa del progreso general de la implementación a partir de la creación de informes sobre el progreso de las tareas de mini-integración.
Propiedad
Incluso al trabajar con varios equipos, conviene asignar la propiedad a una sola persona durante toda la integración. La labor de esta persona consiste en asegurarse de que se establece una única hebra en una fase temprana, de que los equipos trabajan de acuerdo con las directrices de este documento y de que el ciclo de creación/prueba incremental está sincronizado entre los diversos equipos en lo que respecta a (a) las mini-integraciones, (b) el proceso de pruebas ampliable y (c) los entornos representativos o completos.
Documentación
Identificación clara de los formatos y del enfoque
Describa un trazado claro para la ejecución y documente con claridad los formatos que se vayan a utilizar en caso de que haya varios equipos trabajando en la integración. El ejemplo más común es un equipo de WebSphere Product Center trabajando en la exportación de datos de WebSphere Product Center y un equipo de cliente o de soporte trabajando en la carga de dichos datos en un sistema de destino. No empiece a trabajar sin especificaciones para el formato común y actualice esta documentación a diario. El gestor del proyecto debe hacer cumplir este requisito imprescindible.
Este enfoque es coherente con el uso de entornos representativos y de mini-integraciones. Los dos equipos deben avanzar y realizar las pruebas incrementalmente para garantizar un progreso constante y visible.
Usar terminología clara y común para describir las integraciones
Todas las implementaciones deben usar las dimensiones identificadas en el apartado Dimensiones de integración.
Reutilización
La clave para la ampliación está en aprender de las integraciones anteriores y en empaquetar las integraciones teniendo en cuenta los principios de reutilización descritos en el apartado Reutilización.
Visibilidad
Conviene establecer una medida general para la creación de informes sobre el progreso y proporcionar una clara actualización del estado al gestor del proyecto cada pocos días como mínimo.
Mini-integraciones
Fragmente la complejidad de una gran integración de acuerdo con las dimensiones (catálogos, atributos) convenientes para dicha integración. Céntrese cada vez en una mini-integración y vincúlela directamente a las medidas de visibilidad.
Entornos representativos o completos
Mantenga un entorno representativo que sea fácil de depurar y de probar. No pase al entorno completo hasta que tenga confianza en la validez de los scripts y de las especificaciones. Vincule esto con las medidas de visibilidad.
Proceso de pruebas ampliable
Pruebe todos los trabajos con pequeños conjuntos de datos para comprobar que funcionan correctamente antes de desplegar conjuntos de datos completos. Vincule esto con las medidas de visibilidad.
Rendimiento
Sin preocuparse por si la lógica o el formato son correctos, ejecute algunas pruebas de rendimiento en una fase temprana del ciclo de desarrollo y, posteriormente, de forma regular para identificar posibles problemas.
Establecer una única hebra con antelación
Sobre todo en las integraciones complejas que pueden requerir múltiples saltos, varios protocolos o medios no estándar, conviene establecer una única hebra de trabajo de integración en una fase temprana.
Diseñar especificaciones y documentación
Defina y documente una vía de acceso clara para la ejecución y documente con claridad los formatos que se vayan a utilizar, especialmente en caso de que haya varios equipos trabajando en la integración.
Un único propietario
Incluso al trabajar con varios equipos, conviene asignar la propiedad a una sola persona durante toda la integración.
Enfoque
Formato de comunicaciones genérico
Siempre que sea posible, conviene diseñar un formato de comunicación genérico o reutilizarlo de un proyecto anterior. Cuanto más general sea el formato, más sistemas podrán intervenir en la integración sin necesidad de realizar modificaciones especiales en los formatos para que todos los sistemas puedan comunicarse entre sí. Por supuesto, el uso de un formato general puede afectar al rendimiento, por lo que el formato adecuado para un proyecto puede no ser la mejor elección para otro. Siempre hay que tener en cuenta las dimensiones de integración al determinar el formato que se vaya a usar.
Correlaciones de contenido
En la medida de lo posible, deben establecerse correlaciones entre el modelo de contenido en WebSphere Product Center y el modelo visto a través del formato de comunicación con medios que se puedan actualizar dinámicamente. De nuevo, según una investigación de las dimensiones de integración, las necesidades de determinados proyectos pueden implicar que la creación de estas correlaciones no se pueda actualizar dinámicamente en la medida deseada, debido, por ejemplo, a que se considere prioritario un rendimiento máximo absoluto del proceso. Una manera de hacer esto consiste en usar árboles de categorías (que representen una estructura XML, por ejemplo) con una especificación de nodo único relacionada, que puede indicar la vía de acceso al nodo de la especificación del atributo con el que se correlaciona un nodo concreto del árbol de categorías en el modelo de contenido de WebSphere Product Center. Entonces se puede utilizar un script de proceso recursivo para procesar la correlación de un artículo con un archivo XML basándose en este árbol de categorías y sus correlaciones definidas, e incluso puede atender apariciones múltiples anidadas con poco esfuerzo.
Conversión / transformación de información
Los sistemas que intervienen en la integración no deberían tener necesidad de hacer frente a las restricciones y requisitos de contenido e información de los demás sistemas de la integración. Las plataformas EAI pueden usarse cómodamente para manejar esta conversión y transformación de contenido. Por ejemplo, mientras que WebSphere Product Center almacena el valor de un distintivo como "TRUE" o "FALSE", puede que otro sistema de la integración guarde el valor como "Y" o "N". Se pueden utilizar plataformas EAI para realizar estas conversiones, de modo que WebSphere Product Center pueda enviar siempre TRUE/FALSE y dar por supuesto que recibirá TRUE/FALSE, mientras que los sistemas integrados pueden enviar y recibir siempre Y/N. Esto garantiza que, más adelante, si hay más sistemas implicados en la integración, esto no supondrá una recodificación adicional.
Comprensión del cliente
Es posible reutilizar una plataforma con la que es probable que el cliente ya esté familiarizado, por lo que el cliente tendrá una confianza añadida, ya que la integración usa funciones conocidas (por ejemplo, la plataforma EAI). Además, si ya existe un formato de comunicación específico del cliente y se reutiliza para la integración de WebSphere Product Center, los desarrolladores de la parte del cliente apenas necesitarán formación adicional para entender el formato de comunicación con el que se correlacionará WebSphere Product Center.
Flexibilidad y fiabilidad de las comunicaciones
La mayoría de las plataformas EAI tienen funciones nativas que permiten el establecimiento de comunicaciones a través de diversos protocolos, además de garantizar que las comunicaciones se facilitan mediante intermediarios. Esto permite a WebSphere Product Center centrarse en generar el documento necesario para establecer la comunicación, sin tener que preocuparse por el soporte de medios potencialmente diferentes de comunicar este documento a diversos sistemas ni por realizar un seguimiento para comprobar si cada sistema recibe o no el documento; son la plataforma y la capa EAI las que se ocupan de esto, mientras que WebSphere Product Center simplemente debe tenerlo presente desde una perspectiva de hebra de integración general.
Puede que IBM no ofrezca los productos, servicios o características que se tratan en este documento en otros países. Póngase en contacto con el representante de IBM para obtener información sobre los productos y servicios actualmente disponibles en su área. Las referencias hechas a productos, programas o servicios IBM no pretenden afirmar ni dar a entender que únicamente puedan utilizarse dichos productos, programas o servicios IBM. Se puede utilizar en su lugar cualquier producto, programa o servicio funcionalmente equivalente que no infrinja ningún derecho de propiedad intelectual de IBM. No obstante, es responsabilidad del usuario evaluar y verificar el funcionamiento de cualquier producto, programa o servicio que no es de IBM.
IBM puede tener patentes o aplicaciones de patente pendientes que afecten a los temas tratados en este documento. La entrega de este documento no le otorga ninguna licencia sobre dichas patentes. Puede enviar las consultas sobre licencias, por escrito, a la siguiente dirección:
IBM Director of Licensing
IBM Corporation
North Castle Drive
Armonk, NY 10504-1785
EE.UU.
El párrafo siguiente no se aplica al Reino Unido ni a ningún otro país donde estas disposiciones sean incompatibles con la legislación vigente:
INTERNATIONAL BUSINESS MACHINES CORPORATION FACILITA ESTA PUBLICACIÓN TAL CUAL, SIN GARANTÍAS DE NINGÚN TIPO, NI EXPLÍCITAS NI IMPLÍCITAS, INCLUYENDO, PERO SIN LIMITARSE A, LAS GARANTÍAS IMPLÍCITAS DE NO INFRACCIÓN, COMERCIALIZACIÓN O ADECUACIÓN A UN FIN CONCRETO. Algunos estados o países no permiten la renuncia a las garantías explícitas o implícitas en ciertas transacciones, por tanto, es posible que esta declaración no resulte aplicable a su caso.
Esta información puede contener imprecisiones técnicas o errores tipográficos. Periódicamente se efectúan cambios en la información aquí contenida; dichos cambios se incorporarán en nuevas ediciones de la publicación. IBM se reserva el derecho a realizar, si lo considera oportuno, cualquier modificación en los productos o programas que se describen en esta publicación y sin notificarlo previamente.
Las referencias en este documento a sitios web que no sean de IBM se proporcionan únicamente como ayuda y no se consideran en modo alguno como aprobados por IBM. Los materiales de dichos sitios web no forman parte de este producto de IBM y la utilización de los mismos será por cuenta y riesgo del usuario.
IBM puede utilizar o distribuir la información que se le suministre de cualquier modo que considere adecuado sin incurrir por ello en ninguna obligación con el remitente.
Los titulares de licencias de este programa que deseen información sobre el mismo con el fin de permitir: (i) el intercambio de información entre programas creados independientemente y otros programas (incluido éste) y (ii) la utilización mutua de la información intercambiada, deben ponerse en contacto con:
IBM Burlingame Laboratory
Director IBM Burlingame Laboratory
577 Airport Blvd., Suite 800
Burlingame, CA 94010
EE.UU.
Dicha información puede estar disponible, sujeta a los términos y condiciones adecuados, incluido, en algunos casos, el pago de una tasa.
El programa bajo licencia que se describe en esta información, y todos los materiales bajo licencia disponibles para el mismo, los proporciona IBM bajo los términos del Acuerdo de licencia de cliente IBM, del Acuerdo internacional de programas bajo licencia de IBM o de cualquier acuerdo equivalente entre el cliente e IBM.
Cualquier información de rendimiento que aparezca en este documento ha sido determinada en un entorno controlado. Por lo tanto, los resultados obtenidos en otros entornos operativos podrían ser distintos. Algunas mediciones se han realizado en sistemas en fase de desarrollo y, por lo tanto, no hay ninguna garantía que estas mediciones sean las mismas en los sistemas normalmente disponibles. Además, algunas mediciones podrían haberse estimado mediante extrapolación. Los resultados reales podrían ser diferentes. Los usuarios de este documento deberían verificar los datos aplicables para su entorno específico.
La información relacionada con productos que no son de IBM se ha obtenido de los proveedores de dichos productos, de sus anuncios publicados o de otras fuentes de disponibilidad pública. IBM no ha comprobado estos productos y no puede confirmar la precisión de su rendimiento, compatibilidad ni contemplar ninguna otra reclamación relacionada con los productos que no son de IBM. Las preguntas relacionadas con las prestaciones de los productos que no son de IBM deberán dirigirse a los proveedores de estos productos.
En esta información aparecen ejemplos de datos e informes utilizados en operaciones empresariales diarias. Para ilustrarlos como realmente posibles, los ejemplos incluyen los nombres de individuos, empresas, marcas y productos. Todos estos nombres son ficticios y cualquier parecido con los nombres y direcciones utilizados por una empresa comercial real es pura coincidencia.
Todas las declaraciones acerca de planes e intenciones futuros de IBM están sujetos a cambios o pueden retirarse sin previo aviso, y únicamente reflejan objetivos y finalidades.
La información de la interfaz de programación, si se proporciona, está especialmente indicada para ayudarle a crear software de aplicación utilizando este programa.
Las interfaces de programación de uso general permiten crear software de aplicación que obtenga los servicios de las herramientas de este programa.
No obstante, la información también puede contener información de diagnóstico, modificaciones y ajustes. La información de diagnóstico, modificaciones y ajustes se proporciona para ayudarle a depurar el software de aplicación.
Aviso: no use esta información de diagnóstico, modificaciones y ajustes como una interfaz de programación, ya que está sujeta a posibles cambios.
Los términos siguientes son marcas comerciales o marcas registradas de International Business Machines Corporation en Estados Unidos y/o en otros países:
IBM
el logotipo de IBM
AIX
CrossWorlds
DB2
DB2 Universal Database
Domino
Lotus
Lotus Notes
MQIntegrator
MQSeries
Tivoli
WebSphere
Microsoft, Windows, Windows NT y el logotipo de Windows son marcas registradas de Microsoft Corporation en Estados Unidos y/o en otros países.
MMX, Pentium y ProShare son marcas comerciales o marcas de servicio de Intel Corporation en Estados Unidos y/o en otros países.
Java y todas las marcas registradas basadas en Java son marcas registradas de Sun Microsystems, Inc. en Estados Unidos y/o en otros países.
Los demás nombres de compañías, productos o servicios pueden ser marcas registradas o marcas de servicio de otras empresas.
IBM WebSphere Product Center contiene determinados Componentes Excluidos
(como se define en el documento de Información sobre Licencia correspondiente),
a los que se aplican los términos adicionales siguientes. La licencia de este
software se le proporciona bajo los términos del Acuerdo Internacional de
Programas bajo Licencia, sujeta a las cláusulas relativas a los Componentes
Excluidos. IBM debe proporcionarle los avisos siguientes en relación con este
software:
i.) IBM WebSphere Product Center incluye el software siguiente, bajo
licencia de IBM recibida de Apache Software Foundation bajo los términos y
condiciones de la licencia de Apache 2.0:
- Apache Regular Expression v1.2
- Apache Axis v1.1
- Apache XML4J v3.0.1
- Apache Log4j v1.1.1
- Apache Jakarta Commons DBCP Package v1.1
- Apache Jakarta Commons Pool Package v1.1
- Apache Jakarta Commons Collections Package v3.0
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement You may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of Your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APÉNDICE: Cómo aplicar la licencia de Apache a su trabajo
Para aplicar la licencia de Apache a su trabajo, adjunte el siguiente
modelo de aviso y sustituya los campos entre corchetes "[]" por su
propia información de identificación. No incluya los corchetes.
El texto debe aparecer con la sintaxis de comentario correcta
para el formato de los archivos. También es recomendable incluir
el nombre de archivo o de clase y la descripción de la finalidad
en la misma "página impresa" que el aviso de copyright para que la
identificación en los paquetes archivados de terceros sea más fácil.
Copyright [yyyy] [nombre del propietario del copyright]
Licensed under the Apache License, Version 2.0 (the "License");
You may not use this file except in compliance with the License.
You may obtain a
copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
ii.) IBM WebSphere Product Center incluye el software siguiente, bajo
licencia de IBM recibida de Scott Hudson, Frank Flannery and C. Scott Ananian,
bajo los términos y condiciones siguientes:
- Cup Parser Generator v0.10k
CUP Parser Generator Copyright Notice,
License, and Disclaimer
Copyright 1996-1999 by Scott Hudson, Frank Flannery, C. Scott Ananian
Permission to use, copy, modify, and distribute this software and its
documentation for any purpose and without fee is hereby granted, provided that
the above copyright notice appear in all copies and that both the copyright
notice and this permission notice and warranty disclaimer appear in supporting
documentation, and that the names of the authors or their employers not be
used in advertising or publicity pertaining to distribution of the software
without specific, written prior permission. The authors and their employers
disclaim all warranties with regard to this software, including all implied
warranties of merchantability and fitness. In no event shall the authors or
their employers be liable for any special, indirect or consequential damages
or any damages whatsoever resulting from loss of use, data or profits, whether
in an action of contract, negligence or other tortious action, arising out of
or in connection with the use or performance of this software.
iii.) IBM WebSphere Product Center incluye el software siguiente, bajo licencia
de IBM recibida de Elliot Joel Berk y C. Scott Ananian, bajo los términos y
condiciones siguientes:
- JLex v1.2.6
JLEX COPYRIGHT NOTICE, LICENSE AND DISCLAIMER.
Copyright 1996-2003 by Elliot Joel Berk and C. Scott Ananian
Permission to use, copy, modify, and distribute this software and its
documentation for any purpose and without fee is hereby granted, provided that
the above copyright notice appear in all copies and that both the copyright
notice and this permission notice and warranty disclaimer appear in supporting
documentation, and that the name of the authors or their employers not be used
in advertising or publicity pertaining to distribution of the software without
specific, written prior permission. The authors and their employers disclaim
all warranties with regard to this software, including all implied warranties
of merchantability and fitness. In no event shall the authors or their
employers be liable for any special, indirect or consequential damages or any
damages whatsoever resulting from loss of use, data or profits, whether in an
action of contract, negligence or other tortious action, arising out of or in
connection with the use or performance of this software. Java is a trademark
of Sun Microsystems, Inc. References to the Java programming language in
relation to JLex are not meant to imply that Sun endorses this product.
iv.) IBM WebSphere Product Center incluye el software siguiente, bajo
licencia de IBM recibida de International Business Machines y otros, bajo los
términos y condiciones siguientes:
- ICU4J v2.8
Licencia de ICU - ICU 1.8.1 y versiones posteriores
AVISO DE COPYRIGHT Y AUTORIZACIÓN
Copyright (c) 1995-2003 International Business Machines Corporation y otros
Reservados todos los derechos.
Por el presente documento se otorga el permiso, sin cargo alguno, a
cualquier persona que obtenga una copia de este software y de los
archivos de documentación relacionados con el mismo (el "Software"),
para comerciar con el Software sin restricción alguna, incluidos,
pero sin limitarse a, los derechos para utilizar, copiar, modificar,
fusionar, publicar, distribuir o vender copias del Software, y para
permitir ello mismo a aquéllos a los que se les entregue el Software,
siempre y cuando el aviso anterior de copyright y este aviso de autorización
aparezca en todas las copias del Software y que tanto los avisos de copyright
anteriores y este aviso de autorización aparezcan en la documentación de soporte.
EL SOFTWARE SE PROPORCIONA TAL CUAL, SIN GARANTÍAS DE NINGÚN
TIPO, NI EXPLÍCITAS NI IMPLÍCITAS, INCLUYENDO, PERO SIN LIMITARSE
A, LAS GARANTÍAS DE NO INFRACCIÓN, COMERCIALIZACIÓN O
ADECUACIÓN A UN FIN CONCRETO DE TERCEROS. EN NINGÚN SUPUESTO,
LOS TENEDORES DEL COPYRIGHT INCLUIDOS EN ESTE AVISO SERÁN
RESPONSABLES DE CUALQUIER RECLAMACIÓN, DAÑO ESPECIAL,
INDIRECTO NI DERIVADO NI CUALQUIER OTRO TIPO DE DAÑO QUE SE
DERIVE DE LA PÉRDIDA DE USO, DATOS O BENEFICIOS,
INDEPENDIENTEMENTE DE SI SON PRODUCTO DE UNA ACCIÓN DEL
CONTRATO, NEGLIGENCIA O AGRAVIO, QUE SE DERIVE O GUARDE
RELACIÓN CON EL USO O RENDIMIENTO DE ESTE SOFTWARE.
Salvo los contenidos en este aviso, los nombres de los tenedores del copyright
no deben utilizarse en publicidad ni utilizarse de ninguna otra forma para
promocionar la venta, el uso u otras actividades comerciales con este
Software sin el consentimiento previo por escrito del tenedor del copyright.
Todas las marcas registradas mencionadas en este documento son propiedad
de sus propietarios respectivos.