user-guide:additional_interfaces:additional_interfaces
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
user-guide:additional_interfaces:additional_interfaces [2025/01/17 09:51] – [HTTP Server] Tim | user-guide:additional_interfaces:additional_interfaces [2025/01/22 15:56] (current) – removed Tim | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Additional User interfaces ====== | ||
- | Besides the Graphical user interface that is used in GroIMP by default, it is possible to execute models in other ways. This can be useful for specific scenarios such as larger pipelines or remote execution. | ||
- | In general a user interface describes how the user communicates with the software (GroIMP). | ||
- | |||
- | <uml> | ||
- | @startuml | ||
- | hide footbox | ||
- | |||
- | User< | ||
- | @enduml | ||
- | </ | ||
- | |||
- | For example with the graphical user interface windows and panels are used for this communication: | ||
- | |||
- | <uml> | ||
- | !pragma teoz true | ||
- | @startuml | ||
- | hide footbox | ||
- | title GUI | ||
- | participant User | ||
- | participant " | ||
- | participant GroIMP | ||
- | |||
- | |||
- | User -> GroIMP: Start GroIMP | ||
- | gui< | ||
- | & User <-> gui | ||
- | |||
- | @enduml</ | ||
- | |||
- | |||
- | ====== Headless mode ====== | ||
- | |||
- | GroIMP can be started without its graphical interface, in headless. The headless mode executes a provided model and afterwards closes GroIMP. Capturing any feedback from the simulation must be included in the model. | ||
- | |||
- | <uml> | ||
- | @startuml | ||
- | hide footbox | ||
- | title Headless | ||
- | |||
- | User -> GroIMP: Start GroIMP with model | ||
- | GroIMP -> User: Print log & close GroIMP | ||
- | @enduml | ||
- | </ | ||
- | |||
- | |||
- | More information on the headless mode: | ||
- | * [[user-guide: | ||
- | * [[: | ||
- | * [[: | ||
- | |||
- | A tutorial: | ||
- | * [[: | ||
- | |||
- | |||
- | |||
- | ====== Command Line Interface ====== | ||
- | |||
- | GroIMP can be started without its graphical interface, with a CLI. Unlike the Headless mode, the CLI enables interaction with the model during run time including opening and closing models, running simulations, | ||
- | |||
- | < | ||
- | !pragma teoz true | ||
- | hide footbox | ||
- | title CLI | ||
- | participant User | ||
- | participant " | ||
- | participant GroIMP | ||
- | |||
- | |||
- | User -> GroIMP: Start GroIMP | ||
- | cli< | ||
- | & User <-> cli | ||
- | |||
- | @enduml</ | ||
- | |||
- | More documentation on the CLI: | ||
- | * [[: | ||
- | * [[: | ||
- | * [[: | ||
- | A tutorial: | ||
- | * [[: | ||
- | |||
- | ====== HTTP Server ====== | ||
- | |||
- | It is possible to start GroIMP as a HTTP server to then send model paths via HTTP for GroIMP to execute. | ||
- | After GroIMP executed the model values can be returned to the HTTP client who send the request. It is possible to send several models in series or in parallel. | ||
- | |||
- | < | ||
- | hide footbox | ||
- | title HTTP server | ||
- | |||
- | User -> GroIMP: Start GroIMP | ||
- | User -> GroIMP: Send Model-path | ||
- | GroIMP -> User: Return result | ||
- | User -> GroIMP: Close GroIMP | ||
- | |||
- | @enduml</ | ||
- | |||
- | |||
- | More information: | ||
- | |||
- | * [[: | ||
- | * [[: | ||
- | * [[: | ||
- | Tutorial: | ||
- | * [[: | ||
- | |||
- | ====== Application Programming Interface ====== | ||
- | |||
- | GroIMP can be started as an HTTP API that provides a generalized set of commands that allows the interaction with other software. Currently a Python and a R library are provided but any software capable of http requests could interact with GroIMP. | ||
- | |||
- | |||
- | <uml> | ||
- | @startuml | ||
- | !pragma teoz true | ||
- | hide footbox | ||
- | title API | ||
- | |||
- | participant User | ||
- | participant ClientScript | ||
- | participant API | ||
- | participant GroIMP | ||
- | |||
- | |||
- | User -> GroIMP: Start GroIMP | ||
- | User -> ClientScript | ||
- | ClientScript < | ||
- | & API< | ||
- | User <- ClientScript | ||
- | User -> GroIMP: Stop GroIMP | ||
- | |||
- | |||
- | @enduml | ||
- | </ | ||
- | More information on the API: | ||
- | |||
- | * [[: | ||
- | * [[https:// | ||
- | * [[: | ||
- | * [[: | ||
- | * [[https:// | ||
- | |||
- | Tutorials: | ||
- | * [[: | ||
- | * [[: | ||
- | * [[: | ||
- | * [[: | ||
- | * [[: | ||
- | |||
- | Existing examples: | ||
- | * [[https:// | ||
- | * [[https:// | ||
- | * [[https:// | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | ====== GroIMP Server ====== | ||
- | |||
- | **<color # | ||
- | |||
- | GroIMP can be started as a server. Then, other instances of GroIMP can connect to the GroIMP server. This enables multiple user concurrently accessing a single model from different devices | ||
- | |||
- | <uml> | ||
- | @startuml | ||
- | !pragma teoz true | ||
- | hide footbox | ||
- | title GroIMP server | ||
- | participant User | ||
- | participant " | ||
- | participant " | ||
- | |||
- | |||
- | User -> g2: starts server side GroIMP | ||
- | User -> g1: starts client GroIMP | ||
- | User <->g1 | ||
- | & g1< | ||
- | User -> g1: stops client GroIMP | ||
- | User -> g2: stops server side GroIMP | ||
- | |||
- | @enduml</ | ||
- | More information: | ||
- | * [[: | ||
- | * [[: | ||
- | Tutorial: | ||
- | * [[: | ||
- | |||
- | |||
- | ====== GreenLab ====== | ||
- | |||
- | |||
- | Parts of the GreenLab model were reimplemented in the language XL with additional panels in the GUI. | ||
- | As the basis, the implementation of the GreenLab model in the software [[http:// | ||
- | |||
- | More information on the Greenlab plugin: | ||
- | * [[: | ||
- | |||
- | A tutorial: | ||
- | * [[: | ||
user-guide/additional_interfaces/additional_interfaces.1737103877.txt.gz · Last modified: 2025/01/17 09:51 by Tim