(57)【要約】【課題】１つのプラグインコマンドが、複数のプロセスに対応しているとき、１回のプラグインコマンドの入力で、対応している複数のプロセスのプラグイン処理を実行することを目的とする。【解決手段】複数のＡＰＬプロセス２２が実行されている情報処理装置１において、入出力装置４からプラグインコマンドを入力されると、記憶装置３から実行中のＡＰＬプロセス２２に関するプロセス情報を取得し、このプロセス情報を基に、プラグインコマンドの対象であるか否かの判定を、各ＡＰＬプロセス２２へ要求し、ＡＰＬプロセス２２から送られた判定の結果を基に、プラグインコマンドの対象となるＡＰＬプロセス２２を選択し、プラグインコマンドの実行内容を選択されたＡＰＬプロセス２２に実行させることを特徴とする。【選択図】図１
2010009088.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセスが実行される情報処理装置であって、
実行されるすべての前記プロセスに関する情報であるプロセス情報を保持する記憶部と、
入力部からプラグインコマンドが入力されると、前記記憶部から、前記プロセス情報を取得するプロセス情報管理部と、
当該プロセス情報の対象となっているプロセスが入力された前記プラグインコマンドの対象であるか否かの判定を、各プロセスへ、前記プロセス情報を基に要求し、前記各プロセスから送られた前記判定の結果を基に、入力された前記プラグインコマンドの対象となる前記対象プロセスを選択し、前記プラグインコマンドの実行内容を前記対象プロセスに実行させるコマンド処理部と
を有することを特徴とする情報処理装置。
【請求項２】
所定のタイミングで、前記プロセス情報を前記各プロセスから取得し、前記取得したプロセス情報を前記記憶部に格納するプロセス情報取得部をさらに有することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記所定のタイミングは、前記情報処理装置の起動時、または前記プロセスの起動時であることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
実行されているすべてのプロセスに関する情報であるプロセス情報を保持している記憶部を有し、複数の前記プロセスが実行される情報処理装置によるプラグイン適用方法であって、
前記情報処理装置は、
入力部からプラグインコマンドが入力されると、前記記憶部から、前記プロセス情報を取得し、
当該プロセス情報に対象となっているプロセスが入力された前記プラグインコマンドの対象であるか否かの判定を、各プロセスへ、前記プロセス情報を基に要求し、
前記プロセスから送られた前記判定の結果を基に、入力された前記プラグインコマンドの対象となる前記プロセスを選択し、
前記プラグインコマンドの実行内容を前記選択されたプロセスに実行させること
を特徴とするプラグイン適用方法。
【請求項５】
請求項４に記載のプラグイン適用方法を、コンピュータに実行させることを特徴とするプラグイン適用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、プラグイン適用方法およびプラグイン適用プログラムの技術に関するものである。
【背景技術】
【０００２】
実行中のアプリケーションプロセス（プロセス：以下、ＡＰＬ（Application）プロセスと記載する）に対し、パッチなどの追加用プログラムをプラグインさせる技術が提示されている（例えば、非特許文献１，２参照）。
このような技術では、予めダウンロードなどを行って、プラグインのためのパッチなどを記憶装置に格納しておく。そして、入出力装置からプラグインコマンドが入力されると、そのプラグインコマンドに従って、該当するＡＰＬプロセスに記憶装置のパッチなどを使用してプラグインを実行することが一般的に行われている。
【０００３】
図４は、一般的に行われているプラグイン実行処理の流れを示す図である。
まず、入出力装置４ｄからプラグインコマンドが入力される（Ｓ３０１）と、コマンド処理部２１１ｄが入力されたプラグインコマンド内容を実行するよう対象となるＡＰＬプロセス２２ｄに指示する（Ｓ３０２）。指示されたＡＰＬプロセス２２ｄは、記憶装置から予め格納しておいたパッチを読みだし、このパッチを使用してＡＰＬプロセス２２ｄの部分的な変更や、バージョンアップのためのＡＰＬプロセス２２ｄの置換など、プラグインコマンドのコマンド内容を実行し（Ｓ３０３）、プラグイン処理を行う。ＡＰＬプロセス２２ｄは、コマンド内容の実行が完了すると、実行完了の旨を応答としてコマンド処理部２１１ｄへ送信する（Ｓ３０４）。応答を受信したコマンド処理部２１１ｄは、さらにコマンド内容の実行が完了した旨を応答として入出力装置４ｄへ送信する（Ｓ３０５）。
【非特許文献１】中野  宏朗、”ＣＧＬ３．０の実現に向けたＬｉｖｅ  Ｐａｔｃｈ機能の実装”、[online]、２００４年１０月１５日、ＮＴＴコムウェア、［２００８年６月１１日検索］、インターネット<URL: http://osdn.jp/event/kernel2004/pdf/C02.pdf>
【非特許文献２】池辺  隆、”Ｐａｎｎｕｓプロジェクトの紹介  Ｌｉｖｅ  Ｐａｔｃｈｉｎｇ”、[online]、２００４年、日本電信電話株式会社  ＮＴＴネットワークサービスシステム研究所、［２００８年６月１１日検索］、インターネット<URL:http://www.osdl.jp/uploads/ks8-200406/ks8_Proj_Pannus.pdf>
【発明の開示】
【発明が解決しようとする課題】
【０００４】
同一のプラグインコマンドが複数のＡＰＬプロセスに対応することがある。このような場合、情報処理装置は、当然１回のプラグインコマンド入力で該当するすべてのＡＰＬプロセスに対してプラグイン処理を実行することが望ましい。
【０００５】
しかしながら、非特許文献１，２や、図４に示すような処理では、ＡＰＬプロセスの情報を総括的に管理していないため、１つのプラグインコマンドは１つのＡＰＬプロセスに対応することしかできない。
本発明は、このような問題を解決することを課題とする。
【課題を解決するための手段】
【０００６】
前記した課題を解決するため、本発明は、複数のプロセスが実行される情報処理装置において、実行されるすべての前記プロセスに関する情報であるプロセス情報を保持する記憶部を有し、入力部からプラグインコマンドが入力されると、前記記憶部から、前記プロセス情報を取得し、当該プロセス情報の対象となっているプロセスが入力された前記プラグインコマンドの対象であるか否かの判定を、各プロセスへ、前記プロセス情報を基に要求し、前記各プロセスから送られた前記判定の結果を基に、入力された前記プラグインコマンドの対象となる前記対象プロセスを選択し、前記プラグインコマンドの実行内容を前記対象プロセスに実行させることを特徴とする
【発明の効果】
【０００７】
本発明によれば、１つのプラグインコマンドが、複数のプロセスに対応しているとき、１回のプラグインコマンド入力で、そのプラグインコマンドの対象となる複数のプロセスのプラグイン処理を実行することができる。
【発明を実施するための最良の形態】
【０００８】
以下に、図面を参照して本発明の実施形態について説明する。
【０００９】
（構成）
図１は、本実施形態に係る情報処理装置の構成を示す図である。
ＰＣ（Personal Computer）などである情報処理装置１は、キーボードやディスプレイなどの入出力装置４（入力部）と、ＨＤ（Hard Disk）などの記憶装置３（記憶部）と、ＣＰＵ５（Central Processing Unit）と、ＲＡＭ２（Random Access Memory）とがバス６を介して互いに接続している。
ＲＡＭ２では、記憶装置３に格納されているプラグイン適用プログラムが、展開され、ＣＰＵ５によって実行されることによって具現化する処理プログラム２１、複数のＡＰＬプロセス２２（ＡＰＬプロセス２２ａ〜２２ｃ、以下、ＡＰＬプロセス２２ａをＡＰＬプロセス「Ａ」、ＡＰＬプロセス２２ｂをＡＰＬプロセス「Ｂ」、ＡＰＬプロセス２２ｃをＡＰＬプロセス「Ｃ」と適宜記載する）が実行されている。各ＡＰＬプロセス２２には、自身が入出力装置４から入力されたプラグインコマンドに対応するプロセスか否かを判定するチェック部２２１を有している。
処理プログラム２１は、入出力装置４から入力されたプラグインコマンドに関する処理を行うコマンド処理部２１１と、ＡＰＬプロセス２２からプロセス情報を取得するプロセス情報取得部２１２と、プロセス情報を記憶装置３に格納したり、記憶装置３からプロセス情報を取得したりするプロセス情報管理部２１３を有する。
ここで、プロセス情報とは、ＡＰＬプロセス２２を一意に識別するための情報であり、例えば、プロセスＩＤや、プロセス名である。
【００１０】
記憶装置３には、現在実行されているＡＰＬプロセス２２のプロセス情報のリストであるプロセス情報リスト３１や、プラグイン処理で使用するパッチであるプラグイン対象パッチ３２などが格納されている。なお、プラグイン対象パッチ３２は、予めダウンロードなどで取得され、記憶装置３に格納されているものとする。
【００１１】
（プロセス情報登録処理）
図２は、プロセス情報登録処理の流れを示す図である。なお、図２に示す処理は、情報処理装置１の起動時や、ＡＰＬプロセス２２の起動時などに行われる処理であり、ここでは、ＡＰＬプロセス「Ａ」〜「Ｃ」の３つのＡＰＬプロセス２２が起動したときの処理を示す。
まず、ＡＰＬプロセス「Ａ」が、自身の設定の初期化要求などをプロセス情報取得部２１２へ送信する（Ｓ１０１）。この初期化要求には、ＡＰＬプロセス「Ａ」に関するプロセス情報が含まれている。
プロセス情報取得部２１２は、ＡＰＬプロセス「Ａ」に関するプロセス情報をＡＰＬプロセス「Ａ」からの初期化要求などから取得する（Ｓ１０２）。
【００１２】
続いて、プロセス情報取得部２１２は、取得したＡＰＬプロセス「Ａ」に関するプロセス情報をプロセス情報管理部２１３へ送信することにより、該プロセス情報をプロセス情報リスト３１へ登録するよう指示するプロセス情報登録指示をプロセス情報管理部２１３へ行う（Ｓ１０３）。
プロセス情報登録指示を受けたプロセス情報管理部２１３は、記憶装置３のプロセス情報リスト３１へＡＰＬプロセス「Ａ」に関するプロセス情報を登録する（Ｓ１０４）。
そして、プロセス情報管理部２１３は、ＡＰＬプロセス「Ａ」に関するプロセス情報の登録が終了した旨の応答をプロセス情報取得部２１２へ送信する（Ｓ１０５）。ステップＳ１０５で送信された応答を受信したプロセス情報取得部２１２は、初期化要求の送信元であるＡＰＬプロセス「Ａ」へプロセス情報の登録が終了した旨の応答を送信する（Ｓ１０６）。
【００１３】
以上の処理により、ＡＰＬプロセス「Ａ」のプロセス情報に関するプロセス情報リスト３１への登録が完了する。
以下、ＡＰＬプロセス「Ｂ」およびＡＰＬプロセス「Ｃ」に関しても同様の処理を行い（ＡＰＬプロセス「Ｂ」に関しては、ステップＳ１０７〜Ｓ１１２、ＡＰＬプロセス「Ｃ」に関しては、ステップＳ１１３〜Ｓ１１８）、プロセス情報管理部２１３は、ＡＰＬプロセス「Ｂ」およびＡＰＬプロセス「Ｃ」のプロセス情報をプロセス情報リスト３１に登録する。
【００１４】
（プラグイン実行処理）
図３は、本実施形態に係るプラグイン実行処理の流れを示す図である。
まず、入出力装置４を介してプラグインコマンドが入力される（Ｓ２０１）と、コマンド処理部２１１は、プロセス情報管理部２１３へプロセス情報の取得要求を送信する（Ｓ２０２）。
プロセス情報取得要求を受信したプロセス情報管理部２１３は、記憶装置３のプロセス情報リスト３１に登録されているすべてのプロセス情報を取得する（Ｓ２０３）。
そして、プロセス情報管理部２１３は、取得したプロセス情報をコマンド処理部２１１へ送信する（Ｓ２０４）。
【００１５】
次に、コマンド処理部２１１は、取得したプロセス情報が示すすべてのＡＰＬプロセス２２に対し、プラグイン対象チェックを行わせる。
具体的に記載すると、コマンド処理部２１１は、プロセス情報に従ってＡＰＬプロセス「Ａ」に対し、プラグイン対象チェック要求を送信する（Ｓ２０５）。ここで、プラグイン対象チェック要求には、プラグインコマンドに関する情報（例えば、アプリケーションの名称など）が含まれている。
プラグイン対象チェック要求を受信したＡＰＬプロセス「Ａ」のチェック部２２１は、は、プラグイン対象チェック要求に含まれるプラグインコマンドに関する情報を使用して、自身が入力されたプラグインコマンドの対象となるＡＰＬプロセス２２であるか否かを判定するプラグイン対象チェック処理を行う（Ｓ２０６）。ＡＰＬプロセス２２のチェック部２２１は、プラグイン対象チェック処理の結果、ＡＰＬプロセス「Ａ」自身がプラグインコマンドに対応したプラグインの対象となっているか（プラグイン対象）、プラグインの対象となっていないか（プラグイン非対象）をチェック結果として出力する。
【００１６】
そして、ＡＰＬプロセス２２は、プラグイン対象チェック処理のチェック結果を、コマンド処理部２１１へ送信する（Ｓ２０７）。ここでは、ステップＳ２０６の結果、ＡＰＬプロセス「Ａ」はプラグイン対象と判定されたとし、ステップＳ２０７で送信されるチェック結果には、プラグイン対象の情報が含まれているものとする。
【００１７】
同様に、コマンド処理部２１１は、ＡＰＬプロセス「Ｂ」およびＡＰＬプロセス「Ｃ」に対しても、プラグイン対象チェック処理を行わせる（ＡＰＬプロセス「Ｂ」に対する処理は、ステップＳ２０８〜Ｓ２１０、ＡＰＬプロセス「Ｃ」に対する処理は、ステップＳ２１１〜Ｓ２１３）。ここでは、ＡＰＬプロセス「Ｂ」が、プラグイン非対象であり、ＡＰＬプロセス「Ｃ」がプラグイン対象であったとする。
【００１８】
次に、コマンド処理部２１１は、チェック結果でプラグイン対象であったＡＰＬプロセス「Ａ」，「Ｃ」に対して、プラグインコマンドの実行指示を送信する。
まず、コマンド処理部２１１は、ＡＰＬプロセス「Ａ」に対し、プラグインコマンドの実行指示を送信する（Ｓ２１４）。
プラグインコマンドの実行指示を受信したＡＰＬプロセス「Ａ」は、記憶装置３のプラグイン対象パッチ３２（図１）を使用してプラグインコマンドのコマンド内容を実行する（Ｓ２１５）。つまり、ＡＰＬプロセス「Ａ」は、プラグイン処理を実行する。コマンド内容の実行が完了すると、ＡＰＬプロセス「Ａ」は、コマンド内容の実行が完了した旨の応答をコマンド処理部２１１へ送信する（Ｓ２１６）。
【００１９】
次に、コマンド処理部２１１は、ＡＰＬプロセス「Ｃ」に対し、プラグインコマンドの実行指示を送信する（Ｓ２１７）。
プラグインコマンドの実行指示を受信したＡＰＬプロセス「Ｃ」は、記憶装置３のプラグイン対象パッチ３２を使用してプラグインコマンドのコマンド内容を実行する（Ｓ２１８）。コマンド内容の実行が完了すると、ＡＰＬプロセス「Ｃ」は、コマンド内容の実行が完了した旨の応答をコマンド処理部２１１へ送信する（Ｓ２１９）。
【００２０】
そして、コマンド処理部２１１は、プラグイン対象チェック処理の結果、プラグイン対象と判定されたすべてのＡＰＬプロセス２２からコマンド内容の実行完了の応答を受信すると、すべてのプラグイン対象となっているＡＰＬプロセス２２において、プラグインコマンドの内容が実行された旨の応答を入出力装置４へ送る（Ｓ２２０）。そして、ステップＳ２２０で送信された応答を受信した入出力装置４のディスプレイなどはプラグイン処理が完了した旨の情報などを表示して、処理を終了させる。
【００２１】
なお、本実施形態では、プラグイン対象チェック処理（図３のステップＳ２０６，Ｓ２０９、Ｓ２１２）を各ＡＰＬプロセス２２（２２ａ〜２２ｃ）で行っているが、これに限らず、以下のような手順でプラグイン対象となっているＡＰＬプロセス２２を選択してもよい。すなわち、プロセス情報に対応するプラグインコマンドの情報などを格納しておき、ステップＳ２０１で入力されたプラグインコマンドの情報と、プロセス情報に格納されているプラグインコマンドの情報とを比較することによって、ステップＳ２０５〜Ｓ２１３の処理を行うことなく、コマンド処理部２１１がプラグイン対象となっているＡＰＬプロセス２２を選択してもよい。
【００２２】
本実施形態によれば、プラグインコマンドの対象となるＡＰＬプロセス２２が複数存在する場合でも、実行中のＡＰＬプロセス２２からプラグインコマンドの対象となるＡＰＬプロセス２２を選択し、プラグインコマンドのコマンド内容を実行（プラグイン処理を実行）させることができ、１回のプラグインコマンド入力で、複数のＡＰＬプロセス２２（２２ａ〜２２ｃ）に対するプラグイン処理を行うことが可能となる。
【００２３】
また、ＡＰＬプロセス２２で保持しているプロセス情報以外のＡＰＬプロセス２２毎に固有の情報があり、この情報は固定量情報でない（つまり、プロセス毎に可変である可変量情報である）。プラグイン対象チェック処理（図３のステップＳ２０６，２０９，２１２）は、この可変量情報を使用して行われる。もし、この可変量情報が、プロセス情報と一緒にプロセス情報リスト３１に格納されることになると、例えば、一番大きな可変量情報に合わせてプロセス情報リスト３１の領域を決めることとなる。しかしながら、この場合、一番小さな可変量情報を有するＡＰＬプロセス２２も、一番大きな可変量情報に合わせてプロセス情報リスト３１における領域を決める必要があり、効率的ではない。このため、プロセス情報リスト３１に格納する情報は、ＡＰＬプロセス２２毎に一定の情報を有しているプロセス情報のみとし、可変量情報はＡＰＬプロセス２２側で保持する方が好ましい。しかしながら、このような状況で、プラグイン対象チェック処理を処理プログラム２１側で行うと、可変量情報を予測するなどの必要が生じ、不要なリソースの確保を行わなければならない。本実施形態のように、各ＡＰＬプロセス２２側でプラグイン対処チェック処理を行うことにより、プロセス情報リスト３１に格納する情報を一定量の情報とすることができ、かつ不要なリソースの確保を行う必要がないという効果を得ることができる。
【図面の簡単な説明】
【００２４】
【図１】本実施形態に係る情報処理装置の構成を示す図である。
【図２】プロセス情報登録処理の流れを示す図である。
【図３】本実施形態に係るプラグイン実行処理の流れを示す図である。
【図４】一般的に行われているプラグイン実行処理の流れを示す図である。
【符号の説明】
【００２５】
１      情報処理装置
２      ＲＡＭ
３      記憶装置（記憶部）
４      入出力装置（入力部）
５      ＣＰＵ
６      バス
２１    処理プログラム
２２，２２ａ〜２２ｃ  ＡＰＬプロセス
３１    プロセス情報リスト
３２    プラグイン対象パッチ
２１１  コマンド処理部
２１２  プロセス情報取得部
２１３  プロセス情報管理部
２２１  チェック部
【図１】
2010009088.tif 000003
【図２】
2010009088.tif 000004
【図３】
2010009088.tif 000005
【図４】
2010009088.tif 000006