XMPP Extensible Messaging and Presence Protocol. Chat In the beginning there was instant messaging and chat. Lots of binary standards: Unix talk, IRC,

Slides:



Advertisements
Similar presentations
SIP and Instant Messaging. SIP Summit SIP and Instant Messaging What Does Presence Have to Do With SIP? How to Deliver.
Advertisements

VON Europe /19/00 SIP and the Future of VON Protocols SIP and the Future of VON Protocols: Presence and IM Jonathan Rosenberg.
Fall VoN 2000 SIP for IP Communications Jonathan Rosenberg Chief Scientist.
Jabber and Extensible Messaging and Presence Protocol (XMPP) Presenter: Michael Smith Cisc 856 Dec. 6, 2005.
XMPP Tactical Chat Don McGregor (mcgredo at nps.edu)
Network Layer and Transport Layer.
P2P (Peer To Peer) Used: when applications need to communicate between devices. Examples: – Interactive game of checkers – Instant Messaging P2P can be.
Real-Time Authentication Using Digital Signature Schema Marissa Hollingsworth BOISECRYPT ‘09.
Application Layer 2-1 Chapter 2 Application Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Application Layer – Lecture.
Instant Messaging Internet Technologies and Applications.
XMPP (eXtensible Messaging and Presence Protocol ) Reporter : Allen.
Introduction to the Application Layer Computer Networks Computer Networks Spring 2012 Spring 2012.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Copyright © 2006 by The McGraw-Hill Companies,
1 of 2 This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT. © 2007 Microsoft Corporation.
Chinese Information Processing (I): Basic Concepts and Practice Unit 6: Synchronous Communication.
CEO, Tech IT Easy Lab of Pervasive VM Computing A Beginner’s Guide to XMPP.
Remote Assistance  Using this program you can allow someone to work on your computer, chat with you and view your screen with your permission  The other.
Open Source XMPP for Cloud Services Matt Tucker, CTO Jive Software.
Presence Applications in the Real World Patrick Ferriter VP of Product Marketing.
Chapter 9 Collecting Data with Forms. A form on a web page consists of form objects such as text boxes or radio buttons into which users type information.
Chapter 2 Application Layer Computer Networking: A Top Down Approach, 5 th edition. Jim Kurose, Keith Ross Addison-Wesley, April A note on the use.
Chapter 2, slide: 1 CS 372 – introduction to computer networks* Monday June 28 Announcements: r Lab 1 is due today r Lab 2 is posted today and is due next.
2: Application Layer1 Chapter 2 Application Layer These slides derived from Computer Networking: A Top Down Approach, 6 th edition. Jim Kurose, Keith Ross.
? INTERNET WHAT, WHY, HOW. DEFINITION The Internet is a massive public spiderweb of computer connections. It connects personal computers, laptops, tablets,
Application Layer 2-1 Chapter 2 Application Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012.
Chapter Two Application Layer Prepared by: Dr. Bahjat Qazzaz CS Dept. Sept
FTP (File Transfer Protocol) & Telnet
WXET1143 Lecture7: , Chat and Messaging. Introduction  Electronic mail is everywhere.  Now many people in business, government, and education use.
Instant Messaging Alan Parker Robert Callow Brian Kearney Fortunato Macari Daniel Harrington Chang Gong Wang.
What makes a network good? Ch 2.1: Principles of Network Apps 2: Application Layer1.
XMPP – Extensible Messaging and Presence Protocol Vidya Satyanarayanan.
2: Application Layer 1 Chapter 2: Application layer r 2.1 Principles of network applications r 2.2 Web and HTTP r 2.3 FTP r 2.4 Electronic Mail  SMTP,
Protecting Internet Communications: Encryption  Encryption: Process of transforming plain text or data into cipher text that cannot be read by anyone.
Backdrop Particle Paintings created by artist Tom Kemp September Grid Information and Monitoring System using XML-RPC and Instant.
XMPP Concrete Implementation Updates: 1. Why XMPP 2 »XMPP protocol provides capabilities that allows realization of the NHIN Direct. Simple – Built on.
AOL Masala A Mashup. What is Masala? AOL Masala is a Mashup built using AOL APIs. With AOL Masala, you can Chat with your Friends without downloading.
Jabber Client Jeevan Varma Anga Distributed Systems(CSC8530) Villanova University.
Mr C Johnston ICT Teacher BTEC IT Unit 05 - Lesson 05 Network Protocols.
User Interface; Graphical User Interface;Jabber XMPP- Core.
Tracking Changes in MS Word. Track Changes Allows you to keep track of the changes you make to a document Extremely helpful when more than one person.
SOA-based Collaborative Authoring Andrew Roczniak Multimedia Research Lab University of Ottawa.
4BP1 Electronic & Computer Engineering Paul Gildea th Year Interim Project Presentation.
Application Layer 2-1 Chapter 2 Application Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012.
Security, NATs and Firewalls Ingate Systems. Basics of SIP Security.
CS 158A1 1.4 Implementing Network Software Phenomenal success of the Internet: – Computer # connected doubled every year since 1981, now approaching 200.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public ITE PC v4.0 Chapter 1 1 Living in a Network Centric World Network Fundamentals – Chapter 1.
Kuliah Pengantar Teknologi Informasi Coky Fauzi Alfi cokyfauzialfi.wordpress.com Internet (2)
Presence Networking: XMPP and Jabber Joe Hildebrand Chief Architect Jabber, Inc. Networld+Interop 1 May 2003.
ITIS 1210 Introduction to Web-Based Information Systems Chapter 14 How Internet Chat and IM Work.
Jabber Technical Overview Presenter: Ming-Wei Lin.
An Analysis of XMPP Security Team “Vision” Chris Nelson Ashwin Kulkarni Nitin Khatri Taulant Haka Yong Chen CMPE 209 Spring 2009.
EXTEND YOUR REACH Michel de Groot Product Manager Connecting Microsoft Live Communication Server to 1.6 billion mobile users and.
External Messaging Services. Page 2 External Messaging: Extends the power of Presence and Instant Messaging outside corporate Network Provided only to.
Voeventnet.caltech.edu Transporting VOEvents Andrew Drake, Matthew Graham, Roy Williams, et al.
ADVANCED COMPUTER TO, Kanishka Sir's. Introduction to Whatsapp Whatsapp Inc. Was Founded In 2009 By Brian Acton And Jan Koum (Also The Current CEO) Whatsapp.
15 May 2006 IVOA - Victoria: VOEvent 11 Jabber/XMPP Matthew J. Graham Caltech T HE US N ATIONAL V IRTUAL O BSERVATORY.
Revision Unit 1 – The Online World Online Services Online Documents Online Communication Cloud Computing The Internet Internet Infrastructure Internet.
1 A Look at the Application Authorized users can access Communicator! NXT from any Internet-capable computer via the Web.
Peer-to-Peer Information Systems Week 15: Instant Messaging Old Dominion University Department of Computer Science CS 495/595 Fall 2003 Michael L. Nelson.
Lecture 10 Page 1 CS 236 Online SSL and TLS SSL – Secure Socket Layer TLS – Transport Layer Security The common standards for securing network applications.
Electronic mail News File transfer protocol Chat Instant messaging Online services Online shopping.
March 16, 2009 Jabber IM Client. March 16, 2009 What is Jabber? An open instant message protocol Defines client/server communication Uses XMPP –XML-Based.
Jabber What is Jabber? collection of open XML-based protocols for messaging and presence information protocol adopted by IETF as XMPP.
Principles of Network Applications
Chapter 2 Introduction Application Requirements VS. Transport Services
Peer-to-Peer Information Systems Week 14: Instant Messaging
Name : __Sajid Ali VU-ID :__ DS
Windows desktop sharing
New Tools In Education Minjun Wang
Presentation transcript:

XMPP Extensible Messaging and Presence Protocol

Chat In the beginning there was instant messaging and chat. Lots of binary standards: Unix talk, IRC, AOL Instant Messaging (AIM) Yahoo, MS, etc. The commercial implementations quickly tried to achieve user lock-in via proprietary protocols. (Aside: you make money in the computer industry by owning standards, such as the Windows API. If you own the standard you can lock other implementors out.)

Better Way Why not do something open standards that any one can implement. Which is what XMPP is--open standard, published by the IETF, that uses XML to exchange information. XML allows user-readability; the classic benefits of XML

What’s Handled? Presence: who is online right now? Are they willing to talk? Instant Messaging: real-time communications between two or more users “real time” roughly means that you see the text each time the user hits return Some show each character as it is typed Chat: groups of people exchanging information in a chat room Information exchange: Since XMPP uses XML, we can exchange information that can be expressed in XML

Presence: Buddy List My status--available for IMs Buddies Off Line buddies

How Does XMPP Work? <message type='chat' xml:lang='en'> Wherefore art thou, Romeo?

XMPP Stanzas There are three basic “stanzas” or elements in XMPP: message presence: “here I am. Tell all my subscribers about my status” iq: info/query, request/response In addition these elements all have five common attributes defined to: JID of recipient from: JID of sender id: can be a unique ID assigned to each stanza type: varies by stanza xml:lang: used to specify human language

XMPP Client Server TCP connection between client and server. Typically this is negotiated over SSL or TLS (a follow-on version of SSL) so that the traffic is encrypted and secure. XML stanzas are exchanged across this channel

XMPP The XML is sent as an open-ended stream. A stream starts with, then an open- ended series of,, and tags are sent. When the closing tag is sent, the underlying TCP connection is torn down

XML Communications Backplane We can also add new XML to the existing standard to get new capabilities You should think of XMPP not as strictly chat, but as an XML-enabled communications backplane Anyone can subscribe to a server and receive XML messages from other users. We can use this as a way to do lots of things besides chat.

XMPP DeviceUser DeviceUser XMPP Communications

Communications You can place programs or devices that listen on an XMPP chat room or that exchange information directly. Now there are devices or programs listening rather than humans Can use XML to exchange data objects You can also tie in XMPP with multimedia, including voice The jingle API (included w/ smack) allows voice

XMPP Basics You have a client that connects to and authenticates to a server. Users are uniquely identified by their JID, in the form eg

Multi User Chat (MUC) Multiuser chat is an add-on to the XMPP specification. It allows several users to be in a chat room. The convention is for a chat server to have the DNS name “conference.machine.name”, eg conference.savage.nps.edu The muc is identified by the jid eg

Server-to-Server Notice that a client connects to a local server, but the JID for a chat or muc may be on another machine Example: you log onto savage.nps.edu, and you specify that you want to chat with someone at (For firewall reasons this won’t work right now.) To do this, the server you have logged onto establishes a server-to-server connection to the machine specified in the JID

Server-to-Server Local Chat Server Client Remote Chat Server Client remote.com Local.com

Server-to-Server If the user isn’t on the same box that you logged onto, the server will contact the server the user is logged onto and pass the message to that server The users do not need to be logged onto the same machine to chat with each other

APIs What does it take to write an XMPP participant? It turns out, not very much. The Smack API from Ignite Realtime lets you get up and running fairly quickly. The examples I’ll show use the Smack 3.0 API available at ex.jsp

Smack API // Creates a new connection, using TLS if possible. XMPPConnection connection = new XMPPConnection("savage.nps.edu"); connection.connect(); // Login connection.login("testuser", "foobar");

Smack API MultiUserChat muc = new MultiUserChat(connection, ); muc.join("studmuffin"); for(int idx = 0; idx < 10; idx++) { muc.sendMessage("Hello world"); Thread.sleep(1000); }