(57)【要約】【課題】メッセージバスに接続されたコンポーネント間のやりとりを、通信方式によらずログに出力することが可能となる情報処理システムを提供する【解決手段】コンポーネント２００ａは、メッセージログを出力するログコンポーネント３００のアドレスを受信し記憶する。コンポーネント２００ａは、メッセージを送信する際に、当該メッセージの宛先に基づき当該メッセージをログコンポーネント３００に転送する必要があるか否かを判断し、メッセージがログコンポーネント３００に転送する必要があると判断された場合に、メッセージを当該メッセージの宛先に送信するとともに、ログコンポーネント３００のアドレスにも転送する。【選択図】図６
2017091264.tif 000002
【特許請求の範囲】
【請求項１】
メッセージログを出力するログ出力手段のアドレスを受信する受信手段と、
メッセージを送信する際に、当該メッセージの宛先に基づき当該メッセージを前記ログ出力手段に転送する必要があるか否かを判断する判断手段と、
前記メッセージが前記ログ出力手段に転送する必要があると判断された場合に、前記メッセージを当該メッセージの宛先に送信するとともに、前記ログ出力手段のアドレスにも転送する転送手段と、を備える、
ことを特徴とする情報処理システム。
【請求項２】
メッセージログを出力するログ出力手段のアドレスを受信する受信手段と、
メッセージを受信した際に、当該メッセージの宛先に基づき当該メッセージを前記ログ出力手段に転送する必要があるか否かを判断する判断手段と、
前記メッセージが前記ログ出力手段に転送する必要があると判断された場合に、前記メッセージを前記ログ出力手段のアドレスに転送する転送手段と、を備える、
ことを特徴とする情報処理システム。
【請求項３】
バスを介して接続され、個別のプロセスで動作する処理手段と、
前記バスを介してやり取りされるメッセージのログを出力するログ出力手段と、
前記処理手段および前記ログ出力手段のアドレスを管理する管理手段と、を備え、
前記管理手段は、前記処理手段の起動時に、前記ログ出力手段のアドレスを当該処理手段に送信し、
前記処理手段は、
前記管理手段から前記ログ出力手段のアドレスを受信する受信手段と、
メッセージを送信する際に、当該メッセージの宛先に基づき当該メッセージを前記ログ出力手段に転送する必要があるか否かを判断する判断手段と、
前記メッセージが前記ログ出力手段に転送する必要があると判断された場合に、前記メッセージを当該メッセージの宛先に送信するとともに、前記ログ出力手段のアドレスにも転送する転送手段と、を備える、
ことを特徴とする情報処理システム。
【請求項４】
バスを介して接続され、個別のプロセスで動作する処理手段と、
前記バスを介してやり取りされるメッセージのログを出力するログ出力手段と、
前記処理手段および前記ログ出力手段のアドレスを管理する管理手段と、を備え、
前記管理手段は、前記処理手段の起動時に、前記ログ出力手段のアドレスを当該処理手段に送信し、
前記処理手段は、
前記管理手段から前記ログ出力手段のアドレスを受信する受信手段と、
メッセージを受信した際に、当該メッセージの宛先に基づき当該メッセージを前記ログ出力手段に転送する必要があるか否かを判断する判断手段と、
前記メッセージが前記ログ出力手段に転送する必要があると判断された場合に、前記メッセージを前記ログ出力手段のアドレスに転送する転送手段と、を備える、
ことを特徴とする情報処理システム。
【請求項５】
前記判断手段は、前記メッセージがユニキャストで送信されたメッセージである場合に、当該メッセージを前記ログ出力手段に転送する必要があると判断する、
ことを特徴とする請求項１ないし４のいずれか１項に記載の情報処理システム。
【請求項６】
前記判断手段は、前記メッセージがユニキャストで送信されたメッセージであって、当該メッセージが前記ログ出力手段の宛先を通知するためのメッセージでない場合に、当該メッセージを前記ログ出力手段に転送する必要があると判断する、
ことを特徴とする請求項５に記載の情報処理システム。
【請求項７】
前記判断手段は、前記メッセージがユニキャストで送信されたメッセージであって、当該メッセージの宛先が前記ログ出力手段のアドレスでない場合に、当該メッセージを前記ログ出力手段に転送する必要があると判断する、
ことを特徴とする請求項５に記載の情報処理システム。
【請求項８】
前記受信手段は、前記ログ出力手段のアドレスとともに、当該出力手段に転送が必要なメッセージのリストを受信し、
前記判断手段は、前記リストに基づき前記出力手段に転送が必要なメッセージであると判断した場合に、さらに当該メッセージの宛先に基づき当該メッセージを前記ログ出力手段に転送する必要があるか否かを判断する、
ことを特徴とする請求項１ないし７のいずれか１項に記載の情報処理システム。
【請求項９】
前記管理手段は、前記ログ出力手段を起動した際に、当該ログ出力手段のアドレスを前記処理手段に送信する、
ことを特徴とする請求項３または４に記載の情報処理システム。
【請求項１０】
メッセージログを出力するログ出力手段のアドレスを受信する受信工程と、
メッセージを送信する際に、当該メッセージの宛先に基づき当該メッセージを前記ログ出力手段に転送する必要があるか否かを判断する判断工程と、
前記メッセージが前記ログ出力手段に転送する必要があると判断された場合に、前記メッセージを当該メッセージの宛先に送信するとともに、前記ログ出力手段のアドレスにも転送する転送工程と、を有する、
ことを特徴とする情報処理システムの制御方法。
【請求項１１】
メッセージログを出力するログ出力手段のアドレスを受信する受信工程と、
メッセージを受信した際に、当該メッセージの宛先に基づき当該メッセージを前記ログ出力手段に転送する必要があるか否かを判断する判断工程と、
前記メッセージが前記ログ出力手段に転送する必要があると判断された場合に、前記メッセージを前記ログ出力手段のアドレスに転送する転送工程と、を有する、
ことを特徴とする情報処理システムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、及び制御方法に関する。
【背景技術】
【０００２】
ネットワークで接続された複数のコンピュータ上で動作する分散システムは、別コンピュータ上の別プロセスで動作する複数のコンポーネントが互いに通信を行い、データをやりとりしながらジョブを実行する。このような情報処理システムの１つとして、複数のコンポーネントがメッセージバスに接続され、ＵＤＰ通信で互いにメッセージをやりとりしながらジョブを処理するシステムがある。
【０００３】
この情報処理システムは、メッセージバスに接続されたすべてのコンポーネントに同時にパケットを送信する一対多のマルチキャスト通信を利用している。マルチキャスト通信を利用することで、送信元のコンポーネントが送信先のコンポーネントの個別のアドレスを知らない場合でも、送信先のコンポーネントにメッセージを送信することができる。
【０００４】
このような情報処理システムには、メッセージバスを介して送受信されるデータの内容をログとして出力（ログ出力、ロギング）するログコンポーネントが存在する。ログコンポーネントは、メッセージバスに接続されており、各コンポーネントがメッセージバスに送信したパケットを受信し、そのメッセージの内容をログ出力する。各コンポーネント間でやりとりされた内容をログ出力することは、システムの動作を確認するために必要であり、かつ有効な手段である。
【０００５】
特許文献１は、外部から受信したデータを正規化したメッセージを、メッセージバスを介して各専用処理モジュールであるサービスエンジン間で受け渡して一連の業務処理を進めるＥＳＢ（エンタープライズサービスバス）を開示している。特許文献１には、サービスエンジンの１つとして、ロギング処理を行うコンテンツロギング処理部を備えることが開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第５０４７０７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述したような情報処理システムにおいて、例えば、特定のコンポーネントにリソースの削除を依頼するメッセージを送信する際に、メッセージをマルチキャスト通信で配信した場合、他のコンポーネントのリソースも意図せずに削除してしまう可能性がある。このようなメッセージには、通信方式として単一のコンポーネントにパケットを送信する一対一のユニキャスト通信を利用する必要がある。
【０００８】
各コンポーネント間のやりとりは、通信方式に限らず同じファイルにまとめてログ出力することが望ましい。しかしながら、ユニキャスト通信を利用してメッセージを特定のコンポーネント間でやりとりした場合、ログコンポーネントは、そのメッセージを受信することができず、ログを残すことができない。
【０００９】
本発明は、メッセージバスに接続されたコンポーネント間のやりとりを、通信方式によらずログに出力することが可能となる情報処理システムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の一実施形態の情報処理システムは、メッセージログを出力するログ出力手段のアドレスを受信する受信手段と、メッセージを送信する際に、当該メッセージの宛先に基づき当該メッセージを前記ログ出力手段に転送する必要があるか否かを判断する判断手段と、前記メッセージが前記ログ出力手段に転送する必要があると判断された場合に、前記メッセージを当該メッセージの宛先に送信するとともに、前記ログ出力手段のアドレスにも転送する転送手段と、を備える。
【発明の効果】
【００１１】
本発明の情報処理システムによれば、メッセージバスに接続されたコンポーネント間のやりとりを、通信方式によらずログに出力することが可能となる。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施形態に係る情報処理システムの構成を示す図である。
【図２】各コンポーネントの通信部が対応する２つの通信方式を説明する図である。
【図３】情報処理装置のハードウエア構成を示す図である。
【図４】メッセージの一例を示す図である。
【図５】管理コンポーネントがコンポーネントを起動した際の処理を示す図である。
【図６】メッセージを送信する際の通信部の処理を示す図である。
【図７】通信部がメッセージを転送する際の処理を示す図である。
【図８】メッセージを受信した際の通信部の処理を示す図である。
【図９】通信部がメッセージを転送する際の処理を示す図である。
【図１０】メッセージを受信した際の通信部の処理を示す図である。
【図１１】メッセージを送信する際の通信部の処理を示す図である。
【図１２】メッセージを受信した際の通信部の処理を示す図である。
【発明を実施するための形態】
【００１３】
以下、本発明を実施するための形態について図面などを参照して説明する。
（第１実施形態）
図１は、本発明の一実施形態に係る情報処理システムの構成を示す図である。
情報処理システム１０は、メッセージバス４００に接続された１つ以上のコンポーネントから構成される。コンポーネントは、コンピュータのＯＳ上で動作するアプリケーションプログラムである。本実施形態では、一例として、情報処理システム１０は、図１に示すようにコンポーネント１００乃至３００を備える。
【００１４】
コンポーネント１００乃至３００は、それぞれ所定の役割を持ち、異なるプロセスで動作する。また、コンポーネント１００乃至３００は、同一コンピュータ上で動作しているとは限らず、１つ以上のコンピュータで動作することが可能である。コンポーネント１００乃至３００は、それぞれメッセージバス４００に接続するためのインタフェースとして通信部１０１乃至３０１を備え、当該通信部１０１乃至３０１を介してコンポーネント間の通信を行う。
【００１５】
コンポーネント１００乃至３００は、コンポーネント間の通信内容とそれぞれの役割とに応じて処理を実行する。例えば、情報処理システム１０がデータ変換システムである場合、コンポーネント１００乃至３００の所定の役割とは、次のようなものである。例えば、メッセージバス４００に接続されたコンポーネントの管理、ユーザーからの変換依頼の受け取り、情報処理システム全体の制御、データ変換、及びログ出力等である。メッセージバス４００に接続されたコンポーネント１００乃至３００が互いに通信しながら連携することでデータ変換処理を実現する。
【００１６】
以下、情報処理システム１０の構成の詳細について説明する。
情報処理システム１０は、管理コンポーネント１００、ログコンポーネント３００、及びその他のコンポーネント（２００ａ、２００ｂ）を備え、各コンポーネントは、メッセージバス４００に接続されている。本実施形態では、情報処理システム１０がその他のコンポーネントを２つ備える例を示すが、コンポーネントの数は情報処理システム１０が処理する内容によって変化する。
【００１７】
管理コンポーネント１００、ログコンポーネント３００、コンポーネント２００ａ及び２００ｂは、それぞれ少なくとも制御部１０２乃至３０２及びコンポーネント間でメッセージを送受信するための通信部１０１乃至３０１を有する。図１では、コンポーネント２００ａ及びコンポーネント２００ｂの構成としてそれぞれ制御部２０２ａ、２０２ｂ、及び通信部２０１ａ、２０１ｂのみ図示しているが、それぞれのコンポーネントの役割に応じて各種機能を備える。
【００１８】
各コンポーネントが起動すると、各々の通信部１０１乃至３０１は、メッセージバス４００に接続する。各コンポーネントの通信部１０１乃至３０１は、ユニークなアドレスを持ち、送信するデータの宛先に送信先のコンポーネントのアドレスを指定することにより当該送信先に指定されたコンポーネントにデータを送信することができる。通信部１０１乃至３０１を介して送受信されるデータをメッセージと呼ぶ。
【００１９】
各通信部１０１乃至３０１は、メッセージバス４００のアドレス、自分自身のアドレス、及びその他のコンポーネントのアドレス情報を記憶することができ、メッセージ送信時に当該記憶した情報を利用する。通信部１０１乃至３０１は、図２に示す２つの通信方式に対応する通信手段を有し、メッセージに指定するアドレスによって２つの通信方式を使い分けることができる。
【００２０】
メッセージバス４００は、各コンポーネントと同様に、ユニークなアドレスを有する。メッセージの宛先にメッセージバス４００のアドレスを指定した場合、図２（Ａ）のようにメッセージバス４００を介したマルチキャスト通信を利用することができる。すなわち、メッセージバス４００のアドレス宛てにメッセージ５０１０を送信した場合に、メッセージバス４００に接続した全てのコンポーネントに同じメッセージ５０１０が配信される。
【００２１】
一方、メッセージの宛先にメッセージバス４００に接続されたコンポーネントのアドレスを指定した場合、図２（Ｂ）のように、送信元の通信部２０１ａから送信先の通信部２０１ｂへメッセージ５０２０を直接送信することができる。図２（Ｂ）では、メッセージバス４００を省略している。各通信方式の詳細については、以下で説明する。
【００２２】
図２は、図１の各コンポーネントの通信部１０１乃至３０１が対応する２つの通信方式を説明する図である。
図２（Ａ）では、コンポーネント２００ａが通信部２０１ａから、マルチキャスト通信を利用し、メッセージバス４００にメッセージを送信する場合を示している。メッセージバス４００を流れるメッセージ５０１０は、メッセージバス４００上のすべてのコンポーネント２００ａ、２００ｂ、３００に送信される。そのため、メッセージバス上のログコンポーネント３００は、メッセージバス４００を流れるメッセージ５０１０を受信し、その内容をログに出力する。
【００２３】
一方、図２（Ｂ）では、送信元のコンポーネントであるコンポーネント２００ａの通信部２０１ａから、ユニキャスト通信を利用し、送信先のコンポーネント２００ｂの通信部２０１ｂへ直接メッセージ５０２０を送信する場合を示している。メッセージ５０２０は、コンポーネント２００ｂのみにおいて受信され、ログコンポーネント３００では受信されない。そのため、メッセージ５０２０の内容は、ログコンポーネント３００によってログ出力することができない。
【００２４】
このようにログコンポーネント以外のコンポーネント間でユニキャスト通信によりメッセージがやりとりされた場合には、ログコンポーネント３００で当該メッセージを受信することができない。すなわち、ログコンポーネント３００は、ログを残すことができない。情報処理システム１０において、通信部１０１乃至３０１を介したコンポーネント間のやりとりは、システムの処理フローを示す重要な情報であるため、通信方式に限らず同じログファイルにまとめて出力することが望まれる。本実施形態では、通信方式によらず、メッセージバス４００に接続されたコンポーネント間のメッセージのやりとりを同一のログファイルに保存することができる。
【００２５】
図３は、情報処理システム１０を実現するコンピュータのハードウエア構成を示す図である。
情報処理システム１０は、バス１００１、ＨＤＤ１００２、ＲＯＭ１００３、ＲＡＭ１００４、ＣＰＵ１００５、出力装置１００６、入力装置１００７、及び通信装置１００８を備える。
【００２６】
ＣＰＵ１００５は、ＨＤＤ１００２またはＲＯＭ１００３に格納されているＯＳ及びアプリケーションプログラムを読み出し、ＲＡＭ１００４にロードすることにより実行する。アプリケーションプログラムの処理結果は、ファイルとしてＨＤＤ１００２に格納、またはデータとしてＲＡＭ１００４に記憶される。アプリケーションプログラムは、コンピュータに接続されている入力装置１００７からユーザーの入力、または各種センサが読み取った値を取得する。
【００２７】
また、アプリケーションプログラムは、コンピュータに接続されている出力装置１００６に情報を出力し、処理結果を表示する。アプリケーションプログラムは、通信装置１００８を介してネットワークに接続された他のコンピュータや装置と通信を行う。これらのハードウエアは、バス１００１を介して互いに接続されており、アプリケーションプログラムから操作できるように構成されている。
【００２８】
図４は、メッセージの一例を示す図である。
メッセージは、ＨｅａｄｅｒとＢｏｄｙから構成される。Ｈｅａｄｅｒには、メッセージのＩＤ（ＭｅｓｓａｇｅＩＤ）、宛先（Ｔｏ）、返信先（ＲｅｐｌｙＴｏ）、Ｔｙｐｅなどの情報を記述することができる。メッセージのＴｙｐｅは、メッセージを受信した各通信部（１０１、２０１ａ、２０１ｂ、３０１）が、メッセージを受信した際の処理を決定するためのフラグの役割を果たす。
【００２９】
なお、本実施形態では、メッセージのＴｙｐｅは、”Ｅｘｔｅｒｎａｌ”及び”Ｉｎｔｅｒｎａｌ”の２つとするが、これに限定するものではなく、他のＴｙｐｅがあってもよい。また、メッセージを受信した際に各通信部（１０１、２０１ａ、２０１ｂ、３０１）が処理を決定するためのフラグは、Ｔｙｐｅで指定することに限定されず、メッセージ内においてどのように指定してもかまわない。
【００３０】
本実施形態では、Ｔｙｐｅが”Ｅｘｔｅｒｎａｌ”の場合、各通信部（１０１、２０１ａ、２０１ｂ、３０１）は、受信したメッセージのＨｅａｄｅｒとＢｏｄｙを解析し、解析結果に応じた処理を各制御部（１０２、２０２ａ、２０２ｂ、３０２）に依頼する。一方、メッセージのＴｙｐｅが”Ｉｎｔｅｒｎａｌ”の場合、各通信部（１０１、２０１ａ、２０１ｂ、３０１）は、受信したメッセージのＨｅａｄｅｒとＢｏｄｙの解析を行い、解析結果に応じた処理を通信部自身が担当する。
【００３１】
メッセージのＢｏｄｙには送信先に伝えたい内容が記載されており、メッセージには、Ｂｏｄｙの内容ごとに名前（ＭｅｓｓａｇｅＮａｍｅ）がつけられている。例えば、Ｂｏｄｙに送信元であるコンポーネントのアドレスや名前、状態などの情報が記載されているメッセージは、Ａｄｖｅｒｔｉｓｅメッセージと呼ぶ。一方、Ａｎｎｏｕｎｃｅｍｅｎｔメッセージは、Ｈｅａｄｅｒで指定するＴｙｐｅが”Ｉｎｔｅｒｎａｌ”となるメッセージである。
【００３２】
Ａｎｎｏｕｎｃｅｍｅｎｔメッセージには、メッセージを転送する場合の転送先アドレスが記載されている。図４は、メッセージの例としてＡｎｎｏｕｎｃｅｍｅｎｔメッセージを図示したものである。本実施形態では、Ａｎｎｏｕｎｃｅｍｅｎｔメッセージ以外のメッセージは、全てＨｅａｄｅｒで指定するＴｙｐｅが”Ｅｘｔｅｒｎａｌ”なメッセージであるとする。
【００３３】
次に、図１に示したコンポーネントのうち、管理コンポーネント及びログコンポーネントについて説明する。
管理コンポーネント１００は、情報処理システム１０のアプリケーションが起動した時点で既に起動している特殊なプロセスであり、メッセージバス４００に接続された各コンポーネント（１００、２００ａ、２００ｂ、３００）を管理する役割を担っている。管理コンポーネント１００は、通信部１０１、制御部１０２、管理部１０３、及び起動部１０４を備える。
【００３４】
制御部１０２は、通信部１０１が受信したメッセージの内容に応じた処理を行う。管理部１０３は、メッセージバス４００に接続された全てのコンポーネントの情報を管理する。管理部１０３には、コンポーネントのアドレス、名前、状態などが記録されている。各コンポーネントは、起動時にこれらの情報をＡｄｖｅｒｔｉｓｅメッセージに記載し、メッセージバス４００に送信する。管理コンポーネント１００は、メッセージバス４００からＡｄｖｅｒｔｉｓｅメッセージを受信し、制御部１０２を介して管理部１０３の情報を更新する。
【００３５】
起動部１０４は、メッセージバス４００に接続する新たなコンポーネントの起動を行う。起動部１０４は、制御部１０２から依頼を受けてコンポーネントを起動する。制御部１０２は、通信部１０１で受信したメッセージに応じた処理を行う際に、新しくコンポーネントを起動する必要があるか否かを管理部１０３の情報を元に判断する。新たなコンポーネントを起動する必要がある場合、制御部１０２は、起動部１０４にコンポーネントの起動を依頼する。
【００３６】
ログコンポーネント３００は、メッセージバス４００に接続された各コンポーネントが各通信部（１０１、２０１ａ、２０１ｂ、３０１）を介してやりとりするメッセージを受信し、それらを整形してログ出力（メッセージログを出力）する役割を担っている。ログコンポーネント３００は、通信部３０１、制御部３０２、及び出力部３０３を備える。ログコンポーネント３００が受信することのできるメッセージは、通信部３０１にメッセージバス４００を経由して到達するメッセージと、ログコンポーネント３００を宛先として他のコンポーネントが送信するメッセージである。
前者の通信部３０１にメッセージバス４００を経由して到達するメッセージとは、メッセージバス４００上のコンポーネントがメッセージバス４００のアドレス宛に送信したメッセージである。通信部３０１で受信されたメッセージは、制御部３０２によってログ出力用に整形され、出力部３０３に渡される。出力部３０３は、ログを出力する役割を担っており、ログをファイル出力するもの、標準出力するものなど、一種類以上存在する。
【００３７】
図２（Ａ）に示したように、メッセージ５０１０は、メッセージバス４００を流れ、メッセージバス４００に接続したすべての通信部（２０１ａ、２０１ｂ、３０１）で受信される。ログコンポーネント３００は、このようにコンポーネントがメッセージバス４００のアドレスを指定して送信したメッセージについては、受信しログ出力することができる。しかし、図２（Ｂ）に示したように、メッセージ５０２０は、コンポーネント２００ｂでのみ受信され、ログコンポーネント３００では受信されない。そのため、ログコンポーネント３００は、メッセージ５０２０の内容をログ出力することができない。
【００３８】
本実施形態では、図２（Ｂ）のような場合においても、メッセージ５０２０の内容をログ出力するために、コンポーネント２００ａの通信部２０１ａがメッセージ５０２０をログコンポーネント３００宛てに転送する。以下、管理コンポーネント１００と各通信部（１０１、２０１ａ、２０１ｂ、３０１）との連携によりコンポーネント２００ａがコンポーネント２００ｂ宛てに送信するメッセージの内容を、ログコンポーネント３００でログ出力する仕組みについて説明する。
【００３９】
まず、管理コンポーネント１００は、ログコンポーネント３００を起動し、ログコンポーネント３００のアドレスを取得する。具体的には、管理コンポーネント１００は、通信部１０１でメッセージバス４００に接続した状態で存在し、はじめに起動部１０４でログコンポーネント３００を起動する処理を行う。ログコンポーネント３００は、起動されると、通信部３０１でメッセージバス４００に接続し、制御部３０２でＡｄｖｅｒｔｉｓｅメッセージを作成して通信部３０１に送信を依頼する。
【００４０】
このとき、ＡｄｖｅｒｔｉｓｅメッセージのＨｅａｄｅｒは、メッセージの種類を“Ｅｘｔｅｒｎａｌ”とし、宛先は指定しない。ログコンポーネントの通信部３０１は、後述する図６の判断処理を行い、Ａｄｖｅｒｔｉｓｅメッセージをメッセージバス４００のアドレスに送信する。管理コンポーネント１００は、通信部１０１でＡｄｖｅｒｔｉｓｅメッセージを受信すると、後述する図８の判断処理を行い、メッセージに応じた処理を制御部１０２に依頼する。
【００４１】
管理コンポーネントの制御部１０２は、ＡｄｖｅｒｔｉｓｅメッセージのＢｏｄｙに記載された情報を管理部１０３に登録する。次に、管理コンポーネント１００は、コンポーネント２００ａを起動し、ログコンポーネント３００のアドレスをコンポーネント２００ａの通信部２０１ａに通知する。以下、このときの処理の詳細について図５を用いて説明する。
【００４２】
図５は、管理コンポーネントがコンポーネントを起動した際の処理、詳細には、コンポーネントを起動し、ログコンポーネントのアドレスを通知する処理を示すフローチャートである。
まず、ステップＳ９００１において、管理コンポーネント１００は、起動部１０４でコンポーネント２００ａを起動する。起動されたコンポーネント２００ａは、上述したログコンポーネント３００が起動された場合と同様に、メッセージバス４００に接続し、管理コンポーネント１００にＡｄｖｅｒｔｉｓｅメッセージを送信する。
【００４３】
ステップＳ９００２において、管理コンポーネント１００は、通信部１０１がＡｄｖｅｒｔｉｓｅメッセージを受信すると、管理部１０３にＡｄｖｅｒｔｉｓｅメッセージの内容を登録する。ステップＳ９００３において、制御部１０２は、Ａｎｎｏｕｎｃｅｍｅｎｔメッセージを作成する。
【００４４】
具体的には、制御部１０２は、管理部１０３からログコンポーネント３００のアドレスを取得し、当該アドレスをＡｎｎｏｕｎｃｅｍｅｎｔメッセージのＢｏｄｙに記載する。さらに、制御部１０２は、ＡｎｎｏｕｎｃｅｍｅｎｔメッセージのＨｅａｄｅｒにＡｎｎｏｕｎｃｅｍｅｎｔメッセージの宛先と、メッセージの種類を記載する。宛先には、受信したＡｄｖｅｒｔｉｓｅメッセージの送信者であるコンポーネント２００ａのアドレスを指定し、種類には、“Ｉｎｔｅｒｎａｌ”を指定する。
【００４５】
そして、制御部１０２は、通信部１０１にＡｎｎｏｕｎｃｅｍｅｎｔメッセージの送信を依頼する。通信部１０１は、図６の判断処理を行い、コンポーネント２００ａにＡｎｎｏｕｎｃｅｍｅｎｔメッセージを送信する。ステップＳ９００４において、コンポーネント２００ａの通信部２０１ａが、Ａｎｎｏｕｎｃｅｍｅｎｔメッセージを受信する。通信部２０１ａは、図８の判断処理を行い、Ａｎｎｏｕｎｃｅｍｅｎｔメッセージに記載されたログコンポーネント３００のアドレスを記憶する。
【００４６】
次に、コンポーネント２００ａがコンポーネント２００ｂ宛てにメッセージを送信する場合の処理について説明する。
コンポーネント２００ｂは、コンポーネント２００ａと同様に、管理コンポーネント１００の起動部１０４によって起動され、Ａｎｎｏｕｎｃｅｍｅｎｔメッセージからログコンポーネント３００のアドレスを取得しているものとする。
【００４７】
コンポーネント２００ａの制御部２０２ａは、宛先をコンポーネント２００ｂに指定した任意のメッセージを作成し、通信部２０１ａに送信を依頼する。通信部２０１ａは、メッセージの送信依頼を受けると、後述する図６の判断処理により当該メッセージを転送する必要があるか否かを判断する。そして、メッセージを転送する必要があると判断し多場合に、各コンポーネントの通信部（この場合、通信部２０１ａ）で記憶しているログコンポーネント３００の宛先に、当該メッセージを送信（転送）する。
【００４８】
コンポーネント２００ａから送信された当該メッセージは、コンポーネント２００ｂの通信部２０１ｂとログコンポーネント３００の通信部３０１で受信される。コンポーネント２００ｂとログコンポーネント３００は、受信したメッセージに応じてそれぞれが担当する処理を行う。ログコンポーネント３００は、上述したとおり、受信したメッセージのＢｏｄｙに記載された内容を整形し、ログ出力する。
【００４９】
以下で、各コンポーネントの通信部（１０１、２０１ａ、２０１ｂ、３０１）がメッセージを送受信する際の処理の詳細について説明する。
図６は、メッセージを送信する際の各通信部（１０１、２０１ａ、２０１ｂ、３０１）の処理を説明するフローチャートである。この処理は、コンポーネントによらず全ての通信部に共通する。
【００５０】
ステップＳ２００１において、同じコンポーネントに属する制御部からメッセージの送信依頼を受けた通信部は、当該メッセージのＨｅａｄｅｒを解析し、宛先が指定されているか否かを判断する。宛先が指定されていないと判断された場合には、処理はステップＳ２００３に進み、通信部は、当該メッセージをメッセージバス４００のアドレスに送信する。
【００５１】
メッセージバス４００のアドレスに送信されたメッセージは、メッセージバス４００に接続された全てのコンポーネントの通信部で受信されるため、ログコンポーネント３００に対して個別にメッセージを転送する必要はない。一方、ステップＳ２００１でメッセージに宛先が指定されていると判断された場合には、処理はステップＳ２０１０に進み、通信部は、メッセージを転送先アドレスに転送する処理を実行する。すなわち、Ｓ２００１の処理により、メッセージをユニキャスト通信により送信したか否かを判断する。以下、ステップＳ２０１０の処理の詳細について説明する。
【００５２】
図７は、通信部がメッセージを転送先アドレスに転送する処理（ステップＳ２０１０）を説明するフローチャートである。
Ｓ２０１２において、通信部は、メッセージのＨｅａｄｅｒからメッセージの種類を読み取り、当該メッセージが転送先アドレスを通知するためのメッセージであるか否かを判断する。
【００５３】
具体的には、メッセージの種類が”Ｉｎｔｅｒｎａｌ”、すなわち、メッセージがＡｎｎｏｕｎｃｅｍｅｎｔメッセージである場合、通信部は、当該メッセージが転送先アドレスを通知するためのメッセージであると判断し、ステップＳ２０１０の処理を終了する。すなわち、当該メッセージは、ログコンポーネント３００に転送されない。一方、メッセージの種類が”Ｅｘｔｅｒｎａｌ”であった場合、通信部は、当該メッセージが転送先アドレスを通知するためのメッセージではないと判断し、処理はステップＳ２０１３に進む。
【００５４】
ステップＳ２０１３において、通信部は、Ｈｅａｄｅｒに指定された宛先と、記憶しているログコンポーネント３００のアドレスとを比較する。Ｈｅａｄｅｒで指定された宛先がログコンポーネント３００のアドレスと等しい場合は、ログコンポーネント３００にメッセージを転送する必要がないので転送は行われない。すなわち、ステップＳ２０１０の処理は終了する。
【００５５】
一方、メッセージに指定された宛先とログコンポーネント３００のアドレスが異なる場合は、ログコンポーネント３００に対してメッセージを転送する必要がある。処理はステップＳ２０１４に進み、通信部は、ログコンポーネント３００にメッセージを送信する。以上が、ステップＳ２０１０における通信部の処理の説明である。
【００５６】
図６の説明に戻る。ステップＳ２０１０の処理を終えると、ステップＳ２００２において、通信部は、メッセージに指定された宛先に対してもメッセージを送信する。なお、ステップＳ２００２の送信処理は、ステップＳ２０１０の転送処理の前に行ってもよい。
【００５７】
図８は、メッセージを受信した際の各通信部（１０１、２０１ａ、２０１ｂ、３０１）の処理を説明するフローチャートである。この処理は、コンポーネントによらず全ての通信部に共通する。
ステップＳ３００１において、メッセージを受信した通信部は、当該メッセージの種類を判断する。メッセージの種類が”Ｉｎｔｅｒｎａｌ”の場合、通信部は、当該メッセージがＡｎｎｏｕｎｃｅｍｅｎｔメッセージ、すなわち転送先のアドレスを通知するメッセージであると判断し、処理はステップＳ９００４に進む。
【００５８】
ステップＳ９００４において、通信部は、当該メッセージに記載されたログコンポーネント３００のアドレスを読み取って記憶する。一方、メッセージの種類が”Ｅｘｔｅｒｎａｌ”の場合、すなわち転送先のアドレスを通知するメッセージではないと判断し、処理はステップＳ３００２に進む。ステップＳ３００２において、通信部は、メッセージに応じた処理を制御部に依頼する。
【００５９】
以上のように、本実施形態によれば、管理コンポーネントに起動されたコンポーネントは、管理コンポーネント１００から通知されたログコンポーネント３００のアドレスを通信部で記憶する。そして、メッセージを送信する際に、通信部でメッセージを転送する必要があるか否かを判断し、ログコンポーネント３００にメッセージを転送することができる。これにより、ログコンポーネント３００は、他のコンポーネント間でやりとりされた通信内容についてもログ出力することが可能となる。
【００６０】
（第２実施形態）
次に、本発明の第２実施形態に係る情報処理システムについて説明する。第１実施形態では、メッセージバス４００に接続されたコンポーネント間でやり取りされる全てのメッセージがログコンポーネント３００に転送され、ログコンポーネント３００がメッセージの内容をログ出力する。しかし、メッセージの中にはログに残す必要のないものが存在する場合もある。
【００６１】
例えば、各コンポーネント（１００、２００ａ、２００ｂ、３００）は、管理コンポーネント１００に対し、自分自身の存在表明をするためにＨｅａｒｔｂｅａｔメッセージと呼ばれるメッセージを定期的に送信する。Ｈｅａｒｔｂｅａｔメッセージは、管理コンポーネント１００で定期的に受信されることに意味があり、Ｂｏｄｙに情報を持たないため、ログに出力する必要がない。また、Ｈｅａｒｔｂｅａｔメッセージは、送信される回数が多い。各通信部（１０１、２０１ａ、２０１ｂ、３０１）では、メッセージを解析しているが、無駄な解析処理は、情報処理システム１０全体の処理速度を低下させる可能性がある。
【００６２】
従って、ログ出力のためにログコンポーネント３００に転送するメッセージの数は、可能な限り削減する必要がある。そこで、本実施形態では、ログコンポーネント３００が、転送する必要のあるメッセージのリストを有し、ログ出力のために転送する必要のあるメッセージのみをログコンポーネント３００に転送することを可能とする。
【００６３】
なお、本実施形態に係る情報処理システム１０の構成は、第１実施形態と同様のため、同一構成のものには同一の符号を付し、その説明を省略する。本実施形態では、ＡｎｎｏｕｎｃｅｍｅｎｔメッセージのＢｏｄｙの内容、及び図６に示したメッセージを転送先アドレスに転送する処理における通信部の処理（ステップＳ２０１０）が、第１実施形態と異なる点である。そこで、本実施形態では、それぞれの差異についてのみ説明する。
【００６４】
まず、本実施形態におけるメッセージの構成について説明する。
本実施形態におけるメッセージには、図４に示したＡｎｎｏｕｎｃｅｍｅｎｔメッセージのＢｏｄｙに、ログコンポーネント３００に転送する必要のあるメッセージを一覧にした、転送対象リストを追加する。転送対象リストは、管理コンポーネント１００の制御部１０２で保持され、その情報は、Ａｎｎｏｕｎｃｅｍｅｎｔメッセージの作成時に制御部１０２によってＡｎｎｏｕｎｃｅｍｅｎｔメッセージのＢｏｄｙに追記される。
【００６５】
図１０は、本実施形態において、メッセージを受信した際の通信部（１０１、２０１ａ、２０１ｂ、３０１）の処理を説明するフローチャートである。
ステップＳ３００１において、上述した転送対象リストを追加したＡｎｎｏｕｎｃｅｍｅｎｔメッセージを受信した際に、通信部（１０１、２０１ａ、２０１ｂ、３０１）は、メッセージの種類を判断する。
【００６６】
ここで、第１実施形態の場合と同様に、メッセージの種類が”Ｉｎｔｅｒｎａｌ”の場合、処理はステップＳ３１０３に進む。ステップＳ３１０３において、通信部は、当該メッセージに記載されたログコンポーネント３００のアドレスを記憶することに加えて、転送対象リストも記憶する。その他の処理については、図８に示した第１実施形態の処理と同様のため、その説明は省略する。
【００６７】
次に、本実施形態において、メッセージを送信する際の通信部の処理について説明する。
本実施形態では、図６に示した第１実施形態におけるメッセージを送信する際の通信部の処理において、ステップＳ２１１０（図７）の処理を、図９に示す処理に置き換えて行われる。具体的には、本実施形態では、図７の処理に加えて図９のステップＳ２１０１の処理が行われる。
【００６８】
ステップＳ２１０１において、通信部は、ステップＳ３１０３（図１０）で記憶した転送対象リストを用い、送信するメッセージが転送対象であるか否かを判断する。そして、メッセージが転送対象である場合についてのみ、ステップＳ２０１４の処理、すなわち、ログコンポーネント３００へのメッセージの転送が行われる。その他の処理については、図７に示した第１実施形態の処理と同様のため、その説明は省略する。
【００６９】
以上のように、本実施形態によれば、第１実施形態と同様の効果を奏する。さらに、本実施形態によれば、メッセージバス４００に接続されたコンポーネント間でやり取りされるメッセージのうち、ログ出力する必要のあるメッセージのみをログコンポーネント３００に転送し、ログ出力することが可能となる。これにより、不必要なログの出力、及び当該ログ出力のために情報処理システム全体の処理速度が低下することを抑制することができる。
【００７０】
（第３実施形態）
次に、本発明の第３実施形態に係る情報処理システムについて説明する。第１実施形態、及び第２実施形態では、メッセージを送信するコンポーネント（送信者）がログコンポーネント３００に同一のメッセージを転送する。しかし、送信者がログコンポーネント３００へのメッセージの転送を行う場合、送信者が指定した宛先でメッセージが受信されたか否かをログが確認することができない。転送されたメッセージをログコンポーネント３００が受信するとその記録はログ出力されるが、同じメッセージが送信者の指定した宛先に無事に届いているとは限らない。
【００７１】
そこで、本実施形態では、メッセージの送信者ではなく、受信者が、ログコンポーネント３００に対してメッセージを転送する。これにより、ログコンポーネント３００でログ出力されたメッセージは、当該メッセージにおいて指定されたコンポーネントで受信されたことをログから確認することが可能となる。なお、本実施形態に係る情報処理システム１０の構成、及び各コンポーネントの機能は、第１実施形態及び第２実施形態と同様のため、同一構成のものには同一の符号を付し、その説明は省略する。
【００７２】
図１１は、メッセージを送信する際の各通信部（１０１、２０１ａ、２０１ｂ、３０１）の処理を説明するフローチャートである。この処理は、コンポーネントによらず全ての通信部に共通する。
ステップＳ２００１において、同じコンポーネントに属する制御部からメッセージの送信依頼を受けた通信部は、当該メッセージのＨｅａｄｅｒを解析し、宛先が指定されているか否かを判断する。
【００７３】
宛先が指定されていると判断された場合には、処理はステップＳ２００２に進み、通信部は、当該宛先にメッセージを送信する。一方、ステップＳ２００１でメッセージに宛先が指定されていないと判断された場合には、処理はステップＳ２００３に進み、通信部は、当該メッセージをメッセージバス４００のアドレスに送信する。すなわち、本実施形態では、第１実施形態、または第２実施形態においてメッセージを送信する際に行っていた、当該メッセージをログコンポーネントに転送する処理（図７または図９）が行われない。
【００７４】
図１２は、メッセージを受信した際の各通信部（１０１、２０１ａ、２０１ｂ、３０１）の処理を説明するフローチャートである。この処理は、コンポーネントによらず全ての通信部に共通する。
ステップＳ３００１において、メッセージを受信した通信部は、当該メッセージの種類を判断する。メッセージの種類が”Ｉｎｔｅｒｎａｌ”の場合、通信部は、当該メッセージがＡｎｎｏｕｎｃｅｍｅｎｔメッセージ、すなわち、転送先のアドレスを通知するメッセージであると判断し、処理はステップＳ３２０２に進む。
【００７５】
ステップＳ３２０２において、通信部は、当該ＡｎｎｏｕｎｃｅｍｅｎｔメッセージのＢｏｄｙに記載されたログコンポーネント３００のアドレスと自分のアドレスとを比較する。アドレスが一致しない場合には、処理はステップＳ３１０３に進み、通信部は、Ａｎｎｏｕｎｃｅｍｅｎｔメッセージに記載されたログコンポーネント３００のアドレスと転送対象リストを通信部で記憶する。一方、ステップＳ３２０２でアドレスが一致する場合、すなわちログコンポーネント３００の通信部３０１では、Ａｎｎｏｕｎｃｅｍｅｎｔメッセージの内容を記憶しない。
【００７６】
なお、本実施形態では、第２実施形態の場合と同様にＡｎｎｏｕｎｃｅｍｅｎｔメッセージには転送先アドレスの他に転送対象リストが記載されている場合について説明したが、これに限られるものではない。第１実施形態の場合と同様に転送先のアドレスのみ通知してもよい。この場合、ステップＳ２１０１の代わりに、第１実施形態において送信する側のコンポーネントの通信部が行っていたＳ２００１の処理（図６）を行い、メッセージがユニキャスト通信で送信されたかマルチキャスト通信で送信されたかを判断してもよい。
【００７７】
ステップＳ３００１でメッセージの種類が”Ｅｘｔｅｒｎａｌ”の場合、ステップＳ３００２において、通信部は、同じコンポーネントに属する制御部に当該メッセージの内容に応じた処理を依頼する。続いて、ステップＳ３２０１において、通信部は、転送先であるログコンポーネント３００のアドレスを記憶しているか否かを判断する。ログコンポーネント３００のアドレスを記憶している場合には、すなわち、この処理を実行しているコンポーネントがログコンポーネント３００以外の場合には、処理はステップＳ２１０１に進む。
【００７８】
ステップＳ２１０１において、通信部は、メッセージが転送対象であるか否かを第２実施形態の場合（図９）と同様に、記憶した転送対象リストを用いて判断する。そして、ステップＳ２０１４において、通信部は、転送対象であるメッセージのみを転送先であるログコンポーネント３００に送信する。一方、ステップＳ３２０１でログコンポーネント３００のアドレスを記憶していない場合、すなわち、この処理を実行しているコンポーネントがログコンポーネント３００である場合、処理は終了する。
【００７９】
以上のように、本実施形態によれば、第１実施形態及び第２実施形態と同様の効果を奏する。さらに、本実施形態では、ログコンポーネント３００へのメッセージの転送を、当該メッセージを受信したコンポーネントが行うことにより、メッセージが宛先に指定されたコンポーネントにおいて受信されたことを確認することが可能となる。
【００８０】
（第４実施形態）
次に、本発明の第４実施形態に係る情報処理システムについて説明する。本実施形態では、情報処理システム１０の実行中にログコンポーネント３００のアドレスが変更される場合について考える。例えば、ログコンポーネント３００が何らかの原因で停止した場合に、ログコンポーネント３００は、第２実施形態で説明したＨｅａｒｔｂｅａｔメッセージを送信することができない。
【００８１】
Ｈｅａｒｔｂｅａｔメッセージの滞りにより、管理コンポーネント１００は、ログコンポーネント３００の異常を検出し、管理部１０３からログコンポーネント３００の情報を削除する。起動部１０４は、新たなログコンポーネント３００を起動し、管理部１０３には起動した新たなログコンポーネント３００の情報が登録される。このような場合に、メッセージバス４００に接続された通信部（１０１、２０１ａ、２０１ｂ、３０１）は、記憶しているメッセージの転送先の情報を更新する必要がある。
【００８２】
そこで、本実施形態では、第１実施形態ないし第３実施形態に係る情報処理システムにおいて、管理コンポーネント１００はログコンポーネント３００を起動した際に、Ａｎｎｏｕｎｃｅｍｅｎｔメッセージをメッセージバス４００宛てに送信する。これにより、メッセージバス４００に接続された全ての通信部（１０１、２０１ａ、２０１ｂ、３０１）は、ログコンポーネント３００へのメッセージの転送に必要な情報を更新することができる。
【００８３】
以上のように、本実施形態によれば、例えば、ログコンポーネント３００に異常が生じてログ出力が停止し、他のログコンポーネントに変更した場合に、当該変更したログコンポーネントのアドレスを他のコンポーネントに通知することができる。このため、継続して各コンポーネント間でやりとりされている通信内容のログ出力を行うことができる。さらに、ログコンポーネント３００の復旧が行われ、元のログコンポーネントに戻された場合であっても、各コンポーネント間でやりとりされる通信内容のログ出力を再開することができる。
【００８４】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００８５】
以上、本発明の好ましい実施形態について説明したが、本発明は、これらの実施形態に限定されず、その要旨の範囲内で種々の変形および変更が可能である。
【符号の説明】
【００８６】
１０      情報処理システム
１００    管理コンポーネント
２００ａ  コンポーネント
２０１ａ  通信部
３００    ログコンポーネント
４００    メッセージバス
【図１】
2017091264.tif 000003
【図２】
2017091264.tif 000004
【図３】
2017091264.tif 000005
【図４】
2017091264.tif 000006
【図５】
2017091264.tif 000007
【図６】
2017091264.tif 000008
【図７】
2017091264.tif 000009
【図８】
2017091264.tif 000010
【図９】
2017091264.tif 000011
【図１０】
2017091264.tif 000012
【図１１】
2017091264.tif 000013
【図１２】
2017091264.tif 000014