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
- Página inicial oficial (inglês)
- Fórum XML-RPC (inglês)
- Instruções (Inglês)
- Relatórios de tecnologia (inglês)
- Introspecção XML-RPC (Inglês)
- Errata XML-RPC não oficial (Inglês)
Evidência individual
- ↑ XML-RPC usa a data no formato AAAAmmdd'T'HH: MM: SS e sem especificar um fuso horário.
- ↑ por exemplo: ontosys.com ( Memento de 9 de março de 2007 no Internet Archive )
- ↑ Eric Kidd: XML-RPC HOWTO ( Inglês ) tldp.org. 12 de abril de 2001. Recuperado em 14 de setembro de 2019.