Automatic program supervision consists
in helping unexperienced users to use programs (libraries, modules, or
software components) by allowing them to characterize the problem
to be solved, to select among the solving
methods those which are the best adapted, to adjust unknown parameters
of the solving methods so that a solution can be found, and to link the
executions of all the sub-methods required by the solving process.
The objective of the ROMANS Action is to ease
both the description and the execution of a partial or total automatic
processing chain. The chosen approach relies on a knowledge base whose
model allows the user to describe the problem to be solved as well as the
needed solving methods, and to explicit the data flow between the programs
so that their executions can be connected. This model, called task model,
is the support of numerous program supervision engines, which can be parametrized
and reused.
Task models make it possible to describe problem
solving schemas in the shape of a recursive decomposition of the initial
problen into simpler sub-problems. This decomposition ends up with elementary
sub-problems which can be solved by the execution of a code fragment. Moreover,
this decomposition can be achieved in a cooperative way: users can, at
any moment, stop the decomposition process, modify the problem description,
and compare several problem solving schemas. More generally, task models
are well-adapted to the formalisation and the exploration of any problem
solving process.
The ROMANS Action designs and implements a task
description language in the AROM system, which is based on a class/association
representation and allows the remote execution of methods associated with
elementary tasks on the distant sites where those methods are maintained.
For the user, this process remains totally transparent: everything happens
as if the decomposition schema and the elementary methods were located
on her site. The advantage of this distributed approach is twofold: first,
problems inherent to the portability of the applications are avoided by
the remote execution; second, the parallel execution of remote methods
becomes possible.
However, the implementation of a distributed execution
requires the definition of mechanisms for the localization of well-adapted
solving methods and the use of synchronization processes so that the tasks
can interact with others located on distant sites. These two points obviously
lead to structural and operational modifications with regard to classical
task models. Moreover, the use of a distributed problem solving environment
requires to take into account temporal constraints as well as the availability
of hardware and software ressources. In other words, problem solving strategies
have to cope with the power of the computers, their load factor and the
available data and competences.