Peer-to-Peer Information Systems Week 14: Instant Messaging

Slides:



Advertisements
Similar presentations
…and a natural peer-to-peer platform!. Jabber as P2P Platform Agenda Why spend time in this session? What is Jabber? Who cares about Jabber? How does.
Advertisements

Internet Peer-to-Peer Application Infrastructure Darren New Invisible Worlds, Inc.
SIP and Instant Messaging. SIP Summit SIP and Instant Messaging What Does Presence Have to Do With SIP? How to Deliver.
Fall VoN 2000 SIP for IP Communications Jonathan Rosenberg Chief Scientist.
© 2008 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 1 Introduction to XMPP Joe Hildebrand.
Notification Explosion Calendaring –You have a new meeting request –Your meeting begins in 15 minutes SIP –Hello HTTP/WebDAV –A resource you want to edit.
Jabber and Extensible Messaging and Presence Protocol (XMPP) Presenter: Michael Smith Cisc 856 Dec. 6, 2005.
P2P (Peer To Peer) Used: when applications need to communicate between devices. Examples: – Interactive game of checkers – Instant Messaging P2P can be.
Instant Messaging Internet Technologies and Applications.
XMPP (eXtensible Messaging and Presence Protocol ) Reporter : Allen.
Real-time Communication WeeSan Lee
SNMP & MIME Rizwan Rehman, CCS, DU. Basic tasks that fall under this category are: What is Network Management? Fault Management Dealing with problems.
Hypertext Transport Protocol CS Dick Steflik.
Secure Public Instant Messaging (IM): A Survey Mohammad Mannan Paul C. Van Oorschot Digital Security Group School of Computer Science Carleton University,
Open Source XMPP for Cloud Services Matt Tucker, CTO Jive Software.
Effectively Using Internet Technology Brian Cordeau University of Texas – San Antonio.
Publishing and transporting Web Services over XMPP
XMPP Extensible Messaging and Presence Protocol. Chat In the beginning there was instant messaging and chat. Lots of binary standards: Unix talk, IRC,
Chapter 16 The World Wide Web Chapter Goals ( ) Compare and contrast the Internet and the World Wide Web Describe general Web processing.
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.
XMPP – Extensible Messaging and Presence Protocol Vidya Satyanarayanan.
Abierman-nanog-30may03 1 XML Router Configs BOF Operator Involvement Andy Bierman
Choosing an Instant Messenger Would you like to send Instant Messages, but aren’t sure which tool to use? Here’s help to decide. Skip to Main Menu.
Jabber Client Jeevan Varma Anga Distributed Systems(CSC8530) Villanova University.
User Interface; Graphical User Interface;Jabber XMPP- Core.
SOA-based Collaborative Authoring Andrew Roczniak Multimedia Research Lab University of Ottawa.
4BP1 Electronic & Computer Engineering Paul Gildea th Year Interim Project Presentation.
WISER: Remote access to databases and datasets This session will help you to set up access to Oxford online resources from your home computer. The session.
Introduction to 學校:大同大學 班級: GI1 學號: 姓名:李奕銳 教師:葉慶隆 Jabber 1.
© 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.
draft-mayrhofer-enum-xmpp1 XMPP Enumservice registration draft-mayrhofer-enum-xmpp-00 Alexander Mayrhofer, enum.at
Presence Networking: XMPP and Jabber Joe Hildebrand Chief Architect Jabber, Inc. Networld+Interop 1 May 2003.
Jabber Technical Overview Presenter: Ming-Wei Lin.
XMPP Solution 개요 및 동향 ㈜씽크테크 기술연구소 이정규 책임연구원.
An Analysis of XMPP Security Team “Vision” Chris Nelson Ashwin Kulkarni Nitin Khatri Taulant Haka Yong Chen CMPE 209 Spring 2009.
External Messaging Services. Page 2 External Messaging: Extends the power of Presence and Instant Messaging outside corporate Network Provided only to.
15 May 2006 IVOA - Victoria: VOEvent 11 Jabber/XMPP Matthew J. Graham Caltech T HE US N ATIONAL V IRTUAL O BSERVATORY.
Peer-to-Peer Information Systems Week 15: Instant Messaging Old Dominion University Department of Computer Science CS 495/595 Fall 2003 Michael L. Nelson.
SOSIMPLE: A Serverless, Standards- based, P2P SIP Communication System David A. Bryan and Bruce B. Lowekamp College of William and Mary Cullen Jennings.
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.
Discussion on DDS protocol binding
IoT Integration Patterns, REST, and CoAP
Mobile Networking (I) CS 395T - Mobile Computing and Wireless Networks
Building Distributed Educational Applications using P2P
1.2 The Network Edge Beginning at the edge of a network we are looking at the components with which we are most familiar - namely, the computers that we.
Tara Smith April 8, 2003 I385T - KMS
draft-ietf-simple-message-sessions-00 Ben Campbell
CS 5565 Network Architecture and Protocols
Principles of Network Applications
Hypertext Transport Protocol
Session Initiation Protocol (SIP)
CHAPTER 2 Application Layer.
Working at a Small-to-Medium Business or ISP – Chapter 7
McGraw-Hill Technology Education
Working at a Small-to-Medium Business or ISP – Chapter 7
CISC103 Web Development Basics: Web site:
Chat Refs: RFC 1459 (IRC).
Working at a Small-to-Medium Business or ISP – Chapter 7
draft-ipdvb-sec-01.txt ULE Security Requirements
Web Server Design Week 13 Old Dominion University
Web Server Design Week 13 Old Dominion University
Web Server Design Week 13 Old Dominion University
Chapter 16 The World Wide Web.
Peer-to-Peer Information Systems Week 6: Assignment #4
McGraw-Hill Technology Education
WEB SERVICES From Chapter 19, Distributed Systems
New Tools In Education Minjun Wang
Peer-to-Peer Information Systems Week 6: Assignment #4
Presentation transcript:

Peer-to-Peer Information Systems Week 14: Instant Messaging Old Dominion University Department of Computer Science CS 495/595 Fall 2004 Michael L. Nelson <mln@cs.odu.edu> 11/30/04

People 2 People For most people, computers are for communication, not computing “Killer applications” Communications: asynchronous, 1-1, 1-many E-mail web pages (esp. blogs) synchronous, 1-1, 1-many instant messaging (IM) others: the most successful games have synchronous, person-2-person play many file sharing P2P applications assume the existence of a communications medium for resource discovery

Early IM Tools Unix “talk” Internet Relay Chat Zephyr http://www.gnu.org/directory/livecomm/chat/ytalk.html Internet Relay Chat http://www.irc.org/ Zephyr http://web.mit.edu/olh/Zephyr/

Proprietary IM Protocols Oscar/AIM http://aimdoc.sourceforge.net/OSCARdoc/ YMSG http://www.cse.iitb.ac.in/varunk/YahooProtocol.php http://search.cpan.org/dist/Net-YMSG/ MSN Instant Messenger Protocol http://www.hypothetic.org/docs/msn/sitev1/ ICQ (now owned by AOL) http://www.d.kth.se/~d95-mih/icq/

Centralized IM Alice Bob MSN, Yahoo(?) “Bob is online” “Alice is online” “Where is everyone going to lunch today?” “We’re headed to Rajput” Alice Bob MSN, Yahoo(?)

P2P IM Alice Bob ICQ “Bob is online” “Alice is online” “Where is everyone going to lunch today?” “We’re headed to Rajput” Alice Bob ICQ

Hybrid IM Alice Bob AOL AIM, Yahoo? “Bob is online” “Alice is online” “Where is everyone going to lunch today?” “We’re headed to Rajput, here is a scan of their menu” Alice Bob AOL AIM, Yahoo?

IM Lock-in AIM, YMSG, MSN, etc. are an improvement over irc, talk, etc. in that they: remove location dependency from identity pass the P2P litmus test: variable connectivity & temp IP addresses autonomy for nodes at edges of the network But they are all proprietary: limited to the supported client locked in to the provider that supports the protocol you and your brother are on AOL, but you parents are on Yahoo! and your sister is on MSN its like having 3 separate email clients & email addresses to communicate with all of your friends & colleagues

Multi-Protocol Clients Multi-protocol clients exist: Everybuddy http://www.everybuddy.com/ Trillian http://www.trillian.cc/ Fire http://fire.sourceforge.net/ GAIM http://gaim.sourceforge.net/ etc. But they require identities for each of the services

Supporting Multiple Protocols DJ Recall@yahoo.com dj_recall@aol.com DJ Precision@aol.com precision@yahoo.com DJ Recall DJ Precision

Jabber An open source / open protocol alternative Features: http://www.jabber.org/ Features: protocol is defined in XML cf. binary proprietary protocols! adopted by the IETF as the platform for the evolving Extensible Messaging and Presence Protocol (XMPP) separate clients and servers for installation gateways for legacy protocols (AIM, YMSG, etc.) as well as person-2-application conversations

Romeo & Juliet montague.net capulet.com Jabber Servers Jabber Clients to: juliet@capulet.com By a name I know not how to tell thee who I am: My name, dear saint, is hateful to myself, Because it is an enemy to thee; Had I it written, I would tear the word. to: romeo@montague.net What man art thou that thus bescreen'd in night So stumblest on my counsel? Jabber Clients JID = romeo@montague.net JID = juliet@capulet.com DiCaprio & Danes images from http://www.romeoandjuliet.com/

Jabber Clients A rich set of clients supported (many with built-in support for other IM protocols too) http://www.jabber.org/user/clientlist.php Jabber IDs (JIDs) they look like email addresses, but they’re not but they’re similar in effect relative to hierarchical naming they make explicit what was hardwired in AIM, YMSG, etc e.g. DJ_Recall@yahoo.com

Use a public server… …or run your own

Jabber URIs jabber://user@server/resource resources generally used as connection ids resource addresses are hidden from users; only used by software/protocol “data”, as shown on p. 85, is not part of the Jabber IETF draft

XML Messages from: http://www.jabber.org/ietf/attic/draft-jabber-00.txt <message to="hamlet@denmark" from="horatio@denmark" type="chat"> <subject>Plotting</subject> <body>Here, sweet lord, at your service.</body> <thread>100052</thread> </message> from: ch. 6, p. 84 <message to=“horatio@denmark” from=“hamlet@denmark”> <body>Angels and Ministers of Grace, Defend us!</body> <prayer xmlns=“http://www.grace.org/”> <verse> … </verse> </prayer> </message> XML messages bundled through the use of <stream> tags (see section 5.2 of the Jabber draft; also section 10 for examples)

Extensibility Through Namespaces Client request for registration information to a server service (service.denmark): <iq type="get" id="1001" to="service.denmark"> <query xmlns="jabber:iq:register"/> </iq> Server response with registration fields required: <iq type="result" from="service.denmark" to="hamlet@denmark" id="1001"> <query xmlns="jabber:iq:register"> <instructions>Choose a username and password to register with this server.</instructions> <name/> <email/> <password/> <key>106c0a7b5510f192a408a1d054150ed1065e255a</key> </query> </iq> from: http://www.jabber.org/ietf/attic/draft-jabber-00.txt

Extensibility Through Namespaces Client request to register for an account: <iq type="set" to="service.denmark" from="hamlet@denmark" id="1002"> <query xmlns="jabber:iq:register"> <name>hamlet</name> <email>hamlet@denmark</email> <password>gertrude</password> <key>106c0a7b5510f192a408a1d054150ed1065e255a</key> </query> </iq> Successful registration: <iq type="result" from="service.denmark" to="hamlet@denmark" id="1002"/> Failed registration: <iq type="error" from="service.denmark" to="hamlet@denmark" id="1002"/> <error code="406">Not Acceptable</error> </iq> from: http://www.jabber.org/ietf/attic/draft-jabber-00.txt

Presence <presence from="hamlet@denmark"> <show>xa</show> <status>Gone to England</status> </presence> from: http://www.jabber.org/ietf/attic/draft-jabber-00.txt

Roster Client request for current roster: <iq type="get" id="1001"> <query xmlns="jabber:iq:roster"/> </iq> Server response to client query: <iq type="result" id="1001"> <query xmlns="jabber:iq:roster"> <item jid="claudius@denmark" name="Uncle Claudius" subscription="from"> <group>Family</group> </item> <item jid="horatio@denmark" name="Horatio" subscription="both"> <group>Friends</group> <item jid="fortinbras@norway" name="Prince Fortinbras" subscription="none" ask="subscribe"/> </query> </iq> from: http://www.jabber.org/ietf/attic/draft-jabber-00.txt

People 2 Applications Using XML namespaces inside the <iq> element, we can create “conversations” with applications as well as people. Some hypothetical examples: “What was the result of November 18th 1995 Virginia Tech football game?” “What is the 5 day forecast for zip code 23508?” <iq type="get" id="1001"> <query xmlns="jabber:iq:hokiesports.com"> <gameresult> <date>1995-11-18</date> <sport>football</sport> <result type=“boxscore”/> </gameresult> </query> </iq> <iq type="get" id="1001"> <query xmlns="jabber:iq:weather.com"> <forecast days=“5” zipcode=“23508”/> </query> </iq>

XMPP Extensible Messaging and Presence Protocol (XMPP) http://www.jabber.org/ietf/ (www.xmpp.org soon) defined in 4 drafts: core protocol defines streams, stanzas, authentication & security, internationalization issues extensions for IM & presence further definition & use cases particular to IM end-to-end object encryption mapping XMPP to the Common Presence and Instant Messaging Protocol (CPIM) http://www.ietf.org/html.charters/impp-charter.html

Streams and Stanzas |--------------------| | <stream> | | <presence> | | <show/> | | </presence> | | <message to='foo'> | | <body/> | | </message> | | <iq to='bar'> | | <query/> | | </iq> | | ... | | </stream> | stream: a container for the exchange of XML elements between any 2 entities over a network stanza: a discrete semantic unit of structured information that is sent from one entity to another over an XML stream from: http://www.jabber.org/ietf/draft-ietf-xmpp-core-20.txt

Stream Examples A basic "session": C: <?xml version='1.0'?> <stream:stream to='example.com' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' version='1.0'> S: <?xml version='1.0'?> from='example.com' id='someid' ... encryption, authentication, and resource binding ... C: <message from='juliet@example.com' to='romeo@example.net' xml:lang='en'> C: <body>Art thou not Romeo, and a Montague?</body> C: </message> S: <message from='romeo@example.net' to='juliet@example.com' S: <body>Neither, fair saint, if either thee dislike.</body> S: </message> C: </stream:stream> S: </stream:stream> A "session" gone bad: C: <?xml version='1.0'?> <stream:stream to='example.com' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' version='1.0'> S: <?xml version='1.0'?> from='example.com' id='someid' ... encryption, authentication, and resource binding ... C: <message xml:lang='en'> <body>Bad XML, no closing body tag! </message> S: <stream:error> <xml-not-well-formed xmlns='urn:ietf:params:xml:ns:xmpp-streams'/> </stream:error> S: </stream:stream> from section 4.7: http://www.jabber.org/ietf/draft-ietf-xmpp-core-20.txt

Security in XMPP XMPP Server XMPP Server XMPP Client TLS XMPP Server XMPP Server SASL TLS SASL TLS = Transport Layer Security, RFC 2246 SASL = Simple Authentication and Security Layer, RFC 2222 XMPP Client

Additions in XMPP The core is very similar to the original Jabber protocol; some notable additions: use of the “xml:lang” attribute to specify language type: definition of a “jabber:iq:privacy” namespace to maintain privacy lists, block communication based on JID, group, subscription type, etc.