Backend is built as a Java-running server, which provides web-services for the frontend and also makes PLEAK privacy analysis tools available for the client applications. Server is providing list of users’ models, loading, saving and storing them etc.
We are building our tool on top of NodeJS module called bpmn-js for modelling and rendering BPMN models. This module is an open source library that is developed using the diagram-js engine. It is the best solution to adapt for the PLEAK needs: it is lightweight enough to be browser-ready, can be used online for editing and can be adjusted to support storage in the cloud.
There are several components, which are all needed for modeller server side support:
• Maven is a Java build automation tool. It handles package management for our tool - downloads, builds and sets up required packages and also runs the server side, which provides services for the modeller.
• JSON Web Token is used for user authentication. User credentials are stored on the server side in the database. If user logs in by providing valid credentials on the web page, then server creates JSON Web Token for that user and signs it with servers private key. After that every time, when user requests a page or accesses some server side service, it sends token to the server, server checks that tokens signature is valid and that users’ session has not expired. That token is valid until user logs out.
• Jersey module is used to simplify development and creation of RESTful services in Tomcat.
• Tomcat is an implementation of Java Servlets and similar features, which we are using to provide backend services to client side applications. For example following services: list of models for file manager application, save and open services for modeller application, etc.
• Hibernate module is a framework for Java that maps database objects to Java objects and vice versa. Using Hibernate greatly simplifies interaction between Java application and MySQL database.
• MySQL is a popular open-source relational database management system. We use MySQL database server for storing all application related data. That is user credentials, BPMN model files metadata, file sharing information, etc.
NAPLES analysis tools run mostly on the backend. Backend provides RESTful service for these tools.
View the pleak-backend repository to see the options of the REST API provided by PLEAK backend.
The source code is available at pleak-backend repository.