User Interface Service Software Developerís Guide - Hitech Projects
User Interface Service Software Developerís Guide - Hitech Projects
User Interface Service Software Developerís Guide - Hitech Projects
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
January 2008<br />
Public<br />
working on are in fact distributed. Figure 3 shows an example of a main tree and 3.<br />
Subscribed sub-trees (denoted as derived trees).<br />
Figure 3. An example XML tree in PEGASUS<br />
To fully implement the blackboard design pattern, it is necessary to enable notification of<br />
application on changes in the data storage. PEGASUS provides the concept of Triggers for<br />
this purpose. A Trigger can be setup to observe a parts of an XML tree and notify application<br />
upon a change of that certain element. The changes, which are observed by the Triggers are<br />
configurable in PEGASUS. For example, considering the example from Figure 3, it is also<br />
possible to define a Trigger that only notifies the change of the element “Light dark” to true but<br />
ignores a change to false. Just as well, it is possible to defined Trigger that puts multiple XML<br />
elements into a context. For example, notify the changes of “Light dark” only of the element<br />
“Climate pressure” holds 1.<br />
For the Triggers to actually cause an action to happen, the functionality of the PEGASUS<br />
object needs to be supplied. The functionality of an object is highly dependent on what the<br />
respective object represents:<br />
• Source of data. On a system level, it may be a device which expects user input, a logger etc...<br />
• Presentation of data. On an operating system level it may be a public display.<br />
• Process on data. It can either be a concrete program written with the PEGASUS framework<br />
using C++ or Java.<br />
• Parts of another process. Object descriptions can be nested, to maintain closeness to<br />
abstraction layers<br />
• Abstract representation of one or more processes.<br />
• Way of joining many objects into a container.<br />
• Representation of data structures or input data. It can handle user events, expressed through<br />
data change.<br />
For a full description of the PEGASUS API the document “Pegasus-Manual.pdf” is<br />
recommended. It contains both, the API for C++ and Java applications.<br />
Amigo IST-2004-004182 86/114