Research and development of the bIoTope project technologies has continued through May 2019. The project partners have published in open source many of the new components that can be used to develop and deploy new smart city IoT applications and services.
The following provides a summary of the technologies that are available for download from the bIoTope GitHub Repository.
Key bIoTope Components
O-MI Node Server
The Open Messaging Interface (O-MI) defines a message envelope, whereas the Open Data Format (O-DF) specifies the content. O-MI and O-DF are independent, but generally suggested to be used together. A service that provides O-MI enveloped communications is called an O-MI node. An O-MI node acts as a peer-to-peer communication entity. A smart IoT device can also act as an O-MI node to the external world. A larger O-MI node, for example an aggregator that collects data from multiple IoT devices, is typically set up in a cloud or dedicated server, hosting a database. O-MI provides three possible operations: read, write and cancel. A read expects immediate response from the node. A read is also used to create a subscription, where data is retrieved in deferred manner. A write operation can be used to publish and discover new data sources, services and metadata.
KnaaS (Knowledge as a Service) component
Aims at providing a conceptual reference architecture for the knowledge discovery and sensor fusion in the future IoT. To do so, KnaaS makes use of Node-RED's flow-based programming interface along with advanced scientific computing and data science libraries. To enable the execution of these knowledge discovery libraries from the Node-RED's visual programming interface a Python Function Node is provided. As a result, most of the scientific computing and data science libraries that offer a Python API become accessible in a unified manner inside the KnaaS framework. Special consideration was given to the integration of Semantic Web Technologies and a SPARQL Query Node is included that allows the direct extracting of knowledge out of SPARQL endpoints. KnaaS also offers a Web-based Python IDE that facilitates the Python coding process. The code can be saved and stored in a way that it is easily read by the Node-RED environment.
UIaaS (User Interface as a Service) component
Aims at identifying the user interaction patterns and user interface widgets for IoT. UIaaS further aims at distributing these user interaction patterns and the user interface widgets in a user friendly manner, that are easy to use, via a graphical tool for both the end users and the UIaaS developers. UIaaS strives for providing an envoirnment for UIaaS developers for data integration with the existing Linked Data technologies. UIaaS also targets at developing context-sensitive dashboards that can self-adapt the contents and layout, while using the IoT based identified interaction patterns and widgets. In order to distribute such a tool, UIaaS uses Node-RED's flow based development environment for UIaaS developers to quickly assemble such context sensitive and semantically enriched dashboards. UIaaS also uses Node-RED Dashboard alongside Node-RED in order to provide such user friendly end-user dashboards.
Coaas (Context as a Service) component
Enables global standardisation and interworking among different context providers and consumers in IoT environments. CoaaS provides context management and contextual reasoning based on a range of inputs, including IoT data. It searches for data sources in the Marketplace/Service Catalogue and collects data from the respective O-MI nodes as well as from registered context providers, for example a parking facility. Context requests can then be made using CDQL (Context Definition and Query Language), which is developed to suit the specific needs of IoT applications using context queries. The requesting system then receives O-DF as response. Custom CDQL functions are also available via a simple RESTful API.
BaaS (Billing as a Service) component
Allows micro-transactions between different entities when building IoT apps and services. BaaS has been designed to be used mainly by the bIoTope Marketplace / Service Catalogue for providing to its users a way to sell and pay for IoT data and services. BaaS is based on the Lightning Network technology, which is a layer 2 technology of Bitcoin proposed as a means to scale and permit microtransactions in the Bitcoin network. The component technologies are provided in two parts: the front end (gui) and the backend (Bitcoin core, Lightning Network and API manager) in the form of Docker and grails.
Marketplace/Service Catalogue component
This component has been developed as a marketplace that serves as a service catalogue within the bIoTope ecosystem. The marketplace was developed as a means to assist the two stakeholders of the ecosystem: 1) IoT data/service produces/publishers; and 2) IoT data/service consumers. The marketplace permits searching and consumption of IoT generated data streams or services with potentially the objective to re-use them in providing further IoT based services and functionalities.
Key bIoTope Enabling Technologies
O-MI/O-DF RDF Integration Server
OORI is server that is able to monitor the values of O-DF objects on multiple O-MI nodes. To do this, it makes use of O-MI's subscription functionality. The O-DF structure is converted into RDF format using the O-DF ontology and stored to a SPARQL endpoint. As a result, the current values of a subscribed object are at any time available for querying in the SPARQL endpoint.The project has two main contributions: 1) A server exposing HTTP methods that allow to register O-DF structures that should be constantly converted and stored to an RDF triple store; and 2) an RDF ontology that defines classes and properties to describe O-DF structures. It is used by the server to perform O-DF conversion into RDF.
An open vocabulary for future-oriented mobility solutions that has a goal to significantly improve the data mobility between all stakeholders by providing a standardised vocabulary using Semantic Web technologies and ontologies. For the open vocabulary covering various mobility aspects RDF (Resource Description Framework) is used - a recommended specification of the World Wide Web Consortium (W3C) and the so-called lingua franca for the integration of data and web.
Further bIoTope project technologies are available for download from the bIoTope GitHub Repository.