Published: February, 15th 2008 HiveBoard
The online shared WhiteBoard Logo


Before starting HiveBoard, I had already worked, more than one year ago, on a shared whiteboard system, written entirely in Java, and based on CORBA for communication. I was quite satisfied with the visible results, but not so enthusiastic about the quality of design and the lack of documentation (no technical documentation such as architecture, javadoc... no user documentation as well). One additional problematic point was that the use of CORBA made it very difficult (not to say impossible) to use the system through a firewall.

Thus I started to think about creating a new project with the same purposes but with:

  • a sound architecture and design (in particular, use of a lightweight container)
  • a maximum reuse of useful OSS libraries (lightweight container, data access libraries, remoting protocols libraries...) to reduce the amount of effective source code to produce
  • a communication transport allowing for firewall pass-through
  • easy extensibility of graphical tools

In September 2004, I discovered the HiveMind lightweight container and found it very powerful and easy to use, but it did not have much "hype" (all hype is around Spring, but I am not a Spring addict). Thus the idea came to my mind to build a "real life" end-user application based on HiveMind and I thought the shared whiteboard system was a very good example, thus I seriously started thinking about it.

Since, this time, I did not want to write "low-level" code, I tried to find OSS libraries to relieve me of much of the boring work; there are several. However, HiveMind is still young and does not integrate well with other third-parties libraries, so I started other projects, prior to HiveBoard, to bring HiveMind the necessary support for writing any "serious" application:

  • HiveTranse: transparent transaction management and integration of data access libraries (such as Hibernate and iBATIS)
  • HiveLock: security (authentication & authorization) management, plus several utilities (in particular a "user" ServiceModel for HiveMind, enabling the creation of stateful services)
  • HiveRemoting: integration of the Hessian and Burlap protocols (by Caucho) into HiveMind for both client and server access

At the end of December 2004, those 3 projects were quite advanced and thus I already had the foundation for the HiveBoard project that started right away.

Then during the 1st four months of 2005, I went on working on these utilities and added more common HiveMind utilities:

  • HiveUtils: several general utilities for HiveMind-based applications
  • HiveEvents: easy to use event notification framework
  • HiveGUI: utilities dedicated to rich client application building

All those HiveMind modules are now gathered under the HiveMind Utilities project on SourceForge.

After heavy work during 4 months, I could finally produce a sufficiently advanced system to release under version 0.1.0.