JP6813152B2 - ソフトウェア・コンテナ中のソフトウェアの識別を決定するための方法、システム、およびプログラム - Google Patents

ソフトウェア・コンテナ中のソフトウェアの識別を決定するための方法、システム、およびプログラム Download PDF

Info

Publication number
JP6813152B2
JP6813152B2 JP2016227079A JP2016227079A JP6813152B2 JP 6813152 B2 JP6813152 B2 JP 6813152B2 JP 2016227079 A JP2016227079 A JP 2016227079A JP 2016227079 A JP2016227079 A JP 2016227079A JP 6813152 B2 JP6813152 B2 JP 6813152B2
Authority
JP
Japan
Prior art keywords
software
software container
template
computer
program
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
Application number
JP2016227079A
Other languages
English (en)
Other versions
JP2017107555A (ja
Inventor
ゴドフスキー、パヴェル、ピオトル
ストッパ、トマシュ
カニア、ピオトル
パルーチ、ミハル
ブランディーズ、シモン
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 JP2017107555A publication Critical patent/JP2017107555A/ja
Application granted granted Critical
Publication of JP6813152B2 publication Critical patent/JP6813152B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/24Object-oriented
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • 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/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Description

本発明は、一般に、ソフトウェア識別決定の分野に関し、より詳細には、ソフトウェア・コンテナ中でのソフトウェア識別決定に関する。
ソフトウェア・コンテナは、完全なランタイム環境からなり、すなわち、アプリケーションと、そのすべての依存物、ライブラリ、および他のバイナリ、ならびにその実行に必要な構成ファイルとからなり、これらは1つのパッケージにバンドルされる。アプリケーション・プラットフォームおよびその依存物を「コンテナ化」することによって、オペレーティング・システム(OS)配布および基礎をなすインフラストラクチャにおける違いが抽象化されて隠される。
一般に、ソフトウェア・コンテナは、バーチャル・マシン(VM)と比較して「軽量」であると考えられる。VMは、ソフトウェア・コンテナとは異なり、OS全体ならびにアプリケーションを含む。例えば、3つのVMを実行する物理サーバは、ハイパーバイザと、その最上部で実行される3つの別々のOSとを有することになる。対照的に、別の例では、3つのコンテナ化されたアプリケーションを実行するサーバは、単一のOSカーネルを実行し、この単一のOSカーネルを各ソフトウェア・コンテナが他のソフトウェア・コンテナと共有する。OSの共有部分は読取専用であり、各ソフトウェア・コンテナは、書込みのためにそれ自体のマウント(すなわち、ソフトウェア・コンテナにアクセスする方法)を有する。このことは、ソフトウェア・コンテナが、VMよりも、必要とされるソフトウェアのコード量またはタイプの点でより軽量であり、使用するリソースが少ないことを意味する。例えば、ソフトウェア・コンテナは数十メガバイトのサイズでしかないことがあるが、VMは、それ自体のOS全体を有し、数ギガバイトのサイズであることがある。したがって、単一のサーバが、VMよりもはるかに多くのソフトウェア・コンテナをホストすることができる。さらに、VMは、それらがホストするアプリケーションの実行を開始するためにそれらのOSをブートアップするのに、数分を要することがある。対照的に、コンテナ化されたアプリケーションは、ほぼ即座に開始されることが可能である。
ソフトウェア・コンテナは、その軽量性質および敏捷性により、ますます一般的になってきている。例えば、DOCKER(R)は、LINUX(R)上でOSレベル仮想化の抽象化および自動化の追加レイヤを提供することによってソフトウェア・コンテナ内部でのアプリケーションの実装(デプロイメント)を自動化する、オープンソース・プロジェクトである。cgroups(コントロール・グループとしても知られる)は、いくつかのプロセス(実際にはプロセス・グループ)のリソース使用を制限、監視、制御、および計上するのにしばしば使用される、LINUXカーネルの機能である。DOCKERは、cgroupsやカーネル名前空間など、LINUXカーネルのリソース隔離機能を使用して、独立したLINUXソフトウェア・コンテナ(LXC)が単一のLINUXインスタンス内で実行されるのを可能にする。
DOCKERは、ソフトウェア・コンテナ・ベースのクラウド・システムのための、台頭しつつあるトレンドの例である。これは、ソフトウェア・コンテナをクラウド・システム中で実装、実行、および移行するのが迅速だからである。ソフトウェア・コンテナ・ベースのクラウド・システムのセキュリティは、ソフトウェア・コンテナが、その名前が含意するように、密閉されていることにかかっている。LXCは、cgroupsを活用して、CPU、メモリ、ファイル/ブロックI/O、およびネットワーク・リソースを隔離する。LXCはまた、名前空間を使用して、アプリケーションをオペレーティング・システムから隔離し、プロセス・ツリー、ネットワーク・アクセス、ユーザID、およびファイル・アクセスを分離する。LXCは、セキュリティの点で、chrootとVMとの間に入る技法と考えられる。chrootは、現在実行中のプロセスおよびそれらの子について、見かけ上のルート・ディレクトリを変更する操作である。このような修正された環境で実行されるプログラムは、その環境ディレクトリ・ツリーの外部のファイルおよびコマンドにアクセスすることはできない。ルートの変更は一般に、ブーティングまたはログインあるいはその両方がもはや可能でないシステムに対して、システム保守を実行するために行われる。
本発明の実施形態は、ソフトウェア・コンテナ中のソフトウェアの識別を決定するための方法、システム、およびプログラムを提供する。
1つまたは複数のプロセッサが、第1のソフトウェア・コンテナ・テンプレートに関連する第1のソフトウェア・コンテナ上に存在するソフトウェアの1つまたは複数の識別を求めて、第1のソフトウェア・コンテナ・テンプレートを走査する。1つまたは複数のプロセッサが、第1のソフトウェア・コンテナ上に存在するソフトウェアの1つまたは複数の識別のマップを生成するが、ここで、第1のソフトウェア・コンテナ上に存在するソフトウェアの1つまたは複数の識別は、第1のソフトウェア・コンテナ・テンプレートの識別子、および第1のソフトウェア・コンテナ・テンプレートに関連する第1のソフトウェア・コンテナの識別子、のうちの一方または両方でマッピングされる。
本発明の例示的な一実施形態による、第1のソフトウェア発見環境を示す第1の機能ブロック図である。 本発明の例示的な一実施形態による、第2のソフトウェア発見環境を示す第2の機能ブロック図である。 本発明の例示的な一実施形態による、図1および2の環境内のコンピューティング・デバイス上での、ソフトウェア・コンテナ上で実行されるソフトウェアを発見、マッピング、および報告するための動作プロセスの第1の例を示す図である。 本発明の例示的な一実施形態による、図1および2の環境内のコンピューティング・デバイス上での、ソフトウェア・コンテナ上で実行されるソフトウェアを発見およびマッピングするための動作プロセスの第2の例を示す図である。 本発明の例示的な一実施形態による、それぞれ図1および2の環境内のコンピューティング・デバイス上のアダプタおよびプラグイン・プログラム内のモジュールによって実施される動作プロセスを示す図である。 本発明の一実施形態によるクラウド・コンピューティング環境を描いた図である。 本発明の一実施形態による抽象化モデル・レイヤを描いた図である。 本発明の例示的な実施形態による、コンテナ・エンジン・プログラムを実行するコンピューティング・デバイスのコンポーネントのブロック図である。
クラウド・システムのサイズ、およびソフトウェア・コンテナの密閉性質は、ソフトウェア・コンテナ・ベースのクラウド・システムにおけるソフトウェアの管理に関する多くのタイプの困難を提示する可能性がある。効果的なソフトウェア資産管理(SAM)は、ソフトウェアの存在および使用が、頑強な信頼できる方式で決定されることを必要とする。ソフトウェアの発見はしばしば複雑である。というのは、走査対象であるシステムのインストール・レジストリまたはファイル・システム内容をくまなく検索することを必要とするからである。このような手法には、いくつかの欠点がある。第1に、このような走査は通常、高価なファイル・システム走査を実行する必要のあるエージェントの実装を必要とする。ソフトウェアの存在および使用を決定するのに使用されるファイル・システム走査の結果として、作業負荷の高い動的な環境において作業負荷の混乱がしばしば生じる。さらに、エージェントは、走査対象であるシステムがプロビジョニングされた後すぐに、かつデプロビジョニングされる前に、走査を実行する必要がある。加えて、ソフトウェア・コンテナの密閉性質は、次のことを意味する。すなわち、高価なファイル・システム走査を実行することが許容可能だとしても、現在の技術を使用するソフトウェア・コンテナ・ベースのクラウド・システム中では可能でない場合がある。
ソフトウェア・コンテナは、ソフトウェア・コンテナ・エンジンによって管理される。言い換えれば、ソフトウェア・コンテナ・エンジンが、ソフトウェア・コンテナを構築および実行する。ソフトウェア・コンテナを構築するプロセスにおいて、ソフトウェア・コンテナ・エンジンは、ソフトウェア・コンテナのテンプレートを作成する。ソフトウェア・コンテナ・エンジンがソフトウェア・コンテナの構築を終えたとき、ソフトウェア・コンテナ・エンジンは、テンプレートをイメージとしてテンプレート・リポジトリ中に発行し、ソフトウェア・コンテナはインスタンス化される。テンプレートが発行された後は、テンプレートをさらに修正することはできないことに留意されたい。同様に、ソフトウェア・コンテナがインスタンス化された後は、ソフトウェア・コンテナをソフトウェア内容の点でさらに修正することもまたできない。ソフトウェア・コンテナ上で実行される1つまたは複数のアプリケーション中で新しい機能が望まれ、これらの新しい機能が追加のソフトウェアを必要とする場合は、新しいソフトウェア・コンテナが、新しいソース・テンプレートと共に作成されなければならない。
ソフトウェア・コンテナをプロビジョニングするプロセスにおいて、ソフトウェア・コンテナ・エンジンは、ソフトウェア実装アーチファクトなどのメタデータを、ソフトウェア・コンテナに関連するテンプレートに記憶する。このメタデータは、ソフトウェア・コンテナにインストールされたソフトウェアの識別(アイデンティティ)に関する情報を含む。ソース・テンプレート上に存在するメタデータを走査または分析できるツールを提供することによって、任意のソフトウェア・コンテナ上に存在するソフトウェアの識別を決定することができる。インスタンス化されたテンプレート上に存在するメタデータを分析することは、ソフトウェア・コンテナのインストール・レジストリまたはファイル・システム内容をくまなく検索することと比較すると、必要とするコンピューティング・リソースは少ない。
本発明の実施形態は、ソフトウェア・コンテナ・エンジンが、それが構築するあらゆるソフトウェア・コンテナにつきテンプレートを作成することを認識する。本発明の実施形態は、ソフトウェア・コンテナをプロビジョニングするのに使用されるソフトウェアに関する情報が、そのソフトウェア・コンテナのソース・テンプレート上に存在することを認識する。本発明の実施形態は、ソフトウェア・コンテナ・エンジン中でテンプレート・リポジトリを検索するための方法、コンピュータ・プログラム、およびコンピュータ・システムを提供する。本発明の実施形態は、テンプレート・リポジトリ内の1つまたは複数のテンプレート・イメージから、1つまたは複数の対応するソフトウェア・コンテナのソフトウェア内容を識別するデータを抽出するための方法、コンピュータ・プログラム、およびコンピュータ・システムを提供する。
本開示はクラウド・コンピューティングに関する詳細な記述を含むが、本明細書で列挙される教示の実現はクラウド・コンピューティング環境に限定されないことを、あらかじめ理解されたい。そうではなく、本発明の実施形態は、現在知られているかまたは後に開発される他の任意のタイプのコンピューティング環境と共に実現されることが可能である。
クラウド・コンピューティングは、最小限の管理労力で、またはサービスのプロバイダとの最小限の対話で迅速にプロビジョニングできリリースできる構成可能なコンピューティング・リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、バーチャル・マシン、およびサービス)の共有プールへの便利なオンデマンドのネットワーク・アクセスを可能にするための、サービス送達のモデルである。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、および少なくとも4つの実装モデルを含むことができる。
特徴は次のとおりである。
1)オンデマンド・セルフサービス:クラウド消費者は、必要に応じて、サービスのプロバイダとの人的な対話を必要とすることなく自動的に、サーバ時間やネットワーク・ストレージなどのコンピューティング能力を単独でプロビジョニングすることができる。
2)幅広いネットワーク・アクセス:能力はネットワークを介して利用可能であり、能力はまた、異種シンまたはシック・クライアント・プラットフォーム(例えば、モバイルフォン、ラップトップ、およびPDA)による使用を促進する標準的なメカニズムを介してアクセスされる。
3)リソース・プーリング:プロバイダのコンピューティング・リソースは、マルチテナント・モデルを使用する複数の消費者に役立つようにプールされ、異なる複数の物理および仮想リソースが、需要に従って動的に割当ておよび再割当てされる。消費者は一般に、提供されるリソースの正確な場所に関して制御も知識も有しないが、より高い抽象化レベル(例えば、国、州、またはデータセンタ)で場所を指定することはできる場合があるという点で、ある意味での場所独立性がある。
4)迅速な弾力性:能力を迅速かつ弾力的に、場合によっては自動的にプロビジョニングして素早くスケールアウトし、迅速に解放して素早くスケールインすることができる。消費者にとっては、プロビジョニングのために利用可能な能力はしばしば無限に見え、いつでもどんな量でも購入することができる。
5)計測されるサービス:クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、およびアクティブ・ユーザ・アカウント)に適した何らかの抽象化レベルで計測能力を活用することによって、リソース使用を自動的に制御および最適化する。リソース使用は、監視、制御、および報告することができ、これにより、利用されるサービスのプロバイダと消費者の両方にとってのトランスペアレンシがもたらされる。
サービス・モデルは次のとおりである。
1)ソフトウェア・アズ・ア・サービス(SaaS):消費者に提供される能力は、クラウド・インフラストラクチャ上で実行されている、プロバイダのアプリケーションを使用することである。アプリケーションへのアクセスは、ウェブ・ブラウザなどのシン・クライアント・インタフェースを介して様々なクライアント・デバイスから可能である(例えば、ウェブベースの電子メール)。消費者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、さらには個々のアプリケーション能力をも含めた、基礎をなすクラウド・インフラストラクチャを管理することも制御することもしないが、限られたユーザ特有アプリケーション構成設定については例外である可能性がある。
2)プラットフォーム・アズ・ア・サービス(PaaS):消費者に提供される能力は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、消費者によって作成または取得されたアプリケーションを、クラウド・インフラストラクチャ上に実装することである。消費者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含めた、基礎をなすクラウド・インフラストラクチャを管理することも制御することもしないが、実装されたアプリケーションに対する制御、およびおそらくはアプリケーション・ホスティング環境構成に対する制御を有する。
3)インフラストラクチャ・アズ・ア・サービス(IaaS):消費者に提供される能力は、処理、ストレージ、ネットワーク、および他の基本的なコンピューティング・リソースをプロビジョニングすることであり、この場合、消費者は、オペレーティング・システムおよびアプリケーションを含み得る任意のソフトウェアを実装および実行することができる。消費者は、基礎をなすクラウド・インフラストラクチャを管理することも制御することもしないが、オペレーティング・システム、ストレージ、実装されたアプリケーションに対する制御、およびおそらくは、精選されたネットワーキング・コンポーネント(例えばホスト・ファイアウォール)の限られた制御を有する。
実装モデルは次のとおりである。
1)プライベート・クラウド:クラウド・インフラストラクチャは、組織のためにのみ運用される。この組織またはサード・パーティによって管理されてよく、構内または構外に存在してよい。
2)コミュニティ・クラウド:クラウド・インフラストラクチャは、いくつかの組織によって共有され、共有の関心事(例えば、ミッション、セキュリティ要件、ポリシー、およびコンプライアンス考慮事項)を有する特定のコミュニティをサポートする。これらの組織またはサード・パーティによって管理されてよく、構内または構外に存在してよい。
3)パブリック・クラウド:クラウド・インフラストラクチャは、一般大衆または大規模な業界団体が利用できるようにされ、クラウド・サービスを販売する組織によって所有される。
4)ハイブリッド・クラウド:クラウド・インフラストラクチャは、2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の複合物である。これらのクラウドは、独自のエンティティのままだが、データおよびアプリケーションの可搬性を可能にする標準化された技術またはプロプラエタリ技術によって1つにまとめられる(例えば、クラウド間の負荷平衡のためのクラウド・バースティング)。
クラウド・コンピューティング環境はサービス指向であり、その焦点は、ステートレス性、低結合、モジュール性、およびセマンティックな相互運用性に合わせられる。クラウド・コンピューティングの中心には、相互接続されたノードのネットワークを含むインフラストラクチャがある。
次に、図を参照しながら本発明について詳細に述べる。
図1は、本発明の一実施形態による、100で一般に示される第1のソフトウェア発見環境を示す第1の機能ブロック図である。ソフトウェア発見環境100は、ネットワーク101を介して接続された、ソフトウェア・コンテナ・サーバ102およびソフトウェア資産管理(SAM)サーバ104を含む。ソフトウェア・コンテナ・サーバ102は、ソフトウェア・コンテナ・エンジン106を備える。ソフトウェア・コンテナ・エンジン106は、テンプレート・リポジトリ108およびソフトウェア・コンテナ110を備える。テンプレート・リポジトリ108は、テンプレート・イメージ112を備える。SAMサーバ104は、コンテナ・エンジン・アダプタ(CEA)プログラム114、およびテンプレート/ソフトウェア・マップ(TSM)データベース116を備える。
本発明の様々な実施形態で、ソフトウェア・コンテナ・サーバ102およびSAMサーバ104は、コンピューティング・デバイスであり、これらの一方または両方は、スタンドアロン・デバイス、サーバ、ラップトップ・コンピュータ、タブレット・コンピュータ、ネットブック・コンピュータ、パーソナル・コンピュータ(PC)、またはデスクトップ・コンピュータであってよい。別の実施形態では、ソフトウェア・コンテナ・サーバ102とSAMサーバ104の一方または両方は、クラスタ化されたコンピュータおよびコンポーネントを利用してシームレスなリソースの単一プールとして働く、コンピューティング・システムを表す。一般に、ソフトウェア・コンテナ・サーバ102とSAMサーバ104の一方または両方は、ソフトウェア・コンテナ・エンジン106、テンプレート・リポジトリ108、ソフトウェア・コンテナ110、テンプレート・イメージ112、CEAプログラム114、およびTSMデータベース116へのアクセスを有しCEAプログラム114を実行できる、任意のコンピューティング・デバイス、またはデバイスの組合せであってよい。ソフトウェア・コンテナ・サーバ102およびSAMサーバ104は、図8に関してさらに詳細に図示および記述される内部および外部ハードウェア・コンポーネントを備えることができる。
この例示的な実施形態では、ソフトウェア・コンテナ・エンジン106、テンプレート・リポジトリ108、ソフトウェア・コンテナ110、およびテンプレート・イメージ112は、ソフトウェア・コンテナ・サーバ102に記憶される。CEAプログラム114およびTSMデータベース116は、SAMサーバ104に記憶される。しかし、他の実施形態では、ソフトウェア・コンテナ・エンジン106、テンプレート・リポジトリ108、ソフトウェア・コンテナ110、テンプレート・イメージ112、CEAプログラム114、およびTSMデータベース116は、外部に記憶されて、ネットワーク101などの通信ネットワークを介してアクセスされてもよい。ネットワーク101は、例えば、ローカル・エリア・ネットワーク(LAN)、インターネットなどのワイド・エリア・ネットワーク(WAN)、またはこの2つの組合せであってよく、有線、ワイヤレス、光ファイバ、または当技術分野で知られている他の任意の接続を含むことができる。一般に、ネットワーク101は、本発明の好ましい実施形態による、ソフトウェア・コンテナ・サーバ102、SAMサーバ104、ソフトウェア・コンテナ・エンジン106、テンプレート・リポジトリ108、ソフトウェア・コンテナ110、テンプレート・イメージ112、CEAプログラム114、およびTSMデータベース116の間の通信をサポートすることになる接続およびプロトコルの、任意の組合せであってよい。
例示的な実施形態では、ソフトウェア・コンテナ・エンジン106は、ソフトウェア・コンテナ110の構築および実行を管理する。ソフトウェア・コンテナ110を構築するプロセスの間、ソフトウェア・コンテナ・エンジン106は、各ソフトウェア・コンテナにつきテンプレートを作成する。ソフトウェア・コンテナ・エンジン106がソフトウェア・コンテナ110の構築を終えたとき、ソフトウェア・コンテナ・エンジン106は、テンプレートをテンプレート・イメージ112としてテンプレート・リポジトリ108中に発行し、ソフトウェア・コンテナ110はインスタンス化される。いくつかの実施形態では、ソフトウェア・コンテナ・エンジン106は、ソフトウェア・コンテナ・ベースのクラウド・システムの一部である。
例示的な実施形態では、テンプレート・リポジトリ108は、ソフトウェア・コンテナ・エンジン106によって作成されたテンプレート・イメージ112のリポジトリである。言い換えれば、テンプレート・リポジトリ108は、ソフトウェア・コンテナ110上のソフトウェア内容に関する情報を含むデータのための記憶場所である。いくつかの実施形態では、テンプレート・リポジトリ108は、ソフトウェア・コンテナ・ベースのクラウド・システムの一部である。
例示的な実施形態では、ソフトウェア・コンテナ110はそれぞれ、完全なランタイム環境を含み、すなわち、1つまたは複数のアプリケーションと、そのすべての依存性、ライブラリ、および他のバイナリ、ならびにアプリケーションの実行に必要な構成ファイルを含み、これらは1つのパッケージにバンドルされる。いくつかの実施形態では、ソフトウェア・コンテナ110は、ソフトウェア・コンテナ・ベースのクラウド・システムの一部である。
例示的な実施形態では、テンプレート・イメージ112は、ソフトウェア・コンテナ・エンジン106によって作成されてテンプレート・リポジトリ108に記憶されたテンプレートのイメージである。テンプレート・リポジトリ108中の各テンプレート・イメージは、ソフトウェア・コンテナ110中の1つのソフトウェア・コンテナに関するデータを含む。このデータには、ソフトウェア実装アーチファクトなどのメタデータが含まれ、このソフトウェア実装アーチファクトは、そのソフトウェア・コンテナにどのようなソフトウェアがインストールされたかを示す。テンプレート・イメージ112によって表されるテンプレート上に存在するデータへのアクセスは、テンプレート・イメージ112をインスタンス化することによって行われる。
例示的な実施形態では、CEAプログラム114は、ソフトウェア・コンテナ・サーバ102中でソフトウェア・コンテナ・エンジン106を検索するアダプタ(すなわちソフトウェア・アダプタ)である。したがって、CEAプログラム114は、ソフトウェア・コンテナ・エンジン106中でテンプレート・リポジトリ108を検索する。CEAプログラム114は、テンプレート・イメージ112を取り出し、テンプレート・イメージ112をインスタンス化する。CEAプログラム114は、インスタンス化されたテンプレート・イメージ112を分析して、ソフトウェア・コンテナ110中のどのソフトウェア・コンテナがテンプレート・イメージ112中の所与のインスタンス化済みテンプレート・イメージによって表されるかを決定する。CEAプログラムは、ソフトウェア・コンテナ110中の対応するソフトウェア・コンテナ上で実行されるソフトウェア・プログラムの識別を求めて、インスタンス化済みテンプレート・イメージ112中の各インスタンス化済みテンプレート・イメージの内容を走査する。次いで、CEAプログラム114は、ソフトウェア・コンテナ110中のソフトウェア・コンテナ上のソフトウェア内容と、テンプレート・イメージ112中の対応するテンプレート・イメージとのマッピングを含むデータで、TSMデータベース116を作成または更新する。CEAプログラム114はソフトウェア資産管理機能も含み、この機能は、ソフトウェア目録(インベントリ)報告を作成するために、新たに開始されたソフトウェア・コンテナを走査してTSMデータベース116を読み取る機能を含む。
例示的な実施形態では、TSMデータベース116は、ソフトウェア・コンテナ110内の1つまたは複数のソフトウェア・コンテナ上で実行されるソフトウェア内容を識別するデータを含む。TSMデータベース116上のデータは、テンプレート・イメージ112からの1つまたは複数のインスタンス化済みテンプレート・イメージを識別するテンプレート識別子を含む。TSMデータベース116は、テンプレート識別子を、テンプレート・イメージ112からの1つまたは複数のインスタンス化済みテンプレート・イメージによって記述されるソフトウェア・コンテナ110内の1つまたは複数のソフトウェア・コンテナの識別子と相関させる。TSMデータベース116はまた、ソフトウェア・コンテナ110内の1つまたは複数のソフトウェア・コンテナに組み込まれたソフトウェアの識別も含む。というのは、このデータは、1つまたは複数のソフトウェア・コンテナに対応するテンプレート・イメージ112からの1つまたは複数のインスタンス化済みテンプレート・イメージから走査されるからである。
図2は、本発明の別の実施形態による、200で一般に示される第2のソフトウェア発見環境を示す第2の機能ブロック図である。ソフトウェア発見環境200は、ネットワーク101を介して接続された、ソフトウェア・コンテナ・サーバ202およびソフトウェア資産管理(SAM)サーバ204を含む。ソフトウェア・コンテナ・サーバ202は、ソフトウェア・コンテナ・エンジン206を備える。ソフトウェア・コンテナ・エンジン206は、テンプレート・リポジトリ108、ソフトウェア・コンテナ110、およびコンテナ・エンジン・プラグイン(CEP)プログラム208を備える。テンプレート・リポジトリ108は、やはりテンプレート・イメージ112を備える。SAMサーバ204は、テンプレート/ソフトウェア・マップ(TSM)データベース116を備える。
本発明の様々な実施形態で、ソフトウェア・コンテナ・サーバ202およびSAMサーバ204は、コンピューティング・デバイスであり、これらの一方または両方は、スタンドアロン・デバイス、サーバ、ラップトップ・コンピュータ、タブレット・コンピュータ、ネットブック・コンピュータ、パーソナル・コンピュータ(PC)、またはデスクトップ・コンピュータであってよい。別の実施形態では、ソフトウェア・コンテナ・サーバ202とSAMサーバ204の一方または両方は、クラスタ化されたコンピュータおよびコンポーネントを利用してシームレスなリソースの単一プールとして働く、コンピューティング・システムを表す。一般に、ソフトウェア・コンテナ・サーバ202とSAMサーバ204の一方または両方は、ソフトウェア・コンテナ・エンジン206、CEPプログラム208、テンプレート・リポジトリ108、ソフトウェア・コンテナ110、テンプレート・イメージ112、およびTSMデータベース116へのアクセスを有しCEPプログラム208を実行できる、任意のコンピューティング・デバイス、またはデバイスの組合せであってよい。ソフトウェア・コンテナ・サーバ202およびSAMサーバ204は、図8に関してさらに詳細に図示および記述される内部および外部ハードウェア・コンポーネントを備えることができる。
この例示的な実施形態では、ソフトウェア・コンテナ・エンジン206、CEPプログラム208、テンプレート・リポジトリ108、ソフトウェア・コンテナ110、およびテンプレート・イメージ112は、ソフトウェア・コンテナ・サーバ202に記憶され、TSMデータベース116は、SAMサーバ204に記憶される。しかし、他の実施形態では、ソフトウェア・コンテナ・エンジン206、CEPプログラム208、テンプレート・リポジトリ108、ソフトウェア・コンテナ110、テンプレート・イメージ112、およびTSMデータベース116は、外部に記憶されて、ネットワーク101などの通信ネットワークを介してアクセスされてもよい。図1で述べたように、ネットワーク101は、例えば、ローカル・エリア・ネットワーク(LAN)、インターネットなどのワイド・エリア・ネットワーク(WAN)、またはこの2つの組合せであってよく、有線、ワイヤレス、光ファイバ、または当技術分野で知られている他の任意の接続を含むことができる。一般に、ネットワーク101は、本発明の好ましい実施形態による、ソフトウェア・コンテナ・サーバ202、SAMサーバ204、ソフトウェア・コンテナ・エンジン206、CEPプログラム208、テンプレート・リポジトリ108、ソフトウェア・コンテナ110、テンプレート・イメージ112、およびTSMデータベース116の間の通信をサポートすることになる接続およびプロトコルの、任意の組合せであってよい。
例示的な実施形態では、また図1における類似の実施形態で述べたように、ソフトウェア・コンテナ・エンジン206は、ソフトウェア・コンテナ110の構築および実行を管理する。ソフトウェア・コンテナ110を構築するプロセスの間、ソフトウェア・コンテナ・エンジン206は、各ソフトウェア・コンテナにつきテンプレートを作成する。ソフトウェア・コンテナ・エンジン206がソフトウェア・コンテナ110の構築を終えたとき、ソフトウェア・コンテナ・エンジン206は、テンプレートをテンプレート・イメージ112としてテンプレート・リポジトリ108中に発行し、ソフトウェア・コンテナ110はインスタンス化される。いくつかの実施形態では、ソフトウェア・コンテナ・エンジン206は、ソフトウェア・コンテナ・ベースのクラウド・システムの一部である。
例示的な実施形態では、CEPプログラム208は、ソフトウェア・コンテナ・エンジン206中でテンプレート・リポジトリ108を検索するプラグインである。CEPプログラム208は、テンプレート・イメージ112を取り出し、テンプレート・イメージ112をインスタンス化する。CEPプログラム208は、インスタンス化されたテンプレート・イメージ112を分析して、ソフトウェア・コンテナ110中のどのソフトウェア・コンテナがテンプレート・イメージ112中の所与のインスタンス化済みテンプレート・イメージによって表されるかを決定する。CEPプログラム208は、ソフトウェア・コンテナ110中の対応するソフトウェア・コンテナ上で実行されるソフトウェア・プログラムの識別を求めて、インスタンス化済みテンプレート・イメージ112中の各インスタンス化済みテンプレート・イメージの内容を走査する。次いで、CEPプログラム208は、ソフトウェア・コンテナ110中のソフトウェア・コンテナ上のソフトウェア内容と、テンプレート・イメージ112中の対応するテンプレート・イメージとのマッピングを含むデータで、TSMデータベース116を作成または更新する。CEPプログラム208はソフトウェア資産管理機能も含み、この機能は、ソフトウェア目録報告を作成するために、新たに開始されたソフトウェア・コンテナを走査してTSMデータベース116を読み取る機能を含む。
図3に、本発明の例示的な一実施形態による、それぞれ図1および2の環境内のSAMサーバ104およびソフトウェア・コンテナ・サーバ202上での、ソフトウェア・コンテナ110上で実行されるソフトウェアを発見、マッピング、および報告するための動作プロセスの第1の例300を示す。
明確さ、ならびに簡潔さの理由で、動作プロセス300において詳述するステップは、CEAプログラム114がソフトウェア発見環境100(図1)に関するプロセス・ステップを実施すること、およびCEPプログラム208がソフトウェア発見環境200(図2)に関するプロセス・ステップを実施することを示すために、「CEAプログラム114/CEPプログラム208」によって実施されるものとして述べる。
ステップ302で、CEAプログラム114/CEPプログラム208は、現在のテンプレート・イメージ112についてテンプレート・リポジトリ108を分析し、1つまたは複数の利用可能なテンプレート・イメージ112を取り出す。1つまたは複数の利用可能なテンプレート・イメージ112は、メタデータ内容を分析するために、CEAプログラム114/CEPプログラム208によってインスタンス化される。
ステップ304で、CEAプログラム114/CEPプログラム208は、ソフトウェア実装アーチファクトを求めて、1つまたは複数のインスタンス化済みテンプレート・イメージ112内のテンプレート・メタデータを走査する。一実施形態では、CEAプログラム114/CEPプログラム208によって使用される発見方法は、1つまたは複数のインスタンス化済みテンプレート・イメージ112の標準的なファイル・システム走査を含む。別の実施形態では、1つまたは複数のインスタンス化済みテンプレート・イメージ112のソフトウェア発見の方法は、ソフトウェア・インストール・レジストリ走査を含む。さらに別の実施形態では、CEAプログラム114/CEPプログラム208は、1つまたは複数のインスタンス化済みテンプレート・イメージ112に対するソフトウェア発見の方法として、ソフトウェア・タグ走査を使用する。様々な実施形態で、インスタンス化済みテンプレート・イメージ112を走査するためのCEAプログラム114/CEPプログラム208のソフトウェア発見方法は、標準的なファイル・システム走査、ソフトウェア・インストール・レジストリ走査、およびソフトウェア・タグ走査、のうちの1つまたは複数を含む。
ステップ306で、CEAプログラム114/CEPプログラム208は、1つまたは複数のテンプレート(すなわち、インスタンス化済みテンプレート・イメージ112)と、1つまたは複数のテンプレートに関連する1つまたは複数のソフトウェア・コンテナ110と、1つまたは複数のテンプレートに関連する1つまたは複数のソフトウェア・コンテナ110上に存在するソフトウェアと、の間の結びつきを示すマップを生成し記憶する。次いで、CEAプログラム114/CEPプログラム208は、TSMデータベース116を作成するか、または、TSMデータベースがすでに作成されている場合はTSMデータベース116を更新する。図1の実施形態では、CEAプログラム114は、TSMデータベース116をSAMサーバ104に記憶する。図2の実施形態では、CEPプログラム208は、TSMデータベース116をSAMサーバ204に記憶する。図示されない他の実施形態では、CEAプログラム114は、TSMデータベース116をCEAプログラム114のメモリに記憶し、CEPプログラム208は、TSMデータベース116をCEPプログラム208のメモリに記憶する。
様々な実施形態で、TSMデータベースは、例えば、テンプレート・イメージ112の識別子フィールド、またはインスタンス化済みテンプレート・イメージ112の識別子を有するフィールドと、ソフトウェア・コンテナ110の識別子を含むフィールドと、ソフトウェア識別を含むフィールドと、を含む。様々な実施形態で、これらのフィールドは、1つまたは複数のテーブルに構成され、それにより、テンプレート・イメージ112の識別子(またはインスタンス化済みテンプレート・イメージ112の識別子)は、対応するソフトウェア・コンテナ110の識別子に関連付けられる。これらの実施形態では、関連付けは、インスタンス化済みテンプレートが、そのインスタンス化済みテンプレートに関連するソフトウェア・コンテナ上のソフトウェア内容を記述するデータを含むことを示す。ソフトウェア識別フィールドは、同様にしてインスタンス化済みテンプレートに関連付けられたソフトウェア識別を含み、ソフトウェア・コンテナ110中のどのようなソフトウェア・コンテナがそのソフトウェアを実行しているかを示す。
ステップ308で、CEAプログラム114およびCEPプログラム208は、ソフトウェア・コンテナ・エンジン106および206によってそれぞれ生成されたイベントにサブスクライブする。様々な実施形態で、イベントのタイプは、以下の1つまたは複数を含む。
1.特定のテンプレートに基づく、ソフトウェア・コンテナの新しいインスタンスの作成。このイベントは、コンテナのCPU容量や、ソフトウェア・コンテナの構成済みRAMまたはストレージなど、SAM関連属性を含む。
2.修正されつつある属性(例えば、CPU容量、およびRAMまたはストレージ)のリストを含む、ソフトウェア・コンテナの既存のインスタンスの再構成
3.既存のソフトウェア・コンテナのデプロビジョニング
ステップ310で、CEAプログラム114/CEPプログラム208は、SAM許容可能なフォーマットで出力を生成する。様々な実施形態で、出力は、ソフトウェア・コンテナ110上で実行されているソフトウェアについての、リアルタイムの正確なソフトウェア発見データを含む。出力のためのSAM許容可能なフォーマットは、ISO19770−2およびISO19770−4 XMLファイルを含むが、これらに限定されない。いくつかの実施形態では、特定のSAMツールに対して最適化された、特殊化された出力フォーマットが使用される。
図4に、本発明の例示的な一実施形態による、それぞれ図1および2の環境内のコンピューティング・デバイス104および202上での、ソフトウェア・コンテナ110上で実行されるソフトウェアを発見およびマッピングするための動作プロセスの第2の例400を示す。
明確さ、ならびに簡潔さの理由で、動作プロセス400において詳述するステップは、CEAプログラム114がソフトウェア発見環境100(図1)に関するプロセス・ステップを実施すること、およびCEPプログラム208がソフトウェア発見環境200(図2)に関するプロセス・ステップを実施することを示すために、「CEAプログラム114/CEPプログラム208」によって実施されるものとして述べる。
ステップ402で、CEAプログラム114/CEPプログラム208は、「フック」メカニズムに従って、テンプレート・イメージ112の作成プロセスの間にSAMツール走査のインジェクションを準備する。フック・メカニズムまたは「フッキング」は、関数呼出し、メッセージ、またはイベントをインターセプトすることによって、OS、アプリケーション、または他のソフトウェア・コンポーネントの改変または増強を可能にするソフトウェアを指す。このようなインターセプトされる関数呼出しを扱うコードは、「フック」と呼ばれる。ステップ402では、CEAプログラム114/CEPプログラム208は、2つのタイプのフックをインストールする。第1のタイプのフックは、「テンプレート・コミット」フックである。様々な実施形態で、テンプレート・コミット・フックは、DOCKERFILESを使用したソフトウェア・コンテナ110の作成など、自動化されたプロセスによるソフトウェア・コンテナ110の作成中に、最後のステップが発生するときにトリガされ、DOCKERFILESは、ソフトウェアのコンパイリング、リンキング、およびパッケージングのプロセスを自動化するのに使用される「make」ファイルと類似する。他の実施形態では、テンプレート・コミット・フックは、ソフトウェア・コンテナ・テンプレートがテンプレート・リポジトリ108中に手動で「プッシュ」(すなわち発行)されてテンプレート・イメージ112として表されるときにトリガされる。手動プッシュ・ステップは、アプリケーションの手動追加および除去や構成ファイルの変更などを伴う、ソフトウェア・コンテナ110の新しいインスタンスの作成に続いて発生する。
第2のタイプのフックは、「テンプレート・リムーブ」フックである。テンプレート・リムーブ・フックは、1つまたは複数のテンプレート・イメージ112がテンプレート・リポジトリ108から除去されるときに発生する。すなわち、テンプレートと、テンプレートに対応するソフトウェア・コンテナとが、除去される、言い換えれば削除されるときに発生する。
ステップ404で、CEAプログラム114/CEPプログラム208は、テンプレートに対するフックがテンプレート・コミット・フックを登録するときに、SAMツール走査をこのテンプレートにインジェクトする。SAMツール走査は、テンプレートが作成された対象であるソフトウェア・コンテナに組み込まれたソフトウェアを求めて、テンプレートを走査する。SAMツール走査は、テンプレートがテンプレート・リポジトリ108に移動してテンプレート・イメージ112中のテンプレート・イメージになる前に、このテンプレートを走査する。結果的な走査は、走査されたテンプレートに対応するソフトウェア・コンテナ110中のソフトウェア・コンテナについての、ソフトウェア目録を提供する。走査はまた、走査対象であるテンプレートのテンプレート識別子を決定し、このテンプレート識別子を、テンプレート/テンプレート・イメージに対応するソフトウェア・コンテナ識別子に関連付ける。
ステップ406で、CEAプログラム114/CEPプログラム208は、TSMデータベース116を作成することによって(TSMデータベースがまだ作成されていない場合)、またはTSMデータベース116を更新することによって(前のテンプレートに対するインジェクト済みSAMツール走査による前の走査からTSMデータベースがすでに作成されている場合)、走査結果をマッピングする。
ステップ408で、CEAプログラム114/CEPプログラム208は、ソフトウェア・コンテナ110中のソフトウェア・コンテナに対応するテンプレート、またはこのテンプレートに対応するテンプレート・イメージが、テンプレート・リポジトリ108から除去済みであるときに、このテンプレートについてのマッピング済み走査データをTSMデータベース116から除去する。様々な実施形態で、このイベントは、テンプレートと、ソフトウェア・コンテナ110中の対応するソフトウェア・コンテナとが、削除、置換、またはデプロビジョニングされたことを示す。
図5に、本発明の例示的な一実施形態による、それぞれ図1および2の環境内の、それぞれSAMサーバ104およびソフトウェア・コンテナ・サーバ202上のCEAプログラム114およびCEPプログラム208内のモジュールによって実施される動作プロセス500を示す。
明確さ、ならびに簡潔さの理由で、動作プロセス500において詳述するステップは、CEAプログラム114がソフトウェア発見環境100(図1)に関するプロセス・ステップを実施すること、およびCEPプログラム208がソフトウェア発見環境200(図2)に関するプロセス・ステップを実施することを示すために、「CEAプログラム114/CEPプログラム208」によって実施されるものとして述べる。
ステップ502で、CEAプログラム114/CEPプログラム208は、テンプレート・スキャナ・モジュール501を使用して、テンプレート・リポジトリ108上のテンプレート・イメージ112から、1つまたは複数のテンプレート・イメージを取り出す。
ステップ504で、CEAプログラム114/CEPプログラム208は、テンプレート・スキャナ・モジュール501を使用して、テンプレート・イメージ112から取り出された1つまたは複数のテンプレート・イメージをインスタンス化する。
ステップ506で、CEAプログラム114/CEPプログラム208は、スキャナ・モジュール501を使用して、テンプレート・イメージ112から取り出された1つまたは複数のテンプレート・インスタンスを走査し、TSMデータベース116を作成して記憶するかまたはTSMデータベース116を更新する。図1の実施形態では、CEAプログラム114は、TSMデータベース116をSAMサーバ104に記憶する。図2の実施形態では、CEPプログラム208は、TSMデータベース116をSAMサーバ204に記憶する。図示されない他の実施形態では、CEAプログラム114は、TSMデータベース116をCEAプログラム114のメモリに記憶し、CEPプログラム208は、TSMデータベース116をCEPプログラム208のメモリに記憶する。
他の実施形態では、テンプレート・スキャナ・モジュール501は、テンプレートに対するフックがテンプレート・コミット・フックを登録するときに、SAMツール走査をこのテンプレートにインジェクトする。SAMツール走査は、テンプレートが作成された対象であるソフトウェア・コンテナに組み込まれたソフトウェアを求めて、テンプレートを走査する。SAMツール走査は、テンプレートがテンプレート・リポジトリ108に移動してテンプレート・イメージ112中のテンプレート・イメージになる前に、このテンプレートを走査する。結果的な走査は、走査されたテンプレートに対応するソフトウェア・コンテナ110中のソフトウェア・コンテナについての、ソフトウェア目録を提供する。走査はまた、走査対象であるテンプレートのテンプレート識別子を決定し、このテンプレート識別子を、テンプレート/テンプレート・イメージに対応するソフトウェア・コンテナ識別子に関連付ける。
ステップ508で、CEAプログラム114/CEPプログラム208は、SAMスキャナ/モニタ・モジュール503を使用して、ソフトウェア目録報告を生成するために、新たに開始されたソフトウェア・コンテナ110を監視してTSMデータベース116を読み取る。様々な実施形態で、SAMスキャナ/モニタ・モジュール503は、ソフトウェア・コンテナ・エンジン106および206によってそれぞれ生成されたイベントに加入する。イベントのタイプは、以下の1つまたは複数を含む。
1.特定のテンプレートに基づく、ソフトウェア・コンテナの新しいインスタンスの作成。このイベントは、コンテナのCPU容量や、ソフトウェア・コンテナの構成済みRAMまたはストレージなど、SAM関連属性を含む。
2.修正されつつある属性(例えば、CPU容量、およびRAMまたはストレージ)のリストを含む、ソフトウェア・コンテナの既存のインスタンスの再構成
3.既存のソフトウェア・コンテナのデプロビジョニング
様々な実施形態で、SAMスキャナ/モニタ・モジュール503は、SAM許容可能なフォーマットで出力を生成する。出力は、ソフトウェア・コンテナ110上で実行されているソフトウェアについての、リアルタイムの正確なソフトウェア発見データを含む。出力のためのSAM許容可能なフォーマットは、ISO19770−2およびISO19770−4 XMLファイルを含むが、これらに限定されない。いくつかの実施形態では、特定のSAMツールに対して最適化された、特殊化された出力フォーマットが使用される。
次に図6を参照すると、例証的なクラウド・コンピューティング環境50が描かれている。図示のように、クラウド・コンピューティング環境50は、1つまたは複数のクラウド・コンピューティング・ノード10を含み、クラウド消費者によって使用されるローカル・コンピューティング・デバイス、例えば、パーソナル・ディジタル・アシスタント(PDA)もしくはセルラー電話機54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、または自動車コンピュータ・システム54N、あるいはそれらの組合せなどが、クラウド・コンピューティング・ノード10と通信することができる。ノード10は、相互に通信することができる。ノード10は、前述のようなプライベート、コミュニティ、パブリック、もしくはハイブリッド・クラウド、またはこれらの組合せなど、1つまたは複数のネットワーク中で、物理的または仮想的にグループ化されてよい(図示せず)。これにより、クラウド・コンピューティング環境50は、クラウド消費者がリソースをローカル・コンピューティング・デバイス上で維持する必要のない、インフラストラクチャ、プラットフォーム、またはソフトウェア・アズ・ア・サービス、あるいはそれらの組合せを提供することができる。図6に示されるコンピューティング・デバイス54A〜Nのタイプは例証に過ぎないものとし、コンピューティング・ノード10およびクラウド・コンピューティング環境50は、任意のタイプのネットワークまたはネットワーク対応可能接続あるいはその両方を介して(例えばウェブ・ブラウザを使用して)、任意のタイプのコンピュータ化デバイスと通信することができることを理解されたい。
次に図7を参照すると、クラウド・コンピューティング環境50(図6)によって提供される一組の機能的抽象化レイヤが示されている。図7に示されるコンポーネント、レイヤ、および機能は例証に過ぎないものとし、本発明の実施形態はこれらに限定されないことを、あらかじめ理解されたい。図示のように、以下のレイヤおよび対応する機能が提供される。
ハードウェアおよびソフトウェア・レイヤ60は、ハードウェア・コンポーネントおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例としては、メインフレーム61、RISC(縮小命令セット・コンピュータ)アーキテクチャベースのサーバ62、サーバ63、ブレード・サーバ64、ストレージ・デバイス65、ならびに、ネットワークおよびネットワーキング・コンポーネント66が挙げられる。いくつかの実施形態では、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア67およびデータベース・ソフトウェア68を含む。
仮想化レイヤ70は、仮想エンティティの以下の例、すなわち、仮想サーバ71、仮想ストレージ72、仮想プライベート・ネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティング・システム74、ならびに仮想クライアント75、を提供できる元となる抽象化レイヤを提供する。
一例では、管理レイヤ80は、以下に述べる機能を提供することができる。リソース・プロビジョニング81は、クラウド・コンピューティング環境内でタスクを実施するのに利用されるコンピューティング・リソースおよび他のリソースの動的な調達を提供する。ソフトウェア資産管理(SAM)82は、クラウド・コンピューティング環境内でリソースが利用されるのに伴うコスト追跡と、これらのリソースの消費に対する課金または送り状送付とを提供する。一例では、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含む場合がある。セキュリティが、クラウド消費者およびタスクに対する識別検証、ならびに、データおよび他のリソースのための保護を提供する。ユーザ・ポータル83は、クラウド・コンピューティング環境へのアクセスを消費者およびシステム管理者に提供する。サービス・レベル管理84は、必要とされるサービス・レベルが満たされるように、クラウド・コンピューティング・リソース割振りおよび管理を提供する。サービス・レベル・アグリーメント(SLA)プランニングおよび履行85は、SLAに従って、将来必要とされることが予期されるクラウド・コンピューティング・リソースの事前構成および調達を提供する。
ワークロード・レイヤ90は、クラウド・コンピューティング環境を利用できる対象となる機能の例を提供する。このレイヤから提供できるワークロードおよび機能の例としては、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想教室教育の送達93、データ分析処理94、トランザクション処理95、ならびにモバイル・デスクトップ96が挙げられる。
図8に、本発明の例証的な一実施形態による、本発明の例証的な実施形態を提供したコンピューティング・デバイス(例えば、ソフトウェア・コンテナ・サーバ102、SAMサーバ104、ソフトウェア・コンテナ・サーバ202、およびSAMサーバ204)のコンポーネントのブロック図800を示す。図8は、一実装形態の例証を提供するに過ぎず、種々の実施形態を実現できる環境に関するどのような限定も含意しないことを理解されたい。図示の環境に対する多くの修正を加えることができる。
図8に描かれるコンピューティング・デバイスのコンポーネントは、通信ファブリック802を備え、通信ファブリック802は、コンピュータ・プロセッサ804、メモリ806、永続ストレージ808、通信ユニット810、および1つまたは複数の入出力(I/O)インタフェース812の間の通信を提供する。通信ファブリック802は、プロセッサ(マイクロプロセッサ、通信およびネットワーク・プロセッサなど)、システム・メモリ、周辺デバイス、ならびにシステム内の他の任意のハードウェア・コンポーネントの間で、データまたは制御情報あるいはその両方を渡すために設計された、任意のアーキテクチャを用いて実現されてよい。例えば、通信ファブリック802は、1つまたは複数のバスを用いて実現されてよい。
メモリ806および永続ストレージ808は、コンピュータ可読ストレージ媒体である。この実施形態では、メモリ806は、ランダム・アクセス・メモリ(RAM)814およびキャッシュ・メモリ816を含む。一般に、メモリ806は、任意の適切な揮発性または不揮発性コンピュータ可読ストレージ媒体を含むことができる。
永続ストレージ808には、メモリ806のうちの1つまたは複数のメモリを介してそれぞれのコンピュータ・プロセッサ804の1つまたは複数によって実行またはアクセスあるいはその両方が行われるように、ソフトウェア・コンテナ・エンジン106、テンプレート・リポジトリ108、ソフトウェア・コンテナ110、テンプレート・イメージ112、CEAプログラム114、TSMデータベース116、ソフトウェア・コンテナ・エンジン206、およびCEPプログラム208が記憶される。この実施形態では、永続ストレージ808は、磁気ハード・ディスク・ドライブを含む。別法として、または磁気ハード・ディスク・ドライブに加えて、永続ストレージ808は、固体ハード・ドライブ、半導体ストレージ・デバイス、読取専用メモリ(ROM)、消去可能プログラム可能な読取専用メモリ(EPROM)、フラッシュ・メモリ、または、プログラム命令もしくはディジタル情報を記憶できる他の任意のコンピュータ可読ストレージ媒体、を含むことができる。
永続ストレージ808によって使用される媒体は、取外し可能であってもよい。例えば、取外し可能ハード・ドライブが永続ストレージ808に使用されてよい。他の例としては、光学および磁気ディスク、サム・ドライブ、ならびにスマート・カードが挙げられるが、これらは、やはり永続ストレージ808の一部である別のコンピュータ可読ストレージ媒体への転送のために、ドライブに挿入される。
通信ユニット810は、これらの例では、ネットワーク101のリソースを含めた他のデータ処理システムまたはデバイスとの通信を可能にする。これらの例では、通信ユニット810は、1つまたは複数のネットワーク・インタフェース・カードを含む。通信ユニット810は、物理通信リンクとワイヤレス通信リンクのいずれかまたは両方の使用を介して、通信を提供することができる。ソフトウェア・コンテナ・エンジン106、テンプレート・リポジトリ108、ソフトウェア・コンテナ110、テンプレート・イメージ112、CEAプログラム114、TSMデータベース116、ソフトウェア・コンテナ・エンジン206、およびCEPプログラム208は、通信ユニット810を介して永続ストレージ808にダウンロードされてよい。
I/Oインタフェース812は、本発明の例証的な実施形態を提供したコンピューティング・デバイス(例えば、ソフトウェア・コンテナ・サーバ102、SAMサーバ104、ソフトウェア・コンテナ・サーバ202、およびSAMサーバ204)に接続される可能性のある他のデバイスとの、データの入出力を可能にする。例えば、I/Oインタフェース812は、キーボード、キーパッド、タッチ・スクリーン、または他の何らかの適した入力デバイス、あるいはそれらの組合せなど、外部デバイス818への接続を提供することができる。外部デバイス818はまた、例えば、サム・ドライブ、ポータブル光学または磁気ディスク、およびメモリ・カードなど、ポータブル・コンピュータ可読ストレージ媒体を含むこともできる。本発明の実施形態を実践するのに使用されるソフトウェアおよびデータ、例えば、ソフトウェア・コンテナ・エンジン106、テンプレート・リポジトリ108、ソフトウェア・コンテナ110、テンプレート・イメージ112、CEAプログラム114、TSMデータベース116、ソフトウェア・コンテナ・エンジン206、およびCEPプログラム208は、このようなポータブル・コンピュータ可読ストレージ媒体に記憶されてよく、I/Oインタフェース812を介して永続ストレージ808にロードされてよい。I/Oインタフェース812はまた、ディスプレイ820に接続する。
ディスプレイ820は、データをユーザに対して表示するためのメカニズムを提供し、例えば、コンピュータ・モニタまたはテレビジョン画面であってよい。
本発明は、システム、方法、またはコンピュータ・プログラム、あるいはそれらの組合せとすることができる。コンピュータ・プログラムは、本発明の態様をプロセッサに遂行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読ストレージ媒体に含むことができる。
コンピュータ可読ストレージ媒体は、命令実行デバイスによって使用される命令を保持および記憶できる有形デバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、または上記の任意の適切な組合せとすることができるが、これらに限定されない。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読取専用メモリ(ROM)、消去可能プログラム可能な読取専用メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読取専用メモリ(CD−ROM)、ディジタル多用途ディスク(DVD)、メモリ・スティック、フロッピー(R)・ディスク、機械的にエンコードされたデバイス(命令が記録された、パンチカード、または溝の中の隆起構造など)、および上記の任意の適切な組合せを含む。本明細書におけるコンピュータ可読ストレージ媒体は、電波もしくは他の自由伝搬する電磁波、導波管もしくは他の伝送媒体を介して伝搬する電磁波(例えば、光ファイバ・ケーブルの中を通る光パルス)、またはワイヤを介して伝送される電気信号など、一時的な信号自体であると解釈されるべきではない。
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング/処理デバイスにダウンロードされてよく、あるいは、ネットワーク(例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、もしくはワイヤレス・ネットワーク、またはそれらの組合せ)を介して外部コンピュータまたは外部ストレージ・デバイスにダウンロードされてよい。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはそれらの組合せを含むことができる。各コンピューティング/処理デバイス中の、ネットワーク・アダプタ・カードまたはネットワーク・インタフェースが、コンピュータ可読プログラム命令をネットワークから受け取り、これらのコンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体に記憶するように転送する。
本発明の動作を遂行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データであってよく、または、Smalltalk(R)やC++などのオブジェクト指向プログラミング言語、および、「C」プログラミング言語や類似のプログラミング言語などの従来の手続き型プログラミング言語を含めた、1つもしくは複数のプログラミング言語の任意の組合せで書かれたソース・コードとオブジェクト・コードとのいずれかであってよい。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で実行されるか、スタンドアロンソフトウェアパッケージとして部分的にユーザのコンピュータ上で実行されるか、部分的にユーザのコンピュータ上で実行され部分的にリモート・コンピュータ上で実行されるか、または完全にリモート・コンピュータもしくはサーバ上で実行される場合がある。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含めた任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、または、接続は、外部コンピュータに対して(例えば、インターネット・サービス・プロバイダを使用してインターネット経由で)行われてもよい。いくつかの実施形態では、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を例えば含む、電子回路が、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個人化することによって、コンピュータ可読プログラム命令を実行することができる。
本明細書では、本発明の態様を、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラムの、フローチャート説明またはブロック図あるいはその両方に関して述べている。フローチャート説明またはブロック図あるいはその両方の各ブロック、ならびに、フローチャート説明またはブロック図あるいはその両方の中のブロックの組合せを、コンピュータ可読プログラム命令によって実現できることは理解されるであろう。
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロック中で指定される機能/行為を実現する手段をもたらすように、汎用コンピュータ、専用コンピュータ、または他のプログラム可能データ処理装置のプロセッサに提供されて、マシンを生み出すものであってよい。これらのコンピュータ可読プログラム命令はまた、命令が記憶されたコンピュータ可読ストレージ媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロック中で指定される機能/行為の態様を実現する命令を含む製造品を含むように、コンピュータ可読ストレージ媒体に記憶され、コンピュータ、プログラム可能データ処理装置、または他のデバイス、あるいはそれらの組合せに、特定の方式で機能するよう指示することができるものであってもよい。
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能装置、または他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロック中で指定される機能/行為を実現するように、コンピュータ実装プロセスが生み出すべく、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードされ、コンピュータ、他のプログラム可能装置、または他のデバイス上で一連の動作ステップを実行させるものであってもよい。
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態の、アーキテクチャ、機能、および動作を示す。これに関して、フローチャートまたはブロック図の中の各ブロックは、モジュール、セグメント、または命令の一部を表すことができ、これは、指定される論理機能を実現するための1つまたは複数の実行可能命令を含む。いくつかの代替実装形態では、ブロック中で示される機能は、図中で示される順序とは異なる順序で生じる場合がある。例えば、関連する機能に応じて、連続して示される2つのブロックが実際にはほぼ同時に実行される場合もあり、またはこれらのブロックが逆の順序で実行されることもある。また、ブロック図またはフローチャート説明あるいはその両方の各ブロック、および、ブロック図またはフローチャート説明あるいはその両方の中のブロックの組合せは、指定される機能もしくは行為を実施するかまたは専用ハードウェアとコンピュータ命令との組合せを遂行する、専用ハードウェアベースのシステムによって実現できることにも気付くであろう。
本明細書に記載のプログラムは、本発明の特定の実施形態でこれらのプログラムが実現される応用例に基づいて、識別される。しかし、本明細書におけるどのような特定のプログラム術語も便宜的に使用されるに過ぎず、したがって本発明は、そのような術語によって識別されるかまたは含意されるかあるいはその両方がなされるいずれか特定の応用例のみにおける使用に限定されるべきではないことを理解されたい。
「Smalltalk(R)」、LINUX、DOCKERなどの用語は、世界中の様々な司法管轄区における商標権に従うことを条件とする場合があり、これらの用語は、ここでは、そのような商標権が存在できる範囲まで、商標によって適正に称される製品またはサービスに関してのみ使用されることに留意されたい。
100 第1のソフトウェア発見環境
101 ネットワーク
102 ソフトウェア・コンテナ・サーバ
104 ソフトウェア資産管理(SAM)サーバ
106 ソフトウェア・コンテナ・サーバ
108 テンプレート・リポジトリ
110 ソフトウェア・コンテナ
112 テンプレート・イメージ
114 コンテナ・エンジン・アダプタ(CEA)プログラム
116 テンプレート/ソフトウェア・マップ(TSM)データベース
200 第2のソフトウェア発見環境
202 ソフトウェア・コンテナ・サーバ
204 ソフトウェア資産管理(SAM)サーバ
206 ソフトウェア・コンテナ・エンジン
208 コンテナ・エンジン・プラグイン(CEP)プログラム
501 テンプレート・スキャナ・モジュール
503 SAMスキャナ/モニタ・モジュール
10 クラウド・コンピューティング・ノード
50 クラウド・コンピューティング環境
54A パーソナル・ディジタル・アシスタント(PDA)もしくはセルラー電話機
54B デスクトップ・コンピュータ
54C ラップトップ・コンピュータ
54N 自動車コンピュータ・システム
60 ハードウェアおよびソフトウェア・レイヤ
61 メインフレーム
62 RISC(縮小命令セット・コンピュータ)アーキテクチャベースのサーバ
63 サーバ
64 ブレード・サーバ
65 ストレージ・デバイス
66 ネットワークおよびネットワーキング・コンポーネント
67 ネットワーク・アプリケーション・ソフトウェア
68 データベース・ソフトウェア
70 仮想化レイヤ
71 仮想サーバ
72 仮想ストレージ
73 仮想プライベート・ネットワークを含む仮想ネットワーク
74 仮想アプリケーションおよびオペレーティング・システム
75 仮想クライアント
80 管理レイヤ
81 リソース・プロビジョニング
82 ソフトウェア資産管理(SAM)
83 ユーザ・ポータル
84 サービス・レベル管理
85 プランニングおよび履行
90 ワークロード・レイヤ
91 マッピングおよびナビゲーション
92 ソフトウェア開発およびライフサイクル管理
93 仮想教室教育の送達
94 データ分析処理
95 トランザクション処理
96 モバイル・デスクトップ
802 通信ファブリック
804 コンピュータ・プロセッサ
806 メモリ
808 永続ストレージ
810 通信ユニット
812 入出力(I/O)インタフェース
814 ランダム・アクセス・メモリ(RAM)
816 キャッシュ・メモリ
818 外部デバイス
820 ディスプレイ

Claims (20)

  1. 1つまたは複数のプロセッサによって、第1のソフトウェア・コンテナ・テンプレートに関連する第1のソフトウェア・コンテナ上に存在するソフトウェアの1つまたは複数の識別であって、前記第1のソフトウェア・コンテナ・テンプレートに関連するメタデータに含まれる前記1つまたは複数の識別を求めて前記第1のソフトウェア・コンテナ・テンプレートを走査することと、
    前記1つまたは複数のプロセッサによって、前記第1のソフトウェア・コンテナ上に存在するソフトウェアの前記1つまたは複数の識別のマップを生成することであって、前記第1のソフトウェア・コンテナ上に存在するソフトウェアの前記1つまたは複数の識別が、前記第1のソフトウェア・コンテナ・テンプレートの識別子、および前記第1のソフトウェア・コンテナ・テンプレートに関連する前記第1のソフトウェア・コンテナの識別子、のうちの一方または両方でマッピングされる、前記生成することと
    を含む方法。
  2. 前記1つまたは複数のプロセッサによって、第1のソフトウェア・コンテナ・テンプレート・イメージを第1のソフトウェア・コンテナ・テンプレート・リポジトリから取り出すことと、
    前記1つまたは複数のプロセッサによって、前記第1のソフトウェア・コンテナ・テンプレート・イメージをインスタンス化することと
    をさらに含む、請求項1に記載の方法。
  3. 前記1つまたは複数のプロセッサによって、前記第1のソフトウェア・コンテナ上に存在するソフトウェアの前記1つまたは複数の識別の前記マップで、テンプレート/ソフトウェア・マップ・データベースを更新することをさらに含む、請求項1に記載の方法。
  4. 前記1つまたは複数のプロセッサによって、ソフトウェア資産管理プログラムによって読み取れるフォーマットでソフトウェア目録報告を生成することをさらに含む、請求項1に記載の方法。
  5. 前記第1のソフトウェア・コンテナ・テンプレートに関連する前記第1のソフトウェア・コンテナの作成における最後のステップ、および前記第1のソフトウェア・コンテナ・テンプレートをソフトウェア・コンテナ・テンプレート・リポジトリ中に発行すること、のうちの一方または両方の前に、前記1つまたは複数のプロセッサによって、ソフトウェア資産管理ツール走査を前記第1のソフトウェア・コンテナ・テンプレートにインジェクトすることをさらに含む、請求項1に記載の方法。
  6. 1つまたは複数のプロセッサによって、ソフトウェア・コンテナ・エンジンによって生成された1つまたは複数のイベントにサブスクライブすることをさらに含む、請求項1に記載の方法。
  7. 前記1つまたは複数のイベントが、第2のソフトウェア・コンテナの新しいインスタンスの作成と、第3のソフトウェア・コンテナの既存のインスタンスの再構成と、既存のソフトウェア・コンテナのデプロビジョニングと、のうちの1つまたは複数を含む、請求項6に記載の方法。
  8. コンピュータに、
    第1のソフトウェア・コンテナ・テンプレートに関連する第1のソフトウェア・コンテナ上に存在するソフトウェアの1つまたは複数の識別であって、前記第1のソフトウェア・コンテナ・テンプレートに関連するメタデータに含まれる前記1つまたは複数の識別を求めて前記第1のソフトウェア・コンテナ・テンプレートを走査する手順と、
    前記第1のソフトウェア・コンテナ上に存在するソフトウェアの前記1つまたは複数の識別のマップを生成する手順であって、前記第1のソフトウェア・コンテナ上に存在するソフトウェアの前記1つまたは複数の識別が、前記第1のソフトウェア・コンテナ・テンプレートの識別子、および前記第1のソフトウェア・コンテナ・テンプレートに関連する前記第1のソフトウェア・コンテナの識別子、のうちの一方または両方でマッピングされる、手順と
    を実行させるためのコンピュータ・プログラム。
  9. 前記コンピュータに、
    第1のソフトウェア・コンテナ・テンプレート・イメージを第1のソフトウェア・コンテナ・テンプレート・リポジトリから取り出す手順と、
    前記第1のソフトウェア・コンテナ・テンプレート・イメージをインスタンス化する手順とをさらに実行させるための、請求項8に記載のコンピュータ・プログラム。
  10. 前記コンピュータに、前記第1のソフトウェア・コンテナ上に存在するソフトウェアの前記1つまたは複数の識別の前記マップで、テンプレート/ソフトウェア・マップ・データベースを更新する手順をさらに実行させるための、請求項8に記載のコンピュータ・プログラム。
  11. 前記コンピュータに、ソフトウェア資産管理プログラムによって読み取れるフォーマットでソフトウェア目録報告を生成する手順をさらに実行させるための、請求項8に記載のコンピュータ・プログラム。
  12. 前記コンピュータに、前記第1のソフトウェア・コンテナ・テンプレートに関連する前記第1のソフトウェア・コンテナの作成における最後のステップ、および前記第1のソフトウェア・コンテナ・テンプレートをソフトウェア・コンテナ・テンプレート・リポジトリ中に発行すること、のうちの一方または両方の前に、ソフトウェア資産管理ツール走査を前記第1のソフトウェア・コンテナ・テンプレートにインジェクトする手順をさらに実行させるための、請求項8に記載のコンピュータ・プログラム。
  13. 前記コンピュータに、ソフトウェア・コンテナ・エンジンによって生成された1つまたは複数のイベントにサブスクライブする手順をさらに実行させるための、請求項8に記載のコンピュータ・プログラム。
  14. 前記1つまたは複数のイベントが、第2のソフトウェア・コンテナの新しいインスタンスの作成と、第3のソフトウェア・コンテナの既存のインスタンスの再構成と、既存のソフトウェア・コンテナのデプロビジョニングと、のうちの1つまたは複数を含む、請求項13に記載のコンピュータ・プログラム。
  15. コンピュータ・システムであって、
    1つまたは複数のコンピュータ・プロセッサと、
    1つまたは複数のコンピュータ可読ストレージ媒体と、
    前記1つまたは複数のプロセッサの少なくとも1つによって実行されるように前記1つまたは複数のコンピュータ可読ストレージ媒体の少なくとも1つに記憶されたプログラム命令とを備え、前記プログラム命令が、
    第1のソフトウェア・コンテナ・テンプレートに関連する第1のソフトウェア・コンテナ上に存在するソフトウェアの1つまたは複数の識別であって、前記第1のソフトウェア・コンテナ・テンプレートに関連するメタデータに含まれる前記1つまたは複数の識別を求めて前記第1のソフトウェア・コンテナ・テンプレートを走査するためのプログラム命令と、
    前記第1のソフトウェア・コンテナ上に存在するソフトウェアの前記1つまたは複数の識別のマップを生成するためのプログラム命令であって、前記第1のソフトウェア・コンテナ上に存在するソフトウェアの前記1つまたは複数の識別が、前記第1のソフトウェア・コンテナ・テンプレートの識別子、および前記第1のソフトウェア・コンテナ・テンプレートに関連する前記第1のソフトウェア・コンテナの識別子、のうちの一方または両方でマッピングされる、前記プログラム命令と
    を含む、コンピュータ・システム。
  16. 第1のソフトウェア・コンテナ・テンプレート・イメージを第1のソフトウェア・コンテナ・テンプレート・リポジトリから取り出すためのプログラム命令と、
    前記第1のソフトウェア・コンテナ・テンプレート・イメージをインスタンス化するためのプログラム命令と
    をさらに含む、請求項15に記載のコンピュータ・システム。
  17. 前記第1のソフトウェア・コンテナ上に存在するソフトウェアの前記1つまたは複数の識別の前記マップで、テンプレート/ソフトウェア・マップ・データベースを更新するためのプログラム命令をさらに含む、請求項15に記載のコンピュータ・システム。
  18. ソフトウェア資産管理プログラムによって読み取れるフォーマットでソフトウェア目録報告を生成するためのプログラム命令をさらに含む、請求項15に記載のコンピュータ・システム。
  19. 前記第1のソフトウェア・コンテナ・テンプレートに関連する前記第1のソフトウェア・コンテナの作成における最後のステップ、および前記第1のソフトウェア・コンテナ・テンプレートをソフトウェア・コンテナ・テンプレート・リポジトリ中に発行すること、のうちの一方または両方の前に、ソフトウェア資産管理ツール走査を前記第1のソフトウェア・コンテナ・テンプレートにインジェクトするためのプログラム命令をさらに含む、
    請求項15に記載のコンピュータ・システム。
  20. ソフトウェア・コンテナ・エンジンによって生成された1つまたは複数のイベントにサブスクライブするためのプログラム命令をさらに含む、請求項15に記載のコンピュータ・システム。

JP2016227079A 2015-12-11 2016-11-22 ソフトウェア・コンテナ中のソフトウェアの識別を決定するための方法、システム、およびプログラム Active JP6813152B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/965,922 US10223074B2 (en) 2015-12-11 2015-12-11 Determining the identity of software in software containers
US14/965922 2015-12-11

Publications (2)

Publication Number Publication Date
JP2017107555A JP2017107555A (ja) 2017-06-15
JP6813152B2 true JP6813152B2 (ja) 2021-01-13

Family

ID=59018581

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016227079A Active JP6813152B2 (ja) 2015-12-11 2016-11-22 ソフトウェア・コンテナ中のソフトウェアの識別を決定するための方法、システム、およびプログラム

Country Status (3)

Country Link
US (2) US10223074B2 (ja)
JP (1) JP6813152B2 (ja)
CN (1) CN107066242B (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10223074B2 (en) 2015-12-11 2019-03-05 International Business Machines Corporation Determining the identity of software in software containers
US10613885B2 (en) * 2017-02-24 2020-04-07 International Business Machines Corporation Portable aggregated information calculation and injection for application containers
US10691816B2 (en) 2017-02-24 2020-06-23 International Business Machines Corporation Applying host access control rules for data used in application containers
US10176106B2 (en) * 2017-02-24 2019-01-08 International Business Machines Corporation Caching mechanisms for information extracted from application containers including applying a space guard and a time guard
US10803177B2 (en) * 2017-07-19 2020-10-13 International Business Machines Corporation Compliance-aware runtime generation based on application patterns and risk assessment
CN107870789B (zh) * 2017-10-18 2021-01-26 福建天泉教育科技有限公司 一种打包插件的方法及终端
US10956563B2 (en) * 2017-11-22 2021-03-23 Aqua Security Software, Ltd. System for securing software containers with embedded agent
US10997283B2 (en) * 2018-01-08 2021-05-04 Aqua Security Software, Ltd. System for securing software containers with encryption and embedded agent
JP7047497B2 (ja) 2018-03-13 2022-04-05 富士通株式会社 操作制御方法、情報処理装置および操作制御プログラム
CN110196681B (zh) * 2018-04-11 2022-02-25 腾讯科技(深圳)有限公司 业务写操作的磁盘数据写入控制方法及装置、电子设备
US10929200B1 (en) 2019-09-16 2021-02-23 International Business Machines Corporation Live runtime infrastructure orchestration
EP4032044A4 (en) * 2019-09-19 2023-05-24 Aplas Pty Ltd METHOD AND SYSTEM FOR INDEXING AND MAPPING A COMPANY'S SOFTWARE ASSETS
US11645245B2 (en) 2019-09-26 2023-05-09 International Business Machines Corporation Container software discovery and cataloging
EP4022431A1 (en) * 2019-10-29 2022-07-06 Google LLC Automated assistant architecture for preserving privacy of application content
US11163557B2 (en) 2019-11-08 2021-11-02 International Business Machines Corporation Automated techniques for detecting the usage of software applications in a computing environment using configuration objects
JP7434039B2 (ja) 2020-04-08 2024-02-20 キヤノン株式会社 情報処理装置、及び情報処理装置におけるコンテナとプロセスとの間の通信を制御する制御方法
US12001863B2 (en) 2020-09-21 2024-06-04 International Business Machines Corporation Containerized software discovery and identification
US20240272887A1 (en) * 2020-10-23 2024-08-15 Jpmorgan Chase Bank, N.A. Systems and methods for deploying federated infrastructure as code
US20220360504A1 (en) * 2021-05-05 2022-11-10 International Business Machines Corporation Adapting microservices to multi-platform deployments
US11972252B2 (en) 2021-08-02 2024-04-30 Micro Focus Llc Docker installed software/hardware discovery

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1224544A1 (en) * 1999-08-16 2002-07-24 Z-Force Corporation System of reusable software parts for implementing concurrency and hardware access, and methods of use
US7359863B1 (en) * 1999-09-30 2008-04-15 Computer Sciences Corporation Condition component framework for reinsurance
WO2002005119A1 (en) * 2000-07-07 2002-01-17 Consilient, Inc. Method and apparatus for providing process-container platforms
US7103652B1 (en) * 2000-12-23 2006-09-05 Emc Corporation Ambiguity-purging and template-conflict-resolution in computer network events-notification
US7487182B2 (en) * 2001-01-23 2009-02-03 Conformia Software, Inc. Systems and methods for managing the development and manufacturing of a drug
CA2355989A1 (en) * 2001-08-27 2003-02-27 Ibm Canada Limited-Ibm Canada Limitee Compiling source code files having multiple
JP3755500B2 (ja) * 2002-09-06 2006-03-15 ソニー株式会社 Guiアプリケーション開発支援装置および方法、並びにコンピュータ・プログラム
CN1981301B (zh) * 2004-05-17 2012-01-18 因文西斯系统公司 用于开发动画可视化界面的系统和方法
JP4700940B2 (ja) * 2004-08-27 2011-06-15 キヤノン株式会社 情報処理装置及びその制御方法、プログラム
US10380538B2 (en) * 2005-09-27 2019-08-13 Bdna Corporation Discovery of electronic assets using fingerprints
US7895573B1 (en) * 2006-03-27 2011-02-22 Mcafee, Inc. Execution environment file inventory
JP2008152436A (ja) * 2006-12-15 2008-07-03 Winworks Kk スケジュール管理システム、プログラム
US20110113319A1 (en) * 2007-08-13 2011-05-12 Kcs - Knowledge Control Systems Ltd. Introducing a form instance into an information container
JP4907610B2 (ja) * 2008-07-29 2012-04-04 日立オートモティブシステムズ株式会社 ソフトウェア構成管理方法およびシステム
US9201665B2 (en) * 2009-08-23 2015-12-01 Bank Of America Corporation Outputting presentation code updated for a particular user in response to receiving a page identifier
US9141342B2 (en) * 2010-11-30 2015-09-22 International Business Machines Corporation Programmatic conversion of support documentation into executable programs
US9690770B2 (en) * 2011-05-31 2017-06-27 Oracle International Corporation Analysis of documents using rules
US9026563B2 (en) * 2012-02-02 2015-05-05 Salesforce.Com, Inc. Mechanism for facilitating dynamic social media-based management of assets in an on-demand services environment
NL2009237C2 (en) * 2012-07-26 2014-01-28 Heineken Supply Chain Bv Connecting device and tapping assembly as well as a container and method for beverage dispensing.
US20140122348A1 (en) 2012-10-26 2014-05-01 International Business Machines Corporation Optimized License Procurement
US20140136958A1 (en) * 2012-11-15 2014-05-15 Customer Systems Plc Relating to distributed access infrastructure for a database
US9904905B2 (en) * 2012-12-05 2018-02-27 Apttex Corporation Document-based user interfaces controlled and managed by a system
WO2014112089A1 (ja) * 2013-01-17 2014-07-24 株式会社日立製作所 計算機システム、及びプログラム
US9118538B1 (en) * 2013-03-15 2015-08-25 Emc Corporation Method and system for configuring resources to enable resource monitoring
US9495195B2 (en) * 2013-10-04 2016-11-15 Hitachi, Ltd. Resource migration between virtual containers based on utilization rate and performance degradation
EP3097481B1 (en) * 2014-01-21 2022-11-30 Oracle International Corporation System and method for supporting multi-tenancy in an application server, cloud, or other environment
US10298670B2 (en) * 2014-05-13 2019-05-21 Google Llc Real time cloud workload streaming
US9319430B2 (en) * 2014-06-17 2016-04-19 International Business Machines Corporation Managing software deployment
US9122562B1 (en) * 2014-06-19 2015-09-01 Amazon Technologies, Inc. Software container recommendation service
JP5733458B1 (ja) * 2014-08-26 2015-06-10 富士ゼロックス株式会社 情報処理装置及び情報処理プログラム
US9652273B2 (en) * 2014-10-02 2017-05-16 Vmware, Inc. Method and system for creating a hierarchy of virtual machine templates in a virtualized computing system
US10599423B2 (en) * 2014-11-20 2020-03-24 Red Hat, Inc. Source code management for a multi-tenant platform-as-a-service (PaaS) system
US9646064B2 (en) * 2014-12-10 2017-05-09 Salesforce.Com, Inc. Template based software container
US10783477B2 (en) * 2015-02-03 2020-09-22 International Business Machines Corporation Template containers for business process management
US9965260B2 (en) * 2015-02-18 2018-05-08 Oracle International Corporation Software product release automation framework
US9792140B2 (en) * 2015-03-04 2017-10-17 International Business Machines Corporation Maintenance of a software discovery catalog in a virtual machine environment
US9582268B2 (en) * 2015-05-27 2017-02-28 Runnable Inc. Automatic communications graphing for a source application
US10042697B2 (en) * 2015-05-28 2018-08-07 Oracle International Corporation Automatic anomaly detection and resolution system
US10223074B2 (en) 2015-12-11 2019-03-05 International Business Machines Corporation Determining the identity of software in software containers
US10162612B2 (en) * 2016-01-04 2018-12-25 Syntel, Inc. Method and apparatus for inventory analysis

Also Published As

Publication number Publication date
US10223074B2 (en) 2019-03-05
US20170168778A1 (en) 2017-06-15
JP2017107555A (ja) 2017-06-15
CN107066242B (zh) 2020-11-17
US10635406B2 (en) 2020-04-28
CN107066242A (zh) 2017-08-18
US20190155578A1 (en) 2019-05-23

Similar Documents

Publication Publication Date Title
JP6813152B2 (ja) ソフトウェア・コンテナ中のソフトウェアの識別を決定するための方法、システム、およびプログラム
US11178207B2 (en) Software version control without affecting a deployed container
US10725814B2 (en) Expediting the provisioning of virtual machines based on cached repeated portions of a template
US11347555B2 (en) Integrated system to distribute and execute complex applications
US10983774B2 (en) Extensions for deployment patterns
US9720668B2 (en) Creating and maintaining multi-tenant applications in a platform-as-a-service (PaaS) environment of a cloud computing system
JP7446332B2 (ja) ソフトウェア・プログラムの管理
CN111527474A (zh) 软件功能的动态交付
WO2022100439A1 (en) Workflow patching
US20220350674A1 (en) Generating and/or modifying metadata for infrastructure and runtime information for content
US11301223B2 (en) Artificial intelligence enabled function logic infusion
WO2023056793A1 (en) Optimizing a just-in-time compilation process
US11640281B2 (en) Tool for introspection in object-oriented source code
Harzenetter et al. An Integrated Management System for Composed Applications Deployed by Different Deployment Automation Technologies
US20180121314A1 (en) Preemption of false positives in code scanning
Odun-Ayo et al. Cloud and application programming interface–Issues and developments
US20180101794A1 (en) Method and system for creating mapping between business models
US20230315535A1 (en) Dynamic factoring and composing workflows
US11556351B1 (en) Facilitation of application containerization
US20220350673A1 (en) Deploying dynamic applications and infrastructure according to metadata assigned by content
JP2024538679A (ja) ジャストインタイムコンパイルプロセスの最適化
CN117992101A (zh) 应用程序修改方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190419

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200610

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200804

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20200924

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200925

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20200925

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: 20201201

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20201202

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201207

R150 Certificate of patent or registration of utility model

Ref document number: 6813152

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250