The design or realization of any consequent project implies the involvement of several people, and sometimes even of several teams or companies. In addition to the fact that they all work on the same project, the various actors cooperate and collaborate. Indeed the realization of any project is not simply a succession of steps carried out by one actor at a time, but is the result of cooperating actors aiming at the realization of a common goal. It is the concept of concurrent engineering. Concurrent engineering requires cooperation between the various actors and exchange of the data produced by each one of them. More and more are companies using the Internet for data exchanges, the various actors are no longer forced to work in the same geographical place. One speaks then about virtual enterprise or project-enterprise if joint work lasts as long as a project. However, it is not enough just to exchange data for working together, it is also necessary to control and manage these exchanges. Collaboration involving some concurence in the work of several actors, the production of various versions of the exchanged documents implies a control of these exchanges. The objective of this article is the description of a really distributed system for cooperation. The overall philosophy of our system is the distribution of the exchanges control and the access to the exchanged data in a standard way. The paper’s kernel is the formalization of the exchanges control. Adopting a transactional approach for the realization of our system for cooperation, we formalize our cooperative transactional system and our distributed criterion of correction (DisCOO-serializability) in ACTA. We use a support example to illustrate our discourse and to apply this formalization to a concrete case. We supplement description by the presentation of the DisCOO prototype (realized in Java and Prolog upon an ORB) which implements our system.
cooperative systems, advanced transaction models, distributed systems