JP2023058451A - コンピュータ実装方法、システム、およびコンピュータプログラム(アプリケーションのコンテナ化の促進) - Google Patents

コンピュータ実装方法、システム、およびコンピュータプログラム(アプリケーションのコンテナ化の促進) Download PDF

Info

Publication number
JP2023058451A
JP2023058451A JP2022162577A JP2022162577A JP2023058451A JP 2023058451 A JP2023058451 A JP 2023058451A JP 2022162577 A JP2022162577 A JP 2022162577A JP 2022162577 A JP2022162577 A JP 2022162577A JP 2023058451 A JP2023058451 A JP 2023058451A
Authority
JP
Japan
Prior art keywords
target
file
files
filenames
application
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
JP2022162577A
Other languages
English (en)
Inventor
ジガン ジ
Zhigang Ji
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 JP2023058451A publication Critical patent/JP2023058451A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】アプリケーションのコンテナ化を促進するためのコンピュータ実装方法、コンピュータシステム及びコンピュータプログラム製品を提供する。【解決手段】方法は、対象アプリケーションを動作させることと、対象アプリケーションにより実行されるファイルオープン動作をモニタすることと、ファイルオープン動作により開かれるファイルに関連するファイル情報項目を記録することと、対象ファイル情報項目から、対象ファイルプロパティを含む対象ファイル情報項目を選択することと、対象ファイル情報項目から、対象アプリケーションにより使用される対象ファイルの第1のファイル名セットを取り出すことと、対象アプリケーションのコンテナ化を促進するために、対象ファイルを利用することと、を含む。【選択図】図4

Description

本発明は、コンピュータ技術に関し、より詳細には、アプリケーションのコンテナ化を促進するためのコンピュータ実装方法、コンピュータシステム、および、コンピュータプログラム製品に関する。
コンテナ化されたアプリケーションは、コンテナとも称され、自体の対応するコンテナベースイメージをインスタンス化したものであり、コンテナベースイメージは、コンテナ化されたアプリケーションを構築するためのテンプレートである。コンテナベースイメージは、ランタイムでコンテナになる。複数のコンテナが、マシンのオペレーションシステム(OS)カーネルを共有するので、アプリケーションごとにOSを必要としない。OS上に存在するアプリケーションは、要求に応じてコンテナ化することができる。
対象アプリケーションをコンテナ化する際に、フォントファイルなどのいくつかの従属ファイルが、コンテナ化されたアプリケーションに含まれない(例えば、忘れられる)ことがある。
本開示の実施形態は、アプリケーションのコンテナ化を促進するための方法、コンピュータプログラム製品、およびシステムを含む。プロセッサは、対象アプリケーションを動作させることができる。プロセッサは、対象アプリケーションにより実行される1つまたは複数のファイルオープン動作をモニタすることができる。プロセッサは、1つまたは複数のファイルに関連する1つまたは複数のファイル情報項目を記録することができ、1つまたは複数のファイルは、1つまたは複数のファイルオープン動作により開かれる。プロセッサは、1つまたは複数の対象ファイル情報項目を選択することができ、1つまたは複数の対象ファイル項目は、1つまたは複数のファイル情報項目からの対象ファイルプロパティを含む。プロセッサは、1つまたは複数の対象ファイル情報項目から、対象アプリケーションにより使用される1つまたは複数の対象ファイルの第1のファイル名セットを取り出すことができる。プロセッサは、対象アプリケーションのコンテナ化を促進するために、1つまたは複数の対象ファイルを利用することができる。
上記の概要は、本開示の例証される各実施形態または全ての実装形態を説明することを意図していない。
本開示に含まれる図面は、本明細書に組み込まれ、その一部をなす。それらは、本開示の実施形態を例証し、記載と共に、本開示の原理を説明する役割を果たす。図面は、特定の実施形態の例示に過ぎず、本開示を限定しない。
本開示によるクラウドコンピューティングノードを示す図である。
本開示によるクラウドコンピューティング環境を示す図である。
本開示による抽象化モデル層を示す図である。
本開示によるアプリケーションのコンテナ化を促進する方法の概略フローチャートを示す図である。
本開示によるいくつかの例示的ファイル情報項目の模式図である。
本開示による、対象アプリケーションのコンテナ化を促進するために1つまたは複数の対象ファイルを利用する例示的プロセスを示すための概略フローチャートを示す図である。
添付の図面を参照して、いくつかの実施形態をより詳細に説明することができるが、これらの図面内では、本開示の実施形態が示されている。しかしながら、本開示は、様々な方式で実装でき、したがって本明細書に開示の実施形態に限定されると解釈されるべきでない。
本開示はクラウドコンピューティングについての詳細な説明を含むが、本明細書で記載される教示内容の実施は、クラウドコンピューティング環境に限定されないことを理解されたい。それどころか、本発明の実施形態は、現在知られている、または、今後開発される他の任意のタイプのコンピューティング環境と併せて実装することが可能である。
クラウドコンピューティングは、管理の労力またはサービスのプロバイダとの対話を最小限に抑えながら迅速にプロビジョニングおよびリリースできる構成可能なコンピューティングリソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有プールに対する便利なオンデマンドネットワークアクセスを可能にするための、サービス提供モデルである。このクラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデル、および、少なくとも4つの展開モデルを含み得る。
特性は以下のとおりである。
オンデマンドセルフサービス:クラウドコンシューマは、サービスプロバイダとの人的対話を必要とすることなく、必要に応じて自動的に、サーバ時間およびネットワークストレージなどのコンピューティング能力を一方的にプロビジョニングすることができる。
幅広いネットワークアクセス:ネットワークを介して能力を利用可能であり、異種混交のシンクライアントプラットフォームまたはシッククライアントプラットフォーム(例えば、携帯電話、ラップトップ、および、PDA)による使用を促進する標準的なメカニズムを通して能力がアクセスされる。
リソースプーリング:プロバイダのコンピューティングリソースは、マルチテナントモデルを用いて複数のコンシューマにサービスを提供するようにプールされており、様々な物理リソースおよび仮想リソースが需要に従って動的に割り当てられ、また再割り当てされる。コンシューマは、一般には、提供されるリソースの厳密な位置を制御できない、または、その知識がないが、より高い抽象レベル(例えば、国、州、またはデータセンタ)では位置を指定可能であることもある点で一種の位置独立性がある。
迅速な拡張性:様々な能力を迅速に且つ伸縮自在に、場合によっては自動的にプロビジョニングし、即座にスケールアウトすることも、迅速にリリースして即座にスケールインすることもできる。コンシューマにとっては、多くの場合、プロビジョニングに利用可能な能力が無制限にあるように感じられ、また、いつでもどんな量でも購入可能である。
計測可能なサービス:クラウドシステムは、ある程度の抽象化レベルでサービスのタイプ(例えば、ストレージ、処理、帯域幅、およびアクティブなユーザアカウント)に適した計測能力を活用することにより、リソース利用を自動的に制御し最適化する。リソース使用量は、モニタされ、制御され、また報告されるので、利用されるサービスのプロバイダおよびコンシューマの両方に透明性を提供することができる。
サービスモデルは以下のとおりである。
サービスとしてのソフトウェア(SaaS):コンシューマに提供される能力は、クラウドインフラストラクチャ上で動作しているプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブブラウザ(例えば、ウェブベースの電子メール)などのシンクライアントインタフェースを通して様々なクライアントデバイスからアクセス可能である。コンシューマは、ネットワーク、サーバ、オペレーティングシステム、ストレージ、または個々のアプリケーション能力さえも含む基礎となるクラウドインフラストラクチャを管理することも、制御することもない。ただし、限定されたユーザ固有のアプリケーション構成設定は例外となる場合がある。
サービスとしてのプラットフォーム(PaaS):コンシューマに提供される能力は、プロバイダによりサポートされるプログラミング言語およびツールを用いて作成される、コンシューマが作成したまたは取得したアプリケーションをクラウドインフラストラクチャ上に展開することである。コンシューマは、ネットワーク、サーバ、オペレーティングシステム、またはストレージを含む基礎となるクラウドインフラストラクチャを管理することも、制御することもないが、展開したアプリケーション、および場合によってはアプリケーションのホストとして働く環境設定に対する制御権を有する。
サービスとしてのインフラストラクチャ(IaaS):コンシューマに提供される能力は、処理、ストレージ、ネットワーク、および他の基本的なコンピューティングリソースをプロビジョニングすることであり、コンシューマは、オペレーティングシステムおよびアプリケーションを含み得る任意のソフトウェアを展開して動作させることができる。コンシューマは、基礎となるクラウドインフラストラクチャを管理することも、制御することもないが、オペレーティングシステム、ストレージ、展開したアプリケーションに対する制御権を有し、場合によっては選択したネットワーキングコンポーネント(例えば、ホストファイアウォール)の限定された制御権を有する。
展開モデルは以下のとおりである。
プライベートクラウド:クラウドインフラストラクチャが、一組織のためだけに運用される。それは、組織または第三者によって管理することができ、オンプレミスまたはオフプレミスで存在することができる。
コミュニティクラウド:クラウドインフラストラクチャが、いくつかの組織で共有されており、共通の関心事(例えば、ミッション、セキュリティ要件、ポリシ、および法令順守に関わる考慮事項)を有する特定のコミュニティをサポートする。これは、組織または第三者により管理することができ、オンプレミスまたはオフプレミスに存在することができる。
パブリッククラウド:クラウドインフラストラクチャが、一般大衆または大きな業界団体により利用可能になり、クラウドサービスを販売する組織により所有されている。
ハイブリッドクラウド:クラウドインフラストラクチャが、2つまたはそれより多くのクラウド(プライベート、コミュニティ、またはパブリック)を組み合わせたものであり、各クラウドは独特なエンティティのままであるが、データおよびアプリケーションの移植性(例えば、クラウド間で負荷分散するためのクラウドバースト)を可能にする標準化技術または独自技術によって結びつけられている。
クラウドコンピューティング環境は、ステートレス性、低結合性、モジュール性、およびセマンティック相互運用性を重視したサービス指向型である。クラウドコンピューティングの中核には、相互接続されたノードからなるネットワークを含むインフラストラクチャが存在する。
ここで図1を参照すると、クラウドコンピューティングノードの一例の模式図が示されている。クラウドコンピューティングノード10は、好適なクラウドコンピューティングノードの単に1つの例であり、本明細書に記載の発明の実施形態の使用または機能の範囲に関するいかなる限定を示唆することも意図していない。いずれにしても、クラウドコンピューティングノード10は、本明細書中で先に記載された機能のうちのいずれの機能をも実装もしくは実行すること、または、実装および実行することが可能である。
クラウドコンピューティングノード10には、コンピュータ・システム/サーバ12、または通信デバイスなどの携帯電子デバイスがあり、これは、多数の他の汎用または専用のコンピューティングシステム環境または構成とともに動作可能である。コンピュータ・システム/サーバ12との使用に適し得る周知のコンピューティングシステム、コンピューティング環境、もしくは、コンピューティング構成またはそれらの組合せの例には、パーソナルコンピュータシステム、サーバコンピュータシステム、シンクライアント、シッククライアント、ハンドヘルドまたはラップトップのデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能消費者向け電子機器、ネットワークPC、ミニコンピュータシステム、メインフレームコンピュータシステム、および、これらのシステムまたはデバイスのうちのいずれかを含む分散クラウドコンピューティング環境などが含まれるが、これらに限定されない。
コンピュータ・システム/サーバ12は、コンピュータシステムによって実行されるプログラムモジュールなどのコンピュータシステム実行可能命令の一般的な文脈で説明することができる。一般には、プログラムモジュールは、特定のタスクを実行する、または、特定の抽象データタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、ロジック、および、データ構造などを含み得る。コンピュータ・システム/サーバ12は、通信ネットワークを通じてリンクされた遠隔の処理デバイスによってタスクが実行される分散クラウドコンピューティング環境において実用化することができる。分散クラウドコンピューティング環境では、プログラムモジュールは、メモリ記憶デバイスを含むローカルのコンピュータシステム記憶媒体および遠隔のコンピュータシステム記憶媒体の両方に配置され得る。
図1に示されるように、クラウドコンピューティングノード10内のコンピュータ・システム/サーバ12は、汎用コンピューティングデバイスの形態で示すことができる。コンピュータ・システム/サーバ12のコンポーネントには、1つまたは複数のプロセッサまたは処理ユニット16、システムメモリ28、および、システムメモリ28を含めた様々なシステムコンポーネントをプロセッサ16に結合するバス18が含まれ得るが、これらに限定されない。
バス18は、メモリバスまたはメモリコントローラと、周辺バスと、アクセラレイテッドグラフィックスポートと、様々なバスアーキテクチャのいずれかを使用するプロセッサバスまたはローカルバスとを含む、いくつかのタイプのバス構造のいずれかの1つまたは複数を表す。限定ではなく、例として、こうしたアーキテクチャには、業界標準アーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、エンハンスドISA(EISA)バス、ビデオエレクトロニクススタンダーズアソシエーション(VESA)ローカルバス、および、ペリフェラルコンポーネントインターコネクト(PCI)バスが含まれる。
コンピュータ・システム/サーバ12は、典型的には様々なコンピュータシステム可読媒体を含む。こうした媒体は、コンピュータ・システム/サーバ12がアクセス可能な任意の利用可能な媒体であってもよく、それには、揮発性媒体および不揮発性媒体の両方、ならびに、取り外し可能媒体および取り外し不能媒体が含まれる。
システムメモリ28は、ランダムアクセスメモリ(RAM)30もしくはキャッシュメモリ32またはその両方などの揮発性メモリの形態のコンピュータシステム可読媒体を含み得る。コンピュータ・システム/サーバ12は、他の取り外し可能/取り外し不能な揮発性/不揮発性のコンピュータシステム記憶媒体を更に含むことができる。例としてのみ言うと、取り外し不能な不揮発性の磁気媒体(典型的には「ハードドライブ」と称され、図示していない)からの読取りおよびそれへの書込みのための記憶システム34を設けることができる。図示していないが、取り外し可能な不揮発性の磁気ディスク(例えば、「フロッピーディスク」)からの読み取りおよびそれへの書き込みのための磁気ディスクドライブ、ならびに、CD-ROM、DVD-ROMまたは他の光学媒体などの取り外し可能な不揮発性の光学ディスクからの読み取りおよびそれへの書き込みのための光学ディスクドライブを設けることができる。このような例では、それぞれのディスクドライブは、1つまたは複数のデータ媒体インタフェースによってバス18に接続することができる。以下で更に図示及び説明されるように、メモリ28は、本発明の実施形態の機能を実行するように構成されているプログラムモジュールのセット(例えば、プログラムモジュールのうちの少なくとも1つ)を含む少なくとも1つのプログラム製品を備えてよい。
プログラムモジュール42のセット(プログラムモジュール42のうちの少なくとも1つ)を有するプログラム/ユーティリティ40は、限定ではなく例として、メモリ28に記憶することができ、オペレーティングシステム、1つまたは複数のアプリケーションプログラム、他のプログラムモジュール、およびプログラムデータも同様である。これらのオペレーティングシステム、1つもしくは複数のアプリケーションプログラム、他のプログラムモジュール、および、プログラムデータのそれぞれ、または、これらの何らかの組合せは、ネットワーキング環境の実装形態を含み得る。プログラムモジュール42は、通常、本明細書に記載される本発明の実施形態の機能もしくは方法またはその両方を実行する。
コンピュータ・システム/サーバ12はまた、キーボード、ポインティングデバイス、ディスプレイ24などの1つもしくは複数の外部デバイス14、ユーザがコンピュータ・システム/サーバ12と対話できるようにする1つもしくは複数のデバイス、または、コンピュータ・システム/サーバ12が1つもしくは複数の他のコンピューティングデバイスと通信できるようにする任意のデバイス(例えば、ネットワークカード、モデムなど)、あるいは、それらの組合せと通信することができる。このような通信は、入出力(I/O)インタフェース22を介して行われ得る。さらになお、コンピュータ・システム/サーバ12は、ローカルエリアネットワーク(LAN)、一般的なワイドエリアネットワーク(WAN)、もしくは、パブリックネットワーク(例えば、インターネット)、または、それらの組合せなどの1つまたは複数のネットワークとネットワークアダプタ20を介して通信することができる。図示のように、ネットワークアダプタ20は、バス18を介してコンピュータ・システム/サーバ12の他のコンポーネントと通信する。図示していないが、他のハードウェアコンポーネントもしくはソフトウェアコンポーネントまたはその両方のコンポーネントを、コンピュータ・システム/サーバ12と併せて使用することができることが理解されるべきである。例としては、マイクロコード、デバイスドライバ、冗長処理ユニット、外部ディスクドライブアレイ、RAIDシステム、テープドライブ、およびデータアーカイバル記憶システムなどを含むが、これらに限定されない。
ここで図2を参照すると、例示的なクラウドコンピューティング環境50が示される。図示のように、クラウドコンピューティング環境50は、クラウドコンシューマにより使用されるローカルコンピューティングデバイス(例えば、パーソナルデジタルアシスタント(PDA)もしくはセルラ電話機54A、デスクトップコンピュータ54B、ラップトップコンピュータ54C、または、自動車コンピュータシステム54N、あるいは、それらの組合せなど)が通信をすることができる1つまたは複数のクラウドコンピューティングノード10を含む。ノード10は、互いに通信してよい。それらは、上記で説明したようなプライベートクラウド、コミュニティクラウド、パブリッククラウド、もしくは、ハイブリッドクラウド、または、それらの組合せなどの1つまたは複数のネットワーク内で物理的にまたは仮想的にグループ分け(図示せず)することができる。これにより、クラウドコンピューティング環境50は、サービスとしてインフラストラクチャ、プラットフォーム、もしくはソフトウェア、またはその組合せを提供することが可能になり、そのサービスのために、クラウドコンシューマがローカルコンピューティングデバイス上にリソースを保持する必要はない。図2に示されたコンピューティングデバイス54Aから54Nのタイプは例示のみを意図しており、コンピューティングノード10およびクラウドコンピューティング環境50は、任意のタイプのネットワークもしくはネットワークアドレス指定可能な接続またはその両方を介して(例えば、ウェブブラウザを使用して)、任意のタイプのコンピュータ化デバイスと通信できることを理解されたい。
ここで図3を参照すると、クラウドコンピューティング環境50(図2)により提供される機能抽象化層のセットが示される。図3に示されているコンポーネント、層、および機能が例示のみを意図したものであり、本発明の実施形態がそれらに限定されないことが事前に理解されるべきである。図示されているように、以下の層および対応する機能が設けられている。
ハードウェアおよびソフトウェアの層60には、ハードウェアコンポーネントおよびソフトウェアコンポーネントが含まれている。ハードウェアコンポーネントの例には、メインフレーム61、RISC(縮小命令セットコンピュータ)アーキテクチャベースのサーバ62、サーバ63、ブレードサーバ64、記憶デバイス65、ならびにネットワークおよびネットワーキングコンポーネント66が含まれている。いくつかの実施形態において、ソフトウェアコンポーネントには、ネットワークアプリケーションサーバソフトウェア67およびデータベースソフトウェア68が含まれている。
仮想化層70は、抽象化層を提供する。抽象化層から、以下の仮想エンティティの例が提供され得る:仮想サーバ71、仮想ストレージ72、仮想プライベートネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティングシステム74、ならびに、仮想クライアント75。
1つの例では、管理層80は、以下で説明される機能を提供してよい。リソースプロビジョニング81では、クラウドコンピューティング環境内でタスクを実行するのに利用されるコンピューティングリソースおよび他のリソースの動的な調達を行う。計測および価格設定82では、クラウドコンピューティング環境内でリソースが利用されると費用の追跡を行い、これらのリソースの消費に対して請求書作成または請求書送付を行う。1つの例では、これらのリソースは、アプリケーションソフトウェアライセンスを含み得る。セキュリティが、クラウドコンシューマおよびタスクについての身元確認、ならびに、データおよび他のリソースについての保護を行う。ユーザポータル83では、コンシューマおよびシステムアドミニストレータにクラウドコンピューティング環境へのアクセスが与えられる。サービスレベル管理84では、必要なサービスレベルが満たされるように、クラウドコンピューティングリソースの割り当ておよび管理を行う。サービスレベル合意書(SLA)立案および履行85では、SLAに従って将来的に必要になることが予想されるクラウドコンピューティングリソースについての事前調整、およびその調達を行う。
ワークロード層90では、複数の機能の例が提供されるが、それらのためにクラウドコンピューティング環境を利用することができる。この層から提供することができるワークロードおよび機能の例には、マッピングおよびナビゲーション91と、ソフトウェア開発およびライフサイクル管理92と、仮想教室教育提供93と、データ解析処理94と、取引処理95と、アプリケーションのコンテナ化の促進96とが含まれる。
従来型のOS上で対象アプリケーションをコンテナ化する際には、その対象アプリケーションが依存し得る全てのファイルが、対象アプリケーションとともに移行されることが必要なことがある。対象アプリケーションが依存するファイルは、対象アプリケーションの従属ファイル、または、略して従属ファイルと称することができる。対象アプリケーションの従属ファイルは、コンテナ化されたアプリケーションの従属ファイルでもあり得ることに留意されたい。
いくつかの実施形態では、対象アプリケーションをコンテナ化する際に、フォントファイルなどのいくつかの従属ファイルが、コンテナ化されたアプリケーションに含まれない(例えば、忘れられる)ことがある。これは、従属ファイルが対象アプリケーションのソースコード内に直接的に存在するのではなく、対象アプリケーションが依存するライブラリにより間接的に読み出すことができる場合に起こり得る。コンテナ化されたアプリケーションの開発者またはプログラマが、対象アプリケーションの十分な知識を有さない場合、その人は、対象アプリケーションに関連する従属ファイルのいくつかまたは全てをコンテナ化されたアプリケーションに含めないことがある。
こうした実施形態は、動作される際のコンテナ化されたアプリケーションの障害につながり得る。例えば、対象アプリケーションにより使用されるフォントファイルがコンテナ化された対象アプリケーションに含まれていない場合、コンテナ化された対象アプリケーションのフォントが、期待通りに表示されないことがある。いくつかのシナリオでは、コンテナ化された対象アプリケーション内で、期待されるフォントが利用可能でない場合、いくつかの予期されない記号が、コンテナ化された対象アプリケーション内に誤って表示され得る。一例では、期待されるフォントがコンテナ化されたPDFアプリケーション内で利用可能でない場合、デフォルトのフォントが自動的に採用されることがあるが、いくつかの予期されないスペースが、コンテナ化されたPDFアプリケーション内で誤って表示され得る。
上記から、全ての従属ファイルをコンテナ化されたアプリケーション内に含めることで対象アプリケーションのコンテナ化を促進するために、対象アプリケーションの従属ファイルの全てをファイルのコンテナ化の前に把握することの重要性を知ることができる。
対象アプリケーションの従属ファイルの全てを見つける1つの手法は、対象アプリケーションのソースコードをチェックすることを含み得る。しかし、こうした方法は、長々と続き疲弊させるものであるだけでなく、いくつかの従属ファイルが、ソースコード内での明確な宣言なしで動的に開かれることがあるので、全ての従属ファイルを見つけるには不十分であり得る。このようにファイルが開かれることは、対象アプリケーションが依存するライブラリ内で従属ファイルが呼び出される場合に起こり得る。本願の目的の1つは、対象アプリケーションの従属ファイルの全てを見つけることなので、本明細書内で企図される実施形態では、従属ファイルが対象ファイルと称されることもある。
アプリケーションのコンテナ化を促進するために対象アプリケーションの従属ファイルの全てを見つけるためのよりシンプルな方法が、本明細書で開示される。ここで図4を参照すると、同図は、本開示のいくつかの実施形態による、アプリケーションのコンテナ化を促進する方法400の概略フローチャートを示している。
図4に示される方法400では、ブロック402で、対象アプリケーションが動作される。対象アプリケーションは、Linux(登録商標)、Unix(登録商標)およびWindows(登録商標)などの従来型のOS上で動作させることができる。対象アプリケーションが動作されるとすぐに、対象アプリケーションプロセスのプロセス識別子(PID)が生成され得る。PIDは、対象アプリケーションを識別するために使用することが可能である。
ブロック404では、対象アプリケーションにより実行される1つまたは複数のファイルオープン動作をモニタすることができる。一例では、対象アプリケーションにモニタエージェントをアタッチして、対象アプリケーションにより実行される1つまたは複数のファイルオープン動作をモニタすることができる。モニタエージェントは、対象アプリケーションプロセスのPIDに基づいて対象アプリケーションにアタッチすることができる。具体的には、モニタエージェントは、ブロック402で生成されるPIDを有するアプリケーションにアタッチすることができる。一実施形態では、モニタエージェントは、対象アプリケーションにより実行される全てのファイルオープン動作をモニタし、対象アプリケーションにより開かれる全てのファイルについての各ファイル情報項目を再コード化することができる。
対象アプリケーションがファイルに依存している場合、対象アプリケーションが動作している際に、対象アプリケーションは、ファイルオープン動作を使用してファイルを開くことができる。ファイルオープン動作がモニタされる場合、モニタエージェントは、開かれたファイルについてのファイル情報項目を得ることができる。
ブロック405では、1つまたは複数のファイルについての1つまたは複数のファイル情報項目が、1つまたは複数のファイルオープン動作により開かれ、記録され得る。1つまたは複数のファイル情報項目は、モニタエージェントにより、ログファイルに記録されるか、または、書き込まれ得る。ファイル情報項目は、ファイルを識別するための有用な情報を記述し得る。
いくつかの例示的なファイル情報項目の概略フローチャートが、図5に示されている。図5に示されるように、各ファイル情報項目510は、ファイル名、ファイル拡張子、ファイル位置/パス、または、ファイルタイプなどのいくつかのファイルプロパティ511を含み得る。いくつかのケースでは、ファイルタイプが、ファイル情報項目510に含まれないこともある。その場合、ファイルタイプは、ファイル名、ファイル拡張子、または、ファイル位置/パスから推測することができる。
図5の例では、第1のファイル情報項目510が、ファイル名「Arial」、ファイル拡張子「ttf」、ファイル位置/パス「C:¥Windows¥Fonts」、および、ファイルタイプ「Font」を含むことができる。ファイルタイプが第1のファイル情報項目510に存在しない実施形態では、ファイル名「Arial」、ファイル拡張子「ttf」、および、ファイル位置/パス「C:¥Windows¥Fonts」のうちの1つまたは複数から、ファイルタイプがフォントであると推測することができる。なぜならば、「Arial」は一般的なフォントタイプであり、「ttf」は、フォントファイルについての典型的なファイル拡張子であり、「C:¥Windows¥Fonts」は、フォントファイルを記憶するためのデフォルトのフォルダであるためである。このケースでは、図5に示されるように、ファイルタイプ「Font」が、第1のファイル情報項目510に加えられ得る。
同様に、第2のファイル情報項目510は、ファイル名「Times New Roman」、ファイル拡張子「ttf」、ファイル位置/パス「C:¥Windows¥Fonts」、および、ファイルタイプ「Font」を含むことができる。ファイルタイプが第2のファイル情報項目510に存在しない実施形態では、ファイル名「Times New Roman」、ファイル拡張子「ttf」、および、ファイル位置/パス「C:¥Windows¥Fonts」のうちの1つまたは複数から、ファイルタイプがフォントであると推測することができる。なぜならば、「Times New Roman」は一般的なフォントタイプであり、「ttf」は、フォントファイルについての典型的なファイル拡張子であり、「C:¥Windows¥Fonts」は、フォントファイルを記憶するためのデフォルトのフォルダであるためである。この実施形態では、図5に示されるように、ファイルタイプ「Font」が、第2のファイル情報項目510に加えられ得る。
同様に、第3のファイル情報項目510は、ファイル名「Calibri」、ファイル拡張子「ttf」、ファイル位置/パス「C:¥Windows¥Fonts」、および、ファイルタイプ「Font」を含むことができる。ファイルタイプが第3のファイル情報項目510に存在しない実施形態では、ファイル名「Calibri」、ファイル拡張子「ttf」、および、ファイル位置/パス「C:¥Windows¥Fonts」のうちの1つまたは複数から、ファイルタイプがフォントであると推測することができる。なぜならば、「Calibri」は一般的なフォントタイプであり、「ttf」は、フォントファイルについての典型的なファイル拡張子であり、「C:¥Windows¥Fonts」は、フォントファイルを記憶するためのデフォルトのフォルダであるためである。このケースでは、図5に示されるように、ファイルタイプ「Font」が、第3のファイル情報項目510に加えられ得る。
第4のファイル情報項目510は、上記のファイル情報項目510とは異なり、ファイル名「私の息子の写真」、ファイル拡張子「jpg」、ファイル位置/パス「D:¥...¥image」、および、ファイルタイプ「Image」を含むことができる。ファイルタイプが第4のファイル情報項目510に存在しない実施形態では、ファイル名「私の息子の写真」、ファイル拡張子「jpg」、および、ファイル位置/パス「D:¥...¥image」のうちの1つまたは複数から、ファイルタイプが画像であると推測することができる。このケースでは、ファイルタイプ「Image」が、第4のファイル情報項目510に加えられ得る。
最後のファイル情報項目510は、第1のファイル情報項目510から第3のファイル情報項目510と同様に、ファイル名「Arial Black」、ファイル拡張子「ttf」、ファイル位置/パス「C:¥Windows¥Fonts」、および、ファイルタイプ「Font」を含むことができる。ファイルタイプが最後のファイル情報項目510に存在しないケースでは、ファイル名「Arial Black」、ファイル拡張子「ttf」、および、ファイル位置/パス「C:¥Windows¥Fonts」のうちの1つまたは複数から、ファイルタイプがフォントであると推測することができる。なぜならば、「Arial Black」は一般的なフォントタイプであり、「ttf」は、フォントファイルについての典型的なファイル拡張子であり、「C:¥Windows¥Fonts」は、フォントファイルを記憶するためのデフォルトのフォルダであるためである。この実施形態では、図5に示されるように、ファイルタイプ「Font」が、最後のファイル情報項目510に加えられ得る。
ブロック406で、1つまたは複数のファイル情報項目から、対象ファイルプロパティを含む1つまたは複数の対象ファイル情報項目が選択される。先で説明されたように、ファイル情報項目は、開かれたファイルについてのものである。この点で、対象ファイル情報項目は、開かれた対象ファイルについてのものであり得る。対象ファイル情報項目、したがって、対象ファイルは、対象ファイルプロパティにより識別され得る。一実施形態では、対象ファイルプロパティを含む1つまたは複数の対象ファイル情報項目が、対象ファイルプロパティを含む全ての対象ファイル情報項目を含み得る。対象ファイルプロパティは、対象ファイル名、対象ファイルタイプ、対象ファイル拡張子、対象ファイル位置、または、対象ファイルパスのうちの少なくとも1つを含み得る。一例では、対象ファイルタイプが、フォントファイルを含み得る。
一例として、対象ファイルプロパティを対象ファイルタイプとし、対象ファイルタイプをフォントファイルとして、対象ファイル情報項目を選択するプロセスが、図5の例と併せて下記で説明される。このプロセスでは、各ファイル情報項目510に含まれるファイルタイプをチェックすることができ、フォントファイルタイプを含むファイル情報項目510が、対象ファイル情報項目510として選択され得る。図5に示されるように、第1のファイル情報項目510、第2のファイル情報項目510、第3のファイル情報項目510、および、最後のファイル情報項目510が、点線のボックスにより示されるように、対象ファイル情報項目510として選択され得る。
ブロック408で、1つまたは複数の対象ファイル情報項目から、対象アプリケーションにより使用される1つまたは複数の対象ファイルの第1のファイル名セットが取り出される。一実施形態では、対象アプリケーションにより使用される1つまたは複数の対象ファイルが、対象アプリケーションにより使用される全ての対象ファイルを含み得る。第1のファイル情報項目510、第2のファイル情報項目510、第3のファイル情報項目510、および、最後のファイル情報項目510が対象ファイル情報項目510として選択される上記の例では、対象アプリケーションにより使用される対象ファイルが、「C:¥Windows¥Fonts¥Arial.ttf」、「C:¥Windows¥Fonts¥Times New Roman.ttf」、「C:¥Windows¥Fonts¥Calibri.ttf」、および、「C:¥Windows¥Fonts¥Arial Black.ttf」であり得ると推測することが可能である。対象ファイルの第1のファイル名セットは、「Arial」、「Times New Roman」、「Calibri」、および、「Arial Black」を含み得る。
ブロック410で、対象アプリケーションのコンテナ化を促進するために、1つまたは複数の対象ファイルが利用される。上記の例では、対象アプリケーションのコンテナ化を促進するために、対象ファイルである「C:¥Windows¥Fonts¥Arial.ttf」、「C:¥Windows¥Fonts¥Times New Roman.ttf」、「C:¥Windows¥Fonts¥Calibri.ttf」、および、「C:¥Windows¥Fonts¥Arial Black.ttf」を利用することができる。これらの対象ファイルは、対象アプリケーションが依存する、または必要とするフォントファイルであり得る。
対象アプリケーションのコンテナ化を促進するために1つまたは複数の対象ファイルを利用する例示的プロセスが、図6を参照する実施形態を用いて、下記で企図される。一実施形態では、対象アプリケーションをコンテナ化するためのコンテナベースイメージの初期のイメージ定義ファイルまたはドラフトのイメージ定義ファイルを前もって作成することができる。この文脈では、対象アプリケーションをコンテナ化するためのコンテナベースイメージを、対象コンテナベースイメージと称することができる。
ブロック602では、対象アプリケーションをコンテナ化するための対象コンテナベースイメージのイメージ定義ファイルに含まれる全ての対象ファイルの第2のファイル名セットを得ることができる。対象ファイルがフォントファイルである例では、対象コンテナベースイメージのイメージ定義ファイルに含まれる全てのフォントファイルを検索することができ、これら全てのフォントファイルの第2のファイル名セットを得ることができる。例えば、対象コンテナベースイメージのイメージ定義ファイルに含まれる全てのフォントファイルが、「Arial」および「Times New Roman」であってもよい。したがって、第2のファイル名セットは、「Arial」および「Times New Roman」を含み得る。
ブロック604で、第1のファイル名セットに含まれるが、第2のファイル名セットには含まれない1つまたは複数の紛失しているファイルの第3のファイル名セットを得ることができる。第1のファイル名セットと第2のファイル名セットとを比較することにより、対象コンテナベースイメージのイメージ定義ファイル内でどのファイルが紛失しているかを判明させることが可能である。第1のファイル名セットが「Arial」、「Times New Roman」、「Calibri」および「Arial Black」を含み、第2のファイル名セットが「Arial」および「Times New Roman」を含む上記の例では、イメージ定義ファイル内で、「Calibri」および「Arial Black」のフォントファイルが紛失していることを、より容易に判明させることができる。したがって、紛失しているファイルの第3のファイル名セットは、「Calibri」および「Arial Black」である。
ブロック606では、1つまたは複数の紛失しているファイルを対象コンテナベースイメージに含めるためのコマンドが、対象コンテナベースイメージのイメージ定義ファイルに加えられる。「Calibri」および「Arial Black」のフォントファイルが紛失しているファイルである上記の例では、対象コンテナベースイメージのイメージ定義ファイルにコピーコマンドを加えることにより、それらのファイルを対象コンテナベースイメージに含めること、またはコピーすることができる。コピーコマンドは、対象ファイル位置から対象コンテナベースイメージに紛失しているファイルをコピーするためのコピー動作を定義することができる。
ブロック606で実行される動作の前または後に、1つまたは複数の紛失しているファイルの第3のファイル名セットを表示して、開発者またはプログラマが、ブロック606で実行される動作の結果をチェックすることを支援してもよい。
本開示の実施形態は、対象アプリケーションのソースコードを解析することなく、または、対象アプリケーションの実装詳細を把握することなく、対象アプリケーションの従属ファイルの全てが見つかることを確実にする。本開示の実施形態は更に、紛失している従属ファイルをコンテナ化されたアプリケーションに含めて、対象アプリケーションのコンテナ化を促進することができる。
本開示の実施形態によるアプリケーションのコンテナ化を促進する処理は、図1のコンピュータ・システム/サーバ12により実装することも可能であることに留意されたい。
同一の発明概念の下で、本発明の他の実施形態が、アプリケーションのコンテナ化を促進するためのコンピュータシステムを提供することも可能である。前記コンピュータシステムは、1つまたは複数のプロセッサと、前記プロセッサのうちの少なくとも1つに結合されたメモリと、前記メモリに記憶されたコンピュータプログラム命令のセットとを備えることができる。前記コンピュータプログラム命令のセットは、前記プロセッサのうちの少なくとも1つにより実行されて、対象アプリケーションを動作させることと、前記対象アプリケーションにより実行される1つまたは複数のファイルオープン動作をモニタすることと、前記1つまたは複数のファイルオープン動作により開かれる1つまたは複数のファイルについての1つまたは複数のファイル情報項目を記録することと、前記1つまたは複数のファイル情報項目から、対象ファイルプロパティを含む1つまたは複数の対象ファイル情報項目を選択することと、前記1つまたは複数の対象ファイル情報項目から、前記対象アプリケーションにより使用される1つまたは複数の対象ファイルの第1のファイル名セットを取り出すことと、前記対象アプリケーションのコンテナ化を促進するように、前記1つまたは複数の対象ファイルを利用することとを行う。
同様に、同一の発明概念の下で、本発明の他の実施形態が、アプリケーションのコンテナ化を促進するためのコンピュータプログラム製品を提供することも可能である。前記コンピュータプログラム製品は、コンピュータ可読記憶媒体であって、プログラム命令が前記コンピュータ可読記憶媒体を用いて具現化される、コンピュータ可読記憶媒体を備える。前記プログラム命令は、対象アプリケーションを動作させることと、前記対象アプリケーションにより実行される1つまたは複数のファイルオープン動作をモニタすることと、前記1つまたは複数のファイルオープン動作により開かれる1つまたは複数のファイルについての1つまたは複数のファイル情報項目を記録することと、前記1つまたは複数のファイル情報項目から、対象ファイルプロパティを含む1つまたは複数の対象ファイル情報項目を選択することと、前記1つまたは複数の対象ファイル情報項目から、前記対象アプリケーションにより使用される1つまたは複数の対象ファイルの第1のファイル名セットを取り出すことと、前記対象アプリケーションのコンテナ化を促進するように、前記1つまたは複数の対象ファイルを利用することとを行うように、プロセッサにより実行可能である。
本発明は、任意の可能な技術詳細レベルで統合化されたシステム、方法、もしくはコンピュータプログラム製品、またはその組合せであり得る。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体(または複数のコンピュータ可読記憶媒体)を含み得る。
コンピュータ可読記憶媒体は、命令実行デバイスにより使用される命令を保持および記憶し得る有形デバイスであり得る。コンピュータ可読記憶媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、または上述のものの任意の好適な組合せであり得るが、これらに限定されるものではない。コンピュータ可読記憶媒体のより具体的な例の非包括的なリストは、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROMまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピディスク、パンチカードまたは命令が記録されている溝内の隆起構造などの機械的にエンコードされたデバイス、および、上述のものの任意の好適な組合せを含む。本明細書では、コンピュータ可読記憶媒体自体は、電波または自由伝搬する他の電磁波、導波路もしくは他の伝送媒体を介して伝搬する電磁波(例えば、ファイバオプティックケーブルを通過する光パルス)、または、ワイヤを介して伝送される電気信号などの一時的な信号とみなされるものではない。
本明細書に記載されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスにダウンロードされてもよく、あるいは、ネットワーク、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、もしくは無線ネットワーク、またはその組合せを介して、外部コンピュータまたは外部ストレージデバイスにダウンロードされてもよい。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、もしくはエッジサーバ、またはその組合せを備え得る。各コンピューティング/処理デバイスにおけるネットワークアダプタカードまたはネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶するためにコンピュータ可読プログラム命令を転送する。
本発明の動作を実行するコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路の構成データであってもよく、Smalltalk(登録商標)またはC++などといったオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語といった手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組合せで記述したソースコードまたはオブジェクトコードであってもよい。コンピュータ可読プログラム命令は、スタンドアロンのソフトウェアパッケージとして、ユーザのコンピュータ上で全体を実行すること、ユーザのコンピュータ上で一部分を実行することができ、ユーザのコンピュータ上で一部分を、遠隔のコンピュータ上で一部分を実行すること、または、遠隔のコンピュータもしくはサーバ上で全体を実行することができる。後者のシナリオでは、遠隔のコンピュータは、ローカルエリアネットワーク(LAN)もしくはワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、またはその接続は、外部コンピュータに対して(例えば、インターネットサービスプロバイダを使用してインターネットを介して)行われてもよい。いくつかの実施形態では、例えば、プログラム可能型ロジック回路、フィールドプログラマブルゲートアレイ(FPGA)、またはプログラム可能型ロジックアレイ(PLA)を含む電子回路が、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用することによりコンピュータ可読プログラム命令を実行して、電子回路をパーソナライズ化することができる。
本発明の態様は、本明細書において、本発明の実施形態に係る方法、装置(システム)、およびコンピュータプログラム製品のフローチャート図もしくはブロック図またはその両方を参照して、説明されている。フローチャート図もしくはブロック図またはその組合せの各々のブロックと、フローチャート図もしくはブロック図またはその組合せにおけるブロックの組合せとが、コンピュータ可読プログラム命令によって実装できることが理解されよう。
これらのコンピュータ可読プログラム命令を、コンピュータのプロセッサ、またはマシンを生成するための他のプログラマブルデータ処理装置に提供し、こうすることで、コンピュータのプロセッサまたは他のプログラマブルデータ処理装置を介して実行される命令が、フローチャート若しくはブロック図またはその組合せにおける1つまたは複数のブロックにおいて指定された機能/動作を実装する手段を作成するようにしてもよい。また、これらのコンピュータ可読プログラム命令は、コンピュータ、プログラマブルデータ処理装置、もしくは、他のデバイス、または、その組合せに特定の様式で機能するように指示することが可能なコンピュータ可読記憶媒体にも記憶することができ、これにより、命令を記憶したコンピュータ可読記憶媒体が、フローチャートもしくはブロック図の、またはこれらの両方の1つまたは複数のブロックで指定される機能/動作の態様を実装する命令を含む製品を含むようになる。
また、コンピュータ可読プログラム命令は、コンピュータ、他のプログラマブルデータ処理装置、または、他のデバイスにロードして、コンピュータ、他のプログラマブル装置、または、他のデバイス上で一連の動作段階を実行させることでコンピュータ実装プロセスを作ることもでき、これにより、コンピュータ、他のプログラマブル装置、または、他のデバイス上で実行される命令が、フローチャートもしくはブロック図の、またはこれらの両方の1つまたは複数のブロックで指定される機能/動作を実装するようになる。
図面におけるフローチャートおよびブロック図は、本発明の様々な実施形態に係るシステム、方法、およびコンピュータプログラム製品の考えられる実装形態のアーキテクチャ、機能、および動作を示している。これに関して、フローチャートまたはブロック図における各ブロックは、指定された論理機能を実装する1つまたは複数の実行可能命令を含む命令のモジュール、セグメント、または一部を表し得る。いくつかの代替的な実装形態において、ブロックに記されている機能は、図面に記されている順序とは異なる順序で行われ得る。例えば、連続して示されている2つのブロックが、実際には、1つの段階として実現されてもよく、同時に、実質的に同時に、部分的にもしくは全体的に時間重複する方式で実行されてもよく、または、ブロックは、場合によっては、関与する機能に依存して逆の順序で実行されてもよい。ブロック図もしくはフローチャート図またはその組合せの各ブロック、および、ブロック図もしくはフローチャート図またはその組合せにおけるブロックの組合せが、指定された機能もしくは動作を実行する、または特定用途向けハードウェア及びコンピュータ命令の組合せを実行する、特定用途向けハードウェアベースのシステムによって実装され得ることにも留意されたい。
本発明の様々な実施形態の説明は、例示目的で提示されてきたが、包括的になること、または開示された実施形態に限定されることが意図されるものではない。当業者には、記載された実施形態の範囲および趣旨から逸脱しない、多くの修正および変形が明らかとなるであろう。本明細書において使用される専門用語は、実施形態の原理、市場で見られる技術の実用的な適用またはそれに対する技術的改善を最適に説明し、あるいは、本明細書において開示される実施形態を他の当業者が理解することを可能にするように選択されている。

Claims (20)

  1. 対象アプリケーションをプロセッサにより動作させる段階と、
    前記対象アプリケーションにより実行される1つまたは複数のファイルオープン動作をモニタする段階と、
    1つまたは複数のファイルに関連する1つまたは複数のファイル情報項目を記録する段階であって、前記1つまたは複数のファイルが、前記1つまたは複数のファイルオープン動作により開かれている、記録する段階と、
    1つまたは複数の対象ファイル情報項目を選択する段階であって、前記1つまたは複数の対象ファイル項目が、前記1つまたは複数のファイル情報項目からの対象ファイルプロパティを有する、選択する段階と、
    前記1つまたは複数の対象ファイル情報項目から、前記対象アプリケーションにより使用される1つまたは複数の対象ファイルの第1のファイル名セットを取り出す段階と、
    前記対象アプリケーションのコンテナ化を促進するように、前記1つまたは複数の対象ファイルを利用する段階と
    を備えるコンピュータ実装方法。
  2. 前記対象ファイルプロパティが、対象ファイル名、対象ファイルタイプ、対象ファイル拡張子、対象ファイル位置、および、対象ファイルパスからなる群から選択されている、
    請求項1に記載のコンピュータ実装方法。
  3. 対象ファイルタイプが、フォントファイルを含む、
    請求項1に記載のコンピュータ実装方法。
  4. 前記1つまたは複数のファイルオープン動作が、前記対象アプリケーションにより実行される前記1つまたは複数のファイルオープン動作のうちの少なくとも1つを含み、前記1つまたは複数の対象ファイルの前記第1のファイル名セットが、前記対象アプリケーションにより使用される前記1つまたは複数の対象ファイルのファイル名を含む、
    請求項1から3のいずれか一項に記載のコンピュータ実装方法。
  5. 前記対象アプリケーションのコンテナ化を促進するように、前記1つまたは複数の対象ファイルを利用する段階が、
    前記対象アプリケーションをコンテナ化するための対象コンテナベースイメージのイメージ定義ファイルに含まれる前記1つまたは複数の対象ファイルの第2のファイル名セットを得る段階と、
    前記第1のファイル名セットに含まれるが、前記第2のファイル名セットには含まれない1つまたは複数の紛失しているファイルの第3のファイル名セットを得る段階と、
    前記対象コンテナベースイメージの前記イメージ定義ファイルにコマンドを加える段階と
    を更に有し、
    前記コマンドが、前記1つまたは複数の紛失しているファイルを前記対象コンテナベースイメージに含める、
    請求項4に記載のコンピュータ実装方法。
  6. 前記対象アプリケーションのコンテナ化を促進するように、前記1つまたは複数の対象ファイルを利用する段階が、
    前記1つまたは複数の紛失しているファイルに関連する前記第3のファイル名セットを表示する段階を更に有する、
    請求項5に記載のコンピュータ実装方法。
  7. 前記モニタする段階および前記記録する段階が、前記対象アプリケーションにアタッチされたモニタエージェントにより実行される、
    請求項1に記載のコンピュータ実装方法。
  8. 1つまたは複数のプロセッサと、
    前記1つまたは複数のプロセッサに結合されたメモリと、
    前記メモリに記憶されており、前記1つまたは複数のプロセッサにより実行されて、ある方法を実装するコンピュータプログラム命令のセットと
    を備えるシステムであって、
    前記方法が、
    対象アプリケーションをプロセッサにより動作させる段階と、
    前記対象アプリケーションにより実行される1つまたは複数のファイルオープン動作をモニタする段階と、
    1つまたは複数のファイルに関連する1つまたは複数のファイル情報項目を記録する段階であって、前記1つまたは複数のファイルが、前記1つまたは複数のファイルオープン動作により開かれている、記録する段階と、
    1つまたは複数の対象ファイル情報項目を選択する段階であって、前記1つまたは複数の対象ファイル項目が、前記1つまたは複数のファイル情報項目からの対象ファイルプロパティを含む、選択する段階と、
    前記1つまたは複数の対象ファイル情報項目から、前記対象アプリケーションにより使用される1つまたは複数の対象ファイルの第1のファイル名セットを取り出す段階と、
    前記対象アプリケーションのコンテナ化を促進するように、前記1つまたは複数の対象ファイルを利用する段階と
    を有する、
    システム。
  9. 前記対象ファイルプロパティが、対象ファイル名、対象ファイルタイプ、対象ファイル拡張子、対象ファイル位置、および、対象ファイルパスからなる群から選択されている、
    請求項8に記載のシステム。
  10. 対象ファイルタイプが、フォントファイルを含む、
    請求項8に記載のシステム。
  11. 前記1つまたは複数のファイルオープン動作が、前記対象アプリケーションにより実行される前記1つまたは複数のファイルオープン動作のうちの少なくとも1つを含み、前記1つまたは複数の対象ファイルの前記第1のファイル名セットが、前記対象アプリケーションにより使用される前記1つまたは複数の対象ファイルのファイル名を含む、
    請求項8から10のいずれか一項に記載のシステム。
  12. 前記対象アプリケーションのコンテナ化を促進するように、前記1つまたは複数の対象ファイルを利用する段階が、
    前記対象アプリケーションをコンテナ化するための対象コンテナベースイメージのイメージ定義ファイルに含まれる前記1つまたは複数の対象ファイルの第2のファイル名セットを得る段階と、
    前記第1のファイル名セットに含まれるが、前記第2のファイル名セットには含まれない1つまたは複数の紛失しているファイルの第3のファイル名セットを得る段階と、
    前記対象コンテナベースイメージの前記イメージ定義ファイルにコマンドを加える段階と
    を更に含み、
    前記コマンドが、前記1つまたは複数の紛失しているファイルを前記対象コンテナベースイメージに含める、
    請求項11に記載のシステム。
  13. 前記対象アプリケーションのコンテナ化を促進するように、前記1つまたは複数の対象ファイルを利用する段階が、
    前記1つまたは複数の紛失しているファイルに関連する前記第3のファイル名セットを表示する段階を更に含む、
    請求項12に記載のシステム。
  14. 前記モニタする段階および前記記録する段階が、前記対象アプリケーションにアタッチされたモニタエージェントにより実行される、
    請求項8に記載のシステム。
  15. 1つまたは複数のプロセッサに、
    対象アプリケーションをプロセッサにより動作させる手順と、
    前記対象アプリケーションにより実行される1つまたは複数のファイルオープン動作をモニタする手順と、
    1つまたは複数のファイルに関連する1つまたは複数のファイル情報項目を記録する手順であって、前記1つまたは複数のファイルが、前記1つまたは複数のファイルオープン動作により開かれている、記録する手順と、
    1つまたは複数の対象ファイル情報項目を選択する手順であって、前記1つまたは複数の対象ファイル項目が、前記1つまたは複数のファイル情報項目からの対象ファイルプロパティを含む、選択する手順と、
    前記1つまたは複数の対象ファイル情報項目から、前記対象アプリケーションにより使用される1つまたは複数の対象ファイルの第1のファイル名セットを取り出す手順と、
    前記対象アプリケーションのコンテナ化を促進するように、前記1つまたは複数の対象ファイルを利用する手順と
    を実行させる、コンピュータプログラム。
  16. 前記対象ファイルプロパティが、対象ファイル名、対象ファイルタイプ、対象ファイル拡張子、対象ファイル位置、および、対象ファイルパスからなる群から選択されている、
    請求項15に記載のコンピュータプログラム。
  17. 対象ファイルタイプが、フォントファイルを含む、
    請求項15に記載のコンピュータプログラム。
  18. 前記1つまたは複数のファイルオープン動作が、前記対象アプリケーションにより実行される前記1つまたは複数のファイルオープン動作のうちの少なくとも1つを含み、前記1つまたは複数の対象ファイルの前記第1のファイル名セットが、前記対象アプリケーションにより使用される前記1つまたは複数の対象ファイルのファイル名を含む、
    請求項15から17のいずれか一項に記載のコンピュータプログラム。
  19. 前記対象アプリケーションのコンテナ化を促進するように、前記1つまたは複数の対象ファイルを利用する手順が、
    前記対象アプリケーションをコンテナ化するための対象コンテナベースイメージのイメージ定義ファイルに含まれる前記1つまたは複数の対象ファイルの第2のファイル名セットを得る手順と、
    前記第1のファイル名セットに含まれるが、前記第2のファイル名セットには含まれない1つまたは複数の紛失しているファイルの第3のファイル名セットを得る手順と、
    前記対象コンテナベースイメージの前記イメージ定義ファイルにコマンドを加える手順と
    を更に含み、
    前記コマンドが、前記1つまたは複数の紛失しているファイルを前記対象コンテナベースイメージに含める、
    請求項18に記載のコンピュータプログラム。
  20. 前記対象アプリケーションのコンテナ化を促進するように、前記1つまたは複数の対象ファイルを利用する手順が、
    前記1つまたは複数の紛失しているファイルに関連する前記第3のファイル名セットを表示する手順
    を更に含む、
    請求項19に記載のコンピュータプログラム。
JP2022162577A 2021-10-13 2022-10-07 コンピュータ実装方法、システム、およびコンピュータプログラム(アプリケーションのコンテナ化の促進) Pending JP2023058451A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/500,033 US11556351B1 (en) 2021-10-13 2021-10-13 Facilitation of application containerization
US17/500,033 2021-10-13

Publications (1)

Publication Number Publication Date
JP2023058451A true JP2023058451A (ja) 2023-04-25

Family

ID=84922865

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022162577A Pending JP2023058451A (ja) 2021-10-13 2022-10-07 コンピュータ実装方法、システム、およびコンピュータプログラム(アプリケーションのコンテナ化の促進)

Country Status (3)

Country Link
US (1) US11556351B1 (ja)
JP (1) JP2023058451A (ja)
CN (1) CN115964121A (ja)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8056092B2 (en) * 2006-09-29 2011-11-08 Clearspring Technologies, Inc. Method and apparatus for widget-container hosting and generation
US9104794B2 (en) 2008-07-15 2015-08-11 Microsoft Technology Licensing, Llc Automatic incremental application dependency discovery through code instrumentation
EP3198418B1 (en) * 2014-09-24 2020-04-22 Oracle International Corporation Method to modify android application life cycle to control its execution in a containerized workspace environment
US20160191645A1 (en) * 2014-12-30 2016-06-30 Citrix Systems, Inc. Containerizing Web Applications for Managed Execution
US11438278B2 (en) 2015-06-29 2022-09-06 Vmware, Inc. Container-aware application dependency identification
US10503623B2 (en) 2016-04-29 2019-12-10 Ca, Inc. Monitoring containerized applications
KR101807806B1 (ko) 2017-05-02 2017-12-11 나무기술 주식회사 클라우드 플랫폼에서 어플리케이션을 컨테이너화하는 방법
CN108920250B (zh) 2018-06-05 2021-11-19 麒麟合盛网络技术股份有限公司 应用程序容器化的方法及装置

Also Published As

Publication number Publication date
CN115964121A (zh) 2023-04-14
US11556351B1 (en) 2023-01-17

Similar Documents

Publication Publication Date Title
US9852148B2 (en) File path modification based management
US9398087B1 (en) Secure deployment of an application across deployment locations
US20200150940A1 (en) Optimization of container image
US10834059B2 (en) Secure message handling of an application across deployment locations
US11928038B2 (en) Managing data sets based on user activity
US10216802B2 (en) Presenting answers from concept-based representation of a topic oriented pipeline
US11243868B2 (en) Application containerization based on trace information
US20170161301A1 (en) Generation of graphical maps based on text content
US10223444B2 (en) Protocol based user data management
US10782940B2 (en) Code library version management
US10713078B2 (en) Accessing host services for virtual guest operating systems
CN115336237A (zh) 远程存储的文件的预测性供应
US9582153B1 (en) Converging tool terminology
US11768801B2 (en) Dynamic identification of cloud storage destination for multi-user files
US10902037B2 (en) Cognitive data curation on an interactive infrastructure management system
US11481211B1 (en) Dynamically creating source code comments
JP2023058451A (ja) コンピュータ実装方法、システム、およびコンピュータプログラム(アプリケーションのコンテナ化の促進)
US20220350507A1 (en) Dynamic Management of Data Storage for Applications Based on Data Classification
US11157443B2 (en) Management of history metadata of a file
JP7391979B2 (ja) キー機能制御に基づくデータ移動および記憶キー設定
JP2024520276A (ja) しきいテープ位置を越えるデータ記憶
CN116776140A (zh) 构建具有预期特征重要性的模型