Socket interprocess communication solution for GUI components
Using the TASTE approach to develop real systems offers:
- an overall system-level description (in AADL) that includes the system-level interfaces.
- an overall message-level description (in ASN.1) that includes all the messages exchanged between subsystems.
By having access to both the subsystem interfaces and the ASN.1 types they are expecting, a code generator can automatically create a graphical user interface offering interactive access to subsystem interfaces. This GUI offers the following features:
- Create tree-like dialog controls that offer access to interface parameters.
- Populate dialog controls, while checking for correctness (appropriate data used for INTEGER/REAL edit controls, validations of ASN.1 constraints, etc).
- Re-use message data, by saving and loading them (easily implemented via the ASN.1 encoders and decoders)
- Invoke the interface at runtime, thus interacting with a real running system.
The code generator's target is Qt/python(PySide). Qt is a cross-platform widget toolkit which allows the execution of the generated GUI code under any modern OS. Invocation of the interface depends on some method of communication between the GUI and the running system. A number of Inter Process Communication mechanisms (IPC) exist for this purpose; formally, the implementation used named message queues to transfer data between the GUI and the running system. For this to work, both the GUI and running system must be running in the same machine (POSIX message queues can not generally be used for communication between different machines).
To provide a more generic cross-platform solution named message queues are substituted by sockets.