A constraint expresses a relationship among one or more variables. Constraints are very useful in the development of collaborative applications, such as collaborative CAD and CASE systems, but satisfying constraints in the presence of concurrency in collaborative systems is difficult. In this article, we discuss the issues and techniques in maintaining constraints in collaborative systems. In particular, we also proposed a novel priority strategy that is able to maintain both constraints and system consistency in the face of concurrent operations. The strategy is able to resolve constraint violations in multi-constraint systems and is independent of the execution orders of concurrent operations. To illustrate the applicability of the proposed priority strategy, the applications of the approach in various collaborative systems are discussed in detail.
Kai Lin, David Chen, Chengzheng Sun, R. Geoff Drom