Implementação da Classe Java
Os módulos de integração podem ser implementados para usar arquivos de classe Java™ . Usar um arquivo de classe Java elimina a necessidade de registro e configuração do componente de integração. Além disso, todas as implementações de módulos de integração subjacentes são transparentes para o produto de gerenciamento de processo.
Os módulos de integração de classe Java devem implementar a interface
Java psdi.iface.mic.ServiceInvoker. A interface Java do invocador de serviço está incluída no arquivo
businessobjects.jar. Inclua a classe Java do módulo de integração no caminho da classe do
sistema no tempo de execução.
A interface Java do invocador de serviço tem variações da seguinte assinatura de método:
public byte[] invoke(Map String,Object metaData,
MboRemote sourceMbo, MboRemote targetMbo, String endPointName)
throws MXException, RemoteException;
metaDataé um mapa das propriedades de nome e valor que inclui:- O nome e a versão do módulo de integração.
- O nome e o namespace da operação de gerenciamento lógico.
- O identificador exclusivo global do produto de gerenciamento operacional.
- O nome de terminal e quaisquer propriedades de terminal que estejam sendo sobrescritas.
sourceMboé o objeto de origem definido na operação de gerenciamento lógico.targetMboé o objeto de resposta definido na operação de gerenciamento lógico.endPointNameé o nome do terminal usado para comunicação com o produto de gerenciamento operacional.
Se tiver configurado o módulo de integração para implementar diversas
operações de gerenciamento lógico, o módulo de integração deve determinar
qual operação de gerenciamento lógico está sendo chamada. No tempo de execução, o módulo de integração recupera as propriedades
LMONAME e LMONAMESPACE do mapa de entrada metaData:
import psdi.iface.omp.IMConstants;
.
.
.
String lmoName = metaData.get(IMConstants.LMONAME);
String lmoNamespace = metaData.get(IMConstants.LMONAMESPACE);
O módulo de integração pode recuperar dados da operação de gerenciamento lógico do objeto de origem. O código de exemplo a seguir recupera valores da operação de gerenciamento lógico do objeto de origem:
String guid = sourceMbo.getString("GUID");
int packID = sourceMbo.getInt("PACKID");
boolean hasSubs = sourceMbo.getBoolean("HASSUBS");
No exemplo, a operação de gerenciamento lógico tem um atributo de entrada alfanumérico chamado de identificador exclusivo global, um atributo de booleano chamado PACKID e um atributo booleano chamado HASSUBS.
Os métodos do invocador de serviço podem aceitar um conjunto de
valores MboSetRemote como uma entrada de origem, em vez
de um único valor MboRemote. Na maioria dos casos, o módulo de integração passa todos os objetos do
conjunto de objetos para o produto de gerenciamento operacional. Em outros casos, o módulo de integração passa somente o primeiro objeto do
conjunto. Não há nenhuma regra configurada que se aplique ao comportamento do módulo
de integração,mas você deve definir claramente o comportamento esperado na
descrição da operação de gerenciamento lógico.