Despliegue de una aplicación por lotes OSGi
Puede empaquetar una aplicación por lotes existente como una aplicación OSGi. A continuación, podrá desplegar el paquete a fin de exponer los artefactos por lotes como servicios, haciendo visibles dichos artefactos para el contenedor por lotes.
Acerca de esta tarea
Empaquete una aplicación por lotes OSGi, modifique el archivo xml blueprint para describir artefactos por lotes como servicios y exporte la aplicación por lotes OSGi como archivo de paquetes empresarial (EBA). Luego, cree el xJCL. Finalmente, despliegue la aplicación por lotes OSGi.
Procedimiento
- Empaquete una aplicación por lotes OSGi.
La aplicación por lotes OSGi se empaqueta como un EBA. El EBA contiene como mínimo el paquete por lotes, que es un paquete blueprint. El paquete de API y los paquetes de asignador se instalan una vez en el repositorio de paquetes interno.
Consulte el tema sobre la creación de un paquete de cliente y siga los pasos para empaquetar la aplicación OSGi.
- Cree el archivo xml Blueprint.
Debe declarar los pasos de trabajo y las secuencias de datos por lotes como servicios para que el planificador pueda invocarlos. Si la aplicación por lotes OSGi implementa un algoritmo de política de puntos de comprobación o un algoritmo de resultados, también debe declarar como servicio cada algoritmo que la aplicación implementa.
- Declare cada uno de los pasos como servicio Blueprint.
- Establezca el atributo de interfaz (interface).
- Si el paso es de proceso intensivo, establezca el atributo en com.ibm.websphere.ci.CIWork.
- Si el paso es un paso de proceso por lotes transaccional, establezca el atributo en com.ibm.websphere.batch.BatchJobStepInterface.
- Establezca el atributo ref en el ID de bean que declara el bean de paso.
- Declare una propiedad con la clave xjcl:classname y un valor que sea la clase Java™ que implementa el paso.
- Declare un bean para la clase Java que implementa el paso.
- Establezca el atributo scope en prototype.
Ejemplo de paso de proceso intensivo:
<bean id="IVTStep1" class="com.ibm.websphere.batch.samples.tests.steps.GenerateDataStep" scope="prototype"/> <service ref="IVTStep1" interface="com.ibm.websphere.ci.CIWork" id="step1"> <service-properties> <entry key="xjcl:classname" value="com.ibm.websphere.batch.samples.tests.steps.GenerateDataStep"/> </service-properties> </service>
Ejemplo de paso de proceso por lotes transaccional:
<bean id="EchoStep2" class="com.ibm.websphere.batch.samples.tests.steps.TestBatchJobStep" scope="prototype"/> <service ref="EchoStep2" interface="com.ibm.websphere.batch.BatchJobStepInterface" id="echostep1"> <service-properties> <entry key="xjcl:classname" value="com.ibm.websphere.batch.samples.tests.steps.TestBatchJobStep"/> </service-properties> </service>
- Establezca el atributo de interfaz (interface).
- Declare cada una de las secuencias de datos por lotes como servicio Blueprint.
- Establezca el atributo interface en com.ibm.websphere.batch.BatchDataStream.
- Establezca el atributo ref en el ID de bean que declara el bean de secuencia de datos por lotes.
- Declare una propiedad con la clave xjcl:classname y un valor que sea la clase Java que implementa la secuencia de datos por lotes.
- Declare un bean para la clase Java que implementa la secuencia de datos por lotes.
- Establezca el atributo scope en prototype.
Ejemplo de secuencia de datos por lotes:
<bean id="output" class="com.ibm.websphere.batch.samples.tests.bds.TestOutputBatchDataStream" scope="prototype"/> <service ref="output" interface="com.ibm.websphere.batch.BatchDataStream" id="out1"> <service-properties> <entry key="xjcl:impl-class" value="com.ibm.websphere.batch.samples.tests.bds.TestOutputBatchDataStream"/> </service-properties> </service>
- Declare el algoritmo de política de puntos de comprobación como servicio Blueprint.
Si la aplicación por lotes OSGi implementa un algoritmo de política de puntos de comprobación, declare el algoritmo como servicio blueprint. De lo contrario, omita este paso.
- Establezca el atributo interface en com.ibm.wsspi.batch.CheckpointPolicyAlgorithm.
- Establezca el atributo ref en el ID de bean que declara el bean de punto de comprobación.
- Declare una propiedad con la clave xjcl:classname y un valor que sea la clase Java que implementa el algoritmo de política de puntos de control.
- Declare un bean para la clase Java que implementa el algoritmo de política de puntos de control.
- Establezca el atributo scope en prototype.
Ejemplo de algoritmo de política de puntos de comprobación:
<bean id="chkpt" class="com.ibm.websphere.batch.samples.MyCheckpointAlgorithm" scope="prototype"/> <service ref="chkpt" interface="com.ibm.wsspi.batch.CheckpointPolicyAlgorithm" id="ck1"> <service-properties> <entry key="xjcl:impl-class" value="com.ibm.websphere.batch.samples.MyCheckpointAlgorithm"/> </service-properties> </service>
- Declare el algoritmo de resultados como servicio Blueprint.
Si la aplicación por lotes OSGi implementa un algoritmo de resultados, declare el algoritmo como servicio blueprint. De lo contrario, omita este paso.
- Establezca el atributo interface en com.ibm.wsspi.batch.ResultsAlgorithm.
- Establezca el atributo ref en el ID de bean que declara el bean de algoritmo de resultados.
- Declare una propiedad con la clave xjcl:classname y un valor que sea la clase Java que implementa el algoritmo de resultados.
- Declare un bean para la clase Java que implementa el algoritmo de resultados.
- Establezca el atributo scope en prototype.
Ejemplo de algoritmo de resultados:
<bean id="myres" class="com.ibm.websphere.batch.samples.MyResultsAlgorithm" scope="prototype"/> <service ref="myres" interface="com.ibm.wsspi.batch.ResultsAlgorithm" id="r1"> <service-properties> <entry key="xjcl:impl-class" value="com.ibm.websphere.batch.samples.MyResultsAlgorithm"/> </service-properties> </service>
- Declare cada uno de los pasos como servicio Blueprint.
- Exporte la aplicación por lotes OSGi como EBA.
- Cree el xJCL. Cree el xJCL como haría para otras aplicaciones por lotes, con algunas diferencias:
- Haga que el atributo application-name del paso de trabajo sea el nombre del activo desplegado. El activo desplegado es una unidad de composición.
- Haga que el subelemento classname del paso coincida con la propiedad xjcl:classname del servicio de paso.
El ejemplo siguiente utiliza la propiedad xjcl:classname de com.ibm.websphere.batch.samples.tests.steps.TestBatchJobStep del ejemplo de paso por lotes transaccional indicado anteriormente en este procedimiento.
<step id=”step1”> <classname> com.ibm.websphere.batch.samples.tests.steps.TestBatchJobStep</classname> </step>
- Despliegue la aplicación por lotes OSGi.
Consulte el tema relativo al despliegue de una aplicación OSGi como aplicación de nivel empresarial y siga los pasos.
Resultados
Ha empaquetado una aplicación por lotes OSGi, modificado el archivo xml blueprint para describir artefactos por lotes como servicios y exportado la aplicación por lotes OSGi como archivo de paquetes empresarial (EBA). Luego, ha creado el xJCL. Finalmente, ha desplegado la aplicación por lotes OSGi.
Subtopics
Aplicaciones por lotes OSGi
Las aplicaciones por lotes OSGI son aplicaciones por lotes que se pueden empaquetar y desplegar como aplicaciones de OSGI a fin de exponer artefactos por lotes como servicios.


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tgrid_cgbatchosgi
File name: tgrid_cgbatchosgi.html