top of page
  • R. C. Sofia

Semi-automated Interconnection of IoT Devices and Services via the EFPF TSMatch Component

This post provides information on the EFPF TSMatch factory gateway component, that is available for use on shop-floors, currently supporting environmental monitoring.

The EFPF TSMatch component

TSMatch is an EFPF open-source middleware solution, which enables end-users to specify IoT services, e.g., environmental monitoring, providing an accurate matching result to existing IoT infrastructures, in a way that is vendor neutral.

TSMatch v2.0 relies on semantic matchmaking based on Natural Language Processing (NLP) with a neural network model to achieve a semi-automated matchmaking between descriptions of IoT data sources (Things) and IoT services. The result is an optimized use of data.


  • Optimized data processing, due to Machine Learning based matchmaking between IoT services and IoT Things descriptions.

  • Scalability, due to the semi-automated matchmaking process

  • Improved Edge-based data aggregation

TSMatch Operation

The main goal of TSMatch is to automate the data exchange between IoT data sources and services which are requested by an end-user.

The overall code can be downloaded in the TSMatch git. Following a client-server approach, TSMatch comprises a server-side component, the TSMatch engine, and a TSMatch client, as illustrated in Figure 2.

The TSMatch Engine: is composed of 2 main functional blocks and several interfaces:

  • Semantic Matchmaking: Performs semantic matchmaking between IoT Things descriptions (stored on a database) and Ontologies. The result is a set of enriched data nodes, which are also stored in a database.

  • Data aggregation: Sensor data aggregator.

  • Ontology interface: Provides support for ontologies to be imported into TSMatch.

  • Connectors: Different connectors, e.g., Mosquitto to RabbitMQ; HTTP/REST, etc.

  • External Service Interface: Interface based on OpenAPI to interconnect to an external service registry.

The input and output of the matchmaking and data aggregation processes are stored on a local Neo4J database:

  • Neo4j Graph DB, storing Things descriptions, service descriptions, ontologies, and new data nodes (aggregated Things based on a category, e.g., temperature measurement).

  • The TSMatch client provides you with the Android client (source and binary).

Moreover, TSMatch relies on the following external components:

  • An MQTT broker. TSMatch currently relies on an MQTT broker based on Mosquitto as message bus. The tsmatch client and engine interconnect to the MQTT broker.

  • Thing discovery: IoT Thing discovery is supported via Coaty

  • Service Registry: Holds a set of service descriptions. Currently holds environment monitoring service specification examples based on OWL and WSDL, which the user can select via the TSMatch client.

For testing, the current open-source version provides also developers with the following:

  • Synthetic data sources, IoT Things.

  • Datasets: All the datasets used in TSMatch:

  • Ontologies. We provide a copy of the FIESTA-IoT project which can be used to play with TSMatch.

  • Testing, Testing Cleaned, Training, Training Cleaned,holding a collected set of IoT Things descriptions that have been used respectively as testing and training sets.

  • word2vec, holding the wording that has been used to train the ML Word2Vec algorithm TSMatch relies upon.

Experimenting with TSMatch Locally

A full explanation on how to run TSMatch can be found in the “Documentation” folder of the TSMatch git.

The different TSMatch components are dockerized, and specific scripts are provided to assist the setup and runtime of TSMatch. The TSMatch client for Android is also available as an unsigned apk. The different components can run on a single machine or on different components separately.

Interconnecting TSMatch with the EFPF Data Spine: the EFPF Connector

To support the interconnection of a local TSMatch instance with the EFPF Data spine, we have developed an EFPF connector, also dockerized. Further information is available via the TSMatch git.

Related References:

  • N. Bnouhanna, R. C. Sofia, E. Pristeri. Applying MQTT Sparkplug in the EFPF platform. Fortiss White paper. 2022.

  • N. Bnouhanna, E. Karabulut, R. C. Sofia, E. E. Seder, G. Scivoletto and G. Insolvibile, "An Evaluation of a Semantic Thing To Service Matching Approach in Industrial IoT Environments," 2022 IEEE International Conference on Pervasive Computing and Communications Workshops and other Affiliated Events (PerCom Workshops), 2022, pp. 433-438, doi: 10.1109/PerComWorkshops53856.2022.9767519. Pisa, Italy.

  • E. Karabulut, N. Bnouhanna, R. C. Sofia, ML-based data classification and data aggregation on the edge. inProc. ACM CoNext2021, December 2021, Munich, Germany. Student poster. .

  • N. Bnouhanna, R. C. Sofia and A. Pretschner, ". IoT Thing to Service Matching" 2021 IEEE International Conference on Pervasive Computing and Communications Workshops and other Affiliated Events (PerCom Workshops), 2021, pp. 418-419, vol 1, pp 418-419, DOI; 10.1109/PerComWorkshops51409.2021.9431128


bottom of page