JP2002163122A - 通信処理方法ならびに通信処理プログラムが記録される記録媒体 - Google Patents

通信処理方法ならびに通信処理プログラムが記録される記録媒体

Info

Publication number
JP2002163122A
JP2002163122A JP2000364542A JP2000364542A JP2002163122A JP 2002163122 A JP2002163122 A JP 2002163122A JP 2000364542 A JP2000364542 A JP 2000364542A JP 2000364542 A JP2000364542 A JP 2000364542A JP 2002163122 A JP2002163122 A JP 2002163122A
Authority
JP
Japan
Prior art keywords
communication
connection
information processing
request
processing method
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.)
Granted
Application number
JP2000364542A
Other languages
English (en)
Other versions
JP4123712B2 (ja
JP2002163122A5 (ja
Inventor
Shin Kameyama
伸 亀山
Toshiaki Tarui
俊明 垂井
Tsuneyuki Imaki
常之 今木
Shinichi Kawamoto
真一 川本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2000364542A priority Critical patent/JP4123712B2/ja
Priority to US09/940,506 priority patent/US7139832B2/en
Publication of JP2002163122A publication Critical patent/JP2002163122A/ja
Publication of JP2002163122A5 publication Critical patent/JP2002163122A5/ja
Application granted granted Critical
Publication of JP4123712B2 publication Critical patent/JP4123712B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 (修正有) 【課題】ユーザ空間直接転送によりOSの介在なしに通信
を行っているクライアント側のプロセスと(親プロセ
ス)サーバ側のプロセスとの間の通信回線を、自発的に
サーバ側の別のプロセス(子プロセス)との間の通信回
線に張替えて通信を継続させる。 【解決手段】サーバ側の第1のプロセスとクライアント
側の第2のプロセスが第1の通信回線によって通信中
に、第1のプロセスが第2のプロセスに対して通信の中
断を要求し、第2のプロセスは第1のプロセスに中断完
了の報告を行う機能と、第1のプロセスがプロセス生成
機能により生成したサーバ側の第3のプロセスと第2の
プロセスに対して互いに第2の通信回線の接続を確立す
るように要求する機能と、前記接続を確立するまでに第
1のプロセスがすでに第2のプロセスからのデータを受
信している場合は該データを第3のプロセスにコピーす
る機能とを持つことで第2の通信が正しく第1の通信を
引き継ぐことが出来る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、TCP/IPの
ソケット通信におけるforkをエミュレートする通信
処理方法に係り、特にOSの介在なしにユーザ空間転送
を行う情報処理システムにおいて、forkで生成され
た子プロセスが親プロセスとクライアント間のネットワ
ーク接続を引き継ぐ通信処理方法に関する。
【0002】
【従来の技術】サーバ・クライアントモデルの分散型情
報処理システムにおいて、TCP/IPによるソケット
通信はごく一般的であり、莫大なソフトウェア資産が存
在する。図2にサーバ・クライアントモデルの情報処理
システムの例を示す。この例ではホスト210とホスト
260が通信回線30で結合しており、サーバアプリケ
ーション211とクライアントアプリケーション261
がソケット通信を行う。
【0003】従来のソケット通信では、クライアントア
プリケーション261のプロセス262からの要求をサ
ーバアプリケーション211の親プロセス212が受け
た場合、親プロセス212がUNIX(登録商標)のf
ork機能によって子プロセス213を生成し、子プロ
セス213がプロセス262からの要求を処理する。し
かしながらソケット通信では通信データを一旦OS空間
内のバッファ(バッファ231やバッファ281)でバ
ッファリングするために、スループットの向上に限界が
あった。
【0004】これに対して近年、ユーザ空間で直接デー
タ転送を行いOS空間へのコピーを不要とするVIA
(Virtual Interface Archit
ecture)等の次世代高速IO方式が提案されてい
る。公知の技術としては例えばSteven H. R
odrigues他による“High−Perform
ance Local Area Communica
tion With Fast Socket”(Pr
oceedings of the USENIX、1
997)がある。該技術によると高速ネットワークでサ
ーバとクライアント間を接続することで性能向上を実現
することが可能になり、かつソケット通信の一部の機能
を該高速ネットワークのAPIでエミュレートすること
でこれまでのソフトウェア資産を有効活用することが可
能になる。このエミュレートに関してはUNIXのリネ
ーム機能によって本来の関数を新しい関数で置き換えて
実現できることは周知の技術である。
【0005】
【発明が解決しようとする課題】ところで図2に示すよ
うに、ソケット通信における端点の一方はサーバ側(ホ
スト210)のプロセスが保持し(ソケット221)、
他方はクライアント側(ホスト260)のプロセスが保
持する(ソケット271)。
【0006】またサーバ側ではforkによって子プロ
セス213を生成する際に、親プロセスが保持するソケ
ットの属性も子プロセスにコピーするため、親プロセス
と子プロセスで同一のソケット221を共有して利用す
ることが可能である。すなわちforkによって生成さ
れた子プロセス213はそのままでクライアントとの通
信が可能である。
【0007】しかしながら図3に示すように、VIAで
はプロセス間の通信回線の端点(VIrtual In
terface:以後VIと記す)はそれぞれのプロセ
スのローカルな資源であり、forkで子プロセス31
3を生成しても親プロセス312のVI331は共有で
きないという制限がある。
【0008】そのためforkによって子プロセスを生
成してもクライアントとのVIの接続が確立できないの
でクライアントとの通信ができないという問題が生じ
る。したがって、VIAでソケット通信のforkをエ
ミュレートするためには生成された子プロセス313と
ホスト360のクライアントアプリケーション361と
の間でVIの接続を確立することが課題になる。
【0009】またアプリケーションによっては子プロセ
ス313とプロセス362間でVIの接続が確立する前
に親プロセス312とプロセス362間で通信が発生す
る場合もあり得る。この場合には親プロセス312とプ
ロセス362間で発生した通信を確実に子プロセス31
3とプロセス362間で引き継ぐことが課題になる。
【0010】したがって、本発明の一つの目的は、FO
RKをエミュレートするようにサーバの親プロセスとク
ライアントのプロセス間のVI接続をサーバの子プロセ
スとクライアントのプロセス間に張り替えて、子プロセ
スが親プロセスの通信を継続する方法を提供することに
ある。
【0011】
【課題を解決するための手段】本発明の一つの態様によ
れば、第1の情報処理装置上で実行されるプロセスと第
2の情報処理装置上で実行されるプロセスが互いにユー
ザ空間直接転送により通信を行う機能を有する情報処理
システムにおいて、前記第1の情報処理装置上の第1の
プロセスと前記第2の情報処理装置上の第2のプロセス
との間の第1の接続による通信を、前記第1の情報処理
装置上の第3のプロセスと前記第2のプロセスとの間の
第2の接続によって引き継いで通信を継続する。その特
徴は前記第1のプロセスと前記第2のプロセスが前記第
1の接続による通信を中断する第1の機能と、前記第3
のプロセスと前記第2のプロセスが前記第1のプロセス
の要求により新たに第2の接続を確立する第2の機能
と、前記第1のプロセスの要求により前記第2の接続が
前記第1の接続による通信を引き継いで通信を継続する
第3の機能と、を有する点にある。
【0012】また、前記第3のプロセスがプロセス生成
機能により生成されることを特徴とする。
【0013】更に、前記第1の機能は前記第1のプロセ
スが前記第2のプロセスに対してデータ転送の中断要求
を行う機能と、前記第2のプロセスは前記中断要求に応
じて前記第1のプロセスに対するデータ転送を中断し、
中断完了後に前記第1のプロセスに対して中断完了報告
を行う機能と、を具備することを特徴とする。
【0014】また本発明の別の態様は、上記に加え、前
記第2の機能は前記第2の接続が確立されたことを前記
第2または前記第3のいずれか、または両方のプロセス
が前記第1のプロセスに報告する機能を具備することを
特徴とする。
【0015】また、前記第2の機能は前記第1のプロセ
スで発生した自発的事象を契機に第2の接続の確立を要
求することを特徴とする。
【0016】また、前記第2の機能は前記第1のプロセ
スで発生した突発的事象を契機に第2の接続の確率を要
求することを特徴とする。
【0017】また、前記第3の機能は前記第2の接続が
確立するまでに前記第1のプロセスが該プロセスにおい
てデータ受信処理が発生したことを検出し記憶する手段
を具備することを特徴とする。
【0018】また本発明の通信処理方法は、前記第2の
接続が確立するまでに前記第1のプロセスが該プロセス
においてデータ受信処理が発生したことを検出した場
合、前記第3のプロセスに対して通知する手段を具備す
ることを特徴とする。
【0019】また本発明の通信処理方法は、前記第2の
接続が確立するまでに前記第1のプロセスが該プロセス
においてデータ受信処理が発生したことを検出し、前記
第3のプロセスに対して通知した場合、前記第1のプロ
セスと前記第3のプロセスが強調して該データを前記第
1のプロセスから前記第3のプロセスにコピーする手段
を具備することを特徴とする。
【0020】また本発明の別の態様は、ソケット通信の
機能をエミュレートするようにプログラムされたエミュ
レーションライブラリで実現され、前記第1の情報処理
装置と前記第2の情報処理装置でそれぞれ前記エミュレ
ーションライブラリを実行することにより、前記第1の
情報処理装置と前記第2の情報処理装置のそれぞれで実
行するソケット通信のためのユーザプログラムを何ら変
更することなく通信が可能であることを特徴とする。
【0021】
【発明の実施の形態】図1に本発明の実施形態のサーバ
・クライアントシステムを示す。
【0022】図1においてホスト110のメモリ(図示
しない)上にはサーバアプリケーション111、TCP
/IPソケットエミュレータモジュール120、VIA
モジュール130が格納されている。またホスト160
のメモリ(図示しない)上には同様にクライアントアプ
リケーション161、TCP/IPソケットエミュレー
タモジュール170、VIAモジュール180が格納さ
れている。
【0023】ホスト110とホスト160はネットワー
ク1で接続されており、サーバアプリケーション111
とクライアントアプリケーション161は通信回線(1
0、20)を介してパケットの送受で通信を行う。
【0024】TCP/IPソケットエミュレータモジュ
ール120および170は、前記公知例と同様にVIA
のAPIによってTCP/IPのソケット通信の機能を
エミュレートした関数群を含み、特に図10に示した関
数群に関しては、関数本来の機能に加え、本発明を実現
するための機能を追加して該関数をエミュレートしてい
る。
【0025】VIAモジュール130および180はV
IAドライバ(図示せず)を含んでいる。またVIAに
よる通信回線の端点であるVI(131、132、18
1、182)を構成する。
【0026】サーバアプリケーション111において親
プロセス112はFORK()をエミュレートした図1
0の参照符号F1示すEMU_FORK()F1によっ
て子プロセス115を生成する。EMU_FORK()
F1では子プロセスを生成する機能に、親プロセス11
2および子プロセス115がプロセス間通信を行うため
に共有メモリ117を生成し、共有メモリ117に張替
え要求フラグP118、張替え要求フラグC119およ
びコピー発生フラグ140を生成する機能が追加されて
いる。また親プロセス112内にデータ既受信フラグ1
13、張替え完了フラグ123および張替え要求監視ス
レッド114を生成する。さらに、子プロセス115内
に張替え要求監視スレッド116およびコピー要求監視
スレッド141を生成する。張替え要求フラグP118
は親プロセス112によって書き込まれ、その書き込み
を張替え要求監視スレッド116が監視する。コピー発
生フラグ140は親プロセス112によって書き込ま
れ、その書き込みをコピー要求監視スレッド141が監
視する。張替え要求フラグC119は子プロセス115
によって書き込まれ、その書き込みを張替え要求監視ス
レッド114が監視する。
【0027】クライアントアプリケーション161にお
いては、プロセス162がCONNECT()をエミュ
レートした図10の参照符号F2に示すEMU_CON
NECT()でもってサーバアプリケーション111に
対して通信回線の確立を要求する。EMU_CONNE
CT()F2には、接続が許可されるとプロセス162内
に中断要求フラグ163と中断要求監視スレッド164
を生成する機能が追加してある。中断要求フラグ163
はサーバアプリケーション111から送られてくるパケ
ットによって書き込まれ、その書き込みを中断要求監視
スレッド164が監視する。
【0028】図4、図5および図6は、本実施態様にお
ける親プロセス112、子プロセス115、およびプロ
セス162の処理手順をそれぞれ示すフローチャートで
ある。以降、図を用いてVIの張替え処理の詳細を説明
する。
【0029】まず、図4に示すフローチャートによって
親プロセス112の処理の流れ説明する。
【0030】親プロセス112は、ステップS2ではク
ライアントアプリケーション161上のプロセス162
からの接続要求を聴取する。次に、ステップS3ではプ
ロセス162からの接続要求に対して接続許可を出す。
次に、ステップS4ではEMU_FORK()F1によ
って子プロセスを生成する。ステップS5ではVIの張
替えが既に行われているかを張替え完了フラグ123を
見てチェックする。張替え完了フラグ123はステップ
S13において書き込まれる。
【0031】既に張替えが行われている場合(張替え完
了フラグ123が1の場合)はステップS14に進む。
張替えが行われていない場合(張替え完了フラグ123
が0の場合)はステップS6へ進む。
【0032】ステップS6では親プロセス112は、自
プロセスでのVI張替え要求トリガの発生の有無をチェ
ックする。子プロセスはステップS4で生成されている
が、その時点(ステップS4)ではまだVIの張替えは
行わない。なぜならばVIの張替えは多大なオーバヘッ
ドを伴う高価な処理であり、また子プロセスを生成して
も必ずしも該子プロセスがクライアントと通信を行うわ
けではないからである。そのため図7に示すように、実
際に子プロセス115とプロセス162の通信を発生さ
せるようなイベントをVI張替え処理開始のトリガとす
る。
【0033】図7において、トリガT1は親プロセス1
12による通信回線10のCLOSEである。該トリガ
は自発的なトリガである。通信回線10のCLOSE後
はプロセス162の通信相手は子プロセス115にな
る。
【0034】トリガT2は親プロセス112の消滅であ
る。該トリガは自発的な場合と突発的な場合がある。消
滅後は子プロセス115が通信可能の状態でなければな
らない。
【0035】トリガT3は子プロセス115の受信動作
(RECV)の発生である。該トリガは自発的なトリガ
である。子プロセス115はプロセス162からの通信
を期待しているので通信可能の状態でなければならな
い。トリガT4は子プロセス115の送信動作(SEN
D)の発生である。該トリガは自発的なトリガである。
子プロセス115がプロセス162へデータを送信する
ため通信可能の状態でなければならない。
【0036】ステップS6では、親プロセス112は該
トリガの発生がなければステップS14に進んで、サー
バプログラムを継続して実行する。ステップS6におい
て該トリガの発生がある場合は親プロセス112が実行
している通常の処理を一旦休止し、VI張替え処理のル
ーチンであるステップS7に進む。
【0037】ステップS7では親プロセス112はプロ
セス162に対してデータ転送の中断を要求する。その
後、ステップS8でプロセス162からのデータ転送中
断完了報告を待つ。データ転送中断完了報告があると親
プロセスはステップS9に進み、VI張替え前に親プロ
セス112とプロセス162の間で通信が発生し親プロ
セス112が既にデータを受け取っているか否かをチェ
ックする。チェックはデータ既受信フラグ113を見て
行う。データ既受信フラグ113はステップS16で書
き込まれる。既にデータを受け取っている場合(データ
既受信フラグ113が1の場合)はステップS10に進
む。データを受け取っていない場合(データ既受信フラ
グ113が0の場合)はステップS11に進む。
【0038】ステップS10では、親プロセス112は
コピー発生フラグ140を立てて子プロセス115にデ
ータコピーの発生を通知する。続いて親プロセス112
と子プロセス115が強調して親プロセス112のアド
レス空間を子プロセス115にコピーし、親プロセス1
12が既に受信しているデータを子プロセス115に漏
れなく引き継がせる。
【0039】ステップS11では子プロセス115およ
びプロセス162に対して互いにVIを張替えるよう要
求する。親プロセス112と子プロセス115は共有メ
モリ117を介して通信し、張替え要求フラグP118
を立てることで子プロセス115に対してVIの張替え
を要求する。
【0040】親プロセス112とプロセス162は通信
回線10を介して通信し、親プロセス112がプロセス
162に対してVI張替え要求用パケットを送信し張替
え要求フラグ163を立てることでVIの張替えを要求
する。ステップS12ではプロセス162からの張替え
完了報告を待つ。
【0041】ステップS13では張替え完了フラグ12
3を立てる。張替え完了フラグ123を立てることによ
り、以後張替え要求トリガを発行させるイベントが発生
した場合でも、二重に張替え要求が発行されること防
ぐ。ステップS14ではVI張替え処理のルーチンから
復帰する場合は、休止していた親プロセス112の処理
を再開し、そうでなければ通常の処理の実行する。
【0042】ステップS15では親プロセス112の通
常の処理において、プロセス162からのデータを受信
したか否かをチェックする。この処理はRECV()を
エミュレートした図10に示すEMU_REDV()F
5において実行される。ステップS15においてデータ
受信が発生した場合はステップS16に進む。データ受
信が発生していない場合はステップS17へ進む。
【0043】ステップS16ではデータ既受信フラグ1
13を立てる。データ既受信フラグ113を立てること
により、子プロセス115にコピーすべきデータの受信
が発生したことを親プロセス112は知る。
【0044】ステップS17では親プロセス112の通
常の処理において該プロセスが終了するか否かをチェッ
クする。終了する場合はステップS18へ進み該プロセ
スは終了する。終了しない場合は再度ステップS5へ進
み、これまでのステップを繰り返す。
【0045】以上がVI張替えの際の親プロセス112
の動作である。
【0046】次に、図5に示すフローチャートによって
子プロセス115の処理の流れを説明する。
【0047】ステップS21ではEMU_FORK()
F1によって子プロセス115が生成されて処理が開始
される。
【0048】ステップS22では子プロセス115は自
身におけるVI張替え要求トリガの発生の有無をチェッ
クする。ステップS22においてトリガT3またはトリ
ガT4が発生していればステップS23に進む。該トリ
ガが発生していなければステップS26に進む。
【0049】ステップS23では子プロセス115は張
替え要求フラグC119を立て、親プロセス112に対
して子プロセス115において張替え要求トリガが発生
したことを報告する。親プロセス112は張替え要求フ
ラグC119をスレッド114で監視して該トリガの発
生を知る。
【0050】ステップS24では子プロセス115は親
プロセス112からのデータコピー要求の有無をチェッ
クする。該チェックはコピー要求監視スレッド141に
よってコピー発生フラグ140を監視することで行われ
る。ステップS24においてデータコピー要求がある場
合(コピー発生フラグ140が1の場合)は、子プロセ
ス115が実行している通常の処理を一旦休止し、ステ
ップS25に進む。ステップS24においてデータコピ
ー要求が無い場合(コピー発生フラグ140が0の場
合)はステップS26に進む。
【0051】ステップS25では子プロセス115は親
プロセス112のアドレス空間が子プロセス115へコ
ピーされる。
【0052】ステップS26では子プロセス115は親
プロセス112からのVI張替え要求の有無をチェック
する。該チェックはスレッド116によって張替え要求
フラグP118を監視することで行われる。ステップS
26において張替え要求がある場合(張替え要求フラグ
P118が1の場合)は、VI張替え処理のルーチンで
あるステップS25に進む。ステップS26において張
替え要求が無い場合(張替え要求フラグP118が0の
場合)はステップS29に進む。
【0053】ステップS27では子プロセス115はク
ライアントアプリケーション161上のプロセス162
からの接続要求を聴取する。
【0054】ステップS28では子プロセス115はプ
ロセス162からの接続要求に対して接続許可を出す。
【0055】ステップS29ではVI張替え処理のルー
チンから復帰する場合は、休止していた子プロセス11
5の処理を再開し、そうでなければ通常の処理の実行す
る。
【0056】ステップS30では子プロセス115の通
常の処理において該プロセスが終了するか否かをチェッ
クする。終了する場合はステップS31へ進み該プロセ
スは終了する。終了しない場合は再度ステップS22へ
進み、これまでのステップを繰り返す。
【0057】以上がVI張替えの際の子プロセス115
の動作である。
【0058】最後に、図6に示すフローチャートでプロ
セス162の処理の流れを説明する。
【0059】ステップS41で開始されたプロセス16
2はステップS42において親プロセス112に対して
VIの接続要求を行う。
【0060】プロセス162はステップS43では接続
が許可されるのを待つ。
【0061】ステップS44では親プロセス112から
のデータ転送中断要求の有無をチェックする。該チェッ
クは中断要求監視スレッド164によって中断要求フラ
グ163を監視することで行われる。ステップS44に
おいて中断要求がある場合(中断要求フラグ163が1
の場合)は、プロセス162が実行している通常の処理
を一旦休止し、ステップS45へ進む。ステップS44
において中断要求が無い場合(中断要求フラグ163が
0の場合)はステップS52へ進む。
【0062】ステップS45ではデータ転送中断のため
の処理を行う。
【0063】ステップS46ではデータ転送中断が完了
したか否かをチェックする。終了していなければステッ
プS45に戻る。終了していればステップS47に進
む。
【0064】ステップS47では親プロセス112に対
してパケット通信によりデータ転送中断完了の報告を行
う。
【0065】ステップS48ではプロセス162は親プ
ロセス112からのVI張替え要求の有無をチェックす
る。該チェックはスレッド164によって張替え要求フ
ラグ163を監視することで行われる。ステップS48
において張替え要求がある場合(張替え要求フラグ16
3が1の場合)は、プロセス162が実行している通常
の処理を一旦休止し、VI張替え処理のルーチンである
ステップS49へ進む。ステップS48において張替え
要求が無い場合(張替え要求フラグ163が0の場合)
はステップS52へ進む。
【0066】ステップS49ではプロセス162は子プ
ロセス115に対してVIの接続要求を行う。次にステ
ップS50では接続が許可されるのを待つ。
【0067】接続が許可されると、プロセス162はス
テップS51で親プロセス112に対してVIの張替え
が完了したことを報告する。該報告は親プロセス112
に対して張替え完了報告用パケットを送信し張替え完了
フラグ123を立てることにより行う。
【0068】次にステップS52ではプロセス162は
VI張替え処理のルーチンから復帰する場合は、休止し
ていたプロセス162の処理を再開し、そうでなければ
通常の処理の実行する。
【0069】ステップS53ではプロセス162の通常
の処理において該プロセスが終了するか否かをチェック
する。終了する場合はステップS54へ進み該プロセス
は終了する。終了しない場合は再度ステップS44へ進
み、これまでのステップを繰り返す。
【0070】以上がVI張替えの際のプロセス162の
動作である。
【0071】以上で説明した親プロセス112および子
プロセス115およびプロセス162におけるそれぞれ
の処理が全体として時系列でどのように動作するかを図
9に示すタイムチャートを用いて説明する。
【0072】まず時点aにおいてクライアントからサー
バ上の親プロセスに対して接続要求910を発行し、該
親プロセスは時点Aでそれを受け取る。なお図中、処理
名称の始めに表記した括弧内の字句は該クライアントに
対する処理の対象がサーバ上の親プロセスであるか子プ
ロセスであるかを示す。以下同様である。続いて該親プ
ロセスは時点Bで該クライアントに対して接続許可91
1を発行し、該クライアントは時点bでそれを受け取
る。時点Xにおいて該親プロセスはEMU_FOR
K()918によって子プロセスを生成する。時点Cに
おいて該親プロセスは該クライアントに対してデータ転
送中断要求912を発行し、該クライアントは時点cで
それを受け取る。時点c以降該クライアントはデータ転
送中断処理(図示せず)を行い、中断処理が完了した時
点dにおいて該親プロセスに対して中断完了報告913
を発行する。該親プロセスは時点Dで該中断完了報告9
13を受け取り、その後時点Yにおいて該子プロセスへ
の既受信データのコピー922を行う。続いて時点Eに
おいて該親プロセスは該クライアントに対して張替え要
求914を発行し、該クライアントは時点eにおいてそ
れを受け取る。時点fにおいて該クライアントは該子プ
ロセスに対して接続要求915を発行し、該子プロセス
は時点Fにおいてそれを受け取る。続いて時点Gにおい
て該子プロセスは該クライアントに対して接続許可91
6を発行し、該クライアントは時点gにおいてそれを受
け取る。最後に時点hにおいて該クライアントは該親プ
ロセスに対して張替え完了報告917を発行し、該親プ
ロセスは時点Hでそれを受け取り、一連のVI張替え処
理が完了する。
【0073】ここで該親プロセスは時点B以降データ受
信可能状態であり、該子プロセスは時点G以降データ受
信可能状態である。また時点bc間および時点h以降が
該クライアントがデータ送信可能時間であり、時点dg
間が送信中断時間である。もし該クライアントが時点b
でデータの送信を開始した場合、時点B´において該親
プロセスが該データを受信可能になる。しかし該親プロ
セスは中断完了報告913を受け取ることにより、該親
プロセスは時点D以降データの受信が無いことを知る。
したがってVIの張替えの前に該親プロセスがデータを
受け取る可能性のある時間は時点B´D間であり、その
間にデータを受け取った場合に該データを該子プロセス
にコピーする。その結果、VI張替え完了後に該子プロ
セスが正しく該親プロセスの通信を引き継ぐことが可能
になる。
【0074】一方図8は、データ転送の中断を行わなか
った場合のタイムチャートである。図8を用いて本発明
の有効性を示す。
【0075】まず図9と同様に該親プロセスは時点B以
降データ受信可能状態であり、該子プロセスは時点G以
降データ受信可能状態である。また時点bc間および時
点h以降が該クライアントがデータ送信可能時間であ
り、時点dg間が送信中断時間である。しかしながら該
親プロセスは該クライアントが送信を中断し、それがサ
ーバ側に反映される時点E´を知ることはできない。す
なわち該親プロセスは該クライアントからのデータがい
つまで送信されるかを知ることができない。したがって
該親プロセスはどの時点で該子プロセスに対して既受信
データのコピーを行えばよいかわからず、コピーが正し
く行われる保証ができない。
【0076】これに対し、本実施態様では、先に図9で
説明した通り、サーバ上の親プロセスはクライアント上
のプロセスにデータ転送中断要求を出し、クライアント
側から中断完了が返送されることによって、それまでに
受信したデータを子プロセスにコピーすれば良いことが
分かる。よってVI張替えを行った場合に正しく通信を
継続することを保証される。
【0077】以上述べた実施形態においては、プロセス
間の通信は共有メモリを用いて実行しているが、その他
のPIPE等の手段を使用してもよい。またホスト間の通信
はパケット通信によって実行しているが、その他の手段
を用いても良い。さらに第1のホストと第2のホストは
物理的に分離されている必要はなく、同一情報処理装置
上で実行されているプロセスにおいてもこの発明が適用
されることは自明である。
【0078】
【発明の効果】上述のように、本発明によれば、ユーザ
空間直接転送によりOSの介在なしに通信を行っているク
ライアント側のプロセスとサーバ側のプロセス(親プロ
セス)との間の通信回線を、自発的にサーバ側の別のプ
ロセス(子プロセス)との間の通信回線に張替えて通信
を継続させ、UNIXのFORK()と同様の機能を実
現することが出来る。
【図面の簡単な説明】
【図1】本発明の一実施形態のサーバ・クライアントシ
ステムのブロック図である。
【図2】一般的なTCP/IPにおけるソケット通信の
概念を示す概念図である。
【図3】ユーザ空間直接転送で通信するサーバ・クライ
アントシステムシステムにける通信の状態を示すブロッ
ク図である。
【図4】上記実施態様における通信路を張替える際のサ
ーバ側の親プロセスの処理を示すフローチャート。
【図5】上記実施態様における通信路を張替える際のサ
ーバ側の子プロセスの処理を示すフローチャート。
【図6】上記実施態様における通信路を張替える際のク
ライアント側のプロセスの処理を示すフローチャート。
【図7】上記実施態様にて通信路を張替えるトリガとな
るイベントを示す図。
【図8】実施態様と比較のための通信路を張替える際に
サーバ側の親プロセスがクライアント側のプロセスに対
してデータ転送の中断を要求しない場合の処理の進行を
示すタイムチャート。
【図9】実施態様の通信路を張替える際の処理の進行を
示すタイムチャート。
【符号の説明】
1…ネットワーク、10,20…通信回線、110,1
60…ホスト、111…サーバアプリケーション、11
2…親プロセス、116…子プロセス、120,170
…TCP/IPソケット通信エミュレータブロック、1
30,180…VIAモジュール、131,132,1
81,182…VI、161…クライアントアプリケー
ション、162…プロセス。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 今木 常之 東京都国分寺市東恋ケ窪一丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 川本 真一 東京都国分寺市東恋ケ窪一丁目280番地 株式会社日立製作所中央研究所内 Fターム(参考) 5B045 GG00 GG09 5B098 AA10 GA04 GA05 GC15 GC16

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】第1の情報処理装置上で実行されるプロセ
    スと第2の情報処理装置上で実行されるプロセスが互い
    のユーザ空間同士の直接転送により通信を行う機能を有
    する情報処理システムにおいて、前記第1の情報処理装
    置上の第1のプロセスと前記第2の情報処理装置上の第
    2のプロセスとの間の第1の接続による通信を、前記第
    1の情報処理装置上の第3のプロセスと前記第2のプロ
    セスとの間の第2の接続によって引き継いで通信を継続
    する通信処理方法であって、前記第1のプロセスと前記
    第2のプロセスが前記第1の接続による通信を中断する
    第1のステップと、前記第1のプロセスの要求により前
    記第3のプロセスと前記第2のプロセスが新たに第2の
    接続を確立する第2のステップと、前記第1のプロセス
    の要求により前記第2の接続が前記第1の接続による通
    信を引き継いで通信を継続する第3のステップとを有す
    ることを特徴とする通信処理方法。
  2. 【請求項2】前記第3のプロセスがプロセス生成機能に
    より生成されることを特徴とする請求項1記載の通信処
    理方法。
  3. 【請求項3】前記第1のステップは前記第1のプロセス
    が前記第2のプロセスに対してデータ転送の中断要求を
    行うこと、第2のプロセスが前記中断要求に応じて前記
    前記第1のプロセスに対するデータ転送を中断し、中断
    完了後に前記第1のプロセスに対して中断完了報告を行
    うこと、との手順を有することを特徴とする請求項1記
    載の通信処理方法。
  4. 【請求項4】前記第1のプロセスにて、前記第2のプロ
    セスに中断要求を行ってからデータ受信処理があったこ
    と記憶し、前記中断完了報告を受けた時点以降該データ
    受信処理で受信したデータをに前記第3のプロセスにコ
    ピーすることを特徴とする請求項3の通信処理方法。
  5. 【請求項5】前記第2のステップは、前記第2の接続が
    確立されたことを前記第2のプロセスと前記第3のプロ
    セスのいずれか一方、または両方が前記第1のプロセス
    に報告する手順を含むことを特徴とする請求項1記載の
    通信処理方法。
  6. 【請求項6】前記第2のステップにおける前記第2の接
    続の確立の要求は、前記第1のプロセスにて自発的事象
    が発生したことを契機に発せられることを特徴とする請
    求項1記載の通信処理方法。
  7. 【請求項7】前記第2のステップにおける前記第2の接
    続の確率の要求は、前記第1のプロセスにて突発的事象
    が発生したことを契機に発せられることを特徴とする請
    求項1記載の通信処理方法。
  8. 【請求項8】前記第2の接続が確立するまでに前記第1
    のプロセスが該プロセスにおいてデータ受信処理が発生
    したことを検出し記憶することを特徴とする請求項1記
    載の通信処理方法。
  9. 【請求項9】前記第2の接続が確立するまでに前記第1
    のプロセスが該プロセスにおいてデータ受信処理が発生
    したことを検出した場合、前記第3のプロセスに対して
    通知することを特徴とする請求項7記載の通信処理方
    法。
  10. 【請求項10】前記第2の接続が確立するまでに前記第
    1のプロセスが該プロセスにおいてデータ受信処理が発
    生したことを検出し、前記第3のプロセスに対して通知
    した場合、前記第1のプロセスと前記第3のプロセスが
    強調して該データを前記第1のプロセスから前記第3の
    プロセスにコピーすることを特徴とする請求項7記載の
    通信処理方法。
  11. 【請求項11】前記第2の接続の確立の完了後に前記第
    1の接続を切断することを特徴とする請求項1記載の通
    信処理方法。
  12. 【請求項12】ネットワークで相互に接続された第1の
    情報処理装置と第2の情報処理装置とを有し、該第1の
    情報処理装置上で実行されるプロセスと第2の情報処理
    装置上で実行されるプロセスが互いのユーザ空間同士の
    直接転送により通信を行う機能を有する情報処理システ
    ムにおいて、前記第1のプロセスと前記第2のプロセス
    が前記第1の接続による通信を中断する第1の手段と、
    前記第1のプロセスの要求により前記第3のプロセスと
    前記第2のプロセスが新たに第2の接続を確立する第2
    の手段と、前記第1のプロセスの要求により前記第2の
    接続が前記第1の接続による通信を引き継いで通信を継
    続する第3の手段と有することを特徴とする情報処理シ
    ステム。
  13. 【請求項13】請求項1記載の通信処理方法がソケット
    通信の機能をエミュレートするようにプログラムされた
    エミュレーションライブラリで実現され、前記第1の情
    報処理装置と前記第2の情報処理装置でそれぞれ前記エ
    ミュレーションライブラリを実行することにより、前記
    第1の情報処理装置と前記第2の情報処理装置のそれぞ
    れで実行するソケット通信のためのユーザプログラムを
    何ら変更することなく通信を可能とした請求項1記載の
    通信処理方法。
  14. 【請求項14】第1の情報処理装置上の第1のプロセス
    と前記第2の情報処理装置上の第2のプロセスとの間の
    第1の接続による通信を、前記第1の情報処理装置上の
    第3のプロセスと前記第2のプロセスとの間の第2の接
    続によって引き継いで通信を継続する通信処理方法であ
    って、前記第1のプロセスと前記第2のプロセスが前記
    第1の接続による通信を中断する第1のステップと、前
    記第1のプロセスの要求により前記第3のプロセスと前
    記第2のプロセスが新たに第2の接続を確立する第2の
    ステップと、前記第1のプロセスの要求により前記第2
    の接続が前記第1の接続による通信を引き継いで通信を
    継続する第3のステップとを有することを通信処理方法
    を実行するエミュレーションライブラリが記録された計
    算機利用可能な記録媒体。
JP2000364542A 2000-11-27 2000-11-27 通信処理方法ならびに通信処理プログラムが記録される記録媒体 Expired - Fee Related JP4123712B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2000364542A JP4123712B2 (ja) 2000-11-27 2000-11-27 通信処理方法ならびに通信処理プログラムが記録される記録媒体
US09/940,506 US7139832B2 (en) 2000-11-27 2001-08-29 Data transfer and intermission between parent and child process

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000364542A JP4123712B2 (ja) 2000-11-27 2000-11-27 通信処理方法ならびに通信処理プログラムが記録される記録媒体

Publications (3)

Publication Number Publication Date
JP2002163122A true JP2002163122A (ja) 2002-06-07
JP2002163122A5 JP2002163122A5 (ja) 2006-04-20
JP4123712B2 JP4123712B2 (ja) 2008-07-23

Family

ID=18835466

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000364542A Expired - Fee Related JP4123712B2 (ja) 2000-11-27 2000-11-27 通信処理方法ならびに通信処理プログラムが記録される記録媒体

Country Status (2)

Country Link
US (1) US7139832B2 (ja)
JP (1) JP4123712B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7676549B2 (en) * 2005-05-27 2010-03-09 Microsoft Corporation Techniques for providing accessibility options in remote terminal sessions
US7856618B2 (en) * 2005-08-04 2010-12-21 International Business Machines Corporation Adaptively generating code for a computer program
US20070033592A1 (en) * 2005-08-04 2007-02-08 International Business Machines Corporation Method, apparatus, and computer program product for adaptive process dispatch in a computer system having a plurality of processors
GB2507339A (en) 2012-10-29 2014-04-30 Ibm Accessing privileged objects in a server by means of semi privileged instruction
US11449601B2 (en) * 2020-01-08 2022-09-20 Red Hat, Inc. Proof of code compliance and protected integrity using a trusted execution environment

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2086636T3 (es) * 1991-05-22 1996-07-01 Philips Electronics Nv Sistema de proceso de datos de distribucion multinodal para uso en un vehiculo de superficie.
GB2272085A (en) * 1992-10-30 1994-05-04 Tao Systems Ltd Data processing system and operating system.
US5325530A (en) * 1993-01-29 1994-06-28 International Business Machines Corporation Controller for sequential programming tools executed in a parallel computing environment
US5444766A (en) * 1993-10-01 1995-08-22 At&T Corp. Mobile-synchronized handoff in a wireless communications system
US6216127B1 (en) * 1994-02-22 2001-04-10 Oracle Corporation Method and apparatus for processing electronic mail in parallel
US6769119B1 (en) * 1994-03-24 2004-07-27 International Business Machines Corporation System, method, and computer program product for scoping operating system semantics in a computing environment supporting multi-enclave processes
US5717926A (en) * 1995-02-28 1998-02-10 International Business Machines Corporation Efficient forking of a process
US5721876A (en) * 1995-03-30 1998-02-24 Bull Hn Information Systems Inc. Sockets application program mechanism for proprietary based application programs running in an emulation environment
US5870585A (en) * 1995-10-10 1999-02-09 Advanced Micro Devices, Inc. Design for a simulation module using an object-oriented programming language
US6170018B1 (en) * 1995-11-27 2001-01-02 Sun Microsystems, Inc. Remote procedure calling using an existing descriptor mechanism
US6311265B1 (en) * 1996-03-25 2001-10-30 Torrent Systems, Inc. Apparatuses and methods for programming parallel computers
US5909681A (en) * 1996-03-25 1999-06-01 Torrent Systems, Inc. Computer system and computerized method for partitioning data for parallel processing
US5867789A (en) * 1996-12-30 1999-02-02 Motorola, Inc. Method and system for real-time channel management in a radio telecommunications system
US6424988B2 (en) * 1997-02-19 2002-07-23 Unisys Corporation Multicomputer system
US6111894A (en) * 1997-08-26 2000-08-29 International Business Machines Corporation Hardware interface between a switch adapter and a communications subsystem in a data processing system
US6247041B1 (en) * 1997-08-29 2001-06-12 International Business Machines Corporation Multiprocessor computer system with user specifiable process placement
US6167430A (en) * 1998-05-12 2000-12-26 Unisys Corporation Multicomputer with distributed directory and operating system
JP3620010B2 (ja) * 1998-05-22 2005-02-16 富士通株式会社 無線通信システムで用いられる装置とプログラム記録媒体
JP3037271B2 (ja) * 1998-06-25 2000-04-24 日本電気株式会社 移動体電話通信システムと移動体電話端末電界測定制御方法
KR100336069B1 (ko) * 1998-06-30 2002-10-11 삼성전자 주식회사 그래픽사용자인터페이스프로그래밍환경에서네트워크관리시스템운영방법및이를위한통신장치
US6314567B1 (en) * 1998-11-13 2001-11-06 Hewlett-Packard Company Apparatus and method for transferring state data when performing on-line replacement of a running program code and data
US6609159B1 (en) * 1998-11-30 2003-08-19 Semyon Dukach Methods, systems, and machine readable programming for interposing front end servers between servers and clients
US6434594B1 (en) * 1999-03-09 2002-08-13 Talk2 Technology, Inc. Virtual processing network enabler
US6430164B1 (en) * 1999-06-17 2002-08-06 Cellport Systems, Inc. Communications involving disparate protocol network/bus and device subsystems
US6801938B1 (en) * 1999-06-18 2004-10-05 Torrent Systems, Inc. Segmentation and processing of continuous data streams using transactional semantics
US6976258B1 (en) * 1999-11-30 2005-12-13 Ensim Corporation Providing quality of service guarantees to virtual hosts

Also Published As

Publication number Publication date
JP4123712B2 (ja) 2008-07-23
US7139832B2 (en) 2006-11-21
US20020065934A1 (en) 2002-05-30

Similar Documents

Publication Publication Date Title
US6687817B1 (en) Configuration of a network device via the network
US8316139B2 (en) Systems and methods for integrating local systems with cloud computing resources
US6874147B1 (en) Apparatus and method for networking driver protocol enhancement
US7089311B2 (en) Methods, systems and computer program products for resuming SNA application-client communications after loss of an IP network connection
JPH1069449A (ja) サーバとクライアントとの間のセッションを回復するための装置および方法
US8793384B2 (en) Recovery of disconnected channels over a reliable protocol
KR19980703864A (ko) 통신 링크를 통해 전송되는 데이타를 줄이는 방법 및 장치와 컴퓨터 프로그램 제품
US5526483A (en) Fast network file system running over a hybrid connectionless transport
US6880013B2 (en) Permanent TCP connections across system reboots
EP0586129B1 (en) Session oriented connectionless data transfer for a computer network
JPH11340986A (ja) 無線通信システムで用いられる装置とプログラム記録媒体
US6401123B1 (en) Systems, methods and computer program products for employing presumptive negotiation in a data communications protocol
US10180853B2 (en) Session reliability for a redirected mass storage device
EP2015190B1 (en) Technique of controlling communication of installed apparatus with outside by means of proxy server
JP2002163122A (ja) 通信処理方法ならびに通信処理プログラムが記録される記録媒体
CN113849127A (zh) 基于san存储双活网络的仲裁方法、装置及电子设备
EP1122924B1 (en) Method and apparatus for providing local path I/O in a distributed file system
CN110798366B (zh) 任务逻辑的处理方法、装置及设备
JP3628514B2 (ja) 計算機間データ送受信方法
US7895344B2 (en) Method and apparatus for remote management
JP2002244873A (ja) 通信処理方法ならびに通信処理プログラムが記録される記録媒体
JPH11112609A (ja) 通信システムにおける通信障害回復方法ならびに同方法がプログラムされ記録される記録媒体
CN117527458B (zh) 一种多播数据分发方法、装置、电子设备及存储介质
CN113608686A (zh) 一种远程内存直接访问方法及相关装置
Zhu et al. Mechanisms for high volume data transfer in grids

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060303

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060303

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20060418

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071102

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071113

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080111

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080415

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080428

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110516

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110516

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120516

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120516

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130516

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130516

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees