[jdev] Jabber Certification Program

Rachel Blackman rcb at ceruleanstudios.com
Thu Jun 17 15:48:10 CDT 2004

So, Jabber has been around for a while now.  It's a great architecture, 
we've all drunk the Kool-Aid as it were... but I've recently found a 
lot of frustration in one area, and I know from discussion in the jdev 
chatroom that I am far from the only one.

The thing is, there are all these very cool Jabber featuresets out 
there, but lots of them are not necessarily supported.  Nor (other than 
peer pressure) is there much incentive for people to implement certain 
things.  I can look at Jabber and go 'wow, pubsub is a cool backend 
system, Stream Initiation will let me do a lot of really cool things 
down the line' and be excited, but your average IM user (for instance, 
my mother or father) will look at Jabber and go 'why can't I set a nice 
little picture like under MSN?  And why can't I use bold in my 
messages?' and so on.  Jabber is, architecturally, probably the most 
advanced IM protocol out there, and it's a godsend to developers... but 
to end-users, it doesn't really replace the AIM featureset or whatever.

XHTML-IM has been a JEP for a rather long time, and few clients 
implement it (and moreover, some of them implement it in a nonstandard 
and wacky way!), and it's a fairly basic feature many IM end users look 
for.  And there's no real incentive (other than peer pressure, as I 
said) for a client author to implement XHTML, so it ends up getting 
pushed further and further down TODO lists and suchnot.

So there was discussion in the chatroom today about a compliance and 
certification program, with varying levels of certification and 
differing requirements for the levels.  Only certified clients would be 
on jabber.org's client list, certified clients would get the right to 
use a little 'certified' banner on their websites and in their 
documentation or whatever, and it would ensure featuresets /do/ get 
implemented for end-users.

I am writing up a quick proposal about how to do this.  If enough folks 
like it (and there's not too much ensuing flamethrower usage in my 
direction), I will write it up in JEP format and submit it.


Each certification would have a year attached to it.  For instance, 
'Jabber Basic Certified 2004' for a banner on a site.  A certification 
only lasts until the end of a calendar year, and then you have to 
re-apply for certification; having a certification for a given year is 
not a guarantee you will have it next year.  Certifications can have 
required features, and recommended features (i.e. 'MUST' and 'SHOULD').

The certification requirements for a calendar year would be set by a 
Jabber Certification Board, presumably appointed by the Council.  The 
requirements for a given year would be decided on in July of the 
previous year, giving individuals six months to implement the features 
(and apply for certification ahead of time).  For instance, if this 
program were in effect, next month the Certification Board would have 
to issue the certification requirements for 2005, giving all the 
developers time to implement the features and apply for certification 
before the end of 2004 (and thus the expiration of their existing 

To be certified, you would need to get a copy of the software in 
question to the Board to use, and they'd run it against some kind of 
validation suite.  Presumably they'd have a process for testing, either 
certain automated things they could point to or a script for 
hand-testing it all.  You could apply for more than one certification.

A couple examples of certification types are shown below.  These are 
NOT actual proposals, just examples of what a certification list might 
be.  You'd actually want much longer and more detailed certification 
criteria, of course.

Jabber Client Minimal
   - suitable for mobile or embedded clients
   - required   : roster management
   - required   : jid-to-jid chatting
   - recommended: groupchat-1.0

Jabber Client Intermediate
   - Suitable as a 'generic' client
   - required   : all of Jabber Client Minimal
   - required   : file transfer
   - required   : disco
   - required   : caps
   - recommended: XHTML-IM
   - recommended: avatars

Jabber Client Extended
   - Glitzier clients
   - required   : all of Jabber Client Intermediate
   - required   : xdata
   - required   : MU-C
   - recommended: pubsub

...and so on.  There would be certifications for servers, and you could 
even add usability guidelines as recommended things to the Client 
specifications, and so on.

Any thoughts?


More information about the JDev mailing list