[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