

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# アプローチ 2: 共有ライブラリを使用してのデカップリング
<a name="library"></a>

この方法では、共有プログラム AB.1 は Java 共通ライブラリに変換され、移行用のアプリケーションとともにパッケージ化されます。共有プログラムがスタンドアロンサービスではなくサポートライブラリである場合は、この方法をお勧めします。

アプリケーション A と B の残りのコンポーネントは Java プログラムにリファクタリングされ、クラウドに移行されます。アプリケーションを同じウェーブまたは異なるウェーブで移行できます。

## 同じウェーブでのアプリケーションの移行
<a name="library-same-wave"></a>

次の図では、アプリケーション A と B が同じウェーブに移行されるようにグループ化されています。

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

共有ライブラリを使用し、同じ Wave でアプリケーションを移行してコードをデカップリングする場合は、これらの手順に従います。

1. アプリケーション A と B を関連するプログラムを使用して Java にリファクタリングし、それらをクラウドに移行します。

1. フルマネージド型のソース管理サービスでアプリケーションのソースコードを維持します。共有プログラムを使用するチームは、プルリクエスト、ブランチ、マージを使用してコードの変更を共同作業でき、共有プログラムコードに加えられた変更を制御できます。

1. 移行後、オンプレミスのメインフレームアプリケーションとそのコンポーネントを廃止します。

## さまざまなウェーブでのアプリケーションの移行
<a name="library-multi-wave"></a>

アプリケーションを同じ移行ウェーブにグループ化するには大きすぎる場合は、次の図に示すように複数のウェーブ中にアプリケーションを移行し、移行中にサービスの継続性を維持できます。このアプローチを用いて、アプリケーションをまとめてバンドルすることなく、段階的にアプリケーションを近代化できます。アプリケーションを別々の Wave に移行すると、メインフレーム上で大きなコードを変更することなく、アプリケーションがデカップリングされます。

 ![\[Migrating mainframe applications that share programs: using a common library and multiple migration waves\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/modernization-mainframe-decoupling-patterns/images/shared-2-diff.png) 

共有ライブラリを使用し、異なるウェーブでアプリケーションを移行することによってコードをデカップリングしている場合は、これらの手順に従います。

1. アプリケーション B がオンプレミスに常駐している間、（リファクタリング）アプリケーション A と関連するプログラムをクラウドに移行します。

1. アプリケーション B が引き続き動作できるように、プログラム AB.1 のコピーをメインフレームに保持します。

1. メインフレーム上でプログラム AB.1 の機能開発をフリーズします。この時点で、すべての機能開発はクラウド中のリファクタリングプログラム AB.1 で行われます。

1. プログラム AB.1 の新機能を開発する場合、将来の Wave でのアプリケーション B の移行をサポートするために、下位互換性を維持します。

1. アプリケーション A が正常に移行されたら、オンプレミスアプリケーションとそのコンポーネント (共有プログラムを除く) を廃止します。アプリケーション B とそのコンポーネント (共有プログラムを含む) は、引き続きオンプレミスに常駐し続けます。

1. 次の移行ウェーブセットでは、アプリケーション B とそのコンポーネントを移行します。アプリケーション B のリファクタリングの労力を減らすために、クラウド内のプログラム AB.1 の最新の共有ライブラリを使用できます。