JP5671327B2 - 通信処理装置および通信処理方法 - Google Patents

通信処理装置および通信処理方法 Download PDF

Info

Publication number
JP5671327B2
JP5671327B2 JP2010283734A JP2010283734A JP5671327B2 JP 5671327 B2 JP5671327 B2 JP 5671327B2 JP 2010283734 A JP2010283734 A JP 2010283734A JP 2010283734 A JP2010283734 A JP 2010283734A JP 5671327 B2 JP5671327 B2 JP 5671327B2
Authority
JP
Japan
Prior art keywords
communication
processing apparatus
component
information processing
logical
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
Application number
JP2010283734A
Other languages
English (en)
Other versions
JP2011227867A (ja
JP2011227867A5 (ja
Inventor
康彦 上原
康彦 上原
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2010283734A priority Critical patent/JP5671327B2/ja
Priority to US13/027,017 priority patent/US20110247012A1/en
Priority to KR1020110026183A priority patent/KR101354573B1/ko
Priority to CN201110077584.9A priority patent/CN102279837B/zh
Publication of JP2011227867A publication Critical patent/JP2011227867A/ja
Publication of JP2011227867A5 publication Critical patent/JP2011227867A5/ja
Application granted granted Critical
Publication of JP5671327B2 publication Critical patent/JP5671327B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • 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/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/547Messaging middleware

Landscapes

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

Description

本発明は、ネットワークのノードにミドルウェアを介して接続された通信処理装置およびその制御方法に関する。
近年、ソフトウェアシステム開発においては、ソフトウェアのコンポーネント化が推進されている。そこではまず、ソフトウェアを相互に依存度の低いコンポーネント(部品)単位に分割し、分割したコンポーネントを様々な通信チャネルを持った複数の情報処理装置(ノード)に配置する。そして、コンポーネント同士は、相互に通信を行いながら動作するものである。さらに、コンポーネント間の通信では、通信制御を統一的に行う通信ミドルウェアを導入し、異なる通信チャネルを隠蔽して通信のインタフェースを統一する。このインタフェースの統一によって、システムの保守性を向上させたり、コンポーネントの再利用による生産性を向上させたりしている。
この統一されたインタフェースにおいて、通信相手となるコンポーネントを特定するためのIDとして、どのような情報を利用するかは、システム設計において重要な事項である。なぜなら、その利用する情報が、コンポーネント設計の柔軟性やシステムの動作速度に影響を与えるからである。
一般的に、通信相手を特定するIDとしては、抽象度の低い物理IDを使ったり、抽象度の高い論理IDを使ったりすることが考えられる。前者は、通信相手が配置されているノード、所属するプロセス、そして関連付けられている物理的な情報を内包した物理IDを利用して通信を行う方法(以下、「物理IDを使った通信方法」と呼ぶ)である。後者は、コンポーネント名称などの抽象度の高い論理IDを用いて通信相手を特定するとともに、通信ミドルウェアがコンポーネント名称と通信相手の物理的な情報との関連を管理し、通信時に論理IDから物理的な情報(物理IDなど)への変換を行う方法である。(以下、「論理IDを使った通信方法」と呼ぶ。)
また、「物理IDを使った通信方法」では、IDの中に通信経路を特定する情報が含まれているため、通信処理にかかる時間を減らすことができ、高速な通信を行うことができる。反面、コンポーネント設計に対する柔軟性が乏しくなってしまう。
更に、「論理IDを使った通信方法」では、通信を行うたびに論理IDから物理的な情報への変換処理を行う必要がある。複数ノードから成るシステムでは、コンポーネントの物理的な情報は、ノードをまたがって集中管理される必要がある。従って、「論理IDを使った通信方法」では、通信元となるコンポーネントからコンポーネントの物理的な情報にアクセスし、論理IDを物理的な情報に変換する処理には時間がかかるので、通信にかかる計算コストは高くなる。しかしながら、コンポーネントは、動作時に自由に複数ノードに跨って配置することができ、設計の柔軟性は高くなる。
物理IDと論理IDの長所を生かすべくこれらを併用し、初回の通信のみ論理IDから物理的な情報へ変換し、2度目からは得られた物理的な情報を直接用いて通信をする方法(以下、「初回のみ論理IDを使用する方法」)も考えられる。この方法では設計の柔軟性と通信速度を両立させることができるが、システム動作中にコンポーネントの物理配置が変わってしまうようなシステムにおいては、通信の宛先となる物理的な情報を何らかの方法で補正する必要が生じる。
特開2009−009607号公報は、データの物理的な配置情報と論理的な名前の対応をテーブルで管理し、物理配置を隠蔽するミドルウェアに関するものである。物理配置が変更になった場合に、テーブルを自動で更新することで、アクセス元のプログラムはデータの配置変更を意識せずに済むものである。
特開2007−281839号公報は、バスリセットが発生すると、ネットワークの構成変更があるかどうかを走査して、物理的な配置情報と論理的な位置情報との対応表を更新することを提案している。
特開2009−009607号公報 特開2007−281839号公報
複数ノードで構成されるシステムにおいて、システム自体は動きつづけたまま、一部のノードだけが再起動してしまうことがある。一部ノードが再起動すると、該当ノード上にあるコンポーネントの所属するプロセスIDなどの情報が変化してしまうことがある。
例えば、あるノードが停止した後に再起動すると、そのノードに配置されたコンポーネントは一度終了した後に再起動することになる。一般的なコンピュータのOSにおいて、プロセスIDは、起動した順に割り付けられるものであり、また複数のプロセスから成るシステムにおいては、プロセスが起動する順序は厳密に一意に決められるものではない。
つまり、あるノードが再起動した場合、そのノードに配置されたコンポーネントは、再起動の前後で同じプロセスIDを割り付けられるとは限らず、結果としてプロセスIDを内包する物理IDで示される物理配置も再起動の前後で異なってしまう場合がある。その場合、「初回のみ論理IDを使用する方法」では、通信先の物理的な情報が変化してしまうことから、正常な通信ができなくなってしまう。正しい通信先の物理的な情報を取得するためには、一部のノードが再起動した後に論理IDから物理配置への変換処理をやり直す必要がある。しかし、システム内に多数のコンポーネントが存在する場合、全てのコンポーネントにノード再起動の検知と再変換処理を実装するのはコストが高く非効率である。
特開2009−009607号公報の方法では、複数ノードにまたがるシステムにおいては、コンポーネントの情報をノードをまたいで集中管理する必要があり、関連テーブルに毎回アクセスすると通信負荷が高くなることがある。
また特開2007−281839号公報では、バスリセットによる情報の変更が発生するたびに全てのデバイス(通信端点)を走査して配置情報を更新している。そのため、再起動されないデバイスで動作するコンポーネントの情報などを余計に更新するのでトラフィックが大きくなってしまう。
本発明は係る課題に鑑み、ミドルウェアを介してネットワーク上に接続された複数の通信コンポーネントを備える通信処理装置において、ネットワークの通信先のコンポーネントの物理配置が変化しても、正常な通信が行うことを可能にする技術を提供する。
本発明の一実施形態に係る通信処理装置は、情報処理装置と通信する第1通信手段と、前記情報処理装置上で動作するプロセスと前記第1通信手段を介して通信する第2通信手段と、を有する通信処理装置であって、
前記第1通信手段は、
前記情報処理装置が停止した際に前記第2通信手段に通知する通知手段を備え、
前記第2通信手段は、
前記情報処理装置の再起動により変化しうる可変のIDである前記情報処理装置上で動作しているプロセスのプロセスIDと、該プロセスに予め割り当てられている論理IDと、の間の対応付け情報を格納する格納手段と、
通信先となるプロセスの論理IDに対応するプロセスIDを前記格納手段を参照して取得する取得手段と、
前記取得手段が取得したプロセスIDを有する、前記情報処理装置上で動作するプロセスとの通信を実行する実行手段と、
前記通知手段によって前記情報処理装置が停止したことを通知された際に、前記情報処理装置で動作するそれぞれのプロセスについての前記格納手段が格納している対応付け情報を無効化する無効化手段と
を備えることを特徴とする。
ミドルウェアを介してネットワーク上に接続された複数の通信コンポーネントを備える通信処理装置において、ネットワークの通信先のコンポーネントの物理配置が変化しても、正常な通信を行うことができる。
通信処理システムの全体を示す図。 物理IDの例を示す図。 ID変換テーブルの具体的な例を示す図。 「物理IDを使った通信方法」の構成を示す図。 「物理IDを使った通信方法」のメッセージ送信のフローを示す図。 「論理IDを使った通信方法」の構成を示す図。 「論理IDを使った通信方法」のメッセージ送信のフローを示す図。 「初回のみ論理IDを使用する通信方法」のメッセージ送信のフローを示す図。 本発明のメッセージ送信のフローを示す図。 本発明のノード停止検出時の処理フローを示す図。 本発明の追加の処理フローを示す図。 通信処理装置(ノード)のハードウェア構成を詳細に示すシステム図。 コンポーネントと通信ミドルウェアとの間の通信フローを示す図。
<実施形態1>
図12は、実施形態1における、通信処理装置の構成例を示す図である。図12において、ノード01及びノード02が、本実施形態に係る通信処理装置に相当する。図12において、ノード01とノード02とは、通信路12を経由して通信することができる。以下に、ノード01の詳細な構成について説明する。ノード02はノード01と同様の構成を有する。このため、ノード02についての詳細な説明は省略する。
ノード01には、CPU13、ネットワークコントローラ03およびメモリ05が配置されており、これらはシステムバス04によって相互に接続されている。メモリ05は、CPU13の備えるメモリ保護機構によってプロセスごとに分割されている。図12の例では、ノード01では通信ミドルウェア(第1通信手段)、コンポーネントA及びコンポーネントBが動作している。したがって、メモリ05内には通信ミドルウェア用メモリ空間06、コンポーネントA用メモリ空間07、及びコンポーネントB用メモリ空間08が存在する。
これらメモリ空間06〜08内には、論理IDと物理IDとの変換テーブルが独立に保持されている。すなわち、通信ミドルウェア用メモリ空間06内には変換テーブル09が、コンポーネントA用メモリ空間07内には変換テーブル10が、コンポーネントB用メモリ空間08内には変換テーブル11が、それぞれ存在する。上述のようにノード01は通信路12を経由してノード02と接続されている。ノード01の通信ミドルウェアは、ネットワークコントローラ03を介してノード02と通信を行う。
図1は、実施形態1における、ネットワークを介して通信コンポーネント間で通信を行う通信処理システムの概略を示す図である。この通信処理システムは、複数の通信処理装置(情報処理装置)であるノード01、02に接続された、通信機能を提供する通信ミドルウェア103と複数のコンポーネントA、Bとを含む。通信ミドルウェア103は、ノード間、プロセス間などの通信を抽象化する機能を持っている。図1の例においてノード01及びノード02上(情報処理装置上)では、通信ミドルウェア103を実現するプログラムが動作しており、これらのプログラムが連携することによって通信ミドルウェア103が実現されている。通信ミドルウェア103は、ID集中管理機能104およびノード動作状態管理機能105を有している。ノード動作状態管理機能105は、システムを構成する各ノードの状態を監視し、現在動作中であるか、あるいは停止中であるかを管理している。通信ミドルウェア103上には、通信端点となる複数のソフトウェアのコンポーネントA、Bが動作している(図4参照)。そして、コンポーネントAは、ノード01上で、またコンポーネントBは、ノード02上でそれぞれ動作している。通信コンポーネント(第2通信手段)であるコンポーネントAには、ID変換テーブル108(格納手段)、所属ノード判別機能109、およびID無効化機能110(無効化手段)が配置されている。ここで通信ミドルウェア103は、通信コンポーネントの物理配置を表す物理ID、コンポーネントの配置に依存しない論理IDを併用する複数のID解釈機能を備えている。
また、通信ミドルウェア103は、送信先ノード判別機能111を備えてもよい。送信先ノード判別機能111は、所属ノード判別機能109と連携し、メッセージの宛先である物理IDから宛先コンポーネントが所属するノードを判別する機能である。
図2は、実施形態1における、ネットワーク上の通信コンポーネントの物理配置を示す物理IDの例である。物理ID201は、4桁の数値から構成される。物理ID201は、該当コンポーネントが配置されたノードを識別する2桁のノードID202と該当コンポーネントが配置されたプロセスを識別する2桁のプロセスID203の組み合わせである。
図3は、通信のための各コンポーネント内に配置されるID変換テーブル108の具体例を示す。このID変換テーブル108は、コンポーネント内に其々保持されているため、「論理IDを使った通信方法」のように通信を行うたびに通信ミドルウェアの提供する変換機能を用いるのに比べ、高速な処理が可能である。通信相手(通信先)のコンポーネントに対して、この図のように、識別情報として、エントリ番号305、論理ID306、そして物理ID307があり、物理ID307には、ノードとプロセスの情報が含まれている。
図3はコンポーネントAの保持するID変換テーブル108であって、通信相手である、コンポーネントB、コンポーネントC、コンポーネントDの3つのコンポーネントの情報が登録されている。このID変換テーブル108は、エントリした通信相手の各コンポーネントに対して、エントリ番号305と論理IDと物理配置を示す物理ID201との関連付けを行うための情報をテーブル化している。具体的には、ID変換テーブル108内に配置されている宛先を識別する通し番号であるエントリ番号305、宛先コンポーネントを文字列で表現した論理ID306、宛先コンポーネントの物理的情報を表現した物理ID307である。図3の例では、コンポーネントBは、物理ID=0101、コンポーネントCは、物理ID=0201、コンポーネントDは、物理ID=0202となっている。これらは、それぞれのコンポーネントが、ノード01のプロセス01、ノード02のプロセス01、ノード02のプロセス02に配置されていることを意味している。以上のようにこのID変換テーブルには、コンポーネント(プロセス)のプロセスIDと、このコンポーネント(プロセス)に予め割り当てられている論理IDと、の間の対応付け情報が格納されている。
まず、従来技術の「物理IDを使った通信方法」、「論理IDを使った通信方法」、「初回のみ論理IDを使用する通信方法」におけるシステム構成、および通信ミドルウェアを使ったメッセージ送信時の動作について説明し、本発明の実施形態1との差異を明確にする。
図4および図5は、一般的な「物理IDを使った通信方法」に対する説明のための図である。図4の構成からわかるように、2つのノード01、02を含むシステムに通信ミドルウェア403が配置されている。通信ミドルウェア403上には複数のソフトウェアコンポーネントA、B、C、Dが動作している。コンポーネントAは、ノード01上に配置され、所属するプロセスIDは01である。同様に、コンポーネントBはノード01上のプロセス02、コンポーネントCは、ノード02上のプロセス01、コンポーネントDは、ノード02上のプロセス02に所属している。この場合、コンポーネントA、B,C、Dを表す物理IDは、それぞれ0x0101、0x0102、0x0201、0x0202となる。
図5のフロー図で「物理IDを使った通信方法」の動作について説明する。S501において、送信指示を受付けることにより、あるコンポーネントがメッセージの送信処理を開始する。S502において、通信ミドルウェアは、宛先の物理IDから宛先コンポーネントの物理IDを特定する。「物理IDを使った通信方法」においては、通信を行うコンポーネントは宛先を物理IDで指定することになる。ここで物理IDは、図2に示した通り宛先コンポーネントの物理的な情報を内包しており、この特定処理の負荷は小さい。
次に、S503において、特定された宛先の物理IDを用いて通信ミドルウェアが実際のメッセージ送信処理を行う。S504で、宛先への通信が存在するか否かにより、送信結果が得られる。ここで、宛先への通信が成功すれば、すなわち宛先が存在すれば通信は成功であり、S505へ移行する。S504で、通信した結果宛先が存在しないなどのエラーが発生すると、通信は失敗となりS506へ移行する。
図6および図7は、「論理IDを使った通信方法」に対する説明のための図である。図6において、2つのノード01、02を含むシステムに通信ミドルウェア603が配置されている。通信ミドルウェア603は、内部にID集中管理機能604を備えている。通信ミドルウェア603上には、複数のソフトウェアコンポーネントA、B、C、Dが動作しており、コンポーネントAはノード01上に配置され、所属するプロセスIDは01である。同様に、コンポーネントBはノード01上のプロセス02、コンポーネントCはノード02)上のプロセス01、コンポーネントDはノード02上のプロセス02に所属している。この場合、コンポーネントA、B、C、Dを表す物理IDは、それぞれ0x0101、0x0102、0x0201、0x0202となる。
図7のフロー図で「論理IDを使った通信方法」の動作について説明する。S701において、送信指示を受付けることにより、通信を行うコンポーネントがメッセージの送信処理を開始する。この時点で、通信を行うコンポーネントは、宛先の論理IDを受付けている。S702で、通信を行うコンポーネントは、まず通信ミドルウェア603に問い合わせる。そして、通信ミドルウェア603が備えるID集中管理機能604が、論理IDから物理IDへの変換処理を行う。「論理IDを使った通信方法」では、通信を行うコンポーネントは、宛先を論理IDで指定する。論理IDとして、例えばコンポーネント名称を表す文字列などを指定する。また、通信ミドルウェアによるID集中管理機能604は、複数のノードに渡るコンポーネントの情報を動的かつ一元的に管理しなければならない。
S703で、問い合わせを受けた通信ミドルウェア内のID集中管理機能604は、指定された論理IDを持つコンポーネントがシステム内に存在するかどうかの判定を行う。システム内に該当のコンポーネントが存在しなかった場合、S704で、宛先が存在しないエラーが送信元コンポーネントに通知される。
システム内に該当のコンポーネントが存在し、物理IDへの変換処理が行われた後の処理は、図5で説明した「物理IDを使った通信方法」と同一である。つまり、S705で、ID集中管理機能604は、物理IDから宛先コンポーネントを特定する。
S705で、ID集中管理機能604は、特定した宛先コンポーネントへ実際の送信処理を行う。そして、S707で、通信の成否を確認する。最終的に宛先が存在すれば、通信は成功でありS708へ移行し、存在しなければ、エラーとしてS709へ移行する。
図8は、従来技術「初回のみ論理IDを使用する方法」に対する説明のための図である。この従来技術におけるシステム構成は、図6の「論理IDを使った通信方法」と同様である。S801で、通信を行うコンポーネントがメッセージの送信処理を開始する。S802で、通信を行うコンポーネントは、該当の宛先に対する初回の送信かどうかを判定する。
ここで初回の送信であると判定すると、S803で、通信を行うコンポーネントは、通信ミドルウェア603に問い合わせ、ID集中管理機能604が、論理IDから物理IDへの変換処理を行う。「初回のみ論理IDを使用する方法」の初回の通信では宛先を論理IDで指定する。
S804で、「論理IDを使った通信方法」と同様に、通信ミドルウェア603内のID集中管理機能604は、指定された論理IDを持つコンポーネントがシステム内に存在するかどうかの判定を行う。これはS703の手順と同様である。システム内に該当のコンポーネントが存在しなかった場合は、S805で、ID集中管理機能604は、宛先が存在しないとしてエラーを返す。これはS704と同様である。
システム内に該当のコンポーネントが存在し、ID集中管理機能604が論理IDから物理IDへの変換が成功した場合は、S806で、ID集中管理機能604は、変換後の物理IDをコンポーネント内のメモリ(不図示、コンポーネントが属するプロセスのメモリ空間)に格納する。物理IDを格納しておくことにより、2回目の送信からはコストの高いS803を実行せずに済むことになる。
物理IDを記憶した後、あるいはS802において2回目以降の通信であると判定された場合は、ID集中管理機能604は、物理IDを使って通信を行う。これ以降の処理は、図7の「論理IDを使った通信方法」と同様である。すなわち、S807からS811のステップは、それぞれ図7のS705からS709のステップに対応するので、説明を省略する。
次に、本発明の一実施形態について説明する。図9は、本実施形態においてメッセージを送信するコンポーネントの動作を表すフローチャートである。また図10は、本実施形態においてノード停止検出時の通信ミドルウェアの動作を表すフローチャートである。本実施形態のシステム構成図は、図1で説明したとおりである。
S901において、通信を行うコンポーネントがメッセージの送信処理を開始する。S902で、通信を行うコンポーネントは、コンポーネント内のID変換テーブル108を参照し、送信先に相当するエントリがテーブル内に存在するかどうかを判定する(取得手段)。本実施形態においては、図3のID変換テーブル108の構成に示すように、宛先を論理IDで指定してもID変換テーブルのエントリ番号で指定してもよい。
S903で、判定によってID変換テーブル108内にエントリが発見された場合は、このエントリが無効化済であるかどうか判定する。(ID変換テーブル108内のエントリを無効化する処理については、図10を用いて後述する。)
すでに無効化済であった場合は、S904で、ID変換テーブル108からこのエントリに含まれる論理IDを取得する。更に、S905で、通信を行うコンポーネントは、通信ミドルウェア603に問い合わせ、ID集中管理機能104は、その論理IDを用いて物理IDへの変換処理を行う。この処理は「論理IDを使った通信方法」のS702と同じ処理であり、通信ミドルウェア103への問い合わせが発生する。
S902において、送信先に相当するエントリが存在しなかった場合は、通信を行うコンポーネントは、宛先として指定された論理IDを用いて、同様に、通信ミドルウェア103へ問合せ(問合せ手段)、S905で、ID集中管理機能104が物理IDへの変換処理を行う。ID集中管理機能104は、ネットワーク上の全てのコンポーネントに対して集中的に物理IDを登録する集中IDテーブルを有する。この集中IDテーブルを参照することにより、宛先として指定された論理IDが、対応する物理IDへ変換される。すなわちこの集中IDテーブルには、コンポーネント(プロセス)のプロセスIDと論理IDとの間の対応付け情報が格納されている。
次にS906において、「論理IDを使った通信方法」のS703と同様に、通信ミドルウェア103内のID集中管理機能104を用いて、通信ミドルウェアは指定された論理IDを持つコンポーネントがシステム内に存在するかどうかの判定を行う。該当のコンポーネントが未登録で存在しなかった場合は、S907で、通信ミドルウェアは宛先が存在しないエラーを通信を行うコンポーネントへ返却する。これはS704と同じ処理である。
S906で、ID集中管理機能104が論理IDから物理IDへの変換に成功したら、S908において、通信を行うコンポーネントは、ID変換テーブル108に変換結果となる論理IDと物理IDの組み合わせを追記する(登録手段)。具体的には、S902において送信先エントリが存在しなかった場合には、ID変換テーブル108に新たなエントリを生成して追記する。あるいは、S903において、エントリが無効化されていた場合は、通信を行うコンポーネントは、S905において再取得された物理IDを正しい物理IDとして、該エントリを更新することになる。
S903で、送信先となるエントリが無効化されておらず有効であった場合には、S909において、通信を行うコンポーネント内で、エントリから物理IDが取得される。この処理は、例えば図3のID変換テーブル108に対応する、送信元コンポーネント内に保持されているID変換テーブル108からIDを抽出する処理である。従って、S905のような、通信ミドルウェアに問い合わせを行うような処理が発生しない。
S909において物理IDを取得した、あるいはS908にてID変換テーブル108への追記が完了したら、通信を行うコンポーネントは得られた物理IDを使って通信を行う。これ以降の処理は、図7の「論理IDを使った通信方法」と同様である。すなわち、S910からS914のステップは、それぞれ図7のS705からS709のステップに対応するので、説明を省略する。以上のように、変換テーブル108は、図9のS902−S906およびS908のステップにより再構築されることがわかる。
図10を用いて、ノード単位の部分的な再起動により発生する、ID変換テーブル108内のエントリを無効化する処理について説明する。S1001において、通信ミドルウェア103は、システムを構成する全体のノードの動作状態を監視する。S1002において、通信ミドルウェア103は、ノードが停止したかどうかを検出する。検出した場合、S1003において、通信ミドルウェア103は、停止したノードの情報を全コンポーネントに通知する。ここで、実際にノードの停止を検出して通知を行うのは通信ミドルウェア103内のノード動作状態管理機能105である。通知を受取った全てのコンポーネントにおいて、以下の処理が行われる。
S1004でノード停止を受信したコンポーネントは、S1005で、まずコンポーネントが保持するID変換テーブル108を走査する。具体的には、以下の処理をテーブルに含まれる全てのエントリに対して行う(S1006)。つぎに、S1007で、該エントリに保持されている物理IDからノード番号を取得する。所属ノード判別機能109は、物理IDがどのノードに所属するかを判別する。この判別を行うのは所属ノード判別機能109であり、図2で述べたように、物理IDの上2桁を抽出する処理に相当する。
次に、S1008において、通知を受信したコンポーネントは、S1007で抽出した所属ノードとS1002で通知された停止ノードとを比較し、一致しているかどうか判断する。もし両者が一致していたら、S1009で、該当エントリは停止したノードに所属するものであること判断し、ID無効化機能110は、該エントリを無効化する。具体的には、該エントリにフラグを付加してもよいし、物理IDを無効な値で更新しても良い。ここで無効化されたエントリは、S903で実施した、メッセージ送信時のIDが無効かどうかの判定に利用される。以上の処理を全エントリ、S1010で、全ノードに対して行い、処理を終了する。
図13を参照して、ノードの再起動前後における、コンポーネントと通信ミドルウェアとの動作を説明する。図13において、ノード01にはコンポーネント1301、コンポーネント1302、及び通信ミドルウェア1303が配置されている。また、ノード02には通信ミドルウェア1304及びコンポーネント1305が配置されている。
まず、ノード2の再起動前に、コンポーネント1301が行う通信について説明する。コンポーネント1301は、論理IDが既知であるコンポーネント1305との通信を希望するものとする。また、コンポーネント1301が有するID変換テーブルには、コンポーネント1305の物理IDが登録されていないものとする。
この場合S1306においてコンポーネント1301は、コンポーネント1301と同一ノードに配置されている通信ミドルウェア1303に対して、コンポーネント1305の物理IDを問い合わせる。具体的にはコンポーネント1301は、通信ミドルウェア1303に対して、通信を希望するコンポーネント1305の論理IDを送信し、コンポーネント1305の物理IDの送信を要求する。コンポーネント1305の物理IDを取得すると、S1307においてコンポーネント1301は、コンポーネント1305へとデータを送信する(実行手段)。また、上述のようにコンポーネント1301は、コンポーネント1305の論理IDと物理IDとを含む情報をID変換テーブルに登録する。
ここで、ノード02が停止したものとする。S1308においてノード01の通信ミドルウェア1303は、ノード02の停止を検知する。ノード02の停止の検知は、様々な方法によって行うことができる。例えば、ノード01が備えるネットワークコントローラが通信路の切断を検知してもよい。また、通信ミドルウェア1303と通信ミドルウェア1304間との定期的な通信が途絶した場合に、通信ミドルウェアは通信路が切断されたものと判断してもよい。
1309において通信ミドルウェア1303は、ノード01に配置されたコンポーネント1301及び1302に対して、ノード02が停止したことを通知する。図10を参照して上述したように、各コンポーネント1301,1302は、この通知を受けると、それぞれが有するID変換テーブルをチェックし、ノード02に配置されているコンポーネント1305についてのエントリを無効化する。
ここで、ノード02が再起動したものとする。S1310において再起動したノード02の通信ミドルウェア1304は、他のノードへとノード02が再起動したことを通知する。具体的には通信ミドルウェア1304は、通信ミドルウェア1303へとノード02が再起動したことを通知する。
さらにその後、ノード02に配置されたコンポーネント1305も再起動されたものとする。このときコンポーネント1305は、ノード02の制御部(例えば不図示のオペレーティングシステム)からプロセスIDを割り振られる。本実施形態においては物理IDはノードIDとプロセスIDとで構成され、通常ノードIDは固定されている。したがって、プロセスIDを割り振られた時、コンポーネント1305は自分の物理IDを知ることとなる。もっともコンポーネント1305は、ノード02の制御部から、直接物理IDを通知されてもよい。
次にS1311においてコンポーネント1305は、コンポーネント1305が配置されているノード02の通信ミドルウェア1304へと、コンポーネント1305の物理IDを通知する。すると通信ミドルウェア1304は、通信ミドルウェア1304が有するID変換テーブルに、コンポーネント1305の物理IDと論理IDとを関連付けて格納する。
S1312において、ノード01の通信ミドルウェア1303とノード02の通信ミドルウェア1304とは、有しているID変換テーブルを同期する。図13の例によれば、S1312において、ノード01の通信ミドルウェア1303が保持するID変換テーブルに、コンポーネント1305の物理IDと論理IDとが関連付けられて格納される。このID変換テーブルの同期は、一定時間ごとに行われてもよい。また、新しいコンポーネントが起動していずれかのノード上の通信ミドルウェアにそのコンポーネントについての情報が追加されたことに応答して、行われてもよい。
この状態でコンポーネント1301がコンポーネント1305への通信を希望するものとする。上述のようにS1309において、コンポーネント1305の情報は、コンポーネントS1301が有するID変換テーブルからは削除されている。したがってS1313において、S1306と同様に、コンポーネント1305は通信ミドルウェア1303へと問い合わせを行う。
最後にS1314において、S1307と同様に、コンポーネント1301はコンポーネント1305へとデータを送信する。このように、S1313においてコンポーネント1301は通信ミドルウェア1303へとコンポーネント1305の物理IDを問い合わせている。したがって、ノード02が再起動されコンポーネント1305の物理IDが変化して可能性があるにもかかわらず、コンポーネント1305へと正しく送信が行われる。
また本実施形態においては、S910で宛先コンポーネントの物理配置を特定してから、S911で実際の送信を行うまでの間に、宛先コンポーネントが所属するノードの動作状態を判定してもよい。そして、停止中であった場合には、その送信を未然に抑止してもよい。この判定を行うことによって、停止中のノードに対して送信処理を行うことによる送信エラーや送信タイムアウトの発生を防ぐことができる。
図11を用いて、この追加処理フローを説明する。S1101において、宛先コンポーネントの物理IDから宛先の物理的情報が特定される(S910の処理に相当する)。S1102において、宛先のコンポーネントが所属するノードが停止中であるかどうか判定する。S1101において宛先コンポーネントの物理的情報が特定されていることから、判定すべきノードを一意に決定することが可能である。
判定の結果、該当ノードが動作中であれば、S1103で、実際の送信を行う(S911の処理に相当する)。S1104で、該当ノードが停止中であれば、宛先停止中エラーを発生させ、実際の通信が行われないよう抑止する。また、ノード停止中のときに、図10に示したエントリの無効化を実施してもよいことは言うまでもない。
以上のような制御を行うことにより、論理ID使用によるコンポーネント設計の柔軟性と物理ID使用による高速な通信を両立させることが可能となる。そして、システムを構成するノードの一部が停止し再起動することによる物理IDの変化にも対応することも可能となる。さらに本実施形態の構成を採ることにより、コンポーネント実装の複雑化を抑止することができる。
<その他の実施例>
上述の実施形態において、各コンポーネントはノードのプロセスに配置されるものとして説明された。すなわち、ノードのコンポーネントと通信することは、ノードのプロセスと通信することを意味しうる。また上述の実施形態において論理IDは、宛先コンポーネントを文字列で表現したものである。しかしながら論理IDは文字列には限定されず、数値などであってもよい。各コンポーネントには、一意の論理IDが予め割り当てられていてもよい。例えば、ノード01が通信可能なノードで動作する各コンポーネントに、別々の論理IDが割り当てられていてもよい。
上述の実施形態においてミドルウェアはID変換テーブルを有し、他のノードのミドルウェアが有するID変換テーブルとの同期を行った。しかしながら、ミドルウェアがID変換テーブルを有する必要はない。例えば不図示の管理ノードは、各コンポーネントについての論理IDと物理IDとを関連付けて格納しうる。この場合ミドルウェアは、論理IDに対応する物理IDをコンポーネントから問い合わせられた際に、この管理ノードに問い合わせを行い、物理IDを取得することができる。
図12に示される例においては、通信ミドルウェア及びコンポーネントは、例えばパーソナルコンピュータのようなノードが、プログラムを実行することによって実現される。しかしながら本発明に係る通信処理装置は、専用のハードウェアによって構成されていてもよいことは、当業者には明らかであろう。すなわち本発明に係る通信処理装置が、通信ミドルウェアとして動作する回路と、通信処理装置内のコンポーネントとして動作する回路と、によって構成されていてもよい。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

Claims (8)

  1. 情報処理装置と通信する第1通信手段と、前記情報処理装置上で動作するプロセスと前記第1通信手段を介して通信する第2通信手段と、を有する通信処理装置であって、
    前記第1通信手段は、
    前記情報処理装置が停止した際に前記第2通信手段に通知する通知手段を備え、
    前記第2通信手段は、
    前記情報処理装置の再起動により変化しうる可変のIDである前記情報処理装置上で動作しているプロセスのプロセスIDと、該プロセスに予め割り当てられている論理IDと、の間の対応付け情報を格納する格納手段と、
    通信先となるプロセスの論理IDに対応するプロセスIDを前記格納手段を参照して取得する取得手段と、
    前記取得手段が取得したプロセスIDを有する、前記情報処理装置上で動作するプロセスとの通信を実行する実行手段と、
    前記通知手段によって前記情報処理装置が停止したことを通知された際に、前記情報処理装置で動作するそれぞれのプロセスについての前記格納手段が格納している対応付け情報を無効化する無効化手段と
    を備えることを特徴とする通信処理装置。
  2. 前記第2通信手段は、更に、
    通信先となるプロセスについての前記対応付け情報が前記格納手段に格納されていないか又は無効化されている場合、該通信先となるプロセスの前記論理IDに対応するプロセスIDを前記第1通信手段に問合せる問合せ手段と、
    前記問合せに対する応答として前記第1通信手段から前記通信先となるプロセスのプロセスIDを取得し、該プロセスIDと、前記通信先となるプロセスの前記論理IDと、の間の対応付け情報を前記格納手段に格納する登録手段と、
    を備えることを特徴とする請求項1に記載の通信処理装置。
  3. 前記第1通信手段は、更に、
    複数の情報処理装置について、それぞれの情報処理装置上で動作しているプロセスのプロセスIDと、該プロセスの前記論理IDと、の間の対応付け情報を格納する管理手段と、
    前記第2通信手段から前記問合せを受けた場合に、前記通信先となるプロセスの前記論理IDに対応するプロセスIDを前記管理手段を参照して取得し、該取得したプロセスIDを前記第2通信手段へ送信する送信手段と
    を備えることを特徴とする請求項2に記載の通信処理装置。
  4. 前記通信処理装置は、複数の前記第2の通信手段を備え、前記第2の通信手段のそれぞれが個別に前記対応付け情報を保持していることを特徴とする、請求項1乃至3の何れか1項に記載の通信処理装置。
  5. 前記通信処理装置は、通信ミドルウェアである前記第1通信手段と、コンポーネントである前記第2通信手段とを備え、
    前記第2通信手段は、前記第1通信手段及び前記情報処理装置の通信ミドルウェアを介して前記プロセスと通信し、
    前記第1通信手段は、前記情報処理装置の再起動を検知すると、前記情報処理装置上で動作しているプロセスのプロセスIDを前記情報処理装置の通信ミドルウェアとの間で共有するための通信動作を行う
    ことを特徴とする、請求項1乃至4の何れか1項に記載の通信処理装置。
  6. 情報処理装置と通信する第1通信手段と、前記情報処理装置上で動作するプロセスと前記第1通信手段を介して通信する第2通信手段と、を有する通信処理装置が行う通信処理方法であって、
    前記第2通信手段は、前記情報処理装置の再起動により変化しうる可変のIDである前記情報処理装置上で動作しているプロセスのプロセスIDと、該プロセスに予め割り当てられている論理IDと、の間の対応付け情報を格納する格納手段を有し、
    前記第2通信手段の取得手段が、通信先となるプロセスの論理IDに対応するプロセスIDを前記格納手段を参照して取得する取得工程と、
    前記第2通信手段の実行手段が、前記取得工程で取得したプロセスIDを有する、前記情報処理装置上で動作するプロセスとの通信を実行する実行工程と、
    前記第1通信手段の通信手段が、前記情報処理装置が停止した際に前記第2通信手段に通知する通知工程と、
    前記通知工程において前記情報処理装置が停止したことを通知された際に、前記情報処理装置で動作するそれぞれのプロセスについての前記格納手段が格納している対応付け情報を無効化する無効化工程と
    を備えることを特徴とする通信処理方法。
  7. コンピュータを、請求項1乃至の何れか1項に記載の通信処理装置が有する各手段として機能させるためのプログラム。
  8. 請求項に記載のプログラムを格納した、コンピュータが読み取り可能な記憶媒体。
JP2010283734A 2010-03-31 2010-12-20 通信処理装置および通信処理方法 Expired - Fee Related JP5671327B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2010283734A JP5671327B2 (ja) 2010-03-31 2010-12-20 通信処理装置および通信処理方法
US13/027,017 US20110247012A1 (en) 2010-03-31 2011-02-14 Communication processing apparatus, communication processing method, and storage medium
KR1020110026183A KR101354573B1 (ko) 2010-03-31 2011-03-24 통신처리장치, 통신처리방법 및 기억매체
CN201110077584.9A CN102279837B (zh) 2010-03-31 2011-03-28 通信处理装置及通信处理方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2010083403 2010-03-31
JP2010083403 2010-03-31
JP2010283734A JP5671327B2 (ja) 2010-03-31 2010-12-20 通信処理装置および通信処理方法

Publications (3)

Publication Number Publication Date
JP2011227867A JP2011227867A (ja) 2011-11-10
JP2011227867A5 JP2011227867A5 (ja) 2014-01-30
JP5671327B2 true JP5671327B2 (ja) 2015-02-18

Family

ID=44711153

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010283734A Expired - Fee Related JP5671327B2 (ja) 2010-03-31 2010-12-20 通信処理装置および通信処理方法

Country Status (4)

Country Link
US (1) US20110247012A1 (ja)
JP (1) JP5671327B2 (ja)
KR (1) KR101354573B1 (ja)
CN (1) CN102279837B (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8789065B2 (en) 2012-06-08 2014-07-22 Throughputer, Inc. System and method for input data load adaptive parallel processing
US20130117168A1 (en) 2011-11-04 2013-05-09 Mark Henrik Sandstrom Maximizing Throughput of Multi-user Parallel Data Processing Systems
US9448847B2 (en) 2011-07-15 2016-09-20 Throughputer, Inc. Concurrent program execution optimization
CN104980450B (zh) * 2014-04-01 2018-08-24 阿里巴巴集团控股有限公司 一种消息传递方法和系统及消息处理设备
US12093758B2 (en) * 2019-03-07 2024-09-17 International Business Machines Corporation Middleware in web framework

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5511165A (en) * 1992-10-23 1996-04-23 International Business Machines Corporation Method and apparatus for communicating data across a bus bridge upon request
US5870599A (en) * 1994-03-01 1999-02-09 Intel Corporation Computer system employing streaming buffer for instruction preetching
JPH10161921A (ja) * 1996-12-03 1998-06-19 Nippon Telegr & Teleph Corp <Ntt> バインド情報を用いたキャッシュ情報運用管理方法
JPH11196110A (ja) * 1998-01-05 1999-07-21 Yokogawa Electric Corp トポロジー認識装置
US6810452B1 (en) * 1999-03-19 2004-10-26 Sony Corporation Method and system for quarantine during bus topology configuration
EP1231526A4 (en) * 1999-10-15 2009-04-29 Omron Tateisi Electronics Co NETWORK DEVICE, CONTROL METHOD, CONTROL DEVICE, AND MULTIPLE PROCESSOR ARRANGEMENT
US6647446B1 (en) * 2000-03-18 2003-11-11 Sony Corporation Method and system for using a new bus identifier resulting from a bus topology change
US6950928B2 (en) * 2001-03-30 2005-09-27 Intel Corporation Apparatus, method and system for fast register renaming using virtual renaming, including by using rename information or a renamed register
WO2005066830A1 (en) * 2004-01-08 2005-07-21 Agency For Science, Technology & Research A shared storage network system and a method for operating a shared storage network system
GB2418326B (en) * 2004-09-17 2007-04-11 Hewlett Packard Development Co Network vitrualization
EP1968239B1 (en) * 2005-12-26 2019-01-30 Panasonic Corporation Address managing method and communication device
JP4890916B2 (ja) * 2006-04-06 2012-03-07 ルネサスエレクトロニクス株式会社 ネットワークに接続された通信装置の管理方法、機器認識装置及びコンピュータプログラム
US8521966B2 (en) * 2007-11-16 2013-08-27 Vmware, Inc. VM inter-process communications
KR20080100237A (ko) * 2008-09-05 2008-11-14 후지쯔 가부시끼가이샤 컴퓨터 시스템 및 컴퓨터 시스템 구성 방법

Also Published As

Publication number Publication date
KR20110109909A (ko) 2011-10-06
JP2011227867A (ja) 2011-11-10
CN102279837A (zh) 2011-12-14
CN102279837B (zh) 2015-08-05
KR101354573B1 (ko) 2014-01-22
US20110247012A1 (en) 2011-10-06

Similar Documents

Publication Publication Date Title
CN104885055B (zh) 一种应用数据同步的方法及装置
JP5288334B2 (ja) 仮想アプライアンス配備システム
CN106878376B (zh) 一种配置管理方法与系统
JP5671327B2 (ja) 通信処理装置および通信処理方法
US20110238820A1 (en) Computer, communication device, and communication control system
JP2010128644A (ja) 障害復旧方法、プログラムおよび管理サーバ
EP4095678A1 (en) Method and apparatus of deploying a cluster, device and storage medium
CN110520844A (zh) 云管理平台、虚拟机管理方法及其系统
CN108073423B (zh) 一种加速器加载方法、系统和加速器加载装置
JP2007183747A (ja) 物理サーバ間のシステム移動方法およびシステム移動システム
CN103973470A (zh) 用于无共享集群的集群管理方法和设备
CN115080164A (zh) 微前端页面跳转方法、装置和存储介质
CN108810166A (zh) 路由管理方法、系统、计算机设备及计算机可读存储介质
JP2017049924A (ja) デバイス設置システム、管理装置、管理装置の制御方法、及びプログラム
CN107786350B (zh) 一种恢复网络设备的出厂配置的方法、装置及网络设备
JP2006011506A (ja) 起動イメージ提供システム及び方法、ブートノード装置、ブートサーバ装置並びにプログラム
WO2018050055A1 (zh) 数据请求处理方法及其系统、接入设备、存储设备
JP5464449B2 (ja) 障害によるリブートを考慮した処理部間の不整合検出方法並びに共有装置及びクラスタシステム
US20160077861A1 (en) Information processing system, storage apparatus, and program
JP2011081830A (ja) サーバ切替方法、プログラムおよび管理サーバ
CN111291101A (zh) 集群管理方法及系统
JP2015056115A (ja) 仮想化制御装置、仮想化システム、仮想化方法、および、仮想化制御プログラム。
US10841148B2 (en) Disaster recovery of cloud resources
JP2019186617A (ja) 制御システムおよび制御方法
JP2009020581A (ja) アプリケーション間通信システム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131205

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131205

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140710

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140714

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140911

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: 20141121

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141219

R151 Written notification of patent or utility model registration

Ref document number: 5671327

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees