-
A-Nets are multidimensional
-
We believe that humans use multidimensional models in everyday situations,
thus abstracting from different attributes of the modelled objects and processes
depending on our viewpoint. We are able to combine these perspectives
simultaneously. The objective of A-Nets is to adapt this concept for
programming.
A-Nets are composed of several perspectives, each of them can be developed
and tested separately. The different perspectives are synchronized in an
intuitive manner and the combined system behaves consistently.
-
A-Nets are hierarchical
-
The Transitions in each perspective can contain subnets, to encapsulate details.
The behavior of the net is not changed other than intended by the inner
structure.
-
A-Nets contain Objects
-
Similar as with some Petri Net clones, A-Net "tokens" are fully blown
objects for modelling aspect behaviour with traditional programming
methods, this is appropriate for computations, user interaction, network
applications etc.
A-Net tokens are called "aspects" to underline that depending
on what is important within their perspectives, they show only some
part of the attributes and methods of the modelled real world object. Aspects
are stored persistently.
Aspects of the same object are called "siblinks". Siblinks
are linked to each other and provide the synchronization of the different
perspectives.
-
A-Nets are associative
-
Transitions with the same label in different perspectives are meant to indicate
the same action. Associated transitions are fired only simultaneously. The
hierarchical inner structure of the transitions can be simple in one perspective
and very complex in a second. So the simple transition can be viewed and
used as an abstraction of the complex one, without changing the overall
behaviour.
-
A-Nets are dynamic
-
A-Nets are meant to be changed during runtime. Local changes don't interrupt
the multitude of subprocesses of the system. With the help of the graphical
representation, the developer is not likely to miss unwanted side affects.
(Yes, this has been tested with our prototype developing environment.)
-
A-Nets are interactive
-
A-Nets can be combined to very large consistent structures by creating siblinks
to existing (and running) nets. The data flow needed between two siblinks
is not large and so can be used to link processes over the
Internet. Siblinks won't reveal any details of their perspective they
are not meant to. (No this hasn't yet been tested.)
-
A-Nets are subject oriented
-
Other than traditional implementation of Petri Net behaviour, the fire set
is not computed from the transition's point of view, but from the token's
(= aspect). Though this doesn't help with optimization and analysis of all
different future net markings, it allows for distributed execution of the
system. (This has partly been tested by simulating multiple processors on
one computer.)
-
A-Nets are easy
-
Despite of the complex tasks A-Nets are made for, non-experts understand
immediately the meaning of the graphics. Even the structuring by perspectives
seems to be intuitively comprehensible. (see examples below).
-
(Examples will be presented soon.)