[JDEV] Jabber Client Design Tutorial

Dave Waite mass at akuma.org
Fri Sep 28 11:44:15 CDT 2001

Michael Brown wrote:

>>Perhaps as a first step we can find some agreement about terminology
>>("roster" vs. "contact list" vs. "buddy list", "transport" vs. "gateway",
>I actually prefer "Contact List" but "Roster" seems to be well defined for
>Jabber - which I can live with - although it does sound a little like there
>should be some house-hold chores involved :-)
Contact list is my favorite. All three imply that only Instant Messaging 
users are in the List.

>I've always been confused between "Transports"/"Gateways"/"Agents" so if
>someone could clear that up for me that would be great.
I'll take a stab; how about:

Entity - Any thing which interacts with the Jabber system, and/or which 
is available to be interacted with by other Entities in the Jabber system.
Jabber IM User - An entity using the Jabber system as an 
Instant-messaging platform.
Component - An entity which has a trusted relationship with a Jabber 
server, and which provides some set of services to Entities (either to 
Jabber IM Users or to other Components)

Gateway - A component which provides direct access to non-Jabber 
services to Jabber IM Users. No distinction is made to whether the 
component also allows a mapping from the non-Jabber service to access 
all of Jabber
Agent - A component which provides a mapping between a non-Jabber 
services and the Jabber system by authenticating with that remote system 
on behalf of a Jabber User.
Transport - An agent which specifically provides access to a non-Jabber 
Instant Messaging system.


    * Jabber conferencing would be a component, because it is providing
      a native Jabber service
    * IRC access would be considered a gateway since IRC is a remote
      service, but there is no registration required
    * Access to an IMAP mailbox (some sort of jabber-biff) would be
      considered an agent, since registration is required
    * Access to AIM or Yahoo! would be considered a transport

How is that? :-)

-David Waite

More information about the JDev mailing list