Hessian

From Resin 3.0

(Difference between revisions)
Jump to: navigation, search
(Objective-C)
 
(22 intermediate revisions by 4 users not shown)
Line 1: Line 1:
[[Category:Protocols]]
+
[[Category:Hessian]]
  
 
The Hessian binary web service protocol makes web services usable without
 
The Hessian binary web service protocol makes web services usable without
Line 10: Line 10:
  
 
See http://www.caucho.com/hessian for the current downloadable Java versions.
 
See http://www.caucho.com/hessian for the current downloadable Java versions.
 +
 +
= The Hessian name =
 +
 +
Hessian was named after [http://en.wikipedia.org/wiki/Sack_cloth Hessian cloth], which is the British term for [[Burlap]], and the binary Hessian protocol derives from Caucho's XML Burlap protocol.
 +
 +
The name burlap was originally chosen since burlap is a practical, simple, and useful, but extremely ordinary material, reflecting the design goals for the two protocols.  Other RPC and web service protocols may strive for excitement and world domination; Hessian just gets things done.
 +
 +
= Hessian Java API Overview =
 +
 +
{{main|Hessian Java API Overview}}
 +
 +
=== Sample Java Client ===
 +
    String url = "http://www.caucho.com/hessian/test/basic";
 +
 +
    HessianProxyFactory factory = new HessianProxyFactory();
 +
    Basic basic = (Basic) factory.create(Basic.class, url);
 +
 +
    System.out.println("hello(): " + basic.hello());
 +
 +
= Specifications =
 +
 +
[http://www.caucho.com/resin-3.0/protocols/hessian-1.0-spec.xtp Hessian 1.0.1 spec]
 +
 +
[[Hessian 1.0 Grammar]] - quick, terse summary of the protocol
 +
 +
[[Hessian 2.0 Grammar]] - draft proposal for Hessian 2.0
  
 
= Language Implementations =
 
= Language Implementations =
Line 17: Line 43:
  
 
See http://www.hessiancsharp.org/
 
See http://www.hessiancsharp.org/
 +
 +
 +
 +
== Objective-C ==
 +
 +
{{main|Hessian: Objective-C}}
 +
 +
Byron Wright has released of Hessian for Objective-C at http://www.bluebearstudio.com/hessianobjc/
 +
 +
== Objective-C 2.0 ==
 +
 +
Fredrik Olsson of Jayway AB has released a Hessian implementation for Objective-C 2.0. For use with iPhone OS 2.0 and Mac OS X 10.5 and later.
 +
 +
{{main|Hessian - Objective-C 2.0 Implementation}}
 +
 +
See http://sourceforge.net/projects/hessiankit
  
 
== PHP ==
 
== PHP ==
Line 23: Line 65:
  
 
== Ruby ==
 
== Ruby ==
 +
 +
{{main|Hessian - Ruby Implementation}}
  
 
{{:Hessian - Ruby Implementation}}
 
{{:Hessian - Ruby Implementation}}
 +
 +
= Links =
 +
 +
[http://hessian.caucho.com http://hessian.caucho.com]
 +
 +
== Dinamica ==
 +
 +
Technical article about integrating Hessian with our
 +
open source J2EE framework "Dinamica"
 +
 +
[http://www.martincordova.com/docs/dinamica-hessian.pdf dinamica-hessian.pdf]
 +
 +
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 Framework ==
 +
 +
The [http://www.springframework.org Spring Framework]
 +
includes support for Hessian.  The [http://static.springframework.org/spring/docs/2.5.x/reference/remoting.html#remoting-caucho-protocols Spring Manual] provides an overview.
 +
 +
==RIFE==
 +
 +
[http://rifers.org/ RIFE] 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 [http://rifers.org/wiki/display/RIFE/Support+for+Hessian+web+services support
 +
for Hessian web services].

Latest revision as of 19:18, 8 July 2009


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.

Contents

Hessian Downloads

See http://www.caucho.com/hessian for the current downloadable Java versions.

The Hessian name

Hessian was named after Hessian cloth, which is the British term for Burlap, and the binary Hessian protocol derives from Caucho's XML Burlap protocol.

The name burlap was originally chosen since burlap is a practical, simple, and useful, but extremely ordinary material, reflecting the design goals for the two protocols. Other RPC and web service protocols may strive for excitement and world domination; Hessian just gets things done.

Hessian Java API Overview

Main article: Hessian Java API Overview

Sample Java Client

   String url = "http://www.caucho.com/hessian/test/basic";

   HessianProxyFactory factory = new HessianProxyFactory();
   Basic basic = (Basic) factory.create(Basic.class, url);

   System.out.println("hello(): " + basic.hello());

Specifications

Hessian 1.0.1 spec

Hessian 1.0 Grammar - quick, terse summary of the protocol

Hessian 2.0 Grammar - draft proposal for Hessian 2.0

Language Implementations

.NET C#

Microsoft .NET compatible version of HessianC# is available under the LGPL by Dimitri Minich, Vitaliy Byelyenkiy and Andre Voltmann

See http://www.hessiancsharp.org/


Objective-C

Main article: Hessian: Objective-C

Byron Wright has released of Hessian for Objective-C at http://www.bluebearstudio.com/hessianobjc/

Objective-C 2.0

Fredrik Olsson of Jayway AB has released a Hessian implementation for Objective-C 2.0. For use with iPhone OS 2.0 and Mac OS X 10.5 and later.

Main article: Hessian - Objective-C 2.0 Implementation

See http://sourceforge.net/projects/hessiankit

PHP

A PHP implementation of Hessian is available under the GPL at http://hessianphp.sourceforge.net by Manolo Gómez.

Also see http://www.hessianphp.org/wiki/index.php

Ruby

Main article: Hessian - Ruby Implementation

Christer Sandberg has implemented a Ruby Hessian client at http://rubyforge.org/projects/hessian:

"I just wanted to inform you all that I have made another Ruby Hessian client. It has support for chunks for both strings, xml and binary data and it provides proper encoding and decoding for UTF-8."


Pankaj Mishra has implemented a Ruby Hessian client at http://sourceforge.net/projects/hessianruby under the LGPL.

Links

http://hessian.caucho.com

Dinamica

Technical article about integrating Hessian with our open source J2EE framework "Dinamica"

dinamica-hessian.pdf

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 Framework

The Spring Framework includes support for Hessian. The Spring Manual provides an overview.

RIFE

RIFE 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 [http://rifers.org/wiki/display/RIFE/Support+for+Hessian+web+services support for Hessian web services].

Personal tools