

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 特定于协议的中间件
<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_cn/iot-mi/latest/devguide/images/iot-smarthome-sdk-v2-middleware-architecture.png)


特定于协议的中间件有三个主要组件。
+ **ACS Zigbee DPK**：Zigbee 设备移植套件 (DPK) 用于提供对底层硬件和操作系统的抽象，从而实现可移植性。基本上，这可以被视为硬件抽象层 (HAL)，它提供了一组通用集 APIs 来控制来自不同供应商的 Zigbee 无线电并与之通信。Zigbee 中间件包含 Silicon Labs Zigbee 应用程序框架的 DPK API 实现。
+ **ACS Zigbee 服务**：Zigbee 服务作为专用守护程序运行。它包括一个 API 处理程序，通过 IPC 通道为来自客户端应用程序的 API 调用提供服务。AIPC 用作 Zigbee 适配器和 Zigbee 服务之间的 IPC 通道。它还提供其他功能，例如处理这两个 async/sync 命令、处理来自 HAL 的事件以及使用 ACS 事件管理器进行事件注册/发布。
+ **ACS Zigbee 适配器**：Zigbee 适配器是在应用程序进程中运行的库（在本例中，应用程序是 CDMB 插件）。Zigbee 适配器提供了一组供客户端应用程序（例如 CDMB/Provisioner 协议插件）使用，用于控制终端设备并与之通信。 APIs 

## End-to-end 中间件命令流示例
<a name="managedintegrations-sdk-middleware-flow"></a>

以下是通过 ZigBee 中间件的命令流示例。

![特定于协议的中间件架构及其组件。](http://docs.aws.amazon.com/zh_cn/iot-mi/latest/devguide/images/iot-smarthome-sdk-v2-middleware-zigbee.png)


以下是通过 Z-Wave 中间件执行命令流的示例。

![特定于协议的中间件架构及其组件。](http://docs.aws.amazon.com/zh_cn/iot-mi/latest/devguide/images/iot-smarthome-sdk-v2-middleware-zwave.png)
