User Tools

Site Tools


pleak-backend

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pleak-backend [2018/05/15 16:50]
admin
pleak-backend [2019/10/01 13:53]
Line 1: Line 1:
-====== Backend of PLEAK ====== 
  
-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 [[https://​github.com/​bpmn-io/​bpmn-js|bpmn-js]] for modelling and rendering [[http://​www.bpmn.org/​|BPMN]] models. This module is an open source library that is developed using the [[https://​github.com/​bpmn-io/​diagram-js|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: 
- 
-• [[https://​maven.apache.org/​|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. 
- 
-• [[https://​jwt.io/​|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. 
- 
-• [[https://​jersey.github.io/​|Jersey]] module is used to simplify development and creation of RESTful services in Tomcat. 
- 
-• [[http://​tomcat.apache.org/​|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. 
- 
-• [[http://​hibernate.org/​|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. 
- 
-• [[https://​www.mysql.com/​|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. 
- 
-===== Quick guide ===== 
- 
-View the [[https://​github.com/​pleak-tools/​pleak-backend|pleak-backend]] repository to see the options of the REST API provided by PLEAK backend. 
- 
-===== Source code ===== 
- 
-The source code is available at [[https://​github.com/​pleak-tools/​pleak-backend|pleak-backend]] repository. ​ 
pleak-backend.txt · Last modified: 2019/10/01 13:53 (external edit)