• Like
Fosdem 2009
Upcoming SlideShare
Loading in...5
×

Fosdem 2009

  • 3,293 views
Uploaded on

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

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

More in: Technology , Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
3,293
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
67
Comments
0
Likes
4

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1.
      • Boring, complex, painful
      • Messaging in the 21st Century
      • by Pieter Hintjens, iMatix Corporation
      • FOSDEM, 2009-02-07
  • 2. What is “SOA”?
    • Slashdot comment #26489673:
    • > State Of the Art
    • > Sarbanes-Oxley Act
    • > State Of Alaska (you betcha)
    • > S eksueel Overdraagbare Aandoening
    • > Sega of America
  • 3. 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
  • 4. 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...
  • 5. 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
  • 6. 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
  • 7. 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
  • 8. 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 ;-) "
  • 9. 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
  • 10. RestMS example - client
    • POST /restms/domain/default
    • Content-Type: application/restms+xml
    • Slug: fortune
    • <?xml version=&quot;1.0&quot;?>
    • <restms>
    • <feed type=&quot;service&quot; />
    • </restms>
  • 11. RestMS example - server
    • HTTP/1.1 201 Created
    • Content-Type: application/restms+xml
    • Location: http://host.com/restms/feed/fortune
    • <?xml version=&quot;1.0&quot;?>
    • <restms>
    • <feed type=&quot;service&quot;
    • name=&quot;fortune&quot; />
    • </restms>
  • 12. 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 AMQP<=>HTTP multiplexer
    • 3,353 MMLOC
    • http://www.zyre.com
  • 13. 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
  • 14. 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 => &quot;live.zyre.com&quot;);
    • my $feed = $domain->feed (name => &quot;ublog&quot;, type => &quot;fanout&quot;);
    • my $message = RestMS::Message->new;
    • $message->content (shift);
    • $message->headers (name => &quot;Jeep Nine Thirst&quot;);
    • $feed->send ($message);
  • 15. 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
  • 16. Thank you
    • For more information please contact the author at ph@imatix.com
    • Comment & discuss at:
      • zyre.com
      • openamq.org
      • restms.org