[Standards-JIG] UPDATED: JEP-0030 (Service Discovery)
ian.paterson at clientside.co.uk
Tue Mar 16 19:26:50 UTC 2004
First of all, thank you very much Richard for explaining the thinking again.
I really appreciate the time you put into it. And you were right, I was not
aware of all the primary reasons for JEP-30. I hope this reply is more
valuable as a result.
Server-side simplicity is clearly desirable. However, in *some* cases the
cost of that simplicity is just too great. Here is a 'real-world' example:
If a MUC server has 1000 rooms and an average of 10 users entering each room
per hour. If each MUC client allows its user to choose from a list of room
names and occupants before he/she enters a room. Then that will result in a
total of 10 thousand disco#items requests, plus 10 million disco#info
requests per hour!
Occupant counts that are, on average, ninety seconds out-of-date are
acceptable to users. That would require just 20 thousand *internal*
communications per hour from the rooms to the MUC service. Then, if the
JEP-30 protocol allowed 'verbose' disco#items results, there would be no
need for the 20 million requests and results stanzas to be exchanged over
the Internet every hour.
If JEP-30 does not allow some carefully controlled exceptions, then simple
everyday functionality, like we see in this example, will require new JEPs
that duplicate much of Disco.
There seems to be agreement that "parents can know something more than just
the JID of a child node" (i.e. the name), as long as "implementations don't
assume it will always be there."
IMHO we need to define under exactly which (exceptional) circumstances JEP
writers should be allowed to specify that "parents can know more than just
the JID". Only in these cases could the extra information be returned in a
'verbose' disco#items result (or something like it):
- Verbose result implementation is optional.
- disco#info is also supported.
- A large number of items can be expected.
- It is important to communicate the extra information about every item.
- The extra information is either static (e.g. name, room description) or it
does not have to be up-to-date (e.g. occupants list, discussion topic).
Finally, I must emphasise that I agree with the original thinking behind
JEP-30. The "no knowledge" policy should be upheld for almost all JEPs.
More information about the Standards