9 Computer software for (1) providing message-oriented data distribution between multiple software applications in a heterogeneous environment and (2) dynamically defining objects and their properties and their distribution between collaborating software systems