Coordination as Negotiated Transactions
Usually, task coordination systems distinguish several aspects of task execution: the functional aspect is
concerned by what tasks are to be performed by the system. The behavioral aspect concerns when particular
tasks are to be executed. The technological aspect concerns how tasks are actually performed. Coordination
systems generally do not provide any tools to support the technological aspect; instead, they are open
systems which can (or have the ambition to) interoperate with various other systems and platforms which
implement the actual actions. Abstracting the "how" part of activities from the "what" and "when" make
coordination particularly amenable to the declarative kind of specifications offered by rule-based frameworks.
Working out which tasks have to be done (the "what" part) often requires a negotiation between the
coordinator and the external systems which are supposed to then perform the tasks; as for sequentializing the
tasks in an appropriate order (the "when" part), it requires some form of synchronization. We claim that these
two aspects, negotiation and synchronization, can be elegantly supported in a rule-based framework by two
mechanisms which, in the past, have been successfully integrated with rules: respectively, constraint
propagation (and solving) and transactions. We propose a rule based coordination framework where negotiation
and synchronization aspects are specified in terms of, respectively, constraint solving, and transactions.
Freitag, Jones, Lengauer and Schek (Eds): Object Orientation with Parallelism and Persistence, Kluwer Academic Publishers, 1996.
dist.pdf.gz (109.89 kB)
dist.ps.gz (59.01 kB)