continuous reasoning for managing next-gen Cloud-IoT applications in continuity with the CI/CD pipeline
FogBrainX methodology is described in the following article:
Stefano Forti, Giuseppe Bisicchia, Antonio Brogi
Declarative Continuous Reasoning in the Cloud-IoT Continuum,
Journal of Logic and Computation (2022)
If you wish to reuse source code in this repo, please consider citing it.
FogBrainX is written in Prolog. Prolog programs are finite sets of clauses of the form:
a :- b1, ... , bn.
stating that a
holds when b1
and ... and bn
holds, where n >= 0
and a
, b1
..., bn
are atomic literals. Clauses with empty condition are also called facts. Prolog variables begin with upper-case letters, lists are denoted by square brackets, and negation by \+
.
Before using FogBrainX you need to install the latest stable release of SWI-Prolog.
The picture below illustrates the bird's-eye view of FogBrainX.
By analysing differences in the application specification and in the monitored infrastructure data, FogBrainX outputs management decisions on where to place application services by incrementally handling:
- changes in the infrastructure (i.e. node resources, network QoS) that trigger the need for migrating one or more application services,
- changes in the services' (software, hardware and IoT) requirements or in the service-service communication (latency and bandwidth) requirements, set in the application specification, that might trigger either the need for migrating one or more application services or for simply updating the current deployment information, and
- addition or removal of services or of service-service communication requirements in the application specification.
We look forward to contributions and suggestions on how to improve FogBrainX! Feel free to drop us a message or a pull request.