Postgres)を選定する際にその自由度がツールを切り替える際にとてもよく機能しましたが、すでにNATSとPostgresを使用する決定を下したため、より高度な機能のためにカスタムのマイクロサービスフレームワークを導入しました。changesMQTTサービス、デバイスサービス、スクリプトサービスのような小さなサービスをiot-serviceとして統合しました.Golangにより実装され、MQTTブローカーにはmosquittoにカスタムの認証プラグインを使用しています。以前はMQTTブローカーはアプリケーションロジックに組み込まれていましたが、より安定性とパフォーマンスを向上させるためにアプリケーションロジックから切り離しました。Serviceは5つの小さなサービスから構成されます。メッセージサービスはサードパーティのサービスとisaax-gatewayに対してデバイスのログメッセージを中継します。環境変数サービス:環境変数サービスはプロジェクトが持つ環境変数を管理します。関連するデバイスに対して更新を反映します。ユーザーアプリケーションのインストール前に実行します。ユーザーアプリケーションの更新毎に実行します。ユーザーアプリケーションの更新後に実行します。installation|update|removal"内部トリガー:内部トリガーはプロジェクトの作成・削除のトピックを購読し、イベントを受け取るとプロジェクトの作成または削除に必要な処理を環境変数サービスとスクリプトサービスにリクエストします。認証サービス:以前は発行済みのJWTをMQTTブローカーの認証手段としていましたが、新たなバージョンではデバイスはプロジェクトトークンを使ってMQTTブローカーに接続し、デバイスの認証のみをおこないます。認証に成功したデバイスはMQTTトピックを購読するためにセッションIDを受け取ってバックエンドで認証します。プロジェクトトークンとデバイスIDはisaax-agentの設定ファイル/etc/isaax.confに格納されます。Serviceのライフサイクルを管理します。設定をJSONファイルから読み取りIoTサービスを初期化します。picture上部へスクロール。