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

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

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特許7556650構成を使用したコンピューティング環境内のソフトウェア・アプリケーションの検出のための自動的な技術
<>
  • 特許-構成を使用したコンピューティング環境内のソフトウェア・アプリケーションの検出のための自動的な技術 図1
  • 特許-構成を使用したコンピューティング環境内のソフトウェア・アプリケーションの検出のための自動的な技術 図2
  • 特許-構成を使用したコンピューティング環境内のソフトウェア・アプリケーションの検出のための自動的な技術 図3
  • 特許-構成を使用したコンピューティング環境内のソフトウェア・アプリケーションの検出のための自動的な技術 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-17
(45)【発行日】2024-09-26
(54)【発明の名称】構成を使用したコンピューティング環境内のソフトウェア・アプリケーションの検出のための自動的な技術
(51)【国際特許分類】
   G06F 8/61 20180101AFI20240918BHJP
【FI】
G06F8/61
【請求項の数】 17
(21)【出願番号】P 2022523455
(86)(22)【出願日】2020-11-06
(65)【公表番号】
(43)【公表日】2023-01-11
(86)【国際出願番号】 IB2020060454
(87)【国際公開番号】W WO2021090254
(87)【国際公開日】2021-05-14
【審査請求日】2023-04-24
(31)【優先権主張番号】16/677,991
(32)【優先日】2019-11-08
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】バボル、アダム
(72)【発明者】
【氏名】ディスイ、アダム
(72)【発明者】
【氏名】ヴゥヴァツィックツェク、ヨアンナ
(72)【発明者】
【氏名】モール、ヤクブ
(72)【発明者】
【氏名】カエムアカ、ミッシェル
【審査官】西間木 祐紀
(56)【参考文献】
【文献】米国特許出願公開第2018/0096042(US,A1)
【文献】国際公開第2018/197928(WO,A1)
【文献】米国特許出願公開第2016/0026449(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/61
(57)【特許請求の範囲】
【請求項1】
コンピューティング環境にインストールされたソフトウェアを検出するためのコンピュータが実行する方法であって、前記方法は、コンピュータに対して、
署名のカタログを取得すること、
前記コンピューティング環境の構成オブジェクトをスキャンして、前記コンピューティング環境に提供されたソフトウェア・アプリケーションに対応する構成パラメータ取得することであって、前記構成パラメータは、構成ファイルを配置するボリューム、コンテナ内に配置される環境変数、及び構成マップを含む、前記構成パラメータを取得すること、及び
署名の前記カタログと、構成パラメータを比較して、前記コンピューティング環境の中の前記ソフトウェア・アプリケーションを判断すること
を実行させる方法。
【請求項2】
前記方法は、
署名の前記カタログからの署名のトレーニング・セットを用いてトレーニングされた機械学習システムによって、インストールされたソフトウェアの構成情報に基づいて署名の前記カタログのための少なくとも1つの署名を生成すること
を含む、請求項1に記載の方法。
【請求項3】
前記コンピューティング環境は、1つ又はそれ以上のクラスタを含むクラスタ・ベースのコンピューティング環境である、請求項1又は2に記載の方法。
【請求項4】
前記方法はさらに、
異なるクラスタを横断して判断した前記ソフトウェア・アプリケーションを再分散して、処理を最適化すること
を含む、請求項1~3の何れか1項に記載の方法。
【請求項5】
さらに、
前記コンピューティング環境に含まれる1つ又はそれ以上のクラスタ内のポッドのどれが、特定の構成パラメータに関連するオブジェクトを使用しているかを判断すること、及び
前記ポッドの出力を、署名の前記カタログと比較して、前記ソフトウェア・アプリケーションを識別すること
を含む
請求項1~の何れか1項に記載の方法。
【請求項6】
前記クラスタ・ベースのコンピューティング環境は、Kubernetesのクラスタ、又はNomadのクラスタである
請求項に記載の方法。
【請求項7】
前記ソフトウェア・アプリケーションは、コンテナ内にパッケージされる
請求項1~の何れか1項に記載の方法。
【請求項8】
署名の前記カタログは、前記ソフトウェア・アプリケーションに対応するボリューム、コマンド、構成パラメータ、及び秘密含む情報を含む
請求項1~の何れか1項に記載の方法。
【請求項9】
コンピューティング環境にインストールされたソフトウェア・アプリケーションを検出するためのシステムであって、1つ又はそれ以上のプロセッサが、
署名のカタログを取得し、
前記コンピューティング環境の構成オブジェクトをスキャンして、前記コンピューティング環境内に提供されたソフトウェア・アプリケーションに対応する構成パラメータ取得し、前記構成パラメータは、構成ファイルを配置するボリューム、コンテナ内に配置される環境変数、及び構成マップを含み、
署名の前記カタログと、構成パラメータを比較して、前記コンピューティング環境の中の前記ソフトウェア・アプリケーションを判断する
ように構成される、
システム。
【請求項10】
前記プロセッサが、
署名の前記カタログからの署名のトレーニング・セットを用いてトレーニングされた機械学習システムによって、インストールされたソフトウェアの構成情報に基づいて署名の前記カタログのための少なくとも1つの署名を生成するように構成される、
請求項9に記載のシステム。
【請求項11】
前記コンピューティング環境は、1つ又はそれ以上のクラスタを含むクラスタ・ベースのコンピューティング環境である、請求項9又は10に記載のシステム。
【請求項12】
前記プロセッサが、さらに、
異なるクラスタを横断して判断した前記ソフトウェア・アプリケーションを再分散して、処理を最適化する
請求項9~11の何れか1項に記載のシステム。
【請求項13】
前記プロセッサが、さらに、
前記1つ又はそれ以上のクラスタ内のポッドのどれが、特定の構成パラメータに関連するオブジェクトを使用しているかを判断すること、及び
前記ポッドの出力を、署名の前記カタログと比較して、前記ソフトウェア・アプリケーションを識別すること
を含む
請求項912の何れか1項に記載のシステム。
【請求項14】
前記クラスタ・ベースのコンピューティング環境は、Kubernetesのクラスタ、又はNomadのクラスタである
請求項11に記載のシステム。
【請求項15】
前記ソフトウェア・アプリケーションは、コンテナ内にパッケージされる
請求項914の何れか1項に記載のシステム。
【請求項16】
署名の前記カタログは、前記ソフトウェア・アプリケーションに対応するボリューム、コマンド、構成パラメータ、及び秘密含む情報を含む
請求項915の何れか1項に記載のシステム。
【請求項17】
請求項1~の何れか1項に記載された方法を、コンピュータが実行するためのコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピューティング環境内でソフトウェア・アプリケーションを検出することに関し、より詳細には、構成オブジェクトに基づく、クラスタ・ベースのコンピューティング環境におけるソウトウェア・アプリケーションを検出するための自動的な技術に関する。
【背景技術】
【0002】
ソフトウェア資産管理においては、管理者は、何のタイプのソフトウェア・アプリケーションがインストールされ、アプリケーションがどこで使用されているかを知る必要がある。クラスタ・ベースの環境においては、ソフトウェア・アプリケーションは、アプリケーションの識別を許容するタグ、又は他のアノテーションなしに、コンテナ内に配置され、かつインストールされる可能性がある。
【0003】
インストールされたアプリケーションを発見するための従来の技術は、クラスタ内でファイル及びファイル・システムをスキャンすることを含み、それは、時間の浪費及び大きな計算機的負荷の両方である。
【発明の概要】
【0004】
本発明の実施形態によれば、クラスタ・ベースのコンピューティング環境内にインストールされたソフトウェア・アプリケーションを検出するための自動的な技術が提供される。特に、構成オブジェクトは、インストールされたソフトウェア・アプリケーションを識別するために使用することができる。
【0005】
コンピューティング環境内にインストールされたソフトウェア・アプリケーションを検出するための方法、システム及びコンピュータ可読な媒体が提供される。署名のカタログが取得される。コンピューティング環境は、スキャンされて、コンピューティング環境内に提供されたソフトウェア・アプリケーションに対応する構成パラメータについての情報を取得する。署名のカタログが構成パラメータを含む情報と比較され、コンピューティング環境内のソフトウェア・アプリケーションを判断する。このアプローチの効果は、ファイル・システムのスキャン操作を実行することなく、アプリケーションを識別することを含む。
【0006】
コンピューティング環境は、1つ又はそれ以上のクラスタを含むクラスタ・ベースのコンピューティング環境とすることができる。判断されたソフトウェア・アプリケーションは、異なるクラスタを横断して分散され、処理を最適化することができる。多数のクラスタを横断してワークロードを再分散、又はバランスさせることによって、これは特定のクラスタ上のソフトウェア・アプリケーションの識別に基づくことができるので、コンピューティング性能が改善される。
【0007】
1つ又はそれ以上のクラスタ内のポッド(pod)は、特定の構成パラメータに関連するオブジェクトを使用することができる。ポッドの出力は、署名のカタログと比較されて、ソフトウェア・アプリケーションを識別することを可能とする。ポッド内で識別した情報をパッケージすることは、アプリケーションがファイル・システム上でスキャン操作を実行せずに識別されることを許容する。
【0008】
署名のカタログは、ボリューム、コマンド、構成パラメータ、又はソフトウェア・アプリケーションに対応する秘密を含む情報を含むことができる。署名カタログは、スキャン操作によって得られる情報に基づいて、ソフトウェア・アプリケーションを識別することを許容する。
【0009】
この概要は、本開示の実施形態のキー、又は本質的な特徴を指定することを意図するものではなく、又、本開示の範囲を限定するために使用されることを意図するものでもないことについて理解されるべきである。本開示の他の特徴は、以下の説明を通して容易に理解されるであろう。
【0010】
一般に、種々の図面における類似の参照符号は、類似のコンポーネントを指定するために使用される。本開示のいくつかの実施形態の、図面を伴った、より詳細な説明を通じて、本開示の上記特徴及び効果がより明確にされるであろう。
【図面の簡単な説明】
【0011】
図1図1は、図1は、本開示の実施形態による、クラスタ・ベース環境内でソフトウェア・アプリケーションを自動的に検出するための実施例のコンピューティング環境のブロック図である。
図2図2は、本開示の実施形態による、構成オブジェクトに基づくソフトウェア・アプリケーションの自動的な検出のための操作の詳細なフローチャートである。
図3図3は、本開示の実施形態による、クラスタ・ベースのコンピューティング環境内でのソフトウェア・アプリケーションの使用を自動的に検出するための操作の詳細なフローチャートである。
図4図4は、本開示の実施形態による、クラスタ・ベースのコンピューティング環境内でのソフトウェア・アプリケーションを自動的に検出するための操作の高水準のフローチャートである。
【発明を実施するための形態】
【0012】
本発明の実施形態に使用するための実施例の環境が図1に示される。特に、環境は、1つ又はそれ以上のサーバ・システム10と、1つ又はそれ以上のクライアント、又はエンド・ユーザ・システム20とを含む。サーバ・システム10及びクライアント・システム20は、互いにリモートであり、かつネットワーク35越しに通信することができる。ネットワークは、如何なる好適な通信媒体の如何なる数(例えば、ワイド・エリア・ネットワーク(WAN)、ローカル・エリア・ネットワーク(LAN)、インターネット、イントラネットなど)により実装することができる。代替的に、サーバ・システム10及びクライアント・システム20は、互いにローカルであり、如何なる適切なローカル通信媒体(例えば、ローカル・エリア・ネットワーク(LAN)、有線、ワイヤレス、イントラネットなど)を介して通信することができる。
【0013】
クライアント・システム20は、ユーザがサーバ・システム10により生成された結果を見ることを可能とする。サーバ・システム10は、クラスタ・ベースのソフトウェア発見モジュール15を含み、以下に追加的に詳細に説明されるように、どのソフトウェア・アプリケーションがインストールされているかを自動的に判断することを可能とする。クライアント・サーバの関係が図1に示されているが、他の構成が可能であることが理解される。
【0014】
データベース30は、分析のための種々の情報を格納することができる(例えば、構成パラメータのスキャン・リポジトリ32、アンマッチ署名リポジトリ34、署名カタログ36、クラスタ分析リポジトリ38など)。データベース・システムは、如何なる従来の、又は他のデータベース、又はストレージ・ユニットにより実装することができると共に、サーバ・システム10及びクライアント・システム20についてローカル、又はリモートとすることができ、かつ如何なる適切な通信媒体(例えば、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)、インターネット、有線、ワイヤレス・リンク、イントラネットなど)を介して通信することができる。クライアント・システムは、グラフィカル・ユーザ(例えば、GUI)、又は他のインタフェース28(例えば、コマンド・ライン・プロンプト、メニュー・スクリーンなど)を提供して、所望するソフトウェア・アプリケーションの使用及び分析に関連するユーザから情報を要求すると共に、種々の分析結果を含むレポートを提供することができる(例えば、クラスタ単位でのソフトウェア・アプリケーション分析、ソフトウェア・アプリケーションのバージョン情報、アプリケーションのインストールされたロケーション、複製ソフトウェア・アプリケーションの存在、アンマッチ・ソフトウェア・アプリケーション、システム全体、又はクラスタ単位でのアプリケーション統計など)。
【0015】
構成パラメータのスキャン・リポジトリ32は、それぞれのクラスタのスキャンから取得された情報を含むことができ、この情報は、ボリューム、コマンド、構成パラメータ、秘密、又はソフトウェア・アプリケーションに関連するオブジェクトのスキャンから取得された、如何なる他の情報でも含む。いくつかの側面では、この情報は、異なる時間的期間にわたって編集され、特定のタイム・ウィンドウの間のアプリケーションのインストールを追跡することができる。
【0016】
アンマッチ・パラメータ・リポジトリ34は、スキャンから得られたマッチしていないアプリケーション・パラメータのリストを含むことができ、これは、さらなる分析のため、署名生成モジュール105へと提供することができる。いくつかの場合には、ユーザにマッチしていないアプリケーションを、マッチしていないパラメータを考慮してユーザに知らせるための通知を送付することができる。一度識別されると、この署名は、対応するアプリケーションのそれに続く識別及び他のクラスタのために署名カタログ36へと追加することができる。
【0017】
署名カタログ36は、インストールされたアプリケーションのための署名のリストを含むことができる。このカタログは、署名生成モジュール105によってアップデートされ、かつマッチしていないアプリケーションとして識別されると、署名が、マッチしていないアプリケーションについて生成され、かつそれに続くスキャンのために署名カタログに追加されることができる。いくつかの場合において、カタログは、手作業で構成することができる。他の場合には、一度、学習データとしての使用のために十分な数のカタログ・エントリが利用できるようになれば、機械学習システムをトレーニングして、スキャンされたデータからの署名カタログについての署名を構成することができる。
【0018】
クラスタ分析リポジトリ38は、そのクラスタについて、マッチしたアプリケーション及びマッチしないアプリケーションのリストを含むことができる。この情報と共に、コンピューティング・システムは、例えば、計算機的なワークロードのバランスを支援すると共に、そのクラスタの性能を改善するために、コンピューティング環境を横断して、アプリケーションを再分散することができる。いくつかの例においては、再分散は、自動的なやり方で実行することができる。
【0019】
サーバ・システム10及びクライアント・システム20は、ディスプレイ、又はモニタ、ベース(例えば、少なくとも1つのプロセッサ16,22、1つ又はそれ以上のメモリ17,24、又は内部的、又は外部的なネットワーク・インタフェース、又は通信デバイス18,26(例えば、モデム、ネットワーク・カードなど、又はこれらの組み合わせ))、任意的な入力デバイス(例えば、キーボード、マウス、又は他の入力デバイス)、ユーザ・インタフェース19,28及び如何なる市販に利用可能で、かつ慣用的なソフトウェア(例えば、サーバ/クライアント通信ソフトウェア、クラスタ・ベースのソフトウェア発見モジュール15など)を好ましくは搭載する、如何なる従来の、又は他のコンピュータ・システムにより実装することができる。
【0020】
代替的に、サーバは、クラスタ単位の基準で、ソフトウェア・アプリケーションの使用を検出することができる。操作のこのモードにおいては、それぞれのクラスタは、クラスタ・ベースのソフトウェア発見モジュール15へとアクセスする。グラフィカル・ユーザ(例えば、CGIなど)、又は他のインタフェース(例えばコマンド・ライン・プロンプト、メニュー・スクリーンなど)は、所望する分析について関連する対応するユーザからの情報を要求すると共に、分析結果を含むレポートを提供することができる。
【0021】
クラスタ・ベースのソフトウェア発見モジュール15は、本明細書で説明する本発明の実施形態の種々の機能を実行するための、1つ又はそれ以上のモジュール、又はユニットを含むことができる。種々のモジュール(例えば、署名生成モジュール105、構成パラメータ・スキャン・モジュール110、クラスタ・ベースの署名カタログ比較モジュール115、アンマッチ・パラメータ・モジュール120など)は、如何なる量のソフトウェア、又はハードウェア・モジュール、又はユニット、又はこれらの組み合わせの如何なる組み合わせによっても実装することができると共に、プロセッサ16,22による実行のために、サーバ、又はクライアント又はそれら両方の内部に滞在することができる。
【0022】
署名生成モジュール105は、ソフトウェア・アプリケーションのための署名のカタログを生成する機能を含む。いくつかの側面においては、情報は、構成ファイル、コマンド・ラインの引数、アプリケーション・コンテナ内に格納された環境変数、構成マップ及び秘密を含むボリュームとして、署名生成モジュールに提供することができる。秘密は、パスワード、OAuthトークン、又はsshキーを含むことができ、オブジェクト内に格納されて、機密性のある情報の管理を容易にすることができる。この情報は、特定のアプリケーションについて署名を生成するために使用することができる。スキャンの間に収集された情報は、これらの署名と比較されて、特定のクラスタ内にインストールされたアプリケーションを識別することができる。
【0023】
構成パラメータ・スキャン・モジュール110は、クラスタをスキャンして、それらのそれぞれのアプリケーションに関連するオブジェクト内に含まれるパラメータ、又は他の情報を識別し、かつ収集することができ、これらをコンテナ内に配置することができる。スキャンから得られた情報は、署名生成モジュール105により生成された署名カタログ36と比較されて、ソフトウェア・アプリケーションを識別することができる。
【0024】
クラスタ・ベースのカタログ比較モジュール115は、比較を実行して、クラスタ内のアプリケーションを識別することができる。このモジュールは、これらに限定されないが、構成ファイル、コマンド・ラインの引数、コンテナ内の環境変数、構成マップ、及び秘密(又はオブジェクト内に含まれるアプリケーションを識別するための如何なる他の好適な情報)を含むボリュームを含む情報を、例えば、署名カタログ36との比較により比較して、インストールされたアプリケーションを識別することができる。いくつかの場合においては、マッチは、比較される項目の間に十分な類似性があることが提供されること、例えば、項目が正確なマッチを有しないが、類似しなければならないとか、又はアプリケーションを識別するためのいくつかの他の特徴又は固有の特徴の組み合わせを有するとか、のことが提供されると、ポジティブとすることができる。他の場合においては、2つ、3つ、4つ、又はそれ以上パラメータがマッチすることで、アプリケーションをポジティブと識別することができる。
【0025】
アンマッチ・パラメータ・モジュール120は、スキャン中に取得されたが、署名カタログ36内の署名にマッチしないパラメータを識別する。このモジュールは、アンマッチ・パラメータに関してユーザに通知を送付することに加えて、アンマッチ・パラメータのリストを、さらなる分析のため、署名生成モジュールに渡す。
【0026】
図2は、構成パラメータの識別に基づくソフトウェア・アプリケーション発見のためのクラスタ・ベースの環境を示す。本明細書で提供される技術は、コンテナ・オーケストレーション・プラットホームを使用して、タグ又はアノテーション無く提供されたソフトウェアを発見するために使用することができ、ここで、ソフトウェアは、構成ファイル、コマンド、環境変数、又はオブジェクト(例えば、秘密、ConfigMap、など)を伴う。構成パラメータの他の実施例は、アプリケーション・モードの間を切替え、かつ特徴をオン・オフするための情報を含む。
【0027】
クラスタ210は、複数のポッド(220,230)を含むことができ、これは、クラスタの最小ユニットであり、かつクラスタ上で実行されているプロセスを表す。ポッドは、アプリケーションのインスタンスとすることができると共に、単一のコンテナ、又は多数のコンテナで実行することができる。
【0028】
コンテナは、アプリケーションをパッケージすることを許容して、ソフトウェア・アプリケーションが特定のマシンへの依存性を有しないようにすると共に、したがって如何なる好適なコンピューティング環境内の如何なるマシン上でも実行されることを可能とする。例えば、ソフトウェア・アプリケーションのコード、ライブラリ及び依存性は、コンテナに一緒にパッケージすることができる。仮想マシンのようにではなく、コンテナは、ソフトウェア・アプリケーションがホスト・オペレーティング・システムと同一のカーネルを共有することを許容することができる。したがって、操作のために、ホスト・オペレーティング環境に見出されないコード、又はライブラリ、又はそれらの両方と共にアプリケーションをパッケージすることで十分である。コンテナ・オーケストレーションは、特に大規模で、動的な環境内のソフトウェアを管理するために使用され、かつタスクを制御及び自動化するために使用することができる。
【0029】
本技術は、クラスタ・ベースのインフラ基盤上に提供されたアプリケーションが関連するパラメータに基づいて識別されることを許容する。これらの技術は、クラスタ内のアプリケーションの検出を著しく改善する。そのような構成情報は、普通にはアプリケーション・イメージとは別なので、構成情報の修正は、アプリケーション・イメージを再構成すること無しに実行することができる。構成パラメータの実施例は、これらに限定されることはなく、他の構成設定に加えて、構成ファイルを配置するボリューム、コマンド・ラインの引数、コンテナ内に配置される環境変数、構成マップ(ConfigMap API240,245)、秘密250を含む。いくつかの側面においては、ConfigMap APIオブジェクトは、ポッドに関連する構成データのキー-値ペアを保持するか、又はシステム・コンポーネントを識別するための他の構成データを保持する。
【0030】
オープン・ソースのコンテナ・オーケストレーション・プラットホームの実施例である、Kuberbetesは、それで多数のクラスタを管理するプラットホームを提供する。Kubernetesオブジェクトは、ユーザ・ネーム及びパスワードなどといった、秘密、又は機密性のデータを格納することができる。Kubernetesは、コンテナ化されたアプリケーションの配置、スケーリング、及び管理を自動化するために使用することができる。このプラットホームは、また、コンテナが異なるマシン上で実行されること、プロセスをスケールすること、ロード・バランスを実行すること、及び提供されたコンテナが故障した場合に追加的なコンテナを提供することを許容する。そのようなオーケストレーション・プラットホームのもう1つの例は、Nomadである。
【0031】
構成パラメータ・スキャン・モジュール110は、構成マップ、秘密、又はポッドに関連するアプリケーションを識別するための如何なる他の情報について、クラスタをスキャンするために使用することができる。以前に示したように、構成パラメータは、これらに限定されないが、ボリューム、コマンド・ラインの引数、コンテナ内の環境変数、構成マップ、及び秘密を含むことができる。スキャンから得られた情報である出力260は、構成パラメータのスキャン・リポジトリ32に格納することができ、かつ署名カタログ36内のエントリと比較されることができる。
【0032】
これらのボリューム・ベースの構成情報を使用するため、構成ファイルは、ボリューム内に配置される必要がある。代替的にコマンド・ラインの引数は、アプリケーションには渡されるが、冗長となる可能性がある。
【0033】
ConfigMap、又は秘密といった環境変数は、アプリケーション構成に含まれることができる。実施例として、Kubernetesにおいては、ウェブ・アプリケーション・ソフトウェア“X”に関連するConfigMapは、以下の情報を含むことができる:
apiバージョン: v1
種類: ConfigMap
メタデータ:
名前: web-app-config
名前空間: デフォールト
データ:
ウェブ.プロパティ: |
abc=def
スキャン期間=10s
ui.プロパティ: |
色.良=パープル
色.悪=イエロー
許容.テキストモード=真
所見概観=きわめて良
【0034】
ウェブ・アプリケーション“X”で使用されるこの特定のConfigMapは、署名へとハードコード化することができる。クラスタは、Kubernetesの特定のコマンド(例えば、kubectl describe pod pod_name)、又は如何なる他の好適なAPIを使用してスキャンすることができる。クラスタをスキャンして、ポッドを識別した後、情報は、ソフトウェア・アプリケーションを発見するために、ConfigMap内と同一、又は類似の情報を含む署名カタログ36と比較される。
【0035】
図3は、図1において上記にリストしたモジュールにより実行される実施例の操作を示す。クラスタ・ベースのソフトウェア発見モジュール15を参照すると、操作205で、アプリケーションについての署名を、署名生成モジュール105を使用して構築することができる。署名は、ボリューム、コマンド・ラインの引数、又は構成パラメータを含む如何なる好適な構成オブジェクトでも含むことができる。
【0036】
いくつかの場合においては、一度十分な数のカタログ・エントリがトレーニング・データとして使用可能となると、機械学習システムは、トレーニングされて、スキャンされたデータから署名カタログのための署名を構成することができる。そのような場合において、システムは、自動的に情報を識別し、かつそのような情報をインストールされたソフトウェア・パッケージの構成パラメータに基づいて、インストールされたソフトウェア・アプリケーションから署名を構成するために使用することができる。したがって、操作305の署名生成は、自動的に発生するように構成することができる。
【0037】
操作310では、この情報は、署名カタログ36に格納される署名内にハードコードすることができる。この処理は、また、一度関連する構成パラメータが識別されると、自動的に実行することができる。
【0038】
操作315では、クラスタ(図2参照)は、スキャンされて、そのクラスタ、例えば、1つ又はそれ以上のポッドについての構成パラメータに関する情報を取得することができる。このシステムは、定期的間隔でクラスタをスキャンすることができるか、若しくは新たなソフトウェア・アプリケーションが提供されるとスキャンすることができる。本システムは、このスキャンされた情報を、構成パラメータのスキャン・リポジトリ32に格納することができる。
【0039】
操作320では、構成パラメータを含むスキャンされた情報は、カタログ署名と比較されて、クラスタ内にアプリケーションがインストールされているか否かを判断する。いくつかの側面においては、カタログ署名は、スキャンする前に生成されて、スキャンされた情報を参照カタログ署名と比較することを容易にすることができる。他の側面においては、カタログ署名は、例えば、署名が秘密の変更(例えば、アクセスの変更、パスワードの変更など)を反映するようにアップデートされる可能性がある場合など、情報の変更においてアップデートされる。
【0040】
操作325では、マッチしない情報が有る場合、システムは、さらに、例えば類似性に基づく識別技術を使用して情報を処理する。例えば、挙動的な署名マッチングは、スキャンされた情報と、署名カタログとの間の正確なマッチを必要とすることなくしつつ、類似性の度合いに基づいてマッチングを実行することができる。
【0041】
マッチしない情報が無い場合、システムは、操作335に進み、そこで情報が使用されて、1つ又はそれ以上のクラスタを横断したソフトウェア・アプリケーションの分散を分析することができる。このことは、再分散、又はリソース、ロード・バランス化、又はクラスタ・ベースのコンピューティング環境の性能を改善するための他の操作の提供を許容する。
【0042】
図4は、クラスタ・ベースの環境内にインストールされたソフトウェア・アプリケーションを検出する高水準の操作を示す。操作410では、署名は、クラスタ上にインストールされた特定のソフトウェア・パッケージに対応して判断される。署名は、クラスタ内で既存の構成オブジェクトに基づいて構築することができ、これは、構成マップ、秘密(例えばパスワード、ユーザ・ネームなど)、コマンド、又は他のアプリケーション構成(例えば、開発アプリ、デバッグ・モード、エクスポートのためのポートなど)、環境変数、ボリュームなどを含む構成パラメータを含むことができる。この情報は、カタログに格納することができる。
【0043】
操作420では、クラスタは、そのクラスタ内の構成パラメータ及びオブジェクトに関する情報を収集するためにスキャンすることができる(例えば、Kubernetes又はNomadタイプのクラスタ)。
【0044】
操作430では、スキャンされた結果がカタログ署名と比較されて、ソフトウェア・アプリケーションを識別する。この情報で、アプリケーションが異なるクラスタへと移動されて、リソース及びコンピューティング・ロードを最適化され、クラスタ・ベースのコンピューティング環境の性能を改善することができる。さらに、クラスタ上で使用されるアプリケーションを識別することは、ライセンス管理、又は他の監査、又は情報的な目的のために役立つ可能性がある。
【0045】
方法、システム及びコンピュータ可読な媒体が本明細書において提供され、これは、自動的なやり方でクラスタ・ベースの環境内にインストールされたソフトウェア・アプリケーションを識別するための方法を提供する。さらに、本技術は、本技術が類似性に基づいてソフトウェア・アプリケーションを識別することができるので、構成パラメータの変更に対して適合することができる。したがって、構成パラメータが変更されたものの、類似性閾値範囲内であれば、そのアプリケーションについてのアップグレード、又は新たなリリースによるものとして、マッチとすることができる。
【0046】
これらの技術はクラスタ・ベースの環境を横断して延長されて、ソフトウェアのインストールに関して決定をなさしめると共に、ソフトウェア・リソースをより良好に使用させる。例えば、この情報が分析されて、クラスタ単位の基準でインストールされたソフトウェアの分散性及び利用性を判断することができる。これらの技術は、クラスタ内の変化に対応するため、定期的な基準で実行することができる(例えば、ポッドの追加又は削除)。
【0047】
本明細書で説明したアプローチは、いくつかの効果を有する。例えば、アプリケーションは、ファイル・システム上で長々しいスキャン操作無しに、識別することができる。マッチしていないパラメータは、さらなる処理のため、システムに提供することができる。いくつかの場合においては、システムは、もはやクラスタに必要ではないソフトウェアを識別することができ、かつアプリケーションは、例えば、もう1つのコンピューティング環境内でのもう1人のユーザについてのライセンスを空けるか、又はクラスタ上のリソースを空けるために、自動的に削除、又はアンインストールされることができる。他の場合には、システムは、クラスタ上でマッチしていないアプリケーションに関連して、ネットワーク管理者に対して通知を提供することができる。さらに他の側面においては、システムは、クラスタを再構成するためにソフトウェアを再分散させて、システムの性能を改善することができる。
【0048】
上述し、かつ図面に示した実施形態は、クラスタ内でソフトウェア・アプリケーションを自動的に判断することについての、実施形態を実装する多くの方法の僅かのみを示したに過ぎないことについて、認識されるであろう。
【0049】
本発明の実施形態の環境は、如何なる数のコンピュータ、又は他のプロセッシング・システム(例えば、クライアント、又はエンド・ユーザ・システム、サーバ・システム)及びデータベース、又は如何なる所望する仕方において配置された他のリポジトリでも含むことができ、そこでは、本発明の実施形態は、如何なる所望するタイプのコンピューティング環境に対しても適用することができる(例えば、クラウド・コンピューティング、クライアント・サーバ、ネットワーク・コンピューティング、メインフレーム、スタンドアローン・システムなど)。本発明の実施形態により使用されるコンピュータ又は他のプロセッシング・システムは、如何なる数、如何なるパーソナル、又は他のタイプのコンピュータ、又はプロセッシング・システム(例えば、デスクトップ、ラップトップ、PDA、モバイル・デバイスなど)によっても実装することができ、かつ如何なる市販に利用可能なオペレーティング・システム及び如何なる市販に利用可能な普通のソフトウェア(例えば、ブラウザ・ソフトウェア、通信ソフトウェア、サーバ・ソフトウェ、クラスタ・ベースのソフトウェア発見モジュール15など)の如何なる組み合わせでも含むことができる。これらのシステムは、情報を入力し、かつ見るため、又はそれら両方のため、如何なるタイプのモニタ及び入力デバイス(例えば、キーボード、マウス、音声認識など)を含むことができる。
【0050】
本発明の実施形態のソフトウェア(例えば、クラスタ・ベースのソフトウェア発見モジュール15、署名生成モジュール105、構成パラメータ・スキャン・モジュール110、クラスタ・ベースの署名カタログ比較モジュール115、アンマッチ・パラメータ・モジュール120などを含む、)は、如何なる所望するコンピュータ言語においても実装することができ、明細書に含まれる機能的記述及び図面に示したフローチャートに基づいて、計算機技術における当業者により開発することができることについて理解されるべきである。さらに、種々の機能を実行するソフトウェアの本明細書における如何なる参照でも、一般には、ソフトウェア制御の下でこれらの機能を実行するコンピュータ・システム、又はプロセッサを参照する。本発明のコンピュータ・システムは、代替的に如何なるタイプのハードウェア、又は他の処理回路、又はこれらの組み合わせによっても実装することができる。
【0051】
コンピュータ又は他のプロセッシング・システムの種々の機能は、如何なるやり方において、如何なる数のソフトウェア、又はハードウェア、又はユニット、プロセッシング、又はコンピュータ・システム、又は回路、又はそれらの組み合わせにおいて分散することができ、ここで、コンピュータ、又はプロセッシング・システムは、ローカルに又は互いにリモートに配置することができると共に、如何なる好適な通信媒体(例えばLAN、WAN、イントラネット、インターネット、有線、モデム接続、ワイヤレスなど)を介して通信することができる。例えば、本発明の実施形態の機能は、種々のエンド・ユーザ/クライアント及びサーバ・システム、又は如何なる他の中間的な処理デバイス、又はそれらの組み合わせのうち如何なるやり方においても分散することができる。上述し、かつフローチャートに示したソフトウェア、又はアルゴリズム、又はそれら両方は、本明細書で説明した機能を達成する如何なるやり方においても修正することができる。加えて、フローチャート、又は説明の機能は、所望する操作を達成する如何なる順序においても実行することができる。
【0052】
本発明の実施形態のソフトウェア(例えば、クラスタ・ベースのソフトウェア発見モジュール15、署名生成モジュール105、構成パラメータ・スキャン・モジュール110、クラスタ・ベースの署名カタログ比較モジュール115、アンマッチ・パラメータ・モジュール120などを含む。)は、スタンドアローン・システム、又はネットワーク、又は他の通信媒体により接続されたシステムと共に使用するための、静止した、又は可搬性のプログラム製品の装置、又はデバイスの非過渡的なコンピュータ利用可能な媒体(例えば、磁気的、又は光学的媒体、光磁気媒体、フロッピー・ディスケット(登録商標)、CD-ROM、DVD、メモリ・デバイスなど)上で利用可能である。
【0053】
通信ネットワークは、如何なる数の、如何なるタイプの通信ネットワーク(例えば、LAN、WAN、イントラネット、インターネット、VPNなど)によっても実装することができる。本発明の実施形態のコンピュータ、又は他のプロセッシング・システムは、如何なる従来の、又は他のプロトコルを介してネットワーク越しに通信する、如何なる従来の、又は他の通信デバイスでも含むことができる。コンピュータ、又は他のプロセッシング・システムは、ネットワークにアクセスするための如何なるタイプの接続でも使用することができる(例えば、有線、ワイヤレスなど)。ローカルな通信媒体は、如何なる好適な通信媒体によっても実装することができる(例えば、ローカル・エリア・ネットワーク(LAN)、有線、ワイヤレス・リンク、イントラネットなど)。
【0054】
システムは、如何なる数の如何なる従来又は他のデータベース、データ・ストア、又はストレージ構造(例えばファイル、データベース、データ構造、データ、又は他のリポジトリなど)を、情報(例えば、クラスタ・ベースのソフトウェア発見モジュール15、署名生成モジュール105、構成パラメータ・スキャン・モジュール110、クラスタ・ベースの署名カタログ比較モジュール115、アンマッチ・パラメータ・モジュール120などを含む。)を格納するために使用することができる。データベース・システムは、情報(例えば、構成パラメータのスキャン・リポジトリ32、アンマッチ・パラメータ・リポジトリ34、署名カタログ36、及びクラスタ分析リポジトリ38など)を格納するために、如何なる数の如何なる従来の、又は他のデータベース、データ・ストア、又はデータ構造(例えば、ファイル、データベース、データ構造、データ、又は他のリポジトリなど)によって実装することができる。データベース・システムは、サーバ、又はクライアント・システム、又はこれら両方内に含まれることができる。データベース・システム、又はストレージ構造、又はこれらの両方は、コンピュータ、又は他のプロセッシング・システムからリモート又はローカルとすることができ、かつ、如何なる所望するデータ(例えば、構成パラメータのスキャン・リポジトリ32、アンマッチ・パラメータ・リポジトリ34、署名カタログ36、及びクラスタ分析リポジトリ38など)を格納することができる。
【0055】
本発明の実施形態は、如何なる数の如何なるタイプのユーザ・インタフェース(例えば、グラフィカル・ユーザ・インタフェース(GUI)、コマンド・ライン、プロンプトなど)を、情報(例えば、構成パラメータのスキャン・リポジトリ32、アンマッチ・パラメータ・リポジトリ34,署名カタログ36、及びクラスタ分析リポジトリ38など)を取得し、又は提供するために使用することができ、ここで、インタフェースは、如何なる仕方で配置された如何なる情報でも含むことができる。インタフェースは、如何なるロケーションに配置された、如何なる数の如何なるタイプの入力、又はアクチュエーション機構(例えば、ボタン、アイコン、フィールド、ボックス、リンクなど)を含み、情報を入力/表示させ、かつ如何なる好適な入力デバイス(例えば、マウス、キーボードなど)を介した所望の動作を開始することができる。インタフェース・スクリーンは、如何なる仕方においても、スクリーンとの間でナビゲーションするための如何なる好適なアクチュエータ(例えば、リンク、タブなど)を含むことができる。
【0056】
クラスタ・ベースのソフトウェア発見モジュール15は、如何なる仕方で配置された如何なる情報でも含むことができると共に、ユーザに対して所望する情報を提供するためのルール、又は他の基準に基づいて構成可能とすることができる(例えば、分析結果、ソフトウェア・アプリケーションのリスト、署名カタログ、1つ又はそれ以上のクラスタ内でのアプリケーションの分散など)。
【0057】
本発明の実施形態は、上述した特定のタスク又はアルゴリズムに限定されることはなく、ソフトウェア・アプリケーションの自動的な識別が役に立つ、如何なるアプリケーションに対しても使用することができる。さらに、本アプローチは、一般に如何なるコンテキストにおける如何なる識別、又は他の情報の低減のためにも利用可能であり、製造、健康、又は他のドメインといった、如何なる特定のアプリケーション・ドメインに対して限定されることはない。
【0058】
本明細書において使用する用語は、特定の実施形態を記述する目的のためのものであり、本開示を限定することを意図するものではない。本明細書で使用するように、単数形、“a”、“an”及び“the”は、文脈が明らかにそれ以外を示さない限り、同様に複数形態を含むことを意図する。さらに、用語、含む“comprise”、含んでいる“comprising”、含む、“includes”、含んでいる“including”、有する“has”、“have”、“having”、“with”などが本明細書において使用される場合、宣言された特徴、整数、ステップ、操作、要素、又はコンポーネント又はこれらの組み合わせの存在を特定するが、1つ又はそれ以上の他の特徴、整数、ステップ、操作、要素、コンポーネント又はグループ又はそれらの組み合わせの存在又は追加を除外するものでないことについて理解されるべきである。
【0059】
以下の請求項における対応する構造、材料、動作、及びステップ・プラス・ファンクションのすべての手段の均等は、特定的に請求項として他の請求項の要素との組み合わせにおいて機能を実行するための如何なる構造、材料、又は動作を含むことを意図する。本発明の説明は、例示及び説明の目的のため提供されてきたが、開示された形態に尽きること、限定することを意図するものではない。多くの修正又は変更は、本発明の範囲及び精神から逸脱することなく、当業者には自明であろう。実施形態は、本発明の原理及び実際的な用途を最良に説明すると共に、想定される特定の用途に適合されるように種々の修正を有する種々の実施形態について本発明を当業者の他の者が理解できるようにするために選択し、かつ説明されたものである。
【0060】
本開示の種々の実施形態の説明は、例示の目的のために提示されたが、開示された実施形態への排他又は限定を意図するものではない。多くの変更例又は変形例は、本開示の範囲及び精神から逸脱することなく、当業者において自明である。本明細書で使用する用語は、本実施形態の原理、実用的用途、又は市場において見出される技術を超える技術的改善を最良に説明するため、又は本明細書において開示された実施形態を当業者の他の者が理解できるようにするために選択したものである。
【0061】
本発明の開示は、システム、方法、又はコンピュータ・プログラム製品又はそれらの組み合わせとすることができる。コンピュータ・プログラム製品は、それ上に、プロセッサに対して本開示の特徴を遂行させるためのコンピュータ可読なプログラム命令を有する、コンピュータ可読な記録媒体(又は複数の媒体)を含む。
【0062】
コンピュータ可読な記録媒体は、命令実行デバイスが使用するための複数の命令を保持し格納することができる有形のデバイスとすることができる。コンピュータ可読な媒体は、例えば、これらに限定されないが、電気的記録デバイス、磁気的記録デバイス、光学的記録デバイス、電気磁気的記録デバイス、半導体記録デバイス又はこれらのいかなる好ましい組み合わせとすることができる。コンピュータ可読な記録媒体のより具体的な実施例は、次のポータブル・コンピュータ・ディスク、ハードディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリー・メモリ(ROM)、消去可能なプログラマブル・リード・オンリー・メモリ(EPROM又はフラッシュ・メモリ(登録商標))、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク・リード・イオンリー・メモリ(CD-ROM)、デジタル多目的ディスク(DVD)、メモリ・スティック、フロッピー・ディスク(登録商標)、パンチ・カード又は命令を記録した溝内に突出する構造を有する機械的にエンコードされたデバイス、及びこれらの好ましい如何なる組合せを含む。本明細書で使用するように、コンピュータ可読な記録媒体は、ラジオ波又は他の自由に伝搬する電磁波、導波路又は他の通信媒体(例えば、光ファイバ・ケーブルを通過する光パルス)といった電磁波、又はワイヤを通して通信される電気信号といったそれ自体が一時的な信号として解釈されることはない。
【0063】
本明細書において説明されるコンピュータ・プログラム命令は、コンピュータ可読な記録媒体からそれぞれのコンピューティング/プロセッシング・デバイスにダウンロードでき、又は例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク又はワイヤレス・ネットワーク及びそれからの組み合わせといったネットワークを介して外部コンピュータ又は外部記録デバイスにダウンロードすることができる。ネットワークは、銅通信ケーブル、光通信ファイバ、ワイヤレス通信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ及びエッジ・サーバ又はこれらの組み合わせを含むことができる。それぞれのコンピューティング/プロセッシング・デバイスにおけるネットワーク・アダプタ・カード又はネットワーク・インタフェースは、ネットワークからコンピュータ可読なプログラム命令を受領し、このコンピュータ可読なプログラム命令を格納するためにそれぞれのコンピューティング/プロセッシング・デバイス内のコンピュータ可読な記録媒体内に転送する。
【0064】
本発明の操作を遂行するためのコンピュータ可読なプログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械語命令、マシン依存命令、マイクロ・コード、ファームウェア命令、状態設定データ、集積回路のための構成データ、又は1つ又はそれ以上の、Smalltalk(登録商標)、C++などのオブジェクト指向プログラミング言語、“C”プログラミング言語又は類似のプログラム言語といった手続き型プログラミング言語を含むプログラミング言語のいかなる組合せにおいて記述されたソース・コード又はオブジェクト・コードのいずれかとすることができる。コンピュータ可読なプログラム命令は、全体がユーザ・コンピュータ上で、部分的にユーザ・コンピュータ上でスタンドアローン・ソフトウェア・パッケージとして、部分的にユーザ・コンピュータ上で、かつ部分的にリモート・コンピュータ上で、又は全体がリモート・コンピュータ又はサーバ上で実行することができる。後者のシナリオにおいて、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)を含むいかなるタイプのネットワークを通してユーザ・コンピュータに接続することができ、又は接続は、外部コンピュータ(例えばインターネット・サービス・プロバイダを通じて)へと行うことができる。いくつかの実施形態では、例えばプログラマブル論理回路、フィールド・プログラマブル・ゲートアレイ(FPGA)、又はプログラマブル論理アレイ(PLA)を含む電気回路がコンピュータ可読なプログラム命令を、コンピュータ可読なプログラム命令の状態情報を使用して、本発明の特徴を実行するために電気回路をパーソナライズして実行することができる。
【0065】
本明細書で説明した本発明の特徴を、本発明の実施形態にしたがい、フローチャート命令及び方法のブロック図、又はそれらの両方、装置(システム)、及びコンピュータ可読な記録媒体及びコンピュータ・プログラムを参照して説明した。フローチャートの図示及びブロック図又はそれら両方及びフローチャートの図示におけるブロック及びブロック図、又はそれらの両方のいかなる組合せでもコンピュータ可読なプログラム命令により実装することができることを理解されたい。
【0066】
コンピュータ可読なプログラム命令は、汎用目的のコンピュータ、特定目的のコンピュータ、または他のプロセッサ又は機械を生成するための他のプログラマブル・データ・プロセッシング装置に提供することができ、コンピュータのプロセッサ又は他のプログラマブル・データ・プロセッシング装置による実行がフローチャート及びブロック図のブロック又は複数のブロック又はこれらの組み合わせで特定される機能/動作を実装するための手段を生成する。コンピュータ、プログラマブル・データ・プロセッシング装置及び他の装置又はこれらの組み合わせが特定の仕方で機能するように指令するこれらのコンピュータ可読なプログラム命令は、またコンピュータ可読な記録媒体に格納することができ、その内に命令を格納したコンピュータ可読な記録媒体は、フローチャート及びブロック図のブロック又は複数のブロック又はこれらの組み合わせで特定される機能/動作の特徴を実装する命令を含む製造品を構成する。
【0067】
コンピュータ可読なプログラム命令は、またコンピュータ、他のプログラマブル・データ・プロセッシング装置、又は他のデバイス上にロードされ、コンピュータ、他のプログラマブル装置、又は他のデバイス上で操作ステップのシリーズに対してコンピュータ実装プロセスを生じさせることで、コンピュータ、他のプログラマブル装置又は他のデバイス上でフローチャート及びブロック図のブロック又は複数のブロック又はこれらの組み合わせで特定される機能/動作を実装させる。
【0068】
図のフローチャート及びブロック図は、本発明の種々の実施形態にしたがったシステム、方法及びコンピュータ・プログラムのアーキテクチャ、機能、及び可能な実装操作を示す。この観点において、フローチャート又はブロック図は、モジュール、セグメント又は命令の部分を表すことかでき、これらは、特定の論理的機能(又は複数の機能)を実装するための1つ又はそれ以上の実行可能な命令を含む。いくつかの代替的な実装においては、ブロックにおいて記述された機能は、図示した以外で実行することができる。例えば、連続して示された2つのブロックは、含まれる機能に応じて、実際上1つのステップとして遂行され、同時的、実質的に同時的に、部分的又は完全に一時的に重ね合わされた仕方で実行することができ、又は複数のブロックは、時として逆の順番で実行することができる。またブロック図及びフローチャートの図示、又はこれらの両方及びブロック図中のブロック及びフローチャートの図示又はこれらの組み合わせは、特定の機能又は動作を実行するか又は特定の目的のハードウェア及びコンピュータ命令を遂行する特定目的のハードウェアに基づいたシステムにより実装することができることを指摘する。
図1
図2
図3
図4