The Internet of Things (IoT) is the interconnection of the physical and digital world utilizing sensors and actuators to automate, personalize, and otherwise increase the efficiencies of everyday tasks. This new paradigm introduces endless applications for enhancing the daily lives of ordinary people as well as mechanical processes in industry. Not since the advent of the industrial revolution or the birth of the World Wide Web has such a disruptive and revolutionary technology unleashed so many possibilities.
There are literally millions of applications enabled by the IoT, from smart agriculture, environmental monitoring, fitness tracking, automated assembly lines and even 'smart' homes. Each of these promises greater efficiency and convenience, making the proliferation of the IoT economically lucrative as well as potentially humanitarian in nature. You can find many potential application examples here and here.
The primary goal of Constellation is to make a fully realized Internet of Things more attainable through the creation of new absractions and mechanisms that extend traditional OS functions into the physical realm. The list below provides just several finer points that are a part of this vision.
Part of what makes the Internet so versatile and dynamic is the fact that application users and programmers are able to interface with it without having to be concerned with the underlying implementation details. The OS, network stack, and DBMS systems are all transparent to the user because the servers do the work of translating simple yet expressive HTML and XML/JSON code into the underlying operations on the back end. This architecture is often depicted using so-called 'hourglass' diagrams like the one to at right, depicting the various layers of abstractions that allow such a robust and modular system to be possible.
Constellation borrows heavily from this idea in its development, being made up of three primary layers. The top layer, a declarative query language called CQL (Constellation Query Language), and the bottom device driver layers, provide the write-once-run-everywhere interoperability expected from the Internet while the middle layer, the semantic OS, provides dynamic optimizations to ensure efficiency while also managing real-time constraints. The total sum of these three components is a robust, efficient, real-time system capable of meeting the demands of the IoT.
Applications interface with Constellation via the declarative query interface, which our semantic runtime translates into underlying device driver calls based on its knowledge of the local semantics. Constellation is comprised of a P2P network of compute nodes located on the edge of the network, near users. Each node is responsible for the IoT devices in its vicinity. Applications can interface with this network from potentially anywhere, cloud or edge, as in the figure below.
We have an exciting set of collaborations currently in the works that we are anxious to unveil very soon. Check back later for more details!
We are grateful to and would like to acknowledge all of the sponsors and other supporters who have helped make this research possible. Below are just a few we would like to especially call attention to.