Criando um Nó de Processamento de Mensagem ou de Saída em Java

Antes de começar

O WebSphere Message Broker fornece a origem para dois nós de amostra definidos pelo usuário chamados SwitchNode e TransformNode. Você pode utilizar esses nós em seus estados atuais ou poderá modificá-los.

Conceitualmente, um nó de processamento de mensagem é utilizado para processar uma mensagem de alguma forma e um nó de saída é utilizado para enviar uma mensagem para a saída como um fluxo de bits. Entretanto, quando se codifica um nó de processamento de mensagem ou um nó de saída, eles são essencialmente a mesma coisa. Você pode desempenhar o processamento de mensagens em um nó de saída e, de forma semelhante, pode exibir uma mensagem para um fluxo de bits utilizando um nó do processamento de mensagens. Para simplificar, este tópico refere-se principalmente ao nó como um nó de processamento de mensagem, no entanto, ele discute a funcionalidade dos dois tipos de nó.

Criando um Novo Projeto Java

É possível criar nós Java de dentro do workbench utilizando o PDE (Plug-in Development Environment) fornecido. Para fazer isso, você deve criar um novo projeto Java, da seguinte forma:
  1. Alterne para o Perspectiva de Desenvolvimento de Plug-in.
  2. Clique em Arquivo > Novo > Projeto. Selecione Java no menu esquerdo e, em seguida, selecione Projeto Java no menu direito.
  3. Dê um nome ao projeto.

    O painel Definições Java é exibido.

  4. Selecione a guia Bibliotecas e clique em Incluir JARs Externos.
  5. Selecione install_dir\classes\jplugin2.jar.
  6. Siga os prompts nas outras guias para definir quaisquer outras definições de construção.
  7. Clique em Concluir.
Em seguida você pode desenvolver a origem para o nó Java dentro deste projeto.

Declarando a Classe do Nó de Processamento de Mensagem

Qualquer classe que implemente a MbNodeInterface e esteja contida no classpath do intermediário (ou no caminho da LIL) é registrada com o intermediário como um nó de processamento de mensagem. Ao implementar MbNodeInterface, você também deve implementar um método evaluate para essa classe. O método evaluate é chamado pelo intermediário para cada mensagem que é transmitida através do fluxo.

Por exemplo, para declarar a classe de nó de processamento de mensagem:
package com.ibm.jplugins;

import com.ibm.broker.plugin.*;

public class BasicNode extends MbNode implements MbNodeInterface
Você pode fazer isso no workbench da seguinte forma:
  1. Clique em Arquivo > Novo > Classe.
  2. Defina o pacote e os campos de nome de classe para valores adequados.
  3. Exclua o texto no campo de texto Superclasse e clique no botão Procurar.
  4. Selecione MbNode e clique em OK.
  5. Clique no botão Incluir próximo ao campo de texto Interfaces e selecione MbNodeInterface.
  6. Clique em Concluir.

Definindo o Construtor de Nó

Quando o nó é instanciado, o construtor da classe de nó do usuário é chamado. É aqui que são criados os terminais do nó e inicializados quaisquer valores padrão para os atributos.

Um nó de processamento de mensagem tem um número de terminais de entrada e de terminais de saída associados a ele. Os métodos createInputTerminal e createOutputTerminal são utilizados para incluir terminais em um nó quando ele é instanciado. Por exemplo, para criar um nó com um terminal de entrada e dois terminais de saída:

public MyNode() throws MbException
{
		// criar os terminais aqui
		createInputTerminal ("in");
		createOutputTerminal ("out");
		createOutputTerminal ("failure");
}

Declarando o Nome do Nó

É necessário declarar o nome do nó como ele será identificado pelo workbench. Todos os nomes de nós devem terminar com "Node". O nome é declarado utilizando o seguinte método:

public static String getNodeName()
{
   return "BasicNode";
}
Se esse método não é declarado, a estrutura de API Java cria um nome de nó padrão utilizando as seguintes regras:
  • O nome da classe é anexado ao nome do pacote.
  • Os pontos são removidos e a primeira letra de cada parte do pacote e do nome da classe é transformada em maiúsculas.
Por exemplo, por padrão o nome de nó "ComIbmPluginsamplesBasicNode" é atribuído à seguinte classe:
package com.ibm.pluginsamples;
public class BasicNode extends MbNode implements MbNodeInterface
{
   ...

Declarando Atributos

Os atributos do nó são declarados da mesma forma que propriedades de Java Bean. Você é responsável por escrever métodos getter e setter para os atributos e a estrutura da API infere os nomes dos atributos utilizando as regras de introspecção do Java Bean. Por exemplo, se você declarar os dois métodos seguintes:

private String attributeVariable;

public String getFirstAttribute()
{
  return attributeVariable;
}

publc void setFirstAttribute(String value)
{
  attributeVariable = value;
}

O intermediário inferirá que esse nó tem um atributo chamado firstAttribute. Esse nome é derivado dos nomes dos métodos get ou set, não de nenhum nome de variável de membro de classe interna. Os atributos somente podem ser expostos como cadeias, portanto é preciso converter qualquer tipo numérico para e de cadeias nos métodos get ou set. Por exemplo, o método a seguir define um atributo chamado timeInSeconds:

int seconds;

public String getTimeInSeconds()
{
  return Integer.toString(seconds);
}

public void setTimeInSeconds(String value)
{
  seconds = Integer.parseInt(value);
}

Implementando a Funcionalidade do Nó

Conforme descrito anteriormente, para nós de processamento de mensagem ou saída, você deve implementar o método evaluate definido em MbNodeInterface. Ele é chamado pelo intermediário para processar a mensagem. Esse método deve fornecer toda a função de processamento para o nó.

O método evaluate tem dois parâmetros que são transmitidos pelo intermediário:
  1. O MbMessageAssembly, que contém os seguintes objetos que são acessados utilizando os métodos apropriados:
    • A mensagem de entrada
    • O ambiente local
    • O ambiente global
    • A lista de exceção
  2. O terminal de entrada no qual a mensagem chegou.

Os dados do fluxo de mensagens, ou seja, a mensagem, o ambiente global, o ambiente local e a lista de exceção, são recebidos no terminal de entrada do nó.

Excluindo uma Instância do Nó

Uma instância do nó é excluída quando:
  • Você encerra o intermediário.
  • Você remove o nó ou o fluxo de mensagens contendo o nó e reimplementa a configuração.
Durante a exclusão do nó, o nó pode querer ser informado para que ele possa executar operações de limpeza, como fechar soquetes. Se o nó implementar o método opcional onDelete, este será chamado pelo intermediário imediatamente antes da exclusão do nó.

O método onDelete é implementado da seguinte maneira:

public void onDelete()
{
  // executar limpeza do nó se necessário
}
Referências relacionadas
Estrutura da Lista de Exceções
Informações relacionadas
API de Nó Java Definido Pelo Usuário
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2005 Última Atualização: 04/11/2005
as09970_