JP3608905B2 - データ通信システム及びデータ通信方法 - Google Patents
データ通信システム及びデータ通信方法 Download PDFInfo
- Publication number
- JP3608905B2 JP3608905B2 JP13993697A JP13993697A JP3608905B2 JP 3608905 B2 JP3608905 B2 JP 3608905B2 JP 13993697 A JP13993697 A JP 13993697A JP 13993697 A JP13993697 A JP 13993697A JP 3608905 B2 JP3608905 B2 JP 3608905B2
- Authority
- JP
- Japan
- Prior art keywords
- communication
- application
- data
- identification information
- line
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Computer And Data Communications (AREA)
- Maintenance And Management Of Digital Transmission (AREA)
Description
【発明の属する技術分野】
本発明は、データ通信システム、特に通信回線を介したアプリケーション間通信の実行中に通信回線が切断されたとき並びにその後復旧されたときの処理に関する。
【0002】
【従来の技術】
図12は、データ通信システムの一形態として従来からあるクライアント・サーバシステムの一例を示したシステム構成図である。図12において、回線制御部1,2は、それぞれクライアント3、サーバ4において所定の通信プロトコルに基づき通信回線5を介しての通信処理を行うための手段である。アプリケーション実行部6,7は、相互にデータ送受信を行うアプリケーションを実行するための手段であり、実行中の各アプリケーションがデータ通信を行うことになる。
【0003】
従来のクライアント・サーバシステムにおいて例えばTCP/IPプロトコルに基づき通信を行う場合、各回線制御部1,2は、通信相手先(サーバ4、クライアント3)との間のソケットをオープンして通信路を確立し、アプリケーション間から/へのデータの受け渡しを行う。
【0004】
ところで、無線回線や電話回線などの回線品質や使用環境によっては、通信回線5がデータ通信中に一時的に切れてしまう場合がある。通信プロトコルには、データ再送機能を有しているものも少なくないため、一時的な切断であれば、アプリケーションに通信エラーステータスを返すことなく通信プロトコルレベルで自動復旧して対応することも可能であるが、通信プロトコルレベルでの再送の試行回数が所定数を越えてしまったりタイムアウトが発生したりして、結果的に通信プロトコルレベルで対応がしきれない場合がある。
【0005】
その後、通信回線5が復旧したとき、各アプリケーションは、通信路を再形成し処理を再開することになるが、例えばクライアント3で動作していたデータ送信アプリケーションは、回線断前に通信をしていたサーバ4で待機中のデータ受信アプリケーションと予め決めていた手順に従い通信路を再形成して通信を再開することになる。
【0006】
【発明が解決しようとする課題】
しかしながら、従来においては、回線が復旧したとき、サーバにおいて複数のデータ受信アプリケーションが待機していた場合、データ送信アプリケーションは、どのデータ受信アプリケーションと通信路を再形成して処理を再開すればよいのか一意に特定できない。このため、データ送信アプリケーションは、やむを得ずデータ受信アプリケーションを再起動して最初から処理をやり直すことになるが、この際、回線断前に行っていた処理結果を破棄しなければならず効率的でない。場合によっては、どこまで前回の処理結果を破棄すべきなのか特定できない場合もあり得る。
【0007】
本発明は以上のような問題を解決するためになされたものであり、その目的は、回線断から復旧した後にアプリケーション間通信の再開を自動的に行うデータ通信システム及びデータ通信方法を提供することにある。
【0008】
【課題を解決するための手段】
以上のような目的を達成するために、第1の発明に係るデータ通信システムは、通信回線を介して他のアプリケーションとの間でデータ通信を双方向に行うアプリケーションを実行するアプリケーション実行手段と、所定の通信手順に基づき回線の接続、切断、復旧処理及びその旨の通知を行う回線制御手段とを備えたコンピュータを有するデータ通信システムにおいて、通信回線を介して相互にデータ通信を行うアプリケーションの組を識別するための組識別情報に、組を構成する各アプリケーションの識別情報を対応させて記憶する通信管理テーブルと、アプリケーションの間に通信路が確立された時点で当該通信路が確立されたアプリケーションの組に対して、当該アプリケーションの組を識別するための組識別情報を割り当て前記通信管理テーブルに登録する組識別情報管理手段と、アプリケーションが動作する前記各コンピュータに設けられ、アプリケーション間のデータ通信処理を行う通信処理手段とを有し、前記通信処理手段は、通信路が確立されたときに組識別情報が割り当てられた各アプリケーションに対して、その割り当てた組識別情報を通知し、前記アプリケーション実行手段は、組を構成する他方のアプリケーションに対して送信する通信データに、前記通信処理手段から通知された組識別情報を付加し、前記通信処理手段は、一方のアプリケーションから送信された通信データに付加されている組識別情報に基づき前記通信管理テーブルを検索することによって通信データの送信先となるアプリケーションを特定するものである。
【0009】
第2の発明に係るデータ通信システムは、少なくとも2台のコンピュータを有するデータ通信システムにおいて、第1のコンピュータは、第2のコンピュータにおいて動作する第2のアプリケーションとの間で通信回線を介してデータ通信を双方向に行う第1のアプリケーションを実行する第1のアプリケーション実行手段と、所定の通信手順に基づき回線の接続、切断、復旧処理及びその旨の通知を行う第1の回線制御手段と、通信回線を介して相互にデータ通信を行う第1及び第2のアプリケーションの組を識別するための組識別情報に、組を構成する各アプリケーションの識別情報を対応させて記憶する通信管理テーブルと、第1及び第2のアプリケーションの間に通信路が確立された時点で当該通信路が確立された第1及び第2のアプリケーションの組に対して、当該第1及び第2のアプリケーションの組を識別するための組識別情報を割り当て前記通信管理テーブルに登録する組識別情報管理手段と、第1及び第2のアプリケーション間のデータ通信処理を行う第1の通信処理手段とを有し、第1のコンピュータと通信を行う少なくとも1台の第2のコンピュータは、第1のコンピュータにおいて動作する第1のアプリケーションとの間で通信回線を介してデータ通信を双方向に行う第2のアプリケーションを実行する第2のアプリケーション実行手段と、所定の通信手順に基づき回線の接続、切断、復旧処理及びその旨の通知を行う第2の回線制御手段と、第1及び第2のアプリケーション間のデータ通信処理を行う第2の通信処理手段とを有し、前記第1の通信処理手段は、通信路が確立されたときに組識別情報が割り当てられた第1のアプリケーション及び前記第2の通信処理手段に対して、その割り当てた組識別情報を通知し、前記第1のアプリケーション実行手段は、第1のアプリケーションと組を構成する第2のアプリケーションに対して送信する通信データに、前記第1の通信処理手段から通知された組識別情報を付加し、前記第1の通信処理手段は、一方のアプリケーションから送信された通信データに付加されている組識別情報に基づき前記通信管理テーブルを検索することによって通信データの送信先となるアプリケーションを特定し、前記第2の通信処理手段は、通信路が確立されたときに組識別情報が割り当てられた第2のアプリケーションに対して、その割り当てた組識別情報を通知し、前記第2のアプリケーション実行手段は、第2のアプリケーションと組を構成する第1のアプリケーションに対して送信する通信データに、前記第2の通信処理手段から通知された組識別情報を付加し、前記第2の通信処理手段は、第2のアプリケーションから送られてきた通信データを前記第1のコンピュータへ送信し、また前記第1のコンピュータから送られてきた通信データを前記第1の通信処理手段により特定された第2のアプリケーションへ送信するものである。
【0010】
第3の発明に係るデータ通信方法は、通信回線を介して接続された各コンピュータ上のアプリケーション間でデータ通信を双方向に行わせるデータ通信システムにおいて、通信回線を介して相互にデータ通信を行うアプリケーション間に通信路が確立された時点で、当該通信路が確立されたアプリケーションの組を識別するための組識別情報を当該アプリケーションの組に割り当て、その割り当てた組識別情報に当該組を構成する各アプリケーションの識別情報を対応させて通信管理テーブルに登録すると共に、当該組を構成する各アプリケーションに対して、その割り当てた組識別情報を通知する通信路確立時ステップと、アプリケーション間でデータ通信を行う際に、組を構成する他方のアプリケーションに対して送信する通信データに、前記通信路確立時ステップにより通知された組識別情報を付加するステップと、一方のアプリケーションから送信された通信データに付加された組識別情報に基づき前記通信管理テーブルを検索することによって当該通信データの送信先となるアプリケーションを特定するステップとを含むものである。
【0011】
第4の発明に係るデータ通信システムは、第1又は2の発明において、前記コンピュータは、送信データを保持するための送信データ保持手段を有し、前記通信処理手段は、アプリケーションから渡された送信データを前記送信データ保持手段に一時保持するものである。
【0012】
第5の発明に係るデータ通信システムは、第2の発明において、前記第1のコンピュータにおける前記第1の通信処理手段は、回線断が発生したときにその旨を示すフラグ情報を組識別情報に付加して前記通信管理テーブルに記憶し、回線復旧直後のデータ通信時に回線復旧直後のデータである旨をデータ受信側のアプリケーションに通知するものである。
【0015】
第6の発明に係るデータ通信システムは、第2の発明において、前記第1のコンピュータは、サーバコンピュータであり、前記第2のコンピュータは、前記サーバコンピュータと前記通信回線を介してデータ通信を相互に行う1乃至複数のクライアントコンピュータであるものとする。
【0016】
【発明の実施の形態】
以下、図面に基づいて、本発明の好適な実施の形態について説明する。
【0017】
実施の形態1.
図1は、本発明に係るデータ通信システムの実施の形態1を示した全体構成図である。本実施の形態では、本発明に係るデータ通信システムを有線若しくは無線の通信回線5を介して接続されたコンピュータ(クライアント10及びサーバ30)で構成され、TCP/IPに基づきデータ通信を行うクライアント・サーバシステムに適用した場合の例で説明する。なお、クライアント10及びサーバ30は、一般的なコンピュータであり、データの送受信を双方向に行うことができる。また、本実施の形態では、便宜上、1台のクライアント10のみを図示する。なお、本実施の形態では、第1のコンピュータがサーバ30であり、第2のコンピュータがクライアント10である。
【0018】
クライアント10は、アプリケーション実行部11、回線制御部12及び通信処理部13を有している。アプリケーション実行部11は、通信回線5を介してデータ通信を行うアプリケーションを実行するアプリケーション実行手段である。回線制御部12は、回線制御手段として設けられ、所定の通信手順に基づき回線の接続、切断、復旧処理等の回線制御、通信制御を行い、更に回線断、復旧等が発生した旨の通知を行う。TCP/IPの通信プロトコルに基づく通信を行う場合、サーバ30との間のソケットをオープンする。通信処理部13は、通信処理手段として設けられ、アプリケーション間のデータ通信処理を行う。また、詳細は後述するが、アプリケーションに対してそのアプリケーションに割り当てられた組識別情報を通知する。
【0019】
サーバ30は、アプリケーション実行部31、回線制御部32、通信処理部33、組識別情報管理部34及び通信管理テーブル35を有している。アプリケーション実行部11は、通信回線5を介してデータ通信を行うアプリケーションを実行するアプリケーション実行手段であり、同時に複数の通信アプリケーションを実行することができる。回線制御部12は、回線制御手段として設けられ、所定の通信手順に基づき回線の接続、切断、復旧処理等の回線制御、通信制御を行い、更に回線断、復旧等が発生した旨の通知を行う。TCP/IPの通信プロトコルに基づく通信を行う場合、クライアント10との間のソケットをオープンする。通信処理部33は、通信処理手段として設けられ、アプリケーション間のデータ通信処理を行う。また、詳細は後述するが、アプリケーションに対してそのアプリケーションに割り当てられた組識別情報を通知する。組識別情報管理部34は、通信回線5を介して相互にデータ通信を行う相互のアプリケーションの組を識別するための組識別情報をそのアプリケーション組に割り当てる組識別情報管理手段であり、本実施の形態においては、通信処理部33に組み込まれている。すなわち、本実施の形態における通信処理部33は、通信処理機能と共に組識別情報管理機能を有している。通信管理テーブル35は、組識別情報に各アプリケーションを特定しうるアプリケーション識別情報を対応させて記憶する。このテーブルへの情報設定及び管理は、通信処理部33が行う。
【0020】
図2は、本実施の形態における通信管理テーブル35の構成例を示した図である。このテーブルにおいて、通信を行う各アプリケーションを特定し関連づけている。クライアントアプリケーション識別情報としては、クライアント10側のアプリケーションを特定するための識別情報としてMACアドレス及び使用する通信ソケットハンドルの番号を含んでいる。本実施の形態におけるクライアント10のアプリケーション実行部11は、同時には唯一つの通信アプリケーションのみを実行するため、他のクライアントと識別可能なMACアドレスをアプリケーション識別情報として使用するが、複数動作させるのであれば、IPアドレスやクライアントアプリケーション名等他の情報も付加する必要がある。サーバアプリケーション識別情報としては、サーバ30側のアプリケーションを特定するための識別情報としてサーバ名及び使用する通信ソケットハンドルの番号を含んでいる。このアプリケーションの組に各組を識別するための組識別情報としてセッションIDを割り当て、更にこのレコードデータの有効“Y”/無効“N”を示す有効フラグを付加する。なお、本実施の形態で用いる各アプリケーションの識別情報は例示であり、それぞれに識別機能を有するものであれば他の情報を用いてもよい。
【0021】
上記構成のうち、アプリケーション実行部11,31、通信処理部13,33及び組識別情報管理部34は、各機能を実現するアプリケーションソフトウェアをCPU上で実行することで実現される。また、回線制御部12,32は、TCP/IPなどの所定の通信プロトコルに基づいた通信を実現するためのハードウェア、ソフトウェア等で実現される。通信管理テーブル35は、メモリ上に設けるが、ディスク装置などの読み書き可能な記憶媒体でも実現可能である。
【0022】
本実施の形態において特徴的なことは、通信を行う各アプリケーションの組にセッションIDを割り当て、データ送信を行う際には、このIDを指定して送信先を特定するようにしたことである。これにより、回線が切断した後でも回線断前に通信をしていた相手を回線復旧後においても一意に特定することができる。このため、アプリケーション間で相互にやり取りを行うことで途中であったアプリケーションの処理を継続して行うことができるようになる。
【0023】
図3は、クライアント10側の通信処理部13における処理を示したフローチャートであり、図4は、サーバ30の側の通信処理部33における処理を示したフローチャートである。次に、これらの図を用いて本実施の形態における動作について説明するが、まず、通信路を確立し、データ通信が正常に行われ、正常に終了するときの処理から説明する。
【0024】
クライアント10において常時稼動している通信処理部13は、アプリケーション実行部11で動作しているアプリケーション(以下、「クライアントアプリケーション」という)からサーバ30側のアプリケーション(以下、「サーバアプリケーション」という)と通信を行うための要求を受け付けると、サーバ30側に接続要求を出す(ステップ100,101)。
【0025】
サーバ30において常時稼動している通信処理部33は、通信回線5を介してクライアント10からの接続要求を受け付けると(ステップ200)、まず、通信管理テーブル35から空いているエントリを探してセッションIDを取得する(ステップ201)。エントリの空きは、有効フラグを参照することで把握できる。すなわち、“N”の有効フラグのエントリを未使用と判断できる。そして、通信処理部33は、通信先となるサーバアプリケーションを起動する(ステップ202)。接続要求には、クライアント10側のMACアドレス、通信ソケットハンドル番号及び通信相手先となるサーバ名が含まれているので、これから起動の対象を特定できる。そして、起動されたサーバアプリケーションにセッションIDを通知する(ステップ203)。サーバアプリケーションが起動されクライアントアプリケーションとの通信路が確立されると、通信処理部33は、通信管理テーブル35に各アプリケーションの識別情報を書き込み(ステップ204)、有効フラグを“Y”に変更することでこのアプリケーション組のエントリの登録を終えた後(ステップ205)、クライアント10へセッションIDとともに接続処理の完了を通知する(ステップ206)。
【0026】
クライアント10において、通信処理部13は、送られてきたセッションIDをデータ通信要求元のアプリケーションに渡す(ステップ103)。
【0027】
このようにして、アプリケーション間に通信路が確立されると、次のようにしてデータの送受信が行われる。
【0028】
クライアントアプリケーションがサーバアプリケーションにデータを送信する場合、クライアントアプリケーションは、送信するデータに通信路形成時に知らされたセッションIDを付加して送信要求を通信処理部13に渡すことになる。通信処理部13は、このセッションIDが付加されたデータをサーバ30へ送信する(ステップ100,111)。
【0029】
サーバ30において、通信処理部33は、クライアント10からデータを受信すると(ステップ200)、受信データに含まれているセッションIDにより通信管理テーブル35を検索してサーバ名を取得することによって通信相手となるサーバアプリケーションを特定し(ステップ211)、そのアプリケーションにデータを渡す(ステップ212)。このようにして、クライアントアプリケーションから送出されたデータは、特定のサーバアプリケーションに送られる。
【0030】
一方、サーバアプリケーションがクライアントアプリケーションにデータを送信する場合、サーバアプリケーションは、送信するデータにセッションIDを付加して送出する。通信処理部33は、受け取ったセッションIDにより通信管理テーブル35を検索して通信相手となるクライアントアプリケーションを特定し(ステップ221)、そのアプリケーションが動作するクライアント10にデータを送信する(ステップ222)。
【0031】
クライアント10において、通信処理部13は、サーバ30からデータを受信すると(ステップ100)、通信相手となるクライアントアプリケーションにデータを渡す(ステップ121)。このようにして、サーバアプリケーションから送出されたデータは、特定のクライアントアプリケーションに送られる。
【0032】
アプリケーション間のデータのやり取りが完了して通信を終了する場合、クライアントアプリケーションは、その切断要求にセッションIDを付加して送出する。通信処理部13は、このセッションIDが付加された切断要求データをサーバ30へ送信する(ステップ100,131)。
【0033】
サーバ30において、通信処理部33は、受信データに含まれているセッションIDにより通信管理テーブル35を検索して通信相手となっていたサーバアプリケーションを特定し(ステップ231)、その実行を終了し、又は自ら終了させる(ステップ232)。そして、通信を終了したそのアプリケーションの組のエントリの有効フラグを“N”に変更する(ステップ233)。なお、このとき、各回線制御部12,32は、アプリケーション間の通信路を切断する。
【0034】
以上のようにして、アプリケーション間の通信を行うが、本実施の形態においては、セッションIDを管理するための通信管理テーブル35を設け、セッションIDを利用して通信相手を特定してデータの送受信を行うことを特徴としている。
【0035】
次に、データ通信中に通信回線5が切断されたとき及び回線が復旧したときの処理について説明する。
【0036】
まず、クライアント10の通信処理部13は、クライアントアプリケーションからの依頼によりデータを送信しようとするが(ステップ100,111)、通信回線5が切断されているのでデータを正常に送信することはできない。本実施の形態では、通信処理部13のエラー処理としてその旨をクライアントアプリケーションに返すようにしてもよい(ステップ112,113)。これにより、クライアントアプリケーションは、状況に応じたエラー発生時の処理を行うことができる。特に、通信処理部33は、回線制御部12から通信回線5が切断/復旧したというの通知を受けるので、クライアントアプリケーションに通信回線5が復旧した旨の通知をしてデータの再送をさせることができる(ステップ100,111)。
【0037】
一方、サーバ30の通信処理部33は、サーバアプリケーションからの依頼によりデータを送信しようとするが(ステップ200,221,222)、回線が切断されているのでデータを正常に送信することはできない。本実施の形態では、通信処理部33のエラー処理としてその旨をサーバアプリケーションに返すようにしてもよい(ステップ223,224)。これにより、サーバアプリケーションは、状況に応じたエラー発生時の処理を行うことができる。その後、通信処理部33は、回線制御部32から通知を受けることで通信回線5が復旧したことを知ることができる。ここで、通信処理部33は、サーバアプリケーションに通信回線5が復旧した旨の通知をしてデータの再送をさせることができる(ステップ200,221,222)。
【0038】
このようにして、通信回線5が切断された後もアプリケーション間通信を再開することができるが、本実施の形態においては、セッションIDを用いて通信相手を特定しているので、サーバアプリケーションを再起動し直して処理を最初からやり直す必要もなく、回線断発生時に中断したところから処理を再開させることができる。すなわち、通信路が切断されたアプリケーションは、回線断による通信エラーが発生したとしても通信回線5が回復するまでの間、処理を途中で終了させずに待機していればよい。そして、回線が復旧したとき、回線断前の相手と改めてデータ通信を再開することになるが、サーバ30において待機中のサーバアプリケーションが複数存在していても、本実施の形態ではセッションIDを用いて通信相手を特定するようにしているので、通信管理テーブル35を参照することによってクライアントアプリケーションと回線断前に通信をしていたサーバアプリケーションを待機中の中から一意に特定することができる。そして、回線断発生時に中断したところから処理を再開すればよい。これは、トランザクション処理を行うサーバアプリケーションにとっては、回線断前に行った処理を無駄にせずに済むので非常に効果的である。
【0039】
なお、本実施の形態においては、1台のクライアント10のみを通信回線5に接続した場合の例で説明したが、複数台接続した場合も適用することは可能である。
【0040】
また、本実施の形態では、アプリケーションに対してセッションIDを伝え、アプリケーションに送信すべきデータにセッションIDを付加させるようにしたが、通信処理部13がクライアント10におけるセッションIDを一括管理し、サーバ30への送出前に送信データに付加するようにしてもよい。
【0041】
実施の形態2.
上記実施の形態1では、回線断が発生した後の復旧処理は、基本的には通信を行うアプリケーションの組に委ねていた。すなわち、処理を通信エラー発生として終了させたり、回線復旧まで待機してデータの再送を行うこともアプリケーションに任せていた。本実施の形態では、図5に示したように、クライアント10及びサーバ30に、送信データを保持するための送信データ保持部14,36をそれぞれ設け、各通信処理部13,33に、データ送信時にアプリケーションから渡された送信データを送信データ保持部14,36に一時保持させるようにしたことを特徴としている。
【0042】
図6及び図7は、各通信処理部13,33におけるデータ送信処理を示したフローチャートであり、図3におけるステップ100,111〜113及び図4におけるステップ200,221〜224に置き換わるフローである。但し、同じ処理には、同じ符号を付ける。次に、本実施の形態における動作について説明するが、各通信処理部13,33におけるその他の通信処理は、図3、4と同じであるので説明を省略する。
【0043】
クライアントアプリケーションがサーバアプリケーションにデータを送信する場合、クライアントアプリケーションは、送信するデータにセッションIDを付加して送出する。通信処理部13は、このセッションIDが付加されたデータを受け取ると(ステップ100)、そのデータを送信データ保持部14に書き込むことで一時保持する(ステップ114)。その後、通信処理部13は、データをサーバ30へ送信するが(ステップ111)、回線断による通信エラーが発生した場合(ステップ112)、通信回線5が復旧するまで待機し、通信回線5の復旧を確認した後、送信データ保持部14に一時保持したデータを取り出す(ステップ115)。そして、その取り出したデータを再送する(ステップ111)。
【0044】
一方、サーバアプリケーションがクライアントアプリケーションにデータを送信する場合、サーバアプリケーションは、送信するデータにセッションIDを付加して送出する。通信処理部33は、このセッションIDが付加されたデータを受け取ると(ステップ200)、その受け取ったセッションIDにより通信管理テーブル35を検索して通信相手となるクライアントアプリケーションを特定するとともに(ステップ221)、そのデータを送信データ保持部36に書き込むことで一時保持する(ステップ225)。その後、通信処理部13は、データをクライアント10へ送信するが(ステップ222)、回線断による通信エラーが発生した場合(ステップ223)、通信回線5が復旧するまで待機し、通信回線5の復旧を確認した後、送信データ保持部36に一時保持したデータを取り出す(ステップ226)。そして、その取り出したデータを再送する(ステップ222)。
【0045】
以上のようにして、本実施の形態によれば、送信データを一時保持して、データ送信時に回線断が発生したとしても、回線復旧後に一時保持したデータを取り出して再送するようにしたので、データを送信するアプリケーションに回線断を知らせることなく再送を行うことができる。このため、アプリケーションは、回線断に基づく処理を用意しておく必要がないため、アプリケーションの開発者にかかる負担を軽減することができる。
【0046】
なお、送信データ保持部14,36は、メモリ又はディスク装置などの読み書き可能な記憶媒体で実現することができる。
【0047】
実施の形態3.
本実施の形態では、通信回線5が復旧した後、最初にクライアント10からデータが送られてきたとき、回線復旧直後のデータである旨をサーバアプリケーションに通知するようにしたことを特徴としている。このため、本実施の形態において有効フラグには、有効“Y”/無効“N”の他に回線断中を示す有効フラグ“E”が設定できるようにする。この有効フラグ“E”は、次のようにして設定される。すなわち、通信処理部33は、通信回線5が切断したという回線制御部32からの通知を受け取ると、通信管理テーブル35において“Y”となっている全ての有効フラグを回線断が発生したことを示すための“E”に変更することになる。
【0048】
以下、この処理について図8に示したフローチャートを用いて説明する。なお、図8のフローチャートは、図4におけるステップ200,211,212に置き換わるフローである。
【0049】
サーバ30において、通信処理部33は、クライアント10からデータを受信すると(ステップ200)、受信データに含まれているセッションIDにより通信管理テーブル35を検索して通信相手となるサーバアプリケーションを特定する(ステップ211)。このとき、このアプリケーションの組のエントリの有効フラグも参照する。有効フラグが“Y”であり“E”でなければ、受信したデータを特定したサーバアプリケーションに渡す(ステップ212)。有効フラグが“E”であれば、データ受信の直前に通信回線5が切断されていたと判断できるので(ステップ213)、その旨を受信データと共にサーバアプリケーションに渡す(ステップ214)。そして、通信管理テーブル35における当該アプリケーションの組の“E”となっている有効フラグを“Y”に変更する(ステップ215)。
【0050】
本実施の形態によれば、回線復旧直後のデータ通信時に回線復旧直後のデータである旨をサーバアプリケーションに通知することで、データ通信の再開であることを知らせることができる。これにより、サーバアプリケーションは、適切な再開処理を行い、その後に回線断前の処理を継続して行うことができる。
【0051】
なお、本実施の形態では、クライアント10がデータ送信を行うようにしたが、サーバ30からクライアント10にデータを送信する場合にも適用することができる。この場合、通信処理部33は、サーバアプリケーションからセッションIDが付加されたデータを受け取ると、受け取ったセッションIDにより通信管理テーブル35を検索して特定したクライアントアプリケーションにデータを送信することになるが、この際、該当するエントリの有効フラグが“E”であれば、データ送信の直前に通信回線5が切断されていたと判断できるので、その旨を送信データと共にクライアントアプリケーションに渡すことができる。そして、通信管理テーブル35における当該アプリケーションの組の“E”となっている有効フラグを“Y”に変更する。このようにして、クライアントアプリケーションに対しても回線復旧後における処理であることを知らせることができる。
【0052】
また、本実施の形態では、“E”を設定可能とすることで有効フラグを有効利用して回線断の発生を通信処理部33に知らせるようにしているが、有効フラグとは別個に回線断が発生した旨を示すフラグ情報を設けて組識別情報に付加して記憶するようにしてもよい。
【0053】
実施の形態4.
上記各実施の形態においては、クライアントとサーバとの間の通信回線が切断した場合、その間の通信回線が復旧するのを待ってアプリケーション通信を再開するようにしていた。本実施の形態では、その間の通信回線5の回復を待たずに、クライアントがサーバと行っていたデータ通信を、他のクライアントがそのクライアントに代行して処理を継続できるようにしたことを特徴としている。
【0054】
図9は、本実施の形態におけるクライアント・サーバシステムの全体構成図である。図9には、通信回線5に2台のクライアント10−1,10−2を接続したシステムが示されている。なお、各クライアント10−1,10−2の構成は、実施の形態1に示したクライアントと同一構成である。
【0055】
図10は、本実施の形態におけるサーバ30の通信処理部33の接続要求を受け付けたときの処理を示したフローチャートであり、図4に示したステップ200〜206に置き換わるフローである。次に、このフローチャートに基づき、第2のコンピュータであるクライアント10−1がサーバ30と通信を行っているときに、その間の通信回線5が切断され、第3のコンピュータであるクライアント10−2がクライアント10−1の代わりにサーバ30とのアプリケーション間通信を引き継ぐ場合を例にして本実施の形態における動作について説明する。
【0056】
まず、クライアント10−1は、実施の形態1と同様の手順でサーバ30との間で通信路を形成し、データ通信を行っている。但し、サーバ30へ送られる接続要求には、MACアドレスの代わりに論理名がクライアントアプリケーション識別情報として含まれている。TCP/IPの場合、IPアドレスを論理名として使用することができる。このIPアドレスを用いた本実施の形態における通信管理テーブル35の内容例を図11に示す。
【0057】
ここで、クライアント10−1とサーバ30との間の通信回線5が切断されたとする。なお、通信処理部33の回線切断時処理によりこのアプリケーション組のエントリの有効フラグは“E”に変更される。クライアント10−2は、その回線断をクライアント10−1からの通知を受けたり、自ら回線状況を監視するなど何らかの方法で知ると、クライアント10−1において通信をしていたのと同一クライアントアプリケーションから接続要求を送出させる。この接続要求処理については、実施の形態1と同一である。但し、前述したとおり、クライアント10−2からサーバ30へ送られる接続要求には、共通のIPアドレスが指定されている。なお、クライアント10−2は、このIPアドレスをクライアント10−1からの通知を受けたり、予め設定しておくなどして知っている。
【0058】
図10において、サーバ30の通信処理部33は、クライアント10−2からの接続要求を受信すると(ステップ200)、通信管理テーブル35を参照し、送られてきた接続要求に指定されたIPアドレスを含み、かつ有効フラグが“E”のエントリを検索する。この内容のエントリが存在しなければ、新規な接続要求であると判断し、実施の形態1で示した通常の接続要求処理を行う(ステップ207,201〜206)。一方、該当するエントリが存在すれば、他のクライアント10−2がクライアント10−1の代わりに処理を継続するための再接続要求であると判断する(ステップ207)。なお、送信元がクライアント10−1であれば、送られてくるのは接続要求ではなく送信データのはずである。また、受け取ったデータに含まれているMACアドレスを参照してクライアント10−1からのデータでないことを知ることができる。他のクライアント10−2からの接続要求である場合、通信路は新規に形成されるため、通信処理部33は、通信管理テーブル35のソケットハンドルを更新する(ステップ208)。そして、再接続である旨を待機中のサーバアプリケーションへ通知する(ステップ209)。これにより、サーバアプリケーションは、再接続要求であることによる適切な処理を行うことができる。そして、通信処理部33は、通信管理テーブル35の有効フラグを“E”から“Y”に変更し(ステップ205)、クライアント10−1のクライアントアプリケーションとの組で使用していたセッションIDをクライアント10−1へ通知する(ステップ206)。この後、クライアント10−2のクライアントアプリケーションとサーバ30のサーバアプリケーションは、通信を行うことができるようになるが、各アプリケーションとも再接続である旨を知っているので、アプリケーション間でやり取りを行い、クライアント10−1のアプリケーションとした処理を途中からでも引き継ぐことができる。
【0059】
以上のように、本実施の形態によれば、クライアントアプリケーションの識別情報にIPアドレスを用いることによって通信回線が切断された後も他のクライアントによって処理を継続させることができる。また、他のクライアントからの再接続である旨をサーバアプリケーションに伝えることができるので、サーバアプリケーションに適切な再接続処理を行わせることができる。
【0060】
なお、本実施の形態では、論理名としてIPアドレスを用いたが、別途論理名を設定するようにしてもよい。
【0061】
上記各実施の形態においては、クライアント・サーバシステムを例にして本発明に係るデータ通信システムを説明したが、コンピュータを接続する通信線が切断される可能性のある様々な形態のデータ通信システムに適用できることはいうまでもない。また、クライアント・サーバシステムの特性からして通信管理テーブル35を接続要求を受けるであろうサーバ30側に設けるようにしたが、通信管理テーブル35を接続要求する側に設けるようにしても、また、散在させても本発明を適用することができる。
【0062】
【発明の効果】
本発明によれば、通信回線を介してデータ通信を行うアプリケーションの組に組識別情報を割り当て、データを送信する際にはこの組識別情報を利用して通信相手を特定するようにしたので、通信回線が切断され復旧したとき、回線断前に通信をしていたアプリケーションを一意に特定することができる。このため、アプリケーション間で回線断時から処理を再開することが容易にできる。
【0063】
また、送信データを一時保持して、データ送信時に回線断が発生したとしても、回線復旧後に一時保持したデータを取りだして再送するようにしたので、データを送信するアプリケーションに回線断を知らせることなく再送を行うことができる。
【0064】
また、回線復旧直後のデータ通信である旨をデータ受信側のアプリケーションに通知するようにしたので、データを受信する側のアプリケーションは、適切な再開処理を行うことができる。
【図面の簡単な説明】
【図1】実施の形態1におけるクライアント・サーバシステムを示した全体構成図である。
【図2】実施の形態1における通信管理テーブルの構成例を示した図である。
【図3】実施の形態1においてクライアント側の通信処理部における処理を示したフローチャートである。
【図4】実施の形態1においてサーバ側の通信処理部における処理を示したフローチャートである。
【図5】実施の形態2におけるクライアント・サーバシステムを示した全体構成図である。
【図6】実施の形態2においてクライアント側の通信処理部におけるデータ送信処理を示したフローチャートである。
【図7】実施の形態2においてサーバ側の通信処理部におけるデータ送信処理を示したフローチャートである。
【図8】実施の形態3においてサーバ側の通信処理部におけるデータ受信処理を示したフローチャートである。
【図9】実施の形態4におけるクライアント・サーバシステムを示した全体構成図である。
【図10】実施の形態4においてサーバの通信処理部の接続要求処理を示したフローチャートである。
【図11】実施の形態4における通信管理テーブルの構成例を示した図である。
【図12】従来からあるデータ通信システムの一例を示したシステム構成図である。
【符号の説明】
5 通信回線、10,10−1,10−2 クライアント、11,31 アプリケーション実行部、12,32 回線制御部、13,33 通信処理部、14,36 送信データ保持部、30 サーバ、34 組識別情報管理部、35 通信管理テーブル。
Claims (6)
- 通信回線を介して他のアプリケーションとの間でデータ通信を双方向に行うアプリケーションを実行するアプリケーション実行手段と、
所定の通信手順に基づき回線の接続、切断、復旧処理及びその旨の通知を行う回線制御手段と、
を備えたコンピュータを有するデータ通信システムにおいて、
通信回線を介して相互にデータ通信を行うアプリケーションの組を識別するための組識別情報に、組を構成する各アプリケーションの識別情報を対応させて記憶する通信管理テーブルと、
アプリケーションの間に通信路が確立された時点で当該通信路が確立されたアプリケーションの組に対して、当該アプリケーションの組を識別するための組識別情報を割り当て前記通信管理テーブルに登録する組識別情報管理手段と、
アプリケーションが動作する前記各コンピュータに設けられ、アプリケーション間のデータ通信処理を行う通信処理手段と、
を有し、
前記通信処理手段は、通信路が確立されたときに組識別情報が割り当てられた各アプリケーションに対して、その割り当てた組識別情報を通知し、
前記アプリケーション実行手段は、組を構成する他方のアプリケーションに対して送信する通信データに、前記通信処理手段から通知された組識別情報を付加し、
前記通信処理手段は、一方のアプリケーションから送信された通信データに付加されている組識別情報に基づき前記通信管理テーブルを検索することによって通信データの送信先となるアプリケーションを特定することを特徴とするデータ通信システム。 - 少なくとも2台のコンピュータを有するデータ通信システムにおいて、
第1のコンピュータは、
第2のコンピュータにおいて動作する第2のアプリケーションとの間で通信回線を介してデータ通信を双方向に行う第1のアプリケーションを実行する第1のアプリケーション実行手段と、
所定の通信手順に基づき回線の接続、切断、復旧処理及びその旨の通知を行う第1の回線制御手段と、
通信回線を介して相互にデータ通信を行う第1及び第2のアプリケーションの組を識別するための組識別情報に、組を構成する各アプリケーションの識別情報を対応させて記憶する通信管理テーブルと、
第1及び第2のアプリケーションの間に通信路が確立された時点で当該通信路が確立された第1及び第2のアプリケーションの組に対して、当該第1及び第2のアプリケーションの組を識別するための組識別情報を割り当て前記通信管理テーブルに登録する組識別情報管理手段と、
第1及び第2のアプリケーション間のデータ通信処理を行う第1の通信処理手段と、
を有し、
第1のコンピュータと通信を行う少なくとも1台の第2のコンピュータは、
第1のコンピュータにおいて動作する第1のアプリケーションとの間で通信回線を介してデータ通信を双方向に行う第2のアプリケーションを実行する第2のアプリケーション実行手段と、
所定の通信手順に基づき回線の接続、切断、復旧処理及びその旨の通知を行う第2の回線制御手段と、
第1及び第2のアプリケーション間のデータ通信処理を行う第2の通信処理手段と、
を有し、
前記第1の通信処理手段は、通信路が確立されたときに組識別情報が割り当てられた第1のアプリケーション及び前記第2の通信処理手段に対して、その割り当てた組識別情報を通知し、
前記第1のアプリケーション実行手段は、第1のアプリケーションと組を構成する第2のアプリケーションに対して送信する通信データに、前記第1の通信処理手段から通知された組識別情報を付加し、
前記第1の通信処理手段は、一方のアプリケーションから送信された通信データに付加されている組識別情報に基づき前記通信管理テーブルを検索することによって通信データの送信先となるアプリケーションを特定し、
前記第2の通信処理手段は、通信路が確立されたときに組識別情報が割り当てられた第2のアプリケーションに対して、その割り当てた組識別情報を通知し、
前記第2のアプリケーション実行手段は、第2のアプリケーションと組を構成する第1のアプリケーションに対して送信する通信データに、前記第2の通信処理手段から通知された組識別情報を付加し、
前記第2の通信処理手段は、第2のアプリケーションから送られてきた通信データを前記第1のコンピュータへ送信し、また前記第1のコンピュータから送られてきた通信データを前記第1の通信処理手段により特定された第2のアプリケーションへ送信することを特徴とするデータ通信システム。 - 通信回線を介して接続された各コンピュータ上のアプリケーション間でデータ通信を双方向に行わせるデータ通信システムにおいて、
通信回線を介して相互にデータ通信を行うアプリケーション間に通信路が確立された時点で、当該通信路が確立されたアプリケーションの組を識別するための組識別情報を当該アプリケーションの組に割り当て、その割り当てた組識別情報に当該組を構成する各アプリケーションの識別情報を対応させて通信管理テーブルに登録すると共に、当該組を構成する各アプリケーションに対して、その割り当てた組識別情報を通知する通信路確立時ステップと、
アプリケーション間でデータ通信を行う際に、組を構成する他方のアプリケーションに対して送信する通信データに、前記通信路確立時ステップにより通知された組識別情報を付加するステップと、
一方のアプリケーションから送信された通信データに付加された組識別情報に基づき前記通信管理テーブルを検索することによって当該通信データの送信先となるアプリケーションを特定するステップと、
を含むことを特徴とするデータ通信方法。 - 前記コンピュータは、送信データを保持するための送信データ保持手段を有し、
前記通信処理手段は、アプリケーションから渡された送信データを前記送信データ保持手段に一時保持することを特徴とする請求項1又は2いずれかに記載のデータ通信システム。 - 前記第1のコンピュータにおける前記第1の通信処理手段は、回線断が発生したときにその旨を示すフラグ情報を組識別情報に付加して前記通信管理テーブルに記憶し、回線復旧直後のデータ通信時に回線復旧直後のデータである旨をデータ受信側のアプリケーションに通知することを特徴とする請求項2記載のデータ通信システム。
- 前記第1のコンピュータは、サーバコンピュータであり、
前記第2のコンピュータは、前記サーバコンピュータと前記通信回線を介してデータ通信を相互に行う1乃至複数のクライアントコンピュータであることを特徴とする請求項2記載のデータ通信システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP13993697A JP3608905B2 (ja) | 1997-05-29 | 1997-05-29 | データ通信システム及びデータ通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP13993697A JP3608905B2 (ja) | 1997-05-29 | 1997-05-29 | データ通信システム及びデータ通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10336272A JPH10336272A (ja) | 1998-12-18 |
JP3608905B2 true JP3608905B2 (ja) | 2005-01-12 |
Family
ID=15257128
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP13993697A Expired - Fee Related JP3608905B2 (ja) | 1997-05-29 | 1997-05-29 | データ通信システム及びデータ通信方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3608905B2 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100309256B1 (ko) * | 1999-10-25 | 2001-11-02 | 서평원 | 게이트웨이 시스템에서 세션 식별자 설정 방법 |
WO2001077844A1 (fr) * | 2000-04-10 | 2001-10-18 | Fujitsu Limited | Systeme de traitement d'informations et serveur associe |
US7080404B2 (en) * | 2002-04-01 | 2006-07-18 | Microsoft Corporation | Automatic re-authentication |
US7149220B2 (en) * | 2002-04-25 | 2006-12-12 | International Business Machines Corporation | System, method, and product for managing data transfers in a network |
US7529823B2 (en) * | 2003-03-27 | 2009-05-05 | Microsoft Corporation | Notifications for shared resources |
US20040260594A1 (en) * | 2003-06-18 | 2004-12-23 | Maddox Edward P. | Maintenance and inspection system and method |
JP4785338B2 (ja) * | 2003-09-18 | 2011-10-05 | 株式会社野村総合研究所 | データ転送方法、通信システム、および通信装置 |
US7594018B2 (en) * | 2003-10-10 | 2009-09-22 | Citrix Systems, Inc. | Methods and apparatus for providing access to persistent application sessions |
ATE531176T1 (de) * | 2006-04-13 | 2011-11-15 | Ibm | Technik zur steuerung der kommunikation einer installierten vorrichtung mit der aussenwelt mittels eines proxy-servers |
JP5069722B2 (ja) | 2009-06-19 | 2012-11-07 | 株式会社エヌ・ティ・ティ・ドコモ | 移動通信端末、及びデータダウンロード方法 |
DE102018003324A1 (de) | 2017-04-27 | 2018-10-31 | Yokogawa Electric Corporation | Datensammelvorrichtung, Datensammelsystem, Datenserver, Datensammelverfahren und nicht-flüchtiges computerlesbares Speichermedium |
-
1997
- 1997-05-29 JP JP13993697A patent/JP3608905B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH10336272A (ja) | 1998-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7929422B2 (en) | Method of moving a transport connection among network hosts | |
US7526549B2 (en) | Cluster data port services for clustered computer system | |
JP4515800B2 (ja) | メッセージ交換システムにおける可用性および拡張性をアプリケーションに透過的に向上させる方法 | |
JP3254405B2 (ja) | ホスト間の接続を維持する方法 | |
US6061807A (en) | Methods systems and computer products for error recovery of endpoint nodes | |
EP0295380A2 (en) | Method of disseminating network state information | |
JP2004032224A (ja) | サーバ引継システムおよびその方法 | |
US7801029B2 (en) | System for selecting routes for retransmission in a network | |
EP1584172A1 (en) | Message transfer using multiplexed connections in an osi-tp environment | |
JP2002202953A (ja) | プロセス障害またはシステム障害後の回復 | |
JP3608905B2 (ja) | データ通信システム及びデータ通信方法 | |
US6880013B2 (en) | Permanent TCP connections across system reboots | |
WO2012009936A1 (zh) | 集群管理系统及方法 | |
US7178051B2 (en) | Method for synchronous support of fault-tolerant and adaptive communication | |
US7191356B2 (en) | Method for asynchronous support of fault-tolerant and adaptive communication | |
WO2012127644A1 (ja) | 通信ノード装置システム、装置、及び方法 | |
US7689702B1 (en) | Methods and apparatus for coordinating processing of network connections between two network protocol stacks | |
US20030145050A1 (en) | Node self-start in a decentralized cluster | |
JP4757670B2 (ja) | システム切替方法、その計算機システム及びプログラム | |
US5894547A (en) | Virtual route synchronization | |
JP3498666B2 (ja) | データ転送装置、データ転送システム、データ転送方法及び記憶媒体 | |
JP3088683B2 (ja) | データ通信システム | |
US8549345B1 (en) | Methods and apparatus for recovering from a failed network interface card | |
JP2007141129A (ja) | システム切替方法、その計算機システム及びプログラム | |
JP3403021B2 (ja) | 伝送路二重化処理方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040715 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20040715 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041012 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071022 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081022 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091022 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091022 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101022 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111022 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121022 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131022 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |