

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

# 确定 MES 中微服务的集成方法
<a name="integration"></a>

在基于微服务的 MES 中， service-to-service通信对于交换数据、共享信息和确保无缝操作至关重要。MES 微服务可以定期交换有关特定事件的数据。例如，用户可能在生产确认交易期间提供生产数量。这样的事务可以在后台启动多项事务，例如将信息发送到 ERP、捕获机器的运行时间、捕获有关产品的质量信息以及报告工时。不同的微服务可能负责这些任务，但单个事件会通过一个微服务启动所有微服务。

此外，MES 还与外部系统集成，以优化制造运营、连接 end-to-end数字线程和过程自动化。在构建基于微服务的 MES 时，必须决定处理与内部和外部服务集成的策略。

以下功能模式为根据所需的通信类型选择正确技术提供了指导。

## 同步通信
<a name="integration-synchronous"></a>

在同步通信模式中，调用服务会被阻止，直到它收到来自端点的响应。终端节点通常可以调用其他服务进行额外处理。对于延迟敏感型交易，MES 需要同步通信。例如，假设一条连续生产线，其中一个用户完成订单的操作。下一位用户希望看到该订单立即送达，以便进行下一次操作。此类交易的任何延迟都可能对产品的周期时间和工厂性能产生负面影响 KPIs，并可能导致等待时间增加和资源利用不足。

![MES 中的同步通信](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/mes-on-aws/images/sync.png)


## 异步通信
<a name="integration-asynchronous"></a>

在这种通信模式中，调用者不会等待来自端点或其他服务的响应。当MES可以容忍延迟而不会对业务交易产生负面影响时，它就会采用这种模式。 例如，当用户使用计算机完成操作时，您可能需要向维护微服务报告该计算机的运行时间。这种通信可以是异步的，因为更新运行时间不会立即启动事件或影响操作的完成。

![MES 中的异步通信](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/mes-on-aws/images/async.png)


## 发布/订阅模式
<a name="integration-pub-sub"></a>

publish-subscribe () pub/sub) pattern further extends asynchronous communications. Managing interdependent communications can become challenging as the MES matures and the number of microservices grows. You might not want to change a caller service every time you add a new service that has to listen to it. The pub/sub 模式通过在多个微服务之间实现异步通信而无需紧密耦合来解决这个问题。在这种模式下，微服务将事件消息发布到订阅者微服务可以收听的频道。因此，当您添加新服务时，您无需更改发布服务即可订阅该频道。例如，生产报告或操作完成的事务可能会更新多个日志和事务历史记录。无需在为机器、人工、库存、外部系统等添加新的日志服务时修改这些事务，而是可以为每项新服务订阅原始事务的消息并单独处理。

![MES 中的发布/订阅通信](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/mes-on-aws/images/pub-sub.png)


## 混合通信
<a name="integration-hybrid"></a>

混合通信模式结合了同步和异步通信模式。

AWS 提供多种[无服务器服务，这些服务](https://aws.amazon.com/serverless/)可以通过不同的方式组合以生成所需的通信模式。下表列出了一些突出的 AWS 服务及其主要功能。


| **AWS 服务** | **描述** | **支持图案** | 
| --- |--- |--- |
| **同步** | **异步** | **Pub/Sub** | 
| --- |--- |--- |
| [Amazon API Gateway](https://aws.amazon.com/api-gateway/) | 使微服务能够访问来自其他微服务的数据、业务逻辑或功能。  API Gateway 接受并处理所有三种通信模式的并发 API 调用。 | ✓ | ✓ | ✓ | 
| [AWS Lambda](https://aws.amazon.com/lambda/) | 提供无服务器、事件驱动的计算功能，无需管理服务器即可运行代码。企业可以使用 Lambda 在数据库和存储 AWS 服务等其他服务之间解耦数据、处理和传递数据。 | ✓ | ✓ | ✓ | 
| [Amazon Simple Notification Service (Amazon SNS)](https://aws.amazon.com/sns/) | 支持 application-to-application (A2A) 和 application-to-person (A2P) 消息传递。A2A 在分布式系统、微服务和无服务器应用程序之间提供高吞吐量、基于推送的消息传递。A2P 功能允许您通过短信、推送通知和电子邮件向他人发送消息。 |   | ✓ | ✓ | 
| [Amazon Simple Queue Service (Amazon SQS)](https://aws.amazon.com/sqs/) | 允许您在任何音量的软件组件之间发送、存储和接收消息，而不会丢失消息或要求其他服务可用。 |   | ✓ | ✓ | 
| [Amazon EventBridge](https://aws.amazon.com/eventbridge/) | 无需编写代码，即可实时访问由微服务或微服务中的 AWS 服务中的数据变化引起的事件。然后，您可以接收、过滤、转换、路由此事件并将其传送到目标。 |   | ✓ | ✓ | 
| [Amazon MQ](https://aws.amazon.com/amazon-mq/) | 托管消息代理服务，可简化上 AWS消息代理的设置、操作和管理。消息代理允许软件系统（通常在不同的平台上使用不同的编程语言）进行通信和交换信息。 |   |   | ✓ | 

有关更多信息，请参阅 AWS 规范指南网站上的[使用 AWS 无服务器服务集成微](https://docs.aws.amazon.com/prescriptive-guidance/latest/modernization-integrating-microservices/welcome.html)服务。