A SERVICE OF

logo

20 Chapter 2: iTool System Architecture
Overview of the iTool System Architecture iTool Developer’s Guide
Overview of the iTool System Architecture
The iTool system architecture is designed to maintain a separation between the
functionality provided by an iTool and the graphical presentation layer that reveals
that functionality to an iTool user (the iTool user interface). Such a separation allows
for the creation of different user interfaces for the same underlying functionality;
while the initial iTool user interface has been created using IDL widgets, it is easy to
imagine using other technologies to create an interface to the underlying iTool
functionality.
To support the goal of enabling different user interfaces for a given set of iTool
functionality, the iTool architecture includes the following features:
A design in which a single iTool object (based on the IDLitTool class) contains
all non-interactive tool functionality. Similarly, a single iTool object (based on
the IDLitUI class) contains all user interface functionality. This division is
clearly visible in the “iTools Object Model Diagram” on page 21.
•An object identifier system that provides a platform-neutral way to identify
objects across process and machine boundaries. Additionally, the object
identifier system is designed to work with existing component technologies
such as COM and Java.
A minimal connection between the non-interactive tool functionality and the
presentation layer. The tool architecture provides a small set of highly abstract
methods that the tool and presentation layer use to communicate with each
other. This minimal connection means that the presentation layer needs only a
single object reference to the iTool object itself.
•A messaging system that allows one component to observe another, receiving
notification messages when the observed component changes in some way.
This chapter describes some of the core ideas of the iTool system: component
inheritance, object identifiers, the iTool system object and the object hierarchy it
contains, the concept of registration, and how information is passed between iTool
components.