IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ヘキサウェア テクノロジーズ リミテッドの特許一覧

特表2024-510977アプリケーション環境マイグレーションにおけるメッセージブローカーマイグレーションのためのシステムおよび方法
<>
  • 特表-アプリケーション環境マイグレーションにおけるメッセージブローカーマイグレーションのためのシステムおよび方法 図1
  • 特表-アプリケーション環境マイグレーションにおけるメッセージブローカーマイグレーションのためのシステムおよび方法 図2
  • 特表-アプリケーション環境マイグレーションにおけるメッセージブローカーマイグレーションのためのシステムおよび方法 図3
  • 特表-アプリケーション環境マイグレーションにおけるメッセージブローカーマイグレーションのためのシステムおよび方法 図4
  • 特表-アプリケーション環境マイグレーションにおけるメッセージブローカーマイグレーションのためのシステムおよび方法 図5
  • 特表-アプリケーション環境マイグレーションにおけるメッセージブローカーマイグレーションのためのシステムおよび方法 図6
  • 特表-アプリケーション環境マイグレーションにおけるメッセージブローカーマイグレーションのためのシステムおよび方法 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-03-12
(54)【発明の名称】アプリケーション環境マイグレーションにおけるメッセージブローカーマイグレーションのためのシステムおよび方法
(51)【国際特許分類】
   G06F 8/30 20180101AFI20240305BHJP
   G06F 11/36 20060101ALI20240305BHJP
【FI】
G06F8/30
G06F11/36 188
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023555547
(86)(22)【出願日】2021-06-01
(85)【翻訳文提出日】2023-10-31
(86)【国際出願番号】 IB2021054783
(87)【国際公開番号】W WO2022195337
(87)【国際公開日】2022-09-22
(31)【優先権主張番号】202121011099
(32)【優先日】2021-03-16
(33)【優先権主張国・地域又は機関】IN
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVA
2.MySQL
(71)【出願人】
【識別番号】522265729
【氏名又は名称】ヘキサウェア テクノロジーズ リミテッド
【氏名又は名称原語表記】HEXAWARE TECHNOLOGIES LIMITED
【住所又は居所原語表記】152, Sector-III, Millenium Business Park, ‘A’ Block, TTC Industrial Area, Mahape Navi Mumbai 400 710 (IN)
(74)【代理人】
【識別番号】110003487
【氏名又は名称】弁理士法人東海特許事務所
(72)【発明者】
【氏名】パル,チロディップ
(72)【発明者】
【氏名】ガナパシー,ナタラジャン
(72)【発明者】
【氏名】パドマナバン,ミーナクシスンダラム
【テーマコード(参考)】
5B042
5B376
【Fターム(参考)】
5B042HH49
5B376AA32
5B376BC25
5B376BC71
(57)【要約】
メッセージブローカーマイグレーションの方法は、ソースメッセージブローカーを評価し(412)、コンポーネント(412a、412b、...、412n)間の接続を特定するためにブローカー(412)をスキャンし、ブローカー(412)をターゲットメッセージブローカー(430)に移行するための変化の量を確認し、ブローカー(412)の移行を完了するための少なくとも1つの機能的準備(304)およびタイムライン(306)を提供する評価統計(302)を予測し、さらに、接続を維持しながらターゲットメッセージブローカー(430)に従ってブローカー(412)を分割することによって、変換されたメッセージブローカー構造(550a、...、550n)を生成する。それにより、予測された評価統計(302)および変換されたメッセージブローカー構造(550a、...、550n)に従って、ターゲットメッセージブローカー(430)のきめの細かいメッセージブローカーコンポーネント(552a、...、552n)を更新し、更新されたきめの細かいメッセージブローカーコンポーネント(552a、...、552n)をリプラットフォーミングすることによって、ブローカー(412)をターゲットメッセージブローカー(430)に移行する。
【特許請求の範囲】
【請求項1】
アプリケーションサーバー(102)のプロセッサ(122)によって、ソースアプリケーション環境のソースメッセージブローカー(412)を評価することと、
前記ソースアプリケーション環境のコンポーネント(412a、412b、...、412n)間の接続を特定するために、前記プロセッサ(122)によってソースメッセージブローカー(412)をスキャンすることと、
前記プロセッサ(122)によって、前記ソースメッセージブローカー(412)をターゲットメッセージブローカー(430)に移行するため変化の量を確認することと、
前記プロセッサ(122)によって、評価統計(302)を予測することであって、前記評価統計(302)は、前記ソースメッセージブローカー(412)の前記移行を完了するために、少なくとも1つの機能的準備(304)およびタイムライン(306)を提供することと、
前記プロセッサ(122)によって、変換されたメッセージブローカー構造(550a、...、550n)を生成することであって、前記変換されたメッセージブローカー構造(550a、...、550n)は、前記接続を維持しながら前記ターゲットメッセージブローカー(430)に従って前記ソースメッセージブローカー(412)を分割することによって生成されることと、
前記プロセッサ(122)によって、予測された前記評価統計(302)および前記変換されたメッセージブローカー構造(550a、...、550n)に従って、前記ターゲットメッセージブローカー(430)のきめの細かいメッセージブローカーコンポーネント(552a、...、552n)を更新することと、
前記プロセッサ(122)によって、前記ソースメッセージブローカー(412)を前記ターゲットメッセージブローカー(430)に移行することであって、前記移行することは、更新された前記きめの細かいメッセージブローカーコンポーネント(552a、...、552n)をリプラットフォームすることと、を含む、方法。
【請求項2】
前記ソースメッセージブローカー(412)を前記ターゲットメッセージブローカー(430)に移行するための前記変化の量が、前記ソースメッセージブローカー(412)のサイズおよび複雑さに基づいて計算される、請求項1に記載の方法。
【請求項3】
前記変換されたメッセージブローカー構造(550a、...、550n)が、継続的インテグレーションおよび展開フレームワーク(150)および自動化されたテストフレームワーク(150)を利用して生成される、請求項1に記載の方法。
【請求項4】
前記評価統計(302)が、前記ソースメッセージブローカー(412)の前記移行を完了するための少なくとも1つの阻害要因を提供する、請求項1に記載の方法。
【請求項5】
前記変換されたメッセージブローカー構造(550a、...、550n)が、前記ソースメッセージブローカー(412)の前記コンポーネント(412a、412b、...、412n)間の接続を維持しながら、前記ターゲットメッセージブローカー(430)に従って生成される、請求項1に記載の方法。
【請求項6】
前記変換されたメッセージブローカー構造(550a、...、550n)が、AIエンジン(152)によって特定される、請求項1に記載の方法。
【請求項7】
前記プロセッサ(122)によって、ターゲットアプリケーション環境に従って前記ソースアプリケーション環境からキューおよびトピックを移行することをさらに含む、請求項1に記載の方法。
【請求項8】
ターゲットアプリケーション環境に従って、前記プロセッサ(122)によって、メッセージブローカーサービスおよびサービスエンドポイントを実装することをさらに含む、請求項1に記載の方法。
【請求項9】
前記プロセッサ(122)によって、ビジネスロジック、リンク、ルールエンジン、利用可能な環境のライブラリ、標準ツール、およびコーディング言語を含むアプリケーションコード(202)にアクセスすることをさらに含む、請求項1に記載の方法。
【請求項10】
アプリケーション環境の前記ソースメッセージブローカー(412)は、ソースからターゲットメッセージブローカーへの環境の再発展、ソースからターゲットメッセージブローカーへのリファクタリング、ソースからターゲットメッセージブローカーへのリホスティング、およびソースからターゲットメッセージブローカーへのリプラットフォーミングのステップを含む前記ターゲットメッセージブローカー(430)へ移行する、請求項1に記載の方法。
【請求項11】
前記ターゲットメッセージブローカー(430)は、クラウドベースのメッセージブローカーエコシステムである、請求項1に記載の方法。
【請求項12】
プロセッサ(122)と、
前記プロセッサ(122)に結合されたメモリ(126)とを備え、前記プロセッサ(122)は、前記メモリ(126)に格納された複数のモジュール(128)を実行し、前記複数のモジュール(128)は、
ソースアプリケーション環境のソースメッセージブローカー(412)を評価し、前記ソースアプリケーション環境のコンポーネント(412a、412b、...、412n)間の接続を特定するために前記ソースメッセージブローカー(412)をスキャンし、前記ソースメッセージブローカー(412)をターゲットメッセージブローカー(430)に移行するための変化の量を確認するための、評価モジュール(130)であって、前記評価モジュール(130)は、前記ソースメッセージブローカー(412)の前記移行を完了するための少なくとも1つの機能的準備(304)およびタイムライン(306)を提供する評価統計(302)を予測する、評価モジュール(130)と、
変換されたメッセージブローカー構造(550a、...、550n)を生成するためのリファクタリングモジュール(132)であって、前記変換されたメッセージブローカー構造(550a、...、550n)は、前記接続を維持しながら前記ターゲットメッセージブローカー(430)に従って前記ソースメッセージブローカー(412)を分割することによって生成される、リファクタリングモジュール(132)と、
予測された前記評価統計(302)および前記変換されたメッセージブローカー構造(550a、...、550n)に従って前記ターゲットメッセージブローカー(430)のきめの細かいメッセージブローカーコンポーネント(552a、...、552n)を更新し、前記ソースメッセージブローカー(412)を前記ターゲットメッセージブローカー(430)に移行するためのリプラットフォームモジュール(134)であって、前記移行することにより、更新された前記きめの細かいメッセージブローカーコンポーネント(552a、...、552n)がリプラットフォームされる、リプラットフォームモジュール(134)と、を備える、システム。
【請求項13】
前記ソースメッセージブローカー(412)を前記ターゲットメッセージブローカー(430)に移行するための前記変化の量が、前記ソースメッセージブローカー(412)のサイズおよび複雑さに基づいて計算される、請求項12に記載のシステム。
【請求項14】
前記変換されたメッセージブローカー構造(550a、...、550n)が、継続的インテグレーションおよび展開フレームワーク(150)および自動化されたテストフレームワーク(150)を利用して生成される、請求項12に記載のシステム。
【請求項15】
前記評価統計(302)が、前記ソースメッセージブローカー(412)の前記移行を完了するための少なくとも1つの阻害要因を提供する、請求項12に記載のシステム。
【請求項16】
前記変換されたメッセージブローカー構造(550a、...、550n)が、前記ソースメッセージブローカー(412)の前記コンポーネント(412a、412b、...、412n)間の接続を維持しながら、前記ターゲットメッセージブローカー(430)に従って生成される、請求項12に記載のシステム。
【請求項17】
前記変換されたメッセージブローカー構造(550a、...、550n)が、AIエンジン(152)によって特定される、請求項12に記載のシステム。
【請求項18】
前記リファクタリングモジュール(132)は、前記プロセッサ(122)によって、ターゲットアプリケーション環境に従って前記ソースアプリケーション環境からキューおよびトピックを移行することをさらに含む、請求項12に記載のシステム。
【請求項19】
前記リプラットフォームモジュール(134)は、前記プロセッサ(122)によって、ターゲットアプリケーション環境に従ってメッセージブローカーサービスおよびサービスエンドポイントを実装することをさらに含む、請求項12に記載のシステム。
【請求項20】
前記複数のモジュール(128)は、前記プロセッサ(122)によって、ビジネスロジック、リンク、ルールエンジン、利用可能な環境のライブラリ、標準ツール、およびコーディング言語を含むアプリケーションコード(202)にアクセスすることをさらに実行する、請求項12に記載のシステム。
【請求項21】
アプリケーション環境の前記ソースメッセージブローカー(412)は、ソースからターゲットメッセージブローカーへの環境の再発展、ソースからターゲットメッセージブローカーへのリファクタリング、ソースからターゲットメッセージブローカーへのリホスティング、およびソースからターゲットメッセージブローカーへのリプラットフォーミングのステップを含む前記ターゲットメッセージブローカー(430)へ移行する、請求項12に記載のシステム。
【請求項22】
前記ターゲットメッセージブローカー(430)は、クラウドベースのメッセージブローカーエコシステムである、請求項12に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
(発明の分野)
本開示は概して、コンピュータの分野に関し、より具体的には、本開示は、構造的健全性と品質基準を維持しつつ、ユーザーが面倒な手間および時間をかけることなく、メッセージブローカーをオンプレミス環境からクラウド環境に自動的に移行させることができるアプリケーション環境マイグレーションにおけるメッセージブローカーマイグレーションのためのシステムおよび方法に関する。
【0002】
時代の変化とともに技術も変化し、車輪の発明から、我々は今では、モバイルデバイスを介して通勤がオーダーされ得る時代に立っている。このように、テクノロジーは、コンピュータが舞踏室のように大きい時代から、親指のつめのように小さい今の時代へと、大きな飛躍を遂げた。我々は、少しずつ、複数のアプリケーションを通じて人類を助ける技術を刻みました。この絶え間なく変化し、絶えず変化するテクノロジーの分野では、アプリケーション環境は改善を続けており、それらの高度な要件により合わせてアプリケーションを更新し続ける必要が生じる。
【0003】
ソフトウェアシステム間の通信およびデータ交換は避けられない。ミドルウェアにより、分散システム間の通信およびデータ交換が可能になる。ミドルウェアテクノロジはさまざまなカテゴリに分類されており、メッセージブローカーもその1つである。メッセージングは、ポイントAからポイントBまたは複数のポイントへメッセージを交換する方法である。これはソフトウェアシステムを分離する1つの方法である。メッセージ送信者(プロデューサー)はメッセージ受信者(コンシューマー)にメッセージを送信し、メッセージ受信者はメッセージ送信者からメッセージを受け取ることができ、プロデューサーおよびコンシューマーが通信するためにその時点で対応可能である必要はなく、メッセージブローカーは、中間段階としてキューを使用して、あるアプリケーションから別のアプリケーションにメッセージを送信する。メッセージはコンシューマーによって取得されるまでキューに残こる。このシステムの利点は、非同期の通信方法を促進し、メッセージの送信時に受信側システムが利用可能である必要がないことである。メッセージングモデルは一般に、メッセージが1人のコンシューマーに送信されるポイントツーポイントモデルと、メッセージが多数のサブスクライバに送信されるパブリッシュサブスクライバモデルに分類される。
【0004】
従来、オンプレミスアプリケーション環境のメッセージブローカーは、より新しい環境に合わせてメッセージブローカーを完全に再現することでクラウド環境に移行されてきたが、これは時間がかかり、既存のメッセージブローカーのエコシステムの利益をあまり提供していなかった。環境の更新がより速くなると、メッセージブローカーがより新しい環境に移行されるまでにより新しいそれがリリースされるので、メッセージブローカーすべてを手動で更新する時間が不十分である。さらに、限定されないが、メッセージブローカーを異なる環境に移行する際には、変換中に接続が失われないようにすること、ならびにより古い環境およびより新しい環境に対応したマイグレーションを保証することを含むその独自の課題もあった。
【0005】
企業がそのIT戦略の重要な部分としてクラウドを活用することで、クラウドの採用が主流になった。これは、AWS、Azure、およびGCPなどの主要なクラウドプロバイダーが過去数年間で年々成長していることからも明らかである。最初のフェーズとして、これらの企業は、クラウドネイティブ設計の原則を使用してクラウド上に新しいアプリケーションを開発し、クラウドソリューション上でメッセージブローカーをホスティングすることにより、クラウドの採用に成功した。それで成功を実現したので、企業はクラウドの利益を最大限に活用するために、それらの重要なアプリケーションの残りをクラウドに移行する方法を模索している。しかし、課題は、既存のアプリケーションをクラウドに移行することで、別の一連の問題が発生することであり、例えば、適切なクラウド移行アプローチ、リスクのバランス、クラウドマイグレーションを完了するためのコストとタイムライン、既存のアプリケーションの複雑さ、特にSMEのない古いメッセージブローカーまたはアプリケーション、総所有コスト(TCO)の節約を最大化し、将来のリリースの生産性、実行速度、パフォーマンスの向上などを増加させることである。
【0006】
アプリケーション環境のメッセージブローカーの移行には複雑なパラメータおよび労力が必要なため、定期的な更新に間に合うようにクランチと一緒に、メッセージブローカー、その接続およびそのコンポーネントに関連するさまざまな問題に対処しながら、手動による支援を必要とせずに、または最小限の方法でメッセージブローカーをオンプレミスからクラウド環境に移行する、アプリケーション環境マイグレーションにおけるメッセージブローカーマイグレーションのためのシステムおよび方法を開発する必要がある。
【発明の概要】
【0007】
この概要は、アプリケーション環境マイグレーションにおけるメッセージブローカーマイグレーションのためのシステムおよび方法に関連する概念を紹介するために提供されており、その概念は、以下の詳細な説明でさらに説明される。この概要は、クレームされた主題の本質的な特徴を特定することを意図したものでも、クレームされた主題の範囲を決定または制限するために使用することを意図したものでもない。
【0008】
一実施態様では、アプリケーション環境マイグレーションにおけるメッセージブローカーマイグレーションのための方法が開示される。アプリケーションサーバー102のプロセッサ122によって、ソースアプリケーション環境のソースメッセージブローカー412を評価することと、プロセッサ122によって、ソースアプリケーション環境のコンポーネント412a、412b、...、412n間の接続を特定するためにソースメッセージブローカー412をスキャンすることと、を含む方法。方法は、プロセッサ122によって、ソースメッセージブローカー412をターゲットメッセージブローカー430に移行するための変化の量を確認することと、プロセッサ122によって、評価統計302を予測することとをさらに含み、評価統計302は、ソースメッセージブローカー412の移行を完了するための少なくとも1つの機能的準備304およびタイムライン306を提供する。方法は、プロセッサ122によって、変換されたメッセージブローカー構造550a、...、550nを生成することであって、変換されたメッセージブローカー構造550a、...、550nは、接続を維持しながらターゲットメッセージブローカー430に従ってソースメッセージブローカー412を分割することによって生成されることと、プロセッサ122によって、予測された評価統計302および変換されたメッセージブローカー構造550a、...、550nに従って、ターゲットメッセージブローカー430のきめの細かいメッセージブローカーコンポーネント552a、...、552nを更新することと、をさらに含む。方法は、プロセッサ122によって、ソースメッセージブローカー412をターゲットメッセージブローカー430に移行することであって、移行することは、更新されたきめの細かいメッセージブローカーコンポーネント552a、...、552nをリプラットフォームすること、をさらに含む。
【0009】
さらに別の実施態様では、ソースメッセージブローカー412をターゲットメッセージブローカー430に移行するための変化の量が、ソースメッセージブローカー412のサイズおよび複雑さに基づいて計算される。
【0010】
さらに別の実施態様では、変換されたメッセージブローカー構造550a、...、550nが、継続的インテグレーションおよび展開フレームワーク150および自動化されたテストフレームワーク150を利用して生成される。
【0011】
さらに別の実施態様では、評価統計302が、ソースメッセージブローカー412の移行を完了するための少なくとも1つの阻害要因を提供する。
【0012】
さらに別の実施態様では、変換されたメッセージブローカー構造550a、...、550nが、ソースメッセージブローカー412のコンポーネント412a、412b、...、412n間の接続を維持しながら、ターゲットメッセージブローカー430に従って生成される。
【0013】
さらに別の実施態様では、変換されたメッセージブローカー構造(550a、...、550n)が、AIエンジン(152)によって特定される。
【0014】
さらに別の実施態様では、アプリケーション環境のソースメッセージブローカー412は、ソースからターゲットメッセージブローカーへの環境の再発展、ソースからターゲットメッセージブローカーへのリファクタリング、ソースからターゲットメッセージブローカーへのリホスティング、およびソースからターゲットメッセージブローカーへのリプラットフォーミングのステップを含むターゲットメッセージブローカー430へ移行する。
【0015】
さらに別の実施態様では、ターゲットメッセージブローカー430は、クラウドベースのメッセージブローカーエコシステムである。
【0016】
さらに別の実施態様では、方法は、プロセッサ122によって、ターゲットアプリケーション環境に従ってソースアプリケーション環境からキューおよびトピックを移行することを含む。
【0017】
別の実施態様では、方法は、プロセッサ122によって、ターゲットアプリケーション環境に従って、メッセージブローカーサービスおよびサービスエンドポイントを実装することを含む。
【0018】
別の実施態様では、方法は、プロセッサ122によって、ビジネスロジック、リンク、ルールエンジン、利用可能な環境のライブラリ、標準ツール、およびコーディング言語を含むアプリケーションコード202にアクセスすることを含む。
【0019】
一実施態様では、アプリケーション環境マイグレーションにおけるメッセージブローカーマイグレーションのためのシステムが開示される。システムは、プロセッサ122と、プロセッサ122に結合されたメモリ126とを備え、プロセッサ122は、メモリ126に格納された複数のモジュール128を実行する。複数のモジュール128は、ソースアプリケーション環境のソースメッセージブローカー412を評価し、ソースアプリケーション環境のコンポーネント412a、412b、...、412n間の接続を特定するためにソースメッセージブローカー412をスキャンし、ソースメッセージブローカー412をターゲットメッセージブローカー430に移行するための変化の量を確認するための、評価モジュール130であって、評価モジュール130は、ソースメッセージブローカー412の移行を完了するための少なくとも1つの機能的準備304およびタイムライン306を提供する評価統計302を予測する、評価モジュール130を含む。複数のモジュール128は、変換されたメッセージブローカー構造550a、...、550nを生成するためのリファクタリングモジュール132であって、変換されたメッセージブローカー構造550a、...、550nは、接続を維持しながらターゲットメッセージブローカー430に従ってソースメッセージブローカー412を分割することによって生成される、リファクタリングモジュール132をさらに含む。複数のモジュール128は、予測された評価統計302および変換されたメッセージブローカー構造550a、...、550nに従ってターゲットメッセージブローカー430のきめの細かいメッセージブローカーコンポーネント552a、...、552nを更新し、ソースメッセージブローカー412をターゲットメッセージブローカー430に移行するためのリプラットフォームモジュール134であって、移行することにより、更新されたきめの細かいメッセージブローカーコンポーネント552a、...、552nがリプラットフォームされる、リプラットフォームモジュール134をさらに含む。
【0020】
さらに別の実施態様では、システムは、ソースメッセージブローカー412のサイズおよび複雑さに基づいて計算されるソースメッセージブローカー412をターゲットメッセージブローカー430に移行するための変化の量を有する。
【0021】
さらに別の実施態様では、システムは、継続的インテグレーションおよび展開フレームワーク150および自動化されたテストフレームワーク150を利用して生成される変換されたメッセージブローカー構造550a、...、550nを有する。
【0022】
さらに別の実施態様では、システムは、ソースメッセージブローカー412の移行を完了するための少なくとも1つの阻害要因を提供する評価統計302を有する。
【0023】
さらに別の実施態様では、システムは、ソースメッセージブローカー412のコンポーネント412a、412b、...、412n間の接続を維持しながら、ターゲットメッセージブローカー430に従って生成される変換されたメッセージブローカー構造550a、...、550nを有する。
【0024】
さらに別の実施態様では、システムは、AIエンジン(152)によって特定される変換されたメッセージブローカー構造(550a、...、550n)を有する。
【0025】
さらに別の実施態様では、システムは、ソースからターゲットメッセージブローカーへの環境の再発展、ソースからターゲットメッセージブローカーへのリファクタリング、ソースからターゲットメッセージブローカーへのリホスティング、およびソースからターゲットメッセージブローカーへのリプラットフォーミングのステップを含むターゲットメッセージブローカー430へ移行するアプリケーション環境のソースメッセージブローカー412を有する。
【0026】
さらに別の実施態様では、システムは、クラウドベースのメッセージブローカーエコシステムであるターゲットメッセージブローカー430を有する。
【0027】
さらに別の実施態様では、システムは、プロセッサ122によって、ターゲットアプリケーション環境に従ってソースアプリケーション環境からキューおよびトピックを移行することをさらに含むリファクタリングモジュール132を備える。
【0028】
別の実施態様では、システムは、プロセッサ122によって、ターゲットアプリケーション環境に従ってメッセージブローカーサービスおよびサービスエンドポイントを実装することをさらに含むリプラットフォームモジュール134を含む。
【0029】
別の実施態様では、システムは、プロセッサ122によって、ビジネスロジック、リンク、ルールエンジン、利用可能な環境のライブラリ、標準ツール、およびコーディング言語を含むアプリケーションコード202へのアクセスをさらに実行する複数のモジュール128を備える。
【0030】
あるプラットフォームから別のプラットフォームにアプリケーションを移行するために使用され得るアプリケーション環境マイグレーションにおけるメッセージブローカーマイグレーションのためのシステムおよび方法を提供することが、主題の主な目的であり、より具体的には、それは、メッセージブローカーをより古い環境からより新しい環境に移行するために使用され得る。アプリケーション環境マイグレーションにおけるメッセージブローカーマイグレーションのシステムおよび方法は、移行されるメッセージブローカー、ならびにメッセージブローカーが開発されたより古い環境およびメッセージブローカーが移行されるべきより新しい環境を含む環境に基づいてカスタマイズされ得る。
【0031】
主題の別の目的は、多数のメッセージブローカーの接続を維持しながらそれらに対応する、アプリケーション環境マイグレーションにおけるメッセージブローカーマイグレーションを提供することである。さらに、アプリケーション環境マイグレーションにおけるメッセージブローカーマイグレーションのためのシステムおよび方法は、選択された移行対象のメッセージブローカーを、広範囲の環境から別の広範囲またはエコシステムの環境へ移行することができるようにしてもよい。
【0032】
主題の別の目的は、手動入力を必要とせずにまたは自動ステップと手動ステップを含むハイブリッド方式で、自動化された方法でメッセージブローカーを移行する、アプリケーション環境マイグレーションにおけるメッセージブローカーマイグレーションのためのシステムおよび方法を提供することである。
【0033】
主題の別の目的は、開発チームによって行われる作業の繰り返し可能なパターンを排除し、それによってコストも削減することによって、メッセージブローカーをより古い環境からより新しい環境に移行するために開発チームが費やす時間と労力を削減するプリケーション環境マイグレーションにおけるメッセージブローカーマイグレーションを提供することである。
【0034】
主題の別の目的は、サービス間通信の制御を強化し、パフォーマンスおよびスケーラビリティを向上させ、信頼性および効率を向上させ、ならびにデータが安全に送信されることを保証する、アプリケーション環境マイグレーションにおけるメッセージブローカーマイグレーションを提供することである。
【0035】
主題の別の目的は、IBM MQ、Microsoft MQ、TIBCO EMS/Rendezvous、WebLogic /WebSphere Message Queue、Sonic Message Queue、JBoss MQなどを含むがこれらに限定されない、ソース/従来のメッセージブローカーを、Amazon Web Services (AWS) Amazon AMQ、Azure Service Bus、Event Hub、MuleSoft Anypoint Platform、RabbitMQ、Apache ActiveMQ、Kafkaなどを含むがこれらに限定されないターゲットクラウドベースの人気のあるメッセージブローカーへ移行することに利用できる、アプリケーション環境マイグレーションにおけるメッセージブローカーマイグレーションを提供することである。
【0036】
主題の別の目的は、実装コストを削減し、総所有コストを削減して収益性を高め、実行速度を向上させ、アプリケーションのパフォーマンスを向上させ、そしてアプリケーションの生産性を向上させることによって、メッセージブローカーをより古い環境からより新しい環境に移行するアプリケーション環境マイグレーションにおけるメッセージブローカーマイグレーションを提供することである。
【0037】
特定の態様、実施形態、実施態様および/または構成に応じて多くの利点を提供することは、主題の別の目的である。
【0038】
動作の労力およびコストを制御しながら、信頼性の高い実行、スケーラビリティ、および付加価値サービスを提供できるプラットフォームを提供することは、主題の別の目的である。
【0039】
多数のインスタンスを同時に効率的に管理し、さまざまな規制要件で作業し、リソースがユーザーフレンドリーなインターフェースと緊密に、効率的に、そして集合的に協働および連携できるようにすることは、主題の別の目的である。
【0040】
主題のこれらおよび他の実施態様、実施形態、プロセス、および特徴は、以下の詳細な説明が付随する実験の詳細とともに読まれるときに、より完全に明らかになるであろう。しかしながら、主題の前述の要約およびそれに関する以下の詳細な説明の両方は、1つの潜在的な実施態様または実施形態を表し、本開示または主題の他の代替の実施態様もしくは実施形態を限定するものではない。
【図面の簡単な説明】
【0041】
上に要約された主題の主要な特徴の明確な理解は、主題の方法およびシステムを説明する添付の図面を参照することによって得ることができるが、そのような図面は、主題の好ましい実施形態を描写し、したがって、主題が考慮することができる他の実施形態に関して、その範囲を制限すると見なされるべきではない。したがって:
図1】本主題の実施形態による、アプリケーション環境マイグレーションにおけるメッセージブローカーマイグレーションの方法を示す概略モジュール図を示す。
図2】本主題の実施形態による、アプリケーション環境マイグレーションシステムにおける例示的なメッセージブローカーマイグレーションシステムの動作を説明するフローチャートを示す。
図3】本主題の実施形態による、アプリケーション環境マイグレーションシステムにおける例示的なメッセージブローカーマイグレーションによって自動的に生成される例示的な評価レポートを示す。
図4】本主題の実施形態による、アプリケーション環境マイグレーション方法における例示的なメッセージブローカーマイグレーションの例示的な図を示す。
図5】本主題の実施形態による、アプリケーション環境マイグレーション方法における例示的なメッセージブローカーマイグレーションの例示的な図を示す。
図6】本主題の実施形態による、アプリケーション環境マイグレーションにおけるメッセージブローカーマイグレーションの方法の例示的なフローチャートを示す。
図7】本主題の実施形態による、アプリケーション環境マイグレーションにおけるメッセージブローカーマイグレーションの方法の別の例示的なフローチャートを示す。
【発明を実施するための形態】
【0042】
(発明の詳細な説明)
以下は、添付の図面に示されている本開示の実施態様の詳細な説明である。実施態様は、開示を明確に伝えるように詳細である。しかしながら、提供される詳細の量は、実施態様を制限することを意図するものではなく、本開示の精神および範囲内にあるすべての改変物、同等物、および代替物を網羅することを意図している。アプリケーション環境マイグレーションにおけるメッセージブローカーマイグレーションのための記載されたシステムおよび方法の態様は、任意の数の異なるコンピューティングシステム、環境、および/または構成で実装され得るが、実施形態は、以下の例示的なシステム(複数可)の文脈で説明される。
【0043】
本開示は、ソースアプリケーション環境のソースオンプレミスメッセージブローカーからターゲットアプリケーション環境のターゲットメッセージブローカーへのメッセージブローカークラウドリプラットフォーミングを提供する。メッセージブローカーのクラウドリプラットフォーミングは、既存のオンプレミスメッセージブローカーをクラウドに移行し、クラウドのスケーラビリティおよび柔軟性のある機能を利用することにより、ソースアプリケーション環境のソースメッセージブローカーを効率的に機能させることを含む。ソースアプリケーション環境の構造のソースメッセージブローカーも改変されて、これらのメッセージブローカーの総所有コスト(TCO)が削減され、これらは、仮想マシン、アプリケーションサーバー、およびデータベースのライセンスコストを削減するために、よりオープンソースでクラウドフレンドリーなソフトウェアを採用することを含む。実際のTCO削減量はメッセージブローカーによって異なり、ソースメッセージブローカーの評価後に決定される。本開示は、メッセージブローカーで実行されるいくつかの重要なステップをリストし、メッセージブローカーによって異なり、Cloud PlatformまたはPaaSで効果的に機能するように、既存のメッセージブローカーを変更し得るが、ソースおよびオンプレミスの設計パターンに関連するすべてのブロッカーが変更され、すべての基盤となるリンク、依存関係、接続、ライブラリが更新されて、ソースメッセージブローカーがコンテナまたはPaaS、アプリケーションサーバー(Weblogic、WebSphere、JBossなど)と互換性を持つようになり、そしてデータベースはオープンソースのクラウドフレンドリーなソフトウェアに置き換えられ得、モノリスアプリケーションは効率および速度のためにより小さなマクロサービスに分離され得、ソースメッセージブローカーはターゲットクラウドベースのメッセージブローカーで変換およびリプラットフォームされ得る。
【0044】
本開示は、単純なコンテナ化によるクラウドリプラットフォーミングのためのメカニズムを提供し、コンテナ化を妨げるすべてのコードブロッカーを削除し、Dockerなどのコンテナにソースアプリケーションを展開してクラウド上でそれを動作させることを含む。さらに、テストケースおよびCI/CDの自動化を含む、ソースアプリケーションリリースプロセスも自動化されよう。またさらに、ソースアプリケーションおよび/またはソースデータベースをJAVAアプリケーション用のTomcatおよびレガシーDB2データベースなどの軽量のオープンソースサーバーにリプラットフォームして、ライセンスコストを削減し、クラウドでのコンピューティングコストを削減することで、これらのアプリケーションのTCOを削減することもできる。しかし、安定性およびパフォーマンスを保証するために、モノリスアプリケーションをより小さなサービスもしくはリファクタリングされたデータベース構造もしくは変換されたメッセージブローカーに分割する必要があるか、またはバッチおよびこれらのスケジューラのリファクタリングによってこれらのアプリケーションをすべてステートレスにし、それぞれを個別のコンテナに展開する個別のTomcatサーバーにそれらを展開する。したがって、ソースアプリケーションは、モノリスアプリケーションを分離し、マクロサービス概念を使用してAPIを介してそれを公開し、それをクラウド準備アプリケーションにすることで、ターゲットアプリケーションプラットフォームに移行されよう。モノリスアプリケーションをマクロサービスに分割することに加えて、CI/CDも実装され、高速で自動化された展開を実現する。それは、IBM MQ(ただしこれに限定されない)などのオンプレミスの商用メッセージブローカーをAmazon AMQまたは Azure サービスバス、Azure Event Hub、およびAWS SNSに変換することを含む、メッセージブローカーのリプラットフォーミングを実行する。コンポーネントごとの構造とステップごとの方法を以下に示す。
【0045】
図1は、本主題の実施形態による、アプリケーション環境マイグレーションにおけるメッセージブローカーマイグレーションの方法を示す概略モジュール図100を示す。
【0046】
一実施態様では、アプリケーション環境マイグレーションシステム120におけるメッセージブローカーマイグレーションは、サーバー102上でアプリケーション環境マイグレーションシステムにおけるメッセージブローカーマイグレーションのための方法を実装し、システム120は、プロセッサ(複数可)122、インターフェース(複数可)124、フレームワーク(複数可)150、AIエンジン152、およびプロセッサ(複数可)122に結合されたメモリ126を含む。プロセッサ(複数可)122は、1つ以上のマイクロプロセッサ、マイクロコンピュータ、マイクロコントローラ、デジタル信号プロセッサ、中央処理装置、状態機械、論理回路、および/またはメッセージブローカーマイグレーション命令に基づいて信号を操作する任意のデバイスとして実装され得る。他の機能の中でも、プロセッサ(複数可)122は、メモリ126に格納されたコンピュータ可読命令をフェッチして実行するように構成される。フレームワーク150は、継続的インテグレーションおよび継続的展開フレームワーク、自動化されたテストフレームワークなどを含むがこれらに限定されない。AIエンジン152は、データベース(DB)リプラットフォームエンジン、アプリリプラットフォームエンジン、メッセージブローカーリプラットフォームエンジン、オープンソースAIエンジンなどを含むが、これらに限定されない。
【0047】
本開示は、システムがサーバー上のアプリケーションとして実装されるシナリオを考慮して説明されているが、システムおよび方法は、様々なコンピューティングシステムに実装され得る。記載された方法(複数可)を実装し得るコンピューティングシステムは、メインフレームコンピュータ、ワークステーション、パーソナルコンピュータ、デスクトップコンピュータ、ミニコンピュータ、サーバー、マルチプロセッサシステム、ラップトップ、タブレット、SCADAシステム、スマートフォン、モバイルコンピューティングデバイスなどを含むが、これらに限定されない。
【0048】
インターフェース(複数可)124は、システム120がユーザーと対話することを可能にする、例えば、ウェブインターフェース、グラフィカルユーザーインターフェースなどの様々なソフトウェアおよびハードウェアインターフェースを含み得る。さらに、インターフェース(複数可)124は、システム120が、ウェブサーバーおよび外部データサーバー(図示せず)などの他のコンピューティングデバイスと通信することを可能にし得る。インターフェース(複数可)124は、例えばLAN、ケーブルなどの有線ネットワーク、およびWLAN、セルラー、または衛星などの無線ネットワークを含む、多種多様なネットワークおよびプロトコルタイプ内の複数の通信を促進し得る。インターフェース(複数可)124は、多数のデバイスを互いにまたは別のサーバーに接続するための1つ以上のポートを含んでもよい。
【0049】
アプリケーションサーバーおよびクラウド環境における全ての要素間で通信するために使用されるネットワークは、無線ネットワーク、有線ネットワーク、またはそれらの組み合わせであり得る。ネットワークは、イントラネット、ローカルエリアネットワークLAN、ワイドエリアネットワークWAN、インターネットなどの異なるタイプのネットワークのうちの1つとして実装され得る。また、ネットワークは、専用ネットワークであっても、共有ネットワークであってもよい。共有ネットワークは、例えば、ハイパーテキスト転送プロトコルHTTP、伝送制御プロトコル/インターネットプロトコルTCP/IP、無線アプリケーションプロトコルWAPなどの様々なプロトコルを使用して互いに通信する異なるタイプのネットワークのつながりを表す。さらにネットワークは、ルータ、ブリッジ、サーバー、コンピューティングデバイスを含む様々なネットワークデバイスを含んでもよい。ネットワークはさらに、クライアントサイトコンピュータ、ホストサイトサーバーもしくはコンピュータ、クラウド上、またはそれらの組み合わせなどにあるストレージデバイスへのアクセスを有する。ストレージは、1つまたは多数のメモリ記憶デバイス、データベースなどを含む、1つまたは多数のローカルおよびリモートのコンピュータ記憶媒体を有する。
【0050】
メモリ126は、例えば、揮発性メモリ(例えば、RAM)、および/または不揮発性メモリ(例えば、EPROM、フラッシュメモリ等)を含む本分野で既知の任意のコンピュータ可読媒体を含み得る。一実施形態では、メモリ126は、モジュール(複数可)128およびシステムデータ140を含む。
【0051】
モジュール128は、評価モジュール130、リファクタリングモジュール132、リプラットフォームモジュール134、およびブロッカー評価モジュール、スクリプトジェネレータモジュール等を含むがこれらに限定されない他のモジュール136をさらに含む。スクリプト生成器モジュールはさらに、テストケース生成器、ビルドスクリプト生成器、ドッカースクリプト生成器、パイプラインスクリプト生成器、展開スクリプト生成器などを含むが、これらに限定されない。このようなモジュールは、単一のモジュールとして表されてもよいし、異なるモジュールの組合せとして表されてもよいことが理解されよう。さらに、メモリ126は、とりわけ、モジュール128のうちの1つ以上によってフェッチ、処理、受信、および生成されたデータを格納するためのリポジトリとして機能するシステムデータ140をさらに含む。システムデータ140は、例えば、ストレージ144における運用データ、ワークフローデータ、および他のデータを含む。システムデータ140は、場合により、144a、144b、...、144nで表されるストレージ144を有する。一実施形態では、システムデータ140は、ウェブまたはクラウドネットワークを介して他のデータベースへのアクセスを有する。ストレージ144は、評価モジュールデータ、リファクタリングモジュールデータ、リプラットフォームモジュールデータ、ライブラリ、リンク識別子、データベースアダプタ、データベースディクショナリ、データベースパーサー、技術ディクショナリ、ファイルアダプタ、アプリケーションパーサー、パターン認識器、オープンソースライブラリ、技術スタックなどを含むが、これらに限定されない複数のデータベースを含む。このようなデータベースは、単一のデータベースとして表されてもよいし、異なるデータベースの組合せとして表されてもよいことが理解されよう。一実施形態では、データは、データ構造の形態でメモリ126に格納され得る。さらに、前述のデータは、関係データモデルまたは階層データモデルなどのデータモデルを使用して編成され得る。
【0052】
サーバー102は、ターゲットアプリケーション環境サーバー104、およびターゲットアプリケーション環境サーバー106、データベース108を含むがこれに限定されないデータベースを含むがこれに限定されない複数のコンピューティングシステムを有するクラウド環境110にさらに接続される。コンピューティングシステムおよびデータベースは、クラウドコンピューティングルールの下で互いに通信し、また、ウェブまたは他の利用可能な通信媒体/プロトコルの下でサーバー102と通信することが必須である。コンピューティングシステム104は一般に、ネットワークによって接続され、かつネットワークを介して通信する複数のコンピューティングデバイスを含む分散処理システムである。ソフトウェアアプリケーションは、特定のクラウドコンピューティングシステムにおける1つ以上のコンピューティングデバイスにわたって実行するようにそれらを構成することによって、「クラウドで」実行され得る。クラウドコンピューティングシステムのコンピューティングデバイスは、それぞれソフトウェアアプリケーションの個別のコピーを実行してもよいし、場合によっては、ソフトウェアアプリケーションの動作が異なるコンピューティングデバイス間で分割されて並列実行されてもよい。クラウドコンピューティングシステムは、アプリケーションを実行するために利用可能なリソースを表す複数のクラウドコンピューティングインスタンスを含んでもよい。各インスタンスは、特定の能力(ストレージサイズ、処理速度、ネットワーク帯域幅など)を有する物理コンピューティングデバイスであってもよいし、または特定の能力を有する仮想コンピューティングデバイスであってもよい。特定のクラウドコンピューティングシステムは、ソフトウェアアプリケーションを実行するための異なる能力セットを有する異なるインスタンスタイプを提供し得る。
【0053】
一実施態様では、最初に、マイグレーション専門家、データベース管理者、アプリケーション開発者、品質アナリストまたはテスト専門家を含むがこれらに限定されないユーザーが、ユーザーアクセスデバイスを使用して、サーバー102を使用してインターフェース124を介してシステム120にアクセスし得る。システム120ならびに関連する方法および関連するモジュール、サブモジュール、方法の動作は、以下に説明する図2図3図4図5図6、および図7を用いて詳細に説明され得る。
【0054】
一実施形態では、システム120は、サーバー102上のインターフェース124によってユーザー命令データを受信する。システム120のモジュール128は、システムデータ140、他のモジュール136、フレームワーク150、およびサポートコンポーネントを使用しながら、プロセッサ122を使用して命令を処理する。アプリケーション環境マイグレーションにおけるメッセージブローカーマイグレーション用の評価モジュール130は、ある環境から別の環境へのメッセージブローカーの移行を開始する前に利用される。リスク、コスト、タイムライン、および変更がターゲットアプリケーション環境のターゲットメッセージブローカーに移行する他の依存アプリケーションに与える影響を評価しながら、評価モジュール130は、ソースアプリケーション環境のソースメッセージブローカー412の評価を実行し、そして、ソースアプリケーション環境のコンポーネント412a、412b、...、412n間の接続を特定するためにソースメッセージブローカー412をスキャンして、ソースアプリケーション環境のソースメッセージブローカーが経験しなければならない変化の量の深い理解を確認する。評価モジュール130は、様々なスタイルを有する様々な開発者によって開発された基礎となる接続、依存関係を理解する。さらに、AIエンジン152を用いて評価モジュール130によって生成された予測評価レポート302は、必要なタイムライン、変更する必要があるコンポーネント/構造の割合、複数の準備パラメータ、複数の阻害要因またはコードブロッカーおよび理由を伴う警告、メッセージブローカーコンポーネントを変更する必要がある強調表示された部分、モノリスを分割できるサービスの数、モノリスを分割できるサービスの種類、ならびに継続的インテグレーションおよび継続的展開のためのメッセージブローカーの準備に関するがこれらに限定されない深い詳細を提供する。評価モジュール130によって生成された評価レポート302は、ソースアプリケーション環境のソースメッセージブローカーの移行を完了するための正確な見積もりおよびタイムラインを提供する。一実施形態では、RPAボットは、アプリケーション環境マイグレーション予測(PAEMF)アルゴリズムのプロアクティブメッセージブローカーマイグレーションを使用して、評価レポート302を生成するように構成される。一実施形態では、RPAボットは、ソフトウェアボットまたはソフトウェアボットおよびハードウェアボットの組み合わせである。一実施形態では、ソフトウェアボットは、プロセッサがAIを利用することによってロボティックプロセスオートメーションを実行することを可能にするコンピュータプログラムである。別の実施形態では、ボットは、ハードウェアおよびソフトウェアの組み合わせであり、ハードウェアは、特にアプリケーション環境マイグレーションにおけるメッセージブローカーマイグレーションのためのロボティックプロセス自動化を可能にする機能を実行するために専用のメモリ、プロセッサ、コントローラおよび他の関連するチップセットを含む。
【0055】
アプリケーション環境マイグレーションにおけるメッセージブローカーマイグレーションのためのリファクタリングモジュール132は、構造550a、550b、...、550nを持つ変換されたメッセージブローカー550を生成することによって、アプリケーション環境マイグレーションにおけるソースメッセージブローカーマイグレーションからアプリケーション環境マイグレーションにおけるターゲットメッセージブローカーマイグレーションへの自動化されたリプラットフォーミングを支持し、変換されたメッセージブローカー構造550a、...、550nは、接続を維持しながら、ターゲットメッセージブローカー430に従ってソースメッセージブローカー412を分割することによって生成される。リファクタリングモジュール132は、継続的インテグレーションおよび展開フレームワーク150、自動化されたテストフレームワーク150、ならびにミドルウェアリプラットフォームおよび環境に優しい設計パターンを利用して、変換されたメッセージブローカー構造550a、...、550nを生成する。
【0056】
アプリケーション環境マイグレーションにおけるメッセージブローカーマイグレーションのためのリプラットフォームモジュール134は、メッセージブローカーのサイズおよびその複雑さに基づいてメッセージブローカーをある環境から別の環境に変換するために、ターゲットアプリケーション環境へのアプリケーション環境マイグレーションにおけるソースメッセージブローカーマイグレーションのための自動化されたリプラットフォーミングをサポートする。リプラットフォームモジュール134は、予測された評価統計302および変換されたメッセージブローカー構造550a、...、550nに従ってターゲットメッセージブローカー430のコンポーネント552a、552b、552c、...、552nできめの細かいメッセージブローカー552を更新し、ソースメッセージブローカー412をターゲットメッセージブローカー430に移行し、ここで、移行することにより、更新されたきめの細かいメッセージブローカーコンポーネント552a、...、552nがリプラットフォームされる。リプラットフォームモジュール134はまた、ソースアプリケーション環境のパターンをターゲットアプリケーション環境の設計パターンに統合すること、コードを微調整すること、展開の問題を解決すること、移行したアプリケーションが完全に機能することを確認するためにセキュリティを実装することなどを含むがこれに限定されないアクティビティを実行する。リプラットフォームモジュール134は、リホスティング環境マイグレーション、メッセージブローカーリプラットフォーミング、メッセージブローカーリファクタリングおよびネイティブメッセージブローカー開発などを含むがこれらに限定されない、複数の形態の環境マイグレーションを支援する。
【0057】
他のモジュール136のブロッカー評価モジュール、オンプレミス設計パターンを有するモノリスウェブアプリケーションのような任意のアプリケーションは、アプリケーション環境マイグレーションにおけるメッセージブローカーマイグレーションのためのシステムおよび方法に入力され得、アプリケーション環境マイグレーションにおけるメッセージブローカーマイグレーションのためのシステムおよび方法のブロッカー評価モジュールは、モノリスウェブアプリケーションのオンプレミス設計パターンのパターンを発見し得る。さらに、この情報は、図1に示すように、アプリケーション環境マイグレーションにおけるメッセージブローカーマイグレーションのためのシステムおよび方法の自動化されたリプラットフォーミングモジュールに転送され得る。
【0058】
システム120の参照アーキテクチャはさらに、テスト生成器-テスト生成器は、生成されたAPIのためのユニット、機能および性能テストケースのためのテストケースを生成するなどのサポートコンポーネントを有する。ビルドスクリプト生成器-ビルドスクリプト生成器は、アプリケーションを正常に構築して実行するためのスクリプトを生成する。Dockerスクリプトジェネレータ-Dockerスクリプトジェネレータは、アプリケーションとその依存関係をコンテナ化するためのスクリプトを生成する。パイプラインスクリプトジェネレータ-パイプラインスクリプトジェネレータは、開発、テスト、および本番環境用のCI/CDパイプラインを作成するためのスクリプトを生成する。展開スクリプトジェネレータ-展開スクリプトジェネレータは、アプリケーションをターゲット環境に展開するためのスクリプトを生成する。データベースアダプタ-データベースアダプタユーティリティは、IBM DB2、Oracle、Microsoft SQL Server、Sybase ASE、およびPostgreSQLなどの複数のデータベースサーバーへの接続を確立する。データベースディクショナリ-データベースディクショナリは、上記の複数のデータベースサーバーにより使用される膨大なデータベース関連のキーワードと組み込み関数を含有する。データベースパーサー-データベースパーサーは、データベースディクショナリを使用してデータベースオブジェクトを解析し、ターゲットデータベースと互換性のないパターンを見つける。AIエンジン-AIエンジンは、レガシーアプリケーションの既存および潜在的なマクロ/マイクロサービスを特定する。メッセージブローカーリプラットフォームエンジン-メッセージブローカーリプラットフォームエンジンは、キューおよびタブレットなどのソースメッセージブローカーオブジェクトをターゲットメッセージブローカー互換オブジェクトにリプラットフォームする。ファイルアダプタ-ファイルアダプタは、アプリケーションのソースファイルへのアクセスを提供する。ファイルはスキャンされてレポートが作成され、最終的にターゲットアプリケーションとしてリプラットフォームされる。テクノロジーディクショナリ-テクノロジーディクショナリは、モノリスアプリケーション内で使用されるテクノロジー関連の膨大なパターンを含有する。アプリケーションパーサー-アプリケーションパーサーは、パターン認識子を使用してアプリケーションソースコードを解析し、アプリケーションが使用しているテクノロジーのインベントリ全体を見つける。このインベントリは、評価とリプラットフォーミングに使用される。パターン認識子-パターン認識子は、テクノロジーディクショナリに基づいてパターンを認識し、アプリケーションで使用されているテクノロジーを見つける。アプリリプラットフォームエンジン-アプリリプラットフォームエンジンは、アプリケーションパーサーによって解析されたソースアプリケーションをリプラットフォームする。このエンジンは、クラウドに展開される準備ができているアプリケーションを生成する。JAVA1.8;Maven; JUnit、NUnit、XUnit JMeter; Docker Jenkins; AWS CLI、AzureCLIなどを含むがこれに限定されないテクノロジースタック。
【0059】
図2は、本主題の実施形態による、アプリケーション環境マイグレーションシステムにおける例示的なメッセージブローカーマイグレーションシステムの動作を説明するフローチャート200を示す。
【0060】
本開示は、ソースアプリケーション環境評価および所望のターゲットプラットフォームへのソースメッセージブローカー変換である2つの重要なアクティビティを示す。この2つのアクティビティは、以下にフローチャート200で説明される。
【0061】
一実施形態では、ソースアプリケーション環境のソースアプリケーションである、JAVAアプリケーションまたは.NETアプリケーションなどのモノリスウェブアプリケーション202は、ソースアプリケーション環境のソースアプリケーションである。モノリスウェブアプリケーション202は、データベース、バッチ、インテグレーション、アプリ、スケジューラ、オンプレミスエコシステムコンポーネントなどを含むがこれらに限定されない様々なサポートコンポーネント204にリンクされる。ソースアプリケーション環境にリンクされたソースエコシステムコンポーネントのソースメッセージブローカー412の機能についてさらに詳しく説明する。
【0062】
第1のステップでは、クラウドブロッカー評価206は、ソースアプリケーションを評価し、コード障害、ソースコード洞察、およびオンプレミス設計パターン214を含む評価レポート212を生成する。クラウドブロッカー評価206はまた、ソースアプリケーション、メッセージブローカーを評価し、メッセージブローカー接続をスキャンし、そしてメッセージブローカー、メッセージブローカー接続、リンク、および依存関係を含む評価レポート212を生成する。オンプレミス設計パターン214は、EJB、RMI、STRUTS/SPRING、SOAP/XML、JSP/ASP、ESBなどを含むが、これらに限定されない。ソースアプリケーションの評価は、現在のアプリケーションのテクノロジースタックとコード分析を含む。評価は、ソースアプリケーション、ソースデータベース、ソースメッセージブローカー、ならびにバッチおよびスケジューラ(ただしこれらに限定されない)を含むその他のサポートコンポーネントのリプラットフォーミングに伴う時間、労力、およびリスクに関する自動化された洞察を提供する。評価には、ソースメッセージブローカーコンポーネントの分析が含まれ、リンク、接続、および他の依存関係を含むソースメッセージブローカー412の自動化された評価を実行し、メッセージブローカーと準備パラメータのコンテナ化されたクラウドマイグレーションに失敗する阻害要因またはブロッカー(パッケージ/フレームワーク/API/ライブラリなど)を特定し、それによって、詳細な評価レポート212を提供する。それは、アプリケーション、データベース、バッチプログラムおよびスケジューラ、インテグレーションおよびメッセージブローカー、構築および展開モジュールを含むソースアプリケーションエコシステム全体についてこのコード評価を実行する。クラウドブロッカー評価206は、リスク、コスト、タイムライン、および他の依存コンポーネントおよびアプリケーションへの影響を評価するために、ソースアプリケーション環境が通過しなければならない変化の量を深く理解するようになる。レポートは主に、変更が必要なコードの割合、コード準備、ブロッカーおよび理由を伴った警告、コードを変更する必要がある正確な場所、モノリスが分解され得るサービスの数、DevOpsおよびCI/CD準備、ならびにそのような実行のタイムラインを提供する。
【0063】
次のステップでは、ソース環境からターゲット環境へのアプリケーションおよびサポートコンポーネントのリプラットフォーミングのための自動化されたメッセージブローカー変換/リプラットフォーミング208を実行して、ターゲットアプリケーション環境でソースメッセージブローカーの接続を保持しながら、JAVAアプリケーションまたは.NETアプリケーション、OracleデータベースまたはDB2データベース、継続的インテグレーションおよび展開フレームワーク216、自動化されたテストフレームワーク218、ミドルウェアリプラットフォーム220、およびソースアプリケーション環境のソースメッセージブローカーを変換/リファクタリングした後のクラウドフレンドリーな設計パターン222で構成されるIBM MQメッセージブローカーのような、クラウド準備アプリケーションおよびサポートコンポーネント210を生成する。自動化されたリプラットフォーミング208のサブステップは、メッセージブローカーの接続、相互依存関係、リンク、およびその他のサポートコンポーネントを更新し、フロントエンドおよびバックエンドを分離し、すべてのメッセージブローカーコンポーネントをIBM MQ、Microsoft MQ、TIBCO EMS/Rendezvous、WebLogic/WebSphere Message Queue、Sonic Message QueueなどのソースメッセージブローカーからAmazon Web Services (AWS) Amazon MQ、Azure Service Bus、Event Hub、MuleSoft Anypoint Platform、RabbitMQ、Apache ActiveMQ、Kafkaなどのクラウドフレンドリーなメッセージブローカーに変換することである。すべてのコンポーネント、接続、キュー、表は、ターゲットメッセージブローカーで動作するように変換され、およびソースメッセージブローカーと同じ望ましい結果を達成する。メッセージブローカーコンポーネントの変換が完了すると、それは、ターゲットアプリケーション環境の設計に基づいてソースメッセージブローカーをきめの細かいコンポーネントに分割し、コードルールの微調整を行い、デプロイメント上の問題を解決するステップを実行し、およびセキュリティを実装することが、ターゲットアプリケーション、データベース、メッセージブローカーを完全に機能させるためにコンサルタントによって完了される。一例では、表Aおよび表Bを例として、例示的なコード変換を説明するために用いられ得る。
【表A】
【表B】
【0064】
さらに、メッセージブローカークラウドリプラットフォーミングは、メッセージブローカーコンポーネントの分析、リファクタリング、ライブラリ更新、ビルドスクリプトのコンパイル、展開スクリプト、コンテナ化スクリプトなど、いくつかの反復的なステップを含む。この結果は、市場投入までの時間が大幅に改善され、次いで全体的なコストを削減し、高品質のリプラットフォーミングを実現し得る。
【0065】
図3は、本主題の実施形態による、アプリケーション環境マイグレーションシステムにおける例示的なメッセージブローカーマイグレーションによって自動的に生成される例示的な評価レポート302を示す。
【0066】
一実施形態では、評価モジュール130は、コード障害、ソースコード洞察、データベースリンク、接続、メッセージブローカー依存関係、バッチおよびスケジューラアプリ、オンプレミス設計パターン214などを含むソースアプリケーション環境を評価した後、例示的なビュー300で評価レポート302を生成する。評価レポート302は、ソースアプリケーション環境をリプラットフォーミングに伴う時間、労力、およびリスクへの自動化された洞察を提供する。
【0067】
評価には、ソースメッセージブローカー、つまりメッセージブローカーおよびメッセージブローカーコンポーネントの分析が含まれ、ここでは、それが、接続およびその他の依存関係を含むソースメッセージブローカーの自動評価とスキャンを実行し、メッセージブローカーおよび準備パラメータのクラウドマイグレーションに失敗する阻害要因またはブロッカー(パッケージ/フレームワーク/API/ライブラリなど)を特定し、それにより、詳細な評価レポート302を提供する。それは、どのオンプレミスメッセージブローカーが使用されているか、アプリケーションのコンポーネント内でどのようなメッセージをそれが渡しているかを評価し、クラウドベースのメッセージブローカーまたはターゲットへのリプラットフォーミングに関連する互換性およびリスクも評価される。レポートの生成は、ソースアプリケーションとターゲットアプリケーション環境に基づいたいくつかのユーザー構成を伴う自動化されたプロセスである。
【0068】
評価レポート302は、リスク、コスト、タイムライン、および他の依存コンポーネントおよびメッセージブローカーへの影響を評価するために、ソースメッセージブローカーが通過しなければならない変化の量の深い理解を準備パラメータ304および視覚的構成306の形態で得る。変化の量は、メッセージブローカーマイグレーションに必要なすべての変化の合計である。評価レポート302は様々なセクションを有し、アプリケーションスナップショットのためのいくつかの例示的な図は、とりわけ、コンテナ化準備304a、リプラットフォーム準備304b、DevOps準備304c、マクロ/マイクロAPI準備304n、バッチアプリ準備304n、スケジューラリプラットフォーム準備304n、DBリプラットフォーム準備304n、クラウドメッセージブローカーサービスの準備304n等のパラメータを含む。各パラメータは、準備状態をパーセンテージ(%)などで示し、それぞれのパラメータにどれだけの準備ができているか、および/またはどれだけの準備ができていない/ブロッキング/阻害要因状態が存在するかを示す。例えば、コンテナ化準備304aは、準備状態と必要とされるリファクタリング/阻害要因率を備えたコンテナ準備率を示し、リプラットフォーム準備304bは、準備状態と必要とされるリファクタリング/阻害要因率を備えたTomcat準備率を示し、DevOps準備304cは、準備状態とCI準備/阻害要因率を備えたCD準備率を示し、マクロ/マイクロAPI準備状304nは、準備状態とマイクロAPIの既存/阻害状態を備えたマクロAPI既存ポインタを示し、バッチアプリ準備304nは、バッチアプリ準備状態と必要とされるリファクタリングブロッカー/阻害要因率を備えたリプラットフォーム準備率を示し、スケジューラのリプラットフォーム準備304nは、AWSバッチ準備状態とAzure Logic App準備/阻害要因率を備えたリプラットフォーム準備率を示し、DBリプラットフォーム準備304nは、PostgresSQL準備状態と必要とされるリファクタリングブロッカー/阻害要因率を備えたリプラットフォーム準備率を示し、そしてクラウドメッセージブローカーサービス準備304nは、ターゲットAmazon MQ準備状態と必要とされるリファクタリングブロッカー/阻害要因率を備えたリプラットフォーム準備率などを示す。レポート302の他のセクションの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などの広がりまたはカウント数または割合を示す。
【0069】
さらに、評価レポート302の様々なセクションは、以下の情報セクション、使用されるフレームワーク/ライブラリ/パッケージからなるアプリケーションスナップショット、アプリケーションコンテナ化準備、TomcatまたはKestrelアプリケーションサーバーへのアプリケーションサーバーのリプラットフォーミング準備、PostgreSQLなどへのデータベースサーバーのリプラットフォーミング準備、(Docker/Kubernetesへの)コンテナ化準備、Amazon MQクラウドメッセージブローカーに対するメッセージブローカーの準備、CI/CD準備(ユニット/機能/性能テストケース、構築および継続的インテグレーション、利用可能な自動化)、マクロおよびマイクロAPI候補、API準備(アプリケーション内の既存および潜在的API)を提供する。
【0070】
本方法は、ソースアプリケーションの環境を評価し、その後、クラウドフレンドリーな設計パターンを使用してクラウドにそれらを変換することにより、エンドツーエンドの変換能力を提供し、最終的にあなたの利害関係者および意思決定者に迅速な意思決定のための透明な可視性を提供することにより、この行程全体を管理する。データベースからバッチプログラム、スケジューラからメッセージブローカーに至るまで、アプリケーションの依存をすべて全体的にクラウドに変換しよう。評価レポート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、IBM MQからAmazon MQ(一例)などの変更のための取り組みを特定する。
【0071】
評価レポート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などの変更のための取り組みを特定する。
【0072】
図4は、本主題の実施形態による、アプリケーション環境マイグレーション方法における例示的なメッセージブローカーマイグレーションの例示的な図400を示す。
【0073】
一実施形態では、本主題の実施形態による、ターゲットアプリケーション環境へのアプリケーション環境マイグレーションにおけるソースメッセージブローカーマイグレーションの方法およびシステムを用いて、事前および事後リプラットフォーミングを有するアプリケーション展開ビュー400が描かれる。モノリスアプリケーションは一般に、サーバー102によって常駐またはアクセス可能なソースアプリケーション環境に属しており、クラウド環境110によって常駐またはアクセス可能なターゲットアプリケーション環境に属するモダナイズされたリプラットフォームされたアプリケーションに変換または移行する。まず、ソースアプリケーションマイグレーションからターゲットアプリケーションマイグレーションまでについてコード評価206が行われる。アプリケーションの評価は、コンテナ化のためのコード阻害要因を除去し、変更するために、コード変更に必要な変更の量を決定する。マイグレーションは、以下のステップで実行され、サーバー102によってアクセス可能なようにアプリケーションを有するアプリケーションウェブサーバーは、場合により、ウェブフロントインスタンス422a、422b、...、422nに変換される。アプリケーションサーバー(IISクラスタ)202は、様々なAppマクロサービスインスタンス426a、426b、426c、...426nを有するAPI管理層426にさらにリファクタリングされる。マクロサービスインスタンスは、ソースアプリケーションのサイズおよび複雑性に基づく。一実施形態では、リファクタリングモジュール132は、マクロサービスのファクタリングおよびリパッケージング208をターゲットアプリケーション環境に実行する。
【0074】
ソースアプリケーションデータベース204はまた、PaaS/CaaSクラスタ424aを、ターゲットデータベース424のリプラットフォームされたきめの細かいデータベースコンポーネント424a、424b、424c、...、424nにリファクタリングされる。ウェブフロントインスタンス422a、422b、...、422nおよびマクロサービスインスタンス426a、426b、426c、...426nはさらに、クラウドコンピューティング環境110のサービスメッシュ、AKSクラスタ、Appサービス、ACIなどを含むがこれに限定されないコンポーネントにリンクされる。一実施態様では、ソースOracleデータベースは、クラウド環境110のコンテナ/オーケストレーションプラットフォームとともに、PostgresSQlデータベースに移行される。
【0075】
ソースアプリケーションの仮想マシンインスタンス408a、408b、...、408nは、クラウド環境110のコンテナクラスタに移行される。このように、オンプレミスエコシステム412を有するソースアプリケーション環境410のオンプレミスデータセンター410は、クラウド環境110のプライベート/パブリッククラウド428にリプラットフォーム210/移行される。一実施態様では、EBS、キャッシング、ローカルファイル、ルールエンジン、メッセージブローカー、認証プロトコル、セキュリティプラットフォームなどを含むがこれらに限定されないオンプレミスエコシステム412のコンポーネント412a、412b、412c、412d、412e...、412nは、Azureキュー、イベントハブ、サービスバス、AppInsights、Redisキャッシュ、ストレージ、Vnet、Azure ADなどを含むがこれらに限定されない、独立または標準サービス/ターゲットコンポーネント430a、430b、430c、430d、430e、430f、430g、・・・、430hプライベート/パブリッククラウド428にリプラットフォーム210/移行される。
【0076】
一実施態様では、方法は、コンテナまたはPaaSを使用してクラウド上で効率的に動作するように既存のオンプレミスアプリケーションを修正し、ソースコードと設計パターンに関連するすべてのブロッカー、および基礎となるすべてのライブラリを更新または変更して、それらをコンテナまたはPaaSと互換性を持たせ、アプリケーションサーバーとデータベースをリプラットフォームしてTCOを削減し、そしてモノリスアプリケーションは効率と速度を向上させるためにサービスに切り離され得る。
【0077】
一例では、表Cは、リプラットフォーミングマイグレーションを説明するための例として使用され得る。
【表C】
【0078】
一実施態様では、現状の状態は、JSPベースのUIからいくつかのデータサービスを有するセッションEJB呼び出しおよび商用アプリケーションサーバーを有するモノリスウェブアプリケーションまでであり、セッションの永続性およびステートフルサービスは現状の状態であり、移行された将来の状態は、APIゲートウェイを介したコンテナ上のJSF WebFrontおよびRESTful Spring Bootマクロサービス(独立したスケーリング)を有する分離されたウェブアプリケーションである。
【0079】
図5は、本主題の実施形態による、アプリケーション環境マイグレーション方法における例示的なメッセージブローカーマイグレーションの例示的な図500を示す。
【0080】
クラウドネイティブアプリケーションは、柔軟性、スケーラビリティ、および迅速な展開を含むクラウドコンピューティング固有の利点を活用するために、マイクロサービスアーキテクチャを使用して開発される。各サービスは、独自のデータベースを持つビジネスドメインを表すモジュラーまたは小さなコンポーネントである。この概念は、クラウドアプリケーション開発で一般的に採用されているドメイン駆動設計と呼ばれる。マイクロサービスが連携して動作するには、相互に通信する手段が必要である。メッセージブローカーは、この共有通信バックボーンを作成するためにそれらが使用するメカニズムの1つである。メッセージブローカーは、クラウド環境でこれらのコンポーネント間の通信を管理するためによく使用される。
【0081】
メッセージブローカーキューは、ソースメッセージブローカー412およびターゲットメッセージブローカー430などのメッセージブローカーに配信サービスを提供する。メッセージ配信は、接続サービス、メッセージのルーティングおよび配信、永続性、セキュリティ、ならびにログを処理する多数のサポートコンポーネントに依存する。メッセージサーバーは1つ以上のブローカーインスタンスを使用し得る。メッセージブローカーキューでのメッセージ配信は、クライアントから宛先にメッセージを生成することから始まり、次に宛先から1つ以上の消費クライアントにメッセージを送信し、ブローカー(または連携して動作するブローカーインスタンスのクラスタ)によって実行される。メッセージ配信を実行するには、ブローカーはクライアントとの通信チャネルを設定し、認証と認可を実行し、メッセージを適切にルーティングし、信頼性の高い配信を保証し、そしてシステムパフォーマンスを監視するためのデータを提供する必要がある。この複雑な一連の機能を実行するために、ブローカーはいくつかのさまざまな内部コンポーネントを使用し、それぞれが配信プロセスで特定の役割を果たす。メッセージブローカーコンポーネントは主要なメッセージルーティングと配信サービスを実行し、その他は重要なサポートサービスを提供する。
【0082】
一実施形態では、本主題の実施形態による、ターゲットアプリケーション環境へのアプリケーション環境マイグレーションにおけるソースメッセージブローカーマイグレーションの方法およびシステムを用いて、事前および事後リプラットフォーミングを有するアプリケーション展開ビュー500が描かれる。モノリスアプリケーションは一般に、サーバー102によって常駐またはアクセス可能なソースアプリケーション環境に属しており、クラウド環境110によって常駐またはアクセス可能なターゲットアプリケーション環境に属するモダナイズされたリプラットフォームされたアプリケーションに変換または移行する。
【0083】
一実施態様では、アプリケーション環境マイグレーションにおけるメッセージブローカーマイグレーションのための方法が開示される。アプリケーションサーバー102のプロセッサ122によって、ソースアプリケーション環境のソースメッセージブローカー412を評価することと、プロセッサ122によって、ソースアプリケーション環境のコンポーネント412a、412b、...、412n間の接続を特定するためにソースメッセージブローカー412をスキャンすることと、を含む方法。方法は、プロセッサ122によって、ソースメッセージブローカー412をターゲットメッセージブローカー430に移行するための変化の量を確認することと、プロセッサ122によって、評価統計302を予測することとをさらに含み、評価統計302は、ソースメッセージブローカー412の移行を完了するための少なくとも1つの機能的準備304およびタイムライン306を提供する。方法は、プロセッサ122によって、変換されたメッセージブローカー構造550a、...、550nを生成することであって、変換されたメッセージブローカー構造550a、...、550nは、接続を維持しながらターゲットメッセージブローカー430に従ってソースメッセージブローカー412を分割することによって生成されることと、プロセッサ122によって、予測された評価統計302および変換されたメッセージブローカー構造550a、...、550nに従って、ターゲットメッセージブローカー430のきめの細かいメッセージブローカーコンポーネント552a、...、552nを更新することと、をさらに含む。方法は、プロセッサ122によって、ソースメッセージブローカー412をターゲットメッセージブローカー430に移行することであって、移行することは、更新されたきめの細かいメッセージブローカーコンポーネント552a、...、552nをリプラットフォームすること、をさらに含む。
【0084】
まずクラウドリプラットフォーミングについて、方法は、メッセージブローカーを有するオンプレミスエコシステム412、またはキューおよび表などのコンポーネントを有するソースメッセージブローカー412にアクセスし、EBS、キャッシュ、ローカルファイル、ルールエンジン、メッセージブローカー、認証プロトコル、セキュリティプラットフォームなどを含むがこれらに限定されないオンプレミスエコシステム412のコンポーネント412a、412b、...、412nは、Azureキュー、イベントハブ、サービスバス、AppInsights、Redis Cache、ストレージ、Vnet、Azure AD、AWS SNS、Amazon MQ、Azure Service Bus、Azure Event Hubsなどを含むがこれらに限定されないターゲットコンポーネント430a、430b、430c、430d、...、430nを有するターゲットメッセージブローカー430にリプラットフォームされる。方法は、キュー、表、接続、ソースメッセージブローカー412のサイズおよび複雑さ、互換性、ならびにAmazon MQのようなクラウドフレンドリーターゲットメッセージブローカー430へのリプラットフォーミングに関連するリスクのようなメッセージブローカーおよびメッセージブローカーコンポーネントの完全なインベントリを取得し、モノリスをきめの細かいコンポーネントに分割するための評価を実施および実行する評価502を遂行する。この評価が完了すると、評価ステップ502は、技術ユーザーおよびビジネスユーザーが消費しやすい形式で、ドリルダウン機能を備えた対話型HTML評価レポート302を生成する。評価レポートは、ソースメッセージブローカー412のメッセージブローカーコンポーネント412a、412b、...、412nをターゲットメッセージブローカー430に移行するための変化の量を確認し、ソースメッセージブローカー412のメッセージブローカーコンポーネント412a、412b、...、412nの移行を完了するための機能準備パラメータ、阻害要因、およびタイムラインを提供する評価統計302を予測する。評価レポート302は、データベースアーキテクトおよびアプリケーションSMEが、他のパラメータのうち提供されたクラウドメッセージブローカーサービス準備をレビューすることで、新しいリプラットフォームされたデータベースおよび対応するアプリケーションの設計を考えるために使用される。
【0085】
メッセージブローカーリプラットフォーミング504を実行するための次のメッセージブローカー変換ステップで、方法は主に次の2つの機能を実行する。まず、接続を保持したまま、ターゲットメッセージブローカー430に従ってソースメッセージブローカー412を分割ことにより、変換されたメッセージブローカー構造550a、550b、...、550nを生成する。変換されたクラウドメッセージブローカー550は、キューメッセージ通信550aの作成およびトピックメッセージ通信550bの作成を含む。方法は、IBM MQ、Microsoft MQ、TIBCO EMS/Rendezvous、WebLogic /WebSphere Message Queue、Sonic Message Queueなどのようなソースメッセージブローカーから、Amazon Web Services (AWS) Amazon MQ、Azure Service Bus、Event Hub、MuleSoft Anypoint Platform、RabbitMQ、Apache ActiveMQ、Kafkaなどを含むがこれらに限定されないターゲットクラウドベースの人気のあるメッセージブローカーへ、すべてのメッセージブローカーコンポーネントを変換する。すべてのコンポーネントは、ターゲットメッセージブローカーで動作するように変換され、およびソースメッセージブローカーと同じ望ましい結果を達成する。メッセージブローカーコンポーネントが変換されると、メッセージブローカーはアプリケーションの設計に基づいてきめの細かいコンポーネントに分割される。方法は、ターゲットアプリケーション環境でのデータ破損および分散トランザクションの問題を回避するよう注意し、適切に機能するのに役立つ。第2に、予測された評価統計302および変換されたメッセージブローカー構造550a、...、550nに従って、ターゲットメッセージブローカー430のきめの細かいメッセージブローカーコンポーネント552a、552b、552c、...、552nを更新することによりリプラットフォーミングし、このステップでは、ターゲットメッセージブローカーコンポーネントは、クラウド552aでメッセージブローカーサービスを作成すること、必要なキューおよびトピック552bを作成すること、ならびにアプリケーション552cでサービスエンドポイントを構成することを含む。さらに、一例では、更新されたきめの細かいメッセージブローカーコンポーネント552a、...、552nを、AWS SNS 430a、Amazon MQ 430b、Azure Service Bus 430c、およびAzure Event Hubs 430dを有するターゲットメッセージブローカー430を含むクラウドエコシステム430にリプラットフォーミングすることによって、ソースメッセージブローカー412をターゲットメッセージブローカー430に移行する。
【0086】
もう一つの別の例では、例示的なメッセージブローカーマイグレーション方法は、分析を自動化し、どのオンプレミスメッセージブローカーが使用され、アプリケーションのコンポーネント内でそれがどのようなメッセージを渡しているかについての詳細を与えるレポートを生成する。さらに、それは、顧客が選択したクラウドメッセージブローカーを使用するようにアプリケーションコードを修正する。メッセージブローカーサービスの作成、キューおよびトピックの作成は、クラウド環境では手作業で行われる。例示的なメッセージブローカーマイグレーション方法は、まずアプリケーションのソースコードをスキャンし、アプリケーションのコンポーネント内でどのオンプレミスメッセージブローカーが使用され、それがどのようなメッセージを渡しているか、およびクラウドベースのメッセージブローカーへのリプラットフォーミングに関連する互換性とリスクも提供する。この評価が完了すると、模範的なメッセージブローカーマイグレーション方法は、技術ユーザーおよびビジネスユーザーが利用しやすい形式で、ドリルダウン機能を備えたインタラクティブなhtmlレポートを生成する。この評価レポートは、アーキテクトおよびアプリケーションSMEが、新しいリプラットフォームされたアプリケーションの設計を考えるために使用される。設計の準備が完了すると、メッセージブローカーリプラットフォーミングステップでメッセージブローカーリプラットフォーミングである次のステップに進むことができ、例示的なメッセージブローカーマイグレーション方法およびSMEは次のステップを実行し、すなわち、すべてのアプリケーションコンポーネントコードを顧客が選択したクラウドメッセージブローカーに変換し、SMEはメッセージブローカーサービス、キュー、およびトピックの作成アクティビティを手動でクラウド環境で実行でき、SMEはメッセージブローカーサービスを手動で作成でき、キューおよびトピックの作成アクティビティはクラウド環境で手動で実行され、SMEはクラウドベースのキューおよびトピックを使用するようにコードコンポーネントを手動で構成する。これらのステップが完了すると、自動的に変換されたコンポーネントおよび変換できなかったコンポーネントを示すレポートが生成される。amazeで変換できなかったコンポーネントは、われわれのコンサルタントが手動で変換する。異なるアプリケーションコンポーネント間のメッセージのやり取りとともに、システムで使用されている現在のメッセージブローカーとメッセージングモデルを理解する機能およびクラウドベースのメッセージングシステムを使用するためにソースコードを変換する機能を提供する。
【0087】
図6は、本主題の実施形態による、アプリケーション環境マイグレーションにおけるメッセージブローカーマイグレーションの方法の例示的なフローチャート600を示す。
【0088】
一実施態様では、アプリケーション環境マイグレーションにおけるメッセージブローカーマイグレーションのための方法600が示される。方法は、コンピュータ実行可能命令の一般的な文脈で説明され得る。一般に、コンピュータ実行可能命令は、特定の機能を実行するまたは特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造、手順、モジュール、機能などを含み得る。方法は、通信ネットワークを介してリンクされるリモート処理デバイスによって機能が実行される分散コンピューティング環境でも実施され得る。分散コンピューティング環境において、コンピュータ実行可能命令は、メモリ記憶デバイスを含むローカル及びリモートのコンピュータ記憶媒体の両方に配置され得る。方法が記載され、限定として解釈されることを意図しない順序は、記載された方法ブロックの任意の数を任意の順序で組み合わせて、方法または代替方法を実施し得る。さらに、個々のブロックは、本明細書に記載される開示の精神及び範囲から逸脱することなく、方法から削除され得る。さらに、方法は、任意の適切なハードウェア、ソフトウェア、ファームウェア、またはそれらの組み合わせで実施され得る。しかし、説明を容易にするために、以下に説明する実施形態では、本方法は、上述したシステムに実装され得る。
【0089】
ステップ/ブロック602において、アプリケーションサーバー102のプロセッサ122によって、ソースアプリケーション環境のソースメッセージブローカーを評価する。一実施態様では、ソースメッセージブローカーは、評価モジュール130によって評価され得る。
【0090】
ステップ/ブロック604において、ソースメッセージブローカーをスキャンして、ソースアプリケーション環境のコンポーネント間の接続を特定する。一実施態様では、ソースメッセージブローカーは、評価モジュール130によってスキャンされ得る。
【0091】
ステップ/ブロック606において、ソースメッセージブローカーをターゲットメッセージブローカーに移行させるための変化の量を確認する。一実施態様では、変化の量は、評価モジュール130によって確認され得る。
【0092】
ステップ/ブロック608において、ソースメッセージブローカーのマイグレーションを完了するための少なくとも1つの機能的準備とタイムラインとを提供する評価統計を予測する。一実施態様では、評価統計は、評価モジュール130によって予測され得る。
【0093】
したがって、方法600は、予測された評価統計およびソースアプリケーション環境からターゲットアプリケーション環境へのマイグレーションのためのタイムラインを提供することによって、アプリケーション環境マイグレーションにおけるメッセージブローカーマイグレーションを支援する。
【0094】
図7は、本主題の実施形態による、アプリケーション環境マイグレーションにおけるメッセージブローカーマイグレーションの方法の別の例示的なフローチャート700を示す。
【0095】
一実施態様では、アプリケーション環境マイグレーションにおけるメッセージブローカーマイグレーションのための方法700が示される。方法は、コンピュータ実行可能命令の一般的な文脈で説明され得る。一般に、コンピュータ実行可能命令は、特定の機能を実行するまたは特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造、手順、モジュール、機能などを含み得る。方法は、通信ネットワークを介してリンクされるリモート処理デバイスによって機能が実行される分散コンピューティング環境でも実施され得る。分散コンピューティング環境において、コンピュータ実行可能命令は、メモリ記憶デバイスを含むローカル及びリモートのコンピュータ記憶媒体の両方に配置され得る。方法が記載され、限定として解釈されることを意図しない順序は、記載された方法ブロックの任意の数を任意の順序で組み合わせて、方法または代替方法を実施し得る。さらに、個々のブロックは、本明細書に記載される開示の精神及び範囲から逸脱することなく、方法から削除され得る。さらに、方法は、任意の適切なハードウェア、ソフトウェア、ファームウェア、またはそれらの組み合わせで実施され得る。しかし、説明を容易にするために、以下に説明する実施形態では、本方法は、上述したシステムに実装され得る。
【0096】
ステップ/ブロック702において、アプリケーションサーバー102のプロセッサ122によって、ソースアプリケーション環境のソースメッセージブローカーを評価する。一実施態様では、ソースメッセージブローカーは、評価モジュール130によって評価され得る。
【0097】
ステップ/ブロック704において、ソースメッセージブローカーをスキャンして、ソースアプリケーション環境のコンポーネント間の接続を特定する。一実施態様では、ソースメッセージブローカーは、評価モジュール130によってスキャンされ得る。
【0098】
ステップ/ブロック706において、ソースメッセージブローカーをターゲットメッセージブローカーに移行させるための変化の量を確認する。一実施態様では、変化の量は、評価モジュール130によって確認され得る。
【0099】
ステップ/ブロック708において、ソースメッセージブローカーのマイグレーションを完了するための少なくとも1つの機能的準備とタイムラインとを提供する評価統計を予測する。一実施態様では、評価統計は、評価モジュール130によって予測され得る。
【0100】
ステップ/ブロック710において、接続を維持しながらターゲットメッセージブローカーに従ってソースメッセージブローカーを分割することによって、変換されたメッセージブローカー構造を生成する。一実施態様では、変換されたメッセージブローカー構造は、リファクタリングモジュール132によって生成され得る。
【0101】
ステップ/ブロック712において、予測された評価統計および変換されたメッセージブローカー構造に従って、ターゲットメッセージブローカーのきめの細かいメッセージブローカーコンポーネントを更新する。一実施態様では、ターゲットメッセージブローカーのきめの細かいメッセージブローカーコンポーネントは、リプラットフォームモジュール134によって更新され得る。
【0102】
ステップ/ブロック714では、更新されたきめの細かいメッセージブローカーコンポーネントをリプラットフォーミングすることによって、ソースメッセージブローカーをターゲットメッセージブローカーに移行する。一実施態様では、ソースメッセージブローカーは、リプラットフォームモジュール134によってターゲットメッセージブローカーに移行され得る。
【0103】
このように、方法700は、予測評価を提供し、コードをリファクタリングし、ソースアプリケーション環境からターゲットアプリケーション環境への移行のためにメッセージブローカーをリプラットフォーミングすることによって、アプリケーション環境マイグレーションにおけるメッセージブローカーマイグレーションを支援する。
【0104】
本ソリューションは、複雑なメッセージブローカーをクラウドにリプラットフォームし、生産環境にそれらを展開するために使用される。本主題の実施形態による、ターゲットアプリケーション環境へのアプリケーション環境マイグレーションにおけるソースメッセージブローカーマイグレーションの方法およびシステムを用いたいくつかの例が示される。以下では、準備、計画、および実行を、検討の結果とともに示す。一例として、先導する二次抵当会社のJAVAバッチアプリのクラウドリプラットフォーミングでは、ソースアプリケーション環境は、米国で事業を行う数十億ドルの企業であり、上場企業でもある不動産担保証券を提供する先導する二次抵当会社に所属する。主なビジネス課題は、Oracleデータベースの使用と並んで、メッセージ駆動型ビーンEJB (MDB) Pojo Services、JDBCなどを使用した、IBM MQメッセージブローカーを使用した、10年前にAutosysとWebLogic MQ上のEJBで開発された複雑なJAVAバッチアプリケーションである。このアプリケーションは、ビジネスクリティカルであり、重要な長時間稼働のプロセスを処理する。このアプリケーションを開発した主要なSMEが利用できないため、クラウドリプラットフォーミングに課題を抱えていた。本ソリューションアプローチを用いて、Oracleデータベースは、方法ステップを使用してPostgresにリプラットフォームされ、AutosysスケジューラはQuartzにリプラットフォームされ、バックエンドEJB(MDB)はRESTエンドポイントを備えたSpring Boot/Batch Service Appsを備えた独立したSpring JMSにリプラットフォームされた。メッセージブローカーは、Amazon MQへリプラットフォームされた。次いで、各サービスアプリは、AWS ECS VPC上の個別のコンテナ上に展開され、無限のスケーラビリティ、高可用性、高いフォールトトレランス、およびパフォーマンスの改善を提供する。Autosysの集中型JOB依存は、アプリ固有のクオーツスケジューラを使用して自己管理依存にリファクタリングされ、運用の複雑さが軽減された。主な利益の中で、主にWebLogic&Autosysの排除とコンテナ化にもより、TCOが50%以上削減され、マクロサービスとCI/CD自動化により開発の生産性が向上し、自動化を使用すると、実装の総コストが50%超削減され、実装は6週間で完了する(手動で実行した場合も同様に9か月かかる)。
【0105】
別の例では、我々を先導するコンサルティング会社の.NETウェブアプリケーションのクラウドリプラットフォーミングに本ソリューションが使用され、ソースアプリケーション環境は、世界150カ国の700超のオフィスに従業員がいる、コンテンツ管理会社で最大の専門サービスおよび会計監査機関の1つに所属する。主なビジネス課題は、Microsoft MQ、およびSQL Serverデータベースの使用と並行してASP .NET、C#、Telerik ORMを使用して何年もかけて開発されたcomplex .NETウェブアプリケーションである。このアプリケーションは、先導するプロフェッショナルサービスプロバイダーの主要なB2C機能を扱うビジネスクリティカルなものである。このアプリケーションを開発した主要なSMEが利用できないため、この作業はさらに複雑になった。現在のソリューションアプローチを使用して、ソースアプリケーションはウェブフロントエンドとサービスバックエンドに分割されることになる。Telerik ORMを使用したバックエンドのレガシー.NETサービスは、RESTエンドポイントを持つエンティティフレームワークで独立した.NET Coreサービスアプリにリプラットフォームされる。ウェブフロントと各サービスアプリは、Kestrel&NGINXでAzureクラウド上の個別のコンテナに配置され、無限のスケーラビリティ、高可用性、高いフォールトトレランスおよびパフォーマンスの改善を提供する。ウェブフロントおよびマクロサービスは、Redisキャッシュによりステートレス化された。メッセージブローカーは、RabbitMQヘリプラットフォームされた。サービスのREST APIエンドポイントはoAuth2によって保護される。ウェブフロントとすべてのマクロサービスに対して、自動化テスト+CI/CDが有効になった。上位の利益の間では、リプラットフォームは、主にIIS&Telerik ORMの廃止によりTCOが45%超削減されることをもたらし、実装の総コストが45%超削減され、マクロサービスとCI/CD自動化により開発の生産性が上がり、手作業の場合7ヶ月かかるのと比較して6週間で完了した。
【0106】
アプリケーション環境マイグレーションにおけるメッセージブローカーマイグレーションのためのシステムおよび方法の実施態様は、構造的な特徴および/または方法に特有の言語で記述されるが、添付の請求項は、必ずしも記述された特定の特徴または方法に限定されないことが理解されるものとする。むしろ、特定の機能および方法は、アプリケーション環境マイグレーションにおけるメッセージブローカーマイグレーションのための実施態様の例として開示される。
図1
図2
図3
図4
図5
図6
図7
【国際調査報告】