Research

Our research topics, projects, and grants.

Topics

The research of DisCo focuses on topics related to programming languages and software engineering for concurrent and distributed systems. The topics explored departure from the topics explored by Elisa in the context of ambient-oriented programming (AmOP). In particular, she conducted research on fault-tolerant programming abstractions and debugging support for programs which are deployed in mobile environments where network disconnections are the rule and infastructure is limited, e.g. smartphones or embeeded devices connected via ad hoc wireless technology.

With AmoP as foundation, today DisCo’s research focuses on systems at the crossing between the cloud and mobile systems. We explore topics for geo-replicated applications in the cloud as well as edge computing and internet of things environments. Our research in these application domains is twofold. First, we focus on making new programming abstractions for communicating and coordinating different components in those distributed systems as well as application-level mechanisms for making them secure. Second, we investigate tools like debuggers to ease the software development and maintenance of concurrent and distributed systems. In what follows, you have the list of concrete topics within that context.

Concurrent and Distributed Programming

Language-based security

Web applications, many which support of our daily tasks, are provided with sensitive information such as banking accounts numbers, social security information, etc. However, neither JavaScript nor browser security mechanisms fully address modern application security needs to properly handle this information. At DisCo we are exploring access control and information flow control approaches for JavaScript which offer portability, performance and deal with many awkward features of JavaScript. We focus on specification and enforcement of application security policies at production (dynamic), and how to verify the same set of policies during development (static). Some tools built include the Guardia JavaScript’s library and GIFC, a permissive-upgrade-based inlined monitoring mechanism.

Replication and consistency

The CAP theorem forces developers to choose between availability and consistency when facing network partitions. This has a large implication for systems that need to replicate information. Ensuring strong consistency requires coordination, which impacts performance. On the other hand, adopting weaker consistency guarantees impacts correctness as application invariants may be violated. We research data structures such as CRDTs and SECROs that can help developers correctly tackle these issues in their applications.

Debugging and Tool Support

Concurrent debuggers

State-of-the-art debugging techniques for concurrent programs are limited in many ways. Literature has shown that developers have difficulties tracking down bugs when there is a large distance between the root cause and the undefined behaviour caused by it. This problem is amplified when dealing with concurrent programs. At DisCo we are looking into improving debugging support for concurrent actor-based programs. We focus in designing and implementing advanced debugging techniques to handle concurrency bugs which can appear in actor-based programs, e.g., when actors are in a waiting state and issues related to the order in which actors process messages. Some tools built are Voyager and Apgar, which allows developers to explore the program’s execution interactively.

Debugging Big Data

Big Data frameworks are widely used for writing data analytics applications due to their scalability and resilience. Current frameworks provide little support for debugging, many times forcing developers to rely on ad-hoc techniques, many of which result in lots of lost processing time. We are researching techniques that allow developers to handle bugs in Big Data systems cleanly and in a smart fashion. Some of the built tools include IDRA, that implements the debugging support for Spa/Port, a framework in Pharo Smalltalk for Map/Reduce and Spark like programming.


Projects

Tearless

2016-2019 - IWT SBO project
Coen De Roover (VUB) · Elisa Gonzalez Boix (VUB) · Frank Piessens (KULeuven)

Within the Tearless IWT SBO project (2016-2019), SOFT explores techniques to develop multi-tier web applications as a single artifact that spans all tiers and relieves application developers from distribution, consistency and security concerns. In particular, the DisCo group actively participated on data consistency and debugging research tasks. For example, the first version of SECROs, a new family of general-purpose replicated data types which reorders conflicting operations at runtime, was explored.

D3CPS

2017-2021 - FWO project
Elisa Gonzalez Boix (VUB) · Wolfgang De Meuter (VUB) · Danny Hughes (KULeuven) · Wouter Joosen (KULeuven)

The D3-CPS project aims to drastically rethink the way that distributed CPS applications are developed and managed. The overall objective of D3-CPS is to support software businesses in exploiting the potential of CPS. Our goal is to lower the boundary of CPS development by drastically reducing the effort required to develop and manage (i.e. coordinate, monitor, and reconfigure) distributed CPS applications.

MetaConc

2016-2020 - FWF project and FWO project
Elisa Gonzalez Boix (VUB) · Hanspeter Mössenböck (JKU Linz) · Stefan Marr (Kent University)

MetaConc develops language implementation support in the form of a meta-level interface, which can capture the interaction amongst concurrency models to deliver the concepts needed to support tools. The research challenge is to identify a common meta-level interface that captures the essential properties of concurrency models, with a minimal performance overhead. A second major challenge is to investigate tool support, in particular, debugging tools that assist developers in finding errors, and improving program comprehension. Classic approaches can affect the way a program behaves. We work on minimizing such interference with program execution to avoid hiding concurrency issues.

Associated Team - Advanced Debugging

2020-2021
Elisa Gonzalez Boix (VUB) · Stephane Ducasse (INRIA Lille Nord-Europe) · Steven Costiou (INRIA Lille Nord-Europe) · Matteo Marra(VUB)

The debugging department is a collaborative project between the Software Languages Lab (VUB) and RMoD (INRIA Lille Nord-Europe). This project focuses on the development of novel debugging techniques, tools and infrastructure to unlock critical debugging needs, and aims to support the collaborations between the two labs by enabling students from the two partners to visit both of the teams, and to collaborate in joint publications and projects.

SeCloud (Programming Pilar)

2015-2018 - Innoviris project
Ann Nowe (VUB) · Elisa Gonzalez Boix (VUB) · Coen de Roover (VUB) · Charles Pecheur (UCL)

Safeguarding the integrity of a cloud application and the confidentiality of its data requires meticulous control over where and under what form data flows between cloud services and across tiers. Application specific control over this flow cannot be exerted at a sustainable effort with existing technology. Secure programming idioms (e.g., for handling potentially tainted input or for implementing access control policies), at the low tech end of the spectrum, are error prone as they have to be applied consistently throughout the entire source code. Formal software verification, at the high tech end of the spectrum, is in a cognitive dissonance with the praxis of software development. Formalizing application specific control requires significant effort and expertise. A balance can only be struck by reconsidering the secure programming technology that complements infrastructure level security technologies at the application level.


Grants