Library/Class Design

These classes were designed to follow the same usage pattern established by Macromedia in the design of the the Flash Remoting classes for Flash MX 2004 ActionScript 2.0, which in turn (at least from what I can tell) follow the design of the ActionScript 2.0 web service classes provided with Flash MX 2004 Professional. The reason I chose to design the implementation in this way is that the implementation pattern should be familiar for anyone who has used (or read about) those methods of accessing remote data. Conversely, once you have learned to use these classes, you should find it straightforward to use the Remoting or web service classes as well.

A note on terminology

In this documentation and in the code, I use the term “service” or “XML-RPC service” to refer to a set of one or more XML-RPC methods which are available at the same url and using the same method “prefix.” This term is used first of all as a convenient term to describe a set of remote methods, and secondly in order to be approximately consistent with terminology used when discussing SOAP web services and Flash Remoting services, in case you have experience with either or both of them. For example, a hypothetical url “http://example.com/RPC2” might expose several XML-RPC remote methods, with names such as “math.sum”, “math.subtract”, “weather.getForecast”, and perhaps others. In that case, we would say that the url provides two “XML-RPC services” (as the term is used in this documentation), one service named “math” with methods “sum” and “difference”, and another service named “weather” with a single method “getForecast”. In essence the “service name” is the portion of the method name before the period, and the method name itself is the portion following the period.

For example, this could be compared to the pattern used in Flash Remoting, where a single gateway url can have multiple Remoting services available, each with one or more methods. See the section on “Basic use” and the API documentation on the com.probertson.xmlrpc.Service class constructor for further discussion.