The XML-RPC Standard
Overview
XML-RPC is a simple protocol for carrying out remote proceedure calls (RPC) over TCP/IP. It uses two standards of the internet, Hypertext Transfer Protocol (HTTP) and eXtensible Markup Language (XML) to create a standard way of calling remote web services and receiving a response. The best place to learn about XML-RPC is at its website www.xmlrpc.com which is maintained by XML-RPC's champion Dave Winer.
The XML-RPC specification is located here.
Figure 1 shows a simple diagram showing the process of calling a remove server with an XML-RPC call.

Figure 1 - Overview of XML-RPC
XML-RPC is in effect a modified early draft of the Simple Object Access Protocol (SOAP) and is much simpler and less political. Whilst everyone fights over the specification for SOAP and tries to build their own proprietory "enhancements", XML-RPC remains refreshingly constant and open. XML-RPC implements RPC in a simple way without the additional overhead of SOAP. You get 95% of SOAPs functionality with much less hassle.
History
The history (or is that histories !) of XML-RPC appears to be contentious so its best to hear it from the horses mouth, so to speak; read Dave Winer's History of XML-RPC.
How vbXMLRPC.dll implements XML-RPC
First read the XML-RPC specification.
vbXMLRPC.dll implements XML-RPC in an intuitive way, hiding enough of the nasty implementation stuff without going too far. XML-RPC consists of a request (see Figure 1) sent to a server which is modeled in vbXMLRPC.dll as an XMLRPCRequest object. The server responds with a response which is modeled as an XMLRPCResponse object.
Figure 2 shows the process of building a request - note, many methods and properties are removed from the class diagrams for clarity. Parameters are added to the request before it is sent to the server using a property of the XMLRPCRequest object called Params, these parameters are modeled as an XMLRPCParams object. By using one of the eight Add... methods of the XMLRPCParams object, values are added to the parameters of the request. The values are modeled by XMLRPCValue objects. Use the Submit method of the XMLRPCRequest object to submit the request to the remote server. This method also returns an XMLRPCResponse object with the response from the remote server.

Figure 2 - Building an XML-RPC Request with vbXMLRPC.dll
The XMLRPCValue object models the eight types of value in the XML-RPC specification. See the value types enumerated list for more information on the types available. Six of the data types (Base64, Boolean, DateTime, Double, Integer and String) are simple, however, there are two complex types (Array and Struct) that are modeled with their own classes (XMLRPCArray and XMLRPCStruct).
The XMLRPCArray is analagous to a Visual Basic collection, it can be a collection of other values of any of the eight types, an array type can contain more than one type of value. The XMLRPCStruct type is similar to an array type, however, every item in the collection also has a name to identify it. The name / value pair is refered to in the XML-RPC specification as a member of the struct and in the vbXMLRPC.dll is modeled by its own object, the XMLRPCMember.
Figure 3 shows the process of decoding a response - note, many methods and properties are removed from the class diagrams for clarity. When an XMLRPCResponse object is returned from the Submit method of the XMLRPCRequest object the Status property is set to a value which indicates how the response has been received and decoded. If the remote proceedure call has successfully completed, the parameters returned from the call are stored in an XMLRPCParams object. Using the Item method of the XMLRPCParams object, the indvidual XMLRPCValue objects can be decoded to get the information from the response.

Figure 3 - Decoding an XML-RPC Response with vbXMLRPC.dll
Resources
Please find below some resources on XML-RPC which you may find usefull:
|