$Id: README,v 1.11 2002/08/02 14:54:50 kmacleod Exp $
Frontier::RPC
A Perl 5 module for performing Remote Procedure
Calls using Extensible Markup Language
Ken MacLeod
ken@bitsko.slc.ut.us
With contributions from
Nick Bauman, Laurent Bossavit, Sean Brown, Jon Frisby,
Ed Hill, Joe Johnston, Skip Montanaro, Tim Peoples, John Posner,
Aaron Ross, Bas Schulte, Marc Singer, and Terry Triplett
(Unofficial patch from Jeff Buchbinder)
INTRODUCTION
Frontier::RPC implements UserLand Software's XML RPC (Remote
Procedure Calls using Extensible Markup Language). Frontier::RPC
includes both a client module for making requests to a server and
several server modules for implementing servers using CGI, Apache,
and standalone with HTTP::Daemon.
See the file Changes for user-visible changes. See the `examples'
directory for an example of using Frontier::RPC. See the
``XML RPC: Home Page'' for more information on XML RPC.
Newer versions of this module can be found on CPAN or at
. Questions can be
directed to the discussion board on XML-RPC.com or to the XML-RPC
mailing list. To join the XML-RPC mailing list visit
.
Copyright (C) 1998-2002 Ken MacLeod
Frontier::RPC is distributed under the same terms as Perl.
OVERVIEW
RPC client connections are made by creating instances of
Frontier::Client objects that record the server name, and then
issuing `call' requests that send a method name and parameters to
the server.
RPC daemons are mini-HTTP servers (using HTTP::Daemon from the
`libwww' Perl module). Daemons are created by first defining the
procedures you want to make available to RPC and then passing a
list of those procedures as you create the Frontier::Daemon
object.
The Frontier::RPC2 module implements the encoding and decoding of
XML RPC requests using the XML::Parser Perl module.
Apache::XMLRPC serves XML-RPC requests from Apache's mod_perl.
Frontier::Responder serves XML-RPC requests as a CGI script.
QUICK USAGE GUIDE
Frontier::RPC converts between XML-RPC s and Perl hashes,
s and Perl arrays, and all others XML-RPC types to Perl
scalars.
To call an RPC server, use Frontier::Client:
use Frontier::Client;
$server = Frontier::Client->new(url => $url);
$result = $server->call($method, @args);
$url is the URL of the XML-RPC server, like
`http://betty.userland.com/RPC2', $method is the XML-RPC procedure
name to call, and @args is a list of hashes, arrays, or scalars to
pass to the procedure. See `examples/states-client.pl' for an
example of an XML-RPC client.
To create an XML-RPC server, use Frontier::Daemon.
Frontier::Daemon is a subclass of HTTP::Daemon, so takes all the
options that HTTP::Daemon takes for setting up a server, such as
the port number. In addition, Frontier::Daemon takes a `methods'
option that is a hash containing the RPC procedure names and
references to Perl subroutines:
use Frontier::Daemon;
Frontier::Daemon->new(methods => {
'rpcName' => &sub_name,
});
The subroutines get called with the XML-RPC parameters as hashes,
arrays, and scalars. See `examples/states-daemon.pl' for an
example of an XML-RPC server.
INSTALLATION
Frontier::RPC requires the following Perl modules from CPAN, if
not already included in your installed Perl:
Data-Dumper (in the Data directory)
MIME-Base64 (in the MIME directory)
MD5 (in the MD5 directory)
HTML-Tagset (in the HTML directory)
HTML-Parser (in the HTML directory)
URI (in the URI directory)
libnet (in the Net directory)
libwww-perl (in the HTTP directory)
XML-Parser (in the XML directory)
Frontier::RPC installs as a standard Perl module
perl Makefile.PL
make
make test
make install