(57)【特許請求の範囲】
【請求項１】
遠隔デスクトップシステムサーバである制御クライアントと遠隔デスクトップシステムクライアントである被制御クライアントをそれぞれ含む、複数の遠隔デスクトップシステムが、認証サーバ、クライアント状態管理サーバ、及びサブシステムサーバと連携する遠隔デスクトップ連携処理システムであって、
前記認証サーバは、
前記被制御クライアント及び前記制御クライアントを認証する認証機能部と、
前記認証機能部によって認証された前記被制御クライアント及び前記制御クライアントそれぞれの前記認証サーバへのセッションを表すＨＴＴＰセッション情報を生成するセッション管理部と、を備え、
前記制御クライアントは、
所定の処理に係る制御を前記クライアント状態管理サーバに要求し
前記クライアント状態管理サーバは、
前記制御クライアント及び前記被制御クライアントがそれぞれ制御クライアント又は被制御クライアントのいずれであるかを表すクライアント状態情報と、前記ＨＴＴＰセッション情報と、を関連付けて記憶するクライアント状態管理部と、
前記制御クライアントによって前記所定の処理を実行するための制御を要求されると、前記サブシステムサーバに前記所定の処理を委譲するサブシステム管理部と、を備え、
前記サブシステムサーバは、前記所定の処理が委譲されると、前記制御クライアントに関連付けられて前記クライアント状態管理部に記憶されている前記被制御クライアントが前記所定の処理を行うための制御を行う独自機能部
を備える、遠隔デスクトップ連携処理システム。
【請求項２】
請求項１に記載の遠隔デスクトップ連携処理システムにおいて、
前記所定の処理に係る制御は、通話セッションを確立又は切断することであり、
前記独自機能部は、前記クライアント状態情報と前記ＨＴＴＰセッション情報に基づいて前記制御クライアントに関連付けられている前記被制御クライアントの通話セッションを確立又は切断することを特徴とする遠隔デスクトップ連携処理システム。
【請求項３】
請求項２に記載の遠隔デスクトップ連携処理システムにおいて、
前記サブシステム管理部は、前記クライアント状態管理部に記憶されている前記ＨＴＴＰセッション情報及び前記クライアント状態情報を前記独自機能部に送信し、
前記独自機能部は、
前記クライアント状態情報と前記ＨＴＴＰセッション情報とに基づいて、前記被制御クライアントのセッションＩＤを記憶するルーチングテーブル部と、
前記ルーチングテーブル部に記憶されているセッションＩＤに係る被制御クライアントとセッション記述情報を送受信するメッセージ転送機能部と、を備える、
遠隔デスクトップ連携処理システム。
【請求項４】
請求項２又は３に記載の遠隔デスクトップ連携処理システムにおいて、
複数の前記制御クライアントのうちの第１の制御クライアントは、第２の制御クライアントとの前記通話セッションを確立するための通話セッション確立要求情報を前記クライアント状態管理サーバに送信し、
前記第２の制御クライアントは、前記通話セッション確立要求情報に基づいて通話セッション確立応答情報を前記クライアント状態管理サーバに送信し、
前記クライアント状態管理サーバは、
前記通話セッション確立応答情報を受信すると、前記第１の制御クライアントに係る利用者ＩＤと前記第２の制御クライアントに係る利用者ＩＤとを関連付けた呼状態情報を記憶する呼状態管理部を備える、
遠隔デスクトップ連携処理システム。
【請求項５】
請求項４に記載の遠隔デスクトップ連携処理システムにおいて、
前記呼状態管理部は、前記第１の制御クライアント及び前記第２の制御クライアントのいずれか１つから、通話セッション切断要求情報が送信されると、前記呼状態情報を削除することを特徴とする遠隔デスクトップ連携処理システム。
【請求項６】
遠隔デスクトップシステムサーバである制御クライアントと遠隔デスクトップシステムクライアントである被制御クライアントをそれぞれ含む、複数の遠隔デスクトップシステムと連携するクライアント状態管理サーバであって、
前記被制御クライアント及び前記制御クライアントがそれぞれ制御クライアント又は被制御クライアントのいずれであるかを表すクライアント状態情報と、前記被制御クライアント及び前記制御クライアントの認証サーバへのＨＴＴＰセッションに関するＨＴＴＰセッション情報とを関連付けて記憶するクライアント状態管理部と、
前記制御クライアントによって所定の処理を実行するための制御を要求されると、前記クライアント状態情報と前記ＨＴＴＰセッション情報とに基づいて、前記被制御クライアントが前記所定の処理を実行するための制御をサブシステムサーバに委譲するサブシステム管理部と、
を備える、クライアント状態管理サーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、遠隔デスクトップ連携処理システム及びクライアント状態管理サーバに関する。
【背景技術】
【０００２】
従来、プロプライエタリな遠隔デスクトップやオープンソース技術のＲＦＢ（Remote Frame Buffer）プロトコルを用いたＶＮＣ（Virtual Network Computing）のような、利用者の操作端末から遠隔地に設置された計算機のデスクトップを操作することを可能とする、すなわち遠隔デスクトップシステムが存在している。テレワーク従事者は手元の操作端末から遠隔デスクトップシステムを利用しながら業務を行うことがある。ここでは、遠隔デスクトップシステムクライアントが動作する端末を「操作端末」、操作する先の計算機を「遠隔計算機」と呼ぶ。遠隔計算機上でのリアルタイムコミュニケーションツールの動作は、VNCは音声メディア転送をサポートしていていないので不可能である。その他プロプライエタリな拡張では、操作端末上のカメラやマイクのリソースの利用やＵＤＰ（User Datagram Protocol）を用いた高速なメディア転送機能の拡張を具備したものがある。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】"The RFB Protocol Tristan Richardson Real VNC Ltd (formerly of Olivetti Research Ltd/ AT&T Labs Cambridge Version 3.8 Last updated 26 November 2010)"、[online]、[平成26年11月18日検索]、インターネット< http://www.realvnc.com/docs/rfbproto.pdf>
【発明の概要】
【発明が解決しようとする課題】
【０００４】
遠隔計算機上でリアルタイムコミュニケーションツールを用いて音声通信を行う場合、音声は自席のＰＣ（Personal Computer）に到達するまでにＶＰＮ（Virtual Private Network）サーバや種々のリレーサーバを経由することになる。そのため、音声通信における音切れや遅延が発生して十分な通話品質を確保することができないという問題がある。そのような問題を解決するために、遠隔計算機上ではなく、自席ＰＣの上でリアルタイムコミュニケーションツールを動作させて、遠隔計算機を介さずに音声通信を行うことが品質の点では有効であるが、利用者は、自席ＰＣからの遠隔計算機の操作を中断し、自席ＰＣの操作をするための手続きを改めて行わなければならない。すなわち、自席ＰＣから遠隔計算機を操作している利用者が、十分な品質の音声通話を行うには煩雑な操作が必要となるという問題がある。
【０００５】
したがって、かかる点に鑑みてなされた本発明の目的は、煩雑な操作を伴わずに、遠隔計算機（制御クライアント）が実行できない、又は実行した場合の品質が低くなる処理を操作端末（被制御クライアント）に実行させることにある。例えば、本発明の目的のひとつは、遠隔デスクトップシステムから操作端末上のコミュニケーションツールを直接、通信させることを可能とすることにある。
【課題を解決するための手段】
【０００６】
上記の課題を解決するため、本発明に係る遠隔デスクトップ連携処理システムは、遠隔デスクトップシステムサーバである制御クライアントと遠隔デスクトップシステムクライアントである被制御クライアントをそれぞれ含む、複数の遠隔デスクトップシステムが、認証サーバ、クライアント状態管理サーバ、及びサブシステムサーバと連携する遠隔デスクトップ連携処理システムであって、前記認証サーバは、前記被制御クライアント及び前記制御クライアントを認証する認証機能部と、前記認証機能部によって認証された前記被制御クライアント及び前記制御クライアントそれぞれの前記認証サーバへのセッションを表すＨＴＴＰセッション情報を生成するセッション管理部と、を備え、前記制御クライアントは、所定の処理に係る制御を前記クライアント状態管理サーバに要求し、前記クライアント状態管理サーバは、前記制御クライアント及び前記被制御クライアントがそれぞれ制御クライアント又は被制御クライアントのいずれであるかを表すクライアント状態情報と、前記ＨＴＴＰセッション情報と、を関連付けて記憶するクライアント状態管理部と、前記制御クライアントによって前記所定の処理を実行するための制御を要求されると、前記サブシステムサーバに前記所定の処理を委譲するサブシステム管理部と、を備え、前記サブシステムサーバは、前記所定の処理が委譲されると、前記制御クライアントに関連付けられて前記クライアント状態管理部に記憶されている前記被制御クライアントが前記所定の処理を行うための制御を行う独自機能部を備える。
【０００７】
また、請求項６に記載の発明に係るクライアント状態管理サーバは、遠隔デスクトップシステムサーバである制御クライアントと遠隔デスクトップシステムクライアントである被制御クライアントをそれぞれ含む、複数の遠隔デスクトップシステムと連携するクライアント状態管理サーバであって、前記被制御クライアント及び前記制御クライアントがそれぞれ制御クライアント又は被制御クライアントのいずれであるかを表すクライアント状態情報と、前記被制御クライアント及び前記制御クライアントの認証サーバへのＨＴＴＰセッションに関するＨＴＴＰセッション情報とを関連付けて記憶するクライアント状態管理部と、前記制御クライアントによって所定の処理を実行するための制御を要求されると、前記クライアント状態情報と前記ＨＴＴＰセッション情報とに基づいて、前記被制御クライアントが前記所定の処理を実行するための制御をサブシステムサーバに委譲するサブシステム管理部と、を備える。
【発明の効果】
【０００８】
本発明によれば、煩雑な操作を伴わずに、遠隔計算機（制御クライアント）が実行できない、又は実行した場合の品質が低くなる処理を操作端末（被制御クライアント）に実行させることにある。
【図面の簡単な説明】
【０００９】
【図１】実施形態に係る遠隔デスクトップシステム連携処理の機能構成図である。
【図２】図１に示す接続管理部のキーバリューストアを表す概念図である。
【図３】図１に示すクライアント状態管理部のキーバリューストアを表す概念図である。
【図４】実施形態に係るシグナリングサーバの機能構成図である。
【図５】図１に示す呼状態管理部のキーバリューストアを表す概念図である。
【図６】図２に示すルーチングテーブル部のキーバリューストアを表す概念図である。
【図７】本実施形態のログインに係る処理シーケンス図である。
【図８】本実施形態のクライアント状態申告に係る処理シーケンス図である。
【図９】本実施形態の通話に係る処理シーケンス図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態について図面を参照して説明する。
【００１１】
＜＜遠隔デスクトップ連携処理システム連携処理の機能構成＞＞
まず、図１を参照して本実施形態の遠隔デスクトップ連携処理システム１の機能構成について説明する。
【００１２】
遠隔デスクトップ連携処理システム１は、遠隔デスクトップシステム２をそれぞれ利用する複数の利用者同士が通話をするためのシステムであり、図１に示すように、被制御クライアント１０と制御クライアント２０とを備える遠隔デスクトップシステム２、認証サーバ３０、クライアント状態管理サーバ４０、サブシステムサーバ５０、及び負荷分散装置６０を備える。なお、以降において、被制御クライアント１０及び制御クライアント２０を総称して「クライアント」という。
【００１３】
認証サーバ３０、クライアント状態管理サーバ４０、及びサブシステムサーバ５０は、通信ネットワークに接続され、負荷分散装置６０を介して、制御クライアント２０、及び被制御クライアント１０と情報を互いに送受信する。
【００１４】
＜被制御クライアントの機能構成＞
被制御クライアント１０は、例えば操作端末であり、遠隔デスクトップ機能により制御クライアント２０のデスクトップを操作する。すなわち、被制御クライアント１０は、遠隔デスクトップシステム２において遠隔デスクトップシステムクライアントとして動作する。被制御クライアント１０は、利用者によって入力された利用者ＩＤを含む利用者情報を受け付け、受け付けた利用者情報を、負荷分散装置６０を介して認証サーバ３０に送信する。また、被制御クライアント１０は、自身が「被制御クライアント」であることを表すローカルクライアント状態情報をクライアント状態管理サーバ４０に送信する。
【００１５】
また、被制御クライアント１０は、サブシステムサーバ５０の要求に基づき、セッション記述情報を、負荷分散装置６０を介してサブシステムサーバ５０に送信する。セッション記述情報とは、セッションの告知やセッションの招待などを必要とするマルチメディアセッションを開始するための情報であり、例えば、ＳＤＰ（Session Description Protocol）を用いて記述される。
【００１６】
また、サブシステムサーバ５０の制御により通話セッションが確立されると、複数の被制御クライアント１０のうちの第１の被制御クライアント１０Ａ（以降、単に「被制御クライアント１０Ａ」という）と、第２の被制御クライアント１０Ｂ（以降、単に「被制御クライアント１０Ｂ」という）と、が通話に係る処理を行う。これにより、これらの被制御クライアント１０の利用者同士が通信ネットワークを介して通話することができる。
【００１７】
＜制御クライアントの機能構成＞
制御クライアント２０は、例えば遠隔計算機であり、遠隔デスクトップ機能を用いて被制御クライアント１０により、そのデスクトップが操作される。すなわち、制御クライアント２０は、遠隔デスクトップシステム２において遠隔デスクトップシステムサーバとして動作する。
【００１８】
制御クライアント２０は、利用者によって入力された利用者情報を受け付け、受け付けた利用者情報を認証サーバ３０に送信する。また、制御クライアント２０は、所定の処理をクライアント状態管理サーバ４０に要求する。具体的には、制御クライアント２０は、Web Socket等により実現されるメッセージ用接続の要求を表すメッセージ用接続要求情報をクライアント状態管理サーバ４０に送信する。また、クライアント状態管理サーバ４０から送信される、Web Socket等により実現されるメッセージ用接続の応答を表すメッセージ用接続応答情報を受信する。また、制御クライアント２０は、自身が「制御クライアント」であることを表すリモートクライアント状態情報をクライアント状態管理サーバ４０に送信する。
【００１９】
また、複数の制御クライアント２０のうちの第１の制御クライアント２０Ａ（以降、単に「制御クライアント２０Ａ」という）は、第２の制御クライアント２０Ｂ（以降、単に「制御クライアント２０Ｂ」という）との通話セッションの確立を要求する（発呼する）旨を表す通話セッション確立要求情報をクライアント状態管理サーバ４０に送信する。また、制御クライアント２０Ｂによる通話セッション確立応答情報がクライアント状態管理サーバ４０から送信されると、送信された通話セッション確立応答情報を受信する。通話セッション確立応答情報とは、通話セッション確立要求情報を受信した制御クライアント２０Ｂが、通話セッションの確立に応じる旨を表す情報である。
【００２０】
また、制御クライアント２０Ａは、クライアント状態管理部４２から制御クライアント２０Ｂとの通話セッションの切断を要求する旨の通話セッション切断要求情報を受信すると、その通話セッション切断要求情報に係る通話セッションを切断する。セッション切断応答情報とは、セッション切断要求情報を受信した制御クライアント２０Ａが、通話セッションの切断に応じる旨を表す情報である。
【００２１】
＜認証サーバの機能構成＞
認証サーバ３０は、被制御クライアント１０及び制御クライアント２０から送信された利用者情報に基づいて利用者を認証し、該送信に係るＨＴＴＰセッションに関するＨＴＴＰセッション情報を管理する。認証サーバ３０は、利用者情報記憶部３１、認証機能部３２、及びセッション管理部３３を備える。
【００２２】
利用者情報記憶部３１は、利用者を識別するための利用者ＩＤ、及びパスワード等を含む利用者情報を記憶している。
【００２３】
認証機能部３２は、利用者によって入力され、被制御クライアント１０及び制御クライアント２０から送信された利用者情報を、負荷分散装置６０を介して受信する。また、認証機能部３２は受信した利用者情報に含まれる利用者ＩＤ及びパスワードを用いて利用者認証を行う。具体的には、認証機能部３２は、受信した利用者情報に含まれる利用者ＩＤに関連付けて利用者情報記憶部３１に記憶されているパスワードが、受信した利用者情報に含まれるパスワードと同一であるか否かを判定する。
【００２４】
セッション管理部３３は、認証機能部３２によって認証された被制御クライアント１０及び制御クライアント２０それぞれの認証サーバ３０へのセッションを表すＨＴＴＰセッション情報を生成する。具体的には、セッション管理部３３は、認証機能部３２による認証にあたって、被制御クライアント１０及び制御クライアント２０から認証サーバ３０へのＨＴＴＰセッションが正常に行われると、ＨＴＴＰプロトコルで規定されているメッセージ「２００  ＯＫ」を送信する。また、セッション管理部３３は、ＨＴＴＰセッションを一意に識別するセッションＩＤを生成する。
【００２５】
＜クライアント状態管理サーバの機能構成＞
クライアント状態管理サーバ４０は、被制御クライアント１０及び制御クライアント２０のクライアント状態を管理し、通話セッションに係る処理の制御をサブシステムサーバ５０に委譲する。
【００２６】
図１に示すように、クライアント状態管理サーバ４０は、接続管理部４１、クライアント状態管理部４２、呼状態管理部４３、及びサブシステム管理部４４を備える。
【００２７】
接続管理部４１は、キーバリューストアを備え、図２に示すように、被制御クライアント１０及び制御クライアント２０の利用者ＩＤとセッションＩＤとを関連付けて記憶する。具体的には、接続管理部４１は、被制御クライアント１０から、負荷分散装置６０を介して、メッセージ用接続の要求を表すメッセージ用接続要求情報を受信する。また、接続管理部４１がメッセージ用接続要求情報を受信すると、接続管理部４１は、認証サーバ３０にＨＴＴＰセッション情報を要求する。また、接続管理部４１は、認証サーバ３０からの応答によりＨＴＴＰセッション情報を受信し、ＨＴＴＰセッション情報に含まれるセッションＩＤとメッセージ用接続要求情報を送信した被制御クライアント１０の利用者ＩＤを関連付けて、コネクション情報としてキーバリューストアに記憶する。
【００２８】
クライアント状態管理部４２は、キーバリューストアを備え、被制御クライアント１０及び制御クライアント２０のクライアント状態情報を管理する。クライアント状態情報とは、クライアントが被制御クライアント１０であるか、制御クライアント２０であるかを表す情報である。また、クライアント状態情報のうち、クライアントが制御クライアント２０であることを表す情報をリモートクライアント状態情報といい、クライアントが被制御クライアント１０であることを表す情報をローカルクライアント状態情報という。
【００２９】
具体的には、クライアント状態管理部４２は、制御クライアント２０からリモートクライアント状態情報を受信すると、図３に示すように接続管理部４１に記憶されているコネクション情報に含まれる利用者ＩＤ及びセッションＩＤに関連付けて、クライアント状態が「制御クライアント」であることをキーバリューストアに記憶する。また、被制御クライアント１０からローカルクライアント状態情報を受信すると、図３に示すように接続管理部４１に記憶されているコネクション情報に含まれる利用者ＩＤ及びセッションＩＤに関連付けて、クライアント状態が「被制御クライアント」であることを記憶する。
【００３０】
また、クライアント状態管理部４２は、クライアント状態情報とコネクション情報とを関連付けて記憶すると、通話セッションの確立を要求することが可能（発呼可能）であることを制御クライアント２０に通知する。
【００３１】
呼状態管理部４３は、セッションの確立を要求する旨を表す通話セッション確立要求情報（Ｏｆｆｅｒ）、及びセッションの切断を要求する旨を表すセッション切断要求情報（Ｂｙｅ）に基づいて通話セッションに係る制御をサブシステムサーバ５０に委譲する。
【００３２】
具体的には、呼状態管理部４３は、通話セッション確立要求情報（Ｏｆｆｅｒ）を受信すると、その通話セッション確立要求情報を、制御クライアント２０Ｂに送信する。同様に、呼状態管理部４３は、制御クライアント２０Ｂが通話セッション確立要求情報に応答する旨を表す通話セッション確立応答情報（Ａｎｓｗｅｒ）を受信すると、その通話セッション確立応答情報を制御クライアント２０Ａに送信する。
【００３３】
また、呼状態管理部４３は、被制御クライアント１０Ｂからセッションの切断を要求する旨を表すセッション切断要求情報（Ｂｙｅ）を受信すると、そのセッション切断要求情報を制御クライアント２０Ａに送信し、サブシステムサーバ５０に通話セッションを切断する旨を表す通話終了情報を送信する。
【００３４】
また、呼状態管理部４３は、制御クライアント２０Ａによって送信された通話セッション確立要求情報を制御クライアント２０Ｂに送信したり、制御クライアント２０Ｂによって送信された通話セッション確立応答情報を制御クライアント２０Ａに送信したりする。また、呼状態管理部４３は、キーバリューストアを備え、制御クライアント２０Ａと制御クライアント２０Ｂとがセッション確立のための処理中又はセッション確立中であることを表す呼状態を更新する。具体的には、図５に示すように、呼状態管理部４３は、通話セッション確立要求情報に含まれる制御クライアント２０Ａの利用者ＩＤと制御クライアント２０Ｂの利用者ＩＤとを関連付けた呼状態情報をキーバリューストアに記憶する。
【００３５】
サブシステム管理部４４は、制御クライアント１０から要求された所定の処理に係る制御を、クライアント状態情報とＨＴＴＰセッション情報とに基づいてサブシステムサーバ５０に委譲する。本実施形態では、所定の処理とは、通話セッションでの通話であり、その制御とは、通話セッションの確立及び切断である。具体的には、サブシステム管理部４４は、制御クライアント２０Ａに対応する被制御クライアント１０Ａのセッション情報と、制御クライアント２０Ｂに対応する被制御クライアント１０Ｂのセッション情報を送信するとともに、通話セッションを確立する旨をサブシステムサーバ５０に通知する。
【００３６】
ここで、サブシステム管理部４４が、制御クライアント２０Ａに対応する被制御クライアント１０ＡのセッションＩＤを含むセッション情報を抽出する方法について、図３を参照して説明する。サブシステム管理部４４は、制御クライアント２０ＡのセッションＩＤに関連付けてクライアント状態管理部４２に記憶されている利用者ＩＤを抽出する。そして、サブシステム管理部４４は、抽出された利用者ＩＤに関連付けて記憶されている被制御クライアント１０ＡのセッションＩＤを抽出する。このようにして抽出された被制御クライアント１０ＡのセッションＩＤが、制御クライアント２０Ａに対応する被制御クライアント１０ＡのセッションＩＤである。制御クライアント２０Ｂに対応する被制御クライアント１０ＢのセッションＩＤについても同様である。
【００３７】
＜サブシステムサーバの機能構成＞
サブシステムサーバ５０は、１つ以上の任意の機能を実行するサーバであり、一例として本実施形態では呼制御を行うシグナリングサーバ５２とする。図１に示したように、サブシステムサーバ５０は独自機能部５１を備える。独自機能部５１は、サブシステムサーバ５０に所定の処理が委譲されると、クライアント状態情報とＨＴＴＰセッション情報とに基づいて、被制御クライアントによる所定の処理を制御する。
【００３８】
一例として、独自機能部５１は、クライアント状態情報とＨＴＴＰセッション情報に基づいて制御クライアント２０に関連付けられている被制御クライアント１０の通話セッションを確立又は切断する制御を行うものであって、ルーチングテーブル部５３及びメッセージ転送機能部５４とする。すなわち、図４に示すように、シグナリングサーバ５２が、ルーチングテーブル部５３及びメッセージ転送機能部５４を備える。
【００３９】
ルーチングテーブル部５３は、キーバリューストアを備え、複数の被制御クライアント１０同士のネットワークルーチンを記憶する。具体的には、ルーチングテーブル部５３は、制御クライアント２０Ａから通話セッション確立要求情報を受信する。また、ルーチングテーブル部５３は、制御クライアント２０Ｂから通話セッション確立応答情報を受信すると、図６に示すように制御クライアント２０Ａに関連付けて記憶されている被制御クライアント１０ＡのセッションＩＤと、制御クライアント２０Ｂに関連付けて記憶されている被制御クライアント１０ＢのセッションＩＤとをキーバリューストアに記憶する。
【００４０】
また、ルーチングテーブル部５３は、被制御クライアント１０Ａと被制御クライアント１０Ｂとの間に確立している通話セッションを切断する旨を表す通話終了情報をクライアント状態管理サーバ４０から受信すると、被制御クライアント１０ＡのセッションＩＤと被制御クライアント１０ＢのセッションＩＤとをルーチングテーブルから削除する。
【００４１】
メッセージ転送機能部５４は、被制御クライアント１０Ａにセッション記述情報を要求するセッション記述要求情報を送信する。また、メッセージ転送機能部５４は、被制御クライアント１０Ａから受信したセッション記述情報を被制御クライアント１０Ｂに送信したり、被制御クライアント１０Ｂから受信したセッション記述情報を被制御クライアント１０Ａに送信したりする。
【００４２】
＜負荷分散装置の機能構成＞
負荷分散装置６０は、認証サーバ３０、クライアント状態管理サーバ４０、及びサブシステムサーバ５０のそれぞれにかかる負荷を分散する。図１に示すように、負荷分散装置６０は、リバースプロキシ６１及びロードバランサ６２を備える。
【００４３】
リバースプロキシ６１は、認証サーバ３０、クライアント状態管理サーバ４０、及びサブシステムサーバ５０の代理として、これらのサーバに対して送信された情報を受信し、それぞれのサーバへ送信する。
【００４４】
ロードバランサ６２は、遠隔デスクトップ連携処理システム１が、例えば認証サーバ３０を複数、備える場合、被制御クライアント１０及び制御クライアント２０から送信される情報を、複数の認証サーバ３０に振り分ける。これによって、複数の認証サーバ３０における１台あたりの負荷を抑えることが可能となる。また、ロードバランサ６２は、遠隔デスクトップ連携処理システム１が複数のクライアント状態管理サーバ４０、及び複数のサブシステムサーバ５０を備える場合も、同様の機能を有する。
【００４５】
＜＜遠隔デスクトップ連携処理システムの動作＞＞
＜ログイン処理に係る動作＞
次に、図７を参照して、本実施形態に係る遠隔デスクトップ連携処理システム１のログイン処理に係る動作を説明する。
【００４６】
図７に示すように、まず、被制御クライアント１０は、利用者によって入力された利用者ＩＤ及びパスワードを含む利用者情報を受け付け、受け付けた利用者情報を認証サーバ３０に送信する（ステップＳ１１）。ステップＳ１１で送信された利用者情報を認証サーバ３０が受信すると、認証サーバ３０のセッション管理部３３はセッションＩＤを含むＨＴＴＰセッション情報を生成し、ＨＴＴＰプロトコルのメッセージ「２００  ＯＫ」を送信する（ステップＳ１２）。
【００４７】
続いて、被制御クライアント１０は、メッセージ用接続を要求する旨を表すメッセージ用接続要求情報を、Web Socket等のプロトコルを用いてクライアント状態管理サーバ４０に送信する（ステップＳ１３）。ステップＳ１３でメッセージ用接続要求情報が送信されると、クライアント状態管理サーバ４０の接続管理部４１がそのメッセージ用接続要求情報を受信し、セッション管理部３３によって生成したＨＴＴＰセッション情報を認証サーバ３０に要求する（ステップＳ１４）。
【００４８】
ステップＳ１４で接続管理部４１によってＨＴＴＰセッション情報が要求されると、セッション管理部３３は要求に応答して、ＨＴＴＰセッション情報を送信する（ステップＳ１５）。そして、クライアント状態管理サーバ４０の接続管理部４１が、セッション管理部３３によって送信されたＨＴＴＰセッション情報と、メッセージ用接続要求のセッション情報とを関連付けて記憶する（ステップＳ１６）。さらに、接続管理部４１は、メッセージ用接続要求に応答する旨を表すWeb Socket等のメッセージ用接続応答情報を被制御クライアント１０に送信する（ステップＳ１７）。
【００４９】
以上の処理によって、被制御クライアント１０とクライアント状態管理サーバ４０とのメッセージ用接続が確立する。同様に、制御クライアント２０についてもステップＳ１１〜ステップＳ１７までの処理を行う。
【００５０】
＜クライアント状態申告処理に係る動作＞
次に、図８を参照して、本実施形態に係る遠隔デスクトップ連携処理システム１のクライアント状態申告処理に係る動作を説明する。図８に示すように、まず、制御クライアント２０がリモートクライアント状態情報をクライアント状態管理サーバ４０に送信する（ステップＳ２１）。ステップＳ２１でリモートクライアント状態情報が送信されると、クライアント状態管理部４２がそのリモートクライアント状態情報を受信し、接続管理部４１に記憶されている利用者ＩＤ及びセッションＩＤに関連付けてリモートクライアント状態情報を図３に示したように記憶する（ステップＳ２２）。
【００５１】
そして、クライアント状態管理部４２は、リモートクライアント状態情報が記憶されたことを表す状態変更成功情報を制御クライアント２０に送信する（ステップＳ２３）。状態変更成功情報が送信されると、制御クライアント２０はその状態変更成功情報を受信し、リモートクライアント（遠隔デスクトップシステムサーバ）として動作するために画面を遷移させる（ステップＳ２４）。
【００５２】
同様に、被制御クライアント１０がローカルクライアント状態情報をクライアント状態管理サーバ４０に送信する（ステップＳ２５）。ステップＳ２５でローカルクライアント状態情報が送信されると、クライアント状態管理部４２がそのローカルクライアント状態情報を受信し、接続管理部４１に記憶されている利用者ＩＤ及びセッションＩＤに関連付けてローカルクライアント状態情報を記憶する（ステップＳ２６）。
【００５３】
そして、クライアント状態管理部４２は、ローカルクライアント状態情報が記憶されたことを表す状態変更成功情報を制御クライアント１０に送信する（ステップＳ２７）。状態変更成功情報が送信されると、制御クライアント２０はその状態変更成功情報を受信し、ローカルクライアント（遠隔デスクトップシステムクライアント）として動作するために画面を遷移させる（ステップＳ２８）。
【００５４】
ステップＳ２２及びステップＳ２６でそれぞれ制御クライアント２０及び被制御クライアント１０について、クライアント状態管理部４２がクライアント状態情報とセッション情報とを関連付けて記憶すると、通話セッションの確立を要求することが可能（発呼可能）であることを制御クライアント２０に通知する（ステップＳ２９）。
【００５５】
＜通話セッションの確立及び切断に係る動作＞
次に、図９を参照して、本実施形態に係る遠隔デスクトップ連携処理システム１の通話セッションの確立及び切断に係る動作を説明する。図９に示すように、まず、制御クライアント２０Ａが、通話セッション確立要求情報（Ｏｆｆｅｒ）をクライアント状態管理サーバ４０に送信する（ステップＳ４１）。ステップＳ４１で送信された通話セッション確立要求情報が送信されると、クライアント状態管理サーバ４０の呼状態管理部４３がその通話セッション確立要求情報を受信し、その通話セッション確立要求情報を制御クライアント２０Ｂに送信する（ステップＳ４２）。
【００５６】
ステップＳ４２で送信された通話セッション確立要求情報に基づいて、その要求を受け入れる旨の入力が利用者によってされる（ステップＳ４３）と、制御クライアント２０Ｂは通話セッション確立応答情報（Ａｎｓｗｅｒ）をクライアント状態管理サーバ４０に送信する（ステップＳ４４）。また、制御クライアント２０Ｂは画面を遷移させる（ステップＳ４５）。
【００５７】
ステップＳ４４で通話セッション確立応答情報が送信されると、呼状態管理部４３は、制御クライアント２０Ａと制御クライアント２０Ｂとの呼状態情報を図５に示したように記憶する（ステップＳ４６）。
【００５８】
続いて、サブシステム管理部４４が、制御クライアント２０Ａに対応する被制御クライアント１０Ａと、制御クライアント２０Ｂに対応する被制御クライアント１０Ｂとが通話セッションを確立するための処理をサブシステムサーバ５０であるシグナリングサーバ５２に委譲する。具体的には、サブシステム管理部４４は、図３に示したクライアント状態管理部４２のキーバリューストアに、制御クライアント２０ＡのセッションＩＤに関連付けて記憶されている被制御クライアント１０ＡのセッションＩＤを抽出する。同様に、サブシステム管理部４４は、制御クライアント２０ＡのセッションＩＤに関連付けて記憶されている被制御クライアント１０ＡのセッションＩＤを抽出する。そして、サブシステム管理部４４は、抽出したセッションＩＤを含むセッション情報を送信し、被制御クライアント１０Ａと被制御クライアント１０Ｂとの通話セッションの開始をシグナリングサーバ５２に通知する（ステップＳ４７）。
【００５９】
そして、通話セッションの開始を通知されたシグナリングサーバ５２のルーチングテーブル部５３は、被制御クライアント１０Ａと被制御クライアント１０Ａとが通話セッションを確立するためのルーチングを図６に示したように追加する（ステップＳ４８）。
【００６０】
また、ステップＳ４４で、制御クライアント２０Ｂから通話セッション確立応答情報が送信されると、呼状態管理部４３は、送信された通話セッション確立応答情報を受信し、制御クライアント２０Ａに送信する（ステップＳ４９）。通話セッション確立応答情報が送信されると、制御クライアント２０Ａはその通話セッション確立応答情報を受信し、通話セッションに用いる画面に遷移する（ステップＳ５０）。
【００６１】
また、ステップＳ４７で呼状態管理部４３によって、シグナリングサーバ５２に被制御クライアント１０Ａと被制御クライアント１０Ｂとの通話セッションの開始が通知されると、シグナリングサーバ５２のメッセージ転送機能部３５は、被制御クライアント１０Ａにセッション記述情報を要求する（ステップＳ５１）。ステップＳ５１でセッション記述情報が要求されると、被制御クライアント１０Ａはその要求に応答して（ステップＳ５２）、セッション記述情報をシグナリングサーバ５２に送信する。そして、シグナリングサーバ５２のメッセージ転送機能部３５は被制御クライアント１０Ａから受信したセッション記述情報を被制御クライアント１０Ｂに送信する（ステップＳ５３）。
【００６２】
そして、被制御クライアント１０Ｂは、受信したセッション記述情報に応答する旨を表すセッション記述応答情報をシグナリングサーバ５２に送信し（ステップＳ５４）、シグナリングサーバ５２のメッセージ転送機能部３５は、そのセッション記述応答情報を被制御クライアント２０Ａに送信する（ステップＳ５５）。以上の処理によって、被制御クライアント１０Ａと被制御クライアント１０Ｂとの通話セッション（メディア）が確立される。
【００６３】
通話セッションを終了させる指示が利用者によって制御クライアント２０Ｂに入力されると、制御クライアント２０Ｂは通話セッション切断要求情報（ｂｙｅ）をクライアント状態管理サーバ４０に送信し（ステップＳ６０）、通話セッションに用いられていた画面を閉じるよう画面を遷移させる（ステップＳ６１）。そして、ステップＳ６０で送信された通話セッション切断要求情報を、クライアント状態管理サーバ４０が受信すると、呼状態管理部４３がステップＳ４６で更新された呼状態を更新（削除）する（ステップ６２）。
【００６４】
そして、呼状態管理部４３は、ステップＳ６０で制御クライアント２０Ｂから送信された通話セッション切断要求情報を制御クライアント２０Ａに送信する（ステップＳ６３）。ステップＳ６３で通話セッション切断要求情報が送信されると、制御クライアント２０Ａは通話セッションに用いられていた画面を閉じるよう画面を遷移させる（ステップＳ６４）。
【００６５】
また、ステップＳ６３で、呼状態管理部４３が通話セッション切断要求情報を制御クライアント２０Ａに送信すると、サブシステム管理部４４は被制御クライアント１０Ａと被制御クライアント１０Ａとが通話セッションを切断するための処理をサブシステムサーバ５０に委譲する。具体的には、サブシステム管理部４４は、被制御クライアント１０Ａと被制御クライアント１０Ｂとの通話セッションの切断をシグナリングサーバ５２に通知する（ステップＳ６５）。
【００６６】
ステップＳ６５で呼状態管理部４３によって、シグナリングサーバ５２に被制御クライアント１０Ａと被制御クライアント１０Ｂとの通話セッションの終了が通知されると、シグナリングサーバ５２のメッセージ転送機能部３５は、被制御クライアント１０Ａに通話セッションの切断を要求し（ステップＳ６６）、被制御クライアント１０Ｂに通話セッションの切断を要求する（ステップＳ６７）。
【００６７】
また、ステップＳ６５で、シグナリングサーバ５２に被制御クライアント１０Ａと被制御クライアント１０Ｂとの通話セッションの切断が通知されると、シグナリングサーバ５２のルーチングテーブル部５３は、被制御クライアント１０Ａと被制御クライアント１０Ａとのルーチングをルーチングテーブルから削除する（ステップＳ６８）。
【００６８】
以上のように、本実施形態に記載された遠隔デスクトップ連携処理システム１によって、遠隔デスクトップシステム２の利用者は、遠隔デスクトップシステムサーバとしての制御クライアント２０から通話セッションの確立を要求した場合に、制御クライアント２０を介さずに遠隔デスクトップシステムクライアントとしての被制御クライアント１０同士で直接、通話セッションを確立する。そのため、利用者は、遠隔デスクトップシステムサーバとしての制御クライアントを介して確立した通話セッションによる音切れや音声遅延等の問題を回避することが可能となる。また、クライアント状態管理サーバ４０は、クライアント状態管理部４２に記憶されている制御クライアント２０と被制御クライアント１０との関連付けを用いて、被制御クライアント１０同士で通話セッションを確立するための制御を行うため、利用者は煩雑な操作を行う必要がない。
【００６９】
すなわち、通話セッションの確立と通話機能とを連携させることによって、高品質な通話を実現するシステムを実現できる。また、遠隔デスクトップシステム２がメディア転送に適さない通信路を用いていても、被制御クライアント１０Ａが直接、被制御クライアント１０Ｂと通信するため、高品質な通話が実現できる。また、遠隔デスクトップシステムを利用してリアルタイムコミューケーションを行う場合に、操作端末（被制御クライアント１０）が遠隔デスクトップを経由せずに通信を行うため、高品質な通話が実現できる。
【００７０】
また、本実施形態に記載された遠隔デスクトップ連携処理システム１では、被制御クライアント１０同士で直接、通話セッションが確立されるが、制御クライアント２０Ａに関する機能、性能及び仕様等の条件に基づいて、被制御クライアント１０同士で直接、通話セッションを確立するか、制御クライアント２０を経由して通話セッションを確立するかをクライアント状態管理部４２が判定してもよい。具体的には、クライアント状態管理部４２は、制御クライアント２０が通話機能を有するか否かを判定する。そして、制御クライアント２０が通話機能を有すると判定された場合、制御クライアント２０同士が通話セッションを確立するための処理を行う。また、制御クライアント２０が通話機能を有しないと判定された場合、サブシステム管理部４４が被制御クライアント１０のセッション情報をシグナリングサーバ５２に通知する。
【００７１】
また、接続管理部４１は利用者からのメッセージ用接続要求を受信すると、セッション管理部３３にセッション情報を要求するため、利用者は利用者ＩＤによる認証処理を経ることによって、いずれの端末を制御クライアントとすることも被制御クライアントとすることもできる。一方、セッション管理部３３は、利用者の認証に関する情報を記憶するため、利用者が以降の操作において同一の被制御クライアントを用いる場合、改めて認証の処理を行う必要がない。
【００７２】
また、利用者は自身が利用する操作端末に、通話機能の実現に必要なマイクやカメラが具備されていない場合、他の操作端末を被制御クライアントとして動作させてもよい。すなわち、利用者の用いる操作端末は固定されず、通話機能の実現に必要なハードウェアを具備する任意の操作端末を被制御クライアントとすればよい。
【００７３】
また、本実施形態に記載された遠隔デスクトップ連携処理システム１では、通話セッションの確立中に、画像情報、映像情報、及びテキスト情報等を送受信する場合には、被制御クライアント１０同士が直接、送受信するのではなく、制御クライアント２０を経由して送受信をすることができる。
【００７４】
また、本実施形態に記載された遠隔デスクトップ連携処理システム１では、通話セッション確立要求情報を送信した制御クライアント２０Ａとは異なる制御クライアント２０Ｂが通話セッション切断要求を送信するとしているが、制御クライアント２０Ａが通話セッション切断要求を送信してもよい。
【００７５】
また、本実施形態に記載された遠隔デスクトップ連携処理システム１では、制御クライアント２０Ａが通話に係る機能を備えていない、又は制御クライアント２０Ａによる通話品質が十分でない場合に、十分な通話品質を実現することができる通話機能を備える被制御クライアント１０Ａを用いて通話セッションを確立するが、通話以外の他の機能について上記の構成を適用してもよい。すなわち、制御クライアント２０Ａが、通話以外の所定の機能を備えていない、又はその性能が十分でない場合に、上記の実施形態で説明した方法と同様の方法で独自機能部５１にその機能に係る処理を委譲し、制御クライアント１０Ａに当該所定の処理を行わせるよう制御してもよい。
【００７６】
また、本実施形態に記載された遠隔デスクトップ連携処理システム１では、被制御クライアント１０及び制御クライアント２０から送信された利用者情報をセッション管理部３３が端末を一意に識別するための端末情報と関連付けて記憶してもよい。このようにすることによって、利用者が同一の端末を用いれば、認証サーバ３０はその後のログインにおいて認証を行わずに、利用者を識別することができる。なお、利用者は、認証を経ることによって別の端末を被制御クライアント１０Ａとして、本遠隔デスクトップ連携処理システム１にログインすることもできる。例えば、被制御クライアント１０Ａとして利用したい端末がマイクやカメラを備えていない場合、利用者は別の端末を利用するという運用も可能である。
【００７７】
また、本実施形態に記載された遠隔デスクトップ連携処理システム１では、ログインに係る処理において、被制御クライアント１０及び制御クライアント１０は、利用者ＩＤを含む利用者情報をあらかじめ記憶し、記憶されている利用者情報を認証サーバ３０に送信するドングルを利用してもよい。このようにすることによって、利用者が利用者情報を入力したり、送信したりする作業の負荷を軽減することが可能となる。特に、例えば、制御クライアント１０を会社に設置し、自宅で被制御クライアント２０を用いるといった状況で、複雑な設定情報や会社からの持ち出しが禁じられているソフトウェアを用いなければならない場合、ドングルによって利用者は簡易に操作することができる。
【００７８】
また、本実施形態に記載された遠隔デスクトップ連携処理システム１では、接続管理部４１、クライアント状態管理部４２、サブシステム管理部４４、及びルーチングテーブル部５３は、それぞれ各情報をキーバリューストアに記憶する。これによって、拡張性の高い設計を実現することができる。しかし、接続管理部４１、クライアント状態管理部４２、サブシステム管理部４４、及びルーチングテーブル部５３は、例えばリレーショナル・データベースといった任意の形式の記憶ユニットに各情報を記憶してもよい。
【００７９】
上述の実施形態は代表的な例として説明したが、本発明の趣旨及び範囲内で、多くの変更及び置換ができることは当業者に明らかである。したがって、本発明は、上述の実施形態によって制限するものと解するべきではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。例えば、実施形態に記載の複数の構成ブロックを１つに組み合わせたり、あるいは１つの構成ブロックを分割したりすることが可能である。
【符号の説明】
【００８０】
１    遠隔デスクトップ連携処理システム
１０  被制御クライアント
２０  制御クライアント
３０  認証サーバ
３１  利用者情報記憶部
３２  認証機能部
３３  セッション管理部
４０  クライアント状態管理サーバ
４１  接続管理部
４２  クライアント状態管理部
４３  呼状態管理部
４４  サブシステム管理部
５０  サブシステムサーバ
５１  独自機能部
５２  シグナリングサーバ
５３  ルーチングテーブル部
５４  メッセージ転送機能部
６０  負荷分散装置
６１  リバースプロキシ
６２  ロードバランサ
【図１】
0006266502.tif 000002
【図２】
0006266502.tif 000003
【図３】
0006266502.tif 000004
【図４】
0006266502.tif 000005
【図５】
0006266502.tif 000006
【図６】
0006266502.tif 000007
【図７】
0006266502.tif 000008
【図８】
0006266502.tif 000009
【図９】
0006266502.tif 000010