XML-RPC
XML-RPC ( Remote Procedure Call ) é um protocolo de chamada de procedimento remoto que usa XML para codificar dados e HTTP como protocolo de transmissão de mensagens. [ 1 ]
É um protocolo muito simples, pois define apenas alguns tipos de dados e comandos úteis, além de uma breve descrição completa. A simplicidade do XML-RPC contrasta com a maioria dos protocolos RPC que possuem extensa documentação e requerem considerável suporte de software para uso.
Foi criado por Dave Winer da empresa UserLand Software em associação com a Microsoft em 1998 . Considerando que a Microsoft era muito simples, decidiu adicionar funcionalidades a ela, após o que, após várias etapas de desenvolvimento, o padrão deixou de ser simples e passou a ser o que hoje é conhecido como SOAP . Uma diferença fundamental é que nos procedimentos SOAP os parâmetros têm um nome e sua ordem não importa, o que não é o caso do XML-RPC . [ 2 ]
Tipos de dados
De acordo com a especificação XML-RPC , [ 3 ] os principais tipos de dados são:
| Nome | Exemplo de tags | Descrição |
|---|---|---|
| variedade |
<array>
<data>
<value><i4> 1404 </i4></value>
<value><string> Algo aqui </string></value>
<value><i4> 1 </i4></ valor>
</data>
</array>
|
Matriz de valores, sem armazenar chaves |
| base64 |
<base64> eW91IGNhbid0IHJlYWQgdGhpcyE= </base64>
|
Dados binários codificados em base 64 |
| boleano |
<boolean> 1 </boolean>
|
Valor lógico (0 ou 1) |
| data hora |
<dateTime.iso8601> 19980717T14:08:55 </dateTime.iso8601>
|
Dia e hora |
| em dobro |
<double> -12,53 </double>
|
Número de ponto flutuante de precisão dupla |
| inteiro |
<i4> 42 </i4>
qualquer <int> 42 </int>
|
Numero inteiro |
| corda |
<string> Olá mundo </string>
|
String (string) de caracteres. Deve seguir a codificação XML . |
| estrutura |
<struct>
<member>
<name> foo </name>
<value><i4> 1 </i4></value>
</member>
<member>
<name> barra </name>
<value><i4> 2 </i4></value>
</member>
</struct>
|
Matriz de valores, armazenando chaves |
| nada |
<nil/>
|
valor nulo; uma extensão XML-RPC |
Exemplos
- Uma invocação XML-RPC pode ser:
<?xml version="1.0"?>
<methodCall>
<methodName> org.wikipedia.DataExchange </methodName>
<params>
<param>
<value><i4> 360 </i4></value>
</param>
<param>
<value><i4> 221 </i4></value>
</param>
</params>
</methodCall>
- Resposta à convocação:
<?xml version="1.0"?>
<methodResponse>
<params>
<param>
<value><string> Número de troca de dados. 360 por 221 </string></value>
</param>
</params>
</methodResponse>
Implementações
Existem implementações para vários sistemas operacionais, linguagens de programação, licenças de software comercial e livre: [ 4 ] C /C++ , Delphi , Frontier , Guile , Java , Lisp , Microsoft .NET , Perl , PHP , Python , Real Basic , Rebol , Tcl , WebObjects e Zope .
Algumas implementações conhecidas são:
- Apache XML-RPC , [ 5 ] uma implementação em Java.
- XMLRPC-EPI , [ 6 ] uma implementação em C.
- XML-RPC-C , [ 7 ] uma implementação para C e C++.
Referências
- ^ Simon St. Laurent , Joe Johnston , Edd Dumbill . (Junho 2001) Programando Web Services com XML-RPC O'Reilly. Primeira edição. Prefácio de Dave Winer. (em inglês)
- ↑ Dave Winer. (31 de março de 2001). Atenção: Uma diferença fundamental entre SOAP e XML-RPC UserLand Software, Inc.
- ↑ Dave Winer. (15 de junho de 1999) Especificação XML-RPC Arquivado em 15 de junho de 2007, no Wayback Machine . UserLand Software, Inc.
- ↑ Dave Winer. (17 de dezembro de 2003) Implementações XML-RPC UserLand Software, Inc.
- ↑ Fundação de Software Apache . Apache XML-RPC (em inglês).
- ↑ Epinions, Inc. XMLRPC-EPI sourceforge.net.
- ↑ Eric Kidd. XML-RPC para C e C++ sourceforge.net.
Veja também
Portal: Computação . Conteúdo relacionado ao computador .- SABÃO
- IDL
- XML
- RCP
Links externos
- Site Oficial XML-RPC , UserLand Software, Inc. (em inglês)
- Extensões XML-RPC