(57)【特許請求の範囲】
【請求項１】
ネットワークに接続されたクライアント端末上で動作するクライアントアプリケーションと、サーバ計算機上で動作し前記ネットワークを介して前記クライアントアプリケーションと通信を行いサービスを提供するサーバアプリケーションとを含むクライアント／サーバシステムにおいて、
前記クライアントアプリケーションを接続されるクライアントポートを備え、前記クライアントアプリケーションと前記サーバアプリケーションとの間の通信を中継するプロキシクライアント部と、
前記サーバアプリケーションが接続され、前記クライアントアプリケーションと前記サーバアプリケーションとの間の通信を中継するプロキシサーバ部と、
前記プロキシクライアント部と前記プロキシサーバ部とをそれぞれ前記ネットワークに接続し、障害による通信切断時に自動復旧を行う通信モジュールと、
を有し、
前記プロキシクライアント部は、前記クライアントアプリケーションの通信相手先となるサーバポートと前記クライアントポートとの対応関係を記憶する接続対応テーブルを有し、
前記接続対応テーブルは、前記サーバポートが設けられる前記サーバ計算機のアドレスを格納するアドレス指定フィールドを有し、
前記プロキシクライアント部は、
通信接続要求に応じて参照した前記アドレス指定フィールドの内容に基づいて前記アドレスの入力の要否を判断する入力要否判断手段と、
入力の必要があると判断された場合にはユーザに対し前記アドレスの入力を求める入力要求手段と、
を有し、
前記接続対応テーブルに基づき、前記アドレス指定フィールドに格納されたアドレス若しくは前記入力要求手段により要求された場合にはその要求に応じて入力されたアドレスを用いて、前記クライアントアプリケーションと前記サーバアプリケーションとの通信接続を行うことを特徴とするクライアント／サーバシステム。
【請求項２】
請求項１記載のクライアント／サーバシステムにおいて、
前記プロキシクライアント部は、ユーザ入力に応じて前記接続対応テーブルの記憶内容を変更するテーブル操作手段を有すること、
を特徴とするクライアント／サーバシステム。
【請求項３】
請求項１記載のクライアント／サーバシステムにおいて、
前記プロキシクライアント部は、前記クライアントアプリケーションと前記サーバアプリケーションとの間の通信に対して所定の付加処理を行うフィルタを少なくとも一つ有し、
前記接続対応テーブルは、前記サーバポートと前記クライアントポートとの対応関係毎に、当該対応関係において使用される前記フィルタの指定を有すること、
を特徴とするクライアント／サーバシステム。
【請求項４】
請求項３記載のクライアント／サーバシステムにおいて、
前記フィルタとして、前記サーバアプリケーションから前記クライアントアプリケーションへサーバポート情報を送信し当該サーバポート情報に応じて前記サーバアプリケーションと前記クライアントアプリケーションとの通信接続関係を変化させる通信プロトコルに対応して、通信内容を解析して前記サーバポート情報を取得し、当該サーバポート情報に基づいて新たな前記対応関係を生成し前記接続対応テーブルに登録する動的接続変更フィルタを有し、
当該生成された新たな対応関係に基づいて前記クライアントアプリケーションと前記サーバアプリケーションとの通信接続を行うことを特徴とするクライアント／サーバシステム。
【請求項５】
請求項３記載のクライアント／サーバシステムにおいて、
前記フィルタとして、前記サーバアプリケーションから前記クライアントポートへの通信接続要求に応じた通信内容を解析する逆方向通信処理フィルタを有し、
前記逆方向通信処理フィルタは、前記通信接続要求に応じた前記クライアントアプリケーションにおける逆方向通信用クライアントポートの生成を検知し、
前記プロキシサーバ部は、前記逆方向通信用クライアントポートの生成検知に応じて、前記サーバアプリケーションが接続される逆方向通信用サーバポートを生成し、
前記接続対応テーブルは、前記逆方向通信用サーバポートと前記逆方向通信用クライアントポートとの対応関係を記憶し、
前記接続対応テーブルに基づいて、前記クライアントアプリケーションと前記サーバアプリケーションとの通信接続を行うことを特徴とするクライアント／サーバシステム。
【請求項６】
ネットワークに接続されたクライアント端末上で動作するクライアントアプリケーションと、サーバ計算機上で動作し前記ネットワークを介して前記クライアントアプリケーションと通信を行いサービスを提供するサーバアプリケーションとを含むクライアント／サーバシステムにおいて、
前記クライアントアプリケーションを接続されるクライアントポートを備え、前記クライアントアプリケーションと前記サーバアプリケーションとの間の通信を中継するプロキシクライアント部と、
前記サーバアプリケーションが接続され、前記クライアントアプリケーションと前記サーバアプリケーションとの間の通信を中継するプロキシサーバ部と、
前記プロキシクライアント部と前記プロキシサーバ部とをそれぞれ前記ネットワークに接続し、障害による通信切断時に自動復旧を行う通信モジュールと、
を有し、
前記プロキシクライアント部は、前記クライアントアプリケーションの通信相手先となるサーバポートと前記クライアントポートとの対応関係を記憶する接続対応テーブルを有し、
前記通信モジュールとして、それぞれ異なる機能を有する複数種別のモジュールを有し、
前記プロキシクライアント部を前記ネットワークに接続する前記通信モジュールと前記プロキシサーバ部を前記ネットワークに接続する前記通信モジュールとをそれぞれ切り換えて使用し、
前記接続対応テーブルに基づいて、前記クライアントアプリケーションと前記サーバアプリケーションとの通信接続を行うことを特徴とするクライアント／サーバシステム。
【請求項７】
請求項６記載のクライアント／サーバシステムにおいて、
前記プロキシクライアント部は、複数の前記サーバ計算機それぞれとそれに対応して使用される前記通信モジュールとの対応関係を記憶するサーバ対通信モジュール対応テーブルを有すること、
を特徴とするクライアント／サーバシステム。
【請求項８】
請求項６記載のクライアント／サーバシステムにおいて、
前記プロキシクライアント部は、複数の前記プロキシサーバ部それぞれとそれに対応して使用される前記通信モジュールとの対応関係を記憶するプロキシサーバ部対通信モジュール対応テーブルを有すること、
を特徴とするクライアント／サーバシステム。
【請求項９】
請求項６記載のクライアント／サーバシステムにおいて、
前記接続対応テーブルは、前記サーバポートと前記クライアントポートとの各対応関係毎に、当該対応関係において使用される前記通信モジュールの指定を有すること、
を特徴とするクライアント／サーバシステム。
【請求項１０】
請求項１記載のクライアント／サーバシステムにおいて、
複数の前記プロキシクライアント部を互いに区別するクライアント識別子が定義され、
前記プロキシクライアント部と前記プロキシサーバ部との間の通信メッセージには、前記クライアント識別子が格納されること、
を特徴とするクライアント／サーバシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、クライアント端末とサーバ計算機とがネットワークを介して接続され構成されるクライアント／サーバシステムに関し、特に移動体通信等の多様な通信形態への適用が容易なシステムに関する。
【０００２】
【従来の技術】
クライアント／サーバシステムは、サーバ計算機上で動作されるサーバアプリケーションからクライアント端末上で動作するクライアントアプリケーションへサービスを提供するシステムである。従来より、ネットワークを介してクライアントアプリケーションとサーバアプリケーションとを通信接続することは行われており、その多くは有線ネットワークを介したものであった。しかし近年では移動体通信網の普及に伴い、クライアント端末が携帯情報端末（モバイル端末）であるクライアント／サーバシステムも登場してきている。また近年はセキュリティの面から通信内容の暗号化への関心が高まっているが、特に無線の場合はその必要性が高い。
【０００３】
【発明が解決しようとする課題】
このように通信形態は多様となってきているが、従来は個別の通信形態に対応してクライアント／サーバシステムが構築されていた。そのため例えば、一般に有線通信媒体を想定した従来のクライアント／サーバ型アプリケーションで構成されたクライアント／サーバシステムは、そのままでは移動体通信に適用することはできない。このように従来は、他の通信形態に適応させようとする場合、アプリケーション中の通信部分を作り直す必要があるという問題があった。ＷＷＷサーバ／ブラウザ間の通信に関してはこの問題に容易に対応できる技術が開発されているが、ＨＴＴＰ以外のプロトコルを使用する他のシステムに関して依然として上記問題が存在している。
【０００４】
本発明は上記問題点を解消するためになされたもので、アプリケーションに変更を加えることなくモバイル通信や暗号化通信等の多様な通信形態に適用することができるクライアント／サーバシステムを提供することを目的とする。
【０００５】
【課題を解決するための手段】
本発明に係るクライアント／サーバシステムは、クライアントアプリケーションを接続されるクライアントポートを備え前記クライアントアプリケーションとサーバアプリケーションとの間の通信を中継するプロキシクライアント部と、前記サーバアプリケーションが接続され前記クライアントアプリケーションと前記サーバアプリケーションとの間の通信を中継するプロキシサーバ部と、前記プロキシクライアント部と前記プロキシサーバ部とをそれぞれネットワークに接続し、障害による通信切断時に自動復旧を行う通信モジュールとを有し、前記プロキシクライアント部は、前記クライアントアプリケーションの通信相手先となるサーバポートと前記クライアントポートとの対応関係を記憶する接続対応テーブルを有し、前記接続対応テーブルは、前記サーバポートが設けられる前記サーバ計算機のアドレスを格納するアドレス指定フィールドを有し、前記プロキシクライアント部は、通信接続要求に応じて参照した前記アドレス指定フィールドの内容に基づいて前記アドレスの入力の要否を判断する入力要否判断手段と、入力の必要があると判断された場合にはユーザに対し前記アドレスの入力を求める入力要求手段とを有し、前記接続対応テーブルに基づき、前記アドレス指定フィールドに格納されたアドレス若しくは前記入力要求手段により要求された場合にはその要求に応じて入力されたアドレスを用いて、前記クライアントアプリケーションと前記サーバアプリケーションとの通信接続を行うことを特徴とする。
【０００６】
本発明に係るクライアント／サーバシステムにおいては、前記プロキシクライアント部が、ユーザ入力に応じて前記接続対応テーブルの記憶内容を変更するテーブル操作手段を有することを特徴とする。
【０００８】
本発明に係るクライアント／サーバシステムにおいては、前記プロキシクライアント部は、前記クライアントアプリケーションと前記サーバアプリケーションとの間の通信に対して所定の付加処理を行うフィルタを少なくとも一つ有し、前記接続対応テーブルは、前記サーバポートと前記クライアントポートとの対応関係毎に、当該対応関係において使用される前記フィルタの指定を有することを特徴とする。
【０００９】
本発明に係るクライアント／サーバシステムにおいては、前記フィルタとして、前記サーバアプリケーションから前記クライアントアプリケーションへサーバポート情報を送信し当該サーバポート情報に応じて前記サーバアプリケーションと前記クライアントアプリケーションとの通信接続関係を変化させる通信プロトコルに対応して、通信内容を解析して前記サーバポート情報を取得し、当該サーバポート情報に基づいて新たな前記対応関係を生成し前記接続対応テーブルに登録する動的接続変更フィルタを有し、当該生成された新たな対応関係に基づいて前記クライアントアプリケーションと前記サーバアプリケーションとの通信接続を行うことを特徴とする。
【００１０】
本発明に係るクライアント／サーバシステムにおいては、前記フィルタとして、前記サーバアプリケーションから前記クライアントポートへの通信接続要求に応じた通信内容を解析する逆方向通信処理フィルタを有し、前記逆方向通信処理フィルタは前記通信接続要求に応じた前記クライアントアプリケーションにおける逆方向通信用クライアントポートの生成を検知し、前記プロキシサーバ部は前記逆方向通信用クライアントポートの生成検知に応じて、前記サーバアプリケーションが接続される逆方向通信用サーバポートを生成し、前記接続対応テーブルは、前記逆方向通信用サーバポートと前記逆方向通信用クライアントポートとの対応関係を記憶し、前記接続対応テーブルに基づいて前記クライアントアプリケーションと前記サーバアプリケーションとの通信接続を行うことを特徴とする。
【００１１】
本発明に係るクライアント／サーバシステムは、ネットワークに接続されたクライアント端末上で動作するクライアントアプリケーションと、サーバ計算機上で動作し前記ネットワークを介して前記クライアントアプリケーションと通信を行いサービスを提供するサーバアプリケーションとを含むクライアント／サーバシステムにおいて、前記クライアントアプリケーションを接続されるクライアントポートを備え、前記クライアントアプリケーションと前記サーバアプリケーションとの間の通信を中継するプロキシクライアント部と、前記サーバアプリケーションが接続され、前記クライアントアプリケーションと前記サーバアプリケーションとの間の通信を中継するプロキシサーバ部と、前記プロキシクライアント部と前記プロキシサーバ部とをそれぞれ前記ネットワークに接続し、障害による通信切断時に自動復旧を行う通信モジュールとを有し、前記プロキシクライアント部は、前記クライアントアプリケーションの通信相手先となるサーバポートと前記クライアントポートとの対応関係を記憶する接続対応テーブルを有し、前記通信モジュールとして、それぞれ異なる機能を有する複数種別のモジュールを有し、前記プロキシクライアント部を前記ネットワークに接続する前記通信モジュールと前記プロキシサーバ部を前記ネットワークに接続する前記通信モジュールとをそれぞれ切り換えて使用し、前記接続対応テーブルに基づいて、前記クライアントアプリケーションと前記サーバアプリケーションとの通信接続を行うことを特徴とする。
【００１２】
本発明に係るクライアント／サーバシステムにおいては、前記プロキシクライアント部は、複数の前記サーバ計算機それぞれとそれに対応して使用される前記通信モジュールとの対応関係を記憶するサーバ対通信モジュール対応テーブルを有することを特徴とする。
【００１３】
本発明に係るクライアント／サーバシステムにおいては、前記プロキシクライアント部は、複数の前記プロキシサーバ部それぞれとそれに対応して使用される前記通信モジュールとの対応関係を記憶するプロキシサーバ部対通信モジュール対応テーブルを有することを特徴とする。
【００１４】
本発明に係るクライアント／サーバシステムにおいては、前記接続対応テーブルは、前記サーバポートと前記クライアントポートとの各対応関係毎に、当該対応関係において使用される前記通信モジュールの指定を有することを特徴とする。
【００１５】
本発明に係るクライアント／サーバシステムにおいては、複数の前記プロキシクライアント部を互いに区別するクライアント識別子が定義され、前記プロキシクライアント部と前記プロキシサーバ部との間の通信メッセージには、前記クライアント識別子が格納されることを特徴とする。
【００１６】
【発明の実施の形態】
次に、本発明の実施形態について図面を参照して説明する。
【００１７】
［実施の形態１］
図１は、本発明に係るクライアント／サーバシステムの概略のブロック図である。本システムではモバイル端末（移動端末）２などのクライアント側を構成し、これがネットワーク４に接続される。またサーバ側はサーバ計算機６がゲートウェイマシン８を介してネットワーク４に接続される。
【００１８】
モバイル端末２上ではクライアントアプリケーション１０が実行される。また本システムのモバイル端末２はモバイルプロキシクライアント（以下単にプロキシクライアントと称する）と通信モジュール１４とを備える。プロキシクライアント１２はソケット通信部１６とサーバ通信部１８と接続対応テーブル２０とを含んで構成される。クライアントアプリケーション１０はソケット通信によりソケット通信部１６に接続され、ソケット通信部１６はサーバ通信部１８に接続される。プロキシクライアント１２はサーバ通信部１８に接続される通信モジュール１４を介してネットワーク４に接続される。
【００１９】
クライアントアプリケーション１０にサービスを提供するサーバアプリケーション２２はサーバ計算機６上で実行される。
【００２０】
ゲートウェイマシン８はモバイルプロキシサーバ（以下単にプロキシサーバと称する）と通信モジュール２６とを備える。プロキシサーバ２４はソケット通信部２８とクライアント通信部３０とを含んで構成される。
【００２１】
サーバ計算機６上で動作するサーバアプリケーション２２とキャリア生成回路２８とがソケット通信により接続され、ソケット通信部２８はクライアント通信部３０に接続される。プロキシサーバ２４はクライアント通信部３０に接続される通信モジュール２６を介してネットワーク４に接続される。
【００２２】
また、本装置で用いられる通信モジュール１４，２６には、それぞれメッセージ通信などの回線が切れても再接続を行うことにより、中断した通信状態を自動復旧する機能を有するものが用いられる。
【００２３】
さて、ソケット通信はクライアントプロセスとサーバプロセスとの間にて行われる。サーバプロセスはソケットの終端を用意し、クライアントプロセスからの接続要求を待ち受ける。本システムでは、クライアントアプリケーション１０はユーザの必要に応じて随時起動されるものであり、一方、サーバアプリケーション２２はクライアントアプリケーション１０からのサービス要求を待ち受けるものである。この通信接続の基本的な方向性のため、クライアントアプリケーション１０とソケット通信部１６との間のソケット及びソケット通信部２８とサーバアプリケーション２２との間のソケットは、それぞれクライアントアプリケーション１０及びソケット通信部２８をクライアントプロセス、一方、ソケット通信部１６及びサーバアプリケーション２２をサーバプロセスとして形成される。
【００２４】
すなわち、プロキシクライアント１２のソケット通信部１６にクライアントアプリケーション１０に対するソケットの終端が用意され、それらに割り当てられる識別子をここではクライアントポート番号と呼ぶ。また、サーバアプリケーション２２にプロキシサーバ２４のソケット通信部２８に対するソケットの終端が用意され、それらに割り当てられる識別子をここではサーバポート番号と呼ぶ。
【００２５】
このように本システムでは、クライアントアプリケーション１０からサーバアプリケーション２２への通信接続は一つのソケットによって一気に行う構成ではなく、ネットワーク４の前後、すなわちクライアント側とサーバ側とで別々のソケットが用いられる。接続対応テーブル２０は、このクライアントアプリケーション１０からサーバアプリケーション２２への一の通信接続を構成するクライアント側ソケット３２とサーバ側ソケット３４との対応関係の情報を記憶する。
【００２６】
図２は、接続対応テーブル２０の構成を模式的に示す説明図である。接続対応テーブル２０にはそれぞれサーバポートとクライアントポートとの対応関係を表す対応関係エントリが１又は複数格納される。エントリ同士は互いにプロトコル名によって識別される。各対応関係エントリはクライアントポート番号と、サーバ側ソケット３４が接続されるサーバ計算機６のアドレス（サーバアドレス）と、サーバポート番号とを含んでいる。対応関係エントリは、例えばモバイル端末２とサーバ計算機６との間で利用されうる通信プロトコル毎に定義することができ、エントリを識別するプロトコル名という名称はそれにちなんだものである。しかし、必ずしも、各通信プロトコルに一つの対応関係エントリしか定義できないものではなく、一種類の通信プロトコルについて複数の対応関係エントリを定義することもできる。なお、当然のことながらその場合、対応関係エントリの識別情報であるプロトコル名には、別々の名称が与えられる。例えば、通信プロトコル“ＳＭＴＰ”に２つの対応関係エントリを定義する場合、それぞれのプロトコル名には、“ＳＭＴＰ−１”，“ＳＭＴＰ−２”といった名称を与えればよい。クライアントポート番号とサーバポート番号とは一致してもよいが、必ずしも一致する必要はない。
【００２７】
次に、本システムの動作について説明する。図３は本システムにおけるクライアントアプリケーション１０とサーバアプリケーション２２との通信接続処理を説明するフロー図である。モバイル端末２においては、クライアントアプリケーション１０の起動（Ｓ５０）の前に、予めプロキシクライアント１２が起動されている（Ｓ５５）。プロキシクライアント１２は起動されると、接続対応テーブル２０に記憶されているクライアントポート番号で自身のソケット通信部１６にソケットの受け口（終端）となるポートを生成する（Ｓ６０）。クライアントアプリケーション１０は従来一般には直接のサーバアプリケーション２２へ接続されていた。すなわち、クライアントアプリケーション１０がバインドするソケットポートは、サーバアプリケーション２２のポートであった。これに対して本システムでクライアントアプリケーション１０を利用する際には、そのバインドする相手先の設定をプロキシクライアント１２のポートに変更する。これによりクライアントアプリケーション１０が起動され（Ｓ５０）、ソケット接続要求を行うと（Ｓ６５）、プロキシクライアント１２のソケット通信部１６に接続され、クライアント側ソケット３２が構築される。
【００２８】
プロキシクライアント１２はあるポートへのソケット接続を受け付けると、新しいセッションＩＤを生成する。また、接続対応テーブル２０を当該クライアントポート番号にて検索して、当該ポートに対応するサーバアドレスとサーバポート番号とが接続対応テーブル２０から取得される（Ｓ７０）。これらサーバアドレス４０及びサーバポート番号４１と前記セッションＩＤ４２とが、例えばメッセージ種別を表すヘッダ４３に続いて格納され、図４に示すような通信開始メッセージが生成される。当該メッセージはプロキシサーバ２４へ向けて送信され（Ｓ７５）、ソケット通信が開始されたことがプロキシサーバ２４へ通知される。
【００２９】
プロキシサーバ２４は、受信した通信開始メッセージからサーバアドレスとサーバポート番号とを取り出し、それらで指定されるポートにソケット接続要求を行い（Ｓ８０）、これによりサーバ側ソケット３４が確立される（Ｓ８５）。
【００３０】
以上のようにしてクライアントアプリケーション１０とサーバアプリケーション２２との間の通信接続が確立されるとそれを用いて通信処理が行われる。図５は、通信処理を説明するフロー図である。通信処理においては、クライアントアプリケーション１０は、サーバアプリケーション２２へ向けて通信データを送信する（Ｓ１００）。
【００３１】
プロキシクライアント１２は、通信データを図６に示すような通信データメッセージに格納してプロキシサーバ２４へ送信する（Ｓ１０５）。通信データメッセージは、例えばメッセージ種別を表すヘッダ１０６に続いて、セッションＩＤ１０７と通信データ１０８を格納され構成される。ここでセッションＩＤ１０７は、通信開始メッセージにおけるセッションＩＤ４２と共通である。
【００３２】
プロキシサーバ２４は、通信データメッセージから取得したセッションＩＤに基づいて、データを送信すべきサーバ側ソケット３４を検索・特定し、当該サーバ側ソケット３４にデータを送信する（Ｓ１１０）。サーバアプリケーション２２は当該データを受信し（Ｓ１１５）、処理を行ってクライアントアプリケーション１０へサービスを提供する。
【００３３】
サービス提供は、サーバアプリケーション２２から処理結果のデータがクライアントアプリケーション１０へ送られることにより行われる。サーバアプリケーション２２は処理結果等、クライアントアプリケーション１０へ送るべきデータを、サーバ側ソケット３４を介してプロキシサーバ２４へ送信する（Ｓ１２０）。プロキシサーバ２４は、プロキシクライアント１２がプロキシサーバ２４へデータを送信する場合と同様に、図６に示す通信データメッセージにデータを格納して当該メッセージをプロキシクライアント１２へ送信する（Ｓ１２５）。なお、このときに用いられるセッションＩＤは、プロキシクライアント１２からプロキシサーバ２４への送信に用いられたのと同じものであり、プロキシクライアント１２は当該セッションＩＤに基づいて、サービスを要求したクライアントアプリケーション１０につながるクライアント側ソケット３２を検索・特定し、これにデータを送信する（Ｓ１３０）。クライアントアプリケーション１０はクライアント側ソケット３２からデータを受信する（Ｓ１３５）。このようにしてクライアントアプリケーション１０は、サーバアプリケーション２２からのサービスを享受する。
【００３４】
クライアントアプリケーション１０とサーバアプリケーション２２との間の通信終了時の動作は次のように行われる。図７は本システムにおけるクライアントアプリケーション１０から通信を終了する場合の処理を説明するフロー図である。クライアントアプリケーション１０がクライアント側ソケット３２をシャットダウンすると（Ｓ１５０）、プロキシクライアント１２側で動作するソケットプロセス（上述のサーバプロセス）にてエラーが発生する。プロキシクライアント１２はこれを検知すると（Ｓ１５５）、図８に示す通信終了メッセージをプロキシサーバ２４へ送信する（Ｓ１６０）。通信終了メッセージは、例えばメッセージ種別を表すヘッダ１６１に続いてセッションＩＤ１６２を格納された構成である。ここでセッションＩＤ１６２は、ソケットを閉じたクライアントアプリケーション１０に対応するセッションを指し示すものである。プロキシサーバ２４は通信終了メッセージを受信すると、それに指定されたセッションＩＤに基づいて、サーバ側ソケット３４を特定し、当該ソケットをシャットダウンする（Ｓ１６５）。なお、このときクライアント側ソケット３２、サーバ側ソケット３４は基本的にはシャットダウンされるだけであって、クローズまではされない。すなわち、ソケット通信部１６とサーバアプリケーション２２に生成されたポートは開放されずに残ったままである。
【００３５】
逆に、図９は本システムにおけるサーバアプリケーション２２から通信を終了する場合の処理を説明するフロー図である。この場合は、上述のクライアントアプリケーション１０から終了する場合と同様の手順がサーバアプリケーション２２側から行われる。つまり、サーバアプリケーション２２がサーバ側ソケット３４をシャットダウンすると（Ｓ２００）、プロキシサーバ２４にてエラーが検知され（Ｓ２０５）、図８に示す通信終了メッセージをプロキシクライアント１２へ送信する（Ｓ２１０）。プロキシクライアント１２は通信終了メッセージを受信すると、クライアント側ソケット３２をシャットダウンする（Ｓ２１５）。
【００３６】
本システムでは、クライアントアプリケーション１０の直接の相手先は、従来のようなネットワーク４の先のプロキシサーバ２４やサーバ計算機６ではなく、ネットワーク４の手前のプロキシクライアント１２となる。これによりクライアントアプリケーション１０は、あたかもサーバアプリケーション２２がプロキシクライアント１２に存在するかのようにして従来同様の処理を進めることができる。このことは、プロキシクライアント１２とプロキシサーバ２４とが接続対応テーブル２０に定義される対応関係に基づいて、クライアント側ソケット３２とサーバ側ソケット３４とをつなぎ１本のソケットと同様に機能させていることにより達成されているとも言える。つまり、クライアントアプリケーション１０にとっては、クライアント側ソケット３２にてプロキシクライアント１２に接続することは、従来のように直接、サーバアプリケーション２２に接続することと等価なのである。
【００３７】
同様のことは、サーバアプリケーション２２の観点からも言える。すなわち、サーバアプリケーション２２の直接の相手先は、ネットワーク４の先のモバイル端末２やプロキシクライアント１２ではなく、ネットワーク４の手前のプロキシサーバ２４となる。これによりサーバアプリケーション２２はあたかもクライアントアプリケーション１０がプロキシサーバ２４に存在するかのようにして処理を進めることができる。
【００３８】
このようにクライアントアプリケーション１０、サーバアプリケーション２２のいずれから見てもそれぞれの処理は従来と変わることがない。本システムを適用するために必要となるのは、クライアントアプリケーション１０の接続先マシンの設定を、サーバアプリケーション２２が実際に動作するサーバ計算機６ではなく、プロキシクライアント１２が動作するモバイル端末２に変更することである。
【００３９】
本システムの構成によれば、クライアント側ソケット３２、サーバ側ソケット３４はそれぞれ同一マシンやＬＡＮ上に設定されるので、これらの箇所での通信切断は基本的には問題とならない。これに対してネットワーク４は携帯電話等の移動体通信や公衆網を含むため通信状態が悪い場合があり得、この箇所での通信切断の可能性を考慮する必要がある。本システムでは、通信モジュール１４，２６が自動復旧機能を有するので、プロキシクライアント１２からプロキシサーバ２４へ再度電話を掛けることにより再接続が行われ、データの再送等、必要な処理が自動的に行われる。つまり、クライアント／サーバシステムを例えばモバイル対応とする場合などにおいて、クライアントアプリケーション１０、サーバアプリケーション２２に回線障害への対応のための処理を作り込む修正を行わなくても、通信再開の機能が実現される。
【００４０】
また、上述のようにクライアントアプリケーション１０とサーバアプリケーション２２との間の処理はあたかも１つのソケットで接続されているかのように行われるが、実際には、両アプリケーションの間の接続は、クライアント側とサーバ側とで別個のソケットであって、それらが接続対応テーブル２０の接続関係によって取り持たれている。このような構成は、各クライアントアプリケーション１０とサーバアプリケーション２２との間で共通に利用されるプロキシクライアント１２とプロキシサーバ２４との間で、通信処理の違いを吸収することを可能とする。すなわち、個々のクライアントアプリケーション１０やサーバアプリケーション２２の通信部分を通信形態に応じて逐一作成し直す手間が不要となり、様々な通信形態に容易に対応できる。
【００４１】
また、通信時にセッションＩＤを生成し、これを用いて通信を行うことにより、クライアントアプリケーション１０とサーバアプリケーション２２との複数の接続関係を互いに識別することができ、データが誤って他のサーバアプリケーション２２に送られるといったことが防止され、正確な通信制御が実現される。
【００４２】
なお、プロキシクライアント１２、プロキシサーバ２４はそれぞれモバイル端末２、ゲートウェイマシン８上で動作するソフトウェアとして実現することができる。また接続対応テーブル２０は、例えばハードディスク等の磁気記録装置といった不揮発性媒体にファイルの形で保存される。プロキシクライアント１２は接続対応テーブル２０を参照する際に逐一、磁気記録装置にアクセスする構成とすることもできるし、メモリ上に接続対応テーブル２０を読み出して利用するように構成することできる。
【００４３】
［実施の形態２］
本発明の第２の実施の形態に係るクライアント／サーバシステムと上記実施の形態との構成の差異は、プロキシクライアントにある。図１０は本実施の形態に係るプロキシクライアント２５０のブロック構成図である。本実施の形態に係るシステムの構成は、図１のプロキシクライアント１２をプロキシクライアント２５０で置き換えたものとなる。他の構成要素は上記実施の形態と同様であり、以下それら同様の構成要素には同一の符号を用いて説明を行う。
【００４４】
プロキシクライアント２５０がプロキシクライアント１２と異なる点は、接続対応テーブル２０の記憶内容を変更するテーブル操作部２５２を有する点である。テーブル操作部２５２は、プロキシクライアント２５０は接続対応テーブル２０に記憶される対応関係の変更・追加・削除を行うことができる。それらの操作は例えばユーザの指示に基づいて行われる。例えば、テーブル操作部２５２は接続対応テーブル２０を格納したファイルをモバイル端末２のメモリ上に作業領域に読み込み、メモリ上で編集を行い、編集後のファイルを再びハードディスク等に保存するように構成することができる。またテーブル操作部２５２は、ユーザが接続対応テーブル２０の内容を確認しやすい形で表示装置に表示するとともに編集操作のための各種ツールを備えたものとすることができる。
【００４５】
プロキシクライアント２５０はこのようなテーブル操作部２５２を備えることにより、当該プロキシクライアント２５０の起動後に、接続対応テーブル２０に記録されているポート番号やサーバアドレスの変更、修正を行ったり、新たなプロトコルについて用いられる対応関係エントリを接続対応テーブル２０に追加する編集操作を行うことができる。そして、プロキシクライアント２５０は書き換えられた接続対応テーブル２０を用いて、上記実施の形態と同様の動作を行う。
【００４６】
［実施の形態３］
図１１は本発明の第３の実施の形態に係るプロキシクライアント３００のブロック構成図である。本実施の形態に係るシステムの構成は、図１のプロキシクライアント１２をプロキシクライアント３００で置き換えたものとなる。他の構成要素は上記実施の形態と同様であり、以下それら同様の構成要素には同一の符号を用いて説明を行う。
【００４７】
プロキシクライアント３００がプロキシクライアント１２と異なる点は、接続対応テーブル２０中のサーバアドレスの入力処理を行うサーバアドレス入力処理部３０２を有する点である。サーバアドレス入力処理部３０２は、入力要否判断部３０４と入力要求部３０６とを含んで構成される。
【００４８】
図１２は、サーバアドレス入力処理部３０２の動作説明に用いる接続対応テーブル２０の一例である。この図ではプロトコル“ｔｅｌｎｅｔ”に対してはプロトコル名“ｔｅｌｎｅｔ”で表される対応関係エントリが登録され、このサーバアドレスを指定するフィールド（アドレス指定フィールド）には、具体的なサーバアドレスではない“ＡＳＫ  ＵＳＥＲ”という値が格納されている。一方、プロトコル“ＨＴＴＰ”に対してはプロトコル名“ＨＴＴＰ”で表される対応関係エントリが登録され、そのアドレス指定フィールドには、具体的なＩＰアドレス“１９２．１６８．１．１”が格納されている。
【００４９】
プロトコル“ｔｅｌｎｅｔ”は、ＵＮＩＸ系のプロトコルであり、インターネットでは広く使われているものである。そのため、その通信相手先となるサーバ計算機６は一つに限定されないことが多い。すなわち、プロトコル“ｔｅｌｎｅｔ”に対しては、通信相手となるサーバ計算機６を通信接続ごとに変更できることが便利である。アドレス指定フィールドの値“ＡＳＫ  ＵＳＥＲ”は、そのような場合に指定される。サーバアドレス入力処理部３０２の入力要否判断部３０４は、通信接続の要求があると、それに対応した対応関係エントリを検索し、そのアドレス指定フィールドを参照する。そして、アドレス指定フィールドの値が、図における“ＨＴＴＰ”エントリのようにサーバ計算機６のアドレスを指定している場合には、入力要否判断部３０４はサーバアドレスをユーザに入力させる必要はないと判断し、プロキシクライアント３００は、その値を含む当該対応関係エントリに基づいてクライアントアプリケーション１０とサーバアプリケーション２２との通信接続を確立する。
【００５０】
一方、入力要否判断部３０４は、通信接続要求に応じて参照した対応関係エントリが図における“ｔｅｌｎｅｔ”エントリのように、アドレス指定フィールドの値が入力要求値“ＡＳＫ  ＵＳＥＲ”であることを検知すると、ユーザにサーバアドレスを入力させることが必要があると判断する。この判断を受けて、入力要求部３０６はユーザに対し、サーバアドレスの入力を求める。
【００５１】
プロキシクライアント３００は入力された値を用いて、例えば“ｔｅｌｎｅｔ”に対応した通信接続を行う。上述のように入力要求値が指定されたエントリを用いる接続要求に対しては、毎回、サーバアドレス入力を要求するように構成するために、入力されたサーバアドレスは、接続対応テーブル２０には格納されない。つまり、アドレス指定フィールドの入力要求値“ＡＳＫ  ＵＳＥＲ”はそのままに保持され、次回の接続要求時にもそれが参照され上述と同様の動作が繰り返される。入力されたサーバアドレスは、通信接続が維持されている間、通信接続に対して生成されるセッションＩＤと関係づけられて例えばモバイル端末２のメモリ上のプロキシクライアント３００の作業領域に保持され、通信接続が切断されるとセッションＩＤとともに消去される。
【００５２】
サーバアドレス入力処理部３０２の動作に基づいてユーザからサーバアドレスが入力され、セッションが確立された後は、本システムは第１の実施の形態と同様の動作を行う。
【００５３】
［実施の形態４］
図１３は本発明の第４の実施の形態に係るプロキシクライアント４００のブロック構成図である。本実施の形態に係るシステムの構成は、図１のプロキシクライアント１２をプロキシクライアント４００で置き換えたものとなる。他の構成要素は上記実施の形態と同様であり、以下それら同様の構成要素には同一の符号を用いて説明を行う。
【００５４】
プロキシクライアント４００がプロキシクライアント１２と異なる点は、まず、クライアントアプリケーション１０とサーバアプリケーション２２との間の通信に対して所定の付加処理を行うフィルタ（通信フィルタ）を少なくとも１つ有している点である。図においては、その通信フィルタ全部をまとめて通信フィルタ群４０２として表している。また、本システムの接続対応テーブル４０４の各対応関係エントリは、それが定義する通信接続において使用される通信フィルタを指定するフィールドを有している。
【００５５】
通信フィルタは、クライアントアプリケーション１０とサーバアプリケーション２２との間の通信内容を読み取り、それを加工することができる。また、通信開始時と通信終了時に所定の処理を行い、それにより生成されるデータをクライアントアプリケーション１０側やサーバアプリケーション２２側に送信することができる。通信フィルタは例えば具体的には、サーバアプリケーション２２から返信される文字列中から所定キーワードを見つけだし、それをマスクしてクライアントアプリケーション１０へ伝送するといった処理を行うものや、文字コード変換処理を行うもの、通信ログを作成するものなどである。
【００５６】
図１４は、本システムのプロキシクライアント４００の動作説明に用いる接続対応テーブル４０４の一例である。この図では“ｆｔｐ”エントリに対しては通信フィルタ指定フィールドには、“コード変換フィルタ”の指定がされ、“ｓｑｌｎｅｔ”エントリに対しては、“ログ出力フィルタ”の指定がされ、また“ＨＴＴＰ”エントリに対しては通信フィルタの指定がされていない。
【００５７】
次に、本システムの動作を説明する。クライアントアプリケーション１０から通信接続要求がなされると、プロキシクライアント４００は接続対応テーブル４０４を検索し、対応するエントリを見出す。プロキシクライアント４００は、見つけた対応関係エントリの通信フィルタ指定フィールドを参照し、そこに通信フィルタが指定されている場合には、通信フィルタ群４０２からその指定された通信フィルタを選択する。そして、プロキシクライアント４００は、選択したフィルタをソケット通信部１６とサーバ通信部１８との間に接続し、クライアントアプリケーション１０とサーバアプリケーション２２との通信を当該通信フィルタを経由させる。例えば、“ｆｔｐ”エントリの指定により“コード変換フィルタ”が選択され、これがソケット通信部１６とサーバ通信部１８との間に接続され、クライアントアプリケーション１０とサーバアプリケーション２２との間の通信内容を対象としてコード変換処理を行う。
【００５８】
一方、例えば“ＨＴＴＰ”エントリのように、対応関係エントリに通信フィルタが指定されていない場合には、ソケット通信部１６とサーバ通信部１８との間には通信フィルタは接続されず、第１の実施の形態と同様、クライアントアプリケーション１０とサーバアプリケーション２２との間の通信内容に対するフィルタ処理は行われない。
【００５９】
本システムにおける他の処理・動作は第１の実施の形態と基本的に同様である。
【００６０】
［実施の形態５］
本発明の第５の実施の形態に係るクライアント／サーバシステムのブロック構成は、第４の実施の形態と同様である。以下それら同様の構成要素には同一の符号を用いて説明を行う。
【００６１】
本システムは、クライアントアプリケーションからソケット接続されるサーバアプリケーションがその接続されるサーバポートの設定を、動的に、すなわち通信接続中に変化させるプロトコルに対応するものであり、それに対応した通信フィルタ（動的接続変更フィルタ）を有している。
【００６２】
例えば、オラクル社のデータベースのクライアント／サーバシステムの通信では、ｓｑｌｎｅｔＶ２というプロトコルが使用されている。このｓｑｌｎｅｔＶ２では、クライアントアプリケーションからサーバアプリケーションへソケット接続した後、サーバアプリケーション側でソケット接続されるポートが変更されうる。サーバアプリケーションは、ポートを変更する際、次に接続すべき新しいサーバポート番号などの情報をリダイレクトメッセージとしてクライアントアプリケーションへ送信する。クライアントアプリケーションは、そのリダイレクトメッセージに従い、新たにソケット接続を行い、初めに接続したソケットをシャットダウンする。
【００６３】
このｓｑｌｎｅｔＶ２を例に本システムの動作を説明する。図１５はその動作を説明するフロー図である。クライアントアプリケーション１０からの通信接続要求に応じて、通信フィルタフィールドにｓｑｌｎｅｔＶ２用フィルタが指定された“ｓｑｌｎｅｔＶ２”エントリが選択されると、プロキシクライアント４００は、ｓｑｌｎｅｔＶ２用フィルタをソケット通信部１６サーバ通信部１８との間に接続する。当該通信フィルタはクライアントアプリケーション１０とサーバアプリケーション２２との間の通信内容を逐一チェックする。
【００６４】
サーバアプリケーション２２がリダイレクトメッセージを送信すると（Ｓ５００）、プロキシサーバ２４が当該メッセージデータを受信し（Ｓ５０５）、第１の実施の形態で述べたようにそれを送信データとして格納した通信データメッセージを生成し、これをプロキシクライアント１２へ送信する（Ｓ５１０）。
【００６５】
プロキシクライアント１２は、サーバ通信部１８にてこれを受信し（Ｓ５１５）、その内容が通信フィルタに渡され、解析される（Ｓ５２０）。その解析の結果、リダイレクトメッセージに指定される新たなサーバポート情報が、例えば、サーバアドレス＝“ｓｅｒｖ１”，サーバポート番号＝“３０００”であるとする。
【００６６】
リダイレクトメッセージの受信に応じて、ソケット通信部１６は新たにクライアント側ソケット３２のポートを生成する（Ｓ５２５）。そのクライアントポート番号を、“２０００”とする。
【００６７】
プロキシクライアント１２は、リダイレクトメッセージに指定されたサーバポート情報と新たに生成したクライアントポート番号とを対応付ける対応関係エントリを接続対応テーブル４０４に追加登録する（Ｓ５３０）。そして、プロキシクライアント１２はリダイレクトメッセージのサーバポート情報部分を、新たに生成したクライアントポート番号で書き換え（Ｓ５３５）、この書き換えられたリダイレクトメッセージをクライアントアプリケーション１０に対して送信する（Ｓ５４０）。
【００６８】
クライアントアプリケーション１０は、この書き換えられたリダイレクトメッセージに従って、新たにソケット接続要求を行う。その結果、クライアント側ソケット３２が構築される（Ｓ５４５）。その後は、新たなセッションＩＤが割り当てられ、接続対応テーブル４０４に従って上記実施の形態と同様にクライアントアプリケーション１０はサーバアプリケーション２２に接続される。
【００６９】
なお、新たなクライアント側ソケット３２によって取って代わられる旧ソケットはシャットダウンされるが、その方法は第１の実施の形態で説明した通りである。この新ソケットと旧ソケットとは互いに異なるセッションＩＤが割り当てられ区別されるので、新ソケットによる通信開始と旧ソケットの終了との時間的な前後関係は問題にならない。
【００７０】
なお、ここでは、ｓｑｌｎｅｔＶ２を例に説明を行ったが、それ以外のプロトコルでもクライアントアプリケーション１０からサーバアプリケーション２２へ開くソケットのサーバポート番号が通信データを解析しなければ分からないようなものは、それに対応するフィルタを作成することにより対応可能である。
【００７１】
［実施の形態６］
本発明の第６の実施の形態に係るクライアント／サーバシステムのブロック構成は、第４の実施の形態と同様である。以下それら同様の構成要素には同一の符号を用いて説明を行う。
【００７２】
上述の実施の形態ではソケットはクライアントアプリケーション１０がクライアントプロセス、サーバアプリケーション２２がサーバプロセスとなる場合であった。本システムは、サーバアプリケーションからクライアントアプリケーションへソケット接続要求がなされる場合、つまりサーバアプリケーション２２がクライアントプロセス、クライアントアプリケーション１０がサーバプロセスとなるソケット接続が行われるプロトコルに対応するものであり、それに対応した通信フィルタ（逆方向通信処理フィルタ）を有している。
【００７３】
例えば、このようにサーバアプリケーション２２からクライアントアプリケーション１０へソケット接続が行われるプロトコルの例としてｆｔｐが挙げられる。図１６は本システムの特徴的動作である、サーバアプリケーション２２からクライアントアプリケーション１０へのソケット接続処理を説明するフロー図である。プロキシクライアント１２はサーバアプリケーション２２からクライアントアプリケーション１０へのソケット接続要求を検知すると通信フィルタ群４０２から逆方向通信処理フィルタを選択し、これをソケット通信部１６とサーバ通信部１８との間に接続する。
【００７４】
クライアントアプリケーション１０はサーバアプリケーション２２からのソケット接続要求を受信すると、ＰＯＲＴコマンドを送信する（Ｓ６００）。このＰＯＲＴコマンドには、サーバアプリケーション２２からの要求に応じて生成されたクライアントアプリケーション１０上のソケットのポート（逆方向通信用クライアントポート）のポート番号及びＩＰアドレスを含んだポート情報が格納される。
【００７５】
逆方向通信処理フィルタはこのＰＯＲＴコマンドを解析し（Ｓ６０５）、クライアントアプリケーション１０におけるポート生成を検知する。当該通信フィルタはＰＯＲＴコマンドを検知すると新たなセッションＩＤを取得し、逆方向通信開始メッセージを生成してプロキシサーバ２４へ送信する（Ｓ６１０）。図１７は、逆方向通信開始メッセージの模式図であり、メッセージ種別を示すヘッダに続いてセッションＩＤが格納されている。
【００７６】
プロキシサーバ２４は、逆方向通信開始メッセージを受信すると、ソケット通信部２８上にソケットのポート（逆方向通信用サーバポート）を生成する（Ｓ６１５）。そしてプロキシサーバ２４は、逆方向通信用サーバポートのポート番号を格納した逆方向通信開始結果メッセージを生成してプロキシクライアント１２へ送信する（Ｓ６２０）。図１８は、逆方向通信開始結果メッセージの模式図であり、メッセージ種別を示すヘッダに続いてセッションＩＤ及び逆方向通信用サーバポート番号が格納されている。
【００７７】
プロキシクライアント１２は、ＰＯＲＴコマンドに指定された逆方向通信用クライアントポートのポート番号にソケットをバインドする（Ｓ６２５）。つまり、クライアントアプリケーション１０に対しては、サーバアプリケーション２２の代わりにプロキシクライアント１２自身がソケット接続する。その一方で、通信フィルタは、逆方向通信結果メッセージにて取得した逆方向通信用サーバポートのポート番号でＰＯＲＴコマンドのポート情報を書き換え（Ｓ６３０）、サーバ通信部１８はその書き換えたＰＯＲＴコマンドを通信データメッセージに格納してプロキシサーバ２４へ送信する（Ｓ６３５）。
【００７８】
プロキシサーバ２４はこのメッセージを受信すると（Ｓ６４０）、当該メッセージから書き換えられたＰＯＲＴコマンドを取り出しサーバアプリケーション２２へ送信する（Ｓ６４５）。
【００７９】
サーバアプリケーション２２は、書き換えられたＰＯＲＴコマンドを受信すると、それに指定されたポートにソケットをバインドする。ここで、指定されたポートは逆方向通信用サーバポートであるので、当該ソケットはプロキシサーバ２４のソケット通信部２８上のポートにバインドされることになる。
【００８０】
また、接続対応テーブル４０４には、逆方向通信用クライアントポートと逆方向通信用サーバポートとの対応関係を定義するエントリが追加登録される。
【００８１】
サーバアプリケーション２２からクライアントアプリケーション１０へのソケット接続要求に対してこのような接続処理を行うことにより、プロキシクライアント１２、プロキシサーバ２４を経由した接続が実現される。ここで、クライアントアプリケーション１０、サーバアプリケーション２２における処理はプロキシクライアント１２、プロキシサーバ２４を中継しない場合と変わるところがない点に留意すべきである。すなわち、クライアントアプリケーション１０は自身が発行したＰＯＲＴコマンドに対して接続してきたプロキシクライアント１２をサーバアプリケーション２２とみなし、またサーバアプリケーション２２は書き換えられたＰＯＲＴコマンドに従って接続を行うことによりプロキシサーバ２４をクライアントアプリケーション１０とみなすこととなる。それらプロキシクライアント１２とプロキシサーバ２４との間は、接続対応テーブル４０４に基づいて接続され、通信の整合性が担保される。
【００８２】
なお、このように接続が確立された後の処理・動作は第１の実施の形態と同様である。
【００８３】
また、ここでは、ｆｔｐを例に説明を行ったが、それ以外のプロトコルでも通信中にサーバアプリケーション２２からクライアントアプリケーション１０へソケット接続を行い、そのポート番号がクライアントアプリケーション１０からの通信内容に記述されるものであれば、上述のようなフィルタ処理により、プロキシクライアント１２、プロキシサーバ２４を中継した接続が可能である。
【００８４】
［実施の形態７］
図１９、図２０はそれぞれ本発明の第７の実施の形態に係るモバイル端末７００、ゲートウェイマシン７０２のブロック構成図である。本実施の形態に係るシステムの構成は、図１のモバイル端末２、ゲートウェイマシン８をそれぞれモバイル端末７００、ゲートウェイマシン７０２で置き換えたものとなる。なお、上記実施の形態と同様の機能を有する構成要素は、以下の説明において上記実施の形態の構成要素と同一の符号を用いて示すこととする。
【００８５】
モバイル端末７００がモバイル端末２と異なる点は、まず通信モジュールが複数設けられている点である。つまり、モバイル端末７００は、互いに異なる機能を有する通信モジュール７０４-1，７０４-2，…，７０４-nを有している。そして、これらの通信モジュール７０４のいずれかをクライアントアプリケーション１０とサーバアプリケーション２２との通信に使用される通信モジュールとして選択する通信モジュール選択部７０６がプロキシクライアント７０８に設けられている。
【００８６】
また、ゲートウェイマシン７０２がゲートウェイマシン８と異なる点は、まず、通信モジュールが複数設けられている点である。つまり、ゲートウェイマシン７０２は、互いに異なる機能を有する通信モジュール７１０-1，７１０-2，…，７１０-nを有している。そして、これらの通信モジュール７１０のいずれかをクライアントアプリケーション１０とサーバアプリケーション２２との通信に使用される通信モジュールとして選択する通信モジュール選択部７１２がプロキシサーバ７１４に設けられている。
【００８７】
これらモバイル端末７００の複数の通信モジュール７０４とゲートウェイマシン７０２の複数の通信モジュール７１０とは互いに対応している。つまり、通信モジュール７０４-1と通信モジュール７１０-1、通信モジュール７０４-2と通信モジュール７１０-2、…というように対応し、対応関係にある通信モジュール対は同一の通信処理に対応している。これら通信モジュール７０４，７１０が備えうる通信処理機能としては、例えば、上述したように通信が切断されても自動復旧できるモバイル対応の機能、通信内容を暗号化する機能、プロトコル間の翻訳機能を有する機能、モバイル端末２の現在位置やネットワークの状態に応じて最適な通信路を選択して通信費を抑制する機能、通信内容をキューイングすることによりオフライン時にデータを溜めてオンライン時にまとめて送信する機能などがある。
【００８８】
通信モジュール選択部７１２は、サーバアプリケーション２２に対応して通信モジュール７１０を選択する。モバイル端末７００では、その上で起動されるクライアントアプリケーション１０がサービスを要求するサーバアプリケーション２２に対応した通信モジュール７１０に応じた通信モジュール７０４が通信モジュール選択部７０６により選択される。
【００８９】
このように、異なる機能を有する複数の通信モジュールを備え、それらを必要に応じて切り換えて使用することにより、それらの有する異なる通信機能による付加価値をプロキシクライアント１２を用いた通信で得ることができる。
【００９０】
［実施の形態８］
図２１は本発明の第８の実施の形態に係るモバイル端末８００のブロック構成図である。本実施の形態に係るシステムの構成は、図１のモバイル端末２をモバイル端末８００で置き換えたものとなる。また、本システムではサーバ計算機６はネットワーク４に複数接続されうる。なお、上記実施の形態と同様の機能を有する構成要素は、以下の説明において上記実施の形態の構成要素と同一の符号を用いて示すこととする。
【００９１】
モバイル端末８００が第７の実施の形態に係るモバイル端末７００と異なる点は、プロキシクライアント８０２がサーバ対通信モジュール対応テーブル８０４を備える点である。
【００９２】
図２２は、サーバ対通信モジュール対応テーブル８０４の一例の模式図である。サーバ対通信モジュール対応テーブル８０４は、サーバ計算機６と通信モジュール７０４との対応関係を定義するものである。
【００９３】
本システムでは、プロキシクライアント８０２がクライアントアプリケーション１０からソケット接続を受け、プロキシサーバ２４を介してサーバ計算機６と通信する際に、サーバ対通信モジュール対応テーブル８０４を参照し、通信相手となるサーバ計算機６に対応した通信モジュール７０４を選択し、通信接続が確立される。
【００９４】
以降の動作は、上述実施の形態と同様である。
【００９５】
このようにサーバ計算機６毎に通信モジュール７０４を変更することにより、例えば重要なデータが保管されているサーバ計算機６との通信には暗号化通信モジュールを使用し、それ以外のサーバ計算機６との通信には暗号化しない通信モジュールを使用することとして通信速度の高速化を図るといったサーバ計算機６毎に最適な通信モジュールの使用が実現される。
【００９６】
［実施の形態９］
図２３は本発明の第９の実施の形態に係るモバイル端末９００のブロック構成図である。本実施の形態に係るシステムの構成は、図１のモバイル端末２をモバイル端末９００で置き換えたものとなる。また、本システムではプロキシサーバ２４はネットワーク４に複数接続されうる。なお、上記実施の形態と同様の機能を有する構成要素は、以下の説明において上記実施の形態の構成要素と同一の符号を用いて示すこととする。
【００９７】
モバイル端末９００が第８の実施の形態に係るモバイル端末８００と異なる点は、プロキシクライアント９０２がプロキシサーバ対通信モジュール対応テーブル９０４を備える点である。
【００９８】
図２４は、プロキシサーバ対通信モジュール対応テーブル９０４の一例の模式図である。プロキシサーバ対通信モジュール対応テーブル９０４は、複数のプロキシサーバ２４と通信モジュール７０４との対応関係を定義するものである。
【００９９】
本システムでは、プロキシクライアント９０２がクライアントアプリケーション１０からソケット接続を受け、プロキシサーバ２４と通信する際に、プロキシサーバ対通信モジュール対応テーブル９０４を参照し、通信相手となるプロキシサーバ２４に対応した通信モジュール７０４を選択し、通信接続が確立される。
【０１００】
以降の動作は、上述実施の形態と同様である。
【０１０１】
このようにプロキシサーバ２４毎に通信モジュール７０４を変更することにより、例えばインターネット経由で接続するプロキシサーバ２４との通信には暗号化通信モジュールを使用し、それ以外のサーバ計算機６との通信には暗号化しない通信モジュールを使用することとして通信速度の高速化を図るといったプロキシサーバ２４毎に最適な通信モジュールの使用が実現される。
【０１０２】
［実施の形態１０］
図２５は本発明の第１０の実施の形態に係るモバイル端末１０００のブロック構成図である。本実施の形態に係るシステムの構成は、図１のモバイル端末２をモバイル端末１０００で置き換えたものとなる。ちなみに、図２５に示すようにモバイル端末１０００は複数の通信モジュール７０４を有し、これに対応して本システムのプロキシサーバは例えば図２０に示す第７の実施の形態のプロキシサーバ７０２と同様、複数の通信モジュール７１０を備えたものである。なお、上記実施の形態と同様の機能を有する構成要素は、以下の説明において上記実施の形態の構成要素と同一の符号を用いて示すこととする。
【０１０３】
本システムの特徴は、接続対応テーブル１００２の各対応関係エントリが、それが定義する通信接続において使用される通信モジュールを指定するフィールドを有している点にある。図２６は、本システムにおける接続対応テーブルの一例の模式図である。
【０１０４】
この図では“ｓｑｌｎｅｔ”エントリに対しては通信モジュール指定フィールドには、“暗号化通信モジュール”の指定がされ、“ＨＴＴＰ”エントリに対しては、“圧縮通信モジュール”の指定がされている。
【０１０５】
次に、本システムの動作を説明する。クライアントアプリケーション１０から通信接続要求がなされると、プロキシクライアント１００４は接続対応テーブル１００２を検索し、対応するエントリを見出す。プロキシクライアント１００４は、見つけた対応関係エントリの通信モジュール指定フィールドを参照し、そこに通信モジュールが指定されている場合には、通信モジュール７０４-1〜７０４-nの中から指定された通信モジュールを選択する。そして、プロキシクライアント１００４は、選択した通信モジュール７０４を用いてプロキシサーバ７１４と通信する。例えば通信プロトコルが“ｓｑｌｎｅｔ”の場合は暗号化通信モジュールが選択され、暗号化された通信内容がプロキシクライアント１００４とプロキシサーバ７１４との間で送受される。また例えば通信プロトコルが“ＨＴＴＰ”の場合は圧縮通信モジュールが選択され、通信内容は圧縮されずに圧縮されてプロキシクライアント１００４からプロキシサーバ７１４へ送信される。
【０１０６】
このように接続対応テーブル１００２のエントリ毎に通信モジュール７０４を変更することにより、例えばデータ量が多いプロトコルの場合は圧縮通信モジュールを使用し、重要なデータが伝送されるプロトコルの場合は暗号化通信モジュールを使用するというように、例えばプロトコル別に通信モジュールを使い分けることができる。
【０１０７】
［実施の形態１１］
図２７は本発明の第１１の実施の形態に係るクライアント／サーバシステムの概略のブロック構成図である。本システムではモバイル端末２はネットワーク４に複数接続されうる。なお、上記実施の形態と同様の機能を有する構成要素は、以下の説明において上記実施の形態の構成要素と同一の符号を用いて示すこととする。
【０１０８】
本システムでは、上述したように複数のモバイル端末２が一つのプロキシサーバ１１００に接続される。これに対応してプロキシサーバ１１００は、接続を要求してきた異なるモバイル端末２上のクライアントアプリケーション１０を識別するため、複数のモバイル端末２を互いに識別するクライアントＩＤを生成することができる。
【０１０９】
以下、本システムの動作を説明する。各プロキシクライアント１２は起動時に図２８に示すクライアントＩＤ取得メッセージをプロキシサーバ１１００へ送信する。クライアントＩＤ取得メッセージは、例えばメッセージ種別を表すヘッダで構成される。プロキシサーバ１１００はこのメッセージを受信すると、新しいクライアントＩＤを生成して、これを図２９に示すクライアントＩＤ取得結果メッセージに格納して、クライアントＩＤ取得メッセージを送信してきたプロキシクライアント１２へ送信する。クライアントＩＤ取得結果メッセージは、例えばメッセージ種別を表すヘッダとクライアントＩＤとで構成される。
【０１１０】
クライアントアプリケーション１０がサーバアプリケーション２２に対して通信開始する場合には、図３０に示す通信開始メッセージがプロキシサーバ１１００に送信される。図３０と図４とを比較すると分かるように、本システムの通信開始メッセージは、クライアントＩＤを格納されている点が上記実施の形態の通信開始メッセージと異なる。同様に、図３１，３２をそれぞれ図６，８と比較すると分かるように、本システムの通信データメッセージ、通信終了メッセージは、クライアントＩＤを格納されている点が上記実施の形態の通信データメッセージ、通信終了メッセージと異なる。
【０１１１】
このように、本システムでは、プロキシクライアント１２とプロキシサーバ１１００との間のメッセージにクライアントＩＤが付加されるので、複数のモバイル端末２から同時にメッセージが送られてきても、プロキシサーバ１１００はそれら処理を区別して行うことができる。
【０１１２】
なお、本システムでは、プロキシクライアント１２はその処理を終了する際には、図３３に示すクライアントＩＤ解放メッセージをプロキシサーバ１１００に送信し、ＩＤの利用終了を通知する。
【０１１３】
【発明の効果】
本発明のクライアント／サーバシステムによれば、通信モジュールに自動復旧機能を有するものを用いることにより、プロキシクライアント部からプロキシサーバ部へ再度電話を掛けることにより再接続が行われ、データの再送等、必要な処理が自動的に行われる。つまり、クライアント／サーバシステムを例えばモバイル対応とする場合などにおいて、クライアントアプリケーション、サーバアプリケーションに回線障害への対応のための処理を作り込む修正を行わなくてもよく、通信再開の機能が容易に実現されるという効果が得られる。
【０１１４】
また、クライアントアプリケーションとサーバアプリケーションとの間の処理はあたかもクライアントアプリケーション、サーバアプリケーションそれぞれからは１つのソケットで接続されているかのように見えるため、この意味でも、両者の間を１つのソケットで接続するように構成されたシステムのために作成されたクライアントアプリケーション、サーバアプリケーションの通信部分の作り直しが不要である。本発明のシステムでは実際には、両アプリケーションの間の接続は、クライアント側とサーバ側とで別個のソケットであって、それらが接続対応テーブルの接続関係によって取り持たれている。このような構成は、各クライアントアプリケーションとサーバアプリケーションとの間で共通に利用されるプロキシクライアント／プロキシサーバ間で、通信処理の違いを吸収することを可能とする。すなわち、本発明によれば、個々のクライアントアプリケーションやサーバアプリケーションの通信部分を通信形態に応じて逐一作成し直す手間が削減され、様々な通信形態に容易に対応できるという効果が得られる。
【０１１５】
本発明のクライアント／サーバシステムによれば、プロキシクライアント部がユーザ入力に応じて接続対応テーブルの記憶内容を変更することができ、例えば新たなプロトコルへの対応も可能となる。このように本発明によれば、システムの拡張、変更に容易に対応できるという効果が得られる。
【０１１６】
本発明のクライアント／サーバシステムによれば、接続対応テーブルがサーバ計算機のアドレスを指定するアドレス指定フィールドを有し、当該フィールドの内容に基づいてユーザに前記アドレスの入力を求める。本発明によれば、接続相手先となるサーバ計算機６が複数存在するシステムにおいて、高い頻度で接続相手先サーバ計算機を変更するプロトコル等の接続形態において、その変更のためのユーザインターフェースが提供され、ユーザが接続相手先サーバ計算機の変更を行うことが容易となるという効果が得られる。
【０１１７】
本発明のクライアント／サーバシステムによれば、クライアントアプリケーションとサーバアプリケーションとの間の通信に対して所定の付加処理を行うフィルタが用意され、接続対応テーブルはフィルタの指定が記述されるフィールドを有する。本発明によれば、クライアントアプリケーションとサーバアプリケーションとの接続に際して、接続対応テーブルに定義される対応関係毎に所望の機能を有したフィルタが選択され、そのフィルタの機能が利用できる。つまり、高付加価値を有した通信接続が、クライアントアプリケーションとサーバアプリケーションとの接続に際して自動的に実現されるという効果が得られる。
【０１１８】
本発明のクライアント／サーバシステムによれば、通信内容の解析によりサーバポート情報が取得され、当該サーバポート情報に基づいて新たな前記対応関係が生成され接続対応テーブルに登録され、この新たな対応関係に基づいてクライアントアプリケーションとサーバアプリケーションとの通信接続が行われる。これによりサーバアプリケーションからクライアントアプリケーションへサーバポート情報を送信し当該サーバポート情報に応じて前記サーバアプリケーションと前記クライアントアプリケーションとの通信接続関係を変化させるという特殊な通信プロトコルに対しても、上述した効果を得ることができる。
【０１１９】
本発明のクライアント／サーバシステムによれば、サーバアプリケーションからクライアントポートへの通信接続要求に応じた通信内容を解析する逆方向通信処理フィルタを有し、当該フィルタは、前記通信接続要求に応じたクライアントアプリケーションにおける逆方向通信用クライアントポートの生成を検知し、プロキシサーバ部は逆方向通信用クライアントポートの生成検知に応じて、サーバアプリケーションが接続される逆方向通信用サーバポートを生成し、接続対応テーブルは、逆方向通信用サーバポートと逆方向通信用クライアントポートとの対応関係を記憶し、当該接続対応テーブルに基づいて、前記クライアントアプリケーションと前記サーバアプリケーションとの通信接続が行われる。これによりサーバアプリケーションからクライアントアプリケーションへ新たに通信接続を行うという特殊な通信プロトコルに対しても、上述した効果を得ることができる。
【０１２０】
本発明のクライアント／サーバシステムによれば、異なる機能を有する複数の通信モジュールがプロキシクライアント部側、プロキシサーバ部側にそれぞれ設けられ、それらが切り換えられて使用される。これにより、多様な通信形態への容易な対応が可能なシステムにおいて、通信モジュールが有する付加価値を有効に利用することができるという効果が得られる。
【０１２１】
本発明のクライアント／サーバシステムによれば、複数のサーバ計算機それぞれとそれに対応して使用される通信モジュールとの対応関係を記憶するサーバ対通信モジュール対応テーブルを有することにより、複数サーバ計算機のそれぞれに適した通信モジュールが、クライアントアプリケーションとサーバアプリケーションとの接続の際に自動的に選択され、通信モジュールが有する付加価値を有効に利用することができるという効果が得られる。
【０１２２】
本発明のクライアント／サーバシステムによれば、複数のプロキシサーバ部それぞれとそれに対応して使用される通信モジュールとの対応関係を記憶するプロキシサーバ部対通信モジュール対応テーブルを有することにより、複数プロキシサーバのそれぞれに適した通信モジュールが、クライアントアプリケーションとサーバアプリケーションとの接続の際に自動的に選択され、通信モジュールが有する付加価値を有効に利用することができるという効果が得られる。
【０１２３】
本発明のクライアント／サーバシステムによれば、接続対応テーブルのエントリ毎に、使用される通信モジュールの指定を有することにより、各エントリに適した通信モジュールが、クライアントアプリケーションとサーバアプリケーションとの接続の際に自動的に選択され、通信モジュールが有する付加価値を有効に利用することができるという効果が得られる。
【０１２４】
本発明のクライアント／サーバシステムによれば、プロキシクライアント部を互いに区別するクライアント識別子が定義され、プロキシクライアント部とプロキシサーバ部との間の通信メッセージに格納される。これにより、複数のプロキシクライアント部を識別することができ、上述の多様な通信接続形態に対応できるなどの効果を有するシステムが、複数の移動端末を含んだシステムに拡張されるという効果がある。
【図面の簡単な説明】
【図１】  第１の実施の形態に係るクライアント／サーバシステムの概略のブロック図である。
【図２】  接続対応テーブルの構成を模式的に示す説明図である。
【図３】  第１の実施の形態におけるクライアントアプリケーションとサーバアプリケーションとの通信接続処理を説明するフロー図である。
【図４】  通信開始メッセージの模式図である。
【図５】  第１の実施の形態におけるクライアントアプリケーションとサーバアプリケーションとの間での通信処理を説明するフロー図である。
【図６】  通信データメッセージの模式図である。
【図７】  第１の実施の形態におけるクライアントアプリケーションから通信を終了する場合の処理を説明するフロー図である。
【図８】  通信終了メッセージの模式図である。
【図９】  第１の実施の形態におけるサーバアプリケーションから通信を終了する場合の処理を説明するフロー図である。
【図１０】  第２の実施の形態に係るプロキシクライアントのブロック構成図である。
【図１１】  第３の実施の形態に係るプロキシクライアントのブロック構成図である。
【図１２】  サーバアドレス入力処理部の動作説明に用いる接続対応テーブル２０の一例の模式図である。
【図１３】  第４の実施の形態に係るプロキシクライアントのブロック構成図である。
【図１４】  第４の実施の形態に係る接続対応テーブルの一例の模式図である。
【図１５】  第５の実施の形態に係るシステムの動作を説明するフロー図である。
【図１６】  第６の実施の形態におけるサーバアプリケーションからクライアントアプリケーションへのソケット接続処理を説明するフロー図である。
【図１７】  逆方向通信開始メッセージの模式図である。
【図１８】  逆方向通信開始結果メッセージの模式図である。
【図１９】  第７の実施の形態に係るモバイル端末のブロック構成図である。
【図２０】  第７の実施の形態に係るゲートウェイマシンのブロック構成図である。
【図２１】  第８の実施の形態に係るモバイル端末のブロック構成図である。
【図２２】  サーバ対通信モジュール対応テーブルの一例の模式図である。
【図２３】  第９の実施の形態に係るモバイル端末のブロック構成図である。
【図２４】  プロキシサーバ対通信モジュール対応テーブルの一例の模式図である。
【図２５】  第１０の実施の形態に係るモバイル端末のブロック構成図である。
【図２６】  第１０の実施の形態に係る接続対応テーブルの一例の模式図である。
【図２７】  第１１の実施の形態に係るクライアント／サーバシステムの概略のブロック構成図である。
【図２８】  クライアントＩＤ取得メッセージの模式図である。
【図２９】  クライアントＩＤ取得結果メッセージの模式図である。
【図３０】  第１１の実施の形態に係る通信開始メッセージの模式図である。
【図３１】  第１１の実施の形態に係る通信データメッセージの模式図である。
【図３２】  第１１の実施の形態に係る通信終了メッセージの模式図である。
【図３３】  クライアントＩＤ解放メッセージの模式図である。
【符号の説明】
２，７００，８００，９００，１０００  モバイル端末、４  ネットワーク、６  サーバ計算機、８，７０２  ゲートウェイマシン、１０  クライアントアプリケーション、１２，２５０，３００，４００，７０８，８０２，９０２，１００４  プロキシクライアント、１４，２６，７０４，７１０  通信モジュール、１６，２８  ソケット通信部、１８  サーバ通信部、２０，４０４，１００２  接続対応テーブル、２２  サーバアプリケーション、２４，７１４，１１００  プロキシサーバ、３０  クライアント通信部、３２  クライアント側ソケット、３４  サーバ側ソケット、２５２  テーブル操作部、３０２  サーバアドレス入力処理部、３０４  入力要否判断部、３０６  入力要求部、４０２  通信フィルタ群、７０６，７１２  通信モジュール選択部、８０４  サーバ対通信モジュール対応テーブル、９０４  プロキシサーバ部対通信モジュール対応テーブル。
【図１】
0003929186.tif 000002
【図２】
0003929186.tif 000003
【図３】
0003929186.tif 000004
【図４】
0003929186.tif 000005
【図５】
0003929186.tif 000006
【図６】
0003929186.tif 000007
【図７】
0003929186.tif 000008
【図８】
0003929186.tif 000009
【図９】
0003929186.tif 000010
【図１０】
0003929186.tif 000011
【図１１】
0003929186.tif 000012
【図１２】
0003929186.tif 000013
【図１３】
0003929186.tif 000014
【図１４】
0003929186.tif 000015
【図１５】
0003929186.tif 000016
【図１６】
0003929186.tif 000017
【図１７】
0003929186.tif 000018
【図１８】
0003929186.tif 000019
【図１９】
0003929186.tif 000020
【図２０】
0003929186.tif 000021
【図２１】
0003929186.tif 000022
【図２２】
0003929186.tif 000023
【図２３】
0003929186.tif 000024
【図２４】
0003929186.tif 000025
【図２５】
0003929186.tif 000026
【図２６】
0003929186.tif 000027
【図２７】
0003929186.tif 000028
【図２８】
0003929186.tif 000029
【図２９】
0003929186.tif 000030
【図３０】
0003929186.tif 000031
【図３１】
0003929186.tif 000032
【図３２】
0003929186.tif 000033
【図３３】
0003929186.tif 000034