Mostly related to the Version Control System concept, the configuration enabler is designed to extend the Enabler’s framework to deliver a versioning control mechanism to developers. Thus, by using configuration enabler, developers can tailor their components behaviour, but creating different configuration files which will be used by the Enabler’s framework upon each component deployment.
Furthermore, this functionality shares the same idea of a source control code like Git where developers can create parallel configurations, as a parent from the previous one (which will carry the old configuration) adapts the needed structure and applies those into the system they are developing. If needed, a rollback mechanism is present which delivers a common way to all developers to revert any dangerous situation which was caused by applying a damaged configuration file.
By using the user-friendly GUI, the developers can easily check how many configurations are available for every single component they develop and adjust their functional behaviour as needed.
The tools used to develop the solutions presented in the documents follow the MEAN stack approach:
MongoDB is an open source, document-oriented database designed with both scalability and developer agility in mind. Instead of storing data in tables and rows as would with a relational database, in MongoDB JSON-like documents with dynamic schemas are stored
Express is a minimal and flexible Node.js web application framework that provides a robust set of features for developing web and mobile applications
AngularJS is a structural framework for dynamic web apps. It allows the usage of HTML as template language and extends HTML’s syntax to express the applications’ components clearly and succinctly. AngularJS’ data binding and dependency injection eliminate much of the code that should be written
The normal usage of CE is the one described in the Figure below. Since vf-OS specific enablers may run in many different environments, they need to have one configuration file that will tailor their behaviour while running in vf-OS platform. Before the initialisation, each enabler must request through the EF its configuration. After receiving the configuration file, the enabler can trigger the initialisation process.
Version control is important in the development of new VE. Since the VE can initialise their process based on different configurations it is important to maintain those configurations (numbered) for historical purposes. The basis of the CE is related to the version control concept acting as a Version Control System (VCS) running stand-alone inside the vf-OS platform.
The approach to the data model used is similar to the one used today in software repositories - eg GIT - where the new code can be mapped by using branch’s, commits, comments. Therefore, this concept is used to map the growth of configurations files marking the parent versions and a timestamp.
CE is described as having one Frontend (FE) and one Backend (BE). The Frontend is related with the presentation layer whilst the backend is related to the business logic and data access tier. The connections between those two and the external vf-OS systems are described with the reference points in section F.1.4. The Technology Architecture for the development CE follows the MVC Pattern – Model, View, and Controller. In the picture below, it is possible to see the interaction between these elements.
The concept of all the call flows handled by the architecture is shown in the next figure. All the components have a specific functional operation for every request made by the end- user.
Create a configuration
This functionality provides to the end-user, the ability to create a configuration file to be used on the deployment and runtime of his enabler. The logical procedure for this feature is shown in the next figure.
Presented below is the logic procedure developed to manage the configurations stored beforehand in the database.
Regarding the service interfaces, CE will provide a public API to be used by its FE and other external elements such as the Enablers’ Framework. The following table clarifies the public endpoints with his methods and the response type. Please refer to this link for detailed specs.
To use these generic enablers, it is necessary to have the following vf-OS components: