border shadow

The Jabba Embedded Micro Webserver (1999)

Easy adaptable web interface for any device at low cost.

Project thesis 1999/2000, ETH Z├╝rich and Mettler Toledo, Greifensee.

Thomas Zwicker, Lukas Karrer and Thomas Moser.


Devices like balances or coffee-machines are going online in near future. Designed for point-to-point communication or no interface at all, special innovation is needed to use todays Internet technology with these appliances.

The main problems are:

  • needed know-how for development
  • long development cycles
  • communication delays over network
  • firewalls limit range

The JABBA solution

  • easy adaptation to any device
  • quick development
  • different levels of programming: Java application, Java API and C++ firmware.
  • realtime control
  • simple configuration via RS232 or web
  • small size, low power
  • low-cost

How it works

When interacting with an appliance, your web browser connects via Internet to the web server implemented on JABBA. It downloads a Java applet. The applet, which runs on your workstation, uses a very simple protocol to `talk' to your appliance via JABBA. The applet controls your device.

Using HTML pages and Java applets stored on JABBA's web server are not the only possibility to customize JABBA. The UserProcess is a layer of software which lies between device and web server. It can further enhance JABBA's functionality.

The Jabba Micro Webserver disassembled to show off its size (ruler in cm), on the right the serial interface, on the left the ethernet and controll leds. The right image shows a closer view of Jabba from the ethernet connector side.


The applets are written, compiled and uploaded to the Jabba - Box from any workstation, all you need is a Java Developers Kit. The necessary uploading tools are Java applications, which makes them platform independent as well. The userprocess has to be crosscompiled and uploaded. This makes together a simple development platform.


Applets are not only used to visualize data, they are also the console for the user. All the wide variety of assistants to make a GUI may be used to have a good looking frontend to your appliance.

Controlling your machine is made easy by using the JABBAhttp-class. This class provides the methods to communicate with JABBA, without getting into the details of network programming. Data distribution may be done by the userprocess on JABBA or by polling from clients.


The userprocess interfaces JABBA to your machine. The JABBA idea is to do machine specific operations in the Java applet on the client without modification to the UserProcess. The userprocess can be enhanced to accomplish device specific tasks. Here a few possible examples:

  • realtime control
  • timestamping requested result, to compensate for network delay
  • open a TCP or UDP connection on its own, rather than just react on requests. This achieves an interrupt capability.
  • provide a continous stream of data to the client using proprietary protocols
  • evaluation and compression of collected data prior to transmission
  • send out e-mails requesting machine maintenance


All docs currently available (german only):