Skip to content

Overview of uGovOps

Stefan Nastic edited this page Jul 14, 2015 · 5 revisions

The uGovOps is a runtime framework for dynamic, on-demand governance of elastic IoT cloud systems under uncertainty.Generally, uGovOps provides a policy language and runtime mechanisms to enable developing and executing Governance Strategies in IoT cloud systems under presence of uncertainty. This repository contains the current implementation of uGovOps prototype. The main parts of the uGovOps framework are:

Additionally, this repository contains a virtualized testbed (based on Docker containers) for software-defined IoT cloud systems and several demo applications.

The uGovOps controllers

The uGovOps controller represents a central point of interaction with all available governance capabilities. It provides a mediation layer that enables users to interact with software-defined IoT cloud systems in a conceptually centralized fashion, without explicitly worrying about the underlying IoT gateways or other IoT devices.

Internally, the governance controller comprises several cloud-based microservices. These are independently deployable services that expose REST APIs. These services are mainly implemented in Java and Scala programming languages and they rely on proven technologies such as Spring Boot (Actuator) to define and manage exposed APIs. These APIs are used by the operational governance processes, e.g., to invoke a governance capabilit, and by the IoT gateways, e.g., to obtain a new capability. Most important services include:DeploymentManager and ProfileManager, APIManager and GovernanceScopeCoordinator as well as the ImageBuilder and the DependencyManager.

The uGovOps agents

The uGovOps agents run inside IoT gateways. Generally, they support the controller to deploy, execute/invoke and manage the available governance capabilities. Since these gateways usually have constrained resources such as available memory and computing power, the agents are implemented as a light-weight Shell scripts. The ProvisioningAgent and the Profiler are realized as stand alone components with a well-defined lifecycle. Currently they are periodically executed by the OS or Linux Userland (e.g., BusyBox) as Cron Jobs and they mostly perform the tasks issued by the controller, inside the devices. Additionally, uGovOps provides a GovernanceAgent. It comprises a generic part (a.k.a the Mapper) and a preinstalled governance capabilities such as the Capabiltiy Manager (cManager). The Mapper is implemented as an extension to a light-weight httpd server and its main responsibility is to dispatch the incoming requests(invocations) to the capabilities.

Clone this wiki locally