Om te solliciteren op deze stage, moet je met je HvA-emailadres een account aanmaken.

account aanmaken

Bedrijfsinformatie

The Value Engineers
Van Burenlaan 7
3761 BZ
Soest

Data isolation in OSGI dynamic plugin systems


Software frameworks, such as OSGI, offer the functionality to extend their software with plugins. Plugins should be separated from each other; e.g. they should not be able to call each other, and they should also not be able to access each other’s data resources. This project is about extending preliminary work that we already have done to isolate data resources of plugins.

Background

Software platforms often offer the functionality to extend their software with components of third parties. Well-known examples are the Atlassian’s Jira and Confluence platforms; the core platform is provided by Atlassian but it has a marketplace where others can add functionality. We call such additions plugins.

Problem

There exist a few plugin platforms, one of them is the Java oriented OSGI framework[i]. Ideally, plugins should be separated from each other; e.g. they should not be able to call each other (without proper access control), and they should also not be able to access each other’s data resources.

To prevent data access by other plugins, several solutions are possible, ranging from a separate database per plugin, to one multi-tenant database for all plugins. Typically, a plugin is related to a particular domain (see Domain Driven Design). However, domains may refer to each other, just as in relational databases. In case multiple database instances are used, it is not possible to represent such references by means of foreign keys, because they cannot be applied across database instances. Nevertheless, semantically there are data references between domains and consequently these should be handled in a correct way.

Solution orientation

For Apache Karaf/OSGI, we have developed a proof-of-concept (PoC) which demonstrates that plugins using each their own database, can be related by pseudo foreign-keys, with the semantics that foreign keys require (e.g. the possibility to do cascaded deletes). This PoC needs to be completed in terms of features and robustness. Also, a set of test cases needs to be developed.

Organizational context

This project is offered by The Value Engineers B.V., who will offer an internship compensation.

Required

An independent student fluent in Java and not afraid of complex frameworks such Apache Karaf/OSGI. Good knowledge of the relational model. Knowledge of (light weight) service architectures is recommended.

Supervision

-       Dr. J. Gordijn (VU Amsterdam , The Value Engineers)

-       Emer. Prof. Dr. R.J. Wieringa (The Value Engineers)


[i] https://www.osgi.org/


Geschikt voor studenten
  • Software Engineering
  • Cyber Security