{中継通信システムの全体構成}
以下、図面を参照しつつ、本発明の実施の形態について説明する。図1は、中継通信システムの全体構成を示す図である。中継通信システムは、LAN1、2、WAN3から構成される。LAN1、2は、遠隔に構築される小規模なネットワークである。WAN3は、インターネットなどの大規模なネットワークである。
LAN1は、クライアント端末11、中継サーバ12から構成される。LAN2は、クライアント端末21、22、中継サーバ23から構成される。WAN3は、SIP(Session Initiation Protocol)サーバ31から構成される。
クライアント端末11、21、22は、パーソナルコンピュータなどである。中継サーバ12、23は、クライアント端末11、クライアント端末21、22の相互間の通信を中継する。SIPサーバ31は、中継サーバ12、23の相互間の通信を中継する。
本実施の形態においては、中継サーバ12、23の相互間の通信プロトコルとして、SIPを利用するが、SIP以外のプロトコルを利用してもよい。SIP以外のプロトコルを利用するときには、中継サーバ12、23の相互間の通信が直接に実行されればよい。
{中継サーバの構成要素}
図2は、中継サーバ12(23)の構成要素を示す図である。中継サーバ12(23)は、インターフェース部121(231)、制御部122(232)、データベース格納部123(233)から構成される。括弧が付されていない符号は、中継サーバ12における符号を示す。括弧が付されている符号は、中継サーバ23における符号を示す。
インターフェース部121(231)は、プライベートIPアドレスを利用して、LAN1(2)に接続されるクライアント端末11(21、22)に対して通信を実行する。インターフェース部121(231)は、グローバルIPアドレスを利用して、WAN3に接続されるSIPサーバ31に対して通信を実行する。
制御部122(232)は、クライアント端末11、クライアント端末21、22の相互間の通信を中継するための制御を実行する。制御部122(232)は、データベース格納部123(233)に格納される以下の情報を作成または更新する。
データベース格納部123(233)は、中継グループ情報格納部124(234)、中継サーバ情報格納部125(235)、クライアント端末情報格納部126(236)、共有リソース情報格納部127(237)から構成される。以上の情報の具体例については、後述する。
{クライアント端末の構成要素}
図3は、クライアント端末11の構成要素と、クライアント端末11、21、22が格納するリソースとを示す図である。図3において、LAN2、WAN3、中継サーバ12、23の表示、クライアント端末21、22の詳細な構成の表示を省略している。
クライアント端末11は、インターフェース部111、制御部112、リソース格納部113、データベース格納部114から構成される。
インターフェース部111は、IPアドレスを利用して、LAN1に接続される中継サーバ12に対して通信を実行する。
制御部112は、インターフェース部111を介した中継サーバ、クライアント端末に対する通信を制御する。データベース格納部114に格納される各種情報は、制御部112によって管理される。
リソース格納部113は、ファイルあるいはフォルダなどのリソースを格納する。リソース格納部113に作成されたダウンロードフォルダ83には、クライアント端末11のみが使用できるコピーリソース841、ローカルリソース851の実体が格納される。
コピーリソース841は、クライアント端末21が格納する共有リソース861のコピーである。共有リソース861は、クライアント端末11、21、22の相互間で共有されている。ローカルリソース851は、共有リソース861と関連のないリソースである。
データベース格納部114は、中継グループ情報40、中継サーバ情報50、共有リソース管理情報81、82を格納する。
クライアント端末21、22は、クライアント端末11と同様の構成である。このため、クライアント端末21、22の詳細な構成の説明を省略し、クライアント端末21、22がそれぞれ格納するリソースについて説明する。
クライアント端末21のリソース格納部213には、共有リソースとして共有フォルダ863が作成されている。共有フォルダ863には、共有リソース861、862の実体が格納される。共有リソース862、共有フォルダ863は、クライアント端末11、21、22の相互間で共有されている。リソース格納部213には、ローカルリソース852の実体が格納されている。クライアント端末22のリソース格納部223には、ローカルリソース853の実体が格納されている。
なお、共有リソース861、862、共有フォルダ863を総称する場合、共有リソース86と記載する。
ここで、中継通信システムの動作について簡単に説明する。クライアント端末11が共有リソース861のダウンロードを指示した場合、クライアント端末21は、共有リソース861をコピーしてコピーリソース841を作成する。中継サーバ12、23は、クライアント端末21からクライアント端末11に送信されるコピーリソース841を中継する。中継サーバ23は、コピーリソース841の中継を開始するときに、共有リソース861がダウンロードされていることを、クライアント端末21、22、中継サーバ12に通知する。中継サーバ12は、中継サーバ23からの通知を、クライアント端末11に送信する。クライアント端末11、21、22は、共有リソース861がダウンロードされていることを各ユーザに通知する。
これにより、クライアント端末21のユーザは、共有リソース861がダウンロードされている間に、電源を切るなどのダウンロードを中断させるような操作をしなくて済む。これにより、共有リソース861のダウンロードの中断を防ぐことができる。クライアント端末22のユーザは、共有リソース861がダウンロードされている間は、共有リソース861に対する操作を指示しなくて済む。これにより、共有リソース861に対する操作の重複を防ぐことができる。
{中継グループ情報の具体例}
図4は、中継グループ情報の具体例として、中継グループ情報40を示す図である。中継グループ情報は、中継通信システムを構成する中継サーバの概要を示す情報である。
中継グループ情報40は、上位情報401、下位情報402から構成される。
上位情報401は、上位にある中継グループについての情報である。「id」は、中継グループの識別情報を示す。「lastmod」は、中継グループ情報の最新更新時刻を示す。「name」は、中継グループの名称を示す。
下位情報402は、下位にある中継サーバについての情報である。「id」は、中継サーバの識別情報を示す。
中継グループ情報40は、中継グループ情報格納部124、234において格納される。すなわち、中継グループ情報40は、中継サーバ12、23により共有される。さらに、中継グループ情報40は、中継サーバおよびクライアント端末により共有される。
{中継サーバ情報の具体例}
図5は、中継サーバ情報の具体例として、中継サーバ情報50を示す図である。中継サーバ情報は、中継通信システムを構成する中継サーバの詳細を示す情報であり、中継通信システムを構成するクライアント端末の概要を示す情報である。
なお、図5に示す中継サーバ情報50は、クライアント端末11、21、中継サーバ12、23が中継通信システムを構成する場合の具体例である。
中継サーバ情報50は、上位情報501−1、501−2、下位情報502−1、502−2から構成される。上位情報501−1、501−2は、各々、中継サーバ起動情報503−1、503−2を含む。下位情報502−1、502−2は、各々、クライアント端末サイト情報504−1、504−2を含む。
上位情報501−1、501−2は、上位にある中継サーバについての情報である。「id」は、中継サーバの識別情報を示す。「name」は、中継サーバの名称を示す。中継サーバ起動情報503−1、503−2は、中継サーバが起動しているかどうかについての情報である。
下位情報502−1、502−2は、下位にあるクライアント端末11、21についての情報である。「div」は、クライアント端末の部署名を示す。「group」は、クライアント端末が所属する中継グループの識別情報を示す。「id」は、クライアント端末の識別情報を示す。「name」は、クライアント端末の名称を示す。クライアント端末サイト情報504−1、504−2は、クライアント端末11、21がそれぞれログオンしている中継サーバの識別情報を示す。
なお、クライアント端末22が中継通信システムに参加する場合、上位情報501−2のsiteタグの中に、クライアント端末22についての下位情報のnodeタグが新たに追加される。
中継サーバ情報50は、中継サーバ情報格納部125、235において格納される。すなわち、中継サーバ情報50は、中継サーバ12、23により共有される。さらに、中継サーバ情報50は、中継サーバおよびクライアント端末により共有される。
中継サーバが起動しているときには、中継サーバ起動情報503−1、503−2が「active」になっている。中継サーバが起動していないときには、中継サーバ起動情報503−1、503−2が空欄になっている。これにより、中継サーバが起動しているかどうかについての情報が、中継通信システム全体として共有される。
クライアント端末が中継サーバにログオンしているときには、クライアント端末サイト情報504−1、504−2が記載されている。クライアント端末が中継サーバにログオンしていないときには、クライアント端末サイト情報504−1、504−2が記載されていない。これにより、クライアント端末が中継サーバにログオンしているかどうかについての情報が、中継通信システム全体として共有される。
{クライアント端末情報の具体例}
図6は、クライアント端末情報の具体例として、クライアント端末情報60、70を示す図である。クライアント端末情報は、中継通信システムを構成するクライアント端末の詳細を示す情報である。
図6に示すクライアント端末情報60、70は、クライアント端末11、21に対応している。クライアント端末情報60、70は、各々、クライアント端末アドレス情報601、701、クライアント端末有効期限情報602、702、クライアント端末ポート情報603、703を含む。
「div」は、クライアント端末の部署名を示す。「group」は、クライアント端末が所属する中継グループの識別情報を示す。クライアント端末アドレス情報601、701は、クライアント端末のIPアドレスを示す。クライアント端末有効期限情報602、702は、クライアント端末のレジスト有効期限を示す。「id」は、クライアント端末の識別情報を示す。「name」は、クライアント端末の名称を示す。「pass」は、クライアント端末のパスワードを示す。クライアント端末ポート情報603、703は、クライアント端末のポート番号を示す。
クライアント端末情報60は、クライアント端末情報格納部126のみにおいて格納されて、クライアント端末情報70は、クライアント端末情報格納部236のみにおいて格納される。すなわち、クライアント端末情報60は、中継サーバ12のみにより保有されて、クライアント端末情報70は、中継サーバ23のみにより保有される。
クライアント端末11、21に関するクライアント端末アドレス情報601、701などの情報は、nodeタグの中に記載される。したがって、クライアント端末22に関する情報は、図6に示すクライアント端末情報70に新たなnodeタグが追加される形で記載される。
{共有リソース管理情報の具体例}
図7は、共有リソース管理情報の具体例として、共有リソース管理情報81を示す図である。共有リソース管理情報81は、共有リソース86の詳細を示す情報であり、共有リソース86を共有するクライアント端末のグループごとに作成される。
図7に示す共有リソース管理情報81は、クライアント端末11、21の相互間で共有される共有リソース86を示している。
共有リソース管理情報81は、本体情報811、共有端末情報812、共有リソース個別情報813−1〜813−5から構成される。共有リソース個別情報813−1〜813−5を総称する場合、共有リソース個別情報813と記載する。
本体情報811は、共有リソース管理情報81本体についての情報である。「id」は、共有リソース管理情報81の識別番号である。「owner」は、共有リソース管理情報81を作成したクライアント端末を示す。
共有端末情報812は、共有リソース86を共有するグループを構成するクライアント端末についての情報である。共有端末情報812には、クライアント端末情報60、70などに記載されるクライアント端末の識別情報が記載される。
共有リソース個別情報813は、共有リソース86ごとに作成され、共有リソース86の属性情報が記載される。
共有リソース個別情報813の属性情報が設定されるresourceタグにおいて、「id」は、共有リソース個別情報813の識別情報(共有リソースID)である。「lastmod」は、共有リソース86の最新更新時刻を示す。「len」は、共有リソース86のサイズを示す。「name」は、共有リソース86の名前を示す。「owner」は、共有リソース86の実体にアクセス可能なクライアント端末(オーナクライアント端末)を示す。「stat」は、共有リソース86にアクセスできるかどうかを示す情報である。「type」は、共有リソース86がファイルであるかフォルダであるかを示す。「value」は、共有リソース86の実体の格納場所をフルパスで示している。
共有リソース個別情報813は、ツリー構成で記述される。共有リソース個別情報813−1は、「type=“dir”」の記述から共有フォルダに対応している。共有リソース個別情報813−1のresourceタグの中に、共有リソース個別情報813−2〜813−5が組み込まれている。これらのことから、共有リソース個別情報813−2〜813−5に対応する共有リソース86が、共有リソース個別情報813−1に対応する共有フォルダの中に、仮想的に格納されていることがわかる。
したがって、共有リソース個別情報813のツリー構成は、共有リソース86の実体の格納場所を反映していなくてもよい。たとえば、共有リソース個別情報813−2〜813−5に対応する共有リソース86の実体が、共有リソース個別情報813−1に対応する共有フォルダに格納されていなくてもよい。共有リソース個別情報813−1〜813−5に対応する各共有リソース86は、一つのクライアント端末ではなく、複数のクライアント端末に分散して格納されていてもよい。
共有リソース管理情報81は、共有端末情報812で設定されるクライアント端末11、21により共有される。また、共有リソース管理情報81は、中継サーバ12、23により共有される。
{中継通信システムの構築の流れ}
図1に示す中継通信システムが構築される流れについて説明する。中継サーバ12(23)は、SIPサーバ31から中継サーバ23(12)のグローバルIPアドレス、アカウントを取得する。中継サーバ12が中継サーバ23に対してグループ構築を要求することにより、中継サーバ12(23)は、SIPサーバ31から取得したグローバルIPアドレス、アカウントを用いて中継グループ情報40を作成する。これにより、中継グループが構築される。
中継サーバ12(23)は、上位情報501−1(501−2)、下位情報502−1(502−2)を中継サーバ23(12)に送信する。中継サーバ12(23)は、上位情報501−1、501−2、下位情報502−1、502−2から、中継サーバ情報50を作成する。
クライアント端末11が中継サーバ12にログオンした場合、中継サーバ12は、中継サーバ情報50にクライアント端末サイト情報504−1を追加する。中継サーバ情報50の更新通知が、中継サーバ23に送信され、更新された中継サーバ情報50がクライアント端末11に送信される。中継サーバ23は、更新通知に基づいて中継サーバ情報50を更新する。
クライアント端末21、22が中継サーバ23にログオンした場合、中継サーバ23は、クライアント端末21、22に対応するクライアント端末サイト情報を中継サーバ情報50に追加する。中継サーバ情報50の更新通知が、中継サーバ12に送信され、更新された中継サーバ情報50が、クライアント端末21、22に送信される。中継サーバ12は、中継サーバ情報50の更新通知をクライアント端末11に転送する。クライアント端末11、中継サーバ12は、更新通知に基づいて中継サーバ情報50を更新する。
これにより、クライアント端末11、21、22の相互間の通信が可能となる中継通信システムが構築される。
また、中継グループの構成の変化に応じて、中継グループ情報40が更新される。クライアント端末のログオン、ログアウトなどにより中継通信システムの構成が変化した場合、中継サーバ情報50が更新される。中継サーバ情報50の更新通知が、中継サーバ12、23によって送信、あるいはクライアント端末へ転送される。更新通知を受信したクライアント端末、中継サーバは、更新通知に基づいて中継サーバ情報50を更新する。これにより、中継通信システムを構成する装置は、装置の増減状態および接続状態を、中継グループ情報40および中継サーバ情報50を用いてリアルタイムで確認することができる。
{リソースの共有の流れ}
次に、リソースの共有の流れについて、クライアント端末11、21がリソースを共有する場合を例にして説明する。しかし、以下のリソースの共有に関する流れの説明は、クライアント端末11、21、22のいずれに対しても、適用することができる。
まず、クライアント端末21のユーザが、リソースを共有するクライアント端末として、クライアント端末11、21を指定する。クライアント端末21は、共有リソース管理情報81を作成する。共有端末情報812として、クライアント端末情報60、70などで設定されたクライアント端末11、21の識別情報が設定される。共有リソース管理情報81の作成元(本体情報811の「owner」)として、クライアント端末21が設定される。
共有リソース管理情報81は、中継サーバ23、12を経由してクライアント端末11に送信される。中継サーバ12、23は、共有リソース管理情報81を中継するときに、共有リソース管理情報81を共有リソース情報格納部127、237にそれぞれ格納する。クライアント端末11は、受信した共有リソース管理情報81をデータベース格納部114に格納する。
次に、ローカルリソース852の共有が指示されることにより、クライアント端末21は、ローカルリソース852に対応する共有リソース個別情報813を作成し、共有リソース管理情報81に追加する。共有リソース個別情報813の追加を示す変更通知が、中継サーバ23、12を経由してクライアント端末11に送信される。クライアント端末11は、受信した変更通知に基づいて、共有リソース管理情報81に共有リソース個別情報813を追加する。これにより、ローカルリソース852がクライアント端末11、21の間で共有される。
共有リソース861がクライアント端末11、21の間で共有されている場合における、共有の解除について説明する。ここで、共有リソース861が、図7に示す共有リソース個別情報813−2に対応している。
クライアント端末21のユーザが共有リソース861の共有の解除を指示した場合、クライアント端末21は、共有リソース管理情報81から共有リソース個別情報813−2を削除する。共有リソース個別情報813−2の共有リソースID814−2が、中継サーバ23、12を経由して、共有リソース861の削除を示す変更通知としてクライアント端末11に送信される。クライアント端末11は、受信した変更通知に基づいて、共有リソース管理情報81から共有リソース個別情報813−2を削除する。これにより、共有リソース861の共有が解除される。また、共有リソース861の実体が削除された場合にも、同様に共有リソース861の共有が解除される。
なお、中継サーバ12、23は、変更通知の送信を中継するときに、変更通知に応じて、共有リソース情報格納部127、237にそれぞれ格納された共有リソース管理情報81を更新する。
なお、クライアント端末21は、共有リソース管理情報81および変更通知を送信する前に、中継グループ情報40および中継サーバ情報50を参照して、クライアント端末11と通信できることを確認している。これにより、共有リソース管理情報81および変更通知がクライアント端末11に確実に送信されるため、クライアント端末11、21は、共有リソース86を確実に共有することができる。
また、クライアント端末11は、クライアント端末21と同様に、共有リソース個別情報813の追加および削除が可能である。クライアント端末11は、共有リソース管理情報81を変更した場合、変更通知をクライアント端末21に送信する。
{共有リソースのダウンロード}
次に、クライアント端末11が共有リソース861をダウンロードするときの中継通信システムの動作について説明する。
初期状態として、共有リソース861は、クライアント端末11、21、22の相互間で共有されている。共有リソース861を含む共有リソース86を管理する共有リソース管理情報82を、クライアント端末11、21、22、中継サーバ12、23がそれぞれ保持している。共有リソース管理情報82の詳細については後述する。
[ダウンロードの指示]
クライアント端末11のユーザは、クライアント端末11のモニタに共有リソースの操作画面87を表示させ、共有リソース861を選択する。
図8は、共有リソースの操作画面87を示す図である。操作画面87は、共有リソース管理情報82に基づいて表示される。操作画面87は、共有リソース表示部88、コピーリソース表示部89から構成される。
共有リソース表示部88は、共有フォルダ表示部881と、共有ファイル表示部882と、ダウンロードボタン883とを含む。共有フォルダ表示部881は、共有リソース個別情報813で設定される仮想的なツリー構成に基づいて、共有フォルダを表示する。共有ファイル表示部882は、選択された共有フォルダに仮想的に格納されている共有ファイルの一覧を表示する。ダウンロードボタン883は、選択された共有リソース86のダウンロードを指示するボタンである。
共有フォルダ表示部881で選択されている共有フォルダ「f003」は、共有フォルダ863に対応している。共有ファイル表示部882に表示されている共有ファイルのうち、「プレゼン資料.ppt」が共有リソース861に対応し、「2007中間報告.pdf」が共有リソース862に対応している。
コピーリソース表示部89は、ダウンロードフォルダ表示部891を含む。ダウンロードフォルダ表示部891は、ダウンロードフォルダ83内のリソースの一覧を表示する。ダウンロードフォルダ表示部891に表示されている「仕様書ドラフト.doc」は、ローカルリソース851に対応している。この時点では、共有リソース861がクライアント端末11にダウンロードされていないため、共有リソース861のコピーであるコピーリソース841は、ダウンロードフォルダ表示部891に表示されていない。
図9は、共有リソース861、862、共有フォルダ863を管理する共有リソース管理情報82を示す図である。図9に示す共有リソース管理情報82は、図7に示す共有リソース管理情報81とほぼ同じ内容であるが、リソースを共有するグループを設定する共有端末情報812、822の内容が異なっている。
共有リソース管理情報81では、クライアント端末11、21がリソースを共有するグループを構成している。図7に示す共有端末情報812において、クライアント端末11の識別情報「client−1@relay−server−1.abc.net」が設定されている。同様に、クライアント端末21の識別情報「client−2@relay−server−2.abc.net」が設定されている。
一方、図9に示す共有端末情報822では、クライアント端末11、21の識別情報に加えて、クライアント端末22の識別情報「client−3@relay−server−2.abc.net」が設定されている。つまり、共有リソース管理情報82では、クライアント端末11、21、22が共有グループを構成している。
共有リソース個別情報813−1において、「name=“f003”」と設定されており、共有リソース個別情報813−1が共有フォルダ863に対応している。共有リソース個別情報813−2において、「name=“プレゼン資料.ppt”」と設定されており、共有リソース個別情報813−2が共有リソース861に対応している。共有リソース個別情報813−4において、「name=“2007中間報告.pdf”」と設定されており、共有リソース個別情報813−4が共有リソース862に対応している。
以下、中継通信システムの動作の説明に戻る。クライアント端末11のユーザは、共有ファイル表示部882から「プレゼン資料.ppt」を選択して、ダウンロードボタン883をクリックする。クライアント端末11は、「プレゼン資料.ppt」に対応する共有リソース個別情報813−2を特定する。共有リソース個別情報813−2に基づいて、共有リソース861のダウンロードが開始される。
[ダウンロードの開始]
図10は、共有リソース861のダウンロードが開始されるまでの処理の流れを示す図である。
図9において、共有リソース個別情報813−2の「owner」に、クライアント端末21の識別情報(client−2@relay−server−2.abc.net)が設定されている。クライアント端末11は、この設定から、共有リソース861のオーナクライアント端末がクライアント端末21であると特定する。クライアント端末11は、中継グループ情報40および中継サーバ情報50を参照して、クライアント端末21と通信可能であることを確認した上で、クライアント端末21までの通信経路の確立を要求する。
具体的には、クライアント端末11は、中継サーバ12に対して、コネクション確立の要求情報と通信先(クライアント端末21)を示す情報とを送信する(ステップS1:open(client−2))。ステップS1における通信を、Stream(1)とする。
中継サーバ12は、中継サーバ23に対して、コネクション確立の要求情報と通信先(クライアント端末21)を示す情報とを送信する(ステップS1.1:open(client−2))。ステップS1.1における通信を、Stream(2)とする。中継サーバ12は、Stream(1)、(2)を関連付ける。
中継サーバ23は、クライアント端末21に対して、コネクション確立の要求情報と通信先(クライアント端末21)を示す情報とを送信する(ステップS1.1.1:open(client−2))。ステップS1.1.1における通信を、Stream(3)とする。中継サーバ23は、Stream(2)、(3)を関連付ける。
クライアント端末21は、中継サーバ23に対して、コネクション確立の許可情報を送信する(ステップS1.1.1に対するack)。中継サーバ23は、Stream(2)、(3)の関連付けに基づいて、中継サーバ12に対して、コネクション確立の許可情報を送信する(ステップS1.1に対するack)。中継サーバ12は、Stream(1)、(2)の関連付けに基づいて、クライアント端末11に対して、コネクション確立の許可情報を送信する(ステップS1に対するack)。これにより、クライアント端末11は、クライアント端末21まで通信経路の確立が許可されたことを確認する。
次に、クライアント端末11は、クライアント端末21までの通信経路を確立する。クライアント端末11は、クライアント端末11と中継サーバ12との間にコネクション(connection(1))を確立する(ステップS2:connection(1))。
中継サーバ12は、中継サーバ12と中継サーバ23との間にコネクション(connection(2))を確立する(ステップS2.1:connection(2))。中継サーバ12は、connection(1)、(2)を関連付ける。
中継サーバ23は、中継サーバ23とクライアント端末21との間にコネクション(connection(3))を確立する(ステップS2.1.1:connection(3))。中継サーバ23は、connection(2)、(3)を関連付ける。
connection(1)、(2)、(3)が確立されることにより、クライアント端末11とクライアント端末21との間に通信経路が確立される。中継サーバ12、23は、上述したコネクションの関連付けに基づいて、クライアント端末11、21の相互間の通信を中継する。
次に、クライアント端末11は、クライアント端末21に対して共有リソース861のダウンロードを要求するgetコマンドを、connection(1)を用いて中継サーバ12に送信する(ステップS3:get(−a65ecaf))。getコマンドのパラメータとして、共有リソース861の共有リソースID814−2「−a65ecaf」が指定される。中継サーバ12は、connection(2)を用いて、getコマンドを中継サーバ23に送信する(ステップS3.1:get(−a65ecaf))。中継サーバ23は、connection(3)を用いて、getコマンドをクライアント端末21に送信する(ステップS3.1.1:get(−a65ecaf))。
クライアント端末21は、getコマンドを受信することにより、共有リソース861をコピーしてコピーリソース841を作成する。クライアント端末21は、コピーリソース841の送信を開始することをクライアント端末11に通知し、共有リソース861のコピーであるコピーリソース841の送信を開始する。
具体的には、クライアント端末21は、コピーリソース841の送信開始をクライアント端末11に通知するための送信開始メッセージを、Stream(3)を用いて中継サーバ23に送信する(ステップS4:action())。中継サーバ23は、Stream(2)を用いて、送信開始メッセージを中継サーバ12に送信する(ステップS4.1:action())。中継サーバ12は、Stream(1)を用いて、送信開始メッセージをクライアント端末11に送信する(ステップS4.1.1:action())。
コピーリソース841は、パケットに分割されて、connection(3)、(2)、(1)を介してクライアント端末21からクライアント端末11に送信される。クライアント端末21は、後述するステップS8(図13参照)に示す処理まで、コピーリソース841の送信処理を継続している。
[ステータス情報の追加]
図11は、送信開始メッセージの受信に基づいて中継サーバ23が更新した共有リソース管理情報82を示す図である。
中継サーバ23は、ステップS4に示す処理によって送信開始メッセージを受信すると同時に、共有リソース861のダウンロードの中継を開始することをクライアント端末21、22、中継サーバ12に通知する。中継サーバ23は、共有リソース情報格納部237に格納している共有リソース管理情報82を、図9に示す状態から図11に示す状態に更新する。つまり、ステータス情報815−2が、共有リソース個別情報813−2に追加される。ステータス情報とは、共有リソース86に対して操作が行われていることを示す情報である。
ステータス情報815−2において、「ac」は、共有リソース個別情報813−2に対応する「プレゼン資料.ppt」(共有リソース861)に対して行われている操作の種別を示す。「ac=“dw”」とは、共有リソース861がダウンロードされていることを示している。「dw」とは、共有リソース861のダウンロードを要求した装置の識別情報を示す。「dw=“client−1@relay−server−1.abc.net”」と設定されていることから、共有リソース861のダウンロードを要求した装置が、クライアント端末11であることを確認できる。
中継サーバ23は、共有リソース管理情報82にステータス情報815−2が追加されたことを示すステータス追加通知を、クライアント端末22に送信する(ステップS5−A:NOTIFY())。ステータス追加通知は、共有リソースID814−2、ステータス情報815−2を含む。
ステータス追加通知は、クライアント端末21に送信され(ステップS5−B:NOTIFY())、中継サーバ12に送信される(ステップS5−C:NOTIFY())。中継サーバ12は、受信したステータス追加通知を、クライアント端末11に送信する(ステップS6:NOTIFY())。
クライアント端末11、21、22、中継サーバ12は、受信したステータス追加通知に基づいて、共有リソース管理情報82を図9に示す状態から図11に示す状態に更新する。これにより、図11に示す共有リソース管理情報82が、クライアント端末11、21、22、中継サーバ12、23の相互間で共有される。
[操作画面の更新]
図12は、ステータス情報815−2が追加された共有リソース管理情報82に基づく操作画面87を示す図である。クライアント端末11は、更新された共有リソース管理情報82(図11参照)に基づいて、操作画面87を図12に示す状態に更新する。
図12に示すように、共有ファイル表示部882において、「プレゼン資料.ppt」(共有リソース861)のアイコンが、ダウンロード中であることを示す矢印アイコンに変化している。クライアント端末11のユーザは、共有リソース861の矢印アイコンにより、共有リソース861がダウンロードされていることを確認できる。
クライアント端末21、22のユーザが、共有リソースの操作画面87をクライアント端末21、22のモニタにそれぞれ表示させた場合、操作画面87には、図12に示す共有リソース表示部88が表示される。コピーリソース表示部には、クライアント端末21、22にそれぞれ作成されたダウンロードフォルダに格納されているリソースが表示される。
なお、クライアント端末11、21、22のユーザは、矢印アイコンの近傍にマウスカーソルを移動させることで、ダウンロードを指示したクライアント端末の識別情報を表示させることができる。
クライアント端末21、22のユーザは、矢印アイコンにより、共有リソース861が他のクライアント端末にダウンロードされていることを確認できる。共有リソース861の実体を格納しているクライアント端末21のユーザは、共有リソース861のダウンロード中に、共有リソース861の共有の解除、電源オフなど、共有リソース861のダウンロードを中断させるような操作をすることを防ぐことができる。クライアント端末22のユーザは、共有リソース861のダウンロード中に、共有リソース861のダウンロードを新たに指示するなど、共有リソース861のダウンロードが重複するような操作をすることを防止できる。
また、クライアント端末22は、図11に示す共有リソース管理情報82を保持している間、共有リソース861に対する操作を制限する。具体的には、クライアント端末22のユーザが、共有リソースID814−2「−a65ecaf」を入力して、共有リソース861の削除を指示する(ステップS7)。クライアント端末22は、共有リソース個別情報812−2にステータス情報815−2が追加されているため、共有リソース861の削除を許可しないエラーメッセージをモニタに表示させる。
[ダウンロードの終了]
図13は、共有リソース861のダウンロードが終了するまでの処理の流れを示す図である。
クライアント端末21は、ステップS4に示す処理と同時に開始したコピーリソース841の送信処理が完了した場合、コピーリソース841の送信が終了したことクライアント端末11に通知する。
具体的には、クライアント端末21は、コピーリソース841の送信終了を示す送信終了メッセージを、Stream(3)を用いて中継サーバ23に送信する(ステップS8:end())。中継サーバ23は、Stream(2)を用いて、送信終了メッセージを中継サーバ12に送信する(ステップS8.1:end())。中継サーバ12は、Stream(1)を用いて、送信終了メッセージをクライアント端末11に送信する(ステップS8.1.1:end())。
中継サーバ23は、ステップS8に示す処理によって送信終了メッセージを受信すると同時に、共有リソース861のダウンロードの中継が終了したことをクライアント端末21、22、中継サーバ12に通知する。中継サーバ23は、図11に示す共有リソース個別情報813−2からステータス情報815−2を削除する。中継サーバ23が保持する共有リソース管理情報82は、図11に示す状態から図9に示す状態に戻る。
中継サーバ23は、ステータス情報815−2が削除されたことを示すステータス削除通知を、クライアント端末22に送信する(ステップS9−A:NOTIFY())。ステータス削除通知は、共有リソースID814−2、削除対象のステータス情報815−2を含む。
ステータス削除通知は、クライアント端末21に送信され(ステップS9−B:NOTIFY())、中継サーバ12に送信される(ステップS9−C:NOTIFY())。中継サーバ12は、受信したステータス削除通知を、クライアント端末11に送信する(ステップS10:NOTIFY())。
クライアント端末11、21、22、中継サーバ12は、受信したステータス削除通知に基づいて、共有リソース管理情報82を更新する。これにより、クライアント端末11、21、22、中継サーバ12、23は、図9に示す共有リソース管理情報82を共有する。
クライアント端末11は、共有リソース管理情報82の更新に基づいて、共有リソース表示部88を図12に示す表示から図8に示す表示に更新する。つまり、「プレゼン資料.ppt」(共有リソース861)の矢印アイコンが、通常のアイコンに戻る。クライアント端末11のユーザは、共有リソース861のダウンロードが完了したことを確認できる。また、クライアント端末11において、コピーリソース841がダウンロードフォルダ83に格納される。図8には示していないが、共有リソース861のダウンロードにより、ダウンロードフォルダ表示部891には、コピーリソース841に対応する「2007中間報告.pdf」の表示が追加される。
クライアント端末21、22に表示される操作画面において、共有リソース表示部88が図8に示す表示に更新される。これにより、クライアント端末21のユーザは、共有リソース861の共有の解除、クライアント端末21の電源オフなどの操作をしてもよい状態になったことを確認できる。クライアント端末22のユーザは、共有リソース861のダウンロードが終了したことを確認することで、自ら共有リソース861をダウンロードしてもよいと判断できる。
次に、クライアント端末11は、クライアント端末21までの通信経路を切断する。クライアント端末11は、コネクション切断の要求情報を、Stream(1)を用いて中継サーバ12に送信する(ステップS11:close())。中継サーバ12は、Stream(2)を用いてコネクション切断の要求情報を中継サーバ23に送信する(ステップS11.1:close())。中継サーバ23は、コネクション切断の要求情報を、Stream(3)を用いてクライアント端末21に送信する(ステップS11.1.1:close())。
クライアント端末11は、connection(1)を切断する(ステップS12:disconnect())。中継サーバ12は、conneciton(1)の切断に応じて、connection(2)を切断する(ステップS12.1:disconnect)。中継サーバ23は、connection(2)の切断に応じて、conneciton(3)を切断する(ステップS12.1.1:disconnect())。これにより、共有リソース861のダウンロードに関わる一連の処理が終了する。
以上説明したように、本実施の形態において、中継サーバ23は、共有リソース861のダウンロードを中継する際に、共有リソース861がダウンロードされていることを示すステータス情報815−2を共有リソース管理情報82に追加する。ステータス情報815−2の追加がクライアント端末11、21、22、中継サーバ12に通知される。これにより、各クライアント端末のユーザは、共有リソース861がダウンロードされていることを容易に確認できる。また、各クライアント端末のユーザは、ダウンロードの終了まで共有リソース861を操作せずに済むため、共有リソース861の操作の重複、あるいは中断を防ぎ、共有リソース861を効率よく操作することができる。
{変形例1}
上記実施の形態では、中継サーバ23が、コピーリソース841の中継の開始および終了に合わせて共有リソース管理情報82を変更し、変更通知を中継サーバ12などに送信する例について説明した。変形例1では、クライアント端末11が、共有リソース861のダウンロードの開始および終了を、中継サーバ12などに通知する例について説明する。
なお、本変形例では、上記実施の形態と同様の内容については説明を省略し、上記実施の形態と異なる内容を中心に説明する。
図14は、変形例1における共有リソースのダウンロードの流れを示す図である。初期状態として、共有リソース861が、クライアント端末11、21、22の相互間で共有されている。図9に示す共有リソース管理情報82が、クライアント端末11、21、22、中継サーバ12、23が保持している。
クライアント端末11のユーザは、図8に示す操作画面87を参照して、共有ファイル表示部882に表示された「プレゼン資料.ppt」(共有リソース861)のダウンロードを指示する。クライアント端末11は、共有リソース861のダウンロードの指示に基づいて、共有リソース管理情報82を、図9に示す状態から図11に示す内容に更新する。つまり、クライアント端末11が、共有リソース861に対応する共有リソース個別情報813−2に、ステータス情報815−2を追加する。
クライアント端末11は、ステータス情報815−2が追加されたことを示すステータス追加通知を中継サーバ12に送信する(ステップS21:NOTIFY())。ステータス追加通知は、共有リソースID814−2、ステータス情報815−2を含む。中継サーバ12は、ステータス追加通知を中継サーバ23に送信する(ステップS21.1:NOTIFY())。中継サーバ12、23は、ステータス追加通知に基づいて、共有リソース管理情報82を図9に示す状態から図11に示す状態に更新する。
中継サーバ23は、ステータス追加通知を、クライアント端末21に送信し(ステップS21.1.1−A:NOTIFY())、クライアント端末22に送信する(ステップS21.1.1−B:NOTIFY())。クライアント端末21、22は、ステータス追加通知に基づいて、共有リソース管理情報82を図9に示す状態から図11に示す状態に更新する。
このように、本変形例では、クライアント端末11から送信されるステータス追加通知に基づいて、クライアント端末21、22、中継サーバ12、23は、共有リソース管理情報82にステータス情報815−2を追加する。つまり、共有リソース861のダウンロードに関する一連の処理が開始される前に、クライアント端末21、22の各ユーザは、共有リソース861がダウンロードされることを確認できる。本変形例では、クライアント端末11が通信経路の確立を要求してからクライアント端末21がコピーリソース841の送信を開始するまでの間に、共有リソース861に関する操作が入力されることを防ぐことができる。したがって、共有リソース861のダウンロードが中断されることを、上記実施の形態よりもさらに確実に防ぐことが可能となる。
次に、クライアント端末11は、クライアント端末21までの通信経路の確立を要求する。クライアント端末11、21の間の通信経路の確立要求(ステップS22、ステップS22.1、ステップS22.1.1)については、図10に示すステップS1、ステップS1.1、ステップS1.1.1と同様である。
クライアント端末22のユーザは、クライアント端末22に共有リソース861に対応する共有リソースID「−a65ecaf」を入力して、共有リソース861の削除を指示する(ステップS23:delete(−a65ecaf))。クライアント端末22は、ステータス情報815−2が追加された共有リソース管理情報82を保持している。共有リソース861の削除ができないことを示すエラーメッセージが、クライアント端末22のモニタに表示される。
通信経路の確立の要求の後で、クライアント端末11、21の間の通信経路が確立される。通信経路の確立(ステップS24、ステップS24.1、ステップS24.1.1)については、図10に示すステップS2、ステップS2.1、ステップS2.1.1と同様である。クライアント端末11からクライアント端末21に対して、共有リソース861のダウンロードを要求するgetコマンドが送信される(ステップS25、ステップS25.1、ステップS25.1.1)。getコマンドの送信については、図10に示すステップS3、ステップS3.1、ステップS3.1.1と同様である。クライアント端末21は、getコマンドを受信した場合、共有リソース861をコピーしてコピーリソース841を作成し、コピーリソース841をクライアント端末11に送信する。
クライアント端末11は、コピーリソース841の受信が完了した後で、クライアント端末22までの通信経路の切断を要求する。通信経路の切断要求(ステップS26、S26.1、S26.1.1)については、図13に示すステップS11、S11.1、S11.1.1と同様である。そして、クライアント端末11、21の間の通信経路が切断される。通信経路の切断(ステップS27、S27.1、S27.1.1)については、図13に示すステップS12、S12.1、S12.1.1と同様である。
クライアント端末11は、クライアント端末21までの通信経路が切断された後に、共有リソース管理情報82を図11に示す状態から図9に示す状態に戻す。つまり、図11に示す共有リソース個別情報813−2から、ステータス情報815−2が削除される。
クライアント端末11は、ステータス情報815が削除されたことを示すステータス削除通知を、中継サーバ12に送信する(ステップS28:NOTIFY())。ステータス削除通知には、共有リソースID814−2とステータス情報815−2が含まれる。中継サーバ12は、ステータス削除通知を中継サーバ23に送信する(ステップS28.1:NOTIFY())。中継サーバ12、23は、ステータス削除通知に基づいて、共有リソース管理情報82を図11に示す状態から図9に示す状態に戻す。
中継サーバ23は、ステータス削除通知を、クライアント端末21に送信し(ステップS28.1.1−A:NOTIFY())、クライアント端末22に送信する(ステップS28.1.1−B:NOTIFY())。クライアント端末21、22は、ステータス削除通知に基づいて、共有リソース管理情報82を図11に示す状態から図9に示す状態に戻す。
このように、本変形例では、共有リソース861のダウンロードに関する一連の処理が終了した後に、共有リソース個別情報813−2からステータス情報815−2が削除される。クライアント端末21、22のユーザは、共有リソース861のダウンロード処理が完全に終了した後で、共有リソース861に関する操作が可能となったことを確認することになる。
以上説明したように、本変形例では、共有リソース861のダウンロード処理が開始される前からダウンロード処理が完了するまで、ステータス情報815−2が共有リソース個別情報813−2に追加される。これにより、クライアント端末11のユーザが共有リソース861にダウンロードを指示するときとほぼ同じタイミングで、共有リソース861に関する処理の指示が入力されることを防ぐことができる。したがって、本変形例は、上記実施の形態と比較して、共有リソース861のダウンロードが中断されることを確実に防ぐことができる。
{変形例2}
上記実施の形態および変形例1では、共有リソース861のダウンロードが一つだけ実行できる場合を例にして説明したが、これに限られない。たとえば、共有リソース861のダウンロードを、クライアント端末11、22が同時に実行してもよい。この場合、共有リソース個別情報813−2に追加されるステータス情報815−2には、クライアント端末11、22のそれぞれの識別情報が設定される。
図15は、複数の共有リソース86が同時にダウンロードされているときの共有リソース管理情報82を示す図である。なお、図15において、共有リソース個別情報813−1〜813−5以外の表示を省略している。
図15に示すように、共有リソース個別情報813−2に追加されたステータス情報815−2において、クライアント端末11、22の識別情報が設定されている。具体的には、ステータス情報815−2において、「dw=“client−1@relay−server−1.abc.net”、“client−3@relay−server−2.abc.net”」と設定されている。これにより、クライアント端末11、22が、共有リソース861を同時にダウンロードしていることを確認できる。クライアント端末11、22が共有リソース861を同時にダウンロードする場合における、共有ファイル表示部882の表示は、図12に示す表示と同様である。ただし、「プレゼン資料.ppt」(共有リソース861)の矢印アイコンの近傍にカーソルを移動させた場合、ダウンロードを指示したクライアント端末11、22の識別情報のほかに、同時ダウンロード数などが表示される。
また、共有リソース861のダウンロードを複数のクライアント端末が同時に実行できる場合、ステータス情報815−2に、共有リソース861に対するアクセス数の最大値を設定するようにしてもよい。
また、図15に示すように、共有リソース個別情報813−4には、ステータス情報815−4が設定されている。ステータス情報815−4には、クライアント端末11の識別情報が設定されている。このことから、クライアント端末11が、共有リソース861と、共有リソース個別情報813−4に対応する共有リソース862とを同時にダウンロードしていることがわかる。このように、一つのクライアント端末が複数の共有リソース86を同時にダウンロードする場合、各共有リソース86に対応する共有リソース個別情報813にステータス情報が追加される。
クライアント端末11が共有リソース861、862を同時にダウンロードしている場合、図12に示す共有ファイル表示部882において、「2007中間報告.pdf」(共有リソース862)のアイコンが矢印アイコンに変化する。
なお、本実施の形態において、中継サーバ23が共有リソース管理情報82にステータス情報815−2を追加する例について説明したが、これに限られない。たとえば、中継サーバ12が、共有リソース管理情報82にステータス情報を追加してもよい。
また、本実施の形態において、共有リソース861のダウンロード中に、クライアント端末22が共有リソース861の削除の指示を許可しない例について説明したが、これに限られない。たとえば、クライアント端末22は、共有ファイル表示部882の「プレゼン資料.ppt」に矢印アイコンが表示されている間、共有リソース861のダウンロードの指示を受け付けないようにすることができる。また、クライアント端末21は、共有リソース個別情報813−2にステータス情報815−2が設定されている間、電源オンの状態を継続するようにしてもよい。