

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# プロトコル固有のミドルウェア
<a name="managedintegrations-sdk-middleware"></a>

**重要**  
**ここで提供されるドキュメントとコードでは、ミドルウェアのリファレンス実装について説明します。SDK の一部として提供されるものではありません。**

プロトコル固有のミドルウェアには、基盤となるプロトコルスタックを操作する上で重要な役割があります。マネージド統合 Hub SDK のデバイスオンボーディングコンポーネントとデバイスコントロールコンポーネントはどちらも、これを使用してエンドデバイスとやり取りします。

ミドルウェアは次の関数を実行します。
+ 共通の APIs セットを提供することで、さまざまなベンダーのデバイスプロトコルスタックから APIs。
+ スレッドスケジューラ、イベントキュー管理、データキャッシュなどのソフトウェア実行管理を提供します。

## ミドルウェアアーキテクチャ
<a name="managedintegrations-sdk-middleware-architecture"></a>

以下のブロック図は、Zigbee ミドルウェアのアーキテクチャを示しています。Z-Wave などの他のプロトコルのミドルウェアのアーキテクチャも似ています。

![プロトコル固有のミドルウェアアーキテクチャとそのコンポーネント。](http://docs.aws.amazon.com/ja_jp/iot-mi/latest/devguide/images/iot-smarthome-sdk-v2-middleware-architecture.png)


プロトコル固有のミドルウェアには 3 つの主要コンポーネントがあります。
+ **ACS Zigbee DPK**: Zigbee Device Porting Kit (DPK) は、基盤となるハードウェアとオペレーティングシステムから抽象化するために使用され、移植性を可能にします。基本的に、これはハードウェア抽象化レイヤー (HAL) と見なすことができます。HAL は、さまざまなベンダーの Zigbee 無線を制御して通信するための共通のセット APIs を提供します。Zigbee ミドルウェアには、Silicon Labs Zigbee アプリケーションフレームワークの DPK API 実装が含まれています。
+ **ACS Zigbee サービス**: Zigbee サービスは専用のデーモンとして実行されます。これには、IPC チャネルを介してクライアントアプリケーションからの API コールを処理する API ハンドラーが含まれています。AIPC は、Zigbee アダプターと Zigbee サービス間の IPC チャネルとして使用されます。非同期/同期コマンドの処理、HAL からのイベントの処理、イベント登録/発行に ACS Event Manager を使用するなどの他の機能を提供します。
+ **ACS Zigbee アダプター**: Zigbee アダプターは、アプリケーションプロセス内で実行されるライブラリです (この場合、アプリケーションは CDMB プラグインです）。Zigbee アダプターは、エンドデバイスを制御して通信するために CDMB/Provisioner プロトコルプラグインなどのクライアントアプリケーションで消費される一連の APIs を提供します。

## End-to-endミドルウェアコマンドフローの例
<a name="managedintegrations-sdk-middleware-flow"></a>

Zigbee ミドルウェアを介したコマンドフローの例を次に示します。

![プロトコル固有のミドルウェアアーキテクチャとそのコンポーネント。](http://docs.aws.amazon.com/ja_jp/iot-mi/latest/devguide/images/iot-smarthome-sdk-v2-middleware-zigbee.png)


Z-Wave ミドルウェアを介したコマンドフローの例を次に示します。

![プロトコル固有のミドルウェアアーキテクチャとそのコンポーネント。](http://docs.aws.amazon.com/ja_jp/iot-mi/latest/devguide/images/iot-smarthome-sdk-v2-middleware-zwave.png)
