JP6642138B2 - 計算機システム、スレッド間通信方法およびプログラム - Google Patents

計算機システム、スレッド間通信方法およびプログラム Download PDF

Info

Publication number
JP6642138B2
JP6642138B2 JP2016047259A JP2016047259A JP6642138B2 JP 6642138 B2 JP6642138 B2 JP 6642138B2 JP 2016047259 A JP2016047259 A JP 2016047259A JP 2016047259 A JP2016047259 A JP 2016047259A JP 6642138 B2 JP6642138 B2 JP 6642138B2
Authority
JP
Japan
Prior art keywords
thread
identifier
data
computer
reception
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.)
Active
Application number
JP2016047259A
Other languages
English (en)
Other versions
JP2017162284A (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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2016047259A priority Critical patent/JP6642138B2/ja
Publication of JP2017162284A publication Critical patent/JP2017162284A/ja
Application granted granted Critical
Publication of JP6642138B2 publication Critical patent/JP6642138B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、計算機システム、スレッド間通信方法およびプログラムに関し、特に複数スレッドが稼働する計算機を含む計算機システム、複数のスレッド間における通信方法およびプログラムに関する。
近年、オープンソースソフトウェア(Open Source Software)の普及により、数多くのソフトウェアを組み合わせて構築される巨大な分散システムが手軽に利用できるようになってきている。一例として、複数の計算機上で稼働する複数のソフトウェアが互いに独立性を保ちつつ、REST(Representational State Transfer)のようなステートレスな通信により協調することで、特定の機能が提供される場合がある。
関連技術として、特許文献1には、複数のフィルタ(機能)から構成されるフィルタパイプラインの処理において、フィルタの処理が正常終了しなかった場合、ログファイルを出力するフィルタを決定し、決定したフィルタに対してログファイル出力を実行させる技術が記載されている。
また、特許文献2には、アプリケーションプログラムに関する通信処理障害を解析するために、ネットワーク層での通信の状況をアプリケーション層での障害に関連する事象と関連付ける技術が記載されている。
特開2015−212853号公報 特開2015−185976号公報
上記特許文献の全開示内容は、本書に引用をもって繰り込み記載されているものとする。以下の分析は、本発明者によってなされたものである。
上述のように、複数のプロセス(ないしプロセスに含まれるスレッド)が協調して動作するシステムでは、あるプロセスで例外的な動作(例えばエラー)が確認された場合であっても、それを引き起こす元となった原因はそのプロセス自身ではなく、他のプロセスであることも多い。したがって、例えば、複数のプロセスがRESTのようなステートレスな通信により協調しつつ機能を提供する場合、何らかの異常が検知されたとしても、システムに含まれるプロセス間の協調関係に関する知識を持たない利用者がエラーの真の原因を特定することは困難である。
したがって、複数のプロセス(ないしスレッド)が協調して特定の機能を提供するシステムにおいてエラーの原因を究明するためには、利用者はプロセス(ないしスレッド)間の協調関係を把握する必要がある。
なお、特許文献1に記載された技術によると、プロセス(ないしスレッド)間の関連性を抽出することはできない。また、特許文献2に記載された技術によると、アプリケーションがソケットの生成を通知したり、またはトレースビットを設定したりするには、アプリケーション側からAPI(Application Program Interface)を呼び出す必要があり、アプリケーションを改変する必要が生じる。
そこで、スレッド間の関連性を簡便に把握できるようにすることが課題となる。本発明の目的は、かかる課題解決に寄与する計算機システム、スレッド間通信方法およびプログラムを提供することにある。
本発明の第1の態様に係る計算機システムは、複数のスレッドが稼働する計算機を備え、第1のスレッドが第2のスレッドにデータを送信する場合、前記第1のスレッドが稼働する計算機は前記第1のスレッドの識別子と第1の送信用識別子を関連付けて保持し、前記第2のスレッドが前記第1のスレッドから前記データを受信する場合、前記第2のスレッドが稼働する計算機は前記第2のスレッドの識別子と前記第1の送信用識別子と第1の受信用識別子とを関連付けて保持する。
本発明の第2の態様に係るスレッド間通信方法は、第1のスレッドが第2のスレッドにデータを送信する場合、前記第1のスレッドの識別子と第1の送信用識別子を関連付けて保持するステップと、前記第2のスレッドが前記第1のスレッドから前記データを受信する場合、前記第2のスレッドの識別子と前記第1の送信用識別子と第1の受信用識別子とを関連付けて保持するステップと、を含む。
本発明の第3の態様に係るプログラムは、第1のスレッドが第2のスレッドにデータを送信する場合、前記第1のスレッドの識別子と第1の送信用識別子を関連付けて保持する処理と、前記第2のスレッドが前記第1のスレッドから前記データを受信する場合、前記第2のスレッドの識別子と前記第1の送信用識別子と第1の受信用識別子とを関連付けて保持する処理と、をコンピュータに実行させる。なお、プログラムは、非一時的なコンピュータ可読記録媒体(non-transitory computer-readable storage medium)に記録されたプログラム製品として提供することもできる。
本発明に係る計算機システム、スレッド間通信方法およびプログラムによると、スレッド間の関連性を簡便に把握することができる。
一実施形態に係る計算機システムの構成を例示する図である。 第1の実施形態に係る計算機システムに含まれる計算機の構成を例示するブロック図である。 第1の実施形態に係る計算機システムの構成を例示するブロック図である。 第1の実施形態に係る計算機システムの動作を説明するための図である。 第2の実施形態に係る計算機システムの構成を例示するブロック図である。 第2の実施形態に係る計算機システムに含まれる計算機の構成を例示するブロック図である。 第4の実施形態に係る計算機システムの構成を例示するブロック図である。 第4の実施形態に係る計算機システムのログ解析部の動作を説明するための図である。 第5の実施形態に係る計算機システムが対象とするスレッドの動作を例示する図である。 第5の実施形態に係る計算機システムの構成を例示するブロック図である。 第5の実施形態に係る計算機システムのログ解析部の動作を説明するための図である。
はじめに、一実施形態の概要について説明する。なお、この概要に付記する図面参照符号は、専ら理解を助けるための例示であり、本発明を図示の態様に限定することを意図するものではない。
図1は、一実施形態に係る計算機システムの構成を例示する図である。図1を参照すると、計算機システムは、複数のスレッド(例えばスレッド4A〜4C)が稼働する計算機(例えば計算機2A〜2C)を備えている。第1のスレッド(例えばスレッド4A)が第2のスレッド(例えばスレッド4B)にデータを送信する場合、第1のスレッドが稼働する計算機(例えば計算機2A)は第1のスレッドの識別子(例えばスレッド識別子IDA)と第1の送信用識別子(例えばGUID(Global Unique Identifier)1)を関連付けて保持する。一方、第2のスレッド(例えばスレッド4B)が第1のスレッド(例えばスレッド4A)から上記データを受信する場合、第2のスレッドが稼働する計算機(例えば計算機2B)は第2のスレッドの識別子(例えばスレッド識別子IDB)と第1の送信用識別子(例えばGUID1)と第1の受信用識別子(例えばGUID2)とを関連付けて保持する。
同様に、第2のスレッド(例えばスレッド4B)が上記データの受信に応じて第3のスレッド(例えばスレッド4C)にデータを送信する場合、第2のスレッドが稼働する計算機(例えば計算機2B)は第2のスレッドの識別子(例えばスレッド識別子IDB)と第1の受信用識別子(例えばGUID2)と第2の送信用識別子(例えばGUID3)を関連付けて保持する。以下、同様に、スレッド間のデータ送受信に応じて、スレッドの識別子、送受用識別子、受信用識別子が互いに関連付けて計算機に蓄積される。
このとき、計算機が互いに関連付けて保持したスレッドの識別子、送受用識別子および受信用識別子の組から、関連性を有するスレッドの組を抽出することができる。例えば、図1に示す例では、計算機2Aが保持する関連付け(IDA,GUID1)と計算機2Bが保持する関連付け(IDB,GUID1,GUID2)において共通に含まれる送信用識別子GUID1に基づいて、スレッド識別子IDAに相当するスレッド4Aとスレッド識別子IDBに相当するスレッド4Bとの間に関連性(例えばデータをやりとりする関係)が存在することが判明する。したがって、かかる計算機システムによると、スレッド間の関連性を簡便に(例えばプログラムを改変することなく)把握することが可能となる。
すなわち、一実施形態によると、複数の計算機上で動作するプロセスが協調してある機能を提供するようなシステムにおいて、プロセス間の通信の履歴を送信側・受信側のプロセス情報を含めて記憶装置に記録することで、プロセス間の協調関係を時系列に把握することが可能となる。したがって、機能の利用者が予めプロセス間の協調関係を知らない場合であっても、記録されたデータを確認することで、プロセス間の協調関係を把握することができる。これにより、システムのプロセス間の協調関係に関する知識を持たない利用者であっても、エラー発生時には関連するプロセスを列挙し、列挙したプロセスのログファイルの該当時刻付近を調査することで、エラーの真の原因を特定することが可能となる。
<実施形態1>
次に、第1の実施形態に係る計算機システムについて図面を参照して説明する 図2は、本実施形態に係る計算機システムに含まれる計算機2の構成を例示するブロック図である。
[構成]
図2を参照すると、計算機2は、計算機2上で動作するオペレーティングシステム(OS:Operating System)5と、利用者に機能を提供する分散システムの一部を成すプロセス3と、履歴制御指示部6と、履歴保存部7と、を備えている。
また、オペレーティングシステム5は、プロセス間の通信履歴を一時保持・制御する履歴制御部8と、プロセスを管理するプロセス管理部9と、スレッドを管理するスレッド管理部10と、プロセス間通信の終端情報を管理するソケット管理部11と、TCP(Transmission Control Protocol)に基づき他の計算機と通信を行うTCPデータ送受信部12と、プロセス3がオペレーティングシステム5に対して指示を行う場合に呼び出されるシステムコールゲートウェイ部13とを有する。
履歴保存部7は、プロセス間の通信履歴を永続的な記録装置に保存する。また、履歴制御指示部6は、履歴制御部8の動作を指示する。
図2の各部について、さらに詳細に説明する。
計算機2は、いわゆるコンピュータである。コンピュータは物理的なコンピュータであっても、物理的なコンピュータ上で動作する仮想的なコンピュータであってもよい。
オペレーティングシステム5は、本実施形態で提供される機能以外にも、通常のオペレーティングシステムの機能を提供する。
履歴制御部8は、ソケットを使用してプロセス間で通信した際の履歴を一時的に保持する。また、履歴制御部8は、履歴保存部7の要求に応じて、一時的に保持する履歴データを履歴保存部7に渡すとともに、一時的に保持する履歴データを消去する。
履歴保存部7は、履歴制御部8が履歴を保持しているか否かを確認し、保持している場合、履歴制御部8が保持する履歴を受け取る。また、履歴保存部7は、受け取った履歴に関しては、履歴制御部8に対して消去を指示する。また、履歴保存部7は、受け取った履歴を永続的な記録媒体(非図示)に保存する。ここで、記録媒体は計算機上に存在してもよいし、他の計算機上に存在してもよい。
計算機2上では、複数のプロセスが動作する。ただし、簡単のため、図2には1つのプロセス3を例示した。
履歴制御指示部6は、どのプロセスに関する通信の履歴を保存するのかを履歴制御部8に指示する。
TCPデータ送受信部12は、データ送信時にTCPヘッダのオプションフィールドにGUID(Global Unique Identifier)を付加して送信する。
プロセス管理部9は、通信履歴を採取するか否か判断するための情報を保持する。
スレッド管理部10は、送信用のGUIDと受信用のGUIDを保持する。
ソケット管理部11は、通信履歴を採取するか否かを判断するための情報を保持する。
システムコールゲートウェイ部13は、オペレーティングシステム5の各プロセスに対するインターフェイスに相当する。システムコールゲートウェイ部13は、オペレーティングシステム5がプロセス3にエラーを返す場合、履歴制御部8に対して履歴を保持するよう指示する。
図3は、本実施形態の計算機システム1の構成を例示するブロック図である。図3には、計算機システム1と、計算機システム1を利用する機能利用部14が示されている。計算機システム1は、計算機2A〜2Cを備えている。
計算機2A〜2Cは、それぞれ図2に示す計算機に相当する。計算機2A〜2C上では、それぞれプロセス3A〜3Cが動作している。なお、図3においては省略されているものの、計算機2A〜2Cは、それぞれ図2に示す計算機2を構成する各要素を含む。プロセス3A〜3Cは、それぞれスレッド4A〜4Cを包含している。プロセス3A〜3Cが包含するスレッドの数は1つであってもよいし、複数であってもよい。
プロセス3A〜3Cは、通信を行うことにより協調し、システムとして所定の機能を提供する。機能利用部14は、当該機能を利用する側の要素である。本実施形態では、一例として計算機の台数を3台としている。ただし、計算機の台数はこれに限定されず、例えば3台以上であってもよい。また、複数のプロセスはメッシュ状に通信してもよい。
[動作]
次に、本実施形態の計算機システム1の動作について説明する。動作には、(1)通信履歴採取対象プロセスの指定、(2)初期化、(3)システムコールエラー履歴の保存、(4)通信履歴の保存、(5)通信履歴の永続的保存が含まれる。
(1)「通信履歴採取対象プロセスの指定」
履歴制御指示部6は、履歴採取プロセスを指定するため、その実行ファイルパスの情報を履歴制御部8に通知する。履歴制御部8は、通知されたファイルパス情報を保持する。
(2)「初期化」
履歴制御指示部6は、履歴制御部8に対して初期化の要求を行う。履歴制御部8は、(2.1)プロセスの起動、(2.2)ソケットの作成、(2.3)データの送信、(2.4)データの受信、(2.5)スレッドのスリープに関するオペレーティングシステム5の動作に関して、通常のオペレーティングシステムの動作に加えて本実施形態に固有の処理を行うために、オペレーティングシステム5に対する設定を実施する。
(2.1)プロセス起動時の追加処理として、起動しようとしているプロセスが履歴採取対象であるか否かを判断するため、TCPデータ送受信部12は履歴制御部8が保持するファイルパス名を確認する。履歴採取対象である場合、TCPデータ送受信部12は、(プロセス管理部9が保持する)プロセスを管理するデータ構造体に履歴採取対象であることを示すフラグを設定する。プロセスを管理するデータ構造体は、1プロセスに対して1つ存在する。
(2.2)ソケット作成時の追加処理として、TCPデータ送受信部12はプロセスを管理するデータ構造体を確認し、プロセスが履歴採取対象か否かを判断する。履歴採取対象である場合、TCPデータ送受信部12は(ソケット管理部11が保持する)ソケットを管理するデータ構造体に履歴採取対象であることを示すフラグを設定する。ソケットを管理するデータ構造体は、1ソケットに対して1つ存在する。ここで、ソケットとは、他のプロセスと通信する場合に作成される通信路の終端部で、2つのソケットを接続することによりプロセス間の通信が可能となる。
(2.3)データ送信時の追加処理として、TCPデータ送受信部12はソケットを管理するデータ構造体を確認し、履歴採取対象か否かを判断する。履歴採取対象である場合、TCPデータ送受信部12は送信用GUIDが(スレッド管理部10が保持する)スレッドを管理するデータ構造体に保持されているか否かを確認する。保持されていない場合、TCPデータ送受信部12は送信用GUIDを生成してスレッドを管理するデータ構造体に保持する。その後、TCPデータ送受信部12は履歴制御部8に対してデータ送信履歴の保存を指示する。ここで保存するデータには、時刻、プロセスID、スレッドID、スレッドを管理するデータ構造体が保持する送信用GUID、受信用GUID、ログのタイプ(データ送信)、ソケット情報(INETドメインであれば、IP(Internet Protocol)アドレス、ポート番号)が含まれる。その後、TCPデータ送受信部12は、送信用GUIDをTCPヘッダのオプションフィールドに付加してデータを送信する。
(2.4)データ受信時の追加処理として、TCPデータ送受信部12は受信したTCPヘッダのオプションに、本実施形態で付加した送信用GUIDが存在するか否かを確認する。送信用GUIDが存在する場合、TCPデータ送受信部12はソケットを管理するデータ構造体を確認し、履歴採取対象か否かを判断する。履歴採取対象である場合、TCPデータ送受信部12は受信用GUIDがスレッドを管理するデータ構造体に保持されているか確認する。保持されていない場合、TCPデータ送受信部12は受信用GUIDを生成してスレッドを管理するデータ構造体に保持する。その後、TCPデータ送受信部12は履歴制御部8に対してデータ受信履歴の保存を指示する。保存するデータには、時刻、プロセスID、スレッドID、TCPヘッダのオプションに付与されていた送信用GUID、スレッドを管理するデータ構造体が保持する受信用GUID、ログのタイプ(データ受信)、ソケット情報(INETドメインであれば、IPアドレス、ポート番号)が含まれる。その後、TCPデータ送受信部12は、データ受信処理を行う。
(2.5)スレッドのスリープ時の追加処理として、TCPデータ送受信部12は送信用・受信用GUIDがスレッドを管理するデータ構造体に保持されているか否かを確認する。保持されている場合、TCPデータ送受信部12はこれらのGUIDをクリアする。スレッドのスリープとは、スレッドが自発的にCPU(Central Processing Unit)を解放する場合であり、I/O(Input/Output)待ちによるスリープは含まれない。これにより、次にデータ送受信が発生した場合、新しいGUIDが生成される。
(3)「システムコールエラー履歴の保存」
システムコールゲートウェイ部13は、オペレーティングシステム5がプロセスにエラーを返却するか否かを判断する。エラーを返却する場合、システムコールゲートウェイ部13はプロセスを管理するデータ構造体を確認し、プロセスが履歴採取対象か否かを判断する。プロセスが履歴採取対象である場合、システムコールゲートウェイ部13は履歴制御部8に対してエラー履歴の保存を指示する。保存するデータには、時刻、プロセスID、スレッドID、スレッドを管理するデータ構造体が保持する送信用GUID、受信用GUID、ログのタイプ(エラー)が含まれる。
(4)「通信履歴の保存」
履歴制御部8は、他の要素からの指示により、時刻、プロセスID、スレッドID、スレッドを管理するデータ構造体に含まれる送信用GUID、受信用GUID、イベントの種類(データの送信、受信、システムコールのエラー)を保存する。
(5)「通信履歴の永続的保存」
履歴保存部7は、履歴制御部8に対して、保存された通信履歴が存在するか否かを問い合わせる。通信履歴が存在する場合、履歴保存部7はその履歴を履歴制御部8から取得し、計算機2上のハードディスク等の永続的記録媒体に保存する。履歴保存部7は、永続的記録媒体に保存したデータに関しては履歴制御部8から削除するように、履歴制御部8に指示する。
図4は、本実施形態の計算機システムの動作の具体例を示す。スレッド4を示す箱内の左側に付された番号は受信用GUIDを示し、右側に付された番号は送信用GUIDを示す。図4の丸囲み(破線)において、左端のスレッド4Aが稼働する計算機2Aはデータ送信時に受信用GUID「1」、送信用GUID「2」のペア「1・2」のログを記録する。一方、中央のスレッド4Bが稼働する計算機2Bは、データ受信時およびデータ送信時に、それぞれ、GUIDのペア「2・4」および「4・5」のログを記録する。また、右端のスレッド4Cが稼働する計算機は、データ受信時にGUIDのペア「5・7」のログを記録する。したがって、これらのGUIDをマッチング(照合)することにより、スレッド4A〜4Cが互いに関連性を有することを把握できる。
[効果]
本実施形態によると、対象となる分散システムに関する動作説明資料が存在しない場合であっても、プロセス間の協調関係を確認することができる。その理由は、各計算機2の履歴保存部7が保存した履歴を収集し、GUIDのマッチングを行うことで、どのプロセスがどのプロセスに対してデータを送信したのかを確認することができるからである。
また、本実施形態によると、あるプロセスでエラーが発生した場合、そのエラーの原因が他の計算機のプロセスにあった場合でも容易に判別することができる。その理由は、プロセスが出力するエラーログと、上記の効果によるプロセス間の関連性を確認することで、確認すべき他のプロセスのログを判断でき、調査を実施することができるからである。
さらに、本実施形態によると、プロセスが出力するエラーログが不十分な場合でも、エラーの原因を判断することができる。その理由は、プロセスがエラーログにエラーを残さない場合であっても、システムコールゲートウェイ部13が記録するエラーの履歴を確認することで、どのプロセスにどのようなエラーが発生していたのかを判断できるからである。
<実施形態2>
次に、第2の実施形態に係る計算機システムについて図面を参照して説明する。第1の実施形態に係る計算機システム(図2、図3参照)では、スレッド間の通信がTCP通信の場合を想定している。一方、本実施形態では、図5に示すような同一計算機内のスレッド間の通信にも適用可能とする。
[構成]
図6は、図5のような計算機システム1においても適用可能な計算機2の構成を例示するブロック図である。図6を参照すると、本実施形態の計算機2では、第1の実施形態における計算機2(図2)におけるソケット管理部11とTCPデータ送受信部12が、それぞれ、リソース管理部15とリソース処理部16に変更されている。
リソースとは、あるスレッドから他のスレッドに対して何らかの作用を発生させるオペレーティングシステム5のリソースである。例えば、同一のオペレーティングシステム5内で動作するスレッド間でテータを送受信するソケット、条件変数、プロセス間メッセージ通信、セマフォ等がリソースに該当する。
リソース管理部15は、リソース状態履歴を採取するか否かを判断するための情報、および、リソースの状態を変更した操作に対応するGUIDを保持する。
スレッド管理部10は、2種類のGUIDを保持する。一方のGUIDは、リソース状態を変更する場合に更新されるGUID(「送信用GUID」という。)である。他方のGUIDは、リソース状態変更に応じてスレッドが実行状態になる場合に更新されるGUID(「受信用GUID」という。)である。
[動作]
次に、本実施形態の計算機システム(図5、図6)の動作について説明する。動作には、(1)リソース履歴採取対象プロセスの指定、(2)初期化、(3)システムコールエラー履歴の保存、(4)リソース履歴の保存、(5)リソース履歴の永続的保存が含まれる。
(1)「リソース履歴採取対象プロセスの指定」
履歴制御指示部6は、履歴採取プロセスを指定するため、その実行ファイルパスの情報を履歴制御部8に通知する。履歴制御部8は、通知されたファイルパス情報を保持する。
(2)「初期化」
履歴制御指示部6は、履歴制御部8に対して初期化の要求を行う。履歴制御部8は、(2.1)プロセスの起動、(2.2)リソースの作成、(2.3)〜(2.4)リソースの状態変更、(2.5)スレッドのスリープに関するオペレーティングシステム5の動作に関して、通常のオペレーティングシステムの動作に加えて本実施形態に固有の処理を行うため、オペレーティングシステム5に対して設定を実施する。
(2.1)プロセス起動時の追加処理として、起動しようとしているプロセスが履歴採取対象であるか否かを判断するため、リソース処理部16は履歴制御部8が保持しているファイルパス名を確認する。履歴採取対象である場合、リソース処理部16は(プロセス管理部9が保持する)プロセスを管理するデータ構造体に履歴採取対象であることを示すフラグを設定する。プロセスを管理するデータ構造体は、1プロセスに対して1つ存在する。
(2.2)リソース作成時の追加処理として、リソース処理部16はプロセスを管理するデータ構造体を確認し、プロセスが履歴採取対象か否かを判断する。履歴採取対象である場合、リソース処理部16は(リソース管理部15が保持する)リソースを管理するデータ構造体に履歴採取対象であることを示すフラグを設定する。リソースを管理するデータ構造体は、1リソースに対して1つ存在する。
(2.3)リソース状態変更時の追加処理として、リソース処理部16はリソースを管理するデータ構造体を確認し、履歴採取対象か否かを判断する。履歴採取対象である場合、リソース処理部16は送信用GUIDが(スレッド管理部10が保持する)スレッドを管理するデータ構造体に保持されているか否かを確認する。保持されていない場合、リソース処理部16は送信用GUIDを生成してスレッドを管理するデータ構造体に保持する。その後、リソース処理部16は履歴制御部8に対してデータ送信履歴の保存を指示する。保存するデータには、時刻、プロセスID、スレッドID、スレッドを管理するデータ構造体が保持する送信用GUID、受信用GUID、ログのタイプ(リソース状態変更)、リソース情報が含まれる。その後、リソース処理部16は送信用GUIDをリソース管理部15が持つGUID記憶部に保存する。
(2.4)リソース状態変更により、他のスレッドを待機状態から実行可能状態に変更する必要性がある場合、リソース処理部16は、実行可能状態になったスレッドをスレッドCとして、スレッドCに対応する受信用GUIDがスレッドを管理するデータ構造体に保持されているか否かを確認する。保持されていない場合、リソース処理部16は受信用GUIDを生成してスレッドを管理するデータ構造体に保持する。その後、リソース処理部16は、履歴制御部8に対してスレッド動作履歴の保存を指示する。保存するデータには、時刻、プロセスID、スレッドID、リソース管理部15が持つ送信用GUID、スレッドCを管理するデータ構造体が保持する受信用GUID、ログのタイプ(データ受信)、リソース情報が含まれる。
(2.5)スレッドのスリープ時の追加処理として、リソース処理部16は送信用・受信用GUIDがスレッドを管理するデータ構造体に保持されているか否かを確認する。保持されている場合、リソース処理部16はこれらのGUIDをクリアする。スレッドのスリープとは、スレッドが自発的にCPUを解放する場合であり、I/O待ちによるスリープは含まれない。これにより、次にデータ送受信が発生した場合、新しいGUIDが生成される。
(3)「システムコールエラー履歴の保存」
システムコールゲートウェイ部13は、オペレーティングシステム5がプロセスにエラーを返却するか否かを判断する。エラーを返却する場合、システムコールゲートウェイ部13はプロセスを管理するデータ構造体を確認し、プロセスが履歴採取対象か否かを判断する。プロセスが履歴採取対象である場合、システムコールゲートウェイ部13は履歴制御部8に対してエラー履歴の保存を指示する。保存するデータには、時刻、プロセスID、スレッドID、スレッドを管理するデータ構造体が保持する送信用GUID、受信用GUID、ログのタイプ(エラー)が含まれる。
(4)「リソース履歴の保存」
履歴制御部8は、他の要素からの指示により、時刻、プロセスID、スレッドID、スレッドを管理するデータ構造体に含まれる送信用GUID、受信用GUID、イベントの種類(データの送信、受信、システムコールのエラー)を保存する。
(5)「通信履歴の永続的保存」
履歴保存部7は、履歴制御部8に対して、保存された通信履歴が存在するか否かを問い合わせる。存在する場合、履歴保存部7はその履歴を履歴制御部8から取得し、計算機上のハードディスク等の永続的記録媒体に保存する。履歴保存部7は、永続的記録媒体に保存したデータに関しては履歴制御部8から削除するように、履歴制御部8に指示する。
[効果]
本実施形態によると、オペレーティングシステムのリソース状態の変化を捉え、関連するスレッドの情報を記録することにより、同一計算機内で動作するスレッド間の関連性を確認することができる。
<実施形態3>
次に、第3の実施形態の計算機システムについて説明する。
本実施形態では、第1の実施形態の計算機システム(図2、図3)と第2の実施形態に係る計算機システム(図5、図6)を組み合わせる。
本実施形態によると、任意の計算機上で動作する任意のスレッド間の関連性を明らかにすることが可能となる。
<実施形態4>
次に、第4の実施形態に係る計算機システムについて図面を参照して説明する。
[構成]
図7は、本実施形態の計算機システムの構成を例示するブロック図である。図7を参照すると、本実施形態では、第1ないし第3実施形態の計算機システムに対してさらにログ解析部17が追加されている。
[動作]
次に、本実施形態の計算機システムの動作について説明する。
図7の構成においては略記されているが、計算機2A〜2Cは、それぞれ、以下で説明する動作を除いて、第1ないし第3の実施形態における計算機2と同様の動作を行う。
本実施形態では、履歴保存部7は、ログを永続的記録媒体に保存する代わりに、ログ解析部17に送信する。また、履歴保存部7は、ログ解析部17にログを送信する際、履歴保存部7が動作する計算機2を識別可能なIDを付与する。
また、本実施形態では、履歴制御指示部6は第3の実施形態に加えて、履歴制御部8に対してルートスレッド、および、入力値のルールを与える。ルートスレッドとは、例えば図4における一番左側のスレッドのように、あるサービスを提供するための入り口となるスレッドをいう。
さらに、データ受信時の動作として、TCPデータ送受信部12がルートスレッドか否かの判断を行う動作を加える。ルートスレッドである場合、TCPデータ送受信部12は受信データと入力ルールと照合し、記録すべき部分を抜き出し履歴制御部8に対して保存を指示する。保存するデータには、時刻、プロセスID、スレッドID、送信用GUID、受信用GUID、ログのタイプ(サービスリクエスト受信)、入力ルールを適用して抽出した受信データが含まれる。
ここで、上述した「入力値のルール」について、具体例に基づいて説明する。本実施形態では、入力データとしては、所定の構造を持ったデータを前提とする。入力値のルールとは、この構造を明らかにするとともに、入力データの特定の部分を抽出するためのルールを指す。
一例として、入力データ(ないし受信データ)は以下の構造
Service: 1
User: Yamada
Option: Coffee
を有するものとする。また、入力値のルールは「"Service:" の次の数字」とする。この場合、TCPデータ送受信部12は入力データに入力値のルールを適用し、履歴制御部8に記録すべき部分として「1」を抽出する。
ログ解析部17は、計算機2A〜2Cの履歴保存部7A〜7Cからログを収集し、収集したログを解析する。ログ解析部17は、一例としてニューラルネットワークを用いて解析を実施することができる。ここで、ニューラルネットワークの入力層の数は、ルートスレッドの入力ルールによって識別可能な種類(バリエーション)の数以上とする。ニューラルネットワークにおいて、入力層は任意の中間層を介して出力層に到達する。出力層の数は、システム内において関連するスレッドの数以上とする。例えば図4に示すスレッド群に対して、図8に示すニューラルネットワークを使用することが考えられる。
図8の入力層に含まれる各ユニット(ニューロン)は、ルートスレッドに対する入力ルールの適用によって識別される1つ1つのバリエーションに対応する。例えば、入力ルールによって番号1,2,3の3種類に分類される場合、入力層の1番目のユニットが番号1に対応し、同様に入力層の2,3番目のユニットがそれぞれ番号2,3に対応する。かかる場合に相当する例として、上記の具体例において「Service:」の次に現れる数字が、データの構造上1,2,3の3種類に限定される場合が考えられる。なお、図8は中間層が1層の場合を例示しているが、中間層の層数は1層に限定されない。
また、図8の出力層に含まれる各ユニットは、スレッドに対して1対1に対応する。
ログ解析部17は、ログを受信すると、受信したログを検索可能な状態で保存する。次に、ログ解析部17はログ内に送信用GUIDが含まれるか否かを確認する。送信用GUIDが含まれていない場合(すなわちN/A(Not Available)の場合、例えば図4のスレッド4Cにおける「na」)、ログ解析部17は受信用GUIDをキーとして記録済みのログを検索し、送信スレッドにより記録されたログを確認する。ログ解析部17は、検索されたログの受信用GUIDをキーとして再度検索を実施し、同様の動作を繰り返す。これにより、ログ解析部17は、最終的にルートスレッドが記録したログを特定することができる。次に逆方向に向けて、ログ解析部17はルートスレッドの送信用GUIDをキーとして、送信先スレッドが記録したログを特定する。以上の処理によって、ログ解析部17はルートスレッドに対する特定の入力によって動作する関連するスレッドとこれに対応するログを摘出することができる。ここでは、ログ解析部17によるこれらの処理を「処理A」という。
ログ解析部17は、これらのログの値からルートスレッドに対する入力値ごとに時刻差分の統計情報を採取する。時刻差分は、上位スレッドが送信動作時に記録した時刻と、その下位スレッドが送信動作時に記録した時刻の差分とする。ログ解析部17は、統計情報として、その時刻差分を母集団とする平均μと標準偏差σを求めて保持する。また、ログ解析部17は、保持した平均μと標準偏差σを用いて、ある時点の時刻差分から標準化された値zを求める。
z=(時刻差分−μ)/σ
ログ解析部17は、ルートスレッドに対する入力が番号1である場合、番号1に対応するユニット(ニューロン)の出力を1.0とし、その他のユニットはすべて0とする。このとき、ログ解析部17は、スレッドに関連する出力ユニットの出力が1−zとなり、一方、関連しないスレッドに対応する出力ユニットの出力が0となるようにニューラルネットワークを学習させる。ここで、ログ解析部17は、学習方法として、例えば勾配降下法等の公知の手法を用いることができる。
任意の数のログを使用してニューラルネットワークを学習させた後、ログ解析部17は、ルートスレッドに対する所定の入力をニューラルネットワークに入力すれば、当該所定の入力に対する関連するスレッド群を推測することができる。ログ解析部17は、かかる推測結果と処理Aの結果を比較し、異なる結果が得られた場合、システムは通常とは異なる状態であるものと推測することができる。
以上より、本実施形態の計算機システムによると、システムに異常状態が生じたことを検出することができる。
<実施形態5>
次に、第5の実施形態に係る計算機システムについて図面を参照して説明する。
図9は、本実施形態において想定するスレッドの構成を例示する。スレッド間の協調動作は、上記の実施形態のようにソケットによる通信やオペレーティングシステムのリソース(メッセージ、メッセージ通信、条件変数、セマフォ等)を介して行われるのみならず、図9に示すようにメモリキュー18を介して行われる場合がある。
図9において、スレッド4A(Producer)とスレッド4B(Consumer)の排他はメモリ上で行われ、キュー構造等を介してスレッド4A(Producer)からスレッド4B(Consumer)にデータが渡される。ここで、メモリキュー18の前段のスレッドを「Producerスレッド」と呼び、メモリキュー18の次段のスレッドを「Consumerスレッド」と呼ぶ。この場合、オペレーティングシステム5は直接関与することができない。図9に示すスレッド構成に対して、第4の実施形態に係る計算機システムを適用すると、スレッド4A(Producer)とスレッド4B(Consumer)との間に関連があるにも関わらず、スレッド4A(Producer)の送信用GUIDとスレッド4B(Consumer)の受信用GUIDはいずれもN/A(図9の「na」)となる。本実施形態は、このような場合においても、スレッド間の関連を適切に抽出するための手段を提示する。
[構成]
図10は、本実施形態に係る計算機システム1の構成を例示するブロック図である。本実施形態では、第4の実施形態の計算機システム1(図7)に対して、さらに構成指示部19が追加されている。
構成指示部19は、想定される時刻差分μ、想定される標準偏差σ、および、図9のProducerスレッドを特定できる情報をログ解析部17に提供する。ここで、時間差分μはProducerスレッドがデータを受信した時刻とConsumerスレッドが他のスレッドにデータを送信した時刻との間の想定される時間差の平均値である。通常、時間差分μは微小な値をとる。一方、標準偏差σは想定されるμの標準偏差である。また、Producerスレッドを特定できる情報は、そのスレッドが動作しているノード情報、プロセスID、スレッドID等である。
構成指示部19は、想定される時刻差分μ、想定される標準偏差σ、および、Producerスレッドを特定できる情報を、本実施形態に係る計算機システム1を予め動作させることで取得するようにしてもよい。すなわち、構成指示部19は、計算機システム1を予備的に動作させて記録したログから、受信用GUIDがN/Aのログを抽出し、これらのログに対応するスレッドをConsumerスレッド候補とする。さらに、構成指示部19はConsumerスレッドの送信時刻とProducerスレッドの受信時刻の差分を求め、差分の平均値μと標準偏差σを求める。
ログ解析部17の動作は、以下の点において第4の実施形態におけるログ解析部17の動作と相違する。
ログ解析部17は、ログを受信すると、受信したログを検索可能な状態で保存する。次に、ログ解析部17はログ内に送信用GUIDが含まれるか否かを確認する。含まれていない場合(すなわちN/Aの場合、図9の「na」)、ログ解析部17は受信用GUIDをキーとして記録済みログを検索し、送信スレッドにより記録されたログを確認する。ログ解析部17は、検索されたログの受信用GUIDをキーとして再度検索を実施し、同様の動作を繰り返す。
最終的にルートスレッドが記録したログを特定できた場合、ログ解析部17は第4の実施形態で説明した「処理A」と同様な動作を行い、関連するすべてのスレッドを特定することができる。ここで、ログ解析部17は、特定できたスレッド間の関連の強さを「1」に設定する。
一方、最終的にルートスレッドに到達できず、受信用GUIDがN/Aのスレッドに到達した場合、ログ解析部17は当該スレッドをConsumerスレッド候補とする(図11)。この場合、ログ解析部17はConsumerスレッド候補がProducerスレッドと関連がある可能性を検討する。ここで、Producerスレッドに入力がなされた時刻と、Consumerスレッド候補が他のスレッドにデータを送信した時刻との差をΔtとする。ログ解析部17は、Δtと構成指示部19から得た平均値μ、標準偏差σから標準化(規格化)した値zを求める。
z=(Δt−μ)/σ
ここで、zを引数とし正の値を取る関数f(z)を定義し、ProducerスレッドとConsumerスレッド候補の関連強さを1−f(z)とする。ただし、1−f(z)が負になる場合、ログ解析部17は、関連の強さを0とする。関数f(z)として、例えば以下の式を用いることができる。
f(z)=|z|
以上の動作に従って、ログ解析部17はルートスレッドに所定の入力がなされた場合に動作するスレッド間の関連の強さを求める。なお、スレッド間に関連がない場合、関連の強さは0とする。図11は、スレッド間の関連の強さを例示する。ログ解析部17は、これらのスレッド間の関連の強さを、第4の実施形態におけるニューラルネットワークの出力層のユニット(ニューロン)の学習データとして使用する。例えば、ルートスレッドから該当スレッドまでのパスのすべての関連の強さをパラメータとする関数g(X)を適用した値を学習データとすることができる。ここで、関数g(X)はパラメータ中に1つでも0に近い値が存在する場合、0に近い値を出力する関数とする。例えば、関数g(X)として、次式を採用することができる。
g(x1,x2,…,xn)=x1*x2*x3*…*xn (*は積を表す)
図11において、上記の関数g(X)を適用すると、Consumerスレッド候補に対応する出力ユニットに対しては0.9が学習データとなり、その下位のスレッドに対応する出力ユニットの学習データは、それぞれ0.9,0.0となる。
[効果]
本実施形態の計算機システムによると、スレッド間の協調がメモリを経由して行われる場合であっても、スレッド間の関連性を推測し、これに基づいてシステムの異常状態を検出することが可能となる。
なお、本発明において、下記の形態が可能である。
[形態1]
上記第1の態様に係る計算機システムのとおりである。
[形態2]
前記第2のスレッドが前記データの受信に応じて第3のスレッドにデータを送信する場合、前記第2のスレッドが稼働する計算機は前記第2のスレッドの識別子と前記第1の受信用識別子と第2の送信用識別子を関連付けて保持する、
形態1に記載の計算機システム。
[形態3]
前記第1の送信用識別子、前記第1の受信用識別子、および、前記第2の送信用識別子は、GUID(Global Unique Identifier)である、
形態2に記載の計算機システム。
[形態4]
前記第1のスレッドが前記第2のスレッドに前記データを送信する場合、前記第1のスレッドが稼働する計算機は前記第1のスレッドの識別子と第1の送信用識別子と前記送信の時刻とを関連付けて保持し、
前記第2のスレッドが前記第1のスレッドから前記データを受信する場合、前記第2のスレッドが稼働する計算機は前記第2のスレッドの識別子と前記第1の送信用識別子と前記第1の受信用識別子と前記受信の時刻を関連付けて保持する、
形態1ないし3のいずれか一に記載の計算機システム。
[形態5]
前記第1のスレッドが稼働する計算機と前記第2のスレッドが稼働する計算機は、同一の計算機である、
形態4に記載の計算機システム。
[形態6]
前記複数のスレッドが稼働する計算機が保持する関連付けに基づいて、互いに関連するスレッド群を学習するログ解析手段を備え、
前記ログ解析手段は、前記学習によって得られた互いに関連するスレッド群と、前記複数のスレッドが稼働する計算機が蓄積した関連付けに基づいて抽出した互いに関連するスレッド群とを比較して、スレッド群に関連するプロセスが正常に動作しているか否かを判定する、
形態4または5に記載の計算機システム。
[形態7]
前記ログ解析手段は、送信用識別子に対して受信用識別子が関連付けられていないスレッドと、当該スレッドに対してデータを送信するスレッドとの関連の強さを、後者のスレッドがデータを受信した時刻と前者のスレッドがデータを送信した時刻の差に応じて算出し、算出した関連の強さに基づいて互いに関連するスレッド群を学習する、
形態6に記載の計算機システム。
[形態8]
上記第2の態様に係るスレッド間通信方法のとおりである。
[形態9]
前記第2のスレッドが前記データの受信に応じて第3のスレッドにデータを送信する場合、前記第2のスレッドの識別子と前記第1の受信用識別子と第2の送信用識別子を関連付けて保持するステップを含む、
形態8に記載のスレッド間通信方法。
[形態10]
前記第1の送信用識別子、前記第1の受信用識別子、および、前記第2の送信用識別子は、GUID(Global Unique Identifier)である、
形態9に記載のスレッド間通信方法。
[形態11]
前記第1のスレッドが前記第2のスレッドに前記データを送信する場合、前記第1のスレッドの識別子と第1の送信用識別子と前記送信の時刻とを関連付けて保持するステップと、
前記第2のスレッドが前記第1のスレッドから前記データを受信する場合、前記第2のスレッドが稼働する計算機は前記第2のスレッドの識別子と前記第1の送信用識別子と第1の受信用識別子と前記受の信時刻を関連付けて保持するステップと、を含む、
形態8ないし10のいずれか一に記載のスレッド間通信方法。
[形態12]
前記複数のスレッドが稼働する計算機が保持する関連付けに基づいて、互いに関連するスレッド群を学習するステップと、
前記学習によって得られた互いに関連するスレッド群と、前記複数のスレッドが稼働する計算機が蓄積した関連付けに基づいて抽出した互いに関連するスレッド群とを比較して、スレッド群に関連するプロセスが正常に動作しているか否かを判定するステップと、を含む、
形態11に記載のスレッド間通信方法。
[形態13]
前記ログ解析手段は、送信用識別子に対して受信用識別子が関連付けられていないスレッドと、当該スレッドに対してデータを送信するスレッドとの関連の強さを、後者のスレッドがデータを受信した時刻と前者のスレッドがデータを送信した時刻の差に応じて算出し、算出した関連の強さに基づいて互いに関連するスレッド群を学習するステップを含む、
形態12に記載のスレッド間通信方法。
[形態14]
上記第3の態様に係るプログラムのとおりである。
なお、上記特許文献の全開示内容は、本書に引用をもって繰り込み記載されているものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素(各請求項の各要素、各実施形態の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
1 計算機システム
2、2A〜2C 計算機
3、3A〜3C プロセス
4A〜4E スレッド
5 オペレーティングシステム
6 履歴制御指示部
7、7A〜7C 履歴保存部
8 履歴制御部
9 プロセス管理部
10 スレッド管理部
11 ソケット管理部
12 TCPデータ送受信部
13 システムコールゲートウェイ部
14 機能利用部
15 リソース管理部
16 リソース処理部
17 ログ解析部
18 メモリキュー
19 構成指示部

Claims (10)

  1. 複数のスレッドが稼働する計算機を備え、
    第1のスレッドが第2のスレッドにデータを送信する場合、前記第1のスレッドが稼働する計算機は前記第1のスレッドの識別子と第1の送信用識別子を関連付けて保持し、
    前記第2のスレッドが前記第1のスレッドから前記データを受信する場合、前記第2のスレッドが稼働する計算機は前記第2のスレッドの識別子と前記第1の送信用識別子と第1の受信用識別子とを関連付けて保持する、
    ことを特徴とする計算機システム。
  2. 前記第2のスレッドが前記データの受信に応じて第3のスレッドにデータを送信する場合、前記第2のスレッドが稼働する計算機は前記第2のスレッドの識別子と前記第1の受信用識別子と第2の送信用識別子を関連付けて保持する、
    請求項1に記載の計算機システム。
  3. 前記第1の送信用識別子、前記第1の受信用識別子、および、前記第2の送信用識別子は、GUID(Global Unique Identifier)である、
    請求項2に記載の計算機システム。
  4. 前記第1のスレッドが前記第2のスレッドに前記データを送信する場合、前記第1のスレッドが稼働する計算機は前記第1のスレッドの識別子と第1の送信用識別子と前記送信の時刻とを関連付けて保持し、
    前記第2のスレッドが前記第1のスレッドから前記データを受信する場合、前記第2のスレッドが稼働する計算機は前記第2のスレッドの識別子と前記第1の送信用識別子と前記第1の受信用識別子と前記受信の時刻を関連付けて保持する、
    請求項1ないし3のいずれか1項に記載の計算機システム。
  5. 前記第1のスレッドが稼働する計算機と前記第2のスレッドが稼働する計算機は、同一の計算機である、
    請求項4に記載の計算機システム。
  6. 前記複数のスレッドが稼働する計算機が保持する関連付けに基づいて、互いに関連するスレッド群を学習するログ解析手段を備え、
    前記ログ解析手段は、前記学習によって得られた互いに関連するスレッド群と、前記複数のスレッドが稼働する計算機が蓄積した関連付けに基づいて抽出した互いに関連するスレッド群とを比較して、スレッド群に関連するプロセスが正常に動作しているか否かを判定する、
    請求項4または5に記載の計算機システム。
  7. 前記ログ解析手段は、送信用識別子に対して受信用識別子が関連付けられていないスレッドと、当該スレッドに対してデータを送信するスレッドとの関連の強さを、後者のスレッドがデータを受信した時刻と前者のスレッドがデータを送信した時刻の差に応じて算出し、算出した関連の強さに基づいて互いに関連するスレッド群を学習する、
    請求項6に記載の計算機システム。
  8. 第1のスレッドが第2のスレッドにデータを送信する場合、前記第1のスレッドの識別子と第1の送信用識別子を関連付けて保持するステップと、
    前記第2のスレッドが前記第1のスレッドから前記データを受信する場合、前記第2のスレッドの識別子と前記第1の送信用識別子と第1の受信用識別子とを関連付けて保持するステップと、を含む、
    ことを特徴とするスレッド間通信方法。
  9. 前記第2のスレッドが前記データの受信に応じて第3のスレッドにデータを送信する場合、前記第2のスレッドの識別子と前記第1の受信用識別子と第2の送信用識別子を関連付けて保持するステップを含む、
    請求項8に記載のスレッド間通信方法。
  10. 第1のスレッドが第2のスレッドにデータを送信する場合、前記第1のスレッドの識別子と第1の送信用識別子を関連付けて保持する処理と、
    前記第2のスレッドが前記第1のスレッドから前記データを受信する場合、前記第2のスレッドの識別子と前記第1の送信用識別子と第1の受信用識別子とを関連付けて保持する処理と、をコンピュータに実行させる、
    ことを特徴とするプログラム。
JP2016047259A 2016-03-10 2016-03-10 計算機システム、スレッド間通信方法およびプログラム Active JP6642138B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016047259A JP6642138B2 (ja) 2016-03-10 2016-03-10 計算機システム、スレッド間通信方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016047259A JP6642138B2 (ja) 2016-03-10 2016-03-10 計算機システム、スレッド間通信方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2017162284A JP2017162284A (ja) 2017-09-14
JP6642138B2 true JP6642138B2 (ja) 2020-02-05

Family

ID=59854078

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016047259A Active JP6642138B2 (ja) 2016-03-10 2016-03-10 計算機システム、スレッド間通信方法およびプログラム

Country Status (1)

Country Link
JP (1) JP6642138B2 (ja)

Also Published As

Publication number Publication date
JP2017162284A (ja) 2017-09-14

Similar Documents

Publication Publication Date Title
US10348809B2 (en) Naming of distributed business transactions
US9838483B2 (en) Methods, systems, and computer readable media for a network function virtualization information concentrator
CN111258627B (zh) 一种接口文档生成方法和装置
JP6742327B2 (ja) アラーム情報を処理する方法、関連デバイス、およびシステム
CN109144813B (zh) 一种云计算系统服务器节点故障监控系统及方法
JP2011091464A (ja) ネットワーク構成の想定のための装置、システム
JP6972796B2 (ja) ソフトウェアサービス実行装置、システム、及び方法
US8305908B2 (en) System analysis method, system analysis apparatus, and computer readable storage medium storing system analysis program
CN112636942B (zh) 业务主机节点的监测方法及装置
US11349730B2 (en) Operation device and operation method
CN108769118A (zh) 一种分布式系统中主节点的选取方法及装置
US11886939B2 (en) System, device, method and datastack for managing applications that manage operation of assets
CN117579651A (zh) 物联网系统
JP6642138B2 (ja) 計算機システム、スレッド間通信方法およびプログラム
US11595419B2 (en) Communication monitoring system, communication monitoring apparatus, and communication monitoring method
JP2006330783A (ja) オーバレイネットワーク生成アプリケーション起動ノード特定装置およびその方法
KR101630088B1 (ko) 가상머신의 라이프사이클 모니터링 방법 및 그 장치
JP5686001B2 (ja) 情報処理装置、メッセージ切分け方法およびメッセージ切分けプログラム
JP6775452B2 (ja) 監視システム、プログラムおよび監視方法
JP7389370B2 (ja) 運用装置、保守管理システム、運用方法およびプログラム
JP6048555B1 (ja) 分類情報作成装置、分類情報作成方法、分類情報作成プログラム、検索装置、検索方法、及び、検索プログラム
JP2020150335A (ja) パケット解析プログラム、パケット解析装置およびパケット解析方法
CN115150466B (zh) 一种数据分发的实现方法、装置、电子设备及存储介质
WO2022118427A1 (ja) 異常検知支援装置、異常検知支援方法及びプログラム
TWI673610B (zh) 遠端工作系統及其工作方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190204

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191127

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191216

R150 Certificate of patent or registration of utility model

Ref document number: 6642138

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150