Internship model-checking online payment services
About the assignment
In recent years, booq's ecosystem has shifted from a traditional POS solution to a modern omnichannel-based solution. With respect to payments, the traditional approach was quite straightforward. For instance, one would order a drink and then pay the amount required for that order, either by card or cash. This linear sequence of events is quite easy to oversee. Hence, verifying the correctness of these events has also not been a serious concern. In our modern approach multiple cloud-based systems play a role, in order to establish a successful iDEAL or PayPal payment for instance. Among these systems we have back-ends that determine the amount to be paid, services that initiate the payment, services that complete the payment and your mobile device that acts as a front-end. Verifying the correctness of these interacting systems is a serious challenge. The fact that communication between these systems mostly happens asynchronously, and across multiple vendors, makes verification even harder.
We would like to see a model-checking based solution that verifies the correctness of these interacting systems. Based on some formalized requirements, one can design and refine formal models of these systems. Designing these models can be done using some formal modelling language. Refining is done through traces extracted from these models by a model checker that also considers the requirements. These traces can be made executable and be run against booq's online payment services through REST APIs. Depending on the output of the running system one can improve the formalization, or show that the implementation needs improvement. This technique is also known as Counter Example Guided Abstraction Refinement (CEGAR). As the behavior of the individual systems is typically well understood; their complex interactions usually to a lesser degree, leading to unforeseen corner cases. These corner cases may for instance present themselves in practise as users not being able to complete a payment successfully. By applying the CEGAR-based solution we hope to catch these corner cases early and thus improve the correctness of the booq platform in general.
We would like to meet you
If you are a student WO Computer Science and you are interested in this assignment, you can contact Jeroen Meijer.