Fosdem 2009
Upcoming SlideShare
Loading in...5
×
 

Fosdem 2009

on

  • 5,900 views

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

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

Statistics

Views

Total Views
5,900
Views on SlideShare
5,890
Embed Views
10

Actions

Likes
4
Downloads
67
Comments
0

2 Embeds 10

http://www.slideshare.net 9
http://static.slideshare.net 1

Accessibility

Categories

Upload Details

Uploaded via as OpenOffice

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Fosdem 2009 Fosdem 2009 Presentation Transcript

      • 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)
    • > S eksueel 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
    • <?xml version=&quot;1.0&quot;?>
    • <restms>
    • <feed type=&quot;service&quot; />
    • </restms>
  • 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>
  • 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
  • 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 => &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);
  • 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 ph@imatix.com
    • Comment & discuss at:
      • zyre.com
      • openamq.org
      • restms.org