(57)【要約】【課題】  共有サーバにおいてユーザが共有エリアに対して操作している場合であっても、別の情報処理装置から共有エリアへのデータ転送を行うことを可能とする。【解決手段】  クライアント装置から、ドラッグ操作に関する情報を受信し、共有エリアで、前記クライアント装置以外の装置のドラッグ操作が行われているかを判定する。前記クライアント装置以外の装置でドラッグ操作が行われていると判定されている場合、前記クライアント装置のドラッグ操作に関する情報を記憶し、前記クライアント装置以外の装置のドラッグ操作を終了後、前記記憶しておいたドラッグ操作に関する情報を実行する。【選択図】  図７
2011248672.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介してクライアント装置とサーバ装置とが接続され、前記サーバ装置が少なくとも一部の画面情報をクライアント装置に転送し、前記クライアント装置が転送された画面情報を画面上に共有エリアとして表示し、前記共有エリアに対して発生した入力イベント情報を前記サーバ装置に転送し、前記サーバ装置が転送された入力イベント情報を実行することにより、前記クライアント装置から前記サーバ装置のリモート操作を行う画面共有システムであって、
前記クライアント装置は、
前記共有エリアに対してドラッグ操作を実行する実行手段と、
前記実行したドラッグ操作に関する情報を前記サーバに送信する送信手段とを備え、
前記サーバ装置は、
前記クライアント装置から、前記ドラッグ操作に関する情報を受信する受信手段と、
前記共有エリアで、前記クライアント装置以外の装置のドラッグ操作が行われているかを判定する判定手段と、
前記判定手段で、前記クライアント装置以外の装置でドラッグ操作が行われていると判定されている場合、前記クライアント装置のドラッグ操作に関する情報を記憶する記憶手段と、
前記判定手段で、前記クライアント装置以外の装置でのドラッグ操作が行われていないと判定されている場合、前記クライアント装置のドラッグ操作を実行し、かつ、前記クライアント装置以外の装置のドラッグ操作を終了後に、前記記憶しておいたドラッグ操作に関する情報を実行する実行手段とを備えることを特徴とする画面共有システム。
【請求項２】
ネットワークを介してクライアント装置とサーバ装置とが接続され、前記サーバ装置が少なくとも一部の画面情報をクライアント装置に転送し、前記クライアント装置が転送された画面情報を画面上に共有エリアとして表示し、前記共有エリアに対して発生した入力イベント情報を前記サーバ装置に転送し、前記サーバ装置が転送された入力イベント情報を実行することにより、前記クライアント装置から前記サーバ装置のリモート操作を行う画面共有システムのデータ転送方法であって、
前記クライアント装置に、
前記共有エリアに対してドラッグ操作を実行する実行工程と、
前記実行したドラッグ操作に関する情報を前記サーバに送信する送信工程とを有し、
前記サーバ装置に、
前記クライアント装置から、前記ドラッグ操作に関する情報を受信する受信工程と、
前記共有エリアで、前記クライアント装置以外の装置のドラッグ操作が行われているかを判定する判定工程と、
前記判定工程で、前記クライアント装置以外の装置でドラッグ操作が行われていると判定されている場合、前記クライアント装置のドラッグ操作に関する情報を記憶手段に記憶する記憶工程と、
前記判定工程で、前記クライアント装置以外の装置でのドラッグ操作が行われていないと判定されている場合、前記クライアント装置のドラッグ操作を実行し、
前記クライアント装置以外の装置のドラッグ操作を終了後、前記記憶しておいたドラッグ操作に関する情報を実行する実行工程とを有することを特徴とする画面共有システムのデータ転送方法。
【請求項３】
請求項２に記載のデータ転送方法をコンピュータに実行させるためのプログラム。
【請求項４】
請求項３に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の情報処理装置で画面を共有する画面共有システムに関わる技術に関する。
【背景技術】
【０００２】
近年、様々な場面において、複数の情報処理装置で画面を共有する画面共有システムが利用されている。この画面共有システムは、以下のような場合に利用されている。
・遠隔地にある情報処理装置を遠隔操作する場合
・会議において、会議室に持ち込んだノートパソコンなどの情報処理装置の画面をネットワークを介して会議室に設置された大型ディスプレイに表示する場合
また、複数の情報処理装置での画面共有に加えて、ユーザがクライアント情報処理装置の共有画面に対して操作を行うことで、異なる情報処理装置のメモリ空間の間でファイルを転送するものもある。ここで、共有画面とは、画面共有機能により別の情報処理装置の画面を仮想的に表示している画面である。例えば、クライアント情報処理装置の共有画面には、画面共有機能によりサーバ情報処理装置の表示画面が表示される。
【０００３】
上述の画面共有システムでは、共有画面に対する操作によりデータ転送が行えるのはファイルのみである。しかし、アプリケーションに表示されている画像データをアプリケーションが起動している情報処理装置とは異なる情報処理装置のメモリ空間に転送することで、アプリケーションのオブジェクトデータの転送も行える。
【０００４】
また、特許文献１には、サーバとなる情報処理装置に対して、複数のクライアントからの入力があった場合に排他制御を行うことで入力の衝突を回避するものが開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−５４３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述の画面共有システムでは、サーバ側でポインティングデバイスを操作しているときに、クライアントからドラッグ操作を行うとサーバ側の操作とクライアントの操作が衝突し、所望の操作を行うことが出来なくなる、という問題が存在する。
【０００７】
また、特許文献１に記載されている排他制御によると、操作の衝突は回避できるが、所望の操作を出来なくなるという問題は存在する。
【０００８】
この問題により、ユーザは、例えば共有画面に対する操作によって、アプリケーションに表示されている画像データをアプリケーションが起動している情報処理装置とは異なる情報処理装置のメモリ空間に転送する、といった使い方ができない。
【０００９】
本発明は、共有サーバにおいてユーザが共有エリアに対して操作している場合であっても、別の情報処理装置から共有エリアへのデータ転送を行うことを可能とすることを目的とする。
【課題を解決するための手段】
【００１０】
本発明は、ネットワークを介してクライアント装置とサーバ装置とが接続され、前記サーバ装置が少なくとも一部の画面情報をクライアント装置に転送し、前記クライアント装置が転送された画面情報を画面上に共有エリアとして表示し、前記共有エリアに対して発生した入力イベント情報を前記サーバ装置に転送し、前記サーバ装置が転送された入力イベント情報を実行することにより、前記クライアント装置から前記サーバ装置のリモート操作を行う画面共有システムであって、前記クライアント装置は、前記共有エリアに対してドラッグ操作を実行する実行手段と、前記実行したドラッグ操作に関する情報を前記サーバに送信する送信手段とを備え、前記サーバ装置は、前記クライアント装置から、前記ドラッグ操作に関する情報を受信する受信手段と、前記共有エリアで、前記クライアント装置以外の装置のドラッグ操作が行われているかを判定する判定手段と、前記判定手段にで、前記クライアント装置以外の装置でドラッグ操作が行われていると判定されている場合、前記クライアント装置のドラッグ操作に関する情報を記憶する記憶手段と、前記判定手段で、前記クライアント装置以外の装置でのドラッグ操作が行われていないと判定されている場合、前記クライアント装置のドラッグ操作を実行し、かつ、前記クライアント装置以外の装置のドラッグ操作を終了後に、前記記憶しておいたドラッグ操作に関する情報を実行する実行手段とを備えることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、共有サーバにおいてユーザが共有エリアに対して操作している場合であっても、別の情報処理装置から共有エリアへのデータ転送を行うことができる。
【図面の簡単な説明】
【００１２】
【図１】本実施形態による画面共有システムのネットワーク構成を示す図である。
【図２】本実施形態による画面共有システムを構成するクライアント情報処理装置及びサーバ情報処理装置のハードウェア構成を示す概略図である。
【図３】本実施形態による情報処理装置の機能構成を示す概略図である。
【図４】クライアント情報処理装置１０１でのデータ転送処理を示すフローチャートである。
【図５】クライアント情報処理装置１０１とサーバ情報処理装置１０２の画面表示例を示す図である。
【図６】画面共有アプリケーションプログラム２２２が管理する操作画面管理テーブルを示す図である。
【図７】サーバ情報処理装置１０２でのデータ受信処理を示すフローチャートである。
【図８】クライアント情報処理装置１０１での転送データ変換処理を示すフローチャートである。
【発明を実施するための形態】
【００１３】
（第１の実施形態）
以下、図面を参照しながら発明を実施するための最良の形態について詳細に説明する。
【００１４】
ここでは、共有サーバの共有エリアを複数のユーザが操作する例として、画面共有システムを例として説明する。
【００１５】
図１は、本実施形態による画面共有システムのネットワーク構成を示す図である。図１に示すように、画面共有システムは、それぞれ通信機能を備えている、クライアント情報処理装置１０１、サーバ情報処理装置１０２、サーバ情報処理装置１０３がネットワーク１１１に接続されているシステムである。本実施例では、サーバ情報処理装置１０２の画面を共有しているシステムで説明する。
【００１６】
図２は、本実施形態による画面共有システムを構成するクライアント情報処理装置及びサーバ情報処理装置のハードウェア構成を示す概略図である。尚、クライアント情報処理装置及びサーバ情報処理装置は共にパーソナルコンピュータなどのコンピュータシステムによって実現されるので、図２では情報処理装置２０１として説明する。
【００１７】
情報処理装置２０１は、装置全体の制御を司るＣＰＵ２１１、ブートプログラムや固定的なデータなどを記憶しているＲＯＭ２１２、メインメモリとして機能すると共にＣＰＵ２１１のワークエリアを提供するＲＡＭ２１３を備える。更に、情報処理装置２０１は、以下の構成を備える。
【００１８】
ＨＤＤ２１４はハードディスク装置であり、オペレーティングシステム（ＯＳ）２２１、画面共有アプリケーションプログラム２２２、文書編集アプリケーションプログラム２２３などを格納している。ＶＲＡＭ２１５は表示しようとするイメージデータを展開するメモリであり、イメージデータなどを展開することで表示装置の一例であるディスプレイ２３１に表示させる。
【００１９】
入力装置としてのキーボード２３２、マウス２３３、デジタイザ２３４は、キーボードコントローラ２１６、マウスコントローラ２１７、デジタイザコントローラ２１８にそれぞれ接続され、入力はＣＰＵ２１１に割込み信号として検出される。また、ネットワークインタフェース（Ｉ／Ｆ）２１９も設けられ、ネットワーク１１１に接続可能である。
【００２０】
以上の構成において、画面共有アプリケーションプログラム２２２及び文書編集アプリケーションプログラム２２３はキーボード２３２、マウス２３３、デジタイザ２３４からの特定の指示イベントに応じて起動される。この起動の際に、画面共有アプリケーションプログラム２２２及び文書編集アプリケーションプログラム２２３は、まずＲＡＭ２１３にロードされ、ＣＰＵ２１１によって実行される。
【００２１】
尚、上述の画面共有アプリケーションプログラム２２２は、ＯＳ２２１に依存して連動するものでも良い。また、画面共有アプリケーションプログラム２２２は、後述する画面共有機能を実現するものである。
【００２２】
図３は、本実施形態による情報処理装置の機能構成を示す概略図である。図３において、情報処理装置３０１は図２に示す情報処理装置２０１に相当する。表示装置３０２は図２に示すディスプレイ２３１に相当する。入力装置３０３は図２に示すキーボード２３２、マウス２３３、デジタイザ２３４に相当する。
【００２３】
情報処理装置３０１には、通信部３１１、データ制御部３１２、データ記憶部３１３、出力部３１４、入力部３１５が含まれる。通信部３１１はネットワーク１１１と接続し、他の情報処理装置などとデータを授受するための情報通信制御処理を行う。データ制御部３１２は画面共有やデータ転送などの処理を制御する。データ記憶部３１３は画面共有やデータ転送などで授受されるデータを記憶する。
【００２４】
出力部３１４は表示画面情報をプロジェクタ、液晶ディスプレイ、リアプロジェクションディスプレイなどに出力する。入力部３１５は入力装置３０３が検出した情報を入力し、データ制御部３１２に伝達する。
【００２５】
次に、本実施形態による画面共有システムでのデータ転送について説明する。
【００２６】
まず、クライアント情報処理装置１０１におけるデータ転送を、図４を用いて説明する。クライアント情報処理装置１０１の共有画面とローカル画面に対するドラッグ操作（ドラッグ＆ドロップ）によるデータ転送を例にとって説明する。
【００２７】
ここでローカル画面とは、画面共有機能を使わずに、ローカル環境を表示している画面である。また、ドラッグ操作以外に、共有画面に対するクリップボードによるコピー指示＆貼りつけ指示や転送指示によりデータ転送を行った場合も含まれることは言うまでもない。共有画面に対するコピー指示＆貼りつけ指示や転送指示としては、以下のような場合である。ファイルやアプリケーションに含まれるオブジェクトなどを選択し表示されたメニューを使って指示する場合、或いはファイルやアプリケーションに含まれるオブジェクトなどをダブルクリックすることで指示する場合などである。
【００２８】
図４は、クライアント情報処理装置１０１でのデータ転送処理を示すフローチャートである。まず、サーバ情報処理装置１０２、１０３とクライアント情報処理装置１０１とで画面共有機能が開始されており、クライアント情報処理装置１０１はサーバ情報処理装置１０２と画面共有している。この時点におけるクライアント情報処理装置１０１の表示例を図５（ａ）に示す。
【００２９】
図５（ａ）において、５０１はクライアント情報処理装置１０１の表示画面例であり、５０２はサーバ情報処理装置１０２の表示画面例である。ここで、クライアント情報処理装置１０１の画面５０１を説明すると、５１１はクライアント情報処理装置１０１で起動した文書編集アプリケーションプログラム２２３の表示例である。
【００３０】
また、５１２はクライアント情報処理装置１０１で起動した画面共有アプリケーションプログラム２２２の表示例（サーバ情報処理装置１０２の画面５０２を画面共有機能によりクライアント情報処理装置１０１に表示している）である。
【００３１】
クライアント情報処理装置１０１のデータ制御部３１２は、ステップＳ４０１で、マウス２３３やデジタイザ２３４などの入力装置３０３から入力部３１５を介して入力された座標情報を取得し、クライアント情報処理装置１０１のデータ記憶部３１３に記憶する。以下、図４における処理は、クライアント情報処理装置１０１で行われるものであって、各ステップにおけるデータ制御部３１２とデータ記憶部３１３は、クライアント情報処理装置１０１のデータ制御部３１２とデータ記憶部３１３である。
【００３２】
次に、ステップＳ４０２で、データ制御部３１２はデータ記憶部３１３に記憶した座標情報を元に、操作対象の情報処理装置Ａｎを決定する。尚、Ａｎは、現在の操作対象装置を表している。
【００３３】
図６は、画面共有アプリケーションプログラム２２２が管理する操作画面管理テーブルを示す図である。この操作画面管理テーブルはデータ記憶部３１３に記憶されている。
【００３４】
ステップＳ４０２では、ステップＳ４０１でデータ記憶部３１３に記憶した座標情報を元に、操作画面管理テーブルから操作対象の情報処理装置を決定する。このとき、データ制御部３１２は、操作画面管理テーブルに含まれない領域については“操作対象はクライアント情報処理装置１０１である”と判定する。
【００３５】
次に、ステップＳ４０３で、データ制御部３１２は、ステップＳ４０２で決定した操作対象の情報処理装置Ａｎが操作対象装置フラグの情報処理装置Ａｐと同じであるか否かを判定する。尚、Ａｐは、操作対象装置フラグを表し、後述するステップＳ４０６で設定され、データ記憶部３１３に記憶されている。
【００３６】
ステップＳ４０３で判定した結果、同じである場合はステップＳ４０７へ進み、異なる場合はステップＳ４０４へ進む。このステップＳ４０４では、データ制御部３１２は、データ記憶部３１３に記憶している操作対象装置フラグの情報処理装置Ａｐで設定されている情報処理装置に転送データを要求する。
【００３７】
ここで、転送データとは、文字通り“転送するデータ”のことを指す。また転送データには、ファイルデータや任意のアプリケーションプログラムに含まれる画像データ、動画データ、テキストデータ、オブジェクトデータなどが含まれる。
【００３８】
上述のステップＳ４０４で、操作対象装置フラグの情報処理装置Ａｐがローカルである場合には、データ制御部３１２はデータ記憶部３１３に記憶されている転送データを取得する。
【００３９】
次に、ステップＳ４０５で、データ制御部３１２は、操作対象の情報処理装置Ａｎへ転送データを送信する。このステップＳ４０５で、操作対象の情報処理装置Ａｎがローカルである場合には、クライアント情報処理装置１０１のデータ制御部３１２はステップＳ４０４で取得したデータを展開して、転送データとしてデータ記憶部３１３に記憶する。
【００４０】
上述したステップＳ４０４、Ｓ４０５により、転送データが情報処理装置Ａｎのメモリ空間から操作対象装置フラグの情報処理装置Ａｐのメモリ空間に渡される。
【００４１】
次に、ステップＳ４０６で、データ制御部３１２は、操作対象装置フラグの情報処理装置Ａｐに操作対象の情報処理装置Ａｎを設定し、データ記憶部３１３に記憶する。
【００４２】
次に、ステップＳ４０７で、データ制御部３１２は、データ記憶部３１３に記憶している操作対象情報処理装置Ａｎがローカル（この場合、クライアント情報処理装置１０１である）であるか否かを判定する。操作対象の情報処理装置Ａｎがローカルである場合はステップＳ４０９へ進み、操作対象の情報処理装置Ａｎがローカルでない場合はステップＳ４０８へ進む。
【００４３】
このステップＳ４０８では、データ制御部３１２は、ステップＳ４０１でデータ記憶部３１３に記憶した入力情報を操作対象の情報処理装置Ａｎに送信して、ステップＳ４０１に戻る。
【００４４】
一方、ステップＳ４０９では、データ制御部３１２は、ローカルの操作を継続する。次に、ステップＳ４１０で、データ制御部３１２は、ユーザが操作を終了するか否か判定する。ここで、操作を終了する場合はこの処理を終了する。また、操作を終了しない場合はステップＳ４０１に戻る。
【００４５】
尚、ステップＳ４０４、Ｓ４０５で転送データを要求、送信した後、ユーザがドロップ操作やペースト操作を行うと、転送データが操作対象のアプリケーションやファイルシステムなどに渡される。即ち、ユーザが画面共有アプリケーションプログラム２２２の表示画面に対してドロップ操作や貼り付け操作を行うと、転送データはサーバ情報処理装置で起動している任意のアプリケーションやファイルシステムなどに渡される。ここで、表示画面は、サーバ情報処理装置の表示画面を画面共有機能によりクライアント情報処理装置に表示したものである。
【００４６】
上述した処理により、図５（ａ）に示す矢印「Ａ」のデータ転送が実現される。ここで、矢印「Ａ」は、クライアント情報処理装置１０１のメモリ空間からサーバ情報処理装置１０３のメモリ空間へのデータ転送である。矢印「Ｂ」は、サーバ情報処理装置１０２のローカル内でのデータ転送である。
【００４７】
このように、ネットワークを介してサーバの少なくとも一部の画面情報をクライアントに転送し、転送された画面情報をクライアントの画面上に共有エリアとして表示する。そして、クライアントで共有エリアに対して発生した入力イベント情報をサーバに転送し、転送された入力イベント情報をサーバの入力イベント情報として再生する。
【００４８】
従って、クライアントからサーバのリモート操作を行う画面共有システムで、ユーザがクライアント情報処理装置で共有画面に対して操作することにより、異なる情報処理装置のメモリ空間の間でデータを転送することができる。
【００４９】
サーバ情報処理装置１０２においてペイント系のアプリケーションに対する描画や、ファイルのドラッグ操作等を行っている最中に、クライアント情報処理装置１０１からサーバ情報処理装置に対してのファイルのドラッグ操作が行われることがある。この場合、マウス操作の衝突を回避するために、クライアント情報処理装置１０１の操作を禁止してしまう、若しくは、マウス操作の衝突により、ドラッグ操作に失敗してしまうことが発生することもある。
【００５０】
以下では、このようなマウス操作のドラッグ操作の衝突が発生した場合の、サーバ情報処理装置１０２の処理について説明する。
【００５１】
図７は、サーバ情報処理装置１０２でのデータ受信処理を示すフローチャートである。まず、ステップＳ１００１で、サーバ情報処理装置１０２のデータ制御部３１２は、クライアント情報処理装置１０１から送信されたデータを受信し、データ記憶部３１３に記憶する。このデータ受信処理は、図４に示すステップＳ４０４、Ｓ４０５、Ｓ４０８でクライアント情報処理装置１０１が行ったサーバ情報処理装置１０２へのデータ送信に対応する処理である。以下、図７における処理は、サーバ情報処理装置１０２で行われるものであって、各ステップにおけるデータ制御部３１２とデータ記憶部３１３は、サーバ情報処理装置１０２データ制御部３１２とデータ記憶部３１３である。
【００５２】
ステップＳ１００２において、クライアント情報処理装置１０１からの共有エリア（共有画面）でのドラッグ操作の開始時に、他の装置で共有エリアでのドラッグ操作中であるかを判定する。他の装置でドラッグ操作中の場合はステップＳ１００３において、データ記憶部３１３内のＤフラグをセットする。ここで、他の装置とは、ステップＳ１００１で受信したクライアント情報処理装置１０１以外の装置を表し、サーバ情報処理装置１０２を含む装置である。また、Ｄフラグとは、他の装置でドラッグ操作中であるかを示すフラグである。
【００５３】
これは、例えば、図５（ａ）のクライアント情報処理装置１０１の画面５０１の矢印「Ａ」の操作を行おうとした際に、サーバ情報処理装置１０２で矢印「Ｂ」のドラッグ操作を行っていた場合は、Ｄフラグがセットされる。
【００５４】
ステップ１００２で、他の装置で共有エリアでのドラッグ操作中でない場合は、ステップＳ１００４へと進む。
【００５５】
次に、ステップＳ１００４で、データ制御部３１２は、ステップＳ１００１で受信したデータを解析し、転送データの受信を要求されているか否かを判定する。判定の結果、転送データの受信が要求されている場合は、ステップＳ１００５へ進み、転送データの受信が要求されていない場合は、ステップＳ１０１０へ進む。
【００５６】
このステップＳ１００５で、クライアント情報処理装置１０１から転送データを受信し、サーバ情報処理装置１０２のデータ制御部３１２に渡す。このときのクライアント情報処理装置１０１における処理は図８を用いて後述する。
【００５７】
次に、ステップＳ１００６では、データ制御部３１２において、ステップＳ１００５で受信した転送データをアプリケーション等で利用可能な状態に変換し、データ記憶部３１３に保存する。
【００５８】
ステップＳ１００７において、データ記憶部３１３内のＤフラグを確認し、他の装置でドラッグ操作中であった場合は、ステップＳ１００８に進む。ステップＳ１００８においてドラッグ開始時のファイルまたはオブジェクトデータ等の処理対象データと、現在の絶対座標とボタン情報等のマウス情報をデータ記憶部３１３に保存する。次に、ステップＳ１００９において、データ記憶部３１３内のＤ２フラグをセットし、ステップＳ１００１に戻る。
【００５９】
Ｄ２フラグをセットすることで、他のクライアント情報処理装置からの入力、またはサーバ情報処理装置１０２のコンソールからの入力などの、他の装置でのドラッグ操作の判定に使用する。
【００６０】
ステップＳ１００７で他の装置でドラッグ操作中でなかった場合は、ステップＳ１０１０において、クライアント情報処理装置１０１よる、共有エリアのドラッグ操作の開始処理を行い、ステップＳ１００１に戻る。
【００６１】
一方、ステップＳ１０１１において、データ制御部３１２は、ステップＳ１００４でデータ記憶部３１３に記憶したデータがドラッグ処理であるか否かを判定する。判定の結果、データがドラッグ処理である場合は、ステップＳ１０１２へ進み、データがドラッグ処理でない場合は、ステップＳ１０１５へ進む。
【００６２】
ステップＳ１０１２で、データ記憶部３１３内のＤフラグを確認し、他の装置でドラッグ操作中であった場合は、ステップＳ１０１３に進む。ステップＳ１０１３において、現在の絶対座標とボタン情報等のマウス情報をデータ記憶部３１３に保存し、ステップＳ１００１に戻る。尚、座標情報が相対座標データであった場合は、現在の絶対座標を計算して得る。
【００６３】
ステップＳ１０１２で他の装置でドラッグ操作中でなかった場合は、ステップＳ１０１４において、クライアント情報処理装置１０１よる、共有エリアのドラッグ処理を行い、ステップＳ１００１に戻る。
【００６４】
他方、ステップＳ１０１５で、データ制御部３１２は、ステップＳ１００１でデータ記憶部３１３に記憶したデータがドロップ処理であるか否かを判定する。判定の結果、データがドロップ処理である場合は、ステップＳ１０１６へ進み、データがドロップ処理でない場合は、ステップＳ１０１９へ進む。
【００６５】
ステップＳ１０１６で、データ記憶部３１３内のＤフラグを確認し、他の装置でドラッグ操作中であった場合は、ステップＳ１０１７に進む。ステップＳ１０１７で、データ制御部３１２は、ステップＳ１００８でデータ記憶部３１３に記憶した、アプリケーション等で利用可能なデータと、現在の絶対座標とボタン情報等のマウス情報とをドロップデータとして、データ記憶部３１３に保存する。尚、座標情報が相対座標データであった場合は、現在の絶対座標を計算して得る。
【００６６】
例えば、図５（ａ）のクライアント情報処理装置１０１の画面５０１におけるクライアント情報処理装置１０１の矢印「Ａ」の操作は終了しているので、クライアント情報処理装置１０１では次の操作を開始できる。しかし、サーバ情報処理装置１０２の画面５０２で、サーバ情報処理装置１０２における矢印「Ｂ」のドラッグ操作が行われているので、サーバ情報処理装置１０２では矢印「Ａ」のドロップ操作は実行されない。
【００６７】
このとき、サーバ情報処理装置１０２は、クライアント情報処理装置１０１から受信したドラッグ及びドロップ情報から、クライアント情報処理装置１０１の操作をエミュレートする画像を作成し、クライアント情報処理装置１０１へ送信する画像に追加する。これにより、図５（ａ）のクライアント情報処理装置１０１の画面５０１上にあたかもクライアント情報処理装置１０１の操作が行われているかのように表示する。しかし、実際は図５（ａ）のクライアント情報処理装置１０１の画面５０２のように実行されていない。
【００６８】
ステップＳ１０１６で、他の装置でドラッグ操作中でなかった場合は、ステップＳ１０１８に進む。ステップＳ１０１８において、データ制御部３１２は、ステップＳ１００８でデータ記憶部３１３に記憶したアプリケーション等で利用可能なデータをドロップデータとして現在のマウスポインタの位置にドロップし、ステップＳ１００１に戻る。
【００６９】
ステップＳ１０１９では、データ制御部３１２は、ステップＳ１００１でデータ記憶部３１３に記憶したデータを使い、ローカル（サーバ情報処理装置１０２）での操作を行う。例えば、ステップＳ１００１でデータ記憶部３１３に記憶したデータに基づいてローカルのマウスカーソルを移動させる。
【００７０】
次に、ステップＳ１０２０で、データ制御部３１２は、操作を終了するか否かを判定する。ここで、操作を終了する場合は、ステップＳ１０２１へ進み、操作を終了しない場合は、ステップＳ１００１に戻る。
【００７１】
ステップＳ１０２１で、データ記憶部３１３内のＤフラグを確認し、他の装置でドラッグ操作中であった場合は、ステップＳ１０２２に進む。ステップＳ１０２１で、他の装置でドラッグ操作中でなかった場合は処理を終了する。
【００７２】
ステップＳ２２において、他の装置でドラッグ操作が終了するまで待ち、他の装置でドラッグ操作が終了したときにステップＳ１０２３に進む。
【００７３】
ステップＳ１０２３では、ステップＳ１０１７においてデータ記憶部３１３に保存した、アプリケーション等で利用可能なデータを、ステップＳ１０１７においてデータ記憶部３１３に保存していた現在の絶対座標の位置にドロップし、ステップＳ１０２４に進む。
【００７４】
例えば、図５（ｃ）のクライアント情報処理装置１０１の画面５０１において、既に終了しているクライアント情報処理装置１０１の矢印「Ａ」の操作は、サーバ情報処理装置１０２におけるドラッグ操作が終了後に実行される。サーバ情報処理装置１０２におけるドラッグ操作終了後、クライアント情報処理装置１０１の矢印「Ａ」の操作が実行され、サーバ情報処理装置１０２の画面５０２にオブジェクト５５１がドロップされる。
【００７５】
ステップＳ１０２４において、ＤフラグとＤ２フラグをクリアし、処理を終了する。
【００７６】
図８は、クライアント情報処理装置１０１における転送データ変換処理を示すフローチャートである。ここでは、図５（ｂ）に示す矢印「Ａ」のように、クライアント情報処理装置１０１からサーバ情報処理装置１０２へのデータ転送を例に挙げて説明する。図５（ｂ）において、５３１はクライアント情報処理装置１０１のマウス２３３のカーソルである。ここで、操作対象装置フラグＡｐに設定されている情報処理装置はサーバ情報処理装置１０２、クライアント情報処理装置１０１のデータ制御部３１２が判定した操作対象の情報処理装置Ａｎはローカル（即ち、クライアント情報処理装置１０１自身）である。５３２はサーバ情報処理装置１０２のマウス２３３のカーソルであり、図５（ｂ）に示す位置に存在する。
【００７７】
まず、ステップＳ８０１で、クライアント情報処理装置１０１のデータ制御部３１２は、図５（ｂ）に示すカーソル５３１の下にウィンドウ５４１を生成する。以下、図８における処理は、クライアント情報処理装置１０１で行われるものであって、各ステップにおけるデータ制御部３１２とデータ記憶部３１３は、クライアント情報処理装置１０１のデータ制御部３１２とデータ記憶部３１３である。次に、ステップＳ８０２で、データ制御部３１２は、マウスイベントを発生する。次に、ステップＳ８０３で、データ制御部３１２は、ステップＳ８０２で発生したマウスイベントをウィンドウ５４１で処理する。この処理により、データ記憶部３１３に記憶している転送データを取得する。そして、ステップＳ８０４で、データ制御部３１２は、ステップＳ８０３で取得した転送データを転送可能な状態に変換する。
【００７８】
次に、ステップＳ８０５において、ステップＳ８０４で変換された転送データをサーバ情報処理装置１０２に送信し、この処理を終了する。
【００７９】
以上、説明した様に、クライアントの画面上にサーバの一部の画面情報を表示する共有エリアを有し、共有エリアに対して発生した入力イベント情報をサーバで再生させ、クライアントからサーバのリモート操作を行う。その際に、クライアントがドラッグにより、クライアントの端末上のファイル等を、共有エリアへドラッグしようとする際に、サーバで他のユーザがドラッグ操作中かを判定する。ドラッグ操作中であった場合は、クライアントのドラッグ処理を全て受信し、保存しておき、他のユーザのドラッグ処理が終了した後に、該保存しておいたドラッグ処理を実行する。
【００８０】
尚、本発明に係る画面共有システムのネットワーク構成は、上述したような構成だけでなく、以下のような構成でも良いことは言うまでもない。
・サーバ情報処理装置：複数台、クライアント情報処理装置：１台
・サーバ情報処理装置：１台、クライアント情報処理装置：１台
・サーバ情報処理装置：１台、クライアント情報処理装置：複数台
・サーバ情報処理装置：複数台、クライアント情報処理装置：複数台
また、サーバ情報処理装置は、Ｗｅｂサーバとしてサーバアプリケーションを共有している場合でも良い。
【００８１】
さらに、画面共有だけではなく、共有エリアにおける操作であっても良い。
尚、本実施形態では、異なる情報処理装置のメモリ空間の間で転送するデータとして、ファイルや任意のアプリケーションに含まれる画像データ、動画データ、テキストデータ、オブジェクトデータを取り上げた。しかし、本発明はそれ以外のデータも扱えることは言うまでもない。
【００８２】
尚、本発明は複数の機器（例えば、ホストコンピュータ，インターフェース機器，リーダ，プリンタなど）から構成されるシステムに適用しても、１つの機器からなる装置（例えば、複写機，ファクシミリ装置など）に適用しても良い。
【００８３】
また、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵ若しくはＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行する。これによっても、本発明の目的が達成されることは言うまでもない。
【００８４】
この場合、コンピュータ読み取り可能な記録媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【００８５】
このプログラムコードを供給するための記録媒体として、例えばフレキシブルディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【００８６】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、次の場合も含まれることは言うまでもない。即ち、プログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合である。
【００８７】
更に、記録媒体から読出されたプログラムコードがコンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図１】
2011248672.tif 000003
【図２】
2011248672.tif 000004
【図３】
2011248672.tif 000005
【図４】
2011248672.tif 000006
【図５】
2011248672.tif 000007
【図６】
2011248672.tif 000008
【図７】
2011248672.tif 000009
【図８】
2011248672.tif 000010