140 likes | 544 Views
Jabber Client. Jeevan Varma Anga Jeevanvarma.anga@villanova.edu Distributed Systems(CSC8530) Villanova University . Vision.
E N D
Jabber Client Jeevan Varma Anga Jeevanvarma.anga@villanova.edu Distributed Systems(CSC8530) Villanova University.
Vision The Jabber Instant Messaging Client has two goals. The first and most essential, is to provide an Instant Messaging Service Client. The second is to allow transparent messaging to third party services (YAHOO, ICQ, MSN, AIM. etc.) Jabber History • Jabber Technology Began in 1998 as an open source project to enable and ease the construction of compatible IM clients. • To understand standard XML data types. • Via a standard TCP socket.
What is Jabber? Jabber is a set of streaming XML protocols and technologies that enable any two entities on the Internet to exchange messages, presence, and other structured information in close to real time. The first Jabber application is an instant messaging (IM) network that offers functionality similar to legacy IM services such as AIM, ICQ, MSN, and Yahoo. However, Jabber is more than just IM, and Jabber technologies offer several key advantages: • Open • Standard • Decentralized • Secure • Extensible • Flexible • Diverse
Why Use Jabber? • Convenient way to communicate with more immediacy than e-mail and without the expense of long-distance phone calls. • Jabber Instant Messaging solution is intended to allow users to chat not only with other Jabber users but also with users of AIM, ICQ, MSN Messenger, and Yahoo Messenger. • Multiplatform support. • Open-source solution
Communication Protocol - XMPP • XMPP - Extensible Messaging and Presence Protocol. • The Extensible Messaging and Presence Protocol is an IETF adaptation of the open Jabber protocol for instant messaging and presence. • XMPP/Jabber is a pure XML protocol which provides a complete set of IM and presence features on top of a dedicated data transport layer. • The basic technology involves negotiating an XML stream between client and server using the Simple Authentication and Security Layer (SASL) and Transport Layer Security (TLS) protocols to secure the stream. • Exchange of fragments of XML over the stream in order to engage in common functionality such as sending messages, chatting with contacts, modifying presence, and managing a contact list.
There are three basic types of XML fragments used in Jabber: • Messages (<message />) • Presence (<presence />) • Info/Query (<iq /> Sample XML fragments: Client: <?xml version='1.0'?> <stream:stream to=‘jabber.dk' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' version='1.0'> Server: <?xml version='1.0'?> <stream:stream from='example.com' id='someid' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' version='1.0'>
<message to=‘abc@example.net' from=‘xyz@example.com/Work' type='chat'> <body>Good Evening!</body> </message> Client: <iq type="get" id=“SomeId"><query xmlns="jabber:iq:roster"/> </iq> Server: <iq type='result' id=‘SomeId' from='jabber.dk’ to=‘abc@jabber.dk/Work'> </iq> <presence from=‘abc@example.net‘ to=‘xyz@example.net'> <show>away</show> <status>be right back</status> <priority>0</priority> </presence>
Conclusion • The Jabber messaging framework is an example of P2P environments using XML technology. This framework includes its own communications protocol and server architecture and is based on the concept of switching XML document content between multiple locations. • All messages in Jabber framework, including instant message content, presence changes, and configuration updates, are delivered as XML fragments. This forms the critical ingredient in peer-to-peer information sharing schemes, including grid computing, instant messaging, and Web services. • Considering the low cost of hardware and that the technology is effectively free, a full implementation of Jabber has the potential to make a positive impact on a network for a minimal outlay. • Based on these facts - it may well be the future of Instant Messaging.
References • JSF, “Jabber Protocol”, URL#http://www.jabber.org/ietf/ • Peter Saint-Andre, “JEP-0078: Non SASL authentication”, URL#http://www.jabber.org/jeps/jep-0078.html • Jive Software, “Smack API”, URL#http://www.jivesoftware.com/xmpp/smack/api/ • Patrick Chan, “The Java Developers Almanac 1.4”, URL#http://javaalmanac.com/egs/javax.swing.tree/AddNode.html • Sun Microsystems, “How to use trees?”, URL#http://java.sun.com/docs/books/tutorial/uiswing/components/tree.html • Smack Library Forum, URL#http://www.jivesoftware.com/jive/forum.jspa?forumID=39 • Ana Orubeondo, “Blind to brand name”, InfoWorld (August 24, 2001).