Figure 1: Installation instance.
In order to allow a component version to be shared
and referred by many installation instances, each of
the components can be labelled independently. As
far as the type of temporal labelling is concerned, it
is quite common to label the versions by means of
progressive numbers, but the necessity can arise of
referring the system to a precise temporal phase of
its lifecycle. For instance, if a malfunctioning causes
trouble to a client, it can be of great importance,
even from a juridical point of view (
Grandi et al,
2003, Harris et al, n.d.), to know precisely how the
installation was when the problem occurred. The
support of at least two kinds of time dimensions is
widely emphasized in literature (
Böhlen et al, 2006,
Elmasri et al, 1990, Tansel et al, 1993): transaction
time, which tells when an event is recorded or
updated in a knowledge base, and valid time, which
represents when an event occurs, occurred or is
expected to occur in the real world. Transaction-time
is represented by adding the endpoints IN, OUT and
valid-time is represented by the endpoints FROM,
TO. In the considered environment, transaction time
tells when the installation version description
discussed above was recorded in the revision control
knowledge base and valid time refers to when the
installation is operative in the plant. For instance, the
installation version h in Fig. 2 was recorded in the
knowledge base on May 3rd 2006 and it has not
been updated yet, so IN = May 3rd 2006 and OUT =
∞. It has been fully operative on the plant FROM
May 15th 2006 and is expected to be used until (TO)
December 23rd 2007. Note that there is no need a
priori that they should be labelled with the same
values of transaction and valid-time. For instance,
the software version j can have been recorded before
May 3rd 2006 but used within the installation
version h. In this way, components can be shared
and duplication is partly avoided. For instance, the
installation version g in the background in Fig. 2
shares software version j.
A further advantage of using this kind of
timestamping is that, if a bug is detected within an
installation version, all the other versions that may
be touched by the same bug can be found in a very
simple way by means of temporal queries.
This structure can be easily developed by means of
the Lightweight Directory Access Protocol (LDAP).
LDAP (
Howes et al, 2003, Koutsonikola et al, 2004) can
be particularly suitable for representing installation
versions in wide enterprises: as a matter of fact,
LDAP is widely used in enterprise databases and it
is optimised for reading operations, being thus
suitable for storing and managing temporal data that
must be backtracked. Furthermore, LDAP schemes
can be very easily changed and extended in order to
record new attributes and new classes. This feature
can be very useful when designing a revision
control. As a matter of fact, new objects and new
attributes are very likely to be modified or added due
to new needs or improvements made by the people
who develop it. LDAP was also built for distributed
environments, so it suits the distributed location of
industrial applications very well.
Referring to the schemes discussed above, the
LDAP object-classes tree can be defined as follows
(see Fig. 3, Tab. 1): the 0-level class describes the
installation in general; the 1-level classes are
respectively plant requirements, software, hardware,
configuration files and documentation. It must be
observed that the timespan of the different objects
can have different meanings. For instance, the
temporal attributes of class “software” have the
following meaning: 1) IN, OUT: when the software
version was recorded/updated in the revision
information system; 2) FROM, TO: the period in
which the software version is/was/will be operative.
ICSOFT 2006 - INTERNATIONAL CONFERENCE ON SOFTWARE AND DATA TECHNOLOGIES
262