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.