(57)【要約】  情報処理システムは、第１プロセス、第２プロセス、管理プロセス、及び中継プロセスを備える。第１プロセスは、所定の処理を実行し、また、他のプロセスと通信する。第２プロセスは、第１プロセスからの起動要求に応答して起動され、所定の処理を実行する。管理プロセスは、第１プロセスと第２プロセスとの間の通信を管理する。中継プロセスは、第１プロセスから、第２プロセスに対する起動要求と第１プロセス及び第２プロセスで使用される使用データとを受けとる。更に、中継プロセスは、第２プロセスを代理起動し、第２プロセスに使用データを渡し、第２プロセスを起動した旨を管理プロセスに通知する。
2010001797.tif 000002
【特許請求の範囲】
【請求項１】
所定の処理を実行し、また、他のプロセスと通信する第１プロセスと、
前記第１プロセスからの起動要求に応答して起動され、所定の処理を実行する第２プロセスと、
前記第１プロセスと前記第２プロセスとの間の通信を管理する管理プロセスと、
前記第１プロセスから前記第２プロセスに対する前記起動要求と前記第１プロセス及び前記第２プロセスで使用される使用データとを受け取り、前記第２プロセスを代理起動し、前記第２プロセスに前記使用データを渡し、前記第２プロセスを起動した旨を前記管理プロセスに通知する中継プロセスと
を備える
情報処理システム。
【請求項２】
前記第１プロセスから前記第２プロセスに対するデータの送信先を、前記中継プロセスに設定する送信先設定手段
を更に備える
請求の範囲１に記載の情報処理システム。
【請求項３】
前記管理プロセスは、あるプロセスから別のプロセスの起動要求を受け取り、前記別のプロセスを代理起動する機能を備え、
前記送信先設定手段は、前記第１プロセスから前記第２プロセスに対するデータの送信先を、前記管理プロセスから前記中継プロセスに変更する
請求の範囲２に記載の情報処理システム。
【請求項４】
前記第１プロセスを起動し、前記第１プロセスに前記使用データを渡すプロセス起動手段
を更に備え、
前記プロセス起動手段による前記第１プロセスの起動時に、前記送信先設定手段は、前記第１プロセスから前記第２プロセスに対するデータの送信先を、前記中継プロセスに設定する
請求の範囲２又は３に記載の情報処理システム。
【請求項５】
前記管理プロセスは、情報処理システムにインストールされたオペレーティングシステムに予め実装されている機能にて実現されている
請求の範囲２乃至４のいずれか一項に記載の情報処理システム。
【請求項６】
前記中継プロセスは、前記第１プロセスから受け取った前記第２プロセスに対するデータが前記第２プロセスに対する前記起動要求を含むか否かを、予め設定された判断基準情報に基づいて判断し、
前記データが前記第２プロセスに対する前記起動要求を含む場合、前記中継プロセスは前記第２プロセスを代理起動する
請求の範囲１乃至５のいずれか一項に記載の情報処理システム。
【請求項７】
前記中継プロセスは、前記第１プロセスから受け取った前記第２プロセスに対するデータが前記第２プロセスに対する前記起動要求を含まない場合に、前記第１プロセスからの前記データを前記第２プロセスに中継送信する
請求の範囲６に記載の情報処理システム。
【請求項８】
コンピュータ読み取り可能な記録媒体に記録されたプログラムであって、
所定の処理を実行し、また、他のプロセスと通信する第１プロセスと、
前記第１プロセスからの起動要求に応答して起動され、所定の処理を実行する第２プロセスと、
前記第１プロセスと前記第２プロセスとの間の通信を管理する管理プロセスと、
前記第１プロセスから前記第２プロセスに対する前記起動要求と前記第１プロセス及び前記第２プロセスで使用される使用データとを受け取り、前記第２プロセスを代理起動し、前記第２プロセスに前記使用データを渡し、前記第２プロセスを起動した旨を前記管理プロセスに通知する中継プロセスと
をコンピュータに実現させる
プログラム。
【請求項９】
前記第１プロセスから前記第２プロセスに対するデータの送信先を、前記中継プロセスに設定する送信先設定手段
を更に前記コンピュータに実現させる
請求の範囲８に記載のプログラム。
【請求項１０】
前記第１プロセスを起動し、前記第１プロセスに前記使用データを渡すプロセス起動手段
を更に前記コンピュータに実現させ、
前記プロセス起動手段による前記第１プロセスの起動時に、前記送信先設定手段は、前記第１プロセスから前記第２プロセスに対するデータの送信先を、前記中継プロセスに設定する
請求の範囲９に記載のプログラム。
【請求項１１】
情報処理システムにおけるデータ中継方法であって、
前記情報処理システムは、
所定の処理を実行し、また、他のプロセスと通信する第１プロセスと、
前記第１プロセスからの起動要求に応答して起動され、所定の処理を実行する第２プロセスと、
前記第１プロセスと前記第２プロセスとの間の通信を管理する管理プロセスと、
中継プロセスと
を備え、
前記データ中継方法は、
前記中継プロセスが、前記第１プロセスから、前記第２プロセスに対する前記起動要求と前記第１プロセス及び前記第２プロセスで使用される使用データとを受け取るステップと、
前記中継プロセスが、前記第２プロセスを代理起動するステップと、
前記中継プロセスが、前記第２プロセスに前記使用データを渡すステップと、
前記中継プロセスが、前記第２プロセスを起動した旨を前記管理プロセスに通知するステップと
を含む
データ中継方法。
【請求項１２】
前記第１プロセスから前記第２プロセスに対するデータの送信先を、前記中継プロセスに設定するステップ
を更に含む
請求の範囲１１に記載のデータ中継方法。
【請求項１３】
前記第１プロセスを起動し、前記第１プロセスに前記使用データを渡すステップ
を更に含み、
前記第１プロセスの起動時に、前記第１プロセスから前記第２プロセスに対するデータの送信先が、前記中継プロセスに設定される
請求の範囲１２に記載のデータ中継方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システムに関する。特に、本発明は、所定の処理を実行するプロセス間の通信を管理する情報処理システムに関する。
【背景技術】
【０００２】
一般的なコンピュータシステムにおけるプロセスの生起方法には、主に２通りある。１つ目は、図１に示されるように、親プロセス（プロセスＡ１０１）が、直接、子プロセス（プロセスＢ１０２）を生起する方法である。親プロセス（プロセスＡ１０１）と子プロセス（プロセスＢ１０２）との間でデータを共有する場合には、新規プロセスの生起直後からデータ共有が必要となる。ここで、共有されるデータと子プロセスの生起命令は、親プロセスから、子プロセスの生起の主体となるプロセスに同時に渡されなければならない、という制約がある。図１の例では、親プロセス（プロセスＡ１０１）が、子プロセス（プロセスＢ１０２）の生起命令と同時に、当該子プロセス（プロセスＢ１０２）に共有データを渡す。【０００３】
２つ目のプロセス生起方法は、常駐している第３者プロセスに親プロセスから命令を発し、かかる命令を受けた第３者プロセスによって子プロセスを代理生起する方法である。例えば、コンピュータシステムで「遠隔手順呼び出し（RPC: Remote Procedure Call）」を実施する際に、呼び出し先プロセスが存在しない場合には、ＲＰＣを統括する第３者プロセスが、呼び出し先プロセスの生起を、呼び出し元プロセスに代わって行う。【０００４】
上記代理生起に係るＲＰＣの手順を、図２を参照して説明する。まず、親プロセス（プロセスＡ２０１）が、第３者プロセス２０３に、子プロセス（プロセスＢ２０２）の生起を要求する。このとき、子プロセス（プロセスＢ２０２）が生起当初から必要なデータがあれば、親プロセス（プロセス）Ａ２０１）はそれを第３者プロセス２０３に預託する。そして、第３者プロセス２０３は、この要求を受理すると、子プロセス（プロセスＢ２０２）を代理生起し、預託されたデータを子プロセス（プロセスＢ２０２）に渡す。その後、親プロセス（プロセスＡ２０１）と子プロセス（プロセスＢ２０２）は、どちらか一方がＲＰＣの終了を宣言するまでの間、二者だけで継続してＲＰＣを実行する。そして、第３者プロセス２０３は、両者のＲＰＣを見守り、途中で予期しない通信断が発生した場合、両方のプロセスにエラーを返すなどの例外処理を行う。【０００５】
なお、関連技術として、特開平７−２５３９４３号公報（特許文献１）、特開２００４−２９５８９８号公報（特許文献２）が知られている。特許文献１には、ＲＰＣサーバ・クライアント間に中継機械を備えた構成のシステムが開示されている。特許文献２には、ＲＰＣにおける処理を拡張する方式が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平７−２５３９４３号公報
【特許文献２】特開２００４−２９５８９８号公報
【発明の概要】
【０００７】
しかしながら、上述の技術では、機密にすべきデータが第３者プロセスを介して漏えいする、という問題点があった。これについて詳しく説明する。上述の制約が存在する環境下で、親子関係のあるプロセス間でのみ共有すべき機密データが存在する場合を考える。この場合、図１で示された１つ目の方法であれば、子プロセスは親プロセスから直接、機密データを受信可能である。ところが、図２で示された２つ目の方法の場合、親子プロセス間でのみ共有すべき機密データを、一度第３者プロセスに預託しなければならない。従って、機密データを第３者プロセスに預託する時に、当該第３者プロセスを介して機密データが漏えいする、という問題が生じる。特に、第３者プロセスが、オペレーティングシステムに実装された一般的な機能にて構成されている場合には、このような第３者プロセスからの情報漏洩の問題は深刻である。
【０００８】
本発明の１つの目的は、上述のような情報処理システムにおける情報漏洩を抑制し、セキュリティを向上させることにある。
【０００９】
本発明の１つの観点において、情報処理システムが提供される。その情報処理システムは、第１プロセス、第２プロセス、管理プロセス、及び中継プロセスを備える。第１プロセスは、所定の処理を実行し、また、他のプロセスと通信する。第２プロセスは、第１プロセスからの起動要求に応答して起動され、所定の処理を実行する。管理プロセスは、第１プロセスと第２プロセスとの間の通信を管理する。中継プロセスは、第１プロセスから、第２プロセスに対する起動要求と第１プロセス及び第２プロセスで使用される使用データとを受けとる。更に、中継プロセスは、第２プロセスを代理起動し、第２プロセスに使用データを渡し、第２プロセスを起動した旨を管理プロセスに通知する。
【００１０】
本発明の他の観点において、コンピュータに次のプロセスを実現させるプログラムが提供される。当該プロセスは、第１プロセス、第２プロセス、管理プロセス、及び中継プロセスを備える。第１プロセスは、所定の処理を実行し、また、他のプロセスと通信する。第２プロセスは、第１プロセスからの起動要求に応答して起動され、所定の処理を実行する。管理プロセスは、第１プロセスと第２プロセスとの間の通信を管理する。中継プロセスは、第１プロセスから、第２プロセスに対する起動要求と第１プロセス及び第２プロセスで使用される使用データとを受けとる。更に、中継プロセスは、第２プロセスを代理起動し、第２プロセスに使用データを渡し、第２プロセスを起動した旨を管理プロセスに通知する。
【００１１】
本発明の更に他の観点において、情報処理システムにおけるデータ中継方法が提供される。その情報処理システムは、第１プロセス、第２プロセス、管理プロセス、及び中継プロセスを備える。第１プロセスは、所定の処理を実行し、また、他のプロセスと通信する。第２プロセスは、第１プロセスからの起動要求に応答して起動され、所定の処理を実行する。管理プロセスは、第１プロセスと第２プロセスとの間の通信を管理する。データ中継方法は、（ａ）中継プロセスが、第１プロセスから、第２プロセスに対する起動要求と第１プロセス及び第２プロセスで使用される使用データとを受け取るステップと、（ｂ）中継プロセスが、第２プロセスを代理起動するステップと、（ｃ）中継プロセスが、第２プロセスに使用データを渡すステップと、（ｄ）中継プロセスが、第２プロセスを起動した旨を管理プロセスに通知するステップと、を含む。
【００１２】
本発明によれば、情報処理システムにおける情報漏洩を有効に抑制し、セキュリティを向上させることが可能となる。
【図面の簡単な説明】
【００１３】
上記及び他の目的、長所、特徴は、次の図面と共に説明される本発明の実施の形態により明らかになるであろう。【００１４】
【図１】図１は、親プロセスが、直接、子プロセスを生起する方法を説明するための図である。
【図２】図２は、ＲＰＣを伴う場合に第３者プロセスを用いて子プロセスを生起する方法を説明するための図である。
【図３】図３は、本発明の実施の形態に係るコンピュータシステムの構成を示す機能ブロック図である。
【図４】図４は、本発明の実施の形態に係るコンピュータシステムの動作を示すフローチャートである。
【図５】図５は、本発明の実施の形態に係るコンピュータシステムの構成の他の例を示す機能ブロック図である。
【発明を実施するための形態】
【００１５】
本発明に係る情報処理システムは、データを処理するプロセスとは無関係のプロセスに当該データが通知されることを抑制する。これにより、情報漏洩が有効に抑制され、セキュリティが向上する。
【００１６】
本発明の１つの観点において、情報処理システムが提供される。その情報処理システムは、第１プロセス、第２プロセス、管理プロセス、及び中継プロセスを備える。第１プロセスは、所定の処理を実行し、また、他のプロセスと通信する。第２プロセスは、第１プロセスからの起動要求に応答して起動され、所定の処理を実行する。管理プロセスは、第１プロセスと第２プロセスとの間の通信を管理する。中継プロセスは、第１プロセスから、第２プロセスに対する起動要求と第１プロセス及び第２プロセスで使用される使用データとを受けとる。更に、中継プロセスは、第２プロセスを代理起動し、第２プロセスに使用データを渡し、第２プロセスを起動した旨を管理プロセスに通知する。
【００１７】
上記発明によれば、第１プロセスが第２プロセスを起動する際、第１プロセスは、第２プロセスに対する起動要求と第１プロセス及び第２プロセスで使用される使用データとを、中継プロセスに送信する。それに応答して、中継プロセスは、要求された第２プロセスを起動し、また、受け取った使用データを第２プロセスに渡す。これにより、第２プロセスは起動し、受け取った使用データを用いて所定の処理を実行する。また、中継プロセスは、第２プロセスを起動したことを、プロセス間の通信管理を行う管理プロセスに通知する。
【００１８】
このように、第１プロセスから第２プロセスに渡される使用データは、プロセス間の通信管理を行う管理プロセスに通知されない。従って、使用データの漏えいが有効に抑制される。その結果、情報処理システムのセキュリティが向上する。
【００１９】
情報処理システムは、第１プロセスから第２プロセスに対するデータの送信先を、中継プロセスに設定する送信先設定手段を更に備えてもよい。
【００２０】
管理プロセスは、あるプロセスから別のプロセスの起動要求を受け取り、別のプロセスを代理起動する機能を備える。この場合、送信先設定手段は、第１プロセスから第２プロセスに対するデータの送信先を、管理プロセスから中継プロセスに変更する。
【００２１】
情報処理システムは、第１プロセスを起動し、第１プロセスに使用データを渡すプロセス起動手段を更に備えてもよい。プロセス起動手段による第１プロセスの起動時に、送信先設定手段は、第１プロセスから第２プロセスに対するデータの送信先を、中継プロセスに設定する。
【００２２】
管理プロセスは、情報処理システムにインストールされたオペレーティングシステムに予め実装されている機能にて実現されてもよい。
【００２３】
これにより、第１プロセスから第２プロセスへのデータは、常に中継プロセスに送信される。そのため、上述したように、中継プロセスによって第２プロセスが代理起動され、かつ、当該第２プロセスに使用データが渡される。つまり、予めオペレーティングシステムに実装されている機能などで実現されている管理プロセスは、プロセスを代理起動する機能を有していても、上記第２プロセスを第１プロセスに代わって起動することはない。その結果、第１プロセスと第２プロセスで使用される使用データが管理プロセスに漏洩することが有効に抑制され、セキュリティが更に向上する。
【００２４】
中継プロセスは、第１プロセスから受け取った第２プロセスに対するデータが第２プロセスに対する起動要求を含むか否かを、予め設定された判断基準情報に基づいて判断してもよい。当該データが第２プロセスに対する起動要求を含む場合、中継プロセスは第２プロセスを代理起動する。
【００２５】
第１プロセスから受け取った第２プロセスに対するデータが第２プロセスに対する起動要求を含まない場合、中継プロセスは、第１プロセスからのデータを第２プロセスに中継送信する。
【００２６】
本発明の他の観点において、コンピュータに次のプロセスを実現させるプログラムが提供される。当該プロセスは、第１プロセス、第２プロセス、管理プロセス、及び中継プロセスを備える。第１プロセスは、所定の処理を実行し、また、他のプロセスと通信する。第２プロセスは、第１プロセスからの起動要求に応答して起動され、所定の処理を実行する。管理プロセスは、第１プロセスと第２プロセスとの間の通信を管理する。中継プロセスは、第１プロセスから、第２プロセスに対する起動要求と第１プロセス及び第２プロセスで使用される使用データとを受けとる。更に、中継プロセスは、第２プロセスを代理起動し、第２プロセスに使用データを渡し、第２プロセスを起動した旨を管理プロセスに通知する。このプログラムは、コンピュータ読み取り可能な記録媒体に記録されていてもよい。
【００２７】
このプログラムは、第１プロセスから第２プロセスに対するデータの送信先を、中継プロセスに設定する送信先設定手段を更にコンピュータに実現させてもよい。
【００２８】
このプログラムは、第１プロセスを起動し、第１プロセスに使用データを渡すプロセス起動手段を更にコンピュータに実現させてもよい。この場合、プロセス起動手段による第１プロセスの起動時に、送信先設定手段は、第１プロセスから第２プロセスに対するデータの送信先を、中継プロセスに設定する。
【００２９】
本発明の更に他の観点において、情報処理システムにおけるデータ中継方法が提供される。その情報処理システムは、第１プロセス、第２プロセス、管理プロセス、及び中継プロセスを備える。第１プロセスは、所定の処理を実行し、また、他のプロセスと通信する。第２プロセスは、第１プロセスからの起動要求に応答して起動され、所定の処理を実行する。管理プロセスは、第１プロセスと第２プロセスとの間の通信を管理する。データ中継方法は、（ａ）中継プロセスが、第１プロセスから、第２プロセスに対する起動要求と第１プロセス及び第２プロセスで使用される使用データとを受け取るステップと、（ｂ）中継プロセスが、第２プロセスを代理起動するステップと、（ｃ）中継プロセスが、第２プロセスに使用データを渡すステップと、（ｄ）中継プロセスが、第２プロセスを起動した旨を管理プロセスに通知するステップと、を含む。
【００３０】
データ中継方法は、第１プロセスから第２プロセスに対するデータの送信先を、中継プロセスに設定するステップを更に含んでもよい。
【００３１】
データ中継方法は、第１プロセスを起動し、第１プロセスに使用データを渡すステップを更に含んでもよい。この場合、第１プロセスの起動時に、第１プロセスから第２プロセスに対するデータの送信先が、中継プロセスに設定される。
【００３２】
以上に説明されたプログラム又はデータ中継方法も、上記情報処理システムと同様の作用を有し、上述した本発明の目的を達成することができる。
【００３３】
＜第１の実施の形態＞
以下、図３〜図５を参照して、本発明の第１の実施の形態を説明する。図３は、本実施の形態に係るコンピュータシステム１の構成を示す機能ブロック図である。図４は、本実施の形態に係るコンピュータシステム１の動作を示すフローチャートである。また、図５は、本実施の形態に係るコンピュータシステム１の他の構成を示す機能ブロック図である。
【００３４】
［構成］
図３に示されるコンピュータシステム１（情報処理システム）は、演算処理装置及び記憶装置（例：ハードディスクドライブ、フラッシュメモリ）を含むハードウェア１１を備える一般的なコンピュータ（情報処理装置）である。尚、コンピュータシステム１は、１台のコンピュータで構成されていてもよいし、複数台のコンピュータで構成されていてもよい。
【００３５】
コンピュータシステム１は、更に、オペレーティングシステム１２と複数のプロセスとを備えている。オペレーティングシステム１２は、演算装置にプログラムが組み込まれることによって構築される。各プロセスは、オペレーティングシステム１２上で稼働して、所定の処理を実行する。より詳細には、オペレーティングシステム１２上で稼動する複数のプロセスは、通常プロセスＡ４１、通常プロセスＢ４２、第３者プロセス４３、機密プロセスＡ２１、機密プロセスＢ２２、及び中継プロセス２３を含んでいる。更に、コンピュータシステム１は、オペレーティングシステム１２上で稼働するプロセスとして、通信インタフェース仕様取得部３１と機密プロセス生起部３２を備えている。以下、各構成について詳述する。
【００３６】
オペレーティングシステム１２は、コンピュータシステム１全体の基本動作を管理する基本ソフトウェアである。オペレーティングシステム１２は、通信インタフェース仕様を参照する機能を有している。つまり、上述の各プロセスや各部といった任意のプログラムが、通信インタフェース仕様を利用及び理解することができる。尚、通信インタフェース仕様は、コンピュータシステム１で遠隔手順呼び出し（RPC: Remote Procedure Call）を実施する際における送信データのフォーマットを規定する。また、ＲＰＣは、プロセス間における通信、つまり、あるプロセスが他のプロセスに対して、例えば起動要求など命令や所定のデータを送信することを言う。
【００３７】
通常プロセスＡ４１（所定のプロセス）と通常プロセスＢ４２（別のプロセス）とは、互いに親子関係を有する。具体的には、通常プロセスＡ４１は、通信インタフェース４１ａを用い、ＲＰＣにて通常プロセスＢ４２の起動（生起）を要求することができる。通常プロセスＢ４２は、通常プロセスＡ４１からのＲＰＣによる起動要求を、通信インタフェース４２ａで受けて、起動する。
【００３８】
同様に、機密プロセスＡ２１（第１プロセス）と機密プロセスＢ２２（第２プロセス）とは、互いに親子関係を有する。具体的には、機密プロセスＡ２１は、通信インタフェース２１ａを用い、ＲＰＣにて機密プロセスＢ２２の起動（生起）を要求することができる。機密プロセスＢ２２は、機密プロセスＡ２１からのＲＰＣによる起動要求を、通信インタフェース２２ａで受けて、起動する。
【００３９】
また、機密プロセスＡ２１及びＢ２２は共に、機密とされた共有データ（使用データ、機密データ）を用いて処理を実行する。機密プロセスＡ２１は、機密プロセスＢ２２に、起動要求のＲＰＣと共にこの共有データを送信する機能を有している。尚、上記通常プロセスＡ４１、Ｂ４２や機密プロセスＡ２１、Ｂ２２は、例えば、文書作成アプリケーションや表計算アプリケーション等の所定の処理を実行するアプリケーションである。
【００４０】
通信インタフェース仕様取得部３１は、オペレーティングシステム１２に登録されている任意の通信インタフェース仕様を読みだす。そして、通信インタフェース仕様取得部３１は、後述される機密プロセス生起部３２及び中継プロセス２３に対して、通信インタフェース仕様の内容を伝達する。この通信インタフェース仕様は、例えば、ＲＰＣ判断基準情報を含んでいる。ＲＰＣ判断基準情報は、後述される中継プロセス２３にて、ＲＰＣが機密プロセスを生起する起動要求であるか否かを判断する際に用いられる。
【００４１】
機密プロセス生起部３２は、ユーザから入力された操作指令や処理対象となるデータなどに応じて、上記機密プロセスＡ２１を起動すると同時に、上記共有データを機密プロセスＡ２１に渡す機能（プロセス起動手段）を有する。尚、機密プロセス生起部３２によって起動される機密プロセスＡ２１は、図３中の点線で示されるように、機密グループに分類される。また、機密の使用データを保持することができる中継プロセス２３及び機密プロセスＢ２２も、機密グループに分類される。それ以外の通常プロセスＡ４１、通常プロセスＢ４２、第３者プロセス４３は、通常グループに分類される。
【００４２】
更に、機密プロセス生起部３２は、起動した機密プロセスＡ２１の通信インタフェース２１ａを用いたＲＰＣの送信先を、予め設定された第３者プロセス４３から、中継プロセス２３に変更設定する機能（送信先設定手段）を有する。これにより、機密プロセスＡ２１から機密プロセスＢ２２に対して送信される起動要求を含むＲＰＣとプロセス間で共有される共有データとが、常に、中継プロセス２３に送信されることとなる。
【００４３】
中継プロセス２３は、オペレーティングシステム１２の稼働開始と同時に常駐プロセスとして起動し、稼動する。この中継プロセス２３は、機密プロセスＡ２１から送信されたＲＰＣを受信し、その宛先として設定されている機密プロセスＢ２２にＲＰＣを中継送信する機能を有する。より詳細には、中継プロセス２３は、受信したＲＰＣの中身を読み出して、その内容を確認する。中継プロセス２３は、当該ＲＰＣが第３者プロセス４３を用いた新規の機密プロセスＢ２２の起動を要求する情報を含んでいる場合に、第３者プロセスに代わって機密プロセスＢ２２を生起する機能を有する。また、中継プロセス２３は、機密プロセスＢ２２の起動に伴い、上記ＲＰＣと共に機密プロセスＡ２１から送信されてきた共有データを、機密プロセスＢ２２に渡す機能を有する。更に、中継プロセス２３は、その後、機密プロセスＢ２２を生起した旨を第３者プロセス４３に通知する機能を有する。
【００４４】
また、中継プロセス２３は、上記通信インタフェース仕様取得部３１から通信インタフェース仕様を受け取る。この通信インタフェース仕様に基づいて、中継プロセス２３は、機密プロセスＡ２１から受信したＲＰＣに含まれる情報が、機密プロセスＢ２２を起動する要求であるか否かを判断する。つまり、中継プロセス２３は、通信インタフェース仕様に含まれているＲＰＣ判断基準情報に基づいて、実際に機密プロセスＡ２１から送信されたＲＰＣを判定する。そして、ＲＰＣが起動要求である場合には、中継プロセス２３は、上述したように、機密プロセスＢ２２を生起し、共有データを機密プロセスＢ２２に渡す（機密プロセス生起部２３ａ）。一方、ＲＰＣが起動要求でない場合には、中継プロセス２３は、当該ＲＰＣの内容に応じて、機密プロセスＡ２１と機密プロセスＢ２２との通信を中継する（ＲＰＣ中継部２３ｂ）。
【００４５】
第３者プロセス４３（管理プロセス）は、例えば、一般的なコンピュータシステムに備わっている常駐プロセスである。第３者プロセス４３は、ＲＰＣの通信先プロセスを通信元プロセスの要請に応じて生起する機能（通常プロセス生起部４３ａ）を有する。図３の例では、第３者プロセス４３は、通常プロセスＡ４１から送信された通常プロセスＢ４２の起動要求を受け取って、当該通常プロセスＢ４２を生起する。
【００４６】
また、第３者プロセス４３は、すべてのプロセス間で実行されるＲＰＣを管理する機能（ＲＰＣ管理部４３ｂ）を有する。従って、第３者プロセス４３は、通常プロセスＡ４１と通常プロセスＢ４２との間の対話を継続させ、予期しない通信断時には双方のプロセスへ例外を通知する。更に、第３者プロセス４３は、機密グループのプロセス間で実行されるＲＰＣをも管理する。すなわち、第３者プロセス４３のＲＰＣ管理部４３ｂは、中継プロセス２３から機密プロセスＢ２２の生起完了通知を受け取り、機密プロセスＡ２１と機密プロセスＢ２２との間の対話を継続させ、予期しない通信断時には双方のプロセスへ例外を通知する。
【００４７】
以上に説明されたように、中継プロセス２３と第３者プロセス４３とは、親プロセス（機密プロセスＡ２１、通常プロセスＡ４１）から起動要求された新たな子プロセス（機密プロセスＢ２２、通常プロセスＢ４２）を生起する機能を有する点では一致する。しかしながら、中継プロセス２３と第３者プロセス４３とは、次の点で異なっている。すなわち、中継プロセス２３は、機密の共有データが関与する機密プロセスＢ２２の生起は行うものの、その共有データが関与しない通常プロセスＢ４２の生起は行わない。その一方で、第３者プロセス４３は、通常プロセスＢ４２の生起を行う。
【００４８】
［動作］
次に、図４のフローチャートを参照して、本実施の形態に係るコンピュータシステム１の動作を説明する。
【００４９】
ステップＳ１：
まず、コンピュータ１は、オペレーティングシステム１２の起動と同時に、中継プロセス２３を起動する。
【００５０】
ステップＳ２（プロセス起動ステップ）：
コンピュータシステム１内に、第３者プロセス４３を用いて新規の機密プロセスＢ２２を生起するようプログラムされた機密プロセスＡ２１が存在するとする。この場合、機密プロセス生起部３２は、その機密プロセスＡ２１を起動する。このとき、機密プロセス生起部３２は、機密プロセス間でのみ共有すべきであり、かつ、それら機密プロセスで起動直後から利用される機密の共有データを有している。機密プロセス生成部３２は、機密プロセスＡ２１の起動と同時に、その共有データを機密プロセスＡ２１に渡す。
【００５１】
ステップＳ３（送信先変更ステップ）：
機密プロセス生起部３２は、起動した機密プロセスＡ２１に設定されているＲＰＣプログラムの通信インタフェース２１ａの設定を変更する。具体的には、機密プロセスＡ２１内の処理テーブルにおいてＲＰＣの送信先が第３者プロセス４３となっているが、機密プロセス生起部３２は、その送信先を第３者プロセス４３から中継プロセス２３へと変更する。
【００５２】
ステップＳ４：
その後、機密プロセスＡ２１は起動を開始する。すると、機密プロセスＡ２１は、プログラムに従い、通信インタフェース２１ａを用いて第３者プロセス４３宛てにＲＰＣを実行し、通信相手となる新規の機密プロセスＢ２２を生起しようとする。このとき、通常プロセスであれば、第３者プロセス４３が通信相手となるプロセスの生起を代行する。ところが、上述したように、機密プロセスＡ２１からのＲＰＣの相手先が中継プロセス２３に変更されている。従って、その中継プロセス２３が、機密プロセスＡ２１からのＲＰＣを受け取ることになる。
【００５３】
ステップＳ５：
続いて、中継プロセス２３は、機密プロセスＡ２１から受信したＲＰＣの内容を、通信インタフェース仕様取得部３１から受信した通信インタフェース仕様と照合する。そして、中継プロセス２３は、当該ＲＰＣが機密プロセスＢ２２の生起に関わるもの、つまり、起動要求であるかどうかを判定する。
【００５４】
ステップＳ６（中継ステップ）：
機密プロセスＡ２１からの受信したＲＰＣが機密プロセスＢ２２の起動要求である場合（ステップＳ５；Ｙｅｓ）、中継プロセス２３は、機密プロセスＢ２２を生起し、また、共有データを機密プロセスＢ２２に渡す。これにより、機密プロセスＢ２２は、機密の共有データを稼働直後から利用可能となる。
【００５５】
ステップＳ７：
更に、中継プロセス２３は、プロセス間通信つまりＲＰＣを管理する第３者プロセス４３に、機密プロセスＢ２２が生起完了したことを通知する。その通知を受けた第３者プロセス４３は、その後の機密プロセスＡ２１，Ｂ２２間のＲＰＣを管理することができる。
【００５６】
ステップＳ８：
その後、中継プロセス２３は、機密プロセスＡ２１と中継プロセス２３との間のＲＰＣを切断する。そして、中継プロセス２３は、ステップＳ４にて、再び機密プロセスＡ２１がＲＰＣを発呼するのを待つ。
【００５７】
ステップＳ９：
一方、ステップＳ５において、機密プロセスＡ２１から受信したＲＰＣが機密プロセスＢ２２の起動要求ではない場合（ステップＳ５；Ｎｏ）、中継プロセス２３は、機密プロセスＡ２１と機密プロセスＢ２２との間でＲＰＣを行うよう、単なる通信データの中継を実行する。
【００５８】
ステップＳ１０：
中継後は、中継プロセス２３は、機密プロセスＡ２１と機密プロセスＢ２２との間のＲＰＣを切断する。
【００５９】
尚、２つのプロセス間でＲＰＣが行われる場合、それが中継プロセスを介したものであるならば、相手先プロセスが存在しないか、あるいは相手先プロセスが秘密のデータを有していない場合に、すべてのＲＰＣに先行して、相手先プロセスを生起し、稼働前に秘密のデータを渡す処理を実行する。
【００６０】
以上に説明されたように、本実施の形態に係るコンピュータシステム１によれば、機密プロセスＡ２１から機密プロセスＢ２２に渡される共有データは、プロセス管理を行う第３者プロセス４３には通知されない。従って、機密の共有データの漏えいが抑制される。その一方で、第３者プロセス４３には、機密プロセスＢ２２が起動した旨が中継プロセス２３から通知される。従って、プロセス管理も実現される。
【００６１】
［変形例］
本実施の形態に係るコンピュータシステム１は、図５に示されるような構成を有していてもよい。図５において、コンピュータシステム１は、上述の機密プロセスＡ２１、機密プロセスＢ２２、中継プロセス２３、及び第３者プロセス４３を備えている。このような構成であっても、機密プロセスＡ２１から機密プロセスＢ２２へのＲＰＣや共有データは、常に中継プロセス２３によって中継される。従って、第３者プロセス４３に共有データを通知することなく、プロセスの生起及び共有データの共有を実現できる。また、第３者プロセス４３は、機密プロセスＢ２２の生起完了通知を受けるため、プロセスの管理も行うことができる。
【００６２】
＜第２の実施の形態＞
次に、本発明の第２の実施の形態を説明する。第２の実施の形態では、上記第１の実施の形態で示されたコンピュータシステム１の更なる具体例を説明する。
【００６３】
本実施の形態のコンピュータシステム１は、オペレーティングシステム１２としてＷｉｎｄｏｗｓ（登録商標）を搭載したパーソナルコンピュータである。Ｗｉｎｄｏｗｓ（登録商標）は、「ＲＰＣＳＳ（Remote Procedure Call Server Service）」と呼ばれるＲＰＣ管理サービスを搭載している。この「ＲＰＣＳＳ」は、ＲＰＣの送信元の要求に応じて、送信先のプロセスを起動する機能を有しており、上述した第３者プロセス４３として機能する。
【００６４】
上記機密プロセスＡ２１は、文書作成を行うワープロソフトである。上記機密プロセスＢ２２は、表計算ソフトである。更に、コンピュータシステム１は、通信インタフェース仕様取得部３１、機密プロセス生起部３２、中継プロセス２３など、第１の実施の形態で説明した各構成を備えている。
【００６５】
コンピュータシステム１のハードディスク上に、あらかじめ暗号化された複数の文書と、それらを暗号化および復号するために必要な「鍵」が記録されているとする。これら文書と鍵は、他のコンピュータなどから得たものであってもよい。但し、鍵は、コンピュータシステム１にて厳重に保管されており、機密プロセス生起部３２だけがその鍵をハードディスクから取り出し可能である。鍵さえ有していれば、任意のプロセスが、文書を暗号化および復号できる。この「鍵」が、上述の機密の共有データ（使用データ）である。
【００６６】
機密プロセス生起部３２は、文書の閲覧に必要なワープロソフト（機密プロセスＡ２１）を起動し、当該ワープロソフトに「鍵」を渡す。その結果、ワープロソフトは、その鍵を用いて、読み込んだ文書を復号化することができる。また、ワープロソフトは、文書保存時に文書を暗号化することができる。尚、ワープロソフトの起動時に、機密プロセス生起部３２によって、ワープロソフト（機密プロセスＡ２１）の通信インタフェース２１ａの設定は変更されている。その結果、ワープロソフトからの生起命令つまりＲＰＣは、中継プロセス２３へ伝達される。
【００６７】
一般的な文書には、文章のほか、表などが埋め込まれている場合がある。ワープロソフトが文章を表示する機能しか有さないときには、表の閲覧・編集を行うにあたっては、表計算ソフト（機密プロセスＢ２２）が用いられる。ワープロソフト（機密プロセスＡ２１）は、文書内に埋め込まれた表を検出すると、第３者プロセス４３へ表計算ソフト（機密プロセスＢ２２）を生起するＲＰＣを行う。
【００６８】
上述の通り、ワープロソフト（機密プロセスＡ２１）の通信インタフェース２１ａの設定は変更されている。そのため、ＲＰＣつまり表計算ソフト（機密プロセスＢ２２）の生起命令は、中継プロセス２３へ伝達される。中継プロセス２３は、受け取ったＲＰＣの内容を調べる。具体的には、中継プロセス２３は、予め通信インタフェース仕様取得部３１から取得した情報に基づいて、当該ＲＰＣがプロセス生起命令（起動要求）であるか否かを判断する。プロセス生起命令である場合、中継プロセス２３は、表計算ソフト（機密プロセスＢ２２）を代理起動する。このとき、中継プロセス２３は、「鍵（共有データ）」も一緒に表計算ソフト（機密プロセスＢ２２）に渡す。その結果、表計算ソフトは、起動直後から文書内容を暗号化・復号化可能となる。更に、中継プロセス２３は、表計算ソフトが起動された旨を、ＲＰＣＳＳ（第３者プロセス４３）に通知する。これにより、ＲＰＣＳＳは、各ソフトのＲＰＣを管理することができる。
【００６９】
その後、ワープロソフト（機密プロセスＡ２１）と表計算ソフト（機密プロセスＢ２２）との間で、表示すべき表の情報などをＲＰＣにより中継プロセス２３を介してやりとりする。その結果、表計算ソフトが出力した表が表示される。
【００７０】
以上に説明されたように、機密の共有データである「鍵」は、第３者プロセス４３に通知されることがない。従って、無関係のプロセスに鍵が漏えいすることが抑制される。すなわち、機密データの漏えいが有効に抑制される。その結果、情報処理システムにおけるセキュリティが向上する。
【００７１】
本発明は、プロセス間でＲＰＣを行うと共に、共有データを処理する複数のプロセスを装備したコンピュータシステムに利用でき、産業上の利用可能性を有する。
【００７２】
以上、本発明の実施の形態が添付の図面を参照することにより説明された。但し、本発明は、上述の実施の形態に限定されず、要旨を逸脱しない範囲で当業者により適宜変更され得る。
【００７３】
本出願は、２００８年７月４日に出願された日本国特許出願２００８−１７５４５７を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【図１】
2010001797.tif 000003
【図２】
2010001797.tif 000004
【図３】
2010001797.tif 000005
【図４】
2010001797.tif 000006
【図５】
2010001797.tif 000007
【国際調査報告】
2010001797.tif 000008
2010001797.tif 000009
2010001797.tif 000010
2010001797.tif 000011