(57)【要約】【課題】既存のＳＢＣミドルウエアを用い、複数のＳＢＣクライアント間でＳＢＣサーバ内の任意のアプリケーションを利用した協調作業を可能にする。【解決手段】任意のアプリケーションを導入可能なＳＢＣミドルウエアを備えるＳＢＣサーバと、ＳＢＣサーバにネットワークを介して接続され前記アプリケーションを遠隔的に利用する複数のＳＢＣクライアントとの間に挿入されるプロキシサーバは、第１のＳＢＣクライアントにアプリケーションの実行を許可する操作権を付与する操作権管理部と、第１のＳＢＣクライアントからアプリケーションを実行する第１の入力操作情報を受信し、受信した第１の入力操作情報をＳＢＣサーバに転送してアプリケーションを実行させる操作情報中継部と、アプリケーションの実行画面をＳＢＣサーバから受け取って、この実行画面を複数のＳＢＣクライアントに配信する実行画面配信部とを備える。【選択図】　図３
2004005396.tif 000002
【特許請求の範囲】
【請求項１】
任意のアプリケーションを導入可能なＳＢＣミドルウエアを備えるＳＢＣサーバと、
前記ＳＢＣサーバにネットワークを介して接続され、前記アプリケーションを遠隔的に利用可能な複数のＳＢＣクライアントと、
前記ネットワーク上の任意の領域に配置され、前記ＳＢＣサーバと複数のＳＢＣクライアントとの間を接続するプロキシサーバと
を含み、前記プロキシサーバは、
第１のＳＢＣクライアントに、前記アプリケーションの実行を許可する操作権を付与し、
前記第１のＳＢＣクライアントから、前記アプリケーションを実行する第１の入力操作情報を受信し、当該第１の入力操作情報を前記ＳＢＣサーバに転送して前記アプリケーションを実行させ、
前記アプリケーションの実行画面を前記ＳＢＣサーバから受け取って、当該実行画面を前記複数のＳＢＣクライアントに配信することを特徴とするＳＢＣコラボレーションシステム。
【請求項２】
前記プロキシサーバは、前記複数のＳＢＣクライアントの間で、前記操作権の受け渡しを管理することを特徴とする請求項１に記載のＳＢＣコラボレーションシステム。
【請求項３】
前記プロキシサーバは、前記アプリケーションの実行画面を前記複数のＳＢＣクライアントの数だけ複製し、配信することを特徴とする請求項１に記載のＳＢＣコラボレーションシステム。
【請求項４】
前記プロキシサーバは、前記操作権を有さない第２のＳＢＣクライアントから第２の入力操作情報を受信した場合に、当該第２の入力操作情報を破棄することを特徴とする請求項１に記載のＳＢＣコラボレーションシステム。
【請求項５】
前記プロキシサーバは、前記操作権を有さない第２のＳＢＣクライアントから操作権取得要求を受け取った場合に、前記第１のＳＢＣクライアントに対し、操作権譲渡依頼を送信することを特徴とする請求項１に記載のＳＢＣコラボレーションシステム。
【請求項６】
前記プロキシサーバは、前記第１のＳＢＣクライアントから操作権譲渡の許可通知を受け取った場合に、前記操作権を前記第２のＳＢＣクライアントに移転することを特徴とする請求項５に記載のＳＢＣコラボレーションシステム。
【請求項７】
任意のアプリケーションを導入可能なＳＢＣミドルウエアを備えるＳＢＣサーバと、前記ＳＢＣサーバにネットワークを介して接続され前記アプリケーションを遠隔的に利用可能な複数のＳＢＣクライアントとの間に挿入されるプロキシサーバであって、
第１のＳＢＣクライアントに、前記アプリケーションの実行を許可する操作権を付与する操作権管理部と、
前記第１のＳＢＣクライアントから、前記アプリケーションを実行するための第１の入力操作情報を受信し、前記第１の入力操作情報を前記ＳＢＣサーバに転送して、前記アプリケーションを実行させる操作情報中継部と、
前記アプリケーションの実行画面を前記ＳＢＣサーバから受け取って、当該実行画面を前記複数のＳＢＣクライアントのすべてに送信する実行画面配信部と
を備えることを特徴とするプロキシサーバ。
【請求項８】
前記実行画面配信部は、前記アプリケーションの実行画面を前記複数のＳＢＣクライアントの数だけ複製する複写部を有することを特徴とする請求項７に記載のプロキシサーバ。
【請求項９】
前記操作情報中継部は、
受信した入力操作情報が、前記操作権が付与された第１のＳＢＣクライアントから送信された第１の入力操作情報か否かを判断する判断部と、
前記受信した操作情報が、前記第１の入力操作情報でない場合に、当該受信した操作情報を破棄する破棄部と
を有することを特徴とする請求項７に記載のプロキシサーバ。
【請求項１０】
前記操作情報中継部は、前記受信した操作情報が前記第１の入力操作情報である場合に、当該受信した操作情報を前記ＳＢＣサーバに転送する送信部をさらに有することを特徴とする請求項９に記載のプロキシサーバ。
【請求項１１】
前記操作権管理部は、前記操作権を有さない第２のＳＢＣクライアントから操作権取得要求を受け取った場合に、前記第１のＳＢＣクライアントに対して、操作権の譲渡依頼を送信することを特徴とする請求項７に記載のプロキシサーバ。
【請求項１２】
前記操作権管理部は、前記第１のＳＢＣクライアントから操作権譲渡の許可通知を受け取った場合に、前記操作権を、前記第２のＳＢＣクライアントに移転することを特徴とする請求項１１に記載のプロキシサーバ。
【請求項１３】
任意のアプリケーションを導入可能なＳＢＣミドルウエアを備えるＳＢＣサーバと、前記ＳＢＣサーバにネットワークを介して接続され前記アプリケーションを遠隔的に利用可能な複数のＳＢＣクライアントとの間に、プロキシサーバを設置し、
前記プロキシサーバから、前記複数のＳＢＣクライアントの中の第１のＳＢＣクライアントに、前記ＳＢＣサーバ上のアプリケーションを遠隔実行するための操作権を付与し、
前記第１のＳＢＣクライアントによる第１の入力操作情報を、前記プロキシサーバからＳＢＣサーバに中継して前記アプリケーションを実行させ、
前記アプリケーションの実行画面を前記プロキシサーバで複製し、複製した実行画面を前記複数のＳＢＣクライアントに送信することを特徴とするＳＢＣコラボレーション方法。
【請求項１４】
前記複数のＳＢＣクライアントのすべてに、前記アプリケーションの実行画面を閲覧する閲覧権を付与し、
前記操作権を有さない第２のＳＢＣクライアントによる第２の入力操作情報があった場合に、前記プロキシサーバにおいて、当該第２の入力操作情報を破棄することを特徴とする請求項１３に記載のＳＢＣコラボレーション方法。
【請求項１５】
第２のＳＢＣクライアントから、前記操作権の取得要求があった場合に、前記プロキシサーバから前記第１のＳＢＣクライアントに対して前記操作権の譲渡依頼を発し、
前記第１のＳＢＣクライアントが前記操作権の譲渡を許可した場合に、前記プロキシサーバにより前記操作権を前記第１のＳＢＣクライアントから第２のＳＢＣクライアントに移転することを特徴とする請求項１３に記載のＳＢＣコラボレーション方法。
【請求項１６】
任意のアプリケーションを導入可能なＳＢＣミドルウエアを備えるＳＢＣサーバと、前記ＳＢＣサーバにネットワークを介して接続され前記アプリケーションを遠隔的に利用可能な複数のＳＢＣクライアントとの間に挿入されるプロキシサーバで実行されるＳＢＣコラボレーション処理プログラムであって、
前記プロキシサーバに、第１のＳＢＣクライアントに対して前記アプリケーションの操作権を付与させる手順と、
前記第１のＳＢＣクライアントから、前記アプリケーションを実行する第１の入力操作情報を受信したときに、前記プロキシサーバに、前記第１の入力操作情報を前記ＳＢＣサーバへ中継させる手順と、
前記ＳＢＣサーバから前記アプリケーションの実行画面を受信したときに、前記プロキシサーバに、当該実行画面を前記複数のＳＢＣクライアントに配信させる手順と
を含むことを特徴とするＳＢＣコラボレーション処理プログラム。
【請求項１７】
任意のアプリケーションを導入可能なＳＢＣミドルウエアを備えるＳＢＣサーバに、ネットワークおよびプロキシサーバを介して接続される複数のＳＢＣクライアントの各々にインストールされるＳＢＣコラボレーション補助プログラムであって、
前記プロキシサーバが第１のＳＢＣクライアントに前記アプリケーションの操作権を付与したときに、各ＳＢＣクライアントに当該操作権の所在を表示させる手順と、
前記第１のＳＢＣクライアントが前記アプリケーションを実行したときに、各ＳＢＣクライアントに、前記プロキシサーバを介して送られてくる実行画面を表示させる手順と、
第２のＳＢＣクライアントが前記操作権を取得したときに、各ＳＢＣクライアントに、前記操作権の移転を表示させる手順と
を含むことを特徴とするＳＢＣコラボレーション補助プログラム。
【請求項１８】
各ＳＢＣクライアントに、必要に応じて前記操作権の取得を要求させる手順をさらに含むことを特徴とする請求項１７に記載のＳＢＣコラボレーション補助プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＳＢＣ（ｓｅｒｖｅｒ−ｂａｓｅｄ　ｃｏｍｐｕｔｉｎｇ）コラボレーション技術に関し、特に、複数の遠隔ユーザがＳＢＣサーバ上で稼動するアプリケーション画面を共有し、協調作業することを可能にするプロキシサーバを備えた、センター集中型のＳＢＣコラボレーション技術に関する。
【０００２】
【従来の技術】
近年、いわゆるＳＢＣ（ｓｅｒｖｅｒ−ｂａｓｅｄ　ｃｏｍｐｕｔｉｎｇ）技術により、ネットワーク内のＳＢＣサーバで稼動する任意のアプリケーションを、ネットワークに接続された単一のＳＢＣクライアントのＳＢＣブラウザから、ユーザが遠隔利用できるシステムが開発されている。
【０００３】
ＳＢＣシステムでは、高負荷のアプリケーションをクライアント端末ではなくサーバで実行し、その実行画面だけをクライアントに送信する。ユーザはあたかも自分の端末にインストールされたアプリケーションを実行するかのように、サーバ内のアプリケーションを利用することができる。ユーザとサーバとの関係は基本的に１対１対応であり、各ユーザはそれぞれ単独でサーバ内のアプリケーションを利用する。クライアント端末は、入力操作に対応した実行画面をサーバから受け取るだけなので、ＰＤＡなどの低性能の端末からでも複雑なアプリケーションを実行することが可能になる。
【０００４】
図１は、現在利用されているＳＢＣシステムの概要を説明するためのネットワーク構成図である。現状のＳＢＣシステムαは、任意のアプリケーションをインストール可能なＳＢＣミドルウエア２を具備したＳＢＣサーバ３と、ネットワーク４を介してＳＢＣサーバ３にアクセス可能なＳＢＣクライアント１０６を含む。ＳＢＣクライアント１０６は、ＳＢＣブラウザ１０５を備え、このＳＢＣブラウザ１０５からネットワーク４を介してＳＢＣミドルウエア２上のアプリケーション１を遠隔利用する。
【０００５】
ＳＢＣクライアント１０６のユーザ（不図示）が、ＳＢＣサーバ３上のアプリケーション１を遠隔利用する場合、マウス、キーボード、タブレット、ジョイスティック、その他任意の入力装置（不図示）を使って入力操作する。ＳＢＣブラウザ１０５は、ユーザによる入力操作情報を、ネットワーク４を介してＳＢＣサーバ上で稼動するＳＢＣミドルウエア２に送信する（ＳＴ１）。
【０００６】
ＳＢＣミドルウエア２は、ネットワーク４を介してＳＢＣブラウザ１０５から受信した入力操作情報を、ＳＢＣミドルウエア２上で稼動するアプリケーション１に受け渡す（ＳＴ２）。アプリケーション１は、ユーザの入力操作情報に基づいた処理を実行し、実行結果である画面更新情報をＳＢＣミドルウエア２に供給する（ＳＴ３）。ＳＢＣミドルウエア２は、アプリケーション１から受け取った画面更新情報を、ネットワークを介してＳＢＣクライアント１０６に転送して、画面更新情報の内容をＳＢＣブラウザ１０５の画面に表示させる（ＳＴ４）。
【０００７】
このような動作を繰り返すことで、ユーザは、ＳＢＣサーバ３上のアプリケーション１を、ＳＢＣクライアント１０６にインストールされたアプリケーションのごとく利用することができる。
【０００８】
なお、ＳＢＣサーバ３上のアプリケーション１としては、ＳＢＣミドルウエア２が対応するＯＳ（ｏｐｅｒａｔｉｎｇ　ｓｙｓｔｅｍ）上で動作し得るアプリケーションであれば、たとえば、エディタソフト、ＤＴＰ（ｄｅｓｋｔｏｐ　ｐｕｂｌｉｓｈｉｎｇ）ソフト、ＣＡＤ（ｃｏｍｐｕｔｅｒ　ａｉｄｅｄ　ｄｅｓｉｇｎ）ソフト、ゲームソフトなど、基本的にはどのようなアプリケーションでもほぼ動作可能である。
【０００９】
ＳＢＣミドルウエア２としては、たとえばＭｅｔａＦｒａｍｅ（Ｃｉｔｒｉｘ社の登録商標）、ＶＮＣ（Ｖｉｒｔｕａｌ　Ｎｅｔｗｏｒｋ　Ｃｏｍｐｕｔｉｎｇ；ＡＴ＆Ｔ社）、Ｔａｒａｎｔｅｌｌａ（ＳＣＯ社の登録商標）、ＧＯ−Ｇｌｏｂａｌ（ＧｒａｐｈＯｎ社の登録商標）などを適用することができる。
【００１０】
ところで、現状のＳＢＣシステムαにおけるＳＢＣミドルウエア２は、あくまでも個々のユーザが単独でＳＢＣサーバ３上のアプリケーション１を利用することを前提としている。したがって、ＳＢＣサーバ３で稼動するアプリケーション１の画面を複数のＳＢＣクライアント１０６のＳＢＣブラウザ１０５に表示して、ユーザ間でアプリケーション１を相互に利用する、あるいはリアルタイムで協調作業を行う、などのコラボレーションを実現するのは容易ではない。
【００１１】
一方、ウェブ上で使用可能なアプリケーションを複数人で共有し、協調作業を行う技術が知られている（たとえば、特許文献１および２参照）。また、サーバ上で実際に稼動するアプリケーションソフトを１つに限定して、クライアントのキー操作による実行画面を複数のクライアントに配信し、協調作業を可能にする技術が知られている（たとえば、特許文献３参照）。
【００１２】
【特許文献１】
特開２０００−１１２８６２号公報
【００１３】
【特許文献２】
特開平１１−２５０４２号公報
【００１４】
【特許文献３】
特開平３−２７３４４３号公報
【００１５】
【発明が解決しようとする課題】
しかし、これらの技術を、高度で複雑なアプリケーションの並列的な遠隔利用とデータの集中管理を前提とするサーバベースコンピューティング（ＳＢＣ）によるコラボレーションに、即座に適用することはできない。
【００１６】
そこで、本発明は、既存のＳＢＣシステムを利用して、複数のＳＢＣクライアントとＳＢＣサーバとの間で、ＳＢＣサーバ内の任意のアプリケーションを共有し、協調作業することを可能にする新規なＳＢＣコラボレーションシステムを提供する。
【００１７】
【課題を解決するための手段】
上記課題を解決するために、ＳＢＣサーバと複数のＳＢＣクライアントとをつなぐネットワークの任意の領域にプロキシサーバを配置し、１のＳＢＣクライアントにより実行されるＳＢＣサーバ上のアプリケーション画面をプロキシサーバでコピーして、各ＳＢＣクライアントに配信する。また、ＳＢＣクライアントの要求に応じて、アプリケーションを操作できる操作権の所在をプロキシサーバで動的に切り換えることにより、協調作業（セッション）に参加している任意のＳＢＣクライアントがアプリケーション操作に介入することを可能にする。
【００１８】
より具体的には、本発明の第１の側面では、任意のアプリケーションを導入可能なＳＢＣミドルウエアを備えるＳＢＣサーバと、ＳＢＣサーバにネットワークを介して接続され、前記アプリケーションを遠隔的に利用可能な複数のＳＢＣクライアントと、ネットワーク上の任意の領域に配置され、ＳＢＣサーバと複数のＳＢＣクライアントとの間を接続するプロキシサーバとを含むＳＢＣコラボレーションシステムを提供する。このＳＢＣコラボレーションシステムにおいて、プロキシサーバは、（ａ）第１のＳＢＣクライアントに、前記アプリケーションの実行を許可する操作権を付与し、（ｂ）第１のＳＢＣクライアントから前記アプリケーションを実行する第１の入力操作情報を受信し、第１の入力操作情報をＳＢＣサーバに転送して前記アプリケーションを実行させ、（ｃ）前記アプリケーションの実行画面をＳＢＣサーバから受け取って、この実行画面を前記複数のＳＢＣクライアントに配信する。
【００１９】
複数のＳＢＣクライアントは、ＳＢＣサーバ上のアプリケーションを用いて協調作業するためのセッショングループを構成する。プロキシサーバは、セッショングループを構成する複数のＳＢＣクライアントの間で、操作権の受け渡しを管理する。操作権が与えられるのは、複数のＳＢＣクライアントの中の１のＳＢＣクライアントであるが、操作権の所在を複数のＳＢＣクライアントの間で調整することによって、複数のＳＢＣクライアントが協調して、ＳＢＣサーバ上の１のアプリケーションを操作することが可能になる。
【００２０】
プロキシサーバは、操作権を有するＳＢＣクライアントの入力操作に応じたアプリケーションの実行画面を、セッションに参加している複数のＳＢＣクライアントの数だけ複製し、配信する。
【００２１】
プロキシサーバは、操作権を有さない第２のＳＢＣクライアントから操作権取得要求を受け取った場合に、第１のＳＢＣクライアントに対し、操作権譲渡依頼を送信する。そして、第１のＳＢＣクライアントから操作権譲渡の許可通知を受け取った場合に、操作権を前記第２のＳＢＣクライアントに移転する。
【００２２】
このように、プロキシサーバを介してアプリケーション操作権の移転を調整することにより、既存のＳＢＣミドルウエアをそのまま利用して、複数のＳＢＣクライアントの間での協調作業が可能になる。
【００２３】
本発明の第２の側面では、任意のアプリケーションを導入可能なＳＢＣミドルウエアを備えるＳＢＣサーバと、ＳＢＣサーバにネットワークを介して接続され前記アプリケーションを遠隔的に利用可能な複数のＳＢＣクライアントとの間に挿入されるプロキシサーバを提供する。プロキシサーバは、（ａ）第１のＳＢＣクライアントに、前記アプリケーションの実行を許可する操作権を付与する操作権管理部と、（ｂ）第１のＳＢＣクライアントから、前記アプリケーションを実行するための第１の入力操作情報を受信し、この第１の入力操作情報を前記ＳＢＣサーバに転送して前記アプリケーションを実行させる操作情報中継部と、（ｃ）前記アプリケーションの実行画面をＳＢＣサーバから受け取って、当該実行画面を複数のＳＢＣクライアントに送信する実行画面配信部とを備える。
【００２４】
実行画面配信部は、アプリケーションの実行画面を複数のＳＢＣクライアントの数だけ複製する複写部を有する。複製された実行画面を一律にセッションに参加しているＳＢＣクライアントに配信するので、ＳＢＣクライアントとＳＢＣサーバとの間の通信速度、応答性を高く維持することができる。
【００２５】
操作権管理部は、操作権を有さない第２のＳＢＣクライアントから、操作権取得要求を受け取った場合に、第１のＳＢＣクライアントに対して、操作権の譲渡依頼を送信する。そして、第１のＳＢＣクライアントから操作権譲渡の許可通知を受け取った場合に、操作権を第２のＳＢＣクライアントに移転する。
【００２６】
操作権管理部により、複数のＳＢＣクライアントの間でのアプリケーション操作権の移転を管理するので、既存のＳＢＣシステムを利用した協調作業を可能にする。
【００２７】
その他の構成、特徴についても、以下で図面を参照して述べる詳細な説明により、明白になるものである。
【００２８】
【発明の実施の形態】
図２は、本発明の一実施形態に係るＳＢＣコラボレーションシステムβの概略構成図である。ＳＢＣコラボレーションシステムβは、ＳＢＣサーバ３と、ＳＢＣサーバ３にネットワーク４を介して接続される複数のＳＢＣクライアント６Ａ、６Ｂ，６Ｃと、ネットワーク４上の任意の領域に設置されるプロキシサーバ１０を含む。
【００２９】
ＳＢＣサーバ３は、任意のアプリケーションを導入可能なＳＢＣミドルウエア２を有する。ＳＢＣミドルウエア２は既存のＳＢＣミドルウエアである。各ＳＢＣクライアント６は、ＳＢＣブラウザ５と、ＳＢＣコラボレーション補助部７とを有し、ユーザは、ＳＢＣブラウザ６から、ネットワーク４を介してＳＢＣミドルウエア２上のアプリケーション１を遠隔利用することができる。ＳＢＣコラボレーション補助部７は、プロキシサーバ１０によるＳＢＣコラボレーション処理を、ＳＢＣクライアント６の側から補助する。
【００３０】
プロキシサーバ１０は、ＳＢＣサーバ３とＳＢＣクライアント６Ａ〜６Ｃとの間に設置され、操作情報処理部１１と、コラボレーション制御部１２を有する。操作情報処理部１１は、各ＳＢＣクライアント６のＳＢＣブラウザ５を介して入力されるアプリケーション操作に関連する情報を処理する。一方、コラボレーション制御部１２は、ＳＢＣクライアントのＳＢＣコラボレーション補助部７を介して入力される情報を処理し、複数のＳＢＣクライアント６間でのコラボレーション動作を制御する。
【００３１】
ネットワーク４およびプロキシサーバ１０を介して、ＳＢＣサーバ３に接続されるＳＢＣクライアント６Ａ〜６Ｃは、ＳＢＣミドルウエア２上のアプリケーション１を利用したセッションを行うためのグループを構成する。これをたとえばセッショングループＩとする。図２では、例示の便宜上、３つのＳＢＣクライアント６Ａ〜６Ｃを図示しているが、もちろんこれ以上の数のＳＢＣクライアントでセッショングループを構成してもよい。また図示はしないが、複数のセッショングループが、ネットワーク４とプロキシサーバ１０を介してＳＢＣサーバ３に接続され、セッショングループごとに並列的にアプリケーション１を遠隔利用して協調作業することができる。
【００３２】
グループ全体でのセッションＩＤと、このグループでセッションに参加するユーザのユーザＩＤは、あらかじめ契約等によりプロキシサーバに予約登録しておく。予約登録により、ＳＢＣクライアント６に、協調作業を行うためのプロキシサーバのＩＰアドレスと、ポート番号が付与されるものとする。
【００３３】
プロキシサーバ１０は、ＳＢＣクライアント６から見ると仮想的なＳＢＣサーバであり、ＳＢＣサーバ３からみると仮想的なＳＢＣクライアントである。サーバ３にとっては、アプリケーション１を利用するクライアントはセッショングループＩであって、セッショングループＩにいくつのＳＢＣクライアントが属し、現在グループ内のどのＳＢＣクライアントがアプリケーションの実行を行っているかは問題でない。実際にアプリケーションを実行するのは、セッショングループＩ内の１のＳＢＣクライアントであるが、操作権の所在については、プロキシサーバ１０が管理しており、ＳＢＣサーバ３からみると、あくまでもセッショングループＩがアプリケーション１を利用している状態が成立する。したがって、既存のＳＢＣミドルウエア２の基本態様である１対１対応のアプリケーション操作をそのまま利用して、グループＩの内部で複数のＳＢＣクライアントによる協調作業が可能になる。
【００３４】
図３は、プロキシサーバ１０の詳細なブロック構成図である。プロキシサーバ１０は、上述した操作情報処理部１１とコラボレーション制御部１２に加え、ＳＢＣクライアント６Ａ、６Ｂ，６Ｃからの入力を受け付ける、対クライアント入力受付部１５と、ＳＢＣサーバ３からの入力を受け付ける、対サーバ入力受付部１６と、クライアント情報を格納するクライアント情報データベース１８を有する。クライアント情報としては、セッションＩＤ，参加予定ユーザＩＤ，パスワード、ＳＢＣサーバ３のＩＰ、ポート番号などが挙げられる。なお、クライアント情報の一部またはすべては、ＳＢＣサーバ３内にも設定される。
【００３５】
対クライアント入力受付部１５は、ＳＢＣクライアント６から受け取ったパケットを、パケットに含まれる情報の種類に応じて、操作情報処理部１１か、コラボレーション制御部１２のいずれかに振り分ける。
【００３６】
操作情報処理部１１は、セッショングループＩに属する１のＳＢＣクライアント６による入力操作をＳＢＣサーバ３に中継する操作情報中継部２５と、入力された操作情報に基づいてＳＢＣサーバ３内で実行された実行画面を各ＳＢＣクライアント６Ａ〜６Ｃに配信するＳＢＣブラウザ画面配信部２１を有する。ＳＢＣブラウザ画面配信部２１は複写部２２を有し、配信に先立って、アプリケーションの実行画面を参加ユーザ分だけコピーする。
【００３７】
操作情報中継部２５は、対クライアント入力受付部１５から送られてきたパケットが、現在操作権が与えられているＳＢＣクライアント（以下、「特権ユーザ」と称する）からのパケットであるか否かを判断するパケット判断部２６を有する。パケットが特権ユーザからのものであれば、パケット送信部２７からこのパケットをＳＢＣサーバ３へ送信する。パケットが現在の特権ユーザ以外のユーザ（以下、「通常ユーザ」と称する）からのものであれば、誤操作による入力とみなして、操作情報破棄部２８でパケットを破棄する。
【００３８】
一方、コラボレーション制御部１２は、コラボレーションユーザ認証部３１と、コラボレーションセッション管理部３２と、コラボレーション操作権管理部３３を有する。これらの要素の動作の詳細については後述する。
【００３９】
図４は、ＳＢＣクライアント６上に表示されるＳＢＣコラボレーションブラウザ４１の一例を示す。ＳＢＣコラボレーションブラウザ４１は、ＳＢＣブラウザ５と、ＳＢＣコラボレーション補助部７を有する。ＳＢＣブラウザ５は、サーバ３で実行され、プロキシサーバ１０により複写・配信された実行画面（ＳＢＣブラウザ画面）を表示する。すべての参加ユーザは、ＳＢＣブラウザ５上で、現在の実行画面をリアルタイムで閲覧することができる。
【００４０】
ＳＢＣコラボレーション補助部７は、セッション情報表示部４２と、能動制御部４３を有する。セッション情報表示部４２は、一例として、セッション参加者および現在の操作権の所在を示す参加者一覧画面５２と、システムの稼動履歴を表示するメッセージ表示画面５３を有する。能動制御部４３は、操作権取得要求ボタン５４を有する。ＳＢＣミドルウエア２上のアプリケーション１を利用した協調作業中に、任意のＳＢＣクライアントがアプリケーション１の実行に関与したい場合に、この操作権取得要求ボタン５４をクリックする。操作権取得要求ボタンによる操作権変更については、後述する。
【００４１】
図４の例では、たとえばＳＢＣクライアント６ＡのユーザであるＴａｎａｂｅに操作権が与えられており、他のＳＢＣクライアント６Ｂ，６Ｃのユーザは、閲覧権のみを有する。閲覧権は参加ユーザ全員に自動的に与えられ、もちろん操作権を有するユーザも閲覧権を有する。したがって、ＳＢＣクライアント６とプロキシサーバ１０の間で、アプリケーションの操作権者には双方向の通信が与えられ、それ以外のアプリケーション閲覧者には片方向の通信が成立する。
【００４２】
セッション開始時の操作権の所在については、たとえば、セッショングループＩ内でセッションを召集して最初にプロキシサーバ１０にアクセスした者に操作権を与えてもよいし、開始時に操作権が与えられる者をあらかじめ決めておいてもよい。
【００４３】
図５は、図２のＳＢＣシステムβを用いたコラボレーションの処理シーケンスを示す図である。ＳＢＣクライアント６Ａ〜６Ｃ、プロキシサーバ１０、ＳＢＣサーバ３のすべてが立ち上げられている状態とする（ＳＴ１１〜ＳＴ１４）。
【００４４】
この状態で、たとえばＳＢＣクライアント６Ａのユーザ（特権ユーザ）が、あらかじめ指定されたプロキシサーバ１０のポート（不図示）に接続して、ＳＢＣコラボレーションのサービスを要求する（ＳＴ１５）。この接続要求は、図４に示すＳＢＣコラボレーションブラウザ４１のＳＢＣコラボレーション補助部７から行われる。プロキシサーバ１０は、アクセスしてきたＳＢＣクライアント６Ａについてクライアント認証を行う（ＳＴ１６）。
【００４５】
クライアント認証手続きにおいて、プロキシサーバ１０のコラボレーションユーザ認証部３１は、対クライアント入力受付部１５から、ＳＢＣクライアント６ＡのユーザＩＤ、パスワード、クライアントＩＰアドレスなどを受け取る。コラボレーションユーザ認証部３１は、コラボレーションセッション管理部３２にセッションＩＤの確認を要求する。コラボレーションセッション管理部３２は、クライアント情報データベース１８を検索して、アクセスされたプロキシサーバ１０のポート番号から予約されたセッションＩＤを抽出し、抽出したセッションＩＤから参加予定ユーザＩＤを検索する。コラボレーションユーザ認証部３１は、ＳＢＣクライアント６ＡのユーザＩＤが参加予定ユーザＩＤの中に含まれていれば、そのパスワードを確認して認証を完了し（ＳＴ１６でＹＥＳ）、ＳＢＣクライアント６Ａに認証完了情報を送信する（ＳＴ１７）。
【００４６】
一方、コラボレーションセッション管理部３２は、ユーザ認証部３１でユーザ認証が成功したならば、セッションＩＤ，ユーザＩＤ，クライアントＩＰアドレスなどのセッション情報を更新する。コラボレーション操作権管理部３３は、セッション情報の更新にともなって、最初に接続要求してきたＳＢＣクライアント６Ａに操作権を付与し、操作権情報を更新する。
【００４７】
この時点で、ＳＢＣクライアント６ＡのＳＢＣコラボレーション補助部７Ａの参加者一覧画面５２（図４参照）には、最初の参加者であるＳＢＣクライアント６Ａのユーザ名（たとえばＴａｎａｂｅ）が、操作権を有する特権ユーザとしてＩＰアドレス（１９２．１６８．１０．１）とともに表示される。そして、他のセッション参加者の認証が完了するまで待機状態となる（ＳＴ１８）。
【００４８】
同様に、その他のＳＢＣクライアント６Ｂ，６Ｃも、プロキシサーバ１０に対して接続を要求し（ＳＴ１９）、それぞれクライアント認証を受ける（ＳＴ２０でＹＥＳ）。ＳＢＣクライアント６Ｂ，６Ｃの認証が完了する都度、プロキシサーバ１０から、すでに参加しているすべてのＳＢＣクライアント６に認証完了情報が送信される（ＳＴ２１）。これにより、ＳＢＣコラボレーション補助部７の参加者一覧画面５２に認証が完了したユーザ名が順次表示される。たとえば、ＳＢＣクライアント６Ｂの参加要求に対して認証が完了したならば、ＳＢＣクライアント６Ａの参加者一覧画面５２に、新たな参加者としてＳＢＣクライアント６Ｂのユーザ名（たとえばＮａｋａｍｕｒａ）が追加表示される（ＳＴ２２ａ）。同時に、ＳＢＣクライアント６Ｂの参加者一覧画面５２には、特権ユーザの名前（Ｔａｎａｂｅ）と自己の名前（Ｎａｋａｍｕｒａ）とが表示される（ＳＴ２２ｂ）。そして、すべての参加者の認証が済むまで、待機する（ＳＴ２２ａ、ＳＴ２２ｂ）。
【００４９】
次に、ＳＢＣクライアント６Ａ（特権ユーザ）は、プロキシサーバ１０に対してＳＢＣコラボレーション開始命令を送信する（ＳＴ２３）。プロキシサーバ１０は、コラボレーション開始命令を受信し（ＳＴ２４）、ＳＢＣサーバ３に対してＳＢＣサービスの開始を要求する（ＳＴ２５）。
【００５０】
ＳＢＣサーバ３は、プロキシサーバ１０からのサービス要求（セッション開始要求）に対してクライアント認証を行い（ＳＴ２６）、認証に成功したならば（ＳＴ２６でＹＥＳ）、プロキシサーバ１０に対してコラボレーション開始通知を送信する（ＳＴ２７）。プロキシサーバ１０は、このコラボレーション開始通知を受信し、セッションに参加しているすべての参加者のＳＢＣクライアント６Ａ〜６Ｃに送信する（ＳＴ２８）。これを受けて、図４に示すように、ＳＢＣクライアント６Ａ〜６Ｃのメッセージ表示画面５３に、コラボレーションが開始された旨が表示される（ＳＴ２９、ＳＴ３０）。
【００５１】
コラボレーションの開始と並行して、ＳＢＣサーバ３は、アプリケーション１の全画面情報をプロキシサーバ１０に送信する（ＳＴ３１）。プロキシサーバ１０は、全画面情報を受信すると、（ＳＴ３２）、その全画面情報を、参加ユーザの数だけ複写し、複写画面を各ＳＢＣクライアント６Ａ〜６Ｃに配信する（ＳＴ３３）。配信された全画面情報は、ＳＢＣクライアント６Ａ〜６ＣのＳＢＣブラウザ５Ａ〜５Ｃ上に表示される（ＳＴ３４、ＳＴ３５）。
【００５２】
図６および８は、上述したコラボレーション開始処理（ＳＴ２３〜ＳＴ３０）と、全画面出力処理（ＳＴ３１〜ＳＴ３５）を、システム動作の側面から示す図である。まず、図６において、操作権を有するＳＢＣクライアント６ＡのＳＢＣコラボレーション補助部７Ａは、プロキシサーバ１０に対してコラボレーション開始要求を送信する（矢印（１））。コラボレーションの開始要求は、たとえば図７に示すコラボレーション開始確認画面で、開始ボタン６１をクリックすることにより実行される。
【００５３】
コラボレーション開始確認画面は、操作権の与えられたＳＢＣクライアント６ＡのＳＢＣコラボレーション補助部７Ａにのみ表示される構成とする。この場合、特権ユーザに与えられるアプリケーションの操作権の中に、コラボレーションの開始権も含まれることになる。あるいは、認証が完了したすべての参加ユーザのＳＢＣコラボレーション補助部５に、コラボレーション開始確認画面を表示する構成としてもよい。後者の場合、操作権を有さない通常ユーザがコラボレーション開始要求ボタンをクリックしても、コラボレーションユーザ認証部３１とコラボレーション操作権管理部３３による確認処理で拒否されることになるので、結局は、特権ユーザがコラボレーションを開始することになる。
【００５４】
コラボレーション開始要求は、プロキシサーバ１０の対クライアント入力受付部１５で受信され、コラボレーションセッション管理部３２に送られる（矢印（２））。コラボレーションセッション管理部３２は、コラボレーション開始要求が入力されたポート番号からセッションＩＤを検索し、検索されたセッションＩＤが、現在起動されていない（つまり、これから新たに開始される）セッションのＩＤであることを確認する。そして、コラボレーション開始要求を起動したユーザのＩＤを確認する（処理（３））。
【００５５】
コラボレーションセッション管理部３２は、コラボレーション操作権管理部３３に、このセッションの操作権の所在がコラボレーションの開始を要求したユーザにあることを確認する（矢印（４））。確認後、コラボレーションユーザ認証部３１から、コラボレーションの開始を要求したユーザのパスワードを取得する（矢印（５））。
【００５６】
パスワード取得後、コラボレーションセッション管理部３２は、ＳＢＣサーバ３にＳＢＣセッションの開始を要求し、ＳＢＣサーバ３はユーザＩＤ、パスワード、ＳＢＣサーバ３のポート番号などからクライアント認証して、セッション開始要求に対する応答を返す（矢印（６））。なお、図示の便宜上、処理（６）を双方向の矢印で示してあるが、ＳＢＣサーバ３からの応答は、対サーバ入力受付部１６を介してコラボレーションセッション管理部３２に供給される。
【００５７】
コラボレーションセッション管理部３２は、各ＳＢＣクライアント６Ａ〜６Ｃの対プロキシ入力受付部８Ａ〜８Ｃに対して、セッション開始通知を送信する（矢印（７））。セッション開始通知は、各ＳＢＣクライアントのＳＢＣコラボレーション補助部７Ａ〜７Ｃに送られ（矢印（８））、図４のメッセージ表示部５３に表示される。図４の例では、「１７：２５コラボレーションが開始されました」と表示されている。
【００５８】
一方、ＳＢＣミドルウエア２は、セッション開始要求に応じて、アプリケーション１を起動する（矢印（９））。アプリケーション１はアプリケーションの全画面を出力し（矢印（１０））、ＳＢＣサーバ３は、プロキシサーバ１０の対サーバ入力受付部１６に、全画面を送信する（矢印（１１））。
【００５９】
図８は、ＳＢＣ画面出力時のシステム動作図である。図８に示す動作は、セッション開始直後の全画面出力にも、アプリケーションの実行結果である実行画面の出力にも等しく適用される。相違は、全画面出力時には、すべての画面情報を複写し配信するのに対し、アプリケーション実行画面の場合は、実行操作による変更部分のみを複写し、配信する点だけであるので、図８を参照して全画面出力動作を説明する。
【００６０】
まず、セッション開始要求に応じてＳＢＣサーバ３内で立ち上げられたアプリケーション１は、ＳＢＣミドルウエア２上で全画面を開く（矢印（１））。ＳＢＣミドルウエア２は、全画面をその属性とともにプロキシサーバ１０に送信する（矢印（２））。プロキシサーバ１０の対サーバ入力受付部１６は、受信した全画面および属性を、ポート番号とともにＳＢＣブラウザ画面配信部２１の複写部２２に供給する（矢印（３））。
【００６１】
ＳＢＣブラウザ画面配信部２１は、コラボレーションセッション管理部３２に対して、画面出力先を確認する。コラボレーションセッション管理部３２は、ポート番号から、セッションＩＤと、このセッションに参加するすべてのＳＢＣクライアントのＩＰアドレスを検索し、画面出力先の検索結果をＳＢＣブラウザ画面配信部２１に供給する（矢印（４））。ＳＢＣブラウザ画面配信部２１は、複写部２２で画面出力先の数に対応する部数だけ、全画面情報をコピーし、これを各ＳＢＣクライアント６Ａ〜６Ｃに配信する（矢印（５））。
【００６２】
各ＳＢＣクライアント６Ａ〜６Ｃの対プロキシ入力受付部８Ａ〜８Ｃは、受信した全画面情報をＳＢＣブラウザ５Ａ〜５Ｃに供給し（矢印（６））、ＳＢＣブラウザ５Ａ〜５Ｃに最初の全画面を表示する。
【００６３】
図５に戻り、参加者全員のＳＢＣブラウザ５Ａ〜５Ｃに全画面が表示され、実質的にコラボレーション可能な状態になったところで、アプリケーションの操作権が与えられたＳＢＣクライアント６Ａの特権ユーザが、マウス・キーボード等を用いてＳＢＣブラウザ５Ａ上でアプリケーションの操作を行う（ＳＴ３６）。マウス・キーボード等の入力操作情報は、プロキシサーバ１０の対クライアント入力受付部１５から、操作情報処理部１１の操作情報中継部２５に供給される。
【００６４】
操作情報中継部２５のパケット判断部２６（図３参照）は、この入力操作情報を含むパケットが、操作権を有する特権ユーザからのものであるか否かを判断する（ＳＴ３７）。パケットが、通常ユーザからのものである場合は、（ＳＴ３７でＮＯ）、操作情報破棄部２８で、この入力操作情報を破棄する。一方、パケットが特権ユーザからのものであれば（ＳＴ３７でＹＥＳ）、パケット送信部２７から、このパケットをＳＢＣサーバ３に送信する（ＳＴ３８）。
【００６５】
パケットの判断は、パケット判断部２６が、コラボレーションセッション管理部３２およびコラボレーション操作権管理部３３に、受信したパケットに関するセッションＩＤ、参加ユーザＩＤ，現在の操作権の所在（特権ユーザＩＤ）を確認することによって行われる。このような判断により、受信したパケットが正しく操作権を有する特権ユーザからのパケットである場合にのみ、ＳＢＣサーバ３に入力操作情報を中継する。操作権のない通常ユーザからのパケットを破棄するのは、操作権がないにもかかわらずマウス・キーボード等の誤操作、あるいは無意識の操作などで、アプリケーションの実行操作が錯綜するのを防止するためである。
【００６６】
ＳＢＣサーバ３は、特権ユーザからの入力操作情報を受け取ると、その入力操作情報に基づいてアプリケーション１を実行する（ＳＴ３９）。アプリケーション１を実行した結果、実行画面が更新される。ＳＢＣサーバ３は、更新部分（変更部分）についての画面更新情報を、プロキシサーバ１０に送信する（ＳＴ４０）。上述したように、実際にアプリケーションの実行が開始されると、セッション開始時とは異なり、全画面情報を送信する必要はなく、実行結果である差分情報だけを送信すればよい。
【００６７】
プロキシサーバ１０は対サーバ入力受付部１６で画面更新情報を受信すると、この画面更新情報をＳＢＣブラウザ画面配信部２１に供給する。ＳＢＣブラウザ画面配信部２１は、画面更新情報を受信すると（ＳＴ４１）、複写部２２で画面更新情報を参加ユーザ分コピーし、これを各ＳＢＣクライアント６Ａ〜６Ｃに配信する（ＳＴ４２）。ＳＢＣクライアント６Ａ〜６Ｃは、すでに表示されている全画面に画面更新情報を組み込んで、特権ユーザによるアプリケーションの実行結果をＳＢＣブラウザ５Ａ〜５Ｃ上に表示する（ＳＴ４３，ＳＴ４４）。
【００６８】
画面更新情報の複写、配信動作は、図８を参照して説明した全画面情報の複写、配信動作と同様であるので、ここでは説明を省略する。特権ユーザがアプリケーションの実行を継続する限り、ＳＴ３６〜ＳＴ４４の処理が繰り返され、各ＳＢＣクライアント６Ａ〜６Ｃに実行画面がリアルタイムで表示される。
【００６９】
ＳＢＣクライアントは、表示機能さえあれば、複雑なアプリケーションの実行をリアルタイムで遠隔閲覧することができ、各ＳＢＣクライアントでのアプリケーションの運用管理コストを削減することができる。また、セッション開始時の全画面情報の送信以降は、アプリケーションの実行による画面更新情報のみを送信するので、通信量が軽く、十分な通信速度を確保できる。さらに、ＳＢＣクライアントに配信する画面情報をコピーするだけなので、プロキシサーバ１０での処理が早く、ＳＢＣコラボレーションシステム全体としてアプリケーションの実行に対する即応性や操作性が高い。
【００７０】
操作権を有する特権ユーザのＳＢＣクライアントも、表示装置と入力装置さえあれば、ＳＢＣサーバに搭載された複雑で高度なアプリケーションを、ＳＢＣクライアント自体にインストールされたアプリケーションを操作するかのように実行することができる。実行履歴は、ＳＢＣサーバで集中管理するので、ＳＢＣクライアントの資源管理の負担が大幅に軽減される。
【００７１】
図９は、複数のセッション参加ユーザの間での操作権受け渡しの処理シーケンスを示す図である。セッション参加ユーザのＳＢＣクライアント６Ａ〜６Ｃ、プロキシサーバ１０、ＳＢＣサーバ３のすべてがセッション状態にある（ＳＴ５１〜ＳＴ５４）。
【００７２】
まず、ＳＢＣクライアント６Ｂ，６Ｃのいずれかの通常ユーザが、ＳＢＣコラボレーション補助部７の操作権取得要求ボタン５４（図４参照）をクリックすることによって、プロキシサーバ１０に対し、アプリケーション操作権の取得要求を行う（ＳＴ５５）。プロキシサーバ１０は、操作権取得要求を受信すると（ＳＴ５６）、現在の特権ユーザのＳＢＣクライアント６Ａに対して、アプリケーション操作権の譲渡依頼を発する（ＳＴ５７）。
【００７３】
ＳＢＣクライアント６Ａでは、アプリケーション操作権の譲渡依頼を許可するか否かを特権ユーザに問い合わせる（ＳＴ５８）。問い合わせは、たとえば図１１（ａ）に示す操作権譲渡要求画面を、ＳＢＣクライアント６ＡのＳＢＣコラボレーション補助部７Ａに表示することにより行なう。特権ユーザは、アプリケーション操作権の譲渡を許可する場合（ＳＴ５８でＹＥＳ）は、許可ボタン７１をクリックし、操作権の譲渡を拒否する場合（ＳＴ５８でＮＯ）は、拒否ボタン７２をクリックする。
【００７４】
図９の例では、操作権譲渡要求画面は、現在の特権ユーザ（ＳＢＣクライアント６Ａ）のＳＢＣコラボレーション補助部７Ａにのみ表示される構成としているが、操作権変更の予告として、すべてのＳＢＣクライアント６Ａ〜６ＢのＳＢＣコラボレーション補助部７Ａ〜７Ｃに操作権譲渡要求画面を表示する構成としてもよい。この場合は、特権ユーザ以外の者による許可ボタン７１あるいは拒否ボタン７２の操作は、プロキシサーバ１０での特権ユーザＩＤの確認後に破棄されることになる。
【００７５】
操作権譲渡要求画面のボタン操作により、ＳＢＣクライアント６Ａは譲渡依頼に対する回答をプロキシサーバ１０に送信する（ＳＴ５９）。プロキシサーバ１０は、特権ユーザからの回答を受信すると（ＳＴ６０）、操作権の譲渡が成立したかどうかを判断し（ＳＴ６１）、譲渡依頼結果をＳＢＣクライアント６Ａ〜６Ｃに送信する（ＳＴ６２）。
【００７６】
譲渡依頼結果は、ＳＢＣクライアント６Ａ〜６ＣのＳＢＣコラボレーション補助部７に表示される（ＳＴ６３、ＳＴ６４）。譲渡依頼が拒否された場合は、たとえば図１１（ｂ）に示す操作権譲渡拒否画面が、操作権取得要求を行ったＳＢＣクライアント６ＣのＳＢＣコラボレーション補助部７Ｃに表示される。譲渡依頼が許可された場合は、すべてのＳＢＣクライアント６Ａ〜６Ｃの参加者一覧画面５２（図４参照）が、たとえば、「閲覧：Ｔａｎａｂｅ（１９２．１６８．１０．１）、閲覧：Ｎａｋａｍｕｒａ（１９２．１６８．１０．２）、操作権：Ｓｕｚｕｋｉ（１９２．１６８．１０．３）」のように変更される。操作権の所在が変更されたことが明示されれば、表示の順序は不問である。操作権の所在をハイライト表示する、異なる色で表示するなどして、強調してもよい。また、参加者一覧画面５２上で操作権の変更を表示するとともに、メッセージ表示画面５３のセッション履歴に、操作権の譲渡を時刻とともに表示してもよい。
【００７７】
図１０は、操作権の変更手続きを、システム動作の側面から説明するための図である。たとえば、ＳＢＣクライアント６Ｃが、ＳＢＣコラボレーション補助部７Ｃからプロキシサーバ１０に操作権取得要求を送信する（矢印（１））。プロキシサーバ１０の対クライアント入力受付部１５は、この操作権取得要求を、ポート番号、クライアントＩＰアドレスとともに、コラボレーション操作権管理部３３に供給する（矢印（２））。コラボレーション操作権管理部３３は、コラボレーションセッション管理部３２に、セッションＩＤおよびユーザＩＤを確認する。コラボレーションセッション管理部３２は、ポート番号からセッションＩＤとユーザＩＤを抽出し、抽出結果をコラボレーション操作権管理部３３に供給する（矢印（３））。コラボレーション操作権管理部３３は、セッションＩＤから現在の特権ユーザＩＤを検索し（処理（４））、現在の特権ユーザ（ＳＢＣクライアント６Ａのユーザ）に、操作権譲渡依頼を送信する（矢印（５））。
【００７８】
ＳＢＣクライアント６Ａの対プロキシ入力受付部８Ａは、受信した操作権譲渡依頼をＳＢＣコラボレーション補助部７Ａに供給する（矢印（６））。ＳＢＣコラボレーション補助部７Ａは、たとえば図１１（ａ）に示す操作権譲渡依頼画面を表示する。ＳＢＣクライアント６Ａは、譲渡依頼に対する回答をプロキシサーバ１０に送信する（矢印（７））。プロキシサーバ１０の対クライアント入力受付部１５は、譲渡依頼結果をコラボレーション操作権管理部３３に供給する（矢印（８））。
【００７９】
コラボレーション操作権管理部３３は、回答結果が操作権譲渡の許可であれば、現在の特権ユーザＩＤを更新して、更新された特権ユーザ情報を、すべてのＳＢＣクライアント６Ａ〜６Ｃに送信する（矢印（９））。回答結果が操作権譲渡の拒否であれば、現在の特権ユーザＩＤを維持して、操作権拒否の通知をＳＢＣクライアント６Ｃに送信する。
【００８０】
ＳＢＣクライアント６Ａ〜６Ｃの対プロキシ入力受付部８Ａ〜８Ｃは、新たな特権ユーザ、または操作権譲渡依頼の拒否結果をＳＢＣコラボレーション補助部７Ａ〜７Ｃに供給し、表示する（矢印（１０））。
【００８１】
図９に戻って、操作権の譲渡の結果、新たな特権ユーザ、たとえばＳＢＣクライアント６Ｃのユーザは、マウス・キーボード等を用いて、ＳＢＣブラウザ５Ｃ上でアプリケーションを操作する（ＳＴ６５）。入力操作情報は、プロキシサーバ１０へ送信され、プロキシサーバ１０の操作情報中継部２５で、入力操作情報が特権ユーザからのパケットであるか否を判断する（ＳＴ６６）。特権ユーザからのパケットであれば（ＳＴ６６でＹＥＳ）、この入力操作情報をＳＢＣサーバ３に中継する（ＳＴ６７）。ＳＢＣサーバ３は、入力操作情報に応じてアプリケーションを実行する（ＳＴ６８）。特権ユーザからのパケットでない場合は（ＳＴ６６でＮＯ）、操作情報破棄部２８でパケットを破棄する。
【００８２】
ＳＢＣサーバ３は、アプリケーションの実行結果である画面更新情報をプロキシサーバ１０に送信する（ＳＴ６９）。プロキシサーバ１０は、受信した画面更新情報を参加ユーザ分コピーして、セッションに参加しているすべてのＳＢＣクライアント６Ａ〜６Ｃに配信する（ＳＴ７０、ＳＴ７１）。ＳＢＣクライアント６Ａ〜６Ｃは、更新された実行画面をＳＢＣブラウザ５Ａ〜５Ｃ上に表示する（ＳＴ７２、ＳＴ７３）。
【００８３】
画面更新情報の複写、配信のシステム動作は、図８と関連して説明したとおりであり、説明を省略する。新たな特権ユーザによるアプリケーションの操作は、次に操作権取得要求ボタンがクリックされ、操作権の譲渡が許可されるまで継続し、ＳＴ６５〜ＳＴ７３が繰り返される。
【００８４】
このように、アプリケーションの操作権を有する特権ユーザだけが実際にＳＢＣサーバ３内のアプリケーション１を実行することができるが、操作権の所在は、特権ユーザと、グループ内の通常ユーザとの間のネゴシエーションにより、随時変更可能である。操作権の変更、所在については、プロキシサーバ１０のコラボレーション操作権管理部３３が一括管理するので、ＳＢＣクライアント６への負担は少ない。
【００８５】
また、操作権の所在にかかわらず、アプリケーション１の実行画面はプロキシサーバ１０で複製され配信されるので、セッションに参加するＳＢＣクライアント６のすべてにおいてリアルタイムで表示される。ＳＢＣサーバ３からみると、あくまでもアプリケーション１を実行するクライアントはセッショングループＩであり、クライアントとアプリケーションの実行を１対１対応とする既存のＳＢＣミドルウエア２の基本仕様をそのまま利用することができる。
【００８６】
以上では、セッション参加予定者がすべて揃ってからセッションを開始する例に基づいて、処理シーケンスとシステム動作を説明した。しかし、セッショングループＩに所属するユーザが、セッションへ途中参加できる構成にしてもよい。この場合、操作権を有する特権ユーザは、他のセッション参加者のログイン状態を確認しつつ、自分の意思によってコラボレーション開始命令を出し、コラボレーションを開始させることができる。また、ＳＢＣクライアント６Ｂ，６Ｃも、参加予定のすべてのクライアントの参加まで待たずに、特権ユーザによるコラボレーション開始命令が出されるまで待機することになる。さらに、操作権を有する特権ユーザが、グループ内に属する新たなユーザの参加を許可あるいは不許可にする構成にすることも可能である。
【００８７】
処理シーケンスとしては、セッション開始後に、セッションへの参加を要求するＳＢＣクライアント６Ｄ（不図示）が、ＳＢＣコラボレーションブラウザ４１を立ち上げて、プロキシサーバ１０への接続要求を行う。クライアント認証後、プロキシサーバ１０のコラボレーションセッション管理部３２は、入力ポート番号からセッションＩＤを検索し、検索されたセッションが現在セッション中であるか否かを判断する。セッション中であれば、コラボレーション操作権管理部３３に現在の特権ユーザを確認し、特権ユーザであるＳＢＣクライアント６Ａに対して、コラボレーション参加要求依頼を送信する。ＳＢＣクライアント６Ａは参加要求依頼を受信し、ＳＢＣコラボレーション補助部７Ａに、たとえば図１２（ａ）に示すコラボレーション参加要求画面が表示される。
【００８８】
特権ユーザは、コラボレーション参加要求画面で許可ボタン８１または拒否ボタン８２をクリックすることによって、セッション途中でのユーザの参加を許可、あるいは不許可する。不許可の場合、プロキシサーバ１０のコラボレーションセッション管理部３２は、参加要求を行ったＳＢＣクライアント６Ｄに対して、不許可通知を送信する。ＳＢＣクライアント６ＤのＳＢＣコラボレーション補助部７Ｄには、たとえば図１２（ｂ）に示すコラボレーション参加拒否画面が表示される。
【００８９】
許可ボタン８１のクリックによりセッション参加が許可された場合は、プロキシサーバ１０のコラボレーションセッション管理部３２で、セッション参加中のユーザＩＤのリストに新たなユーザＩＤが追加される。これと同時に、プロキシサーバ１０はＳＢＣサーバ３に対して、現在の全画面情報を要求する。ＳＢＣサーバ３は、現在の全画面情報をプロキシサーバ１０に送信する。プロキシサーバ１０のＳＢＣブラウザ画面配信部２１は、セッション参加が認められたＳＢＣクライアント６Ｄに全画面情報を配信し、ＳＢＣクライアント６ＤのＳＢＣブラウザ５Ｄに、現在のアプリケーション実行画面が表示される。
【００９０】
コラボレーションセッション管理部３２はさらに、すべてのＳＢＣクライアント６Ａ〜６Ｄに対し、更新されたセッション参加者情報を送信する。ＳＢＣクライアント６Ａ〜６ＤのＳＢＣコラボレーション補助部７Ａ〜７Ｄにおいて、参加者一覧画面５２とメッセージ表示画面５３（図４参照）が更新される。すなわち、参加者一覧画面５２に、たとえば「閲覧：Ｍａｅｄａ（１９２．１６８．１０．４）」という情報が追加され、メッセージ表示画面５３のセッション履歴に、ＳＢＣクライアント６Ｄの参加が時刻とともに表示される。
【００９１】
セッションの終了に関しては、特権ユーザがＳＢＣクライアント６を強制的に終了させる方法と、コラボレーション開始確認画面（図７参照）とは別画面で中止させる方法が考えられる。後者の場合は、たとえばＳＢＣクライアント６の画面上で右クリックすることによって、コラボレーション中止メニューが表示され選択される。
【００９２】
プロキシサーバ１０は、セッション中止要求を受けると、ＳＢＣサーバ３との間の接続を切断する。ＳＢＣサーバ３では、アプリケーションは起動した状態で保存されており、プロキシサーバ１０から再度接続すると、切断したときのアプリケーションの状態からコラボレーションを継続できる。
【００９３】
なお、上述した実施形態では、プロキシサーバ１０からＳＢＣサーバ３への接続に特権ユーザのユーザＩＤを用いているが、プロキシサーバ１０において、ＳＢＣサーバ３上のアプリケーション１と対応付けて独自のユーザＩＤとパスワードを保持する形態としてもよい。
【００９４】
ＳＢＣコラボレーションシステムβは、教育、医療、設計、建築など、任意の分野に適用可能である。いずれの場合も、協調作業を行なう現場では、表示機能と簡単な入力装置を有するＳＢＣクライアント６を準備するだけでよい。高負荷のアプリケーションはＳＢＣサーバ３内で実行し、プロキシサーバ１０により、その実行画面をセッションに参加したすべてのＳＢＣクライアントにリアルタイムで配信する。また、セッション履歴と操作権の所在、変更をプロキシサーバ１０で集中管理するので、ＳＢＣクライアント６の負荷が少ない。
【００９５】
ＳＢＣクライアントとしては、既存のＳＢＣブラウザを有するデスクトップＰＣやノートパソコン、ＰＤＡ，携帯電話などの端末装置を用いることができる。このようなＳＢＣブラウザ機能に、本発明で使用するＳＢＣコラボレーション補助部７を付加するだけで、ＳＢＣサーバ３内の任意のアプリケーションを遠隔利用したＳＢＣコラボレーションが可能になる。
【００９６】
ＳＢＣクライアント６のＳＢＣコラボレーション補助部７の処理動作と、プロキシサーバ１０の処理動作は、ハードウエア、ソフトウエア、ファームウエアのいずれで実現してもよい。ＳＢＣコラボレーション補助部７をソフトウエアで実現する場合は、ＳＢＣコラボレーション補助プログラムをコンピュータ読み取り可能な任意の記録媒体に記録して配布してもよいし、プロキシサーバ１０からネットワーク４を介してＳＢＣクライアントに配信してもよい。
【００９７】
ＳＢＣクライアントにインストールされるＳＢＣコラボレーション補助プログラムは、以下の手順を含む。
（ａ）プロキシサーバが第１のＳＢＣクライアントにアプリケーションの操作権を付与したときに、ＳＢＣクライアントに操作権の所在を表示させる
（ｂ）第１のＳＢＣクライアントがＳＢＣサーバ上のアプリケーションを実行したときに、ＳＢＣクライアントに、プロキシサーバを介して送られてくる実行画面を表示させる。
（ｃ）第２のＳＢＣクライアントが、アプリケーションの操作権を取得したときに、ＳＢＣクライアントに、操作権の移転を表示させる。
【００９８】
このＳＢＣコラボレーション補助プログラムはさらに、ＳＢＣクライアントに必要に応じて操作権の取得を要求させる手順を含む。
【００９９】
既存のＳＢＣクライアント端末にコラボレーション補助プログラムを導入するだけで、遠隔のＳＢＣサーバ内の任意のアプリケーションを利用して、協調作業が可能になる。
【０１００】
プロキシサーバをソフトウエアで実現する場合は、プロキシサーバで実行されるＳＢＣコラボレーション処理プログラムをインストールすればよい。ＳＢＣコラボレーション処理プログラムは、以下の手順を含む。
（ａ）プロキシサーバに、第１のＳＢＣクライアントに対してアプリケーションの操作権を付与させる。
（ｂ）第１のＳＢＣクライアントから、ＳＢＣサーバ上のアプリケーションを実行する第１の入力操作情報を受信したときに、プロキシサーバに、第１の入力操作情報をＳＢＣサーバへ転送させる。
（ｃ）ＳＢＣサーバから前記アプリケーションの実行画面を受信したときに、前記プロキシサーバに、当該実行画面を前記複数のＳＢＣクライアントに配信させる。
【０１０１】
プロキシサーバにこのような機能をインストールすることにより、既存のＳＢＣシステムを利用したＳＢＣコラボレーションを実現することができる。
【０１０２】
【発明の効果】
本発明によれば、既存のＳＢＣミドルウエアを利用したまま、複数のＳＢＣクライアント間で、ＳＢＣサーバ内のアプリケーションの共有、協調作業が可能になる。
【０１０３】
コラボレーション中は、アプリケーションの実行に伴う画面更新情報のみを複製し配信するので、即応性にすぐれる。
【図面の簡単な説明】
【図１】一般的なＳＢＣシステムの概略構成図である。
【図２】本発明の一実施形態に係るＳＢＣコラボレーションシステムの概略構成図であり、複数のＳＢＣクライアント間でＳＢＣサーバ上のアプリケーションの共有および協調作業を可能にするプロキシサーバを含むネットワーク構成を示す図である。
【図３】図２のシステムで用いられるプロキシサーバのブロック構成図である。
【図４】ＳＢＣクライアント上に表示されるＳＢＣコラボレーションブラウザの一例を示す図である。
【図５】ＳＢＣコラボレーションの開始処理シーケンスを示す図である。
【図６】ＳＢＣコラボレーション開始時のシステムの動作を説明するための図である。
【図７】コラボレーション開始確認画面の一例を示す図である。
【図８】ＳＢＣコラボレーションにおけるＳＢＣ画面出力時のシステムの動作を説明するための図である。
【図９】アプリケーション操作権譲渡の処理シーケンスを示す図である。
【図１０】操作権譲渡時のシステムの動作を説明するための図である。
【図１１】操作権譲渡要求画面と、操作権譲渡拒否画面の一例を示す図である。
【図１２】コラボレーション参加要求画面と、コラボレーション参加拒否画面の一例を示す図である。
【符号の説明】
α　ＳＢＣシステム
β　ＳＢＣコラボレーションシステム
１　アプリケーション
２　ＳＢＣミドルウエア
３　ＳＢＣサーバ
４　ネットワーク
５Ａ、５Ｂ、５Ｃ　ＳＢＣブラウザ
６Ａ、６Ｂ、６Ｃ　ＳＢＣクライアント
７Ａ、７Ｂ、７Ｃ　ＳＢＣコラボレーション補助部
８Ａ、８Ｂ，８Ｃ　対プロキシ入力受付部
１０　プロキシサーバ
１１　操作情報処理部
１２　コラボレーション制御部
１５　対クライアント入力受付部
１６　対サーバ入力受付部
１８　クライアント情報データベース
２１　ＳＢＣブラウザ画面配信部（実行画面配信部）
２２　複写部
２５　操作情報中継部
２６　パケット判断部
２７　パケット送信部
２８　操作情報破棄部
３１　コラボレーションユーザ認証部
３２　コラボレーションセッション管理部
３３　コラボレーション操作権管理部
４１　ＳＢＣコラボレーションブラウザ
４２　セッション情報表示部
４３　能動制御部
５２　参加者一覧画面
５３　メッセージ表示画面
５４　操作権取得要求ボタン
【図１】
2004005396.tif 000003
【図２】
2004005396.tif 000004
【図３】
2004005396.tif 000005
【図４】
2004005396.tif 000006
【図５】
2004005396.tif 000007
【図６】
2004005396.tif 000008
【図７】
2004005396.tif 000009
【図８】
2004005396.tif 000010
【図９】
2004005396.tif 000011
【図１０】
2004005396.tif 000012
【図１１】
2004005396.tif 000013
【図１２】
2004005396.tif 000014