One of the objectives in the project is to develop a high-level debugging tool which allows developers to trace events and interactions between distributed components.
Event Management is a crucial function in the IoT ecosystem in general, enabling both loosely coupled communications and data management. In highly distributed systems involving large numbers of devices and actors, the possibility of doing event traceability and debugging is important. For this reason the IMPReSS platform researches and designs mechanisms and tools that support the developers tracing and debugging event patterns and event history, using the LinkSmart event processing architecture. As the first cycle in the project has come to an end, an initial prototype of the IMPReSS Event Debugging Tool has been developed.
There are two basic parts of the Event Tracing and Debugging Tool:
1) The Event Manager Eavesdrop: Provides the functionality of listening to and processing all events passing through an Event Manager. This also contains a simple browser with query capabilities.
2) The Event Network Browser: Provides functionality to query which events have been created or consumed by individual event consumers/producers.
We will here present only the Event Network Browser. For information on the Event Manager Eavesdrop you may download the deliverable D7.4.1 Initial Design and Implementation of the IoT Event Debugging Tool.
The Event Network Browser part of the Event Trace and Debugging Tool provides functionality to look inside individual event producers and consumers to see which events they have created or consumed. This is very useful when debugging complex event problems where it is not clear who created the event and who consumed it. Typically this functionality can be used to pin point which component is not behaving as expected, i.e., not consuming or creating the correct events.
Applications for energy management systems are the primary interest for the theatre. Any management system will be an improvement over the present status.
The Event Network Browser part uses functionality in LinkSmart to find and connect to the different event consumers and producers that are part of the LinkSmart network, see the figure below.
The basic principle used by the Event Network Browser is that it uses the Application IoT Resource Catalogue, which is part of LinkSmart, to find all the LinkSmart based event producers and consumers currently on the network. Using the information returned from the catalogue the Event Network Browser is able to contact the individual producers and consumers.
To allow the Event Network Browser to query the producers and consumers, a new service has been created within the LinkSmart IoTResource class library which exposes a Web Service and REST interface where queries on events created or consumed can be made, see below:
All LinkSmart IoT Resource based components will automatically get this added functionality without changes to the original IoT Resource. It only requires the developer to update the LinkSmart libraries used. Note also that this functionality not only provides the interface but also provides the actual storage of events created or consumed.
The Event Debugging and Tracing Tool provide a simple web based interface for browsing for IoT Resources and to look at events created or consumed by the resource.
The information shown in the tool contains the resource name, the resource type and a link to show the events processed by the resource. Clicking Show Events will display basically the same event browsing tool used by the Event Manager Eavesdrop, but with the exception that filters for received or sent events can be selected. The information displayed is retrieved directly from the IoT Resource itself using the Event Query Interface.