(57)【要約】【課題】端末装置との再接続を効率的に行う。【解決手段】通信制御装置５，６は、端末装置との間の通信接続を制御する。通信制御装置５の生成手段５ａは、端末装置１との間で通信接続を確立すると、通信制御装置５を示す装置識別子９ｂを含み、該通信接続を示す接続識別子９を生成する。通知手段５ｂは、生成した接続識別子９を端末装置１に通知する。通信制御装置６では、通信制御装置５との間の通信接続が切断された端末装置１から、接続識別子９を含む再接続要求１０を受信すると、抽出手段６ｃが、接続識別子９から装置識別子９ｂを抽出する。そして指示手段６ｄが、抽出した該装置識別子で示される通信制御装置５に、端末装置１との通信の再接続を指示する。【選択図】図１
2014132703.tif 000002
【特許請求の範囲】
【請求項１】
第１の通信制御装置が、
端末装置との間で通信接続を確立すると、前記第１の通信制御装置を示す装置識別子を含み、該通信接続を示す接続識別子を生成し、
生成した該接続識別子を前記端末装置に通知し、
第２の通信制御装置が、
前記第１の通信制御装置との間の通信接続が切断された前記端末装置から、前記接続識別子を含む再接続要求を受信すると、前記接続識別子から前記装置識別子を抽出し、
抽出した前記装置識別子で示される前記第１の通信制御装置に、前記端末装置との通信の再接続を指示する、
通信制御方法。
【請求項２】
前記第２の通信制御装置による再接続の指示では、前記端末装置に再接続の待機指示を送信すると共に、前記第１の通信制御装置に前記端末装置への再接続要求指示を送信し、
前記再接続要求指示を受信した前記第１の通信制御装置が、前記端末装置に再接続要求を送信する、
ことを特徴とする請求項１記載の通信制御方法。
【請求項３】
通信接続の指示では、前記第１の通信制御装置に再接続が可能か否かを問い合わせ、再接続が可能な場合に、前記端末装置に再接続の待機指示を送信することを特徴とする請求項２記載の通信制御方法。
【請求項４】
前記第２の通信制御装置による再接続の指示では、前記端末装置から受信した再接続要求を、前記第１の通信制御装置に転送し、
前記第１の通信制御装置が、転送された再接続要求に応答することで前記端末装置との間の、前記第２の通信制御装置を経由する伝送経路での通信の再接続を行い、
前記第２の通信制御装置が、再接続された前記端末装置と前記第１の通信制御装置との間の通信を中継する、
ことを特徴とする請求項１記載の通信制御方法。
【請求項５】
前記端末装置と前記第１の通信制御装置との間で、前記第２の通信制御装置を経由する伝送経路での通信の再接続が行われると、前記第２の通信制御装置における、同時接続可能なコネクション数の最大値を増加させることを特徴とする請求項４記載の通信制御方法。
【請求項６】
前記端末装置との間での通信接続の確立は、セションの確立であり、前記接続識別子は、該セションの前記第１の通信制御装置内で識別する装置内セション識別子と、前記第１の通信制御装置を示す装置識別子との組であることを特徴とする請求項１乃至５のいずれかに記載の通信制御方法。
【請求項７】
端末装置との間で通信接続を確立すると、自己の装置識別子を含み、該通信接続を示す接続識別子を生成し、生成した該接続識別子を前記端末装置に通知する第１の通信制御装置と、
前記第１の通信制御装置との間の通信接続が切断された前記端末装置から、前記接続識別子を含む再接続要求を受信すると、前記接続識別子から前記装置識別子を抽出し、抽出した前記装置識別子で示される前記第１の通信制御装置に、前記端末装置との通信の再接続を指示する第２の通信制御装置と、
を有する情報処理システム。
【請求項８】
端末装置との間の通信接続を制御する通信制御装置において、
第１の端末装置との間で通信接続を確立すると、前記通信制御装置を示す装置識別子を含み、該通信接続を示す接続識別子を生成する生成手段と、
生成した該接続識別子を前記第１の端末装置に通知する通知手段と、
他の通信制御装置との間の通信接続が切断された第２の端末装置から、接続識別子を含む再接続要求を受信すると、該接続識別子から装置識別子を抽出する抽出手段と、
抽出した該装置識別子で示される前記他の通信制御装置に、前記第２の端末装置との通信の再接続を指示する指示手段と、
を有する通信制御装置。
【請求項９】
通信制御装置に、
第１の端末装置との間で通信接続を確立すると、前記通信制御装置を示す装置識別子を含み、該通信接続を示す接続識別子を生成し、
生成した該接続識別子を前記第１の端末装置に通知し、
他の通信制御装置との間の通信接続が切断された第２の端末装置から、接続識別子を含む再接続要求を受信すると、該接続識別子から装置識別子を抽出し、
抽出した該装置識別子で示される前記他の通信制御装置に、前記第２の端末装置との通信の再接続を指示する、
処理を実行させる通信制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、端末装置との間の通信接続を行う通信制御方法、情報処理システム、通信制御装置、および通信制御プログラムに関する。
【背景技術】
【０００２】
端末装置を用いて、サーバで提供されるサービスを利用する場合、端末装置とサーバとの通信接続が行われる。通信接続とは、端末装置とサーバとで、相手と通信するための環境設定を行い、通信可能な状態にすることである。通信接続の一例としては、セションの確立がある。
【０００３】
通信接続は、通信完了による切断以外に、エラーなどで切断されることがある。例えば携帯電話網のような無線通信網では、端末装置と無線基地局との間の電波状態が動的に変化する。そのため、端末装置と無線基地局との間の電波状態が、通信ができないほど悪化すると、通信が切断される。なお最近の通信システムでは、通信接続が一時的に切断されても、自動で再接続することができる。
【０００４】
通信の再接続は、例えば端末装置からの再接続要求に基づいて行われる。切断により中断した通信を続行するため、端末装置は、切断前と同じサーバ宛に再接続要求を送信する。ところが、端末装置からの再接続要求が、切断前と同じサーバに確実に送信するのが困難な場合がある。例えば、センタ内で複数台のサーバが稼動している場合がある。この場合、サーバ装置のＩＰ（Internet Protocol）アドレスは、センタ内で仮想化される可能性がある。ＩＰアドレスの仮想化とは、例えば、ＮＡＴ（Network Address Translation）を用いて、グローバルＩＰアドレスを複数のサーバで共有することである。この場合、各サーバには、グローバルＩＰアドレスとは別に、ローカルＩＰアドレスが設定される。センタの入り口に設置されたロードバランサ（負荷分散装置）は、グローバルＩＰアドレスによって端末装置と通信し、端末装置からのパケットの宛先を、ＮＡＴによりいずれかのサーバのローカルＩＰアドレスに変換して、サーバに転送する。ロードバランサは、端末装置からの接続要求に、同一ＩＰアドレスやＳＳＬ（Secure Socket Layer）プロトコルのセションＩＤなどのように、端末装置とサーバとを結びつける情報があれば、接続要求を同一サーバへ転送できる。ところが、端末装置が無線ダイヤルアップによる再接続した場合、ＤＨＣＰ（Dynamic Host Configuration Protocol）により端末装置に割り当てられるＩＰアドレスは変更される。端末装置のＩＰアドレスが変わってしまうと、ロードバランサでは、切断前と同じ端末装置であると認識できない。そのため端末装置からの再接続要求が、元のサーバに送信されることが保障できなくなる。端末装置からの接続要求が、切断前とは別のサーバに送信されると、再接続は失敗する。
【０００５】
そこで、センタ内も複数のサーバが稼働している場合において、通信が切断されても、以前と同じサーバに再接続する技術が考えられている。
例えば、典型的な１対１のクライアント／サーバ接続であろうと、クライアントと仮想ＩＰアドレスのうしろにある複数のサーバのサーバファームとの間であろうと消失された安全な接続の整合性のある再確立を可能にする技術が考えられている。
【０００６】
また、サーバ装置間におけるセッションの引き渡しや復元処理等を不要にし、これによりワークフロー処理の効率の向上を図る技術も考えられている。この技術では、セッションを所有するサーバ装置が他のサーバ装置だった場合には、実行要求元のクライアント装置に対し他のサーバ装置への再接続を要求するリダイレクト要求を送信する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００９−５０８２６１号公報
【特許文献２】特開２００５−０５６１１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし、再接続要求を出力した端末装置を、元のサーバに再接続させる従来の技術では、元のサーバを検索する処理が行われ、処理が煩雑である。すなわち、再接続要求を受け取ったサーバによる再接続相手が自分自身か否かの判断処理とは別に、通信接続とサーバとの対応関係を管理する装置へアクセスすることで、正しい再接続先が認識できる。そのため、他の装置へアクセスする分だけ、処理が余計に発生し、処理効率が低下する。
【０００９】
１つの側面では、本発明は、端末装置との再接続を効率的に行うことができる通信制御方法、情報処理システム、通信制御装置、および通信制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
１つの案では、第１の通信制御装置と第２の通信制御装置とによる通信制御方法が提案される。この通信制御方法では、第１の通信制御装置が、端末装置との間で通信接続を確立すると、第１の通信制御装置を示す装置識別子を含み、該通信接続を示す接続識別子を生成する。そして第１の通信制御装置が、生成した該接続識別子を端末装置に通知する。また第２の通信制御装置が、第１の通信制御装置との間の通信接続が切断された端末装置から、接続識別子を含む再接続要求を受信すると、接続識別子から装置識別子を抽出する。そして、抽出した装置識別子で示される第１の通信制御装置に、端末装置との通信の再接続を指示する。
【発明の効果】
【００１１】
１態様によれば、端末装置との再接続を効率的に行うことができる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施の形態に係る装置の機能構成例を示す図である。
【図２】第２の実施の形態のシステム構成例を示す図である。
【図３】移動端末のハードウェアの一構成例を示す図である。
【図４】モバイル接続サーバのハードウェアの一構成例を示す図である。
【図５】第２の実施の形態における移動端末の再接続手順を示す図である。
【図６】移動端末の機能を示すブロック図である。
【図７】移動端末のセション情報記憶部のデータ構造の一例を示す図である。
【図８】サービスセンタ内のサーバの機能を示す図である。
【図９】モバイル接続サーバのセション情報記憶部のデータ構造の一例を示す図である。
【図１０】セションＩＤのフィールド内のデータ構造の一例を示す図である。
【図１１】移動端末の接続処理の手順の一例を示す第１のシーケンス図である。
【図１２】移動端末の接続処理の手順の一例を示す第２のシーケンス図である。
【図１３】データ送受信処理の手順の一例を示すシーケンス図である。
【図１４】移動端末の再接続処理の手順の一例を示す図である。
【図１５】再接続後の通信手順の一例を示すシーケンス図である。
【図１６】第３の実施の形態における移動端末の再接続手順を示す図である。
【図１７】同時接続コネクション数の遷移例を示すグラフである。
【図１８】マージンの増加例を示す図である。
【図１９】第３の実施の形態における移動端末の機能の一例を示すブロック図である。
【図２０】第３の実施の形態におけるサービスセンタ内のサーバの機能の一例を示すブロック図である。
【図２１】第３の実施の形態における移動端末の再接続処理の手順の一例を示すシーケンス図である。
【図２２】第３の実施の形態における再接続後の通信手順の一例を示すシーケンス図である。
【発明を実施するための形態】
【００１３】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第１の実施の形態〕
まず、第１の実施の形態について説明する。第１の実施の形態では、通信制御装置に接続した端末に通知する接続識別子に通信制御装置の装置識別子を含める。そして、通信切断時には、端末装置からの再接続要求で示される接続識別子に基づいて、切断前に接続されていた通信制御装置（元の通信制御装置）を判断するものである。これにより、端末装置の再接続を効率的に行うことができる。
【００１４】
図１は、第１の実施の形態に係る装置の機能構成例を示す図である。端末装置１は、ＤＨＣＰサーバ２を介してネットワーク３に接続されている。ネットワーク３には、ロードバランサ４を介して、複数の通信制御装置５，６が接続されている。通信制御装置５，６それぞれには、サーバ７，８が接続されている。
【００１５】
端末装置１は、ＤＨＣＰサーバ２に例えばＰＰＰ（Point to Point Protocol）により接続する。ＤＨＣＰサーバ２は、接続された端末装置１に、ＤＨＣＰによりアドレスを割り当てる。端末装置１は、ＤＨＣＰサーバ２により割り当てられたアドレスを用いて、ネットワーク３を介した通信を行う。
【００１６】
ロードバランサ４は、ＮＡＴ機能を有しており、グローバルアドレスにより、ネットワーク３を介した通信を行う。ロードバランサ４は、端末装置１からの接続要求または再接続要求１０を、ラウンドロビンなどの所定のアルゴリズムで、いずれかの通信制御装置５，６に振り分ける。ロードバランサ４は、接続要求または再接続要求１０の宛先のアドレスを、グローバルアドレスから、振り分け先の通信制御装置のローカルアドレスに変更し、その接続要求または再接続要求１０を振り分け先の通信制御装置に送信する。またロードバランサ４は、端末装置１と通信制御装置とが接続された後は、端末装置１と通信制御装置との間のパケットを中継する。ロードバランサ４は、端末装置１から通信制御装置へのパケットを中継する場合、パケットの宛先のグローバルアドレスを、送信先の通信制御装置のローカルアドレスに変更する。またロードバランサ４は、通信制御装置から端末装置１へのパケットを中継する場合、パケットの送信元のローカルアドレスをグローバルアドレスに変更する。
【００１７】
通信制御装置５，６は、端末装置１からの接続要求に応じて、端末装置１との間で通信接続を行う。そして通信制御装置５，６は、それぞれに接続されたサーバ７，８に、端末装置１からの処理要求を転送する。また通信制御装置５，６は、それぞれに接続されたサーバ７，８からの応答を、端末装置１に転送する。さらに通信制御装置５，６は、端末装置１との間の通信接続が、エラーなどにより切断された場合、互いに連携して、切断前に接続されていた通信制御装置と端末装置１との間で、通信の再接続を行う。
【００１８】
通信の再接続を実現するために、通信制御装置５は、生成手段５ａ、通知手段５ｂ、抽出手段５ｃ、指示手段５ｄ、および再接続手段５ｅを有する。
通知手段５ｂは、端末装置１との間で通信接続を確立すると、接続識別子９を生成する。接続識別子９は、通信制御装置５内でその通信接続を示す装置内接続識別子９ａと、通信制御装置５を示す装置識別子９ｂとを含む。この接続識別子９は、装置識別子９ｂを含むことにより、システム内で一意の識別子となっている。
【００１９】
通知手段５ｂは、生成手段５ａが生成した接続識別子９を、通信接続を確立した端末装置１に通知する。例えば通知手段５ｂは、接続識別子９を含むパケットを、端末装置１に送信する。
【００２０】
抽出手段５ｃは、他の通信制御装置６との間の通信接続が切断された端末装置１から、接続識別子９を含む再接続要求１０を受信すると、接続識別子９から装置識別子９ｂを抽出する。
【００２１】
指示手段５ｄは、抽出手段５ｃが抽出した装置識別子９ｂで示される他の通信制御装置６に、端末装置１との通信の再接続を指示する。例えば、指示手段５ｄは、端末装置１に再接続の待機指示を送信すると共に、他の通信制御装置６に端末装置１への再接続要求指示を送信する。なお再接続の待機指示を受信した端末装置１は、通信制御装置からの再接続要求の受信待ち状態となる。
【００２２】
再接続手段５ｅは、他の通信制御装置６から、端末装置１と通信の再接続指示を受けると、再接続指示に従って端末装置１との通信を再接続する。例えば再接続手段５ｅは、端末装置１への再接続要求指示を受信した場合、端末装置１に対して再接続要求を送信する。
【００２３】
通信制御装置６は、生成手段６ａ、通知手段６ｂ、抽出手段６ｃ、指示手段６ｄ、および再接続手段６ｅを有する。通信制御装置６内の各要素は、通信制御装置５内の同名の要素と同じ機能を有する。
【００２４】
なお、図１に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。
このようなシステムにおいて、端末装置１の通信制御装置５，６への接続、および再接続が行われる。例えば端末装置１がサーバ７，８で提供されているサービスを利用する場合、まず端末装置１からＤＨＣＰサーバ２に接続要求を送信する。すると、ＤＨＣＰサーバ２から端末装置１にアドレスが割り振られる。次に、端末装置１は、割り振られたアドレスを送信元とし、ロードバランサ４のグローバルアドレスを宛先として、接続要求を出力する。出力された接続要求は、ＤＨＣＰサーバ２で中継され、ネットワーク３を介してロードバランサ４に送られる。ロードバランサ４は、接続要求の送信先を、複数の通信制御装置５，６の中から選択し、選択した通信制御装置に接続要求を転送する。図１の例では、通信制御装置５に接続要求が転送されたものとする。
【００２５】
接続要求を受信した通信制御装置５では、生成手段５ａが、装置内接続識別子９ａと装置識別子９ｂとを含み、該通信接続を示す接続識別子９を生成する。装置内接続識別子９ａは、例えば通信制御装置５内で一意のセションＩＤである。また装置識別子９ｂは、例えば通信制御装置５の通信のアドレスである。生成手段５ａが生成した接続識別子９は、通知手段５ｂに渡される。
【００２６】
通知手段５ｂは、生成された接続識別子９を、端末装置１に通知する。例えば通知手段５ｂは、端末装置１のアドレスを宛先とするパケットに接続識別子９を含め、そのパケットを送信する。これにより端末装置１が接続識別子９を取得できる。
【００２７】
その後、端末装置１は、通信制御装置５を介してサーバ７と通信し、サーバ７からサービスの提供を受ける。例えば端末装置１は、サーバ７に処理要求を送信する。するとサーバ７が処理要求に応じた処理を実行し、処理結果を端末装置１に応答する。なお端末装置１からサーバ７に送信されるパケットには、例えば接続識別子９が付与される。ロードバランサ４は、端末装置１が付与する接続識別子９と通信制御装置５との対応関係を把握しており、パケットに付与された接続識別子９に基づいて転送先を判断し、そのパケットを通信制御装置５に転送する。
【００２８】
ここで、端末装置１とサーバ７との通信が終了する前に、端末装置１とＤＨＣＰサーバ２との間の通信が切断された場合を想定する。この場合、端末装置１は、ＤＨＣＰサーバ２に改めて接続し、ＤＨＣＰサーバ２からアドレスの割り当てを受ける。このとき割り当てられるアドレスは、通信の切断前と同じである保証はない。図１の例では、通信の切断前と異なるアドレスが割り当てられたものとする。端末装置１は、新たに割り当てられたアドレスを送信元として、通信の再接続要求１０を送信する。送信される再接続要求１０には、接続識別子９が含まれる。
【００２９】
再接続要求１０は、ＤＨＣＰサーバ２で中継され、ネットワーク３を介してロードバランサ４に送られる。ロードバランサ４は、再接続要求１０を受信すると、再接続要求の送信先となる通信制御装置を選択する。なお再接続要求１０には接続識別子９が含まれているものの、端末装置１のアドレスが変更されている。そのため、ロードバランサ４では、端末装置１と通信制御装置５との間の通信接続に関する再接続要求１０であるとは認識できない。そこでロードバランサ４は、再接続要求１０の転送先を、ラウンドロビンなどの所定のアルゴリズムに従って選択する。図１の例では、通信制御装置６が選択されたものとする。この場合、ロードバランサ４により、再接続要求１０が通信制御装置６に転送される。
【００３０】
再接続要求１０を受信した通信制御装置６では、抽出手段６ｃが、再接続要求１０に含まれる接続識別子９から装置識別子９ｂを抽出する。抽出された装置識別子９ｂは、指示手段６ｄに渡される。すると指示手段６ｄは、装置識別子９ｂで示される通信制御装置５に、端末装置１との通信の再接続を指示する。例えば装置識別子９ｂが通信制御装置５のアドレスであれば、指示手段６ｄは、装置識別子９ｂを宛先とするパケットにより、通信制御装置５に再接続を指示する。なお指示手段６ｄは、再接続の指示を、端末装置１に対しても行うことができる。例えば指示手段６ｄは、端末装置１に対して、再接続要求の受信待ちを指示し、通信制御装置５に対して、端末装置１への再接続要求の送信を指示する。
【００３１】
再接続の指示を受け取った通信制御装置５では、再接続手段５ｅが、指示に従って端末装置１との間の通信の再接続を行う。例えば、端末装置１への再接続要求の送信が指示された場合、再接続手段５ｅが、端末装置１に再接続要求を送信する。その場合、再接続要求の受信待ちの状態の端末装置１が再接続要求を受信し、端末装置１と通信制御装置５との間で通信の再接続の処理が進められる。
【００３２】
再接続が完了すると、端末装置１とのサーバ７との間の中断していた通信が、通信の途中から再開される。このような通信の再開は、通信の切断と再接続が行われたことを、端末装置１の利用者に感じさせずに行うことができる。例えば、端末装置１と通信制御装置５との双方で、送信済みのパケットのコピーをバッファリングする。そして通信が再接続されたとき、端末装置１と通信制御装置５とは、相手が受信したことが確認できていない送信済みのパケットを再送する。なお端末装置１での再送処理は、例えば通信を制御するミドルウェアによって行う。これにより、エラー発生による一時的な通信の切断を、アプリケーションなどの上位層の機能から隠蔽することができる。すなわちアプリケーションには通信が継続しているように見せることができる。このような再接続を行えば、アプリケーション利用者は応答が遅いと感じるだけで、通信エラーによるデータのダウンロードし直しによる待ち時間の増加や、通信データ量の増加などを起こさずにすむ。
【００３３】
このように、第１の実施の形態では、接続識別子９に装置識別子９ｂが含まれている。そのため、再接続要求１０に含まれる接続識別子９を参照するだけで、切断前に接続されていた元の通信制御装置を判断することができる。すなわち接続識別子９に装置識別子９ｂが含まれていることで、自己の管理する通信接続に関する再接続要求か否かの判断と、元の通信制御装置を検索する処理とを別々に行わずにすむ。その結果、元の通信制御装置を判断するための他の装置へのアクセスなどの処理が不要となり、再接続を効率的に行うことができる。
【００３４】
なお、上記の例では、通信制御装置から端末装置１への再接続要求のコールバックにより、再接続を行っているが、他の手順で再接続を行うこともできる。例えば、図１に示したように、通信制御装置５と端末装置１との通信が切断され、端末装置１からの再接続要求１０が通信制御装置６に送信された場合を想定する。この場合、通信制御装置６の指示手段６ｄは、例えば、端末装置１から受信した再接続要求を、通信制御装置５に転送する。通信制御装置５の再接続手段５ｅは、転送された再接続要求に応答することで端末装置１との間の、通信制御装置６を経由する伝送経路での通信の再接続を行う。以後、通信制御装置６が、再接続された端末装置１と通信制御装置５との間の通信を中継する。この例では、指示手段６ｄは、端末装置１に対して再接続に関する指示を行わない。そのため、再接続のために端末装置１の処理が軽減される。
【００３５】
通信制御装置６が通信を中継する場合、中継処理では、データの圧縮・伸張、暗号化・復号などの複雑な処理はせずにすむ。そのため、通信を中継による通信制御装置６の負荷は、少なくてすむ。なお通信制御装置６において同時接続できる最大のコネクション数が決まっている場合がある。この最大のコネクション数は、通信制御装置６の負荷が過大になるのを抑止するために設定されている。再接続による通信の中継のためにも、コネクションが接続されるが、中継処理による通信制御装置６の負荷は少ないことが分かっている。そこで、再接続による中継処理が発生したら、同時接続できる最大のコネクション数を増加させてもよい。これにより、中継処理が発生したことにより、通信制御装置６の中継以外に用いるコネクションの接続が阻害されることを抑止できる。
【００３６】
また、指示手段５ｄ，６ｄは、通信接続を指示する際に、再接続が可能か否かを、元の通信制御装置に事前に問い合わせてもよい。この場合、指示手段５ｄ，６ｄは、元の通信制御装置による再接続が可能な場合に再接続の処理を続行し、再接続が不可能であれば、再接続の処理を終了する。これにより、再接続ができない場合に、迅速にエラーを出力することができる。その結果、元の通信制御装置や端末装置１に無駄な処理を行わせずにすむ。
【００３７】
また、生成手段５ａ，６ａ、通知手段５ｂ，６ｂ、抽出手段５ｃ，６ｃ、指示手段５ｄ，６ｄ、再接続手段５ｅ，６ｅは、例えば通信制御装置５，６が有するプロセッサにより実現することができる。
【００３８】
〔第２の実施の形態〕
次に第２の実施の形態について説明する。第２の実施の形態は、移動端末とサーバとの間のセションを、効率的に再接続するものである。
【００３９】
第２の実施の形態では、移動端末の再接続ネゴシエーション要求が別サーバに送信された場合、接続されたサーバが、切断前に移動端末と通信接続を行っていたサーバ（元サーバ）へ再接続の可否（タイムアウト）を確認する。そして、元サーバが復元可能であれば、元サーバから移動端末へコールバックによるコネクション復元を行う。
【００４０】
例えば、移動端末からの再接続時、移動端末は、対象サーバのローカルＩＰが分かっていても外部からの接続は代表ＩＰアドレスでの接続しかできない。移動端末からの再接続要求はＮＡＴによりローカルＩＰアドレスに変換され、負荷分散により切断前に接続されていたサーバ以外に接続される場合がある。この場合は、再接続要求を受け付けたサーバが、セションＩＤ内のサーバＩＰアドレス情報から元サーバに接続し、移動端末からの再接続情報を、該当コネクションの再接続待ちをしている元サーバへ通知する。また再接続要求を受け付けたサーバは、クライアントへ、元サーバからの再接続待機指示を出す。移動端末はサーバからの当該コネクションの再接続を待機（accept待ち）し、着信した接続により再接続を行い、通信を再開する。
【００４１】
図２は、第２の実施の形態のシステム構成例を示す図である。移動端末１００，１００−１，・・・は、無線通信により通信キャリア内サーバ２２に接続することができる。移動端末１００は、車２１に搭載された車載機である。移動端末１００−１は、携帯電話機である。
【００４２】
通信キャリア内サーバ２２は、ネットワーク２３を介してサービスセンタＳＶのロードバランサ２５に接続されている。ロードバランサ２５は、ＮＡＴ機能により、ネットワーク２３上で使用するグローバルなＩＰアドレスと、サービスセンタＳＶ内で使用するローカルなＩＰアドレスとを、相互に変換する。
【００４３】
サービスセンタＳＶ内には、ロードバランサ２５の他に、複数のモバイル接続サーバ２００，３００，・・・と複数のアプリケーションサーバ４０，５０，・・・とが設けられている。モバイル接続サーバ２００，３００，・・・は、図１に示した通信制御装置５，６の一例である。
【００４４】
ロードバランサ２５は、移動端末からの要求を複数のモバイル接続サーバ２００，３００，・・・に分散させるコンピュータである。ロードバランサ２５は、通信キャリア内サーバ２２に接続されていると共に、ＬＡＮ（Local Area Network）２６を介して複数のモバイル接続サーバ２００，３００，・・・に接続されている。ロードバランサ２５は、移動端末１００からのメッセージを、いずれかのモバイル接続サーバに転送する。例えばロードバランサ２５は、移動端末１００から接続要求を受け取ると、ラウンドロビンによりモバイル接続サーバを選択し、選択したモバイル接続サーバに接続要求を転送する。なおロードバランサ２５は、確立されているセションを用いたメッセージについては、そのセションで接続されているサーバに、そのメッセージを転送する。
【００４５】
モバイル接続サーバ２００，３００，・・・は、移動端末１００との間でセションを確立し、通信を行うコンピュータである。モバイル接続サーバ２００，３００，・・・それぞれには、アプリケーションサーバ４０，５０，・・・が接続されている。モバイル接続サーバ２００，３００，・・・は、移動端末１００から受信したメッセージを、例えばアプリケーションサーバ４０，５０，・・・に転送する。
【００４６】
アプリケーションサーバ４０，５０，・・・は、移動端末１００からの要求に応じた処理を実行するコンピュータである。例えばアプリケーションサーバ４０，５０，・・・は、Ｗｅｂサーバ、メールサーバ、業務サーバなどである。なおアプリケーションサーバ４０，５０，・・・は、モバイル接続サーバ２００，３００，・・・と共通のコンピュータ内に設けることもできる。
【００４７】
なお移動端末１００は、図１に示した第１の実施の形態の端末装置１の一例である。通信キャリア内サーバ２２は、図１に示したＤＨＣＰサーバ２の一例である。そしてモバイル接続サーバ２００，３００は、図１に示した第１の実施の形態の通信制御装置５，６の一例である。
【００４８】
次に、移動端末１００のハードウェア構成について説明する。
図３は、移動端末のハードウェアの一構成例を示す図である。移動端末１００は、プロセッサ１０１によって装置全体が制御されている。プロセッサ１０１には、バス１０９を介してメモリ１０２と複数の周辺機器が接続されている。プロセッサ１０１は、マルチプロセッサであってもよい。プロセッサ１０１は、例えばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、またはＤＳＰ（Digital Signal Processor）である。プロセッサ１０１の機能の少なくとも一部を、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＰＬＤ（Programmable Logic Device）などの電子回路で実現してもよい。
【００４９】
メモリ１０２は、移動端末１００の主記憶装置として使用される。メモリ１０２には、プロセッサ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムが格納される。また、メモリ１０２には、プロセッサ１０１による処理に必要な各種データが格納される。
【００５０】
バス１０９に接続されている周辺機器としては、表示制御装置１０３、入力装置１０４、通信制御装置１０５、およびＧＰＳ（Global Positioning System）装置１０６がある。
【００５１】
表示制御装置１０３には、表示装置１０７が接続されている。表示制御装置１０３は、プロセッサ１０１からの命令に従って、画像を表示装置１０７の画面に表示させる。表示装置１０７は、例えば液晶表示装置である。
【００５２】
入力装置１０４は、移動端末１００に入力を行う装置である。例えば入力装置１０４には、複数のキーが設けられている。入力装置１０４は、キーの押下を検知して、押下されたキーに対応する信号をプロセッサ１０１に送信する。
【００５３】
通信制御装置１０５は、無線通信を制御する。通信制御装置１０５には、携帯電話モデム１０８が接続されている。携帯電話モデム１０８は、携帯電話網を介した通信を行う装置である。通信制御装置１０５は、携帯電話モデム１０８を介して、通信キャリア内サーバ２２と通信する。
【００５４】
ＧＰＳ装置１０６は、ＧＰＳ衛星から時刻情報を受信し、現在地の座標（緯度・経度）を算出する。ＧＰＳ装置１０６が計算した現在地の座標は、プロセッサ１０１に送信され、例えばカーナビゲーションに利用される。
【００５５】
次に、モバイル接続サーバ２００，３００，・・・のハードウェア構成について説明する。
図４は、モバイル接続サーバのハードウェアの一構成例を示す図である。モバイル接続サーバ２００は、プロセッサ２０１によって装置全体が制御されている。プロセッサ２０１には、バス２０９を介してＲＡＭ（Random Access Memory）２０２と複数の周辺機器が接続されている。プロセッサ２０１は、マルチプロセッサであってもよい。プロセッサ２０１は、例えばＣＰＵ、ＭＰＵ、またはＤＳＰである。プロセッサ２０１の機能の少なくとも一部を、ＡＳＩＣ、またはＰＬＤなどの電子回路で実現してもよい。
【００５６】
ＲＡＭ２０２は、モバイル接続サーバ２００の主記憶装置として使用される。ＲＡＭ２０２には、プロセッサ２０１に実行させるＯＳのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ２０２には、プロセッサ２０１による処理に必要な各種データが格納される。
【００５７】
バス２０９に接続されている周辺機器としては、ＨＤＤ（Hard Disk Drive）２０３、グラフィック処理装置２０４、入力インタフェース２０５、光学ドライブ装置２０６、機器接続インタフェース２０７およびネットワークインタフェース２０８，２０８ａがある。
【００５８】
ＨＤＤ２０３は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。ＨＤＤ２０３は、モバイル接続サーバ２００の補助記憶装置として使用される。ＨＤＤ２０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【００５９】
グラフィック処理装置２０４には、モニタ１１が接続されている。グラフィック処理装置２０４は、プロセッサ２０１からの命令に従って、画像をモニタ１１の画面に表示させる。モニタ１１としては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置などがある。
【００６０】
入力インタフェース２０５には、キーボード１２とマウス１３とが接続されている。入力インタフェース２０５は、キーボード１２やマウス１３から送られてくる信号をプロセッサ２０１に送信する。なお、マウス１３は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００６１】
光学ドライブ装置２０６は、レーザ光などを利用して、光ディスク１４に記録されたデータの読み取りを行う。光ディスク１４は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク１４には、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【００６２】
機器接続インタフェース２０７は、モバイル接続サーバ２００に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース２０７には、メモリ装置１５やメモリリーダライタ１６を接続することができる。メモリ装置１５は、機器接続インタフェース２０７との通信機能を搭載した記録媒体である。メモリリーダライタ１６は、メモリカード１７へのデータの書き込み、またはメモリカード１７からのデータの読み出しを行う装置である。メモリカード１７は、カード型の記録媒体である。
【００６３】
ネットワークインタフェース２０８は、ＬＡＮ２６に接続されている。ネットワークインタフェース２０８は、ＬＡＮ２６を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【００６４】
ネットワークインタフェース２０８ａは、アプリケーションサーバ４０に接続されている。ネットワークインタフェース２０８ａは、アプリケーションサーバ４０との間でデータの送受信を行う。
【００６５】
以上のようなハードウェア構成によって、第２の実施の形態の処理機能を実現することができる。なお図４にはモバイル接続サーバ２００のハードウェア構成を示したが、他のモバイル接続サーバ３００，・・・、およびアプリケーションサーバ４０，５０，・・・も同様のハードウェアで実現することができる。また、第１の実施の形態に示した通信制御装置５，６も、図４に示したモバイル接続サーバ２００と同様のハードウェアにより実現することができる。
【００６６】
なお移動端末１００やモバイル接続サーバ２００は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第２の実施の形態の処理機能を実現する。移動端末１００やモバイル接続サーバ２００に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、移動端末１００やモバイル接続サーバ２００に実行させるプログラムをメモリ１０２またはＨＤＤ２０３に格納しておくことができる。移動端末１００のプロセッサ１０１は、メモリ１０２内のプログラムを実行する。モバイル接続サーバ２００のプロセッサ２０１は、ＨＤＤ２０３内のプログラムの少なくとも一部をＲＡＭ２０２にロードし、プログラムを実行する。またモバイル接続サーバ２００に実行させるプログラムを、光ディスク１４、メモリ装置１５、メモリカード１７などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ２０１からの制御により、ＨＤＤ２０３にインストールされた後、実行可能となる。またプロセッサ２０１が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【００６７】
次に、第２の実施の形態における移動端末の再接続処理の概要について説明する。
図５は、第２の実施の形態における移動端末の再接続手順を示す図である。図５の上段には、セション切断以前の通信状態を示している。移動端末１００には、サービスセンタＳＶ内のサーバに接続する際に、まず通信キャリア内サーバ２２にＰＰＰ接続を行う。すると通信キャリア内サーバ２２から移動端末１００に、ＤＨＣＰによりＩＰアドレスが割り当てられる。図５の例では、移動端末１００にＩＰアドレス「add#1」が割り当てられている。
【００６８】
ロードバランサ２５は、グローバルアドレスとしてＩＰアドレス「add#2」が設定されている。移動端末１００は、ＩＰアドレス「add#2」を宛先とした接続要求を送信する。その接続要求は、ロードバランサ２５で受信される。ロードバランサ２５は、所定のアルゴリズムによって複数のモバイル接続サーバのうちの１台を選択し、接続要求を転送する。例えば接続要求がモバイル接続サーバ２００に転送されたものとする。すると接続要求を受信したモバイル接続サーバ２００と移動端末１００との間でセションが確立される。
【００６９】
確立されたセションには、サービスセンタＳＶ内で一意のセションＩＤ３１が付与される。セションＩＤ３１には、セション管理テーブル番号とサーバアドレスが含まれる。モバイル接続サーバ２００のＩＰアドレスが「add#3」であれば、セションＩＤ３１にＩＰアドレス「add#3」が含まれる。移動端末１００とモバイル接続サーバ２００とは、セションＩＤ３１を付与したメッセージを交換することで、確立したセションによる通信を行う。
【００７０】
移動端末１００は、確立されたセションを介して、アプリケーションサーバ４０への処理要求を送信する。その処理要求はモバイル接続サーバ２００からアプリケーションサーバ４０に転送される。アプリケーションサーバ４０は、処理要求に応じた処理を実行し、処理結果を移動端末１００に応答する。移動端末１００とアプリケーションサーバ４０との間で送受信されるメッセージは、例えばカプセル化され、例えば移動端末１００とモバイル接続サーバ２００との間のセションを介して送信される。
【００７１】
ここで、移動端末１００とモバイル接続サーバ２００との間のセションを正常終了する前に、移動端末１００と通信キャリア内サーバ２２との通信が途絶えたものとする。モバイル接続サーバ２００では、移動端末１００との通信が途絶えると、通信処理を中断し、所定の期間、セション管理テーブルを保留状態で保持する。移動端末１００は、モバイル接続サーバ２００がセション管理テーブルを保持している間に、モバイル接続サーバ２００との間で再接続を行えば、中断した通信処理の続きから実行することができる。
【００７２】
そこで、移動端末１００とモバイル接続サーバ２００との間の再接続処理が行われる。図５の下段に、再接続処理の手順を示している。
移動端末１００は、携帯電話網を介して通信キャリア内サーバ２２に再度、ＰＰＰ接続を行う。このとき、通信キャリア内サーバ２２は、改めて移動端末１００にＤＨＣＰによりアドレスを割り当てる。図５の例では、移動端末１００に、切断前とは別のＩＰアドレス「add#5」が割り当てられている。
【００７３】
移動端末１００は、ＩＰアドレス「add#2」を宛先とした再接続要求を送信する。再接続要求には、中断したセションのセションＩＤ３１が含まれる。その接続要求は、ロードバランサ２５で受信される。ロードバランサ２５は、所定のアルゴリズムによって複数のモバイル接続サーバのうちの１台を選択し、接続要求を転送する。例えば再接続要求が、モバイル接続サーバ３００に転送されたものとする（ステップＳ１１）。
【００７４】
再接続要求を受信したモバイル接続サーバ３００は、付与されているセションＩＤ３１からサーバアドレスを抽出する。そしてモバイル接続サーバ３００は、抽出したアドレスにより、セションＩＤの対応するセションを保留しているモバイル接続サーバを判断する。例えばモバイル接続サーバ３００のＩＰアドレスが「add#4」であるものとする。図５の例では、再接続要求に示されるセションＩＤ３１から抽出したＩＰアドレスは「add#3」である。するとモバイル接続サーバ３００は、正しい再接続先がモバイル接続サーバ２００であると判断する。そしてモバイル接続サーバ３００は、正しい再接続先であるモバイル接続サーバ２００に、再接続確認要求を送信する（ステップＳ１２）。再接続確認要求は、再接続が可能かどうかの確認を要求するメッセージである。再接続確認要求には、例えば、移動端末１００のＩＰアドレスや、再接続要求のヘッダ情報などが含まれる。なお再接続確認要求に、クライアントＩＤ（移動端末固有の識別子）、セションＩＤ、コネクションＩＤなどを含めることができる。
【００７５】
モバイル接続サーバ２００は、再接続確認要求に応じて、再接続が可能か否かを判断する。例えばモバイル接続サーバ２００は、移動端末１００に対応するセション管理テーブルが保持されていれば、再接続可能と判断する。再接続が可能であれば、モバイル接続サーバ２００は、再接続ＯＫの応答を、モバイル接続サーバ３００に送信する（ステップＳ１３）。
【００７６】
モバイル接続サーバ３００は、再接続ＯＫの応答を受信すると、移動端末１００に対して再接続待機通知を送信する（ステップＳ１４）。モバイル接続サーバ３００は、再接続待機通知の送信後、移動端末１００との間の通信を切断する。
【００７７】
移動端末１００は、再接続待機通知を受信すると、再接続要求の待ち状態で待機する。他方、再接続ＯＫの応答を送信したモバイル接続サーバ２００は、移動端末１００に対して再接続要求を送信する（ステップＳ１５）。すると、移動端末１００とモバイル接続サーバ２００との間でコネクションが再接続される。そして、再接続されたコネクションを用いて、移動端末１００とモバイル接続サーバ２００との間のセションの通信が回復する。その後、移動端末１００とアプリケーションサーバ４０との間で通信が行われる（ステップＳ１６）。
【００７８】
このようにして、移動端末１００を、元のモバイル接続サーバ２００に再接続することができる。以下に、図５に示した処理を実現するための各装置の機能について説明する。
図６は、移動端末の機能を示すブロック図である。移動端末１００は、セション情報記憶部１１０、通信制御部１２０、クライアントアプリケーション１４１、およびＡＰＩ（Application Program Interface）ライブラリ１４２を有している。
【００７９】
セション情報記憶部１１０は、モバイル接続サーバとの間で確立したセションの情報を記憶する。例えば、メモリ１０２内の記憶領域の一部が、セション情報記憶部１１０として使用される。通信制御部１２０は、セション情報記憶部１１０に格納されたセション情報を用い、モバイル接続サーバとの通信を制御する。クライアントアプリケーション１４１は、サービスセンタＳＶ内のアプリケーションサーバと連携して、ユーザの要求に応じた処理を実行する。クライアントアプリケーション１４１は、アプリケーションソフトウェアを移動端末１００が実行することで実現される。ＡＰＩライブラリ１４２は、クライアントアプリケーション１４１と通信制御部１２０との間の通信に使用する関数の集合である。
【００８０】
通信制御部１２０は、ＡＰＩ部１２１、プロトコル生成部１２２、プロトコル解析部１２３、圧縮・伸張部１２４、暗号化・復号部１２５、サーバ通信部１２６、コネクション管理部１２７、通信状態監視部１２８、送信データ処理部１２９、受信データ処理部１３０、および再接続受信部１３１を含んでいる。なお通信制御部１２０は、例えば移動端末１００のミドルウェアとして動作する。
【００８１】
ＡＰＩ部１２１は、ＢＳＤ（Berkeley Software Distribution）におけるソケットベースのインタフェースをクライアントアプリケーションに提供する。
プロトコル生成部１２２は、コネクション管理部１２７を参照し、モバイル接続サーバへ送信する通信プロトコルのヘッダを、送信バッファの先頭に生成する。なお、ユーザデータがない通信についてはプロトコル生成部１２２で作成されたパケットが、データなしで送信される。ユーザデータがない通信とは、接続ネゴシエーション・切断ネゴシエーション・再接続ネゴシエーションなどである。ユーザデータがある通信の場合は、プロトコル生成部１２２は、生成したヘッダに続けて、ユーザデータの圧縮の要否・暗号化の要否などの情報を設定する。
【００８２】
プロトコル解析部１２３は、モバイル接続サーバから受信した通信プロトコルのヘッダを解析する。プロトコル解析部１２３は、プロトコル種別によりサーバ・クライアント間の通信環境に関する処理情報であることが示されていた場合、その処理情報に従った処理を実行する。またプロトコル解析部１２３は、ユーザデータ受信の場合において、ヘッダに続けて設定されている情報に基づいて、ユーザデータの圧縮の有無や暗号化の有無を判断する。プロトコル解析部１２３は、判断した圧縮の有無や暗号化の有無を、受信データ処理部１３０に通知することで、ユーザデータの解凍や復号処理を実行させる。
【００８３】
圧縮・伸張部１２４は、ユーザデータの圧縮または解凍（伸張）を行う。
暗号化・復号部１２５は、ユーザデータの暗号化または復号を行う。
サーバ通信部１２６は、モバイル接続サーバへのデータ送信を行う。またサーバ通信部１２６は、モバイル接続サーバから送られた受信データを、受信バッファへ格納する。
【００８４】
コネクション管理部１２７は、モバイル接続サーバとの間の通信状態（未接続、接続、異常切断（再接続待ち）、切断）を管理する。コネクション管理部１２７は、再接続待ちがある場合は通信状態管理部からのＰＰＰ状態遷移による接続可能状態の通知を受け取り、再接続処理を行う。再接続処理とは、ネゴシエーション情報（暗号・圧縮の有無など）の交換処理や、送受信済パケットのシーケンス番号、受信済データ長などのサーバと同期処理などである。
【００８５】
通信状態監視部１２８は、ＰＰＰの状態を監視し、ＰＰＰの接続完了・切断中・切断完了・エラー切断などを検知する。そして通信状態監視部１２８は、検知した通信状態を、コネクション管理部１２７に通知する。
【００８６】
送信データ処理部１２９は、プロトコル生成部１２２の作成したヘッダに、送信バッファ内のユーザデータと送信データ長を設定し、データをサーバに送信する。なお送信データ処理部１２９は、ユーザデータを圧縮する場合、圧縮・伸張部１２４を呼び出して、ユーザデータを圧縮させる。また送信データ処理部１２９は、ユーザデータを暗号化する場合、暗号化・復号部１２５を呼び出して、ユーザデータを暗号化させる。
【００８７】
受信データ処理部１３０は、受信したデータをプロトコル解析部１２３に渡す。そして受信データ処理部１３０は、ヘッダの解析結果により得られたコネクションに関する情報を、コネクション管理部１２７に渡す。また受信データ処理部１３０は、ヘッダの解析結果により、ユーザデータが圧縮されていることが判明した場合、圧縮・伸張部１２４を呼び出して、ユーザデータを解凍させる。また受信データ処理部１３０は、ヘッダの解析結果により、ユーザデータが暗号化されていることが判明した場合、暗号化・復号部１２５を呼び出して、ユーザデータを復号させる。そして受信データ処理部１３０は、受信バッファ内のデータから得られた平文のデータを、クライアントアプリケーション１４１への返却バッファに展開する。
【００８８】
再接続受信部１３１は、通信切断後の再接続処理で、接続先となるモバイル接続サーバが切断前と異なった場合に、再接続ネゴシエーションを受け付ける。再接続受信部１３１は、例えば、accept()処理の再接続ネゴシエーション応答、既存の再接続時のデータ同期処理を行う。
【００８９】
次に、セション情報記憶部１１０に格納されるセション情報について詳細に説明する。
図７は、移動端末のセション情報記憶部のデータ構造の一例を示す図である。セション情報記憶部１１０には、セション管理テーブル１１１が格納されている。セション管理テーブル１１１には、クライアント側のセション情報が設定されている。セション管理テーブル１１１には、クライアントＩＤ、サーバＩＰアドレス、セションＩＤ、送信済パケット番号、受信確認済パケット番号、受信済パケット番号、受信済データ長、受信バッファアドレス、送信済データコピーバッファアドレス、およびソケットディスクリプタ番号が含まれている。
【００９０】
クライアントＩＤは、移動端末１００のハードウェア固有の識別子である。サーバＩＰアドレスは、セションを接続した相手のモバイル接続サーバのＩＰアドレスである。セションＩＤは、接続したセションの識別子である。送信済パケット番号は、セション内で最後に送信したパケットの識別番号（パケット番号）である。受信確認済パケット番号は、セション内で送信したパケットのうち、モバイル接続サーバでの受信が確認できた最後のパケットの識別番号である。受信済パケット番号は、セション内で最後に受信したパケットの識別番号である。受信済データ長は、受信したデータの長さ（データ量）である。受信バッファアドレスは、受信したデータを格納するバッファのアドレスである。送信済データコピーバッファアドレスは、送信したデータのコピーを格納するバッファのアドレスである。ソケットディスクリプタ番号は、ソケットを介した通信内容を格納するファイルの管理番号である。
【００９１】
次に、サービスセンタＳＶ内のサーバの機能について説明する。
図８は、サービスセンタ内のサーバの機能を示す図である。アプリケーションサーバ４０は、サーバアプリケーション４１とＴＣＰ（Transmission Control Protocol）／ＩＰ通信部４２とを有している。サーバアプリケーション４１は、移動端末１００からの要求に応じて処理を実行する。ＴＣＰ／ＩＰ通信部４２は、モバイル接続サーバ２００によって構築された移動端末１００との間の通信環境を利用して、移動端末１００と通信する。
【００９２】
モバイル接続サーバ２００は、セション情報記憶部２１０と通信制御部２２０とを有している。
セション情報記憶部２１０は、移動端末１００との間で確立したセションの情報を記憶する。例えば、ＲＡＭ２０２内の記憶領域の一部が、セション情報記憶部２１０として使用される。通信制御部２２０は、アプリデータ送受信部２２１、プロトコル生成部２２２、プロトコル解析部２２３、圧縮・伸張部２２４、暗号化・復号部２２５、クライアント通信部２２６、コネクション管理部２２７、通信状態監視部２２８、送信データ処理部２２９、受信データ処理部２３０、サーバ連携部２３１、および再接続送信部２３２を有する。
【００９３】
アプリデータ送受信部２２１は、アプリケーションサーバ４０へ、移動端末１００から送信されたデータを送信する。またアプリデータ送受信部２２１は、アプリケーションサーバ４０から、移動端末１００に送信するデータを受信する。
【００９４】
プロトコル生成部２２２は、コネクション管理部２２７を参照し、移動端末１００へ送信する通信プロトコルのヘッダを、送信バッファの先頭に生成する。なお、ユーザデータがない通信についてはプロトコル生成部２２２で作成されたパケットが、データなしで送信される。ユーザデータがある通信の場合は、プロトコル生成部２２２は、生成したヘッダに続けて、ユーザデータの圧縮の要否・暗号化の要否などの情報を設定する。
【００９５】
プロトコル解析部２２３は、移動端末１００から受信した通信プロトコルのヘッダを解析する。プロトコル解析部２２３は、プロトコル種別によりサーバ・クライアント間の通信環境に関する処理情報であることが示されていた場合、その処理情報に従った処理を実行する。またプロトコル解析部２２３は、ユーザデータ受信の場合において、ヘッダに続けて設定されている情報に基づいて、ユーザデータの圧縮の有無や暗号化の有無を判断する。プロトコル解析部２２３は、判断した圧縮の有無や暗号化の有無を、受信データ処理部２３０に通知することで、ユーザデータの解凍や復号処理を実行させる。
【００９６】
圧縮・伸張部２２４は、ユーザデータの圧縮または解凍（伸張）を行う。
暗号化・復号部２２５は、ユーザデータの暗号化または復号を行う。
クライアント通信部２２６は、移動端末１００へのデータ送信を行う。またクライアント通信部２２６は、移動端末１００から送られた受信データを、受信バッファへ格納する。
【００９７】
コネクション管理部２２７は、移動端末１００との間の通信状態（未接続、接続、異常切断（再接続待ち）、切断）を管理する。コネクション管理部２２７は、再接続待ちがある場合は通信状態管理部からのＰＰＰ状態遷移による接続可能状態の通知を受け取り、再接続処理を行う。
【００９８】
通信状態監視部２２８は、ＰＰＰの状態を監視し、ＰＰＰの接続完了・切断中・切断完了・エラー切断などを検知する。そして通信状態監視部２２８は、検知した通信状態を、コネクション管理部２２７に通知する。
【００９９】
送信データ処理部２２９は、プロトコル生成部２２２の作成したヘッダに、送信バッファ内のユーザデータと送信データ長を設定し、データをサーバに送信する。なお送信データ処理部２２９は、ユーザデータを圧縮する場合、圧縮・伸張部２２４を呼び出して、ユーザデータを圧縮させる。また送信データ処理部２２９は、ユーザデータを暗号化する場合、暗号化・復号部２２５を呼び出して、ユーザデータを暗号化させる。
【０１００】
受信データ処理部２３０は、受信したデータをプロトコル解析部２２３に渡す。そして受信データ処理部２３０は、ヘッダの解析結果により得られたコネクションに関する情報を、コネクション管理部２２７に渡す。また受信データ処理部２３０は、ヘッダの解析結果により、ユーザデータが圧縮されていることが判明した場合、圧縮・伸張部２２４を呼び出して、ユーザデータを解凍させる。また受信データ処理部２３０は、ヘッダの解析結果により、ユーザデータが暗号化されていることが判明した場合、暗号化・復号部２２５を呼び出して、ユーザデータを復号させる。そして受信データ処理部２３０は、受信バッファ内のデータから得られた平文のデータを、アプリケーションサーバ４０への返却バッファに展開する。
【０１０１】
サーバ連携部２３１は、再接続処理で接続された移動端末１００から送られた、元のモバイル接続サーバを示すアドレスが、自分のアドレスではなかった場合、本来接続すべき元のモバイル接続サーバに再接続ネゴシエーション情報を転送する。再接続ネゴシエーション情報には、例えば移動端末１００のＩＰアドレスが付加される。サーバ連携部２３１は、元のモバイル接続サーバが、移動端末１００と再接続可能な場合は、移動端末１００に再接続受付待機指示を送信する。他方サーバ連携部２３１は、元のモバイル接続サーバが、移動端末１００と再接続不可能な場合は、移動端末１００に、再接続エラー（タイムアウト）を送信する。なお、モバイル接続サーバ２００と元のモバイル接続サーバとの電文のやり取りは、１往復で終了（close()）する。
【０１０２】
再接続送信部２３２は、他のモバイル接続サーバから再接続ネゴシエーション情報を受け取った場合、再接続ネゴシエーション情報に示される移動端末１００へ再接続ネゴシエーション要求を行い、再接続後に通信状態の同期を取る。
【０１０３】
なお、図８には、モバイル接続サーバ２００の機能を示したが、他のモバイル接続サーバ３００，・・・もモバイル接続サーバ２００と同様の機能を有している。
次に、モバイル接続サーバ２００のセション情報記憶部２１０に格納されるセション情報について、詳細に説明する。
【０１０４】
図９は、モバイル接続サーバのセション情報記憶部のデータ構造の一例を示す図である。セション情報記憶部２１０には、セション管理テーブル２１１が格納されている。セション管理テーブル２１１は、サーバ側のセション情報が設定されている。セション情報には、セション管理テーブル番号、クライアントＩＤ、クライアントＩＰアドレス、セションＩＤ、送信済パケット番号、受信確認済パケット番号、受信済パケット番号、受信済データ長、受信バッファアドレス、送信済データコピーバッファアドレス、およびソケットディスクリプタ番号が含まれている。セション管理テーブル番号、クライアントＩＤ、サーバＩＰアドレス以外の情報は、図７に示した移動端末１００内のセション情報における同名の情報と同種の情報である。
【０１０５】
セション管理テーブル番号は、モバイル接続サーバが確立したセションそれぞれに対応付けて生成されたセション管理テーブルの識別番号である。
クライアントＩＤは、セションを接続した相手の移動端末のハードウェア固有の識別子である。クライアントＩＰアドレスは、セションを接続した相手の移動端末のＩＰアドレスである。
【０１０６】
第２の実施の形態では、移動端末１００とモバイル接続サーバとの間で受け渡されるパケットのセションＩＤのフィールドに、モバイル接続サーバのローカルのＩＰアドレスが設定される。
【０１０７】
図１０は、セションＩＤのフィールド内のデータ構造の一例を示す図である。セションＩＤフィールド６０は、８バイトの領域である。セションＩＤフィールド６０の前半に４バイトの記憶領域６１には、セション管理テーブル番号が設定される。またセションＩＤフィールド６０の後半の４バイトの記憶領域６２には、セションを確立したモバイル接続サーバのローカルのＩＰアドレスが設定される。なおセション管理テーブルは、１つのセションに１つ生成されるため、セション管理テーブル番号は、モバイル接続サーバ内でセションを一意に示す番号である。セション管理テーブル番号と、モバイル接続サーバのＩＰアドレスとの組み合わせにより、セションＩＤフィールド６０内の情報（セションＩＤ）によって、セションをシステム内で一意に識別可能となる。
【０１０８】
このように、第２の実施の形態では、セションＩＤ内に、接続元のモバイル接続サーバを特定できる情報が含まれる。セションＩＤは、移動端末１００の接続時のネゴシエーションで、モバイル接続サーバから、移動端末１００に通知される。通知されるセションＩＤは、システム内で一意であると共に、モバイル接続サーバを一意に特定することができる。
【０１０９】
なお、モバイル接続サーバを仮想マシン上に構築することで、モバイル接続サーバ数を動的に増減させることができる。このように、仮想環境でモバイル接続サーバが動的に増設される場合においても、同じ構成のモバイル接続サーバが複数起動されるだけであり、モバイル接続サーバ数の増減に応じて、セションＩＤなどの定義を変更することは不要である。
【０１１０】
以上のような構成のシステムにより、移動端末１００のモバイル接続サーバへの接続、および切断後の再接続が行われる。以下、移動端末１００とモバイル接続サーバとの接続、および再接続処理について詳細に説明する。
【０１１１】
図１１は、移動端末の接続処理の手順の一例を示す第１のシーケンス図である。
［ステップＳ１０１］移動端末１００のクライアントアプリケーション１４１は、通信制御部１２０との間で、通信の初期化（init()）処理を行う。
【０１１２】
［ステップＳ１０２］クライアントアプリケーション１４１は、サービスセンタＳＶを代表するグローバルのＩＰアドレスを取得するため、ＤＮＳ参照によるＩＰアドレスの取得要求（gethostbyname()）を、通信制御部１２０に送信する。
【０１１３】
［ステップＳ１０３］通信制御部１２０は、通信状態を確認するため、移動端末１００のＯＳ１５０に対してＰＰＰ発呼を要求する。
［ステップＳ１０４］ＯＳ１５０は、通信キャリア内サーバ２２に対してダイヤルアップで接続する。
【０１１４】
［ステップＳ１０５］通信キャリア内サーバ２２は、移動端末１００を認証し、ＤＨＣＰによるＩＰアドレスの割当を行う。通信キャリア内サーバ２２からは、割り当てられたＩＰアドレスが応答される。通信キャリア内サーバ２２からの応答は、移動端末１００で受信され、ＯＳ１５０を介して通信制御部１２０に渡される。これにより、移動端末１００から通信キャリア内サーバ２２へのＰＰＰのダイヤルアップ接続が完了する。
【０１１５】
［ステップＳ１０６］移動端末１００の通信制御部１２０は、ＰＰＰ接続完了したことで、通信可能と判断する。そして通信制御部１２０は、ＤＨＣＰで割り当てられたＩＰアドレスに加え、ゲートウェイ（ＧＷ）アドレス、ＤＮＳアドレスなどの情報を用いて、サービスセンタＳＶのグローバルアドレスを取得する。例えば、通信制御部１２０は、サービスセンタＳＶのドメイン名を指定したＤＮＳ参照要求を出力する。なお、ゲートウェイ（ＧＷ）アドレスとＤＮＳアドレスは、予め移動端末１００に設定しておくことができる。
【０１１６】
［ステップＳ１０７］図１１の例では、ロードバランサ２５が、ＤＮＳサーバを兼ねている。そこで、ロードバランサ２５が、移動端末１００からのＤＮＳ参照に対して、サービスセンタＳＶのグローバルＩＰアドレスを応答する。
【０１１７】
［ステップＳ１０８］ロードバランサ２５から応答されたグローバルＩＰアドレスは、通信制御部１２０を介してクライアントアプリケーション１４１に転送される。これによりクライアントアプリケーション１４１は、サーバＩＰアドレスを取得できる。なお取得したサーバＩＰアドレスは、通信制御部１２０内で保持される。そのため、サーバＩＰアドレスの取得は、電源ＯＮ後の最初の通信の際にのみ行われる。
【０１１８】
サーバＩＰアドレス（グローバルＩＰアドレス）を取得した後、移動端末１００とモバイル接続サーバとの通信のネゴシエーションを行い、クライアントアプリケーション１４１とアプリケーションサーバ４０との通信を可能とする。ネゴシエーションとは、通信速度、エラー訂正機能、データ圧縮手順などを通知して、通信環境を設定する処理である。
【０１１９】
図１２は、移動端末の接続処理の手順の一例を示す第２のシーケンス図である。
［ステップＳ１１１］移動端末１００のクライアントアプリケーション１４１は、通信制御部１２０にソケットの生成を要求する（socket()）。
【０１２０】
［ステップＳ１１２］通信制御部１２０は、コネクション管理情報を作成して、仮想ソケットＩＤをクライアントアプリケーション１４１に応答する。
［ステップＳ１１３］クライアントアプリケーション１４１は、アプリケーションサーバ接続要求を送信する（connect()）。
【０１２１】
［ステップＳ１１４］通信制御部１２０は、接続ネゴシエーション要求を、サービスセンタＳＶのグローバルＩＰアドレス宛に送信する。接続ネゴシエーション要求には、例えばクライアントＩＤ（CLIENT001）が含まれる。
【０１２２】
［ステップＳ１１５］接続ネゴシエーション要求は、サービスセンタＳＶのロードバランサ２５に渡される。そしてロードバランサ２５は、ラウンドロビンなどの所定のアルゴリズムに従って、接続ネゴシエーション要求を、複数のモバイル接続サーバのうちの１台に振り分ける。図１２の例では、接続ネゴシエーション要求は、モバイル接続サーバ２００に振り分けられている。接続ネゴシエーション要求は、振り分け先のモバイル接続サーバ２００に転送される。
【０１２３】
［ステップＳ１１６］モバイル接続サーバ２００では、移動端末１００との間の接続ネゴシエーション、プロトコル解析、およびアプリケーションサーバ接続処理が行われる。アプリケーションサーバ接続処理により、モバイル接続サーバ２００から、データの受入待ち状態（accept()待ち）のアプリケーションサーバ４０に、接続要求が送信される。
【０１２４】
［ステップＳ１１７］アプリケーションサーバ４０は、接続可能であれば、接続ＯＫの応答をモバイル接続サーバ２００に送信する。
［ステップＳ１１８］モバイル接続サーバ２００は、接続ネゴシエーション応答を移動端末１００に送信する。接続ネゴシエーション応答には、例えばセションＩＤ（“000020000A0A0A64）が含まれる。セションＩＤは、サービスセンタＳＶ全体でセションを一意に識別可能な識別子である。またセションＩＤの前半４バイトは、セション管理テーブル番号であり、セションＩＤの後半４バイトは、モバイル接続サーバ２００のローカルのＩＰアドレスである。
【０１２５】
［ステップＳ１１９］移動端末１００の通信制御部１２０は、接続完了と判断し、クライアントアプリケーション１４１に接続完了の応答を送信する。この際、通信制御部１２０は、クライアント側のセション管理テーブル１１１を生成し、セション情報記憶部１１０に格納する。
【０１２６】
このようにして、移動端末１００とモバイル接続サーバ２００との間でセションが確立し、確立されたセションを介して、クライアントアプリケーション１４１とアプリケーションサーバ４０とが通信可能となる。その後、クライアントアプリケーション１４１とアプリケーションサーバ４０との間でデータの送受信が行われる。
【０１２７】
図１３は、データ送受信処理の手順の一例を示すシーケンス図である。図１３には、アプリケーションサーバ４０からクライアントアプリケーション１４１へのデータの送信中に、ＰＰＰのダイヤルアップ接続が切断された場合の例が示されている。
【０１２８】
［ステップＳ１２１］クライアントアプリケーション１４１は、ソケットを用いて、データ送信のクライアントリクエストを出力する（send()）。
［ステップＳ１２２］通信制御部１２０は、送信するユーザデータに通信ヘッダを付加して、パケットをモバイル接続サーバ２００に送信する。この際、通信制御部１２０からクライアントアプリケーション１４１へは、送信したデータ長が復帰値として応答される。
【０１２９】
［ステップＳ１２３］モバイル接続サーバ２００は、パケットを受信するとプロトコルを解析し、ユーザデータの伸張や復号を行う。その後、モバイル接続サーバ２００は、ユーザデータをアプリケーションサーバ４０に送信する。
【０１３０】
［ステップＳ１２４］アプリケーションサーバ４０は、ユーザデータを受信する。
ステップＳ１２１〜Ｓ１２４と同様の処理が、クライアントアプリケーション１４１が送信するすべてのデータの送信が完了するまで繰り返される。
【０１３１】
［ステップＳ１２５］クライアントアプリケーション１４１がデータ送信完了後、アプリケーションサーバ４０から応答データを受け取る場合、クライアントアプリケーション１４１は、応答データ受信要求を出力する（recv()）。
【０１３２】
［ステップＳ１２６］通信制御部１２０は、応答データ受信要求に応じて、データ受信待ちの状態となる。
［ステップＳ１２７］アプリケーションサーバ４０は、応答データを送信する。
【０１３３】
［ステップＳ１２８］送信された応答データを受信したモバイル接続サーバ２００は、通信制御部１２０との間の通信プロトコルに沿ったパケットを生成し、そのパケットにより応答データを移動端末１００に送信する。
【０１３４】
［ステップＳ１２９］移動端末１００の通信制御部１２０は、クライアントアプリケーション１４１宛のパケットを受信し、そのパケットのプロトコルを解析する。なお、プロトコル解析中は、クライアントアプリケーション１４１宛のパケットを、通信制御部１２０が一時的に預かっている状態である。解析が終了すると、通信制御部１２０は、パケットに含まれている応答データを、パケットの宛先であるクライアントアプリケーション１４１に返却する。この際、復帰値として受信長（受信したデータのデータ長）が設定される。例えば通信制御部１２０は、クライアントアプリケーション１４１が読み出し可能な返却バッファに、受信したデータと受信長とを書き込む。
【０１３５】
ステップＳ１２５〜Ｓ１２９と同様の処理が、アプリケーションサーバ４０が送信するすべての応答データの送信が完了するまで繰り返される。そのとき移動端末１００における携帯電話網の電波状況の悪化などにより、移動端末１００と通信キャリア内サーバ２２との間のＰＰＰ接続が切断されたものとする。その場合、以下のような処理が行われる。
【０１３６】
［ステップＳ１３０］移動端末１００のクライアントアプリケーション１４１は、応答データ受信要求を出力する。
［ステップＳ１３１］通信制御部１２０は、データ受信待ち状態となる。
【０１３７】
［ステップＳ１３２］アプリケーションサーバ４０は、応答データを送信する。
［ステップＳ１３３］モバイル接続サーバ２００は、応答データを含むパケットを生成し、データを送信する。しかし、移動端末１００と通信キャリア内サーバ２２との間の通信が切断されているため、パケットは移動端末１００に届かない。
【０１３８】
［ステップＳ１３４］一方、通信制御部１２０は、ＰＰＰ切断エラーを検出する。
このように、移動端末１００は、携帯電話網における電波状況に応じて、通信が切断することがある。この場合、通信の再接続処理が実行される。
【０１３９】
図１４は、移動端末の再接続処理の手順の一例を示す図である。
［ステップＳ１４１］通信制御部１２０は、通信復旧待機状態となり、移動端末１００のＯＳ１５０に対してＰＰＰ発呼を要求する。
【０１４０】
［ステップＳ１４２］ＯＳ１５０は、通信キャリア内サーバ２２に対してダイヤルアップで接続する。
［ステップＳ１４３］通信キャリア内サーバ２２は、移動端末１００を認証し、ＤＨＣＰによるＩＰアドレスの割当を行う。通信キャリア内サーバ２２からは、割り当てられたＩＰアドレスが応答される。通信キャリア内サーバ２２からの応答は、移動端末１００で受信され、ＯＳ１５０を介して通信制御部１２０に渡される。これにより、移動端末１００から通信キャリア内サーバ２２へのＰＰＰのダイヤルアップ接続が完了する。なお、このとき割り当てられるＩＰアドレスは、切断前に割り当てられていたＩＰアドレスと同じとは限らない。
【０１４１】
［ステップＳ１４４］移動端末１００の通信制御部１２０は、ＰＰＰ接続完了したことで、通信可能と判断する。そして通信制御部１２０は、再接続ネゴシエーション要求を、サービスセンタＳＶのグローバルＩＰアドレス宛に送信する。なおサービスセンタＳＶのグローバルＩＰアドレスには、図１１のステップＳ１０８で取得したアドレスが使用される。再接続ネゴシエーション要求には、例えばクライアントＩＤやセションＩＤが含まれる。セションＩＤは、ステップＳ１１９で取得した接続ネゴシエーション応答に示されたセションＩＤである。そのセションＩＤは、セション管理テーブル１１１から取得することができる。
【０１４２】
また通信制御部１２０は、再接続ネゴシエーション要求に、受信済パケット番号や受信済データ長を含めることができる。受信済パケット番号や受信済データ長は、セション管理テーブル１１１から取得できる。受信済パケット番号や受信済データ長を再接続ネゴシエーション要求に含めることで、途中で途絶えた通信を、途中から再開することが可能となる。
【０１４３】
［ステップＳ１４５］再接続ネゴシエーション要求は、サービスセンタＳＶのロードバランサ２５に渡される。そしてロードバランサ２５は、ラウンドロビンなどの所定のアルゴリズムに従って、再接続ネゴシエーション要求を、複数のモバイル接続サーバのうちの１台に振り分ける。図１２の例では、再接続ネゴシエーション要求は、モバイル接続サーバ３００に振り分けられている。再接続ネゴシエーション要求は、振り分け先のモバイル接続サーバ３００に転送される。
【０１４４】
［ステップＳ１４６］モバイル接続サーバ３００は、再接続ネゴシエーション要求を受信すると、再接続先が正しいか否かを判断する。例えばモバイル接続サーバ３００内のプロトコル解析部は、再接続ネゴシエーション要求に含まれるセションＩＤを参照し、そのセションＩＤに対応するセション管理テーブルを保持しているか否かを判断する。該当するセション管理テーブルを保持していなければ、モバイル接続サーバ３００内のプロトコル解析部は、サーバ違いであることをサーバ連携部に通知する。すると、サーバ連携部が、セションＩＤに含まれるサーバのＩＰアドレスにより、元はモバイル接続サーバ２００との間で確立したセションであることを認識する。そしてサーバ連携部は、モバイル接続サーバ２００に再接続可能か否かの確認要求を送信する。確認要求には、クライアントＩＰアドレス、クライアントＩＤ、セションＩＤなどが含まれる。
【０１４５】
［ステップＳ１４７］モバイル接続サーバ２００は、再接続が可能かどうかを判断する。例えばモバイル接続サーバ２００のサーバ連携部２３１は、確認要求に含まれるセションＩＤに対応するセション管理テーブルを保持しているか否かを判断する。該当するセション管理テーブルを保持していれば、再接続が可能であると判断する。なお通信切断から所定時間以上経過すると、切断された通信に対応するセション管理テーブルが削除される場合がある。確認要求を受け取ったときに既にセション管理テーブルが削除されている場合、サーバ連携部２３１は、再接続不可能と判断する。サーバ連携部２３１は、再接続可能かどうかの判断結果を、モバイル接続サーバ３００に送信する。なお、図１４の例では、再接続可能と判断したものとする。
【０１４６】
［ステップＳ１４８］モバイル接続サーバ３００は、モバイル接続サーバ２００からの応答を受けて、移動端末１００に再接続待機指示を送信する。例えばモバイル接続サーバ３００のサーバ連携部が、移動端末１００に再接続待機指示を送信する。なお、モバイル接続サーバ２００から再接続不可能の応答があった場合、モバイル接続サーバ３００のサーバ連携部は、再接続エラー（タイムアウト）のメッセージを、移動端末１００に送信することとなる。
【０１４７】
［ステップＳ１４９］移動端末１００の通信制御部１２０内の再接続受信部１３１は、サーバ違いによる再接続待機指示を受け取ると、再接続ネゴシエーション要求の受信待ち状態となる（accept()）。
【０１４８】
［ステップＳ１５０］一方、モバイル接続サーバ２００の再接続送信部２３２は、再接続ネゴシエーション要求を移動端末１００に送信する。再接続ネゴシエーション要求には、移動端末１００のクライアントＩＤや、移動端末１００とモバイル接続サーバ２００との間のセションのセションＩＤが含まれる。また再接続ネゴシエーション要求には、モバイル接続サーバ２００が保持している、受信済パケット番号やデータ長が含まれる。
【０１４９】
［ステップＳ１５１］移動端末１００の通信制御部１２０内の再接続受信部１３１は、再接続ネゴシエーション要求を受信する。この際、通信制御部１２０は、モバイル接続サーバ２００から送られた受信済パケット番号により、モバイル接続サーバ２００で受信済みのパケットを認識する。そして通信制御部１２０は、モバイル接続サーバ２００で受信済みのパケットのコピーを、送信済データコピーバッファから破棄する。その後、通信制御部１２０は、再接続ネゴシエーション応答をモバイル接続サーバ２００に送信する。再接続ネゴシエーション応答には、例えば移動端末１００が保持している受信済パケット番号やデータ長が含まれる。
【０１５０】
［ステップＳ１５２］モバイル接続サーバ２００は、移動端末１００から再接続ネゴシエーション応答を受信する。モバイル接続サーバ２００は、移動端末１００から送られた受信済パケット番号により、移動端末１００で受信済みのパケットを認識する。そしてモバイル接続サーバ２００は、移動端末１００で受信済みのパケットを、送信済データコピーバッファから破棄する。そしてモバイル接続サーバ２００は、再接続ネゴシエーションを完了する。
【０１５１】
これにより、移動端末１００は、通信の切断前と同じモバイル接続サーバ２００との間で通信を接続することができる。その後、切断した通信が続行される。
図１５は、再接続後の通信手順の一例を示すシーケンス図である。
【０１５２】
［ステップＳ１６１］移動端末１００の通信制御部１２０は、データ状態を同期するための情報を、モバイル接続サーバ２００に送信する。例えば移動端末１００は、移動端末１００内の送信済データバッファから、モバイル接続サーバ２００が未受信のパケットを取り出し、モバイル接続サーバ２００に送信する。
【０１５３】
［ステップＳ１６２］モバイル接続サーバ２００は、データ状態を同期するための情報を受信する。
［ステップＳ１６３］モバイル接続サーバ２００は、データ状態を同期するためのモバイル接続サーバ２００側の情報を、移動端末１００に送信する。例えばモバイル接続サーバ２００は、モバイル接続サーバ２００内の送信済データバッファから、移動端末１００が未受信のパケットを取り出し、移動端末１００に送信する。
【０１５４】
［ステップＳ１６４］移動端末１００の通信制御部１２０は、データ状態を同期するためのパケット（データを含む）を受信する。そして通信制御部１２０は、モバイル接続サーバ２００から受信したパケットのプロトコル解析を行い、そのパケットに含まれているデータを、パケットの宛先であるクライアントアプリケーション１４１に返却する。
【０１５５】
その後、ステップＳ１６５〜Ｓ１６９の処理は、図１３に示したステップＳ１２５〜Ｓ１２９の処理と同様である。
［ステップＳ１７０］クライアントアプリケーション１４１は、通信が終了したと判断すると、通信終了要求を出力する（close()）。
【０１５６】
［ステップＳ１７１］通信制御部１２０は、接続クローズ要求をモバイル接続サーバ２００に通知する。例えば通信制御部１２０は、接続クローズを示すヘッダを有するパケットを生成し、そのパケットをモバイル接続サーバ２００に送信する。
【０１５７】
［ステップＳ１７２］モバイル接続サーバ２００は、受信したパケットのプロトコル解析を行い、接続のクローズ要求であることを認識する。そしてモバイル接続サーバ２００は、アプリケーションサーバ４０に通信の終了を通知する。
【０１５８】
［ステップＳ１７３］アプリケーションサーバ４０は、モバイル接続サーバ２００から通知に応じて、ソケットのクローズ要求を出力する。
［ステップＳ１７４］モバイル接続サーバ２００は、ソケットをクローズする。そしてモバイル接続サーバ２００は、接続終了の応答パケットを移動端末１００に送信する。
【０１５９】
［ステップＳ１７５］移動端末１００の通信制御部１２０は、モバイル接続サーバ２００からの応答パケットのプロトコル解析を行い、接続が終了したことを認識する。そして通信制御部１２０は、接続が終了したことを示すサーバ終了コードをクライアントアプリケーション１４１に送信する。
【０１６０】
［ステップＳ１７６］クライアントアプリケーション１４１は、サーバ終了コードを受信すると、通信を終了する。
このように、第２の実施の形態によれば、移動端末１００とモバイル接続サーバ２００との通信が切断されても、通信切断前に接続していたモバイル接続サーバ２００との間の通信を再開することができる。しかも、第２の実施の形態では、セションＩＤ内に元のモバイル接続サーバ２００のＩＰアドレスが含まれているため、元のモバイル接続サーバを検索する処理が不要である。その結果、通信の再接続を効率的に行うことができる。
【０１６１】
また再接続ネゴシーション要求を受け取ったモバイル接続サーバは、切断前に接続されていた元のモバイル接続サーバが接続可能であることを確認できたときに、再接続の指示を行う。これにより、再接続が不可能な場合に、余分な処理を行わせずにすむ。
【０１６２】
さらに、無線ダイヤルアップ通信状態の切断／再接続を行う場合、移動端末１００の通信制御部１２０とモバイル接続サーバ２００，３００との間で通信情報をバッファリングし、無線通信のエラー発生が、クライアントアプリケーション１４１から隠蔽されている。すなわち、通信中の状態（相手の受信が確認できていない送信データなど）がバッファに保持される。携帯電話の電波状況の悪化や基地局エリア外への移動などでダイヤルアップ通信の切断が発生した場合、通信状況の回復した時点で再度ダイヤルアップ接続が行われ、切断前の送受信状態に戻される。これにより、クライアントアプリケーション１４１には、通信が継続しているように見せかけることができる。クライアントアプリ利用者は応答が遅いと感じるだけで、通信エラーによるデータのダウンロードし直した場合のような長い待ち時間は発生しない。しかも、通信データ量の増加も抑止される。
【０１６３】
〔第３の実施の形態〕
次に第３の実施の形態について説明する。第３の実施の形態は、移動端末側では意識せずに、通信切断前と同じモバイル接続サーバに再接続できるようにしたものである。
【０１６４】
そのために第３の実施の形態では、サーバ間連携による通信の中継による再接続を実現する。
第２の実施の形態では、移動端末１００において、移動端末１００が送信した再接続ネゴシエーション要求が、通信切断前の通信相手とは異なるモバイル接続サーバ３００に転送されたことを認識し、再接続の待機状態となる。そして移動端末１００は、元のモバイル接続サーバ２００からの再接続ネゴシエーション要求を受け付ける。このように、第２の実施の形態では、再接続ネゴシエーション要求の到達したモバイル接続サーバ３００が、通信切断前に接続していたモバイル接続サーバ２００と同一か否かによって、移動端末１００の処理が異なる。第３の実施の形態では、移動端末は、常に同じ処理をすればよいようにする。これにより、移動端末の負荷を軽減できる。
【０１６５】
移動端末からの再接続時、対象サーバのローカルＩＰが分かっていても外部からの接続は代表ＩＰアドレスでの接続しかできない。そのため、ロードバランサ２５によって切断前に接続されていたモバイル接続サーバとは別のサーバに接続される場合がある。この場合は、第２の実施の形態と同様に、接続を受け付けたモバイル接続サーバが、セションＩＤ内のサーバＩＰアドレス情報から、再接続待ちをしているモバイル接続サーバを特定する。そして第３の実施の形態では、移動端末からの再接続要求を受け取ったモバイル接続サーバが、移動端末と再接続待ちをしているモバイル接続サーバとの通信を中継することで、再接続による通信継続を実現する。
【０１６６】
図１６は、第３の実施の形態における移動端末の再接続手順を示す図である。図１６の上段には、セション切断以前の通信状態を示している。この通信状態は、図５に示したセション切断前の通信状態と同じである。
【０１６７】
ここで、移動端末１００ａとモバイル接続サーバ２００ａとの間のセションを正常終了する前に、移動端末１００ａと通信キャリア内サーバ２２との通信が途絶えた場合を、移動端末１００ａとモバイル接続サーバ２００ａとの間の再接続処理が行われる。図５の下段に、再接続処理の手順を示している。
【０１６８】
移動端末１００ａは、携帯電話網を介して通信キャリア内サーバ２２に再度、ＰＰＰ接続を行う。このとき、通信キャリア内サーバ２２は、改めて移動端末１００ａにＤＨＣＰによりアドレスを割り当てる。図５の例では、移動端末１００ａに、切断前とは別のＩＰアドレス「add#5」が割り当てられている。
【０１６９】
移動端末１００ａは、ＩＰアドレス「add#2」を宛先とした再接続要求を送信する。再接続要求には、中断したセションのセションＩＤ３１が含まれる。その接続要求は、ロードバランサ２５で受信される。ロードバランサ２５は、所定のアルゴリズムによって複数のモバイル接続サーバのうちの１台を選択し、接続要求を転送する。例えば再接続要求が、モバイル接続サーバ３００ａに転送されたものとする（ステップＳ２１）。
【０１７０】
再接続要求を受信したモバイル接続サーバ３００ａは、付与されているセションＩＤ３１からサーバアドレスを抽出する。そしてモバイル接続サーバ３００ａは、抽出したアドレスにより、セションＩＤの対応するセションを保留しているモバイル接続サーバを判断する。図５の例では、再接続要求に示されるセションＩＤ３１から抽出したＩＰアドレスは「add#3」であり、モバイル接続サーバ３００ａのＩＰアドレスが「add#4」である。するとモバイル接続サーバ３００ａは、正しい再接続先がモバイル接続サーバ２００ａであると判断する。そしてモバイル接続サーバ３００ａは、正しい再接続先であるモバイル接続サーバ２００ａに、再接続確認要求を送信する（ステップＳ２２）。
【０１７１】
モバイル接続サーバ２００ａは、再接続確認要求に応じて、再接続が可能か否かを判断する。再接続が可能であれば、モバイル接続サーバ２００ａは、再接続ＯＫの応答を、モバイル接続サーバ３００ａに送信する（ステップＳ２３）。
【０１７２】
モバイル接続サーバ３０は、移動端末１００ａに再接続ＯＫの応答を送信する（ステップＳ２４）。すると移動端末１００ａは、中断していた通信をアプリケーションサーバ４０との間で再開する（ステップＳ２５）。以降、モバイル接続サーバ３００ａは、移動端末１００ａとモバイル接続サーバ２００ａとの間の通信を中継し続ける。
【０１７３】
なお通信を中継するモバイル接続サーバ３００ａは、中継処理が発生すると、本来の処理以外に中継処理を実行することになる。そのため負荷が一時的に増えることとなる。しかし、再接続に伴う中継処理は、データの暗号の復号化・圧縮の展開といったＣＰＵリソース負荷の高い処理を行わずに中継するだけであり、中継するモバイル接続サーバ３００ａに過大な負荷とはならない。そのため、再接続に伴う中継処理を行っても、モバイル接続サーバ３００ａにおいてシステムリソースの圧迫は起こらず、安定した動作が維持される。
【０１７４】
なお、モバイル接続サーバ２００ａ，３００ａ，・・・では、同時処理可能なコネクション数の最大値（最大同時コネクション数）と、ライセンス上使用が許容されるライセンス上限値が定義されている。移動端末１００ａからの要求に応じた処理を継続的に実行するためのコネクションの接続は、ライセンス上限値の制限を受ける。また、再接続ネゴシエーション要求のように、一時的な通信のためのコネクション接続は、最大同時コネクション数内であれば許容される。すなわち、接続制御用の一時的なコネクションであれば、同時接続されているコネクション数がライセンス上限値以上であっても、新たに接続可能である。
【０１７５】
図１７は、同時接続コネクション数の遷移例を示すグラフである。図１７のグラフは、横軸に時刻、縦軸に同時接続されたコネクション数を取っている。
１サーバ辺りの同時接続コネクションの上限値は、例えばライセンス契約により規定される。このライセンス上限値は環境設定で定義され、超過した場合はシステムの管理者宛に警告メッセージが出力される。ただし、実際の接続動作は可能なコネクション数は一定のマージンを持って動作する。最大同時コネクション数を「Ｌ」（Ｌは、１以上の整数）とし、ライセンス上限値を「Ｎ」（Ｎは、１以上の整数）とすると、マージン「Ｍ」（Ｍは、０以上の整数）は、Ｍ＝Ｌ−Ｎで表される。
【０１７６】
マージンが設けられている理由は以下の通りである。
ライセンス上限値までコネクションがつながっている状態で、無線状態が悪化して切断される移動端末があった場合、異常切断され再接続待機状態のコネクションは維持される。そのため同時接続しているコネクション数は、ライセンス上限値のまま変化しない。そこへ再接続を行うとライセンス上限値Ｎの接続状態にさらにコネクションを接続することとなり、コネクション数はライセンス上限値Ｌ＋１となる。ただし、再接続されたコネクションは、維持されていたコネクションと重複した接続となるため、再接続の手続きが完了後に解放される。コネクション数は、ライセンス上限値に戻ることとなる。このような一時的な接続を許容するために、マージンが設けられている。
【０１７７】
また、使用するサービスによっては１台の移動端末から接続されるコネクション数が１ではなく、ブラウザその他で８コネクション使用しているときもある。このような移動端末を再接続すると、一気に８コネクションオーバーになる。
【０１７８】
さらに、移動端末の稼働台数が固定でない場合、サービスの利用者が急に増加する可能性がある。サービスの利用者が急に増加すると、通常のコネクション数がライセンス上限値を超えることも考えられる。その場合、モバイル接続サーバを増設までの期間はライセンス上限値以上の数のコネクションの同時接続を許容し、マージンの範囲で対処することもできる。
【０１７９】
このように、システムの柔軟な対応を可能とするために、同時接続可能なコネクション数のマージンが設けられている。その結果、図１７に示すように、コネクション数がライセンス上限値を超えた期間（ライセンス上限値超過期間）であっても、正常にコネクションが接続される。
【０１８０】
第３の実施の形態では、再接続の際に、モバイル接続サーバにおいて中継が発生する。中継用のコネクションもマージンの範囲内で許容される。ただし、中継処理によりマージン数のコネクションを使い切ってしまうと、その後の安定した運用が難しくなる。そこで、第３の実施の形態では、再接続のコネクション数に応じて、最大コネクション数を増加させることで、持続的な安定運用を可能とする。
【０１８１】
ここで、再接続に関してはライセンス管理上のコネクション加算の対象でないため最大同時コネクション数超過による強制切断処理などは行わない。ただし、システム内のモバイル接続サーバの台数を用いて、マージンを以下の式で増加させる。
増加マージン数＝（１＋中継発生確率）×再接続コネクション
中継発生確率＝（１−Ｋ）／Ｋ
Ｋは、モバイル接続サーバの台数である（Ｋは、１以上の整数）。なお、モバイル接続サーバは、仮想マシンの場合もある。この処理により、仮想化された環境を含め、再接続時に中継処理を行った場合でも、中継以外に利用できるコネクション数はあまり変化させずにすむ。
【０１８２】
図１８は、マージンの増加例を示す図である。図１８に示すように、通常コネクション（移動端末との間のデータ送受信に利用するコネクション）は、ライセンス上限値以下の数だけ接続できる。モバイル接続サーバの性能に応じて設定された最大同時コネクション数と、ライセンス上限値との差がマージンとなる。
【０１８３】
ここで、図１６に示した様に、モバイル接続サーバ２００ａとの通信が切断された移動端末１００ａから再接続要求が出力され、その再接続要求がモバイル接続サーバ３００ａに送られる場合がある。この場合、モバイル接続サーバ３００ａは、移動端末１００ａとモバイル接続サーバ２００ａとの間の通信パケットを中継する。この中継処理のためには、新たなコネクション（転送コネクション）が接続される。転送コネクションは、同時接続コネクション数がライセンス上限値を超えていても、新たに接続可能である。
【０１８４】
ここで、マージンを一定のままにしておくと、空きコネクションが枯渇し、他の移動端末の通信が切断され再接続要求を送信するためのコネクションが接続できなくなる可能性がある。そこで、第３の実施の形態では、最大同時コネクション数を増加させる。その結果、マージンも増加する。これにより、継続してシステムの安定運用が可能となる。なお、前述したように、中継処理では、データの圧縮・伸張や、暗号化・復号といった複雑な処理を行わない。そのため、転送コネクションの発生原因となる再接続コネクション数に応じて最大同時コネクション数を増加させても、パケットを中継するモバイル接続サーバ３００ａの負荷が過大にならずにすむ。
【０１８５】
次に、第３の実施の形態を実現するために、移動端末１００ａとモバイル接続サーバ２００ａ，３００ａとが有する機能について説明する。
図１９は、第３の実施の形態における移動端末の機能の一例を示すブロック図である。図１９に示した移動端末１００ａの構成要素のうち、図６に示した第２の実施の形態の移動端末１００と同じ要素には同じ符号を付し、説明を省略する。第３の実施の形態の移動端末１００は、通信制御部１２０ａの機能が第２の実施の形態と異なる。通信制御部１２０ａは、第２の実施の形態の通信制御部１２０（図６参照）と異なり、再接続受信部１３１を有していない。すなわち、第３の実施の形態では、モバイル接続サーバからの再接続ネゴシエーション要求の受信機能は不要となる。
【０１８６】
図２０は、第３の実施の形態におけるサービスセンタ内のサーバの機能の一例を示すブロック図である。図２０に示した要素のうち、図８に示した第２の実施の形態の要素と同じものには同じ符号を付し、説明を省略する。
【０１８７】
図２０に示した要素のうち第２の実施の形態と異なるのは、モバイル接続サーバ２００ａの通信制御部２２０ａである。通信制御部２２０ａは、第２の実施の形態の通信制御部２２０（図８参照）に含まれている再接続送信部２３２を有しておらず、再接続送信部２３２の代わりにデータ中継部２３３を有している。
【０１８８】
データ中継部２３３は、他のモバイル接続サーバとの通信が遮断された移動端末１００ａから再接続ネゴシエーション要求を受信した場合に、他のモバイル接続サーバと移動端末１００ａとの間のデータ通信を中継する。
【０１８９】
なお、図２０に示したモバイル接続サーバ２００ａの機能と同じ機能を、他のモバイル接続サーバ３００ａも有している。
次に、第３の実施の形態における処理について説明する。なお、第３の実施の形態における移動端末の接続処理とデータ送受信処理との手順は、図１１〜図１３に示した第２の実施の形態の処理手順と同じである。
【０１９０】
図２１は、第３の実施の形態における移動端末の再接続処理の手順の一例を示すシーケンス図である。なおステップＳ２０１〜Ｓ２０５の処理は、図１４に示したステップＳ１４１〜Ｓ１４５の処理と同じである。
【０１９１】
［ステップＳ２０６］モバイル接続サーバ３００ａは、再接続ネゴシエーション要求を受信すると、再接続先が正しいか否かを判断する。接続先のサーバがモバイル接続サーバ３００ａではない場合（サーバ違いの場合）、モバイル接続サーバ３００ａは、正しい接続先のモバイル接続サーバ２００ａに再接続ネゴシエーション要求を転送する。
【０１９２】
［ステップＳ２０７］モバイル接続サーバ２００ａは、再接続が可能かどうかを判断する。再接続が可能であれば、モバイル接続サーバ２００ａは、再接続をするための再接続ネゴシエーション応答をモバイル接続サーバ３００ａとの間のコネクションを介して出力する。
【０１９３】
［ステップＳ２０８］モバイル接続サーバ３００ａは、モバイル接続サーバ２００ａから出力された再接続ネゴシエーション応答を、移動端末１００ａに転送する。
［ステップＳ２０９］移動端末１００ａの通信制御部１２０ａは、再接続ネゴシエーション応答を受信し、再接続ネゴシエーションを完了する。
【０１９４】
このようにして、移動端末１００ａとモバイル接続サーバ２００ａとが、モバイル接続サーバ３００ａを経由した伝送路により再接続される。その後、移動端末１００ａとモバイル接続サーバ２００ａとは、再接続された伝送路で、通信を再開する。
【０１９５】
図２２は、第３の実施の形態における再接続後の通信手順の一例を示すシーケンス図である。
［ステップＳ２１１］移動端末１００ａの通信制御部１２０ａは、データ状態を同期するための情報を送信する。
【０１９６】
［ステップＳ２１２］モバイル接続サーバ３００ａは、移動端末１００ａから送信されたデータ状態を同期するための情報を中継し、モバイル接続サーバ２００ａに送信する。
［ステップＳ２１３］モバイル接続サーバ２００ａは、データ状態を同期するための情報を受信する。
【０１９７】
［ステップＳ２１４］モバイル接続サーバ２００ａは、データ状態を同期するためのモバイル接続サーバ２００側の情報を送信する。
［ステップＳ２１５］モバイル接続サーバ３００ａは、モバイル接続サーバ２００ａから送信された、データ状態を同期するための情報を中継し、移動端末１００ａに送信する。
【０１９８】
［ステップＳ２１６］移動端末１００ａの通信制御部１２０ａは、データ状態を同期するためのパケット（データを含む）を受信する。そして通信制御部１２０ａは、モバイル接続サーバ２００から受信したパケットのプロトコル解析を行い、そのパケットに含まれているデータを、パケットの宛先であるクライアントアプリケーション１４１に返却する。
【０１９９】
［ステップＳ２１７］クライアントアプリケーション１４１がデータ送信完了後、アプリケーションサーバ４０から応答データを受け取る場合、クライアントアプリケーション１４１は、応答データ受信要求を出力する（recv()）。
【０２００】
［ステップＳ２１８］通信制御部１２０ａは、応答データ受信要求に応じて、データ受信待ちの状態となる。
［ステップＳ２１９］アプリケーションサーバ４０は、応答データを送信する。
【０２０１】
［ステップＳ２２０］送信された応答データを受信したモバイル接続サーバ２００ａは、通信制御部１２０ａとの間の通信プロトコルに沿ったパケットを生成し、そのパケットを送信する。
【０２０２】
［ステップＳ２２１］モバイル接続サーバ３００ａは、モバイル接続サーバ２００ａから出力されたパケットを中継し、移動端末１００ａに送信する。
［ステップＳ２２２］移動端末１００ａの通信制御部１２０は、受信したパケットのプロトコルを解析する。そして通信制御部１２０は、パケットに含まれている応答データを、パケットの宛先であるクライアントアプリケーション１４１に返却する。
【０２０３】
ステップＳ２１７〜Ｓ２３２と同様の処理が、アプリケーションサーバ４０が送信するすべての応答データの送信が完了するまで繰り返される。
［ステップＳ２２３］クライアントアプリケーション１４１は、通信が終了したと判断すると、通信終了要求を出力する（close()）。
【０２０４】
［ステップＳ２２４］通信制御部１２０ａは、接続クローズ要求のパケットを送信する。
［ステップＳ２２５］モバイル接続サーバ３００ａは、移動端末１００ａから出力されたクローズ要求のパケットを中継し、モバイル接続サーバ２００ａに送信する。
【０２０５】
［ステップＳ２２６］モバイル接続サーバ２００ａは、受信したパケットのプロトコル解析を行い、接続のクローズ要求であることを認識する。そしてモバイル接続サーバ２００ａは、アプリケーションサーバ４０に通信の終了を通知する。
【０２０６】
［ステップＳ２２７］アプリケーションサーバ４０は、モバイル接続サーバ２００ａから通知に応じて、ソケットのクローズ要求を出力する。
［ステップＳ２２８］モバイル接続サーバ２００ａは、ソケットをクローズする。そしてモバイル接続サーバ２００ａは、接続終了の応答パケットを送信する。
【０２０７】
［ステップＳ２２９］モバイル接続サーバ３００ａは、モバイル接続サーバ２００ａから出力された接続終了の応答パケットを中継し、移動端末１００ａに送信する。
［ステップＳ２３０］移動端末１００ａの通信制御部１２０ａは、モバイル接続サーバ２００ａからの応答パケットのプロトコル解析を行い、接続が終了したことを認識する。そして通信制御部１２０ａは、接続が終了したことを示すサーバ終了コードをクライアントアプリケーション１４１に送信する。
【０２０８】
［ステップＳ２３１］クライアントアプリケーション１４１は、サーバ終了コードを受信すると、通信を終了する。
このようにして、処理の途中で通信が切断された場合に、切断前に通信していたモバイル接続サーバの検索処理をせずに切断前と同じモバイル接続サーバに移動端末を接続することができる。その結果、通信切断後の再接続を効率的に行うことができる。
【０２０９】
なお、仮想マシンなどによるモバイル接続サーバの動的増設／縮小においても、同じ構成のモバイル接続サーバが複数起動されるだけである。そのため、構成変更による定義の変更は不要である。
【０２１０】
第３の実施の形態では、移動端末１００には、新たな機能を追加せずにすむ。またＩＰＶ４におけるアドレスの枯渇により、移動端末１００ａのＩＰアドレスの参照が直接行えないネットワーク構成（キャリア側もＮＡＴによりローカルＩＰを隠蔽する構成）でも、効率的に再接続が行える。また、使用するポート、通信の方向に変更がないためファイアウォールのアウトバンド通信の定義変更等のサーバ構成の見直しも不要でシステム構成・セキュリティ等への影響もない。このように、再接続可能なシステムを、容易に実現可能である。さらに、再接続中に通信異常が発生して場合の再々接続も可能である。
【０２１１】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【符号の説明】
【０２１２】
１  端末装置
２  ＤＨＣＰサーバ
３  ネットワーク
４  ロードバランサ
５，６  通信制御装置
７，８  サーバ
９  接続識別子
９ａ  装置内接続識別子
９ｂ  装置識別子
１０  再接続要求
【図１】
2014132703.tif 000003
【図２】
2014132703.tif 000004
【図３】
2014132703.tif 000005
【図４】
2014132703.tif 000006
【図５】
2014132703.tif 000007
【図６】
2014132703.tif 000008
【図７】
2014132703.tif 000009
【図８】
2014132703.tif 000010
【図９】
2014132703.tif 000011
【図１０】
2014132703.tif 000012
【図１１】
2014132703.tif 000013
【図１２】
2014132703.tif 000014
【図１３】
2014132703.tif 000015
【図１４】
2014132703.tif 000016
【図１５】
2014132703.tif 000017
【図１６】
2014132703.tif 000018
【図１７】
2014132703.tif 000019
【図１８】
2014132703.tif 000020
【図１９】
2014132703.tif 000021
【図２０】
2014132703.tif 000022
【図２１】
2014132703.tif 000023
【図２２】
2014132703.tif 000024