Esse artigo faz parte da revista Java Magazine edição 50. Clique aqui para ler todos os artigos desta edição

img

Clique aqui para ler esse artigo em PDF.imagem_pdf.jpg

Integração Simples com XML-RPC

Aumente a Interoperabilidade com uma alternativa leve

 

O mundo de TI vem demandando ada vez mais a integração e aplicações, muitas delas em rodução há anos, ou mesmo décadas, e esenvolvidas com diferentes linguagens e ecnologias. Surge então o desafio de fazer om que tais sistemas se comuniquem de orma transparente. Há duas maneiras opulares de implementar a comunicação ntre aplicações heterogêneas: XML-RPC  o SOAP. Ambas fazem a codificação em ML e o transporte via HTTP e possuem ropósitos muito parecidos.

A maior diferença entre as duas é que o SOAP favorece um modelo de comunicação assíncrono e centrado em documentos.

Já o XML-RPC (RPC=Remote Procedure Call) mantém o paradigma de chamada de procedimentos – com invocações síncronas, parâmetros, valores de retorno, exceções e outras características familiares à quase totalidade das linguagens de programação. Isso facilita o aprendizado da tecnologia e o seu uso transparente. Há ainda outras diferenças entre esses protocolos, que resumimos na Tabela 1.

 

img

Tabela 1. Comparação entre SOAP e XML-RPC

 

Este artigo demonstra uma solução de comunicação entre aplicativos heterogêneos, usando a tecnologia XML-RPC.

 

Conceitos e aspectos do XML-RPC

O XML-RPC, assim como o Java RMI (Remote Method Invocation), faz parte da família de protocolos de “Chamada de Procedimentos Remotos” (RPCs), que surgiu nos anos 80. A RPC permite que um programa chame um procedimento/ método/função que reside em outro sistema – da mesma maneira que o chamaria se fosse parte do mesmo software. Esse mecanismo torna transparente para o programador a invocação de procedimentos fora de seu programa. Além disso, possibilita a execução de aplicações de forma distribuída, criando-se serviços que são processados e invocados em diferentes aplicativos, por exemplo, numa intranet ou internet. As únicas informações necessárias para a invocação são a interface e a localização (endereço IP e porta) da função a invocar.

De maneira geral, o formato de uma chamada XML-RPC é o mesmo de uma requisição HTTP. Além disso, o corpo desta requisição é estruturado em XML, assim como o retorno da execução. A Figura 1 ilustra o mecanismo de troca de dados do XML-RPC, integrando um aplicativo em Java a outro em C++. Os parâmetros usados podem ser numéricos, strings etc., e também estruturas de dados complexas, como arrays e structs.

 

 

img

Figura 1. Visão geral do protocolo XML-RPC

 

A Figura 2 apresenta um exemplo de chamada HTTP usando XML-RPC. Note que o conteúdo em XML possui alguns itens definidos. O elemento deve possuir o elemento . Se a chamada incluir parâmetros, deve ser incluído também o elemento . Cada elemento pode conter um número qualquer de elementos .

 

img

Figura 2. Formato da mensagem XML-RPC no momento da chamada de uma função remota

 

A Figura 3 ilustra um exemplo de mensagem de retorno para uma invocação. O corpo da resposta, como se vê, é também estruturado em XML. Vamos aos detalhes. O ...

Quer ler esse conteúdo completo? Tenha acesso completo