[Sis-ams] notation for delivery point names
Scott Burleigh
Scott.Burleigh at jpl.nasa.gov
Fri Nov 7 19:23:49 EST 2008
Hi, gang. At the October meetings we left one spec issue unresolved,
because it seemed subtle and complex enough to deserve some off-line
thought and discussion by email. That issue was the notation we use for
delivery point names.
The spec currently says that a delivery point name is the concatenation
of a transport service name, an equals ('=') sign, and an endpoint name
in transport-service-specific format. Currently the syntax of the
transport service name for TCP is the intuitively obvious "tcp", and
endpoint names are in the similarly obvious format
/hostname/:/portnumber/; likewise for UDP. But for VxWorks message
queues the spec says the transport service name is "vxmq/hostnumber/",
with /msgqID /as the endpoint name. The idea under discussion, as I
recall, was to simplify the protocol by using the general structure
/protocolname/:/qualifier/:/qualifier/:...:/qualifier /for all delivery
point names, e.g. "tcp:amroc.jpl.nasa.gov:5453" and
"vxmq:2113451256:11311876".
I've given this some thought and have concluded that, while I agree that
the proposed notation's generality is appealing, this is one of those
rare cases where the more intuitively elegant approach is
disadvantageous in implementation.
The intent of the current design is to simplify the processing of
delivery vectors in MAMS messages: a receiving MAMS entity can always
know whether or not a given delivery point is one that it can use for
message transmission to the sending entity, simply by looking for the
'=' character and then comparing the preceding character string to the
names of the transport services to which it has access.
The proposed design is, paradoxically, more complex. In the case of
"tcp:amroc.jpl.nasa.gov:5453" the receiving entity would know that the
delivery point is usable if "tcp" -- the token preceding the first colon
-- is one of its transport services. But in the case of
"vxmq:2113451256:11311876" the delivery point would be usable only if
"vxmq:2113451256" -- the string preceding the *second* colon -- was one
of its transport services, because message-queue transport is possible
only between tasks residing on the same machine. Tasks residing on
different computers running VxWorks cannot exchange messages among
themselves via message queue; "vxmq" alone would not be enough to assure
connectivity.
In order to make the proposed syntax work, we would have to build
transport-service-specific rules into the code that processes delivery
vectors in inbound MAMS messages, indicating how much of the delivery
point name constitutes the transport service name. To avoid adding any
more complexity to an already complex specification, I think we should
stick with the current notation. Does anyone have strong feelings
otherwise?
Scott
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ccsds.org/pipermail/sis-ams/attachments/20081107/da696674/attachment.htm
More information about the Sis-ams
mailing list