The KIELER framework provides a VS Code extension that supports interactive diagrams for a variety of languages. Technologically this is realized using a language server that has been extended to support diagram generation and interaction. Diagrams can become rather large and at that point the server-client communication becomes a bottleneck for the responsiveness of updating diagrams. In [1] an initial prototype was developed to support incrementally sending a diagram in chunks from the server to the client, prioritized by the current location of the viewport. This drastically increases the speed of individual transmissions, but due to the additional overhead and extra request messages the total time to send a diagram can actually increase, which is not desired.

The current communication protocol is a very simple request-response pattern and the goal of this thesis would be to implement a better protocol (e.g. by utilizing pipelining) and evaluate the speeds that can be achieved using different approaches. The hierarchical structure of the graphs being sent and the viewport location provide ordering constraints that make this an interesting problem to solve.

This thesis involves three main components:

  1. On the klighd-vscode client, diagram pieces must be requested, received and patched into the local graph model
  2. The communication protocol may need to be updated with new messages and options and the protocol concept itself must be developed.
  3. On the server-side in KLighD, requests must be handled appropriately and the diagram generation may need to be adapted.

Because this topics builds upon previous work, the general infrastructure for all this is already in place and the goal is to really improve and evaluate the protocols and algorithms that are used.

Goals

  • Development and implementation of an improved incremental diagram generation utilizing concepts commonly used in other network protocols.
  • Evaluating and comparing the diagram generation time of the classical approach (sending whole  diagram at once), the existing naive implementation, and any new approaches developed during the thesis.

Scope

Bachelor's Thesis

Related Work/Literature

[1] Maximilian Kasperowski, A Top-Down Approach on Automatic Graph Visualization, October 2021 (pdf)

Involved Languages/Technologies

  • Java / Xtend in KLighD
  • Typescript in klighd-vscode
  • Sprotty

Supervised by

Maximilian Kasperowski

mka@informatik.uni-kiel.de

Tags: