In some companies, services are provided via CORBA (CommonObjectRequestBrokerArchitecture). They are specified as IDL interfaces.
Now these services evolve, sometimes even in a way that breaks backward compatibility. In a big comany you don't always know all clients of a service, so you don't want those clients to break just because you've changed the service. What do you do?
In 1993, Sun published a research paper on that subject (http://research.sun.com/techrep/1993/smli_tr-93-21.pdf). I work in a company that follows the recommendations in this paper, and I'm having some problems with that scheme. Particularly, the "minor version" concept is awkward and useless, I believe.
So I wonder: What are current solutions to that problem? Surely, somebody must have come up with something usable in the past nine years? What about WebServices etc.?
(For a related discussion, see JavaVersioning)