On 8/11/07, Benjamin Franksen <[EMAIL PROTECTED]> wrote:
> A certain amount
> of dynamism wrt the message content (high level protocol) is necessary for
> systems for which Erlang was designed, namely large distributed control
> systems with minimum down-times. For large distributed installations it is
> a matter of practicality to be able to upgrade one component w/o needing to
> recompile (and then re-start) all the other components that it communicates
> with -- for systems with expected down-times of 3 Minutes per year it is a
> matter of being able to meet the specifications. You'll have a hard time
> finding high-availability or large control systems which use an IDL
> approach for communication.

Hmmm, that's interesting.  I'd never considered lack of typing to be a
good thing for system robustness before!

Question: to what extent does interface versioning get around this
problem?  I assume the issue we're trying to address is to be able to
upgrade clients/servers/peers independently, without losing
connectivity with unupgraded systems?

So, using versioned interfaces:

Initially we have:
client1   marketinterface1
server     marketinterface1
client2   marketinterface1

Then, we upgrade the server with a new interface, marketinterface2.
Significantly, we keep the old interface.  So now we have:

client1   marketinterface1
server     marketinterface1, marketinterface2
client2   marketinterface1

The whole system continues to work: client1 and client2 continue to
chat with server on marketinterface1.

Now we upgrade client1:

client1   marketinterface2
server     marketinterface1, marketinterface2
client2   marketinterface1

... and client2:

client1   marketinterface2
server     marketinterface1, marketinterface2
client2   marketinterface2

Finally, we deprecate/remove marketinterface1 from the server:

client1   marketinterface2
server     marketinterface2
client2   marketinterface2
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to