

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

# 在 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_tw/prescriptive-guidance/latest/mes-on-aws/images/sync.png)


## 非同步通訊
<a name="integration-asynchronous"></a>

在此通訊模式中，發起人不會等待來自端點或其他服務的回應。當 MES 可以容忍延遲而不會對業務交易造成負面影響時，就會採用此模式。 例如，當使用者使用機器完成 操作時，您可能想要向維護微服務報告該機器的執行時數。此通訊可以是非同步的，因為更新執行時間不會立即啟動事件或影響操作的完成。

![MES 中的非同步通訊](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/mes-on-aws/images/async.png)


## Pub/sub 模式
<a name="integration-pub-sub"></a>

發佈訂閱 (pub/sub) 模式進一步延伸非同步通訊。隨著 MES 的成熟和微服務數量的增長，管理相互依存通訊可能會變得具有挑戰性。您可能不想在每次新增必須接聽的新服務時變更來電者服務。pub/sub 模式透過在多個微型服務之間啟用非同步通訊來解決此問題，而無需緊密耦合。在此模式中，微服務會將事件訊息發佈到訂閱者微服務可以接聽的頻道。因此，當您新增服務時，無需變更發佈服務即可訂閱頻道。例如，生產報告或操作完成交易可能會更新數個日誌和交易歷史記錄。每當您為機器、人力、庫存、外部系統等新增記錄服務時，您可以訂閱每個新服務至原始交易的訊息並分別處理，而不是修改這些交易。

![MES 中的 Pub/sub 通訊](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/mes-on-aws/images/pub-sub.png)


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

混合通訊模式結合了同步和非同步通訊模式。

AWS 提供多種[無伺服器服務](https://aws.amazon.com/serverless/)，可透過不同方式結合，以產生所需的通訊模式。下表列出一些重要的 AWS 服務及其主要功能。


| **AWS 服務** | **Description** | **支援模式** | 
| --- |--- |--- |
| **同步** | **非同步** | **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)。