he Burlap/Hessian protocol is an alternative remote object invocation and Web services protocol supplied as an open source Java framework through Caucho Technology
. If you want POJO (Plain Old Java Objects)-based object distribution, efficient serialization, distributed Java objects that hardly need a Web container, maximal ease of use, and a minimal learning curve, then you should give Burlap/Hessian a serious look. Although primarily a Java remote object invocation protocol, it offers stable implementations for C++, C#, Python, and PHP as well.
I first ran across Burlap/Hessian while working with the Spring framework. Its exceptional simplicity and efficiency inspired me to write this article. I begin with an explanation of how the protocol works, follow that with a demonstration for establishing a Hessian-based distributed architecture, and close with some practical suggestions for how to use the protocol.
Burlap and Hessian are peer specifications of the same conceptual protocol. The major difference between the two is the implementation of the serialization mechanism. Burlap serializes objects over the Web using XML; Hessian serializes objects using a proprietary (very compact) binary format. According to its authors, the protocol's dull "textile" names reflect its boring simplicitywhich I find to be anything but boring.
Burlap/Hessian remote objects are just ordinary Java objects that implement some interfaces. They don't require special proxy, home, or remote classes. One of the inherent benefits of this object-and-interface model is that it promotes the good object-oriented design practice of design by interface. Design by interface mandates that client objects depend on abstractions and never on concrete classes.
Furthermore, the Burlap/Hessian protocol fully leverages the host environment's Web container capabilities. Hessian server is nothing more than a servlet that can dispatch Burlap or Hessian serialized objects via the Web. Hessian remote objects are configured in a web.xml file (as examples will demonstrate shortly).
As previously mentioned, Burlap/Hessian serializes Java objects using a proprietary serialization mechanism. The serialization process is completely transparent to the application (i.e., you do not need to implement any special interfaces to make objects serializable). Burlap/Hessian serialization is very efficient, and the produced serialized object snapshots (either XML or binary) are very compact.