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))

Reply via email to