[standards-jig] JEP-0060 PubSub: 3. Requirements
bobwyman at earthlink.net
Thu Feb 13 19:39:55 UTC 2003
It is a generally accepted principle that communications protocol
specifications should limit their statements of "requirements" to those
things which are critical in ensuring the interoperation of systems. I
would suggest that this principle be considered in drafting JEP-0060 and
other JEP documents. However, JEP-0060 seems to include a number of
requirements which, while clearly communicating certain aspects of the
author's expectations for systems that will implement JEP-0060, do not
appear to materially impact the ability of otherwise conforming
implementations to interoperate.
JEP-0060 V0.4 states:
> "Any number of entities may be affiliated with a node.
> Possible affiliations include owner, publisher, and subscriber."
The use of "Any" and "may" in this sentence is a bit ambiguous
for something which is stated as a "Requirement". Requirements are
normally things that "must" or at least "should" be done in order to
ensure interoperability. Certainly, "any" number can't be supported --
if for no other reason than we're probably talking about integers here
and we need to know how many bits are in the int...
I'm also a bit concerned with the idea that a requirement might
exist for a conforming implementation to support more than one owner or
publisher. It is, I think, quite possible to see why it would be useful
for some very minimal implementations of PubSub to only support one
owner and/or one publisher. Imagine, for instance, a device which wishes
to allow people to query its state and provides a facility for doing so
by implementing a minimal PubSub service. In this case, the number of
owners, publishers, and nodes would all probably be limited to just one,
not "any", even though more than one subscriber might be permitted. (but
probably a small number.) For an analogous situation, consider things
like CISCO firewalls that implement tiny web servers as a means to
provide Web based control and monitoring interfaces. We should expect
that at least some people will want to implement similarly minimal
PubSub servers (perhaps as an alternative to SNMP type interfaces) and
will be miffed to discover that since they aren't in compliance with the
requirements of section 3, they can't claim to conform to JEP-0060.
>A node owner must be able to specify who may subscribe to a node.
>A node owner must be able to specify who may publish to a node.
As with the concerns above, it is reasonable to see that
implementing minimal services will be a requirement and reasonable for
some applications or devices. Such minimal implementations might find it
useful to simply allow all subscription requests implicitly and neither
require nor support any owner review in the process.
I realize that I may be splitting hairs here, however, it is
useful if communications protocols specify only those requirements which
are critical for interoperability between systems. In this case, I do
not believe that the requirements mentioned above really impact
interoperability of systems. As such, I would suggest that they be
removed from JEP-0060.
More information about the Standards