新小売デジタル値札ソリューションは、Alibaba Cloud ApsaraMQ for MQTT によって開発され、ショッピングモール、スーパーマーケット、公共の場にある電子タグやマルチメディアスクリーンのデータ更新管理を MQTT を介して実現するために立ち上げられました。このトピックでは、デジタル値札を例に、ソリューションのシステムアーキテクチャ、データフロー設計、その他の主要コンポーネントについて詳しく説明します。他の類似した業界は、このソリューションを参考に、実装に必要な変更を加えることができます。
用語
Message Queuing Telemetry Transport (MQTT プロトコル)
MQTT プロトコルは、モノのインターネット (IoT) およびモバイルインターネット向けの業界標準プロトコルであり、モバイルデバイス間のデータ伝送に適しています。ApsaraMQ for MQTT は、デフォルトで MQTT プロトコルをサポートしています。
MQTT ブローカー
ApsaraMQ for MQTT MQTT ブローカーは、MQTT プロトコルと対話し、メッセージの受信と転送に使用されるブローカーノードです。
MQTT クライアント
MQTT クライアントは、MQTT ブローカーとの対話に使用されるノードです。このソリューションでは、具体的には価格変更メッセージを送受信するためのスマートアクセスポイントを示します。
P2P メッセージ
ApsaraMQ for MQTT 標準 MQTT プロトコルに基づいて提供される特別なタイプのメッセージです。このタイプのメッセージは、サブスクリプションのマッチングなしで、指定されたターゲット MQTT クライアントに直接送信できます。詳細については、「P2P メッセージングモデル (MQTT)」をご参照ください。
スマートアクセスポイント (AP)
アプリケーションプログラミングをサポートし、インターネットアクセスと LAN デバイス制御機能を同時に処理できる一般的なネットワークデバイス (スマートルーターなど) です。
デジタル値札
モール、スーパーマーケット、その他の場所で使用する電子スクリーンです。ワイヤレスセンサーネットワークプロトコル (Bluetooth、ZigBee など) に基づくネットワーキングと、ネットワーキング用のスマート AP ノードをサポートしています。
デジタル値札管理サービス
デジタル値札システムのバックエンドサービスです。電子スクリーンに表示されるコンテンツの管理、および価格変更などの手動タスクの管理とクエリに使用されます。
ApsaraDB for RDS
Alibaba Cloud が提供する、可用性とスケーラビリティの高いオンラインデータベースサービスです。デジタル値札システムにおけるタスク (価格変更など) の状態変更を永続化するために使用されます。
ログサービス
Alibaba Cloud によって開始されたログストレージサービスであり、デジタル値札システムで使用され、監査と追跡のためにすべての操作ログを永続的に保存します。
ソリューションアーキテクチャ
デジタル値札ソリューションでは、ApsaraMQ for MQTT は、複数の Alibaba Cloud 製品と組み合わせて使用することで、値札データの更新管理を実装できます。ソリューションアーキテクチャは、デジタル値札システムのソリューションアーキテクチャの仕組みの詳細を示しています。
図 1. ソリューションアーキテクチャ
ソリューションアーキテクチャ の図に示すように、デジタル値札システムには、主に値札ノード、スマート AP ノード、ApsaraMQ for MQTT、ApsaraMQ for RocketMQ、デジタル値札のバックエンド制御サービス、RDS、および SLS が含まれます。これらの各コンポーネントは次のように説明されます。
スマート AP は、値札の状態データを転送し、価格変更コマンドを受信します。スマート AP は MQTT SDK を使用して、店舗または場所の分布に基づいてパブリックネットワーク経由で Alibaba Cloud ApsaraMQ for MQTT にアクセスします。このリンクは SSL/TLS を使用して伝送を暗号化し、データ漏洩を防ぎます。
1 つのスマート AP ダウンリンクと複数の値札ノードは、Bluetooth や ZigBee などのワイヤレスセンサーネットワークを介して相互に通信できます。
デジタル値札のバックエンド管理サービスは、ECS に基づいてクラウドにデプロイされます。ApsaraMQ for RocketMQ SDK と ApsaraMQ for RocketMQ の相互作用。
デジタル値札のバックエンド管理サービスは、価格変更などのタスクが実行されたときに、RDS データベースの状態を永続的に変更できます。追跡と監査を容易にするために、値札レポートデータと操作ログをログサービスに保存できます。
ハイライト
新小売デジタル値札ソリューションの利点は次のとおりです。
自動的にスケーリングできる強力なサービス機能。
ApsaraMQ for MQTT メッセージ伝送機能は無限にスケーラブルであるため、システム機能を損なうことなくスマート端末の数を増やすことができます。
ApsaraMQ for MQTT 数百万台のデバイスに対してミリ秒単位の情報プッシュがサポートされており、デジタル値札の表示更新のレイテンシはさらに小さくなります。
幅広いアプリケーション範囲、汎用性の高い生成性、迅速な複製。
MQTT 標準プロトコルに基づいているため、このソリューションは普遍的に適用できます。異なるデータコンテンツに合わせてソリューションを適応させることで、同様のシナリオで複製できます。
高信頼性
ApsaraMQ for MQTT とスマート AP ノードは、データ伝送における SSL/TLS 暗号化をサポートしており、メディアビジネスデータの漏洩を防ぎます。
すべてのサービスノードは、可用性と安定性に優れています。
データの相互作用
ステータスレポート
デジタル値札ノードは、定期的なポーリングメカニズムを使用してスマート AP ノードとデータを交換し、現在の表示状態、電力容量などの情報を報告します。
スマート AP ノードはデータを整理し、MQTT メッセージを MQTT ブローカーに送信します。
MQTT ブローカーは、レポートされたメッセージを ApsaraMQ for RocketMQ トピックに書き込みます。
デジタル値札管理サービスは ApsaraMQ for RocketMQ を受信して、現在のシステムのオンライン値札ノードの状態を処理および分析し、データをログサービスに記録します。
表示の更新
デジタル値札管理サービスは、価格変更 ApsaraMQ for RocketMQ メッセージを送信し、価格変更操作をトリガーします。
MQTT サーバーは ApsaraMQ for RocketMQ をルーティングして、MQTT プロトコルを使用してターゲットスマート AP ノードにメッセージをプッシュします。
スマート AP ノードは価格変更通知を受信し、タスクを一時的に保存します。
デジタル値札ノードはポーリングメカニズムを使用してスマート AP ノードとデータを交換し、表示される新しいコンテンツを受信します。
ターゲットデジタル値札ノードが価格を変更した後、スマート AP ノードは MQTT メッセージを返して、現在のタスクが完了したことをデジタル値札管理サービスに通知します。
デジタル値札管理サービスは、現在のタスクの実行ログをサービスログに書き込み、後続の追跡クエリを容易にします。
注意事項
前述のプロセスでは、ApsaraMQ for MQTT と ApsaraMQ for RocketMQ を使用してデジタル値札システムを構築する方法について簡単に説明しました。詳細については、「ApsaraMQ for MQTT」および「ApsaraMQ for RocketMQ」ドキュメントをご参照ください。
ApsaraMQ for MQTT と ApsaraMQ for RocketMQ を使用してコマンドを送信するためのメッセージとパラメーターを設計する場合は、次の原則に従ってください。
SDK とプロトコルの選択
デジタル値札のシナリオでは、1 つのアプリケーションが数百のオフラインストアで使用される場合があります。一般に、各ストアには複数のスマート AP ノードが装備されています。スマート AP ノードの数は、ビジネスのスケールアウトに合わせて増やすことができます。そのため、スマート AP ノードは MQTT プロトコルを使用したアクセスに適しています。デジタル値札管理サービスはクラウドにデプロイされ、ApsaraMQ for RocketMQ アクセスされます。
MQTT クライアント ID のマッピング
MQTT プロトコルでは、各クライアントにグローバルに一意のクライアント ID が必要です。クライアント ID は、@@@ セパレーターで連結された 2 つの部分で構成されます。最終的なクライアント ID は一意である必要があり、その全長は 64 文字を超えることはできません。クライアント ID の 2 つの部分は次のとおりです。
プレフィックスグループ ID:グループ ID は、ApsaraMQ for MQTT コンソールで申請する必要があります。グループ ID は、プラットフォームベンダーまたはチャネルによって大まかに分類して、トラブルシューティングを容易にすることができます。たとえば、異なる業界またはバッチを異なるグループ ID に分割したり、異なるバージョンのクライアントが異なるグループ ID を使用したりできます。
クライアント ID のサフィックスであるデバイス ID:デバイス ID はアプリケーションによって生成されます。デバイス ID は、スマート AP ノードの MAC アドレスなどの一意の情報を使用してエンコードできます。
クライアント ID の詳細については、「用語」をご参照ください。
トピック名のマッピング
ApsaraMQ for MQTT を使用してメッセージを送受信するには、MQTT プロトコルのパブリッシュ/サブスクライブパターンを理解する必要があります。詳細については、契約文書と公式ドキュメントを参照してください。
MQTT プロトコルは、パブリッシュ/サブスクライブパターンに基づくメッセージプロトコルです。サブスクリプションとトピックは、ディレクトリツリー形式に従います。トピックは、親トピックとサブトピックに分割できます。親トピックとサブトピックを含むトピックの全長は、64 文字を超えることはできません。トピックのタイプは次のとおりです。
親トピック:ディレクトリツリーの第 1 レベルにあるトピックは親トピックです。親トピックは、ApsaraMQ for MQTT コンソールで権限を申請した後にのみ使用できます。名前空間は名前空間と同等です。
サブトピック:MQTT のディレクトリツリーのレベル 1 トピックの下にあるトピックはサブトピックです。サブトピックは、申請することなく必要に応じて指定できます。
トピックの詳細については、「用語」をご参照ください。
メッセージを送受信するためのトピックを設計する際には、次の原則に従う必要があります。
異なるタイプのタスクは異なる親トピックを使用します。たとえば、このシナリオでは、価格変更タスクと端末ステータスレポートタスクは異なる親トピックを使用します。
デジタル値札システムでは、ApsaraMQ for MQTT P2P メッセージを使用することをお勧めします。P2P メッセージはサブスクライブする必要がなく、送信者は受信するピアエンドを直接指定できます。詳細については、「P2P メッセージングモデル (MQTT)」をご参照ください。
メッセージ送受信のパラメーター設計
一般に、デジタル値札シナリオの価格変更タスクにはリアルタイムのプッシュが必要です。そのため、スマート AP と MQTT ブローカー間の相互作用中に、スマート AP が切断時にプッシュされたタスクを処理する必要がないように、スマート AP を次のように構成することをお勧めします。
cleanSession パラメーターを「true」に設定します。
QoS を 1 に設定します。
スマート AP は、受信したメッセージに対して重複排除と適時性検証を実行する必要があります。
CleanSession と QoS の詳細については、「用語」をご参照ください。