<< Back to GIL Documentation

GIL introduction

GIL is a framework and a runtime originally developed by LearningWell AB (www.learningwell.com) for Kärnkraftsäkerhet och Utbildning AB (www.ksu.se), the center in Sweden for nuclear power plant simulators.

GIL is used to integrate external systems to the core process models, transferring simulator process data and simulator commands. Even though the main use of GIL is in a context of nuclear power plant simulators it can be used in any context where real time data and commands shall be transferred between a master system (Process Model) and a connected sub system (External System).

GIL consists of:

The intention of GIL is to reduce the work to be done each time a new external system shall be integrated to the simulator process models. GIL also provides a common user experience (through the Web interface) to all integration solutions.

GIL concept:

A schematic overview of the GIL concept

Simulator commands are state change information from the process model to the external system such as RUN, FREEZE, LOAD_IC etc.

Control commands are arbritrary commands that may control the adapters, external system, process model or the pipeline stages. Such commands are specific to each implementation of adapters and pipeline stages. The specification on which commands that are available on a specific integration solution can be requested via the http-API or the web-interface. Control commands are invoked via the http-API or the web-interface.

Status is used in a wider sence than just containing status information. Status can contain such information as version info, progress info, current state (RUN, FREEZE etc.).

ElementDescription
External systemExternal systems are subsystems of the complete simulator but not part of the core simulator process models. Since they are not part of the core process models they do not share the same common areas of global variables. Therefor data has to be interchanged between the external systems and the process model and this can be done by using GIL.
ES-adapterGIL provides core functionality to interchange data between the process model and the external system. However, to adapt each external systems unique interface to GIL, an ES-adapter has to be developed. An ES-adapter is developed according to a well defined interface which is part of the GIL framework.
IntegrationExecutiveThis is the core control logic that handles transfers between the process model and the external system.
Transfer pipeline

Data to and from the process model and the external system passes through the transfer pipeline. The pipeline consists of a chain of stages. Each stage are aware of the type of data passing through and may monitor or alter the data.

The transfer pipeline can contain zero stages to leave passing data unaffected and save CPU.

The transfer pipeline is built on a plug-in architecture, stages may be added to pipeline by altering the gil.config.xml file.

There is stages for certain tasks developed in the GIL framework. New stages may be developed according to a well defined interface which is part of the GIL framework.

StageStages are plug-ins in the Transfer pipeline.
Process modelThe meaning of the term process model is the core simulator functionality. The process model acts as the master. GIL detects simulator state changes (RUN, FREEZE etc.) and frame (time step) changes by monitoring the process model.
PM-adapterThe PM-adapter adapts GIL to different process models. A PM-adapter is developed according to a well defined interface which is part of the GIL framework.
Web-serverAn embedded web-server is part of the GIL package to remove the necessity of a web-server on the machine hosting GIL. The Web-server hosts the http-API and the GIL web-based user interface. By pointing your web-browser to http://{host}/index.html you can access the web user interface.
APIA client may interact with the GIL runtime using a http based API. Se the GIL API Documentation for instructions on how to use the API.