Resin Documentationapp server |
hessian binary web service protocol
The Hessian binary web service protocol makes web services usable without requiring a large framework, and without learning yet another alphabet soup of protocols. Because it is a binary protocol, it is well-suited to sending binary data without any need to extend the protocol with attachments. Caucho Technology has released this Hessian implementation under an open source license (the Apache license). Anyone may freely download, use, and redistribute the Hessian implementation. Java
Flash/Flex
PythonThe Mustaine project has taken over the Python port of Hessian at http://code.google.com/p/mustaine
.NET C#C# implementation of Hessian is available under the LGPL at Sourceforge by Dimitri Minich, Vitaliy Byelyenkiy and Andre Voltmann. RubyA Ruby Hessian client is available under the LGPL at Sourceforge by Pankaj Mishra. Christer Sandberg has implemented a Ruby Hessian client at http://rubyforge.org/projects/hessian. Objective C
Creating a Hessian service using Java has four steps:
The Service APIA Hessian service's API is just a plain old Java interface. public interface BasicAPI { public String hello(); } The Hessian protocol eliminates external API descriptions like CORBA IDL files or WSDL. Documenting a Hessian service API is as simple as providing the JavaDoc. Because Hessian is language-independent, the Java interface classes are not required for non-Java languages. For external languages, the Java interfaces serve only to document the service methods. Service ImplementationThe service implementation can be a plain-old Java object (POJO) or can extend HessianServlet to make the servlet-engine configuration trivial. public class BasicService extends HessianServlet implements BasicAPI { private String _greeting = "Hello, world"; public void setGreeting(String greeting) { _greeting = greeting; } public String hello() { return _greeting; } } The service implementation can also be a plain-old Java object (POJO), avoiding any dependency on HessianServlet. More details are at Hessian introduction and in the Hessian Service using Dependency Injection tutorial. Client ImplementationCreating a client is as simple as creating an API interface: String url = "http://hessian.caucho.com/test/test"; HessianProxyFactory factory = new HessianProxyFactory(); BasicAPI basic = (BasicAPI) factory.create(BasicAPI.class, url); System.out.println("hello(): " + basic.hello());
Developers building Hessian libraries for different languages may use the following public services on www.caucho.com for testing and experimentation. The tests are also available in the hessian-test.jar download for experimentation.
Wireformat Project: Mule integrationThe Wireformat Project, led by Ben Hood, has created a Hessian Mule Transport for the Mule ESB (Enterprise Service Bus) platform. DinamicaTechnical article about integrating Hessian with our open source J2EE framework "Dinamica" The article explains how to return disconnected recordsets (a Dinamica feature) using a Hessian service. In the example, a customer record, all its orders and the detail records for every order are returned using a single recordset and a very simple hessian service. Former MTS/COM+/VB6 programmers will recognize this technique. Spring FrameworkThe Spring Framework includes support for Hessian. The org.springframework.remoting.caucho JavaDoc provides an overview. RIFERIFE aims to offer a viable solution for rapid web application development in Java without being troubled by the complex implications of J2EE. RIFE offers an alternative approach to web application development and design. It builds upon the Java platform, but offers all required tools and APIs to implement and perform all common website related tasks in a fast, intuitive and consistent manner. RIFE has a page describing its support for Hessian web services. Apache CayenneApache Cayenne is an ORM tool which supports Hessian for transport of database objects between a client and server.
|