Final Thesis: Development of a Plugin Architecture with Docker Containers

Abstract: Software licenses play a critical role when developing applications containing open source dependencies. To avoid legal risks, a proper management of these dependencies is necessary and with an increasing number of third-party dependencies in commercial products, license compliance becomes very difficult. Product Model Toolkit helps combining multiple license relevant information into one unified model to derive license compliance artifacts, like the software bill of materials.

For data gathering, Product Model Toolkit uses multiple existing license scanners. It encapsulates these tools and their dependencies into separate Docker containers. However, its implementation is only a preliminary solution and it doesn’t ensure a straight forward integration of license scanners.

Considering the diverse technologies in which license scanners are implemented, a technology independent approach is necessary to facilitate the integration of such tools by defining them as plugins. This thesis presents a plugin architecture based on Docker containers. By examining known plugin architecture models we identify their common aspects as well as appropriate techniques to build a powerful and efficient Docker-based plugin architecture. Its implementation in the Product Model Toolkit proofs the feasibility of the proposed approach.

Keywords: License, license compliance, open source software

PDF: Master Thesis

Reference: Cristian Mogildea. Development of a Plugin Architecture with Docker Containers. Master Thesis. Friedrich-Alexander-Universität Erlangen-Nürnberg: 2021.