Extensión del producto

Puede ampliar la capacidad del perfil Liberty escribiendo extensiones del producto.

Puede escribir sus propias características de Liberty e instalarlas en un servidor de perfiles Liberty existente, o puede empaquetarlas para su entrega a los usuarios.

El perfil Liberty proporciona varias interfaces de programación del sistema (SPI) que puede utilizar para ampliar el entorno de ejecución; también puede utilizar características más avanzadas como, por ejemplo, el servidor de perfiles Liberty desde la aplicaciones Java™ mediante programación.

Extensión del producto

Una extensión del producto es un directorio del disco que se estructura como el directorio de instalación del perfil Liberty, ${wlp.install.dir}. e define para la instalación de Liberty mediante un archivo del directorio ${wlp.install.dir}/etc/extensions denominado extension-name.properties. A continuación, el contenido del directorio de extensión de producto se utiliza para ampliar el perfil Liberty. Se pueden instalar varias extensiones del producto a la vez, pero deben tener nombres exclusivos; esto se aplica en la denominación de los archivos de propiedades. La ubicación de extensión del producto predeterminada, ${wlp.user.dir}/extension, no requiere un archivo de propiedades; el contenido en esta ubicación se detecta automáticamente y es conocido para el tiempo de ejecución como el producto de extensión "usr".

Las extensiones del producto normalmente contienen una o varias características de Liberty, pero pueden tener cualquier contenido que amplíe el entorno del perfil Liberty, por ejemplo, scripts o recursos.

Procedimientos recomendados: Instale las extensiones del producto en directorios que no se vean afectados por las actualizaciones en el entorno del perfil Liberty. Para obtener más información, consulte ¿Qué puede modificarse durante la aplicación de servicio o durante una actualización?.
Figura 1. El diagrama muestra la instalación del perfil Liberty con dos características, "Supergui" y "App Services"
El archivo de extensión del producto tiene las propiedades siguientes:
com.ibm.websphere.productId=su_ID_producto
com.ibm.websphere.productInstall=vía_acceso_archivo_absoluta_o_relativa
Nota: Cuando se utiliza una vía de acceso del archivo relativa, debe ser un igual del valor ${wlp.install.dir}.
Por ejemplo:
com.ibm.websphere.productId=org.acme.supergui
com.ibm.websphere.productInstall=supergui/wlp-ext

Característica

Una característica de Liberty está formada por un archivo de definición (manifiesto de característica) y una colección de paquetes OSGi que proporcionan las clases y los servicios correspondientes a una función específica en el entorno de ejecución del perfil Liberty.

Casos de ejemplo para utilizar una característica de Liberty en lugar de una aplicación regular

La implementación de una función como una característica de Liberty en lugar de como una aplicación puede ser adecuada en algunos casos. En la siguiente lista se describen algunas de las ventajas de utilizar una característica:
  • Las características se controlan mediante la configuración del gestor de características, por lo que son independientes de la gestión de aplicaciones de usuario.
  • El código de característica tiene acceso a la SPI del perfil Liberty, lo que permite una mayor integración con el entorno de ejecución.
  • Las características pueden recibir una configuración especificada por el usuario del archivo server.xml y exponer sus valores de configuración en las herramientas de desarrollo, sin necesidad de modificar las herramientas.
  • Las características pueden exponer fácilmente las clases y los servicios entre ellas y para las aplicaciones de usuario.
  • Las características pueden ser extremadamente ligeras, sin dependencias del contenedor de aplicaciones.
  • Se pueden utilizar las funciones para aumentar un modelo de programación en particular. Por ejemplo, una característica de usuario puede añadir soporte para los manejadores de espacio de nombres de Blueprint personalizados o para las anotaciones de Blueprint al modelo de programación de aplicaciones OSGi.
Nota: En general, las características no se puede transportar directamente a otros servidores de aplicaciones; si la portabilidad es importante, debe utilizar aplicaciones conformes con la especificación.

Utilización de características del servidor

Para utilizar una función escrita por el usuario en el servidor de perfiles Liberty, debe instalarla en un directorio de extensión del producto. Puede ser la ubicación predefinida de la "extensión del producto del usuario" o una extensión que se encuentre fuera del directorio de instalación del perfil Liberty. A continuación, puede añadir el nombre de característica a la configuración del servidor.

La extensión del producto de usuario es un directorio predefinido donde el servidor busca características adicionales. El archivo .mf de la definición de característica debe copiarse en el directorio ${wlp.user.dir}/extension/lib/features y los archivos .jar del paquete deben copiarse en el directorio ${wlp.user.dir}/extension/lib.

Las características escritas por el usuario se añaden a la configuración del servidor de la misma manera que las características del producto. Para evitar conflictos de nombres con características de distintos proveedores, las características que forman parte de una extensión del producto deben tener el nombre de extensión como prefijo. Para las características en el directorio usr/extension/lib, el prefijo predeterminado es usr:.

Por ejemplo, si ha instalado una característica denominada simple-1.0 en el directorio ${wlp.user.dir}/extension/lib, debe configurar la característica en server.xml del modo siguiente:
<featureManager>
    <feature>usr:simple-1.0</feature>
</featureManager>
Si ha instalado una característica denominada myFeature en su propia ubicación y ha definido una extensión del producto en el archivo ${wlp.install.dir}/etc/extensions/myExt.properties, debe configurar la característica en el archivo server.xml como se indica a continuación:
<featureManager>
    <feature>myExt:myFeature</feature>
</featureManager>

Cuando inicia el servidor, el gestor de características detecta la característica, y los paquetes se instalan en la infraestructura OSGi y se inician.

Consulte también Adición y eliminación de características de Liberty y Gestión de características.

Utilización mediante programación de una característica desde las aplicaciones

Las características pueden exponer las clases y los servicios para las aplicaciones.

Para exponer las clases Java para el uso de la aplicación, debe listar los paquetes de clases en la cabecera IBM-API-Package en el manifiesto de característica. El listado de los paquetes de clases en la cabecera IBM-API-Package hace que las clases estén visibles para los cargadores de clases de aplicación. La visibilidad de los paquetes de API puede controlarse mediante el tipo de visibilidad de la API. Consulte la sección Especificación de los paquetes de API y SPI para un proyecto de características de Liberty.

Para que las aplicaciones OSGi puedan utilizar los servicios, debe listarlas en la cabecera IBM-API-Service en el manifiesto de característica. Una característica proporciona servicios OSGi, para que pueda hacer referencia a esos servicios mediante programación desde las aplicaciones.

Los servicios generalmente deben registrarse en el registro de servicios (SR) OSGi para permitir que las aplicaciones (u otras características) puedan localizarlos. Las aplicaciones OSGi y otras características pueden realizar una búsqueda directa desde el SR, o pueden utilizar prestaciones como Blueprint o los servicios declarativos de OSGi para inyectar sus dependencias de servicio. Las aplicaciones Java EE es más probable que localicen los servicios a través de JNDI; en el perfil Liberty, hay una federación de SR y JNDI que permite a las aplicaciones Java EE utilizar JNDI para ubicar servicios en el SR. Para obtener más información, consulte Cómo trabajar con el registro de servicio OSGi.

Exposición de características como aplicaciones web

Para exponer una característica de Liberty como una aplicación web, puede publicar los paquetes OSGi en la característica como paquetes de aplicaciones web (WAB). Además de las cabeceras OSGi que requiere un paquete, puede especificar la vía de acceso de contexto de la aplicación web utilizando la cabecera Web-ContextPath.

Por ejemplo:

Web-ContextPath: myWABapp
Bundle-ClassPath: WEB-INF/classes

Inyección y proceso de configuración

Una ventaja importante de utilizar las características es que el usuario puede configurarlas fácilmente en el archivo server.xml (y los archivos incluidos). El kernel del perfil Liberty supervisa y analiza los archivos de configuración, y los conjuntos de propiedades resultantes pueden inyectarse en el componente correspondiente cada vez que cambien.

El servicio de administración de configuración (CA) OSGi gestiona la configuración de perfiles Liberty en el kernel y puede acceder a él según la especificación. Los conjuntos de propiedades de configuración se identifican mediante una identidad persistente (PID) que se utiliza para asociar el elemento en el archivo server.xml, con el componente que registra para recibir las propiedades.

Por ejemplo, si registra la característica con el servicio CA utilizando un PID com.acme.console, un usuario puede especificar la siguiente configuración en el archivo server.xml:
<com.acme.console color="blue" size="17"/>
La característica recibirá las propiedades siguientes:
  • color="blue"
  • size="17"

De manera opcional, puede proporcionar metadatos que describen las propiedades de configuración utilizando descriptores de OSGi Metatype. El uso de descriptores hace que los metadatos de configuración se incluyan en el esquema de configuración que genera el perfil Liberty y que utilizan las herramientas del desarrollador, por lo que las propiedades de configuración se presentan automáticamente a los desarrolladores de aplicaciones cuando configuren su servidor.

Para obtener más detalles sobre la recepción y la descripción de las propiedades de configuración, consulte Habilitación de un servicio para recibir datos de configuración.

Servicios declarativos en el perfil Liberty

Las características más complejas o de mayor tamaño suelen beneficiarse de la utilización de servicios declarativos (DS) de OSGi para permitir que la característica esté compuesta de varios servicios, y para gestionar la inyección de dependencias y propiedades de configuración. El uso de DS permite la activación lenta de servicios, el retardo de la carga de clases Java hasta que se utilice el servicio y la ordenación de la activación de servicios según las dependencias. La mayoría de las características del producto de perfil Liberty están gestionadas por DS.

Consulte también Composición de características avanzadas utilizando servicios declarativos de OSGi.


Icono que indica el tipo de tema Tema de concepto

Términos y condiciones para centros de información | Comentarios


Icono de indicación de fecha y hora Última actualización: 15 de junio de 2015
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=was-libcore-mp&topic=cwlp_prod_ext
Nombre de archivo:cwlp_prod_ext.html