[JDEV] Core Tool Protocols (Disco, PubSub, Auth...)

Adam Theo theo at theoretic.com
Thu Jul 18 17:56:20 CDT 2002


Hello, all.

I've been working on better understanding the disco and pubsub issues 
lately because I see them as the start to a set of core tool protocols 
that Jabber applications can use to build greater and more complex 
platforms on top of Jabber. My ideas are detailed in my new Jabber 
Environments doc [http://www.theoretic.com/?Jabber_Environments], which 
outlines Jabber as a 3-tiered platform with the basic routing 
information at the very bottom, a set of core protocols that easily link 
together in the UNIX fashion on top of that, and then a layer of complex 
application protocols using the common set of tools on top.

In this post I will focus on the core tool protocols. This set is 
intended to be a finite set of simple yet powerful and flexible 
protocols that each serves a specific role or function. They all use and 
rely on each other in a similar manner as the fundamental UNIX commands. 
They will be used by higher-up application protocols to create platforms 
for instant messaging, video conferencing, web services, entity 
presence, file sharing, community-built dictionaries and encyclopedias, 
news feed publishing, and many, many others.

Here is a beginning list and summary of possible Core Tool Protocols:

* Search: A protocol for running pattern and category queries on 
databases/lists of items/content. Would be used by web site search 
engines, user directories, service directories, to name a few.
* Discovery (& Navigation?): A protocol for querying entities about what 
features, children/sibling/parent entities, and physical resources they 
"have". Could be used by...
* Subscribe & Publish: A protocol for subscribing to topics that 
publishing entities create at "pubsub components". Could be used by news 
feeds, group chat rooms, entity presence, and source code updates. Could 
use Permissions & Access Control to create roles for subscribers (able 
to change topic subject, remove other subscribers, allow subscribers to 
publish as well, etc).
* Negotiation: A protocol for negotiating features, agreements, and 
processes between entities without needing human intervention during the 
actual negotiation. Would use Authentication to verify the identities of 
all participating entities.
* Authentication: A protocol for verifying the identity of entities, to 
make sure the entity is who they claim to be. Could be used by every use 
case under the sun.
* Permissions & Access Control: A protocol for setting and removing 
permissions for outside entities to take certain actions, also would be 
used to approve or reject actions based on existing permissions. Could 
be used by chat groups, news feeds, entity presence, among others. Also 
could use Negotiation to automatically create permissions for entities 
without needing human intervention, Discovery to allow entities to find 
what permissions they or others have.
* Envelopes & Headers: A protocol for adding extra routing commands or 
information to packets such as carbon copies, traceroutes, reply-to 
addresses, dates and times, among others.

Can anyone think of others for the list, and how they would interact 
with the above Core Tool Protocols?

I am posting this to try and spread the idea of thinking of the Jabber 
platform in these 3 tiers, to get ready for the day when we need to turn 
it into a truely generic routing protocol that is not tied to any single 
topology (such as the current client/server topology). It is also 
intended to get the authors and designers of Authentication, Disco, and 
PubSub thinking about how they should be allowing each other to use 
their creations. If Disco or PubSub is completed without thinking about 
how other Core Tools will want to use them, then they will be flawed and 
will have to be revised yet again. If they are designed with each other 
in mind, Jabber will become an undeniably "ultimate" protocol, with even 
the developers of HTTP and SIMPLE acknowledging our superiority :-)

-- 
     /\  Adam Theo, Age 23, Tallahassee FL USA
    //\\   Email & Jabber: theo at theoretic.com
   //  \\  (Boycotting AOL, therefore no AIM or ICQ)
=//====\\=
//  ||  \\  Theoretic Solutions: http://www.theoretic.com
     ||         "Building Ideas by Bringing them Together"
     ||      Jabber Protocol: http://www.jabber.org
     ||         "The Next Generation Communications Protocol"
     ||  "A Free-Market Socialist Patriotic American Buddhist"




More information about the JDev mailing list