Presentation is loading. Please wait.

Presentation is loading. Please wait.

Peer-to-Peer Information Systems Week 15: Instant Messaging Old Dominion University Department of Computer Science CS 495/595 Fall 2003 Michael L. Nelson.

Similar presentations


Presentation on theme: "Peer-to-Peer Information Systems Week 15: Instant Messaging Old Dominion University Department of Computer Science CS 495/595 Fall 2003 Michael L. Nelson."— Presentation transcript:

1 Peer-to-Peer Information Systems Week 15: Instant Messaging Old Dominion University Department of Computer Science CS 495/595 Fall 2003 Michael L. Nelson 12/2/03

2 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

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

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

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

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

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

8 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

9 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

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

11 Jabber An open source / open protocol alternative –http://www.jabber.org/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

12 Romeo & Juliet montague.net capulet.com DiCaprio & Danes images from http://www.romeoandjuliet.com/http://www.romeoandjuliet.com/ JID = romeo@montague.netJID = juliet@capulet.com to: romeo@montague.net What man art thou that thus bescreen'd in night So stumblest on my counsel? 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. Jabber Servers Jabber Clients

13 A rich set of clients supported (many with built-in support for other IM protocols too) –http://www.jabber.org/user/clientlist.phphttp://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

14 Use a public server… …or run your own

15 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

16 XML Messages Plotting Here, sweet lord, at your service. 100052 Angels and Ministers of Grace, Defend us! … from: http://www.jabber.org/ietf/attic/draft-jabber-00.txt from: ch. 6, p. 84 XML messages bundled through the use of tags (see section 5.2 of the Jabber draft; also section 10 for examples)

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

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

19 Presence xa Gone to England from: http://www.jabber.org/ietf/attic/draft-jabber-00.txt

20 Roster from: http://www.jabber.org/ietf/attic/draft-jabber-00.txt <item jid="claudius@denmark" name="Uncle Claudius" subscription="from"> Family Friends <item jid="fortinbras@norway" name="Prince Fortinbras" subscription="none" ask="subscribe"/> Client request for current roster: Server response to client query:

21 People 2 Applications Using XML namespaces inside the element, we can create “conversations” with applications as well as people. Some hypothetical examples: 1995-11-18 football “What is the 5 day forecast for zip code 23508?” “What was the result of November 18th 1995 Virginia Tech football game?”

22 XMPP Extensible Messaging and Presence Protocol (XMPP) http://www.jabber.org/ietf/ (www.xmpp.org soon)www.xmpp.org 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

23 Streams and Stanzas 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 |--------------------| | | |--------------------| | | |--------------------| | | |--------------------| | | |--------------------| |... | |--------------------| | | |--------------------|

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

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

26 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.


Download ppt "Peer-to-Peer Information Systems Week 15: Instant Messaging Old Dominion University Department of Computer Science CS 495/595 Fall 2003 Michael L. Nelson."

Similar presentations


Ads by Google