JP2002158736A - 通信方法 - Google Patents

通信方法

Info

Publication number
JP2002158736A
JP2002158736A JP2000355633A JP2000355633A JP2002158736A JP 2002158736 A JP2002158736 A JP 2002158736A JP 2000355633 A JP2000355633 A JP 2000355633A JP 2000355633 A JP2000355633 A JP 2000355633A JP 2002158736 A JP2002158736 A JP 2002158736A
Authority
JP
Japan
Prior art keywords
communication
module
data
connection
communication means
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.)
Pending
Application number
JP2000355633A
Other languages
English (en)
Inventor
Masanori Honda
政則 本田
Taro Inoue
太郎 井上
Hiroshi Yamada
弘 山田
Masaaki Oya
雅章 大矢
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 JP2000355633A priority Critical patent/JP2002158736A/ja
Publication of JP2002158736A publication Critical patent/JP2002158736A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Communication Control (AREA)

Abstract

(57)【要約】 【課題】通信を行うプロセスやスレッド自身が煩雑なコ
ネクション管理を行う必要を無くし、効率よく確実なデ
ータ転送を行う。 【解決手段】通信手段102に設けられた通信管理部1
05により、送信しようとするデータの大きさに応じて
コネクション型通信とコネクションレス型通信のいずれ
のプロトコルを用いて通信を行うか判別する。通信手段
102は、通信管理部105での判別の結果に従ったプ
ロトコルを用いて通信先との通信を行う。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、情報機器上で動作
する複数のプロセス間の通信方法及び通信装置に関す
る。
【0002】
【従来の技術】現在、コンピュータシステムなどにおい
て、情報処理機器のプロセス間の通信では、TCP/I
Pプロトコルが標準的に使われている。TCP/IPプ
ロトコルを用いて通信を行う場合、一般には、TCPプ
ロトコルを利用したコネクション型通信を行うか、UD
Pプロトコルを利用したコネクションレス型通信を行う
か、ユーザアプリケーションのプログラマがあらかじめ
決める必要がある。
【0003】コネクション型通信(TCP)は、確実に
データの送受信が行える半面、ハンドシェイクやウィン
ドウ処理等オーバーヘッドが大きく性能が悪い。一方、
コネクションレス型通信(UDP)は、性能がよい半
面、信頼性が低い。ユーザアプリケーションのプログラ
マは、従来、このような2つのプロトコルの特徴をよく
理解した上で、状況に応じてこれらのプロトコルを使い
分ける必要があった。
【0004】
【発明が解決しようとする課題】1対1で通信を行う場
合では問題とならないが、1つのプロセスが多くのプロ
セスと通信する場合、以下のような問題が発生する。
【0005】例えば、1台のコンピュータ上にソフトウ
ェア管理マネージャプロセスが動作しており、このソフ
トウェア管理マネージャプロセスにより他の1000台
のコンピュータ上のソフトウェアを管理する場合を考え
る。他のコンピュータのそれぞれでは、ソフトウェア管
理エージェントプロセスが動作しているものとする。
【0006】ソフトウェア管理マネージャプロセスとソ
フトウェア管理エージェントプロセスとの間の通信のた
めにコネクション型通信(TCP)を用いると、ソフト
ウェア管理マネージャプロセスは、他のコンピュータと
の間の1000個のコネクションを管理しなければなら
なくなる。このような多数のTCPコネクションを一つ
のコンピュータで取り扱うのは現実的ではない。例え1
000個のコネクションが管理できたとしても、著しい
性能低下を招く。
【0007】一方、コネクションレス型通信(UDP)
を用いると、コネクション管理が不要になる上、性能の
低下も生じない。しかし、新しいバージョンのソフトウ
ェアを配布するなど、大量のデータを転送する場合に問
題が起きる。UDPでは、大きなデータは複数のパケッ
トに分割して送られるが、各パケットが送信先に確実に
届く保証がない。このため、ユーザプログラム内で全て
のパケットが順番通り確実に届くように、パケットの管
理を行わなければならない。ユーザアプリケーションの
プログラマがこのパケット管理を行うと、ユーザプログ
ラムが非常に複雑になり、性能確保も難しくなる。
【0008】ソフトウェア管理だけに限らず、大量の情
報機器(コンピュータ等)の運用管理を行う場合、1対
多通信、多対多通信を頻繁に行う必要があり、これらの
通信を効率よく行わなければならない。
【0009】
【課題を解決するための手段】上記課題を解決するため
に、本発明によれば、情報処理システム上で動作するプ
ロセス間で相互に通信するための通信方法において、送
信側で、送信しようとするデータに基づきコネクション
型通信プロトコルとコネクションレス型通信プロトコル
のいずれによりデータを送信するか判別し、判別の結果
に従ったプロトコルを用いてデータの送信が行われる。
【0010】より具体的に、本発明によれば、通信管理
部、セッション管理部、モジュールリスト部を有する通
信手段がコンピュータ上に設けられる。
【0011】第1のコンピュータ上で動作する第1のモ
ジュールが、第2のコンピュータ上で動作する第2のモ
ジュールと通信を行う場合、第1のコンピュータ上で
は、第1の通信手段が、第2のコンピュータ上では、第
2の通信手段が動作する。第1及び第2の通信手段は、
初期処理として、各モジュールの情報をモジュールリス
トに登録する。第1のモジュールは送信時、第2のモジ
ュールの名前と、第2のコンピュータのアドレスを指定
し第1の通信手段に処理を依頼する。第1の通信手段の
通信管理部は、コネクションレス型プロトコルを利用し
て第2の通信手段にデータを送信する。第2の通信手段
は、データの受信を完了した後、受信完了を伝えるデー
タを第1の通信手段に送信する。第1の通信手段の通信
管理部は、一定時間経過しても受信完了データが第2の
通信手段から来ない場合、送信データを再送する。第1
及び第2の通信手段は、受信確認を行うことにより、信
頼性を向上させる。
【0012】また、送信データが一定値より大きい場
合、第1の通信手段の通信管理部は、第2の通信手段に
対し、TCPによるコネクション確立要求を出す。第1
の通信手段のセッション管理部と第2の通信手段のセッ
ション管理部によりTCPコネクションが張られた後、
第1の通信手段は、TCPコネクションを用いて送信デ
ータを第2の通信手段に送信する。送信完了後、TCP
コネクションは破棄される。
【0013】
【発明の実施の形態】図1に、本発明が適用された計算
機システムの位置実施形態における基本構成を簡略に示
したブロック図である。本実施形態では、二つのプロセ
スが通信を行う場合を例に説明を行う。なお、本明細書
において、通信を行うプロセス、またはスレッドをモジ
ュールと呼ぶ。
【0014】コンピュータA100上では、モジュール
A101、および通信手段A102が稼動している。同
様に、コンピュータB200上では、モジュールB20
1と通信手段B202が稼動している。通信手段A10
2、通信手段B202は、TCP/IPプロトコル上で
動作し、通信管理部103、203、セッション管理部
105、205、モジュールリスト部104、204か
ら構成される。通信手段A102、通信手段B202
は、具体的には、デーモン(またはサービス)として実
行される。つまり、モジュールとは独立したプロセスと
して実行されている。本実施形態では、TCPおよびU
DPを利用する手段として、ソケットインターフェース
を用いるが、他のインターフェースを用いてTCPやU
DPを利用するようにしてもよい。
【0015】図2は、通信手段A102、通信手段B2
02を介して通信を行うモジュールにより実施される処
理の流れを示すフローチャートである。
【0016】他のモジュールと通信しようとするモジュ
ールは、まず、通信手段(通信手段A102、あるい
は、通信手段B202)に接続する。具体的には、TC
Pソケット等を用いて通信手段とプロセス間通信を行う
(ステップ1001)。通信手段との接続が完了する
と、モジュールは、モジュール特有の処理を行う。モジ
ュール特有の処理とは、各種設定、制御、データ収集、
編集等の直接的な通信以外の処理を指す(ステップ10
02)。次に、必要に応じて他のモジュールと送受信を
行う。具体的には、モジュールは、通信手段に対し、送
信先となるモジュールのモジュール名、そのモジュール
が存在するコンピュータのアドレス(ホスト名、IPア
ドレス等)といった、モジュールを特定するための情報
と送信するデータを指定する。また、通信手段に対して
受信要求することにより、他のモジュールからデータを
受信することができる(ステップ1003)。ステップ
1002および1003の処理は、必要なだけ繰り返さ
れる。図2では、便宜的にステップ1002、100
3、1004の処理が連続しているように書かれている
が、ステップ1002の処理中にモジュールの終了が指
示されるとモジュールは処理を終了する(ステップ10
04)。
【0017】図3は、通信手段の通信管理部による内部
処理の流れを示すフローチャートである。
【0018】通信手段の通信管理部は、モジュールから
の接続があると、まず、モジュール接続受付スレッド2
100を生成する(ステップ2001)。続いて、送信
スレッド2200の生成(ステップ2002)、受信ス
レッド2300の生成(ステップ2003)を実施す
る。これら3つのスレッドの生成順序は、入れ替えるこ
とも可能である。この後、通信管理部は、通信手段の終
了イベントが発生するまで待つ(ステップ2003)。
【0019】図4は、モジュール接続受付スレッド21
00の処理を示すフローチャートである。
【0020】モジュール接続受付スレッド2100は、
生成されるとモジュールからの接続要求を待つ(ステッ
プ2101)。接続要求が来るとモジュール接続受付ス
レッド2100は、モジュールを通信手段に接続し、モ
ジュールリスト部にエントリを1つ追加して、モジュー
ル名、接続識別子等を登録する。モジュール名として
は、文字列でもよいし、ユニークな番号等でもよい。接
続識別子としては、例えばTCPソケットを利用するの
であれば、ソケットハンドルが接続識別子となる(ステ
ップ2102)。モジュールリスト部への登録が完了す
ると、モジュール接続受付スレッド2100は、ステッ
プ2101の処理に戻り、モジュールからの接続要求を
待つ。
【0021】図5は、送信スレッド2200の処理を示
すフローチャートである。
【0022】送信スレッド2200は、既にモジュール
リスト部に登録されているモジュールからの送信要求を
待つ(ステップ2201)。モジュールから送信要求が
来ると、送信スレッド2200は、モジュールからの送
信データがUDPで送信不可かどうかを調べる(ステッ
プ2202)。UDPでの送信が不可であれば、送信ス
レッド2200は、送信先と送信データを指定して、セ
ッション管理部にコネクション要求を出す(ステップ2
203)。その後、UDPを用いて、送信先コンピュー
タの通信手段に対し、コネクション要求を送信し、ステ
ップ2201の処理に戻る。なお、UDPは信頼性が保
証されていないため、肯定応答等を用いて確実にデータ
や要求が送信先に届いたことを確認する(受信確認)。
一定期間待っても肯定応答が戻ってこない場合、データ
や要求の再送を行う。(ステップ2204)。
【0023】ステップ2202において、UDPで送信
可能である場合、送信スレッド2200は、UDPによ
り送信先へデータを送信する。この場合でも、実際に送
信データを受け取るのは、送信先コンピュータ上で動作
している通信手段である。データをUDPで送るか、T
CPで送るかの判別は、送信データが送信途中のネット
ワーク上で複数パケットに分割されない大きさを基準と
する。データを送信した後、ステップ2201の処理に
もどる(ステップ2205)。
【0024】図6は、受信スレッド2300の処理を示
すフローチャートである。
【0025】受信スレッド2300は、生成されるとU
DPからの受信を待つ(ステップ2301)。受信スレ
ッド2300は、UDPからデータを受け取ると、それ
が他のモジュールからの送信データか、コネクション要
求かを判別する(ステップ2302)。送信データであ
れば、モジュールリスト部から適切なモジュールを検索
し、該当する接続識別子を用いてそのモジュールへデー
タを転送する。モジュールリストに該当するモジュール
が登録されていなければ、送信元にエラーが返される。
データを送信した後、処理は、ステップ2301に戻る
(ステップ2303)。
【0026】ステップ2302において受け取ったデー
タがコネクション要求であれば、モジュールリスト部か
ら宛先となるモジュールを探す(ステップ2304)。
該当するモジュールがあれば、コネクション要求をセッ
ション管理部に転送する。該当するモジュールがなけれ
ば、送信元にエラーを返す。データを送信した後、処理
は、ステップ2301に戻る(ステップ2305)。
【0027】図7は、セッション管理部の処理を示すフ
ローチャートである。
【0028】セッション管理部は、まず、通信管理部か
らの要求を待つ(ステップ3001)。受け取った要求
が終了要求であればセッション管理の処理を終了する
(ステップ3002)。受け取った要求がコネクション
要求であれば、セッションスレッド3100を生成し、
再びコネクション要求を待つ(ステップ3003)。
【0029】セッションスレッド3100では、データ
を送る側のコネクション要求か、受ける側のコネクショ
ン要求かを判別する(ステップ3101)。送る側のコ
ネクション要求であれば、宛先となるコンピュータの通
信手段に対し、実質的なコネクション要求を出す。これ
は、ソケットインターフェースのconnectに該当
する(ステップ3102)。コネクションが確立された
後、データが送信される(ステップ3103)。データ
送信完了後、コネクションは破棄される(ステップ31
04)。
【0030】ステップ3101において、受ける側のコ
ネクション要求であれば、実質的なコネクション要求を
待つ。これは、ソケットインターフェースのliste
nに該当する(ステップ3105)。コネクション確立
後(ソケットインターフェースacceptの後)、デ
ータが受信され、適切なモジュールへデータが転送され
る(ステップ3106)。データ受信完了後、セッショ
ンスレッド3100は、コネクションを破棄する(ステ
ップ3107)。
【0031】ステップ3104および3107の後、ス
レッドは消滅する。なお、ここでスレッドを消滅させ
ず、スレッドプール構成として、スレッドを再利用する
ようにしてもよい。例えば、図8で示すように、コンピ
ュータA100上にモジュールA101、コンピュータ
B200上にモジュールB201、コンピュータC30
0上にモジュールC301、コンピュータD400上に
モジュールD401とモジュールD411、コンピ
ュータE500上にモジュールE501とモジュール
511が動作しており、全てのコンピュータがネッ
トワーク1により接続されているとする。全てのコンピ
ュータ上には、それぞれ通信手段AからEが動作してい
る。これは、論理的に見ると、図9で示すように、通信
手段2を一本の通信バスとし、全てのモジュールがこの
通信バスに接続されているよう捉えることができる。
【0032】モジュールA101がモジュールE51
1に対してデータを送信する場合、モジュールE51
1が動作するコンピュータ名とモジュール名(ここでは
モジュールE)および送信データを、モジュールA1
01が通信手段に対して指定する。各モジュールは、煩
雑なコネクション管理を行う必要がなく、小さなデータ
もUDPにより迅速に転送される。さらに、通信手段
は、UDPを利用する場合、受信確認を行うためデータ
は確実に転送される。
【0033】図9において、モジュールA101を資産
管理マネージャ、その他のモジュールは、資産管理情報
を集めるエージェントであると仮定する。この場合にお
いて、資産管理マネージャ101が各エージェントに対
して資産情報収集要求を出すことを考える。上述した通
信手段を用いれば、モジュールA101は各モジュール
を指定し資産情報収集要求を出し、各モジュールからの
返信を待つだけでよい。
【0034】また、他の形態として、名前管理を行うプ
ロセスおよびデータベースを利用することが考えられ
る。各モジュールが動作しているコンピュータ名をあら
かじめ当該データベースに登録することにより、通信
時、モジュール名を指定するだけで通信が可能となる。
こうすれば、特定のモジュールと通信を行う場合、その
物理的な位置を意識する必要がなくなる。
【0035】
【発明の効果】本発明によれば、通信を行いたいプロセ
スやスレッド自身が煩雑なコネクション管理を行う必要
が無く、効率よく確実なデータ転送が行える。このた
め、大規模分散アプリケーションを開発するユーザアプ
リケーションプログラマは短い期間でプログラミングで
き、しかも、効率のよい通信手段を手に入れることがで
きる。
【図面の簡単な説明】
【図1】本発明が適用された計算機システムの位置実施
形態における基本構成を簡略に示したブロック図であ
る。
【図2】モジュールにより実施される処理の流れを示す
フローチャートである。
【図3】通信手段の通信管理部による内部処理の流れを
示すフローチャートである。
【図4】通信管理部のモジュール接続受付スレッドの処
理を示すフローチャートである。
【図5】通信管理部の送信スレッドの処理を示すフロー
チャートである。
【図6】通信管理部の受信スレッド2300の処理を示
すフローチャートである。
【図7】セッション管理部の処理を示すフローチャート
である。
【図8】本発明の他の形態を示す計算機システムの構成
を簡略に示すブロック図である。
【図9】図8に示す計算機システムの論理的な構成を示
すブロック図である。
【符号の説明】
100、200・・・コンピュータ 101、201・・・モジュール 102、202・・・通信手段 103、203・・・通信管理部 104、204・・・モジュールリスト部 105、205・・・セッション管理部
───────────────────────────────────────────────────── フロントページの続き (72)発明者 山田 弘 神奈川県川崎市麻生区王禅寺1099番地 株 式会社日立製作所システム開発研究所内 (72)発明者 大矢 雅章 神奈川県横浜市戸塚区戸塚町5030番地 株 式会社日立製作所ソフトウェア事業部内 Fターム(参考) 5K034 AA01 BB06 DD01 EE05 FF01 HH01 HH02 HH06 HH63 KK29 LL01

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】情報処理システム上で動作するプロセス間
    で相互に通信するための通信方法において、送信側で、
    送信しようとするデータに基づきコネクション型通信プ
    ロトコルとコネクションレス型通信プロトコルのいずれ
    により前記送信しようとするデータを送信するか判別
    し、該判別の結果に従ったプロトコルを用いて前記送信
    しようとするデータを送信することを特徴とする通信方
    法。
  2. 【請求項2】前記判別は、前記送信しようとするデータ
    の大きさに基づいて行われることを特徴とする請求項1
    記載の通信方法。
  3. 【請求項3】前記転送しようとするデータの大きさが一
    定の大きさ以下であればコネクションレス型通信プロト
    コル用い、前記転送しようとするデータの大きさが前記
    一定の大きさ以上であればコネクション型通信プロトコ
    ルを用いることを特徴とする請求項2記載の通信方法。
  4. 【請求項4】前記判別の結果コネクション型通信プロト
    コルを用いると判別されたとき、通信先に対するコネク
    ションの確立の要求を、コネクションレス型通信プロト
    コルを用いて行うことを特徴とする請求項1の通信方
    式。
JP2000355633A 2000-11-17 2000-11-17 通信方法 Pending JP2002158736A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000355633A JP2002158736A (ja) 2000-11-17 2000-11-17 通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000355633A JP2002158736A (ja) 2000-11-17 2000-11-17 通信方法

Publications (1)

Publication Number Publication Date
JP2002158736A true JP2002158736A (ja) 2002-05-31

Family

ID=18828019

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000355633A Pending JP2002158736A (ja) 2000-11-17 2000-11-17 通信方法

Country Status (1)

Country Link
JP (1) JP2002158736A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019077894A1 (ja) 2017-10-20 2019-04-25 ソニーセミコンダクタソリューションズ株式会社 無線通信装置、無線通信方法およびコンピュータプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019077894A1 (ja) 2017-10-20 2019-04-25 ソニーセミコンダクタソリューションズ株式会社 無線通信装置、無線通信方法およびコンピュータプログラム

Similar Documents

Publication Publication Date Title
US6901580B2 (en) Configuration parameter sequencing and sequencer
US5745685A (en) Protocol extension in NSPP using an acknowledgment bit
WO2022032984A1 (zh) 一种mqtt协议仿真方法及仿真设备
TW533358B (en) Apparatus and method for communicating between computer systems using a sliding send window for ordered messages in a clustered computing environment
US20120173737A1 (en) Method and system for data processing
JP5039915B2 (ja) telnetセッション、telnetエージェンシ、およびコンピュータ・ネットワーク・システムを維持する方法
JP2007157148A6 (ja) telnetセッション、telnetエージェンシ、およびコンピュータ・ネットワーク・システムを維持する方法
JPH07168774A (ja) 無接続セッション指向プロトコルの第1メッセージの生成システム及び方法
CN112929418B (zh) 一种基于发布订阅的RapidIO高速通信方法及系统
US20040267960A1 (en) Force master capability during multicast transfers
JPH10308791A (ja) データ通信方法、データ通信装置、およびデータ通信プログラム記録媒体
US7562109B2 (en) Connectivity confirmation method for network storage device and host computer
JPH10336272A (ja) データ通信システム及びデータ通信方法
JP2000224260A (ja) 通信制御装置
KR20030001538A (ko) 랜 카드의 무선 모뎀 시뮬레이션
JP2002158736A (ja) 通信方法
KR20090071542A (ko) 호스트 가장 네트워크 디바이스 및 그의 방법
US7139832B2 (en) Data transfer and intermission between parent and child process
JP2006025211A (ja) ピアツーピア端末装置並びにピアツーピア通信システム、ピアツーピア通信方法、ピアツーピア端末プログラム
KR100412237B1 (ko) 사용자 수준의 소켓 계층과 그를 이용한 통신 인터페이스방법
JP2007157160A (ja) Tcp/ipリンクおよびトラフィックを選択的に起動する方法、コンピュータ・ネットワーク・システム、およびプログラム記憶デバイス
CN115037795B (zh) 一种嵌入式设备多机通信方法
Rodriguez An X. PC/TCP protocol translator
JP2000099476A (ja) 分散オブジェクト間通信中継システム
JPH06261094A (ja) データ通信システムおよびデータ通信方法