Posts tagged rest

I just released Conzilla 2.2.2 together with Collaborilla 1.1. The biggest improvement of these versions is the switch to RESTful web services, which makes it finally possible to access Collaborilla even in very restrictive networks – the new services use standard HTTP port 80 which shouldn’t be a problem anymore. To make the picture complete, I also added support for HTTP proxies, so there is no excuse anymore for not being able to use Conzilla.

The noteworthy changes since version 2.2.1:

Support for Collaborilla 1.1 and the new RESTful web services

Support for connections through HTTP proxies

Possibility to conditionally empty the disk caches

Fix for problem on MacOS which prevented to open URLs in web browsers

Fixed some NullPointerExceptions

Go and get it. Or if you already have an older version: just launch it via Java Web Start, the upgrade should then take place automatically.

I just ran into a very useful addon for Firefox: Poster. It opens in the sidebar and allows for sending basic HTTP-commands with custom headers and message body to web services. Very nice, especially when developing RESTful services.

One described approach is to include the data as MIME or Base64 encoded CDATA blocks. Another possibility is to attach the binary data outside the SOAP message (like it is done in emails). Finally the author talks about SOAP Message Transmission Optimization Mechanism (MTOM), which is supposed to fix the problem.

Well, MTOM has to be understood by the server and the client, which means we have to find a proper implementation etc. Why all this hassle? If it is necessary to send such data, it would perhaps make sense to think of using a Resource-Oriented Architecture (ROA) like RESTful Web Services. This doesn’t mean that it is necessary to switch over completely from a SOA to a ROA, but both techniques could complement each other in RPC-heavy systems. In other cases I would try to avoid using SOAP and focus on resources instead.

Today our research group had, together with some people from Uppsala Learning Lab and IML at Umeå University, a very giving all-day workshop on AJAX and the toolkit Dojo in particular. My colleague Matthias Palmér was talking first about existing approaches for realizing modern web-based applications in general and focused later on the architectures ReST and AJAX. The whole day culminated in doing some hands-on stuff, which means hacking together small applications using Dojo, just for the sake of getting a feeling for how it works or at least how it is supposed to work.

For me it was pretty new terrain. Having done some decent JavaScripts before, the “AJAX using Dojo approach” opened up a load of new possibilities on “how to do things differently” [tm]. Dojo is a powerful toolkit for simplifying such advanced web programming, and I guess I will be using it in a number of applications and prototypes. One of the first (and an important one as well) will be a web-based lightweight version of the concept browser Conzilla. Lightweight means that it will not have any editing support as we know it from the fully-featured Java application. At least not from the beginning. The main purpose will be easy and embeddable presentation of context-maps in different kinds of web documents.

Matthias already developed a prototype which is able to render context-maps directly in the browser. I’m working right now on a Restlet which supports dynamic creation of JSON-data which will be fed into the AJAX client. This will be the foundation of the web-based Conzilla client. Watch out for news on this topic!