このパターンは「レガシー置き換えのパターン」の一部です。
レガシー模倣
新しいシステムは、古いシステムが変更を認識しないようにレガシーシステムと相互作用します。
2022年1月12日
レガシーシステムを新しいシステムで段階的に置き換える際、新しい世界と古い世界を完全に分離することはできません。移行アーキテクチャでは、新しい世界が「灯をともし続ける」ために、データ(またはその他の相互作用)を提供する必要があります。
この場合、新しいシステムは既存の(しばしば暗黙的な)契約を満たす必要があり、そのため新しいシステムはレガシー模倣となる必要があります。
仕組み
レガシーシステムの技術アーキテクチャと目標アーキテクチャのビジョンを調査し、既存および将来のビジネスプロセスを理解することで、問題を部分に分解できる縫い目を発見し、活用できます。
レガシー模倣パターンは、これらの縫い目を実現するためのものであり、異なるシーケンスアプローチの選択肢を生み出し、その結果として生じます。
レガシー模倣は、Eric Evansのドメイン駆動設計の本にあるアンチ腐敗レイヤーパターンを具現化することがよくあります。 アンチ腐敗レイヤーの目的と同様の力が働いています。
クライアントに独自のドメインモデルの観点から機能を提供する分離レイヤーを作成します。レイヤーは、他のシステムへの変更をほとんどまたはまったく必要とせずに、既存のインターフェースを介して他のシステムと通信します。内部的には、レイヤーは必要に応じて2つのモデル間で双方向に変換します。
アンチ腐敗レイヤーと同様に、レガシー模倣の実装では通常、サービス、アダプター、トランスレーター、およびファサードが使用されます。
一般的に見られる模倣には少なくとも2つのタイプがあり、サービスを提供または消費するという観点から最も簡単に説明できます。
サービス提供模倣は、レガシーインターフェースの背後に新しい実装をカプセル化します。レガシーコンポーネントは、レガシーインターフェースを使用してそれと対話でき、新しい実装と連携していることを認識しません。
サービス消費模倣は、既存のレガシーインターフェースを使用して、まだ置き換えられていないレガシーシステムと連携します。この相互作用も、古いシステムにとっては透過的です。
使用場面
これらの異なるタイプの模倣をさらに説明するために、この図は、販売、ロジスティクス、およびビジネスパフォーマンスの3つのビジネスプロセスをサポートするモノリシックレガシーシステムを示しています。

検討されているオプションは、ロジスティクス機能にバリューストリーム抽出を使用することです。そうすることで、次のような移行アーキテクチャになる可能性があります。

新しいロジスティクスシステムが販売の履行を処理できるようにするために、イベントインターセプトが提案されています。この例では、イベントインターセプターはサービス提供模倣の例です。つまり、レガシーインターフェース(レガシーイベントの消費)に準拠しています。
ビジネスパフォーマンスプロセスが引き続き機能するためには、ここでもレガシー模倣パターンの使用が提案されていますが、今回はサービス消費模倣としてです。必要なロジスティクスメトリクスをレガシーレポートデータベースに複製します(レガシーデータベースのスキーマとセマンティクスに準拠)。
これらのコンポーネントはどちらも、システムの目標アーキテクチャ内では永続しません。これらは移行用です。
既存のロジスティクスパートナーシステムは引き続き統合する必要があるため、新しいロジスティクスシステムではアンチ腐敗レイヤーが使用されます。これは永続するため、模倣(または移行)とは見なされませんが、新しいロジスティクスシステムのドメインモデルが、その外部システムで使用されるモデルによって損なわれないようにするために、アンチ腐敗レイヤーの作成が使用されます。

このページは次のページの一部です
レガシー置き換えのパターン

パターン
重要なリビジョン
2022年1月12日