Alibaba Cloud Internet of Things platform business topic planning best practice
Alibaba Cloud IoT Platform ビジネストピック計画のベストプラクティス
Alibaba Cloud の IoT Platform を基盤にビジネス開発を行う際、最も重要な課題は、ビジネス通信のトピックとペイロードをどのように適切に設計するかということです。
基本原則:
・トピックには明確な操作権限(パブリッシュ / サブスクライブ)を設定し、両方を混在させないこと。
・トピックとペイロード形式は 1 対 1 で対応させ、1 つのトピックに複数のペイロード形式を対応させないこと。
・トピックには up や down などの明確なアップリンク / ダウンリンク識別子を付与すること
同一種のビジネストピックにはソート用の共通識別子を付与すること
次に、シェアモバイルバッテリーのビジネスシナリオを例に、トピック計画のベストプラクティスを紹介します。
1. ビジネストピック計画
モバイルバッテリー貸出機シナリオのビジネスには、キャビネットのステータス、消費者によるモバイルバッテリーの貸出・返却、広告配信などのシナリオが含まれます。トピック計画は以下の通りです。
1.1 デバイスレポートシナリオ
・デバイスの現在の属性ステータスを定期的にレポートします。電圧、電流、カードスロットのステータス、温度が含まれます。
・広告配信情報のレポート。現在の広告リソース ID が含まれます。
・異常イベントのレポート。モバイルバッテリーの取り出し・返却、過電圧、カードスロットの空きが含まれます。
1.2 クラウドからの下りコマンドシナリオ
・モバイルバッテリーの取り出し
・広告情報の更新
1.3 キャビネットのオンラインステータス変更
・キャビネットがオンライン / オフラインになると、IoT Platform がステータス変更トピックをトリガーします。
2. ルールエンジンの設定
ルールエンジンの設定により、異なる種類のビジネスメッセージのフローを実現します。
2.1 異常イベントのフロー
異常イベントは Function Compute にルーティングされ、リアルタイムのビジネス処理が行われます。
ビジネス処理 SQL:
SELECT
*, -- ペイロードの全内容
DeviceName() as deviceName, -- デバイス ID
Attribute ('bizId ') as bizId, -- ビジネスチャネル ID
timestamp ('yyyy MM dd HH: mm: ss') as time -- 現在時刻
Topic () as topic -- 現在のトピック
FROM
"/a1WHdPQzUUn/+/user/up/event/#" -- すべてのアップリンクイベント
データフロー:
2.2 広告配信統計
広告再生記録はテーブルに保存され、後続のオフラインビジネス分析に活用されます。
ビジネス処理 SQL:
SELECT
*, -- ペイロードの全内容
DeviceName() as deviceName, -- デバイス ID
Attribute ('bizId ') as bizId, -- ビジネスチャネル ID
timestamp ('yyyy MM dd HH: mm: ss') as time -- 現在時刻
FROM
"/a1WHdPQzUUn/+/user/up/ad/play" -- 広告配信メッセージ
データフロー:
2.3 デバイスステータスフロー
広告再生記録はテーブルに保存され、後続のビジネスクエリに活用されます。
ビジネス処理 SQL:
SELECT
*, -- ペイロードの全内容
DeviceName() as deviceName, -- デバイス ID
Attribute ('bizId ') as bizId, -- ビジネスチャネル ID
timestamp ('yyyy MM dd HH: mm: ss') as time -- 現在時刻
FROM
"/a1WHdPQzUUn/+/user/up/property/post" -- ステータス属性レポート
データフロー:
2.4 キャビネットのオンラインステータスフロー
デバイスのオンライン / オフラインステータスフローのトピック形式:
/as/mqtt/status/{productKey}/{deviceName}
ペイロードデータ形式:
{
"status":"online|offline",
"productKey":"pk13543",
"deviceName":"dn1234",
"time":"2018-08-31 15:32:28.205",
"utcTime":"2018-08-31T07:32:28.205Z",
"lastTime":"2018-08-31 15:32:28.195",
"utcLastTime":"2018-08-31T07:32:28.195Z",
"clientIp":"123.123.123.123"
}
ルールエンジン SQL:
SELECT productKey,deviceName,
timestamp() as timestamp ,
status,
time as currentTime ,lastTime,clientIp
FROM "/as/mqtt/status/a1WHdPQzUUn/+"
Alibaba Cloud の IoT Platform を基盤にビジネス開発を行う際、最も重要な課題は、ビジネス通信のトピックとペイロードをどのように適切に設計するかということです。
基本原則:
・トピックには明確な操作権限(パブリッシュ / サブスクライブ)を設定し、両方を混在させないこと。
・トピックとペイロード形式は 1 対 1 で対応させ、1 つのトピックに複数のペイロード形式を対応させないこと。
・トピックには up や down などの明確なアップリンク / ダウンリンク識別子を付与すること
同一種のビジネストピックにはソート用の共通識別子を付与すること
次に、シェアモバイルバッテリーのビジネスシナリオを例に、トピック計画のベストプラクティスを紹介します。
1. ビジネストピック計画
モバイルバッテリー貸出機シナリオのビジネスには、キャビネットのステータス、消費者によるモバイルバッテリーの貸出・返却、広告配信などのシナリオが含まれます。トピック計画は以下の通りです。
1.1 デバイスレポートシナリオ
・デバイスの現在の属性ステータスを定期的にレポートします。電圧、電流、カードスロットのステータス、温度が含まれます。
・広告配信情報のレポート。現在の広告リソース ID が含まれます。
・異常イベントのレポート。モバイルバッテリーの取り出し・返却、過電圧、カードスロットの空きが含まれます。
1.2 クラウドからの下りコマンドシナリオ
・モバイルバッテリーの取り出し
・広告情報の更新
1.3 キャビネットのオンラインステータス変更
・キャビネットがオンライン / オフラインになると、IoT Platform がステータス変更トピックをトリガーします。
2. ルールエンジンの設定
ルールエンジンの設定により、異なる種類のビジネスメッセージのフローを実現します。
2.1 異常イベントのフロー
異常イベントは Function Compute にルーティングされ、リアルタイムのビジネス処理が行われます。
ビジネス処理 SQL:
SELECT
*, -- ペイロードの全内容
DeviceName() as deviceName, -- デバイス ID
Attribute ('bizId ') as bizId, -- ビジネスチャネル ID
timestamp ('yyyy MM dd HH: mm: ss') as time -- 現在時刻
Topic () as topic -- 現在のトピック
FROM
"/a1WHdPQzUUn/+/user/up/event/#" -- すべてのアップリンクイベント
データフロー:
2.2 広告配信統計
広告再生記録はテーブルに保存され、後続のオフラインビジネス分析に活用されます。
ビジネス処理 SQL:
SELECT
*, -- ペイロードの全内容
DeviceName() as deviceName, -- デバイス ID
Attribute ('bizId ') as bizId, -- ビジネスチャネル ID
timestamp ('yyyy MM dd HH: mm: ss') as time -- 現在時刻
FROM
"/a1WHdPQzUUn/+/user/up/ad/play" -- 広告配信メッセージ
データフロー:
2.3 デバイスステータスフロー
広告再生記録はテーブルに保存され、後続のビジネスクエリに活用されます。
ビジネス処理 SQL:
SELECT
*, -- ペイロードの全内容
DeviceName() as deviceName, -- デバイス ID
Attribute ('bizId ') as bizId, -- ビジネスチャネル ID
timestamp ('yyyy MM dd HH: mm: ss') as time -- 現在時刻
FROM
"/a1WHdPQzUUn/+/user/up/property/post" -- ステータス属性レポート
データフロー:
2.4 キャビネットのオンラインステータスフロー
デバイスのオンライン / オフラインステータスフローのトピック形式:
/as/mqtt/status/{productKey}/{deviceName}
ペイロードデータ形式:
{
"status":"online|offline",
"productKey":"pk13543",
"deviceName":"dn1234",
"time":"2018-08-31 15:32:28.205",
"utcTime":"2018-08-31T07:32:28.205Z",
"lastTime":"2018-08-31 15:32:28.195",
"utcLastTime":"2018-08-31T07:32:28.195Z",
"clientIp":"123.123.123.123"
}
ルールエンジン SQL:
SELECT productKey,deviceName,
timestamp() as timestamp ,
status,
time as currentTime ,lastTime,clientIp
FROM "/as/mqtt/status/a1WHdPQzUUn/+"
Related Articles
-
A detailed explanation of Hadoop core architecture HDFS
Knowledge Base Team
-
What Does IOT Mean
Knowledge Base Team
-
6 Optional Technologies for Data Storage
Knowledge Base Team
-
What Is Blockchain Technology
Knowledge Base Team
Explore More Special Offers
-
Short Message Service(SMS) & Mail Service
50,000 email package starts as low as USD 1.99, 120 short messages start at only USD 1.00
