<ul><ul><li>Boring, complex, painful </li></ul></ul><ul><ul><li>Messaging in the 21st Century </li></ul></ul><ul><ul><li>b...
What is “SOA”? <ul><li>Slashdot comment #26489673: </li></ul><ul><li>> State Of the Art </li></ul><ul><li>> Sarbanes-Oxley...
Complex, Boring, Painful <ul><li>It's good for the closed-source business </li></ul><ul><li>Keeps away competition, locks ...
Why Messaging? <ul><li>Every big project invents messaging </li></ul><ul><ul><li>Badly! </li></ul></ul><ul><li>It's an eas...
Introducing AMQP <ul><li>A general purpose messaging architecture </li></ul><ul><ul><li>Replaces custom messaging everywhe...
iMatix OpenAMQ <ul><li>iMatix's AMQP server & client product </li></ul><ul><li>FOSS - of course! </li></ul><ul><li>Started...
Making it Simpler <ul><li>Simplicity is the destination, not the start </li></ul><ul><li>AMQP is OK but can be improved </...
REST <ul><li>The web's answer to SOAP and WS </li></ul><ul><li>RESTful pattern for messaging </li></ul><ul><li>Create-read...
RestMS <ul><li>G.P. messaging protocol for the web </li></ul><ul><li>It's AMQP, but RESTful </li></ul><ul><li>Works over p...
RestMS example - client <ul><li>POST /restms/domain/default </li></ul><ul><li>Content-Type: application/restms+xml </li></...
RestMS example - server <ul><li>HTTP/1.1 201 Created </li></ul><ul><li>Content-Type: application/restms+xml </li></ul><ul>...
Zyre <ul><li>iMatix's RestMS server </li></ul><ul><li>Open source - of course! </li></ul><ul><li>Started in 2008 together ...
X5 <ul><li>iMatix's web server </li></ul><ul><li>Provides HTTP web front-end for Zyre </li></ul><ul><li>Based on Xitami (p...
Live Zyre <ul><li>http://live.zyre.com </li></ul><ul><li>Open RestMS server - zero install </li></ul><ul><li>Runs latest b...
Conclusions <ul><li>Messaging can be simple, and fun </li></ul><ul><li>New open protocols change the game </li></ul><ul><l...
Thank you <ul><li>For more information please contact the author at ph@imatix.com </li></ul><ul><li>Comment & discuss at: ...
Upcoming SlideShare
Loading in...5
×

Fosdem 2009

3,586

Published on

Complex, Boring, and Painful? Messaging for the 21st Century

Published in: Technology, Education
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,586
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
70
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Fosdem 2009

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

    Clipping is a handy way to collect important slides you want to go back to later.

×