[Sis-ams] notation for delivery point names

Scott Burleigh Scott.Burleigh at jpl.nasa.gov
Tue Nov 11 10:05:41 EST 2008


Stuart Fowell wrote:
> Scott,
>  
> There is a two steps to processing a delivery point name:
>  
> 1. Do I support the underlying transport service
> 2. If 1 is true, then can I use it to transfer to the destination
>  
> Step 2 is particular to the underlying transport service - this allows 
> for different formats etc for different underlying transport service 
> types.
>  
> "vxmq2113451256:11311876" merges the two together whereas 
> "vxmq:2113451256:11311876" separates these two steps into independent 
> information
>  
> FYI, this is the mechanism that CORBA uses, with an ID for each 
> transport type so that a particular ORB implementation only needs to 
> process those transport types that it supports.
Sure, it's an intuitively obvious approach, and it is certainly doable.  
My point is just that the other way will run a bit faster and is simpler 
to code in a general way: merging the two steps together enables both to 
be accomplished in a single search loop, with a single string 
comparison, without requiring additional generalized logic (an 
additional callback function pointer, for example) to do step 2.  It's a 
very inexpensive design optimization.

Scott
> ------------------------------------------------------------------------
> *From:* sis-ams-bounces at mailman.ccsds.org 
> [mailto:sis-ams-bounces at mailman.ccsds.org] *On Behalf Of *Scott Burleigh
> *Sent:* 08 November 2008 00:24
> *To:* sis-ams at mailman.ccsds.org
> *Subject:* [Sis-ams] notation for delivery point names
>
> 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
>  
> SciSys UK Limited. Registered in England and Wales No. 4373530.
> Registered Office: Methuen Park, Chippenham, Wiltshire SN14 0GB, UK.
>  
> P Before printing, please think about the environment.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ccsds.org/pipermail/sis-ams/attachments/20081111/ab737ea9/attachment.htm


More information about the Sis-ams mailing list