XMPP_Open Source Components for Cloud Services Presentation.ppt

download XMPP_Open Source Components for Cloud Services Presentation.ppt

of 20

Transcript of XMPP_Open Source Components for Cloud Services Presentation.ppt

  • 7/27/2019 XMPP_Open Source Components for Cloud Services Presentation.ppt

    1/20

    Open Source XMPP for

    Cloud ServicesMatt Tucker, CTO Jive Software

  • 7/27/2019 XMPP_Open Source Components for Cloud Services Presentation.ppt

    2/20

    Who am I?

    Member of the XMPP Standards Foundation and

    former chair of the board

    Behind Smack and Openfire at igniterealtime.org

    Keep giving talks about XMPP at OSCON

  • 7/27/2019 XMPP_Open Source Components for Cloud Services Presentation.ppt

    3/20

  • 7/27/2019 XMPP_Open Source Components for Cloud Services Presentation.ppt

    4/20

    In This Talk

    Brief XMPP and cloud computing overview

    Problems in cloud architectures; how XMPP can

    help

    Open Source tools

    Tips and tricks

  • 7/27/2019 XMPP_Open Source Components for Cloud Services Presentation.ppt

    5/20

    XMPP (Jabber) Overview

    The open protocol for instant messaging (its fair to

    declare victory)

    IETF standard and a robust org developing the

    protocol: XMPP Standards Foundation

    Simple for developers and very deep Open Source

    toolset and heritage

  • 7/27/2019 XMPP_Open Source Components for Cloud Services Presentation.ppt

    6/20

    XMPP Building Blocks

    Description Example

    Presence Send presence dataor manage presence

    subscriptions

    Giving a talk...

    Message Send data betweenusers

    Not

    Raining!

  • 7/27/2019 XMPP_Open Source Components for Cloud Services Presentation.ppt

    7/20

    What is Cloud Computing?

    Predominately based on web services (SOAP,

    REST, etc)

    Exploding in popularitya critical trend of software

    architectures

    Started with simple services; now growing complex

  • 7/27/2019 XMPP_Open Source Components for Cloud Services Presentation.ppt

    8/20

    Cloud Service Example: Salesforce.com

    Uses SOAP (not XML-RPC or REST)

    Huge percentage of traffic is polling for updates

    Introduced Outbound Messaging to cope with

    pollingbut there are firewall issues

  • 7/27/2019 XMPP_Open Source Components for Cloud Services Presentation.ppt

    9/20

    Cloud Architecture Problems

    Polling doesnt scale and isnt real-time

    Need two-way data exchange with easy firewall traversal

    Web services are feature poor (presence, binary data,

    etc)

    SOAP is whats needed for complex services, but its

    overly complicated

    Thesis: web services are great for simple cloud services; XMPP

    is better for complex cloud services

  • 7/27/2019 XMPP_Open Source Components for Cloud Services Presentation.ppt

    10/20

    XMPP vs. SOAP

    XMPP SOAP

    Performance

    Security

    Ease

    Innovative Features

    Ubiquity

  • 7/27/2019 XMPP_Open Source Components for Cloud Services Presentation.ppt

    11/20

    XMPP Cloud Architecture

  • 7/27/2019 XMPP_Open Source Components for Cloud Services Presentation.ppt

    12/20

    Open Source Tools: Server

    Openfire

    Most popular XMPP server, with over 1 million

    downloads

    In production with many cloud services

    Massively scalable

    Support for even strict firewall environments -- BOSH

  • 7/27/2019 XMPP_Open Source Components for Cloud Services Presentation.ppt

    13/20

    Open Source Tools: Client APIs

    Dozens of libraries in every major programming

    languagestart at jabber.org

    Java: Smack library from igniterealtime.org

    Flex: XIFF library from igniterealtime.org

    Javascript: JSJac, dojox.xmpp

  • 7/27/2019 XMPP_Open Source Components for Cloud Services Presentation.ppt

    14/20

    Open Source Tools: Cloud Components

    Whack (Java)simple and high level API

    Components use XEP-114 (easy)

  • 7/27/2019 XMPP_Open Source Components for Cloud Services Presentation.ppt

    15/20

    ExternalWeatherComponent.java

    public class ExternalWeatherComponent {

    public static void main(String[] args) {

    ExternalComponentManager manager =

    new ExternalComponentManager("example.com", 5275);

    // Set the secret key for this component, for authenticationmanager.setSecretKey("weather", "test");

    // Register this component to a subdomain of the server

    manager.addComponent("weather", new WeatherComponent());

    //... Component will now start processing requests}

    }

  • 7/27/2019 XMPP_Open Source Components for Cloud Services Presentation.ppt

    16/20

    WeatherComponent.java

    public class WeatherComponent implements Component {

    public String getName() {

    return "US Weather";

    }

    public void processPacket(Packet packet) {// Get the request packet here, parse it and return a reply

    }

    public void initialize(JID jid, ComponentManager componentManager) {

    }

    public void shutdown() {

    }

    }

  • 7/27/2019 XMPP_Open Source Components for Cloud Services Presentation.ppt

    17/20

    Example: Clearspace Doc Sharing

  • 7/27/2019 XMPP_Open Source Components for Cloud Services Presentation.ppt

    18/20

    Example: Twitter Fire Hose

    Uses XMPP to provide access to all status updates,

    which would be impossible using web services

    polling

    Only provided to a smallnumber of services (most

    recently Gnip)

  • 7/27/2019 XMPP_Open Source Components for Cloud Services Presentation.ppt

    19/20

    Openfire Cloud Services: Tips and Tricks

    External components allow for hot-deploy of new or

    updated services

    Run on separate hardware for scalability

    Openfire allows components to connect multipletimes for scalability and redundancy

    Epoll on Linux provides great performance

    Ad-hoc command available to listen for all traffic

    Use XMPP federation for federating cloud services

  • 7/27/2019 XMPP_Open Source Components for Cloud Services Presentation.ppt

    20/20

    Questions?

    Blog Entry Link

    Email/IM: [email protected]

    www.igniterealtime.org

    http://www.jivesoftware.com/community/blogs/jivetalks/2008/01/24/xmpp-aka-jabber-is-the-future-for-cloud-servicesmailto:[email protected]://www.igniterealtime.org/http://www.igniterealtime.org/mailto:[email protected]://www.jivesoftware.com/community/blogs/jivetalks/2008/01/24/xmpp-aka-jabber-is-the-future-for-cloud-services