Implementation of Communication Logic for a Microservice Composition Engine.
Supervisors
Suitable for
Abstract
Prerequisites: Java Programming, (recommended: Kubernetes)
Background
Latest trends in distributed computation are being shaped by cloud computing, and the availability of remote third party clusters. Microservice architectures have become the leading paradigm in application design. Microservices are containerised application components that implement the application functionality by exchanging messages according to a restful paradigm. On the other hand, Multiparty Session Types (MST) [1] constitute a specification language for communication protocols that allows for the verification of safety properties of the application (deadlock freeness, liveness, etc...).
Focus
In this project you will join the development team of an open source microservice composition engine [2] based on Guarded Attribute Grammars (GAGs) [3]. This engine interprets a programming language where microservices take the role of functions, and it relies on an orchestrator (Kubernetes) to automatically deploy the resulting application. Your task will be to implement the communication logic of the engine in java, so that microservices follow the protocols specified as MST.
References:
[1] Yoshida, Nobuko, and Lorenzo Gheri. "A Very Gentle Introduction to Multiparty Session Types". In Distributed Computing and Internet Technology, edited by Dang Van Hung and Meenakshi D´Souza, 11969:73–93. Lecture Notes in Computer Science. Cham: Springer International Publishing, 2020. https://doi.org/10.1007/978-3-030-36987-3_5.
[2] Joskel Ngoufo Tagueu, Eric Badouel, Adrián Puerto Aubel, Maurice Tchoupé Tchendji. "Lazy Services: A Service Oriented Architecture based on Incremental Computations and Commitments." 2021. https://inria.hal.science/hal-03353118
[3] Éric Badouel, Loïc Hélouët, Georges Edouard Kouamou, and Christophe Morvan."A grammatical approach to data-centric case management in a distributed collaborative environment." In Proceedings of the 30th Annual ACM Symposium on Applied Computing, Salamanca, Spain, April 13-17, 2015, pages 1834–1839. ACM, 2015.
Project: https://github.com/Service-BP-Dev-Team/Kubernetes-Reactive-Service
Essential goals: correct implementation of the communication logic of the engine in java.
Stretch-goals: Understanding the features and potential of the formal model of computation (GAGs) underlying the composition engine.