Jabber Client - Villanova University

Download Report

Transcript Jabber Client - Villanova University

Jabber Client
Jeevan Varma Anga
[email protected]
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 email 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
Jabber Architecture
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=‘[email protected]' from=‘[email protected]/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=‘[email protected]/Work'>
</iq>
<presence from=‘[email protected]‘ to=‘[email protected]'>
<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.
Snapshots
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).