(57)【特許請求の範囲】
【請求項１】
コンピュータに、
データを複写する命令の入力を受付け、
前記コンピュータが実行する複数のアプリケーションで共有される記憶領域に、複写された前記データを、該データを複写する命令の入力を受付けたコンピュータ環境を示す情報とともに格納し、
前記記憶領域からデータを取り出す命令が発生した場合に、前記コンピュータ環境を示す情報に基づいて、前記取り出す命令を実行するか否かを判定する
処理を実行させることを特徴とする情報処理プログラム。
【請求項２】
前記格納する処理は、前記記憶領域にデータを格納する命令が発生した場合に、該データが存在するコンピュータ環境が他のコンピュータ環境であれば、他のコンピュータ環境を示す情報を前記記憶領域に格納し、
前記判定する処理は、前記記憶領域からデータを取り出す命令が発生した場合に、前記記憶領域に前記情報が記憶されているか否かを判定し、
前記判定する処理により前記情報が記憶されていないと判定された場合に、前記データを取り出す命令を実行することを特徴とする請求項１に記載の情報処理プログラム。
【請求項３】
前記格納する処理は、前記記憶領域として、クリップボードに、前記データ及び前記コンピュータ環境を示す情報を格納することを特徴とする請求項１又は２に記載の情報処理プログラム。
【請求項４】
前記コンピュータに、前記判定する処理により前記情報が記憶されていると判定された場合に、前記データを取り出す命令を却下する処理をさらに実行させることを特徴とする請求項１〜３のいずれか一つに記載の情報処理プログラム。
【請求項５】
前記コンピュータに、前記データを取り出す命令を却下した場合に、該命令が却下された旨を記録する処理をさらに実行させることを特徴とする請求項４に記載の情報処理プログラム。
【請求項６】
前記記録する処理は、前記命令が却下された旨を記録した場合に、該命令に含まれるデータ形式と同一のデータ形式を含む前記命令の記録を所定時間抑止することを特徴とする請求項５に記載の情報処理プログラム。
【請求項７】
前記コンピュータに、前記判定する処理により前記情報が記憶されていると判定された場合に、前記データを取り出す命令を実行するとともに、該命令が実行された旨を記録する処理をさらに実行させることを特徴とする請求項１〜３のいずれか一つに記載の情報処理プログラム。
【請求項８】
前記コンピュータに、前記判定する処理により前記情報が記憶されていると判定された場合に、前記データを取り出す命令により取り出される該データを記録する処理をさらに実行させることを特徴とする請求項１〜７のいずれか一つに記載の情報処理プログラム。
【請求項９】
データを複写する命令の入力を受付ける受付部と、
コンピュータが実行する複数のアプリケーションで共有される記憶領域に、複写された前記データを、該データを複写する命令の入力を受付けたコンピュータ環境を示す情報とともに格納する格納部と、
前記記憶領域からデータを取り出す命令が発生した場合に、前記コンピュータ環境を示す情報に基づいて、前記取り出す命令を実行するか否かを判定する判定部と
を備えることを特徴とする情報処理装置。
【請求項１０】
コンピュータにより実行される情報処理方法であって、
データを複写する命令の入力を受付け、
前記コンピュータが実行する複数のアプリケーションで共有される記憶領域に、複写された前記データを、該データを複写する命令の入力を受付けたコンピュータ環境を示す情報とともに格納し、
前記記憶領域からデータを取り出す命令が発生した場合に、前記コンピュータ環境を示す情報に基づいて、前記取り出す命令を実行するか否かを判定する
ことを特徴とする情報処理方法。
【請求項１１】
コンピュータに、
仮想環境におけるデータのコピーの指示に応じてクリップボードに格納したデータについての前記仮想環境へのペースト指示を受けると、前記仮想環境へのペースト処理を実行し、前記仮想環境とは異なる物理環境へのペースト指示を受けると、前記物理環境へのペースト処理を抑制する、
処理を実行させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理プログラム、情報処理装置及び情報処理方法に関する。
【背景技術】
【０００２】
近年、仮想環境を利用したコンピュータ処理や、遠隔地にあるリモートコンピュータを操作するコンピュータ処理が広く行われている。つまり、物理的に操作されるローカルコンピュータとは異なる環境に存在する情報を、ローカルコンピュータのハードウェアを用いて処理することが行われている。
【０００３】
ここで、コンピュータを動作させるオペレーティングシステムには、異なるアプリケーションの間で情報の受け渡しを可能にするクリップボードと呼ばれる機能が備わっており、上述した処理においても利用されている。例えば、リモートコンピュータ上のアプリケーションとローカルコンピュータ上のアプリケーションとの間でも情報の受け渡しが行われている。しかし、この場合、リモートコンピュータの情報がローカルコンピュータから漏洩する危険性が生じてしまう。そこで、この危険性を軽減するために、例えば、リモートコンピュータが起動した時点でクリップボードに関する機能の全てを禁止する技術が存在する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−２１７４４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記の従来技術では、利便性が低下してしまうという問題があった。例えば、リモートコンピュータ上に存在するアプリケーションの間で情報の受け渡しが行われても、リモートコンピュータの情報がローカルコンピュータから漏洩する危険性は生じない。また、例えば、ローカルコンピュータ上に存在するアプリケーションの間で情報の受け渡しが行われても、リモートコンピュータの情報がローカルコンピュータから漏洩する危険性は生じない。このように、上記の従来技術は、情報漏洩の危険性が生じない場面があるにもかかわらず、情報の受け渡しを禁止してしまうため、利便性が低下していた。
【０００６】
開示の技術は、上記に鑑みてなされたものであって、利便性の低下を防ぎつつ情報漏洩を防ぐことができる情報処理プログラム、情報処理装置及び情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本願の開示する情報処理プログラムは、一つの態様において、受付ける処理と、格納する処理と、判定する処理とをコンピュータに実行させる。受付ける処理は、データを複写する命令の入力を受付ける。格納する処理は、コンピュータが実行する複数のアプリケーションで共有される記憶領域に、複写されたデータを、そのデータを複写する命令の入力を受付けたコンピュータ環境を示す情報とともに格納する。判定する処理は、記憶領域からデータを取り出す命令が発生した場合に、コンピュータ環境を示す情報に基づいて、取り出す命令を実行するか否かを判定する。
【発明の効果】
【０００８】
本願の開示する技術の一つの態様によれば、利便性の低下を防ぎつつ情報流出を防ぐことができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施例１に係る情報処理システムの構成の一例を示すブロック図である。
【図２】図２は、クライアント端末が表示する画面の一例を示す図である。
【図３】図３は、実施例１に係るクライアント端末の機能構成の一例を示すブロック図である。
【図４】図４は、クリップボードに格納されるクリップボード情報のデータ構造の一例を示す図である。
【図５】図５は、ログ情報の一例を示す図である。
【図６】図６は、実施例１に係るＶＭの機能構成の一例を示すブロック図である。
【図７】図７は、実施例１に係る監視アプリの処理手順を示すフローチャートである。
【図８】図８は、実施例１に係る監視アプリの処理手順を示すフローチャートである。
【図９】図９は、実施例１に係る情報処理システムの動作例について説明するための図である。
【図１０】図１０は、実施例２に係る情報処理システムの動作例について説明するための図である。
【図１１】図１１は、実施例３に係る情報処理システムの動作例について説明するための図である。
【図１２】図１２は、情報処理プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１０】
以下に、本願の開示する情報処理プログラム、情報処理装置及び情報処理方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１１】
実施例１に係る情報処理システムの構成について説明する。図１は、実施例１に係る情報処理システムの構成の一例を示すブロック図である。図１に示すように、情報処理システム１は、データセンタ１０と、クライアント端末１００とを有する。データセンタ１０及びクライアント端末１００は、ネットワーク５を介して相互に通信可能に接続される。かかるネットワーク５には、有線または無線を問わず、インターネット（Internet）、ＬＡＮ（Local  Area  Network）やＶＰＮ（Virtual  Private  Network）などの任意の種類の通信網を採用できる。なお、ここでは、１つのデータセンタと、１つのクライアント端末とをそれぞれ図示したが、開示のシステムは図示の構成に限定されない。すなわち、情報処理システム１は、任意の数のデータセンタと、任意の数のクライアント端末とを収容できる。
【００１２】
データセンタ１０は、サーバ装置１１ａ，１１ｂ・・・を有する。サーバ装置１１ａは、通信制御部１２ａと、ハイパーバイザ１３ａとを有する。通信制御部１２ａは、データセンタ１０とクライアント端末１００との間で送受信される各種情報に関する通信を制御する。例えば、通信制御部１２ａは、ＮＩＣ（Network  Interface  Card）である。ハイパーバイザ１３ａは、仮想的なコンピュータである仮想マシン（ＶＭ：Virtual  Machine）を実現するプログラムである。例えば、サーバ装置１１ａは、ハイパーバイザ１３ａ上で独自のオペレーティングシステム（ＯＳ：Operating  System）を動作させることで、ＶＭ２００ａのコンピュータ環境を実現させる。コンピュータ環境は、ＯＳ毎に実現される。つまり、ＯＳが異なる場合には、異なるコンピュータ環境として認識される。なお、仮想マシンの実現は、ハイパーバイザを用いた方法に限定されるものではない。例えば、サーバ装置１１ａは、ホストＯＳ上で仮想化ソフトを実行し、そこで仮想マシンを実現する方法を用いても良い。また、サーバ装置１１ｂは、通信制御部１２ｂと、ハイパーバイザ１３ｂとを有する。通信制御部１２ｂ及びハイパーバイザ１３ｂの説明は、通信制御部１２ａ及びハイパーバイザ１３ａの説明とそれぞれ同様である。例えば、サーバ装置１１ｂは、ハイパーバイザ１３ｂ上で２つのＯＳを動作させることで、ＶＭ２００ｂ及びＶＭ２００ｃのコンピュータ環境をそれぞれ実現させる。なお、ここでは、サーバ装置１１ａ，１１ｂ・・・を区別なく述べる場合にサーバ装置１１と総称する。また、ＶＭ２００ａ，２００ｂ，２００ｃ・・・を区別なく述べる場合にＶＭ２００と総称する。
【００１３】
例えば、データセンタ１０のサーバ装置１１は、後述するクライアント端末１００から利用者により入力された入力情報を受信し、受信した入力情報に応じたＶＭ２００の処理を実行する。また、例えば、データセンタ１０のサーバ装置１１は、処理が実行されたＶＭ２００のデスクトップ画面の情報をクライアント端末１００に送信する。
【００１４】
クライアント端末１００は、利用者により利用される端末装置であり、例えば、パーソナルコンピュータやＰＤＡ（Personal  Digital  Assistant）などのコンピュータシステムに対応する。例えば、クライアント端末１００は、独立したＯＳを動作させることで、クライアント端末１００のコンピュータ環境を実現させる。
【００１５】
例えば、クライアント端末１００は、データセンタ１０のサーバ装置１１からＶＭ２００のデスクトップ画面の情報を受信し、受信したＶＭ２００のデスクトップ画面を表示する。また、例えば、クライアント端末１００は、表示したＶＭ２００のデスクトップ画面を介して利用者による入力を受け付けると、入力された入力情報をデータセンタ１０のサーバ装置１１に送信する。
【００１６】
図２を用いて、クライアント端末１００が表示する画面の一例について説明する。図２は、クライアント端末が表示する画面の一例を示す図である。図２に示すように、例えば、クライアント端末１００は、画面２ａを表示する。この画面２ａは、領域２ｂと、領域２ｃとを含む。このうち、領域２ｂは、クライアント端末１００のデスクトップ画面に対応する。例えば、クライアント端末１００が領域２ｂを介して利用者による入力を受け付けると、入力に応じた処理がクライアント端末１００のコンピュータ環境において実行される。また、領域２ｃは、ＶＭ２００のデスクトップ画面に対応する。例えば、クライアント端末１００が領域２ｃを介して利用者による入力を受け付けると、入力に応じた処理がＶＭ２００のコンピュータ環境において実行される。
【００１７】
なお、実施例では、クライアント端末１００のコンピュータ環境を「物理環境」とも称し、ＶＭ２００のコンピュータ環境を「仮想環境」とも称する。つまり、物理環境と仮想環境とは、異なるコンピュータ環境である。また、具体的には、ＶＭ２００ａにより実現される仮想環境と、ＶＭ２００ｂにより実現される仮想環境とについても、異なるコンピュータ環境であると言える。
【００１８】
ここで、例えば、情報処理システム１において実現されるコンピュータ環境では、文書作成ソフトや表計算ソフトなどのアプリケーションが動作する。また、例えば、情報処理システム１において動作するＯＳは、異なるアプリケーションの間で情報の受け渡しを可能にするクリップボードに関する機能を備える。なお、以下では、アプリケーションを「アプリ」とも称する。
【００１９】
次に、実施例１に係るクライアント端末の機能構成について説明する。図３は、実施例１に係るクライアント端末の機能構成の一例を示すブロック図である。図３に示すように、クライアント端末１００は、入力部１０１と、出力部１０２と、通信制御部１０３と、記憶部１１０と、制御部１２０とを備える。
【００２０】
入力部１０１は、各種情報の入力を受け付ける入力装置であり、例えば、キーボードやマウスなどに対応する。例えば、入力部１０１は、出力部１０２に表示されたクライアント端末１００のデスクトップ画面、及びサーバ装置１１から送信されたＶＭ２００が生成したデスクトップ画面を介して利用者による入力を受け付ける。例えば、入力部１０１は、データを複写する命令の入力を利用者から受け付ける。
【００２１】
出力部１０２は、各種情報を表示する出力装置であり、例えば、ディスプレイやモニタなどに対応する。例えば、出力部１０２は、クライアント端末１００及びＶＭ２００のデスクトップ画面を表示する。
【００２２】
通信制御部１０３は、ネットワーク５を介して送受信される各種情報に関する通信を制御する装置であり、例えば、ＮＩＣに対応する。例えば、通信制御部１０３は、ＶＭ２００のデスクトップ画面を介して入力された入力情報を、データセンタ１０のサーバ装置１１に送信する。また、例えば、通信制御部１０３は、処理が実行されたＶＭ２００のデスクトップ画面の情報をデータセンタ１０のサーバ装置１１から受信する。
【００２３】
記憶部１１０は、クリップボード情報１１１と、ログ情報１１２と、原本情報１１３と、ＶＭ情報１１４とを記憶する。例えば、記憶部１１０は、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ（Flash  Memory）などの半導体メモリ素子、ハードディスクや光ディスクなどの記憶装置に対応する。
【００２４】
クリップボード情報１１１は、種々のアプリケーションで利用されるデータを記憶する。例えば、クリップボード情報１１１は、記憶部１１０において、後述する制御部１２０が利用可能な共有メモリの領域に記憶される。なお、以下、共有メモリの領域をクリップボードとも称する。図４は、クリップボードに格納されるクリップボード情報のデータ構造の一例を示す図である。図４に示すように、例えば、クリップボード情報１１１は、「データ形式」と、「データ」とを有する。このうち、データ形式は、クリップボード情報１１１のデータの形式を示す。例えば、データ形式は、「テキスト」や「ＲＧＢ（Red  Green  Blue）」、「ビットマップ」などを含む。データは、各種データを示す。例えば、「１００」や「（２５５，０，０）」などを含む。なお、クリップボードは、コンピュータが実行する複数のアプリケーションで共有される記憶領域の一例である。例えば、クライアント端末１００のクリップボードは、記憶部１１０の記憶領域に存在する。
【００２５】
図４に示すように、例えば、クリップボード情報１１１は、データ形式「テキスト」と、データ「１００」とを含む。つまり、クリップボード情報１１１は、「１００」というテキストデータを含む。また、クリップボード情報１１１は、他のデータについても同様である。
【００２６】
ログ情報１１２は、利用者による操作の記録を示す情報である。例えば、ログ情報１１２は、利用者により行われたクリップボードに関する操作の記録である。図５は、ログ情報の一例を示す図である。図５に示すように、ログ情報１１２は、「名称」と、「発生日時」と、「区分」と、「付帯」と、「内容」と、「備考」とを対応付けた情報を含む。このうち、名称は、情報処理システム１において実現されるコンピュータ環境の名称を示す情報である。発生日時は、該当する操作が行われた日時を示す情報である。区分は、該当する操作の区分を示す情報である。付帯は、該当する操作に関する情報の原本を取得したか否かを示す情報である。例えば、付帯「取得」は、該当する操作に関する元の情報を取得したことを示し、付帯「ｎｕｌｌ」は、取得していないことを示す。内容は、該当する操作の内容の概要である。備考は、該当する操作に関するその他の情報を含む。なお、「ｎｕｌｌ」は、空欄であることを示す。
【００２７】
図５に示すように、例えば、ログ情報１１２は、名称「ＰＣ００１」と、発生日時「２０１１／１／１９  １８：２５」と、区分「違反」と、付帯「ｎｕｌｌ」と、内容「クリップボード操作を禁止しました・・・」と、備考「・・・」とを対応付けて記憶する。つまり、ログ情報１１２は、２０１１年１月１９日１８時２５分に、ＰＣ００１というコンピュータ環境において、クリップボードに関する操作が禁止され、備考には「・・・」が格納されていることを記憶する。また、ログ情報１１２は、他の操作に関する記録を含む。
【００２８】
原本情報１１３は、クリップボードに関する操作の対象となる元の情報である。例えば、原本情報１１３は、利用者による操作の記録がログ情報１１２として記録される際に、その操作の対象としてクリップボードに記憶された情報を原本として保管したものである。
【００２９】
ＶＭ情報１１４は、ＶＭ２００のデスクトップ画面の情報である。例えば、ＶＭ情報１１４は、データセンタ１０のサーバ装置１１から受信された情報である。また、ＶＭ情報１１４は、例えば、後述する画面生成部１２３により出力部１０２に図２の領域２ｃとして表示される。例えば、ＶＭ情報１１４は、サーバ装置１１で処理された結果である文書や表計算として表示される。
【００３０】
図３の説明に戻る。制御部１２０は、画面生成部１２３と、監視部１２５とを有する。制御部１２０の機能は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などの集積回路により実現することができる。また、制御部１２０の機能は、例えば、ＣＰＵ（Central  Processing  Unit）が所定のプログラムを実行することで実現することができる。所定のプログラムとは、例えばＯＳ、文書作成ソフトや表計算ソフトなどのアプリ、後述する監視アプリである。
【００３１】
制御部１２０は、コンピュータシステム全体を管理する基本ソフトウェアであるＯＳの実行を制御する。例えば、制御部１２０は、画面生成部１２３のプロセスを管理する処理を実行する。
【００３２】
また、制御部１２０は、例えば、クリップボードの利用に関する機能を有する。この機能は、例えば、命令や関数の集合であるＡＰＩ（Application  Program  Interface）として提供される。例えば、制御部１２０は、クリップボードにデータを格納する命令である「ＳｅｔＣｌｉｐｂｏａｒｄ」や、クリップボードからデータを取り出す命令である「ＧｅｔＣｌｉｐｂｏａｒｄ」というＡＰＩを提供する。なお、以下では、「ＳｅｔＣｌｉｐｂｏａｒｄ」を「Ｓｅｔ」とも称し、「ＧｅｔＣｌｉｐｂｏａｒｄ」を「Ｇｅｔ」とも称する。
【００３３】
制御部１２０は、例えば、文書作成ソフトや表計算ソフトなどのアプリの実行を制御する。例えば、制御部１２０は、クリップボードにデータを複製する命令の入力を利用者から受け付けた場合に、アプリがＳｅｔを呼び出すことで、クリップボードにデータを格納する。
【００３４】
例えば、表計算ソフトにおいて、数式「＝Ａ＋Ｂ」が設定され、その値としてテキスト「１００」が赤い文字で表示されたセルに対して、「コピー」の指示を利用者から受け付けた場合を説明する。この場合、例えば、制御部１２０は、ＯＳがＳｅｔを呼び出すことで、図４のように、クリップボードに、テキスト「１００」と、ＲＧＢ「（２５５，０，０）」と、数式「＝Ａ＋Ｂ」とを格納する。また、例えば、表計算ソフトのセルに「ペースト」の指示を利用者から受け付けた場合を説明する。この場合、例えば、制御部１２０は、Ｇｅｔを呼び出すことで、図４のクリップボードから、テキスト「１００」と、ＲＧＢ「（２５５，０，０）」と、数式「＝Ａ＋Ｂ」とを取り出し、セルに貼り付ける。なお、Ｇｅｔを１回呼び出すことでクリップボードから取り出されるデータの数は１つであるので、３つのデータを取り出すためにはＧｅｔを３回呼び出すこととなる。
【００３５】
画面生成部１２３は、ネットワーク５を介して送受信される情報を閲覧するためのアプリの実行を制御する。例えば、画面生成部１２３は、図２の領域２ｃを介して利用者による入力を受け付けると、入力された入力情報をデータセンタ１０のサーバ装置１１に送信する。また、例えば、画面生成部１２３は、データセンタ１０のサーバ装置１１からＶＭ情報１１４を受信し、受信したＶＭ情報１１４を記憶部１１０に格納する。また、例えば、画面生成部１２３は、ＶＭ情報１１４を出力部１０２に表示する。例えば、画面生成部１２３は、ＶＭ情報１１４を図２に示した領域２ｃとして表示する。
【００３６】
また、制御部１２０は、クリップボードに格納されたデータを、異なるコンピュータ環境の間で共有するアプリケーションプロセスを実行する。なお、当該アプリケーションプロセスを、クリップボードプロセスとも称する。例えば、制御部１２０は、クリップボードにデータを格納する命令が発生した場合に、その命令により格納されるデータが存在するコンピュータ環境が自身のコンピュータ環境であれば、そのデータを他のコンピュータ環境に転送する。例えば、制御部１２０は、ＯＳがＳｅｔを呼び出した場合に、Ｓｅｔにより格納されるデータを、通信制御部１０３を介してＶＭ２００に転送する。
【００３７】
また、例えば、制御部１２０は、他のコンピュータ環境のクリップボードプロセスからデータを受信すると、自身のコンピュータ環境のクリップボードプロセスがＳｅｔを呼び出し、受信したデータをクリップボードに格納する。例えば、制御部１２０は、後述する制御部２２０により実行されるクリップボードプロセスからデータを受信すると、制御部１２０により実行されるクリップボードプロセスがＳｅｔを呼び出し、受信したデータを記憶部１１０のクリップボードに格納する。
【００３８】
監視部１２５は、監視アプリの実行を制御する処理部である。監視部１２５の機能は、例えば、情報処理プログラムがクライアント端末１００にインストールされ、ＣＰＵにより実行されることにより実現される。図３に示すように、例えば、監視部１２５は、格納部１２５ａと、判定部１２５ｂと、実行部１２５ｃとを有する。
【００３９】
格納部１２５ａは、クリップボードにデータを格納する命令が発生した場合に、該データが存在するコンピュータ環境が他のコンピュータ環境であれば、他のコンピュータ環境である旨を示す情報を所定の記憶領域に格納する。例えば、格納部１２５ａは、制御部１２０がＳｅｔを呼び出した場合に、格納されるデータの転送元のＰＣ名をクリップボードに格納する。例えば、図２の仮想環境において「コピー」の指示を利用者から受け付けた場合を説明する。この場合、格納部１２５ａは、図４に示すように、仮想環境を実現するＶＭ２００のＰＣ名である「ＶＰＣ００２」と、データ形式「ＰＣ名」とを対応付けて記憶部１１０のクリップボードに格納する。なお、ここでは、他のコンピュータ環境である旨を示す情報として転送元のＰＣ名を用いる場合を説明したが、これに限定されるものではない。例えば、格納部１２５ａは、クリップボードに他のコンピュータ環境である旨を示すフラグを設定することとしても良い。例えば、格納部１２５ａは、制御部１２０がＳｅｔを呼び出した場合に、データ形式「フラグ」と、データ「１」とを対応付けてクリップボードに格納する。
【００４０】
判定部１２５ｂは、クリップボードからデータを取り出す命令が発生した場合に、所定の記憶領域に他のコンピュータ環境である旨を示す情報が記憶されているか否かを判定する。例えば、判定部１２５ｂは、制御部１２０がＧｅｔを呼び出した場合に、記憶部１１０のクリップボードに転送元のＰＣ名が記憶されているか否かを判定する。例えば、判定部１２５ｂは、制御部１２０がＧｅｔを呼び出した場合に、図４に示したクリップボードにＰＣ名が記憶されているか否かを判定する。また、例えば、判定部１２５ｂは、判定結果を実行部１２５ｃに出力する。
【００４１】
実行部１２５ｃは、判定部１２５ｂにより他のコンピュータ環境である旨を示す情報が記憶されていないと判定された場合に、データを取り出す命令を実行する。例えば、実行部１２５ｃは、記憶部１１０のクリップボードにＰＣ名が記憶されていない場合に、そのクリップボードからデータを取り出す。
【００４２】
また、実行部１２５ｃは、判定部１２５ｂにより他のコンピュータ環境である旨を示す情報が記憶されていると判定された場合に、データを取り出す命令を却下する。例えば、実行部１２５ｃは、記憶部１１０のクリップボードにＰＣ名が記憶されている場合に、制御部１２０が呼び出したＧｅｔをリジェクトする。
【００４３】
また、実行部１２５ｃは、データを取り出す命令を却下した場合に、その命令が却下された旨を記録する。例えば、実行部１２５ｃは、制御部１２０が呼び出したＧｅｔをリジェクトした場合に、その旨をログ情報１１２として記録する。例えば、２０１１年１月１９日１８時２５分に、ＰＣ００１というコンピュータ環境においてＧｅｔをリジェクトした場合を説明する。この場合、図５に示すように、例えば、実行部１２５ｃは、名称「ＰＣ００１」と、発生日時「２０１１／１／１９  １８：２５」と、区分「違反」と、内容「クリップボード操作を禁止しました・・・」と、備考「・・・」とを対応付けて記録する。
【００４４】
また、実行部１２５ｃは、データを取り出す命令が却下された旨を記録した場合に、その命令に含まれるデータ形式と同一のデータ形式を含む命令の記録を所定時間抑止する。例えば、実行部１２５ｃは、データ形式「テキスト」を取り出す命令をリジェクトし、その旨をログ情報１１２として記録した場合には、データ形式「テキスト」を取り出す命令をリジェクトした旨の記録を３秒間抑止する。これは、所定の命令がリジェクトされた場合に、リトライを実行するアプリが存在する場合があるからである。つまり、リトライが実行されることにより、同一の記録がログ情報１１２として記録されることを抑止することを趣旨とする。なお、ここでは、所定時間として３秒を設定した場合を説明したが、これに限定されるものではない。例えば、所定時間は、クライアント端末１００を利用する利用者が任意の値に設定して良い。
【００４５】
また、実行部１２５ｃは、判定部１２５ｂにより他のコンピュータ環境である旨を示す情報が記憶されていると判定された場合に、データを取り出す命令を実行するとともに、その命令が実行された旨を記録する。例えば、実行部１２５ｃは、クリップボードにＰＣ名が記憶されている場合に、記憶部１１０のクリップボードからデータを取り出すとともに、その旨をログ情報１１２として記録する。
【００４６】
また、実行部１２５ｃは、判定部１２５ｂにより他のコンピュータ環境である旨を示す情報が記憶されていると判定された場合に、データを取り出す命令により取り出されるデータを記録する。例えば、実行部１２５ｃは、記憶部１１０のクリップボードにＰＣ名が記憶されている場合に、そのクリップボードに格納されたデータを原本情報１１３として記録する。
【００４７】
次に、実施例１に係るＶＭの機能構成について説明する。図６は、実施例１に係るＶＭの機能構成の一例を示すブロック図である。図６に示すように、ＶＭ２００は、記憶部２１０と、制御部２２０とを備える。例えば、記憶部２１０は、サーバ装置１１のメモリにおける所定領域を、ハイパーバイザ１３がＶＭ２００のために割り当てることにより実現される仮想メモリである。また、例えば、制御部２２０は、サーバ装置１１のプロセッサにおける所定処理能力を、ハイパーバイザ１３がＶＭ２００のために割り当てることにより実現される仮想プロセッサである。
【００４８】
記憶部２１０は、クリップボード情報２１１と、ログ情報２１２と、原本情報２１３とを有する。このうち、クリップボード情報２１１、ログ情報２１２及び原本情報２１３の説明は、図３に示したクリップボード情報１１１、ログ情報１１２及び原本情報１１３の説明とそれぞれ同様である。また、例えば、ＶＭ２００のクリップボードは、記憶部２１０の記憶領域に存在する。
【００４９】
制御部２２０は、監視部２２４を有する。また、例えば、制御部２２０は、制御部１２０と同様に、コンピュータシステム全体を管理する基本ソフトウェアであるＯＳの実行を制御する。また、例えば、制御部２２０は、制御部１２０と同様に、クリップボードの利用に関する機能を有する。また、例えば、制御部２２０は、制御部１２０と同様に、クリップボードに格納されたデータを、異なるコンピュータ環境の間で共有するアプリケーションプロセスを実行する。
【００５０】
監視部２２４は、監視アプリの実行を制御する処理部である。監視部２２４は、格納部２２４ａと、判定部２２４ｂと、実行部２２４ｃとを有する。このうち、格納部２２４ａと、判定部２２４ｂ及び実行部２２４ｃの説明は、格納部１２５ａ、判定部１２５ｂ及び実行部１２５ｃの説明とそれぞれ同様である。
【００５１】
次に、実施例１に係る監視部の処理手順について説明する。図７及び図８は、実施例１に係る監視部の処理手順を示すフローチャートである。図７及び図８に示す処理は、例えば、図示した各装置に電源から電力が供給される間、所定時間間隔で実行される。なお、以下の説明ではクライアント端末１００における監視部１２５の処理手順について説明するが、ＶＭ２００における監視部２２４の処理手順も同様の処理を実行する。
【００５２】
図７に示すように、クリップボードプロセスによりＳｅｔが呼び出されると（ステップＳ１０１Ｙｅｓ）、格納部１２５ａは、格納されるデータの転送元のＰＣ名をクリップボードに格納する（ステップＳ１０２）。
【００５３】
図８に示すように、クリップボードプロセスによりＧｅｔが呼び出されると（ステップＳ２０１Ｙｅｓ）、判定部１２５ｂは、クリップボードに転送元のＰＣ名が記憶されているか否かを判定する（ステップＳ２０２）。
【００５４】
クリップボードにＰＣ名が記憶されている場合には（ステップＳ２０２Ｙｅｓ）、実行部１２５ｃは、クリップボードプロセスが呼び出したＧｅｔをリジェクトする（ステップＳ２０３）。一方、クリップボードにＰＣ名が記憶されていない場合には（ステップＳ２０２Ｎｏ）、クリップボードプロセスが呼び出したＧｅｔが実行される。
【００５５】
次に、実施例１に係る情報処理システムの動作例について説明する。図９は、実施例１に係る情報処理システムの動作例について説明するための図である。図９に示す例では、仮想環境において利用者から「コピー」の指示を受け付けた場合を説明する。なお、ここでは、一例として、仮想環境において利用者から「コピー」の指示を受け付けた場合を説明するが、これに限定されるものではない。例えば、物理環境において利用者から「コピー」の指示を受け付けた場合にも、情報処理システムは同様に動作する。なお、ここでは、仮想環境を実現するＶＭ２００のＰＣ名を「ＶＰＣ００２」とし、物理環境を実現するクライアント端末１００のＰＣ名を「ＰＣ００１」とする。
【００５６】
図９に示すように、仮想環境において、データを複写する命令の入力を利用者から受け付けると（Ｓ１１）、ＶＰＣ００２側のアプリは、Ｓｅｔを呼び出し、Ｓｅｔの対象となるデータをＶＰＣ００２側のクリップボードに格納する（Ｓ１２）。ＶＰＣ００２側のクリップボードプロセスは、自環境においてＳｅｔが呼び出されると、Ｓｅｔにより格納されるデータをクライアント端末１００「ＰＣ００１」に転送する（Ｓ１３）。
【００５７】
物理環境において、ＰＣ００１側のクリップボードプロセスは、ＶＰＣ００２側のクリップボードプロセスからデータを受信すると、Ｓｅｔを呼び出し、Ｓｅｔの対象となるデータをＰＣ００１側のクリップボードに格納する（Ｓ１４）。格納部１２５ａは、ＰＣ００１側のクリップボードプロセスがＳｅｔを呼び出すと、Ｓｅｔの対象となるデータの転送元のＰＣ名「ＶＰＣ００２」をクリップボードに格納する（Ｓ１５）。
【００５８】
ここで、物理環境において、利用者から「ペースト」の指示を受け付けると（Ｓ１６）、ＰＣ００１側のアプリは、Ｇｅｔを呼び出す（Ｓ１７）。判定部１２５ｂは、ＰＣ００１側のクリップボードを参照し、クリップボードに転送元のＰＣ名「ＶＰＣ００２」が記憶されていると判定する（Ｓ１８）。
【００５９】
ＰＣ００１側のクリップボードにＰＣ名「ＶＰＣ００２」が記憶されているので、実行部１２５ｃは、ＰＣ００１側のアプリが呼び出したＧｅｔをリジェクトし、ＰＣ００１側のクリップボードに格納されたデータを原本情報１１３として記録する（Ｓ１９）。なお、利用者の設定に応じて、実行部１２５ｃは、Ｓ１９の処理に代えてＳ２０の処理を実行しても良い。つまり、実行部１２５ｃは、ＰＣ００１側のアプリがクリップボードからデータを取り出して貼り付ける際に、その旨をログ情報１１２として記録しても良い。
【００６０】
一方、仮想環境において、利用者から「ペースト」の指示を受け付けると（Ｓ２１）、ＶＰＣ００２側のアプリは、Ｇｅｔを呼び出す（Ｓ２２）。判定部２２４ｂは、ＶＰＣ００２側のクリップボードを参照し、クリップボードに他のＰＣ名が記憶されていないと判定する（Ｓ２３）。ＶＰＣ００２側のクリップボードに他のＰＣ名が記憶されていないので、ＶＰＣ００２側のアプリは、クリップボードからデータを取り出し、ペーストを実行する（Ｓ２４）。
【００６１】
次に、実施例１に係るクライアント端末１００の効果について説明する。クライアント端末１００は、クリップボードにデータを格納する命令が発生した場合に、そのデータが存在するコンピュータ環境が他のコンピュータ環境であれば、他のコンピュータ環境である旨を示す情報を所定の記憶領域に格納する。クライアント端末１００は、クリップボードからデータを取り出す命令が発生した場合に、所定の記憶領域に他のコンピュータ環境である旨を示す情報が記憶されているか否かを判定する。クライアント端末１００は、他のコンピュータ環境である旨を示す情報が記憶されていないと判定された場合に、データを取り出す命令を実行する。このため、クライアント端末１００は、利便性の低下を防ぎつつ情報漏洩を防ぐことができる。
【００６２】
例えば、クライアント端末１００は、リモートコンピュータ上に存在するアプリケーションの間では、コピー及びペーストによる情報の受け渡しを実行する。また、例えば、クライアント端末１００は、ローカルコンピュータ上に存在するアプリケーションの間では、コピー及びペーストによる情報の受け渡しを実行する。このように、リモートコンピュータとローカルコンピュータの間における情報の受け渡しによる情報漏洩の危険性が生じない場合には、クライアント端末１００は、コピー及びペーストによる情報の受け渡しを実行する。このため、クライアント端末１００は、利便性の低下を防ぎつつ情報漏洩を防ぐことができる。
【００６３】
例えば、クライアント端末１００は、他のコンピュータ環境である旨を示す情報を自環境のクリップボードに格納する。クリップボードは、前回クリップボードに格納されていたデータを、Ｓｅｔを呼び出されるごとに削除するという特徴を有する。このため、クライアント端末１００は、他のコンピュータ環境でＳｅｔが呼び出された場合にのみ、他のコンピュータ環境である旨を示す情報を自環境のクリップボードに格納することとなる。このようなことから、クライアント端末１００は、他のコンピュータ環境である旨を示す情報が記憶されているか否かを判定することで、異なるコンピュータ環境における情報の受け渡しか否かを判定することができる。
【００６４】
また、例えば、クライアント端末１００は、他のコンピュータ環境である旨を示す情報が記憶されていると判定された場合に、データを取り出す命令を却下する。このように、リモートコンピュータとローカルコンピュータの間における情報の受け渡しによる情報漏洩の危険性が生じてしまう場合には、クライアント端末１００は、コピー及びペーストによる情報の受け渡しを却下する。このため、クライアント端末１００は、利便性の低下を防ぎつつ情報漏洩を防ぐことができる。
【００６５】
また、例えば、クライアント端末１００は、データを取り出す命令を却下した場合に、その命令が却下された旨を記録するので、利便性の低下を防ぎつつ情報漏洩を防ぐことができる。
【００６６】
また、例えば、クライアント端末１００は、データを取り出す命令が却下された旨を記録した場合に、その命令に含まれるデータ形式と同一のデータ形式を含む命令の記録を所定時間抑止する。このため、クライアント端末１００は、リトライが実行されることにより、同一の記録がログ情報１１２として記録されることを抑止することができる。
【００６７】
また、例えば、クライアント端末１００は、他のコンピュータ環境である旨を示す情報が記憶されていると判定された場合に、データを取り出す命令を実行するとともに、その命令が実行された旨を記録する。このため、クライアント端末１００は、利便性の低下を防ぎつつ情報漏洩を防ぐことができる。
【００６８】
また、例えば、クライアント端末１００は、他のコンピュータ環境である旨を示す情報が記憶されていると判定された場合に、データを取り出す命令により取り出されるデータを記録する。このため、クライアント端末１００は、情報漏洩の可能性のあるデータを後で参照することができる。
【実施例２】
【００６９】
実施例１では、仮想環境と物理環境の双方に情報処理プログラムがインストールされる場合を説明したが、これに限定されるものではない。例えば、異なるコンピュータ環境においてコピーされたデータがペーストされる側のコンピュータ環境に情報処理プログラムがインストールされていれば良い。そこで、実施例２では、物理環境に情報処理プログラムがインストールされている場合に、仮想環境において利用者から「コピー」の指示を受け付ける場合を説明する。
【００７０】
まず、実施例２に係るクライアント端末の機能構成について説明する。実施例２に係るクライアント端末１００は、図３に示したクライアント端末１００と同様に、入力部１０１と、出力部１０２と、通信制御部１０３と、記憶部１１０と、制御部１２０とを備える。ここで、入力部１０１、出力部１０２、通信制御部１０３、記憶部１１０及び制御部１２０の説明は、図３に示した入力部１０１、出力部１０２、通信制御部１０３、記憶部１１０及び制御部１２０の説明と同様である。
【００７１】
次に、実施例２に係るＶＭの機能構成について説明する。実施例２に係るＶＭ２００は、図６に示したＶＭ２００と同様に、記憶部２１０と、制御部２２０とを有する。このうち、記憶部２１０の説明は、図６に示した記憶部２１０の説明と同様である。
【００７２】
制御部２２０は、監視部２２４を有しない。なお、制御部２２０の説明は、制御部２２０が監視部２２４を有しないこと以外には、図６に示した制御部２２０の説明と同様である。すなわち、例えば、制御部２２０は、制御部１２０と同様に、コンピュータシステム全体を管理する基本ソフトウェアであるＯＳの実行を制御する。また、例えば、制御部２２０は、制御部１２０と同様に、クリップボードの利用に関する機能を有する。また、例えば、制御部２２０は、制御部１２０と同様に、クリップボードに格納されたデータを、異なるコンピュータ環境の間で共有するアプリケーションプロセスを実行する。
【００７３】
次に、実施例２に係る情報処理システムの動作例について説明する。図１０は、実施例１に係る情報処理システムの動作例について説明するための図である。なお、ここでは、仮想環境を実現するＶＭ２００のＰＣ名を「ＶＰＣ００２」とし、物理環境を実現するクライアント端末１００のＰＣ名を「ＰＣ００１」とする。
【００７４】
図１０に示すように、仮想環境において、データを複写する命令の入力を利用者から受け付けると（Ｓ１１）、ＶＰＣ００２側のアプリは、Ｓｅｔを呼び出し、Ｓｅｔの対象となるデータをＶＰＣ００２側のクリップボードに格納する（Ｓ１２）。ＶＰＣ００２側のクリップボードプロセスは、自環境においてＳｅｔが呼び出されると、Ｓｅｔにより格納されるデータをクライアント端末１００「ＰＣ００１」に転送する（Ｓ１３）。
【００７５】
物理環境において、制御部１２０は、クリップボードプロセス２２３からデータを受信すると、Ｓｅｔを呼び出し、Ｓｅｔの対象となるデータをクリップボード情報１１１に格納する（Ｓ１４）。格納部１２５ａは、制御部１２０がＳｅｔを呼び出すと、Ｓｅｔの対象となるデータの転送元のＰＣ名「ＶＰＣ００２」をクリップボード情報１１１に格納する（Ｓ１５）。
【００７６】
ここで、物理環境において、利用者から「ペースト」の指示を受け付けると（Ｓ１６）、ＰＣ００１側のアプリは、Ｇｅｔを呼び出す（Ｓ１７）。判定部１２５ｂは、ＰＣ００１側のクリップボードを参照し、クリップボードに転送元のＰＣ名「ＶＰＣ００２」が記憶されていると判定する（Ｓ１８）。
【００７７】
ＰＣ００１側のクリップボードにＰＣ名「ＶＰＣ００２」が記憶されているので、実行部１２５ｃは、ＰＣ００１側のアプリが呼び出したＧｅｔをリジェクトし、ＰＣ００１側のクリップボードに格納されたデータを原本情報１１３として記録する（Ｓ１９）。なお、利用者の設定に応じて、実行部１２５ｃは、Ｓ１９の処理に代えてＳ２０の処理を実行しても良い。つまり、実行部１２５ｃは、ＰＣ００１側のアプリがクリップボードからデータを取り出して貼り付ける際に、その旨をログ情報１１２として記録しても良い。
【００７８】
一方、仮想環境において、利用者から「ペースト」の指示を受け付けると（Ｓ２１）、ＶＰＣ００２側のアプリは、Ｇｅｔを呼び出し（Ｓ２２）、ＶＰＣ００２側のクリップボードからデータを取り出し、ペーストを実行する（Ｓ２４）。
【００７９】
次に、実施例２に係るクライアント端末１００の効果について説明する。クライアント端末１００は、クリップボードにデータを格納する命令が発生した場合に、そのデータが存在するコンピュータ環境が他のコンピュータ環境であれば、他のコンピュータ環境である旨を示す情報を所定の記憶領域に格納する。クライアント端末１００は、クリップボードからデータを取り出す命令が発生した場合に、所定の記憶領域に他のコンピュータ環境である旨を示す情報が記憶されているか否かを判定する。クライアント端末１００は、他のコンピュータ環境である旨を示す情報が記憶されていないと判定された場合に、データを取り出す命令を実行する。このため、クライアント端末１００は、利便性の低下を防ぎつつ情報漏洩を防ぐことができる。
【実施例３】
【００８０】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、その他の実施例にて実施されても良い。そこで、以下では、その他の実施例について説明する。
【００８１】
例えば、実施例１及び２では、クリップボードに複写されたデータを、そのデータの複写する命令の入力を受付けたコンピュータ環境を示す情報とともに格納する場合を説明した。これは、データをクリップボードに格納するとともに、そのデータの複写する命令の入力を受付けたコンピュータ環境を示す情報を別の記憶領域に格納する場合を含む。例えば、クライアント端末１００に共有フォルダを設け、他のコンピュータ環境である旨を示す情報を共有フォルダに格納することとしても良い。そこで、ここでは、他のコンピュータ環境である旨を示す情報を共有フォルダに格納する場合の動作例について説明する。
【００８２】
図１１は、実施例３に係る情報処理システムの動作例について説明するための図である。なお、ここでは、仮想環境を実現するＶＭ２００のＰＣ名を「ＶＰＣ００２」とし、物理環境を実現するクライアント端末１００のＰＣ名を「ＰＣ００１」とする。
【００８３】
図１１に示すように、仮想環境において、データを複写する命令の入力を利用者から受け付けると（Ｓ１１）、ＶＰＣ００２側のアプリは、Ｓｅｔを呼び出し、Ｓｅｔの対象となるデータをＶＰＣ００２側のクリップボードに格納する（Ｓ１２）。ＶＰＣ００２側のクリップボードプロセスは、自環境においてＳｅｔが呼び出されると、Ｓｅｔにより格納されるデータをクライアント端末１００「ＰＣ００１」に転送する（Ｓ１３）。
【００８４】
物理環境において、ＰＣ００１側のクリップボードプロセスは、ＶＰＣ００２側のクリップボードプロセスからデータを受信すると、Ｓｅｔを呼び出し、Ｓｅｔの対象となるデータをＰＣ００１側のクリップボードに格納する（Ｓ１４）。格納部１２５ａは、ＰＣ００１側のクリップボードプロセスがＳｅｔを呼び出すと、Ｓｅｔの対象となるデータの転送元のＰＣ名「ＶＰＣ００２」を共有フォルダに格納する（Ｓ３０）。
【００８５】
ここで、物理環境において、利用者から「ペースト」の指示を受け付けると（Ｓ１６）、ＰＣ００１側のアプリは、Ｇｅｔを呼び出す（Ｓ１７）。判定部１２５ｂは、共有フォルダを参照し、共有フォルダに転送元のＰＣ名「ＶＰＣ００２」が記憶されていると判定する（Ｓ３１）。
【００８６】
共有フォルダにＰＣ名「ＶＰＣ００２」が記憶されているので、実行部１２５ｃは、ＰＣ００１側のアプリが呼び出したＧｅｔをリジェクトし、ＰＣ００１側のクリップボードに格納されたデータを原本情報１１３として記録する（Ｓ３２）。なお、利用者の設定に応じて、実行部１２５ｃは、Ｓ３２の処理に代えてＳ３３の処理を実行しても良い。つまり、実行部１２５ｃは、ＰＣ００１側のアプリがクリップボードからデータを取り出して貼り付ける際に、その旨をログ情報１１２として記録しても良い。
【００８７】
一方、仮想環境において、利用者から「ペースト」の指示を受け付けると（Ｓ２１）、ＶＰＣ００２側のアプリは、Ｇｅｔを呼び出す（Ｓ２２）。判定部２２４ｂは、クライアント端末１００の共有フォルダを参照し、共有フォルダに他のＰＣ名が記憶されていないと判定する（Ｓ３４）。共有フォルダに他のＰＣ名が記憶されていないので、ＶＰＣ００２側のアプリは、ＶＰＣ００２側のクリップボードからデータを取り出し、ペーストを実行する（Ｓ３５）。
【００８８】
このように、クライアント端末１００は、データを複写する命令の入力を受付ける。クライアント端末１００は、コンピュータが実行する複数のアプリケーションで共有される記憶領域に、複写されたデータを、そのデータを複写する命令の入力を受付けたコンピュータ環境を示す情報とともに格納する。クライアント端末１００は、記憶領域からデータを取り出す命令が発生した場合に、コンピュータ環境を示す情報に基づいて、取り出す命令を実行するか否かを判定する。このため、クライアント端末１００は、利便性の低下を防ぎつつ情報漏洩を防ぐことができる。
【００８９】
また、例えば、実施例１及び２において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上述文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００９０】
また、図３及び図６に示したクライアント端末１００及びＶＭ２００の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、クライアント端末１００及びＶＭ２００の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図３に示した実行部１２５ｃの機能のうち、ログ情報１１２を記録する機能を他の処理部に持たせるようにしても良い。
【００９１】
また、クライアント端末１００及びＶＭ２００は、クライアント端末１００及びＶＭ２００の各機能を既知の情報処理装置に搭載することによって実現することもできる。既知の情報処理装置は、例えば、パーソナルコンピュータ、ワークステーション、携帯電話、ＰＨＳ（Personal  Handy-phone  System）端末、移動体通信端末またはＰＤＡ（Personal  Digital  Assistant）などの装置に対応する。
【００９２】
図１２は、情報処理プログラムを実行するコンピュータの一例を示す図である。図１２に示すように、コンピュータ３００は、各種演算処理を実行するＣＰＵ３０１と、ユーザからデータの入力を受け付ける入力装置３０２と、モニタ３０３とを有する。また、コンピュータ３００は、記憶媒体からプログラム等を読み取る媒体読み取り装置３０４と、他の装置と接続するためのインターフェース装置３０５と、他の装置と無線により接続するための無線通信装置３０６とを有する。また、コンピュータ３００は、各種情報を一時記憶するＲＡＭ（Random  Access  Memory）３０７と、ハードディスク装置３０８とを有する。また、各装置３０１〜３０８は、バス３０９に接続される。
【００９３】
ハードディスク装置３０８には、図３に示した監視部１２５と同様の機能を有する情報処理プログラムが記憶される。また、ハードディスク装置３０８には、情報処理プログラムを実現するための各種データが記憶される。
【００９４】
ＣＰＵ３０１は、ハードディスク装置３０８に記憶された各プログラムを読み出して、ＲＡＭ３０７に展開し、各種の処理を行う。また、これらのプログラムは、コンピュータを図３に示した監視部１２５として機能させることができる。
【００９５】
なお、上記の情報処理プログラムは、必ずしもハードディスク装置３０８に記憶されている必要はない。例えば、コンピュータが読み取り可能な記録媒体に記憶されたプログラムを、コンピュータ３００が読み出して実行するようにしても良い。コンピュータが読み取り可能な記録媒体は、例えば、ＣＤ−ＲＯＭやＤＶＤディスク、ＵＳＢメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等に接続された装置にこのプログラムを記憶させておき、コンピュータ３００がこれらからプログラムを読み出して実行するようにしても良い。
【００９６】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００９７】
（付記１）コンピュータに、
データを複写する命令の入力を受付け、
前記コンピュータが実行する複数のアプリケーションで共有される記憶領域に、複写された前記データを、該データを複写する命令の入力を受付けたコンピュータ環境を示す情報とともに格納し、
前記記憶領域からデータを取り出す命令が発生した場合に、前記コンピュータ環境を示す情報に基づいて、前記取り出す命令を実行するか否かを判定する
処理を実行させることを特徴とする情報処理プログラム。
【００９８】
（付記２）前記格納する処理は、前記記憶領域にデータを格納する命令が発生した場合に、該データが存在するコンピュータ環境が他のコンピュータ環境であれば、他のコンピュータ環境を示す情報を前記記憶領域に格納し、
前記判定する処理は、前記記憶領域からデータを取り出す命令が発生した場合に、前記記憶領域に前記情報が記憶されているか否かを判定し、
前記判定する処理により前記情報が記憶されていないと判定された場合に、前記データを取り出す命令を実行することを特徴とする付記１に記載の情報処理プログラム。
【００９９】
（付記３）前記格納する処理は、前記記憶領域として、前記クリップボードに、前記データ及び前記コンピュータ環境を示す情報を格納することを特徴とする付記１又は２に記載の情報処理プログラム。
【０１００】
（付記４）前記コンピュータに、前記判定する処理により前記情報が記憶されていると判定された場合に、前記データを取り出す命令を却下する処理をさらに実行することを特徴とする付記１〜３のいずれか一つに記載の情報処理プログラム。
【０１０１】
（付記５）前記コンピュータに、前記データを取り出す命令を却下した場合に、該命令が却下された旨を記録する処理をさらに実行することを特徴とする付記４に記載の情報処理プログラム。
【０１０２】
（付記６）前記記録する処理は、前記命令が却下された旨を記録した場合に、該命令に含まれるデータ形式と同一のデータ形式を含む前記命令の記録を所定時間抑止することを特徴とする付記４又は５に記載の情報処理プログラム。
【０１０３】
（付記７）前記コンピュータに、前記判定する処理により前記情報が記憶されていると判定された場合に、前記データを取り出す命令を実行するとともに、該命令が実行された旨を記録する処理をさらに実行することを特徴とする付記１〜３のいずれか一つに記載の情報処理プログラム。
【０１０４】
（付記８）前記コンピュータに、前記判定する処理により前記情報が記憶されていると判定された場合に、前記データを取り出す命令により取り出される該データを記録する処理をさらに実行することを特徴とする付記１〜７のいずれか一つに記載の情報処理プログラム。
【０１０５】
（付記９）データを複写する命令の入力を受付ける受付部と、
コンピュータが実行する複数のアプリケーションで共有される記憶領域に、複写された前記データを、該データを複写する命令の入力を受付けたコンピュータ環境を示す情報とともに格納する格納部と、
前記記憶領域からデータを取り出す命令が発生した場合に、前記コンピュータ環境を示す情報に基づいて、前記取り出す命令を実行するか否かを判定する判定部と
を備えることを特徴とする情報処理装置。
【０１０６】
（付記１０）前記格納部は、前記記憶領域にデータを格納する命令が発生した場合に、該データが存在するコンピュータ環境が他のコンピュータ環境であれば、他のコンピュータ環境を示す情報を前記記憶領域に格納し、
前記判定部は、前記記憶領域からデータを取り出す命令が発生した場合に、前記記憶領域に前記情報が記憶されているか否かを判定し、
前記判定部により前記情報が記憶されていないと判定された場合に、前記データを取り出す命令を実行する実行部をさらに備えることを特徴とする付記９に記載の情報処理装置。
【０１０７】
（付記１１）前記格納部は、前記所定の記憶領域として、前記クリップボードに、前記データ及び前記コンピュータ環境を示す情報を格納することを特徴とする付記９又は１０に記載の情報処理装置。
【０１０８】
（付記１２）前記実行部は、前記判定部により前記情報が記憶されていると判定された場合に、前記データを取り出す命令を却下する処理をさらに実行することを特徴とする付記９〜１１のいずれか一つに記載の情報処理装置。
【０１０９】
（付記１３）前記実行部は、前記データを取り出す命令を却下した場合に、該命令が却下された旨を記録する処理をさらに実行することを特徴とする付記１２に記載の情報処理装置。
【０１１０】
（付記１４）前記実行部は、前記命令が却下された旨を記録した場合に、該命令に含まれるデータ形式と同一のデータ形式を含む前記命令の記録を所定時間抑止することを特徴とする付記１２又は１３に記載の情報処理装置。
【０１１１】
（付記１５）前記実行部は、前記判定部により前記情報が記憶されていると判定された場合に、前記データを取り出す命令を実行するとともに、該命令が実行された旨を記録する処理をさらに実行することを特徴とする付記９〜１１のいずれか一つに記載の情報処理装置。
【０１１２】
（付記１６）前記実行部は、前記判定部により前記情報が記憶されていると判定された場合に、前記データを取り出す命令により取り出される該データを記録する処理をさらに実行することを特徴とする付記９〜１５のいずれか一つに記載の情報処理装置。
【０１１３】
（付記１７）コンピュータにより実行される情報処理方法であって、
データを複写する命令の入力を受付け、
前記コンピュータが実行する複数のアプリケーションで共有される記憶領域に、複写された前記データを、該データを複写する命令の入力を受付けたコンピュータ環境を示す情報とともに格納し、
前記記憶領域からデータを取り出す命令が発生した場合に、前記コンピュータ環境を示す情報に基づいて、前記取り出す命令を実行するか否かを判定する
ことを特徴とする情報処理方法。
【０１１４】
（付記１８）前記格納する処理は、前記記憶領域にデータを格納する命令が発生した場合に、該データが存在するコンピュータ環境が他のコンピュータ環境であれば、他のコンピュータ環境を示す情報を前記記憶領域に格納し、
前記判定する処理は、前記記憶領域からデータを取り出す命令が発生した場合に、前記記憶領域に前記情報が記憶されているか否かを判定し、
前記判定する処理により前記情報が記憶されていないと判定された場合に、前記データを取り出す命令を実行することを特徴とする付記１７に記載の情報処理方法。
【０１１５】
（付記１９）前記格納する処理は、前記所定の記憶領域として、前記クリップボードに、前記データ及び前記コンピュータ環境を示す情報を格納することを特徴とする付記１７又は１８に記載の情報処理方法。
【０１１６】
（付記２０）前記実行する処理は、前記判定する処理により前記情報が記憶されていると判定された場合に、前記データを取り出す命令を却下することを特徴とする付記１７〜１９のいずれか一つに記載の情報処理方法。
【０１１７】
（付記２１）前記実行する処理は、前記データを取り出す命令を却下した場合に、該命令が却下された旨を記録することを特徴とする付記２０に記載の情報処理方法。
【０１１８】
（付記２２）前記記録する処理は、前記命令が却下された旨を記録した場合に、該命令に含まれるデータ形式と同一のデータ形式を含む前記命令の記録を所定時間抑止することを特徴とする付記２０又は２１に記載の情報処理方法。
【０１１９】
（付記２３）前記実行する処理は、前記判定する処理により前記情報が記憶されていると判定された場合に、前記データを取り出す命令を実行するとともに、該命令が実行された旨を記録することを特徴とする付記１７〜１９のいずれか一つに記載の情報処理方法。
【０１２０】
（付記２４）前記実行する処理は、前記判定する処理により前記情報が記憶されていると判定された場合に、前記データを取り出す命令により取り出される該データを記録することを特徴とする付記１７〜２３のいずれか一つに記載の情報処理方法。
【符号の説明】
【０１２１】
１      情報処理システム
５      ネットワーク
１０      データセンタ
１１      サーバ装置
１２      通信制御部
１３      ハイパーバイザ
１００      クライアント端末
１０１      入力部
１０２      出力部
１０３      通信制御部
１１０      記憶部
１１１      クリップボード
１１２      ログ情報
１１３      原本情報
１１４      ＶＭ情報
１２０      制御部
１２３      画面生成部
１２５      監視部
１２５ａ      格納部
１２５ｂ      判定部
１２５ｃ      実行部
２１０      記憶部
２１１      クリップボード
２１２      ログ情報
２１３      原本情報
２２０      制御部
２２４      監視部
２２４ａ      格納部
２２４ｂ      判定部
２２４ｃ      実行部
３００      コンピュータ
３０１      ＣＰＵ
３０２      入力装置
３０３      モニタ
３０４      媒体読み取り装置
３０５      インターフェース装置
３０６      無線通信装置
３０７      ＲＡＭ
３０８      ハードディスク装置
３０９      バス
【図１】
0005742643.tif 000002
【図２】
0005742643.tif 000003
【図３】
0005742643.tif 000004
【図４】
0005742643.tif 000005
【図５】
0005742643.tif 000006
【図６】
0005742643.tif 000007
【図７】
0005742643.tif 000008
【図８】
0005742643.tif 000009
【図９】
0005742643.tif 000010
【図１０】
0005742643.tif 000011
【図１１】
0005742643.tif 000012
【図１２】
0005742643.tif 000013