JP4754010B2 - Message linking processing program, method and apparatus - Google Patents
Message linking processing program, method and apparatus Download PDFInfo
- Publication number
- JP4754010B2 JP4754010B2 JP2009139808A JP2009139808A JP4754010B2 JP 4754010 B2 JP4754010 B2 JP 4754010B2 JP 2009139808 A JP2009139808 A JP 2009139808A JP 2009139808 A JP2009139808 A JP 2009139808A JP 4754010 B2 JP4754010 B2 JP 4754010B2
- Authority
- JP
- Japan
- Prior art keywords
- linking
- key
- processing
- pattern
- communication load
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本技術は、メッセージの紐付け処理を並列化するための技術に関する。 The present technology relates to a technology for parallelizing message linking processing.
例えば電子商取引など複数のサーバを有するシステムでは、クライアントからのリクエストを受け取ると、サーバ間でメッセージが交換され、処理が進行する。 For example, in a system having a plurality of servers such as electronic commerce, when a request from a client is received, messages are exchanged between the servers, and processing proceeds.
一方、このようなシステムの挙動監視やリクエスト遅延問題を解析するために、メッセージをトランザクション毎に紐付ける処理(以下、紐付け処理と呼ぶ)が行われる。なお、1リクエストの応答に必要なメッセージについては、メッセージに含まれるキーワード等(以下、紐付けキーと呼ぶ)によって1つのトランザクションとして認識される。 On the other hand, in order to analyze such system behavior monitoring and request delay problems, a process for associating a message for each transaction (hereinafter referred to as an association process) is performed. Note that a message required for the response of one request is recognized as one transaction by a keyword included in the message (hereinafter referred to as a linking key).
例えば、大量のメッセージを高速に処理するため、メッセージの紐付け処理を行う紐付けサーバ等を複数台並列に動作させる構成が考えられる。しかし、単に並列処理を行う場合、紐付けサーバ間において紐付け処理のための通信の回数が多くなる場合があり、通信負荷が、並列化による効率向上の妨げになるという問題がある。なお、従来技術では、紐付けサーバ等の通信負荷を抑えつつ、メッセージの紐付け処理を並列化することはできない。 For example, in order to process a large number of messages at high speed, a configuration in which a plurality of linking servers that perform message linking processing and the like are operated in parallel is conceivable. However, when simply performing parallel processing, the number of times of communication for the linking process may increase between the linking servers, and there is a problem that the communication load hinders efficiency improvement by parallelization. In the prior art, it is not possible to parallelize message linking processes while suppressing the communication load of a linking server or the like.
従って、本技術の目的は、紐付けサーバ等の通信負荷を最小限に抑えつつ、メッセージの紐付け処理を並列化できるようにすることである。 Accordingly, an object of the present technology is to enable message linking processes to be parallelized while minimizing a communication load of a linking server or the like.
本メッセージ紐付け処理方法は、プロトコル毎に当該プロトコルに係るメッセージに含まれ且つメッセージの紐付け処理で用いられる紐付けキーを格納するキー定義データベースから各紐付けキーを抽出し、抽出した紐付けキーの各々に対応するノードと同一のプロトコルに属する紐付けキーのノード間を結ぶリンクとを含む構造体のデータを生成するステップと、複数のリンクによって構造体中にループが形成されているか判断する判断ステップと、構造体中にループが形成されていないと判断された場合、各々連携して紐付け処理を実施する複数の紐付け処理部の各々に対する紐付けキーの割り当ての組み合わせである割り当てパターンのうち、紐付け処理部間の通信負荷が最小であるという第1条件を含む所定の条件を満たす割り当てパターンを特定し、特定された割り当てパターンに係る割り当てデータをキー情報格納部に格納するパターン特定ステップとを含む。 This message linking processing method extracts each linking key from the key definition database that stores the linking key that is included in the message related to the protocol for each protocol and that is used in the message linking processing. A step of generating data of a structure including a node corresponding to each of the keys and a link connecting nodes of the tied keys belonging to the same protocol, and determining whether a loop is formed in the structure by the plurality of links An allocation that is a combination of a linking key allocation to each of a plurality of linking processing units that perform linking processing in cooperation with each other when it is determined that a loop is not formed in the structure. of pattern satisfy predetermined conditions allocation including a first condition that the communication load between the tying unit is minimum Identifying a turn, and a pattern specifying step of storing allocation data relating to the identified allocation pattern in the key information storage unit.
紐付けサーバ等の通信負荷を抑えつつ、メッセージ紐付け処理を並列化できるようになる。 The message linking process can be parallelized while suppressing the communication load of the linking server.
まず、本実施の形態の前提となる、メッセージの紐付け処理について説明する。例えば図1に示すように、メッセージ振分部が、紐付けキーKc及びKdが割り当てられている紐付けサーバ1に、プロトコルOのメッセージ(Prot.O)とプロトコルRのメッセージ(Prot.R)とを割り振り、紐付けキーKa及びKbが割り当てられている紐付けサーバ2に、プロトコルPのメッセージ(Prot.P)とプロトコルSのメッセージ(Prot.S)とを割り振るものとする。また、紐付けサーバ1及び2は、割り当てられている紐付けキー毎のハッシュテーブルを有しており、メッセージ振分部からメッセージを受け取ると、紐付けキーからハッシュ値を計算し、ハッシュ値に従ってメッセージをハッシュテーブルに格納するものとする。なお、Prot.Oには、紐付けキーKc及びKaが含まれ、Prot.Pには、紐付けキーKa及びKdが含まれ、Prot.Rには、紐付けキーKd及びKbが含まれ、Prot.Sには、紐付けキーKbが含まれる。すなわち、Prot.OとProt.Pとは、紐付けキーKaによって紐付けられる。また、Prot.PとProt.Rとは、紐付けキーKdによって紐付けられる。さらに、Prot.RとProt.Sとは、紐付けキーKbによって紐付けられる。従って、Prot.OとProt.PとProt.RとProt.Sとは、同一のトランザクションに係るメッセージとして紐付けられる。
First, message linking processing, which is a premise of the present embodiment, will be described. For example, as shown in FIG. 1, the message distribution unit sends a protocol O message (Prot.O) and a protocol R message (Prot.R) to the linking
例えば図2に示すように、メッセージの紐付け処理が行われる。具体的には、まず、紐付けサーバ1が、ハッシュテーブル(Kc)からProt.O(Kc=a,Ka=15)を取り出す。ここで、Prot.Oは、紐付けキーKaによってProt.Pと紐付けられるが、Prot.Pを格納しているのは、紐付けサーバ2であるため、紐付けサーバ間で通信(1回目)が発生する。次に、紐付けサーバ2が、Prot.Oと紐付くProt.P(Ka=15,Kd=37)をハッシュテーブル(Ka)から取り出す。ここで、Prot.Pは、紐付けキーKdによってProt.Rと紐付けられるが、Prot.Rを格納しているのは、紐付けサーバ1であるため、再び紐付けサーバ間で通信(2回目)が発生する。そして、紐付けサーバ1が、Prot.Pと紐付くProt.R(Kd=37,Kb=x)をハッシュテーブル(Kd)から取り出す。ここで、Prot.Rは、紐付けキーKbによってProt.Sと紐付けられるが、Prot.Sを格納しているのは、紐付けサーバ2であるため、再び紐付けサーバ間で通信(3回目)が発生する。そして、紐付けサーバ2が、Prot.Rと紐付くProt.S(Kb=x)をハッシュテーブル(Kb)から取り出し、紐付け処理は完了となる。すなわち、図1に示すように紐付けキーを割り当てると、紐付け処理のために、紐付けサーバ間で3回の通信が必要となる。なお、図1及び図2では、紐付けキーの数が4つの例を示しているが、紐付けキーが多くなると、紐付けサーバ間の通信回数も多くなり、通信負荷が並列処理による効率化を妨げることになる。
For example, as shown in FIG. 2, a message linking process is performed. Specifically, first, the associating
また、図3に示すように、メッセージ振分部が、複数の紐付けキーを含むメッセージの振分けを行う際に、例えばメッセージ中において先に検出した紐付けキーに従ってメッセージの割り振りを行うと、図4に示すような問題が生じてしまう。なお、図3では、紐付けサーバ1には、紐付けキーKc及びKaが割り当てられ、紐付けサーバ2には、紐付けキーKd及びKbが割り当てられているものとする。また、図3では、紐付けキーKaより先に紐付けキーKdを検出し、紐付けキーKdに従ってProt.Pを紐付けサーバ2に割り振るものとする。
In addition, as shown in FIG. 3, when the message distribution unit distributes a message including a plurality of association keys, for example, if the message is allocated according to the association key detected earlier in the message, The problem shown in FIG. In FIG. 3, it is assumed that the
この状態で、メッセージの紐付け処理を行うと、図4に示すように、紐付けサーバ1は、紐付けキーKcのハッシュテーブルからProt.Oを取り出すが、紐付けサーバ1内の紐付けキーKaのハッシュテーブルにProt.Pが登録されていないため、Prot.Oと紐付くはずのProt.Pを探し出すことができない。この場合、Prot.Pを紐付けキーKaのハッシュテーブルにも登録することで、紐付け処理を行うことができるようになるが、ハッシュテーブルにおいて領域を余分に確保しなければならず、またメッセージコピーのための通信負荷がかかってしまい、並列化を妨げることになる。
When the message linking process is performed in this state, as shown in FIG. 4, the linking
そこで、本実施の形態では、紐付けキーの割り当てパターンのうち、所定の条件(例えば、各紐付けサーバの稼働率など)を満たし且つ紐付けサーバ間の通信負荷が最も少なくなるパターンを特定し、各紐付けサーバに対して割り当てる紐付けキーを最適化する。例えば図5に示すようなキー割り当てを行う。図5では、紐付けサーバ1には、紐付けキーKc及びKaが割り当てられ、紐付けサーバ2には、紐付けキーKd及びKbが割り当てられている。さらに、複数の紐付けキーを含むメッセージを重複登録しなくても済むように、紐付けキーの優先度を決定する。例えば、Prot.O(Kc,Ka)→Prot.P(Ka,Kd)→Prot.R(Kd,Kb)→Prot.S(Kb)の順に紐付けが行われる場合、Kc(=1),Ka(=2),Kd(=3),Kb(=4)の順に優先度を付与する。そして、メッセージ振分部において、優先度に従ってメッセージの振分けを行うようにすれば、例えばProt.Pは、KdよりKaの方が優先度が高いため、紐付けサーバ1に割り振られることとなる。これにより、重複登録しなくても、紐付け処理を行うことができるようになり、図2では3回だった通信回数が、1回まで減らすことができる。以下、本技術の一実施の形態について説明する。
Therefore, in the present embodiment, a pattern that satisfies a predetermined condition (for example, the operation rate of each linking server) and that minimizes the communication load between the linking servers is identified from the linking key allocation patterns. Optimize the linking key assigned to each linking server. For example, key assignment as shown in FIG. 5 is performed. In FIG. 5, linking keys Kc and Ka are allocated to the linking
まず、図6に本技術の一実施の形態に係るメッセージ紐付け処理装置のシステム概要を示す。本実施の形態におけるメッセージ紐付け処理装置は、各紐付け処理部の処理能力などを格納するサーバDB101と、プロトコル毎に当該プロトコルに係るメッセージに含まれる紐付けキーを格納するキー定義DB103と、サーバDB101及びキー定義DB103に格納されているデータに基づき、紐付けキーの割り当てパターンのうち、所定の条件を満たし且つ紐付け処理部(紐付けサーバ)間の通信負荷が最も少なくなるパターンを特定するキー配置最適化部105と、キー配置最適化部105により特定された割り当てパターンに係るキー配置を格納するキー配置格納部107と、キー配置格納部107に格納されているキー配置に基づき、各紐付けキーの優先度を決定するキー優先度決定部109と、キー優先度決定部109により決定された紐付けキーの優先度を格納するキー優先度格納部111と、各トランザクションに係るメッセージを受信するメッセージ受信部113と、キー配置格納部107に格納されているキー配置とキー優先度格納部111に格納されている優先度とに従ってメッセージ受信部113の受信したメッセージを、担当紐付け処理部に振分けるメッセージ振分部115と、担当する紐付けキー毎のハッシュテーブルを各々有し、各々連携してメッセージの紐付け処理を実施する紐付け処理部117乃至121とを有する。なお、紐付け処理部117乃至121は、例えば別サーバ上に構成されるものとする。
First, FIG. 6 shows a system overview of a message linking processing device according to an embodiment of the present technology. The message linking processing device in the present embodiment includes a
また、キー配置最適化部105は、キー定義DB103から各紐付けキーを抽出し、抽出した紐付けキーの各々に対応するノードと同一のプロトコルに属する紐付けキーのノード間を結ぶリンクとを含む構造体のデータに関連する処理を実施する構造体処理部1051と、紐付けキーの割り当てパターンのうち、所定の条件を満たし且つ紐付け処理部(紐付けサーバ)間の通信負荷が最も少なくなるパターンを特定するパターン特定部1053とを有する。
Further, the key
図7に、サーバDB101に格納されるデータの一例を示す。図7の例では、サーバDB101には、サーバ(紐付け処理部)IDの列と、処理能力の列とが含まれる。処理能力の列には、各紐付けサーバ(紐付け処理部)の相対的な処理能力を表す値が格納される。
FIG. 7 shows an example of data stored in the
図8に、キー定義DB103に格納されるデータの一例を示す。図8の例では、キー定義DB103には、プロトコルの列と、キー(紐付けキー)の列とが含まれる。
FIG. 8 shows an example of data stored in the
図9に、キー配置格納部107に格納されるデータの一例を示す。図9の例では、キー配置格納部107には、サーバ(紐付け処理部)IDの列と、キー(紐付けキー)の列とが含まれる。キーの列には、紐付けサーバ(紐付け処理部)に対して割り当てる紐付けキーが設定される。なお、キー配置格納部107には、キー配置に対応する構造体のデータと後で説明する最小通信負荷とが併せて格納される。
FIG. 9 shows an example of data stored in the key
図10に、キー優先度格納部111に格納されるデータの一例を示す。図10の例では、キー優先度格納部111には、キー(紐付けキー)の列と、優先度の列とが含まれる。
FIG. 10 shows an example of data stored in the key
次に、図11乃至図21を用いて、図6に示したメッセージ紐付け処理装置の処理内容を説明する。なお、本実施の形態では、3つの紐付けサーバ(1乃至3)が存在する場合を例に説明する。まず、構造体処理部1051が、キー定義DB103から各紐付けキーを抽出し、抽出した紐付けキーの各々に対応するノードと同一のプロトコルに属する紐付けキーのノード間を結ぶリンクとを含む構造体のデータを生成し、記憶装置に格納する(図11:ステップS1)。例えば図8に示したようなデータ(P1乃至P10)がキー定義DB103に格納されている場合に、本ステップの処理を実施すると、図12に示すような構造体のデータが生成される。図12に示す構造体には、キー定義DB103(図8)における紐付けキーKx、Ka、Kb、Kc、Kd、Ke、Kf、Kg、Ky及びKzの各ノードが含まれている。さらに、図12に示す構造体には、キー定義DB103におけるプロトコルP1乃至P10の各々に対応するリンクP1乃至P10が含まれている。なお、リンクP1は、プロトコルP1に属する紐付けキーKx及びKaのノード間を結ぶリンクである。また、リンクP2は、プロトコルP2に属する紐付けキーKa及びKbのノード間を結ぶリンクである。さらに、リンクP3は、プロトコルP3に属する紐付けキーKb及びKcのノード間を結ぶリンクである。また、リンクP4は、プロトコルP4に属する紐付けキーKc及びKdのノード間を結ぶリンクである。さらに、リンクP5は、プロトコルP5に属する紐付けキーKd及びKyのノード間を結ぶリンクである。また、リンクP6は、プロトコルP6に属する紐付けキーKc及びKeのノード間を結ぶリンクである。さらに、リンクP7は、プロトコルP7に属する紐付けキーKe及びKfのノード間を結ぶリンクである。また、リンクP8は、プロトコルP8に属する紐付けキーKf及びKzのノード間を結ぶリンクである。さらに、リンクP9は、プロトコルP9に属する紐付けキーKe及びKgのノード間を結ぶリンクである。また、リンクP10は、プロトコルP10に属する紐付けキーKb及びKgのノード間を結ぶリンクである。
Next, processing contents of the message association processing apparatus shown in FIG. 6 will be described with reference to FIGS. In this embodiment, a case where there are three tying servers (1 to 3) will be described as an example. First, the
そして、構造体処理部1051は、単一のプロトコルに属する紐付けキーのノードを構造体から削除する(ステップS3)。なお、図8では、紐付けキーKxは、プロトコルP1にのみ含まれ、紐付けキーKyは、プロトコルP5にのみ含まれ、紐付けキーKzは、プロトコルP8にのみ含まれる。従って、図12に示した構造体から紐付けキーKx、Ky及びKzのノードが削除され、図13の右側に示すような構造体となる。なお、図13の右側の構造体には、紐付けキーKa、Kb、Kc、Kd、Ke、Kf及びKgのノードが含まれる。
And the
そして、構造体処理部1051及びパターン特定部1053が、サーバDB101に格納されているデータと記憶装置に格納されている構造体のデータとを用いて処理量計算処理を実施し、キー配置を特定してキー配置格納部107に格納する(ステップS5)。
Then, the
処理量計算処理については、図14乃至図21を用いて説明する。まず、構造体処理部1051が、記憶装置に格納されている構造体のデータを解析し、構造体中にループがあるか否か判断する(図14:ステップS11)。例えば、構造体に含まれるリンクを辿って各ノードを検出し、検出したノードについてはフラグを立てる。そして、フラグの立てられたノードを再度検出した場合には、ループありと判断する。構造体中にループがないと判断された場合(ステップS11:Noルート)、端子Aを介してステップS21(図18)の処理に移行する。なお、図18の処理は後で説明する。
The processing amount calculation process will be described with reference to FIGS. First, the
一方、構造体中にループがあると判断された場合(ステップS11:Yesルート)、構造体処理部1051は、ループを構成するリンクを切断候補リンクとして抽出する(ステップS13)。例えば、図15に示すように、紐付けキーKbと紐付けキーKcとを結ぶリンクP3と、紐付けキーKcと紐付けキーKeとを結ぶリンクP6と、紐付けキーKeと紐付けキーKgとを結ぶリンクP9と、紐付けキーKgと紐付けキーKbとを結ぶリンクP10とによってループが形成されている場合には、リンクP3、P6、P9及びP10を切断候補リンクとして抽出する。
On the other hand, when it is determined that there is a loop in the structure (step S11: Yes route), the
そして、構造体処理部1051は、抽出した切断候補リンクのうち未処理の切断候補リンクを特定する(ステップS15)。ここでは、例えばリンクP10が特定されたものとする。そして、構造体処理部1051は、特定された切断候補リンクを切断したものとみなして、再帰的に処理量計算処理を実施する(ステップS17)。例えば、リンクP10が切断されると、図16の右側に示すような構造体となり、この構造体にて再度処理量計算処理を実施することとなる。なお、ステップS17の処理が終了すると、特定された切断候補リンクは再接続したものとみなす。
Then, the
なお、構造体中に形成されるループは1つとは限らない。例えば、図17(a)に示すようにループが2つ形成されている場合、まず、リンクP3、P6、P9及びP10によって形成されるループについて切断候補リンクを特定し(ここではリンクP10が特定されたものとする)、リンクP10を切断したものとみなして、処理量計算処理を実施する。なお、リンクP10が切断されると、図17(b)に示すような構造体となる。次に、図17(b)の構造体において、リンクP14、P16、P17及びP15によって形成されるループについて切断候補リンクを特定し(ここではリンクP17が特定されたものとする)、リンクP17を切断したものとみなして、さらに処理量計算処理を実施する。なお、リンクP17が切断されると、図17(c)に示すような構造体となる。図17(c)の構造体中には、ループは形成されていない。このように、構造体中のループがなくなるまで再帰的に処理量計算処理を実施する。 Note that the number of loops formed in the structure is not limited to one. For example, when two loops are formed as shown in FIG. 17A, first, a disconnection candidate link is specified for the loop formed by the links P3, P6, P9, and P10 (here, the link P10 is specified). It is assumed that the link P10 has been disconnected, and the processing amount calculation process is performed. When the link P10 is cut, a structure as shown in FIG. Next, in the structure shown in FIG. 17B, a candidate cut link is specified for the loop formed by the links P14, P16, P17, and P15 (here, it is assumed that the link P17 is specified), and the link P17 is changed. Considering that it has been cut, further processing for calculating the amount of processing is performed. When the link P17 is cut, a structure as shown in FIG. A loop is not formed in the structure of FIG. In this way, the processing amount calculation process is recursively performed until there is no loop in the structure.
そして、構造体処理部1051は、全ての切断候補リンクについて処理が完了したか判断する(ステップS19)。全ての切断候補リンクについて処理が完了していなければ(ステップS19:Noルート)、ステップS15の処理に戻る。一方、全ての切断候補リンクについて処理が完了した場合(ステップS19:Yesルート)、元の処理に戻る。
And the
次に、端子A以降の処理を図18を用いて説明する。なお、図16の右側に示した構造体について処理する場合を例として説明する。まず、パターン特定部1053は、構造体に含まれるノード(紐付けキー)の数とサーバDB101に格納されている各紐付けサーバ(紐付け処理部)の処理能力とに基づき、各紐付けサーバ(紐付け処理部)の担当処理量を算出し、一旦記憶装置に格納する(図18:ステップS21)。具体的には、各紐付けサーバの処理能力を全て加算して全体の処理能力を算出し、「(ノードの総数)×(紐付けサーバnの処理能力)/(全体の処理能力)」を、紐付けサーバnの担当処理量(すなわち、紐付けサーバnの担当する紐付けキーの数)として算出する。例えば、紐付けサーバ1乃至紐付けサーバ3について、図7に示したようなデータがサーバDB101に格納されている場合、全体の処理能力は7(=2+2+3)となる。また、図16の右側に示した構造体には、7つのノード(紐付けキーKa、Kb、Kc、Kd、Ke、Kf及びKgの各々のノード)が含まれている。従って、紐付けサーバ1の担当処理量は、「7×2/7=2」となり、紐付けサーバ2の担当処理量は、「7×2/7=2」となり、紐付けサーバ3の担当処理量は、「7×3/7=3」となる。
Next, the processing after the terminal A will be described with reference to FIG. A case where the structure shown on the right side of FIG. 16 is processed will be described as an example. First, the
そして、パターン特定部1053は、割り当てパターンテーブルを生成し、記憶装置に格納する(ステップS23)。具体的には、ステップS21において算出された担当処理量に従って紐付けキーを各紐付けサーバに割り当てる場合における紐付けキーの組み合わせである割り当てパターンを全て抽出し、抽出した全ての割り当てパターンを含む割り当てパターンテーブルを生成する。図19に、割り当てパターンテーブルの一例を示す。図19の例では、割り当てパターンテーブルには、サーバ(紐付け処理部)IDの列と、処理能力の列と、パターン1の列と、パターン2の列と、パターン3の列と、・・・とが含まれる。さらに、各パターンの列は、キー配置の列と、担当処理量の列と、通信負荷の列と、処理量の列と、稼働率の列とに分かれている。なお、処理能力の列には、サーバDB101に格納されている当該紐付けサーバ(紐付け処理部)の処理能力が設定される。キー配置の列には、当該パターンにおける紐付けキーの組み合わせが設定される。担当処理量の列には、ステップS21で算出した担当処理量が設定される。なお、通信負荷の列と処理量の列と稼働率の列との各列は、後で説明するステップS27の処理によって設定される。
And the pattern specific |
そして、パターン特定部1053は、割り当てパターンテーブルにおいて、未処理の割り当てパターンを特定する(ステップS25)。そして、パターン特定部1053は、特定された割り当てパターンにおける各紐付けサーバの通信負荷と処理量と稼働率とを算出し、割り当てパターンテーブルに設定する(ステップS27)。この処理については図20を用いて説明する。
Then, the
例えば、図19に示した割り当てパターンテーブルにおけるパターン1の場合、図20(a)に示すような割り当てとなる。図20(a)では、紐付けサーバ1と紐付けサーバ2に跨っているリンクは1つ存在する(ノード(Kb)とノード(Kc)とを結ぶリンク)。ここで、紐付けサーバ1と紐付けサーバ2に跨っているリンクの数に所定の重み付け値(ここでは1とする)を乗じて紐付けサーバ1と紐付けサーバ2間の通信負荷(1×1=1)を算出し、紐付けサーバ1と紐付けサーバ2との各々に均等に割り振る。すなわち、紐付けサーバ1と紐付けサーバ2とに0.5ずつ割り振る。また、図20(a)では、紐付けサーバ2と紐付けサーバ3に跨っているリンクも1つ存在する(ノード(Kc)とノード(Ke)とを結ぶリンク)。同様に、紐付けサーバ2と紐付けサーバ3に跨っているリンクの数に所定の重み付け値(ここでは1とする)を乗じて紐付けサーバ2と紐付けサーバ3間の通信負荷(1×1=1)を算出し、紐付けサーバ2と紐付けサーバ3との各々に均等に割り振る。すなわち、紐付けサーバ2と紐付けサーバ3とに0.5ずつ割り振る。結果として、パターン1の場合、紐付けサーバ1の通信負荷は0.5、紐付けサーバ2の通信負荷は1(=0.5+0.5)、紐付けサーバ3の通信負荷は0.5となる。なお、例えば、紐付けサーバ間の通信速度が遅い場合などは、通信負荷が高くなるような重み付け値を採用することもある。そして、紐付けサーバ毎に、担当処理量と通信負荷とを加算して処理量を算出する。すなわち、紐付けサーバ1の処理量は2.5(=2+0.5)、紐付けサーバ2の処理量は3(=2+1)、紐付けサーバ3の処理量は3.5(=3+0.5)となる。さらに、紐付けサーバ毎に、処理能力に対する処理量の比(=処理量/処理能力)を稼働率として算出する。すなわち、紐付けサーバ1の稼働率は125%(=2.5/2)、紐付けサーバ2の稼働率は150%(=3/2)、紐付けサーバ3の稼働率は117%(≒3.5/3)となる。
For example, in the case of
また、図19に示した割り当てパターンテーブルにおけるパターン2の場合、図20(b)に示すような割り当てとなる。図20(b)では、紐付けサーバ1と紐付けサーバ2に跨っているリンクは1つ存在する(ノード(Kb)とノード(Kc)とを結ぶリンク)。紐付けサーバ1と紐付けサーバ2に跨っているリンクの数に所定の重み付け値(ここでは1とする)を乗じて紐付けサーバ1と紐付けサーバ2間の通信負荷(1×1=1)を算出し、紐付けサーバ1と紐付けサーバ2との各々に均等に割り振る。すなわち、紐付けサーバ1と紐付けサーバ2とに0.5ずつ割り振る。また、図20(b)では、紐付けサーバ2と紐付けサーバ3に跨っているリンクは3つ存在する(ノード(Kc)とノード(Kd)とを結ぶリンク、ノード(Ke)とノード(Kf)とを結ぶリンク、ノード(Ke)とノード(Kg)とを結ぶリンク)。紐付けサーバ2と紐付けサーバ3に跨っているリンクの数に所定の重み付け値(ここでは1とする)を乗じて紐付けサーバ2と紐付けサーバ3間の通信負荷(3×1=3)を算出し、紐付けサーバ2と紐付けサーバ3との各々に均等に割り振る。すなわち、紐付けサーバ2と紐付けサーバ3とに1.5ずつ割り振る。結果として、パターン2の場合、紐付けサーバ1の通信負荷は0.5、紐付けサーバ2の通信負荷は2(=0.5+1.5)、紐付けサーバ3の通信負荷は1.5となる。そして、紐付けサーバ毎に、担当処理量と通信負荷とを加算して処理量を算出する。すなわち、紐付けサーバ1の処理量は2.5(=2+0.5)、紐付けサーバ2の処理量は4(=2+2)、紐付けサーバ3の処理量は4.5(=3+1.5)となる。さらに、紐付けサーバ毎に、処理能力に対する処理量の比(=処理量/処理能力)を稼働率として算出する。すなわち、紐付けサーバ1の稼働率は125%(=2.5/2)、紐付けサーバ2の稼働率は200%(=4/2)、紐付けサーバ3の稼働率は150%(=4.5/3)となる。
In the case of
さらに、図19に示した割り当てパターンテーブルにおけるパターン3の場合、図20(c)に示すような割り当てとなる。図20(c)では、紐付けサーバ1と紐付けサーバ2に跨っているリンクは1つ存在する(ノード(Kb)とノード(Kc)とを結ぶリンク)。紐付けサーバ1と紐付けサーバ2に跨っているリンクの数に所定の重み付け値(ここでは1とする)を乗じて紐付けサーバ1と紐付けサーバ2間の通信負荷(1×1=1)を算出し、紐付けサーバ1と紐付けサーバ2との各々に均等に割り振る。すなわち、紐付けサーバ1と紐付けサーバ2とに0.5ずつ割り振る。また、図20(c)では、紐付けサーバ2と紐付けサーバ3に跨っているリンクは3つ存在する(ノード(Kc)とノード(Kd)とを結ぶリンク、ノード(Kc)とノード(Ke)とを結ぶリンク、ノード(Kf)とノード(Ke)とを結ぶリンク)。紐付けサーバ2と紐付けサーバ3に跨っているリンクの数に所定の重み付け値(ここでは1とする)を乗じて紐付けサーバ2と紐付けサーバ3間の通信負荷(3×1=3)を算出し、紐付けサーバ2と紐付けサーバ3との各々に均等に割り振る。すなわち、紐付けサーバ2と紐付けサーバ3とに1.5ずつ割り振る。結果として、パターン3の場合、紐付けサーバ1の通信負荷は0.5、紐付けサーバ2の通信負荷は2(=0.5+1.5)、紐付けサーバ3の通信負荷は1.5となる。そして、紐付けサーバ毎に、担当処理量と通信負荷とを加算して処理量を算出する。すなわち、紐付けサーバ1の処理量は2.5(=2+0.5)、紐付けサーバ2の処理量は4(=2+2)、紐付けサーバ3の処理量は4.5(=3+1.5)となる。さらに、紐付けサーバ毎に、処理能力に対する処理量の比(=処理量/処理能力)を稼働率として算出する。すなわち、紐付けサーバ1の稼働率は125%(=2.5/2)、紐付けサーバ2の稼働率は200%(=4/2)、紐付けサーバ3の稼働率は150%(=4.5/3)となる。
Further, in the case of
そして、パターン特定部1053は、特定された割り当てパターンにおける通信負荷の合計を算出し、割り当てパターンテーブルに格納する(ステップS28)。
Then, the
そして、パターン特定部1053は、全ての割り当てパターンについて処理が完了したか判断する(ステップS29)。全ての割り当てパターンについて処理が完了していなければ(ステップS29:Noルート)、ステップS25の処理に戻る。一方、全ての割り当てパターンについて処理が完了した場合(ステップS29:Yesルート)、ステップS31の処理に移行する。なお、全ての割り当てパターンについて処理が完了すると、割り当てパターンテーブルには、図21に示すようなデータが格納される。
Then, the
ステップS31の処理に移行して、パターン特定部1053は、稼働率が所定の条件を満たし且つ通信負荷の合計が最小となる割り当てパターンを特定する(ステップS31)。ここで、所定の条件とは、例えば、割り当てパターンにおける紐付けサーバの稼働率が全て所定の基準値以内という条件である。なお、所定の条件を満たす割り当てパターンが1つも存在しない場合には、基準値との差が最も少ない割り当てパターンを選択する。
Shifting to the process of step S31, the
そして、パターン特定部1053は、キー配置格納部107にキー配置と最小通信負荷とが既に格納されているか判断する(ステップS33)。キー配置格納部107にキー配置と最小通信負荷とが未だ格納されていないと判断した場合(ステップS33:Noルート)、すなわち初回の処理の場合には、パターン特定部1053は、特定された割り当てパターンに係るキー配置をキー配置格納部107に格納すると共に、特定された割り当てパターンに係る通信負荷の合計を最小通信負荷としてキー配置格納部107に格納する(ステップS35)。なお、現在の構造体のデータについてもキー配置格納部107に格納する。その後、端子Bを介して図14に戻り、処理量計算処理を終了する。そして、元の処理に戻る。
Then, the
一方、キー配置格納部107にキー配置と最小通信負荷とが既に格納されていると判断した場合(ステップS33:Yesルート)、すなわち2回目以降の処理の場合(再帰的に実行する際はこちらの場合がある)には、パターン特定部1053は、特定された割り当てパターンに係る通信負荷の合計とキー配置格納部107に格納されている最小通信負荷とを比較し、特定された割り当てパターンに係る通信負荷の合計がキー配置格納部107に格納されている最小通信負荷より小さいか判断する(ステップS37)。特定された割り当てパターンに係る通信負荷の合計がキー配置格納部107に格納されている最小通信負荷以上と判断した場合(ステップS37:Noルート)、端子Bを介して図14に戻り、処理量計算処理を終了する。そして、元の処理に戻る。
On the other hand, when it is determined that the key arrangement and the minimum communication load are already stored in the key arrangement storage unit 107 (step S33: Yes route), that is, in the case of the second and subsequent processing (when executing recursively, click here) The
一方、特定された割り当てパターンに係る通信負荷の合計がキー配置格納部107に格納されている最小通信負荷より小さいと判断した場合(ステップS37:Yesルート)、パターン特定部1053は、特定された割り当てパターンに係るキー配置と通信負荷の合計とで、キー配置格納部107に格納されているキー配置と最小通信負荷とを更新する(ステップS39)。なお、さらに、現在の構造体のデータでキー配置格納部107に格納されている構造体のデータを更新する。その後、端子Bを介して図14に戻り、処理量計算処理を終了する。そして、元の処理に戻る。
On the other hand, if it is determined that the total communication load related to the specified allocation pattern is smaller than the minimum communication load stored in the key arrangement storage unit 107 (step S37: Yes route), the
以上のような処理を実施することにより、所定の条件を満たし且つ通信負荷が最小となる割り当てパターンを特定することができる。なお、構造体中にループが形成されている場合には、ループを形成するリンクを切断したものとみなして、再帰的に処理量計算処理を実施するので、構造体中にループが形成されている場合でも、最適な割り当てパターンを特定することができる。なお、ステップS3において、単一のプロトコルに属する紐付けキーのノード(上の例では、Kx、Ky及びKz)を削除しており、これらの紐付けキーは割り当てパターンに含まれていないが、メッセージの紐付け処理において、これらの紐付けキーを使用することはないので問題ない。 By performing the processing as described above, it is possible to specify an allocation pattern that satisfies a predetermined condition and minimizes the communication load. If a loop is formed in the structure, it is assumed that the link forming the loop is cut and the processing amount calculation process is performed recursively, so the loop is formed in the structure. Even in such a case, the optimum allocation pattern can be specified. Note that in step S3, the linking key nodes (Kx, Ky, and Kz in the above example) belonging to a single protocol are deleted, and these linking keys are not included in the allocation pattern. There is no problem because these linking keys are not used in the message linking process.
図11の説明に戻って、処理量計算処理(ステップS5)を実施した後、キー優先度決定部109は、キー配置格納部107に格納されているデータに基づき、紐付けキーの優先度を決定し、キー優先度格納部111に格納する(ステップS7)。この処理については、例えば、図21に示した割り当てパターンテーブルにおけるパターン1が、通信負荷が最小となる割り当てパターンとして特定された場合を例に説明する。まず、キー優先度決定部109は、構造体において葉ノードとみなされるノードを開始ノードとして特定する。例えば、パターン1の場合には、図20(a)に示したような割り当てとなるが、図20(a)では、ノード(Ka)、ノード(Kd)、ノード(Kf)及びノード(Kg)が葉ノードとしてみなされる。ここでは、ノード(Ka)を開始ノードとして特定したものとする。そして、キー優先度決定部109は、開始ノードからリンクを辿ることにより各ノードを検出する。例えば図20(a)では、ノード(Ka)→ノード(Kb)→ノード(Kc)→ノード(Kd)の順にノードを検出する。また、ノード(Kc)に戻って、ノード(Kc)→ノード(Ke)→ノード(Kf)の順にノードを検出する。さらに、ノード(Ke)に戻って、ノード(Ke)→ノード(Kg)の順にノードを検出する。そして、ノードを検出した順に連続する番号を当該ノードに対応する紐付けキーの優先度として付与する。従って、紐付けキーKaの優先度(1)が最も高く、紐付けキーKb、Kc、Kd、Ke、Kf及びKgの順に優先度(2から7まで)を付与する。なお、ノード(Kc)からノード(Kd)とノード(Ke)とが枝分かれになっているが、紐付けキーKdと紐付けキーKeとを両方含むプロトコルは存在しないため、紐付けキーKdと紐付けキーKeとに同じ優先度を付与してもよい。紐付けキーKfと紐付けキーKgについても同様である。その後、本処理を終了する。
Returning to the description of FIG. 11, after performing the processing amount calculation process (step S <b> 5), the key
以上のような処理を実施することにより、所定の条件を満たし且つ通信負荷が最小となる割り当てパターンを特定することができ、さらに紐付けキーの優先度を適切に決定することができるので、紐付け処理部117乃至121の通信負荷を抑えつつ、紐付け処理を並列化できるようになる。なお、紐付け処理部117乃至121では、キー配置格納部107に格納されているキー配置に従って紐付け処理を実施するようにすればよい。また、メッセージ振分部115では、キー配置格納部107に格納されているキー配置とキー優先度格納部111に格納されている優先度とに従ってメッセージの振分けを行うようにすればよい。
By performing the processing as described above, it is possible to specify an allocation pattern that satisfies a predetermined condition and minimizes the communication load, and furthermore, it is possible to appropriately determine the priority of the binding key. The tying process can be parallelized while suppressing the communication load of the tying
以上本技術の一実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、図6で示した構成については、複数のコンピュータで実現されることが前提であるが、どの構成要素をどのコンピュータに実装するかは任意である。例えば複数の紐付け処理部を1つのコンピュータで起動させるようにしても良い。なお、図6では、紐付け処理部の数が3つの例を示しているが、紐付け処理部の数は3つに限定されない。 Although one embodiment of the present technology has been described above, the present technology is not limited to this. For example, the configuration shown in FIG. 6 is premised on being realized by a plurality of computers, but which component is mounted on which computer is arbitrary. For example, a plurality of linking processing units may be activated by one computer. Although FIG. 6 shows an example in which the number of tying processing units is three, the number of tying processing units is not limited to three.
また、上では、メッセージに紐付けキーが2つ含まれる場合を例に説明したが、紐付けキーが3つ以上含まれる場合もある。例えば紐付けキーが3つ含まれる場合の一例を図22(a)に示す。この場合、図22(b)に示すような構造体に従って処理を実施するようにすればよい。なお、図22(b)の構造体におけるリンクP1は、2点を結ぶ一般的なリンクではなく、3点を結ぶ概念的なリンクを表している。すなわち、図22(b)において、ノード(Ka)とノード(Kb)、ノード(Kb)とノード(Kc)、及びノード(Ka)とノード(Kc)がリンクP1を介して接続されている。ただし、ノード(Ka)、ノード(Kb)及びノード(Kc)によってループは形成されない。このように、3つ以上の紐付けキーを含む場合には、概念的なリンクを用いて構造体を表現する。このようにすれば、紐付けキーが3つ以上含まれる場合であっても対処できるようになる。 In the above description, the case where two linking keys are included in the message has been described as an example, but there may be cases where three or more linking keys are included. For example, FIG. 22A shows an example in which three linking keys are included. In this case, the process may be performed according to a structure as shown in FIG. Note that the link P1 in the structure of FIG. 22B represents a conceptual link connecting three points, not a general link connecting two points. That is, in FIG. 22B, the node (Ka) and the node (Kb), the node (Kb) and the node (Kc), and the node (Ka) and the node (Kc) are connected via the link P1. However, a loop is not formed by the node (Ka), the node (Kb), and the node (Kc). As described above, when three or more linking keys are included, the structure is expressed using a conceptual link. In this way, it is possible to cope even when three or more tying keys are included.
また、上で説明した各テーブルの構成は一例であって、必ずしも上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。また、並列に実行させるようにしても良い。 Further, the configuration of each table described above is an example, and the configuration as described above is not necessarily required. Further, in the processing flow, the processing order can be changed if the processing result does not change. Moreover, you may make it perform in parallel.
以上本実施の形態をまとめると以下のようになる。 The present embodiment can be summarized as follows.
本メッセージ紐付け処理方法は、プロトコル毎に当該プロトコルに係るメッセージに含まれ且つメッセージの紐付け処理で用いられる紐付けキーを格納するキー定義データベースから各紐付けキーを抽出し、抽出した紐付けキーの各々に対応するノードと同一のプロトコルに属する紐付けキーのノード間を結ぶリンクとを含む構造体のデータを生成するステップと、複数のリンクによって構造体中にループが形成されているか判断する判断ステップと、構造体中にループが形成されていないと判断された場合、各々連携して紐付け処理を実施する複数の紐付け処理部の各々に対する紐付けキーの割り当ての組み合わせである割り当てパターンのうち、紐付け処理部間の通信負荷が最小であるという第1条件を含む所定の条件を満たすパターンを特定し、特定された割り当てパターンに係る割り当てデータをキー情報格納部に格納するパターン特定ステップとを含む。 This message linking processing method extracts each linking key from the key definition database that stores the linking key that is included in the message related to the protocol for each protocol and that is used in the message linking processing. A step of generating data of a structure including a node corresponding to each of the keys and a link connecting nodes of the tied keys belonging to the same protocol, and determining whether a loop is formed in the structure by the plurality of links An allocation that is a combination of a linking key allocation to each of a plurality of linking processing units that perform linking processing in cooperation with each other when it is determined that a loop is not formed in the structure. Among the patterns, a pattern that satisfies a predetermined condition including the first condition that the communication load between the linking processing units is the smallest Identified, and a pattern specifying step of storing allocation data relating to the identified allocation pattern in the key information storage unit.
このようにすれば、紐付け処理部間の通信負荷が最小となる割り当てパターンが特定されるので、紐付け処理部の通信負荷を抑えつつ、メッセージの紐付け処理を並列化できるようになる。 In this way, since the allocation pattern that minimizes the communication load between the linking processing units is specified, it is possible to parallelize the message linking processing while suppressing the communication load of the linking processing unit.
また、構造体中にループが形成されていないと判断された場合、構造体において葉ノードとみなされるノードのいずれかを開始ノードとして特定するステップと、構造体において開始ノードからリンクを辿ることによりノードを検出し、検出した順に連続する番号を当該ノードに対応する紐付けキーの優先度として付与し、優先度格納部に格納するステップとをさらに含むようにしてもよい。このようにすれば、リンク(すなわち、紐付けキーの繋がり)に沿って各紐付けキーに優先度が付与されるため、例えば複数の紐付けキーを含むメッセージを受信した場合に、優先度の高い紐付けキーに従ってメッセージを担当紐付け処理部に振分けるようにすれば、メッセージの紐付けを適切に並列処理できるようになる。 Also, when it is determined that no loop is formed in the structure, a step of identifying one of the nodes regarded as a leaf node in the structure as a start node, and following the link from the start node in the structure The method may further include a step of detecting a node, assigning consecutive numbers in the order of detection as a priority of a linking key corresponding to the node, and storing the priority in a priority storage unit. In this way, since priority is given to each linking key along the link (that is, linking of linking keys), for example, when a message including a plurality of linking keys is received, If messages are assigned to a responsible linking processing unit according to a high linking key, message linking can be appropriately processed in parallel.
さらに、構造体中にループが形成されていると判断された場合、ループを形成する複数のリンクの各々について、当該リンクを切断したものとみなして、上記判断ステップ以降の処理を実施するステップをさらに含むようにしてもよい。そして、上で述べたパターン特定ステップが、キー情報格納部に割り当てデータと通信負荷とが格納されていない場合、特定された割り当てパターンに係る割り当てデータと通信負荷とをキー情報格納部に格納するステップと、キー情報格納部に割り当てデータと通信負荷とが既に格納されている場合、特定された割り当てパターンに係る通信負荷とキー情報格納部に格納されている通信負荷とを比較し、キー情報格納部に格納されている通信負荷より、特定された割り当てパターンに係る通信負荷の方が小さい場合、特定された割り当てパターンに係る割り当てデータと通信負荷とでキー情報格納部を更新するステップとを含むようにしてもよい。このようにすれば、構造体中にループが形成されている場合でも対処することができるようになる。 Further, when it is determined that a loop is formed in the structure, for each of the plurality of links forming the loop, the link is considered to have been disconnected, and the steps after the determination step are performed. Further, it may be included. When the pattern specifying step described above does not store the allocation data and the communication load in the key information storage unit, the allocation data and the communication load related to the specified allocation pattern are stored in the key information storage unit. When the allocation data and the communication load are already stored in the key information storage unit, the key information is compared with the communication load related to the specified allocation pattern and the communication load stored in the key information storage unit. A step of updating the key information storage unit with the allocation data and communication load related to the specified allocation pattern when the communication load related to the specified allocation pattern is smaller than the communication load stored in the storage unit; It may be included. In this way, it is possible to cope with a case where a loop is formed in the structure.
また、上で述べたパターン特定ステップが、割り当てパターン毎に、各紐付け処理部について、当該紐付け処理部における紐付けキーのノードと他の紐付け処理部における紐付けキーのノードとを結ぶリンクの数を計数し、当該リンクの数に所定の重み付け値を乗じて通信負荷を算出するステップを含むようにしてもよい。 In addition, the pattern specifying step described above connects, for each allocation pattern, a linking key node in the linking processing unit and a linking key node in another linking processing unit for each linking processing unit. A step of counting the number of links and calculating a communication load by multiplying the number of links by a predetermined weighting value may be included.
さらに、上で述べた所定の条件が、紐付け処理部の稼働率に関する第2条件を含む場合もある。 Furthermore, the predetermined condition described above may include a second condition regarding the operating rate of the linking processing unit.
また、上で述べたパターン特定ステップが、割り当てパターン毎に、各紐付け処理部について、通信負荷と当該紐付け処理部における紐付けキーの数とを加算して当該紐付け処理部の処理量を算出し、紐付け処理部の処理能力に対する処理量の比を稼働率として算出するステップを含むようにしてもよい。 In addition, the pattern specifying step described above adds the communication load and the number of linking keys in the linking processing unit for each linking processing unit for each allocation pattern, and the processing amount of the linking processing unit And calculating the ratio of the processing amount to the processing capability of the linking processing unit as the operation rate.
さらに、紐付け処理部の稼働率に関する条件が、割り当てパターンにおける各紐付け処理部の稼働率が全て所定の基準値以内であるという条件である場合もある。これによって、例えば、ある1台の紐付け処理部に処理が集中するような割り当てパターンは通信負荷が少なくても採用されなくなり、より適切な並列処理を行うことができるようになる。 Furthermore, the condition regarding the operating rate of the linking processing unit may be a condition that the operating rates of the linking processing units in the allocation pattern are all within a predetermined reference value. As a result, for example, an allocation pattern in which processing is concentrated on a certain linking processing unit is not adopted even if the communication load is small, and more appropriate parallel processing can be performed.
なお、上記装置を実現するためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等の記憶媒体又は記憶装置に格納される。なお、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。 A program for realizing the above apparatus can be created, and the program is stored in a storage medium or storage device such as a flexible disk, a CD-ROM, a magneto-optical disk, a semiconductor memory, or a hard disk. The intermediate processing result is temporarily stored in a storage device such as a main memory.
なお、図6で示した構成で用いられるコンピュータは、図23に示すように、メモリ2501(記憶部)とCPU2503(処理部)とハードディスク・ドライブ(HDD)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。OS及びWebブラウザを含むアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。必要に応じてCPU2503は、表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、必要な動作を行わせる。また、処理途中のデータについては、メモリ2501に格納され、必要があればHDD2505に格納される。このようなコンピュータは、上で述べたCPU2503、メモリ2501などのハードウエアとOS及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
The computer used in the configuration shown in FIG. 6 has a display connected to a memory 2501 (storage unit), a CPU 2503 (processing unit), a hard disk drive (HDD) 2505, and a
(付記1)
プロトコル毎に当該プロトコルに係るメッセージに含まれ且つ前記メッセージの紐付け処理で用いられる紐付けキーを格納するキー定義データベースから各前記紐付けキーを抽出し、抽出した前記紐付けキーの各々に対応するノードと同一の前記プロトコルに属する前記紐付けキーのノード間を結ぶリンクとを含む構造体のデータを生成するステップと、
複数の前記リンクによって前記構造体中にループが形成されているか判断する判断ステップと、
前記構造体中にループが形成されていないと判断された場合、各々連携して前記紐付け処理を実施する複数の紐付け処理部の各々に対する前記紐付けキーの割り当ての組み合わせである割り当てパターンのうち、前記紐付け処理部間の通信負荷が最小であるという第1条件を含む所定の条件を満たすパターンを特定し、特定された前記割り当てパターンに係る割り当てデータをキー情報格納部に格納するパターン特定ステップと、
をコンピュータに実行させるためのメッセージ紐付け処理プログラム。
(Appendix 1)
Each linking key is extracted from a key definition database that stores a linking key included in a message related to the protocol and used in the linking process of the message for each protocol, and corresponds to each of the extracted linking keys Generating data of a structure including a link connecting nodes of the tying key belonging to the same protocol as the node to be
A determination step of determining whether a loop is formed in the structure by a plurality of the links;
When it is determined that no loop is formed in the structure, an assignment pattern that is a combination of assignment of the linking keys to each of a plurality of linking processes that perform the linking process in cooperation with each other. Among these, a pattern that specifies a pattern that satisfies a predetermined condition including a first condition that the communication load between the linking processing units is minimum, and stores allocation data related to the specified allocation pattern in a key information storage unit Specific steps,
Message linking processing program for causing a computer to execute
(付記2)
前記構造体中にループが形成されていないと判断された場合、前記構造体において葉ノードとみなされる前記ノードのいずれかを開始ノードとして特定するステップと、
前記構造体において前記開始ノードから前記リンクを辿ることにより前記ノードを検出し、検出した順に連続する番号を当該ノードに対応する前記紐付けキーの優先度として付与し、優先度格納部に格納するステップと、
をさらにコンピュータに実行させるための付記1記載のメッセージ紐付け処理プログラム。
(Appendix 2)
If it is determined that no loop is formed in the structure, specifying any of the nodes regarded as leaf nodes in the structure as a start node;
The node is detected by tracing the link from the start node in the structure, and a consecutive number in the detected order is assigned as the priority of the linking key corresponding to the node, and stored in the priority storage unit Steps,
The message linking process program according to
(付記3)
前記構造体中にループが形成されていると判断された場合、前記ループを形成する複数の前記リンクの各々について、当該リンクを切断したものとみなして、前記判断ステップ以降の処理を実施するステップ
をさらにコンピュータに実行させ、
前記パターン特定ステップが、
前記キー情報格納部に前記割り当てデータと前記通信負荷とが格納されていない場合、特定された前記割り当てパターンに係る前記割り当てデータと前記通信負荷とを前記キー情報格納部に格納するステップと、
前記キー情報格納部に前記割り当てデータと前記通信負荷とが既に格納されている場合、特定された前記割り当てパターンに係る前記通信負荷と前記キー情報格納部に格納されている前記通信負荷とを比較し、前記キー情報格納部に格納されている前記通信負荷より、特定された前記割り当てパターンに係る前記通信負荷の方が小さい場合、特定された前記割り当てパターンに係る前記割り当てデータと前記通信負荷とで前記キー情報格納部を更新するステップと、
を含む付記1又は2記載のメッセージ紐付け処理プログラム。
(Appendix 3)
When it is determined that a loop is formed in the structure, each of the plurality of links forming the loop is regarded as a link cut, and the processing after the determination step is performed. Is further executed on the computer,
The pattern specifying step includes
Storing the allocation data and the communication load related to the specified allocation pattern in the key information storage unit when the allocation data and the communication load are not stored in the key information storage unit;
When the allocation data and the communication load are already stored in the key information storage unit, the communication load related to the specified allocation pattern is compared with the communication load stored in the key information storage unit When the communication load related to the specified allocation pattern is smaller than the communication load stored in the key information storage unit, the allocation data and the communication load related to the specified allocation pattern Updating the key information storage unit with:
The message linking process program according to
(付記4)
前記パターン特定ステップが、
前記割り当てパターン毎に、各前記紐付け処理部について、当該紐付け処理部における前記紐付けキーのノードと他の前記紐付け処理部における前記紐付けキーのノードとを結ぶ前記リンクの数を計数し、当該リンクの数に所定の重み付け値を乗じて前記通信負荷を算出するステップ
を含む付記1乃至3のいずれか1つ記載のメッセージ紐付け処理プログラム。
(Appendix 4)
The pattern specifying step includes
For each of the allocation processing units, for each allocation pattern, the number of the links that connect the node of the association key in the association processing unit and the node of the association key in the other association processing unit is counted. The message linking processing program according to any one of
(付記5)
前記所定の条件が、前記紐付け処理部の稼働率に関する第2条件を含む
ことを特徴とする付記1乃至4のいずれか1つ記載のメッセージ紐付け処理プログラム。
(Appendix 5)
The message linking process program according to any one of
(付記6)
前記パターン特定ステップが、
前記割り当てパターン毎に、各前記紐付け処理部について、前記通信負荷と当該紐付け処理部における前記紐付けキーの数とを加算して当該紐付け処理部の処理量を算出し、前記紐付け処理部の処理能力に対する前記処理量の比を前記稼働率として算出するステップ
を含む付記5記載のメッセージ紐付け処理プログラム。
(Appendix 6)
The pattern specifying step includes
For each of the allocation patterns, for each of the linking processing units, the processing load of the linking processing unit is calculated by adding the communication load and the number of linking keys in the linking processing unit, and the linking The message linking process program according to
(付記7)
前記第2条件が、前記割り当てパターンにおける前記紐付け処理部の稼働率が全て所定の基準値以内であるという条件である
ことを特徴とする付記5記載のメッセージ紐付け処理プログラム。
(Appendix 7)
The message linking process program according to
(付記8)
プロトコル毎に当該プロトコルに係るメッセージに含まれ且つ前記メッセージの紐付け処理で用いられる紐付けキーを格納するキー定義データベースから各前記紐付けキーを抽出し、抽出した前記紐付けキーの各々に対応するノードと同一の前記プロトコルに属する前記紐付けキーのノード間を結ぶリンクとを含む構造体のデータを生成するステップと、
複数の前記リンクによって前記構造体中にループが形成されているか判断する判断ステップと、
前記構造体中にループが形成されていないと判断された場合、各々連携して前記紐付け処理を実施する複数の紐付け処理部の各々に対する前記紐付けキーの割り当ての組み合わせである割り当てパターンのうち、前記紐付け処理部間の通信負荷が最小であるという第1条件を含む所定の条件を満たすパターンを特定し、特定された前記割り当てパターンに係る割り当てデータをキー情報格納部に格納するパターン特定ステップと、
を含み、コンピュータにより実行されるメッセージ紐付け処理方法。
(Appendix 8)
Each linking key is extracted from a key definition database that stores a linking key included in a message related to the protocol and used in the linking process of the message for each protocol, and corresponds to each of the extracted linking keys Generating data of a structure including a link connecting nodes of the tying key belonging to the same protocol as the node to be
A determination step of determining whether a loop is formed in the structure by a plurality of the links;
When it is determined that no loop is formed in the structure, an assignment pattern that is a combination of assignment of the linking keys to each of a plurality of linking processes that perform the linking process in cooperation with each other. Among these, a pattern that specifies a pattern that satisfies a predetermined condition including a first condition that the communication load between the linking processing units is minimum, and stores allocation data related to the specified allocation pattern in a key information storage unit Specific steps,
A message linking processing method executed by a computer.
(付記9)
プロトコル毎に当該プロトコルに係るメッセージに含まれ且つ前記メッセージの紐付け処理で用いられる紐付けキーを格納するキー定義データベースから各前記紐付けキーを抽出し、抽出した前記紐付けキーの各々に対応するノードと同一の前記プロトコルに属する前記紐付けキーのノード間を結ぶリンクとを含む構造体のデータを生成する構造体処理手段と、
複数の前記リンクによって前記構造体中にループが形成されているか判断し、前記構造体中にループが形成されていないと判断された場合、各々連携して前記紐付け処理を実施する複数の紐付け処理手段の各々に対する前記紐付けキーの割り当ての組み合わせである割り当てパターンのうち、前記紐付け処理手段間の通信負荷が最小であるという第1条件を含む所定の条件を満たすパターンを特定し、特定された前記割り当てパターンに係る割り当てデータをキー情報格納部に格納するパターン特定手段と、
を有するメッセージ紐付け処理装置。
(Appendix 9)
Each linking key is extracted from a key definition database that stores a linking key included in a message related to the protocol and used in the linking process of the message for each protocol, and corresponds to each of the extracted linking keys A structure processing means for generating data of a structure including a link connecting nodes of the linking key belonging to the same protocol as the node to be
It is determined whether a loop is formed in the structure by the plurality of links, and when it is determined that a loop is not formed in the structure, a plurality of strings that perform the linking process in cooperation with each other A pattern satisfying a predetermined condition including a first condition that the communication load between the linking processing means is the minimum among the allocation patterns that are combinations of the linking keys assigned to each of the linking processing means; Pattern specifying means for storing allocation data related to the specified allocation pattern in a key information storage unit;
A message linking processing apparatus.
101 サーバDB 103 キー定義DB
105 キー配置最適化部 107 キー配置格納部
109 キー優先度決定部 111 キー優先度格納部
113 メッセージ受信部 115 メッセージ振分部
117,119,121 紐付け処理部
1051 構造体処理部 1053 パターン特定部
101
105 Key
Claims (5)
複数の前記リンクによって前記構造体中にループが形成されているか判断する判断ステップと、
前記構造体中にループが形成されていないと判断された場合、各々連携して前記紐付け処理を実施する複数の紐付け処理部の各々に対する前記紐付けキーの割り当ての組み合わせである割り当てパターンのうち、前記紐付け処理部間の通信負荷が最小であるという第1条件を含む所定の条件を満たす割り当てパターンを特定し、特定された前記割り当てパターンに係る割り当てデータをキー情報格納部に格納するパターン特定ステップと、
をコンピュータに実行させるためのメッセージ紐付け処理プログラム。 For each protocol, each of the linking keys is extracted from a key definition database that stores a linking key that is included in a message related to the protocol and is used in a linking process that is a process of associating messages related to the same transaction, and generating a node corresponding to each of the extraction the link key that is, a link connecting the nodes corresponding to the link key belonging to the same of the protocol, the data structure including,
A determination step of determining whether a loop is formed in the structure by a plurality of the links;
When it is determined that no loop is formed in the structure, an assignment pattern that is a combination of assignment of the linking keys to each of a plurality of linking processes that perform the linking process in cooperation with each other. Among them, an allocation pattern that satisfies a predetermined condition including a first condition that the communication load between the linking processing units is minimum is specified, and allocation data related to the specified allocation pattern is stored in the key information storage unit A pattern identification step;
Message linking processing program for causing a computer to execute
前記構造体において前記開始ノードから前記リンクを辿ることにより前記ノードを検出し、検出した順に連続する番号を当該ノードに対応する前記紐付けキーの優先度として付与し、優先度格納部に格納するステップと、
をさらにコンピュータに実行させるための請求項1記載のメッセージ紐付け処理プログラム。 If it is determined that no loop is formed in the structure, specifying any of the nodes regarded as leaf nodes in the structure as a start node;
The node is detected by tracing the link from the start node in the structure, and a consecutive number in the detected order is assigned as the priority of the linking key corresponding to the node, and stored in the priority storage unit Steps,
The message linking processing program according to claim 1, further causing the computer to execute.
をさらにコンピュータに実行させ、
前記パターン特定ステップが、
前記実施ステップにおける処理を最初に実施する場合、特定された前記割り当てパターンに係る前記割り当てデータと前記通信負荷とを前記キー情報格納部に格納するステップと、
前記実施ステップにおける処理を2回目以降に実施する場合、特定された前記割り当てパターンに係る前記通信負荷と前記キー情報格納部に格納されている前記通信負荷とを比較し、前記キー情報格納部に格納されている前記通信負荷より、特定された前記割り当てパターンに係る前記通信負荷の方が小さい場合、特定された前記割り当てパターンに係る前記割り当てデータと前記通信負荷とで前記キー情報格納部を更新するステップと、
を含む請求項1又は2記載のメッセージ紐付け処理プログラム。 When it is determined that a loop is formed in the structure, it is assumed that each of the plurality of links forming the loop is disconnected, and the processing after the determination step is performed. Let the computer perform more steps,
The pattern specifying step includes
Storing the allocation data and the communication load related to the specified allocation pattern in the key information storage unit when performing the processing in the implementation step for the first time;
When the process in the implementation step is performed for the second time or later, the communication load related to the specified allocation pattern is compared with the communication load stored in the key information storage unit, and the key information storage unit When the communication load related to the specified allocation pattern is smaller than the stored communication load, the key information storage unit is updated with the allocation data and the communication load related to the specified allocation pattern And steps to
The message linking processing program according to claim 1 or 2, comprising:
複数の前記リンクによって前記構造体中にループが形成されているか判断する判断ステップと、
前記構造体中にループが形成されていないと判断された場合、各々連携して前記紐付け処理を実施する複数の紐付け処理部の各々に対する前記紐付けキーの割り当ての組み合わせである割り当てパターンのうち、前記紐付け処理部間の通信負荷が最小であるという第1条件を含む所定の条件を満たす割り当てパターンを特定し、特定された前記割り当てパターンに係る割り当てデータをキー情報格納部に格納するパターン特定ステップと、
を含み、コンピュータにより実行されるメッセージ紐付け処理方法。 For each protocol, each of the linking keys is extracted from a key definition database that stores a linking key that is included in a message related to the protocol and is used in a linking process that is a process of associating messages related to the same transaction, and generating a node corresponding to each of the extraction the link key that is, a link connecting the nodes corresponding to the link key belonging to the same of the protocol, the data structure including,
A determination step of determining whether a loop is formed in the structure by a plurality of the links;
When it is determined that no loop is formed in the structure, an assignment pattern that is a combination of assignment of the linking keys to each of a plurality of linking processes that perform the linking process in cooperation with each other. Among them, an allocation pattern that satisfies a predetermined condition including a first condition that the communication load between the linking processing units is minimum is specified, and allocation data related to the specified allocation pattern is stored in the key information storage unit A pattern identification step;
A message linking processing method executed by a computer.
複数の前記リンクによって前記構造体中にループが形成されているか判断し、前記構造体中にループが形成されていないと判断された場合、各々連携して前記紐付け処理を実施する複数の紐付け処理手段の各々に対する前記紐付けキーの割り当ての組み合わせである割り当てパターンのうち、前記紐付け処理手段間の通信負荷が最小であるという第1条件を含む所定の条件を満たす割り当てパターンを特定し、特定された前記割り当てパターンに係る割り当てデータをキー情報格納部に格納するパターン特定手段と、
を有するメッセージ紐付け処理装置。 For each protocol, each of the linking keys is extracted from a key definition database that stores a linking key that is included in a message related to the protocol and is used in a linking process that is a process of associating messages related to the same transaction, a node corresponding to each of the extracted the link key, and the structure processing means for generating a data structure comprising a link connecting the nodes corresponding to the link key belonging to the same of the protocol, and
It is determined whether a loop is formed in the structure by the plurality of links, and when it is determined that a loop is not formed in the structure, a plurality of strings that perform the linking process in cooperation with each other An assignment pattern that satisfies a predetermined condition including a first condition that a communication load between the association processing means is the minimum is specified among assignment patterns that are combinations of assignment of the association keys to each of the association processing means. Pattern specifying means for storing allocation data related to the specified allocation pattern in a key information storage unit;
A message linking processing apparatus.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009139808A JP4754010B2 (en) | 2008-09-29 | 2009-06-11 | Message linking processing program, method and apparatus |
US12/559,918 US8539035B2 (en) | 2008-09-29 | 2009-09-15 | Message tying processing method and apparatus |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008249638 | 2008-09-29 | ||
JP2008249638 | 2008-09-29 | ||
JP2009139808A JP4754010B2 (en) | 2008-09-29 | 2009-06-11 | Message linking processing program, method and apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010102683A JP2010102683A (en) | 2010-05-06 |
JP4754010B2 true JP4754010B2 (en) | 2011-08-24 |
Family
ID=42293248
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009139808A Expired - Fee Related JP4754010B2 (en) | 2008-09-29 | 2009-06-11 | Message linking processing program, method and apparatus |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4754010B2 (en) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0830558A (en) * | 1994-07-20 | 1996-02-02 | Fujitsu Ltd | Load distributing method in computer system and computer system utilizing the method |
JPH08115244A (en) * | 1994-10-14 | 1996-05-07 | Hitachi Ltd | Distributed transaction processing system and transaction control system |
JP3675623B2 (en) * | 1997-10-31 | 2005-07-27 | 株式会社東芝 | Program development support apparatus and method, and recording medium recording program development support software |
JP3732648B2 (en) * | 1998-03-19 | 2006-01-05 | 富士通株式会社 | Process allocation method |
-
2009
- 2009-06-11 JP JP2009139808A patent/JP4754010B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2010102683A (en) | 2010-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106981024B (en) | Transaction limit calculation processing system and processing method thereof | |
JP5331123B2 (en) | Various route server systems and devices | |
JP5664098B2 (en) | Composite event distribution apparatus, composite event distribution method, and composite event distribution program | |
CN110113387A (en) | A kind of processing method based on distributed batch processing system, apparatus and system | |
CN112395300B (en) | Data processing method, device and equipment based on block chain and readable storage medium | |
CN105933408B (en) | A kind of implementation method and device of Redis universal middleware | |
US8898422B2 (en) | Workload-aware distributed data processing apparatus and method for processing large data based on hardware acceleration | |
CN111460504B (en) | Service processing method, device, node equipment and storage medium | |
CN111932257B (en) | Block chain parallelization processing method and device | |
CN111722918A (en) | Service identification code generation method and device, storage medium and electronic equipment | |
CN105138691A (en) | Method and system for analyzing user traffic | |
CN109903050A (en) | Transaction De-weight method, transaction building method, equipment and storage medium | |
CN107070709A (en) | A kind of NFV implementation methods based on bottom NUMA aware | |
CN109544344B (en) | Block chain transaction processing method and equipment based on DAG | |
CN113191901A (en) | Transaction service processing method, device, equipment and storage medium | |
US20100070462A1 (en) | Storage medium storing trouble handling program, and trouble handling apparatus | |
US8539035B2 (en) | Message tying processing method and apparatus | |
JP4754010B2 (en) | Message linking processing program, method and apparatus | |
JP5388134B2 (en) | Computer system and moving data determination method | |
CN107832121B (en) | Concurrency control method applied to distributed serial long transactions | |
CN112685167A (en) | Resource using method, electronic device and computer program product | |
CN112685199B (en) | Message queue repairing method and device, computer equipment and storage medium | |
CN116302328A (en) | Intelligent contract data processing method and system | |
US12058201B2 (en) | Read access for computational results of a distributed network | |
CN115220907A (en) | Resource scheduling method and device, electronic equipment and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100616 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100826 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100831 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101026 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110301 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110420 |
|
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: 20110524 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110524 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140603 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |