JP2024506528A - アプリケーション環境マイグレーションにおけるデータベースマイグレーションのためのシステムおよび方法 - Google Patents
アプリケーション環境マイグレーションにおけるデータベースマイグレーションのためのシステムおよび方法 Download PDFInfo
- Publication number
- JP2024506528A JP2024506528A JP2023545248A JP2023545248A JP2024506528A JP 2024506528 A JP2024506528 A JP 2024506528A JP 2023545248 A JP2023545248 A JP 2023545248A JP 2023545248 A JP2023545248 A JP 2023545248A JP 2024506528 A JP2024506528 A JP 2024506528A
- Authority
- JP
- Japan
- Prior art keywords
- database
- source
- target
- components
- migration
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000013508 migration Methods 0.000 title claims abstract description 140
- 230000005012 migration Effects 0.000 title claims abstract description 140
- 238000000034 method Methods 0.000 title claims abstract description 129
- 238000011156 evaluation Methods 0.000 claims abstract description 77
- 230000008859 change Effects 0.000 claims abstract description 18
- 238000000638 solvent extraction Methods 0.000 claims abstract description 6
- 238000013515 script Methods 0.000 claims description 40
- 238000002360 preparation method Methods 0.000 claims description 21
- 238000012360 testing method Methods 0.000 claims description 15
- 230000010354 integration Effects 0.000 claims description 11
- 230000001419 dependent effect Effects 0.000 claims description 6
- 230000002401 inhibitory effect Effects 0.000 claims 2
- 238000005192 partition Methods 0.000 claims 1
- 230000007704 transition Effects 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 24
- 238000013461 design Methods 0.000 description 17
- 238000005516 engineering process Methods 0.000 description 15
- 239000008186 active pharmaceutical agent Substances 0.000 description 14
- 238000010586 diagram Methods 0.000 description 9
- 238000003860 storage Methods 0.000 description 9
- 238000004458 analytical method Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 7
- 238000006243 chemical reaction Methods 0.000 description 7
- 238000011161 development Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 239000003112 inhibitor Substances 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 3
- 238000013499 data model Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000005055 memory storage Effects 0.000 description 3
- 239000010453 quartz Substances 0.000 description 3
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N silicon dioxide Inorganic materials O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 description 3
- RLLPVAHGXHCWKJ-IEBWSBKVSA-N (3-phenoxyphenyl)methyl (1s,3s)-3-(2,2-dichloroethenyl)-2,2-dimethylcyclopropane-1-carboxylate Chemical compound CC1(C)[C@H](C=C(Cl)Cl)[C@@H]1C(=O)OCC1=CC=CC(OC=2C=CC=CC=2)=C1 RLLPVAHGXHCWKJ-IEBWSBKVSA-N 0.000 description 2
- 241001444201 Falco tinnunculus Species 0.000 description 2
- 238000000354 decomposition reaction Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000011990 functional testing Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000011056 performance test Methods 0.000 description 2
- 238000004801 process automation Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 235000010627 Phaseolus vulgaris Nutrition 0.000 description 1
- 244000046052 Phaseolus vulgaris Species 0.000 description 1
- 238000009634 analytical profile index Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000000344 soap Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
- G06N5/027—Frames
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本主題は、アプリケーション環境マイグレーションにおけるデータベースマイグレーションのためのシステムおよび方法を開示する。一実施態様では、方法は、アプリケーションサーバー(102)のプロセッサ(122)によってソースアプリケーション環境のソースデータベース(204)を評価することを含む。プロセッサ(122)は、ソースデータベース(204)のデータベースコンポーネント(204a、…、204n)をターゲットデータベース(424)に移行するための変化の量を確認し、ソースデータベース(204)のデータベースコンポーネント(204a、…、204n)の移行を完了するための少なくとも1つの機能的準備(304)およびタイムライン(306)を提供する評価統計(302)を予測する。プロセッサ(122)は、データベースリンクの形式でデータベースコンポーネント(204a、…、204n)間の依存関係を特定するためにソースデータベース(204)をさらにスキャンし、データベースリンクを保持しながらターゲットデータベース(424)に従ってソースデータベース(204)を分割することによって、リファクタリングされたデータベース構造(506a、…、506n)を生成する。それにより、プロセッサ(122)によって、予測された評価統計(302)およびリファクタリングされたデータベース構造(506a、…、506n)に従ってターゲットデータベース(424)のきめの細かいデータベースコンポーネント(424a、…、424n)を更新し、したがって、ソースデータベース(204)をターゲットデータベース(424)に移行し、当該移行することにより、更新されたきめの細かいデータベースコンポーネント(424a、…、424n)がリプラットフォームされる。
Description
(発明の分野)
本開示は概して、コンピュータの分野に関し、より具体的には、本開示は、構造的健全性と品質基準を維持しつつ、ユーザーが面倒な手間および時間をかけることなく、データベースをより古い環境からより新しい高速な環境に自動的に移行させることができるアプリケーション環境マイグレーションにおけるデータベースマイグレーションのためのシステムおよび方法に関する。
本開示は概して、コンピュータの分野に関し、より具体的には、本開示は、構造的健全性と品質基準を維持しつつ、ユーザーが面倒な手間および時間をかけることなく、データベースをより古い環境からより新しい高速な環境に自動的に移行させることができるアプリケーション環境マイグレーションにおけるデータベースマイグレーションのためのシステムおよび方法に関する。
時代の変化とともに技術も変化し、車輪の発明から、我々は今では、モバイルデバイスを介して通勤がオーダーされ得る時代に立っている。このように、テクノロジーは、コンピュータが舞踏室のように大きい時代から、親指のつめのように小さい今の時代へと、大きな飛躍を遂げた。我々は、少しずつ、複数のアプリケーションを通じて人類を助ける技術を刻みました。この絶え間なく変化し、絶えず変化するテクノロジーの分野では、アプリケーション環境は改善を続けており、それらの高度な要件により合わせてアプリケーションを更新し続ける必要が生じる。
従来、アプリケーション環境のデータベースは、より新しい環境に合わせてデータベースを完全に再現することでより新しい環境にマイグレーションされてきたが、時間がかかり、既存のデータベースの利益をあまり提供していなかった。環境の更新がより速くなると、データベースがより新しい環境に移行されるまでにより新しいそれがリリースされるので、データベースを手動で更新する時間が不十分である。さらに、限定されないが、データベースを異なる環境に移行する際には、変換中にリンクが失われないようにすること、ならびにより古い環境およびより新しい環境に対応したマイグレーションを保証することを含むその独自の課題もあった。
企業がそのIT戦略の重要な部分としてクラウドを活用することで、クラウドの採用が主流になった。これは、AWS、Azure、およびGCPなどの主要なクラウドプロバイダーが過去3年間で年々成長していることからも明らかである。最初のフェーズとして、これらの企業は、クラウドネイティブ設計の原則を使用してクラウド上に新しいアプリケーションを開発し、クラウドデータベースソリューションでデータベースをホスティングすることにより、クラウドの採用に成功した。それで成功を実現したので、企業はクラウドの利益を最大限に活用するために、それらの重要なアプリケーションの残りをクラウドに移行する方法を模索している。しかし、課題は、既存のアプリケーションをクラウドに移行することで、別の一連の問題が発生することであり、例えば、適切なクラウド移行アプローチ、リスクのバランス、クラウドマイグレーションを完了するためのコストとタイムライン、既存のアプリケーションの複雑さ、特にSMEのない古いデータベースまたはアプリケーション、総所有コスト(TCO)の節約を最大化し、将来のリリースの生産性、実行速度、パフォーマンスの向上などを増加させることである。
データベースおよびアプリケーション環境の移行には複雑なパラメータおよび労力が必要なため、定期的な更新に間に合うようにクランチと一緒に、データベースおよびそのコンポーネントに関連するさまざまな問題に対処しながら、手動による支援を必要とせずに、または最小限の方法でデータベースをある環境から別の環境に移行する、アプリケーション環境マイグレーションにおけるデータベースマイグレーションのためのシステムおよび方法を開発する必要がある。
この概要は、アプリケーション環境マイグレーションにおけるデータベースマイグレーションのためのシステムおよび方法に関連する概念を紹介するために提供されており、その概念は、以下の詳細な説明でさらに説明される。この概要は、クレームされた主題の本質的な特徴を特定することを意図したものでも、クレームされた主題の範囲を決定または制限するために使用することを意図したものでもない。
一実施態様では、アプリケーション環境マイグレーションにおけるデータベースマイグレーションのための方法が開示される。方法は、アプリケーションサーバーのプロセッサによって、ソースアプリケーション環境のソースデータベースを評価することと、プロセッサによって、ソースデータベースのデータベースコンポーネントをターゲットデータベースに移行するための変化の量を確認することと、プロセッサによって評価統計を予測することとを含み、評価統計は、ソースデータベースのデータベースコンポーネントの移行を完了するための少なくとも1つの機能的準備およびタイムラインを提供する。方法はさらに、プロセッサによってソースデータベースをスキャンして、データベースリンクの形式でデータベースコンポーネント間の依存関係を特定することと、プロセッサによってリファクタリングされたデータベース構造を生成することとを含み、リファクタリングされたデータベース構造は、データベースリンクを保持しながら、ターゲットデータベースに従ってソースデータベースを分割することによって生成される。方法はさらに、プロセッサによって、予測された評価統計およびリファクタリングされたデータベース構造に従ってターゲットデータベースのきめの細かいデータベースコンポーネントを更新することと、プロセッサによってソースデータベースをターゲットデータベースに移行することとを含み、移行することは、更新されたきめの細かいデータベースコンポーネントをリプラットフォームする。
さらに別の実施態様では、方法は、ソースデータベースを、ソースデータベースのサイズおよび複雑さに基づいて計算されたターゲットデータベースに移行するための変化の量を有する。
さらに別の実施態様では、方法は、継続的インテグレーションおよび展開フレームワークおよび自動化されたテストフレームワークを利用して生成されたリファクタリングされたデータべース構造を有する。
さらに別の実施態様では、方法は、ソースデータベースの移行を完了するための少なくとも1つの阻害要因を提供する評価統計を有する。
さらに別の実施態様では、方法は、ソースデータベースをスキャンすることを含み、ソースデータベースのデータベースコンポーネント間の接続をスキャンすることを含む。
さらに別の実施態様では、方法は、ソースデータベースのデータベースコンポーネント間の接続を維持しながら、ターゲットデータベースに従って生成されたリファクタリングされたデータベース構造を有する。
さらに別の実施態様では、方法は、AIエンジンによって特定されるリファクタリングされたデータベース構造を有する。
別の実施態様では、方法は、プロセッサによって、ターゲットアプリケーション環境に従ってソースアプリケーション環境から辞書およびキーワードを移行することを含む。
別の実施態様では、方法は、プロセッサによって、ターゲットアプリケーション環境に従ってソースアプリケーション環境からのスクリプトを実装することを含む。
別の実施態様では、方法は、プロセッサによって、ビジネスロジック、リンク、ルールエンジン、利用可能な環境のライブラリ、標準ツール、およびコーディング言語を含むアプリケーションコードにアクセスすることを含む。
さらに別の実施態様では、方法は、ソースからターゲットデータベースへの環境の再発展、ソースからターゲットデータベースへのリファクタリング、ソースからターゲットデータベースへのリホスティング、およびソースからターゲットデータベースへのリプラットフォーミングのステップを含むターゲットデータベースへ移行するアプリケーション環境のソースデータベースを含む。
一実施態様では、アプリケーション環境マイグレーションにおけるデータベースマイグレーションのためのシステムが開示される。システムは、プロセッサと、プロセッサに結合されたメモリとを備え、プロセッサは、メモリに格納された複数のモジュールを実行する。複数のモジュールは、ソースアプリケーション環境のソースデータベースを評価し、ソースデータベースのデータベースコンポーネントをターゲットデータベースに移行するための変化の量を確認するための評価モジュールをさらに備え、評価モジュールは、ソースデータベースのデータベースコンポーネントの移行を完了するための少なくとも1つの機能的準備およびタイムラインを提供する評価統計を予測する。複数のモジュールは、ソースデータベースをスキャンしてデータベースリンクの形式でデータベースコンポーネント間の依存関係を特定し、リファクタリングされたデータベース構造を生成するためのリファクタリングモジュールをさらに備え、リファクタリングされたデータベース構造は、データベースリンクを保持しながらターゲットデータベースに従ってソースデータベースを分割することによって生成される。複数のモジュールは、予測された評価統計およびリファクタリングされたデータベース構造に従ってターゲットデータベースのきめの細かいデータベースコンポーネントを更新し、ソースデータベースをターゲットデータベースに移行するためのリプラットフォームモジュールをさらに備え、移行することは、更新されたきめの細かいデータベースコンポーネントをリプラットフォームする。
さらに別の実施態様では、システムは、ソースデータベースを、ソースデータベースのサイズおよび複雑さに基づいて計算されたターゲットデータベースに移行するための変化の量を有する。
さらに別の実施態様では、システムは、継続的インテグレーションおよび展開フレームワークおよび自動化されたテストフレームワークを利用して生成されたリファクタリングされたデータべース構造を有する。
さらに別の実施態様では、システムは、ソースデータベースの移行を完了するための少なくとも1つの阻害要因を提供する評価統計を有する。
さらに別の実施態様では、システムは、ソースデータベースをスキャンすることを含み、ソースデータベースのデータベースコンポーネント間の接続をスキャンすることを含む。
さらに別の実施態様では、システムは、ソースデータベースのデータベースコンポーネント間の接続を維持しながら、ターゲットデータベースに従って生成されたリファクタリングされたデータベース構造を有する。
さらに別の実施態様では、システムは、AIエンジンによって特定されるリファクタリングされたデータベース構造を有する。
さらに別の実施態様では、システムは、プロセッサによって、ターゲットアプリケーション環境に従ってソースアプリケーション環境から辞書およびキーワードを移行することをさらに含むリファクタリングモジュールを備える。
別の実施態様では、システムは、ターゲットアプリケーション環境に従ってソースアプリケーション環境からのスクリプトをプロセッサによって実装することをさらに含むリプラットフォームモジュールを備える。
別の実施態様では、システムは、プロセッサによって、ビジネスロジック、リンク、ルールエンジン、利用可能な環境のライブラリ、標準ツール、およびコーディング言語を含むアプリケーションコードへのアクセスをさらに実行する複数のモジュールを備える。
別の実施態様では、システムは、ソースからターゲットデータベースへの環境の再発展、ソースからターゲットデータベースへのリファクタリング、ソースからターゲットデータベースへのリホスティング、およびソースからターゲットデータベースへのリプラットフォーミングのステップを含むターゲットデータベースへ移行するアプリケーション環境のソースデータベースを含む。
あるプラットフォームから別のプラットフォームにアプリケーションを移行するために使用され得るアプリケーション環境マイグレーションにおけるデータベースマイグレーションのためのシステムおよび方法を提供することが、主題の主な目的であり、より具体的には、それは、データベースをより古い環境からより新しい環境に移行するために使用され得る。アプリケーション環境マイグレーションにおけるデータベースマイグレーションのシステムおよび方法は、移行されるデータベース、ならびにデータベースが開発されたより古い環境およびデータベースが移行されるべきより新しい環境を含む環境に基づいてカスタマイズされ得る。
主題の別の目的は、データベースリンクを保持しながら多数のデータベースに対応するアプリケーション環境マイグレーションにおけるデータベースマイグレーションを提供することである。さらに、アプリケーション環境マイグレーションにおけるデータベースマイグレーションのためのシステムおよび方法は、選択された移行対象のデータベースを、広範囲の環境から別の広範囲の環境へ移行することができるようにしてもよい。
主題の別の目的は、手動入力を必要とせずに自動化された方法でデータベース環境を移行する、アプリケーション環境マイグレーションにおけるデータベースマイグレーションのためのシステムおよび方法を提供することである。
主題の別の目的は、開発チームによって行われる作業の繰り返し可能なパターンを排除し、それによってコストも削減することによって、データベースをより古い環境からより新しい環境に移行するために開発チームが費やす時間と労力を削減するアプリケーション環境マイグレーションにおけるデータベースマイグレーションを提供することである。
主題の別の目的は、開発チームが既存のデータベースをより古い環境からより新しい環境に移行するために利用され得るアプリケーション環境マイグレーションにおけるデータベースマイグレーションを提供することである。
主題の別の目的は、データベースの既存のチャンクを調査し、それを分析し、それを処理し、そしてその後それをリパッケージ/リプラットフォームするパーサーのように動作するアプリケーション環境マイグレーションにおけるデータベースマイグレーションを提供することである。
主題の別の目的は、Oracle/DB2/Sybaseなどのより古い環境からAzure SQL/Postgresなどのクラウドベースのソリューションなどのより新しい環境にデータベースを移行するために利用され得る、アプリケーション環境マイグレーションにおけるデータベースマイグレーションを提供することである。
主題の別の目的は、実装コストを削減し、総所有コストを削減して収益性を高め、実行速度を向上させ、アプリケーションのパフォーマンスを向上させ、そしてアプリケーションの生産性を向上させることによって、データベースをより古い環境からより新しい環境に移行するアプリケーション環境マイグレーションにおけるデータベースマイグレーションを提供することである。
特定の態様、実施形態、実施態様および/または構成に応じて多くの利点を提供することは、主題の別の目的である。
動作の労力およびコストを制御しながら、信頼性の高い実行、スケーラビリティ、および付加価値サービスを提供できるプラットフォームを提供することは、主題の別の目的である。
多数のインスタンスを同時に効率的に管理し、さまざまな規制要件で作業し、リソースがユーザーフレンドリーなインターフェースと緊密に、効率的に、そして集合的に協働および連携できるようにすることは、主題の別の目的である。
主題のこれらおよび他の実施態様、実施形態、プロセス、および特徴は、以下の詳細な説明が付随する実験の詳細とともに読まれるときに、より完全に明らかになるであろう。しかしながら、主題の前述の要約およびそれに関する以下の詳細な説明の両方は、1つの潜在的な実施態様または実施形態を表し、本開示または主題の他の代替の実施態様もしくは実施形態を限定するものではない。
上に要約された主題の主要な特徴の明確な理解は、主題の方法およびシステムを説明する添付の図面を参照することによって得ることができるが、そのような図面は、主題の好ましい実施形態を描写し、したがって、主題が考慮することができる他の実施形態に関して、その範囲を制限すると見なされるべきではない。したがって:
本主題の実施形態による、アプリケーション環境マイグレーションにおけるデータベースマイグレーションの方法を示す概略モジュール図を示す。
本主題の実施形態による、アプリケーション環境マイグレーションシステムにおける例示的なデータベースマイグレーションの動作を説明するシステム図を示す。
本主題の実施形態による、アプリケーション環境マイグレーションシステムにおける例示的なデータベースマイグレーションによって自動的に生成される例示的な評価レポートを示す。
本主題の実施形態による、アプリケーション環境マイグレーション方法における例示的なデータベースマイグレーションの例示的な図を示す。
本主題の実施形態による、アプリケーション環境マイグレーション方法における例示的なデータベースマイグレーションの例示的な図を示す。
本主題の実施形態による、アプリケーション環境マイグレーションにおけるデータベースマイグレーションの方法の例示的なフローチャートを示す。
本主題の実施形態による、アプリケーション環境マイグレーションにおけるデータベースマイグレーションの方法の別の例示的なフローチャートを示す。
(発明の詳細な説明)
以下は、添付の図面に示されている本開示の実施態様の詳細な説明である。実施態様は、開示を明確に伝えるように詳細である。しかしながら、提供される詳細の量は、実施態様を制限することを意図するものではなく、本開示の精神および範囲内にあるすべての改変物、同等物、および代替物を網羅することを意図している。アプリケーション環境マイグレーションにおけるデータベースマイグレーションのための記載されたシステムおよび方法の態様は、任意の数の異なるコンピューティングシステム、環境、および/または構成で実装され得るが、実施形態は、以下の例示的なシステム(複数可)の文脈で説明される。
以下は、添付の図面に示されている本開示の実施態様の詳細な説明である。実施態様は、開示を明確に伝えるように詳細である。しかしながら、提供される詳細の量は、実施態様を制限することを意図するものではなく、本開示の精神および範囲内にあるすべての改変物、同等物、および代替物を網羅することを意図している。アプリケーション環境マイグレーションにおけるデータベースマイグレーションのための記載されたシステムおよび方法の態様は、任意の数の異なるコンピューティングシステム、環境、および/または構成で実装され得るが、実施形態は、以下の例示的なシステム(複数可)の文脈で説明される。
本開示は、ソースアプリケーション環境のソースデータベースからターゲットアプリケーション環境のターゲットデータベースへのデータベースクラウドのリプラットフォーミングを提供する。データベースのクラウドリプラットフォームは、既存のオンプレミスデータベースをクラウドに移行し、クラウドのスケーラビリティおよび柔軟性のある機能を利用することにより、ソースアプリケーション環境のソースデータベースを効率的に機能させることを含む。ソースアプリケーション環境の構造のソースデータベースも改変されて、これらのデータベースの総所有コスト(TCO)が削減され、これらは、仮想マシン、アプリケーションサーバー、およびデータベースのライセンスコストを削減するために、よりオープンソースでクラウドフレンドリーなソフトウェアを採用することを含む。実際のTCO削減量はデータベースによって異なり、ソースデータベースの評価後に決定される。本開示は、データベースで実行されるいくつかの重要なステップをリストし、データベースごとに異なり、Cloud PlatformまたはPaaSで効果的に機能するように、既存のデータベースを変更し得るが、ソースおよびオンプレミスの設計パターンに関連するすべてのブロッカーが変更され、すべての基盤となるリンク、接続、ライブラリが更新されて、ソースデータベースがコンテナまたはPaaS、アプリケーションサーバー(Weblogic、WebSphere、JBossなど)と互換性を持つようになり、そしてデータベースはオープンソースのクラウドフレンドリーなソフトウェアに置き換えられ得、モノリスアプリケーションは効率および速度のためにより小さなマクロサービスに分離され得、モノリスデータベースはターゲットクラウドデータベースでリファクタリングおよびリプラットフォームされ得る。
本開示は、単純なコンテナ化によるクラウドリプラットフォーミングのためのメカニズムを提供し、コンテナ化を妨げるすべてのコードブロッカーを削除し、Dockerなどのコンテナにソースアプリケーションを展開してクラウド上でそれを動作させることを含む。さらに、テストケースおよびCI/CDの自動化を含む、ソースアプリケーションリリースプロセスも自動化されよう。またさらに、ソースアプリケーションおよび/またはソースデータベースをJAVAアプリケーション用のTomcatおよびレガシーDB2データベースなどの軽量のオープンソースサーバーにリプラットフォームして、ライセンスコストを削減し、クラウドでのコンピューティングコストを削減することで、これらのアプリケーションのTCOを削減することもできる。しかし、安定性およびパフォーマンスを保証するために、モノリスアプリケーションをより小さなサービスまたはリファクタリングされたデータベース構造に分割する必要があり、これらのアプリケーションをすべてステートレスにし、それぞれを個別のコンテナに展開する個別のTomcatサーバーにそれらを展開する。したがって、ソースアプリケーションは、モノリスアプリケーションを分離し、マクロサービス概念を使用してAPIを介してそれを公開し、それをクラウド準備アプリケーションにすることで、ターゲットアプリケーションプラットフォームに移行されよう。モノリシックアプリケーションをマクロサービスに分割することに加えて、CI/CDも実装され、高速で自動化された展開を実現する。それは、リファクタリングされたデータベース構造を生成するPostgres DBキーワードへのリファクタリングDBキーワードを含むDBリプラットフォーミングを実行する。さらに、Azure Postgres DDL SQLスクリプトとAzure Postgres DML SQLスクリプトを生成するスクリプトジェネレータを使用し、DDLと DMLをターゲットのAzure Postgresにアップロードし、デバッグとエラーを修正してAzure Postgres DBを準備する。コンポーネントごとの構造とステップごとの方法を以下に示す。
図1は、本主題の実施形態による、アプリケーション環境マイグレーションにおけるデータベースマイグレーションの方法を示す概略モジュール図100を示す。
一実施態様では、アプリケーション環境マイグレーションシステム120におけるデータベースマイグレーションは、サーバー102上でアプリケーション環境マイグレーションシステムにおけるデータベースマイグレーションのための方法を実装し、システム120は、プロセッサ(複数可)122、インターフェース(複数可)124、フレームワーク(複数可)150、AIエンジン152、およびプロセッサ(複数可)122に結合されたまたはプロセッサ(複数可)122と通信しているメモリ126を含む。プロセッサ(複数可)122は、1つ以上のマイクロプロセッサ、マイクロコンピュータ、マイクロコントローラ、デジタル信号プロセッサ、中央処理装置、状態機械、論理回路、および/またはデータべースマイグレーション命令に基づいて信号を操作する任意のデバイスとして実装され得る。他の機能の中でも、プロセッサ(複数可)122は、メモリ126に格納されたコンピュータ可読命令をフェッチして実行するように構成される。フレームワーク150は、継続的インテグレーションおよび継続的展開フレームワーク、自動化されたテストフレームワークなどを含むがこれらに限定されない。AIエンジン152は、データベース(DB)リプラットフォームエンジン、アプリリプラットフォームエンジン、バッチおよびスケジューラリプラットフォームエンジン、メッセージブローカーリプラットフォームエンジン、オープンソースAIエンジンなどを含むが、これらに限定されない。
本開示は、システムがサーバー上のアプリケーションとして実装されるシナリオを考慮して説明されているが、システムおよび方法は、様々なコンピューティングシステムに実装され得る。記載された方法(複数可)を実装し得るコンピューティングシステムは、メインフレームコンピュータ、ワークステーション、パーソナルコンピュータ、デスクトップコンピュータ、ミニコンピュータ、サーバー、マルチプロセッサシステム、ラップトップ、タブレット、SCADAシステム、スマートフォン、モバイルコンピューティングデバイスなどを含むが、これらに限定されない。
インターフェース(複数可)124は、システム120がユーザーと対話することを可能にする、例えば、ウェブインターフェース、グラフィカルユーザーインターフェースなどの様々なソフトウェアおよびハードウェアインターフェースを含み得る。さらに、インターフェース(複数可)124は、システム120が、ウェブサーバーおよび外部データサーバー(図示せず)などの他のコンピューティングデバイスと通信することを可能にし得る。インターフェース(複数可)124は、例えばLAN、ケーブルなどの有線ネットワーク、およびWLAN、セルラー、または衛星などの無線ネットワークを含む、多種多様なネットワークおよびプロトコルタイプ内の複数の通信を促進し得る。インターフェース(複数可)124は、多数のデバイスを互いにまたは別のサーバーに接続するための1つ以上のポートを含んでもよい。
アプリケーションサーバーおよびクラウド環境における全ての要素間で通信するために使用されるネットワークは、無線ネットワーク、有線ネットワーク、またはそれらの組み合わせであり得る。ネットワークは、イントラネット、ローカルエリアネットワークLAN、ワイドエリアネットワークWAN、インターネットなどの異なるタイプのネットワークのうちの1つとして実装され得る。また、ネットワークは、専用ネットワークであっても、共有ネットワークであってもよい。共有ネットワークは、例えば、ハイパーテキスト転送プロトコルHTTP、伝送制御プロトコル/インターネットプロトコルTCP/IP、無線アプリケーションプロトコルWAPなどの様々なプロトコルを使用して互いに通信する異なるタイプのネットワークのつながりを表す。さらにネットワークは、ルータ、ブリッジ、サーバー、コンピューティングデバイスを含む様々なネットワークデバイスを含んでもよい。ネットワークはさらに、クライアントサイトコンピュータ、ホストサイトサーバーもしくはコンピュータ、クラウド上、またはそれらの組み合わせなどにあるストレージデバイスへのアクセスを有する。ストレージは、1つまたは多数のメモリ記憶デバイス、データベースなどを含む、1つまたは多数のローカルおよびリモートのコンピュータ記憶媒体を有する。
メモリ126は、例えば、揮発性メモリ(例えば、RAM)、および/または不揮発性メモリ(例えば、EPROM、フラッシュメモリ等)を含む本分野で既知の任意のコンピュータ可読媒体を含み得る。一実施形態では、メモリ126は、モジュール(複数可)128およびシステムデータ140を含む。
モジュール128は、評価モジュール130、リファクタリングモジュール132、リプラットフォームモジュール134、およびブロッカー評価モジュール、スクリプトジェネレータモジュール等を含むがこれらに限定されない他のモジュール136をさらに含む。スクリプト生成器モジュールはさらに、テストケース生成器、ビルドスクリプト生成器、ドッカースクリプト生成器、パイプラインスクリプト生成器、展開スクリプト生成器などを含むが、これらに限定されない。このようなモジュールは、単一のモジュールとして表されてもよいし、異なるモジュールの組合せとして表されてもよいことが理解されよう。さらに、メモリ126は、とりわけ、モジュール128のうちの1つ以上によってフェッチ、処理、受信、および生成されたデータを格納するためのリポジトリとして機能するシステムデータ140をさらに含む。システムデータ140は、例えば、ストレージ144における運用データ、ワークフローデータ、および他のデータを含む。システムデータ140は、場合により、144a、144b、...、144nで表されるストレージ144を有する。一実施形態では、システムデータ140は、ウェブまたはクラウドネットワークを介して他のデータベースへのアクセスを有する。ストレージ144は、評価モジュールデータ、リファクタリングモジュールデータ、リプラットフォームモジュールデータ、ライブラリ、リンク識別子、データベースアダプタ、データベースディクショナリ、データベースパーサー、技術ディクショナリ、ファイルアダプタ、アプリケーションパーサー、パターン認識器、オープンソースライブラリ、技術スタックなどを含むが、これらに限定されない複数のデータベースを含む。このようなデータベースは、単一のデータベースとして表されてもよいし、異なるデータベースの組合せとして表されてもよいことが理解されよう。一実施形態では、データは、データ構造の形態でメモリ126に格納され得る。さらに、前述のデータは、関係データモデルまたは階層データモデルなどのデータモデルを使用して編成され得る。
サーバー102は、ターゲットアプリケーション環境サーバー104、および別のターゲットアプリケーション環境サーバー106、ならびにデータベース108を含むがこれに限定されないデータベースを含む複数のコンピューティングシステムを有するクラウド環境110にさらに接続されるまたは接続可能であるまたはその一部である。コンピューティングシステムおよびデータベースは、クラウドコンピューティングルールの下で互いに通信し、また、ウェブまたは他の利用可能な通信媒体/プロトコルの下でサーバー102と通信することが必須である。ターゲットアプリケーションサーバー104、106のコンピューティングシステムは、一般に、ネットワークによって接続され、かつネットワークを介して通信する複数のコンピューティングデバイスを含む分散処理システムである。ソフトウェアアプリケーションは、特定のクラウドコンピューティングシステムにおける1つ以上のコンピューティングデバイスにわたって実行するようにそれらを構成することによって、「クラウドで」実行され得る。クラウドコンピューティングシステムのコンピューティングデバイスは、それぞれソフトウェアアプリケーションの個別のコピーを実行してもよいし、場合によっては、ソフトウェアアプリケーションの動作が異なるコンピューティングデバイス間で分割されて並列実行されてもよい。クラウドコンピューティングシステムは、アプリケーションを実行するために利用可能なリソースを表す複数のクラウドコンピューティングインスタンスを含んでもよい。各インスタンスは、特定の能力(ストレージサイズ、処理速度、ネットワーク帯域幅など)を有する物理コンピューティングデバイスであってもよいし、または特定の能力を有する仮想コンピューティングデバイスであってもよい。特定のクラウドコンピューティングシステムは、ソフトウェアアプリケーションを実行するための異なる能力セットを有する異なるインスタンスタイプを提供し得る。
一実施態様では、最初に、マイグレーション専門家、データベース管理者、アプリケーション開発者、品質アナリストまたはテスト専門家を含むがこれらに限定されないユーザーが、ユーザーアクセスデバイスを使用して、サーバー102を使用してインターフェース124を介してシステム120にアクセスし得る。システム120ならびに関連する方法および関連するモジュール、サブモジュール、方法の動作は、以下に説明する図2、図3、図4、図5、図6、および図7を用いて詳細に説明され得る。
一実施形態では、システム120は、サーバー102上のインターフェース124を介してユーザー命令データを受信する。システム120のモジュール128は、システムデータ140、他のモジュール136、フレームワーク150、およびサポートコンポーネントを使用しながら、プロセッサ122を使用して命令を処理する。アプリケーション環境マイグレーションにおけるデータベースマイグレーション用の評価モジュール130は、ある環境から別の環境へのデータベースの移行を開始する前に利用される。リスク、コスト、タイムライン、および変更がターゲットアプリケーション環境のターゲットデータベースに移行する他の依存アプリケーションに与える影響を評価しながら、評価モジュール130は、ソースアプリケーション環境のソースデータベースの評価を実行して、ソースアプリケーション環境のソースデータベースが受けなければならない変化の量の深い理解を確認する。評価モジュール130は、様々なスタイルを有する様々な開発者によって開発された基礎となるデータベースリンク、接続、依存関係を理解する。さらに、AIエンジン152を用いて評価モジュール130によって生成された予測評価レポート302は、必要なタイムライン、変更する必要があるデータベースコンポーネント/構造の割合、複数の準備パラメータ、複数の阻害要因またはコードブロッカーおよび理由を伴う警告、データベースコンポーネントを変更する必要がある強調表示された部分、モノリスを分割できるサービスの数、モノリスを分割できるサービスの種類、ならびに継続的インテグレーションおよび継続的展開のためのデータベースの準備に関するがこれらに限定されない深い詳細を提供する。評価モジュール130によって生成された評価レポート302は、ソースアプリケーション環境のソースデータベースの移行を完了するための正確な見積もりおよびタイムラインを提供する。一実施形態では、RPAボットは、アプリケーション環境マイグレーション予測(PAEMF)アルゴリズムのプロアクティブデータベースマイグレーションを使用して、評価レポート302を生成するように構成される。一実施形態では、RPAボットは、ソフトウェアボットまたはソフトウェアボットおよびハードウェアボットの組み合わせである。一実施形態では、ソフトウェアボットは、プロセッサがAIを利用することによってロボティックプロセスオートメーションを実行することを可能にするコンピュータプログラムである。別の実施形態では、ボットは、ハードウェアおよびソフトウェアの組み合わせを有し、ハードウェアは、特にアプリケーション環境マイグレーションにおけるデータベースマイグレーションのためのロボティックプロセス自動化を可能にする機能を実行するために専用のメモリ、プロセッサ、コントローラおよび他の関連するチップセットを含む。
アプリケーション環境マイグレーションにおけるデータベースマイグレーションのためのリファクタリングモジュール132は、データベースリンクの形式でデータベースコンポーネント間の依存関係を特定するためにソースデータベースをスキャンすることによって、アプリケーション環境マイグレーションにおけるソースデータベースマイグレーションからアプリケーション環境マイグレーションにおけるターゲットデータベースマイグレーションへの自動化されたリプラットフォーミングをサポートし、データベースリンクを保持しながらターゲットデータベースに従ってソースデータベースを分割することによってリファクタリングされたデータベース構造を生成する。リファクタリングモジュール132は、継続的インテグレーションおよび展開フレームワーク150、自動化されたテストフレームワーク150、ならびにミドルウェアリプラットフォームおよび環境に優しい設計パターンを利用して、ソースアプリケーション環境のためのリファクタリングされたデータベース構造を生成する。
アプリケーション環境マイグレーションにおけるデータベースマイグレーションのためのリプラットフォームモジュール134は、データベースのサイズおよびその複雑さに基づいてデータベースをある環境から別の環境に変換するために、ターゲットアプリケーション環境へのアプリケーション環境マイグレーションにおけるソースデータベースマイグレーションのための自動化されたリプラットフォーミングをサポートする。リプラットフォームモジュール134は、予測された評価統計およびリファクタリングされたデータベース構造に従ってターゲットデータベースのきめの細かいデータベースコンポーネントを更新し、ソースデータベースをターゲットデータベースに移行して、更新されたきめの細かいデータベースコンポーネントをリプラットフォームする。リプラットフォームモジュール134はまた、ソースアプリケーション環境のパターンをターゲットアプリケーション環境の設計パターンに統合すること、コードを微調整すること、展開の問題を解決すること、移行したアプリケーションが完全に機能することを確認するためにセキュリティを実装することなどを含むがこれに限定されないアクティビティを実行する。リプラットフォームモジュール134は、リホスティング環境マイグレーション、データベースリプラットフォーミング、データベースリファクタリングおよびネイティブデータベース開発などを含むがこれらに限定されない、複数の形態の環境マイグレーションを支援する。
他のモジュール136のブロッカー評価モジュール、オンプレミス設計パターンを有するモノリシックウェブアプリケーションのような任意のアプリケーションは、アプリケーション環境マイグレーションにおけるデータベースマイグレーションのためのシステムおよび方法に入力され得、アプリケーション環境マイグレーションにおけるデータベースマイグレーションのためのシステムおよび方法のブロッカー評価モジュールは、モノリシックウェブアプリケーションのオンプレミス設計パターンのパターンを発見し得る。さらに、この情報は、図1に示すように、アプリケーション環境マイグレーションにおけるデータベースマイグレーションのためのシステムおよび方法の自動化されたリプラットフォームモジュールに転送され得る。
システム120の参照アーキテクチャはさらに、テスト生成器-テスト生成器は、生成されたAPIのためのユニット、機能および性能テストケースのためのテストケースを生成するなどのサポートコンポーネントを有する。ビルドスクリプト生成器-ビルドスクリプト生成器は、アプリケーションを正常に構築して実行するためのスクリプトを生成する。Dockerスクリプトジェネレータ-Dockerスクリプトジェネレータは、アプリケーションとその依存関係をコンテナ化するためのスクリプトを生成する。パイプラインスクリプトジェネレータ-パイプラインスクリプトジェネレータは、開発、テスト、および本番環境用のCI/CDパイプラインを作成するためのスクリプトを生成する。展開スクリプトジェネレータ-展開スクリプトジェネレータは、アプリケーションをターゲット環境に展開するためのスクリプトを生成する。データベースアダプタ-データベースアダプタユーティリティは、IBM DB2、Oracle、Microsoft SQL Server、Sybase ASE、およびPostgreSQLなどの複数のデータベースサーバーへの接続を確立する。データベースディクショナリ-データベースディクショナリは、上記の複数のデータベースサーバーにより使用される膨大なデータベース関連のキーワードと組み込み関数を含有する。データベースパーサー-データベースパーサーは、データベースディクショナリを使用してデータベースオブジェクトを解析し、ターゲットデータベースと互換性のないパターンを見つける。AIエンジン-AIエンジンは、レガシーアプリケーションの既存および潜在的なマクロ/マイクロサービスを特定する。DBリプラットフォームエンジン-DBリプラットフォームエンジンは、表、制約、シーケンス、トリガー、関数プロシージャなどのソースデータベースオブジェクトを、ターゲットデータベース互換オブジェクトにリプラットフォームする。ファイルアダプタ-ファイルアダプタは、アプリケーションのソースファイルへのアクセスを提供する。ファイルはスキャンされてレポートが作成され、最終的にターゲットアプリケーションとしてリプラットフォームされる。テクノロジーディクショナリ-テクノロジーディクショナリは、モノリスアプリケーション内で使用されるテクノロジー関連の膨大なパターンを含有する。アプリケーションパーサー-アプリケーションパーサーは、パターン認識子を使用してアプリケーションソースコードを解析し、アプリケーションが使用しているテクノロジーのインベントリ全体を見つける。このインベントリは、評価とリプラットフォームに使用される。パターン認識子-パターン認識子は、テクノロジーディクショナリに基づいてパターンを認識し、アプリケーションで使用されているテクノロジーを見つける。アプリリプラットフォームエンジン-アプリリプラットフォームエンジンは、アプリケーションパーサーによって解析されたソースアプリケーションをリプラットフォームする。このエンジンは、クラウドに展開される準備ができているアプリケーションを生成する。JAVA1.8;Maven; JUnit、NUnit、XUnit JMeter; Docker Jenkins; AWS CLI、AzureCLIなどを含むがこれに限定されないテクノロジースタック。
図2は、本主題の実施形態による、アプリケーション環境マイグレーションシステムにおける例示的なデータベースマイグレーションの動作を説明するシステム図200を示す。
本開示は、ソースアプリケーション環境評価および所望のターゲットプラットフォームへのソースデータベース変換である2つの重要なアクティビティを示す。この2つのアクティビティは、以下にフローチャート200で説明される。
一実施形態では、JAVAアプリケーションまたは.NETアプリケーションなどのモノリスウェブアプリケーション202は、ソースアプリケーション環境のソースアプリケーションである。モノリスウェブアプリケーション202は、データベース、バッチ、インテグレーション、アプリ、スケジューラ、メッセージブローカーなどを含むがこれらに限定されない様々なサポートコンポーネント204にリンクされる。ソースアプリケーション環境にリンクされたソースデータベース204の機能についてさらに詳しく説明する。
第1のステップでは、クラウドブロッカー評価206は、ソースアプリケーションを評価し、コード障害、ソースコード洞察、およびオンプレミス設計パターン214を含む評価レポート212を生成する。クラウドブロッカー評価206はまた、ソースデータベースを評価し、データベース接続、リンク、および依存関係を含む評価レポート212を生成する。オンプレミスの設計パターン214は、EJB、RMI、STRUTS/SPRING、SOAP/XML、JSP/ASP、COM/COM++、ESBなどを含むが、これらに限定されない。ソースアプリケーションの評価は、現在のアプリケーションのテクノロジースタックとコード分析を含む。評価は、ソースアプリケーション、ソースデータベース、およびその他のサポートコンポーネントのリプラットフォーミングにかかる時間、労力、およびリスクに関する自動化された洞察を提供する。評価には、ソースデータベースコンポーネントの分析が含まれ、リンク、接続、および他の依存関係を含むソースデータベース204の自動化された評価を実行し、データベースと準備パラメータのコンテナ化されたクラウドマイグレーションに失敗する阻害要因またはブロッカー(パッケージ/フレームワーク/API/ライブラリなど)を特定し、それによって、評価レポート302としてさらに詳細な詳細評価レポート212を提供する。それは、アプリケーション、データベース、バッチプログラムおよびスケジューラ、インテグレーションメッセージブローカー、構築および展開モジュールを含むソースアプリケーションエコシステム全体についてこのコード評価を実行する。クラウドブロッカー評価206は、リスク、コスト、タイムライン、および他の依存コンポーネントおよびアプリケーションへの影響を評価するために、ソースアプリケーション環境が通過しなければならない変化の量を深く理解するようになる。レポートは主に、変更が必要なコードの割合、コード準備、ブロッカーおよび理由を伴った警告、コードを変更する必要がある正確な場所、モノリスが分解され得るサービスの数、DevOpsおよびCI/CD準備、ならびにそのような実行のタイムラインを提供する。
次のステップでは、ソース環境からターゲット環境へのアプリケーションおよびサポートコンポーネントの再プラットフォーム化のための自動化された変換/再プラットフォーム化208を実行して、ターゲットアプリケーション環境でソースデータベースのデータベースリンクを保持しながら、JAVAアプリケーションまたは.NETアプリケーション、継続的インテグレーションおよび展開フレームワーク216、自動化されたテストフレームワーク218、ミドルウェアリプラットフォーム220、およびソースアプリケーション環境のソースデータベースをリファクタリングした後のクラウドフレンドリーな設計パターン222で構成されるOracleデータベースまたはDB2データベースのような、クラウド準備アプリケーションおよびサポートコンポーネント210を生成する。自動化されたリプラットフォーム208のサブステップは、データベース接続、相互依存関係、リンクおよびその他のサポートコンポーネントをアップグレードし、Oracle、Sybase、DB2およびSQLサーバーのようなソースDBからPostgresまたはMy SQLのようなクラウドフレンドリーなデータベースにすべてのデータベースコンポーネントを変換することである。すべてのコンポーネントは、ターゲットDBで動作するように変換され、およびソースDBと同じ望ましい結果を達成する。データベースコンポーネントの変換が完了すると、それは、ターゲットアプリケーション環境の設計に基づいてソースデータベースをきめの細かいコンポーネントに分割し、ルールの微調整を行い、デプロイメント上の問題を解決するステップを実行し、およびセキュリティを実装することが、ターゲットデータベースを完全に機能させるためにコンサルタントによって完了される。一例では、表Aおよび表Bを例として、例示的なコード変換を説明するために用いられ得る。
さらに、データベースクラウドリプラットフォーミングは、データベースコンポーネントの分析、リファクタリング、ライブラリ更新、ビルドスクリプトのコンパイル、展開スクリプト、コンテナ化スクリプトなど、いくつかの反復的なステップを含む。この結果は、市場投入までの時間が大幅に改善され、次いで全体的なコストを削減し、高品質のリプラットフォームを実現し得る。
図3は、本主題の実施形態による、アプリケーション環境マイグレーションシステムにおける例示的なデータベースマイグレーションによって自動的に生成される例示的な評価レポート302を示す。
一実施形態では、評価モジュール130は、コード障害、ソースコード洞察、データベースリンク、接続、およびオンプレミス設計パターン214を含むソースアプリケーション環境を評価した後、評価レポート302を生成する。評価レポート302は、ソースアプリケーション環境をリプラットフォームに伴う時間、労力、およびリスクへの自動化された洞察を提供する。
評価には、データベースコンポーネントの分析が含まれ、リンク、接続、および他の依存関係を含むソースデータベースの自動化された評価を実行し、データベースと準備パラメータのコンテナ化されたクラウドマイグレーションに失敗する阻害要因またはブロッカー(パッケージ/フレームワーク/API/ライブラリなど)を特定し、それによって、詳細な評価レポート302を提供する。レポートの生成は、ソースアプリケーションとターゲットアプリケーション環境に基づいたいくつかのユーザー構成を伴う自動化されたプロセスである。
評価レポート302は、リスク、コスト、タイムライン、および他の依存コンポーネントおよびデータベースへの影響を評価するために、ソースデータベースが通過しなければならない変化の量の深い理解を準備パラメータ304および視覚的構成306の形態で得る。変化の量は、データベースマイグレーションに必要なすべての変化の合計である。評価レポートは様々なセクションを有し、アプリケーションスナップショットのためのいくつかの例示的な図は、とりわけ、コンテナ化準備304a、リプラットフォーム準備304b、DevOps準備304c、マクロ/マイクロAPI準備304n、スケジューラリプラットフォーム準備304n、バッチ準備、メッセージブローカー準備、DBリプラットフォーム準備304n等のパラメータを含む。各パラメータは、準備状態をパーセンテージ(%)などで示し、それぞれのパラメータにどれだけの準備ができているか、および/またはどれだけの準備ができていない/ブロッキング/阻害要因状態が存在するかを示す。例えば、コンテナ化準備304aは、準備状態と必要とされるリファクタリング/阻害要因率を備えたコンテナ準備率を示し、リプラットフォーム準備304bは、準備状態と必要とされるリファクタリング/阻害要因率を備えたTomcat準備率を示し、DevOps準備304cは、準備状態とCI準備/阻害要因率を備えたCD準備率を示し、マクロ/マイクロAPI準備304nは、準備状態とマイクロAPI既存/阻害要因状態を備えたマクロAPI既存ポインターを示し、スケジューラのリプラットフォーム準備304nは、AWSバッチ準備状態とAzure Logic App準備/阻害要因率を備えたリプラットフォーム準備率を示し、そしてDBリプラットフォーム準備304nは、PostgresSQL準備状態と必要とされるリファクタリングブロッカー/阻害要因率などを備えたリプラットフォーム準備率を示す。レポートの他のセクションの1つは、データベースオブジェクトスプレッド[#Objects]306a、データベースオブジェクトのスプレッド[#LoC]306b、Numberによるプラットフォーム構成306n、LoCによるプラットフォーム構成306n等の視覚的構成306がある。一例では、データベースオブジェクトの広がり[#Objects]306aは、トリガー、シーケンス、パッケージ、プロシージャ、ビュー、マテリアライズドビュー、関数および表の広がりまたはカウント数または割合を示し、データベースオブジェクトの広がり[#LoC]306bは、トリガー、シーケンス、パッケージ、プロシージャ、ビュー、マテリアライズドビュー、関数および表の広がりまたはカウント数または割合を示し、数306nによるプラットフォーム構成は、JMS、XML構成、ウェブサービス、Mavenビルド、構成、HTML、Servlet、スタイルシート、reactJS、JSP、Junit、POJOの広がりまたはカウント数または割合を示し、LoC306nによるプラットフォーム構成は、JMS、XML構成、ウェブサービス、Mavenビルド、構成、HTML、Servlet、スタイルシート、reactJS、JSP、Junit、POJOなどの広がりまたはカウント数または割合を示す。
さらに一例では、評価レポート302の様々なセクションは、以下の情報セクション、使用されるフレームワーク/ライブラリ/パッケージからなるアプリケーションスナップショット、アプリケーションコンテナ化準備、TomcatまたはKestrelアプリケーションサーバーへのアプリケーションサーバーのリプラットフォーム準備、PostgreSQLなどへのデータベースサーバーのリプラットフォーム準備、(Docker/Kubernetesへの)コンテナ化準備、CI/CD準備(ユニット/機能/性能テストケース、構築および継続的インテグレーション、利用可能な自動化)、マクロおよびマイクロAPI候補、API準備(アプリケーション内の既存および潜在的API)を提供する。
本方法は、ソースアプリケーションの環境を評価し、その後、クラウドにフレンドリーな設計パターンを使用してクラウドにそれらを変換することにより、エンドツーエンドの変換能力を提供し、最終的にあなたの利害関係者および意思決定者に迅速な意思決定のための透明な可視性を提供することにより、この行程全体を管理する。データベースからバッチプログラム、スケジューラからメッセージブローカーに至るまで、アプリケーションの依存をすべて全体的にクラウドに変換しよう。評価レポート302のアプリケーション分析セクションでは、方法は、ソースアプリケーション全体を分析し、クラウドマイグレーションを阻害する設計パターンを含むソースコード内のブロッカーを特定する。また、すべての依存も分析され、設計および計画目的のために全体的なビューを提供する。それは、アプリケーションコンポーネントのインベントリ、テクノロジースタックおよびその依存関係を発見および分析し、アプリケーションのビジネス、データサービスおよびそのAPI準備を特定し、コンテナ化およびクラウドリプラットフォーミングのブロッカー&DevOps準備を特定し、そしてJAVA vX.XからJAVA v1.8;EJB (Session Bean/Entity Bean/MDB)からSpring Framework (Pojo)を伴うSpring Boot Service;.NET vX.Xから.NET Core v2.2などの変更のための取り組みを特定する。
評価レポート302のデータベース分析セクションでは、方法は、データベースを分析して、データベースインベントリ、データオブジェクトの詳細およびデータベースサイズを分析および発見し、データベースリプラットフォーム準備およびブロッカーを特定し、データベースリプラットフォーミングのためのアプリケーションブロッカーおよび依存を特定し、そしてOracle/SQL Server/DB2/SybaseからPostgres/MySQLなどの変更のための取り組みを特定する。評価レポート302のバッチ&スケジューラ分析セクションでは、方法は、バッチ&スケジューラを分析して、バッチプログラムインベントリとバッチスケジューラの分析および発見、バッチスケジューラリプラットフォーム準備、ブロッカーと依存関係の特定、バッチリプラットフォーミングのためのアプリケーションバッチサービスの特定、Autosys/ControlMからAWS Batch (AWS Cloud)/Azure Logic App (Azure Cloud)/Quartz (Private Cloud)などの変更のための取り組みを特定する。評価レポート302のメッセージブローカー分析セクションでは、方法は、メッセージブローカーを分析し、メッセージブローカーインベントリーとメッセージングオブジェクトを分析および発見し、メッセージブローカーリプラットフォーム準備、ブロッカーおよび依存を特定し、メッセージブローカーリプラットフォームのためのアプリケーションブロッカーおよび依存、TIBCO EMS/RendezvousまたはWebLogic/WebSphereまたはメッセージキューまたはSonicメッセージキューからアクティブMQなどの変更のための取り組みを特定する。
図4は、本主題の実施形態による、アプリケーション環境マイグレーション方法における例示的なデータベースマイグレーションの例示的な図400を示す。
一実施形態では、本主題の実施形態による、ターゲットアプリケーション環境へのアプリケーション環境マイグレーションにおけるソースデータベースマイグレーションの方法およびシステムを用いて、事前および事後リプラットフォームを有するアプリケーション展開ビュー400が描かれる。モノリスアプリケーションは一般に、サーバー102によって常駐またはアクセス可能なソースアプリケーション環境に属しており、クラウド環境110によって常駐またはアクセス可能なターゲットアプリケーション環境に属するモダナイズされたリプラットフォームされたアプリケーションに変換または移行する。まず、ソースアプリケーション環境のターゲットアプリケーション環境への移行のために、コード評価206が起こる。アプリケーションの評価は、コンテナ化のためのコード阻害要因を除去し、変更するために、コード変更に必要な変更の量を決定する。マイグレーションは、以下のステップで実行され、サーバー102によってアクセス可能なようにアプリケーションを有するアプリケーションウェブサーバーは、場合により、ウェブフロントインスタンス422a、422b、...、422nに変換される。アプリケーションサーバー(IISクラスタ)202は、様々なAppマクロサービスインスタンス426a、426b、426c、...426nを有するAPI管理層426にさらにリファクタリングされる。マクロサービスインスタンスは、ソースアプリケーションのサイズおよび複雑性に基づく。一実施態様では、リファクタリングモジュール132は、マクロサービスのファクタリングおよびリパッケージング208をターゲットアプリケーション環境に実行する。
ソースアプリケーションデータベース204はまた、PaaS/CaaSクラスタ424aを、ターゲットデータベース424のリプラットフォームされたきめの細かいデータベースコンポーネント424a、...、424nにリファクタリングされる。ウェブフロントインスタンス422a、422b、...、422nおよびマクロサービスインスタンス426a、426b、426c、...426nはさらに、クラウドコンピューティング環境110のサービスメッシュ、AKSクラスタ、Appサービス、ACIなどを含むがこれに限定されないコンポーネントにリンクされる。一実施態様では、ソースOracleデータベースは、クラウド環境110のコンテナ/オーケストレーションプラットフォームとともに、PostgresSQLデータベースに移行される。
ソースアプリケーションの仮想マシンインスタンス408a、408b、...、408nは、クラウド環境110のコンテナクラスタに移行される。このように、オンプレミスエコシステム412を有するソースアプリケーション環境410のオンプレミスデータセンター410は、クラウド環境110のプライベート/パブリッククラウド428にリプラットフォーム210/移行される。一実施態様では、EBS、キャッシング、ローカルファイル、ルールエンジン、バッチおよびスケジューラ、メッセージブローカー、認証プロトコル、セキュリティプラットフォームなどを含むがこれらに限定されないオンプレミスエコシステム412のコンポーネント(412a、412b、...、412n)は、Azureキュー、イベントハブ、サービスバス、AppInsights、Redisキャッシュ、ストレージ、Vnet、Azure ADなどを含むがこれらに限定されない、独立または標準サービス/コンポーネント(430a、430b、430c、...、430n)プライベート/パブリッククラウド428にリプラットフォーム210/移行される。
一実施態様では、方法は、コンテナまたはPaaSを使用してクラウド上で効率的に動作するように既存のオンプレミスアプリケーションを修正し、ソースコードと設計パターンに関連するすべてのブロッカー、および基礎となるすべてのライブラリを更新または変更して、それらをコンテナまたはPaaSと互換性を持たせ、アプリケーションサーバーとデータベースをリプラットフォームしてTCOを削減し、そしてモノリスアプリケーションは効率と速度を向上させるためにサービスに切り離され得る。
一例では、表Cは、リプラットフォーミングマイグレーションを説明するための例として使用され得る。
一実施態様では、現状の状態は、JSPベースのUIからいくつかのデータサービスを有するセッションEJB呼び出しおよび商用アプリケーションサーバーを有するモノリシックウェブアプリケーションまでであり、セッションの永続性およびステートフルサービスは現状の状態であり、移行された将来の状態は、APIゲートウェイを介したコンテナ上のJSF WebFrontおよびRESTful Spring Bootマクロサービス(独立したスケーリング)を有する分離されたウェブアプリケーションである。
図5は、本主題の実施形態による、アプリケーション環境マイグレーション方法における例示的なデータベースマイグレーションの例示的な図500を示す。
一実施形態では、本主題の実施形態による、ターゲットアプリケーション環境へのアプリケーション環境マイグレーションにおけるソースデータベースマイグレーションの方法およびシステムを用いて、リプラットフォーミング前からリプラットフォーミング後までの、アプリケーション環境マイグレーション方法ビュー500における例示的なデータベースマイグレーションが描かれる。モノリスソースデータベースは一般に、サーバー102によって常駐またはアクセス可能なソースアプリケーション環境に属しており、クラウド環境110によって常駐またはアクセス可能なターゲットアプリケーション環境に属するモダナイズされたリプラットフォームされたターゲットデータベースに変換または移行する。まず、方法は、オンプレミスのRDBMSまたは、テーブルおよびビュー204a、シーケンス204b、プロシージャおよび関数204c、トリガー204dなどのデータベースコンポーネントを有するソースデータベース204にアクセスする。方法は、テーブル、ビュー、ストアドプロシージャ、関数、DBリンクなどのデータベースコンポーネントの完全なインベントリ、ソースデータベース204のサイズと複雑さ、Postgresのようなクラウドフレンドリーなターゲットデータベース424へのリプラットフォーミングに関連する互換性とリスク、およびモノリスをきめの細かいコンポーネントに分割するための評価を実施および実行する評価502を実行する。この評価が完了すると、評価ステップ502は、技術ユーザーおよびビジネスユーザーが消費しやすい形式で、ドリルダウン機能を備えた対話型HTML評価レポート302を生成する。評価レポート302は、ソースデータベース204のデータベースコンポーネント204a、...、204nをターゲットデータベース424に移行するための変化の量を確認し、ソースデータベース204のデータベースコンポーネント204a、...、204nの移行を完了するための機能準備パラメータ、阻害要因、およびタイムラインを提供する評価統計302を予測する。評価レポート302は、データベースアーキテクトおよびアプリケーションSMEが、新しいリプラットフォームされたデータベースおよび対応するアプリケーションの設計を考えるために使用される。また、評価ステップ502では、キーワード辞書512aおよびDB辞書512bを接続する。
ソースデータベース204、リファクタリングされたデータベース構造506、またはターゲットデータベース424などのデータベースは、それぞれ、テーブルおよびビュー204a/506a/424a、シーケンス204b/506b/424b、プロシージャおよび関数204c/506c/424c、トリガー204d/506d/424dなどのデータベースコンポーネントを含む。テーブルおよびビュー204a/506a/424aのテーブルは、行および列で編成されたデータ要素の集まりである。表は、関係の便利な表現としても考えられる。1つ以上のテーブル204a/506a/424aは、1つ以上の行にデータを格納するように構成された1つ以上の列を含む構造化されたデータスキーマを表し得る。テーブル204a/506a/424aは、特定のテーブルに格納されたデータのルール、1つ以上のテーブル204a/506a/424aの異なるもの間の関係、または他の制約を定義する制約を含むことができる。テーブルおよびビュー204a/506a/424aのビューは、データベースのサブセットであり、1つ以上のデータベーステーブル上で実行されるクエリに基づく。データベースビューは、名前付きクエリとしてデータベースに保存され、頻繁に使用される複雑なクエリを保存するために使用され得る。データベースビューには、動的ビューと静的ビューの2種類がある。シーケンス204b/506b/424bは、1、2、3、...の整数の集合であり、それはいくつかのデータベースシステムによって、要求に応じて一意な値を生成するために生成およびサポートされる。プロシージャおよび関数204c/506c/424cは、特定のタスクを実行するSQLおよびPL/SQL文のグループまたはセットである。トリガー204d/506d/424dは、データベース内の特別なイベントが発生するたびに自動的に起動するデータベース内のストアドプロシージャである。コンポーネント204n/506n/424nは、データベースの別のコンポーネントである。204a、...n;506a、...n;424a、...n;という用語は、ソースデータベース、リファクタリングされたデータベース、およびターゲットデータベースのコンポーネントを指すため、同じものを互換的に使用することはできないことに留意されたい。構造、相互依存関係、ストレージデータベースリンクの方法、接続は、使用するデータベースの種類によって異なり、上記は、そのようなデータベースの一部であるさまざまなコンポーネントの一般的な定義を示すためにのみ示される。同じものが、ここに詳述するシステムおよび方法の正当な手続きによって、本主題の一部として入力または開発される。
DBリプラットフォーミング504を実行するための次のデータベース変換ステップで、方法は主に次の2つの機能を実行する。まず、データベースリンクの形式でデータベースコンポーネント204a、…、204n間の依存関係を特定するためにソースデータベース204をスキャンすることによってDBキーワードをターゲットDBキーワード506にリファクタリングし、データベースリンクを保持しながらターゲットデータベース424に従ってソースデータベース204を分割することによってリファクタリングされたデータベース構造506a、…、506nを生成する。方法は、すべてのデータベースコンポーネントをOracle、Sybase、DB2、およびSQL ServerなどのソースDBからPostgresまたはMy SQLなどのクラウドフレンドリーなデータベースに変換する。すべてのコンポーネントは、ターゲットDBで動作するように変換され、およびソースDBと同じ望ましい結果を達成する。データベースコンポーネントが変換されると、データベースはアプリケーションの設計に基づいてきめの細かいコンポーネントに分割される。方法は、ターゲットアプリケーション環境でのデータ破損および分散トランザクションの問題を回避するよう注意し、適切に機能するのに役立つ。第2に、予測された評価統計302およびリファクタリングされたデータベース構造506a、…、506nに従ってターゲットデータベース424のきめの細かいデータベースコンポーネント424a、…、424nを更新することによってリプラットフォームし、更新されたきめの細かいデータベースコンポーネント424a、…、424nをリプラットフォーミングすることによってソースデータベース204をターゲットデータベース424に移行する。ターゲットデータベース424は、テーブルおよびビュー424a、シーケンス424b、プロシージャおよび関数424c、トリガー424dなどのデータベースコンポーネントを有する。方法は、ターゲットデータベースDDL SQLスクリプト508aおよびターゲットデータベースDML SQLスクリプト508bを生成するスクリプトジェネレータ508を使用し、それは、限定されないが、ソースDBの読み取り、DB構造の理解、ならびにAS IS Temp DDLおよびDMLの生成を含むステップをさらに実行する。さらに、ターゲットデータベースの辞書からDBキーワードと構文をリファクタし、DDLとDMLをターゲットデータベース形式に変換する。それは、DDLとDMLをターゲットデータベースにアップロードし、エラーをデバッグおよび修正して、ターゲットデータベースをDB Readyにする。SQLスクリプトは、ターゲットデータベースおよびクラウドによって駆動/管理されるリファクタリングされたデータベース構造424a、…、424nを有するターゲットデータベース424にロード510される。
一例では、レガシーDBリプラットフォームからAzure SQLデータベースへの実行ステップは、テーブルおよびビュー204a、シーケンス204b、プロシージャおよび関数204c、トリガー204dなどのデータベースコンポーネントを有するオンプレミスRDBMSソースデータベース204のOracle/DB2/Sybaseを含む。方法は、テーブル、ビュー、ストアドプロシージャ、関数、DBリンクなどのデータベースコンポーネントの完全なインベントリ、Oracle/DB2/Sybase204のサイズと複雑さ、クラウドフレンドリーなターゲットデータベース424からAzure SQLへのリプラットフォーミングに関連する互換性とリスク、およびモノリスをきめの細かいコンポーネントに分割するための評価を実施および実行する評価502を実行する。評価502には、Oracle/DB2/Sybaseキーワード辞書502aおよびSQL Server Db辞書502bもリストに挙げられている。評価レポート302は、Azure SQLへのリプラットフォーミングに必要なリファクタリングのレベルを強調表示する。それは、DBキーワードをSQLサーバーDBキーワード506にリファクタリングしてリファクタリングされたデータベース構造506a、…、506nを生成することを含むDBリプラットフォーミング504を実行する。方法は、Azure SQL Server DDL SQLスクリプト508aとAzure SQL Server DML SQLスクリプト508bを生成するスクリプトジェネレータ508を使用し、それは、Oracle/DB2/Sybaseの読み取り、Oracle/DB2/Sybase構造の理解、AS IS Temp DDLおよびDMLの生成を含むが、これらに限定されないステップをさらに実行する。さらに、Oracle/DB2/Sybase辞書からのDBキーワードと構文、およびAzure SQL Server形式に変換されたDDLとDMLをリファクタする。DDLとDMLをAzure SQL Serverにアップロードし、エラーをデバッグおよび修正して、Azure SQL Server DBを準備完了にする。SQLスクリプトは、Azure SQL Serverと、クラウドによって稼働/管理されるリファクタリングされたデータベース構造424a、…、424nを備えたAzure SQL Server424にロードされる510。
別の例では、レガシーDBリプラットフォームからAzure Postgresデータベースへの実行ステップは、テーブルおよびビュー204a、シーケンス204b、プロシージャおよび関数204c、トリガー204dなどのデータベースコンポーネントを有するオンプレミスRDBMSソースデータベース204のOracle/DB2/Sybaseを含む。方法は、テーブル、ビュー、ストアドプロシージャ、関数、DBリンクなどのデータベースコンポーネントの完全なインベントリ、Oracle/DB2/Sybase204のサイズと複雑さ、クラウドフレンドリーなターゲットデータベース424からAzure Postgresへのリプラットフォーミングに関連する互換性とリスク、およびモノリスをきめの細かいコンポーネントに分割するための評価を実施および実行する評価502を実行する。評価502には、Oracle/DB2/Sybaseキーワード辞書502aおよびSQL Server Db辞書502bもリストに挙げられている。評価レポート302は、Azure Postgresへのリプラットフォーミングに必要なリファクタリングのレベルを強調表示する。それは、DBキーワードをPostgres DBキーワード506にリファクタリングしてリファクタリングされたデータベース構造506a、…、506nを生成することを含むDBリプラットフォーミング504を実行する。方法は、Azure Postgres DDL SQLスクリプト508aとAzure Postgres DML SQLスクリプト508bを生成するスクリプトジェネレータ508を使用し、それは、Oracle/DB2/Sybaseの読み取り、Oracle/DB2/Sybase構造の理解、AS IS Temp DDLおよびDMLの生成を含むが、これらに限定されないステップをさらに実行する。さらに、Oracle/DB2/Sybase辞書からのDBキーワードと構文、およびAzure Postgres形式に変換されたDDLとDMLをリファクタする。DDLとDMLをAzure Postgresにアップロードし、エラーをデバッグおよび修正して、Azure Postgres DBを準備完了にする。SQLスクリプトは、Azure Postgresと、クラウドによって稼働/管理されるリファクタリングされたデータベース構造424a、…、424nを備えたAzure Postgres424にロードされる510。方法は、現在のDBコンポーネント、構造、およびそれらの依存関係を理解する機能を提供し、ソースデータベースコンポーネントをターゲットコンポーネントに変換する機能を備える。
図6は、本主題の実施形態による、アプリケーション環境マイグレーションにおけるデータベースマイグレーションの方法の例示的なフローチャート600を示す。
一実施態様では、アプリケーション環境マイグレーションにおけるデータベースマイグレーションの方法600が示される。方法は、コンピュータ実行可能命令の一般的な文脈で説明され得る。一般に、コンピュータ実行可能命令は、特定の機能を実行するまたは特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造、手順、モジュール、機能などを含み得る。方法は、通信ネットワークを介してリンクされるリモート処理デバイスによって機能が実行される分散コンピューティング環境でも実施され得る。分散コンピューティング環境において、コンピュータ実行可能命令は、メモリ記憶デバイスを含むローカルおよびリモートのコンピュータ記憶媒体の両方に配置され得る。方法が記載され、限定として解釈されることを意図しない順序は、記載された方法ブロックの任意の数を任意の順序で組み合わせて、方法または代替方法を実施し得る。さらに、個々のブロックは、本明細書に記載される開示の精神および範囲から逸脱することなく、方法から削除され得る。さらに、方法は、任意の適切なハードウェア、ソフトウェア、ファームウェア、またはそれらの組み合わせで実施され得る。しかし、説明を容易にするために、以下に説明する実施形態では、本方法は、上述したシステムに実装され得る。
一実施態様では、アプリケーション環境マイグレーションにおけるデータベースマイグレーションの方法600が示される。方法は、コンピュータ実行可能命令の一般的な文脈で説明され得る。一般に、コンピュータ実行可能命令は、特定の機能を実行するまたは特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造、手順、モジュール、機能などを含み得る。方法は、通信ネットワークを介してリンクされるリモート処理デバイスによって機能が実行される分散コンピューティング環境でも実施され得る。分散コンピューティング環境において、コンピュータ実行可能命令は、メモリ記憶デバイスを含むローカルおよびリモートのコンピュータ記憶媒体の両方に配置され得る。方法が記載され、限定として解釈されることを意図しない順序は、記載された方法ブロックの任意の数を任意の順序で組み合わせて、方法または代替方法を実施し得る。さらに、個々のブロックは、本明細書に記載される開示の精神および範囲から逸脱することなく、方法から削除され得る。さらに、方法は、任意の適切なハードウェア、ソフトウェア、ファームウェア、またはそれらの組み合わせで実施され得る。しかし、説明を容易にするために、以下に説明する実施形態では、本方法は、上述したシステムに実装され得る。
ステップ/ブロック602において、アプリケーションサーバー102のシステム120のプロセッサ122によって、ソースアプリケーション環境のソースデータベースを評価する。一実施態様では、ソースデータベースは、システム120の評価モジュール130によって評価され得る。
ステップ/ブロック604では、ソースデータベースのデータベースコンポーネントをターゲットデータベースに移行するための変化の量を確認する。一実施態様では、変化の量は、評価モジュール130によって確認され得る。
ステップ/ブロック604では、ソースデータベースのデータベースコンポーネントをターゲットデータベースに移行するための変化の量を確認する。一実施態様では、変化の量は、評価モジュール130によって確認され得る。
ステップ/ブロック606では、ソースデータベースのデータベースコンポーネントの移行を完了するための少なくとも1つの機能的準備およびタイムラインを提供する評価統計を予測する。一実施態様では、評価統計は、評価モジュール130によって予測され得る。
したがって、方法600は、予測された評価統計およびソースアプリケーション環境からターゲットアプリケーション環境へのマイグレーションのためのタイムラインを提供することによって、アプリケーション環境マイグレーションにおけるデータベースマイグレーションを支援する。
図7は、本主題の実施形態による、アプリケーション環境マイグレーションにおけるデータベースマイグレーションの方法の別の例示的なフローチャート700を示す。
一実施態様では、アプリケーション環境マイグレーションにおけるデータベースマイグレーションの方法700が示される。方法は、コンピュータ実行可能命令の一般的な文脈で説明され得る。一般に、コンピュータ実行可能命令は、特定の機能を実行するまたは特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造、手順、モジュール、機能などを含み得る。方法は、通信ネットワークを介してリンクされるリモート処理デバイスによって機能が実行される分散コンピューティング環境でも実施され得る。分散コンピューティング環境において、コンピュータ実行可能命令は、メモリ記憶デバイスを含むローカル及びリモートのコンピュータ記憶媒体の両方に配置され得る。方法が記載され、限定として解釈されることを意図しない順序は、記載された方法ブロックの任意の数を任意の順序で組み合わせて、方法または代替方法を実施し得る。さらに、個々のブロックは、本明細書に記載される開示の精神及び範囲から逸脱することなく、方法から削除され得る。さらに、方法は、任意の適切なハードウェア、ソフトウェア、ファームウェア、またはそれらの組み合わせで実施され得る。しかし、説明を容易にするために、以下に説明する実施形態では、本方法は、上述したシステムに実装され得る。
ステップ/ブロック702において、アプリケーションサーバー102のシステム120のプロセッサ122によって、ソースアプリケーション環境のソースデータベースを評価する。一実施態様では、ソースデータベースは、システム120の評価モジュール130によって評価され得る。
ステップ/ブロック704では、ソースデータベースのデータベースコンポーネントをターゲットデータベースに移行するための変化の量を確認する。一実施態様では、変化の量は、評価モジュール130によって確認され得る。
ステップ/ブロック706では、ソースデータベースのデータベースコンポーネントの移行を完了するための少なくとも1つの機能的準備およびタイムラインを提供する評価統計を予測する。一実施態様では、評価統計は、評価モジュール130によって予測され得る。
ステップ/ブロック708では、ソースデータベースをスキャンして、データベースリンクの形式でデータベースコンポーネント間の依存関係を特定する。一実施態様では、ソースデータベースはリファクタリングモジュール132によってスキャンされてもよい。
ステップ/ブロック710では、データベースリンクを保持しながらターゲットデータベースに従ってソースデータベースを分割することによって、リファクタリングされたデータベース構造を生成する。一実施態様では、リファクタリングされたデータベース構造は、リファクタリングモジュール132によって生成され得る。
ステップ/ブロック712では、予測された評価統計およびリファクタリングされたデータベース構造に従って、ターゲットデータベースのきめの細かいデータベースコンポーネントを更新する。一実施態様では、ターゲットデータベースのきめの細かいデータベースコンポーネントは、リプラットフォームモジュール134によって更新され得る。
ステップ/ブロック714では、更新されたきめの細かいデータベースコンポーネントをリプラットフォーミングすることによって、ソースデータベースをターゲットデータベースに移行する。一実施態様では、ソースデータベースは、リプラットフォームモジュール134によってターゲットデータベースに移行され得る。
このように、方法700は、予測評価を提供し、コードをリファクタリングし、ソースアプリケーション環境からターゲットアプリケーション環境への移行のためにデータベースをリプラットフォーミングすることによって、アプリケーション環境マイグレーションにおけるデータベースマイグレーションを支援する。
本ソリューションは、複雑なデータベースをクラウドに再プラットフォーム化し、生産環境にそれらを展開するために使用される。本主題の実施形態による、ターゲットアプリケーション環境へのアプリケーション環境マイグレーションにおけるソースデータベースマイグレーションの方法およびシステムを用いたいくつかの例が示される。以下では、準備、計画、および実行を、検討の結果とともに示す。一例として、先導する二次抵当会社のJAVAバッチアプリのクラウドリプラットフォーミングでは、ソースアプリケーション環境は、米国で事業を行う数十億ドルの企業であり、上場企業でもある不動産担保証券を提供する先導する二次抵当会社に所属する。主なビジネス課題は、Oracleデータベースの使用と並んでメッセージ駆動型ビーンEJB (MDB) Pojo Services、JDBCなどを使用した、10年前にAutosysとWebLogic MQ上のEJBで開発された複雑なJAVAバッチアプリケーションである。このアプリケーションは、ビジネスクリティカルであり、重要な長時間稼働のプロセスを処理する。このアプリケーションを開発した主要なSMEが利用できないため、クラウドリプラットフォーミングに課題を抱えていた。本ソリューションアプローチを用いて、Oracleデータベースは、方法ステップを使用してPostgresにリプラットフォームされ、AutosysスケジューラはQuartzにリプラットフォームされ、バックエンドEJB(MDB)はRESTエンドポイントを備えたSpring Boot/Batch Service Appsを備えた独立したSpring JMSにリプラットフォームされた。次いで、各サービスアプリは、AWS ECS VPC上の個別のコンテナ上に展開され、無限のスケーラビリティ、高可用性、高いフォールトトレランス、およびパフォーマンスの改善を提供する。Autosysの集中型JOB依存は、アプリ固有のクオーツスケジューラを使用して自己管理依存にリファクタリングされ、運用の複雑さが軽減された。主な利益の中で、主にWebLogic&Autosysの排除とコンテナ化にもより、TCOが50%以上削減され、マクロサービスとCI/CD自動化により開発の生産性が向上し、自動化を使用すると、実装の総コストが50%超削減され、実装は6週間で完了する(手動で実行した場合も同様に9か月かかる)。
別の例では、我々を先導するコンサルティング会社の.NETウェブアプリケーションのクラウドリプラットフォーミングに本ソリューションが使用され、ソースアプリケーション環境は、世界150カ国の700超のオフィスに従業員がいる、コンテンツ管理会社で最大の専門サービスおよび会計監査機関の1つに所属する。主なビジネス課題は、SQL Serverデータベースの使用と並行してASP .NET、C#、Telerik ORMを使用して何年もかけて開発されたComplex .NETウェブアプリケーションである。このアプリケーションは、先導するプロフェッショナルサービスプロバイダーの主要なB2C機能を扱うビジネスクリティカルなものである。このアプリケーションを開発した主要なSMEが利用できないため、この作業はさらに複雑になった。現在のソリューションアプローチを使用して、ソースアプリケーションはウェブフロントエンドとサービスバックエンドに分割されることになる。Telerik ORMを使用したバックエンドのレガシー.NETサービスは、RESTエンドポイントを持つエンティティフレームワークで独立した.NET Coreサービスアプリにリプラットフォームされる。ウェブフロントと各サービスアプリは、Kestrel&NGINXでAzureクラウド上の個別のコンテナに配置され、無限のスケーラビリティ、高可用性、高いフォールトトレランスおよびパフォーマンスの改善を提供する。ウェブフロントおよびマクロサービスは、Redisキャッシュによりステートレス化された。サービスのREST APIエンドポイントはoAuth2によって保護される。ウェブフロントとすべてのマクロサービスに対して、自動化テスト+CI/CDが有効になった。上位の利益の間では、リプラットフォームは、主にIIS&Telerik ORMの廃止によりTCOが45%超削減されることをもたらし、実装の総コストが45%超削減され、マクロサービスとCI/CD自動化により開発の生産性が上がり、手作業の場合7ヶ月かかるのと比較して6週間で完了した。
アプリケーション環境マイグレーションにおけるデータベースマイグレーションのためのシステムおよび方法の実施態様は、構造的な特徴および/または方法に特有の言語で記述されるが、添付の請求項は、必ずしも記述された特定の特徴または方法に限定されないことが理解されるものとする。むしろ、特定の機能および方法は、アプリケーション環境マイグレーションにおけるデータベースマイグレーションのための実施態様の例として開示される。
Claims (22)
- アプリケーションサーバー(102)のプロセッサ(122)によって、ソースアプリケーション環境のソースデータベース(204)を評価することと、
前記プロセッサ(122)によって、前記ソースデータベース(204)のデータベースコンポーネント(204a、…、204n)をターゲットデータベース(424)に移行するための変化の量を確認することと、
前記プロセッサ(122)によって、評価統計(302)を予測することであって、前記評価統計(302)は、前記ソースデータベース(204)の前記データベースコンポーネント(204a、…、204n)の移行を完了するための少なくとも1つの機能的準備(304)およびタイムライン(306)を提供し、さらに、前記少なくとも1つの機能的準備(304)は、準備パラメータの形式で依存データベースコンポーネントへの影響を含むことと、
データベースリンクの形式で前記データベースコンポーネント(204a、…、204n)間の依存関係を特定するために、前記プロセッサ(122)によって、前記ソースデータベース(204)をスキャンすることと、
前記プロセッサ(122)によって、リファクタリングされたデータベース構造(506a、…、506n)を生成することであって、前記リファクタリングされたデータベース構造(506a、…、506n)は、前記データベースリンクを保持しながら、前記ターゲットデータベース(424)に従って前記ソースデータベース(204)を分割することによって生成されることと、
前記プロセッサ(122)によって、予測された前記評価統計(302)および前記リファクタリングされたデータベース構造(506a、…、506n)に従って前記ターゲットデータベース(424)のきめの細かいデータベースコンポーネント(424a、…、424n)を更新することと、
前記プロセッサ(122)によって、前記ソースデータベース(204)を前記ターゲットデータベース(424)に移行することであって、前記移行することは、更新された前記きめの細かいデータベースコンポーネント(424a、…、424n)をリプラットフォームすることと、を含む、方法。 - 前記ソースデータベース(204)を前記ターゲットデータベース(424)に移行するための前記変化の量は、前記ソースデータベース(204)のサイズおよび複雑さに基づいて計算される、請求項1に記載の方法。
- 前記リファクタリングされたデータベース構造(506a、…、506n)が、継続的インテグレーションおよび展開フレームワーク(150)および自動化されたテストフレームワーク(150)を利用して生成される、請求項1に記載の方法。
- 前記評価統計(302)は、前記ソースデータベース(204)の移行を完了するために、リスク、コスト、タイムラインおよび前記依存データベースコンポーネントへの前記影響を含むがこれらに限定されない少なくとも1つの阻害要因を提供する、請求項1に記載の方法。
- 前記ソースデータベース(204)をスキャンすることは、前記ソースデータベース(204)の前記データベースコンポーネント(204a、…、204n)間の接続をスキャンすることを含む、請求項1に記載の方法。
- 前記リファクタリングされたデータベース構造(506a、…、506n)は、前記ソースデータベース(204)の前記データベースコンポーネント(204a、…、204n)間の接続を維持しながら、前記ターゲットデータベース(424)に従って生成される、請求項1に記載の方法。
- 前記リファクタリングされたデータベース構造(506a、…、506n)は、AIエンジン(152)によって特定される、請求項1に記載の方法。
- 前記プロセッサ(122)によって、ターゲットアプリケーション環境に従って前記ソースアプリケーション環境から辞書およびキーワードを移行することをさらに含む、請求項1に記載の方法。
- 前記プロセッサ(122)によって、ターゲットアプリケーション環境に従って前記ソースアプリケーション環境からのスクリプトを実装することをさらに含む、請求項1に記載の方法。
- 前記プロセッサ(122)によって、ビジネスロジック、リンク、ルールエンジン、利用可能な環境のライブラリ、標準ツール、およびコーディング言語を含むアプリケーションコード(202)にアクセスすることをさらに含む、請求項1に記載の方法。
- アプリケーション環境の前記ソースデータベース(204)は、ソースからターゲットデータベースへの環境の再発展、ソースからターゲットデータベースへのリファクタリング、ソースからターゲットデータベースへのリホスティング、およびソースからターゲットデータベースへのリプラットフォーミングのステップを含む前記ターゲットデータベース(424)へ移行する、請求項1に記載の方法。
- プロセッサ(122)と、
前記プロセッサ(122)に結合されたメモリ(126)であって、前記プロセッサ(122)は、前記メモリ(126)に格納された複数のモジュール(128)を実行し、前記複数のモジュール(128)は、
ソースアプリケーション環境のソースデータベース(204)を評価し、前記ソースデータベース(204)のデータベースコンポーネント(204a、…、204n)をターゲットデータベース(424)に移行するための変化の量を確認するための評価モジュール(130)であって、前記評価モジュール(130)は、前記ソースデータベース(204)の前記データベースコンポーネント(204a、…、204n)の移行を完了するための少なくとも1つの機能的準備(304)およびタイムライン(306)を提供する評価統計(302)を予測し、さらに、前記少なくとも1つの機能的準備(304)は、準備パラメータの形式で依存データベースコンポーネントへの影響を含む評価モジュール(130)と、
前記ソースデータベース(204)をスキャンして、データベースリンクの形式で前記データベースコンポーネント(204a、…、204n)間の依存関係を特定し、リファクタリングされたデータベース構造(506a、…、506n)を生成するためのリファクタリングモジュール(132)であって、前記リファクタリングされたデータベース構造(506a、…、506n)は、前記データベースリンクを保持しながら、前記ターゲットデータベース(424)に従って前記ソースデータベース(204)を分割することによって生成されるリファクタリングモジュール(132)と、
予測された前記評価統計(302)および前記リファクタリングされたデータベース構造(506a、…、506n)に従って前記ターゲットデータベース(424)のきめの細かいデータベースコンポーネント(424a、…、424n)を更新し、前記ソースデータベース(204)を前記ターゲットデータベース(424)に移行するためのリプラットフォームモジュール(134)であって、前記移行することにより、更新された前記きめの細かいデータベースコンポーネント(424a、…、424n)がリプラットフォームされるリプラットフォームモジュール(134)と、を備える、システム。 - 前記ソースデータベース(204)を前記ターゲットデータベース(424)に移行するための前記変化の量は、前記ソースデータベース(204)のサイズおよび複雑さに基づいて計算される、請求項12に記載のシステム。
- 前記リファクタリングされたデータベース構造(506a、…、506n)が、継続的インテグレーションおよび展開フレームワーク(150)および自動化されたテストフレームワーク(150)を利用して生成される、請求項12に記載のシステム。
- 前記評価統計(302)は、前記ソースデータベース(204)の移行を完了するために、リスク、コスト、タイムラインおよび前記依存データベースコンポーネントへの前記影響を含むがこれらに限定されない少なくとも1つの阻害要因を提供する、請求項12に記載のシステム。
- 前記ソースデータベース(204)をスキャンすることは、前記ソースデータベース(204)の前記データベースコンポーネント(204a、…、204n)間の接続をスキャンすることを含む、請求項12に記載のシステム。
- 前記リファクタリングされたデータベース構造(506a、…、506n)は、前記ソースデータベース(204)の前記データベースコンポーネント(204a、…、204n)間の接続を維持しながら、前記ターゲットデータベース(424)に従って生成される、請求項12に記載のシステム。
- 前記リファクタリングされたデータベース構造(506a、…、506n)は、AIエンジン(152)によって特定される、請求項12に記載のシステム。
- 前記リファクタリングモジュール(132)は、前記プロセッサ(122)によって、ターゲットアプリケーション環境に従って前記ソースアプリケーション環境から辞書およびキーワードを移行することをさらに含む、請求項12に記載のシステム。
- 前記リプラットフォームモジュール(134)は、前記プロセッサ(122)によって、ターゲットアプリケーション環境に従って前記ソースアプリケーション環境からのスクリプトを実装することをさらに含む、請求項12に記載のシステム。
- 前記複数のモジュール(128)は、前記プロセッサ(122)によって、ビジネスロジック、リンク、ルールエンジン、利用可能な環境のライブラリ、標準ツール、およびコーディング言語を含むアプリケーションコード(202)にアクセスすることをさらに実行する、請求項12に記載のシステム。
- アプリケーション環境の前記ソースデータベース(204)は、ソースからターゲットデータベースへの環境の再発展、ソースからターゲットデータベースへのリファクタリング、ソースからターゲットデータベースへのリホスティング、およびソースからターゲットデータベースへのリプラットフォーミングのステップを含む前記ターゲットデータベース(424)へ移行する、請求項12に記載のシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN202121003612 | 2021-01-27 | ||
IN202121003612 | 2021-01-27 | ||
PCT/IB2021/052392 WO2022162434A1 (en) | 2021-01-27 | 2021-03-23 | System and method for database migration in an application environment migration |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2024506528A true JP2024506528A (ja) | 2024-02-14 |
Family
ID=75439140
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023545248A Pending JP2024506528A (ja) | 2021-01-27 | 2021-03-23 | アプリケーション環境マイグレーションにおけるデータベースマイグレーションのためのシステムおよび方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20220237154A1 (ja) |
EP (1) | EP4036750A1 (ja) |
JP (1) | JP2024506528A (ja) |
AU (1) | AU2021424136B2 (ja) |
CA (1) | CA3206505A1 (ja) |
GB (1) | GB2617990A (ja) |
WO (1) | WO2022162434A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11770455B2 (en) * | 2021-12-14 | 2023-09-26 | Cognizant Technology Solutions India Pvt. Ltd. | System and method for application migration between cloud platforms |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9430505B2 (en) * | 2011-04-18 | 2016-08-30 | Infosys Limited | Automated data warehouse migration |
US9282166B2 (en) * | 2012-11-29 | 2016-03-08 | International Business Machines Corporation | Management infrastructure analysis for cloud migration |
US20140282456A1 (en) * | 2013-03-15 | 2014-09-18 | Cloud Technology Partners, Inc. | Methods, systems and computer-readable media for code profiling and migration effort estimation |
US9996562B2 (en) * | 2013-07-09 | 2018-06-12 | Oracle International Corporation | Automated database migration architecture |
US9811527B1 (en) * | 2013-09-30 | 2017-11-07 | EMC IP Holding Company LLC | Methods and apparatus for database migration |
US9565129B2 (en) * | 2014-09-30 | 2017-02-07 | International Business Machines Corporation | Resource provisioning planning for enterprise migration and automated application discovery |
US10079730B2 (en) * | 2015-09-30 | 2018-09-18 | Amazon Technologies, Inc. | Network based resource configuration discovery service |
US10803031B1 (en) * | 2015-12-30 | 2020-10-13 | Amazon Technologies, Inc. | Migrating data between databases |
US10649965B2 (en) * | 2016-11-14 | 2020-05-12 | International Business Machines Corporation | Data migration in a networked computer environment |
US11256671B2 (en) * | 2019-09-13 | 2022-02-22 | Oracle International Corporation | Integrated transition control center |
US20210174280A1 (en) * | 2019-12-09 | 2021-06-10 | Thiruchelvan K Ratnapuri | Systems and Methods for Efficient Cloud Migration |
US20220229957A1 (en) * | 2021-01-21 | 2022-07-21 | Dell Products L.P. | Automatically migrating process capabilities using artificial intelligence techniques |
-
2021
- 2021-03-23 CA CA3206505A patent/CA3206505A1/en active Pending
- 2021-03-23 GB GB2311400.2A patent/GB2617990A/en active Pending
- 2021-03-23 AU AU2021424136A patent/AU2021424136B2/en active Active
- 2021-03-23 WO PCT/IB2021/052392 patent/WO2022162434A1/en active Application Filing
- 2021-03-23 JP JP2023545248A patent/JP2024506528A/ja active Pending
- 2021-04-09 EP EP21167746.3A patent/EP4036750A1/en active Pending
- 2021-05-14 US US17/320,575 patent/US20220237154A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
GB202311400D0 (en) | 2023-09-06 |
EP4036750A1 (en) | 2022-08-03 |
WO2022162434A1 (en) | 2022-08-04 |
GB2617990A (en) | 2023-10-25 |
AU2021424136B2 (en) | 2024-03-07 |
US20220237154A1 (en) | 2022-07-28 |
CA3206505A1 (en) | 2022-08-04 |
AU2021424136A1 (en) | 2023-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7316461B2 (ja) | アプリケーション環境マイグレーションのためのシステムおよび方法 | |
US10678522B1 (en) | Compiler and method for compiling business rules for a serverless runtime environment | |
Fan et al. | Migrating monolithic mobile application to microservice architecture: An experiment report | |
Wen et al. | An empirical study on challenges of application development in serverless computing | |
US10409560B1 (en) | Acceleration techniques for graph analysis programs | |
US9792203B2 (en) | Isolated testing of distributed development projects | |
US10481884B2 (en) | Systems and methods for dynamically replacing code objects for code pushdown | |
EP4060490A1 (en) | System and method for message broker migration in an application environment migration | |
EP4124945A1 (en) | System and method for batch and scheduler migration in an application environment migration | |
JP2024506528A (ja) | アプリケーション環境マイグレーションにおけるデータベースマイグレーションのためのシステムおよび方法 | |
US20230236828A1 (en) | Build-independent software framework for creating custom adapters | |
US20240248703A1 (en) | System and method for integration application environment migration utilizing hub and spoke architecture | |
Ellison et al. | Re-engineering the database layer of legacy applications for scalable cloud deployment | |
Shahbazi | Design and develop an environment for uploading and executing Chatbots using WebAssembly and WASI | |
Rollny | An Extensible Framework for Large-Scale Mining of Performance Microbenchmarks | |
Flores et al. | Adaptability-based Service Behavioral Assessment. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230915 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230915 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20240930 |