Original Publication Date: 1993-Jul-01
Included in the Prior Art Database: 2005-Mar-19
Campbell, DL: AUTHOR [+4]
Disclosed is a virtual attribute capability that provides an easy way to retrieve data dynamically from the external environment transparently by executing some system level command, without having to hardcode retrieval values.
a virtual attribute capability that provides an
easy way to retrieve data dynamically from the external environment
transparently by executing some system level command, without having
to hardcode retrieval values.
One of the
models used in the Object-Oriented world is that
known as the object/attribute model. This model is used when an
individual designs an object, and then all the data falls within
predefined fields (attributes). AIX* already uses this concept in
some of the files that are in the system, and these files are called
stanza files. An example of this would be the following entry from
dev = /dev/hd4
vol = "root"
mount = automatic
check = false
free = true
vfs = jfs
log = /dev/hd8
defines the object and each of the lines following it
defines an attribute/value pair. The attribute name is on the left
side of the equal sign and the value is on the right side. Each of
these attributes has a known value at the start, and that value never
a virtual attribute is one whose value is
computed rather than being hard coded. To the application, this
computation is transparent and not calculated until the value of the
attribute is accessed. This represents yet another level of
encapsulation (of the data) afforded to an object. When finally
retrieved, the value may or may not be different from the last
retrieval depending on the operating environment.
command utility 'make' provides some of this
capability. It allows for invoking a command and saving the result
to a variable, but once the command has executed, the resulting value
is utilized from then on. The command needs to be hardcoded into the
Makefile, which causes the same value to be generated each time.
Also, make only supports this one way of access special values - by
executing an arbitrary system level command.
Early on in
the design of internally developed tool it was
determined that getting values from the execution environment was
necessary, but that hardcoded system requests which always result in
the same answer would not suffice. What was needed was a way to
execute, in the external or internal environment, a command that had
been created during the execution or instantiation of an object. The
result of the command execution is what would be utilized when
accessing that particular attribute as long as the object it belongs
to remains active. The value retrieved is only used while the object
that encompasses it is in use. Once the manipulation of the object
is complete, the value is discarded. If the object is retrieved
later during the same process, then the command would be re-executed,
potentially returning a different result than the original execution.