Skip to content.

Manageability

Sections
Personal tools
You are here: Home » blog » stuff » Brainstorming a ReSTful Toolkit
Views
  • State: published

Brainstorming a ReSTful Toolkit

Document Actions

We are now beginning to see a pent up and unfulfilled demand for anything ReSTful. Demand may imply opportunity, therefore with no time to lose, how does one build a toolkit for ReST? Naturally, one can remark that ReST is too simple as to obviate the need for a tool kit that's because everything can be done by hand with existing tools. However, let's suspend judgement for a moment and try to brainstorm a toolkit for developing ReSTful applications.

To confine the scope of the discussion, let's try to imaging a pure Java solution that's based on Eclipse. The target audience of these tools are corporate developers and not people who can cobble things together with spit and wire. Furthermore, the reason its Eclipse based is because you want to essentially ride its coatails.

The second constraint is that the library must exist and must be open source. That's because we're cheap and can't afford to develop it ourselves. Now there are plenty of open source solutions in the Java space however the challenge is to figure out which combination of libraries would allow you rapidly build to build ReSTful applications.

In otherwords, this toolkit is a rapid application development toolkit for developing ReSTful application. So if we could imagine a scenario where a developer would simply define his model and with a few clicks automagically generate a ReSTful application. That is an application with all the interoperability and scalability aspects of a ReSTful application.

There are several guidelines available on the web that help you build ReSTful applications, however we would like to be able to capture these guidelines in software. These would allow developers unfamiliar with the principles to develop compliant and conformant code. This implies the need for some high level easy to comprehend conceptual model form the basis of coding (fortunately j2se 5.0 annotations work very well for this).

So let's begin first with the architectural aspects in ReST and see what tools are available to support them. The five primary architectural constraints of ReST are as follows:

  • Resource is unit of identification
  • Resource is manipulated through exchange of representations
  • Resource-generic interaction semantics
  • Self-descriptive messaging
  • Hypermedia is engine of application state
  • So for the first feature we need some kind of document repository that helps us easiliy manage resources and the identification thereof. One can start by selecting from a list of document repositories.

    Second, one will need some kind of message transform pipeline capability to manage the creation of representations. You can select from a collection of transformation engines.

    Third, one needs some kind of infrastructure to support the development of complex interactions. One may start with workflow engines, or one can begin with agent technologies.

    Fourth, we need some mechanism for creating self-descriptive messages. One could possibly leverage existing open source knowledge management tools to support the creation of semanticweb based messages.

    Fifth, one needs some kind of state interpreter that would manage state at the client side.

    Last but not least one would need to tie all these libraries together under a unified conceptual programming model and a unified Eclipse toolset. These are just some broad strokes at the arriving at the solution. I'm sure there are lot of fundamental difficulties. However I am most interested in stimulating discussion on this matter. So now that I've given you a menu to select from, let me know what your selections are and potentially by virtue of the LazyWeb we could make this a reality. To time-box the effort so that we don't get mired in endless debate, the complete feature set should be available within 2 weeks and packaged and shipped by the end of March.

    So as not to develop inside a vacuum, this toolkit should demo the implementation of a shared bookmark manager like del.icio.us in 10 minutes. In addition it should demo an implementation of HTTPLR done within 20 minutes of effort.

    Venture Capitalists, you're all welcome to throw some unspent cash on this venture!


    Last modified 2007-10-03 07:04 AM

    NetKernel

    Posted by Anonymous User Anonymous User at 2005-03-13 02:07 PM

    Hey Carlos, seen http://www.1060research.com/netkernel/index.html? I am always the last to discover things.

    All it lacks is an Eclipse interface for building to its model. I can see building a little model builder UI for it. Otherwise I think it meets your requirements.

    I mentioned them last week http://hughw.blogspot.com/2005/03/netkernel-restful-application-server.html. They're not all that new, just new to me. I think we'd all profit if they could capture a little mindshare from REST architects.

    Hughw

    Restlet

    Posted by Anonymous User Anonymous User at 2005-11-30 09:45 AM

    I've released a new REST framework for Java. Please check restlet.org

    Jerome

     

    Powered by Plone

    This site conforms to the following standards: