Message-id management revisited
Mike Fitzpatrick
fitz at noao.edu
Wed Jun 4 22:27:54 PDT 2008
> I can think of a lot of different ways this could be addressed, with
> associated disadvantages. Amongst other possibilities:
> :
> 2. sender generates single msg-id with fixed form <client-id>-<msg-tag>
> (this was Mike's original proposal)
> - hub can avoid maintaining *essential* state, but if it wants to
> keep track of other per-message info (e.g. timestamp, checksum,
> ...) it will need to store it internally. Also need to worry
> about what happens if the sender does not follow the requirement
> for how the id is generated - better to have an interface in
> which it's impossible to do the wrong thing.
This is still my first choice (surprised?). Because:
- If the sender/hub id strings are truly opaque as was initially
argued, then there is no wrong way for a client to generate the ID, it's
the hub that concatenates the values to form the final string. The
value of the hub creating a second (perhaps concatenated, perhaps
not) opaque string as a separate ID is dubious (in general, in the way
Mark intends to use it I think its a variation on this theme but does no
harm).
- If the final string might contain something useful like a checksum as
was later argued, then why not let all apps in on the format so they can
parse out the useful bits as they see fit. We now have a case
where we want
the original sender-id, is it a stretch to think we might later want the
timestamp/checksum/whatever-the-hub-does later when we'll need to
revisit this same issue?
- I really don't see the harm in recommending a format for the id
string. Is
this really more onerous for the hub/client developer than specifying the
hub methods or message format?
> 4. hub provides hub-msg-id -> sender-msg-id translation method
> - OK but slightly messy
Should there be a lack of unanimous epiphany regarding the above
argument, this would be my second choice. This simply exposes a functionality
the Hub must already implement in order to handle a reply, and it's a really
small number of apps that would need this as a way to get the sender-id to
send a progress message. The concern then is that it opens to door to
requiring similar methods to get other useful data from the id string
as mentioned
above.
> 8. do nothing
> - can't transmit progress information
Not happy with this at all -- progress dialogs are accepted as
good practice
in interface design and we can't assume there is only one long-running
job active
or that only one app requested it.
Option 2 totally avoids round-trips to the hub and lets all app
know what the
msgid is trying to convey; option 4 is acceptable where the number of apps
needing it is low and its use in the desktop-gui environment means there's no
real burden; option 8 is something we might regret one day.
Cheers,
-Mike
More information about the apps-samp
mailing list