3.2 Architecture



next up previous contents index
Next: 3.3 Task Module Up: 3 Software Issues Previous: 3.1 Model Objects: Syntax

3.2 Architecture

  The integration architecture is based on a client/server approach. By dividing a software system into separate modules and components and specifying the interactions between them, the client/server paradigm is an implementation of the basic principles of object orientation, data hiding and abstraction. Using this model, the interaction between the TCAD framework shell and a task program, illustrated in Fig. 3.2, can be viewed as a dialogue.

 
Figure 3.2: Interaction between TCAD shell, Task Agent, and Task Module.  

When a task is started, the framework assigns an agent to maintain a communication link between the task code and the framework. Based on user commands and MO specification, the task agent converts this input into the appropriate task module command language and writes the task input file. It then initializes and starts task execution which proceeds concurrently with other framework activities. The task agent monitors task execution and provides model evaluation support, and error handling and reporting services.

During execution, the VISTA framework acts as a server for task clients. The communication link between the framework and the task program is implemented via a message passing algorithm using the VISTA standard input/output redirection capabilities [79]. Model evaluation requests are sent to the agent who in turn, forwards them to the TCAD interpreter. They are then scheduled for evaluation similarly to other framework callback events. Upon completion, the calculation results, namely the values of the model output variables, are routed back to the agent and ultimately to the appropriate task program that initiated the evaluation request. Through the intermediary role of the task agent, model evaluation is separated from the algorithmic task code and a standard interface to the framework services is made available to task programs. This liberates task programs from having to deal with tool invocation intricacies, error handling, and other framework activities [79].

Upon task termination, the agent extracts the analysis results which are then returned to the framework interpreter environment.

The actual task control mechanism is implemented using the VISTA callback functionality [79][36]. In VISTA, the callback concept extends beyond the usual realm of graphical user interface to accomplish active control of tools execution. Incoming user interface events are combined with tool control events in a common callback queue. They are then evaluated as part of the basic XLISP read-eval-print loop. In particular, it is noted that an output callback can be registered when a child process is started. This callback is activated when a write operation to the child standard output channel is performed. Model evaluation requests are initiated by writing a message to this channel that includes the corresponding input variables settings. Results of the evaluations are written back in a reply message to the tool standard input channel.



next up previous contents index
Next: 3.3 Task Module Up: 3 Software Issues Previous: 3.1 Model Objects: Syntax



Martin Stiftinger
Tue Aug 1 19:07:20 MET DST 1995