Approach & Architecture
CHARIOT project aims at exploiting the added value of the holistic networking of IoT through a semantic middleware concept. CHARIOT devises a runtime environment for integrating a number of heterogeneous resource-constrained devices and sensors communicating with various protocols, a scalable and dynamic communication infrastructure abstracting the connected devices and enabling the spontaneous interactions within a large-scale network, a semantic data layer recognizing the meaning and purpose of things relying on devices, knowledge management layer introducing the intelligence through the learning in the autonomous entities and transferring the obtained knowledge among entities, an SDK facilitating the integration of devices ranging from basic to sophisticated devices or software entities as well as human actor, a service planning and orchestration component offering a flexible, context- and location-aware as well as error-resistant planning operations, and finally tools for monitoring, maintenance and control of services’ interactions.
CHARIOT Components
Device Abstraction – Runtime Environment
One of the main challenges in designing an IoT middleware is dealing with the heterogeneity of devices, their data formats and various communication protocols, which hinder the overall integration. CHARIOT middleware employs the concept of Runtime Environment (RE) to abstract the functionalities and communication interfaces of each IoT device. REs establish a bridge between the physical devices and CHARIOT middleware, and transmit the abstracted device models to the IoT middleware through a secure communication channel. RE encapsulates the available IoT gateway solutions such as Kura and IOLITE, as well as the Robot Operating System (ROS) and many others. This allows resources-constrained (“primitive”) devices that are connected via one of those gateways to be easily integrated into the CHARIOT Middleware. In addition, CHARIOT RE is also capable of managing resourceful (“complex”) devices using its own APIs without relying on an IoT gateway.
Communication Layer
Communication layer in CHARIOT is responsible for establishing communication between the devices and the services. Data communication infrastructure consists of the communication interfaces between CHARIOT components, a distributed and scalable directory service and a semantic search component that enables searches inside the directory service. Message formats define the process of integrating a device to CHARIOT, and how this device can be used by other components inside the CHARIOT platform. A generic Message-API library is implemented for the specified communication protocols, which can be used by all communication partners to facilitate integration. Communication layer includes a service directory (SD), which is the central component that contains semantic descriptions of all managed services and devices. A semantic query mechanism is designed and implemented to the service directory to ensure an exact matching of relevant services, devices, and platform components. Finally, an OpenSSL based solution is used to realize a secure P2P communication between these agents that represent devices and services in the middleware.
Semantic Data & Services
Key aspects of the IoT, the domain CHARIOT is focusing on, are heterogeneity and dynamics, or in other words: Within the IoT, various devices with their own data models are connected in a time-variant manner. Therefore, an adaptive CHARIOT framework has to be able to automatically and semantically process devices and services. The Semantic Search and Data module provides the basis with a specification language along with a reasoner especially for the IoT needs, a taxonomy, an ontology matcher and lastly, a service matcher. Specification language describes IoT entities such as devices and services within the CHARIOT middleware as well as involves the context and QoS descriptions, whereas the taxonomy has to divide the generic and extensive IoT domain into more specific and usable subdomains with reasonable categories. Reasoner is responsible for inferring logical consequences on a set of asserted facts and axiom. Reasoner deals with the classification relying on the three processes, namely, consistency-, satisfiability- and subsumption-checking, and answers queries and retrieving instances, sub classes or super-classes of given anonymous class expressions. Through the ontology matcher two different ontologies can interchange the data. Using semantic queries the service matcher, extended version of SeMa² focusing on IoT domain, is able to find appropriate services for a requester considering their context. Semantic matcher relies on the established OWL-S ontology and extend it by QoS parameters and explicit contextual information.
Knowledge Layer
CHARIOT middleware supports individual devices to learn new knowledge (e.g. event processing) and to share it with all other IoT entities and the applications. For that, it provides a knowledge manager service, configurable and general use machine learning libraries, computational resources, a data store and an API for easy access. The knowledge manager service manages the storing, retrieval, learning and processing of the data. It enables publish/subscribe and request based data transfer within CHARIOT, and allows complex event processing in order to respond fast to the continuous events that require real-time analysis. CHARIOT knowledge layer orchestrates the data through user defined meta labels (i.e., device/service/data models) to establish communication between heterogeneous entities. ML component and the data store, we call the learning engine, operate on the CHARIOT cloud and provide interfaces for easy access and configuration of ML algorithms that are for generic purposes. Hence, any IoT entity can access any raw or processed data within the CHARIOT framework.
CPS Layer & Human Integration
Cyber-physical systems (CPS) radically change the way how production systems are being considered, deconstructing rigid production organizations and promoting a truly interacting system with all the production components cooperating and collaborating with each other. The integration of human actors as native entities of a CPS is also crucial in realizing the smart factories. CHARIOT creates well-defined interfaces between human operators and CPS components to enable automated machines to understand and interpret complex human characteristics, and help human actors in recognizing the device attributes and functionalities. All IoT components are represented with data models that stored in a service directory in a common format. In this work package, these data models are created for simple and complex devices, service agents, and a human data model is developed for human integration into CHARIOT middleware. These data models mainly contain properties, functionalities, and communication protocols. The human data model is extended with additional classes to capture the complexity of customized human actors.
Service Planning and Orchestration
The planning component in CHARIOT enhances the system with automated service composition capabilities. The planner detects available devices and services in order to create a service composition that meets the requirements of the application or user by searching the state space. The planning process passes through four phases: Discovery, Analysis, Planning and Execution. During the discovery phase, a request is sent to the Service Matcher (SEMA) component, which is connected to the Service Directory (from WP 3), which then returns the semantic service descriptions of the available devices and services. The search space is then generated during the analysis phase using the semantic description (defined in WP 4) of the available IoT entities. The inputs, outputs, preconditions and effects of the different instances of the CHARIOT platform are connected to form a directed graph. The current planner uses a graph search to find a pareto-optimal solution and Hierarchical Task Networking (HTN) planner to fasten the planner response by decomposing the overall goal in smaller targets. The result of the planning is a service composition, or a chain of services with the corresponding input and output parameters. This service chain is transferred to the service interpreter, who carries out the actual service calls.
IoT Engineering – Service Development Tools
The development tools facilitate the creation of services and applications in the Chariot IoT middleware. For this purpose, we provide a set of tools in an appropriate tool-suite, which are integrated in an Eclipse environment and provided in a Docker image. The tools offered in the service creation domain are mainly: Semantic Service Manager (SSM), Visual Service Design Tool (VSDT) and JIAC Interpreter Agent. These tools are adapted and integrated into our service development methodology, by which service providers / developers would be able to create and register new services into the Chariot IoT system. The SSM tool provides a user interface to describe services semantically, by specifying the name, description, IRI address and IOPE (Input Output Precondition Effect) parameters of a service. Having defined the semantic information of the service, an OWL-S file is generated, which can be loaded into the Chariot service registry or imported into a pre-modeled service process. Additionally, SSM can be used to trigger semantic search by invoking a semantic matchmaker component. By this way, it enables to find existing semantic services in the Chariot platform to be used in modeling complex service compositions. The VSDT provides a graphical editor that enables to orchestrate individual semantic services into complex and value added service processes based on the standardized Business Process Modeling Notation (BPMN). The created BPMN diagrams, representing the service compositions, can be validated and transformed into executable languages such as BPEL and JIAC codes by using the VSDT. Lastly, we provide the ASGARD (Advanced Structured Graphical Agent Realm Display) tool that allows to monitor the already deployed and running Chariot IoT services on the JIAC runtime environment via 3D live view.