Introducing Eclipse fog05
16 March 2018
Fog computing aims at providing horizontal, system-level, abstractions to distribute computing, storage, control and networking functions closer to the user along a cloud-to-thing continuum. Whilst fog computing is increasingly recognized as the key paradigm at the foundation of Consumer and Industrial Internet of Things (IoT), most of the initiatives on fog computing focus on extending cloud infrastructure.
As a consequence, these infrastructure fall short in addressing heterogeneity and resource constraints characteristics of fog computing environments.
Eclipse fog05 defines a set of abstractions to unify the compute, storage and communication fabric end-to-end and thus allow applications to be managed, monitored and orchestrated across the cloud to thing continuum.
The abstraction used by fog05 to provision, manage and orchestrate applications, or network functions, is the entity. An entity is defined as either an atomic entity, such as a Virtual Machine, a container, a Unikernel, a binary executable, or a Directed Acyclic Graph (DAG) of entities (see Figure 1). Where the set of atomic entities supported by fog05 can be extended through plugins.
Entities and Atomic Entities have a FSM that defines the legal state transitions. These FSM have been defined to be sufficiently generic to encompass essentially any kind of atomic entity ranging from a VM to a binary executable. Entities may define a deployment affinity w.r.t. to each other as well as with respect to compute, storage, I/O and accelerators such GPUs and FPGAs.