jump to navigation

Restlet covered by ComputerWeekly December 24, 2006

Posted by Jerome Louvel in Restlet General.

Recently, an article from Lindsay Clark came to my attention. It is interesting in the sense that it provides original feed-back on usage of Restlet by NeoWorks, a consulting company based in London, to develop a new version of the Science Photo Library.

Bola Rotibi, a senior analyst at Ovum, also explains the positionning of Restlets, an open source solution aiming to remove the pains in developing web services by removing the need to understand HTTP.



1. Avi Flax - December 26, 2006

So, the Lindsay Clark article has a major error in the second paragraph, right? That the project “aims to give developers an easier way to use Soap” – that’s not right… right? Soap? What?

Maybe the error is derived from this statement by Bola Rotibi: “…Restlet enables developers to handle XML and remote procedure, which are needed for building web services, in a way that avoids having to understand the complexity of Soap and HTTP.”

Perhaps she’s confusing Restlet and REST. Either way, this quote bothers me: I like REST because it’s not Soap, and because it does’t mask the simple elegance of HTTP – while I’m not sure about Restlet itself, I feel that REST is best practiced by those who do understand HTTP.

2. Jérôme Louvel - December 26, 2006

Hi Avi,

That’s true, the second paragraph is not correctly explaining that Restlet is based on REST/HTTP and is in fact an (easier) alternative to SOAP-based Web services.

I agree that it definitely helps to understand HTTP in order to properly implement the REST style. However, the HTTP specification has several layers, some discussing low-level aspects (persistent connections, pipelining, syntax, etc.) and other discussing higher-level aspects (methods, status, application-level headers, etc.).

The Restlet API aims to present the higher-level aspects into a simple object-oriented API, without loosing any important information. The API tries to preserve the REST/HTTP/URI names and concepts, and to hide the lower-level details inside HTTP connectors or inside the API implementation classes. This abstraction even allows the usage of other ‘protocols’ with the same API (FILE, JDBC, SMTP, etc.).

3. Avi Flax - December 26, 2006

Jérôme, that makes a lot of sense. Now that you’ve said it, it’s quite clear.

So, this may not be the place, but… has anyone yet produced a simple, clear, step-by-step “Hello World” example of implementing Restlet – maybe with an introduction for Java newbies on dependencies? Last time I tried I couldn’t quite get anything working.

4. Jérôme Louvel - December 26, 2006

Avi, the Restlet tutorial has an “hello world” example:

As for the dependencies, we have added a “lib/README.txt” file recently that lists all the dependencies. That should help everything set-up.

BTW, we are very close from 1.0 RC1. From this point we will focus much more energy into adding better documentation. The API wasn’t stable enough so far to justify the investment.

5. Avi Flax - December 26, 2006

Jérôme, that’s great! I’m excited for the release candidate and by the prospect of better docs. As for the example you linked: for me, it’s close but no cigar.

First, the steps needed to put that code in place aren’t there. This is mostly due to my unfamiliarity with J2EE apps. But where do I put this file? What do I name it? How do I run it? I think Restlet would benefit from having a tutorial of this type available.

Second, the code snippet itself has a few too many caveats attached. Basically they say, this isn’t really how you should use Restlet. But that’s exactly what I want to know – how should I use Restlet!?

Hope you don’t think I’m being overly critical here – I really am interested in and excited about Restlet – just trying to help, basically.


6. Jérôme Louvel - December 26, 2006

Avi, you don’t need any J2EE server in order to run those examples, just a JRE/JDK as you can rely on our standalone HTTP server connectors instead of using the Servlet adapter.

The source code of tutorial examples is available in the distribution under this directory:

Your feed-back helps, please join the discussion list and enter bug/RFE reports if needed. The current tutorial is too condensed for beginners and we are currently working to address this.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s