NAME

Hessian::Client - RPC via Hessian with a remote server.

SYNOPSIS

 use Hessian::Client;

 my $client = Hessian::Client->new(
    version => 1,
    service => 'http://some.hessian.service/.....'
 );

 # Alternatively
 my $client = Hessian::Client->new(
    version => 2,
    service => 'http://some.hessian.service/.....'
 );

 
 # RPC 
 my $response = $hessian->remoteCall($arg1, $arg2, $arg3, ...);

DESCRIPTION

The goal of Hessian::Client and all associated classes in this namespace is to provide support for communication via the Hessian protocol in Perl.

Hessian is a binary protocol optimized for communication in situations where it is necessary to preserve bandwidth such as in mobile web services. Due to the concise nature of the API, implementations of the Hessian protocol can be found in several languages including Java, Python, Ruby, Erlang and PHP. For some reason, till now there has been no implementation in Perl.

For a more detailed introduction into the Hessian protocol, see the main project documentation at http://www.caucho.com/resin-3.1/doc/hessian.xtp and http://hessian.caucho.com/doc/hessian-ws.html.

Hessian::Client implements basic RPC for Hessian. Although currently only tested with version 1, communication with version 2.0 servers should also work. I am currently looking for publicly available or otherwise accesible Hessian services for testing.

I probably should note that although the package was submitted under the name Hessian::Client, the real work is actually done in Hessian::Translator and its associated subclasses and roles. In fact, I will most likely change the package name to Hessian::Translator and submit this as a separate module at some point in the near future.

INTERFACE

new

Arguments
version

1 or 2 representing the respective version of Hessian the client should speak.

service

A url representing the location of a Hessian server.

BUILD

Not part of the public interface. See Class::Std documentation.

AUTOMETHOD

Not part of the public interface. See Class::Std documentation.

Note: Any method called on the client that is not defined in the public interface (so anything other than "new") will be processed into a Hessian call and posted to the service.

TODO

  • Testing with a Hessian 2.0 service. If anyone out there would be interested in helping with this I would be very grateful.

  • Work on messaging. RPC is only part of the Hessian protocol.

  • Make a POE filter for this perhaps.