To test the the CS-AWARE information flow model a prototype using the Docker Container[1] technology was implemented. The aim was to create a Docker-Compose implementation, which is a Docker framework to develop systems using multiple containers, representing the model introduced in this previous blog entry in a basic version.
The concept of containerization through Docker was brought up in a technical meeting of the partners of the EU project CS-AWARE and assessed in regards to its suitability. Containerization is an alternative to the classical approach of virtualization, with reduced overhead by requiring less resources[2][3]. Additionally, the scalability of such container-based approaches is a critical factor[4] and a definite pro for the containerization of the prototype of the CS-AWARE information model. Since CS-AWARE will be implemented not only in one but multiple local public administrations, these could each deploy a unique CS-AWARE Docker instance in their system. This would offer flexibility not only for the initial deployment but also any required system updates implemented by the partners after initial setup.
Docker is a containerization technology, which allows for flexible and independent software component development. The containerization of applications allows developers to define all relevant dependencies of said application and include them in the container. A container combines all code files and all required depending software of an application, making it a stand-alone, standardized instance of the application. This container is executable on any Docker Engine, available for all major operating systems. The goal was to build all relevant containers and ensure their communication to function as intended by the model. In the following Figure, the structure of the CS-AWARE containers and their networks are shown. Networks facilitate communication between containers in a docker-compose setup, and are in this case based on the layers introduced in the CS-AWARE information flow model.
The communication flow between the components functioned as intended by the model, each module communicating in accordance to the defined interfaces with their respective inputting and outputting counterparts. The prototypical implementation of the information flow model in Docker was successful and the technology might therefore be used for the development and deployment of CS-AWARE.
Veronika Kupfersberger, Thomas Schaberreiter
University of Vienna
[1] https://docs.docker.com/
[2] Scheepers, M. J. (2014). Virtualization and containerization of application infrastructure: A comparison. In 21st Twente Student Conference on IT, pages 1–7.
[3] Turnbull, J. (2014).The Docker Book. Lulu. com.
[4] Zhou, Y., Subramaniam, B., Keahey, K., and Lange, J. (2015). Comparison of virtualization and containerization techniques for high performance computing. In Proceedings of the 2015 ACM/IEEE conference on Supercomputing, Austin, USA.