(December 18, 2008) iMatix has published the first draft of the RestMS specifications yesterday on wiki.amqp.org. RestMS offers a simple RESTful mapping to AMQP, allowing for the first time HTTP bridging to AMQP networks.
iMatix CEO Pieter Hintjens explains: "AMQP, while a powerful technology, is difficult for many developers to understand and use. At iMatix we aim to make complex technology simpler, more accessible, and more widespread. We have been working on making AMQP work over HTTP, and RestMS is the first concrete result of that work."
RestMS - the RESTful Messaging Service - is an open specification, published on the AMQP wiki. iMatix hopes that other vendors will adopt RestMS. As Hintjens explains, "REST is a robust, scalable model for connecting clients and servers, and AMQP is a clean decoupled model for connecting publishers and subscribers. The combination should be a killer."
iMatix is working on its own RestMS implementation, called Zyre. To use Zyre, application programmers need only a HTTP client library. Hintjens explains: "in Perl, Python, Ruby, C, Java, C#, even COBOL: it's a matter of a few lines of code to connect to Zyre, create messaging resources, and publish or receive messages. Developers don't need special AMQP clients: they use plain HTTP GETs, PUTs, DELETEs, and POSTs, using the special RestMS URI syntax."
As well as eliminating the need for special AMQP clients, RestMS solves the problem of AMQP security over the Internet. Hintjens concludes, "there are perfectly good solutions for authentication and encryption, using HTTPS, private certificates, and so on. Rather than reinvent the wheel, RestMS lets us use existing security technology where it matters, on public Internet networks, combined with simpler, faster AMQP security for internal networks."
The RestMS specification is currently in draft and comments are welcome, either on the openamq-dev mailing list, or on the specification page. Contributors to the specification will be welcome.