

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 通訊協定特定的中介軟體
<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/zh_tw/iot-mi/latest/devguide/images/iot-smarthome-sdk-v2-middleware-architecture.png)


通訊協定特定的中介軟體有三個主要元件。
+ **ACS Zigbee DPK**：Zigbee Device Porting Kit (DPK) 用於提供基礎硬體和作業系統的抽象，從而實現可攜性。基本上，這可以視為硬體抽象層 (HAL)，它提供常用APIs，以控制來自不同廠商的 Zigbee 無線電並與之通訊。Zigbee 中介軟體包含適用於 Silicon Labs Zigbee 應用程式架構的 DPK API 實作。
+ **ACS Zigbee 服務**：Zigbee 服務做為專用協助程式執行。它包含 API 處理常式，可透過 IPC 通道從用戶端應用程式提供 API 呼叫。AIPC 用作 Zigbee 轉接器和 Zigbee 服務之間的 IPC 通道。它提供其他功能，例如同時處理非同步/同步命令、從 HAL 處理事件，以及使用 ACS Event Manager 進行事件註冊/發佈。
+ **ACS Zigbee 轉接器**：Zigbee 轉接器是應用程式程序內執行的程式庫 （在此情況下，應用程式是 CDMB 外掛程式）。Zigbee 轉接器提供一組 APIs，供 CDMB/Provisioner 通訊協定外掛程式等用戶端應用程式使用，以控制終端裝置並與之通訊。

## End-to-end中介軟體命令流程範例
<a name="managedintegrations-sdk-middleware-flow"></a>

以下是通過 Zigbee 中介軟體的命令流程範例。

![通訊協定特定的中介軟體架構及其元件。](http://docs.aws.amazon.com/zh_tw/iot-mi/latest/devguide/images/iot-smarthome-sdk-v2-middleware-zigbee.png)


以下是通過 Z-Wave 中介軟體的命令流程範例。

![通訊協定特定的中介軟體架構及其元件。](http://docs.aws.amazon.com/zh_tw/iot-mi/latest/devguide/images/iot-smarthome-sdk-v2-middleware-zwave.png)
