Project
General Objective
Verifiable
interactions in global computing environments. This
project will investigate computational and logical models of
individual and collective behaviour of computational entities
- which we refer to as computees - interacting in the context
of global and open computing environments. Currently, techniques
for developing interactions in such environments result either
in low-level implementations with no obvious logical characterisation,
which are, therefore, not verifiable, or in abstract specifications
possibly employing expressive modalities, but which are computationally
intractable in many cases. To bridge this gap, SOCS aims at
supplying models of complex interaction that not only allow
formal specification and verification of properties but also
lend themselves to concrete realisations which can be proven
correct with respect to those models, without relying upon simulation
techniques. Such properties may be local - within a single computing
environment, or global - within a dynamic collection of open
and connected sub-environments
(Societies
of) Computees. Computees are abstractions of the entities
that populate global computing environments. These entities
can form complex organisations, which for the purposes of this
project we call societies of computees. Such societies can be
tightly knit with computees having pre-specified roles, objectives
and tasks, with an obligation to resolve their conflicts. An
example of such a society could be an air traffic management
system, where different airlines, pilots and control centres
work in a global and open environment. At the other extreme,
a society can consist of loosely knit, heterogeneous computees,
again with their own individual tasks and objectives, but with
no overall obligation towards one another. An example of such
a society is a group of business entities in a global trading
environment, as encountered in electronic commerce applications.
Computees
have their own knowledge, capabilities, resources, objectives
and rules of behaviour. Each computee typically has only a partial,
incomplete and possibly inaccurate view of the society and of
the environment and of the other computees, and it might have
inadequate resources or capabilities to achieve its objectives.
In order to remedy these shortcomings, computees might have
to perform hypothetical reasoning in order to fill gaps in their
knowledge as well as to interact with other computees. This
interaction may involve communication, coordination, and negotiation
and may, but does not need to, conform to standards shared between
computees. Hypothetical reasoning and interaction may lead to
a need for the computees to revise their knowledge and their
objectives
Societies
have a global flavour in that they may be composed of vastly
diverse computees, in the same way that human societies are
composed of different individuals with different patterns of
behaviour and culture. Societies evolve dynamically, with computees
moving between societies with the passage of time. Therefore,
computees need to adapt their behaviour and knowledge to these
changes. This may involve assimilating new information about
the behaviour and objectives of other computees in the new societies.
For
the kind of societies of computees that we envisage, distributed
computation comes naturally into play as each computee has its
own (incomplete) knowledge base, and it needs to coordinate
and cooperate with other computees to achieve individual or
global objectives. This high-level view of distributed computation
is fundamental to a global computing system whose behaviour
can be verified, but it is orthogonal to lower-level distribution
mechanisms, such as process synchronisation and mobility. In
our view mobility is orthogonal to our high level view of a
global computing system in that in our context the idea of mobility,
i.e., migrating from one community to another, is not primarily
motivated by efficiency issues, and is not necessarily related
to the concept of physical location, as in classical mobility
literature. Existing or forthcoming tools for mobility of code
can be used, instead, as a possible means for extending, in
an efficient way, our resulting system.
Back
to : Objectives Menu
|