SkySpark by SkyFoundry

3. Architecture

Overview

SkySpark is used to manage data for the Internet of Things: the explosion of networked smart devices which sense and control the world around us. SkySpark is designed to manage your devices, assets, and the data they collect for analysis and visualization.

There are three main subsystems of SkySpark:

How It Fits Together

The following diagram illustrates how these subsystems fit together:

skyspark-arch

The skyspark executable launches the SkySpark server daemon. The server is bundled with a web server which opens a HTTP port. Web requests to the REST API can be used to query the SkySpark database and execute analytic queries. The server also publishes the data for human consumption via a set of Fresco web pages. Extensions running in-process can be used to synchronize data with external databases or web services.

Extensions

The core of SkySpark is application domain agnostic. You can use it to build any type of application which stores, analyzes, and visualizes data. The real power of SkySpark is the ability to extend the core platform with new functionality via extensions.

Extensions are Fantom pods which extend the platform with customized:

SkySpark ships with "batteries included" - a rich library of horizontal and vertical extensions. Here are a couple of the most important ones:

In addition to the extensions which are included in with SkySpark, you can write your own custom extensions.