JP7316591B2 - モノリシックレガシーアプリケーションに基づくマイクロサービスのコンテナ化展開 - Google Patents
モノリシックレガシーアプリケーションに基づくマイクロサービスのコンテナ化展開 Download PDFInfo
- Publication number
- JP7316591B2 JP7316591B2 JP2021175401A JP2021175401A JP7316591B2 JP 7316591 B2 JP7316591 B2 JP 7316591B2 JP 2021175401 A JP2021175401 A JP 2021175401A JP 2021175401 A JP2021175401 A JP 2021175401A JP 7316591 B2 JP7316591 B2 JP 7316591B2
- Authority
- JP
- Japan
- Prior art keywords
- container
- legacy
- microservice
- images
- definition
- 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.)
- Active
Links
Description
i)アクティビティログアナライザは、複数のトランザクション定義ベクトルの少なくとも一部に対応する複数の動的トランザクション定義ベクトルを作成するように動作可能であり、マイクロサービス定義オプティマイザは、各動的トランザクション定義ベクトルを各対応するトランザクション定義ベクトルと比較し、複数のマイクロサービス定義ベクトルを作成する。
ii)アクティビティログアナライザは、レガシーコンピューティング環境においてモノリシックレガシーアプリケーションを実行することによって生成されるモノリシックレガシーアプリケーションのレガシーアクティビティログを使用する。
iii)アクティビティログアナライザは、エミュレータを使用し、モノリシックレガシーアプリケーションを実行し、ログファイルを生成し、トランザクションの実行中にモノリシックレガシーアプリケーションによって使用されるプログラムを決定する。
iv)ソースコードアナライザは、アクティビティログアナライザからの情報を使用し、トランザクション定義ベクトルを識別するように動作可能である。
v)ソースコードアナライザは、複数の変換テーブルを作成するようにさらに動作可能である。
vi)マイクロサービス定義オプティマイザは、マイクロサービス定義ベクトルをさらに最適化するように動作可能である。
vii)マイクロサービス定義オプティマイザは、複数のトランザクションにおける2つ以上のトランザクションによって共有されるプログラムを含む追加のマイクロサービス定義ベクトルを作成することによって、マイクロサービス定義ベクトルをさらに最適化するように動作可能である。
viii)レガシーコンピューティング環境において実行するようにコンパイルされたバイナリを含むコンパイル済みソースコードを記憶するように動作可能なバイナリリポジトリをさらに含む。
ix)バイナリリポジトリ内のコンパイル済みソースコードは、ソースコードリポジトリ内のソースコードからバイナリファイルにコンパイルされる。
x)レガシーコンピューティング環境は、多重仮想記憶(MVS)またはz/OSコンピュータシステムを含む。
xi)相補的コンポーネントリポジトリは、レガシーエミュレータによって使用されるオペレーティングシステムソフトウェアパッケージの複数のイメージを記憶するようにさらに動作可能であり、コンテナビルダも、レガシーエミュレータの特定の要素によって使用される任意のソフトウェアパッケージのイメージをレガシーエミュレータの特定の要素を含む特定のコンテナイメージに設置する。
xii)コンテナビルダは、マイクロサービスまたはマイクロサービスの組におけるバイナリ内の呼び出しのシグネチャをレガシーエミュレータにおいて動作可能な呼び出しのための命令と置換するようにさらに動作可能である。
xiii)コンテナ管理システムは、複数のコンテナを作成するように動作可能である。xiv)相補的イメージの組が、共通ポッド内の別個のコンテナの中でインスタンス化される。
xv)少なくとも1つのコンテナイメージの2つ以上のコピーが、2つ以上の別個のコンテナの中でアクティブにされる。
xvi)コンテナ管理システムは、複数のコンテナにおけるコンテナの数を変動させるように動作可能である。
xvii)コンテナ管理システムは、様々なリソースを別個のコンテナに分配するように動作可能である。
xviii)コンテナ管理システムは、アクティビティログアナライザからの情報を使用し、2つ以上の別個のコンテナの中に設置すべき少なくとも1つのコンテナイメージのコピーの数を決定すること、複数のコンテナにおけるコンテナの数を決定すること、および/または、別個のコンテナに分配すべきリソースを決定することを行うように動作可能である。
xix)コンテナ管理システムは、スケーラブルコンテナベースのシステムの使用からの情報を使用し、2つ以上の別個のコンテナの中に設置すべき少なくとも1つのコンテナイメージのコピーの数を決定すること、複数のコンテナにおけるコンテナの数を決定すること、および/または、別個のコンテナに分配すべきリソースを決定することを行うように動作可能である。
xx)ソースコードアナライザは、モノリシックレガシーアプリケーションのデータベースから1つ以上のサブデータベースまたはサブデータベースのクラスタを作成するようにさらに動作可能である。
xxi)コンテナビルダは、1つ以上のサブデータベースまたはサブデータベースのクラスタを1つ以上のコンテナの中に設置するように動作可能である。
xxii)ソースコードが変更されると、ソースコード変更に基づいて更新されたバイナリを含むために、コンテナベースのシステムは、少なくとも1つのマイクロサービスイメージ、少なくとも1つのコンテナイメージ、および少なくとも1つのコンテナを自動的に更新するように動作可能である。
i)アクティビティログアナライザを使用して、複数のトランザクション定義ベクトルの少なくとも一部に対応する複数の動的トランザクション定義ベクトルを作成することと、マイクロサービス定義オプティマイザを使用して、各動的トランザクション定義ベクトルを各対応するトランザクション定義ベクトルと比較し、複数のマイクロサービス定義ベクトルを作成することと、
ii)アクティビティログアナライザが、レガシーコンピューティング環境においてモノリシックレガシーアプリケーションを実行することによって生成されるモノリシックレガシーアプリケーションのレガシーアクティビティログを使用することと、
iii)アクティビティログアナライザが、エミュレータを使用し、モノリシックレガシーアプリケーションを実行し、ログファイルを生成し、トランザクションの実行中にモノリシックレガシーアプリケーションによって使用されるプログラムを決定することと、
iv)ソースコードアナライザが、アクティビティログアナライザからの情報を使用し、トランザクション定義ベクトルを識別することと、
v)ソースコードアナライザを使用して、複数の変換テーブルを作成することと、
vi)マイクロサービス定義オプティマイザを使用して、マイクロサービス定義ベクトルをさらに最適化することと、
vii)マイクロサービス定義オプティマイザを使用して、複数のトランザクションにおける2つ以上のトランザクションによって共有されるプログラムを含む追加のマイクロサービス定義ベクトルを作成することによって、マイクロサービス定義ベクトルをさらに最適化することと、
viii)レガシーコンピューティング環境において実行するようにコンパイルされたバイナリを含むコンパイル済みソースコードをバイナリリポジトリに記憶することと、
ix)バイナリリポジトリ内のソースコードをソースコードリポジトリ内のソースコードからバイナリファイルにコンパイルすることと、
x)レガシーコンピューティング環境が、多重仮想記憶(MVS)またはz/OSコンピュータシステムを含むことと、
xi)相補的コンポーネントリポジトリが、レガシーエミュレータによって使用されるオペレーティングシステムソフトウェアパッケージの複数のイメージを記憶することと、コンテナビルダも、レガシーエミュレータの特定の要素によって使用される任意のソフトウェアパッケージのイメージをレガシーエミュレータの特定の要素を含む特定のコンテナイメージに設置することと、
xii)コンテナビルダが、マイクロサービスまたはマイクロサービスの組におけるバイナリ内の呼び出しのシグネチャをレガシーエミュレータにおいて動作可能な呼び出しのための命令と置換することと、
xiii)コンテナ管理システムを使用して、複数のコンテナを作成することと、
ix)相補的イメージの組を共通ポッド内の別個のコンテナの中でインスタンス化することと、
x)少なくとも1つのコンテナイメージの2つ以上のコピーを2つ以上の別個のコンテナの中でアクティブにすることと、
xi)コンテナ管理システムが、複数のコンテナにおけるコンテナの数を変動させることと、
xii)コンテナ管理システムが、様々なリソースを別個のコンテナに分配することと、xiii)コンテナ管理システムが、アクティビティログアナライザからの情報を使用し、2つ以上の別個のコンテナの中に設置すべき少なくとも1つのコンテナイメージのコピーの数を決定すること、複数のコンテナにおけるコンテナの数を決定すること、および/または、別個のコンテナに分配すべきリソースを決定することを行うことと、
xiv)コンテナ管理システムが、スケーラブルコンテナベースのシステムの使用からの情報を使用し、2つ以上の別個のコンテナの中に設置すべき少なくとも1つのコンテナイメージのコピーの数を決定すること、複数のコンテナにおけるコンテナの数を決定すること、および/または、別個のコンテナに分配すべきリソースを決定することを行うことと、
xv)ソースコードアナライザが、モノリシックレガシーアプリケーションのデータベースから1つ以上のサブデータベースまたはサブデータベースのクラスタを作成することと、
xvi)コンテナビルダが、1つ以上のサブデータベースまたはサブデータベースのクラスタを1つ以上のコンテナの中に設置することと、
xvii)ソースコードが変更されると、ソースコード変更に基づいて更新されたバイナリを含むために、少なくとも1つのマイクロサービスイメージ、少なくとも1つのコンテナイメージ、および少なくとも1つのコンテナを自動的に更新することと
も含む方法を提供する。
例えば、本願は以下の項目を提供する。
(項目1)
非一過性媒体に記憶されたコンピュータ命令において実装されるスケーラブルコンテナベースのシステムであって、前記システムは、
モノリシックレガシーアプリケーションのソースコードを含むソースコードリポジトリであって、前記ソースコードリポジトリは、複数のトランザクションを実施するためのレガシーコンピューティング環境において実行可能な複数のプログラムを含む、ソースコードリポジトリと、
前記ソースコードを解析し、前記複数のトランザクションにおける各トランザクションのために、トランザクション定義ベクトルを識別し、複数のトランザクション定義ベクトルを作成するように動作可能であるソースコードアナライザであって、前記トランザクション定義ベクトルは、前記トランザクション中に潜在的に呼び出される各プログラムを識別する、ソースコードアナライザと、
前記複数のトランザクション定義ベクトルを記憶するように動作可能であるトランザクション状態定義リポジトリと、
動的定義リポジトリを作成するように動作可能であるアクティビティログアナライザであって、前記動的定義リポジトリは、前記複数のトランザクションの少なくとも一部において実施するときに前記モノリシックレガシーアプリケーションによって実際に使用されるプログラムを識別する、アクティビティログアナライザと、
前記複数のトランザクション定義ベクトルを前記動的定義リポジトリと比較し、使用されないプログラムを前記トランザクション定義ベクトルから除去し、複数のマイクロサービスを定義する複数のマイクロサービス定義ベクトルを作成するように動作可能であるマイクロサービス定義オプティマイザと、
前記複数のマイクロサービス定義ベクトルの各マイクロサービス定義ベクトルのために、前記マイクロサービス定義ベクトルによって識別された各プログラムのために、前記レガシーコンピューティング環境において実行するようにコンパイルされたコンパイル済みソースコードバイナリを見つけ、前記マイクロサービス定義ベクトルに対応する複数のマイクロサービスイメージを形成するように動作可能であるマイクロサービスイメージビルダと、
前記複数のマイクロサービスイメージを記憶するように動作可能であるマイクロサービスイメージリポジトリと、
レガシーエミュレータのエミュレータ要素のバイナリイメージの組を記憶するように動作可能である相補的コンポーネントリポジトリであって、前記バイナリイメージの組は、合わせて、完全なレガシーエミュレータより小さく、前記イメージは、前記レガシーコンピューティング環境の複数の機能または機能の組に対応し、前記イメージは、前記レガシー環境の命令セットと異なる命令セットによって特徴付けられる異なるコンピュータ環境において実行可能である、相補的コンポーネントリポジトリと、
コンテナビルダであって、前記コンテナビルダは、前記複数のマイクロサービスにおける各マイクロサービスまたはマイクロサービスの組のためのコンテナイメージを形成するように動作可能であり、複数のコンテナイメージを作成するために、前記コンテナビルダは、前記マイクロサービスイメージリポジトリからの前記対応するマイクロサービスイメージまたは複数のイメージを使用することと、前記レガシーエミュレータのエミュレータ要素のためのイメージファイルを前記相補的コンポーネントリポジトリから使用することとを行い、前記レガシーエミュレータの前記エミュレータ要素は、実行されるときに前記マイクロサービスまたはマイクロサービスの組によって採用される機能または機能の組に対応し、前記採用される機能または機能は、前記マイクロサービスまたはマイクロサービスの組における前記バイナリ内の呼び出しのシグネチャによって識別される、コンテナビルダと、
前記異なるコンピューティング環境において実行可能な前記複数のコンテナイメージを記憶するように動作可能であるコンテナイメージリポジトリと、
コンテナ管理システムと
を含み、
前記コンテナ管理システムは、前記異なるコンピューティング環境における実行のための少なくとも1つのコンテナを作成し、前記少なくとも1つのコンテナにおけるコンテナイメージリポジトリに記憶された少なくとも1つのマイクロサービスを実行するように動作可能である、システム。
(項目2)
前記アクティビティログアナライザは、前記複数のトランザクション定義ベクトルの少なくとも一部に対応する複数の動的トランザクション定義ベクトルを作成するように動作可能であり、前記マイクロサービス定義オプティマイザは、各動的トランザクション定義ベクトルを各対応するトランザクション定義ベクトルと比較し、前記複数のマイクロサービス定義ベクトルを作成する、項目1に記載のスケーラブルコンテナベースのシステム。
(項目3)
前記アクティビティログアナライザは、前記レガシーコンピューティング環境において前記モノリシックレガシーアプリケーションを実行することによって生成される前記モノリシックレガシーアプリケーションのレガシーアクティビティログを使用する、項目1または項目2に記載のスケーラブルコンテナベースのシステム。
(項目4)
前記アクティビティログアナライザは、エミュレータを使用し、前記モノリシックレガシーアプリケーションを実行し、ログファイルを生成し、トランザクションの実行中に前記モノリシックレガシーアプリケーションによって使用されるプログラムを決定する、項目1-3のいずれか1項に記載のスケーラブルコンテナベースのシステム。
(項目5)
前記ソースコードアナライザは、前記アクティビティログアナライザからの情報を使用し、前記トランザクション定義ベクトルを識別するように動作可能である、項目1-4のいずれか1項に記載のスケーラブルコンテナベースのシステム。
(項目6)
前記ソースコードアナライザは、複数の変換テーブルを作成するようにさらに動作可能である、項目1-5のいずれか1項に記載のスケーラブルコンテナベースのシステム。
(項目7)
前記マイクロサービス定義オプティマイザは、前記マイクロサービス定義ベクトルをさらに最適化するように動作可能である、項目1-6のいずれか1項に記載のスケーラブルコンテナベースのシステム。
(項目8)
前記マイクロサービス定義オプティマイザは、前記複数のトランザクションにおける2つ以上のトランザクションによって共有されるプログラムを含む追加のマイクロサービス定義ベクトルを作成することによって、前記マイクロサービス定義ベクトルをさらに最適化するように動作可能である、項目7に記載のスケーラブルコンテナベースのシステム。
(項目9)
前記レガシーコンピューティング環境において実行するようにコンパイルされたバイナリを含む前記コンパイル済みソースコードを記憶するように動作可能なバイナリリポジトリをさらに含む、項目1-8のいずれか1項に記載のスケーラブルコンテナベースのシステム。
(項目10)
前記バイナリリポジトリ内の前記コンパイル済みソースコードは、前記ソースコードリポジトリ内の前記ソースコードからバイナリファイルにコンパイルされる、項目9に記載のスケーラブルコンテナベースのシステム。
(項目11)
前記レガシーコンピューティング環境は、多重仮想記憶(MVS)またはz/OSコンピュータシステムを含む、項目1-10のいずれか1項に記載のスケーラブルコンテナベースのシステム。
(項目12)
前記相補的コンポーネントリポジトリは、前記レガシーエミュレータによって使用されるオペレーティングシステムソフトウェアパッケージの複数のイメージを記憶するようにさらに動作可能であり、前記コンテナビルダも、前記レガシーエミュレータの特定の要素によって使用される任意のソフトウェアパッケージのイメージを前記レガシーエミュレータの前記特定の要素を含む特定のコンテナイメージに設置する、項目1-11のいずれか1項に記載のスケーラブルコンテナベースのシステム。
(項目13)
前記コンテナビルダは、前記マイクロサービスまたはマイクロサービスの組における前記バイナリ内の前記呼び出しのシグネチャを前記レガシーエミュレータにおいて動作可能な呼び出しのための命令と置換するようにさらに動作可能である、項目1-12のいずれか1項に記載のスケーラブルコンテナベースのシステム。
(項目14)
前記コンテナ管理システムは、複数のコンテナを作成するように動作可能である、項目1-13のいずれか1項に記載のスケーラブルコンテナベースのシステム。
(項目15)
相補的イメージの組が、共通ポッド内の別個のコンテナの中でインスタンス化される、項目14に記載のスケーラブルコンテナベースのシステム。
(項目16)
少なくとも1つのコンテナイメージの2つ以上のコピーが、2つ以上の別個のコンテナの中でアクティブにされる、項目14および15のいずれかに記載のスケーラブルコンテナベースのシステム。
(項目17)
前記コンテナ管理システムは、前記複数のコンテナにおけるコンテナの数を変動させるように動作可能である、項目14-16のいずれか1項に記載のスケーラブルコンテナベースのシステム。
(項目18)
前記コンテナ管理システムは、様々なリソースを別個のコンテナに分配するように動作可能である、項目14-17のいずれか1項に記載のスケーラブルコンテナベースのシステム。
(項目19)
前記コンテナ管理システムは、前記アクティビティログアナライザからの情報を使用し、2つ以上の別個のコンテナの中に設置すべき少なくとも1つのコンテナイメージのコピーの数を決定すること、前記複数のコンテナにおけるコンテナの数を決定すること、および/または、別個のコンテナに分配すべきリソースを決定することを行うように動作可能である、項目14-18のいずれかに記載のスケーラブルコンテナベースのシステム。
(項目20)
前記コンテナ管理システムは、前記スケーラブルコンテナベースのシステムの使用からの情報を使用し、2つ以上の別個のコンテナの中に設置すべき少なくとも1つのコンテナイメージのコピーの数を決定すること、前記複数のコンテナにおけるコンテナの数を決定すること、および/または、別個のコンテナに分配すべきリソースを決定することを行うように動作可能である、項目14-19のいずれかに記載のスケーラブルコンテナベースのシステム。
(項目21)
前記ソースコードアナライザは、前記モノリシックレガシーアプリケーションのデータベースから1つ以上のサブデータベースまたはサブデータベースのクラスタを作成するようにさらに動作可能である、項目1-20のいずれか1項に記載のスケーラブルコンテナベースのシステム。
(項目22)
前記コンテナビルダは、前記1つ以上のサブデータベースまたはサブデータベースのクラスタを1つ以上のコンテナの中に設置するように動作可能である、項目1-21のいずれか1項に記載のスケーラブルコンテナベースのシステム。
(項目23)
前記ソースコードが変更されると、前記ソースコード変更に基づいて更新されたバイナリを含むために、前記コンテナベースのシステムは、少なくとも1つのマイクロサービスイメージ、少なくとも1つのコンテナイメージ、および少なくとも1つのコンテナを自動的に更新するように動作可能である、項目1-22のいずれか1項に記載のスケーラブルコンテナベースのシステム。
(項目24)
スケーラブルコンテナベースのシステムを作成し、動作させる方法であって、前記方法は、
レガシーコンピューティング環境において実行可能なモノリシックレガシーアプリケーションを解析し、そのプログラムファイルを区分し、前記モノリシックレガシーアプリケーションによって実施可能な複数のトランザクションに対応する複数のトランザクション定義ベクトルを作成し、各トランザクションのために、そのトランザクションによって呼び出される全てのプログラムを識別することと、
トランザクション状態リポジトリに前記複数のトランザクション定義ベクトルを記憶することと、
前記複数のトランザクションの少なくとも一部のために、前記トランザクションが前記モノリシックレガシーアプリケーションによって実施されるときに実際に使用されるプログラムを決定することによって、動的定義リポジトリを作成することと、
前記複数のトランザクション定義ベクトルを前記動的定義リポジトリと比較し、その対応するトランザクション定義ベクトルからトランザクションにおいて使用されないプログラムを除去し、複数のマイクロサービス定義ベクトルを作成することと、
前記複数のマイクロサービスベクトルの各マイクロサービス定義ベクトルのために、前記レガシーコンピューティング環境において実行するようにコンパイルされたバイナリを含む対応するコンパイル済みソースコードを見つけ、前記対応するコンパイル済みソースコードを含むマイクロサービスイメージを作成し、複数のマイクロサービスイメージを形成することと、
マイクロサービスイメージリポジトリに前記複数のマイクロサービスイメージを記憶することと、
相補的コンポーネントリポジトリにおいて、前記レガシーコンピューティング環境と異なるコンピューティング環境においてプログラムを実行するように動作可能なレガシーエミュレータの複数の要素のイメージを記憶することであって、前記レガシーエミュレータの前記要素は、前記モノリシックレガシーアプリケーションの複数の機能または機能の組に対応する、ことと、
前記複数のマイクロサービスにおける各マイクロサービスまたはマイクロサービスの組のためのコンテナイメージを形成することであって、複数のコンテナイメージを作成するために、前記マイクロサービスイメージリポジトリからの前記対応するマイクロサービスイメージまたは複数のイメージを使用することと、前記レガシーエミュレータの要素のためのイメージファイルを前記相補的コンポーネントリポジトリから使用することとを行い、前記レガシーエミュレータの前記要素は、実行されるときに前記マイクロサービスまたはマイクロサービスの組によって採用される機能または機能の組に対応し、前記採用される機能または機能の組は、前記マイクロサービスまたはマイクロサービスの組における前記バイナリ内の呼び出しのシグネチャによって識別される、ことと、
コンテナイメージリポジトリに前記コンテナイメージを記憶することと、
コンテナ管理システムを使用して、前記異なるコンピューティング環境内に少なくとも1つのコンテナを作成し、前記異なるコンピューティング環境において実行可能な形態で前記コンテナの中に少なくとも1つのコンテナイメージを記憶することと、
前記コンテナにおける前記マイクロサービスまたはマイクロサービスの組を実行することと
を含む、方法。
(項目25)
前記アクティビティログアナライザを使用して、前記複数のトランザクション定義ベクトルの少なくとも一部に対応する複数の動的トランザクション定義ベクトルを作成することと、
前記マイクロサービス定義オプティマイザを使用して、各動的トランザクション定義ベクトルを各対応するトランザクション定義ベクトルと比較し、前記複数のマイクロサービス定義ベクトルを作成することと
を含む、項目24に記載の方法。
(項目26)
前記アクティビティログアナライザが、前記レガシーコンピューティング環境において前記モノリシックレガシーアプリケーションを実行することによって生成される前記モノリシックレガシーアプリケーションのレガシーアクティビティログを使用することを含む、項目24または項目25に記載の方法。
(項目27)
前記アクティビティログアナライザが、エミュレータを使用し、前記モノリシックレガシーアプリケーションを実行し、ログファイルを生成し、トランザクションの実行中に前記モノリシックレガシーアプリケーションによって使用されるプログラムを決定することを含む、項目24-26のいずれか1項に記載の方法。
(項目28)
前記ソースコードアナライザが、前記アクティビティログアナライザからの情報を使用し、前記トランザクション定義ベクトルを識別することを含む、項目24-27のいずれか1項に記載の方法。
(項目29)
前記ソースコードアナライザを使用して、複数の変換テーブルを作成することを含む、項目24-28のいずれか1項に記載の方法。
(項目30)
前記マイクロサービス定義オプティマイザを使用して、前記マイクロサービス定義ベクトルをさらに最適化することを含む、項目24-29のいずれか1項に記載の方法。
(項目31)
前記マイクロサービス定義オプティマイザを使用して、前記複数のトランザクションにおける2つ以上のトランザクションによって共有されるプログラムを含む追加のマイクロサービス定義ベクトルを作成することによって、前記マイクロサービス定義ベクトルをさらに最適化することを含む、項目30に記載の方法。
(項目32)
前記レガシーコンピューティング環境において実行するようにコンパイルされたバイナリを含む前記コンパイル済みソースコードをバイナリリポジトリに記憶することをさらに含む、項目24-31のいずれか1項に記載の方法。
(項目33)
前記バイナリリポジトリにおける前記ソースコードを前記ソースコードリポジトリにおける前記ソースコードからバイナリファイルにコンパイルすることを含む、項目32に記載の方法。
(項目34)
前記レガシーコンピューティング環境は、多重仮想記憶(MVS)またはz/OSコンピュータシステムを含む、項目24-33のいずれか1項に記載の方法。
(項目35)
前記相補的コンポーネントリポジトリが、前記レガシーエミュレータによって使用されるオペレーティングシステムソフトウェアパッケージの複数のイメージを記憶することと、前記コンテナビルダも、前記レガシーエミュレータの特定の要素によって使用される任意のソフトウェアパッケージのイメージを前記レガシーエミュレータの前記特定の要素を含む特定のコンテナイメージに設置することとを含む、項目24-34のいずれか1項に記載の方法。
(項目36)
前記コンテナビルダが、前記マイクロサービスまたはマイクロサービスの組における前記バイナリ内の前記呼び出しのシグネチャを前記レガシーエミュレータにおいて動作可能な呼び出しのための命令と置換することを含む、項目24-35のいずれか1項に記載の方法。
(項目37)
前記コンテナ管理システムを使用して、複数のコンテナを作成することを含む、項目24-36のいずれか1項に記載の方法。
(項目38)
相補的イメージの組を共通ポッド内の別個のコンテナの中でインスタンス化することを含む、項目37に記載の方法。
(項目39)
少なくとも1つのコンテナイメージの2つ以上のコピーを2つ以上の別個のコンテナの中でアクティブにすることを含む、項目37および38のいずれかに記載の方法。
(項目40)
前記コンテナ管理システムが、前記複数のコンテナにおけるコンテナの数を変動させることを含む、項目37-39のいずれか1項に記載の方法。
(項目41)
前記コンテナ管理システムが、様々なリソースを別個のコンテナに分配することを含む、項目37-40のいずれか1項に記載の方法。
(項目42)
前記コンテナ管理システムが、前記アクティビティログアナライザからの情報を使用し、2つ以上の別個のコンテナの中に設置すべき少なくとも1つのコンテナイメージのコピーの数を決定すること、前記複数のコンテナにおけるコンテナの数を決定すること、および/または、別個のコンテナに分配すべきリソースを決定することを行うことを含む、項目37-41のいずれかに記載の方法。
(項目43)
前記コンテナ管理システムが、前記スケーラブルコンテナベースのシステムの使用からの情報を使用し、2つ以上の別個のコンテナの中に設置すべき少なくとも1つのコンテナイメージのコピーの数を決定すること、前記複数のコンテナにおけるコンテナの数を決定すること、および/または、別個のコンテナに分配すべきリソースを決定することを行うことを含む、項目37-42のいずれかに記載の方法。
(項目44)
前記ソースコードアナライザが、前記モノリシックレガシーアプリケーションのデータベースから1つ以上のサブデータベースまたはサブデータベースのクラスタを作成することを含む、項目24-43のいずれか1項に記載の方法。
(項目45)
前記コンテナビルダが、前記1つ以上のサブデータベースまたはサブデータベースのクラスタを1つ以上のコンテナの中に設置することを含む、項目24-44のいずれか1項に記載の方法。
(項目46)
前記ソースコードが変更されると、前記ソースコード変更に基づいて更新されたバイナリを含むために、少なくとも1つのマイクロサービスイメージ、少なくとも1つのコンテナイメージ、および少なくとも1つのコンテナを自動的に更新することを含む、項目24-45のいずれか1項に記載の方法。
MAPを行うが、インターフェースが異なるとき、他の同等のAPIを行う)プログラムによって呼び出される最初のプログラムを指す。トランザクションを識別する、またはそれらのサービスに寄与する他のファイルもしくはフォーマットも、使用され得、例えば、追加のビルドファイルは、メッセージ待ち行列およびデータソース等のトランザクションによって使用されるリソースのための定義ファイルを含み得る。
CWA、CICS TCTUA等)が、検出され、分散共有キャッシュに設置され、種々のマイクロサービスにわたって共有されるとき、特定のリソースコンテナ上の同じ遠隔アクセス機能によって遠隔でアクセスされることができる。
ランザクションにおいて実際に使用されるプログラムを決定するために、レガシーアクティビティログおよびエミュレータの両方を使用し得る。結果に基づいて、動的定義リポジトリが、作成される。動的定義リポジトリは、複数のトランザクションにおける各トランザクションのために使用されるプログラムのログを含む。いくつかの実施形態では、このログは、複数の動的定義ベクトルを含み得る。動的定義リポジトリは、トランザクション状態定義リポジトリに関して定義され得るか、または、それは、独立して作成され得る。
Claims (32)
- スケーラブルコンテナベースのシステムであって、前記システムは、
複数のトランザクション定義ベクトルを記憶するように動作可能であるトランザクション状態定義リポジトリであって、前記複数のトランザクション定義ベクトルは、レガシーコンピューティング環境において実行可能であるレガシーアプリケーションによって複数のトランザクションの実行中に潜在的に呼び出されるプログラムを識別する、トランザクション状態定義リポジトリと、
複数の動的定義ベクトルを記憶するように動作可能である動的定義リポジトリであって、前記複数の動的定義ベクトルは、前記複数のトランザクションの少なくともサブセットの実行中に前記レガシーアプリケーションによって呼び出されるプログラムを識別する、動的定義リポジトリと、
前記複数のトランザクション定義ベクトルと前記複数の動的定義ベクトルとを比較し、使用されないプログラムを前記複数のトランザクション定義ベクトルから除去することにより、複数のマイクロサービスを定義する複数のマイクロサービス定義ベクトルを作成し、前記複数のトランザクションにおける2つ以上のトランザクションによって共有されるプログラムを含む付加的なマイクロサービス定義ベクトルを作成することによって、前記複数のマイクロサービス定義ベクトルを最適化するように動作可能であるマイクロサービス定義オプティマイザと、
前記複数のマイクロサービス定義ベクトルによって識別された各プログラムに対して、前記レガシーコンピューティング環境において実行するようにコンパイルされたバイナリを見つけ、前記複数のマイクロサービス定義ベクトルに対応する複数のマイクロサービスイメージを形成するように動作可能であるマイクロサービスイメージビルダと、
複数のコンテナイメージを形成するように動作可能であるコンテナビルダであって、前記複数のコンテナイメージは、前記複数のマイクロサービスイメージのうちの1つ以上のマイクロサービスイメージ、および、異なるコンピューティング環境における実行のためのレガシーエミュレータのコンポーネントに対応する1つ以上のイメージを含み、前記コンテナビルダは、前記複数のマイクロサービスイメージのバイナリ内の呼び出しのシグネチャを使用して前記複数のマイクロサービスによって要求される機能に対応する前記エミュレータのコンポーネントを識別することにより、複数のコンテナイメージを作成する、コンテナビルダと、
前記複数のコンテナイメージの実行のための少なくとも1つのコンテナを作成し、前記少なくとも1つのコンテナ内で少なくとも1つのマイクロサービスを実行するように動作可能であるコンテナ管理システムと
を含む、スケーラブルコンテナベースのシステム。 - 前記スケーラブルコンテナベースのシステムは、前記複数のトランザクション定義ベクトルの少なくとも一部に対応する前記複数の動的定義ベクトルを作成するように動作可能であるアクティビティログアナライザをさらに含み、前記マイクロサービス定義オプティマイザは、各動的定義ベクトルと各対応するトランザクション定義ベクトルとを比較することにより、前記複数のマイクロサービス定義ベクトルを作成する、請求項1に記載のスケーラブルコンテナベースのシステム。
- 前記複数の動的定義ベクトルを作成することは、前記アクティビティログアナライザが、前記レガシーコンピューティング環境において前記レガシーアプリケーションを実行することによって生成される前記レガシーアプリケーションのレガシーアクティビティログを分析することを含む、請求項2に記載のスケーラブルコンテナベースのシステム。
- 前記複数の動的定義ベクトルを作成することは、前記アクティビティログアナライザが、前記レガシーアプリケーションを実行するエミュレータによって生成されるレガシーアクティビティログファイルを分析し、かつ、前記複数のトランザクションの実行中にどのプログラムが前記レガシーアプリケーションによって使用されるかを決定することを含む、請求項2に記載のスケーラブルコンテナベースのシステム。
- 前記スケーラブルコンテナベースのシステムは、前記アクティビティログアナライザからの情報を使用して前記複数のトランザクション定義ベクトルを生成するように動作可能であるソースコードアナライザをさらに含む、請求項2に記載のスケーラブルコンテナベースのシステム。
- 前記ソースコードアナライザは、前記アクティビティログアナライザからの情報を使用して複数の双方向性データエンコーディング変換テーブルを作成するようにさらに動作可能であり、前記複数の変換テーブルは、前記トランザクション状態定義リポジトリ内に記憶される、請求項5に記載のスケーラブルコンテナベースのシステム。
- 前記マイクロサービス定義オプティマイザは、前記複数のトランザクションにおける2つ以上のトランザクションによって共有されるプログラムを含む付加的なマイクロサービス定義ベクトルを作成することによって、前記複数のマイクロサービス定義ベクトルをさらに最適化するように動作可能である、請求項1に記載のスケーラブルコンテナベースのシステム。
- 前記スケーラブルコンテナベースのシステムは、前記レガシーコンピューティング環境において実行するようにコンパイルされたバイナリを記憶するように動作可能であるバイナリリポジトリをさらに含む、請求項1に記載のスケーラブルコンテナベースのシステム。
- 前記バイナリリポジトリ内のコードは、ソースコードリポジトリ内のソースコードからコンパイルされる、請求項8に記載のスケーラブルコンテナベースのシステム。
- 前記レガシーコンピューティング環境は、多重仮想記憶(MVS)またはz/OSコンピュータシステムを含む、請求項1に記載のスケーラブルコンテナベースのシステム。
- 前記レガシーエミュレータの前記コンポーネント、および、前記エミュレータによって使用されるオペレーティングシステムソフトウェアパッケージのイメージは、相補的コンポーネントリポジトリ内に記憶され、前記コンテナビルダは、前記複数のコンテナイメージ内に前記パッケージのイメージを挿入する、請求項1に記載のスケーラブルコンテナベースのシステム。
- 前記コンテナビルダは、前記複数のマイクロサービスイメージの前記バイナリ内の呼び出しの前記シグネチャを、前記レガシーエミュレータ内で動作可能である呼び出しのための命令に置換するようにさらに動作可能である、請求項1に記載のスケーラブルコンテナベースのシステム。
- 前記コンテナ管理システムは、複数のコンテナを作成するように動作可能である、請求項1に記載のスケーラブルコンテナベースのシステム。
- 相補的イメージの組が、共通ポッド内の別個のコンテナの中でインスタンス化され、前記相補的イメージは、前記レガシーエミュレータによって使用されるオペレーティングシステムソフトウェアパッケージのイメージである、請求項1に記載のスケーラブルコンテナベースのシステム。
- 少なくとも1つのコンテナイメージの2つ以上のコピーが、2つ以上の別個のコンテナの中でアクティブにされる、請求項13に記載のスケーラブルコンテナベースのシステム。
- 前記コンテナ管理システムは、前記少なくとも1つのコンテナイメージを実行しているコンテナの数を変動させるように動作可能である、請求項15に記載のスケーラブルコンテナベースのシステム。
- 前記コンテナ管理システムは、複数のコンテナを作成するように動作可能であり、前記コンテナ管理システムは、複数のリソースを別個のコンテナに決定および分配するように動作可能であり、前記複数のリソースは、前記アクティビティログアナライザからの情報およびリソース使用に基づく、請求項2に記載のスケーラブルコンテナベースのシステム。
- 前記コンテナ管理システムは、前記アクティビティログアナライザからのリソース消費量情報を使用して、前記少なくとも1つのコンテナのそれぞれに分配するように複数のリソースを決定するように動作可能である、請求項2に記載のスケーラブルコンテナベースのシステム。
- 前記ソースコードリポジトリ内のソースコードが変更されると、前記ソースコードの変更に基づいて更新されたバイナリを含むように、前記コンテナベースのシステムは、少なくとも1つのマイクロサービスイメージおよび少なくとも1つのコンテナイメージおよび少なくとも1つのコンテナを自動的に更新するように動作可能である、請求項9に記載のスケーラブルコンテナベースのシステム。
- スケーラブルコンテナベースのシステムを作成し、動作させる方法であって、前記方法は、
レガシーコンピューティング環境において実行するようにコンパイルされたレガシーアプリケーションによって実行される複数の対応するトランザクションの性能に関連付けられたプログラムファイルのバイナリを識別する複数のトランザクション定義ベクトルを生成することであって、前記生成することは、静的アナライザを使用することにより、前記複数の対応するトランザクションの性能に関連付けられたバイナリプログラムファイルのソースコードからデータタイプおよびメッセージフォーマットを抽出し、コンテナ管理システムによって使用されるメッセージインターフェースを生成することを含む、ことと、
複数のトランザクション定義ベクトルをリポジトリ内に記憶することと、
マイクロサービスイメージビルダが、前記複数のトランザクションに対応する複数のマイクロサービスイメージを生成することであって、前記複数のマイクロサービスイメージを生成することは、前記複数のトランザクションを実行することにおいて実際に使用されていないプログラムを排除することと、前記複数のトランザクションを実行するときに使用される残りのプログラムのバイナリを含むマイクロサービスイメージをマイクロサービスイメージリポジトリ内に記憶することとを含み、前記排除することは、前記複数のトランザクション定義ベクトル内の識別された前記バイナリと、前記複数のトランザクションを実行するときに実際に使用されている前記バイナリを示すアクティビティログデータとを比較することを含む、ことと、
レガシーエミュレータの機能コンポーネントの一組のイメージを相補的コンポーネントリポジトリ内に記憶することであって、前記レガシーエミュレータの前記機能コンポーネントは、前記レガシーアプリケーションの機能に対応し、前記レガシーエミュレータは、前記レガシーコンピューティング環境とは異なるコンピューティング環境における実行の場合、前記異なるコンピューティング環境における前記レガシーコンピューティング環境における実行のためにコンパイルされたアプリケーションの実行を可能にする、ことと、
コンテナ化環境におけるマイクロサービスとして前記複数のトランザクションを実行するための複数のコンテナイメージを構築することであって、前記複数のコンテナイメージを構築することは、コンテナビルダによって前記複数のトランザクションに対応する複数のマイクロサービスイメージにアクセスすることと、前記複数のマイクロサービスイメージ内に存在する呼び出しのシグネチャを使用して前記複数のトランザクションの実行のために要求される前記レガシーエミュレータの前記機能コンポーネントを識別することと、前記マイクロサービスおよび前記レガシーエミュレータの前記機能コンポーネントを含むマイクロサービスイメージをコンテナイメージリポジトリ内に記憶することとを含む、ことと、
コンテナ管理システムを使用して、前記異なるコンピューティング環境において少なくとも1つのコンテナを作成し、前記複数のコンテナイメージの少なくとも1つを前記コンテナ内に記憶することと、
前記コンテナ内の前記複数のコンテナイメージのうちの前記少なくとも1つによって、トランザクションを実行することと
を含む、方法。 - 前記アクティビティログデータは、前記レガシーコンピューティング環境において実行する前記レガシーアプリケーションのログを使用してアクティビティログアナライザによって生成される、請求項20に記載の方法。
- 前記アクティビティログデータは、エミュレーションにおいて実行する前記レガシーアプリケーションのログを使用してアクティビティログアナライザによって生成される、請求項20に記載の方法。
- 前記方法は、WSDLメッセージインターフェースを生成することと、前記WSDLメッセージインターフェースを前記コンテナ管理システムに提供することとをさらに含む、請求項20に記載の方法。
- 前記方法は、
前記レガシーエミュレータによって使用されるオペレーティングシステムソフトウェアパッケージのイメージを前記相補的コンポーネントリポジトリ内に記憶することと、
前記レガシーエミュレータの前記機能コンポーネントによって使用されるソフトウェアパッケージのイメージを前記複数のコンテナイメージ内に挿入することと
を含む、請求項20に記載の方法。 - 前記方法は、複数のコンテナを前記コンテナ管理システムによって作成することをさらに含む、請求項20に記載の方法。
- 前記方法は、相補的イメージの組を共通ポッド内の別個のコンテナの中でインスタンス化することを含み、前記相補的イメージは、前記レガシーエミュレータによって使用されるオペレーティングシステムソフトウェアパッケージのイメージである、請求項25に記載の方法。
- 前記複数のコンテナのうちの1つは、レガシーデータベースアプリケーションを含む、請求項25に記載の方法。
- レガシートランザクションを実行するための同一のコンテナイメージが、前記コンテナ管理システムによって複数のコンテナ内に挿入される、請求項25に記載の方法。
- コンテナイメージの第1のバージョンが、前記コンテナ管理システムによってコンテナ内に挿入され、更新されたコンテナイメージが、前記コンテナ管理システムによって別のコンテナ内に挿入される、請求項25に記載の方法。
- 前記方法は、前記シグネチャのうちの少なくとも1つを、前記レガシーエミュレータのネイティブAPIへの呼び出しに置換することを含む、請求項20に記載の方法。
- 前記コンテナイメージリポジトリは、前記コンテナ管理システムのリポジトリである、請求項20に記載の方法。
- 前記レガシーエミュレータの個々のシステムコンポーネントは、分離されたイメージとして前記相補的コンポーネントリポジトリ内に個々に記憶される、請求項20に記載の方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021175401A JP7316591B2 (ja) | 2017-04-28 | 2021-10-27 | モノリシックレガシーアプリケーションに基づくマイクロサービスのコンテナ化展開 |
JP2023088533A JP2023109980A (ja) | 2017-04-28 | 2023-05-30 | モノリシックレガシーアプリケーションに基づくマイクロサービスのコンテナ化展開 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019558444A JP7057571B2 (ja) | 2017-04-28 | 2017-04-28 | モノリシックレガシーアプリケーションに基づくマイクロサービスのコンテナ化展開 |
PCT/IB2017/052504 WO2018197928A1 (en) | 2017-04-28 | 2017-04-28 | Containerized deployment of microservices based on monolithic legacy applications |
JP2021175401A JP7316591B2 (ja) | 2017-04-28 | 2021-10-27 | モノリシックレガシーアプリケーションに基づくマイクロサービスのコンテナ化展開 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019558444A Division JP7057571B2 (ja) | 2017-04-28 | 2017-04-28 | モノリシックレガシーアプリケーションに基づくマイクロサービスのコンテナ化展開 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023088533A Division JP2023109980A (ja) | 2017-04-28 | 2023-05-30 | モノリシックレガシーアプリケーションに基づくマイクロサービスのコンテナ化展開 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2022009562A JP2022009562A (ja) | 2022-01-14 |
JP2022009562A5 JP2022009562A5 (ja) | 2022-01-21 |
JP7316591B2 true JP7316591B2 (ja) | 2023-07-28 |
Family
ID=87805601
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021175401A Active JP7316591B2 (ja) | 2017-04-28 | 2021-10-27 | モノリシックレガシーアプリケーションに基づくマイクロサービスのコンテナ化展開 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7316591B2 (ja) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001125779A (ja) | 1999-10-27 | 2001-05-11 | Nec Corp | オブジェクト指向型プログラミング言語で記述されたプログラムの構成関係管理装置及び方法並びに記憶媒体 |
-
2021
- 2021-10-27 JP JP2021175401A patent/JP7316591B2/ja active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001125779A (ja) | 1999-10-27 | 2001-05-11 | Nec Corp | オブジェクト指向型プログラミング言語で記述されたプログラムの構成関係管理装置及び方法並びに記憶媒体 |
Non-Patent Citations (1)
Title |
---|
田原 貴司(外4名),「レガシー装置ソフトウェア更改の効率化に関する一検討」,電子情報通信学会技術研究報告,日本,社団法人 電子情報通信学会,2009年01月15日,Vol.108, No.396,第29~34頁,ISSN: 0913-5685. |
Also Published As
Publication number | Publication date |
---|---|
JP2022009562A (ja) | 2022-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2022200853B2 (en) | Containerized deployment of microservices based on monolithic legacy applications | |
US11435986B2 (en) | Containerized deployment of microservices based on monolithic legacy applications | |
US11762639B2 (en) | Containerized deployment of microservices based on monolithic legacy applications | |
US10691712B2 (en) | System and method for merging a mainframe data file to a database table for use by a mainframe rehosting platform | |
US10503630B2 (en) | Method and system for test-execution optimization in an automated application-release-management system during source-code check-in | |
Miceli et al. | Programming abstractions for data intensive computing on clouds and grids | |
JP7316591B2 (ja) | モノリシックレガシーアプリケーションに基づくマイクロサービスのコンテナ化展開 | |
US10534640B2 (en) | System and method for providing a native job control language execution engine in a rehosting platform | |
JP2023109980A (ja) | モノリシックレガシーアプリケーションに基づくマイクロサービスのコンテナ化展開 | |
US11385881B2 (en) | State-driven virtualization system imaging | |
Mercier | Contribution to High Performance Computing and Big Data Infrastructure Convergence | |
Kriesch | Enablement of Kubernetes Based Open-Source Projects on IBM Z | |
Carreira | Practical and Scalable Serverless Computing | |
Estrada et al. | The Engine: Apache Spark | |
Iuhasz et al. | Deployment of Cloud Supporting Services | |
Pineiro et al. | Towards a Big Data Multi-language Framework using Docker Containers | |
Mercier | DOCTEUR DE LA COMMUNAUTÉ UNIVERSITÉ GRENOBLE ALPES |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20211027 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220107 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20221220 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20230317 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230530 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230619 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20230629 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230706 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7316591 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |