XML-RPC

CIS017-6 – Distributed and Parallel Architectures

PowerPoint – CIS017-6 – XML-RPC Introduction – April 2016

O’Reilly – Web Services Essentials – Chapter 2 – XML-RPC Essentials
From: Cerami, E. (2002) Web Services Essentials – Distributed Applications with XML-RPC, SOAP, UDDI and WSDL

Some XML-RPC Notes (2006)


XML-RPC

From Wikipedia (https://en.wikipedia.org/wiki/XML-RPC)

XML-RPC is a remote procedure call (RPC) protocol which uses XML to encode its calls and HTTP as a transport mechanism. “XML-RPC” also refers generically to the use of XML for remote procedure call, independently of the specific protocol. This article is about the protocol named “XML-RPC”.

History
The XML-RPC protocol was created in 1998 by Dave Winer of UserLand Software and Microsoft, with Microsoft seeing the protocol as an essential part of scaling up its efforts in business-to-business e-commerce. As new functionality was introduced, the standard evolved into what is now SOAP.
UserLand supported XML-RPC from version 5.1 of its Frontier web content management system, released in June 1998.
XML-RPC’s idea of a human-readable-and-writable, script-parsable standard for HTTP-based requests and responses has also been implemented in competing specifications such as Allaire’s Web Distributed Data Exchange (WDDX) and webMethod’s Web Interface Definition Language (WIDL). Prior art wrapping COM, CORBA, and Java RMI objects in XML syntax and transporting them via HTTP also existed in DataChannel’s WebBroker technology.
The generic use of XML for remote procedure call (RPC) was patented by Phillip Merrick, Stewart Allen, and Joseph Lapp in April 2006, claiming benefit to a provisional application filed in March 1998. The patent is assigned to webMethods, located in Fairfax, VA.

Usage
XML-RPC works by sending an HTTP request to a server implementing the protocol. The client in that case is typically software wanting to call a single method of a remote system. Multiple input parameters can be passed to the remote method, one return value is returned. The parameter types allow nesting of parameters into maps and lists, thus larger structures can be transported. Therefore, XML-RPC can be used to transport objects or structures both as input and as output parameters.
Identification of clients for authorization purposes can be achieved using popular HTTP security methods. Basic access authentication is used for identification, HTTPS is used when identification (via certificates) and encrypted messages are needed. Both methods can be combined.
In comparison to REST, where resource representations (documents) are transferred, XML-RPC is designed to call methods.

XML-RPC can be argued as simpler than SOAP because it

  • allows only one way to serialize methods, whereas SOAP defines multiple different encodings
  • has a simpler security model
  • does not require (nor support) the creation of WSDL service descriptions, although XRDL provides a simple subset of the functionality provided by WSDL

JSON-RPC is similar to XML-RPC.


XML-RPC.COM
(http://xmlrpc.scripting.com/)

Simple cross-platform distributed computing, based on the standards of the Internet.

“Does distributed computing have to be any harder than this? I don’t think so.” — Byte.

What is XML-RPC?
It’s a spec and a set of implementations that allow software running on disparate operating systems, running in different environments to make procedure calls over the Internet.
It’s remote procedure calling using HTTP as the transport and XML as the encoding. XML-RPC is designed to be as simple as possible, while allowing complex data structures to be transmitted, processed and returned.


XML-RPC Specification
(http://xmlrpc.scripting.com/spec.html)

Tue, Jun 15, 1999; by Dave Winer.
Last updated 1/21/99 DW

Overview
XML-RPC is a Remote Procedure Calling protocol that works over the Internet.
An XML-RPC message is an HTTP-POST request. The body of the request is in XML. A procedure executes on the server and the value it returns is also formatted in XML.
Procedure parameters can be scalars, numbers, strings, dates, etc.; and can also be complex record and list structures.


XML-RPC for Newbies
(http://scripting.com/davenet/1998/07/14/xmlRpcForNewbies.html)


XML-RPC TutorialXML-RPC Tutorial
(http://www.tutorialspoint.com/xml-rpc/)

Download the complete XML-RPC tutorial (PDF)

XML-RPC is the simplest XML-based protocol for exchanging information between computers across a network.
In this tutorial, you will learn what is XML-RPC and why and how to use it.

XML-RPC – Introduction
RPC stands for Remote Procedure Call. As its name indicates, it is a mechanism to call a procedure or a function available on a remote computer. RPC is a much older technology than the Web. Effectively, RPC gives developers a mechanism for defining interfaces that can be called over a network. These interfaces can be as simple as a single function call or as complex as a large API.

What is XML-RPC ?
XML-RPC is among the simplest and most foolproof web service approaches that makes it easy for computers to call procedures on other computers.

  • XML-RPC permits programs to make function or procedure calls across a network.
  • XML-RPC uses the HTTP protocol to pass information from a client computer to a server computer.
  • XML-RPC uses a small XML vocabulary to describe the nature of requests and responses.
  • XML-RPC client specifies a procedure name and parameters in the XML request, and the server returns either a fault or a response in the XML response.
  • XML-RPC parameters are a simple list of types and content – structs and arrays are the most complex types available.
  • XML-RPC has no notion of objects and no mechanism for including information that uses other XML vocabulary.
  • With XML-RPC and web services, however, the Web becomes a collection of procedural connections where computers exchange information along tightly bound paths.
  • XML-RPC emerged in early 1998; it was published by UserLand Software and initially implemented in their Frontier product.

Why XML-RPC ?
If you need to integrate multiple computing environments, but don’t need to share complex data structures directly, you will find that XML-RPC lets you establish communications quickly and easily.

Even if you work within a single environment, you may find that the RPC approach makes it easy to connect programs that have different data models or processing expectations and that it can provide easy access to reusable logic.

  • XML-RPC is an excellent tool for establishing a wide variety of connections between computers.
  • XML-RPC offers integrators an opportunity to use a standard vocabulary and approach for exchanging information.
  • XML-RPC’s most obvious field of application is connecting different kinds of environments, allowing Java to talk with Perl, Python, ASP, and so on.

XML-RPC HOWTO – What is XML-RPC?
(http://tldp.org/HOWTO/XML-RPC-HOWTO/xmlrpc-howto-intro.html)


XML-RPC HOWTO – Eric Kidd
(http://tldp.org/HOWTO/XML-RPC-HOWTO/)

About Apache XML-RPC
(https://ws.apache.org/xmlrpc/)

Apache XML-RPC is a Java implementation of XML-RPC, a popular protocol that uses XML over HTTP to implement remote procedure calls.

Version 3 of Apache XML-RPC is still compliant to the XML-RPC specification. However, the user may enable several vendor extensions are available, that greatly extend the power of XML-RPC:

  • All primitive Java types are supported, including long, byte, short, and double.
  • Calendar objects are supported. In particular, timezone settings, and milliseconds may be sent.
  • DOM nodes, or JAXB objects, can be transmitted. So are objects implementing the java.io.Serializable interface.
  • Both server and client can operate in a streaming mode, which preserves resources much better than the default mode, which is based on large internal byte arrays.

A Simple XML-RPC Client
(http://www.cafeconleche.org/books/xmljava/chapters/ch03s04.html)


perfectxml.comClient-Server Communication: XML-RPC in Java
(http://www.perfectxml.com/Oreilly/chapter.asp?row_id=11)

Chapter 3 (From Programming Web Services with XML-RPC)
ISBN: 0596001193
Author(s): Simon St. Laurent, Joe Johnston, Edd Dumbill (Foreword by Dave Winer)
June 2001

XML-RPC, a simple yet powerful system built on XML and HTTP, lets developers connect programs running on different computers with a minimum of fuss. Java programs can talk to Perl scripts, which can talk to ASP applications, and so on. With XML-RPC, developers can provide access to functionality without having to worry about the system on the other end, so it’s easy to create web services.


XML-RPC
(http://homepage.cs.uiowa.edu/~slonnegr/xml/10.XML-RPC.pdf)


YouTube Video – Web Services Tutorial 2 – Remote Procedure Call Tutorial
(https://www.youtube.com/watch?v=S1ZId7jBThQ&list=PLGLfVvz_LVvTYlvpEp3G4cUde-eux_6Pi&index=2)

Published on 21 Sep 2014
Get the Code Here : http://goo.gl/rq5NjJ