froscon2009 - 1.0

Free and Open Source Software Conference

Thilo Fromm
Pieter Hintjens
Day Day 1 (2009-08-22)
Room HS3
Start time 16:30
Duration 01:00
ID 344
Event type Lecture
Track Cloud Computing
Language used for presentation English

RestMS - a RESTful messaging service

How and why to make a new protocol for the cloud

Message brokers, connecting applications to services, are components of strongly emerging importance in a scalable web infrastructure. Although several approaches for providing messaging are around, they lack of simplicity, flexibility and extensibility to use them in today's web applications. RestMS brings full scale message brokerage to web application infrastructures.

Message brokerage, or Message Oriented Middleware, provides a communication infrastructure for distributed application architectures, spanning over many heterogeneous systems. Message brokers connect applications to services instead of having them talk to servers, thereby enabling the whole architecture to be more dynamic in terms of application and service capability and availability. Brokers provide message routing, distribution, and filtering for distributing information between parts of an application infrastructure. They work data-centric (in contrast to the code flow centric operation of, e.g., remote procedure calls), caring all about information flow between applications.

With emerging scalability requirements of today's application infrastructures, several approaches have been made to provide messaging for applications. The lack of a simple, flexible and powerful standard, however, is so apparent that the Wikipedia article about message oriented middleware has a whole section about it [1].

The SOAP Web Service Resource Framework provides WS Notifications, which might be utilized to build a message broker. WS Notifications, however, simply defines formats of messages, but does not define a system for distributing them (i.e. route, filter, multiply). It is code-centric and incredibly complex, as SOAP standards tend to be. AtomPub and XMPP (XEP-0060) have message passing and PubSub, however, they don't provide server side filtering and routing, as they are meant to solve a different kind of problem. Then there is a whole bunch of binary level protocols, as AMQP, 0MQ, and friends. Their binary nature on the wire level makes them hard to use from web applications in a generic way.

The talk will introduce RestMS. RestMS is a messaging protocol which provides full scale message brokerage via a simple and generic RESTful (HTTP) interface. It focuses on being lightweight, scalable and highly dynamic. RestMS is a free and open specification; contributions and extensions are welcome.