日本語

Concept of a messaging system

The SINETStream is a messaging system that adopts a topic-based publish/subscribe model. It provides an abstraction layer of Broker, which in turn employs Kafka or MQTT as its backend.

The SINETStream calls the publisher as Writer, and the subscriber as Reader, respectively.

Conceptual diagram of the messaging system

Broker’s configuration and communication parameters are abstracted as service in the SINETStream. Writers and Readers can communicate with any Broker just by specifying a service.

A logical channel in Broker is called as topic. Writers and Readers send/receive a message specifying a topic, allowing different types of messages to be transferred through a Broker.

Directory structure

Operating environment

Python/Java version

The Python/Java SINETStream API is implemented with following programing languages.

The Python/Java SINETStream API supports the following messaging systems.

Android version

The Android SINETStream API is implemented with following programing languages.

The Android SINETStream API supports the following messaging systems.

Note
The GitHub repository eclipse/paho.mqtt.android of the Eclipse Paho Android Client project seems to have unmaintained for years. Due to the system behavior changes that have introduced in Android 12, using the Paho library on Android 12+ environment causes runtime error. Some volunteers have posted bugfix patches to the GitHub repository but noghing have happened so far. Therefore, we SINETStream project team have decided to use our own PahoMqttAndroid-bugfix library as a temporary fix.

The Android SINETStream API runs on following operating system.

This restriction (Android 8.0+) comes from implementation issues of the Apache Avro library, which is used as serializer/deserializer for the SINETStream messages.

Preparation

Python/Java version

The Python/Java SINETStream API uses Kafka or MQTT as a backend messaging system of Broker. Therefore, you need to install one of these messaging systems along with SINETStream. The tutorial package utilizes some Docker containers to install the required software components, i.e., SINETStream, Kafka, and MQTT.

  1. Kafka broker settings
  2. MQTT broker settings
  3. Installing SINETStream
    • Python: pip3 install --user sinetstream-kafka sinetstream-mqtt
    • Java: Please refer to the Java version of README.

Please refer to Quick Start Guide (Python/Java) using Docker containers.

Android version

The Android SINETStream API provides client functionality (Writer, Reader), with the support of MQTT messaging system. Therefore, the peer Broker with an Android SINETStream client must use MQTT only.

Note that you can use the MQTT broker part as is, which has installed for the Python/Java SINETStream backend system.

Please refer to Quick Start Guide (Android) using a Docker container.

License

Apache License, Version 2.0.