English

リンク

メッセージングシステムの概念

SINETStreamは トピックベースのPublish/Subscribeモデル のメッセージングシステムである。 Brokerを実現するバックエンドのメッセージングシステムとしてKafkaまたはMQTTを利用している。

SINETStreamではPublisherをWriterと呼び、SubscriberをReaderと呼ぶ。

メッセージングシステムの概念図

Brokerの構成情報やBrokerとの通信パラメータをまとめたものをSINETStreamではサービスと呼ぶ。 WriterやReaderはサービスを指定するだけでブローカーに接続してメッセージの送受信ができる。

トピックとはブローカーにおける論理的なチャンネルであり、 Writer/Readerはトピックを指定してメッセージの送受信を行うことで異なる種類のメッセージ配信を1つのブローカー上で行える。

ファイル構成

動作環境

Python/Java版

Python/Java版のSINETStream APIは、以下のプログラム言語で実装される。

Python/Java版のSINETStream APIは、以下のメッセージングシステムに対応する。

Android版

Android版のSINETStream APIは、以下のプログラム言語で実装される。

Android版のSINETStream APIは、以下のメッセージングシステムに対応する。

注意
Eclipse Paho Android ClientプロジェクトのGitHubリポジトリeclipse/paho.mqtt.android は何年も放置状態となっている。 Android 12で導入されたシステム挙動変更 の影響により、Android 12以降の環境でPahoのライブラリを使うと実行時エラーが発生する。 有志が上記GitHubに修正パッチを投稿しているが一向に反映されないため、 SINETStreamプロジェクトで独自に改修した版PahoMqttAndroid-bugfixを使うことにする。

Android版のSINETStream APIが対応するOS条件は以下の通り。

この制約条件はSINETStreamメッセージの「シリアライザ/デシリアライザ」 機能で用いるApache Avroライブラリの実装上の都合に依るものである。

準備

Python/Java版

SINETStreamでは、Brokerを実現するバックエンドのメッセージングシステムとしてKafkaまたはMQTTを利用している。 そのため、SINETStreamとともに、これらのメッセージングシステムのどちらかをインストールする必要がある。 チュートリアルパッケージでは、Dockerコンテナを利用して必要なソフトウェア一式(SINETStream, Kafka, MQTT)をインストールする方法を用意している。

  1. Kafkaブローカーの設定
  2. MQTTブローカーの設定
  3. SINETStreamのインストール
    • Python: pip3 install --user sinetstream-kafka sinetstream-mqtt
    • Java: Java版READMEを参照

Dockerコンテナをつかった クイックスタートガイド (Python/Java版) も参考のこと。

Android版

Android版のSINETStream APIは、メッセージングシステムのうちMQTTのみに対応し、 クライアント機能(WriterReader)を提供する。 このため、Android版のSINETStreamクライアントと対向するバックエンド側のBrokerはMQTT一択となる。 上記Python/Java版の記述内容に沿って導入したバックエンドに関して、 MQTTブローカー部分をAndroid対向用に流用することで構わない。

Dockerコンテナをつかった クイックスタートガイド (Android版) も参考のこと。

ライセンス

Apache License, Version 2.0.