Documentation

 


Why would you use SpinalCore or the BOS® (Building Operating System)


Because you need a flexible and evolutive software technology that enables a common infrastructure for all your connected devices, applications and systems... SpinalCore enables you to build your distributed IoT/IoE solution at the edge of the network.

If you need one or more of the elements listed, SpinalCore is the right solution for you :

  • A fast and flexible solution that helps you build a connected system in a few minutes
  • A reactive and automated solution for data/object replication over the network
  • A generic and powerfull design that helps you create a robust intelligent system easely
  • An integrated solution that contains an operationnal database, a replication system, an event manager system...
  • A data-mangement middleware that works on IoT gateways, development boards, small servers...

What is fog computing


Fog Computing Architecture


The fog architecture is an intermediate layer between field applications (sensors, actuators, UI...) and the cloud. The principle of fog is to complement the cloud (centralized architecture) by a distributed set of autonomous micro systems, allowing the repatriation of intelligence at the edge of the network.


The embedded platform SpinalCore gives you the opportunity to build these micro-systems, and to answer to many issues:

  • Responsiveness: localized management, automation and data analysis at the edge
  • Control: SpinalCore increases level of security thanks to the local mastery of exchanges with the Cloud
  • Resilience: SpinalCore micro-systems are autonomous, they continue working when the connection is lost
  • Network congestion: SpinalCore allows local analysis and filters on data. Only relevant data is sent to the cloud
  • Smart Data: SpinalCore manages data heterogeneity and links between data. You perform the complex heterogeneous computing locally and send aggregated data to a cloud platform that will perform big data analysis


What is an intelligent micro-system ?


Intelligent micro-system overview


SpinalCom develops SpinalCore, a micro-middleware that allows you to create micro IoT intelligent systems based on a Fog Computing Architecture. Our definition of an intelligent system is the following: " An intelligent system is a system that contains a representation of reality and that is composed of a network of organs that allow to act on this representation and to make this representation interact with reality. "


Important definitions:

  • Digital Twin : the digital Twin is the name we give to the representation of reality.
  • Organs system: this is the name we give to the network of organs
  • Nerve center: this is a specific organ of the system that has two roles:
    • It ensures the coherent transmission of parts of the digital Twin between all the other organs
    • It contains the digital Twin structure


Analogy with the human body


An analogy with the human body can explain our concept. An intelligent system consists of several organs connected thanks to a nervous system. SpinalCore acts as this nervous system and gives you the building block that facilitates the constitution of your intelligent micro-system. We distinguish several types of organs, the interaction organs (sensors, actuators, UI) and the intelligent organs (database, analytics):

  • Connected sensors and actuators: They allow to measure or act on the external environment.
  • User interfaces: They can be seen as complex sensors and actuators that transmit and measure rich information from the user.
  • Data base: cloud or local, they act as the long range memory of the system.
  • Analytics: the set of analysis applications and data processings (calculations, statistics, machine learning, filter...)

The nervous system (SpinalCore) orchestrates and manages transmitted data and provides a short range but fast memory. It is composed of three building blocks:

  • the "nerve center": it acts as the "spinal cord" of the system. It transfers the data, manages system events and stores the data states
  • the "nervous endings": they act as the link between specific organs and the nervous system. They transform the data and know how to replicate them with the nerve center
  • the "network of nerves": It carries information and data between the organs


SpinalCore Organ System



Based on the former analogy we can now describe the organ system architecture of SpinalCore and define each component of the solution. SpinalCore is composed of three building blocks:

  • SpinalHub (the "nerve center"): data transfer, system events management and an object oriented in memory database that stores the Avatar.
  • The connectors (the "nervous endings"): they contain the libraries used for object replication with SpinalHub and a micro-database that stores a replication of part of the digital Twin.
  • the IP network: It acts as the "network of nerves". The communication between the connectors and the datahub is bidirectionnal.

Each specific Organ of the system is composed of: 1 connector + 1 specific process

We distinguish four kinds of specific processes (and organs):

  • the connected things: the sensors and actuators, they allow interaction between the real word and the digital Twin
  • the user interfaces: they act as complex connected thing (as the face in a human body). They allow complex interaction between the real users and the digital Twin
  • the database: they act as the long term memory of the intelligent system or as an external source of knowledge for the system
  • the analytics: they can transform, filter or analyse the digital Twin in order to understand or to add value to the system


SpinalCore Digital Twin and Object Management

Many other terms can be found in the literature to describe this digital Twin:

  • the digital twin
  • the representative model...

The main objective of SpinalCore is to help you to build and use a fine and evolutive representation of reality, in terms of shape, behaviour, description... This has lead us to imagine SpinalCore Micro-middleware as an object management platform that enables a precise, coherent and reactive management of the Digital Twin.

Object Management Platform (OMP)

SpinalCore Object Management Platform helps you to build a real-time data (object) network over the organ system. The important point is that SpinalCore does not replicate data but objects. This means three things:

  • The DataHub maintains an in-memory object database and implements an event manager and an observer system
  • Each connector maintains an in-memory micro object database and an event manager
  • SpinalCore implements an object replication mechanism that automatically synchronizes and rebuilds the avatar (or part of it) in the native language of the organ (Javascript). Replication between organs are automatically launched when a modification is detected. Replications are made at the fine granularity level of the node in order to optimize data transfer in the system.

This mechanism allows reactive data exchanges inside the system. It facilitates and accelerates the development process and improves the system robustness by ensuring a consistent replication of the avatar across the organs.

Tutorials