Extending Restful Services

Restful service implementations are a lightweight alternative to Service that implement the SOAP stack. The former use CRUD (Create, Read, Update, Delete) operations on resources. However, the mapping between Service operations to GET, POST, PUT, DELETE is not always clear. In particular, idempotent operations (e.g., calculating the square root of a value) are not well mapped on Restful services.

Thus, in this Praktikum/Bachelor Thesis, an extension to the CRUD vocabulary should be implemented, which maps verbs, i. e., operations of services to an extension of the HTTP protocol. The example below shows how the proposed extension works for calling the translate method of a Translation Service:

MESSAGE translate HTTP/1.1
Resource: Translation
Host: www.ikangai.com
User-Agent: Mozilla/4.0
Content-Length: ...
Content-Type: text/xml; charset=utf-8

<text>Lorem ipsum</text>

In this example, MESSAGE is a combination of GET (accessing a resource) and POST (posting data to a resource). In contrast to GET, MESSAGE contains a (XML) payload which is sent to the service. This is similar to POST, but unlike POST, MESSAGE does not necessarily change the state of a resource and thus MESSAGE acts like GET.

Existing implementations Web servers can either be extended (e.g., a module for Apache) or a simple Web server can be written from scratch. In the latter case, the Web server should be able to be executed on mobile platforms (e.g., Android) as well.

Tools to use:

Java related tools (Eclipse, Netbeans, …)

Research Area:

Internet of Services, Restful Services, Mobile Services


Martin Treiber

, , , , , ,
  • Delicious
  • Facebook
  • Digg
  • Reddit
  • StumbleUpon
  • Twitter

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>