Êtes-vous un étudiant de l'EPFL à la recherche d'un projet de semestre?
Travaillez avec nous sur des projets en science des données et en visualisation, et déployez votre projet sous forme d'application sur Graph Search.
The concept of the IntegrCiTy platform is built around the development of a single application as a suite of independent software: project partners will mutualize a certain number of tools that shall be integrated in the IntegrCiTy platform. Therefore, a robust modularized "microservice" architecture is proposed which allows parallel integration and development of independent services. The back-end is composed of a message broker that enables the communication between the front-end, the database and the environments (decision-support environment, co-simulation environment). The front-end (user interface) is the communicating tool with the user. The back-end thus connects applications, user devices (as clients) and data to each other, as components of a larger application. It uses asynchronous messaging for decoupling applications by separating sending and receiving data. The EPFL is developing and hosting the message broker of the back-end using RabbitMQ server and Protobuf format. RabbitMQ is an open source message broker software that implements the Advanced Message Queuing Protocol (AMQP) and Protobuf is a simple method to serialize structured data. Unlike monolithic application, the proposed architecture requires the use of an inter-service communication protocol and the development of a wrapper for each service of the Platform. Wrappers have to be developed by the partner responsible of the related service (i.e. software) and are therefore part of the corresponding WP. For every server-wrapper, the developer must provide the documentation required to allow the communication with other client-wrappers. The documentation derives from the specification of the existing software integrated in the project and should take the form of a Protobuf “prototype file”. This report describes the proposed architecture allowing the communication between the different software of the IntegrCiTy platform, based on AMQP. A simple application case is provided as a proof of concept of the proposed back-end technology
Francesco Mondada, Robert Matthew Mills