XML-RPC

XML-RPC ( Extensible Markup Language Remote Procedure Call ) é uma definição para métodos ou chamadas de funções por sistemas distribuídos .

Geral

Durante a especificação, a ênfase foi colocada no fato de que XML-RPC pode ser implementado sem grande esforço em diferentes linguagens de programação e em diferentes plataformas de sistema. Por isso, também, dois padrões foram combinados para implementação: O protocolo de transferência de hipertexto (HTTP) foi usado para transportar os dados , enquanto os dados transferidos são representados na linguagem de marcação extensível (XML).

A escolha desses padrões também representa a diferença essencial para mecanismos RPC mais antigos, como RPC , Corba ou DCOM , nos quais os dados são transmitidos principalmente em uma representação binária (parcialmente dependente do sistema: DCOM) por meio de protocolos de transmissão especiais.

Historicamente, XML-RPC é o predecessor do SOAP , mas, em contraste com ele, é muito mais simples e fácil de entender.

Existem inúmeras implementações para muitas das linguagens de programação comumente usadas hoje que assumem a funcionalidade básica de chamadas de método e manipulação de método. As funcionalidades básicas nessas bibliotecas incluem:

  • Representação dos tipos de dados ,
  • Geração e análise dos pacotes de solicitação e resposta,
  • Transmissão e recepção do mesmo e
  • frequentemente o fornecimento de esqueleto e esboço para simplesmente “preencher com vida” o código do programa.

Os seguintes tipos de dados são definidos em XML-RPC:

Digite o (s) nome (s) em XML-RPC descrição
int, i4 Inteiro (tipo de dados)
em dobro Número de ponto flutuante
boleano Variável booleana
corda Corda
dateTime.iso8601 Data e hora semelhantes ao formato ISO
base64 Dados binários codificados em Base64

Vários desses tipos de dados simples podem ser combinados usando “struct” e “array”. Uma “estrutura” representa uma coleção de pares de valores-chave; Cada valor contido pode, portanto, ser acessado usando uma chave exclusiva. Um “array”, por outro lado, representa uma lista ; cada valor contido é claramente descrito por sua posição. Além dos tipos de dados simples, “struct” se “array” s, por sua vez “struct” se “array” s, podem conter valores; qualquer estrutura de dados complexa pode ser representada.

Em Java , o tipo de dados correspondente à “estrutura” é o chamado mapa (java.util.Map). A maioria das implementações usa a classe HashTable para exibição, que implementa a interface Map, mas já existe em Java há muito tempo. O tipo de dados correspondente à “matriz” é a chamada Lista (java.util.List) ou uma matriz de objeto em Java.

Extensões para o padrão

Existem várias extensões do padrão a fim de fechar supostas lacunas no padrão. Na maioria das vezes, entretanto, essas extensões são baseadas em um mal-entendido do que é XML-RPC e colocam em risco a interoperabilidade de diferentes sistemas. Portanto, a maioria das implementações também oferece uma opção para alternar para um modo de compatibilidade no qual apenas o padrão é suportado.

Tipo de dado nulo

A representação dos chamados valores zero (também conhecidos como NIL, NULL ou NUL) não é possível com XML-RPC. Os métodos devem, portanto, sempre retornar um valor concreto; em casos raros, isso pode ser um problema. Existem várias extensões para o padrão XML-RPC para resolver esse problema, mas nem todos os servidores e clientes suportam essas extensões.

Exemplos

inquérito

 <?xml version="1.0"?>
 <methodCall>
   <methodName>warenkorb.addPosition</methodName>
   <params>
     <param>
       <value><string>Monitor</string></value>
     </param>
     <param>
       <value><int>10</int></value>
     </param>
   </params>
 </methodCall>

responda

 <?xml version="1.0"?>
 <methodResponse>
   <params>
     <param>
       <value><string>OK</string></value>
     </param>
   </params>
 </methodResponse>

Exemplo de código: Projeto de documentação do Linux

Veja também

Links da web

Evidência individual

  1. XML-RPC usa a data no formato AAAAmmdd'T'HH: MM: SS e sem especificar um fuso horário.
  2. por exemplo: ontosys.com ( Memento de 9 de março de 2007 no Internet Archive )
  3. Eric Kidd: XML-RPC HOWTO ( Inglês ) tldp.org. 12 de abril de 2001. Recuperado em 14 de setembro de 2019.