Fosdem 2009
-
Upload
pieterh -
Category
Technology
-
view
4.932 -
download
0
Transcript of Fosdem 2009
Boring, complex, painful
Messaging in the 21st Century
by Pieter Hintjens, iMatix Corporation
FOSDEM, 2009-02-07
What is SOA?
Slashdot comment #26489673:
> State Of the Art
> Sarbanes-Oxley Act
> State Of Alaska (you betcha)
> Seksueel Overdraagbare Aandoening
> Sega of America
Complex, Boring, Painful
It's good for the closed-source business
Keeps away competition, locks in clients
Messaging is the last big frontier
90% or more is closed source, locked in
Our goals:
Make it open
Make it simple
Change the market
Why Messaging?
Every big project invents messaging
Badly!
It's an easy question: connect A to B
The answer... not so easy
Addressing, queuing, reliability, transport
Costs of software, skills, investment
No-one has the right answers
Until recently...
Introducing AMQP
A general purpose messaging architecture
Replaces custom messaging everywhere
Replaces many proprietary products
An open protocol
Interoperation, competition, choice
Low cost, FOSS products
Designed by users, and small IT firms
So it's reasonably good
http://www.amqp.org
iMatix OpenAMQ
iMatix's AMQP server & client product
FOSS - of course!
Started in 2004 in parallel with AMQP
Reasonably fast - 500,000 msg/sec
Stable, comfortable under pressure
Built with iMatix Base2 metacode toolset
LOC:937,201 - MLOC:159,748 - MMLOC:68,801
http://www.openamq.org
Making it Simpler
Simplicity is the destination, not the start
AMQP is OK but can be improved
Protocol is too complex
We were learning when we made it
Architecture has some flaws
Queuing and routing is not easy
No real community
Process is opaque and exclusive
REST
The web's answer to SOAP and WS
RESTful pattern for messaging
Create-read-update-delete stuff on a server
Server-generated URIs for resources
Scalable, cacheable, simple
"Moving to pure HTTP allowed us to throw away the code for the XML-RPC service. (I love throwing away old code ;-)"
RestMS
G.P. messaging protocol for the web
It's AMQP, but RESTful
Works over plain HTTP (or HTTPS)
Cleans up the AMQP model
=> Feeds, Pipes, Joins, Messages
Speaks to AMQP servers
Free and open protocol
http://www.restms.org
RestMS example - client
POST /restms/domain/default
Content-Type: application/restms+xml
Slug: fortune
RestMS example - server
HTTP/1.1 201 Created
Content-Type: application/restms+xml
Location: http://host.com/restms/feed/fortune
Zyre
iMatix's RestMS server
Open source - of course!
Started in 2008 together with RestMS
Built on Base2, so multicore scalable
Currently part of OpenAMQ project
Acts as AMQPHTTP multiplexer
3,353 MMLOC
http://www.zyre.com
X5
iMatix's web server
Provides HTTP web front-end for Zyre
Based on Xitami (popular web server from 1990's)
Ported to Base2, so fast, scalable, robust
Part of Base2 today, separate later
3,457 MMLOC
http://xitami.wikidot.com
Live Zyre
http://live.zyre.com
Open RestMS server - zero install
Runs latest builds of Zyre and OpenAMQ
use RestMS ();
my $domain = RestMS::Domain->new (hostname => "live.zyre.com");
my $feed = $domain->feed (name => "ublog", type => "fanout");
my $message = RestMS::Message->new;
$message->content (shift);
$message->headers (name => "Jeep Nine Thirst");
$feed->send ($message);
Conclusions
Messaging can be simple, and fun
New open protocols change the game
AMQP is still somewhat complex
RestMS is much simpler
Try RestMS in your web apps
Contribute classes in Python, Ruby, Lua,...
Start to learn to use messaging
Build more ambitious apps
Thank you
For more information please contact the author at [email protected]
Comment & discuss at:
zyre.com
openamq.org
restms.org
Click to edit the title text format
Click to edit the outline text format
Second Outline Level
Third Outline Level
Fourth Outline Level
Fifth Outline Level
Sixth Outline Level
Seventh Outline Level
Eighth Outline Level
Ninth Outline Level
Copyright 2006-2009 iMatix CorporationCreativeCommons Attribution-Share Alike 3.0