[Foundation] Software Standards

Michael Bauer bauer at jabber.com
Tue Aug 14 12:14:45 CDT 2001

Posted this to the standards list and didn't get any negative reaction.
Thought I'd spread to the wider membership for feedback.

The Jabber Software Standards are concerned with conformance to Jabber
communication protocols.  There are two Jabber references for protocol
conformance, published specifications and reference server implementation.
Software can be described as being in conformance with either a documented
or implemented protocol.  There are three basic categories of documented
protocol, "draft", "core", and "alternative".  These three categories
represent protocol that are pending adoption, have been adopted, or were not
adopted.  Implemented protocols are simply those protocols that have been
implemented in a particular release.  There are as many versions of
implemented protocols as there are implementations.

The Software Standards describe how software conforms with protocols; the
Software Standards do not define whether software complies with protocols.
The difference between the two centers around testing.  Conformance
describes what should be tested; compliance defines the testing itself.  It
is beyond the scope of the Standards charter to define compliance tests.
Those tests are left up to the developers.  

It is not compulsory for software to conform to any particular category of
protocol or comply with any particular class of tests.  Not all software
must interoperate with all other software.  It may be in the best interests
of developers to conform to the core protocol and compliance with a set of
interoperability tests but the Standards do not require doing so.  

The primary mechanism for describing protocol conformance is through
namespaces.  These define various discrete protocols that when combined
constitute operational implementations.  The namespaces are described in the
namespaces usage document
http://www.pipetree.com/jabber/sc-jig/ns-usage.html from DJ Adams.  Until
more definition is provided concerning what packages of protocols constitute
what implementations, it's incumbent upon the developer to disclose protocol
conformance and compliance.  So, for example, "Jabber Standard Client"
requires an annotation that describes namespaces used for conformance
checking and any tests used for compliance testing.  

Protocols express communication between many different software systems in
the Jabber network.  They are not limited to client/server communication.
Server-to-Server communication is also defined by a set of protocols:

More information about the Members mailing list