JP6211487B2 - Distributed system, data acquisition method, and computer program - Google Patents
Distributed system, data acquisition method, and computer program Download PDFInfo
- Publication number
- JP6211487B2 JP6211487B2 JP2014170913A JP2014170913A JP6211487B2 JP 6211487 B2 JP6211487 B2 JP 6211487B2 JP 2014170913 A JP2014170913 A JP 2014170913A JP 2014170913 A JP2014170913 A JP 2014170913A JP 6211487 B2 JP6211487 B2 JP 6211487B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- management information
- acquisition
- node
- error
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本発明は、分散システム、データ取得方法及びコンピュータプログラムに関する。 The present invention relates to a distributed system, a data acquisition method, and a computer program.
特許文献1には、ネットワークに接続される制御機器がサポートするプロトコル名、プロトコルのコマンド情報、コマンド種別を含むプロファイル情報を格納したコマンド変換記憶手段と、情報処理機器からターゲットとなる制御機器宛ての送信データを受信した際に、コマンド変換記憶手段にアクセスし、その送信データに格納されたコマンドがそのターゲットとなる制御機器が理解できるコマンドか否かを判断する判断手段と、その判断手段の判断結果が理解できる場合には受信したコマンドを用いた送信データをターゲットとなる制御機器に送信し、理解できない場合にはプロファイル情報に基づき理解できるコマンドに変換して生成した送信データをターゲットとなる制御機器に送信する手段を備える情報変換サーバが開示されている。
ところで、複数の装置(「ノード」という)が通信ネットワークを介して接続された分散システムにおいて、或るノードが他ノードの保持するデータを取得する方法には、例えば、Request/Reply(「Req/Rep」という)通信によってデータを取得する方法、共有メモリからデータを取得する方法、又はPublish/Subscribe(「Pub/Sub」という)通信に係る同報通知を受信することによりデータを取得する方法などがある。この場合、或るノードは、これらの中から適切なデータ取得方法を選択して他ノードからデータを取得する必要がある。 Incidentally, in a distributed system in which a plurality of devices (referred to as “nodes”) are connected via a communication network, a method for obtaining data held by another node from another node is, for example, Request / Reply (“Req / A method of acquiring data by communication), a method of acquiring data from a shared memory, a method of acquiring data by receiving a broadcast notification relating to Publish / Subscribe (referred to as “Pub / Sub”) communication, etc. There is. In this case, a certain node needs to acquire data from other nodes by selecting an appropriate data acquisition method from these.
しかし、これらのデータ取得方法は、それぞれ使用されるパラメータ及びエラー発生時の処理などが異なり得る。例えば、Req/Rep通信によるデータ取得方法と、Pub/Sub通信によるデータ取得方法と、共有メモリによるデータ取得方法とでは、エラー処理方法などが異なり得る。 However, these data acquisition methods may be different in parameters used, processing when an error occurs, and the like. For example, an error processing method or the like may differ between a data acquisition method using Req / Rep communication, a data acquisition method using Pub / Sub communication, and a data acquisition method using a shared memory.
そこで本発明の目的は、データ取得方法の違いによって生じ得るエラー処理方法の違いなどを意識することなくアプリケーションプログラムがデータを取得できるようにした分散システム、データ取得方法及びコンピュータプログラムを提供することにある。 Accordingly, an object of the present invention is to provide a distributed system, a data acquisition method, and a computer program that enable an application program to acquire data without being aware of a difference in error processing method that may occur due to a difference in data acquisition method. is there.
本実施形態に係る分散システムは、管理装置及び複数のノードによって構成される。
管理装置は、データを識別するためのデータ識別子と、そのデータ識別子に対応するデータのデータ取得方法とを含む、管理情報を有する。
ノードは、
アプリケーションプログラムから、データ識別子と、そのデータ識別子に対応するデータの取得処理においてエラーが発生した場合の対応方法を表すエラー処理方法とを含む、データの取得を要求する取得コマンドを受け取ると、
取得コマンドに含まれるデータ識別子に関連する管理情報を管理装置から取得し、
その取得した管理情報に含まれるデータ取得方法に基づき、データ識別子に対応するデータの取得処理を実行し、
その取得処理においてエラーが発生した場合、取得コマンドに含まれるエラー処理方法に基づいてエラー処理を実行し、
取得処理又はエラー処理によってデータ識別子に対応するデータを取得した場合、その取得したデータをアプリケーションプログラムに返す。
The distributed system according to the present embodiment includes a management device and a plurality of nodes.
The management device has management information including a data identifier for identifying data and a data acquisition method for data corresponding to the data identifier.
Node is
When receiving an acquisition command for requesting acquisition of data, including a data identifier and an error processing method representing a response method when an error occurs in the acquisition processing of data corresponding to the data identifier, from the application program,
Acquire management information related to the data identifier included in the acquisition command from the management device,
Based on the data acquisition method included in the acquired management information, execute the data acquisition process corresponding to the data identifier,
If an error occurs in the acquisition process, execute the error process based on the error processing method included in the acquisition command,
When the data corresponding to the data identifier is acquired by the acquisition process or the error process, the acquired data is returned to the application program.
本発明によれば、アプリケーションプログラムが、データ取得方法の違いによって生じ得るエラー処理内容の違いなどを詳細に指示することなく、データを取得することができる。 According to the present invention, it is possible for an application program to acquire data without instructing in detail a difference in error processing content that may occur due to a difference in data acquisition method.
以下、本実施形態に係る分散システムを説明する。以下の説明では、「xxxテーブル」又は「xxxリスト」の表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「xxxテーブル」又は「xxxリスト」を「xxx情報」と呼ぶことができる。 Hereinafter, the distributed system according to the present embodiment will be described. In the following description, information may be described in terms of “xxx table” or “xxx list”, but the information may be expressed in any data structure. That is, in order to show that the information does not depend on the data structure, the “xxx table” or the “xxx list” can be called “xxx information”.
また、以下の説明において、プログラムは、プロセッサ(例えばCPU(Central Processing Unit))によって実行されることで、定められた処理を、適宜に記憶資源(例えばメモリ)及び通信インターフェイスデバイスのうちの少なくとも1つを用いながら行うため、処理の主語が、プロセッサ、そのプロセッサを有する装置とされてもよい。プロセッサが行う処理の一部又は全部が、ハードウェア回路で行われてもよい。コンピュータプログラムは、プログラムソースからインストールされてよい。プログラムソースは、プログラム配布サーバ又は記憶メディア(例えば可搬型の記憶メディア)であってもよい。 Further, in the following description, a program is executed by a processor (for example, a CPU (Central Processing Unit)), so that a predetermined process is appropriately performed at least one of a storage resource (for example, a memory) and a communication interface device. Therefore, the subject of the processing may be a processor and a device having the processor. Part or all of the processing performed by the processor may be performed by a hardware circuit. The computer program may be installed from a program source. The program source may be a program distribution server or a storage medium (for example, a portable storage medium).
また、以下の説明では、同種の要素を区別して説明する場合には、「ノード102a」、「ノード102b」のように、参照符号を使用し、同種の要素を区別しないで説明する場合には、「ノード102」のように参照符号のうちの共通番号のみを使用することがある。
Also, in the following description, when different types of elements are described separately, reference numerals are used such as “
図1は、一実施形態に係る分散システム1の構成例を示す。
FIG. 1 shows a configuration example of a distributed
分散システム1は、計算機の一種である複数のノード102と、計算機の一種である管理装置103とを有する。各ノード102及び管理装置103は、通信ネットワーク101を通じて互いにメッセージ(データ)を送受信することができる。ノード102及び管理装置103の数は、幾つであってもよい。
The distributed
通信ネットワーク101に接続されている各ノード102は、管理装置103へアクセスするための情報(例えば、管理装置103のIP(Internet Protocol)アドレスなど)を有してよい。通信ネットワーク101に接続されている所定のノード102及び管理装置103は、Pub/Sub通信を利用できてよい。Pub/Sub通信とは、或るノード102がメッセージを同報通知し、そのメッセージを受信した他ノード102は、そのメッセージに自分が受信待ちしていたトランザクションID(Identification)が含まれているならば、そのメッセージを取得する(受け入れる)という通信方法である。
Each
図2は、ノード102の構成例を示す。
FIG. 2 shows a configuration example of the
ノード102は、例えば、コントローラ(制御装置)、ワークステーション又はパーソナルコンピュータ等である。ノード102は、ハードウェア240を備える。ハードウェア240は、記憶部250と、処理部241と、通信I/F(Interface)242と、を備える。
The
記憶部250には、様々なデータが格納される。記憶部250は、例えば、揮発性メモリ、不揮発性メモリ又はハードディスク装置等で構成される。
The
処理部241は、コンピュータプログラムを実行し、ノード102の有する様々な機能を実現する。処理部241は、例えば、CPU(Central Processing Unit)等で構成される。
The
通信I/F242は、ノード102を通信ネットワーク101に接続するためのI/Fである。通信I/F242は、例えば、物理層、MAC(Media Access Control)層、IP層及びTCP(Transmission Control Protocol)/UDP(User Datagram Protocol)層などのプロトコルを制御する回路を有する。
The communication I /
ノード102のハードウェア240では、OS(Operating System)230と、アクセスミドルウェア220と、用途ごとに処理内容が異なり得る1又は2以上のアプリケーション210と、が実行される。
In the
記憶部250には、データがリード及びライトされる記憶領域である内部メモリ251が構成される。そして、内部メモリ251内には、共有メモリ253が構成されてよい。内部メモリ251内の共有メモリ253の位置は、メモリアドレスによって特定されてよい。
The
共有メモリ253に格納されたデータは、複数のノード102からアクセス可能であってよい。例えば、或るノード102が、通信ネットワーク101を通じて同報通知されたデータを共有メモリ253に格納すると、他ノード102もその共有メモリ253に格納されたデータにアクセスできてよい。各ノード102は、メモリアドレスを指定して共有メモリ253内のデータにアクセスできてよい。共有メモリ253は複数存在してもよい。この場合、各ノード102は、それぞれの共有メモリ253に付与された共有メモリIDを用いて、アクセス先の共有メモリ253を指定してもよい。共有メモリ253内の各データは、そのデータの更新時刻を併せて有してよい。
Data stored in the shared
図3は、アクセスミドルウェア220の機能構成の例を示す。
FIG. 3 shows an example of the functional configuration of the
アプリケーション210は、コンピュータプログラムによって構成されており、用途に応じて異なる機能を有してよい。ノード102は、複数のアプリケーション210を実行してもよい。アプリケーション210は、アクセスミドルウェア220を通じてデータを取得してよい。また、アプリケーション210は、アクセスミドルウェア220を通して管理装置103から管理情報を取得してよい。
The
ノード102のアクセスミドルウェア220は、自ノード102が保持するデータに係る管理情報を管理装置103に登録する処理機能を有する。管理情報は、或るノード102が、他ノード102の保持するデータにアクセスするために必要な情報を有する。ノード102は、管理装置103から管理情報を取得し、その管理情報に基づいて他ノード102の保持するデータにアクセスする。すなわち、アクセスミドルウェア220は、アプリケーション210に代わって、他ノード102の保持するデータへアクセスする。これにより、アプリケーション210は、他ノード102の保持するデータにアクセスする方法を意識することなく、目的のデータを取得することができる。
The
管理情報は、取得対象のデータに対応するデータID、そのデータIDに対応するデータにアクセスするために必要な情報であるデータ取得方法、及びそのデータIDに対応するデータが存在する位置を表すデータ位置などの情報を有する。管理情報の詳細については後述する。 The management information includes a data ID corresponding to the data to be acquired, a data acquisition method that is information necessary for accessing the data corresponding to the data ID, and data representing a position where the data corresponding to the data ID exists. Contains information such as location. Details of the management information will be described later.
データの種類と、データ取得方法とは対応関係を有してもよい。例えば、他ノード102の内部メモリ251に格納されているデータと、Req/Rep通信によるデータ取得方法とは対応関係を有してよい。例えば、共有メモリ253に格納されているデータと、共有メモリ参照によるデータ取得方法とは対応関係を有してよい。例えば、他ノード102が同報通知(Publish)するメッセージに含まれるデータと、Pub/Sub通信によるデータ取得方法とは対応関係を有してよい。
The type of data and the data acquisition method may have a correspondence relationship. For example, the data stored in the
アクセスミドルウェア220は、機能として、コマンド受付部221と、管理情報登録部222と、管理情報取得部223と、データ取得要求部224と、データ取得応答部225と、メッセージ送信部226と、メッセージ受信部227と、管理情報操作受付部228と、を有する。
The
アクセスミドルウェア220は、記憶部250の内部メモリ251に、管理情報テーブル342と、プロパティ情報410と、キャッシュテーブル252と、更新情報テーブル254と、を構成する。
The
管理情報342は、自ノード102が保持する各データにアクセスするために必要な情報を有する。管理情報342の詳細については後述する(図7参照)。
The
プロパティ情報410は、自ノード102が保持するデータの属性に関する情報を有する。1つの管理情報342に1つのプロパティ情報410が対応付けられてもよい。プロパティ情報410の詳細については後述する(図6参照)。
The
キャッシュテーブル252には、管理装置103から取得した管理情報が一時的に保持される。キャッシュテーブル252には、最後に取得した管理情報が優先的に保持されてもよい。キャッシュテーブル252の詳細については後述する(図9参照)。
Management information acquired from the
更新情報テーブル254は、共有メモリ253のデータに関する更新情報を管理するためのテーブルである。データ取得要求部224は、共有メモリ253からデータを取得した際、その取得対象のデータ位置と、そのデータのサイズと、そのデータに付加されているタイムスタンプとを含む更新情報を生成し、その更新情報を更新情報テーブル254に登録してよい。これにより、データ取得要求部224は、次回以降、更新情報テーブル254を参照することにより、共有メモリ253から取得するデータが、前回取得したデータに対して更新されているか否かを判断することができる。例えば、データ取得要求部224は、取得対象のデータの更新時刻と、更新情報テーブル254においてその取得対象とデータ位置及びサイズの同じデータのタイムスタンプとが一致する場合、データが更新されていないと判断することができる。そして、データ取得要求部224は、更新されていないデータは共有メモリ253から取得しないという設定であってもよい。
The update information table 254 is a table for managing update information related to data in the shared
メッセージ送信部226は、各部222、223、224、225から渡された情報及び指定されたフォーマットに従ってメッセージを生成し、そのメッセージを指定された宛先へ送信する。各部から渡される情報及びフォーマットなどは、処理毎に定められていてよい。詳細については後述する。
The
メッセージ受信部227は、受信したメッセージを解析し、そのメッセージに含まれるメッセージ種別などを抽出する。そして、メッセージ受信部227は、そのメッセージ種別に基づき、各部222、223、224、225へ必要な情報を渡す。メッセージ受信部227は、データ取得要求部224からトランザクションIDを受け取った場合、そのトランザクションIDを有するPub/Subメッセージ(同報通知)の受信を監視する。そして、メッセージ受信部227は、そのトランザクションIDを有するPub/Subメッセージの受信を検知すると、そのメッセージに含まれるデータなどをデータ取得要求部224へ渡す。
The
管理情報操作受付部228は、アプリケーション210から管理情報の登録指示又は削除指示などを受けると、その指示を管理情報登録部222へ渡す。又、管理情報操作受付部228は、ノード102の起動時に、自動的に管理情報426の登録指示を管理情報登録部222へ渡してもよい。分散システム1に新たに参加したノード102の管理情報426を、自動的に管理装置103に登録するためである。
When the management information
管理情報登録部222は、管理装置103に対して管理情報の登録又は削除などを要求する。例えば、管理情報登録部222は、管理情報操作受付部228から登録指示を受けた場合、プロパティ情報410及び管理情報を含む管理情報の登録要求メッセージを生成し、メッセージ送信部226に対してその管理情報の登録要求メッセージを管理装置103へ送信するよう指示する。そして、管理情報登録部222は、管理情報の登録応答メッセージを受信したメッセージ受信部227から、その送信した管理情報に対応する管理情報IDを受け取る。管理情報IDは、管理装置103内の管理情報を識別するための情報である。例えば、管理情報登録部222は、管理情報操作受付部228から削除指示を受けた場合、管理情報IDを含む管理情報の削除要求メッセージを生成し、メッセージ送信部226に対してその管理情報の削除要求メッセージを管理装置103へ送信するよう指示する。
The management
コマンド受付部221は、アプリケーション210とアクセスミドルウェア220とを結ぶインタフェースの役割を果たす。例えば、コマンド受付部221は、アプリケーション210からデータの取得コマンドを受信し、その受信した取得コマンドの中から必要な情報を抽出し、データ取得要求部224へ渡す。コマンド受付部221は、データ取得要求部224からデータの取得コマンド結果を受け、その受けた取得コマンド結果をアプリケーション210へ渡す。
The
データ取得要求部224は、データ取得に関する処理を行う。データ取得要求部224は、コマンド受付部221から、取得対象のデータIDを含む取得コマンドを受け取る。そして、データ取得要求部224は、管理情報取得部223に対して、データIDに関連する管理情報の取得を要求する。そして、データ取得要求部224は、管理情報に含まれるデータ取得方法及びデータ位置に基づき、データの取得方法を決定する。
The data
例えば、データ取得方法が「Req/Rep通信」の場合、データ取得要求部224は、データ位置などの情報をメッセージ送信部226へ渡し、メッセージ送信部226に対してデータの取得要求メッセージをデータ位置の示す他ノード102へ送信するよう指示する。そして、メッセージ受信部226が他ノード102からデータの取得応答メッセージを受信した場合、データ取得要求部224は、メッセージ受信部227からデータの取得応答メッセージに含まれるデータ及び実行結果などを受け取る。
For example, when the data acquisition method is “Req / Rep communication”, the data
例えば、データ取得方法が「共有メモリ参照」の場合、データ取得要求部224は、データ位置の示す共有メモリのメモリアドレスから、データ及び実行結果などを取得する。
For example, when the data acquisition method is “reference shared memory”, the data
例えば、データ取得方法が「Pub/Sub通信」の場合、データ取得要求部224は、メッセージ受信部227に対して、データ位置の示すトランザクションIDを有するPub/Subメッセージの受信を監視するよう指示する。メッセージ受信部227は、そのトランザクションIDを有するメッセージを受信した場合、そのメッセージに含まれるデータ及びその実行結果などをデータ取得要求部224へ渡す。データ取得要求部224は、その取得したデータなどを、コマンド受付部221に渡す。
For example, when the data acquisition method is “Pub / Sub communication”, the data
管理情報取得部223は、管理装置103から管理情報を取得する。管理情報取得部223は、メッセージ送信部226に対して、データ取得要求部224から受け取ったデータIDとノード102のバージョンとを渡し、管理情報の取得要求メッセージの送信を指示する。そして、管理情報取得部223は、メッセージ受信部227から、管理情報の取得応答メッセージ713に含まれる管理情報を受け取る。そして、管理情報取得部223は、その管理情報を、データ取得要求部224に渡す。管理情報取得部223は、その管理情報426を、キャッシュテーブル252に格納してもよい。
The management
なお、管理情報取得部223は、データIDに対応する管理情報がキャッシュテーブル252に存在する場合、キャッシュテーブル252からその管理情報を取得してよい。つまり、この場合、管理情報取得部223は、通信ネットワーク101を通じて管理装置103から管理情報を取得する必要は無い。
Note that the management
データ取得応答部225は、自ノード102が、他ノードからデータの取得要求メッセージを受信した場合の応答に関する処理を行う。データ取得応答部225は、メッセージ受信部227からデータ位置を受け取ると、そのデータ位置に基づき、内部メモリ103からデータを取得する。そして、データ取得応答部225は、メッセージ送信部226に対して、そのデータを含むデータの取得応答メッセージを、データの取得要求メッセージの送信元(他ノード)へ返信するよう指示する。
The data
図4は、管理装置103の構成例を示す。
FIG. 4 shows a configuration example of the
管理装置103は、ハードウェア260を備える。ハードウェア260は、記憶部270と、処理部261と、通信I/F262とを備える。記憶部270、処理部261及び通信I/F262については、図2に示したノード102の記憶部250、処理部241及び通信I/F242と同様であるので、説明を省略する。管理装置103のハードウェア260では、OS231と、管理アプリケーション310と、が実行されてよい。
The
図5は、管理アプリケーション310の機能構成の例を示す。
FIG. 5 shows an example of the functional configuration of the
記憶部270には、リンクテーブル341と、複数の管理情報342とが格納される。管理情報342は、各ノード102から送信されたものである。管理情報342の詳細については後述する(図7参照)。リンクテーブル341は、管理装置103の管理する管理情報342にアクセスするために必要な情報を有する。リンクテーブル341の詳細については後述する(図8参照)。
The
管理アプリケーション310は、機能として、登録応答部311と、取得応答部312と、メッセージ送信部226と、メッセージ受信部314とを有する。
The
メッセージ受信部314は、受信したメッセージを解析し、そのメッセージに含まれるメッセージ種別などを抽出する。そして、メッセージ受信部314は、そのメッセージ種別に基づき、各部311、312へ必要な情報に渡す。
The
登録応答部311は、ノード102から受信したプロパティ情報および管理情報の登録及び削除などを行う。登録応答部311は、メッセージ受信部314からプロパティ情報及び管理情報を受け取ると、それらを記憶部270に格納する。また、登録応答部311は、その格納された管理情報342にアクセスできるようにリンクテーブル341を更新する。そして、登録応答部311は、その格納された管理情報342に対応する管理情報IDを発行し、管理情報の送信元のノード102に対して、その管理情報IDを含む登録応答メッセージ512を送信する。
The
登録応答部311は、メッセージ受信部314から、管理情報の削除要求メッセージから抽出された管理情報IDを受け取る。そして、登録応答部311は、リンクテーブル341からその管理情報IDを有するリンク情報(レコ−ド)を削除すると共に、そのリンク情報(レコード)のリンク先の管理情報342を削除する。そして、登録応答部311は、削除要求メッセージの送信元のノード102に対して、管理情報の削除応答メッセージを返す。
The
取得応答部312は、管理情報の取得要求メッセージに対応する管理情報の取得応答メッセージを、その取得要求メッセージの送信元のノード102に返す。例えば、取得応答部312は、メッセージ受信部314から、管理情報の取得要求メッセージ712から抽出されたデータID及びバージョンを受け取ると、リンクテーブル341から、データID及びバージョンに対応するレコードを抽出する。そして、取得応答部312は、その抽出したレコードのリンク先から管理情報を取得する。そして、取得応答部312は、メッセージ送信部226に対して、その取得した管理情報を含む管理情報の取得応答メッセージを、取得要求メッセージの送信元のノード102へ返すよう指示する。
The
図6は、プロパティ情報410の構成例を示す。
FIG. 6 shows a configuration example of the
プロパティ情報410は、管理情報テーブル342(図7参照)の付加情報の一種である。1つの管理情報テーブル342には、1つのプロパティ情報410が対応付けられてよい。プロパティ情報410は、管理情報テーブル342を生成したノード102に関する情報を含む。プロパティ情報410は、ノード名411と、バージョン412と、互換バージョン413とを情報として有してよい。
The
ノード名411は、プロパティ情報410が対応付けられている管理情報テーブル342を生成したノード102の名称を表す。バージョン412は、当該管理情報テーブル342を生成したときのノード102のバージョンを表す。互換バージョン413は、当該管理情報テーブル342を生成したときのノード102のバージョン412に対して下位互換が可能なもっとも古いバージョンを表す。
The
図7は、管理情報テーブル342の構成例を示す。 FIG. 7 shows a configuration example of the management information table 342.
管理情報テーブル342は、1又は2以上の管理情報をレコードとして有する。管理情報テーブル342は、ノード102において管理されている各データにアクセスするために必要な管理情報を有する。各ノード102の管理情報テーブル342は、管理装置103に集約されてよい。管理情報テーブル342は、フィールド値として、データID421と、データ取得方法422と、データ位置423と、データ型424と、サイズ425とを有してよい。
The management information table 342 has one or more management information as a record. The management information table 342 has management information necessary for accessing each data managed in the
データID421は、データを識別するための情報(例えば、ファイル名など)である。ノード102内において、1つのデータには1つのデータIDが対応付けられる。データ取得方法422は、データID421に対応するデータを取得するための方法を表す。データ位置423は、データ取得方法422の示す方法によってデータID421に対応するデータを取得する際に必要となる情報(パラメータ)を表す。データ型424は、データID421に対応するデータの型を表す。サイズ425は、データID421に対応するデータのサイズを表す。
The
例えば、図7においてレコード420aの管理情報は、データID「Temp」(421)に対応するデータを取得するためには、「Req/Rep通信」(422)によってIPアドレス「192.168.0.15」(423)のノード102にアクセスし、そのノード102の有するメモリのメモリアドレス「0x0001」(423)から、データ型「double」(424)で「4byte」(425)のデータを取得する必要があることを表す。
For example, in FIG. 7, in order to obtain data corresponding to the data ID “Temp” (421), the management information of the
レコード420cの管理情報は、データID「Press」(421)に対応するデータを取得するためには、「共有メモリ参照」によって、共有メモリID「8」に対応する共有メモリのメモリアドレス「0x0010」から、データ型「double」で「4byte」のデータを取得する必要があることを表す。
In order to obtain data corresponding to the data ID “Press” (421), the management information of the
レコード420dの管理情報は、データID「Alert」(421)に対応するデータを取得するためには、「Pub/Sub通信」によって、トランザクションID「125」に対応するPub/Subメッセージの受信を監視し、そのPub/Subメッセージを受信した場合、そのPub/Subメッセージからデータ型「char」で「60byte」のデータを抽出する必要があることを表す。
In order to acquire data corresponding to the data ID “Alert” (421), the management information of the
図8は、リンクテーブル341の構成例を示す。 FIG. 8 shows a configuration example of the link table 341.
リンクテーブル341は、それぞれの管理情報にアクセスするために必要なリンク情報をレコードとして有する。リンクテーブル341は、管理装置103が管理する。 The link table 341 has link information necessary for accessing each management information as a record. The management table 103 manages the link table 341.
リンクテーブル341は、フィールド値として、管理情報ID1706と、ノード名411と、バージョン412と、互換バージョン413と、リンク先431とを有する。
The link table 341 includes a
管理情報ID1706は、管理情報を識別するための情報である。1つの管理情報に1つの管理情報IDが付与されてよい。管理アプリケーション310は、管理情報を受信して管理する際に、その管理情報に対応する管理情報ID1706を発行してよい。ノード名411、バージョン412、及び互換バージョン413は、図6のプロパティ情報410で説明したとおりである。
The
リンク先431は、管理情報ID1706に対応する管理情報が格納されている位置を表す。リンク先431は、記憶部250における管理情報の格納先のメモリアドレスであってもよい。管理アプリケーション310は、リンクテーブル341を参照することにより、所望の管理情報にアクセスすることができる。
The
図9は、キャッシュテーブル252の構成例を示す。 FIG. 9 shows a configuration example of the cache table 252.
キャッシュテーブル252には、ノード102のアクセスミドルウェア220が管理装置103から取得した管理情報が一時的に保持される。
The cache table 252 temporarily holds management information acquired from the
アクセスミドルウェア220は、データID421に対応する管理情報を管理装置103から取得する際、キャッシュテーブル252に取得対象の管理情報が格納されているならば、キャッシュテーブル251からその管理情報を取得する。これにより、アクセスミドルウェア220は、管理装置103から通信ネットワーク101を通じて管理情報を取得する場合と比較して、短時間で管理情報を取得することができる。
When acquiring the management information corresponding to the
キャッシュテーブル252は、フィールド値として、登録順441と、データID421と、データ取得方法422と、データ位置423と、データ型424と、サイズ425とを有する。
The cache table 252 has a
登録順441は、当該管理情報がキャッシュテーブル252に登録された順番を表す。例えば、登録順441が小さいほど、古い管理情報としてよい。また、アクセスされた管理情報の登録順441は、新しいものに更新されてもよい。
The
データID421、データ取得方法422、データ位置423、データ型424及びサイズ425は、図7の管理情報テーブル342で説明したとおりである。
The
キャッシュテーブル252に格納可能な管理情報の数には、上限が設定されてもよい。上限に達している状態で、キャッシュテーブル252に新たに管理情報を格納する場合は、登録順441の最も古い管理情報から削除されてよい。
An upper limit may be set for the number of management information that can be stored in the cache table 252. When new management information is stored in the cache table 252 in a state where the upper limit is reached, the oldest management information in the
図10は、更新情報テーブル254の構成例を示す。 FIG. 10 shows a configuration example of the update information table 254.
更新情報テーブル254は、共有メモリ253に格納されている各データが更新されているか否かを判定するために必要な情報を有する。更新情報テーブル254は、フィールド値として、データ位置1712と、サイズ425と、タイムスタンプ432とを有する。
The update information table 254 includes information necessary for determining whether each data stored in the shared
データ位置1712は、データの格納されている位置を表す。例えば、データ位置1712は、データの格納されている共有メモリのIDと、その共有メモリIDの示す共有メモリ上のデータが格納されているメモリアドレスと、によって表される。サイズ425は、データ位置1712に格納されているデータのサイズ(例えば、byte数)を表す。タイムスタンプ432は、データ位置1712に格納されているデータが生成又は更新された時刻を表す。
The
図11は、取得コマンド711の構成例を示す。
FIG. 11 shows a configuration example of the
取得コマンド711は、アプリケーション210がデータを取得する際に使用するコマンドである。アプリケーション210は、データを取得する際、アクセスミドルウェア220に対して取得コマンド711を送信する。アクセスミドルウェア220は、取得コマンド711の内容を、API(Application Programming Interface)としてアプリケーション210に提供してもよい。
The
取得コマンド711は、パラメータとして、1又は2以上のデータID421と、エラー処理方法1710とを有してよい。
The
データID421は、取得対象のデータに対応するデータIDである。データID421は、ファイル名又はURI(Uniform Resource Identifier)などであってもよい。1つの取得コマンド711で複数のデータを取得する場合は、取得コマンド711に複数のデータID421を含めてよい。
The
エラー処理方法1710は、データID421に対応するデータの取得処理においてエラーが発生した場合の対応方法を表す。エラー処理方法1710は、エラーが発生した場合にどのような処理を行うかの判断に用いられる。
The
エラー処理方法1710は、例えば、再送フラグ752と、一時取得待ちフラグ753と、取得待ちフラグ754と、データ取得フラグ755との4ビットで構成されてもよい。
The
再送フラグ752は、Req/Rep通信によるデータ取得処理においてエラーが発生した場合に、データの取得要求メッセージを再送すべきか否かを表す。例えば、再送フラグ752「1」は、データの取得要求メッセージを再送すべきことを表す。再送フラグ752「0」は、データの取得要求メッセージの再送が不要であることを表す。再送回数は、別途、アプリケーション210又はアクセスミドルウェア220等で設定されてよい。
The
一時取得待ちフラグ753は、共有メモリ参照又はPub/Sub通信によるデータ取得処理においてエラーが発生した場合に、共有メモリ253における取得対象のデータの更新を所定時間待つべきか否か、又はPub/Subメッセージの受信を所定時間待つべきか否かを表す。例えば、一時取得待ちフラグ753「1」は、共有メモリ253における取得対象のデータの更新を所定時間待機すべき、又はPub/Subメッセージの受信を所定期間待機すべきことを表す。一時取得待ちフラグ753「0」は、共有メモリ253における取得対象のデータの更新を待機する必要が無いこと、又はPub/Subメッセージの受信を待機する必要が無いことを表す。待機すべき所定期間は、別途、アプリケーション210又はアクセスミドルウェア220等で設定されてよい。
The temporary
取得待ちフラグ754は、共有メモリ参照又はPub/Sub通信によるデータ取得処理においてエラーが発生した場合に、共有メモリ253における取得対象のデータが更新されるまで待機すべきか否か、又はPub/Subメッセージを受信するまで待機すべきか否かを表す。例えば、取得待ちフラグ753「1」は、共有メモリ253における取得対象のデータが更新されるまで待機すべきこと、又はPub/Subメッセージを受信するまで待機すべきことを表す。取得待ちフラグ753「0」は、共有メモリ253における取得対象のデータが更新されるまで待機する必要は無いこと、又はPub/Subメッセージを受信するまで待機する必要が無いことを表す。取得待ちフラグ754は、一時取得待ちフラグ753と異なり、待機期間に期限を設けなくて良い。
The
データ取得フラグ755は、共有メモリ参照によるデータ取得処理においてデータが未更新である旨のエラーが発生した場合に、その未更新のデータを取得すべきか否かを表す。例えば、データ取得フラグ755「1」は、そのデータが未更新であってもデータを取得すべきことを表す。データ取得フラグ755「0」は、そのデータが未更新であった場合はデータを取得すべきでないことを表す。
The
アクセスミドルウェア220は、エラー処理方法の内容と、取得コマンド結果に含まれる実行結果とに基づき、適切なエラー処理を実行することができる。例えば、エラー処理方法の再送フラグ752が「1」であって、Req/Rep通信において接続エラーが発生した場合、アクセスミドルウェア220は、再接続を試みてよい。
The
図12は、取得コマンド結果716の構成例を示す。
FIG. 12 shows a configuration example of the
取得コマンド結果716は、取得コマンド711の実行結果として返されるデータである。アプリケーション210は、アクセスミドルウェア220に対して取得コマンド711を送信し、その応答として取得コマンド結果716を受信する。アクセスミドルウェア220は、取得コマンド711の内容をAPIとして提供する場合は、APIの戻り値としてこの取得コマンド結果716の内容を提供してもよい。
The
取得コマンド結果716は、パラメータとして、データID421、実行結果1705及びデータ1711の1又は2以上のセットを有する。すなわち、取得コマンド結果716に含まれるセットの数は、取得コマンド711に含まれるデータID421の数に対応する。
The
データ1711は、そのセットに含まれるデータID421に対応するデータである。このデータ1711は、アクセスミドルウェア220が取得コマンド711に基づいて取得したものである。
実行結果1705は、そのセットに含まれるデータ1711の取得処理の結果を表す。実行結果1705は、アクセスミドルウェア220がデータの取得処理を実行した結果を表してよい。実行結果1706には、結果コード750と、取得時刻751とが含まれてよい。
The
結果コード750は、データの取得処理を実行した結果を識別するための情報(コード)である。結果コード750の具体的な例については後述する(図13参照)。取得時刻751は、データ1711の取得が完了した時刻を表す。
The
図13は、結果コード750の例を示す。
FIG. 13 shows an example of the
結果コード750とその意味とが、例えば以下の様に対応付けられてよい。
結果コード「0」は、「データ取得成功」を意味する。
結果コード「1」は、「Req/Rep通信に係る接続エラー」を意味する。
結果コード「2」は、「Req/Rep通信に係るタイムアウト」を意味する。
結果コード「3」は、「共有メモリ参照に係る未更新エラー」を意味する。
結果コード「4」は、「Pub/Sub通信に係るタイムアウト」を意味する。
結果コード「5」は、「データIDエラー」を意味する。
結果コード「6」は、「管理情報の取得エラー」を意味する。
結果コード「7」は、「管理情報エラー」を意味する。
The
The result code “0” means “data acquisition success”.
The result code “1” means “connection error related to Req / Rep communication”.
The result code “2” means “timeout related to Req / Rep communication”.
The result code “3” means “unupdated error related to shared memory reference”.
The result code “4” means “timeout related to Pub / Sub communication”.
The result code “5” means “data ID error”.
The result code “6” means “management information acquisition error”.
The result code “7” means “management information error”.
図14は、クエリコマンド740の構成例を示す。
FIG. 14 shows a configuration example of the
クエリコマンド740は、アクセスミドルウェア220がデータの取得処理を行う際に使用される。アクセスミドルウェア220は、1つのクエリコマンド740で1つのデータを取得してよい。クエリコマンド740は、パラメータとして、データ取得方法422と、データ位置342と、サイズ425と、回数制限742と、期限743と、エラー処理方法1710とを有してよい。データ取得方法422、データ位置342及びサイズ425は、図7において説明したとおりである。
The
回数制限742は、再送回数の上限を表す。期限743は、データの更新の待機時間の上限を表す。エラー処理方法1710は、図11において説明したとおりである。回数制限742及び期限743は、所定の設定値であってもよいし、クエリコマンド毎に指定されてもよい。
The
図15は、クエリコマンド結果741の構成例を示す。
FIG. 15 shows a configuration example of the
クエリコマンド結果741は、クエリコマンド740の実行結果として返されるデータである。1つのクエリコマンド740に対して、1つのクエリコマンド結果741が返されるとしてよい。クエリコマンド結果741は、パラメータとして、データ取得方法422と、データ位置342と、サイズ425と、回数制限742と、期限743と、エラー処理方法1710と、データ1711と、実行結果1705とを有してよい。データ取得方法422、データ位置342及びサイズ425は、図7において説明したとおりである。回数制限742及び期限743は、図14において説明したとおりである。エラー処理方法1710は、図11において説明したとおりである。
The
データ1711は、クエリコマンド740に対応するデータである。実行結果1705は、クエリコマンド740を実行した結果を表す。
図16は、管理情報の登録要求メッセージ511の構成例を示す。
FIG. 16 shows a configuration example of the management information
管理情報の登録要求メッセージ511は、ノード102が管理装置103に対して、管理情報の登録を要求する際に送信するメッセージである。管理情報の登録要求メッセージ511は、フィールド値として、ヘッダ1701と、メッセージ種別1703と、プロパティ情報513と、管理情報426とを有してよい。
The management information
ヘッダ1701は、通信ネットワーク101を通じて送信先へメッセージを送信するために必要な情報である。例えば、ヘッダ1701は、送信元及び送信先(宛先)のIPアドレス及びポート番号などを有してよい。
The
メッセージ種別1703は、このメッセージの種別を表す。例えば、メッセージ種別1703は、管理情報の登録要求メッセージ511、管理情報の登録応答メッセージ512。管理情報の取得要求メッセージ712、管理情報の応答要求メッセージ713、データの取得要求メッセージ714、データの取得応答メッセージ715、管理情報の削除要求メッセージ1611、管理情報の削除応答メッセージ1612などを区別できるように定義されてよい。
A
プロパティ情報513は、図8において説明したとおりである。管理情報426は、図7において説明したとおりである。管理情報の登録要求メッセージ511に含まれるプロパティ情報513と管理情報426とが、管理装置103に登録されてよい。管理情報426は複数であってもよい。
The
図17は、管理情報の登録応答メッセージ512の構成例を示す。
FIG. 17 shows a configuration example of the management information
管理情報の登録応答メッセージ512は、管理情報の登録要求メッセージ713の応答として、管理装置103からノード102に返されるメッセージである。管理情報の登録応答メッセージ512は、ヘッダ1701と、メッセージ種別1703と、登録結果514と、管理情報ID1706とを有する。ヘッダ1701及びメッセージ種別1703は、図16で説明したとおりである。
The management information
登録結果514は、管理装置103は、管理情報の登録要求メッセージ511に含まれていた管理情報を登録する処理を実行した結果(例えば、成功又は失敗など)を表す情報である。
The
管理情報ID1706は、管理装置103が、管理情報の登録要求メッセージ511に含まれていた管理情報426に付与した管理情報IDを表す。管理情報ID1706は複数であってもよい。
The
図18は、管理情報の取得要求メッセージ712の構成例を示す。
FIG. 18 shows a configuration example of the management information
管理情報の取得要求メッセージ712は、ノード102が管理装置103に対して、管理情報を要求する際に送信するメッセージである。管理情報の取得要求メッセージ712は、ヘッダ1701と、メッセージ種別1703と、1又は2以上のデータID421と、バージョン412とを有する。ヘッダ1701及びメッセージ種別1703は、図16で説明したとおりである。
The management information
データID421は、取得対象のデータのIDを表す。つまり、ノード102のアクセスミドルウェア220は、管理装置103に対して、管理情報の取得要求メッセージ712に含まれるデータID421に関する管理情報を要求する。複数の管理情報を取得する場合、アクセスミドルウェア220は、管理情報の取得要求メッセージ712に複数のデータID421を含めて良い。
The
バージョン412は、管理情報の取得要求メッセージ712を送信するノード102のバージョンを表す。すなわち、ノード102は、管理装置103に対して、当該バージョン412と互換性を有するバージョンの管理情報を要求する。
The
図19は、管理情報の取得応答メッセージ713の構成例を示す。
FIG. 19 shows a configuration example of the management information
管理情報の取得応答メッセージ713は、管理情報の取得要求メッセージ712の応答として、管理装置103からノード102に返されるメッセージである。管理情報の取得応答メッセージ713は、フィールド値として、ヘッダ1701及びメッセージ種別1703に続いて、実行結果1705、データID421及び管理情報426の1又は2以上のセットを有してよい。
The management information
実行結果1705は、そのセットに含まれる管理情報426の取得処理の結果を表す。データID421は、そのセットに含まれる管理情報426に関するデータのIDを表す。すなわち、管理情報の取得要求メッセージ712に含まれるデータID421の数と、管理情報の取得応答メッセージ713に含まれるセットの数(データID421の数)とは一致する。
The
図20は、データの取得要求メッセージ714の構成例を示す。 FIG. 20 shows a configuration example of the data acquisition request message 714.
データの取得要求メッセージ714は、ノード102が他ノードに対して、データを要求する際に送信するメッセージである。
The data acquisition request message 714 is a message transmitted when the
データの取得要求メッセージ714は、フィールド値として、ヘッダ1701及びメッセージ種別1703に続いて、メモリアドレス1712及びサイズ425の1又は2以上のセットを有し、その後にエラー処理方法1710を有してよい。ヘッダ1701及びメッセージ種別1703は、図16で説明したとおりである。
The data acquisition request message 714 may include, as field values, a
メモリアドレス1712は、取得対象のデータの格納先のメモリアドレスを表す。サイズ425は、取得対象のデータのサイズを表す。複数のデータを要求する場合は、データの取得要求メッセージ714に複数のメモリアドレス1712及びサイズ425のセットを含めてよい。エラー処理方法1710は、図11で説明したとおりである。
The
図21は、データの取得応答メッセージ715の構成例を示す。
FIG. 21 shows a configuration example of the data
データの取得応答メッセージ715は、データの取得要求メッセージ714の応答として、他ノードからノード102に返されるメッセージである。データの取得応答メッセージ715は、フィールド値として、ヘッダ1701及びメッセージ種別1703に続いて、実行結果1705、メモリアドレス1712、サイズ425及びデータ1711の1又は2以上のセットを有してよい。ヘッダ1701及びメッセージ種別1703は、図16で説明したとおりである。
The data
実行結果1705は、そのセットに含まれる他ノードにおけるデータの取得処理の結果を表す。メモリアドレス1712は、そのセットに含まれるデータ1711が格納されていたメモリアドレスを表す。サイズ425は、そのセットに含まれるデータ1711のサイズを表す。データ1711は、データの取得要求メッセージ714で要求されたデータである。すなわち、データの取得要求メッセージ714に含まれるセットの数と、データの取得応答メッセージ715に含まれるセットの数とは一致する。
The
図22は、Pub/Subメッセージ1520の構成例を示す。
FIG. 22 shows a configuration example of the Pub /
Pub/Subメッセージ1520は、或るノード102が複数の他ノードに対して同報通知するメッセージである。Pub/Subメッセージ1520は、フィールド値として、ヘッダ1701と、トランザクションID1521と、サイズ425と、データ1711とを有してよい。ヘッダ1701は、図16で説明したとおりである。データ1711は、Pub/Subメッセージ1520で運ばれるデータであり、サイズ425は、そのデータ1711のサイズを表す。
The Pub /
トランザクションID1521は、Pub/Subメッセージ1520を識別するための情報である、同報通知されたPub/Subメッセージ1520を受信した他ノードは、そのメッセージ1520に含まれるトランザクションID1521が、自分が受信待機(購読)しているトランザクションIDと一致する場合、そのPub/Subメッセージ1520を取り込む。
The
図23は、管理情報の削除要求メッセージ1611の構成例を示す。
FIG. 23 shows a configuration example of the management information
管理情報の削除要求メッセージ1611は、ノード102が管理装置103に対して、管理情報の削除を要求する際に送信するメッセージである。管理情報の削除要求メッセージ1611は、ヘッダ1701と、メッセージ種別1703と、管理情報ID1706とを有してよい。ヘッダ1701及びメッセージ種別1703は、図16で説明したとおりである。
The management information
管理情報ID1706は、削除対象の管理情報のIDを表す。すなわち、管理装置103は、管理情報の削除要求メッセージ1612を受信すると、この管理情報ID1706に対応する管理情報を削除する処理を行う。
The
図24は、管理情報の削除応答メッセージ1612の構成例を示す。
FIG. 24 shows a configuration example of the management information
管理情報の削除応答メッセージ1612は、管理装置103がノード102に対して、管理情報の削除要求メッセージ1611の応答として返すメッセージである。管理情報の削除応答メッセージ1612は、ヘッダ1701と、メッセージ種別1703と、削除結果1613とを有してよい。ヘッダ1701及びメッセージ種別1703は、図16で説明したとおりである。削除結果1613は、管理装置103における管理情報の削除処理の結果(例えば成功又は失敗など)を表す。
The management information
図25は、ノード102bが管理装置103に管理情報の登録を要求する処理の一例を表すシーケンスチャートである。
FIG. 25 is a sequence chart illustrating an example of a process in which the
ノード102bのアクセスミドルウェア220は、自ノード102bが分散システム1に参加するとき、以下の処理を開始する。例えば、ノード102bは、通信ネットワーク101に接続して管理装置103と通信可能となったこと契機として、以下の処理を開始する。
When the
ノード102bの管理情報取得部223は、ノード102bに関する管理情報及びプロパティ情報を準備する(S501)。そして、ノード102bは、メッセージ送信部226に対して、管理情報の登録要求メッセージを管理装置103へ送信するよう指示する(S501)。
The management
ノード102bのメッセージ送信部226は、ノード102bに関する管理情報426及びプロパティ情報513を含む管理情報の登録要求メッセージ511を生成し、その管理情報の登録要求メッセージ511を管理装置103へ送信する(S502)。
The
管理装置103の管理アプリケーション310は、ノード102bから管理情報の登録要求メッセージ511を受信すると、その登録要求メッセージ511に含まれる管理情報426及びプロパティ情報513について、管理情報の登録処理を実行する(S600)。この処理の詳細については後述する。
Upon receiving the management information
ノード102bの管理情報取得部223は、管理装置103から管理情報の登録応答メッセージ512を受信する(S504)。そして、管理情報取得部223は、その管理情報の登録応答メッセージ512に含まれる登録結果514に基づいて、登録処理の成否を判定する。ここで、登録結果514が「成功」である場合、管理情報取得部223は、管理情報の登録応答メッセージ512に含まれる管理情報ID1706を記憶する。登録結果514が「失敗」である場合、管理情報取得部223は、アプリケーション210へ「失敗」を通知する。
The management
各ノード102が上述の処理を行うことで、分散システム1の各ノード102の管理情報が、管理装置103に集められる。
The management information of each
図26は、管理装置103における管理情報の登録処理の例を表すフローチャートである。この処理は、図22のS600の管理装置103側の処理に該当する。
FIG. 26 is a flowchart illustrating an example of management information registration processing in the
管理装置103の管理アプリケーション310は、ノード102bから管理情報の登録要求メッセージ511を受信すると(S601)、その登録要求メッセージ511から管理情報426及びプロパティ情報513を抽出する(S602)。
When receiving the management information
管理アプリケーション310は、記憶部270の空き容量が不足しているか否かを判定する(S603)。記憶部270に管理情報などを格納する必要があるためである。
The
空き容量が不足していない場合(S603:NO)、管理アプリケーション310は、ノード102bから受信したプロパティ情報513と重複したものがリンクテーブル341に存在するか否かを判定する(S604)。すなわち、その受信したプロパティ情報513に含まれるノード名411及びバージョン412と重複するリンク情報(レコード)が、リンクテーブル341に存在するか否かを判定する。
If there is no shortage of free space (S603: NO), the
重複したものがリンクテーブル341に存在しない場合(S604:NO)、管理アプリケーション310は、管理情報426を管理情報テーブル342に登録する(S605)。そして、管理アプリケーション310は、この登録した管理情報に対応する管理情報IDを発行する。
If there is no duplicate in the link table 341 (S604: NO), the
そして、管理アプリケーション310は、この管理情報IDと、プロパティ情報513に含まれるノード名411、バージョン412及び互換バージョン413と、管理情報426の登録先の管理情報テーブル342を示すリンク先とを有するリンク情報を生成し、リンクテーブル341に登録する(S606)。また、管理アプリケーション310は、「成功」の登録結果514と、管理情報ID1706とを含む管理情報の登録応答メッセージ512を生成する。そして、管理アプリケーション310は、S610の処理へ進む。
Then, the
空き容量が不足している場合(S603:YES)、又は重複したものがリンクテーブル341に存在する場合(S604:YES)、管理アプリケーション310は「失敗」の登録結果514を含む管理情報の登録応答メッセージ512を生成する(S608)。そして、管理アプリケーション310は、S610の処理へ進む。
When the free space is insufficient (S603: YES), or when there is a duplicate in the link table 341 (S604: YES), the
S610として管理アプリケーション310は、上述で生成した管理情報の登録応答メッセージ512を、ノード102bへ送信する(S610)。
In S610, the
さらに、管理アプリケーション310は、その登録した管理情報に係るプロパティ情報(ノード名及びバージョン等)を、通信ネットワーク101上の各ノード102へ同報通知してもよい。この同報通知を受信した各ノード102は、この同報通知と同じノード名であり、且つ、同報通知されたものよりも古いバージョンの管理情報を、キャッシュテーブル251から削除してもよい(S611)。
Further, the
以上の処理により、管理装置103は、管理情報の登録要求メッセージ511に対する応答メッセージ512を、ノード102bに返すことができる。
Through the above processing, the
図27は、ノード102aがノード102bからデータを取得する処理の例を表すシーケンスチャートである。
FIG. 27 is a sequence chart illustrating an example of processing in which the
ノード102aのアプリケーション210は、取得対象のデータID421と、所望のエラー処理方法1710とを含む取得コマンド711を生成する。そして、アプリケーション210は、その取得コマンド711をアクセスミドルウェア220aへ渡す(S701)。
The
ノード102aのアクセスミドルウェア220aは、この取得コマンド711に基づき、管理情報の取得処理を実行する(S800)。この処理の詳細については後述する。
The access middleware 220a of the
アクセスミドルウェア220aは、管理情報の取得処理によって取得した管理情報に基づき、クエリコマンド740を生成する(S720)。そして、アクセスミドルウェア220aは、このクエリコマンド740に基づき、データ取得処理を実行する(S700)。この処理の詳細については後述する。
The access middleware 220a generates a
アクセスミドルウェア220aは、データ取得処理によって得られたクエリコマンド結果741に基づき、取得コマンド結果716を生成する(S730)。そして、アクセスミドルウェア220aは、この取得コマンド結果716を、アプリケーション210へ返す(S731)。
The access middleware 220a generates an
このとき、アクセスミドルウェア220aは、データ取得処理の対象のクエリコマンド740がまだ残っているか否かを判定する(S732)。この判定が肯定的な場合(S732:YES)、アクセスミドルウェア220aは、その残っているクエリコマンド740について、データ取得処理(S700)を実行する。この判定が否定的な場合(S732:NO)、アクセスミドルウェア220aは、本処理を終了する。
At this time, the access middleware 220a determines whether or not the
以上の処理により、ノード102aのアプリケーション210は、ノード102bからデータ1711を取得することができる。なおアプリケーション210は、取得コマンド711に対する取得コマンド結果716を受け取る前に、次の取得コマンド711をアクセスミドルウェア220へ渡してもよい。すなわち、アクセスミドルウェア220は、複数の取得コマンド711を並列に処理してもよい。
Through the above processing, the
図28は、アクセスミドルウェア220aにおける管理情報の取得処理の例を表すフローチャートである。この処理は、図27のS800に該当する。 FIG. 28 is a flowchart illustrating an example of management information acquisition processing in the access middleware 220a. This process corresponds to S800 in FIG.
ノード102aのアクセスミドルウェア220aは、アプリケーション210から渡された取得コマンド711から、データID421を抽出する(S801)。アクセスミドルウェア220aは、キャッシュテーブル252から、データID421に対応する管理情報の取得を試みる(S802)。そして、アクセスミドルウェア220aは、キャッシュテーブル252から取得できなかった管理情報が存在するか否かを判定する(S803)。
The access middleware 220a of the
キャッシュテーブル252から取得できなかった管理情報が存在しない場合(S803:NO)、アクセスミドルウェア220aは、本処理を終了する。 If there is no management information that could not be acquired from the cache table 252 (S803: NO), the access middleware 220a ends this process.
キャッシュテーブル252から取得できなかった管理情報が存在する場合(S803:YES)、アクセスミドルウェア220aは、その取得できなかったデータID421に関連する管理情報の取得要求メッセージ712を生成する。そして、アクセスミドルウェア220aは、その管理情報の取得要求メッセージ712を、管理装置103へ送信する(S804)。そして、アクセスミドルウェア220aは、タイムアウトが発生するまで、管理情報の取得応答メッセージ713の受信を待機する(S807:NO、S808:NO)。
If there is management information that could not be acquired from the cache table 252 (S803: YES), the access middleware 220a generates an
タイムアウトが発生した場合(S808:YES)、アクセスミドルウェア220aは、結果コード750「6」(管理情報取得エラー)の実行結果1705を含む取得コマンド結果716を生成する。そして、アクセスミドルウェア220aは、その取得コマンド結果716をアプリケーション210に返し(S809)、本処理を終了する。
When a timeout occurs (S808: YES), the access middleware 220a generates an
タイムアウトが発生する前に管理情報の取得応答メッセージ713を受信した場合(S807:YES)、アクセスミドルウェア220aは、その管理情報の取得応答メッセージ713から管理情報426を抽出する(S805)。アクセスミドルウェア220aは、この抽出した管理情報を、キャッシュテーブル251に登録し(S806)、本処理を終了する。
When the management information
以上の処理により、アクセスミドルウェア220aは、データの取得に必要な管理情報を取得することができる。 Through the above processing, the access middleware 220a can acquire management information necessary for data acquisition.
図29は、管理情報の取得要求メッセージ712を受けた管理装置103の処理の例を表すフローチャートである。この処理は、図27のS800に該当する。
FIG. 29 is a flowchart illustrating an example of processing of the
管理アプリケーション310は、ノード102aから管理情報の取得要求メッセージ712を受信すると(S901)、その取得要求メッセージ712からデータID421及びバージョン412を抽出する。
When receiving the management information
管理アプリケーション310は、リンクテーブル341から、その抽出したバージョンと同一または互換性を有するバージョンを有し、且つ、その抽出したデータIDと同一のデータIDを有する管理情報426を検索する(S902)。
The
このような管理情報を発見できた場合(S903:YES)、管理アプリケーション310は、この発見した管理情報と、実行結果の結果コード「0」(成功)とをセットにした情報を一時的に保持し(S904)、S906の処理へ進む。
When such management information can be found (S903: YES), the
このような管理情報を発見できなかった場合(S903:NO)、管理アプリケーション310は、「NULL」の管理情報と、実行結果の結果コード「5」(データIDエラー)とをセットにした情報を一時的に保持し(S905)、S906の処理へ進む。
When such management information could not be found (S903: NO), the
S906において管理アプリケーション310は、ノード102aから受信した全てのデータID421の内、未処理のデータIDが存在するか否かを判定する(S906)。未処理のデータIDが存在する場合(S906:YES)、管理アプリケーション310は、S902に戻り、未処理のデータIDについて上記と同様の検索を行う。
In S906, the
未処理のデータIDが存在しない場合(S906:NO)、管理アプリケーション310は、ノード102aから受信したデータID421と、一時的に保持していた実行結果と、管理情報426とを含む管理情報の取得応答メッセージ713を生成する。そして、管理アプリケーション310は、その管理情報の取得応答メッセージ713を、ノード102aへ返し(S907)、本処理を終了する。
When there is no unprocessed data ID (S906: NO), the
以上の処理により、管理装置103は、管理情報の取得要求メッセージ712に対する応答メッセージ713をノード102aに返すことができる。
Through the above processing, the
図30は、ノード102aにおけるデータ取得処理の例を表すフローチャートである。この処理は、図27のS700の処理に該当する。
FIG. 30 is a flowchart illustrating an example of data acquisition processing in the
ノード102aのアクセスミドルウェア220aは、図27のS720で生成したクエリコマンド740について次の処理を行う。すなわち、アクセスミドルウェア220aは、クエリコマンド740をデータ取得方法422で分類する(S1101)。そして、アクセスミドルウェア220aは、データ取得方法に対応する処理を実行する。このとき、アクセスミドルウェア220aは、複数のクエリコマンド740を並列に処理してよい。
The access middleware 220a of the
アクセスミドルウェア220aは、データ取得方法422が「Req/Rep通信」であるクエリコマンド740について、Req/Rep通信によるデータ取得処理(S1200)を実行する。この処理の詳細については後述する。
The access middleware 220a executes the data acquisition process (S1200) by the Req / Rep communication for the
アクセスミドルウェア220aは、データ取得方法が「共有メモリ参照」であるクエリコマンド740について、共有メモリからのデータ取得処理(S1400)を実行する。この処理の詳細については後述する。
The access middleware 220a executes data acquisition processing (S1400) from the shared memory for the
アクセスミドルウェア220aは、データ取得方法が「Pub/Sub通信」であるクエリコマンド740について、Pub/Sub通信によるデータ取得処理(S1500)を実行する。この処理の詳細については後述する。
The access middleware 220a executes data acquisition processing (S1500) by Pub / Sub communication for the
アクセスミドルウェア220aは、データ取得方法が未知のもの又は未対応のものであるクエリコマンド740について、結果コード「7」(管理情報エラー)の実行結果を生成する(S1107)。
The access middleware 220a generates an execution result of the result code “7” (management information error) for the
上記S1200、S1400、S1500又はS1107の処理を完了したアクセスミドルウェア220aは、それぞれのデータ取得処理の実行結果を参照する(S1102)。 The access middleware 220a that has completed the process of S1200, S1400, S1500, or S1107 refers to the execution result of each data acquisition process (S1102).
アクセスミドルウェア220aは、実行結果にエラーが含まれているか否かを判定する(S1103)。実行結果にエラーが含まれていない場合(S1103:NO)、アクセスミドルウェア220aは、S1108の処理へ進む。 The access middleware 220a determines whether an error is included in the execution result (S1103). If no error is included in the execution result (S1103: NO), the access middleware 220a proceeds to the process of S1108.
実行結果にエラーが含まれている場合(S1103:YES)、アクセスミドルウェア220aは、次のエラー処理を行う。アクセスミドルウェア220aは、実行結果の結果コードと、エラー処理方法1710とを照らし合わせて、データ取得処理の継続が必要な組み合わせが存在するか否かを判断する(S1104)。
When an error is included in the execution result (S1103: YES), the access middleware 220a performs the following error processing. The access middleware 220a compares the result code of the execution result with the
データ取得処理の継続が必要な組み合わせとは、例えば、結果コードが「1」(Req/Rep通信:接続エラー)、且つ、再送フラグ752が「1」の組み合わせの場合である。又は、結果コードが「2」(Req/Rep通信:タイムアウトエラー)、且つ、再送フラグ752が「1」の組み合わせの場合である。又は、結果コードが「3」(共有メモリ参照:未更新エラー)、且つ、一時取得待ちフラグ753若しくは取得待ちフラグ754が「1」の組み合わせの場合である。又は、結果コードが「4」(Pub/Sub通信:タイムアウトエラー)、且つ、一時取得待ちフラグ753若しくは取得待ちフラグ754が「1」の組み合わせの場合である。
The combination that requires continuation of the data acquisition process is, for example, a combination in which the result code is “1” (Req / Rep communication: connection error) and the
次に、アクセスミドルウェア220aは、再送フラグ752が「1」の場合に再送回数が回数制限742を超えていないか、及び、一時取得待ちフラグ753が「1」の場合に待機時間が期限743を超えていないかなどを判断する(S1105)。これらの制限を超えている場合(S1105:NO)、アクセスミドルウェア220aは、S1108の処理へ進む。
Next, when the
これらの制限を超えていない場合(S1105:YES)、アクセスミドルウェア220aは、クエリコマンド740を再生成する(S1106)。このとき、再送回数や待機時間の加算などを行ってよい。ここで再生成されたクエリコマンド740は、図27のS731の残りのクエリコマンド740として追加され、再実行される。
When these limits are not exceeded (S1105: YES), the access middleware 220a regenerates the query command 740 (S1106). At this time, the number of retransmissions and waiting time may be added. The regenerated
S1108としてアクセスミドルウェア220aは、未処理のデータ取得結果が存在するか否かを判定する(S1108)。未処理のデータ取得結果が存在する場合(S1108:YES)、アクセスミドルウェア220aは、その未処理のデータ取得結果について、S1102からの処理を実行する。未処理のデータ取得結果が存在しない場合(S1108:NO)、アクセスミドルウェア220aは、本処理を終了する。 In S1108, the access middleware 220a determines whether there is an unprocessed data acquisition result (S1108). When there is an unprocessed data acquisition result (S1108: YES), the access middleware 220a executes the process from S1102 on the unprocessed data acquisition result. If there is no unprocessed data acquisition result (S1108: NO), the access middleware 220a ends this process.
以上の処理により、ノード102aは、クエリコマンド740に含まれるデータ取得方法422及びエラー処理方法1710に従ってデータを取得することができる。
With the above processing, the
図31は、ノード102aにおけるReq/Rep通信によるデータ取得処理の例を表すフローチャートである。この処理は、図27のS1200のデータの取得要求メッセージ713を送信する側のノード102aの処理に該当する。
FIG. 31 is a flowchart illustrating an example of data acquisition processing by Req / Rep communication in the
ノード102aのアクセスミドルウェア220aは、クエリコマンド740のデータ位置342から、データの取得先である他ノード102bのIPアドレス及びメモリアドレスを抽出する。そして、アクセスミドルウェア220aは、他ノード102bのIPアドレスに接続を試みる(S1201)、
The access middleware 220a of the
接続が成功した場合(S1201:YES)、アクセスミドルウェア220aは、データの取得要求メッセージ714を、他ノード102bへ送信する(S1202)。そして、アクセスミドルウェア220aは、S1210の処理へ進む。
When the connection is successful (S1201: YES), the access middleware 220a transmits a data acquisition request message 714 to the
接続が失敗した場合(S1201:NO)、アクセスミドルウェア220aは、結果コード「1」(リクエスト/レスポンス通信:接続エラー)の実行結果を一時的に保持する(S1205)。そして、アクセスミドルウェアは、S1210の処理へ進む。 When the connection fails (S1201: NO), the access middleware 220a temporarily holds the execution result of the result code “1” (request / response communication: connection error) (S1205). Then, the access middleware proceeds to the process of S1210.
S1210としてアクセスミドルウェア220aは、未処理のクエリコマンド740が存在するか否かを判定する(S1210)。未処理のクエリコマンド740が存在する場合(S1210:YES)、アクセスミドルウェア220aは、未処理のクエリコマンド740について、S1201からの処理を実行する。未処理のクエリコマンド740が存在しない場合(S1210:NO)、アクセスミドルウェア220aは、次のS1212の処理へ進む。
In S1210, the access middleware 220a determines whether or not there is an unprocessed query command 740 (S1210). When there is an unprocessed query command 740 (S1210: YES), the access middleware 220a executes the processing from S1201 for the
ノード102aのアクセスミドルウェア220aは、タイムアウトが発生するまで、他ノード102bからのデータの取得応答メッセージ715の受信を待機する(S1212:NO、S1218:NO)。
The access middleware 220a of the
データの取得応答メッセージ715を受信した場合(S1212:YES)、アクセスミドルウェア220aは、そのデータの取得応答メッセージ715からデータ1711及び実行結果1705を抽出する。そして、アクセスミドルウェア220aは、その抽出したデータ1711及び実行結果1705を含むクエリコマンド結果741を生成し、一時的に保持する(S1215)。
When the data
アクセスミドルウェア220aは、未受信のデータの取得応答メッセージ715が存在するか否かを判定する(S1220)。未受信のデータの取得応答メッセージ715が存在する場合(S1220:YES)、アクセスミドルウェア220aは、S1212の処理に戻り、残りの受信を待機する。未受信のデータの取得応答メッセージ712が存在しない場合(S1220:NO)、アクセスミドルウェア220aは、本処理を終了する。
The access middleware 220a determines whether there is an
データの取得応答メッセージ712の受信待機において、タイムアウトが発生した場合(S1218:YES)、アクセスミドルウェア220aは、次の処理を行う。すなわち、アクセスミドルウェア220aは、結果コード「2」(リクエスト/レスポンス通信:タイムアウトエラー)の実行結果を有するクエリコマンド結果741を生成し、一時的に保持する(S1219)。そして、アクセスミドルウェア220aは、本処理を終了する。
When a timeout occurs in the standby for receiving the data acquisition response message 712 (S1218: YES), the access middleware 220a performs the following processing. That is, the access middleware 220a generates a
上述における一時的に保持されたクエリコマンド結果741は、図27のS731においてアプリケーション210に返される。
The
図32は、ノード102bにおけるReq/Rep通信によるデータ取得処理の例を表すフローチャートである。この処理は、図27のS1200のデータの取得要求メッセージ713を受信する側のノード102bの処理に該当する。
FIG. 32 is a flowchart illustrating an example of data acquisition processing by Req / Rep communication in the
ノード102bのアクセスミドルウェア220bは、ノード102aからのデータの取得要求メッセージ714を受信すると(S1301)、以下の処理を実行する。すなわち、アクセスミドルウェア220bは、そのデータの取得要求メッセージ714からメモリアドレス1712及びサイズ425を抽出する。
Upon receiving the data acquisition request message 714 from the
アクセスミドルウェア220bは、その抽出したメモリアドレス1712及びサイズ425の示す位置にデータが存在するか否かを判定する(S1302)。データが存在しない場合(S1302:NO)、アクセスミドルウェア220bは、データが存在しない旨を表す実行結果を一時的に保持し(S1320)、S1306の処理へ進む。
The
データが存在する場合(S1302:YES)、アクセスミドルウェア220aは、その位置からデータを取得する(S1303)。そして、アクセスミドルウェア220aは、データIDと結果コード「0」(成功)と現在時刻の取得時刻とを含む実行結果、並びに、その取得したデータを、一時的に保持する(S1304)。 When the data exists (S1302: YES), the access middleware 220a acquires the data from the position (S1303). Then, the access middleware 220a temporarily holds the execution result including the data ID, the result code “0” (success), and the acquisition time of the current time, and the acquired data (S1304).
アクセスミドルウェア220aは、未取得のデータが存在するか否かを判定する(S1305)。未取得のデータが存在する場合(S1305:YES)、アクセスミドルウェア220aは、S1203の処理に戻り、未取得のデータを取得する。 The access middleware 220a determines whether unacquired data exists (S1305). If unacquired data exists (S1305: YES), the access middleware 220a returns to the processing of S1203 and acquires unacquired data.
未取得のデータが存在しない場合(S1305:NO)、アクセスミドルウェア220aは、上述において一時的に保持した実行結果等を含むデータの取得応答メッセージ715を生成し、そのメッセージ715をノード102aへ返す(S1306)。そして、アクセスミドルウェア220aは、本処理を終了する。
When there is no unacquired data (S1305: NO), the access middleware 220a generates a data
以上の処理により、データの取得要求メッセージ713を受信したノード102aは、その取得要求メッセージ713に対応する取得応答メッセージ714を返すことができる。
Through the above processing, the
なお、上述の処理例では、S1302の判定によって、データの取得要求メッセージ中に存在しないデータが1つでも含まれる場合は、その旨を示す実行結果を含むデータの取得応答メッセージを返している。しかし、取得要求メッセージ中の個々のデータに関して存在の有無の判定を行い、個々のデータに関しての判定結果を実行結果として含むデータの取得応答メッセージを返しても良い。 In the above processing example, if even one non-existent data is included in the data acquisition request message as a result of the determination in S1302, a data acquisition response message including an execution result indicating that fact is returned. However, the presence / absence of each data in the acquisition request message may be determined, and a data acquisition response message including the determination result regarding each data as an execution result may be returned.
図33は、ノード102aにおける共有メモリ参照によるデータ取得処理の一例を表すフローチャートである。この処理は、図27のS1400の処理に該当する。
FIG. 33 is a flowchart illustrating an example of data acquisition processing by reference to the shared memory in the
ノード102aのアクセスミドルウェア220aは、管理情報から、データ位置423(共有メモリID及びメモリアドレス)、データ型及びサイズを取得する。そして、アクセスミドルウェア220aは、これらの情報を用いて共有メモリ253からデータを取得する(S1401)。
The access middleware 220a of the
アクセスミドルウェア220aは、この取得したデータの更新時刻を確認し(S1402)、このデータが更新されているか否かを判定する(S1403)。例えば、アクセスミドルウェア220aは、この取得したデータの更新時刻が、更新情報テーブル254におけるこのデータに対応するレコードのタイムスタンプ432よりも新しい場合(又は、このデータが初めて取得したものである場合)、更新されていると判定してよい。
The access middleware 220a confirms the update time of the acquired data (S1402), and determines whether or not this data has been updated (S1403). For example, the access middleware 220a, when the update time of this acquired data is newer than the
この取得したデータが更新されていると判定した場合(S1403:YES)、アクセスミドルウェア220aは、この取得したデータと、現在時刻を取得時刻751とする実行結果1705とを一時的に保持する(S1408)。そして、アクセスミドルウェア220aは、S1410の処理に進む。
If it is determined that the acquired data has been updated (S1403: YES), the access middleware 220a temporarily holds the acquired data and an
この取得したデータが更新されていないと判定した場合(S1403:NO)、アクセスミドルウェア220aは、エラー処理方法1710のデータ取得フラグ755が「1」(未更新であってもデータを取得すべき)であるか否かを判定する(S1404)。
If it is determined that the acquired data has not been updated (S1403: NO), the access middleware 220a sets the
データ取得フラグ755が「1」(未更新であってもデータを取得すべき)である場合(S1404:YES)、アクセスミドルウェア220aは、この取得したデータと、結果コードを「3」(共有メモリ参照:未更新エラー)とし且つこの取得したデータの更新時刻を取得時刻751とした実行結果1705とを一時的に保持する(S1405、S1408)。そして、アクセスミドルウェア220aは、S1410の処理に進む。
When the
データ取得フラグ755が「0」(未更新の場合はデータを取得すべきでない)の場合(S1404:NO)、アクセスミドルウェア220aは、「NULL」のデータと、結果コードを「3」(共有メモリ参照:未更新エラー)とした実行結果1705とを一時的に保持する(S1406)。そして、アクセスミドルウェア220aは、S1410の処理に進む。
When the
S1410としてアクセスミドルウェア220aは、未取得のデータが残っているか否かを判定する(S1410)。未取得のデータが残っている場合(S1410:YES)、アクセスミドルウェア220aは、S1401の処理に戻り、未取得のデータを取得する。未取得のデータが残っていない場合(S1410:NO)、アクセスミドルウェア220aは、本処理を終了する。 In S1410, the access middleware 220a determines whether unacquired data remains (S1410). When unacquired data remains (S1410: YES), the access middleware 220a returns to the process of S1401 and acquires unacquired data. If unacquired data does not remain (S1410: NO), the access middleware 220a ends this process.
以上の処理により、ノード102aは、エラー処理方法に基づいて共有メモリからデータを取得することができる。
Through the above processing, the
図34は、ノード102aにおけるPub/Sub通信によるデータ取得処理の例を表すフローチャートである。この処理は、図27のS1500の同報通知(Pub/Subメッセージ)を受信(購読)する側のノード102aの処理に該当する。
FIG. 34 is a flowchart illustrating an example of data acquisition processing by Pub / Sub communication in the
ノード102aのアクセスミドルウェア220aは、管理装置103から取得した管理情報のデータ取得方法422がPub/Sub通信の場合(S1501:YES)、以下の処理を実行する。
When the
ノード102aのアクセスミドルウェア220aは、管理情報のデータ位置423から、トランザクションIDを抽出する。そして、アクセスミドルウェア220aは、その抽出したトランザクションIDを有するPub/Subメッセージ1520の受信待機を開始する(S1502)。そして、アクセスミドルウェア220aは、タイムアウトが発生するまでこのPub/Subメッセージの受信待機を行う(S1503:NO、S1510:NO)。
The access middleware 220a of the
その抽出したトランザクションIDを有するPub/Subメッセージ1520を受信した場合(S1503:YES)、アクセスミドルウェア220aはPub/Subメッセージ1520からデータ1711を取得する(S1504、S1505)。そして、アクセスミドルウェア220aは、その取得したデータと、結果コード750を「0」(成功)とし且つ取得時刻751を現在時刻とする実行結果1705とを一時的に保持する(S1506)。
When the Pub /
そして、アクセスミドルウェア220aは、未受信データが存在するか否かを判定する(S1520)。未受信データが存在する場合(S1520:YES)、アクセスミドルウェア220aは、S1503に戻り、再び受信待機を行う。未受信データが存在しない場合(S1520:NO)、本処理を終了する。 Then, the access middleware 220a determines whether there is unreceived data (S1520). If unreceived data exists (S1520: YES), the access middleware 220a returns to S1503 and waits for reception again. If there is no unreceived data (S1520: NO), this process ends.
タイムアウトが発生した場合(S1510:YES)、アクセスミドルウェア220aは、「NULL」のデータと、結果コード750を「4」(Pub/Sub通信:タイムアウトエラー)とする実行結果1705とを一時的に保持する(S1511)。そして、アクセスミドルウェア220aは、本処理を終了する。
When a timeout occurs (S1510: YES), the access middleware 220a temporarily holds “NULL” data and an
以上の処理により、ノード102aは、購読対象のトランザクションIDを有するPub/Subメッセージ1520から、データ1711を取得することができる。
Through the above processing, the
図35は、ノード102bが管理装置103に対して管理情報の削除要求を行う処理の一例を表すシーケンスチャートである。
FIG. 35 is a sequence chart illustrating an example of processing in which the
ノード102bのアクセスミドルウェア220bは、自ノード102bが分散システム1から離脱するときなどに、以下の処理を開始する。
The
ノード102bのアクセスミドルウェア220bは、削除対象の管理情報IDを含めた管理情報の削除要求メッセージ1611を、管理装置103へ送信する(S1601)。
The
管理装置103の管理アプリケーション310は、管理情報の削除要求メッセージ1611を受信すると、そのメッセージ1611に含まれる管理情報ID1706を特定し、その特定した管理情報ID1706に対応する管理情報426を削除する。また、管理アプリケーション310は、リンクテーブル341から、その特定した管理情報ID1706を有するリンク情報(レコード)を削除する。そして、管理アプリケーション310は、削除処理の成功又は失敗の削除結果1613を含む管理情報の削除応答メッセージ1612をノード102bに送信する(S1700)。ノード102bは、管理情報の削除応答メッセージ1612を受信し(S1603)、処理を終了する。
When receiving the management information
以上の処理により、ノード102bが削除要求した管理情報IDに対応する管理情報が、管理装置103から削除される。
Through the above processing, the management information corresponding to the management information ID requested to be deleted by the
図36は、管理情報の削除要求メッセージを受信した管理装置103の削除処理を表すフローチャートである。この処理は、図35のS1700の管理装置103側の処理に該当する。
FIG. 36 is a flowchart showing the deletion process of the
管理装置103の管理アプリケーション310は、管理情報の削除要求メッセージ1611を受信すると、その削除要求メッセージ1611を解析する(S1701)。
When receiving the management information
管理アプリケーション310は、リンクテーブル341に、管理情報の削除要求メッセージ1611に含まれる管理情報ID1706と一致する管理情報IDを有するリンク情報(レコード)が存在するか否かを判定する(S1702、S1703)。
The
リンクテーブル341に一致する管理情報IDを有するリンク情報(レコード)が存在する場合(S1703:YES)、管理アプリケーション310は、そのリンク情報(レコード)のリンク先430に格納されている管理情報を削除する。また、管理アプリケーション310は、リンクテーブル341からそのリンク情報(レコード)を削除する(S1704)。そして、管理アプリケーション310は、「成功」を表す削除結果1613を含む管理情報の削除応答メッセージ1612を生成し(S1705)、S1707の処理へ進む。
When there is link information (record) having the management information ID that matches the link table 341 (S1703: YES), the
リンクテーブル341に一致する管理情報IDを有するリンク情報(レコード)が存在しない場合(S1703:NO)、管理アプリケーション310は、「失敗」を表す削除結果1613を含む管理情報の削除応答メッセージ1612を生成し(S1706)、S1707の処理へ進む。
When there is no link information (record) having a management information ID that matches the link table 341 (S1703: NO), the
S1707として管理アプリケーション310は、上述で生成した管理情報の削除応答メッセージ1612を、ノード102bへ返し(S1707)、本処理を終了する。
In S1707, the
以上の処理により、管理装置103は、ノード102bから削除要求された管理情報の削除処理を実行し、その結果をノード102bに返すことができる。
Through the processing described above, the
上述した実施形態は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。当業者は、本発明の要旨を逸脱することなしに、他の様々な態様で本発明を実施することができる。例えば、本実施形態を以下の様に表現してもよい。 The embodiments described above are examples for explaining the present invention, and are not intended to limit the scope of the present invention only to those embodiments. Those skilled in the art can implement the present invention in various other modes without departing from the gist of the present invention. For example, this embodiment may be expressed as follows.
(表現1)
コンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体であって、分散システムを構成するノードの有するプロセッサにおいて前記コンピュータプログラムが実行されると、
前記プロセッサで実行されるアプリケーションプログラムから、データ識別子と、そのデータ識別子に対応するデータの取得処理においてエラーが発生した場合対応方法を表すエラー処理方法とを含む、データの取得を要求する取得コマンドを、メモリを介して受け取ると、
前記取得コマンドに含まれるデータ識別子に関連する管理情報を、通信インタフェースを介して所定の管理装置から取得し、その取得した管理情報を前記メモリに格納し、前記管理情報には、データ識別子と、そのデータ識別子に対応するデータのデータ取得方法とが含まれており、
その取得した管理情報に含まれるデータ取得方法に基づき、前記データ識別子に対応するデータの取得処理を実行し、
その取得処理においてエラーが発生した場合、前記取得コマンドに含まれる前記エラー処理方法に基づいてエラー処理を実行し、
前記取得処理又は前記エラー処理によって前記データ識別子に対応するデータを取得した場合、その取得したデータを、前記メモリを介して前記アプリケーションプログラムに返す
コンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体。
(Expression 1)
A computer-readable recording medium that records a computer program, and when the computer program is executed by a processor of a node that constitutes a distributed system,
An acquisition command for requesting data acquisition from an application program executed by the processor, including a data identifier and an error processing method indicating a response method when an error occurs in the acquisition processing of data corresponding to the data identifier. , Receive through memory,
Management information related to the data identifier included in the acquisition command is acquired from a predetermined management device via a communication interface, the acquired management information is stored in the memory, the management information includes a data identifier, Including a data acquisition method for data corresponding to the data identifier,
Based on the data acquisition method included in the acquired management information, execute data acquisition processing corresponding to the data identifier,
When an error occurs in the acquisition process, an error process is executed based on the error processing method included in the acquisition command,
A computer-readable recording medium that records a computer program that returns the acquired data to the application program via the memory when the data corresponding to the data identifier is acquired by the acquisition process or the error process.
(表現2)
複数のノードによって構成される分散システムに属する管理装置であって、
データを識別するためのデータ識別子と、そのデータ識別子に対応するデータのデータ取得方法とを含む、複数の管理情報を管理し、
前記ノードから、データ識別子を含む管理情報の取得要求メッセージを受信すると、
前記管理情報の取得要求メッセージに含まれるデータ識別子に対応する管理情報を特定し、
その特定した管理情報を含む管理情報の取得応答メッセージを、前記ノードに返す
管理装置。
(Expression 2)
A management device belonging to a distributed system composed of a plurality of nodes,
Managing a plurality of management information including a data identifier for identifying data and a data acquisition method of data corresponding to the data identifier;
When receiving a management information acquisition request message including a data identifier from the node,
Specify management information corresponding to the data identifier included in the management information acquisition request message,
A management apparatus that returns a management information acquisition response message including the identified management information to the node.
(表現3)
分散システムを構成するノードであって、
アプリケーションプログラムから、データ識別子と、そのデータ識別子に対応するデータの取得処理においてエラーが発生した場合の対応方法を表すエラー処理方法とを含む、データの取得を要求する取得コマンドを受け取ると、
前記取得コマンドに含まれるデータ識別子に関連する管理情報を前記管理装置から取得し、
その取得した管理情報に含まれるデータ取得方法に基づき、前記データ識別子に対応するデータの取得処理を実行し、
その取得処理においてエラーが発生した場合、前記取得コマンドに含まれる前記エラー処理方法に基づいてエラー処理を実行し、
前記取得処理又は前記エラー処理によって前記データ識別子に対応するデータを取得した場合、その取得したデータを前記アプリケーションプログラムに返す
ノード。
(Expression 3)
A node constituting a distributed system,
When receiving an acquisition command for requesting acquisition of data, including a data identifier and an error processing method representing a response method when an error occurs in the acquisition processing of data corresponding to the data identifier, from the application program,
Obtaining management information related to the data identifier included in the acquisition command from the management device,
Based on the data acquisition method included in the acquired management information, execute data acquisition processing corresponding to the data identifier,
When an error occurs in the acquisition process, an error process is executed based on the error processing method included in the acquisition command,
A node that, when data corresponding to the data identifier is acquired by the acquisition process or the error process, returns the acquired data to the application program.
1:分散システム 101:通信ネットワーク 102:ノード 103:管理装置
1: Distributed system 101: Communication network 102: Node 103: Management device
Claims (12)
前記管理装置は、データを識別するためのデータ識別子と、そのデータ識別子に対応するデータのデータ取得方法とを含む、管理情報を有し、
前記ノードは、
アプリケーションプログラムから、データ識別子と、そのデータ識別子に対応するデータの取得処理においてエラーが発生した場合の対応方法を表すエラー処理方法とを含む、データの取得を要求する取得コマンドを受け取ると、
前記取得コマンドに含まれるデータ識別子に関連する管理情報を前記管理装置から取得し、
その取得した管理情報に含まれるデータ取得方法に基づき、前記データ識別子に対応するデータの取得処理を実行し、
その取得処理においてエラーが発生した場合、前記取得コマンドに含まれる前記エラー処理方法に基づいてエラー処理を実行し、
前記取得処理又は前記エラー処理によって前記データ識別子に対応するデータを取得した場合、その取得したデータを前記アプリケーションプログラムに返す
分散システム。
A distributed system including a management device and a plurality of nodes,
The management device has management information including a data identifier for identifying data and a data acquisition method for data corresponding to the data identifier;
The node is
When receiving an acquisition command for requesting acquisition of data, including a data identifier and an error processing method representing a response method when an error occurs in the acquisition processing of data corresponding to the data identifier, from the application program,
Obtaining management information related to the data identifier included in the acquisition command from the management device,
Based on the data acquisition method included in the acquired management information, execute data acquisition processing corresponding to the data identifier,
When an error occurs in the acquisition process, an error process is executed based on the error processing method included in the acquisition command,
A distributed system that, when data corresponding to the data identifier is acquired by the acquisition process or the error process, returns the acquired data to the application program.
前記Request/Reply通信方法とは、前記管理情報の指定する他ノードに対してデータの取得要求メッセージを送信し、当該他ノードからの応答を待機する方法であり、
前記Publish/Subscribe通信方法とは、他ノードから発行されるメッセージの内、前記管理情報の指定するトランザクション識別子を含むメッセージの受信を待機する方法であり、
前記共有メモリ参照方法とは、複数のノードで共有するメモリ空間における前記管理情報の指定するメモリアドレスからデータを取得する方法である
請求項1に記載の分散システム。
In the data acquisition method, a Request / Reply communication method, a Publish / Subscribe communication method, or a shared memory reference method is specified,
The Request / Reply communication method is a method of transmitting a data acquisition request message to another node specified by the management information and waiting for a response from the other node.
The Publish / Subscribe communication method is a method of waiting for reception of a message including a transaction identifier specified by the management information among messages issued from other nodes.
The distributed system according to claim 1, wherein the shared memory reference method is a method of acquiring data from a memory address specified by the management information in a memory space shared by a plurality of nodes.
請求項2に記載の分散システム。
The distributed system according to claim 2, wherein the error processing method has a setting related to data reacquisition and a setting related to data acquisition standby.
前記データ取得方法に前記Publish/Subscribe通信方法が指定されており、且つ、前記エラー処理方法がデータの取得待機を行う設定である場合に、所定時間内に前記トランザクション識別子を含むメッセージを受信できなかった旨のエラーが発生したならば、当該メッセージを受信するまで待機する
請求項3に記載の分散システム。
The node is
When the Publish / Subscribe communication method is specified as the data acquisition method and the error processing method is set to wait for data acquisition, a message including the transaction identifier cannot be received within a predetermined time. The distributed system according to claim 3, which waits until the message is received if an error occurs.
前記データ取得方法に前記共有メモリ参照方法が指定されており、且つ、前記エラー処理方法がデータの取得待機を行う設定である場合に、前記共有メモリのメモリアドレスに格納されているデータが未更新である旨のエラーが発生したならば、当該データが更新されるまで待機する
請求項3に記載の分散システム。
The node is
If the shared memory reference method is specified as the data acquisition method and the error processing method is set to wait for data acquisition, the data stored in the memory address of the shared memory is not updated. 4. The distributed system according to claim 3, wherein if an error indicating that the error occurs, the system waits until the data is updated.
前記ノードは、
前記データ取得方法に前記共有メモリ参照方法が指定されており、且つ、前記エラー処理方法がデータの更新時刻を考慮しない旨の設定である場合に、前記共有メモリのメモリアドレスに格納されているデータが未更新である旨のエラーが発生したならば、前記メモリアドレスに格納されているデータを前記アプリケーションに返す
請求項3に記載の分散システム。
The error handling method further includes a setting related to a data update time,
The node is
The data stored in the memory address of the shared memory when the shared memory reference method is specified as the data acquisition method and the error processing method is set not to consider the data update time 4. The distributed system according to claim 3, wherein if an error indicating that the data has not been updated occurs, the data stored in the memory address is returned to the application.
前記データ取得方法にRequest/Reply通信方法が指定されており、且つ、前記エラー処理方法がデータの再取得を行う設定である場合に、所定時間内に前記他ノードからデータ要求のメッセージに対する応答を受けられなかった旨のエラーが発生したならば、前記他ノードに対してデータ要求のメッセージを再送信する
請求項3に記載の分散システム。
The node is
When a Request / Reply communication method is specified as the data acquisition method and the error processing method is set to re-acquire data, a response to a data request message is sent from the other node within a predetermined time. 4. The distributed system according to claim 3, wherein if an error indicating that the request has not been received has occurred, a data request message is retransmitted to the other node.
前記データ識別子に対応するデータを取得できなかった場合、そのデータの取得処理に適用されたデータ取得方法と、そのデータ取得方法に対して発生したエラーの情報とを含む、エラーメッセージを前記アプリケーションに返す
請求項1乃至7の何れか1項に記載の分散システム。
The node is
If data corresponding to the data identifier could not be acquired, an error message including a data acquisition method applied to the data acquisition process and information on an error that occurred in the data acquisition method is sent to the application. The distributed system according to any one of claims 1 to 7, which is returned.
前記管理装置は、前記ノードから前記管理情報の登録要求メッセージを受信すると、前記管理情報の登録要求メッセージに対する管理情報の登録応答メッセージを前記ノードへ返し、前記管理情報の登録応答メッセージには、前記ノードから送信されたデータ識別子に関する管理情報に対応する管理情報識別子が含まれている
請求項1乃至7の何れか1項に記載の分散システム。
The node transmits a management information registration request message to the management device, and the management information registration request message includes a data identifier corresponding to data held by the node,
When the management device receives the management information registration request message from the node, the management device returns a management information registration response message to the management information registration request message to the node. The distributed system according to any one of claims 1 to 7, wherein a management information identifier corresponding to management information related to a data identifier transmitted from a node is included.
請求項9に記載の分散システム。
The distributed system according to claim 9, wherein the node transmits a management information registration request message to the management device when communication with the management device is enabled.
アプリケーションプログラムから、データ識別子と、そのデータ識別子に対応するデータの取得処理においてエラーが発生した場合の対応方法を表すエラー処理方法とを含む、データの取得を要求する取得コマンドを受け取ると、
前記取得コマンドに含まれるデータ識別子に関連する管理情報を所定の管理装置から取得し、前記管理情報には、データ識別子と、そのデータ識別子に対応するデータのデータ取得方法とが含まれており、
その取得した管理情報に含まれるデータ取得方法に基づき、前記データ識別子に対応するデータの取得処理を実行し、
その取得処理においてエラーが発生した場合、前記取得コマンドに含まれる前記エラー処理方法に基づいてエラー処理を実行し、
前記取得処理又は前記エラー処理によって前記データ識別子に対応するデータを取得した場合、その取得したデータを前記アプリケーションプログラムに返す
データ取得方法。
A method in which each of a plurality of nodes constituting a distributed system obtains data,
When receiving an acquisition command for requesting acquisition of data, including a data identifier and an error processing method representing a response method when an error occurs in the acquisition processing of data corresponding to the data identifier, from the application program,
The management information related to the data identifier included in the acquisition command is acquired from a predetermined management device, the management information includes a data identifier and a data acquisition method of data corresponding to the data identifier,
Based on the data acquisition method included in the acquired management information, execute data acquisition processing corresponding to the data identifier,
When an error occurs in the acquisition process, an error process is executed based on the error processing method included in the acquisition command,
A data acquisition method for returning the acquired data to the application program when the data corresponding to the data identifier is acquired by the acquisition process or the error process.
アプリケーションプログラムから、データ識別子と、そのデータ識別子に対応するデータの取得処理においてエラーが発生した場合の対応方法を表すエラー処理方法とを含む、データの取得を要求する取得コマンドを受け取ると、
前記取得コマンドに含まれるデータ識別子に関連する管理情報を所定の管理装置から取得し、前記管理情報には、データ識別子と、そのデータ識別子に対応するデータのデータ取得方法とが含まれており、
その取得した管理情報に含まれるデータ取得方法に基づき、前記データ識別子に対応するデータの取得処理を実行し、
その取得処理においてエラーが発生した場合、前記取得コマンドに含まれる前記エラー処理方法に基づいてエラー処理を実行し、
前記取得処理又は前記エラー処理によって前記データ識別子に対応するデータを取得した場合、その取得したデータを前記アプリケーションプログラムに返す
コンピュータプログラム。
A computer program executed on each of a plurality of nodes constituting a distributed system, and executed on the nodes,
When receiving an acquisition command for requesting acquisition of data, including a data identifier and an error processing method representing a response method when an error occurs in the acquisition processing of data corresponding to the data identifier, from the application program,
The management information related to the data identifier included in the acquisition command is acquired from a predetermined management device, the management information includes a data identifier and a data acquisition method of data corresponding to the data identifier,
Based on the data acquisition method included in the acquired management information, execute data acquisition processing corresponding to the data identifier,
When an error occurs in the acquisition process, an error process is executed based on the error processing method included in the acquisition command,
When the data corresponding to the data identifier is acquired by the acquisition process or the error process, the computer program returns the acquired data to the application program.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014170913A JP6211487B2 (en) | 2014-08-25 | 2014-08-25 | Distributed system, data acquisition method, and computer program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014170913A JP6211487B2 (en) | 2014-08-25 | 2014-08-25 | Distributed system, data acquisition method, and computer program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016045807A JP2016045807A (en) | 2016-04-04 |
JP6211487B2 true JP6211487B2 (en) | 2017-10-11 |
Family
ID=55636292
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014170913A Active JP6211487B2 (en) | 2014-08-25 | 2014-08-25 | Distributed system, data acquisition method, and computer program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6211487B2 (en) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3691871B2 (en) * | 1995-03-20 | 2005-09-07 | 富士通株式会社 | Card type storage medium |
JP2002215595A (en) * | 2001-01-24 | 2002-08-02 | Nec Corp | Decentralized object system |
JP2007004604A (en) * | 2005-06-24 | 2007-01-11 | Nippon Telegr & Teleph Corp <Ntt> | File location management method, terminal, and file location management server |
-
2014
- 2014-08-25 JP JP2014170913A patent/JP6211487B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2016045807A (en) | 2016-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101923245B1 (en) | Transparent failover | |
US10959089B2 (en) | Data management microservice in a microservice domain | |
US10521116B2 (en) | System and method for managing object store | |
US8069246B2 (en) | Relay server and relay communication system including a relay group information registration unit, a shared resource information registration unit, and a control unit | |
US20150134727A1 (en) | Cloud-based data server providing home appliance management service and method thereof | |
CN112738284B (en) | Data transmission method, device, equipment and storage medium in service integration | |
JP5459983B2 (en) | Information processing apparatus, information processing apparatus control method, and computer program | |
CN102365634A (en) | System for managing distributed assets and metadata | |
JP2005311773A (en) | Notifying method, connecting device, communicating method, and program | |
CN101313292A (en) | Peer data transfer orchestration | |
US20070255710A1 (en) | Content management method, apparatus, and system | |
WO2013046352A1 (en) | Computer system, data management method and data management program | |
JP5979986B2 (en) | Distribution system and control method thereof | |
JP2013542681A (en) | Content sharing method and apparatus using group change information in content-centric network environment | |
CN113746641B (en) | ODX protocol processing method based on distributed storage | |
JP5729003B2 (en) | Thin client system, location information management server, migration method, and program | |
JP6153639B2 (en) | Protocol automatic setting method for PLC system | |
WO2018032499A1 (en) | Load balancing method and associated device | |
CN112035062A (en) | Migration method of local storage of cloud computing, computer equipment and storage medium | |
JP6211487B2 (en) | Distributed system, data acquisition method, and computer program | |
KR20210044281A (en) | Method and apparatus for ensuring continuous device operation stability in cloud degraded mode | |
JP6728744B2 (en) | Data providing system, data providing method, data providing device, update target device, and computer program | |
US20150282121A1 (en) | Local resource sharing method of machine to machine component and apparatus thereof | |
JP2017162416A (en) | Replication program, redundant system, and replication method | |
JP2017111555A (en) | Distribution history management program, distribution history management system and distribution history management method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20161129 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170809 |
|
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: 20170829 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170913 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6211487 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |