System Architecture
BIS architecture diagram (zoom on the building scale)
At the building scale (intermediate scale of the overall system), the architecture of the Building Information System (BIS) is represented by the diagram below:
The detail of the elements of the heritage layer (above) and of the terrain or Edge layer (below) are not shown. The detail of the schematized building information system (BIS) includes the following elements:
The SpinalCore BOS, the heart of the platform, which performs the functions of transverse management of system data and the management of the digital twin
An SDK allowing the development and deployment of services connected to the BOS and orchestrated by the BOS
A suite of services / micro-services divided into several categories:
The API gateway to third-party IT services of the legacy layer or the building layer
The API gateway (or driver gateway) to third-party OT systems in the field layer
Native building layer applications built directly on the basis of the SpinalCore SDK
Data sources for the building layer (BIM, DOE, Occupancy, room reservation services, agenda, etc.)
Important definitions
"AEP": Application Enablement platform. This term refers to all the components of the platform to facilitate the development of new applications running on top of the BOS (native applications) and to minimize the cost. The SDK (see definition below) is an essential part of an AEP.
"API": a standardized set of classes, methods or functions that serves as a facade through which the software offers services to other applications. Within the framework of the BIS, we distinguish two types of API:
"Native APIs": APIs developed on the basis of the SpinalCore SDK which present data managed by the BOS
"Third party API": API of third party systems that will be used by native BOS connectors
"API gateway": The API gateway is the heart of the API management solution. It acts as the only input into a system that allows multiple APIs or micro-services to act consistently and provide a uniform user experience. In our framework, the API gateway brings together all the native APIs of BOS Spinalcore.
“Application”: computer program (or set of software) directly used to perform a task, or a set of tasks. We distinguish two types of applications:
“Native applications”: Applications developed on the basis of the SpinalCore SDK in direct relation with the BOS
“Third Party Applications”: Applications developed by third parties, which do not operate on the basis of the BOS SDK and which can be connected, via a connector or an API, to the BOS.
« BOS or Building Operating System » or SpinalCore : software platform developed and marketed by SpinalCom. This includes the SpinalCore object-graph datahub, the SpinalCore SDK, an administration interface, a distributed event orchestration system, a data replication and synchronization system, an open source data model library. Can evolve ...
« Connector » : software or part of a software performing the interaction, the exchange of data between the BOS and an application or other information system. We distinguish two types of connectors:
Native connectors: native connectors developed directly on the basis of the SpinalCore SDK. They connect to third-party APIs to establish the link between the BOS and a third-party application.
Third-party connectors: connectors developed by third parties. They connect with a native API to create the link between the BOS and a third-party application.
"Digital twin": a data model representative of the physical description, the actual condition, the history and the behaviour of a building or more generally of a physical asset at all times.
"Software": all the programs and procedures necessary for the operation of a computer system.
“Native software”: software developed on the basis of the SpinalCore SDK, natively coupled to the BOS.
“Data model”: Model which describes in an abstract way how data is represented in a business organization, an information system or a database. As part of the BIS, we distinguish:
Native data models: described and developed as part of the SpinalCore SDK. All native data models are open source
Third Party data models: described in the Third Party APIs or in the specifications or documentation of third party applications.
"SDK": a Software Development Kit (SDK) is a set of software libraries, documentation and tutorials to facilitate the creation of new software in a defined environment. The SpinalCore SDK allows you to create new software (applications, APIs, Connectors, data models…) natively compatible with the SpinalCore BOS.
"Building Information System or BIS": complete system shown in the diagram above. The BIS brings together the BOS and all the software connected to the BOS: Applications, Analytics, connectors, API ...
"SpinalTwin Suite": corresponds to all the native software (Applications, Analytics, connectors and APIs) developed and marketed by SpinalCom that allow interaction with the data of the digital twin. All Software in the SpinalTwin suite is native software, developed based on the SpinalCore SDK.
Software kernel (Kernel), parallel with the PC
A system kernel (or simply kernel, or kernel) is a fundamental part of the operating system.
Under BOS, a managed asset is not "just" a computer (a system) but a building that itself has subsystems (a system of systems). In other words, the BOS is a "virtual OS" that must communicate, orchestrate and manage data coming from other distributed systems in the building.
As part of the operating system, the kernel provides:
Hardware abstraction mechanisms: sensors, actuators, controllers, structure, furniture, building equipment, complete building. The digital twin brings this abstraction.
Information exchange mechanisms between software and hardware devices (via API or SDK). The kernel also enables various software abstractions and facilitates communication between processes and process orchestration.
The core of an operating system is itself software. As part of the BOS, this is the SpinalCore data hub having:
Semantic graph management skills to manage the digital twin (or Building Graph)
Real-time or asynchronous management skills to manage “hot” data
Data replication and graph skills to distribute complex data and abstraction mechanisms to other systems ...
Its central role also requires high performance. The SpinalCore kernel therefore implements an “in-memory” database management system and is deployed on servers rich in RAM. This makes the kernel the best performing part of the operating system.
The diagram below shows the different parts of the core:
Functions performed by the nucleus
The core function of the kernel is to manage the digital twin of the building, to manage data flows between applications and to provide an interface between the kernel space and user space programs (SDK).
Besides the functions listed above, the kernel will also provide functions such as:
File systems management
The orchestration of several specialized schedulers (batch, real time, inputs / outputs, etc.)
Nature of BOS SpinalCore
The BOS SpinalCore is a data management platform based on a graph, asynchronous, in-memory and distributed database management system. There are several types of data management platform that the ONA generally classifies into three categories:
Data Lake: A “data lake” is a system or data repository used to store data in its natural format. Invented in 2010 by James Dixon, then CTO at Pentagon, this term generally refers to a single store of all corporate data in the form of files or blobs. Whether it's data from the source system or other unprocessed data, a data lake refers to a large pool of raw data for which the purpose has not yet been defined.
Example: MongoDB DBMS
Data Warehouse : A “data warehouse” is a data storage system used for reporting and analysing data. Also known as an enterprise data warehouse, this type of repository system processes data uploaded directly from a company's operational systems. Unlike a data lake, a data warehouse only processes structured data, which offers storage space and accessibility benefits to a larger audience.
Example : SGBD SQL
Data Hub : A Data Hub, or data hub, is a virtual storage platform. It brings together a set of data from multiple information systems that are homogenized to be redistributed.
The goal of the Data Hub is to provide businesses with a unified, centralized data source, so third-party systems can quickly and easily access the information they need.
Example : SAP Hana
→ The BOS SpinalCore is, according to the previous definitions, a data hub dedicated to the management of physical asset digital twins.
Physical or virtual server
It is recommended to deploy one server per BOS (physical or virtual machine) and to deploy on this server only the BOS and its native applications. This is to ensure network availability, the availability of RAM and more generally of all the resources necessary for the proper functioning of the BIS. The characteristics and expected performance depend on the building on which the BOS is deployed. It is possible, on large buildings, to consider the building as a heritage and to deploy several BOS and a POS.
The minimum skills of the servers to be provided will be as follows:
A Linux OS (Ubuntu 18.04 LTS)
4 Gbit (Gigabit) of RAM minimum per managed building (to be adapted according to the size of the building)
A 4-core processor and 2 GHz minimum
Gigabit network card
RAM and computing power capacities may change depending on:
The size and complexity of the building (number of GTB, SSI points, etc. to be ascertained)
The number of applications deployed above the BOS and their nature
The volume and history of data to be kept in the BOS in-memory database
It will be necessary to dimension the server for each project.