

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

# 方法 1：使用独立的 API 进行分离
<a name="api"></a>

使用这种方法时，您可以通过将共享的 COBOL 程序 AB.1 转换为 Java 程序来实例化独立 API。为了最大限度地减少重构工作，您可以使用 AWS 合作伙伴提供的自动重构工具（参见 “[其他资源](resources.md)” 部分）为该程序生成网络 APIs 。有些工具可以使用 Eclipse 等集成开发环境 (IDE)，从选定的程序中自动生成外观层。

当共享程序可以实例化为独立服务时，我们建议采用这种方法。应用程序 A 和 B 的其余组件被整体重构为 Java 并迁移到云中。您可以在同一波浪潮中或在不同的浪潮中迁移应用程序。

## 在同一波浪潮中迁移应用程序
<a name="api-same-wave"></a>

在下图中，应用程序 A 和 B 被分组，以便在同一波中进行迁移。

 ![\[Migrating mainframe applications that share programs: using an standalone API and a single migration wave\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/modernization-mainframe-decoupling-patterns/images/shared-1-same.png) 

如果您要使用独立的 API 来解耦代码，并在同一波浪潮中迁移应用程序，请按照以下步骤操作：

1. 使用各自的程序重构两个应用程序，并将它们迁移到云端。

1. 使用分析阶段的影响分析报告来帮助开发人员和团队识别调用共享程序 AB.1 的重构应用程序。将共享程序 AB.1 的内部程序调用替换为网络 API 调用。

1. 迁移后，停用本地大型机应用程序及其组件。

## 在不同的浪潮中迁移应用程序
<a name="api-multi-wave"></a>

当应用程序太大而无法分组到同一个迁移浪潮中时，您可以将其分成多个迁移，如下图所示，并在迁移期间保持服务连续性。通过这种方法，您可以分阶段对应用程序进行现代化改造，而无需将它们捆绑在一起。分批迁移应用程序可以使它们脱钩，而无需在大型机上进行重大代码更改。

 ![\[Migrating mainframe applications that share programs: using an standalone API and multiple migration waves\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/modernization-mainframe-decoupling-patterns/images/shared-1-diff.png) 

如果您要使用独立的 API 来解耦代码，并在不同的波浪中迁移应用程序，请按照以下步骤操作：

1. 将应用程序 A 及其关联程序迁移（重构）到云端，同时应用程序 B 继续驻留在本地。

1. 在应用程序 A 中，将对共享程序 AB.1 的内部程序调用替换为 API 调用。

1. 在主机上保留程序 AB.1 的副本，以便应用程序 B 可以继续运行。

1. 冻结大型机上程序 AB.1 的功能开发。此后，所有功能开发都将在云端的重构程序 AB.1 中进行。

1. 成功迁移应用程序 A 后，停用本地应用程序及其组件（不包括共享程序）。应用程序 B 及其组件（包括共享程序）继续驻留在本地。

1. 在下一组迁移浪潮中，迁移应用程序 B 及其组件。您可以将迁移、重构后的程序调用 AB.1 来减少应用程序 B 的重构工作。