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:
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.).
Element | Description |
---|---|
External system | External 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-adapter | GIL 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. |
IntegrationExecutive | This 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. |
Stage | Stages are plug-ins in the Transfer pipeline. |
Process model | The 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-adapter | The 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-server | An 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. |
API | A 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. |