OpenIoT is a simple-to-use open source application, which connects all the sensors that use cloud technologies to make them an extension of your IoT application.
Everyone knows that the Internet of Things (IoT) is competing with other technologies due to its platform-independent and robust characteristics. More importantly, IoT now assists the cloud computing platform due to its scalability and easy access to sophisticated hardware.
This convergence of IoT and cloud architecture has not only dominated the research domain but also the enterprise sector, for the past few years. The thing that makes these two completely versatile ideas compatible with each other is their capability to simultaneously manage the application, the user interfaces and the data stream, especially in a high performance support structure. However, these combined structures might not necessarily support semantic interoperability across IoT implementations, which are mainly required to be sustainably independent from each other. Therefore, it might not be valid to decide which of the approaches is the most efficient in order to bring together data streams and services provided by diverse IoT platforms that feature incompatible semantics due to cross-platform compatibility (e.g., units of measurement, raw sensor values and points of interest).
Open IoT bridges this gap between the semantics and data computing to form a unified semantics for IoT apps in cloud interfaces. Open IoT uses the W3C Semantic Sensor Networks (SSN) ontology as a generalised standard model for semantic unification of diverse IoT systems. It offers versatility in its infrastructure for gathering and semantically annotating data from any I/O device available. Open IoT also has a special feature that can easily help to link data sets with each other, depending upon their similarities. As a consequence, it can dynamically deal with the specific data stream that is also compatible with mobile sensors, even without extraneous interfaces. It provides a huge range of graphical interface tools, which enables the deployment of cloud based IoT applications, minimising the programming effort.
Open IoT is currently available as an open source project (https://github.com/OpenIotOrg/openiot/). It also integrates libraries of the popular Global Sensor Networks (GSN) open source project. Recently, Open IoT was given the Black Duck award for being one of the top ten open source projects.
The OpenIoT platform
The Open IoT architecture comprises seven main elements.
1. The sensor middleware (Extended Global Sensor Networks or X-GSN) is firmware that provides us with the means to collect and analyse data streams. The sensor middleware is applied to the data to form the diverse administrating entities. The OpenIoT prototype implementation uses X-GSN (Extended GSN), an extended version of the GSN middleware. Besides, a mobile broker is used for integrating the mobile sensors with the middleware.
2. The cloud data storage (Linked Stream Middleware Light, LSM-Light) acts as a cloud database which ensures storage of large data streams coming up from the sensor middleware. The cloud infrastructure also supports working on metadata of all the data streams in OpenIoT. The OpenIoT prototype implementation uses the Linked Stream Middleware (LSM), which has been re-designed with push-pull data functionality and cloud interfaces.
3. The scheduler process requests for the on-demand provision of services, and ensures that it gets sustained resources for processing. It can use the services to find out resources that are compatible with the specific service.
4. The service delivery and utility manager (SD&UM) combines data streams as indicated by service workflows within the OpenIoT system in order to deliver the requested service (typically expressed as a SPARQL query). The SD&UM also acts as a service metering facility, which keeps track of utility metrics for each service.
5. The request definition component enables the on-the-ﬂy specification of service requests to the OpenIoT platform. It comprises a set of services for specifying and formulating such requests, while also submitting them to the scheduler. This component is supported by a GUI (graphical user interface).
6. The request presentation component is in charge of imagining the rough idea of the outcome of all types of services. This component takes a few combinations of services and libraries to facilitate the representation.
7. The configuration and monitoring component equips us with graphics management and the configuration of functionalities over services and sensors that are deployed within the OpenIoT platform.
OpenIoT has provided an innovative platform for IoT and cloud convergence, which enables:
- Integration of IoT data and applications with cloud computing infrastructure
- Deployment of and secure access to semantically interoperable applications
- Handling of mobile sensors and associated QoS parameters
The semantic interoperability functionalities of OpenIoT are a key differentiating factor of the project when compared to the wide range of other IoT and cloud platforms. These functionalities provide a basis for the development of novel applications in the areas of smart cities and mobile crowd sensing, while also enabling large scale IoT experimentation.