{中継通信システムの全体構成}
以下、図面を参照しつつ、本発明の実施の形態について説明する。図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)から構成される。以上の情報の具体例について以下に説明する。
{クライアント端末の構成要素}
図3は、クライアント端末11(21、22)の構成要素を示す図である。クライアント端末11(21、22)は、インターフェース部111(211、221)、制御部112(212、222)、記憶部113(213、223)、アプリケーション114(214、224)、データベース格納部115(215、225)から構成される。括弧が付されていない符号は、クライアント端末11における符号を示す。括弧が付されている符号は、クライアント端末21、22における符号を示す。
インターフェース部111(211、221)は、IPアドレスを利用して、LAN1(2)に接続される中継サーバ12(23)に対して通信を実行する。
制御部112(212、222)は、クライアント端末11(21、22)および中継サーバ12(23)の相互間の通信を実行するための制御を行なう。制御部112(212、222)は、データベース格納部115(215、225)に格納される各種情報を作成または更新する。
記憶部113(213、223)は、ファイルおよびフォルダなどを格納する。アプリケーション114(214、224)は、文書編集ソフトウェアなどであり、記憶部113(213、223)に格納されたファイルの編集などを行う。
データベース格納部115(215、225)は、中継グループ情報格納部116(216、226)、中継サーバ情報格納部117(217、227)、ファイル送受信履歴情報格納部118(218、228)から構成される。以上の情報の具体例については後述する。
{記憶部のフォルダ構成}
次に、記憶部113、213、223について説明する。記憶部113、213、223には、それぞれ、各クライアント端末が送信先として対応付けられた送信用フォルダが作成される。また、記憶部113、213、223には、それぞれ、受信したファイルを送信元のクライアント端末ごとに対応付けて保存するための受信用フォルダが作成される。
図4は、クライアント端末11の記憶部113におけるフォルダ構成を示す図である。記憶部113には、フォルダ113−1、113−4が作成されている。フォルダ113−1には、送信用フォルダ113−2、受信用フォルダ113−3が作成されている。送信用フォルダ113−2に格納されるファイル110、120、140は、クライアント端末21に送信される。受信用フォルダ113−3には、クライアント端末21から送信されたファイル130が格納される。
フォルダ113−4には、送信用フォルダ113−5、受信用フォルダ113−6が作成されている。送信用フォルダ113−5に格納されるファイルは、クライアント端末22に送信される。受信用フォルダ113−6には、クライアント端末22から送信されたファイルが格納される。
図5は、クライアント端末21の記憶部213におけるフォルダ構成を示す図である。記憶部213には、フォルダ213−1、213−4が作成されている。
フォルダ213−1には、送信用フォルダ213−2、受信用フォルダ213−3が作成されている。送信用フォルダ213−2に格納されるファイル130は、クライアント端末11に送信される。受信用フォルダ213−3には、クライアント端末11から送信されたファイル110、120、140が格納される。
フォルダ213−4には、送信用フォルダ213−5、受信用フォルダ213−6が作成されている。送信用フォルダ213−5に格納されるファイルは、クライアント端末22に送信される。受信用フォルダ213−6には、クライアント端末22から送信されたファイルが格納される。
図6は、クライアント端末22の記憶部223におけるフォルダ構成を示す図である。記憶部223には、フォルダ223−1、223−4が作成されている。
フォルダ223−1には、送信用フォルダ223−2、受信用フォルダ223−3が作成されている。送信用フォルダ223−2に格納されるファイルは、クライアント端末11に送信される。受信用フォルダ223−3には、クライアント端末11から送信されたファイル140が格納される。
フォルダ223−4には、送信用フォルダ223−5、受信用フォルダ223−6が作成されている。送信用フォルダ223−5に格納されるファイルは、クライアント端末21に送信される。受信用フォルダ223−6には、クライアント端末21から送信されたファイルが格納される。
記憶部113、213、223にそれぞれ作成された送信用フォルダには、各クライアント端末が送信先として対応付けられている。送信用フォルダに格納されるファイルは、送信用フォルダに対応付けられたクライアント端末に自動的に送信される。また、受信用フォルダには、受信したファイルの送信元となり得るクライアント端末が対応付けられている。クライアント端末は、ファイルを受信した場合、送信元のクライアント端末に対応する受信用フォルダに受信したファイルを格納する。ファイルの送受信処理の詳細については、後述する。
{中継グループ情報の具体例}
図7は、中継グループ情報の具体例として、中継グループ情報40を示す図である。中継グループ情報は、中継通信システムを構成する中継サーバの概要を示す情報である。
中継グループ情報40は、上位情報401、下位情報402から構成される。
上位情報401は、上位にある中継グループについての情報である。「id」は、中継グループの識別情報を示す。「lastmod」は、中継グループ情報の最新更新時刻を示す。「name」は、中継グループの名称を示す。
下位情報402は、下位にある中継サーバについての情報である。「id」は、中継サーバの識別情報を示す。
中継グループ情報40は、中継グループ情報格納部124、234において格納される。すなわち、中継グループ情報40は、中継サーバ12、23により共有される。さらに、中継グループ情報40は、中継サーバおよびクライアント端末により共有される。
{中継サーバ情報の具体例}
図8は、中継サーバ情報の具体例として、中継サーバ情報50を示す図である。中継サーバ情報は、中継通信システムを構成する中継サーバの詳細を示す情報であり、中継通信システムを構成するクライアント端末の概要を示す情報である。
中継サーバ情報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は、下位にあるクライアント端末についての情報である。「div」は、クライアント端末の部署名を示す。「group」は、クライアント端末が所属する中継グループの識別情報を示す。「id」は、クライアント端末の識別情報を示す。「name」は、クライアント端末の名称を示す。クライアント端末サイト情報504−1、504−2は、クライアント端末がログオンしている中継サーバの識別情報を示す。
中継サーバ情報50は、中継サーバ情報格納部125、235において格納される。すなわち、中継サーバ情報50は、中継サーバ12、23により共有される。さらに、中継サーバ情報50は、中継サーバおよびクライアント端末により共有される。
中継サーバが起動しているときには、中継サーバ起動情報503−1、503−2が「active」になっている。中継サーバが起動していないときには、中継サーバ起動情報503−1、503−2が空欄になっている。これにより、中継サーバが起動しているかどうかについての情報が、中継通信システム全体として共有される。
クライアント端末が中継サーバにログオンしているときには、クライアント端末サイト情報504−1、504−2が記載されている。クライアント端末が中継サーバにログオンしていないときには、クライアント端末サイト情報504−1、504−2が記載されていない。これにより、クライアント端末が中継サーバにログオンしているかどうかについての情報が、中継通信システム全体として共有される。
{クライアント端末情報の具体例}
図9は、クライアント端末情報の具体例として、クライアント端末情報60、70を示す図である。クライアント端末情報は、中継通信システムを構成するクライアント端末の詳細を示す情報である。
クライアント端末情報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のみにより保有される。
{ファイル送受信履歴情報の具体例}
図10は、ファイル送受信履歴情報の具体例として、ファイル送受信履歴情報80を示す図である。ファイル送受信履歴情報は、クライアント端末が送受信するファイルの属性情報を、送信するファイルの送信先および受信したファイルの送信元ごとに分類した情報である。
図10に示すファイル送受信履歴情報80は、クライアント端末11が送受信するファイルについての情報である。ファイル送受信履歴情報80は、転送端末情報801−1、801−2、送信ファイル情報802−1、802−2、受信ファイル情報803−1、803−2を含む。
転送端末情報801−1、801−2は、クライアント端末11とファイルの送受信を行うクライアント端末の識別情報を示す。
送信ファイル情報802−1、802−2は、クライアント端末11が送信するファイルについての情報であり、ファイルの送信先ごとに作成される。送信ファイル情報802−1は、クライアント端末21に対応しており、ファイル属性情報804、805、806を含む。送信ファイル情報802−2は、クライアント端末22に対応しており、ファイル属性情報807を含む。「path」は、各送信用フォルダのフルパスを示す。
受信ファイル情報803−1、803−2は、クライアント端末11が受信するファイルについての情報であり、ファイルの送信元ごとに作成される。受信ファイル情報803−1は、クライアント端末21に対応しており、ファイル属性情報808を含む。受信ファイル情報803−2は、クライアント端末22に対応する。「path」は、各受信用フォルダのフルパスを示す。
ファイル属性情報は、送信用フォルダまたは受信用フォルダに格納されているファイルについての情報である。ファイル属性情報804〜808において、「id」は、ファイルの識別情報を示す。「lastmod」は、ファイルの最終更新時刻を示す。「name」は、ファイルの名前を示す。「path」は、ファイルの格納先を示す。「stat」は、ファイルへのアクセスの可否を示す。
ファイル送受信履歴情報80は、クライアント端末11のファイル送受信履歴情報格納部118において格納される。クライアント端末21、22に対応するファイル送受信履歴情報は、ファイル送受信履歴情報格納部218、228においてそれぞれ格納される。ファイル送受信履歴情報は、中継通信システム全体において共有されない。
以下では、中継通信システムの動作について説明する。なお、ファイル送受信履歴情報については、クライアント端末11に対応するファイル送受信履歴情報のみを説明し、クライアント端末21、22に対応するファイル送受信履歴情報の説明を省略する。
{情報共有の流れ−第1回目の設定}
図11、図12は、中継グループ情報、中継サーバ情報が共有される処理の流れを示す図である。図11、図12では、第1回目の設定が実行される。すなわち、中継サーバ12、23が、中継通信システムに参加する。そして、クライアント端末11のユーザが、中継サーバ12にログオンして、クライアント端末21のユーザが、中継サーバ23にログオンする。
[ステップS1からステップS2までの処理の流れ]
図11を用いて、第1回目の設定について説明する。中継サーバ12の管理者および中継サーバ23の管理者は、LAN1、2の相互間において中継通信システムのグループを構築する契約を結ぶ。
中継サーバ12の管理者は、クライアント端末11のユーザに対して、アカウントを作成する(ステップS1:CreateAccount())。制御部122は、中継サーバ情報51−1を作成して、中継サーバ情報格納部125に格納する。
中継サーバ23の管理者は、クライアント端末21のユーザに対して、アカウントを作成する(ステップS2:CreateAccount())。制御部232は、中継サーバ情報51−2を作成して、中継サーバ情報格納部235に格納する。
以上の処理の流れにより、中継サーバ12は、中継サーバ情報51−1を保有する。中継サーバ23は、中継サーバ情報51−2を保有する。
図13の1番目の枠内は、中継サーバ情報51−1を示す。上位情報511−1は、上位にある中継サーバ12についての情報である。「id」として、「relay−server−1@abc.net」が設定されている。「name」として、「RELAY SERVER 1」が設定されている。中継サーバ起動情報513−1として、「active」が設定されている。すなわち、中継サーバ12は、起動している。
下位情報512−1は、下位にあるクライアント端末11についての情報である。「div」として、「software」が設定されている。「group」として、「20070402133100@relay−server−1.abc.net」が設定されている。「id」として、「client−1@relay−server−1.abc.net」が設定されている。「name」として、「CLIENT 1」が設定されている。クライアント端末サイト情報514−1は、空欄になっている。すなわち、クライアント端末11のユーザは、中継サーバ12にログオンしていない。
図13の2番目の枠内は、中継サーバ情報51−2を示す。上位情報511−2は、上位にある中継サーバ23についての情報である。「id」として、「relay−server−2@abc.net」が設定されている。「name」として、「RELAY SERVER 2」が設定されている。中継サーバ起動情報513−2として、「active」が設定されている。すなわち、中継サーバ23は、起動している。
下位情報512−2は、下位にあるクライアント端末21についての情報である。「div」として、「software」が設定されている。「group」として、「20070402133100@relay−server−1.abc.net」が設定されている。「id」として、「client−2@relay−server−2.abc.net」が設定されている。「name」として、「CLIENT 2」が設定されている。クライアント端末サイト情報514−2は、空欄になっている。すなわち、クライアント端末21のユーザは、中継サーバ23にログオンしていない。
[ステップS3からステップS4までの処理の流れ]
以下の説明においては、中継サーバ12、23の相互間の通信は、SIPサーバ31により中継される。中継サーバ12(23)が中継サーバ23(12)に対してSIPサーバ31を介して通信を実行する方法について説明する。
中継サーバ12(23)は、SIPサーバ31に対して、中継サーバ23(12)のアカウントが通信先として指定されたデータなどを送信する。SIPサーバ31は、中継サーバ12、23のアカウントを、各々、中継サーバ12、23のグローバルIPアドレスに対応付けている。SIPサーバ31は、中継サーバ23(12)のアカウントに基づいて、中継サーバ23(12)のグローバルIPアドレスを取得する。SIPサーバ31は、中継サーバ23(12)に対して、中継サーバ23(12)のグローバルIPアドレスが通信先として指定されたデータなどを送信する。
中継サーバ12は、中継サーバ23に対して、中継通信システムのグループ構築を要求する(ステップS3:SetGroup())。制御部122は、中継グループ情報42を作成して、中継グループ情報格納部124に格納する。制御部232は、中継グループ情報42を作成して、中継グループ情報格納部234に格納する。
中継サーバ12は、中継サーバ23に対して、中継サーバ情報の交換を要求する(ステップS4:exchange(db))。中継サーバ12は、中継サーバ23に対して、中継サーバ情報51−1の複製を送信する。中継サーバ23は、中継サーバ12に対して、中継サーバ情報51−2の複製を送信する。
制御部122は、中継サーバ情報51−2の複製、中継サーバ情報51−1を合成することにより、中継サーバ情報52を作成して、中継サーバ情報格納部125に格納する。制御部232は、中継サーバ情報51−1の複製、中継サーバ情報51−2を合成することにより、中継サーバ情報52を作成して、中継サーバ情報格納部235に格納する。
制御部122は、クライアント端末情報62を作成して、クライアント端末情報格納部126に格納する。制御部232は、クライアント端末情報72を作成して、クライアント端末情報格納部236に格納する。クライアント端末情報62の作成処理および格納処理は、ステップS1において実行され、クライアント端末情報72の作成処理および格納処理は、ステップS2において実行される。
以上の処理の流れにより、中継サーバ12は、中継グループ情報42、中継サーバ情報52、クライアント端末情報62を保有する。中継サーバ23は、中継グループ情報42、中継サーバ情報52、クライアント端末情報72を保有する。中継グループ情報42、中継サーバ情報52は、中継サーバ12、23により共有されている。
図14の1番目の枠内は、中継グループ情報42を示す。上位情報421は、上位にある中継グループについての情報である。「id」として、「20070402133100@relay−server−1.abc.net」が設定されている。「lastmod」として、「20070402133100」が設定されている。「name」として、「GROUP 1」が設定されている。
下位情報422は、下位にある中継サーバ12、23についての情報である。「id」として、「relay−server−1@abc.net」、「relay−server−2@abc.net」が設定されている。
図14の2番目の枠内は、中継サーバ情報52を示す。上位情報521−1、521−2は、各々、図13の上位情報511−1、511−2と同様である。下位情報522−1、522−2は、各々、図13の下位情報512−1、512−2と同様である。
図14の3番目の枠内は、クライアント端末情報62を示す。「div」として、「software」が設定されている。「group」として、「20070402133100@relay−server−1.abc.net」が設定されている。「id」として、「client−1@relay−server−1.abc.net」が設定されている。「name」として、「CLIENT 1」が設定されている。「pass」として、「client−1」が設定されている。
クライアント端末アドレス情報621は、空欄になっている。クライアント端末有効期限情報622として、「0」が設定されている。クライアント端末ポート情報623は、空欄になっている。すなわち、クライアント端末11のユーザは、中継サーバ12にログオンしていない。
図14の4番目の枠内は、クライアント端末情報72を示す。「div」として、「software」が設定されている。「group」として、「20070402133100@relay−server−1.abc.net」が設定されている。「id」として、「client−2@relay−server−2.abc.net」が設定されている。「name」として、「CLIENT 2」が設定されている。「pass」として、「client−2」が設定されている。
クライアント端末アドレス情報721は、空欄になっている。クライアント端末有効期限情報722として、「0」が設定されている。クライアント端末ポート情報723は、空欄になっている。すなわち、クライアント端末21のユーザは、中継サーバ23にログオンしていない。
[ステップS5からステップS7までの処理の流れ]
クライアント端末11のユーザは、クライアント端末11の識別情報として、「client−1@relay−server−1.abc.net」を入力して、クライアント端末11のパスワードとして、「client−1」を入力する。クライアント端末11のユーザは、中継サーバ12にログオンする(ステップS5:REGISTER(ID,PASS))。制御部122は、クライアント端末情報62を参照することにより、クライアント端末11のユーザの認証を実行する。
制御部122は、クライアント端末11のユーザのログオンを受け付ける。制御部122は、中継サーバ情報52を更新することにより、中継サーバ情報53を作成して、中継サーバ情報格納部125に格納する。制御部122は、クライアント端末情報62を更新することにより、クライアント端末情報63を作成して、クライアント端末情報格納部126に格納する。制御部122は、中継グループ情報42を更新することはない。
クライアント端末11は、中継サーバ12に対して、中継グループ情報および中継サーバ情報の提供を要求する(ステップS6:get())。中継サーバ12は、クライアント端末11に対して、中継グループ情報42および中継サーバ情報53の複製を送信する。クライアント端末11は、中継グループ情報42、中継サーバ情報53を格納する。
制御部122は、中継グループ情報42、中継サーバ情報53を参照することにより、中継サーバ情報52が中継サーバ情報53に更新されたことを通知すべき中継サーバを決定する。制御部122は、中継サーバ情報53の中継サーバ起動情報533−2が「active」である中継サーバ23を、通知すべき中継サーバとして決定する。
中継サーバ12は、中継サーバ23に対して、中継サーバ情報52が中継サーバ情報53に更新されたことを通知する(ステップS7:NOTIFY())。制御部232は、中継サーバ情報52を更新することにより、中継サーバ情報53を作成して、中継サーバ情報格納部235に格納する。
制御部232は、クライアント端末情報72を参照することにより、中継サーバ情報52が中継サーバ情報53に更新されたことを通知すべきクライアント端末を決定する。制御部232は、クライアント端末情報72のクライアント端末アドレス情報721が空欄であり、クライアント端末情報72のクライアント端末ポート情報723が空欄であるクライアント端末21を、通知すべきクライアント端末として決定することはない。
以上の処理の流れにより、中継サーバ12は、中継グループ情報42、中継サーバ情報53、クライアント端末情報63を保有する。中継サーバ23は、中継グループ情報42、中継サーバ情報53、クライアント端末情報72を保有する。クライアント端末11は、中継グループ情報42、中継サーバ情報53を保有する。中継グループ情報42、中継サーバ情報53は、中継サーバ12、23、クライアント端末11により共有されている。
図15の1番目の枠内は、中継グループ情報42を示す。ステップS5からステップS7までの処理の流れにおいては、新たな中継サーバが中継通信システムに参加していないため、中継グループ情報42が更新されることはない。
図15の2番目の枠内は、中継サーバ情報53を示す。更新部分を下線部により示す。クライアント端末11のユーザは、中継サーバ12にログオンしている。そのため、下位情報532−1のクライアント端末サイト情報534−1は、「relay−server−1@abc.net」に確定されている。
図15の3番目の枠内は、クライアント端末情報63を示す。更新部分を下線部により示す。クライアント端末11のユーザは、中継サーバ12にログオンしている。そのため、クライアント端末アドレス情報631は、「192.168.10.2」に確定されている。また、クライアント端末有効期限情報632は、「1213935960484」に確定されている。さらに、クライアント端末ポート情報633は、「5070」に確定されている。
図15の4番目の枠内は、クライアント端末情報72を示す。ステップS5からステップS7までの処理の流れにおいては、クライアント端末21のユーザが中継サーバ23にログオンしていないため、クライアント端末情報72が更新されることはない。
[ステップS8からステップS11までの処理の流れ]
クライアント端末11は、中継サーバ情報53の下位情報532−2に基づいて、クライアント端末21がファイルの送信先となり得ることを確認する。クライアント端末11は、記憶部113にフォルダ113−1を作成する。クライアント端末21に対応する受信用フォルダ113−3が作成され(ステップS8:Create)、クライアント端末21に対応する送信用フォルダ113−2が作成される(ステップS9:Create)。
クライアント端末11は、クライアント端末21の識別情報、送信用フォルダ113−2および受信用フォルダ113−3のフルパスに基づいて、ファイル送受信履歴情報81を新規に作成する。
図16は、ファイル送受信履歴情報81を示す。転送端末情報811−1に、クライアント端末21の識別情報「client−2@relay−server−2.abc.net」が設定される。送信ファイル情報812−1の「path」に、送信用フォルダ113−2のフルパス「C:¥client−2¥out」が設定される。受信ファイル情報813−1の「path」に、受信用フォルダ113−3のフルパス「C:¥client−2¥in」が設定される。
クライアント端末11のユーザは、アプリケーション114を操作して、名称を「fileA」としたファイル110を送信用フォルダ113−2にコピーする(ステップS10:copy(fileA))。同様に、名称を「fileB」としたファイル120が、送信用フォルダ113−2にコピーされる(ステップS11:copy(fileB))。
[ステップS12からステップS17までの処理の流れ]
以下、図12を用いて、第1回目の設定について引き続き説明する。クライアント端末21のユーザは、クライアント端末21の識別情報として、「client−2@relay−server−2.abc.net」を入力して、クライアント端末21のパスワードとして、「client−2」を入力する。クライアント端末21のユーザは、中継サーバ23にログオンする(ステップS12:REGISTER(ID,PASS))。制御部232は、クライアント端末情報72を参照することにより、クライアント端末21のユーザの認証を実行する。
制御部232は、クライアント端末21のユーザのログオンを受け付ける。制御部232は、中継サーバ情報53を更新することにより、中継サーバ情報54を作成して、中継サーバ情報格納部235に格納する。制御部232は、クライアント端末情報72を更新することにより、クライアント端末情報74を作成して、クライアント端末情報格納部236に格納する。制御部232は、中継グループ情報42を更新することはない。
クライアント端末21は、中継サーバ23に対して、中継グループ情報および中継サーバ情報の提供を要求する(ステップS13:get())。中継サーバ23は、クライアント端末21に対して、中継グループ情報42および中継サーバ情報54の複製を送信する。クライアント端末21は、中継グループ情報42、中継サーバ情報54を格納する。
制御部232は、中継グループ情報42、中継サーバ情報54を参照することにより、中継サーバ情報53が中継サーバ情報54に更新されたことを通知すべき中継サーバを決定する。制御部232は、中継サーバ情報54の中継サーバ起動情報543−1が「active」である中継サーバ12を、通知すべき中継サーバとして決定する。
中継サーバ23は、中継サーバ12に対して、中継サーバ情報53が中継サーバ情報54に更新されたことを通知する(ステップS14:NOTIFY())。制御部122は、中継サーバ情報53を更新することにより、中継サーバ情報54を作成して、中継サーバ情報格納部125に格納する。
制御部122は、クライアント端末情報63を参照することにより、中継サーバ情報53が中継サーバ情報54に更新されたことを通知すべきクライアント端末を決定する。制御部122は、クライアント端末情報63のクライアント端末アドレス情報631が確定されていて、クライアント端末情報63のクライアント端末ポート情報633が確定されているクライアント端末11を、通知すべきクライアント端末として決定する。
中継サーバ12は、クライアント端末11に対して、中継サーバ情報53が中継サーバ情報54に更新されたことを通知する(ステップS15:NOTIFY())。クライアント端末11は、中継サーバ情報53を更新することにより、中継サーバ情報54を作成して、中継サーバ情報54を格納する。
以上の処理の流れにより、中継サーバ12は、中継グループ情報42、中継サーバ情報54、クライアント端末情報63を保有する。中継サーバ23は、中継グループ情報42、中継サーバ情報54、クライアント端末情報74を保有する。クライアント端末11は、中継グループ情報42、中継サーバ情報54を保有する。クライアント端末21は、中継グループ情報42、中継サーバ情報54を保有する。中継グループ情報42、中継サーバ情報54は、中継サーバ12、23、クライアント端末11、21により共有されている。
図17の1番目の枠内は、中継グループ情報42を示す。ステップS12からステップS15までの処理の流れにおいては、新たな中継サーバが中継通信システムに参加していないため、中継グループ情報42が更新されることはない。
図17の2番目の枠内は、中継サーバ情報54を示す。更新部分を下線部により示す。クライアント端末21のユーザは、中継サーバ23にログオンしている。そのため、下位情報542−2のクライアント端末サイト情報544−2は、「relay−server−2@abc.net」に確定されている。
図17の3番目の枠内は、クライアント端末情報63を示す。ステップS12からステップS15までの処理の流れにおいては、クライアント端末11のユーザが中継サーバ12からログオフしていないため、クライアント端末情報63が更新されることはない。
図17の4番目の枠内は、クライアント端末情報74を示す。更新部分を下線部により示す。クライアント端末21のユーザは、中継サーバ23にログオンしている。そのため、クライアント端末アドレス情報741は、「192.168.1.10」に確定されている。また、クライアント端末有効期限情報742は、「1213935978484」に確定されている。さらに、クライアント端末ポート情報743は、「5070」に確定されている。
また、クライアント端末21は、中継サーバ23にログオンした後で、中継サーバ情報54の下位情報542−1に基づいて、クライアント端末11がファイルの送信先となり得ることを確認する。クライアント端末21は、記憶部213にフォルダ213−1を作成する。クライアント端末11に対応する受信用フォルダ213−3が作成され(ステップS16:Create)、クライアント端末11に対応する送信用フォルダ213−2が作成される(ステップS17:Create)。
クライアント端末11は、ステップS15の処理において、クライアント端末21が中継サーバ23にログオンしたことを確認する。クライアント端末11は、クライアント端末21に対応する送信用フォルダ113−2に格納されるファイルの自動検出を開始する。同様に、クライアント端末21は、ステップS13の処理において、クライアント端末11が中継サーバ12にログオンしていることを確認する。クライアント端末21は、クライアント端末11に対応する送信用フォルダ213−2に格納されるファイルの自動検出を開始する。なお、各クライアント端末におけるファイルの自動検出の詳細については、後述する。
{情報共有の流れ−第2回目の設定}
図18、図19は、中継グループ情報、中継サーバ情報が共有される処理の流れを示す図である。図18、図19では、第2回目の設定が実行される。すなわち、中継サーバ12、23が、中継通信システムに参加し続けている。そして、クライアント端末11のユーザが、中継サーバ12にログオンし続けている。さらに、クライアント端末22のユーザが、中継サーバ23にログオンし続けており、クライアント端末22のユーザが、新たに、中継サーバ23にログオンする。
図18では、送信用フォルダ113−2、213−2、受信用フォルダ113−3、213−3の表示を省略している。なお、第2回目の設定の前に、後述するステップS18〜S27に示す処理によりファイルの自動送信が行われている。このため、ファイル送受信履歴情報81は、第2回目の設定を開始する時点でファイル送受信履歴情報85(図30参照)に更新されている。
[ステップS28からステップS33までの処理の流れ]
中継サーバ23の管理者は、クライアント端末22のユーザに対して、アカウントを作成する(ステップS28−A:CreateAccount())。制御部232は、中継サーバ情報54を更新することにより、中継サーバ情報55を作成する。制御部232は、クライアント端末情報74を更新することにより、クライアント端末情報75を作成する。制御部232は、中継グループ情報42を更新することはない。
ステップS28−Bは、ステップS7、S14とほぼ同様である。制御部232は、中継グループ情報42、中継サーバ情報55を参照する。制御部232は、中継サーバ12に対して、中継サーバ情報54が中継サーバ情報55に更新されたことを通知することを決定する。中継サーバ23は、中継サーバ12に対して、中継サーバ情報54が中継サーバ情報55に更新されたことを通知する(ステップS28−B:NOTIFY())。
ステップS28−Cは、ステップS15とほぼ同様である。制御部232は、クライアント端末情報75を参照する。制御部232は、クライアント端末21に対して、中継サーバ情報54が中継サーバ情報55に更新されたことを通知することを決定する。中継サーバ23は、クライアント端末21に対して、中継サーバ情報54が中継サーバ情報55に更新されたことを通知する(ステップS28−C:NOTIFY())。
ステップS29は、ステップS15とほぼ同様である。制御部122は、クライアント端末情報63を参照する。制御部122は、クライアント端末11に対して、中継サーバ情報54が中継サーバ情報55に更新されたことを通知することを決定する。中継サーバ12は、クライアント端末11に対して、中継サーバ情報54が中継サーバ情報55に更新されたことを通知する(ステップS29:NOTIFY())。
クライアント端末11は、中継サーバ情報55の下位情報552−3に基づいて、クライアント端末22がファイルの送信先となり得ることを確認する。クライアント端末11は、記憶部113にフォルダ113−4を作成する。クライアント端末22に対応する受信用フォルダ113−6が作成され(ステップS30:Create)、クライアント端末22に対応する送信用フォルダ113−5が作成される(ステップS31:Create)。
クライアント端末11は、クライアント端末22の識別情報、送信用フォルダ113−5および受信用フォルダ113−6のフルパスに基づいて、後述するファイル送受信履歴情報85を更新することにより、ファイル送受信履歴情報82を作成する。
クライアント端末21は、中継サーバ情報55の下位情報552−3に基づいて、クライアント端末22がファイルの送信先となり得ることを確認する。クライアント端末21は、記憶部213にフォルダ213−4を作成する。クライアント端末22に対応する受信用フォルダ213−6が作成され(ステップS32:Create)、クライアント端末22に対応する送信用フォルダ213−5が作成される(ステップS33:Create)。
図20の1番目の枠内は、中継グループ情報42を示す。図21の1番目の枠内は、クライアント端末情報63を示す。ステップS28からステップS33までの処理の流れにおいては、中継グループ情報42、クライアント端末情報63が更新されることはない。
図20の2番目の枠内は、中継サーバ情報55を示す。更新部分を下線部により示す。ここで、中継サーバ23の管理者は、クライアント端末22のユーザに対して、アカウントを作成している。そのため、クライアント端末22について、下位情報552−3が作成されている。しかし、クライアント端末22のユーザは、中継サーバ23にログオンしていない。そのため、クライアント端末22について、クライアント端末サイト情報554−3が空欄になっている。
図21の2番目の枠内は、クライアント端末情報75を示す。更新部分を下線部により示す。ここで、中継サーバ23の管理者は、クライアント端末22のユーザに対して、アカウントを作成している。そのため、クライアント端末22について、クライアント端末情報75が作成されている。しかし、クライアント端末22のユーザは、中継サーバ23にログオンしていない。そのため、クライアント端末22について、クライアント端末アドレス情報751、クライアント端末ポート情報753が空欄になっていて、クライアント端末有効期限情報752が「0」に設定されている。
図22は、ファイル送受信履歴情報82を示す図である。更新部分を下線部により示す。ファイル送受信履歴情報82には、転送端末情報821−2、送信ファイル情報822−2、受信ファイル情報823−2が追加される。なお、ファイル送受信歴情報82におけるファイル送信情報822−2、ファイル受信情報823―1は、後述するステップS18〜S27に示す処理によって追加される。
転送端末情報821−2に、クライアント端末22の識別情報「client−3@relay−server−2.abc.net」が設定される。送信ファイル情報822−2の「path」に、クライアント端末22に対応する送信用フォルダ113−5のフルパス「C:¥client−3¥out」が設定される。受信ファイル情報823−2の「path」に、クライアント端末22に対応する受信用フォルダ113−6のフルパス「C:¥client−3¥in」が設定される。
[ステップS34からステップS41までの処理の流れ]
以下、図19を用いて、第2回目の設定について引き続き説明する。クライアント端末22のユーザは、中継サーバ23にログオンする(ステップS34:REGISTER(ID,PASS))。制御部232は、中継サーバ情報55を更新することにより、中継サーバ情報56を作成する。制御部232は、クライアント端末情報75を更新することにより、クライアント端末情報76を作成する。制御部232は、中継グループ情報42を更新することはない。
クライアント端末22は、中継サーバ23に対して、中継グループ情報および中継サーバ情報の提供を要求する(ステップS35:get())。中継サーバ23は、クライアント端末22に対して、中継グループ情報42および中継サーバ情報56の複製を送信する。
ステップS36−Aは、ステップS15とほぼ同様である。制御部232は、クライアント端末情報76を参照する。制御部232は、クライアント端末21に対して、中継サーバ情報55が中継サーバ情報56に更新されたことを通知することを決定する。中継サーバ23は、クライアント端末21に対して、中継サーバ情報55が中継サーバ情報56に更新されたことを通知する(ステップS36−A:NOTIFY())。
ステップS36−Bは、ステップS7、S14とほぼ同様である。制御部232は、中継グループ情報42、中継サーバ情報56を参照する。制御部232は、中継サーバ12に対して、中継サーバ情報55が中継サーバ情報56に更新されたことを通知することを決定する。中継サーバ23は、中継サーバ12に対して、中継サーバ情報55が中継サーバ情報56に更新されたことを通知する(ステップS36−B:NOTIFY())。
ステップS37は、ステップS15とほぼ同様である。制御部122は、クライアント端末情報63を参照する。制御部122は、クライアント端末11に対して、中継サーバ情報55が中継サーバ情報56に更新されたことを通知することを決定する。中継サーバ12は、クライアント端末11に対して、中継サーバ情報55が中継サーバ情報56に更新されたことを通知する(ステップS37:NOTIFY())。
クライアント端末22は、中継サーバ情報56の下位情報562−1、562−3に基づいて、クライアント端末11、21がファイルの送信先となり得ることを確認する。クライアント端末22は、記憶部223にフォルダ223−1、223−4を作成する。フォルダ223−1の下に、クライアント端末11に対応する受信用フォルダ223−3が作成され(ステップS38:Create)、クライアント端末11に対応する送信用フォルダ223−2が作成される(ステップS39:Create)。フォルダ223−4の下に、クライアント端末21に対応する受信用フォルダ223−6が作成され(ステップS40:Create)、クライアント端末11に対応する送信用フォルダ223−5が作成される(ステップS41:Create)。
クライアント端末11、21は、ステップS37、ステップS36−Aのそれぞれの処理において、クライアント端末22が中継サーバ23にログオンしたことを確認する。クライアント端末11、21は、クライアント端末22に対応する送信用フォルダ113−5、213−5にそれぞれ格納されるファイルの自動検出を開始する。同様に、クライアント端末22は、ステップS35の処理において、クライアント端末11が中継サーバ12にログオンし、クライアント端末21が中継サーバ23にログオンしていることを確認する。クライアント端末22は、クライアント端末11、21にそれぞれ対応する送信用フォルダ223−2、223−5に格納されるファイルの自動検出を開始する。なお、各クライアント端末におけるファイルの自動検出の詳細については、後述する。
図23の1番目の枠内は、中継グループ情報42を示す。図24の1番目の枠内は、クライアント端末情報63を示す。ステップS34からステップS41までの処理の流れにおいては、中継グループ情報42、クライアント端末情報63が更新されることはない。
図23の2番目の枠内は、中継サーバ情報56を示す。更新部分を下線部により示す。ここで、クライアント端末22のユーザは、中継サーバ23にログオンしている。そのため、クライアント端末22について、下位情報562−3のクライアント端末サイト情報564−3が確定されている。
図24の2番目の枠内は、クライアント端末情報76を示す。更新部分を下線部により示す。ここで、クライアント端末22のユーザは、中継サーバ23にログオンしている。そのため、クライアント端末22について、クライアント端末アドレス情報761およびクライアント端末ポート情報763が確定されていて、クライアント端末有効期限情報762が「0」でない情報に設定されている。
{情報共有のまとめ}
中継通信システムにおいて、LANおよびクライアント端末の増減状態および接続状態が変化することがある。そこで、一の中継サーバは、状態変化を認識したときには、中継グループ情報、中継サーバ情報、クライアント端末情報を直ちに更新する。
そして、一の中継サーバは、中継グループ情報および中継サーバ情報に記載されている他の中継サーバに、中継グループ情報および中継サーバ情報が更新されたことを直ちに通知する。さらに、一の中継サーバは、クライアント端末情報に記載されているクライアント端末に、中継グループ情報および中継サーバ情報が更新されたことを直ちに通知する。
しかし、一の中継サーバは、他の中継サーバが中継グループ情報および中継サーバ情報に記載されているとしても、他の中継サーバが未接続状態にあると判断したときには、他の中継サーバに直ちに通知することはない。さらに、一の中継サーバは、クライアント端末がクライアント端末情報に記載されているとしても、クライアント端末が未接続状態にあると判断したときには、クライアント端末に直ちに通知することはない。
これにより、LANおよびクライアント端末の増減状態および接続状態についての情報は、中継通信システム全体としてリアルタイムに共有される。
{データ送受信の流れ−第1回目の設定後}
ここで、クライアント端末の相互間のデータの送受信について説明する。図25は、第1回目の情報共有後におけるデータ送受信の流れを示す図である。第1回目の情報共有後においては、図17に示した中継グループ情報42、中継サーバ情報54、クライアント端末情報63、74が格納されている。クライアント端末11のユーザは、中継サーバ12にログオンしている。クライアント端末21のユーザは、中継サーバ23にログオンしている。クライアント端末22のユーザは、中継サーバ23の管理者によりアカウントを作成されていない。しかし、第2回目の設定後では、クライアント端末22は、以下の説明と同様の手順で、クライアント端末11とデータの送受信をすることが可能である。
[ステップS91からステップS94までの処理の流れ]
図25は、連続的にデータを送受信する前に、コネクションを確立する処理の流れを示す。クライアント端末11のユーザは、クライアント端末11が所属する中継グループを確認する。具体的には、クライアント端末11のユーザは、中継グループ情報42をクライアント端末11の表示画面に表示させる(getGroup())。中継グループ情報42には、中継サーバ12、23の識別情報「relay−server−1@abc.net」、「relay−server−2@abc.net」が設定されている。クライアント端末11のユーザは、クライアント端末11が中継サーバ12、23により構成される中継グループに所属していることを確認する。
クライアント端末11のユーザは、中継グループ情報42に対応する中継サーバ情報54を、クライアント端末11の表示画面に表示させる(getServer())。クライアント端末11のユーザは、中継サーバ情報54を参照して、中継グループを構成する中継サーバ、中継サーバの下位に位置するクライアント端末を確認する。
クライアント端末11のユーザは、中継サーバ12について、中継サーバ情報54の中継サーバ起動情報543−1が「active」に設定されていることを確認する。すなわち、中継サーバ12が起動していることを確認する。
クライアント端末11のユーザは、中継サーバ23について、中継サーバ情報54の中継サーバ起動情報543−2が「active」に設定されていることを確認する。すなわち、中継サーバ23が起動していることを確認する。
クライアント端末11のユーザは、クライアント端末21について、中継サーバ情報54のクライアント端末サイト情報544−2が「relay−server−2@abc.net」に設定されていることを確認する。すなわち、クライアント端末21が中継サーバ23にログオンしていることを確認する。
クライアント端末11のユーザは、中継サーバ12、23を介して、クライアント端末21に対して、データを送信できることを確認する。クライアント端末11のユーザは、クライアント端末21に対して、連続的にデータを送信することを決定する。
クライアント端末11は、クライアント端末11および中継サーバ12の相互間の通信(stream(1))において、中継サーバ12に対して、コネクション確立の要求情報を送信する(ステップS91:open(client−2,client−1))。
中継サーバ12は、stream(1)、中継サーバ12および中継サーバ23の相互間の通信(stream(2))を関連付ける(stream(1):open()==stream(2):open())。中継サーバ12は、stream(2)において、中継サーバ23に対して、コネクション確立の要求情報を送信する(ステップS91.1:open(client−2,client−1))。
中継サーバ23は、stream(2)、中継サーバ23およびクライアント端末21の相互間の通信(stream(3))を関連付ける(stream(2):open()==stream(3):open())。中継サーバ23は、stream(3)において、クライアント端末21に対して、クライアント端末情報74を用いてコネクション確立の要求情報を送信する(ステップS91.1.1:open(client−2,client−1))。すなわち、コネクション確立の要求情報は、クライアント端末21に対応するクライアント端末アドレス情報741「192.168.1.10」、クライアント端末ポート情報743「5070」などに基づいて、クライアント端末21に送信される。
クライアント端末21は、stream(3)において、中継サーバ23に対して、コネクション確立の許可情報を送信する(ステップS91.1.1に対するack)。
中継サーバ23は、stream(2)およびstream(3)の関連付けを参照する(stream(2):ack()==stream(3):ack())。中継サーバ23は、stream(2)において、中継サーバ12に対して、コネクション確立の許可情報を送信する(ステップS91.1に対するack)。
中継サーバ12は、stream(1)およびstream(2)の関連付けを参照する(stream(1):ack()==stream(2):ack())。中継サーバ12は、stream(1)において、クライアント端末11に対して、コネクション確立の許可情報を送信する(ステップS91に対するack)。
クライアント端末11は、中継サーバ12に対して、クライアント端末11および中継サーバ12の相互間のコネクション(connection(1))を確立する(ステップS92:connection(1))。
中継サーバ12は、中継サーバ23に対して、中継サーバ12および中継サーバ23の相互間のコネクション(connection(2))を確立する(ステップS93:connection(2))。中継サーバ12は、connection(1)およびconnection(2)を関連付ける。
中継サーバ23は、クライアント端末21に対して、クライアント端末情報74を用いて中継サーバ23およびクライアント端末21の相互間のコネクション(connection(3))を確立する(ステップS94:connection(3))。中継サーバ23は、connection(2)およびconnection(3)を関連付ける。
以上の処理の流れにより、以下に説明するように、クライアント端末11およびクライアント端末21は、双方向に連続的にデータを送受信できる。
クライアント端末11がクライアント端末21に対して連続的にデータを送信するときについて説明する。クライアント端末11は、connection(1)においてデータを送信する(connection(1):send())。中継サーバ12は、connection(1)においてデータを受信したときには、connection(1)およびconnection(2)の関連付けを参照することにより、connection(2)においてデータを送信する(connection(1):recv()==connection(2):send())。中継サーバ23は、connection(2)においてデータを受信したときには、connection(2)およびconnection(3)の関連付けを参照することにより、connection(3)においてデータを送信する(connection(2):recv()==connection(3):send())。クライアント端末21は、connection(3)においてデータを受信する(connection(3):recv())。
クライアント端末21がクライアント端末11に対して連続的にデータを送信するときについて説明する。クライアント端末21は、connection(3)においてデータを送信する(connection(3):send())。中継サーバ23は、connection(3)においてデータを受信したときには、connection(2)およびconnection(3)の関連付けを参照することにより、connection(2)においてデータを送信する(connection(2):send()==connection(3):recv())。中継サーバ12は、connection(2)においてデータを受信したときには、connection(1)およびconnection(2)の関連付けを参照することにより、connection(1)においてデータを送信する(connection(1):send()==connection(2):recv())。クライアント端末11は、connection(1)においてデータを受信する(connection(1):recv())。
{ファイルの自動送信−第1回目の設定後}
図26は、第1回目の情報共有後におけるファイルの自動送信の流れを示す図である。図26において、クライアント端末22、SIPサーバ31の表示、送信用フォルダ113−2、受信用フォルダ213−3以外のフォルダの表示を省略している。
各クライアント端末の送信用フォルダ、受信用フォルダは、特に説明のない限りは、ファイルは格納していない状態である。中継サーバ12は、ファイル送受信履歴情報81を保有している。以下の説明において、クライアント端末の相互間におけるファイルの転送を説明する際には、送信先の接続状態の確認、コネクションの確立、コネクションの関連付けなどの詳細な説明は省略する。
[ステップS18からステップS22までの処理の流れ]
上述したように、クライアント端末11は、ステップS15の処理において、クライアント端末21に対応する送信用フォルダ113−2に格納されるファイルの自動検出を開始する。送信用フォルダ113−2に格納されるファイルは、クライアント端末21に自動的に送信される。
クライアント端末11は、送信用フォルダ113−2に新たなファイルが格納されたかどうかを確認する(ステップS18:checkoutbox())。図11に示すステップS10、ステップS11において、「fileA」(ファイル110)、「fileB」(ファイル120)が、送信用フォルダ113−2に保存されている。
制御部112は、クライアント端末11に対応する送信用フォルダ113−2にファイル110、120が新たに格納されたことを確認し、ファイル110を取得する(ステップS19:getFile(fileA))。制御部112は、ファイル送受信履歴情報81(図16参照)に基づいて、名称が「fileA」のファイルを過去にクライアント端末21に送信したかどうかを判断する。クライアント端末21に対応する送信ファイル情報に、「fileA」と設定されたファイル属性情報があった場合、制御部112は、ファイル110を送信しない。これにより、ファイルの自動送信が繰り返されることを防ぐことができる。
クライアント端末11は、中継サーバ12に対して、クライアント端末21を送信先に指定したファイル110を送信する(ステップS20:send(fileA))。クライアント端末11は、ファイル110の送信に応じて、ファイル送受信履歴情報81を更新することにより、ファイル送受信履歴情報83を作成する。
図27は、ファイル送受信履歴情報83を示す図である。「name=“fileA”」と設定されたファイル属性情報834が、送信ファイル情報832−1に追加されており、ファイル110に対応している。
中継サーバ12は、中継サーバ23に対して、ファイル110を送信する(ステップS20.1:send(fileA))。中継サーバ23は、クライアント端末21に対して、ファイル110を送信する(ステップS20.1.1:send(fileA))。
クライアント端末21は、受信したファイル110の送信元がクライアント端末11であることを確認する。ファイル110は、クライアント端末11に対応する受信用フォルダ213−3に格納される(S20.1.1.1:copy(fileA))。
次に、制御部112は、送信用フォルダ113−2からファイル120を取得する(ステップS21:getFile(fileB))。制御部112は、ファイル120の名称「fileB」とファイル送受信履歴情報83とに基づいて、ファイル120をクライアント端末21に送信するかどうかを判断する。
クライアント端末11は、中継サーバ12に対して、クライアント端末21を送信先に指定したファイル120を送信する(ステップS22:send(fileB))。クライアント端末11は、は、ファイル120の送信に応じて、ファイル送受信履歴情報83を更新することにより、ファイル送受信履歴情報84を作成する。
図28は、ファイル送受信履歴情報84を示す図である。更新部分を下線部により示す。「name=“fileB”」と設定されたファイル属性情報845が、送信ファイル情報842−1に追加されており、ファイル120に対応している。
中継サーバ12は、中継サーバ23に対して、ファイル120を送信する(ステップS22.1:send(fileB))。中継サーバ23は、クライアント端末21に対して、ファイル120を送信する(ステップS22.1.1:send(fileB))。クライアント端末21は、受信したファイル120の送信元がクライアント端末11であることを確認する。ファイル120は、クライアント端末11に対応する受信用フォルダ213−3に格納される(S22.1.1.1:copy(fileB))。
[ステップS23からステップS27までの処理の流れ]
図29は、ステップS22に示す処理の後におけるファイルの自動送信の流れを示す図である。なお、図29において、クライアント端末22、SIPサーバ31の表示、送信用フォルダ213−2、受信用フォルダ113−3以外のフォルダの表示を省略している。
上述したように、クライアント端末21は、ステップS13の処理において、クライアント端末11に対応する送信用フォルダ213−2に格納されるファイルの自動検出を開始する。送信用フォルダ213−2に格納されるファイルは、クライアント端末11に自動的に送信される。
クライアント端末21において、制御部212は、クライアント端末11に対応する送信用フォルダ213−2に新規に格納されたファイルがあるかどうかを確認する(ステップS23:checkoutbox())。この時点では、送信用フォルダ213−2にファイルは格納されていないため、制御部212は、ファイルの自動送信を行わない。
クライアント端末21のユーザは、アプリケーション214を操作して、送信用フォルダ213−2に名称を「fileC」としたファイル130を保存する(ステップS24:copy(fileC))。制御部212は、再度、送信用フォルダ213−2に新規に格納されたファイルがあるかどうかを確認する(ステップS25:checkoutbox())。
制御部212は、ファイル130が新たに格納されたことを確認し、送信用フォルダ213−2からファイル130を取得する(ステップS26:getFile(fileC))。制御部212は、ファイル130の名称「fileC」とファイル送受信履歴情報とに基づいて、ファイル130をクライアント端末11に送信するかどうかを判断する。
クライアント端末21は、中継サーバ23に対して、クライアント端末11を送信先に指定したファイル130を送信する(ステップS27:send(fileC))。中継サーバ23は、中継サーバ12に対して、ファイル130を送信する(ステップS27.1:send(fileC))。
中継サーバ12は、クライアント端末11に対して、ファイル130を送信する(ステップS27.1.1:send(fileC))。クライアント端末11は、受信したファイル130の送信元がクライアント端末21であることを確認する。ファイル130は、クライアント端末21に対応する受信用フォルダ113−3に格納される(S27.1.1.1:copy(fileC))。クライアント端末11は、ファイル130の受信に応じて、ファイル送受信履歴情報84を更新することにより、ファイル送受信履歴情報85を作成する。
図30は、ファイル送受信履歴情報85を示す図である。更新部分を下線部により示す。「name=“fileC”」と設定されたファイル属性情報857が、受信ファイル情報853−1に追加されており、ファイル130に対応している。
{ファイルの自動送信−第2回目の設定後}
以下、第2回目の情報共有後におけるファイルの自動送信について説明する。第2回目の情報共有後においては、図23および図24に示した中継グループ情報42、中継サーバ情報56、クライアント端末情報63、76が格納されている。クライアント端末11のユーザは、中継サーバ12にログオンしている。クライアント端末21、22の各ユーザは、中継サーバ23にログオンしている。ファイル送受信履歴情報85は、クライアント端末22のログオンに伴い、ファイル送受信履歴情報82(図22参照)に更新されている。
[ステップS42からS44までの処理の流れ]
図31は、第2回目の情報共有後におけるクライアント端末21、22の処理を示す図である。図31において、SIPサーバ31の表示、送信用フォルダ213−5、223−2、223−5以外のフォルダの表示を省略している。
第2回目の情報共有により、クライアント端末21には、クライアント端末22に対応する送信用フォルダ213−5が作成されている。クライアント端末22には、クライアント端末11に対応する送信用フォルダ223−2、クライアント端末21に対応する送信用フォルダ223−5が作成されている。
上述したように、クライアント端末21は、ステップS36−Aの処理において、クライアント端末22に対応する送信用フォルダ213−5に格納されるファイルの自動検出を開始する。クライアント端末22は、ステップS35の処理において、クライアント端末11に対応する送信用フォルダ223−2、クライアント端末21に対応する送信用フォルダ223−5のそれぞれに格納されるファイルの自動検出を開始する。
クライアント端末21は、送信用フォルダ213−5に新たなファイルが格納されているかどうかを確認する(ステップS42:checkoutbox())。送信用フォルダ213−2には、ファイルが格納されていないため、クライアント端末21は、ファイルの自動送信処理を行わない。
クライアント端末22は、送信用フォルダ223−2に新たなファイルが格納されているかどうかを確認する(ステップS43:checkoutbox())。クライアント端末22は、送信用フォルダ223−5に新たなファイルが格納されているかどうかを確認する(ステップS44:checkoutbox())。送信用フォルダ223−2、223−5には、ファイルが格納されていないため、クライアント端末22は、ファイルの自動送信処理を行わない。
[ステップS45からステップS48までの処理の流れ]
図32は、ステップS44に示す処理の後におけるファイルの自動送信の流れを示す図である。なお、図32において、クライアント端末22、SIPサーバ31の表示、送信用フォルダ113−2、受信用フォルダ213−3以外のフォルダの表示を省略している。
図32に示すように、クライアント端末11は、新たに送信用フォルダ113−2に格納されたファイルの自動送信を行う。クライアント端末11のユーザは、アプリケーション114を操作して、送信用フォルダ113−2に名称を「fileD」としたファイル140を保存する(ステップS45:copy(fileD))。制御部112は、送信用フォルダ113−2に新規に格納されたファイルがあるかどうかを確認する(ステップS46:checkoutbox())。
制御部112は、ファイル140が新たに格納されたことを確認し、ファイル140を取得する(ステップS47:getFile(fileD))。制御部112は、ファイル140の名称「fileD」とファイル送受信履歴情報82とに基づいて、ファイル140をクライアント端末21に送信するかどうかを判断する。
クライアント端末11は、中継サーバ12に対して、クライアント端末21を送信先に指定したファイル140を送信する(ステップS48:send(fileD))。クライアント端末11は、ファイル140の送信に応じて、ファイル送受信履歴情報82を更新することにより、ファイル送受信履歴情報86を作成する。
図33は、ファイル送受信履歴情報86を示す図である。更新部分を下線部により示す。「name=“fileD”」と設定されたファイル属性情報866が、送信ファイル情報862−1に追加されており、ファイル140に対応している。
中継サーバ12は、中継サーバ23に対して、ファイル140を送信する(ステップS48.1:send(fileD))。中継サーバ23は、クライアント端末21に対して、ファイル140を送信する(ステップS48.1.1:send(fileD))。クライアント端末21は、受信したファイル140の送信元がクライアント端末11であることを確認する。ファイル140は、クライアント端末11に対応する受信用フォルダ213−3に格納される(S48.1.1.1:copy(fileD))。
[ステップS49からステップS52までの処理の流れ]
図34は、ステップS48に示す処理の後におけるファイルの自動送信の流れを示す図である。なお、図34において、クライアント端末21、SIPサーバ31の表示、送信用フォルダ113−5、受信用フォルダ223−3以外のフォルダの表示を省略している。
上述したように、クライアント端末11は、ステップS37の処理において、クライアント端末22に対応する送信用フォルダ113−5に格納されるファイルの自動検出を開始する。送信用フォルダ113−5に格納されるファイルは、クライアント端末22に自動的に送信される。
クライアント端末11のユーザは、アプリケーション114を操作して、クライアント端末22に対応する送信用フォルダ113−5に名称をfileDとしたファイル140を保存する(ステップS49:copy(fileD))。制御部112は、送信用フォルダ113−5に新規に格納されたファイルがあるかどうかを確認する(ステップS50:checkoutbox())。
制御部112は、ファイル140がクライアント端末22に対応する送信用フォルダ113−5に新たに格納されたことを確認し、ファイル140を取得する(ステップS51:getFile(fileD))。制御部112は、ファイル140の名称「fileD」とファイル送受信履歴情報86とに基づいて、ファイル140をクライアント端末22に送信するかどうかを判断する。図33に示す属性情報866は、「name=“fileD”」と設定されており、ファイル140に対応している。しかし、属性情報866は、クライアント端末21に対応する送信ファイル情報862−1内に記載されている。クライアント端末11は、クライアント端末22に対応するファイル属性情報862−2から、ファイル140がクライアント端末22に送信されていないことを確認する。
クライアント端末11は、中継サーバ12に対して、クライアント端末22を送信先に指定したファイル140を送信する(ステップS52:send(fileD))。クライアント端末11は、ファイル140の送信に応じて、ファイル送受信履歴情報86を更新することにより、ファイル送受信履歴情報87を作成する。
図35は、ファイル送受信履歴情報87を示す図である。更新部分を下線部により示す。「name=“fileD”」と設定されたファイル属性情報878が、クライアント端末22に対応する送信ファイル情報872−2に追加されており、ファイル140に対応している。
中継サーバ12は、中継サーバ23に対して、ファイル140を送信する(ステップS52.1:send(fileD))。中継サーバ23は、クライアント端末22に対して、ファイル140を送信する(ステップS52.1.1:send(fileD))。クライアント端末22は、受信したファイル140の送信元がクライアント端末11であることを確認する。ファイル140は、クライアント端末11に対応する受信用フォルダ223−3に格納される(S52.1.1.1:copy(fileD))。
以上説明したように、クライアント端末は、送信用フォルダにファイルが格納された場合、中継サーバを介して、送信用フォルダに対応付けられた送信先にファイルを送信する。これにより、クライアント端末のユーザは、所望の送信先に対応する送信用フォルダにファイルを保存するだけで、ファイルを送信することができる。
また、ファイルの自動送信機能を用いて、容易にバックアップファイルを作成することができる。たとえば、クライアント端末11の送信用フォルダ113−2と、クライアント端末21の受信用フォルダ213−3とは、同じファイルが格納される。したがって、クライアント端末11のユーザは、送信用フォルダにファイルを格納するだけでファイルのバックアップを作成することができる。
{変形例}
上記実施の形態において、クライアント端末は、送信用フォルダに格納されたファイルの名前が送信ファイル情報に登録されていた場合、ファイルを送信しない例について説明したが、これに限られない。たとえば、送信用フォルダに格納された送信済みのファイルが上書きされた場合、上書きされた送信済みのファイルの自動送信を行ってもよい。
図36は、上書きされた送信済みファイルを自動送信する場合の処理の流れを示す図である。なお、図36において、クライアント端末22、SIPサーバ31の表示、送信用フォルダ113−2、受信用フォルダ213−3以外のフォルダの表示を省略している。
クライアント端末11において、送信用フォルダ113−2には、既にクライアント端末21に送信された「fileA」(ファイル110)が保存されている。中継サーバ12はファイル送受信履歴情報87を保有している。制御部112は、送信用フォルダ113−2に格納されている送信済みのファイルの最終更新時刻を管理している。クライアント端末11のユーザは、アプリケーション114を操作して、送信用フォルダ113−2のファイル110を上書きする(ステップS53:save(fileA))。制御部112は、送信用フォルダ113−2に上書きされたファイルがあるかどうかを確認する(ステップS54:checkoutbox())。
制御部112は、ファイル110の最終更新時刻が変更されていた場合、ファイル110が上書きされたと判定し、ファイル110を取得する(ステップS55:getFile(fileA))。
クライアント端末11は、中継サーバ12に対して、クライアント端末21を送信先に指定した上書き後のファイル110を送信する(ステップS56:send(fileA))。この場合、ファイル送受信履歴情報87に基づいた送信の可否の判定は行われない。クライアント端末11は、上書き後のファイル110の送信に応じて、ファイル送受信履歴情報87を更新することにより、ファイル送受信履歴情報88を作成する。
図37は、ファイル送受信履歴情報88を示す図である。更新部分を下線部により示す。クライアント端末21に対応するファイル送信情報882−1において、「name=“fileA”」と設定されたファイル属性情報884、889が登録されている。ファイル属性情報884は、ステップS20(図26参照)で送信されたファイル110に対応し、ファイル属性情報889は、上書き後のファイル110に対応する。しかし、ファイル属性情報884では、「lastmod=“1185299368000”」と設定され、ファイル属性情報889では、「lastmod=“1342953677000”」と設定されている。つまり、最終更新時刻が異なっており、ファイル110が更新されたことがわかる。このように、ファイル送受信履歴情報88を参照することにより、クライアント端末21に送信されるファイル110の更新履歴を確認することができる。
中継サーバ12は、中継サーバ23に対して、上書き後のファイル110を送信する(ステップS56.1:send(fileA))。中継サーバ23は、クライアント端末21に対して、ファイル110を送信する(ステップS56.1.1:send(fileA))。クライアント端末21は、受信したファイル110の送信元がクライアント端末11であることを確認する。クライアント端末11に対応する受信用フォルダ213−3に保存されているファイル110が、上書き後のファイル110に更新される(S56.1.1.1:copy(fileA))。
これにより、クライアント端末11は、送信用フォルダ113−2に格納されるファイルと、クライアント端末21の受信用フォルダ213−3に格納されるファイルとを常に最新の状態で一致させることができる。また、上書きされた送信済みファイルを自動送信することにより、ファイル送受信履歴情報に送信済みファイルの更新履歴を保存することができる。
なお、上記実施の形態において、クライアント端末がファイル送受信履歴情報を作成する例について説明したが、これに限られない。中継サーバがファイル送受信履歴情報を作成してもよい。この場合、中継サーバは、ファイルの転送を中継する際に取得するファイルの送信先および送信元を示す情報に基づいて、直接に通信できるクライアント端末に対応するファイル送受信履歴情報を作成する。この場合、クライアント端末は、中継サーバからファイル送受信履歴情報を取得して、ファイルを自動送信するか否かを判定する。
また、上記実施の形態において、クライアント端末が送信用フォルダ、受信用フォルダを作成する例について説明したが、送信用フォルダ、受信用フォルダを削除してもよい。具体的には、中継サーバ情報の下位情報が削除された場合、削除された下位情報に対応するクライアント端末の送信用フォルダ、受信用フォルダを削除する。このように、クライアント端末は、中継通信システムの構成に応じて、送信用フォルダ、受信用フォルダの作成および削除をすることができる。
また、上記実施の形態において、クライアント端末は、送信用フォルダの自動監視を常に行っていてもよい。この場合、ログオフ状態の送信先に対応する送信用フォルダにファイルが格納された場合、クライアント端末は、ファイルの自動送信ができないことを示すメッセージをモニタに表示する。この場合、クライアント端末は、送信用フォルダに対応する送信先がログオン状態となったときに、ログオフ状態の間に送信用フォルダに格納されたファイルをまとめて送信すればよい。