Le lundi 23 f�vrier 2004 � 14:06, Michael G Schwern �crivait:
>
> I'm going with just straight, unsecured socket communications and an ad hoc
> protocol. At this point, encryption is not necessary. There's nothing worth
> encrypting. To see why, look at the example protocol conversation at
> http://www.makemaker.org/wiki/?AutomatedTestDistribution
>
> Its really that simple.
Here are a few questions and proposals:
* didn't you swap server and client in your example?
* I plan to set up several boxes for testing (when I get one of those
round tuits ;-), but I only have one IP. It would be great if the
protocol could let the server be a front end to several smoke boxes.
- the easiest way would be for the server to act as a client for
the other smoke boxes (but that implies the test would be run on
all available platforms)
- or maybe the protocol could support having the server inform the
client of what's available, and let the client decide
There's still a need for server-to-server communication...
- maybe it's not to much to ask that the various test platforms
can access the web via a proxy. So that URLs could be passed around
easily.
* couldn't the work be done asynchronously?
- so this part of the protocol would be useless:
Server: Great. Hang around.
Client: Waiting.
Server: Please hold.
Client: Waiting.
...
- information about what went right or wrong would be sent back via
email. Since we are talking of smoke boxes, the clients should be
able to fetch the emails via POP3 or whatever. And get the useful
information from them.
- a client would connect to a test server and ask:
Client: what test platform do you manage?
Server: X1/Y1/Z1
X2/Y1/Z2
...
Client: (checks its matrice)
Great. Test the code at this URL on the following platforms
X2/Y1/Z2
X3/Y3/Z3
Server: OK
- since you talk about a central repository of public keys, and
testing platforms, the client does not really need to ask what's
available, since the information should be cached in the central
repository. So ideally, a script could check all the available
test platforms from the central repository and contact only
the server it wants.
- the central repository would then just be a client that regularly
ask for the available test platform on each of the server it knows
and trust.
* the reports could be send by email, but also be made available from
the server.
- For example, the client would say:
Client: Test the code at this URL on the following platforms
X2/Y1/Z2
X3/Y3/Z3
Server: X2/Y1/Z2 will be report number 1234
X3/Y3/Z3 will be report number 1235
- So the client could also fetch the report from the server by asking
for its number. Or all the reports could also be stored in a central
place (think Cc:), but then we need a scheme for unique report ids.
- the central repository could also fetch the test reports regularly,
rather than waiting for email (for example if we don't trust
emails). The conversation could then be something like:
Client: Any reports after xxyyzzz-1234?
Server: Yes. I have:
xxyyzzz-1235
xxyyzzz-1236
Client: Gimme xxyyzzz-1235
Server: Here goes:
...
Client: Gimme xxyyzzz-1236
Server: Here goes:
...
If you need help for coding parts of your client/server/protocol (no
matter how much you like or dislike my proposals), I'd love to help.
Small chunks, if possible, so that I can deliver on time. :-)
--
Philippe "BooK" Bruhat
Wisdom cannot be bought. It can, at best, be rented until you can find
your own. (Moral from Groo The Wanderer #66 (Epic))