JP2022075553A - 方法、プログラム、およびコンピュータ・システム(人工知能ベースのアプリケーション・モダナイゼーション勧告) - Google Patents

方法、プログラム、およびコンピュータ・システム(人工知能ベースのアプリケーション・モダナイゼーション勧告) Download PDF

Info

Publication number
JP2022075553A
JP2022075553A JP2021174401A JP2021174401A JP2022075553A JP 2022075553 A JP2022075553 A JP 2022075553A JP 2021174401 A JP2021174401 A JP 2021174401A JP 2021174401 A JP2021174401 A JP 2021174401A JP 2022075553 A JP2022075553 A JP 2022075553A
Authority
JP
Japan
Prior art keywords
entity
computer system
computer
application
data
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
Application number
JP2021174401A
Other languages
English (en)
Inventor
ジン、シャオ
Jing Xiao
アナップ、カーリア
Kalia Anup
ラグハブ、バッタ
Batta Rghav
ホンタン、サン
Hongtan Sun
マジャ、ブコビック
Vukovic Maja
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2022075553A publication Critical patent/JP2022075553A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/453Help systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Business, Economics & Management (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Human Resources & Organizations (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (AREA)
  • Human Computer Interaction (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Tourism & Hospitality (AREA)
  • Quality & Reliability (AREA)
  • General Business, Economics & Management (AREA)
  • Operations Research (AREA)
  • Computational Linguistics (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】人工知能ベースのアプリケーション・モダナイゼーション勧告をする方法、プログラム及びシステムを提供する。【解決手段】方法は、ハードウェア構成要素若しくはソフトウェア構成要素又はその両方のうちの少なくとも1つのより最近のバージョンを含むようにコンピュータ・システムを修正することを推奨する通信を、コンピュータ・システムのコンシューマにいつ送信するのか、もしくはいつ送信しないのか、またはその両方を、人工知能を適用して決定する。エンティティの識別を示す情報と、エンティティによって所有若しくは管理されるか又はエンティティによって所有及び管理されたコンピュータ・システムの性能の尺度となる様々なパラメータに夫々関する複数の性能パラメータ値とを含むエンティティ・データ・セットを受信し、エンティティ・データ・セットに基づいて、コンピュータ・システムのモダナイゼーションに関する推奨を取得する。【選択図】図2

Description

本発明は一般に、人工知能ベースのアプリケーションの分野に関し、より詳細には、該人工知能ベースのアプリケーションを経時的に更新することに関する。
営利会社のようなエンティティ(entity)は通常、(i)ハードウェア構成要素を会社が所有し、その会社が、その会社の業務でそのコンピュータ・システムを使用する、主としてオンプレミス(on-premises)のコンピュータ・システム、(ii)主としてオフプレミス(off-premises)のコンピュータ・システム(例えばパブリック・クラウド、プライベート・クラウド)、または(iii)上記の2つのタイプの組合せなどの、コンピュータ・システムを有していることが知られている。コンピュータ・システムを所有もしくは管理しているエンティティ、またはコンピュータ・システムを所有および管理しているエンティティは通常、そのシステムを時折「モダナイズ(modernize)」してもらっていることが知られている。エンティティが、それ自体のコンピュータ・システムをモダナイズすることもある。他のケースでは、「コンシューマ・エンティティ」が、第三者(例えばコンピュータ・サービス会社)を雇って、そのコンシューマ・エンティティのコンピュータ・システムのモダナイゼーション(modernization)を実行している。このモダナイゼーションは通常、コンピュータ・システムのより高速な、もしくはより信頼できる、またはその両方の動作性能を達成する目的で、そのコンピュータ・システムの構成要素を取り替えること、もしくは修理すること、またはその両方を実施することを含む。モダナイゼーションの対象となるコンピュータ・システム構成要素は、ハードウェア(例えばプロセッサ・ハードウェア、メモリ・ハードウェア、ハウジング・ハードウェア、冷却システム・ハードウェア、送電経路ハードウェア(例えばコンピュータ電源ユニット)、信号伝送経路ハードウェア(例えばバス)、ストレージ・ハードウェア、通信ハードウェア(例えばモデム、光ファイバ線、ゲートウェイ)など)、ソフトウェア(例えば使用される仮想機械の型(style)、使用されるコンテナ(container)の型、クラウド・オーケストレーション(cloud orchestration)、使用される通信プロトコル、存在し、もしくは操作に使用され、または存在し、かつ操作に使用されるソフトウェア・プログラム(例えばエンドユーザを対象としたプログラム、コンピュータの内部動作を制御するプログラム、オペレーティング・システム)のバージョン(version)/識別/構成、など)、もしくはファームウェア、またはこれらの組合せを含む。
2020年5月5日にインターネット上で公開された「アプリケーション・モダナイゼーションのためのAIを用いたイノベーションの加速-AIへの旅ブログ(Accelerate innovation with AI for app modernization - Journey to AI Blog)」、著者:ルシル・プーリ(Ruchir Puri)およびショーン・ドーザ(Shawn DSouza)
人工知能ベースのアプリケーション・モダナイゼーション勧告をする技術を提供する。
本発明の一態様によれば、下記の操作(下記の順序で実行する必要は必ずしもない)を実行する方法、コンピュータ・プログラム製品もしくはシステムまたはこれらの組合せが提供される:(i)エンティティの識別を示す情報と、エンティティによって所有もしくは管理された、またはエンティティによって所有および管理されたコンピュータ・システムの性能の尺度となるさまざまなパラメータにそれぞれ関する複数の性能パラメータ値とを含むエンティティ・データ・セットを受信する操作、ならびに(ii)エンティティ・データ・セットに人工知能アルゴリズムを適用して、コンピュータ・システムのモダナイゼーションに関する第1の推奨(recommendation)を取得する操作。
本発明によるシステムの第1の実施形態のブロック図である。 第1の実施形態システムによって少なくとも部分的に実行される第1の実施形態方法を示す流れ図である。 第1の実施形態システムの機械論理(例えばソフトウェア)部分を示すブロック図である。 第1の実施形態システムによって生成されたスクリーン・ショットを示す図である。 本発明によるコンピュータ・システムの第2の実施形態の理解に役に立つ図である。 第2の実施形態システムの理解に役に立つ別の図である。
本発明のいくつかの実施形態は、ハードウェア構成要素(例えばマイクロプロセッサ)もしくはソフトウェア構成要素(例えばアプリケーションの更新されたバージョン)またはその両方のうちの少なくとも1つのより最近のバージョンを含むようにコンピュータ・システムを修正することを推奨する通信を、コンピュータ・システムのコンシューマにいつ送信するのか、もしくはいつ送信しないのか、またはその両方を、人工知能を適用して決定することを対象としている。モダナイゼーションの対象となるコンピュータ・システムは、コンシューマによって完全に所有されたものであってもよく、またはサービス(例えば、インフラストラクチャ・アズ・ア・サービス(infrastructure as a service)、ソフトウェア・アズ・ア・サービス(software as a service)、クラウド・サービスのパッケージ)として購入されたものであってもよい。この「発明を実施するための形態」セクションは、以下のサブセクションに分割されている:(i)ハードウェアおよびソフトウェア環境、(ii)例示的な実施形態、(iii)さらなるコメントもしくは実施形態またはその両方、および(iv)定義。
I.ハードウェアおよびソフトウェア環境
本発明は、インテグレーションの可能な技術的詳細レベルにある、システム、方法もしくはコンピュータ・プログラム製品、またはこれらの組合せであることがある。コンピュータ・プログラム製品は、本発明の態様をプロセッサに実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読ストレージ媒体を含むことがある。
このコンピュータ可読ストレージ媒体は、命令実行デバイスが使用するための命令を保持および記憶することができる有形のデバイス(tangible device)とすることができる。このコンピュータ可読ストレージ媒体は例えば、限定はされないが、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイスまたはこれらの適当な組合せとすることができる。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、リードオンリー・メモリ(ROM)、消去可能なプログラマブル・リードオンリー・メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク・リードオンリー・メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック(登録商標)、フロッピー(登録商標)・ディスク、機械的にコード化されたデバイス、例えばパンチカードまたはその上に命令が記録された溝の中の一段高くなった構造体、およびこれらの適当な組合せを含む。本明細書で使用されるとき、コンピュータ可読ストレージ媒体は、それ自体が一過性の信号、例えば電波もしくは他の自由に伝搬する電磁波、ウェーブガイドもしくは他の伝送体内を伝搬する電磁波(例えば光ファイバ・ケーブル内を通る光パルス)、または電線を通して伝送される電気信号であると解釈されるべきではない。
本明細書によって、「ストレージ・デバイス」は、コンピュータ・コードを、コンピュータ・プロセッサがアクセスすることができるような方式で記憶するように作られた、またはそのように適合された一切のものと定義される。ストレージ・デバイスは通常、ストレージ媒体を含む。ストレージ媒体は、コンピュータ・コードのデータがその中にまたはその上に記憶された物質である。単一の「ストレージ・デバイス」は、(i)間隔をあけて配置されたもしくは分散した多数の別個の部分を有するもの(例えば、6台のラップトップ・コンピュータにそれぞれ置かれた6つの一組の固体状態ストレージ・デバイスであって、単一のコンピュータ・プログラムを共同で記憶した一組の固体状態ストレージ・デバイス)であることがあり、または(ii)多数のストレージ媒体を使用するものであることもあり(例えば、コンピュータの不揮発性ストレージの磁気ドメイン(magnetic domain)に部分的に記憶され、コンピュータの揮発性メモリの一組の半導体スイッチに部分的に記憶された一組のコンピュータ・コード)、あるいはその両方であることもある。用語「ストレージ媒体」は、多数の異なるタイプのストレージ媒体が使用される状況をカバーすると解釈すべきである。
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から対応するそれぞれのコンピューティング/処理デバイスにダウンロードすることができ、またはネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークもしくは無線ネットワークまたはそれらの組合せを介して外部コンピュータもしくは外部ストレージ・デバイスにダウンロードすることができる。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータもしくはエッジ・サーバ、またはこれらの組合せを含むことができる。それぞれのコンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インタフェースは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を、対応するそれぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体に記憶するために転送する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、もしくは状態設定データであってもよく、またはSmalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同種のプログラミング言語などの従来の手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組合せで書かれた、ソース・コードもしくはオブジェクト・コードであってもよい。このコンピュータ可読プログラム命令は、全体がユーザのコンピュータ上で実行されてもよく、一部がユーザのコンピュータ上で実行されてもよく、独立型ソフトウェア・パッケージとして実行されてもよく、一部がユーザのコンピュータ上で、一部が遠隔コンピュータ上で実行されてもよく、または全体が遠隔コンピュータもしくは遠隔サーバ上で実行されてもよい。上記の最後のシナリオでは、遠隔コンピュータが、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、またはこの接続が、外部コンピュータに対して(例えばインターネット・サービス・プロバイダを使用してインターネットを介して)実施されてもよい。いくつかの実施形態では、本発明の態様を実施するために、例えばプログラム可能論理回路、フィールドプログラマブル・ゲート・アレイ(FPGA)またはプログラム可能論理アレイ(PLA)を含む電子回路が、このコンピュータ可読プログラム命令の状態情報を利用してその電子回路をパーソナライズすることにより、このコンピュータ可読プログラム命令を実行してもよい。
本明細書では、本発明の態様が、本発明の実施形態による方法、装置(システム)およびコンピュータ・プログラム製品の流れ図もしくはブロック図またはその両方の図を参照して説明される。それらの流れ図もしくはブロック図またはその両方の図のそれぞれのブロック、およびそれらの流れ図もしくはブロック図またはその両方の図のブロックの組合せは、コンピュータ可読プログラム命令によって実施することができることが理解される。
これらのコンピュータ可読プログラム命令は、機械を形成する汎用コンピュータ、専用コンピュータまたは他のプログラム可能データ処理装置のプロセッサに、それらのコンピュータまたは他のプログラム可能データ処理装置のプロセッサによって実行されるこれらの命令が、これらの流れ図もしくはブロック図またはその両方の図のブロックに指定された機能/動作を実施する手段を生成するような態様で、提供することができる。これらのコンピュータ可読プログラム命令はさらに、特定の方式で機能するようにコンピュータ、プログラム可能データ処理装置もしくは他のデバイスまたはこれらの組合せに指図することができるコンピュータ可読ストレージ媒体に、その中に命令が記憶されたコンピュータ可読ストレージ媒体が、これらの流れ図もしくはブロック図またはその両方の図のブロックに指定された機能/動作の態様を実施する命令を含む製品を含むような態様で、記憶することができる。
これらのコンピュータ可読プログラム命令はさらに、コンピュータ、他のプログラム可能装置または他のデバイス上で一連の動作ステップを実行させて、コンピュータによって実施されるプロセスを生み出すために、このコンピュータ、他のプログラム可能データ処理装置または他のデバイス上に、このコンピュータ、他のプログラム可能装置または他のデバイス上で実施されるこれらの命令が、これらの流れ図もしくはブロック図またはその両方の図のブロックに指定された機能/動作を実施するような態様で、ロードすることができる。
添付図中の流れ図およびブロック図は、本発明のさまざまな実施形態によるシステム、方法およびコンピュータ・プログラム製品の可能な実施態様のアーキテクチャ、機能および動作を示す。この点に関して、それらの流れ図またはブロック図のそれぞれのブロックは、指定された論理機能を実施する1つまたは複数の実行可能命令を含む、命令のモジュール、セグメントまたは部分を表すことがある。いくつかの代替実施態様では、ブロックに示された機能を、図に示された順序とは異なる順序で実行することができる。例えば、連続して示された2つのブロックが、実際は、実質的に同時に実行されることがあり、または、含まれる機能によってはそれらのブロックが逆の順序で実行されることもある。それらのブロック図もしくは流れ図またはその両方の図のそれぞれのブロック、ならびにそれらのブロック図もしくは流れ図またはその両方の図のブロックの組合せを、指定された機能もしくは動作を実行しまたは専用ハードウェアとコンピュータ命令の組合せを実施するハードウェアベースの専用システムによって実施することができることにも留意すべきである。
図1に示されているとおり、ネットワーク化されたコンピュータ・システム100は、本発明のさまざまな実施形態とともに使用されるハードウェアおよびソフトウェア環境の一実施形態である。ネットワーク化されたコンピュータ・システム100は、サーバ・サブシステム102(本明細書では時により単純にサブシステム102とも呼ぶ)、クライアント・サブシステム104、106、108、110、112、および通信ネットワーク114を含む。サーバ・サブシステム102は、サーバ・コンピュータ200、通信ユニット202、プロセッサ・セット204、入力/出力(I/O)インタフェース・セット206、メモリ208、永続性ストレージ(persistent storage)210、ディスプレイ212、外部デバイス214、ランダム・アクセス・メモリ(RAM)230、キャッシュ232、およびプログラム300を含む。
サブシステム102は、ラップトップ・コンピュータ、タブレット・コンピュータ、ネットブック・コンピュータ、パーソナル・コンピュータ(PC)、デスクトップ・コンピュータ、パーソナル・デジタル・アシスタント(PDA)、スマート・フォン、または他のタイプのコンピュータ(下記の「定義」セクションの「コンピュータ」の定義を参照されたい)とすることができる。プログラム300は、ある種のソフトウェア機能を生成、管理および制御するために使用される、機械可読命令もしくはデータまたはその両方の集合体であり、これについては後に、この「発明を実施するための形態」セクションの「例示的な実施形態」サブセクションで詳細に論じられる。
サブシステム102は、通信ネットワーク114を介して他のコンピュータ・サブシステムと通信することができる。ネットワーク114は例えば、ローカル・エリア・ネットワーク(LAN)、インターネットなどのワイド・エリア・ネットワーク(WAN)、またはこれらの2つのネットワークの組合せとすることができ、有線、無線または光ファイバ接続を含むことができる。一般に、ネットワーク114は、サーバ・サブシステムとクライアント・サブシステムとの間の通信を支援する接続とプロトコルとの任意の組合せとすることができる。
サブシステム102は、多くの両頭矢印を含むブロック図として示されている。これらの両頭矢印(別個の参照符号は持たない)は、通信ファブリック(communications fabric)を表しており、通信ファブリックは、サブシステム102のさまざまな構成要素間の通信を提供する。この通信ファブリックは、コンピュータ・システム内のプロセッサ(例えばマイクロプロセッサ、通信プロセッサおよびネットワーク・プロセッサなど)、システム・メモリ、周辺デバイスおよび他の任意のハードウェア構成要素間でデータもしくは制御情報またはその両方を受け渡しするように設計された任意のアーキテクチャを用いて実装することができる。例えば、通信ファブリックは、少なくとも部分的に、1つまたは複数のバスによって実装することができる。
メモリ208および永続性ストレージ210はコンピュータ可読ストレージ媒体である。一般に、メモリ208は、適当な任意の揮発性または不揮発性コンピュータ可読ストレージ媒体を含むことができる。さらに、現在もしくは近い将来、またはその両方において、(i)外部デバイス214が、サブシステム102用のメモリの一部もしくは全部を供給することができるものであってもよく、または(ii)サブシステム102の外部のデバイスが、サブシステム102用のメモリを提供することができてもよく、あるいはその両方であってもよいことにも留意されたい。メモリ208および永続性ストレージ210はともに、(i)通過中の信号ほどには一過性でない方式でデータを記憶し、(ii)有形の媒体(例えば磁気または光学ドメイン)上にデータを記憶する。この実施形態では、メモリ208が揮発性ストレージであり、一方、永続性ストレージ210が不揮発性ストレージを提供する。永続性ストレージ210によって使用される媒体は取外し可能であってもよい。例えば、永続性ストレージ210に対して取外し可能なハード・ドライブを使用することができる。他の例は、やはり永続性ストレージ210の部分である別のコンピュータ可読ストレージ媒体上に転送するためにドライブに挿入された、光および磁気ディスク、サム・ドライブ(thumb drive)ならびにスマート・カードを含む。
通信ユニット202は、サブシステム102の外部の他のデータ処理システムまたはデバイスとの通信を提供する。これらの例では、通信ユニット202が、1つまたは複数のネットワーク・インタフェース・カードを含む。通信ユニット202は、物理通信リンクと無線通信リンクのうちのいずれか一方または両方の使用を通して通信を提供することができる。通信ユニット(例えば通信ユニット202)を通して、永続性ストレージ・デバイス(例えば永続性ストレージ210)に、本明細書で論じられている任意のソフトウェア・モジュールをダウンロードすることができる。
I/Oインタフェース・セット206は、サーバ・コンピュータ200とデータ通信するように局所的に接続されたものであってもよい他のデバイスとのデータの入力および出力を可能にする。例えば、I/Oインタフェース・セット206は、外部デバイス・セット214への接続を提供する。外部デバイス・セット214は通常、キーボード、キーパッド、タッチ・スクリーンもしくは他の適当なある入力デバイス、またはこれらの組合せなどのデバイスを含む。外部デバイス・セット214はさらに、例えばサム・ドライブ、携帯可能な光または磁気ディスク、およびメモリ・カードなどの携帯可能なコンピュータ可読ストレージ媒体を含むことができる。このような携帯可能なコンピュータ可読ストレージ媒体上に、本発明の実施形態を実施するために使用されるソフトウェアおよびデータ、例えばプログラム300を記憶することができる。I/Oインタフェース・セット206はさらに、ディスプレイ212とデータ通信するように接続している。ディスプレイ212は、ユーザに対してデータを表示する機構を提供する表示デバイスであり、例えばコンピュータ・モニタまたはスマート・フォン・ディスプレイ・スクリーンとすることができる。
この実施形態では、プロセッサ・セット204の1つまたは複数のコンピュータ・プロセッサが普通はメモリ208の1つまたは複数のメモリを通してアクセスもしくは実行するためまたはその両方のために、プログラム300が永続性ストレージ210に記憶されている。当業者には理解されることだが、プログラム300は、プログラム300のランタイム中に、もしくはプログラム300がランしていないときに、またはその両方において、より高度に分散した方式で記憶することができる。プログラム300は、機械可読命令と機械実行可能命令の両方、もしくはサブスタンティブ・データ(substantive data)(すなわちデータベースに記憶されたデータのタイプ)またはその両方を含むことができる。この特定の実施形態では、永続性ストレージ210が磁気ハード・ディスク・ドライブを含む。いくつかの可能なバリエーションを挙げると、永続性ストレージ210は、固体状態ハード・ドライブ、半導体ストレージ・デバイス、リードオンリー・メモリ(ROM)、消去可能なプログラマブル・リードオンリー・メモリ(EPROM)、フラッシュ・メモリ、またはプログラム命令もしくはデジタル情報を記憶することができる他の任意のコンピュータ可読ストレージ媒体を含むことができる。
本明細書に記載されたプログラムは、本発明の特定の実施形態においてそれらのプログラムが実施されるアプリケーションに基づいて識別される。しかしながら、本明細書に記載された特定のプログラム名は単に便宜的に使用されているだけであること、したがって、本発明を、そのような名称によって識別もしくは暗示される特定のアプリケーションまたはそのような名称によって識別および暗示される特定のアプリケーションで使用することだけに限定すべきでないことを理解すべきである。
本発明のさまざまな実施形態の説明は例示のために示したものであり、それらの説明が網羅的であること、または開示された実施形態に限定されることは意図されていない。当業者には、記載された実施形態の範囲および思想を逸脱しない多くの変更および変形が明らかとなろう。本明細書で使用されている用語は、実施形態の原理、実際的用途、もしくは市場に出ている技術には見られない技術的改良を最もうまく説明するように、または本明細書に開示された実施形態を他の当業者が理解することができるように選択した。
II.例示的な実施形態
図1に示されているとおり、ネットワーク化されたコンピュータ・システム100は、本発明による例示的な方法を実行することができる環境である。図2に示されているとおり、流れ図250は、本発明による例示的な方法を示している。図3に示されているとおり、プログラム300は、流れ図250の方法操作のうちの少なくとも一部の方法操作を実行し、またはそれらの方法操作の実行を制御する。次に、以下の段落に沿って、図1、2および3のブロックを広範に参照して、この方法および関連ソフトウェアについて論じる。
処理は、操作S255から始まり、操作S255で、知識グラフ生成(create knowledge graph)モジュール(「モッド(mod)」)302が知識グラフ304およびオントロジ(ontology)305を受信する。さまざまな実施形態において、知識グラフおよびオントロジは、当技術分野で現在知られている任意の形態または将来に開発される任意の形態をとることができる。一般的に言うと、このグラフは、データの形態の知識を集め、それらの知識を別個の一組のノードに入れて、知識グラフを始めさせ、さらに、ノード間の接続において階層化して、知識グラフ・データ・セットの知識グラフ・データ構造の構築を完成させることによって構築される。
オントロジ305は、データのグラフィカル表現を、コンセプト(concept)およびコンセプト間の関係(relation)として提供する。本発明のさまざまな実施形態で使用することができるコンセプトのいくつかの例は、オペレーティング・システム、アプリケーション、データベース、ミドルウェアなどである。本発明のさまざまな実施形態で使用することができる関係の一例は、以下のとおりである:アプリケーションが、オペレーティング・システム「上でランする(runs on)」(すなわち、「上でランする(runs on)」が、特定のアプリケーションと、その特定のアプリケーションがその上でランする特定のオペレーティング・システムとの間の関係である)。次の段落でさらに説明するが、オントロジは、当業者には「知識グラフ」として知られているタイプのデータ構造として表現することもでき、その場合、(i)オントロジのそれぞれのコンセプトは、「ノード」と呼ばれるタイプのデータ・セットとして表現され、(ii)オントロジのそれぞれの関係は、当業者には「接続」または「エッジ(edge)」としてさまざまに知られているタイプのデータ構造として表現される。
図4に示されているとおり、スクリーン・ショット400は知識グラフ304を示しており、知識グラフ304は、(i)多数のノード(N1、N2、N3、N4)、および(ii)多数のエッジ(E1、E2、E3、E4、E5、E6)を含んでいる。この知識グラフのそれぞれのノードは、OS(オペレーティング・システム)、アプリケーション・サーバ、ウェブ・サーバ、データベースなどの技術的コンセプトに対応する一組のコンピュータ可読データである。知識グラフのそれぞれのエッジは、ノード間の関係に対応する一組のコンピュータ可読データであり、この関係は通常、ノード間のコンパティビリティ制約(compatibility constraint)を含む。例えば、(インターネット情報サービス(Internet Information Services))IISなどのウェブ・サーバは、Windows(登録商標)などのOS「上でランする」。ここでは、「上でランする(runs on)」が、これらのノード間のコンパティビリティ制約、すなわちIISとWindows(登録商標)との間のコンパティビリティ制約である。
処理は操作S260に進み、操作S260で、顧客エンティティ・データ受信(receive customer entity data)モッド306が、顧客エンティティ(例えば営利法人)の運営および顧客エンティティのコンピュータ・システムのハードウェアもしくはソフトウェアまたはその両方の使用に対応する一組のデータを受信する。この例では、この顧客エンティティ・データ・セットが、クライアント・サブシステム104(すなわち顧客エンティティのコンピュータ・システムのオンプレミス部分)から、通信ネットワーク114を横切って送信される。顧客エンティティのオンプレミス・コンピュータ・システムは、図1でクライアント・サブシステム104と標識されたブロックであり、主に、顧客エンティティによって所有および管理された物理コンピュータ(および物理コンピュータ上でランしているソフトウェア)からなる。この例では、サプライヤが、サーバ・サブシステム102および(この例では主にパブリック・クラウドからなる)クライアント・サブシステム106を所有および管理している。顧客エンティティはサービスを購入し、それらのサービスは、クライアント・サブシステム106上で実行される。一般的に言うと、顧客エンティティが「コンピュータ・システム」を有するとき、「顧客エンティティのコンピュータ・システム」は、以下のうちの1つまたは複数を含むことがある:(i)顧客エンティティのプレミス上のハードウェア、(ii)顧客エンティティのプレミス上でランしているソフトウェアおよびファームウェア、(iii)顧客エンティティにコンピュータ・サービス(例えばクラウド・コンピューティング・サービス)を提供しているサブライヤ・エンティティのハードウェア、もしくは(iv)顧客エンティティにコンピュータ・サービス(例えばクラウド・コンピューティング・サービス)を提供しているサブライヤ・エンティティのソフトウェア、またはこれらの組合せ。この例では、顧客エンティティのコンピュータ・システムが、上記の4つのタイプの全てを含む。
一般的に言うと、顧客エンティティ・データ・セットは、顧客エンティティのコンピュータ・システムの機能、動作もしくは健康またはこれらの組合せのうちの少なくとも1つの態様に関するデータを含む。この例では、顧客エンティティ・データ・セットが、顧客エンティティのコンピュータ・システムの動作の4つの態様に関する情報、すなわち(i)顧客エンティティのコンピュータ・システムのプラットフォームの性能、(ii)顧客エンティティのコンピュータ・システムのファクタリング構成(factoring configuration)の性能、(iii)顧客エンティティのコンピュータ・システムのパッケージの性能、および(iv)顧客エンティティのコンピュータ・システムの仮想コンピューティング環境(すなわち顧客エンティティのコンピュータ・システムのコンテナもしくは仮想機械またはその両方)の性能に関する情報を含む。
処理は操作S265に進み、操作S265で、人工知能モッド308が以下の入力に適用される:(i)顧客エンティティ・データ・セット、(ii)知識グラフ304、および(iii)オントロジ305。この例では、モダナイゼーション推奨が、顧客のコンピュータ・システムの特定の態様、具体的には「アプリケーション・モダナイゼーション」を対象としている。アプリケーション・モダナイゼーションは、「アプリケーション」(通常は「コンピュータ・プログラム」と呼ばれる一組のコンピュータ・コード)のモダナイゼーションを意味する。アプリケーション・モダナイゼーションの候補であるアプリケーションは、データベース、ミドルウェア、アプリケーション・サーバもしくはプログラミング言語またはこれらの組合せなど、多数の構成要素を有しうる。この例では、この推奨が、使用可能なコンテナ(または他の仮想コンピューティング環境)に関して顧客エンティティのアプリケーションのそれぞれの構成要素をどうすればモダナイズすることができるのかを顧客エンティティが理解する必要がある状況を対象とし、そのような状況に対して設計される。
この例におけるモダナイゼーションの候補であるアプリケーションの性質をさらに説明すると、このアプリケーションは、仮想環境オーケストレーション・アプリケーションである。本明細書においてこの用語が使用されるとき、「仮想環境オーケストレーション・アプリケーション」は、入来コンピューティング・ワークロード(workload)を、コンテナ・インスタンス間もしくは仮想機械インスタンス間で、またはコンテナ・インスタンスおよび仮想機械インスタンス間で割り振る機能を含むアプリケーションである。この例では、顧客の仮想環境オーケストレーション・アプリケーションが、11の態様を含む(これらの11の態様は、この「発明を実施するための形態」セクションの次のサブセクションに示されている)。この「発明を実施するための形態」セクションの次のサブセクションは、人工知能を使用してモダナイゼーション推奨を生成する実施形態の議論、具体的には、人工知能を使用して、仮想環境オーケストレーション(例えばワークロードとコンテナとのオーケストレーション)を実行する仮想環境オーケストレーション・アプリケーションをモダナイズする実施形態の議論に焦点を合わせている。
この例では、モッド308が、顧客のコンピュータ・システムのクラウド・オーケストレーション態様に関する以下の4つの推奨を出力するように設計されている:(i)現在の仮想コンピューティング環境(例えばコンテナ)に関連したサービスをモダナイズし、またはその代わりに保持すること、(ii)現在のファクタリング構成をリファクタし、またはその代わりに保持すること、(iii)現在のパッケージングをモダナイズし、またはその代わりに保持すること、および(iv)現在のコンピューティング・プラットフォームをモダナイズし、またはその代わりに保持すること。あるいは、他のシステムは、システム・モダナイゼーションに関連した他のタイプの推奨を生成することができる。例えば、現在の仮想コンピューティング環境の年数のために、ならびに/または現在の仮想コンピューティング環境が、最近リリースされた仮想機械および/もしくはコンテナのタイプと相容れないために、モッド308は、現在の仮想コンピューティング環境のモダナイゼーションを推奨することができる。この例では、顧客のコンピュータ・システムの仮想環境オーケストレーション・アプリケーション態様に対するモダナイゼーション推奨が、さまざまなタイプの履歴データ(例えば、顧客のコンピュータ・システム上で過去に実施された比較的に成功したモダナイゼーションおよび比較的に不成功のモダナイゼーションのインスタンス、ならびに/または現在の顧客コンピュータ・システムとの間に、ならびに仮想環境オーケストレーション・アプリケーションにセットされる、顧客コンピュータ・システムの仮想環境オーケストレーション・アプリケーション・コードおよび/もしくは構成との間に少なくともある程度の類似性(好ましくは高度の類似性)を有する他のコンピュータ・システム上で過去に実施された比較的に成功したモダナイゼーションおよび比較的に不成功のモダナイゼーションのインスタンス)に基づいて推奨を生成する人工知能機械論理(例えばソフトウェア)によって達成される。仮想環境オーケストレーション・アプリケーションに関するモダナイゼーション推奨を生成するように適合された人工知能機械論理のいくつかの実施形態が、この「発明を実施するための形態」セクションの次のサブセクションで論じられる。
処理は操作S270に進み、操作S270で、出力モッド310が、コンシューマ・エンティティ(すなわちクライアント・サブシステム104)の適切な個人に上記の4つの推奨を送信する。この例では、これらの推奨が、テキスト・メッセージによって、人間が理解できる形態およびフォーマットで送信される。この例では、それらの推奨が、「モダナイズする」タイプの推奨であるのかまたは「保持する」タイプの推奨であるのかに関わらず、この個人が、4つの全ての推奨を受信する。あるいは、顧客エンティティは、実施するのに能動的な関与を必要とする通信だけ(一般に、モダナイズするタイプの推奨だけ)を欲することもある。いくつかの実施形態では、モダナイズする推奨によって、人間の介入をあまり必要とすることなしにモダナイゼーションが自動的に実行および実施されるようにすることもできる。この実施形態では、モダナイズするタイプの推奨が汎用であり、具体的ではない。このことは、その推奨が、推奨されたモダナイゼーションの詳細に関する情報を含まないことを意味する。あるいは、推奨は、以下のような題目に関する詳細を含むこともできる:どの仕様および/もしくはリソースをモダナイズするのか、推奨されたコンピューティング・サービスおよび/もしくはプログラムおよび/もしくはアプリケーションの識別は何か、そのモダナイゼーションをどのように実行するのか、そのモダナイゼーションがいつ推奨されるのか、ならびに/またはなぜそのモダナイゼーションが推奨されるのか。
処理は操作S275に進み、操作S275で、顧客エンティティが、操作S270で受信した推奨を考慮して、顧客エンティティのコンピュータ・システムをモダナイズする。この例では、モダナイゼーションが、以下の4つのタイプのモダナイゼーションを含む:仮想コンピューティング環境(VCE)もしくはVCEを制御するためのコンピュータ・プログラムまたはその両方を(i)リファクタすること、(ii)リパッケージすること、(iii)リプラットフォームすること、および(iv)モダナイズすること。
III.さらなるコメントもしくは実施形態またはその両方
本発明のいくつかの実施形態は、現状技術に対する改良に関する下記の事実、潜在的問題もしくは潜在的領域またはこれらの組合せのうちの1つまたは複数を認識している:(i)企業は通常、広範囲のIT(情報技術)インフラストラクチャおよびサービスにわたって経時的に展開および更新されるレガシー・アプリケーション・ポートフォリオ(legacy application portfolio)を有していること、(ii)企業のアプリケーションをクラウドに移動させるとき、その企業は、(a)アプリケーション・ポートフォリオ・データが、不完全であり、首尾一貫しておらず、非標準フォーマット(スプレッドシート、CMDB(構成管理データベース(configuration management database))、ログなど)で提示されるという課題、および(b)SME(中小企業エンティティ(small/medium enterprise entities))が、解析のために、そのエンティティのアプリケーションおよび技術ポートフォリオをカタログ化および標準化するのには、かなりの(数か月の)人間労力がかかるという課題に遭遇することがあること、(iii)アプリケーション・ポートフォリオに対する既存のアプリケーション処置(disposition)推奨は主としてルール・ベースであり、データ駆動ではなく、特定のアプリケーション技術を解析する際に根付いていること、(iv)バリアント(variant)およびバージョンのインコンパティビリティ(incompatibility)によって、展開組成およびユニット、ならびにトランスフォーメーション(transformation)複雑さが導入されうること、(v)アプリケーション・ポートフォリオのトランスフォーメーションの複雑さ、労力サイジング(effort sizing)およびリスクを予測するモデルが存在しないこと、もしくは(vi)そのようなモデルは、企業に関するフォワード・トランスフォーメーション・バジェティング(forward transformation budgeting)およびプロジェクト・サイジング(project sizing)を駆動するクリティカル・ビジネス・メトリクス(critical business metrics)を含むことがあること、またはこれらの組合せ。
本発明のいくつかの実施形態は、下記の操作、特徴、特性もしくは利点、またはこれらの組合せのうちの1つまたは複数を含むことができる:(i)AIベースのアプリケーション・モダナイゼーション勧告(advisory)を提供する方法およびシステム、もしくは(ii)アプリケーション関連データを多数の源からインジェストし、そのデータに少なくとも部分的に基づいて、アプリケーションをモダナイズするための適切な勧告を提供すること、またはその両方。
本発明の一実施形態による方法は、下記の操作を含む(下記の順序で実行する必要は必ずしもない):(i)アプリケーション・ソース・コード、CMDB/発見(discovery)関連データ、インシデントおよび変更チケット(incident and change ticket)、予め定められたアンケートに対するSME回答などの多数の源からアプリケーション関連データ(生データ)をインジェストする操作、(ii)ADDI(アプリケーション・ディスカバリ・アンド・デリバリ・インテリジェンス(Application Discovery and Delivery Intelligence))などの外部サービス関連アプリケーションからデータをインジェストする操作、(iii)入力データに基づいて、データをサニタイズ(sanitize)および正規化するための前処理を実行する操作、(iv)データが正規化およびサニタイズされた後に、(例えばテキスト・データ、SMEからの回答および発見データからの)AIベースの情報抽出を実行する操作であり、(a)エンティティおよび関係抽出を実行すること、(b)自然言語テキスト入力に対して自然言語理解ソフトウェアもしくはハードウェアまたはその両方を使用すること、ならびに(c)ソース・コード解析を実行してデータ依存性および呼出し関係(call relationship)を抽出することを含む操作、(v)データ・キュレーション(data curation)を実行して不明情報(missing information)を代入(impute)し、それによりアプリケーションに対する完全な技術スタックを生成する操作、(vi)異なる形態のデータに基づいて、一組の推奨アルゴリズムを訓練する操作、(vii)例えば、推奨アルゴリズムの1つが、アプリケーションを、コンテナ化し、リファクタし、リプラットフォームし、クラウド・オーケストレーション・アプリケーション(この「発明を実施するための形態」セクションの直前のサブセクションでのクラウド・オーケストレーション・アプリケーションの説明を参照されたい)によって制御されたコンテナ上で通常は実行される他のプロセスにかけるかどうかを推奨する操作、(viii)別のアルゴリズムが、コンテナ化態様へのさらなる洞察(insight)、すなわちどの程度までアプリケーションをコンテナ化することができるのか、関連する課題、複雑さおよびリスクを提供することができること、および(ix)アルゴリズムの成功に基づいて、データ・レイク(data lake)を生成して、評価されたアプリケーションからの匿名化され処理されたデータを記憶する操作(そのようなデータは、アルゴリズムの推奨を改善するのに役立つであろう)。
本発明のいくつかの実施形態は、下記の操作、特徴、特性もしくは利点、またはこれらの組合せのうちの1つまたは複数を含むことができる:(i)アプリケーション関連データをインジェストし、モダナイゼーションに関する推奨を提供すること、(ii)チケット、ソース・コード、アンケートに対する回答、発見データなどの多数の源からのデータを入力としてとり、そのデータを標準化し、データ・キュレーションおよび不明情報の代入(imputation)を実行するデータ・パイプラインを生成および維持すること、(iii)このデータ・パイプラインから、アプリケーション・モダナイゼーションに対する多数の推奨アルゴリズムを提供すること、もしくは(iv)そのデータから洞察を学習し、それらの洞察を、匿名化とともにデータ・レイクに記憶して、既存のアルゴリズムを改善すること、またはこれらの組合せ。
本発明のいくつかの実施形態は、下記の操作、特徴、特性もしくは利点、またはこれらの組合せのうちの1つまたは複数を含むことができる:(i)アドホック(ad hoc)アプリケーション・ポートフォリオ・データを多数の源(例えばCMDB、スプレッドシート、SMEサーベイ(survey)など)からインジェストする自動化されたAI援用方法、(ii)インジェストされたアドホック・アプリケーション・ポートフォリオ・データに関して、オート・キュレーション(auto-curation)、データ標準化および代入を提供すること、もしくは(iii)技術コンパティビリティ/複雑さおよびビジネス要件(business requirement)に基づくアプリケーション・モダナイゼーション処置、またはこれらの組合せ。
本発明の一実施形態による方法は、下記の操作を含む(下記の順序で実行する必要は必ずしもない):(i)多数の源(例えばCMDB/発見関連データ、SMEサーベイ、予め定められたアンケート、スプレッドシート・インベントリなど)からのインジェストされたアプリケーション生データをインジェストする操作、(ii)インジェストされた生データに基づいて、標準オントロジに対してオート・キュレーション、データ標準化および代入を実行して、処理されたデータを取得する操作、(iii)プラットフォーム、ミドルウェア、ランタイム、プログラミング言語、ライブラリもしくはアプリケーション/データベースまたはこれらの組合せなどの多様な一組の技術をカバーする付随する知識ベースを自動的に学習する操作、(iv)処理されたデータに基づいて、エンティティおよび関係抽出を、NER(固有表現認識(named entity recognition))およびマルチ・ラベル分類を使用して実行する操作(注記:この技術は、シーケンシャル制約を仮定することなしにIT固有表現とともに用いたときによく機能するように特化されている)、(v)標準化されたアプリケーション・ポートフォリオ上に技術知識グラフおよびオントロジを適用して、技術バージョンおよびバリアントのコンパティビリティによって推論することを含め、それぞれのアプリケーション展開ユニットのコンテナ化の実現可能性および複雑さについて自動的に推論する操作、ならびに(vi)コンテナ化解析およびビジネス要件を考慮して、アプリケーション・モダナイゼーション処置および労力サイジング(例えば、現在においてはSMEが手動で実行すると考えられる種類のモダナイゼーション処置および労力サイジング)に到達する操作。いくつかの実施形態では、この手法は全体がデータ駆動であり、高度な説明(high explanation):保持(Keep)、コンテナ化(Containerize)、リプラットフォーム/リパッケージ(Re-platform/Re-package)およびリファクタ(Refactor)を支援する。
本発明のいくつかの実施形態は、下記の操作、特徴、特性もしくは利点、またはこれらの組合せのうちの1つまたは複数を含むことができる:(i)標準オントロジに対するオート・キュレーション、データ標準化および代入、(ii)プラットフォーム、ミドルウェア、ランタイム、プログラミング言語、ライブラリおよびアプリケーション/データベースなどの多様な一組の技術をカバーする付随する知識ベースを自動的に学習すること、(iii)NERおよびマルチ・ラベル分類を使用してエンティティおよび関係抽出を実行すること、(iv)技術バージョンおよびバリアントのコンパティビリティによって推論することを含め、それぞれのアプリケーション展開ユニットのコンテナ化の実現可能性および複雑さについて自動的に推論すること、もしくは(v)コンテナ化解析とビジネス要件との組合せを使用して、モダナイゼーション処置および労力サイジングを推奨すること、またはこれらの組合せ。
いくつかの実施形態は、アドホック・アプリケーション・ポートフォリオ・データを多数の源(例えばCMDB、スプレッドシート、SMEサーベイなど)からインジェストし、オート・キュレーション、データ標準化および代入を提供する自動化されたAI援用方法を提供する。さらに、いくつかの実施形態は、技術コンパティビリティ/複雑さおよびビジネス要件に基づくアプリケーション・モダナイゼーション処置を提供する。
本発明のいくつかの実施形態に存在する5つの特徴を以下の5つの段落でそれぞれ説明する。
データ・インジェスチョン(Data Ingestion):機械論理は、CMDB/発見関連データ、予め定められたアンケートに対するSMEサーベイ、スプレッドシート・インベントリなどの多数の源からアプリケーション・ポートフォリオ・データ(生データ)をインジェストする。
知識学習(Knowledge Learning):入力データに基づいて、機械論理は、標準オントロジに対するオート・キュレーション、データ標準化および代入を実行し、プラットフォーム(メインフレーム、Linux(登録商標)、Windows(登録商標)など)、ミドルウェア(例えばIIS(インターネット情報システム)、Tomcatなど)、ランタイム(.NET、ASPなど)、プログラミング言語、ライブラリ、およびアプリケーション/データベースなどの多様な一組の技術をカバーする付随する知識ベースを自動的に学習する。
固有表現認識(Named-entity recognition):データが正規化およびサニタイズされた後に、機械論理は、NERおよびマルチ・ラベル分類を使用してエンティティおよび関係抽出を実行する。この技術は、シーケンシャル制約を仮定することなしにIT(情報技術)固有表現とともに用いたときによく機能するように特化されている。
コンテナ化評価(Containerization Assessment):標準化されたアプリケーション・ポートフォリオ上に技術知識グラフおよびオントロジを適用し、技術バージョンおよびバリアントのコンパティビリティによって推論することを含め、それぞれのアプリケーション展開ユニットのコンテナ化の実現可能性および複雑さについて自動的に推論する。
処置および説明(Disposition and Explanation):機械論理は、コンテナ化解析およびビジネス要件を考慮して、現在においてはSMEが手動で実行すると考えられるもののようなアプリケーション・モダナイゼーション処置および労力サイジングに到達する。この手法は全体がデータ駆動であり、高度な説明を支援する。
本発明のいくつかの実施形態は、下記の操作、特徴、特性もしくは利点、またはこれらの組合せのうちの1つまたは複数を含むことができる:(i)標準オントロジに対してオート・キュレーション、データ標準化および代入を実行すること、(ii)付随する知識ベースを自動的に学習すること、(iii)プラットフォーム、ミドルウェア、ランタイム、プログラミング言語、ライブラリおよびアプリケーション/データベースなどの多様な一組の技術をカバーすること、(iv)NERおよびマルチ・ラベル分類を使用してエンティティおよび関係抽出を実行すること、(v)技術バージョンおよびバリアントのコンパティビリティを考慮した計算を含め、それぞれのアプリケーション展開ユニットのコンテナ化の実現可能性および複雑さを自動的に計算および決定すること、(vi)コンテナ化解析とビジネス要件との組合せを使用して、モダナイゼーション処置および労力サイジングを推奨すること、(vii)NERおよびマルチ・ラベル分類モデルのような、オート・キュレーション、データ標準化、代入およびエンティティ関係抽出技術を実施して、構造化されていないデータから、プラットフォーム、ミドルウェア、ランタイム、プログラミング言語、ライブラリおよびアプリケーション/データベースなどの技術を自動的に抽出すること、(viii)それぞれのアプリケーションの異なる展開ユニットのコンテナ化の実現可能性および複雑さについて自動的に推論するアルゴリズム、および技術バージョンおよびバリアントのコンパティビリティによる推論を実施すること、ならびに(ix)上述のコンテナ化解析およびビジネス要件に基づいてモダナイゼーション処置および労力サイジングを推奨するモデルを実施すること。
図5の流れ図500は、本発明の一実施形態による、アプリケーション・モダナイゼーション方法を示している。流れ図500は、下記の操作を含む(図5には操作間のプロセス・フローが矢印によって示されている):S502(この操作は副操作S502a、S502bおよびS502cを含む)、S504(この操作は副操作S504a、S504bおよびS504cを含む)、S506(この操作は副操作S506a、S506bおよびS506cを含む)、S508(この操作は副操作S508a、S508bおよびS508cを含む)、ならびにS518(この操作は副操作S518aおよびS518bを含む)。これらの操作は全て、Pythonプログラミング言語を使用して書かれており、Linux(登録商標)ベースのコンテナを使用して展開される。これらの操作は、Linux(登録商標)VM上またはLinux(登録商標)ベースのブレード・サーバ上にインストールすることができる。これらの操作の実行を支援するため、コンテナは、Pythonライブラリなど、前もって必要な全てのものを提供する。これらの操作をランする前に、Linux(登録商標)VMまたはブレード・サーバは、ユーザがそれらをプリインストールすることを要求するであろう。
図5では、データ・インジェスチョンが、クライアントCMDBなどの異なるデータ(S502a参照)、それが展開されるそのインフラストラクチャなどのアプリケーション・ワークロード(S502b参照)、およびそれらのアプリケーションに関するクライアントから集められたSMEサーベイ・データ(S502c)に関する。知識学習ステップでは、コンテナ化アドバイザ(containerization advisor)(本明細書では時に「ACA」と呼ばれる)が、アプリケーション・ワークロードのデータ標準化を実行する(S504a参照。.netまたはDOT NETは、.NETフレームワークとして標準化されることに留意されたい)。ACAは、アプリケーション構成要素のオート・キュレーションを実行する(S504b参照)。すなわち、ACAが、データベース、ミドルウェアおよび他の関連情報などの構成要素をアプリケーション・ワークロードから抽出する。当業者には理解されることだが、本発明のさまざまな実施形態に特に関連していない、従来のコンピュータ・システムでこの操作が実行される方式と同様の方式で、不明情報発見操作504cが実行される。
ACAは、自然言語処理技術「固有表現認識」を使用してデータ(エンティティ)標準化を実行する。この操作では、ACAが、入力から正確なバージョンおよびバリアントを推奨する。例えば、入力red hat v6.9に関して、ACAは、そのバリアントをRed Hat Linux(登録商標)、そのバージョンを6.9とそれぞれ推断することができる(S506a参照)。ACAは、不明バリアントまたはバージョンを、KGベースの推論を使用して処理する(S506b参照)。ACAは、不明入力を、コンパティブルなルールに基づく決定論的推論によって処理する(S506c参照)。例えば、所与のアプリケーション入力.NETフレームワークに関して、KGベースの推論を使用するACAは、このアプリケーションのOSがWindows(登録商標)であると推断することができる。ACAは、所与のワークロードをモダナイズする最良の可能なコンテナを推奨する観点(508a参照)、およびコンテナ化の追加の複雑さ(すなわち、アプリケーション・ワークロードをコンテナ化することがどれくらい困難か)の観点(S508C参照)から、コンテナ化評価を提供する。入来アプリケーションとそのアプリケーションに対して推奨されたコンテナのバリアントおよびバージョン間の違いに基づいてコンテナ化の複雑さが決定される(S508b参照)。ACAは、それを実際にコンテナ化、リファクタ、リパッケージまたは保持する必要があるかどうかに関わらず、アプリケーション・ワークロードに対する処置を推奨する(S518a参照)。最後に、ACAは、推奨された処置にレガシー・アプリケーション・ワークロードを移行させるための労力推定を、1週間当たりの人数に換算して提供する(S518b参照)。
図6に示されているとおり、自動データ・キュレーション図600は、IBM(登録商標)のCIT(クラウド・イノベーション・ツールキット(cloud innovation toolkit))データ・ブロック602、アプリケーション・アフィニティ・データ(scope+)ブロック604、コンテナ・レポ・データ(container repo data)ブロック606、アプリケーション特徴ブロック608、コンテナ化評価ブロック610、決定および説明ブロック612、コンテナ化リスク評価ブロック614、アプリケーション所有者616、発見の旅(journey-of-discovery)矢印618、およびコンテナ化アドバイザ(ACA)ブロック620を含む。図6の操作は全て、Pythonプログラミング言語を使用して書かれており、Linux(登録商標)ベースのコンテナを使用して展開される。これらの操作は、Linux(登録商標)VM上またはLinux(登録商標)ベースのブレード・サーバ上にインストールすることができる。これらの操作の実行を支援するため、コンテナは、Pythonライブラリなど、前もって必要な全てのものを提供する。これらの操作をランする前に、Linux(登録商標)VMまたはブレード・サーバは、ユーザがそれらをプリインストールすることを要求するであろう。
CITデータ・ブロック602は以下のタイプのデータを含む:アプリケーション名(App Name)、アプリケーション記述(App Description)、プラットフォームおよびバージョン(Platform and Version)、技術概要(Tech Summary)、プログラミング言語(Programming Languages)、ミドルウェア(Middleware)、統合化サービス(Integration Services)、ビジネス・クリティカル(Business Critical)、インターネット・フェーシング(Internet Facing)およびクライアント・フェーシング(Client Facing)。
アプリケーション・アフィニティ・データ(scope+)ブロック604は以下のタイプのデータを含む:アプリケーションInst関係(App Inst Relations)、アプリケーションInstビジネス・ドメイン(App Inst business domain)、アプリケーション・サイズ(App size)、1年当たりの欠点数(Number of Defects per Year)、変更の頻度(Frequency of Change)、ビジネス戦略値(Business Strategic Value)、ビジネスSaaS(ソフトウェア・アズ・ア・サービス)アベイラビリティ(Business SaaS (software as a service) Availability)、ビジネス・アジリティ・ベネフィット(Business Agility Benefits)、ビジネス・プロセス・エリア(Business Process Area)、データ・レジデンシ要件(Data Residency Requirements)、データ転送要件(Data transfer Requirements)、スケーラビリティおよびエラスティシティ要件(Scalability and Elasticity Requirements)、SLA(サービス水準合意)およびSLO(サービス水準目的)(SLAs (service level agreements) and SLOs (service level objectives))、ステートレス(Stateless)、アプリケーションInstタイプ(App Inst type)、関係タイプ(Relationship type)、関係ステータス(Relationship Status)、ならびに現在のライフサイクル(Current Lifecycle)。
コンテナ・レポ・データ・ブロック606は以下のタイプのデータを含む:コンテナ名(Container Name)、コンテナ記述(Container Description)、コンテナ・バージョン(Container Version)、コンテナOrgおよびURL(ユニフォーム・リソース・ロケータ)(Container Org & URL (uniform resource locator))、ならびにOS(オペレーティング・システム)およびプラットフォーム(OS (operating system) and Platform)。
アプリケーション特徴ブロック608は以下のものを含む:アプリケーション名、アプリケーション記述、プラットフォームおよびOS(Platform and OS)、プログラミング言語、ミドルウェア、従属アプリケーション(Dependent Applications)、ビジネス・クリティカリティ(Business Criticality)、複雑さ(Complexity)ならびにデータ確認誤り(Data Validation Errors)。
コンテナ化評価ブロック610は以下のものを含む:アプリケーション・イメージ名(App Image Name)、アプリケーション記述、プラットフォームおよびOS、プログラミング言語、ミドルウェア、従属アプリケーション、ビジネス・クリティカリティ、複雑さ、信頼度(Confidence)、参照Dockerイメージ(Reference Docker Images)、ならびにコンテナ化問題(Containerization Issues)。
図600は、インフラストラクチャの詳細を含むアプリケーション・データの集合体を示しており、そのようなアプリケーションは、市販のCITツール602およびscope+ブロック604などのさまざまな源から展開される。コンテナ・レポ・データ・ブロック606は、コンテナ化評価を生成するためにレガシー・アプリケーション・データにマップするために後に使用されるDocker Hubイメージに関する詳細を含む。
この例では、コンテナ化アドバイザ(ACA)ブロック620が、以下の3つの機能を含む:(i)生入力を標準化および確認するためにクラウド・オーケストレーション・アプリケーション評価を実行する機能、(ii)不明入力を処理する機能、ならびに(iii)コンテナ化計画を、説明可能性(explain ability)とともに推奨する機能(ブロック612参照)。確認のために、ブロック620は、知識グラフ(KG)ベースの推論を使用する。この推論は、コンセプト間でそれらの関係に基づいて捕捉されたコンパティビリティ制約に基づいて実行される。第2に、ブロック620は、他の構成要素とのその依存性、および全てのものをコンテナ化することができるのかまたはできないのかなどのいくつかの因子に基づいて、コンテナ化リスクを評価する(ブロック614参照)。リスク計算のために、ブロック620は動的ベイズ・モデルを使用する。第3に、ブロック620は、有効なアプリケーション(ブロック612参照)に対してコンテナ化評価(ブロック610参照)を生成する。第4に、ブロック620はさらに、コンテナ化評価につながるアプリケーション特徴(ブロック608参照)を提供する。
いくつかの実施形態では、レガシー・アプリケーションに対するオントロジが、11のモダナイゼーション態様を含む(本明細書では時に、モダナイゼーション態様を「コンセプト」と呼ぶことがある):ハードウェア(HW)、ストレージ、OS、アプリケーション・サーバ/ミドルウェア(Appサーバ/MW)、ランタイム、アプリケーション/ミドルウェア/データベース(App/MW/DB)、Runlib、ライブラリおよびプログラミング言語(Lang)。他の実施形態は、これよりも多くの、またはこれよりも少数のコンセプトを含むことがある。コンセプトに加えて、この特定の例では、オントロジが、4つの関係タイプ(すなわちオントロジのさまざまなノード間に存在することがある接続またはエッジのタイプ)を有する:有する(has)、支持する(supports)、上でランする(runs on)、および依存性(dependency)。クライアントがアプリケーション・ワークロードを入力として提供したとき、ACAは、レガシー・アプリケーションに対するオントロジのそのようなコンセプトにマップするために、そのワークロードの中の構成要素を標準化する。さらに、このようなコンセプトおよび関係を使用して、ACAは、不明入力を処理するためにホワイトリスト・ルール(Whitelist rule)およびブラックリスト・ルール(Blacklist rule)として生成されたいくつかのコンパティビリティ制約を定義し、そのワークロードを確認する。そのワークロードが確認された後、ACAは、右側の(on the right-hand side)dockerオントロジに基づいてコンテナ化計画を生成する。dockerオントロジは、3つのコンセプト、すなわちDockerイメージ、HWおよびストレージを有する。dockerオントロジは、3つの関係、すなわち、有する(has)、上でランする(runs on)、および依存性(dependency)を有する。それぞれのDockerイメージは、レガシー・アプリケーション・ワークロードが有するものと同じ一組のコンセプトを有する。所与のアプリケーション・ワークロードに基づいて、ACAは、アプリケーション・ワークロードからの識別されたコンセプトを突き合わせ、1つまたは複数の関連コンセプトを有する最良の可能なdockerイメージを発見する。例えば、Linux(登録商標)、DB2などのアプリケーション・ワークロードを考える。このワークロードを、OSとしてLinux(登録商標)を有し、アプリケーション/ミドルウェア/データベースとしてDB2を有するDB2 dockerイメージと突き合わせる。
IV.定義
本発明(present invention):この用語を、用語「本発明」によって記述された主題が、出願されたときに請求項によって、または特許手続き遂行(patent prosecution)後に最終的に発行される可能性がある請求項によってカバーされることの絶対的指示と受け取るべきではなく、用語「本発明」は、本明細書の開示が潜在的に新規であると信じられる総合的な感触を読み手が得るのを助けるために使用される。関連情報が出現し、請求項は潜在的に補正されるため、用語「本発明」の使用によって示されるこの理解は、一時的(tentative)かつ暫定的(provisional)であり、特許手続き遂行中に変更を受けやすい。
実施形態(embodiment):上記の「本発明」の定義を参照されたい。用語「実施形態」にも同様の注意が適用される。
および/または(and/or):包含的な「または」である。例えば、A、B「および/または」Cは、AまたはBまたはCのうちの少なくとも1つが真であり、適用可能であることを意味する。
含む(including)/含む(include)/含む(includes):そうではないと明示的に記されてない限り、「~を含むが、それに限定されるわけではない(including but not necessarily limited to)」ことを意味する。
モジュール(module)/サブモジュール(sub-module):いくつかの種類の機能を実行するように有効に機能する任意の一組のハードウェア、ファームウェアもしくはソフトウェアまたはこれらの組合せであり、そのモジュールが、(i)単一の局所近接域(local proximity)にある、(ii)幅広いエリアにわたって分散している、(iii)大きなソフトウェア・コード内の単一の近接域にある、(iv)単一のソフトウェア・コード内に位置する、(v)単一のストレージ・デバイス、メモリもしくは媒体内に位置する、(vi)機械的に接続されている、(vii)電気的に接続されている、または(viii)データ通信するように接続されているかどうか、あるいはこれらの組合せであるかどうかを問わない。
コンピュータ(computer):かなりのデータ処理能力もしくは機械可読命令読取り能力またはその両方を有する任意のデバイスであり、これには、限定はされないが、デスクトップ・コンピュータ、メインフレーム・コンピュータ、ラップトップ・コンピュータ、フィールド・プログラマブル・ゲート・アレイ(FPGA)ベースのデバイス、スマート・フォン、パーソナル・デジタル・アシスタント(PDA)、ボディ装着型または挿入型のコンピュータ、埋め込みデバイス様式のコンピュータ、特定用途向け集積回路(ASIC)ベースのデバイスが含まれる。
発明者による先開示の記載
米国特許法102条(b)(1)(A)の下、下記の開示を提示する。
開示:2020年5月5日にインターネット上で公開された「アプリケーション・モダナイゼーションのためのAIを用いたイノベーションの加速-AIへの旅ブログ(Accelerate innovation with AI for app modernization - Journey to AI Blog)」、著者:ルシル・プーリ(Ruchir Puri)およびショーン・ドーザ(Shawn DSouza)。この文献は、この文献に開示された技術に関する詳細な議論を有すること、または有しないことがあるが、この文献は、ここで議論される技術を含んでいる可能性がある商業提供物(commercial offering)の最良のドキュメンテーションとみなされることに留意されたい。
100 ネットワーク化されたコンピュータ・システム
102 サーバ・サブシステム
104 クライアント・サブシステム
106 クライアント・サブシステム
108 クライアント・サブシステム
110 クライアント・サブシステム
112 クライアント・サブシステム
114 通信ネットワーク
200 サーバ・コンピュータ
202 通信ユニット
204 プロセッサ・セット
206 入力/出力(I/O)インタフェース・セット
208 メモリ
210 永続性ストレージ
212 ディスプレイ
214 外部デバイス
230 ランダム・アクセス・メモリ(RAM)
232 キャッシュ
300 プログラム
302 知識グラフ生成モジュール(モッド)
304 知識グラフ
305 オントロジ
306 顧客エンティティ・データ受信モッド
308 人工知能モッド
310 出力モッド

Claims (11)

  1. コンピュータが実行する方法であって、
    エンティティの識別を示す情報と、前記エンティティによって所有もしくは管理された、または前記エンティティによって所有および管理されたコンピュータ・システムの性能の尺度となるさまざまなパラメータにそれぞれ関する複数の性能パラメータ値とを含むエンティティ・データ・セットを受信すること、ならびに
    前記エンティティ・データ・セットに人工知能アルゴリズムを適用して、前記コンピュータ・システムのモダナイゼーションに関する第1の推奨を取得すること
    を含む、方法。
  2. 前記第1の推奨を前記エンティティに送信すること
    をさらに含む、請求項1に記載の方法。
  3. 知識グラフを受信すること
    をさらに含み、前記人工知能アルゴリズムの前記適用が、前記人工知能アルゴリズムによる前記知識グラフの使用を含む、
    請求項1に記載の方法。
  4. オントロジを受信すること
    をさらに含み、前記人工知能アルゴリズムの前記適用が、前記人工知能アルゴリズムによる前記オントロジの使用を含む、
    請求項3に記載の方法。
  5. 前記第1の推奨が、前記エンティティの前記コンピュータ・システムの少なくとも一部分をリパッケージもしくはリプラットフォームすることの推奨、または前記エンティティの前記コンピュータ・システムの少なくとも一部分をリパッケージおよびリプラットフォームすることの推奨である、請求項1に記載の方法。
  6. 前記第1の推奨が、前記エンティティの前記コンピュータ・システムの少なくとも一部分をリファクタすることの推奨である、請求項1に記載の方法。
  7. 前記第1の推奨が、前記エンティティの前記コンピュータ・システムで使用されている仮想コンピューティング環境をモダナイズすることの推奨である、請求項1に記載の方法。
  8. 前記コンピュータ・システムのモダナイゼーションに関する前記推奨が、前記コンピュータ・システム上でランするアプリケーションの潜在的なモダナイゼーション推奨を対象としている、請求項1に記載の方法。
  9. 前記アプリケーションが、入来コンピューティング・ワークロードを、前記コンピュータ・システム上でランしているコンテナ・インスタンス間もしくは仮想機械インスタンス間で、または前記コンピュータ・システム上でランしているコンテナ・インスタンスおよび仮想機械インスタンス間で割り振る機能を含む仮想環境オーケストレーション・アプリケーションである、請求項8に記載の方法。
  10. コンピュータが実行するプログラムであって、
    前記コンピュータに、
    エンティティの識別を示す情報と、前記エンティティによって所有もしくは管理された、または前記エンティティによって所有および管理されたコンピュータ・システムの性能の尺度となるさまざまなパラメータにそれぞれ関する複数の性能パラメータ値とを含むエンティティ・データ・セットを受信することと、
    前記エンティティ・データ・セットに人工知能アルゴリズムを適用して、前記コンピュータ・システムのモダナイゼーションに関する第1の推奨を取得することと
    を実行させる、プログラム。
  11. コンピュータ・システムであって、
    プロセッサ・セットと、
    それぞれのストレージ・デバイスが一組のストレージ媒体を含む一組のストレージ・デバイスと、
    前記一組のストレージ・デバイス上に共同で記憶されたコンピュータ・コードであり、プロセッサ・セットに操作を実行させるためのデータおよび命令を含む、前記コンピュータ・コードと
    を含み、前記操作が、
    エンティティの識別を示す情報と、前記エンティティによって所有もしくは管理された、または前記エンティティによって所有および管理されたコンピュータ・システムの性能の尺度となるさまざまなパラメータにそれぞれ関する複数の性能パラメータ値とを含むエンティティ・データ・セットを受信する操作と、
    前記エンティティ・データ・セットに人工知能アルゴリズムを適用して、前記コンピュータ・システムのモダナイゼーションに関する第1の推奨を取得する操作と
    を含む、コンピュータ・システム。
JP2021174401A 2020-11-03 2021-10-26 方法、プログラム、およびコンピュータ・システム(人工知能ベースのアプリケーション・モダナイゼーション勧告) Pending JP2022075553A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/087,663 US20220138617A1 (en) 2020-11-03 2020-11-03 Artificial intelligence based application modernization advisory
US17/087,663 2020-11-03

Publications (1)

Publication Number Publication Date
JP2022075553A true JP2022075553A (ja) 2022-05-18

Family

ID=78718407

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021174401A Pending JP2022075553A (ja) 2020-11-03 2021-10-26 方法、プログラム、およびコンピュータ・システム(人工知能ベースのアプリケーション・モダナイゼーション勧告)

Country Status (4)

Country Link
US (1) US20220138617A1 (ja)
JP (1) JP2022075553A (ja)
DE (1) DE102021125183A1 (ja)
GB (1) GB2602703A (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11853753B1 (en) * 2021-08-23 2023-12-26 Amazon Technologies, Inc. Detection, presentation, and resolution of bottlenecks in monolith decomposition
US11768674B2 (en) * 2021-10-01 2023-09-26 International Business Machines Corporation Application development mechanism based on a reference architecture
US11899779B1 (en) * 2021-12-09 2024-02-13 AppOmni, Inc. Normalizing application external data
US20230401038A1 (en) * 2022-06-13 2023-12-14 Cognizant Technology Solutions India Pvt. Ltd. System and method for optimized modernization of applications
DE102023202074A1 (de) 2023-03-08 2024-09-12 Zf Friedrichshafen Ag Verfahren zum Ermöglichen von Zugang zu einer Softwareanwendung in einem Fahrzeug

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8930930B2 (en) * 2008-09-04 2015-01-06 International Business Machines Corporation Updating a computer system
US8930919B2 (en) * 2012-09-25 2015-01-06 The Boeing Company Modernization of legacy software systems based on modeled dependencies
US9189224B2 (en) * 2013-07-11 2015-11-17 Oracle International Corporation Forming an upgrade recommendation in a cloud computing environment
US10387795B1 (en) * 2014-04-02 2019-08-20 Plentyoffish Media Inc. Systems and methods for training and employing a machine learning system in providing service level upgrade offers
US9886262B2 (en) * 2015-03-16 2018-02-06 Microsoft Technology Licensing, Llc Adaptive upgrade to computing systems
US10496935B2 (en) * 2016-03-17 2019-12-03 Accenture Global Solutions Limited System modernization using machine learning
US20200133653A1 (en) * 2018-10-26 2020-04-30 Toshiba Tec Kabushiki Kaisha Generation of recommended multifunction peripheral firmware and applications based on group machine learning
US11271795B2 (en) * 2019-02-08 2022-03-08 Ciena Corporation Systems and methods for proactive network operations
CN110083503A (zh) * 2019-03-27 2019-08-02 上海德衡数据科技有限公司 基于数据中心运维的知识库信息感知方法
US11936525B2 (en) * 2019-10-01 2024-03-19 Lenovo (Singapore) Pte. Ltd. Determining a time to perform an update
US12061961B2 (en) * 2020-05-15 2024-08-13 Nec Corporation Automated knowledge infusion for robust and transferable machine learning
US11354120B1 (en) * 2020-06-05 2022-06-07 Amazon Technologies, Inc. Machine learning-based software application modernization assessments

Also Published As

Publication number Publication date
DE102021125183A1 (de) 2022-05-05
US20220138617A1 (en) 2022-05-05
GB2602703A9 (en) 2022-07-20
GB2602703A (en) 2022-07-13
GB202114739D0 (en) 2021-12-01

Similar Documents

Publication Publication Date Title
JP2022075553A (ja) 方法、プログラム、およびコンピュータ・システム(人工知能ベースのアプリケーション・モダナイゼーション勧告)
US10776337B2 (en) Multi-dimensional knowledge index and application thereof
US20160080422A1 (en) Transforming business policies to information technology security control terms for improved system compliance
US10846644B2 (en) Cognitive process learning
US10515119B2 (en) Sequential recommender system for virtualized network services
US11720826B2 (en) Feedback loop learning between artificial intelligence systems
WO2019220260A1 (en) Explanations for artificial intelligence based recommendations
US20190171726A1 (en) Suggesting follow up questions from user behavior
US11171825B2 (en) Context-based resource allocation with extended user concepts
US11348032B1 (en) Automated generation of machine learning models
US11221855B2 (en) Transformation of an enterprise application into a cloud native application
US11968224B2 (en) Shift-left security risk analysis
US10540440B2 (en) Relation extraction using Q and A
CN111406383B (zh) 用于云计算的方法、系统和计算机可读存储介质
US20200302350A1 (en) Natural language processing based business domain modeling
US20170078138A1 (en) Real-time tagger
US20220215286A1 (en) Active learning improving similar task recommendations
US20220350674A1 (en) Generating and/or modifying metadata for infrastructure and runtime information for content
US20220113964A1 (en) Learning-based automation machine learning code annotation in computational notebooks
US20200380530A1 (en) Automatic internet of things enabled contract compliance monitoring
US11481211B1 (en) Dynamically creating source code comments
US11681501B2 (en) Artificial intelligence enabled open source project enabler and recommendation platform
US20230177355A1 (en) Automated fairness-driven graph node label classification
US20230177385A1 (en) Federated machine learning based on partially secured spatio-temporal data
US20210342837A1 (en) Template based multi-party process management

Legal Events

Date Code Title Description
RD16 Notification of change of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7436

Effective date: 20211125

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20211126

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220518

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240319