通信システム
【課題】新たに起動したサーバがポート番号を取得できずクライアントとの接続に失敗する事態を回避する手段を提供する。
【解決手段】第1の端末上で動作するサーバと、第2の端末上で動作するクライアントとを接続する通信システムであって、第2の端末上で動作し、サーバからの接続要求を受付けてクライアントに接続要求を送信する機能を有するクライアント管理手段と、第1の端末上で動作し、第1の端末でのポート番号の使用状況を確認する機能を有するポート管理手段とを備え、ポート管理手段が、サーバからの要求に応じて、サーバとクライアントとの接続に使用するポート番号を取得する。
【解決手段】第1の端末上で動作するサーバと、第2の端末上で動作するクライアントとを接続する通信システムであって、第2の端末上で動作し、サーバからの接続要求を受付けてクライアントに接続要求を送信する機能を有するクライアント管理手段と、第1の端末上で動作し、第1の端末でのポート番号の使用状況を確認する機能を有するポート管理手段とを備え、ポート管理手段が、サーバからの要求に応じて、サーバとクライアントとの接続に使用するポート番号を取得する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、異なる端末間のネットワーク接続を行う通信システムに関する。
【背景技術】
【0002】
ネットワークを介して異なる端末間の通信を行う通信システムにおいて、各端末上でのサーバとクライアントの接続を行う場合、サーバとクライアントが動作するそれぞれの端末上でサーバとクライアントを起動して、サーバとクライアントとの接続設定を行う必要があるが、接続の度に手動で接続設定を行うのは煩雑であるので、これを手動で行わずに自動化する方法が用いられている。
【0003】
クライアントを自動的に起動する従来の方法は、クライアントが動作するホストコンピュータと、サーバが動作する端末とをネットワークを介して接続し、端末に設けたサーバの起動を監視するサーバ監視機能を用いて、サーバが起動するとコマンド自動送出機能を起動させ、コマンド自動送出機能が、記憶装置に格納されている予め設定された手順に従ってクライアントの起動を行うことで、クライアントの起動を自動化している(例えば、特許文献1参照。)。
【0004】
一方、ネットワーク接続手法として一般的に用いられているTCP/IP接続においては、接続時にネットワーク接続で使用する情報として、IPアドレスとポート番号を指定する必要がある。
【0005】
上記従来の技術においては、予め設定された手順に従ってクライアントの起動を行っているため、TCP/IP接続を自動的に行うためには、起動手順として、IPアドレスおよびポート番号を予め設定しておく必要がある。
【0006】
また、TCP/IPにおいては、「0」から「65535」までのポート番号の内、「49151」までは、原則としてその用途を予め固定し、「49151」から「65535」までのポート番号は、ユーザが端末上で自由に使用できるポート番号として設定している。この場合に「0」から「49151」までのポート番号をユーザが使用することは、混乱を生じない範囲で許容されている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開平6−103206号公報(段落0016−0028、第2図、第3図)
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、TCP/IPにおいては、同一端末上では1つのポート番号は1つの処理に対してしか使用できず、かつユーザが使用するポート番号の設定は、端末がランダムに設定しているため、サーバが使用するポート番号を予め設定しておいたとしても、使用しようとするポート番号が、他のサーバによって既に使用されていた場合は、サーバはポート番号を使用することができず接続が不可能となるという問題がある。
【0009】
本発明は、上記の問題点を解決するためになされたものである。
【課題を解決するための手段】
【0010】
本発明は、上記課題を解決するために、第1の端末上で動作するサーバと、第2の端末上で動作するクライアントとを接続する通信システムであって、前記第2の端末上で動作し、前記サーバからの接続要求を受付けて前記クライアントに接続要求を送信する機能を有するクライアント管理手段と、前記第1の端末上で動作し、前記第1の端末でのポート番号の使用状況を確認する機能を有するポート管理手段とを備え、前記ポート管理手段が、前記サーバからの要求に応じて、前記サーバと前記クライアントとの接続に使用するポート番号を取得することを特徴とする。
【発明の効果】
【0011】
これにより、本発明は、新たに起動したサーバがポート番号を取得できずクライアントとの接続に失敗する事態を回避して、第1の端末と第2の端末との間の通信を円滑に行うことができるという効果が得られる。
【図面の簡単な説明】
【0012】
【図1】実施例1における通信システムの構成例を示すブロック図
【図2】実施例1のポート取得設定記憶部のポート取得設定の構成例を示す説明図
【図3】実施例1の第1の端末のポート使用情報記憶部のポート使用情報の構成例を示す説明図
【図4】実施例1の第2の端末のポート使用情報記憶部のポート使用情報の構成例を示す説明図
【図5】実施例1の自動化した接続処理の全体の流れを示す流れ図
【図6】実施例1のネットワークを介したデータの送受信処理の流れを示す流れ図
【図7】実施例1のポート番号取得処理を示すフローチャート
【図8】実施例1のポート番号変更処理を示すフローチャート
【図9】実施例1のポート番号取得処理の流れを示す流れ図
【図10】実施例1の第1の端末のポート使用情報記憶部のポート番号の変更前後のポート使用情報の構成例を示す説明図
【図11】実施例2における通信システムの構成例を示すブロック図
【図12】実施例2のポート取得設定記憶部のポート取得設定の構成例を示す説明図
【図13】実施例2のポート優先設定記憶部のポート優先設定の構成例を示す説明図
【図14】実施例2のポート番号取得処理を示すフローチャート
【図15】実施例2のポート番号取得処理の流れを示す流れ図
【発明を実施するための形態】
【0013】
以下に、図面を参照して本発明による通信システムの実施例について説明する。
【実施例1】
【0014】
本実施例の通信システムは、図1に示すように、第1の端末1と第2の端末2とをネットワーク3を介して接続して構成され、第1の端末1には、FAX装置5およびスキャナ装置6がそれぞれ接続している。
【0015】
第1の端末1は、通信制御手段11、複数のサーバ12、ポート管理手段15、ポート取得設定記憶部16、ポート使用情報記憶部17等を備えている。
【0016】
第2の端末2は、通信制御手段21、複数のクライアント22、クライアント管理手段25、クライアント接続設定記憶部26、ポート使用情報記憶部27等を備えている。
【0017】
通信制御手段11は、第1の端末1上で動作し、ネットワーク3を介して送信されるパケットを受取り、第1の端末1に設定されているIPアドレスおよびポート使用情報記憶部17から読出したポート使用情報を用いて、受取ったパケットを適切なサーバ12等へ送信する機能を有している。
【0018】
通信制御手段21は、第2の端末2上で動作し、ネットワーク3を介してパケットを受取り、第2の端末2に設定されているIPアドレスおよびポート使用情報記憶部27から読出したポート使用情報を用いて、受取ったパケットを適切なクライアント22またはクライアント管理手段25等へ送信する機能を有している。
【0019】
サーバ12は、第1の端末1上で動作し、通信制御手段11、ネットワーク3および通信制御手段21を介して第2の端末2上で動作するクライアント22と接続し、通信を行う機能、およびFAX装置5、スキャナ装置6からの接続要求を受付ける機能等を有している。
【0020】
また、サーバ12は、第1の端末1上でサーバ12a〜12nからなる複数が同時に動作可能で、クライアント22も第2の端末2上でクライアント22a〜22nからなる複数が動作可能であり、1つのサーバ12に対して、1または2以上のクライアント22が接続して通信を行うことが可能な構成になっている。
【0021】
なお、サーバ12およびクライアント22は、ハードウェアまたはソフトウェアのいずれであってもよいが、本実施例では、CPUと、サーバ12またはクライアント22の機能を形成するソフトウェアからなる機能手段である。
【0022】
ポート管理手段15は、第1の端末1上で動作し、ポート使用情報記憶部17から読出したポート使用情報により第1の端末1におけるポート番号の使用状況を確認する機能、およびサーバ12と接続してサーバ12からのポート番号取得要求を受付け、ポート取得設定記憶部16から読出したポート取得設定を用いてポート番号取得処理を行い、取得したポート番号をサーバ12へ送信する機能等を有している。
【0023】
ポート取得設定記憶部16は、第1の端末1に設けられ、サーバ12等のポート取得設定が記録されており、このポート取得設定は、ポート管理手段15によって読出される。
【0024】
ポート使用情報記憶部17は、第1の端末1に設けられており、サーバ12が接続を開始する際に、クライアント22等との接続に使用するポート番号等からなるポート使用情報が格納されている。
【0025】
また、ポート使用情報記憶部17に格納されたポート使用情報は、通信制御手段11が受信したパケットの第1の端末1内での送信先の判別に用いられる。
【0026】
クライアント管理手段25は、第2の端末2上で動作し、通信制御手段21、ネットワーク3および通信制御手段11を介して第1の端末1のサーバ12と接続し、サーバ12から受取ったクライアント接続要求およびクライアント接続情報をクライアント22へ送信する機能を有している。
【0027】
また、クライアント管理手段25は、クライアント接続設定記憶部26から各クライアント22の接続設定を読出し、サーバ12から受取った接続要求に基づいてクライアント接続情報を送信するクライアント22を適切に選択する機能を有している。なお、クライアント管理手段25は、全てのサーバ12と同時に接続可能である。
【0028】
クライアント接続設定記憶部26は、第2の端末2に設けられ、各クライアント22の接続設定が記録されており、この接続設定は、クライアント管理手段25によって読出される。
【0029】
ポート使用情報記憶部27は、第2の端末2に設けられており、クライアント管理手段25がクライアント22に接続要求を送信する際に、クライアント22が接続に使用するポート番号等からなるポート使用情報がクライアント管理手段25によって格納される。
【0030】
また、ポート使用情報記憶部27に格納されたポート使用情報は、通信制御手段21が受信したパケットの第2の端末2内での送信先の判別に用いられる。
【0031】
なお、第1の端末1において、ポート管理手段15およびポート使用情報記憶部17は、第1の端末1上の全てのサーバ12と接続されている。
【0032】
また、通信制御手段11、21はそれぞれの端末において、ネットワーク3を介して接続する機能を有する全ての構成要素(サーバ12またはクライアント22またはクライアント管理手段25)と接続されている。
【0033】
本実施例のポート取得設定記憶部16のポート取得設定は、図2に示すように、ポート取得IDおよび取得ポート番号の2つの要素で構成される(図2に示す符号31〜34)。
【0034】
ポート取得設定記憶部16は、予め設定されたポート取得設定を記憶しており、ポート取得IDごとに異なる取得ポート番号が設定され、これらの取得ポート番号は、単一の値、複数の値、特定の範囲のいずれかの形で指定することができる。
【0035】
本実施例の第1の端末1のポート使用情報記憶部17に格納されるポート使用情報は、図3に示すように、使用ポート番号および、ポートを使用しているサーバ12の識別子(ID)の2つの要素で構成されており(図3に示す符号35、36)、サーバ12が接続を開始するときに格納される。
【0036】
また、第2の端末2のポート使用情報記憶部27に格納されるポート使用情報は、図4に示すように、使用ポート番号および、ポートを使用しているクライアント管理手段25やクライアント22の識別子(ID)の2つの要素で構成されており(図4に示す符号37、38)、原則として、クライアント管理手段25がクライアント22に接続要求を送信するときに格納される。
【0037】
なお、サーバ12からの接続要求をクライアント管理手段25が受信するためには、以下で図6を用いて説明するように、第2の端末2上のポート使用情報記憶部27に、ポート使用情報として、クライアント管理手段25が使用するポート番号およびクライアント管理手段25を特定するIDが予め格納されている必要がある。
【0038】
本実施例においては、図4に示す各ポート使用情報はクライアント管理手段25に予め設定されており、クライアント管理手段25に電源が供給され起動した際に、ポート使用情報記憶部27に格納する、という方法がとられる。
【0039】
以下に、図5、図6に示す流れ図を用い、S、SAで示すステップに従って、本実施例の自動化した接続処理の全体の流れについて説明する。
【0040】
なお、図5は、図1に示す通信システムの構成要素間でのデータのやりとりを示した流れ図であり、図6は、図5に示した接続処理において、ネットワークを介したデータの送受信処理の処理の流れとデータのやりとりの詳細を示した流れ図である。
【0041】
第1の端末1および第2の端末2に電源が投入されると、それぞれの端末内の各要素にも電源が供給され、それぞれの要素が起動する。この状態ではサーバ12とクライアント22の接続処理は実行されない。
【0042】
本実施例においては、FAX装置5が電話回線を通じてFAXを受信した場合、もしくはスキャナ装置6のスキャン処理の起動がかかった場合に、サーバ12へ接続開始要求が送信される。この接続開始要求には、接続先の端末、本実施例では第2の端末2のIPアドレスおよび予め設定されたクライアント管理手段25のポート番号が含まれている。
【0043】
なお、図1に示す本実施例のFAX装置5とスキャナ装置6は、複数存在するサーバ12の内、異なるものに接続開始要求を送信する構成になっている。
【0044】
また、以下の説明においては、第1の端末1に対して、FAX装置5から接続開始要求が送信された場合を例に説明するが、スキャナ装置6から接続開始要求が送信された場合も同様である。
【0045】
サーバ12が、FAX装置5からの接続開始要求を受付けると(S1)、サーバ12は、第2の端末2のクライアント管理手段25との通信を行うためのポート番号を取得するために、ポート管理手段15に対してポート番号取得要求を送信する(S2)。
【0046】
ポート管理手段15は、サーバ12からのポート番号取得要求を受付けてポート番号を取得し、取得したポート番号をサーバ12へ送信する(S3)。具体的なポート番号の取得処理については後述する。
【0047】
サーバ12は、ポート管理手段15からポート番号を受取ると、クライアント管理手段25へ、接続要求および、第2の端末2への接続情報(接続開始要求に含まれている第2の端末2のIPアドレスとクライアント管理手段25のポート番号)および送信元情報(第1の端末1に固有に設定されている第1の端末1のIPアドレスと、ステップS3で取得したサーバ12のポート番号)を送信する(S4)。
【0048】
接続要求の送信後、サーバ12は、ポート使用情報記憶部17にポート使用情報を格納する(S5)。このときのポート使用情報としては、上記ステップS4で送信した送信元接続情報と同じポート番号および、接続要求を送信したサーバ12を特定するIDが格納される。
【0049】
ポート使用情報を格納したサーバ12は、クライアント管理手段25からの接続通知を待って待機する。
【0050】
一方、第1の端末1上の通信制御手段11は、図3に示すステップSA1においてサーバ12から受取った接続要求とクライアント管理手段25への接続情報等をパケット形式でネットワーク3へ送信する(SA2)。
【0051】
送信したパケットの内、第2の端末2への接続情報(IPアドレス部分)により、第2の端末2上の通信制御手段21がパケットを受取り、通信制御手段21は、受取ったパケットから、クライアント管理手段25への接続情報(ポート番号部分)を取得し、ポート使用情報記憶部27の、起動時にクライアント管理手段25によって格納されたポート使用情報から、受信したパケットの接続情報(ポート番号部分)と使用ポート番号が一致するポート使用情報を読出し(図4参照)、そのポート使用情報のIDでパケットの送信先を特定する(SA3)。
【0052】
通信制御手段21は、ポート使用情報のIDで特定した要素(クライアント管理手段25)に対して、パケットの接続要求(データ部分)を送信する(SA4)。
【0053】
クライアント管理手段25は、サーバ12からの接続要求を受信すると、サーバ12への接続通知および送信元情報(第1の端末1のIPアドレスとサーバ12のポート番号)を通信制御手段21へ送信する(SA5)。
【0054】
通信制御手段21は、接続通知を受付けると、クライアント管理手段25から受取った接続通知等をパケット形式でネットワーク3へ送信する(SA6)。
【0055】
送信したパケットの内、第1の端末1のIPアドレスにより、第1の端末1上の通信制御手段11がパケットを受取り、通信制御手段11は受取ったパケットから、サーバ12のポート番号を取得し、ポート使用情報記憶部17のポート使用情報から、受信したパケットのポート番号部分と使用ポート番号が一致するポート使用情報を読出し(図3参照)、そのポート使用情報のIDでパケットの送信先を特定する(SA7)。
【0056】
通信制御手段11は、ポート使用情報のIDで特定した要素(サーバ12)に対して、パケットの接続通知を送信する(SA8)。
【0057】
以上のデータの送受信処理により、サーバ12はクライアント管理手段25からの接続通知を受信する。
【0058】
なお、以下の説明においては、ネットワーク3および通信制御手段11、21を介してのデータの送受信の処理については上記の手順(ステップSA1〜SA8)と同様であるので、その説明を省略する。
【0059】
図5において、サーバ12は、クライアント管理手段25からの接続通知を受取ると(S6)、第2の端末2のクライアント22との通信を行うためのポート番号を取得するために、ポート管理手段15に対してポート番号取得要求を送信する(S7)。
【0060】
ポート管理手段15は、サーバ12からのポート番号取得要求を受付けてポート番号を取得し、取得したポート番号をサーバ12へ送信する(S8)。具体的なポート番号の取得処理については後述する。
【0061】
サーバ12は、ポート管理手段15からポート番号を受取ると、クライアント管理手段25に対してクライアント接続要求およびサーバ接続情報を送信する(S9)。このとき送信されるサーバ接続情報には、上記ステップS8で取得したサーバ12のポート番号および第1の端末1のIPアドレスが指定される。
【0062】
クライアント接続要求の送信後、サーバ12はポート使用情報記憶部17にポート使用情報を格納する(S10)。このときのポート使用情報としては、上記ステップS8で送信したサーバ接続情報と同じポート番号および、クライアント接続要求を送信したサーバ12を特定するIDが格納される。
【0063】
なお、ステップS8で取得したポート番号と、上記ステップS3で取得したポート番号とは、必ずしも一致しないため、本ステップ(S10)において再格納され、ステップS5で格納したポート使用情報は、上書きあるいは削除よって、ポート使用情報記憶部17に残存しないようにされる。
【0064】
ポート使用情報を格納したサーバ12は、クライアント22からの接続通知を待って待機する。
【0065】
一方、クライアント管理手段25は、サーバ12からクライアント接続要求およびサーバ接続情報を受取ると、これらを、クライアント22へ送信する(S11)。このときの、クライアント接続要求およびサーバ接続情報を送信するクライアント22は、クライアント管理手段25が、クライアント接続設定記憶部26から読出したクライアント接続設定を用いて選択する。
【0066】
クライアント接続要求およびサーバ接続情報をクライアント22へ送信後、クライアント管理手段25は、ポート使用情報記憶部27にポート使用情報を格納する(S12)。このときのポート使用情報としては、クライアント接続要求を受取ったクライアント22がサーバ12との接続に使用するポート番号および、クライアント接続要求を受取ったクライアント22を特定するIDが格納される(図4に示す符号38)。
【0067】
クライアント22は、クライアント接続要求およびサーバ接続情報を受取ると、サーバ接続情報を用いてサーバ12にクライアント接続通知を送信する(S13)。このとき送信されるクライアント接続通知にはクライアント接続情報が含まれる。このクライアント接続情報には、クライアント22がサーバ12との接続に使用するポート番号および、第2の端末2に固有に設定されているIPアドレスが指定される。
【0068】
サーバ12がクライアント接続通知を受取ることによって、クライアント22とサーバ12の接続が確立し、以後はサーバ12とクライアント22とが、ネットワーク3および通信制御手段11、21を介しての直接通信を行う。
【0069】
次に、図5に示した接続処理におけるポート番号取得処理(ステップS2、S3、またはステップS7、S8)について、図7、図8に示すフローチャートおよび図9に示す流れ図を用い、SB、SCで示すステップに従って説明する。
【0070】
図7は、ポート番号取得処理の詳細な処理の流れを示したフローチャートであり、図8はポート番号取得処理の内、サーバとクライアント間でポート番号変更処理を行う部分の処理を示したフローチャートである。
【0071】
また、図9は、図1に示す通信システムの構成要素間における、ポート番号取得処理の各フローでのデータのやりとりを示した流れ図である。
【0072】
なお、以下の説明においては、ステップS7、S8の場合を例に説明するが、ステップS2、S3の場合も同様である。
【0073】
また、本説明においては、上記ステップS1においてFAX装置5から最初に接続開始要求を受付けたサーバ12を、サーバ12aとして説明する(図9参照)
上記図5のステップS6において、クライアント管理装置25からの接続通知を受取ったサーバ12aが、ステップS7でポート管理手段15にポート番号取得要求を送信する際に、サーバ12aは、ポート番号取得要求を分類するための識別子(ポート取得ID)を指定して送信する(SB1)。
【0074】
ポート管理手段15は、ポート番号取得要求を受取ると、ポート取得設定記憶部16から指定されたポート取得IDと一致するポート取得設定を読出し、その取得ポート番号を要求ポート番号として取得する(SB2)。
【0075】
本実施例のポート取得設定記憶部16のポート取得設定は、上記したように、ポート取得IDおよび取得ポート番号の2つの要素で構成され(図2に示す符号31〜34)、ポート取得設定記憶部16は、これら予め設定されたポート取得設定を記憶している。
【0076】
また、取得ポート番号は、ポート取得ID毎に異なるポート番号で設定され、そのポート番号は、単一の値、複数の値、特定の範囲のいずれかの形で設定される。
【0077】
なお、ポート番号取得要求にポート取得IDが指定されていない場合や、指定されたポート取得IDと一致するポート取得設定をポート取得設定記憶部16から読出すことができなかった場合には、ポート管理手段15はデフォルトのポート取得設定を使用する。
【0078】
デフォルトのポート取得設定は、ポート管理手段15が内部的に保持しても、図2のように、ポート取得設定記憶部16に保持されるようにしても良い。図2では「default」というポート取得IDをデフォルトのポート取得設定に割り当てている(図2に示す符号34)
次に、ポート管理手段15は、ポート使用情報記憶部17から読出したポート使用情報を用いて、第1の端末1上でのポート番号の使用状況を確認し、要求ポート番号が使用可能か否かを確認する(SB3)。
【0079】
例えば、図3に示したポート使用情報記憶部17のポート使用情報を読出したとすれば、読出した全てのポート使用情報の使用ポート番号の中に、要求ポート番号が存在しない場合は、そのポート番号は使用可能である。
【0080】
要求ポート番号が使用可能なポート番号であった場合(SB4/YES)、ポート管理手段15は、その要求ポート番号をサーバ12aからのポート番号取得要求に応じて取得したポート番号としてサーバ12aへ送信し(SB5)、ポート番号取得処理を終了する。
【0081】
上記の処理を図2を用いて具体的に説明すると、FAX装置5から最初に接続開始要求を受付けたサーバ12aが、ポート取得ID「Server1」を指定してポート管理手段15にポート番号取得要求を送信した場合、ポート管理手段15は、ポート取得設定記憶部16のポート取得ID「Server1」のポート取得設定31を読出す。そのポート取得設定31の取得ポート番号は「30000」であるので、ポート管理手段15は、これを要求ポート番号としてポート番号30000の使用の可否を確認する(SB2、SB3)。
【0082】
ポート使用情報記憶部17から読出した全てのポート使用情報の使用ポート番号の中に「30000」が存在しない場合は(SB4/YES)、ポート管理手段15は、ポート番号30000を使用可能と判断し、サーバ12aからのポート番号取得要求に応じて取得したポート番号として「30000」をサーバ12aへ送信する(SB5)。
【0083】
以上はステップSB3で、要求ポート番号が使用可能であった場合の処理である。
【0084】
要求ポート番号が使用可能でなかった場合、つまりポート使用情報記憶部17に、使用ポート番号が要求ポート番号と一致するポート使用情報が存在する場合(SB4/NO)、ポート管理手段15は、ポート番号の変更処理を行うために、まず、ポート番号の変更が可能か否かの確認を行う(SB6)。
【0085】
すなわち、ポート管理手段15は、ポート使用情報記憶部17に、使用ポート番号が要求ポート番号と一致するポート使用情報が存在する場合は、ポート番号の変更が可能と判断してそのポート使用情報を読出す。
【0086】
この条件を満たすポート使用情報が存在しなかった場合、つまり要求ポート番号と使用ポート番号が一致するポート使用情報が存在しなかった場合(SB6/NO)、ポート管理手段15は、ポート番号取得失敗をサーバ12aに通知して(SB15)ポート番号取得処理を終了する。
【0087】
前記条件を満たすポート使用情報が存在する場合、つまり使用ポート番号が要求ポート番号と一致するポート使用情報が存在する場合には(SB6 /YES)、現在使用中のポート番号を新たなポート番号に変更するための変更ポート番号の取得を行う(SB7〜SB9)。
【0088】
なお、ステップSB3において、要求ポート番号と使用ポート番号が一致した場合、その要求ポート番号は使用不可能と判断されるので、ステップSB4において要求ポート番号が使用可能でなかった場合は、使用ポート番号が要求ポート番号と一致するポート使用情報が存在することになる。
【0089】
変更ポート番号の取得の処理(ステップSB7〜SB9)は、基本的にはステップSB2〜SB4の要求ポート番号の取得と同様の処理であるが、変更ポート番号の場合は、ポート取得IDは考慮せず、デフォルトのポート取得設定の中から現在未使用のポート番号を取得する。
【0090】
デフォルトのポート取得設定およびポート番号の使用状況によっては、使用可能な未使用のポート番号が存在しない場合もある(SB9/NO)。この場合は取得失敗となり、ポート番号取得失敗をサーバ12aに通知して(SB15)ポート番号取得処理を終了する。
【0091】
変更ポート番号が取得できた場合は(SB9/YES)、ステップSB6で読出した、使用ポート番号が要求ポート番号と一致するポート使用情報のIDを用いて特定したサーバ12に対して、ポート番号変更要求および変更ポート番号を送信する(SB10)。
【0092】
ポート番号変更要求を受取ったサーバ12は、現在接続中のクライアント22との間で、ポート番号変更処理を行う(SB11)。
【0093】
このステップSB11におけるサーバ12とクライアント22間のポート番号変更処理について、図8、図9を用い、SCで示すステップに従って説明する。
【0094】
なお、以下の説明においては、ポート番号変更要求を受取ったサーバ12をサーバ12nとし、現在接続中のクライアント22をクライアント22aとして説明する。
【0095】
サーバ12nは、ポート番号変更要求および変更ポート番号を受信すると、接続しているクライアント22aに対してポート番号変更通知を送信する(SC1、図9のSC1参照)。このときのポート番号変更通知には、クライアント接続情報、第1の端末1のIPアドレス、およびサーバ12nが新たに使用する変更ポート番号が含まれている。
【0096】
また、サーバ12nは、ポート番号変更通知の送信後に、ポート使用情報記憶部17から変更前の自己のポート番号と一致するポート使用情報を読出し(SC2)、その使用ポート番号を変更ポート番号に置換えたものを、ポート使用情報記憶部17に格納する(SC3)。
【0097】
このとき、変更前のポート番号を有するポート使用情報は、上書きあるいは削除よって、ポート使用情報記憶部17に残存しないようにする。
【0098】
その後、サーバ12nは、クライアント22aからのポート番号変更確認通知を持って待機する。
【0099】
ポート番号変更通知を受取ったクライアント22は、サーバ接続情報のサーバ12nのポート番号を、ポート番号変更通知に含まれる変更ポート番号に変更し、変更したサーバ接続情報を用いてポート番号変更確認通知を送信する(SC4、図9のSC4参照)。
【0100】
このポート番号変更確認通知は、第1の端末1上の通信制御手段11によって受取られ、通信制御手段11は、変更されたサーバ接続情報の変更ポート番号を用いて、ポート使用情報記憶部17から読出されたポート使用情報のIDで特定されるサーバ12へ送信される。
【0101】
このとき、本実施例のポート使用情報記憶部17のポート使用情報のサーバ12nのポート番号は、上記ステップSC3において、変更ポート番号に置換えられているので、そのIDで特定されるサーバ12nへポート番号変更確認通知が送信され、ポート番号の変更後もサーバ12nとクライアント22aの接続は維持される。
【0102】
サーバ12nは、クライアント22aからのポート番号変更確認通知を受取ると(SC5)、ポート管理手段15ヘポート番号変更完了通知を送信する(SC6)。
【0103】
このようにして、本実施例の既に使用されているポート番号の、変更ポート番号へのポート番号変更処理が行われる。
【0104】
そして、図7のステップSB12において、ポート管理手段15が、サーバ12nからポート番号変更完了通知を受取ると、ポート管理手段15は、ポート番号の変更が行われたことを確認するために、ステップSB3の時点で使用不可能であった要求ポート番号が、使用可能になっているか否かを確認する(SB13)。使用可能か否かの確認はステップSB3と同様の処理で行う。
【0105】
要求ポート番号が使用可能になっているか否かを確認した結果、ポート使用情報記憶部17のポート使用情報に、要求ポート番号に一致するポート番号のポート使用情報が存在する場合は(SB14/NO)、ポート管理手段15は、ポート番号変更処理が失敗したと判断し、ポート番号取得失敗をサーバ12aに通知して(SB15)ポート番号取得処理を終了する。
【0106】
ポート使用情報記憶部17のポート使用情報に、要求ポート番号に一致するポート番号のポート使用情報が存在しない場合(SB14/YES)、ポート管理手段15は、要求ポート番号を、サーバ12aからのポート番号取得要求に応じて取得したポート番号としてサーバ12aへ送信し(SB5)、ポート番号取得処理を終了する。
【0107】
上記のようにしてポート番号を取得したサーバ12aは、取得したポート番号でクライアント22との接続を開始する際に、ポート使用情報記憶部17にポート使用情報を格納する(S10)。
【0108】
上記したステップSB4/NO以降の処理について、図10を用いて具体的に説明する。
【0109】
以下の説明においては、ポート番号変更処理の実行前に、ポート使用情報記憶部17が、図10(a)に示すように、既に起動しているサーバ12bの使用ポート番号として「30005」が記録されたポート使用情報40、およびサーバ12nの使用ポート番号として「30000」が記録されたポート使用情報41を格納しているとして説明する。
【0110】
また、既に起動しているサーバ12nは、上記で説明したサーバ12aと同様にして、ポート取得ID「Server1」を指定してポート管理手段15へポート番号取得要求を送信し、ポート番号30000を用いてクライアント22aと接続状態になっているとして説明する。
【0111】
新たに起動したサーバ12aが、ポート取得ID「Server1」でポート管理手段15にポート番号取得要求を送信した場合、ポート管理手段15は、ポート取得設定記憶部16のポート取得ID「Server1」のポート取得設定31を読出し(図2参照)、要求ポート番号であるポート番号30000が使用可能か否かの確認を行う。
【0112】
ポート使用情報記憶部17から読出したポート使用情報41において、使用ポート番号30000が既にサーバ12nによって使用され、そのポート番号がポート使用情報記憶部17に存在しているため、ポート番号30000は使用不可能と判断される(SB4/NO)。
【0113】
要求ポート番号が使用不可能であるため、ポート管理手段15は、ポート番号変更処理を行う。この場合に要求ポート番号30000と一致するポート使用情報41が存在するので変更可能である(SB6/YES)。
【0114】
変更ポート番号の取得において、ポート管理手段15は、デフォルトのポート取得設定としてポート取得設定34を使用し(図2参照)、ポート番号10000を取得したとする(SB7)。
【0115】
ポート使用情報41から、ポート番号30000を使用しているのはサーバ12nと特定できるので、ポート管理手段15は、サーバ12nに対してポート番号変更要求および変更ポート番号10000を送信する(SB10)。
【0116】
サーバ12nは、ポート番号変更要求を受けて、接続しているクライアント22aに対してポート番号変更通知を送信する(SC1)。このときのポート番号変更通知には、変更ポート番号10000が含まれている。
【0117】
ポート番号変更通知を送信後、サーバ12nは、ポート使用情報記憶部17から変更前のポート番号30000についてのポート使用情報41を読出し(SC2)、使用ポート番号30000を変更ポート番号10000に変更し、ポート使用情報記憶部17に格納する(図10(b)のポート使用情報42)(SC3)。
【0118】
クライアント22aは、ポート番号変更通知を受取り、ポート番号変更確認通知を送信する(SC4)。
【0119】
ポート番号変更確認通知は第1の端末1上の通信制御手段11が読出したポート使用情報42によりサーバ12nへ送信され、サーバ12nはポート番号変更通知を受取ると(SC5)、ポート管理手段15へポート番号変更完了通知を送信する(SC6)。
【0120】
ポート管理手段15は、ポート番号変更完了通知を受取ると(SB12)、要求ポート番号であるポート番号30000が使用可能になっているか確認を行い(SB13)、ポート番号30000が使用可能であれば(SB14/YES)、ポート管理手段15は、サーバ12aからのポート番号取得要求に応じて取得したポート番号として「30000」をサーバ12aへ送信する(SB5)。
【0121】
ポート番号の取得後に、サーバ12aは、ポート番号30000でクライアント22との接続を開始する際に、ポート使用情報記憶部17にポート使用情報43を格納する(S10)、このときのポート使用情報記憶部17のポート使用情報は、図10(b)のようになる。
【0122】
上記のように、本実施例のポート番号取得処理においては、ポート取得設定記憶部16の設定に従って、要求ポート番号を取得し、その要求ポート番号が既に使用されていた場合は、当該ポート番号を使用しているサーバ12に対してポート番号を変更するポート番号変更処理を行うことので、新たに起動したサーバ12がポート番号を取得できずクライアント22との接続に失敗する事態を回避して、第1の端末1と第2の端末2との間の通信を円滑に行うことができる。
【0123】
以上説明したように、本実施例では、第1の端末上で動作するサーバと、第2の端末上で動作するクライアントとを接続する通信システムが、第2の端末上で動作し、サーバからの接続要求を受付けてクライアントに接続要求を送信する機能を有するクライアント管理手段と、第1の端末上で動作し、第1の端末でのポート番号の使用状況を確認する機能を有するポート管理手段とを備え、ポート管理手段が、サーバからの要求に応じて、サーバとクライアントとの接続に使用するポート番号を取得する際に、ポート管理手段が取得しようとするポート番号を使用している他のサーバが存在する場合、当該他のサーバが、接続に使用しているポート番号を他のサーバとクライアントとの接続中に変更するようにしたことによって、新たに起動したサーバがポート番号を取得できずクライアントとの接続に失敗する事態を回避して、第1の端末と第2の端末との間の通信を円滑に行うことができる。
【実施例2】
【0124】
以下に、図11ないし図15を用いて本実施例の通信システムについて説明する。
【0125】
なお、上記実施例1と同様の部分は、同一の符号を付してその説明を省略する。
【0126】
上記実施例1においては、取得しようとしたポート番号が既に使用されていた場合、そのポート番号を使用しているサーバが使用ポート番号を変更することでポート番号を取得可能にしている。
【0127】
この方法は、新たに起動したサーバ12がポート番号を取得できない事態を回避して、サーバ12とクライアント22との円滑な通信を行うことができ、第1の端末1と第2の端末2との間の通信のために有用であるが、同じポート番号を接続に使おうとした場合、後に接続した方がそのポート番号を使用し、先に接続した方は別のポート番号に変更されることになる。
【0128】
このため、接続頻度の高いサーバ12のように接続の種類や目的によっては、接続したポート番号を変更されたくないという場合がある。
【0129】
本実施例は、上記実施例1のポート番号の変更に一定の条件を設定し、最初に取得したポート番号を接続中に変更されないようにすることをも可能とするものである。
【0130】
本実施例の通信システムは、基本的には、図1に示す通信システムの構成と同様であるが、図11に示すように、ポート優先設定記憶部51が存在する点で異なる。
【0131】
このポート優先設定記憶部51は、第1の端末1に設けられ、ポート管理手段15と接続され、ポート番号変更処理におけるポート番号を変更する場合の優先度情報としてポート優先設定が記録されており、このポート優先設定は、ポート管理手段15によって格納され読出される。
【0132】
また、本実施例の通信システムの第1の端末1に設けられたポート取得設定記憶部52は、構成上は実施例1のポート取得設定記憶部16と同一であるが、内部に格納するデータ形式が、ポート取得IDおよび取得ポート番号に加えて、ポート優先度を含む点で異なる。
【0133】
本実施例のポート取得設定記憶部52のポート取得設定は、図12に示すように、ポート取得ID、取得ポート番号およびポート優先度の3つの要素で構成される(図12に示す符号54〜57)。
【0134】
ポート取得IDおよび取得ポート番号については、上記実施例1のポート取得設定記憶部16のポート取得設定と同様であるので、その説明を省略する。
【0135】
ポート優先度は、ポート番号を使用する際の優先度を表しており、この値が大きいほど、ポート番号を優先的に使用できる。本実施例においては、優先度の段階に応じて「0」〜「2」の3つの数値を割り当てるように設定している(図12に示す符号54〜57のポート優先度参照)。
【0136】
本実施例のポート優先設定記憶部51のポート優先設定は、図13に示すように、使用ポート番号およびポート優先度の2つの要素で構成される(図13に示す符号58、59)。使用ポート番号は、ポート使用情報記憶部17における使用ポート番号と同様の要素であり、ポート優先度はポート取得設定記憶部52におけるポート優先度と同様の要素である。
【0137】
本実施例の接続処理におけるポート番号取得処理について、図14に示すフローチャートおよび図15に示す流れ図を用い、SDで示すステップに従って説明する。
【0138】
なお、以下に説明するポート番号取得処理を除いた、全体の接続処理については上記実施例1における接続処理(図5、図6)と同様であるので、その説明を省略する。
【0139】
また、ポート番号変更処理は、上記実施例1で図8を用いて説明したポート番号変更処理と同様であるので、ステップ番号はSCのままとして説明する。
【0140】
図15は、図11に示す本実施例における通信システムの構成要素間での、図13に示すポート番号取得処理の各フローでのデータのやりとりを示した流れ図である。
【0141】
本実施例のステップSD1の処理は、上記実施例1におけるステップSB1の処理と同様であるので、その説明を省略する。
【0142】
ステップSD2において、ポート管理手段15は、ポート番号取得要求を受取ると、ポート取得設定記憶部52から指定されたポート取得IDと一致するポート取得設定を読出し、その取得ポート番号を要求ポート番号として取得すると共にそのポート優先度を読出す(SB2)。
【0143】
本実施例のポート取得設定記憶部52のポート取得設定は、上記したように、ポート取得ID、取得ポート番号およびポート優先度の3つの要素で構成され(図12に示す符号54〜57)、ポート取得設定記憶部52は、これら予め設定されたポート取得設定を記憶している。また、ポート優先度は、ポート番号を使用する際の優先度を表しており、この値が大きいほど、ポート番号を優先的に使用できる。
【0144】
なお、ポート番号取得要求にポート取得IDが指定されていない場合や、指定されたポート取得IDと一致するポート取得設定をポート取得設定記憶部52から読出すことができなかった場合には、ポート管理手段15はデフォルトのポート取得設定を使用する(図12に示す符号57)。
【0145】
その後のステップSD3〜SD5の処理は、上記実施例1におけるステップSB3〜SB5の処理と同様であるので、その説明を省略する。
【0146】
ステップSD5において取得したポート番号をサーバ12へ送信したら、ポート管理手段15は、ポート優先設定記憶部51ヘポート優先設定の格納を行う(SD6、図13参照)。
【0147】
この場合の使用ポート番号は、ステップSD5でサーバ12へ送信したポート番号を指定し、ポート優先度は、ステップSD2でポート取得設定記憶部52から読出したポート取得設定のポート優先度を指定する。これにより、ポート取得処理で取得されたポート番号に対しての優先度がポート優先設定記憶部51に格納される。
【0148】
ポート管理手段15がポート優先設定記憶部51にポート優先度を格納したら、ポート番号取得処理を終了する。
【0149】
以上のように、使用可能なポート番号が取得される限り、上記実施例1と同様の動作を行い、ポート番号取得処理を終了する前にポート優先度の格納が行なわれる。
【0150】
次に、要求ポート番号が使用可能でなかった場合におけるポート番号の変更を行う場合の処理について説明する。
【0151】
要求ポート番号が使用可能でなかった場合、つまりポート使用情報記憶部17に、使用ポート番号が要求ポート番号と一致するポート使用情報が存在する場合(SD4/NO)、ポート管理手段15は、ポート番号の変更処理を行うために、まず、ポート番号の変更が可能か否かの確認を行う(SD7)。
【0152】
すなわち、ポート管理手段15は、ポート使用情報記憶部17に、使用ポート番号が要求ポート番号と一致するポート使用情報が存在する場合は、そのポート使用情報をポート使用情報記憶部17から読出すと共に、読出したポート使用情報と使用ポート番号が一致するポート優先設定をポート優先設定記憶部51から読出し、読出したポート優先設定のポート優先度の値が、ステップSD2で読出したポート取得設定のポート優先度の値より小さいか否かを確認する(SD7)。
【0153】
これは、現在のポート番号取得要求と、既にポート番号を使用しているサーバ12のどちらに優先的にポート番号を使用させるかの判定であり、ポート取得設定よりもポート優先設定のポート優先度が大きい場合、そのポート番号を使用しているサーバ12に対してポート番号変更要求を出すことは出来ない、という意味である。
【0154】
なお、使用ポート番号が範囲指定されている等の理由により、使用ポート番号が要求ポート番号と一致するポート使用情報が複数存在する場合は、その全てについてポート優先度の読出し、これらとポート取得設定のポート優先度との比較を行う。
【0155】
使用ポート番号が要求ポート番号と一致するポート使用情報は存在するが、要求ポート番号のポート取得設定のポート優先度より低いポート優先度の使用ポート番号が存在しなかった場合、現在の要求ポート番号は変更不可能と判断される(SD7/NO)。その後の処理(ステップSD17〜SD19)については、後述する。
【0156】
使用ポート番号が要求ポート番号と一致するポート使用情報は存在し、かつ要求ポート番号のポート取得設定のポート優先度より小さいポート優先度の使用ポート番号が存在する場合は、ポート番号の変更が可能と判断され(SD7/YES)、現在使用中のポート番号を新たなポート番号に変更するための変更ポート番号の取得を行う。
【0157】
変更ポート番号の取得の処理(ステップSD8〜SD10)は、上記実施例1のステップSB7〜SB9と同様の処理であるのでその説明を省略する。
【0158】
変更ポート番号が取得できた場合は(SD10/YES)、ステップSD7でポート取得設定のポート優先度と比較したポート優先設定の中で、ポート優先度が最も低いポート優先度を抽出し、さらに、抽出したポート優先度のポート優先設定と使用ポート番号が一致するポート使用情報を抽出し、そのポート使用情報のIDを用いて特定したサーバ12に対して、ポート番号変更要求および変更ポート番号を送信する(SD11)。
【0159】
ポート番号変更要求を受取ったサーバ12は、現在接続中のクライアント22との間で、ポート番号変更処理を行う(SD12)。
【0160】
本実施例では、ポート番号を使用している中で、最もポート優先度が低いサーバ12に対してポート番号変更要求を出すようにしている。
【0161】
また、後述するステップSD17〜SD19でのポート番号取得処理も「ポート取得設定のポート優先度が最も低いものを用いて、ポート番号取得要求に対してのポート番号の変更処理を行う」という処理を表している。
【0162】
このステップSD12におけるサーバ12とクライアント22間のポート番号変更処理については、上記実施例1で図8を用いて説明したポート番号変更処理(ステップSC1〜SC6)と同様であるので、ここでは説明を省略する(図15参照)。
【0163】
その後のステップSD13、SD14の処理は、上記実施例1におけるステップSB12、SB5の処理と同様であるので、その説明を省略する。
【0164】
要求ポート番号が使用可能になっているか否かを確認した結果、ポート使用情報記憶部17のポート使用情報に、要求ポート番号に一致するポート番号のポート使用情報が存在する場合は(SD15/NO)、ポート管理手段15は、ポート番号変更処理が失敗したと判断し、ポート番号取得失敗をサーバ12に通知して(SD16)ポート番号取得処理を終了する。
【0165】
ポート使用情報記憶部17のポート使用情報に、要求ポート番号に一致するポート番号のポート使用情報が存在しない場合(SD15/YES)、ポート管理手段15は、要求ポート番号を、サーバ12からのポート番号取得要求に応じて取得したポート番号としてサーバ12へ送信し(SD5)、ポート優先設定記憶部51ヘ当該ポート番号のポート優先設定の格納して(SD6)、ポート番号取得処理を終了する。
【0166】
一方、使用ポート番号が要求ポート番号と一致するポート使用情報は存在するが、要求ポート番号のポート取得設定のポート優先度より小さいポート優先度の使用ポート番号が存在しなかった場合、現在の要求ポート番号は変更不可能と判断される(SD7/NO)。
【0167】
このため、現在の要求ポート番号を変更した新たな要求ポート番号の再取得処理を行う。
【0168】
この場合の要求ポート番号の再取得処理は、上記実施例1の要求ポート番号の取得処理(ステップSB2〜SB4)と同様の処理であるが、ポート優先度が最も低いデフォルトのポート取得設定(図12に示す符号57)を使用して要求ポート番号の再取得を行う(SD17〜SD19)。
【0169】
再設定した要求ポート番号の取得失敗時(SD18/NO)には、ポート管理手段15は、ポート番号変更処理が失敗したと判断し、ポート番号取得失敗をサーバ12に通知して(SD16)ポート番号取得処理を終了する。
【0170】
再設定した要求ポート番号が取得できた場合は(SD18/YES)、ポート管理手段15は、再取得した要求ポート番号を、サーバ12からのポート番号取得要求に応じて取得したポート番号としてサーバ12へ送信し(SD5)、ポート優先設定記憶部51ヘ当該ポート番号のポート優先設定の格納して(SD6)、ポート番号取得処理を終了する。
【0171】
上記のようにしてポート番号を取得したサーバ12は、取得したポート番号でクライアント22との接続を開始する際に、ポート使用情報記憶部17にポート使用情報を格納する(図5のステップS10参照)。
【0172】
上記のように、本実施例のポート番号取得処理においては、ポート取得設定にポート番号を使用するポート優先度という基準を設けて、その値に応じてポート番号変更処理の対象を変更するようにしたことで、新たに起動したサーバがポート番号を取得できずクライアントとの接続に失敗する事態を回避しつつ、より自由度の高いポート番号の使用設定が可能となる。
【0173】
以上説明したように、本実施例では、ポート管理手段が、サーバとクライアントとの接続に使用するポート番号を取得する際に、ポート管理手段が取得しようとするポート番号を使用している他のサーバが存在する場合、当該他のサーバが接続に使用しているポート番号のポート優先度をポート優先設定記憶部から読出し、読出したポート優先度が、取得しようとするポート番号のポート優先度より低い場合に、当該他のサーバが接続に使用しているポート番号を、当該他のサーバとクライアントとの接続中に変更するので、上記実施例1と同様の効果に加えて、より自由度の高いポート番号の使用設定が可能となる。
【0174】
なお、上記各実施例における通信システムの機能を実現するための通信システムの構築は、上記したプログラムを記録した記録媒体を用いて、記録されたプログラムをコンピュータシステムに読み込ませて実行することにより、通信システムの構築を行うとよい。
【0175】
ここでの「コンピュータシステム」はOSや周辺機器のハードウェアを含むものとする。また、「記録媒体」とはフレキシブルディスク、光磁気ディスク、CD−ROM、ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置及びコンピュータシステム内部の揮発性メモリ(RAM)のような一定時間プログラムを保持するものを含むものとする。
【符号の説明】
【0176】
1 第1の端末
2 第2の端末
3 ネットワーク
5 FAX装置
6 スキャナ装置
11、21 通信制御手段
12、12a〜12n サーバ
15 ポート管理手段
16、52 ポート取得設定記憶部
17、27、ポート使用情報記憶部
22、22a〜22n クライアント
25 クライアント管理手段
26 クライアント接続設定記憶部
31〜34、54〜57 ポート取得設定
35〜38、40〜43 ポート使用情報
51 ポート優先設定記憶部
58、59 ポート優先設定
【技術分野】
【0001】
本発明は、異なる端末間のネットワーク接続を行う通信システムに関する。
【背景技術】
【0002】
ネットワークを介して異なる端末間の通信を行う通信システムにおいて、各端末上でのサーバとクライアントの接続を行う場合、サーバとクライアントが動作するそれぞれの端末上でサーバとクライアントを起動して、サーバとクライアントとの接続設定を行う必要があるが、接続の度に手動で接続設定を行うのは煩雑であるので、これを手動で行わずに自動化する方法が用いられている。
【0003】
クライアントを自動的に起動する従来の方法は、クライアントが動作するホストコンピュータと、サーバが動作する端末とをネットワークを介して接続し、端末に設けたサーバの起動を監視するサーバ監視機能を用いて、サーバが起動するとコマンド自動送出機能を起動させ、コマンド自動送出機能が、記憶装置に格納されている予め設定された手順に従ってクライアントの起動を行うことで、クライアントの起動を自動化している(例えば、特許文献1参照。)。
【0004】
一方、ネットワーク接続手法として一般的に用いられているTCP/IP接続においては、接続時にネットワーク接続で使用する情報として、IPアドレスとポート番号を指定する必要がある。
【0005】
上記従来の技術においては、予め設定された手順に従ってクライアントの起動を行っているため、TCP/IP接続を自動的に行うためには、起動手順として、IPアドレスおよびポート番号を予め設定しておく必要がある。
【0006】
また、TCP/IPにおいては、「0」から「65535」までのポート番号の内、「49151」までは、原則としてその用途を予め固定し、「49151」から「65535」までのポート番号は、ユーザが端末上で自由に使用できるポート番号として設定している。この場合に「0」から「49151」までのポート番号をユーザが使用することは、混乱を生じない範囲で許容されている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開平6−103206号公報(段落0016−0028、第2図、第3図)
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、TCP/IPにおいては、同一端末上では1つのポート番号は1つの処理に対してしか使用できず、かつユーザが使用するポート番号の設定は、端末がランダムに設定しているため、サーバが使用するポート番号を予め設定しておいたとしても、使用しようとするポート番号が、他のサーバによって既に使用されていた場合は、サーバはポート番号を使用することができず接続が不可能となるという問題がある。
【0009】
本発明は、上記の問題点を解決するためになされたものである。
【課題を解決するための手段】
【0010】
本発明は、上記課題を解決するために、第1の端末上で動作するサーバと、第2の端末上で動作するクライアントとを接続する通信システムであって、前記第2の端末上で動作し、前記サーバからの接続要求を受付けて前記クライアントに接続要求を送信する機能を有するクライアント管理手段と、前記第1の端末上で動作し、前記第1の端末でのポート番号の使用状況を確認する機能を有するポート管理手段とを備え、前記ポート管理手段が、前記サーバからの要求に応じて、前記サーバと前記クライアントとの接続に使用するポート番号を取得することを特徴とする。
【発明の効果】
【0011】
これにより、本発明は、新たに起動したサーバがポート番号を取得できずクライアントとの接続に失敗する事態を回避して、第1の端末と第2の端末との間の通信を円滑に行うことができるという効果が得られる。
【図面の簡単な説明】
【0012】
【図1】実施例1における通信システムの構成例を示すブロック図
【図2】実施例1のポート取得設定記憶部のポート取得設定の構成例を示す説明図
【図3】実施例1の第1の端末のポート使用情報記憶部のポート使用情報の構成例を示す説明図
【図4】実施例1の第2の端末のポート使用情報記憶部のポート使用情報の構成例を示す説明図
【図5】実施例1の自動化した接続処理の全体の流れを示す流れ図
【図6】実施例1のネットワークを介したデータの送受信処理の流れを示す流れ図
【図7】実施例1のポート番号取得処理を示すフローチャート
【図8】実施例1のポート番号変更処理を示すフローチャート
【図9】実施例1のポート番号取得処理の流れを示す流れ図
【図10】実施例1の第1の端末のポート使用情報記憶部のポート番号の変更前後のポート使用情報の構成例を示す説明図
【図11】実施例2における通信システムの構成例を示すブロック図
【図12】実施例2のポート取得設定記憶部のポート取得設定の構成例を示す説明図
【図13】実施例2のポート優先設定記憶部のポート優先設定の構成例を示す説明図
【図14】実施例2のポート番号取得処理を示すフローチャート
【図15】実施例2のポート番号取得処理の流れを示す流れ図
【発明を実施するための形態】
【0013】
以下に、図面を参照して本発明による通信システムの実施例について説明する。
【実施例1】
【0014】
本実施例の通信システムは、図1に示すように、第1の端末1と第2の端末2とをネットワーク3を介して接続して構成され、第1の端末1には、FAX装置5およびスキャナ装置6がそれぞれ接続している。
【0015】
第1の端末1は、通信制御手段11、複数のサーバ12、ポート管理手段15、ポート取得設定記憶部16、ポート使用情報記憶部17等を備えている。
【0016】
第2の端末2は、通信制御手段21、複数のクライアント22、クライアント管理手段25、クライアント接続設定記憶部26、ポート使用情報記憶部27等を備えている。
【0017】
通信制御手段11は、第1の端末1上で動作し、ネットワーク3を介して送信されるパケットを受取り、第1の端末1に設定されているIPアドレスおよびポート使用情報記憶部17から読出したポート使用情報を用いて、受取ったパケットを適切なサーバ12等へ送信する機能を有している。
【0018】
通信制御手段21は、第2の端末2上で動作し、ネットワーク3を介してパケットを受取り、第2の端末2に設定されているIPアドレスおよびポート使用情報記憶部27から読出したポート使用情報を用いて、受取ったパケットを適切なクライアント22またはクライアント管理手段25等へ送信する機能を有している。
【0019】
サーバ12は、第1の端末1上で動作し、通信制御手段11、ネットワーク3および通信制御手段21を介して第2の端末2上で動作するクライアント22と接続し、通信を行う機能、およびFAX装置5、スキャナ装置6からの接続要求を受付ける機能等を有している。
【0020】
また、サーバ12は、第1の端末1上でサーバ12a〜12nからなる複数が同時に動作可能で、クライアント22も第2の端末2上でクライアント22a〜22nからなる複数が動作可能であり、1つのサーバ12に対して、1または2以上のクライアント22が接続して通信を行うことが可能な構成になっている。
【0021】
なお、サーバ12およびクライアント22は、ハードウェアまたはソフトウェアのいずれであってもよいが、本実施例では、CPUと、サーバ12またはクライアント22の機能を形成するソフトウェアからなる機能手段である。
【0022】
ポート管理手段15は、第1の端末1上で動作し、ポート使用情報記憶部17から読出したポート使用情報により第1の端末1におけるポート番号の使用状況を確認する機能、およびサーバ12と接続してサーバ12からのポート番号取得要求を受付け、ポート取得設定記憶部16から読出したポート取得設定を用いてポート番号取得処理を行い、取得したポート番号をサーバ12へ送信する機能等を有している。
【0023】
ポート取得設定記憶部16は、第1の端末1に設けられ、サーバ12等のポート取得設定が記録されており、このポート取得設定は、ポート管理手段15によって読出される。
【0024】
ポート使用情報記憶部17は、第1の端末1に設けられており、サーバ12が接続を開始する際に、クライアント22等との接続に使用するポート番号等からなるポート使用情報が格納されている。
【0025】
また、ポート使用情報記憶部17に格納されたポート使用情報は、通信制御手段11が受信したパケットの第1の端末1内での送信先の判別に用いられる。
【0026】
クライアント管理手段25は、第2の端末2上で動作し、通信制御手段21、ネットワーク3および通信制御手段11を介して第1の端末1のサーバ12と接続し、サーバ12から受取ったクライアント接続要求およびクライアント接続情報をクライアント22へ送信する機能を有している。
【0027】
また、クライアント管理手段25は、クライアント接続設定記憶部26から各クライアント22の接続設定を読出し、サーバ12から受取った接続要求に基づいてクライアント接続情報を送信するクライアント22を適切に選択する機能を有している。なお、クライアント管理手段25は、全てのサーバ12と同時に接続可能である。
【0028】
クライアント接続設定記憶部26は、第2の端末2に設けられ、各クライアント22の接続設定が記録されており、この接続設定は、クライアント管理手段25によって読出される。
【0029】
ポート使用情報記憶部27は、第2の端末2に設けられており、クライアント管理手段25がクライアント22に接続要求を送信する際に、クライアント22が接続に使用するポート番号等からなるポート使用情報がクライアント管理手段25によって格納される。
【0030】
また、ポート使用情報記憶部27に格納されたポート使用情報は、通信制御手段21が受信したパケットの第2の端末2内での送信先の判別に用いられる。
【0031】
なお、第1の端末1において、ポート管理手段15およびポート使用情報記憶部17は、第1の端末1上の全てのサーバ12と接続されている。
【0032】
また、通信制御手段11、21はそれぞれの端末において、ネットワーク3を介して接続する機能を有する全ての構成要素(サーバ12またはクライアント22またはクライアント管理手段25)と接続されている。
【0033】
本実施例のポート取得設定記憶部16のポート取得設定は、図2に示すように、ポート取得IDおよび取得ポート番号の2つの要素で構成される(図2に示す符号31〜34)。
【0034】
ポート取得設定記憶部16は、予め設定されたポート取得設定を記憶しており、ポート取得IDごとに異なる取得ポート番号が設定され、これらの取得ポート番号は、単一の値、複数の値、特定の範囲のいずれかの形で指定することができる。
【0035】
本実施例の第1の端末1のポート使用情報記憶部17に格納されるポート使用情報は、図3に示すように、使用ポート番号および、ポートを使用しているサーバ12の識別子(ID)の2つの要素で構成されており(図3に示す符号35、36)、サーバ12が接続を開始するときに格納される。
【0036】
また、第2の端末2のポート使用情報記憶部27に格納されるポート使用情報は、図4に示すように、使用ポート番号および、ポートを使用しているクライアント管理手段25やクライアント22の識別子(ID)の2つの要素で構成されており(図4に示す符号37、38)、原則として、クライアント管理手段25がクライアント22に接続要求を送信するときに格納される。
【0037】
なお、サーバ12からの接続要求をクライアント管理手段25が受信するためには、以下で図6を用いて説明するように、第2の端末2上のポート使用情報記憶部27に、ポート使用情報として、クライアント管理手段25が使用するポート番号およびクライアント管理手段25を特定するIDが予め格納されている必要がある。
【0038】
本実施例においては、図4に示す各ポート使用情報はクライアント管理手段25に予め設定されており、クライアント管理手段25に電源が供給され起動した際に、ポート使用情報記憶部27に格納する、という方法がとられる。
【0039】
以下に、図5、図6に示す流れ図を用い、S、SAで示すステップに従って、本実施例の自動化した接続処理の全体の流れについて説明する。
【0040】
なお、図5は、図1に示す通信システムの構成要素間でのデータのやりとりを示した流れ図であり、図6は、図5に示した接続処理において、ネットワークを介したデータの送受信処理の処理の流れとデータのやりとりの詳細を示した流れ図である。
【0041】
第1の端末1および第2の端末2に電源が投入されると、それぞれの端末内の各要素にも電源が供給され、それぞれの要素が起動する。この状態ではサーバ12とクライアント22の接続処理は実行されない。
【0042】
本実施例においては、FAX装置5が電話回線を通じてFAXを受信した場合、もしくはスキャナ装置6のスキャン処理の起動がかかった場合に、サーバ12へ接続開始要求が送信される。この接続開始要求には、接続先の端末、本実施例では第2の端末2のIPアドレスおよび予め設定されたクライアント管理手段25のポート番号が含まれている。
【0043】
なお、図1に示す本実施例のFAX装置5とスキャナ装置6は、複数存在するサーバ12の内、異なるものに接続開始要求を送信する構成になっている。
【0044】
また、以下の説明においては、第1の端末1に対して、FAX装置5から接続開始要求が送信された場合を例に説明するが、スキャナ装置6から接続開始要求が送信された場合も同様である。
【0045】
サーバ12が、FAX装置5からの接続開始要求を受付けると(S1)、サーバ12は、第2の端末2のクライアント管理手段25との通信を行うためのポート番号を取得するために、ポート管理手段15に対してポート番号取得要求を送信する(S2)。
【0046】
ポート管理手段15は、サーバ12からのポート番号取得要求を受付けてポート番号を取得し、取得したポート番号をサーバ12へ送信する(S3)。具体的なポート番号の取得処理については後述する。
【0047】
サーバ12は、ポート管理手段15からポート番号を受取ると、クライアント管理手段25へ、接続要求および、第2の端末2への接続情報(接続開始要求に含まれている第2の端末2のIPアドレスとクライアント管理手段25のポート番号)および送信元情報(第1の端末1に固有に設定されている第1の端末1のIPアドレスと、ステップS3で取得したサーバ12のポート番号)を送信する(S4)。
【0048】
接続要求の送信後、サーバ12は、ポート使用情報記憶部17にポート使用情報を格納する(S5)。このときのポート使用情報としては、上記ステップS4で送信した送信元接続情報と同じポート番号および、接続要求を送信したサーバ12を特定するIDが格納される。
【0049】
ポート使用情報を格納したサーバ12は、クライアント管理手段25からの接続通知を待って待機する。
【0050】
一方、第1の端末1上の通信制御手段11は、図3に示すステップSA1においてサーバ12から受取った接続要求とクライアント管理手段25への接続情報等をパケット形式でネットワーク3へ送信する(SA2)。
【0051】
送信したパケットの内、第2の端末2への接続情報(IPアドレス部分)により、第2の端末2上の通信制御手段21がパケットを受取り、通信制御手段21は、受取ったパケットから、クライアント管理手段25への接続情報(ポート番号部分)を取得し、ポート使用情報記憶部27の、起動時にクライアント管理手段25によって格納されたポート使用情報から、受信したパケットの接続情報(ポート番号部分)と使用ポート番号が一致するポート使用情報を読出し(図4参照)、そのポート使用情報のIDでパケットの送信先を特定する(SA3)。
【0052】
通信制御手段21は、ポート使用情報のIDで特定した要素(クライアント管理手段25)に対して、パケットの接続要求(データ部分)を送信する(SA4)。
【0053】
クライアント管理手段25は、サーバ12からの接続要求を受信すると、サーバ12への接続通知および送信元情報(第1の端末1のIPアドレスとサーバ12のポート番号)を通信制御手段21へ送信する(SA5)。
【0054】
通信制御手段21は、接続通知を受付けると、クライアント管理手段25から受取った接続通知等をパケット形式でネットワーク3へ送信する(SA6)。
【0055】
送信したパケットの内、第1の端末1のIPアドレスにより、第1の端末1上の通信制御手段11がパケットを受取り、通信制御手段11は受取ったパケットから、サーバ12のポート番号を取得し、ポート使用情報記憶部17のポート使用情報から、受信したパケットのポート番号部分と使用ポート番号が一致するポート使用情報を読出し(図3参照)、そのポート使用情報のIDでパケットの送信先を特定する(SA7)。
【0056】
通信制御手段11は、ポート使用情報のIDで特定した要素(サーバ12)に対して、パケットの接続通知を送信する(SA8)。
【0057】
以上のデータの送受信処理により、サーバ12はクライアント管理手段25からの接続通知を受信する。
【0058】
なお、以下の説明においては、ネットワーク3および通信制御手段11、21を介してのデータの送受信の処理については上記の手順(ステップSA1〜SA8)と同様であるので、その説明を省略する。
【0059】
図5において、サーバ12は、クライアント管理手段25からの接続通知を受取ると(S6)、第2の端末2のクライアント22との通信を行うためのポート番号を取得するために、ポート管理手段15に対してポート番号取得要求を送信する(S7)。
【0060】
ポート管理手段15は、サーバ12からのポート番号取得要求を受付けてポート番号を取得し、取得したポート番号をサーバ12へ送信する(S8)。具体的なポート番号の取得処理については後述する。
【0061】
サーバ12は、ポート管理手段15からポート番号を受取ると、クライアント管理手段25に対してクライアント接続要求およびサーバ接続情報を送信する(S9)。このとき送信されるサーバ接続情報には、上記ステップS8で取得したサーバ12のポート番号および第1の端末1のIPアドレスが指定される。
【0062】
クライアント接続要求の送信後、サーバ12はポート使用情報記憶部17にポート使用情報を格納する(S10)。このときのポート使用情報としては、上記ステップS8で送信したサーバ接続情報と同じポート番号および、クライアント接続要求を送信したサーバ12を特定するIDが格納される。
【0063】
なお、ステップS8で取得したポート番号と、上記ステップS3で取得したポート番号とは、必ずしも一致しないため、本ステップ(S10)において再格納され、ステップS5で格納したポート使用情報は、上書きあるいは削除よって、ポート使用情報記憶部17に残存しないようにされる。
【0064】
ポート使用情報を格納したサーバ12は、クライアント22からの接続通知を待って待機する。
【0065】
一方、クライアント管理手段25は、サーバ12からクライアント接続要求およびサーバ接続情報を受取ると、これらを、クライアント22へ送信する(S11)。このときの、クライアント接続要求およびサーバ接続情報を送信するクライアント22は、クライアント管理手段25が、クライアント接続設定記憶部26から読出したクライアント接続設定を用いて選択する。
【0066】
クライアント接続要求およびサーバ接続情報をクライアント22へ送信後、クライアント管理手段25は、ポート使用情報記憶部27にポート使用情報を格納する(S12)。このときのポート使用情報としては、クライアント接続要求を受取ったクライアント22がサーバ12との接続に使用するポート番号および、クライアント接続要求を受取ったクライアント22を特定するIDが格納される(図4に示す符号38)。
【0067】
クライアント22は、クライアント接続要求およびサーバ接続情報を受取ると、サーバ接続情報を用いてサーバ12にクライアント接続通知を送信する(S13)。このとき送信されるクライアント接続通知にはクライアント接続情報が含まれる。このクライアント接続情報には、クライアント22がサーバ12との接続に使用するポート番号および、第2の端末2に固有に設定されているIPアドレスが指定される。
【0068】
サーバ12がクライアント接続通知を受取ることによって、クライアント22とサーバ12の接続が確立し、以後はサーバ12とクライアント22とが、ネットワーク3および通信制御手段11、21を介しての直接通信を行う。
【0069】
次に、図5に示した接続処理におけるポート番号取得処理(ステップS2、S3、またはステップS7、S8)について、図7、図8に示すフローチャートおよび図9に示す流れ図を用い、SB、SCで示すステップに従って説明する。
【0070】
図7は、ポート番号取得処理の詳細な処理の流れを示したフローチャートであり、図8はポート番号取得処理の内、サーバとクライアント間でポート番号変更処理を行う部分の処理を示したフローチャートである。
【0071】
また、図9は、図1に示す通信システムの構成要素間における、ポート番号取得処理の各フローでのデータのやりとりを示した流れ図である。
【0072】
なお、以下の説明においては、ステップS7、S8の場合を例に説明するが、ステップS2、S3の場合も同様である。
【0073】
また、本説明においては、上記ステップS1においてFAX装置5から最初に接続開始要求を受付けたサーバ12を、サーバ12aとして説明する(図9参照)
上記図5のステップS6において、クライアント管理装置25からの接続通知を受取ったサーバ12aが、ステップS7でポート管理手段15にポート番号取得要求を送信する際に、サーバ12aは、ポート番号取得要求を分類するための識別子(ポート取得ID)を指定して送信する(SB1)。
【0074】
ポート管理手段15は、ポート番号取得要求を受取ると、ポート取得設定記憶部16から指定されたポート取得IDと一致するポート取得設定を読出し、その取得ポート番号を要求ポート番号として取得する(SB2)。
【0075】
本実施例のポート取得設定記憶部16のポート取得設定は、上記したように、ポート取得IDおよび取得ポート番号の2つの要素で構成され(図2に示す符号31〜34)、ポート取得設定記憶部16は、これら予め設定されたポート取得設定を記憶している。
【0076】
また、取得ポート番号は、ポート取得ID毎に異なるポート番号で設定され、そのポート番号は、単一の値、複数の値、特定の範囲のいずれかの形で設定される。
【0077】
なお、ポート番号取得要求にポート取得IDが指定されていない場合や、指定されたポート取得IDと一致するポート取得設定をポート取得設定記憶部16から読出すことができなかった場合には、ポート管理手段15はデフォルトのポート取得設定を使用する。
【0078】
デフォルトのポート取得設定は、ポート管理手段15が内部的に保持しても、図2のように、ポート取得設定記憶部16に保持されるようにしても良い。図2では「default」というポート取得IDをデフォルトのポート取得設定に割り当てている(図2に示す符号34)
次に、ポート管理手段15は、ポート使用情報記憶部17から読出したポート使用情報を用いて、第1の端末1上でのポート番号の使用状況を確認し、要求ポート番号が使用可能か否かを確認する(SB3)。
【0079】
例えば、図3に示したポート使用情報記憶部17のポート使用情報を読出したとすれば、読出した全てのポート使用情報の使用ポート番号の中に、要求ポート番号が存在しない場合は、そのポート番号は使用可能である。
【0080】
要求ポート番号が使用可能なポート番号であった場合(SB4/YES)、ポート管理手段15は、その要求ポート番号をサーバ12aからのポート番号取得要求に応じて取得したポート番号としてサーバ12aへ送信し(SB5)、ポート番号取得処理を終了する。
【0081】
上記の処理を図2を用いて具体的に説明すると、FAX装置5から最初に接続開始要求を受付けたサーバ12aが、ポート取得ID「Server1」を指定してポート管理手段15にポート番号取得要求を送信した場合、ポート管理手段15は、ポート取得設定記憶部16のポート取得ID「Server1」のポート取得設定31を読出す。そのポート取得設定31の取得ポート番号は「30000」であるので、ポート管理手段15は、これを要求ポート番号としてポート番号30000の使用の可否を確認する(SB2、SB3)。
【0082】
ポート使用情報記憶部17から読出した全てのポート使用情報の使用ポート番号の中に「30000」が存在しない場合は(SB4/YES)、ポート管理手段15は、ポート番号30000を使用可能と判断し、サーバ12aからのポート番号取得要求に応じて取得したポート番号として「30000」をサーバ12aへ送信する(SB5)。
【0083】
以上はステップSB3で、要求ポート番号が使用可能であった場合の処理である。
【0084】
要求ポート番号が使用可能でなかった場合、つまりポート使用情報記憶部17に、使用ポート番号が要求ポート番号と一致するポート使用情報が存在する場合(SB4/NO)、ポート管理手段15は、ポート番号の変更処理を行うために、まず、ポート番号の変更が可能か否かの確認を行う(SB6)。
【0085】
すなわち、ポート管理手段15は、ポート使用情報記憶部17に、使用ポート番号が要求ポート番号と一致するポート使用情報が存在する場合は、ポート番号の変更が可能と判断してそのポート使用情報を読出す。
【0086】
この条件を満たすポート使用情報が存在しなかった場合、つまり要求ポート番号と使用ポート番号が一致するポート使用情報が存在しなかった場合(SB6/NO)、ポート管理手段15は、ポート番号取得失敗をサーバ12aに通知して(SB15)ポート番号取得処理を終了する。
【0087】
前記条件を満たすポート使用情報が存在する場合、つまり使用ポート番号が要求ポート番号と一致するポート使用情報が存在する場合には(SB6 /YES)、現在使用中のポート番号を新たなポート番号に変更するための変更ポート番号の取得を行う(SB7〜SB9)。
【0088】
なお、ステップSB3において、要求ポート番号と使用ポート番号が一致した場合、その要求ポート番号は使用不可能と判断されるので、ステップSB4において要求ポート番号が使用可能でなかった場合は、使用ポート番号が要求ポート番号と一致するポート使用情報が存在することになる。
【0089】
変更ポート番号の取得の処理(ステップSB7〜SB9)は、基本的にはステップSB2〜SB4の要求ポート番号の取得と同様の処理であるが、変更ポート番号の場合は、ポート取得IDは考慮せず、デフォルトのポート取得設定の中から現在未使用のポート番号を取得する。
【0090】
デフォルトのポート取得設定およびポート番号の使用状況によっては、使用可能な未使用のポート番号が存在しない場合もある(SB9/NO)。この場合は取得失敗となり、ポート番号取得失敗をサーバ12aに通知して(SB15)ポート番号取得処理を終了する。
【0091】
変更ポート番号が取得できた場合は(SB9/YES)、ステップSB6で読出した、使用ポート番号が要求ポート番号と一致するポート使用情報のIDを用いて特定したサーバ12に対して、ポート番号変更要求および変更ポート番号を送信する(SB10)。
【0092】
ポート番号変更要求を受取ったサーバ12は、現在接続中のクライアント22との間で、ポート番号変更処理を行う(SB11)。
【0093】
このステップSB11におけるサーバ12とクライアント22間のポート番号変更処理について、図8、図9を用い、SCで示すステップに従って説明する。
【0094】
なお、以下の説明においては、ポート番号変更要求を受取ったサーバ12をサーバ12nとし、現在接続中のクライアント22をクライアント22aとして説明する。
【0095】
サーバ12nは、ポート番号変更要求および変更ポート番号を受信すると、接続しているクライアント22aに対してポート番号変更通知を送信する(SC1、図9のSC1参照)。このときのポート番号変更通知には、クライアント接続情報、第1の端末1のIPアドレス、およびサーバ12nが新たに使用する変更ポート番号が含まれている。
【0096】
また、サーバ12nは、ポート番号変更通知の送信後に、ポート使用情報記憶部17から変更前の自己のポート番号と一致するポート使用情報を読出し(SC2)、その使用ポート番号を変更ポート番号に置換えたものを、ポート使用情報記憶部17に格納する(SC3)。
【0097】
このとき、変更前のポート番号を有するポート使用情報は、上書きあるいは削除よって、ポート使用情報記憶部17に残存しないようにする。
【0098】
その後、サーバ12nは、クライアント22aからのポート番号変更確認通知を持って待機する。
【0099】
ポート番号変更通知を受取ったクライアント22は、サーバ接続情報のサーバ12nのポート番号を、ポート番号変更通知に含まれる変更ポート番号に変更し、変更したサーバ接続情報を用いてポート番号変更確認通知を送信する(SC4、図9のSC4参照)。
【0100】
このポート番号変更確認通知は、第1の端末1上の通信制御手段11によって受取られ、通信制御手段11は、変更されたサーバ接続情報の変更ポート番号を用いて、ポート使用情報記憶部17から読出されたポート使用情報のIDで特定されるサーバ12へ送信される。
【0101】
このとき、本実施例のポート使用情報記憶部17のポート使用情報のサーバ12nのポート番号は、上記ステップSC3において、変更ポート番号に置換えられているので、そのIDで特定されるサーバ12nへポート番号変更確認通知が送信され、ポート番号の変更後もサーバ12nとクライアント22aの接続は維持される。
【0102】
サーバ12nは、クライアント22aからのポート番号変更確認通知を受取ると(SC5)、ポート管理手段15ヘポート番号変更完了通知を送信する(SC6)。
【0103】
このようにして、本実施例の既に使用されているポート番号の、変更ポート番号へのポート番号変更処理が行われる。
【0104】
そして、図7のステップSB12において、ポート管理手段15が、サーバ12nからポート番号変更完了通知を受取ると、ポート管理手段15は、ポート番号の変更が行われたことを確認するために、ステップSB3の時点で使用不可能であった要求ポート番号が、使用可能になっているか否かを確認する(SB13)。使用可能か否かの確認はステップSB3と同様の処理で行う。
【0105】
要求ポート番号が使用可能になっているか否かを確認した結果、ポート使用情報記憶部17のポート使用情報に、要求ポート番号に一致するポート番号のポート使用情報が存在する場合は(SB14/NO)、ポート管理手段15は、ポート番号変更処理が失敗したと判断し、ポート番号取得失敗をサーバ12aに通知して(SB15)ポート番号取得処理を終了する。
【0106】
ポート使用情報記憶部17のポート使用情報に、要求ポート番号に一致するポート番号のポート使用情報が存在しない場合(SB14/YES)、ポート管理手段15は、要求ポート番号を、サーバ12aからのポート番号取得要求に応じて取得したポート番号としてサーバ12aへ送信し(SB5)、ポート番号取得処理を終了する。
【0107】
上記のようにしてポート番号を取得したサーバ12aは、取得したポート番号でクライアント22との接続を開始する際に、ポート使用情報記憶部17にポート使用情報を格納する(S10)。
【0108】
上記したステップSB4/NO以降の処理について、図10を用いて具体的に説明する。
【0109】
以下の説明においては、ポート番号変更処理の実行前に、ポート使用情報記憶部17が、図10(a)に示すように、既に起動しているサーバ12bの使用ポート番号として「30005」が記録されたポート使用情報40、およびサーバ12nの使用ポート番号として「30000」が記録されたポート使用情報41を格納しているとして説明する。
【0110】
また、既に起動しているサーバ12nは、上記で説明したサーバ12aと同様にして、ポート取得ID「Server1」を指定してポート管理手段15へポート番号取得要求を送信し、ポート番号30000を用いてクライアント22aと接続状態になっているとして説明する。
【0111】
新たに起動したサーバ12aが、ポート取得ID「Server1」でポート管理手段15にポート番号取得要求を送信した場合、ポート管理手段15は、ポート取得設定記憶部16のポート取得ID「Server1」のポート取得設定31を読出し(図2参照)、要求ポート番号であるポート番号30000が使用可能か否かの確認を行う。
【0112】
ポート使用情報記憶部17から読出したポート使用情報41において、使用ポート番号30000が既にサーバ12nによって使用され、そのポート番号がポート使用情報記憶部17に存在しているため、ポート番号30000は使用不可能と判断される(SB4/NO)。
【0113】
要求ポート番号が使用不可能であるため、ポート管理手段15は、ポート番号変更処理を行う。この場合に要求ポート番号30000と一致するポート使用情報41が存在するので変更可能である(SB6/YES)。
【0114】
変更ポート番号の取得において、ポート管理手段15は、デフォルトのポート取得設定としてポート取得設定34を使用し(図2参照)、ポート番号10000を取得したとする(SB7)。
【0115】
ポート使用情報41から、ポート番号30000を使用しているのはサーバ12nと特定できるので、ポート管理手段15は、サーバ12nに対してポート番号変更要求および変更ポート番号10000を送信する(SB10)。
【0116】
サーバ12nは、ポート番号変更要求を受けて、接続しているクライアント22aに対してポート番号変更通知を送信する(SC1)。このときのポート番号変更通知には、変更ポート番号10000が含まれている。
【0117】
ポート番号変更通知を送信後、サーバ12nは、ポート使用情報記憶部17から変更前のポート番号30000についてのポート使用情報41を読出し(SC2)、使用ポート番号30000を変更ポート番号10000に変更し、ポート使用情報記憶部17に格納する(図10(b)のポート使用情報42)(SC3)。
【0118】
クライアント22aは、ポート番号変更通知を受取り、ポート番号変更確認通知を送信する(SC4)。
【0119】
ポート番号変更確認通知は第1の端末1上の通信制御手段11が読出したポート使用情報42によりサーバ12nへ送信され、サーバ12nはポート番号変更通知を受取ると(SC5)、ポート管理手段15へポート番号変更完了通知を送信する(SC6)。
【0120】
ポート管理手段15は、ポート番号変更完了通知を受取ると(SB12)、要求ポート番号であるポート番号30000が使用可能になっているか確認を行い(SB13)、ポート番号30000が使用可能であれば(SB14/YES)、ポート管理手段15は、サーバ12aからのポート番号取得要求に応じて取得したポート番号として「30000」をサーバ12aへ送信する(SB5)。
【0121】
ポート番号の取得後に、サーバ12aは、ポート番号30000でクライアント22との接続を開始する際に、ポート使用情報記憶部17にポート使用情報43を格納する(S10)、このときのポート使用情報記憶部17のポート使用情報は、図10(b)のようになる。
【0122】
上記のように、本実施例のポート番号取得処理においては、ポート取得設定記憶部16の設定に従って、要求ポート番号を取得し、その要求ポート番号が既に使用されていた場合は、当該ポート番号を使用しているサーバ12に対してポート番号を変更するポート番号変更処理を行うことので、新たに起動したサーバ12がポート番号を取得できずクライアント22との接続に失敗する事態を回避して、第1の端末1と第2の端末2との間の通信を円滑に行うことができる。
【0123】
以上説明したように、本実施例では、第1の端末上で動作するサーバと、第2の端末上で動作するクライアントとを接続する通信システムが、第2の端末上で動作し、サーバからの接続要求を受付けてクライアントに接続要求を送信する機能を有するクライアント管理手段と、第1の端末上で動作し、第1の端末でのポート番号の使用状況を確認する機能を有するポート管理手段とを備え、ポート管理手段が、サーバからの要求に応じて、サーバとクライアントとの接続に使用するポート番号を取得する際に、ポート管理手段が取得しようとするポート番号を使用している他のサーバが存在する場合、当該他のサーバが、接続に使用しているポート番号を他のサーバとクライアントとの接続中に変更するようにしたことによって、新たに起動したサーバがポート番号を取得できずクライアントとの接続に失敗する事態を回避して、第1の端末と第2の端末との間の通信を円滑に行うことができる。
【実施例2】
【0124】
以下に、図11ないし図15を用いて本実施例の通信システムについて説明する。
【0125】
なお、上記実施例1と同様の部分は、同一の符号を付してその説明を省略する。
【0126】
上記実施例1においては、取得しようとしたポート番号が既に使用されていた場合、そのポート番号を使用しているサーバが使用ポート番号を変更することでポート番号を取得可能にしている。
【0127】
この方法は、新たに起動したサーバ12がポート番号を取得できない事態を回避して、サーバ12とクライアント22との円滑な通信を行うことができ、第1の端末1と第2の端末2との間の通信のために有用であるが、同じポート番号を接続に使おうとした場合、後に接続した方がそのポート番号を使用し、先に接続した方は別のポート番号に変更されることになる。
【0128】
このため、接続頻度の高いサーバ12のように接続の種類や目的によっては、接続したポート番号を変更されたくないという場合がある。
【0129】
本実施例は、上記実施例1のポート番号の変更に一定の条件を設定し、最初に取得したポート番号を接続中に変更されないようにすることをも可能とするものである。
【0130】
本実施例の通信システムは、基本的には、図1に示す通信システムの構成と同様であるが、図11に示すように、ポート優先設定記憶部51が存在する点で異なる。
【0131】
このポート優先設定記憶部51は、第1の端末1に設けられ、ポート管理手段15と接続され、ポート番号変更処理におけるポート番号を変更する場合の優先度情報としてポート優先設定が記録されており、このポート優先設定は、ポート管理手段15によって格納され読出される。
【0132】
また、本実施例の通信システムの第1の端末1に設けられたポート取得設定記憶部52は、構成上は実施例1のポート取得設定記憶部16と同一であるが、内部に格納するデータ形式が、ポート取得IDおよび取得ポート番号に加えて、ポート優先度を含む点で異なる。
【0133】
本実施例のポート取得設定記憶部52のポート取得設定は、図12に示すように、ポート取得ID、取得ポート番号およびポート優先度の3つの要素で構成される(図12に示す符号54〜57)。
【0134】
ポート取得IDおよび取得ポート番号については、上記実施例1のポート取得設定記憶部16のポート取得設定と同様であるので、その説明を省略する。
【0135】
ポート優先度は、ポート番号を使用する際の優先度を表しており、この値が大きいほど、ポート番号を優先的に使用できる。本実施例においては、優先度の段階に応じて「0」〜「2」の3つの数値を割り当てるように設定している(図12に示す符号54〜57のポート優先度参照)。
【0136】
本実施例のポート優先設定記憶部51のポート優先設定は、図13に示すように、使用ポート番号およびポート優先度の2つの要素で構成される(図13に示す符号58、59)。使用ポート番号は、ポート使用情報記憶部17における使用ポート番号と同様の要素であり、ポート優先度はポート取得設定記憶部52におけるポート優先度と同様の要素である。
【0137】
本実施例の接続処理におけるポート番号取得処理について、図14に示すフローチャートおよび図15に示す流れ図を用い、SDで示すステップに従って説明する。
【0138】
なお、以下に説明するポート番号取得処理を除いた、全体の接続処理については上記実施例1における接続処理(図5、図6)と同様であるので、その説明を省略する。
【0139】
また、ポート番号変更処理は、上記実施例1で図8を用いて説明したポート番号変更処理と同様であるので、ステップ番号はSCのままとして説明する。
【0140】
図15は、図11に示す本実施例における通信システムの構成要素間での、図13に示すポート番号取得処理の各フローでのデータのやりとりを示した流れ図である。
【0141】
本実施例のステップSD1の処理は、上記実施例1におけるステップSB1の処理と同様であるので、その説明を省略する。
【0142】
ステップSD2において、ポート管理手段15は、ポート番号取得要求を受取ると、ポート取得設定記憶部52から指定されたポート取得IDと一致するポート取得設定を読出し、その取得ポート番号を要求ポート番号として取得すると共にそのポート優先度を読出す(SB2)。
【0143】
本実施例のポート取得設定記憶部52のポート取得設定は、上記したように、ポート取得ID、取得ポート番号およびポート優先度の3つの要素で構成され(図12に示す符号54〜57)、ポート取得設定記憶部52は、これら予め設定されたポート取得設定を記憶している。また、ポート優先度は、ポート番号を使用する際の優先度を表しており、この値が大きいほど、ポート番号を優先的に使用できる。
【0144】
なお、ポート番号取得要求にポート取得IDが指定されていない場合や、指定されたポート取得IDと一致するポート取得設定をポート取得設定記憶部52から読出すことができなかった場合には、ポート管理手段15はデフォルトのポート取得設定を使用する(図12に示す符号57)。
【0145】
その後のステップSD3〜SD5の処理は、上記実施例1におけるステップSB3〜SB5の処理と同様であるので、その説明を省略する。
【0146】
ステップSD5において取得したポート番号をサーバ12へ送信したら、ポート管理手段15は、ポート優先設定記憶部51ヘポート優先設定の格納を行う(SD6、図13参照)。
【0147】
この場合の使用ポート番号は、ステップSD5でサーバ12へ送信したポート番号を指定し、ポート優先度は、ステップSD2でポート取得設定記憶部52から読出したポート取得設定のポート優先度を指定する。これにより、ポート取得処理で取得されたポート番号に対しての優先度がポート優先設定記憶部51に格納される。
【0148】
ポート管理手段15がポート優先設定記憶部51にポート優先度を格納したら、ポート番号取得処理を終了する。
【0149】
以上のように、使用可能なポート番号が取得される限り、上記実施例1と同様の動作を行い、ポート番号取得処理を終了する前にポート優先度の格納が行なわれる。
【0150】
次に、要求ポート番号が使用可能でなかった場合におけるポート番号の変更を行う場合の処理について説明する。
【0151】
要求ポート番号が使用可能でなかった場合、つまりポート使用情報記憶部17に、使用ポート番号が要求ポート番号と一致するポート使用情報が存在する場合(SD4/NO)、ポート管理手段15は、ポート番号の変更処理を行うために、まず、ポート番号の変更が可能か否かの確認を行う(SD7)。
【0152】
すなわち、ポート管理手段15は、ポート使用情報記憶部17に、使用ポート番号が要求ポート番号と一致するポート使用情報が存在する場合は、そのポート使用情報をポート使用情報記憶部17から読出すと共に、読出したポート使用情報と使用ポート番号が一致するポート優先設定をポート優先設定記憶部51から読出し、読出したポート優先設定のポート優先度の値が、ステップSD2で読出したポート取得設定のポート優先度の値より小さいか否かを確認する(SD7)。
【0153】
これは、現在のポート番号取得要求と、既にポート番号を使用しているサーバ12のどちらに優先的にポート番号を使用させるかの判定であり、ポート取得設定よりもポート優先設定のポート優先度が大きい場合、そのポート番号を使用しているサーバ12に対してポート番号変更要求を出すことは出来ない、という意味である。
【0154】
なお、使用ポート番号が範囲指定されている等の理由により、使用ポート番号が要求ポート番号と一致するポート使用情報が複数存在する場合は、その全てについてポート優先度の読出し、これらとポート取得設定のポート優先度との比較を行う。
【0155】
使用ポート番号が要求ポート番号と一致するポート使用情報は存在するが、要求ポート番号のポート取得設定のポート優先度より低いポート優先度の使用ポート番号が存在しなかった場合、現在の要求ポート番号は変更不可能と判断される(SD7/NO)。その後の処理(ステップSD17〜SD19)については、後述する。
【0156】
使用ポート番号が要求ポート番号と一致するポート使用情報は存在し、かつ要求ポート番号のポート取得設定のポート優先度より小さいポート優先度の使用ポート番号が存在する場合は、ポート番号の変更が可能と判断され(SD7/YES)、現在使用中のポート番号を新たなポート番号に変更するための変更ポート番号の取得を行う。
【0157】
変更ポート番号の取得の処理(ステップSD8〜SD10)は、上記実施例1のステップSB7〜SB9と同様の処理であるのでその説明を省略する。
【0158】
変更ポート番号が取得できた場合は(SD10/YES)、ステップSD7でポート取得設定のポート優先度と比較したポート優先設定の中で、ポート優先度が最も低いポート優先度を抽出し、さらに、抽出したポート優先度のポート優先設定と使用ポート番号が一致するポート使用情報を抽出し、そのポート使用情報のIDを用いて特定したサーバ12に対して、ポート番号変更要求および変更ポート番号を送信する(SD11)。
【0159】
ポート番号変更要求を受取ったサーバ12は、現在接続中のクライアント22との間で、ポート番号変更処理を行う(SD12)。
【0160】
本実施例では、ポート番号を使用している中で、最もポート優先度が低いサーバ12に対してポート番号変更要求を出すようにしている。
【0161】
また、後述するステップSD17〜SD19でのポート番号取得処理も「ポート取得設定のポート優先度が最も低いものを用いて、ポート番号取得要求に対してのポート番号の変更処理を行う」という処理を表している。
【0162】
このステップSD12におけるサーバ12とクライアント22間のポート番号変更処理については、上記実施例1で図8を用いて説明したポート番号変更処理(ステップSC1〜SC6)と同様であるので、ここでは説明を省略する(図15参照)。
【0163】
その後のステップSD13、SD14の処理は、上記実施例1におけるステップSB12、SB5の処理と同様であるので、その説明を省略する。
【0164】
要求ポート番号が使用可能になっているか否かを確認した結果、ポート使用情報記憶部17のポート使用情報に、要求ポート番号に一致するポート番号のポート使用情報が存在する場合は(SD15/NO)、ポート管理手段15は、ポート番号変更処理が失敗したと判断し、ポート番号取得失敗をサーバ12に通知して(SD16)ポート番号取得処理を終了する。
【0165】
ポート使用情報記憶部17のポート使用情報に、要求ポート番号に一致するポート番号のポート使用情報が存在しない場合(SD15/YES)、ポート管理手段15は、要求ポート番号を、サーバ12からのポート番号取得要求に応じて取得したポート番号としてサーバ12へ送信し(SD5)、ポート優先設定記憶部51ヘ当該ポート番号のポート優先設定の格納して(SD6)、ポート番号取得処理を終了する。
【0166】
一方、使用ポート番号が要求ポート番号と一致するポート使用情報は存在するが、要求ポート番号のポート取得設定のポート優先度より小さいポート優先度の使用ポート番号が存在しなかった場合、現在の要求ポート番号は変更不可能と判断される(SD7/NO)。
【0167】
このため、現在の要求ポート番号を変更した新たな要求ポート番号の再取得処理を行う。
【0168】
この場合の要求ポート番号の再取得処理は、上記実施例1の要求ポート番号の取得処理(ステップSB2〜SB4)と同様の処理であるが、ポート優先度が最も低いデフォルトのポート取得設定(図12に示す符号57)を使用して要求ポート番号の再取得を行う(SD17〜SD19)。
【0169】
再設定した要求ポート番号の取得失敗時(SD18/NO)には、ポート管理手段15は、ポート番号変更処理が失敗したと判断し、ポート番号取得失敗をサーバ12に通知して(SD16)ポート番号取得処理を終了する。
【0170】
再設定した要求ポート番号が取得できた場合は(SD18/YES)、ポート管理手段15は、再取得した要求ポート番号を、サーバ12からのポート番号取得要求に応じて取得したポート番号としてサーバ12へ送信し(SD5)、ポート優先設定記憶部51ヘ当該ポート番号のポート優先設定の格納して(SD6)、ポート番号取得処理を終了する。
【0171】
上記のようにしてポート番号を取得したサーバ12は、取得したポート番号でクライアント22との接続を開始する際に、ポート使用情報記憶部17にポート使用情報を格納する(図5のステップS10参照)。
【0172】
上記のように、本実施例のポート番号取得処理においては、ポート取得設定にポート番号を使用するポート優先度という基準を設けて、その値に応じてポート番号変更処理の対象を変更するようにしたことで、新たに起動したサーバがポート番号を取得できずクライアントとの接続に失敗する事態を回避しつつ、より自由度の高いポート番号の使用設定が可能となる。
【0173】
以上説明したように、本実施例では、ポート管理手段が、サーバとクライアントとの接続に使用するポート番号を取得する際に、ポート管理手段が取得しようとするポート番号を使用している他のサーバが存在する場合、当該他のサーバが接続に使用しているポート番号のポート優先度をポート優先設定記憶部から読出し、読出したポート優先度が、取得しようとするポート番号のポート優先度より低い場合に、当該他のサーバが接続に使用しているポート番号を、当該他のサーバとクライアントとの接続中に変更するので、上記実施例1と同様の効果に加えて、より自由度の高いポート番号の使用設定が可能となる。
【0174】
なお、上記各実施例における通信システムの機能を実現するための通信システムの構築は、上記したプログラムを記録した記録媒体を用いて、記録されたプログラムをコンピュータシステムに読み込ませて実行することにより、通信システムの構築を行うとよい。
【0175】
ここでの「コンピュータシステム」はOSや周辺機器のハードウェアを含むものとする。また、「記録媒体」とはフレキシブルディスク、光磁気ディスク、CD−ROM、ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置及びコンピュータシステム内部の揮発性メモリ(RAM)のような一定時間プログラムを保持するものを含むものとする。
【符号の説明】
【0176】
1 第1の端末
2 第2の端末
3 ネットワーク
5 FAX装置
6 スキャナ装置
11、21 通信制御手段
12、12a〜12n サーバ
15 ポート管理手段
16、52 ポート取得設定記憶部
17、27、ポート使用情報記憶部
22、22a〜22n クライアント
25 クライアント管理手段
26 クライアント接続設定記憶部
31〜34、54〜57 ポート取得設定
35〜38、40〜43 ポート使用情報
51 ポート優先設定記憶部
58、59 ポート優先設定
【特許請求の範囲】
【請求項1】
第1の端末上で動作するサーバと、第2の端末上で動作するクライアントとを接続する通信システムであって、
前記第2の端末上で動作し、前記サーバからの接続要求を受付けて前記クライアントに接続要求を送信する機能を有するクライアント管理手段と、
前記第1の端末上で動作し、前記第1の端末でのポート番号の使用状況を確認する機能を有するポート管理手段とを備え、
前記ポート管理手段が、前記サーバからの要求に応じて、前記サーバと前記クライアントとの接続に使用するポート番号を取得することを特徴とする通信システム。
【請求項2】
請求項1に記載の通信システムにおいて、
前記ポート管理手段が、前記サーバと前記クライアントとの接続に使用するポート番号を取得する際に、
前記ポート管理手段が取得しようとするポート番号を使用している他のサーバが存在する場合は、前記他のサーバが接続に使用しているポート番号を、当該他のサーバと前記クライアントとの接続中に変更することを特徴とする通信システム。
【請求項3】
請求項1に記載の通信システムにおいて、
使用中のポート番号とそのポート優先度からなるポート優先設定を格納したポート優先設定記憶部を設け、
前記ポート管理手段が、前記サーバと前記クライアントとの接続に使用するポート番号を取得する際に、
前記ポート管理手段が取得しようとするポート番号を使用している他のサーバが存在する場合は、前記他のサーバが接続に使用しているポート番号のポート優先度を前記ポート優先設定記憶部から読出し、読出したポート優先度が、前記取得しようとするポート番号のポート優先度より低い場合に、当該他のサーバが接続に使用しているポート番号を、当該他のサーバと前記クライアントとの接続中に変更することを特徴とする通信システム。
【請求項1】
第1の端末上で動作するサーバと、第2の端末上で動作するクライアントとを接続する通信システムであって、
前記第2の端末上で動作し、前記サーバからの接続要求を受付けて前記クライアントに接続要求を送信する機能を有するクライアント管理手段と、
前記第1の端末上で動作し、前記第1の端末でのポート番号の使用状況を確認する機能を有するポート管理手段とを備え、
前記ポート管理手段が、前記サーバからの要求に応じて、前記サーバと前記クライアントとの接続に使用するポート番号を取得することを特徴とする通信システム。
【請求項2】
請求項1に記載の通信システムにおいて、
前記ポート管理手段が、前記サーバと前記クライアントとの接続に使用するポート番号を取得する際に、
前記ポート管理手段が取得しようとするポート番号を使用している他のサーバが存在する場合は、前記他のサーバが接続に使用しているポート番号を、当該他のサーバと前記クライアントとの接続中に変更することを特徴とする通信システム。
【請求項3】
請求項1に記載の通信システムにおいて、
使用中のポート番号とそのポート優先度からなるポート優先設定を格納したポート優先設定記憶部を設け、
前記ポート管理手段が、前記サーバと前記クライアントとの接続に使用するポート番号を取得する際に、
前記ポート管理手段が取得しようとするポート番号を使用している他のサーバが存在する場合は、前記他のサーバが接続に使用しているポート番号のポート優先度を前記ポート優先設定記憶部から読出し、読出したポート優先度が、前記取得しようとするポート番号のポート優先度より低い場合に、当該他のサーバが接続に使用しているポート番号を、当該他のサーバと前記クライアントとの接続中に変更することを特徴とする通信システム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【公開番号】特開2012−14337(P2012−14337A)
【公開日】平成24年1月19日(2012.1.19)
【国際特許分類】
【出願番号】特願2010−149006(P2010−149006)
【出願日】平成22年6月30日(2010.6.30)
【出願人】(591044164)株式会社沖データ (2,444)
【Fターム(参考)】
【公開日】平成24年1月19日(2012.1.19)
【国際特許分類】
【出願日】平成22年6月30日(2010.6.30)
【出願人】(591044164)株式会社沖データ (2,444)
【Fターム(参考)】
[ Back to top ]