XMPP and AMQP
• Python or Erlang
• Network Server Developer ... ?
• Accense Technology, Inc.
• Google API Expert (Google App Engine)
• t...
• XMPP      AMQP

•
• BPStudy
•
• AWS
Polling sucks!




                                                 @


http://d.hatena.ne.jp/tasukuchan/20090509/notify_e...
XMPP
eXtensible Messaging and Presence Protocol
             http://xmpp.org/


              AMQP
   Advanced Message Que...
ejabberd
 the Erlang Jabber/XMPP daemon
     http://www.ejabberd.im/



     Rabbit MQ
Open Source Enterprise Messaging
  ...
Erlang
Erlang ?
•
•
• 1987
•
•
• Open Telecom Platform (OTP)
...
• Facebook Online Chat
• AWS SimpleDB
• Apache CouchDB
•                DB Kai / scalaris

• id:higepon http://d.haten...
...

         /                       Erlang
http://teahut.sakura.ne.jp/b/2009-04-04-1.html

              (2009   3   )  ...
XMPP
• XML
• RFC
• Jabber -> XMPP
• Google Talk
•         Mail

• TCP
XML
• http://www.ietf.org/rfc/rfc3920.txt
•
•         XML

      <stream>
      <message>
       <body/>
      </message>
...
XMPP Server



           •
           •
           •
Message

Client                  Client
XMPP Server                      XMPP Server
                  XMPP Server



                   •
                   •
  ...
• XMPP Server
• XMPP Server     ID   IP

  • XML
•     XMPP

•           DNS
• SSL/TLS
• DNS

• SASL
SASL?

• RFC 2222
•
•                ... ?

•                        orz
XMPP
• Google
•
•
•
• OpenFire
ejabberd
• Erlang        XMPP

•
• Google Talk          Group
  Chat

• Erlang
Ejabberd “cloud Edtion alpha”
http://www.planeterlang.org/en/planet/article/ejabberd_cloud_edition_alpha/
Cloud Edition?

•
•
• AWS    SDB   S3

•          SQS      ...
AWS

•Elastic Load Balancing

• Auto Scaling

• Amazon CloudWatch
AWS Import/Export

• HDD Amazon
• Amazon HDD
    S3

•        S3    HDD
• http://www.slideshare.net/maraby/xmpp-
  amqp-in-ruby
• http://xmpp.org/
• http://dev.ariel-networks.com/modules/
  xfse...
AMQP
• Advanced Message Queue Protocol
• MQ
•
•
•
•          1.0             ...
AMQP?
•
• PubSub   (Publish-Subscribe)

•
• TCP
•
•
Direct
Routing Key           AQMP Server
                                        Subscriber
              Exchange
       ...
Direct Exchange Type

•
•
•
funout
                 AQMP Server
                                    Subscriber
            Exchange
                  ...
Fanout Exchange Type


•
•
Topic
Routing Key
                        AQMP Server
                                             Subscriber
   a.b.c.d  ...
Topic Exchange Type

•
• a.b.c.d
•# *
• *.b.c.#   a.b.c.d   a.d.c.b
RabbitMQ
• Erlang      AMQP

•       130

•         3

• AMQP 0.8
• XMPP gateway STOMP gateway
• http://journal.mycom.co.jp/news/
  2006/06/21/343.html
• http://jira.amqp.org/confluence/display/
  AMQP/Advanced+Message...
Kay
• Google App Engine / Python

• http://bitbucket.org/tmatsuo/kay/
• GAE Expert & Apps Guru tmatsuo

•
Upcoming SlideShare
Loading in...5
×

XMPP & AMQP

6,278

Published on

Published in: Technology
0 Comments
11 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
6,278
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
11
Embeds 0
No embeds

No notes for slide

XMPP & AMQP

  1. 1. XMPP and AMQP
  2. 2. • Python or Erlang • Network Server Developer ... ? • Accense Technology, Inc. • Google API Expert (Google App Engine) • twitter/wassr id:voluntas
  3. 3. • XMPP AMQP • • BPStudy • • AWS
  4. 4. Polling sucks! @ http://d.hatena.ne.jp/tasukuchan/20090509/notify_events_to_many_clients
  5. 5. XMPP eXtensible Messaging and Presence Protocol http://xmpp.org/ AMQP Advanced Message Queuing Protocol http://www.amqp.org/
  6. 6. ejabberd the Erlang Jabber/XMPP daemon http://www.ejabberd.im/ Rabbit MQ Open Source Enterprise Messaging http://www.rabbitmq.com/
  7. 7. Erlang
  8. 8. Erlang ? • • • 1987 • • • Open Telecom Platform (OTP)
  9. 9. ... • Facebook Online Chat • AWS SimpleDB • Apache CouchDB • DB Kai / scalaris • id:higepon http://d.hatena.ne.jp/higepon/ 20090509/1241863278
  10. 10. ... / Erlang http://teahut.sakura.ne.jp/b/2009-04-04-1.html (2009 3 ) Erlang
  11. 11. XMPP • XML • RFC • Jabber -> XMPP • Google Talk • Mail • TCP
  12. 12. XML • http://www.ietf.org/rfc/rfc3920.txt • • XML <stream> <message> <body/> </message> </stream>
  13. 13. XMPP Server • • • Message Client Client
  14. 14. XMPP Server XMPP Server XMPP Server • • • Message Client Client
  15. 15. • XMPP Server • XMPP Server ID IP • XML • XMPP • DNS
  16. 16. • SSL/TLS • DNS • SASL
  17. 17. SASL? • RFC 2222 • • ... ? • orz
  18. 18. XMPP • Google • • • • OpenFire
  19. 19. ejabberd • Erlang XMPP • • Google Talk Group Chat • Erlang
  20. 20. Ejabberd “cloud Edtion alpha” http://www.planeterlang.org/en/planet/article/ejabberd_cloud_edition_alpha/
  21. 21. Cloud Edition? • • • AWS SDB S3 • SQS ...
  22. 22. AWS •Elastic Load Balancing • Auto Scaling • Amazon CloudWatch
  23. 23. AWS Import/Export • HDD Amazon • Amazon HDD S3 • S3 HDD
  24. 24. • http://www.slideshare.net/maraby/xmpp- amqp-in-ruby • http://xmpp.org/ • http://dev.ariel-networks.com/modules/ xfsection/article.php?articleid=17 • http://oreilly.com/catalog/9780596521264/
  25. 25. AMQP • Advanced Message Queue Protocol • MQ • • • • 1.0 ...
  26. 26. AMQP? • • PubSub (Publish-Subscribe) • • TCP • •
  27. 27. Direct Routing Key AQMP Server Subscriber Exchange Queue Publisher Spam Queue Subscriber Spam Exchange Publisher Queue Subscriber Spam
  28. 28. Direct Exchange Type • • •
  29. 29. funout AQMP Server Subscriber Exchange Queue Publisher Subscriber Queue Queue Subscriber
  30. 30. Fanout Exchange Type • •
  31. 31. Topic Routing Key AQMP Server Subscriber a.b.c.d Exchange Queue spam.egg Publisher spam.# Queue Subscriber ham.egg Exchange Publisher *.egg Queue Subscriber
  32. 32. Topic Exchange Type • • a.b.c.d •# * • *.b.c.# a.b.c.d a.d.c.b
  33. 33. RabbitMQ • Erlang AMQP • 130 • 3 • AMQP 0.8 • XMPP gateway STOMP gateway
  34. 34. • http://journal.mycom.co.jp/news/ 2006/06/21/343.html • http://jira.amqp.org/confluence/display/ AMQP/Advanced+Message+Queuing +Protocol • http://www.infoq.com/jp/news/2008/08/ amqp-progress
  35. 35. Kay • Google App Engine / Python • http://bitbucket.org/tmatsuo/kay/ • GAE Expert & Apps Guru tmatsuo •

×