PixelNetworks/

PixelCore

Core of Pixel Networks

PixelCore V3 is a Universal IoT Platform which allows simple & powerful IoT devices & data management and significantly simplifies IoT applications development. It is also supplied with a set of powerful Applications which allows instant deployment and use. 

Key features 

     Multi-technology support with Bridges (LoRaWAN, MQTT, BLE, etc)

    Device Management and Control with Device Drivers

    Unified IoT data representation layer with Data Schemas

    RPC mechanism for controls & device function calls

    Notifications, integrated with SMS, Whatsapp, Email

    Historical data storage

    Users & user profiles management

    Generic and media files storage with Media Server API

    Apps off-the-shelf: Admin, Monitor, Board, Report, Task

    Business Logic Dispatcher module

    Pixel LoRaWAN Network Server

    Modern GraphQL API for Web applications 

    gRPC API for high speed data communication

Architecture overview

The Platform is built around its core component PixelCore which integrates data storage and data processing capabilities with a flexible and easy to use message bus functionality. Data from IoT Devices are being injected into the Platform with the help of the Bridges and Device Drivers and then being stored, processed with Business Logic modules and presented to the end-user in native and 3rd party Applications.


Platform technologies

The platform is built using high performance and industry standard components on the backend side and provides a modern and powerful set of APIs available for its services to achieve high performance from one hand and extensive functionality from the other.


Platform core 

The Platform in its Core leverages The World's Most Advanced Open Source Relational Database - PostgreSQL. It allows structured but very flexible data storage including high speed processing and very rich functionality exposed to other components of the system via APIs. Platform supports two types of APIs, namely gRPC and GraphQL,  which can be used for two typical use cases.

gRPC API is a high-performance Southbound API with functions set optimized to high speed processing of  device data flow and device control functions.  

GraphQL is a modern and powerful API technology with a rich set of functionality which makes it a perfect fit for UI and business logic implementation. GraphQL is used as a Northbound API.


Device data

The Platform is designed with two types of Core components which support interaction with IoT Devices: Network Bridges and Device Drivers. Network Bridges  enable support of various communication technologies (LoRaWAN, MQTT, BLE, ModBUS, etc) and provide a way for external IoT data to enter the Platform. Bridges support essential two-way communications.

Bridges handover data to Device Drivers. Device Drivers provide device specific data decoding and push decoded data into the Platform.

Device commands

Bridges expose RPC API within the Platform to manage physical devices (provisioning, generation of downlink and ingestion of uplink messages, other technology specific features). 
Bridges and Device Drivers expose RPC API functionality within the Platform. In the Bridge’s case RPC API allows to perform technology specific functions, like provision/deprovision devices, push downlink and forward uplink messages and some other technology specific features as well.
In the Device Driver’s case RPC API allows to perform device specific functions, like configure device, decode uplink and encode downlink messages according to device specification and other device specific features as well.
Bridges and Device Drivers use gRPC API to communicate to each other via the Platform.

Bridges & Driver combos

Bridges and Driver Packs can be combined to meet the deployment requirements. Same Driver Pack can manage devices thru one or few Bridges (assuming same technology is used). At the same time one Bridge can feed the data to one or few Device Driver Packs.


Multiple IoT network

Bridges are very powerful tools which can be used to connect PixelCore to multiple IoT networks and compose sophisticated configurations. That allows Platform users to cross-link sensor data from different  domains and therefore have a more precise picture of the actual situation.


Federation

PixelCore supports federation approach when dedicated instances of the Platform can be used jointly within a single deployment. That allows it to distribute load processing across multiple servers, move workload closer to the corresponding IoT networks and have a finer control over data flows and data processing.



Business logics

The Platform is powered with easy-to-use and customizable component:  Business Logic Dispatcher. Dispatcher is responsible for all Business Logic  implementation within the Platform (for all off-the-shelf Apps). However stand-alone BL modules are also supported. Dispatcher provides a convenient framework allowing a developer to be focused only on business logic itself and takes care about all infrastructure overhead - authorization, scheduler, messages subscription and other. 


3RD party integration

Having two industry standard APIs implemented PixelCore provides easy-to-use 3rd party integrations.

Sending information

One of the important features of the Platform is Notifications support and Notifications delivery. Notifier is a module which listens for generated Notifications and provides multiple delivery options for the users. Essentially it records delivery status for further study if needed. Notifier supports SMS, Email, Whatsapp delivery options out-of-the-box with the help of Twilio Integration. Notifier is implemented under the Business Logic Dispatcher framework and is easily expandable to support other technologies.

Object data structure

In PixelCore all entities from the physical (and not only) world like devices, sensors and gateways are represented as Objects. Object structure is defined with the help of  Schemas. Schemas and Objects are connected during a full Object’s lifecycle - change of Schema leads to automatic update of Objects created with this Schema. Objects usually represent Devices, Media, Datasets and Applications.  Objects are used to represent the actual status of an entity and also have associated historical storage.


PixelCore data units

In addition to Object records, the PixelCore  makes it possible to store and use supplementary information. This allows one to conveniently manage and share IoT data without involving the resources of third-party platforms and applications. However, integration with external platforms is also possible. 



Deployment types

PixelCore can be deployed in PixelCloud or on a Customer’s Server (depending on the amount of data and traffic load):
4 Core 2.3Ghz+ CPU
1Gb+ RAM
50Gb+ HDD space