JP7285283B2 - Distributed transaction management method and system - Google Patents

Distributed transaction management method and system Download PDF

Info

Publication number
JP7285283B2
JP7285283B2 JP2021098052A JP2021098052A JP7285283B2 JP 7285283 B2 JP7285283 B2 JP 7285283B2 JP 2021098052 A JP2021098052 A JP 2021098052A JP 2021098052 A JP2021098052 A JP 2021098052A JP 7285283 B2 JP7285283 B2 JP 7285283B2
Authority
JP
Japan
Prior art keywords
pattern
participating
distributed transaction
program
application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2021098052A
Other languages
Japanese (ja)
Other versions
JP2022189463A (en
Inventor
昌太郎 野田
淳平 大越
俊彦 樫山
恒彦 馬場
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2021098052A priority Critical patent/JP7285283B2/en
Priority to US17/683,705 priority patent/US11556554B2/en
Publication of JP2022189463A publication Critical patent/JP2022189463A/en
Application granted granted Critical
Publication of JP7285283B2 publication Critical patent/JP7285283B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks

Description

本発明は、概して、分散トランザクションの管理に関する。 The present invention relates generally to managing distributed transactions.

近年、クラウドネイティブやアジャイル開発の潮流を受け、マイクロサービスアーキテクチャに注目が集まっている。マイクロサービスアーキテクチャは、システムを複数の小さなサービス(マイクロサービス)の集合体で構成されるシステムの開発手法の一つで、アジリティやスケーラビリティの向上に寄与する。 In recent years, due to the trend of cloud-native and agile development, microservice architecture has been attracting attention. Microservice architecture is one of the system development methods that consists of a collection of multiple small services (microservices), and contributes to the improvement of agility and scalability.

マイクロサービスアーキテクチャにおいては、複数のマイクロサービスが協調して動作するため、サービス間におけるデータの整合性維持は重要な問題となる。ここでデータが整合している(データの整合性が保たれている)とは、サービスによって実現されるアプリケーションにおいてデータの不整合が生じていない状態を指し、例えば、銀行の口座間送金において口座Aから口座Bに送金がされる場合、口座Aから出金された金額が過不足無く口座Bに入金されている状態を指す。一方、口座Aからのみ出金がされている状態や口座Bに二重に入金がされている状態はデータの不整合が生じた典型例である。 In microservice architecture, since multiple microservices work in cooperation, maintaining data consistency between services is an important issue. Here, data consistency (data consistency maintained) refers to a state in which there is no data inconsistency in the application realized by the service. When remittance is made from A to Account B, it refers to the state in which the amount withdrawn from Account A is deposited in Account B without excess or deficiency. On the other hand, a state in which money is withdrawn only from account A and a state in which money is credited to account B twice are typical examples of data inconsistency.

データの整合性維持には、分散トランザクションと呼ばれる手法が用いられる。分散トランザクションの代表的な仕様の一つとしてXAが挙げられる。XAにおいては、2相コミットと呼ばれる合意プロトコルを用いることにより、サービス間でデータの整合性を維持することが可能となる。一方、マイクロサービスアーキテクチャにおいては、外部サービスと連携する必要があるなどの理由から、特定の合意プロトコル(例えば、XAにおける2相コミット)を前提とできない場合もある。このため、各サービスのAPI(Application Programming Interface)に応じた要求の逐次処理により分散トランザクションを実現する手法(SAGA)も台頭してきている。 A method called distributed transaction is used to maintain data consistency. XA is one of the representative specifications of distributed transactions. In XA, data consistency can be maintained between services by using an agreement protocol called two-phase commit. On the other hand, in a microservice architecture, there are cases where a specific agreement protocol (for example, two-phase commit in XA) cannot be assumed due to reasons such as the need to cooperate with external services. For this reason, a technique (SAGA) that implements distributed transactions by sequentially processing requests according to APIs (Application Programming Interfaces) of each service has also emerged.

マイクロサービスアーキテクチャにより開発されたシステムに分散トランザクション(特に、SAGAを含んだ分散トランザクション)を実装する場合、システム障害とそれに起因するデータ不整合に対して適切な設計パターン(以下、パターン)の組み合わせが必要となる。例えば、分散トランザクション管理システム(分散トランザクションの実行を管理するサービス)による参加システム(分散トランザクションに参加するサービス)の呼び出しが通信障害(又はその他の理由)により失敗した場合、データ不整合を防止するために、参加システムのサービス特性(参加システムの特性(例えば、参加システムの仕様、機能(例えば実装されているアプリケーション))に応じたなんらかのパターンの適用が必要となる。例えば、参加システムが処理の冪等性(複数回の同一要求に対し、同一状態に内部状態の遷移が保障され、また同一の結果を返す性質)を持つ場合には、呼び出し処理を再実行するパターンを、当該参加システムを呼び出す呼び出しプログラムへ適用することで、データ不整合を防止することができる。 When implementing distributed transactions (especially distributed transactions including SAGA) in a system developed with a microservice architecture, there is a combination of design patterns (hereinafter referred to as patterns) that are appropriate for system failures and data inconsistencies caused by them. necessary. For example, to prevent data inconsistency when a distributed transaction management system (a service that manages the execution of distributed transactions) fails to call a participant system (a service that participates in a distributed transaction) due to a communication failure (or other reason). In addition, it is necessary to apply some pattern according to the service characteristics of the participating system (the characteristics of the participating system (e.g., the specifications of the participating system, the functions (e.g., the application implemented)). If there is equality (property that the internal state transition to the same state is guaranteed for the same request multiple times, and the same result is returned), a pattern that re-executes the call process is used to call the participating system. Data inconsistency can be prevented by applying it to the calling program.

しかし、サービス特性とパターンは多数存在する。これらの中から複数のサービス特性それぞれに応じて適切なパターンを選択し、それら選択されたパターンを組み合わせるには、高度な知識と多大な工数を要するという問題がある。 However, there are many service characteristics and patterns. There is a problem in that it requires advanced knowledge and a large amount of man-hours to select appropriate patterns from among these according to each of a plurality of service characteristics and combine the selected patterns.

パターンを選択する技術として、例えば、特許文献1に開示の技術がある。特許文献1では、分散トランザクションの実行時にトランザクションの長さに応じて適用するパターンを切り替える技術が記載されている。 As a technique for selecting patterns, for example, there is a technique disclosed in Patent Document 1. Japanese Patent Laid-Open No. 2002-200001 describes a technique for switching patterns to be applied according to the length of a transaction when executing a distributed transaction.

また、組み合わせたパターンの実装に関わる技術として、例えば、特許文献2に開示の技術がある。特許文献2では、テンプレートと部品リストからプログラムを生成する技術が記載されている。 Further, as a technology related to mounting of combined patterns, for example, there is a technology disclosed in Patent Document 2. Patent Document 2 describes a technique for generating a program from a template and a parts list.

米国特許出願公開第2016/0210322号明細書U.S. Patent Application Publication No. 2016/0210322 特開2013-222439号公報JP 2013-222439 A

特許文献1と特許文献2に記載の技術に基づいて、分散トランザクションに関わるパターンが適用されたプログラムを動的に切り替え可能な構成が得られると考えられる。具体的には、特許文献2に記載の技術を利用して、パターンが適用されたプログラムを自動生成し、特許文献1に記載の技術を利用して、パターンが適用されたプログラムを切り替えることが考えられる。 Based on the techniques described in Patent Documents 1 and 2, it is conceivable that a configuration that can dynamically switch programs to which patterns related to distributed transactions are applied can be obtained. Specifically, using the technology described in Patent Document 2, a program to which a pattern is applied can be automatically generated, and using the technology described in Patent Document 1, the program to which the pattern has been applied can be switched. Conceivable.

しかし、これらの特許文献1及び2に記載の技術に基づいてプログラムの生成及び切替えを可能にする分散トランザクション管理システム(以下、管理システム)を構築しようとすると、実装工数が大きくなるという問題が発生する。すなわち、参加システムのサービス特性に応じたパターンの適用ができず、参加システムの変更によりサービス特性が変化するたびに、管理システムの改変が必要となるという問題が発生する。 However, if an attempt is made to build a distributed transaction management system (hereinafter referred to as a management system) that enables program generation and switching based on the techniques described in these Patent Documents 1 and 2, the problem arises that the number of man-hours required for implementation increases. do. That is, a problem arises in that a pattern corresponding to the service characteristics of the participating system cannot be applied, and the management system needs to be modified every time the service characteristics change due to the modification of the participating system.

本発明の目的は、参加システムのサービス特性が変化しても、管理システムの実装を改変することなく、適切なパターンを組み合わせた分散トランザクションを実行することにある。 SUMMARY OF THE INVENTION It is an object of the present invention to execute distributed transactions that combine appropriate patterns without modifying the implementation of the management system even if the service characteristics of the participating systems change.

分散トランザクション管理システムが、分散トランザクションフロー及びサービス特性情報の入力を受け付ける。分散トランザクションフローは、分散トランザクションにおいて呼び出される複数の参加システムそれぞれの呼び出し順番を規定した情報である。当該複数の参加システムの各々は、当該分散トランザクションに参加するシステムである。サービス特性情報は、当該複数の参加システムの各々について当該参加システムの特性であるサービス特性を表す情報である。分散トランザクション管理システムが、呼び出し先の参加システムのサービス特性の制約条件を表す情報をパターン毎に含んだパターン情報を基に、サービス特性情報が表す参加システム毎に、当該参加システムのサービス特性に対応した制約条件を満たすパターンを適用パターンとして特定する。分散トランザクション管理システムが、複数の参加システムの各々についてパターン適用済呼び出しプログラムを生成し、当該複数の参加システムの各々のパターン適用済呼び出しプログラムと、前記分散トランザクションフローが表す呼び出し順序とを基に、当該呼び出し順序で実行される複数のパターン適用済呼び出しプログラムを含んだ分散トランザクションプログラムを生成する。複数の参加システムの各々について、パターン適用済呼び出しプログラムは、それぞれパターンが記述された複数のパターンプログラムのうち、当該参加システムについて上記特定された適用パターンのパターンプログラムが、当該参加システムを呼び出し先とした呼び出しプログラムに適用されたプログラムである。 A distributed transaction management system accepts input of distributed transaction flow and service characteristic information. A distributed transaction flow is information defining the calling order of each of a plurality of participating systems called in a distributed transaction. Each of the plurality of participating systems is a system that participates in the distributed transaction. The service characteristic information is information representing the service characteristic, which is the characteristic of the participating system, for each of the plurality of participating systems. A distributed transaction management system responds to the service characteristics of each participating system represented by the service characteristics information based on pattern information including information representing the constraint conditions of the service characteristics of the participating system to be called for each pattern. A pattern that satisfies the constraints is specified as an applicable pattern. a distributed transaction management system generating a patterned calling program for each of a plurality of participating systems, based on the patterned calling program of each of the plurality of participating systems and the calling order represented by the distributed transaction flow; A distributed transaction program is generated that includes a plurality of patterned calling programs that are executed in the calling order. For each of the plurality of participating systems, the pattern-applied calling program is such that among the plurality of pattern programs in which the respective patterns are described, the pattern program of the application pattern specified for the participating system is the calling destination of the participating system. It is the program applied to the calling program that

本発明によれば、参加システムのサービス特性が変化しても、管理システムの実装を改変することなく、適切なパターンを組み合わせた分散トランザクションを実行することができる。 According to the present invention, even if the service characteristics of participating systems change, distributed transactions combining appropriate patterns can be executed without modifying the implementation of the management system.

実施形態に係るソフトウェア構成を示す図である。It is a figure which shows the software configuration which concerns on embodiment. 実施形態に係るハードウェア構成を示す図である。It is a figure showing the hardware constitutions concerning an embodiment. 実施形態に係る分散トランザクションに係る処理を示すシーケンス図である。FIG. 10 is a sequence diagram showing processing related to distributed transactions according to the embodiment; 実施形態に係るパターンプログラムテーブル、及びパターンプログラムを示す図である。3A and 3B are diagrams showing a pattern program table and pattern programs according to the embodiment; FIG. 実施形態に係るパターンテーブルを示す図である。It is a figure which shows the pattern table which concerns on embodiment. 実施形態に係る呼び出しプログラムテーブル、及び呼び出しプログラムを示す図である。It is a figure which shows the calling program table which concerns on embodiment, and a calling program. 実施形態に係るサービス特性テーブルを示す図である。It is a figure which shows the service characteristic table which concerns on embodiment. 実施形態に係る分散トランザクション編集画面を示す図である。It is a figure which shows the distributed transaction edit screen which concerns on embodiment. 実施形態に係るパターン適用済み参加システム呼び出しプログラムの生成を説明する図である。FIG. 4 is a diagram illustrating generation of a pattern-applied participating system calling program according to the embodiment; 実施形態に係る分散トランザクションフローを示す図である。FIG. 4 illustrates a distributed transaction flow according to an embodiment; 実施形態に係る分散トランザクションプログラム生成処理を示すフロー図である。FIG. 10 is a flowchart showing distributed transaction program generation processing according to the embodiment; 図11のS1103を示すフロー図である。FIG. 12 is a flowchart showing S1103 in FIG. 11; 図11のS1104を示すフロー図である。FIG. 12 is a flow chart showing S1104 in FIG. 11; 本実施形態に係るパターンルールテーブル、及びパターンルールプログラムを示す図である。3A and 3B are diagrams showing a pattern rule table and a pattern rule program according to the embodiment; FIG.

実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲に係る発明を限定するものではなく、また、実施形態の中で説明されている諸要素、及びその組み合わせの全ては、発明の解決手段に必須であるとは限らない。 Embodiments will be described with reference to the drawings. In addition, the embodiments described below do not limit the invention according to the claims, and all the elements described in the embodiments and their combinations are essential to the solution of the invention. not necessarily.

以下の説明では、「インターフェース装置」は、一つ以上のインターフェースデバイスでよい。当該一つ以上のインターフェースデバイスは、下記のうちの少なくとも一つでよい。
・一つ以上のI/O(Input/Output)インターフェースデバイス。I/O(Input/Output)インターフェースデバイスは、I/Oデバイスと遠隔の表示用計算機とのうちの少なくとも一つに対するインターフェースデバイスである。表示用計算機に対するI/Oインターフェースデバイスは、通信インターフェースデバイスでよい。少なくとも一つのI/Oデバイスは、ユーザインターフェースデバイス、例えば、キーボード及びポインティングデバイスのような入力デバイスと、表示デバイスのような出力デバイスとのうちのいずれでもよい。
・一つ以上の通信インターフェースデバイス。一つ以上の通信インターフェースデバイスは、一つ以上の同種の通信インターフェースデバイス(例えば一つ以上のNIC(Network Interface Card))であってもよいし二つ以上の異種の通信インターフェースデバイス(例えばNICとHBA(Host Bus Adapter))であってもよい。
In the following description, an "interface device" may be one or more interface devices. The one or more interface devices may be at least one of the following:
- One or more I/O (Input/Output) interface devices. An I/O (Input/Output) interface device is an interface device for at least one of an I/O device and a remote display computer. The I/O interface device to the display computer may be a communications interface device. The at least one I/O device may be any of a user interface device, eg, an input device such as a keyboard and pointing device, and an output device such as a display device.
- One or more communication interface devices. The one or more communication interface devices may be one or more of the same type of communication interface device (e.g., one or more NICs (Network Interface Cards)) or two or more different types of communication interface devices (e.g., NIC and It may be an HBA (Host Bus Adapter).

また、以下の説明では、「メモリ」は、一つ以上の記憶デバイスの一例である一つ以上のメモリデバイスであり、典型的には主記憶デバイスでよい。メモリにおける少なくとも一つのメモリデバイスは、揮発性メモリデバイスであってもよいし不揮発性メモリデバイスであってもよい。 Also, in the following description, "memory" refers to one or more memory devices, which are examples of one or more storage devices, and may typically be a main memory device. At least one memory device in the memory may be a volatile memory device or a non-volatile memory device.

また、以下の説明では、「永続記憶装置」は、一つ以上の記憶デバイスの一例である一つ以上の永続記憶デバイスでよい。永続記憶デバイスは、典型的には、不揮発性の記憶デバイス(例えば補助記憶デバイス)でよく、具体的には、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、NVME(Non-Volatile Memory Express)ドライブ、又は、SCM(Storage Class Memory)でよい。 Also, in the following description, "persistent storage" may be one or more persistent storage devices, which is an example of one or more storage devices. A permanent storage device may typically be a non-volatile storage device (eg, an auxiliary storage device). Memory Express) drive or SCM (Storage Class Memory).

また、以下の説明では、「記憶装置」は、メモリと永続記憶装置の少なくともメモリでよい。 Also, in the following description, "storage" may be at least memory of memory and persistent storage.

また、以下の説明では、「プロセッサ」は、一つ以上のプロセッサデバイスでよい。少なくとも一つのプロセッサデバイスは、典型的には、CPU(Central Processing Unit)のようなマイクロプロセッサデバイスでよいが、GPU(Graphics Processing Unit)のような他種のプロセッサデバイスでもよい。少なくとも一つのプロセッサデバイスは、シングルコアでもよいしマルチコアでもよい。少なくとも一つのプロセッサデバイスは、プロセッサコアでもよい。少なくとも一つのプロセッサデバイスは、処理の一部又は全部を行うハードウェア記述言語によりゲートアレイの集合体である回路(例えばFPGA(Field-Programmable Gate Array)、CPLD(Complex Programmable Logic Device)又はASIC(Application Specific Integrated Circuit))といった広義のプロセッサデバイスでもよい。 Also, in the following description, a "processor" may be one or more processor devices. The at least one processor device may typically be a microprocessor device such as a CPU (Central Processing Unit), but may be another type of processor device such as a GPU (Graphics Processing Unit). At least one processor device may be single-core or multi-core. At least one processor device may be a processor core. At least one processor device is a circuit (for example, FPGA (Field-Programmable Gate Array), CPLD (Complex Programmable Logic Device) or ASIC (Application A processor device in a broad sense such as Specific Integrated Circuit)) may also be used.

また、以下の説明では、「xxxテーブル」といった表現にて、入力に対して出力が得られる情報を説明することがあるが、当該情報は、どのような構造のデータでもよいし(例えば、構造化データでもよいし非構造化データでもよいし)、入力に対する出力を発生するニューラルネットワーク、遺伝的アルゴリズムやランダムフォレストに代表されるような学習モデルでもよい。従って、「xxxテーブル」を「xxx情報」と言うことができる。また、以下の説明において、各テーブルの構成は一例であり、一つのテーブルは、二つ以上のテーブルに分割されてもよいし、二つ以上のテーブルの全部又は一部が一つのテーブルであってもよい。 In the following description, the expression "xxx table" may be used to describe information that can be obtained as an output in response to an input. It may be structured data or unstructured data), or it may be a learning model represented by a neural network, genetic algorithm, or random forest that generates an output in response to an input. Therefore, the "xxx table" can be called "xxx information". Also, in the following description, the configuration of each table is an example, and one table may be divided into two or more tables, or all or part of two or more tables may be one table. may

また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサによって実行されることで、定められた処理を、適宜に記憶装置及び/又はインターフェース装置を用いながら行うため、処理の主語が、プロセッサ(或いは、そのプロセッサを有する装置又はシステム)とされてもよい。プログラムは、プログラムソースから計算機のような装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバ又は計算機が読み取り可能な記録媒体(例えば非一時的な記録媒体)であってもよい。また、以下の説明において、二つ以上のプログラムが一つのプログラムとして実現されてもよいし、一つのプログラムが二つ以上のプログラムとして実現されてもよい。 Further, in the following description, the processing may be described with the subject of "program", but the program is executed by the processor to perform the predetermined processing as appropriate using the storage device and / or the interface device. The subject of processing may be a processor (or a device or system having the processor). A program may be installed on a device, such as a computer, from a program source. The program source may be, for example, a program distribution server or a computer-readable recording medium (eg, non-temporary recording medium). Also, in the following description, two or more programs may be implemented as one program, and one program may be implemented as two or more programs.

また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号のうちの共通符号を使用し、同種の要素を区別して説明する場合には、参照符号を使用することがある。 Further, in the following description, common reference numerals are used when similar elements are described without distinguishing between them, and reference symbols are used when similar elements are described separately. be.

また、以下の説明では、要素(例えば、参加システムやパターン)の識別情報の例として、名称又はDが採用されるが、名称やIDに代えて又は加えて他種の情報が採用されてもよい。 Also, in the following description, names or IDs are used as examples of identification information of elements (for example, participating systems and patterns), but other types of information may be used instead of or in addition to names and IDs . good too.

以下、本発明の一実施形態を説明する。 An embodiment of the present invention will be described below.

本実施形態における情報処理システムのソフトウェア構成を、図1を参照して説明する。図1は、本実施形態の情報処理システムにおけるソフトウェア構成を説明するための機能ブロック図である。 The software configuration of the information processing system according to this embodiment will be described with reference to FIG. FIG. 1 is a functional block diagram for explaining the software configuration in the information processing system of this embodiment.

図1に示す情報処理システム1(以下、単に「本システム1」と記述する場合がある)では、参加システムのサービス特性が変化しても、分散トランザクション管理システム100以下、単に「管理システム100」と記述する場合がある)の実装を改変することなく、適切なパターンの組み合わせた分散トランザクションを、データ整合性維持を実現しつつ実行することができる。「参加システム」は、分散トランザクションに参加するサービス(システム)である。 In the information processing system 1 shown in FIG. 1 (hereinafter simply referred to as "this system 1"), even if the service characteristics of the participating systems change, the distributed transaction management system 100 ( hereinafter simply referred to as "management system 100") ”), it is possible to execute distributed transactions that combine appropriate patterns while maintaining data consistency. A "participating system" is a service (system) that participates in a distributed transaction.

図1に示すように、本システム1は、本システムで実行される分散トランザクションを管理する管理システム100と、複数の参加システム110(110A、110B、110C、…)とを備える。なお、図1では、管理システム100及び参加システム110を異なる機能ブロックとして記載しているが、これらのシステム100及び110のいずれか2つ以上、あるいはシステム100及び110の少なくとも一部は、1つの計算機として構成されていてもよい。また、システム100及び110の少なくとも一つは、物理的な計算機システム(一つ以上の物理的な計算機)でもよいし、物理的な計算機システムに基づく論理的な計算機システム(例えば、仮想計算機システム又はクラウドコンピューティングサービスシステム)でもよい。 As shown in FIG. 1, this system 1 comprises a management system 100 that manages distributed transactions executed in this system, and a plurality of participating systems 110 (110A, 110B, 110C, . . . ). Although the management system 100 and the participating system 110 are shown as different functional blocks in FIG. It may be configured as a computer. At least one of the systems 100 and 110 may be a physical computer system (one or more physical computers), or a logical computer system based on a physical computer system (for example, a virtual computer system or cloud computing service system).

また、図1では、詳細を後述する各機能部(51、101、102、103、104、105、111、112)、各記憶領域(106、107、108、109)、及びデータベース113を異なる機能ブロックで記載しているが、ハードウェアとして異なるものであることを要求するものではない。したがって、各機能部(51、101、102、103、104、105、111、112)の動作は1つ以上のハードウェアで行われてもよく、各記憶領域(106、107、108、109)、及びデータベース113は、ハードディスクドライブ等の1つ以上の記憶デバイスで実現されていてもよい。 Further, in FIG. 1, functional units (51, 101, 102, 103, 104, 105, 111, 112), storage areas (106, 107, 108, 109) and database 113, which will be detailed later, have different functions. Although described in terms of blocks, it does not require different hardware. Therefore, the operation of each functional unit (51, 101, 102, 103, 104, 105, 111, 112) may be performed by one or more pieces of hardware, and each storage area (106, 107, 108, 109) , and database 113 may be implemented in one or more storage devices such as hard disk drives.

管理システム100は、入力部51と、適用パターン判定部101と、パターン管理部102と、分散トランザクションプログラム生成部104と、呼び出しプログラム管理部103と、分散トランザクション実行部105と、パターンテーブル記憶領域106と、パターンプログラム記憶領域108と、呼び出しプログラム記憶領域107と、パターンルール記憶領域109とを備える。 The management system 100 includes an input unit 51, an applied pattern determination unit 101, a pattern management unit 102, a distributed transaction program generation unit 104, a call program management unit 103, a distributed transaction execution unit 105, and a pattern table storage area 106. , a pattern program storage area 108 , a call program storage area 107 , and a pattern rule storage area 109 .

参加システム110について、参加システム110A(参加システム1)を例に説明する。参加システム110Aは、トランザクション実行部111と、データベース管理部112と、データベース113とを備える。他の参加システム110B、110C、…も、参加システム110Aと同様の構成を取ることができる。 The participation system 110 will be described using a participation system 110A (participation system 1) as an example. Participating system 110A includes transaction execution unit 111, database management unit 112, and database 113. Other participating systems 110B, 110C, . . . can also have the same configuration as the participating system 110A.

図2は、本システム1におけるハードウェア構成を示すブロック図である。以下、図2を参照して、本システム1におけるハードウェア構成を説明する。 FIG. 2 is a block diagram showing the hardware configuration in this system 1. As shown in FIG. The hardware configuration of the system 1 will be described below with reference to FIG.

管理システム100及び参加システム110の各々は、サーバ装置、パーソナルコンピュータ又はワークステーションなどの一般的な情報処理装置(計算機)により実現することができる。すなわち、図2に示す通り、これらのシステムのハードウェア構成は、プロセッサの一例であるCPU(201、211)、メモリの一例である主メモリ(202、212)、永続記憶装置の一例であるストレージ(203、213)、インターフェース装置の一例であるNIC(205、215)、入力デバイスの一例であるキーボード(206、216)及びマウス(207、217)、出力デバイスの一例であるディスプレイ(208、218)、及びこれらを接続するバス(204、214)を備えた構成とすることができる。そして、各システム(100、110)はネットワーク230を経由して相互に接続されている。管理システム100のNIC205に各参加システム110が通信可能に接続される。 Each of the management system 100 and the participation system 110 can be implemented by a general information processing device (computer) such as a server device, personal computer or workstation. That is, as shown in FIG. 2, the hardware configuration of these systems includes CPUs (201, 211), which are examples of processors, main memories (202, 212), which are examples of memories, and storage devices, which are examples of permanent storage devices. (203, 213), NIC (205, 215) as an example of an interface device, keyboard (206, 216) and mouse (207, 217) as an example of an input device, displays (208, 218) as an example of an output device ), and buses (204, 214) connecting them. Each system ( 100 , 110 ) is interconnected via a network 230 . Each participating system 110 is communicably connected to the NIC 205 of the management system 100 .

以下は、各システム(100、110)のハードウェア構成について、管理システム100を代表例として説明する。他のシステム(110)のハードウェア構成要素は、基本的に管理システム100と同様の構成とすることができる。 The hardware configuration of each system (100, 110) will be described below using the management system 100 as a representative example. The hardware components of the other system (110) can be configured basically the same as the management system 100. FIG.

CPU201は、プログラムを実行することにより管理システム100が備える各機能部を制御する。具体的には、例えば、CPU201は、必要なプログラムを主メモリ202に読み込み、当該プログラムを実行することで、各機能部を実現する。 The CPU 201 controls each functional unit included in the management system 100 by executing programs. Specifically, for example, the CPU 201 loads a necessary program into the main memory 202 and executes the program to realize each functional unit.

NIC205は、ネットワーク230と接続するためのインターフェースデバイスである。 NIC 205 is an interface device for connecting with network 230 .

主メモリ202は、通常のRAM(Random Access Memory)などの揮発性メモリで構成され、CPU201が実行するプログラムや参照するデータが記憶される。 The main memory 202 is composed of a volatile memory such as a normal RAM (Random Access Memory), and stores programs to be executed by the CPU 201 and data to be referred to.

ストレージ203は、HDD(Hard Disk Drive)やSSD(Solid State Drive)などの情報を記憶する記憶デバイスである。 The storage 203 is a storage device such as an HDD (Hard Disk Drive) or an SSD (Solid State Drive) that stores information.

キーボード206、及びマウス207は、ユーザ300がデータやコマンドを入力するための入力デバイスである。 A keyboard 206 and a mouse 207 are input devices for the user 300 to input data and commands.

ディスプレイ208は、例えば、液晶ディスプレイモニタなどから構成され、必要な画面や各処理の結果を表示する表示デバイスである。 The display 208 is, for example, a liquid crystal display monitor or the like, and is a display device that displays necessary screens and results of each process.

本実施形態において、特に言及のない場合、ユーザ300(図3参照)から各システム(100、110)への入力、及び各システム(100、110)からユーザ300への情報の表示は、これらキーボード(206、216)、マウス(207、217)、及びディスプレイ(208、218)によって集約的に行うものとする。 In this embodiment, unless otherwise specified, input from the user 300 (see FIG. 3) to each system (100, 110) and display of information from each system (100, 110) to the user 300 are performed using these keyboards. (206, 216), mouse (207, 217), and display (208, 218) collectively.

図3は、本システム1の動作の概要を示すシーケンス図である。本システム1の意図するところは、分散トランザクションフローに代えて又は加えて、参加システム110のサービス特性が変化した場合においても、管理システム100の実装を改変することなく、適切なパターンを適用した分散トランザクションプログラムの実行により、データの整合性の維持を可能とするところにある。以下、図3のシーケンス図に沿って、本実施形態を説明する。 FIG. 3 is a sequence diagram showing an overview of the operation of the system 1. As shown in FIG. Instead of or in addition to the distributed transaction flow, the intention of this system 1 is to provide a distributed transaction flow that applies an appropriate pattern without modifying the implementation of the management system 100 even when the service characteristics of the participating systems 110 change. It is possible to maintain data consistency by executing a transaction program. The present embodiment will be described below with reference to the sequence diagram of FIG.

本実施形態の初期状態では、各機能部(101、102、103、104、105)の動作に必要なプログラムがストレージ203に格納されている。パターンプログラム記憶領域108には、図4に示すパターンプログラムテーブル401とそれに紐付いているパターンプログラム(パターンプログラム(Retry)411がその一例)とが格納されているパターンテーブル記憶領域106には、図5に示すパターンテーブル501が格納されている。呼び出しプログラム記憶領域107には、図6に示す参加システムの呼び出しプログラムテーブル601とそれに紐付いている呼び出しプログラム(参加システム2が呼び出し先である呼び出しプログラム611がその一例)が格納されている。パターンルール記憶領域109には、図14に示すパターンルールテーブル1401とそれに紐付いているパターンルールプログラム(パターンルールプログラム(rule001)1411はその一例)が格納されている。 In the initial state of this embodiment, the storage 203 stores programs necessary for the operation of each functional unit (101, 102, 103, 104, 105). The pattern program storage area 108 stores a pattern program table 401 shown in FIG. 4 and pattern programs linked thereto (a pattern program (Retry) 411 is an example) . A pattern table 501 shown in FIG. 5 is stored in the pattern table storage area 106 . The calling program storage area 107 stores the calling program table 601 of the participating system shown in FIG. 6 and the calling program linked thereto (the calling program 611 called by the participating system 2 is an example). The pattern rule storage area 109 stores a pattern rule table 1401 shown in FIG. 14 and a pattern rule program linked thereto (the pattern rule program (rule001) 1411 is an example).

ユーザ300は、例えばユーザ端末(ユーザ300の情報処理端末)を用いて、分散トランザクション実行プログラム生成に係る情報A301として、図7に示すサービス特性テーブル701と図10に示す分散トランザクションフロー1001とを管理システム100に入力する。管理システム100の入力部51が、フロー1001及びテーブル701の入力を受け付ける。管理システム100は、後述の処理により、これらの入力(フロー1001及びテーブル701)に基づき分散トランザクションフロー1001に対応した分散トランザクションプログラムを生成する(S311)。 The user 300 manages the service characteristic table 701 shown in FIG. 7 and the distributed transaction flow 1001 shown in FIG. input into the system 100; The input unit 51 of the management system 100 receives inputs of the flow 1001 and table 701 . The management system 100 generates a distributed transaction program corresponding to the distributed transaction flow 1001 based on these inputs (flow 1001 and table 701) through processing described later (S311).

図7は、サービス特性テーブル701を示す図である。 FIG. 7 is a diagram showing a service characteristic table 701. As shown in FIG.

サービス特性テーブル701は、参加システム110毎に行を有し、「サービス」列702、及び「サービス特性」列703の2つの列を有する。 The service characteristics table 701 has a row for each participating system 110 and two columns: a "service" column 702 and a "service characteristics" column 703.

「サービス」列702には、管理システム100から呼び出される参加システム110(例えば参加システム110の名称)が列挙されている。図7が示す例によれば、参加システムとして5つの参加システムが列挙されている。 The “service” column 702 lists the participating systems 110 (eg, the names of the participating systems 110) that are called by the management system 100. FIG. According to the example shown in FIG. 7, five participating systems are listed as participating systems.

「サービス特性」列703には、各参加システムが有するサービス特性(例えば、参加システムの仕様、機能(例えば実装されているアプリケーション)の名称)が記載されている。例えば、「参加システム1」は、「SAGA(非同期)」というサービス特性を備える。「サービス特性」列703には、参加システムのサービス特性に加え、管理システム100の特性が記述されてもよい。 The “service characteristics” column 703 describes the service characteristics of each participating system (for example, the specification of the participating system and the name of the function (for example, installed application)). For example, "participating system 1" has a service characteristic of "SAGA (asynchronous)". The “service characteristics” column 703 may describe the characteristics of the management system 100 in addition to the service characteristics of the participating systems.

図10は、分散トランザクションフロー1001を示す図である。 FIG. 10 is a diagram showing distributed transaction flow 1001 .

分散トランザクションフロー1001は、本システム1で実行される分散トランザクションにおいて呼び出される複数の参加システム110それぞれの呼び出しの順番(参加システムの呼び出し順序)を規定した情報(データ)である。本実施形態においては、「参加システム1」から「参加システム5」までの合計5つのシステムがシーケンシャルに呼ばれることが記述されている。分散トランザクションフロー1001は、例えばDAG(Directed Acyclic Graph)で表現される。ノード1002は、参加システム110の呼び出しを表し、エッジ(結線)1003は、呼び出しの順序を表す。分散トランザクションフロー1001では、一つの参加システム110によるトランザクション実行が終了した場合に二つ以上の参加システム110を並行して呼び出すことが規定されていてもよいし、二つ以上の参加システム110の各々がトランザクション実行を終了した場合に一つの参加システム110を呼び出すことが規定されていてもよい。 The distributed transaction flow 1001 is information (data) defining the calling order (calling order of the participating systems) of each of the plurality of participating systems 110 called in the distributed transaction executed by the system 1 . In this embodiment, it is described that a total of five systems from "participating system 1" to "participating system 5" are called sequentially. A distributed transaction flow 1001 is represented by, for example, a DAG (Directed Acyclic Graph). Nodes 1002 represent calls of participating systems 110, and edges (connections) 1003 represent the order of calls. In the distributed transaction flow 1001, it may be specified that two or more participating systems 110 are called in parallel when transaction execution by one participating system 110 ends, and each of the two or more participating systems 110 may be specified to call one of the participating systems 110 when it has finished executing a transaction.

分散トランザクションプログラム生成処理(図3のS311)を、図11を用いて説明する。また、生成される分散トランザクションプログラムとして、図8を適宜参照する。 Distributed transaction program generation processing (S311 in FIG. 3) will be described with reference to FIG. Also, FIG. 8 will be referred to as needed as a distributed transaction program to be generated.

図11は、分散トランザクションプログラム生成処理(図3のS311)を示すフロー図である。以下、本フロー図に従って分散トランザクションプログラム生成処理を説明する。 FIG. 11 is a flowchart showing distributed transaction program generation processing (S311 in FIG. 3). The distributed transaction program generation processing will be described below according to this flowchart.

図8は、分散トランザクションプログラム生成処理によって生成された分散トランザクションプログラム803をユーザが編集するために用いられる分散トランザクション編集画面801を示す図である。分散トランザクション編集画面801は、例えば管理システム100の分散トランザクションプログラム生成部104により提供される。編集画面801におけるフロー修正画面802に表示された分散トランザクションプログラム803を適宜参照して説明する。 FIG. 8 shows a distributed transaction edit screen 801 used by the user to edit a distributed transaction program 803 generated by distributed transaction program generation processing. The distributed transaction edit screen 801 is provided by the distributed transaction program generator 104 of the management system 100, for example. The distributed transaction program 803 displayed on the flow correction screen 802 in the edit screen 801 will be referred to as appropriate for explanation.

管理システム100の分散トランザクションプログラム生成部104は、S1101にて、分散トランザクションフロー1001を参照し、トランザクションの順序を決定する。具体的には、分散トランザクションプログラム生成部104は、図10に示した分散トランザクションフロー1001を参照し、参加システム110の呼び出し(ノード1002)をエッジ(結線)1003に沿って辿ることにより、参加システム1から参加システム5までのシステム呼び出しが順に実行されることを読み取り、図8の参加システム1呼び出し811から参加システム5呼び出し812までのシステム呼び出し順序を確定する。なお、フロー修正画面802に表示の分散トランザクションプログラム803は、実行時には画面の上から下に向かって(参加システム1呼び出し811から参加システム5呼び出し812に向かって)実行される。 In S1101, the distributed transaction program generator 104 of the management system 100 refers to the distributed transaction flow 1001 and determines the transaction order. Specifically, the distributed transaction program generator 104 refers to the distributed transaction flow 1001 shown in FIG. By reading that the system calls from Participating System 1 to Participating System 5 are executed in order, the system calling order from Participating System 1 Call 811 to Participating System 5 Call 812 in FIG. 8 is determined. The distributed transaction program 803 displayed on the flow modification screen 802 is executed from the top to the bottom of the screen (from the participating system 1 call 811 to the participating system 5 call 812).

管理システム100の適用パターン判定部101は、S1102にて、サービス特性テーブル701とパターンテーブル501を参照し、分散トランザクションプログラム803の生成のための適用パターンを決定する。この処理をサービス特性テーブル701及びパターンテーブル501を用いて説明する。 The application pattern determination unit 101 of the management system 100 refers to the service characteristic table 701 and the pattern table 501 to determine an application pattern for generating the distributed transaction program 803 in S1102. This processing will be explained using the service characteristic table 701 and the pattern table 501. FIG.

図5は、パターンテーブル501を示す図である。本実施形態においては、パターンテーブル501は、パターン(典型的には,パターン化された処理ロジックの名称)毎に行を有し、「パターン」列511、「依存パターン(前)」列512、「依存パターン(後)」列513、「依存パターン(階層)」列514、「呼び出し元制約」列515、「呼び出し先制約」列516、及び「オプション」列517の7列から構成される。例えば、「パターン」列511、「依存パターン(前)」列512、「依存パターン(後)」列513、「依存パターン(階層)」列514にはそれぞれパターンの名称が記載される。各列の利用方法については、以降の処理の説明において適宜説明する。 FIG. 5 is a diagram showing the pattern table 501. As shown in FIG. In this embodiment, the pattern table 501 has a row for each pattern (typically, the name of the patterned processing logic), a "pattern" column 511, a "dependent pattern (before)" column 512, It consists of seven columns: a “dependence pattern (after)” column 513 , a “dependence pattern (hierarchy)” column 514 , a “caller constraint” column 515 , a “caller constraint” column 516 , and an “option” column 517 . For example, a "pattern" column 511, a "dependence pattern (before)" column 512, a "dependence pattern (after)" column 513, and a "dependence pattern (hierarchy)" column 514 list the names of patterns, respectively. How to use each column will be described as appropriate in the subsequent description of the processing.

S1102の処理において、管理システム100の適用パターン判定部101は、サービス特性テーブル701、及びパターンテーブル501を参照し、分散トランザクションプログラム803中の各システム呼び出し(例えば、参加システム1呼び出し811)に適用可能なパターンを特定する。さらに、分散トランザクションプログラム生成部104は、適用パターン判定部101によって特定されたパターンを表す情報を適用パターン判定部101より受け取り、当該パターンの適用処理を実施する。この処理を、参加システム2が呼び出し先である呼び出し813へのパターン適用を例に説明する。 In the processing of S1102, the application pattern determination unit 101 of the management system 100 refers to the service characteristic table 701 and the pattern table 501, and applies to each system call (for example, the participating system 1 call 811) in the distributed transaction program 803. identify patterns. Furthermore, the distributed transaction program generation unit 104 receives from the application pattern determination unit 101 information representing the pattern specified by the application pattern determination unit 101, and performs the application process of the pattern. This processing will be described by taking as an example pattern application to a call 813 to which the participating system 2 is the called party.

管理システム100の適用パターン判定部101は、サービス特性テーブル701を参照し、参加システム2が「SAGA(同期)」、「TCC」、「冪等(多重実行防止あり)」の3つのサービス特性を有することを読み取る。続いて、管理システム100の適用パターン判定部101は、パターンテーブル501の「呼び出し先制約」列516を参照し、読み取られたサービス特性「SAGA(同期)」、「TCC」及び「冪等(多重実行防止あり)」にそれぞれ対応する(一致する)パターン「SAGA(同期)」、「TCC」、「Retry(多重実行なし)」を特定する。「呼び出し先制約」は、呼び出し先としての参加システムのサービス特性の要件である制約条件を意味する。なお、パターン「SAGA(同期)」は、各参加システムのローカルトランザクションの逐次実行により分散トランザクションを実現するパターンである。パターン「TCC」は、Try、Confirm、及びCancelの3種の命令に対応したAPI(Application Programming Interface)に応じたシステム呼び出しを行うパターンである。パターン「Retry(多重実行なし)」は、システム呼び出しにおいて冪等性を考慮せずにリトライを行うパターンである。パターンテーブル501に記載の他のパターンも前述の様なサービス特性に応じた、データ整合性に寄与するパターンとなっている。「呼び出し元制約」列515は、各パターンを適用する際に管理システム100が備えるべきサービス特性が記述されるが、本実施形態においては、管理システム100は「呼び出し元制約」列515のすべての特性を備えている。このため、管理システム100は、パターンテーブル501に記載のすべてのパターンを、呼び出し元制約を除く他の条件(呼び出し先制約や後述する依存パターン)を満足すれば、各参加システムの呼び出しに適用することができる(言い換えれば、例えば、管理システム100が「呼び出し元制約」列515のすべての特性を備えていることが前提であれば、「呼び出し元制約」列515は無くてもよい)。なお、管理システム100のサービス特性は、実施形態に応じて、サービス特性テーブル701に含めてもよいし、サービス特性を有さない場合は当該パターンをパターンテーブル501に記載しなくてもよい。「呼び出し先制約」列516の「-」は、特定のサービス特性によらず適用可能なことを示す特別な記号である。したがって、「SAGA(同期)」、「TCC」、「Retry(多重実行なし)」のパターンの他、「XA(排他制御)」、「多重受信メッセージ破棄(同期)」、「多重受信メッセージ破棄(非同期)」も、適用されるパターンの候補となるが、当該パターンを適用するためにすでに前後の参加システムへのパターン適用を示す「依存パターン(前)」、又は「依存パターン(後)」にパターンの記載がある(すなわち、これらのパターン適用のためには、すでに何らかのパターンが分散トランザクションプログラムへ適用されている必要がある)ため、S1102では、これらのパターンの適用はなされない。 The application pattern determination unit 101 of the management system 100 refers to the service characteristic table 701, and the participating system 2 selects three service characteristics of "SAGA (synchronization)", "TCC", and "idempotent (with multiple execution prevention)". Read what you have. Subsequently, the application pattern determination unit 101 of the management system 100 refers to the “call destination constraint” column 516 of the pattern table 501, and reads the service characteristics “SAGA (synchronization)”, “TCC”, and “idempotent (multiplexing)”. The patterns "SAGA (synchronous)", "TCC", and "Retry (without multiple execution)" corresponding to (with execution prevention)" are specified. "Callee Constraint" means a constraint that is a service characteristic requirement of a participating system as a callee. The pattern "SAGA (synchronization)" is a pattern that implements distributed transactions by sequentially executing local transactions in each participating system. The pattern "TCC" is a pattern for making system calls according to an API (Application Programming Interface) corresponding to three types of instructions, Try, Confirm, and Cancel. The pattern "Retry (no multiple execution)" is a pattern in which system calls are retried without considering idempotency. Other patterns described in the pattern table 501 are also patterns that contribute to data consistency according to the service characteristics as described above. The “caller constraint” column 515 describes the service characteristics that the management system 100 should have when applying each pattern. It has characteristics. For this reason, the management system 100 applies all the patterns described in the pattern table 501 to calls of each participating system if other conditions (caller restrictions and dependency patterns to be described later) other than the caller restrictions are satisfied. (In other words, the "Caller Constraints" column 515 may be absent, for example, assuming that the management system 100 has all the characteristics of the "Caller Constraints" column 515). Note that the service characteristics of the management system 100 may be included in the service characteristics table 701 depending on the embodiment, and the pattern does not need to be described in the pattern table 501 if there is no service characteristic. A "-" in the "Callee Constraint" column 516 is a special symbol indicating that it is applicable regardless of specific service characteristics. Therefore, in addition to the patterns of "SAGA (synchronous)", "TCC", and "Retry (no multiple execution)", "XA (exclusive control)", "multiple reception message discard (synchronous)", "multiple reception message discard ( Asynchronous)" is also a candidate for the pattern to be applied, but it is not possible to select "Dependent Pattern (before)" or "Dependent Pattern (after)" to indicate the pattern application to the participating systems before and after the pattern is already applied. Since patterns are described (that is, some patterns must already be applied to the distributed transaction program in order to apply these patterns), these patterns are not applied in S1102.

さらに、管理システム100の適用パターン判定部101は、特定された「SAGA(同期)」、「TCC」、及び「Retry(多重実行なし)」の各パターンについて、「依存パターン(階層)」列514を参照し、依存関係において矛盾が生じないよう適用パターンの構造を決定する。具体的には、例えば、管理システム100の適用パターン判定部101は、「SAGA(同期)」の行を参照し、依存パターンがない(「依存パターン(階層)」列514において、「-」は依存パターンなしに当該パターンを適用できることを示す特別な記号)ことを確認し、パターン「SAGA(同期)」を参加システム2に適用することを決定する。次に、管理システム100の適用パターン判定部101は、「TCC」の行を参照し、依存パターンが「SAGA(同期)」であることを特定し、「SAGA(同期)」の下位の適用パターンとして、「TCC」を参加システム2に適用することを決定する。最後に、管理システム100の適用パターン判定部101は、「Retry(多重実行なし)」の行を参照し、依存パターンが「SAGA(同期)」、「SAGA(非同期)」、及び「TCC」であることを特定する。本実施形態においては、依存パターンが複数ある場合は、どれか1つ以上が適用されていれば当該パターンを適用することができる。ただし、複数パターンが適用されている場合、これら全てに階層関係の矛盾が無いようにパターンが適用されていなければならない。よって、本実施形態においては、「TCC」の下位の適用パターンとして、「Retry(多重実行なし)」が適用されることが決定される。なお、「依存パターン(階層)」にパターンが記載されているにも関わらず、記載されたパターンが適用されていない場合は、当該行のパターンを適用することはできない。例えば、「TCC」は、「SAGA(同期)」パターンが適用されていない場合には、適用することができない。 Further, the application pattern determination unit 101 of the management system 100 selects the "dependence pattern (hierarchy)" column 514 for each of the specified patterns "SAGA (synchronization)", "TCC", and "Retry (no multiple execution)". and determine the structure of the application pattern so that there is no contradiction in the dependency relationship. Specifically, for example, the application pattern determination unit 101 of the management system 100 refers to the row “SAGA (synchronization)” and finds that there is no dependency pattern (in the “dependence pattern (hierarchy)” column 514, “-” A special symbol indicating that the pattern can be applied without a dependent pattern) and decides to apply the pattern "SAGA (synchronization)" to the participating system 2 . Next, the application pattern determination unit 101 of the management system 100 refers to the row of "TCC", identifies that the dependency pattern is "SAGA (synchronization)", and determines the application pattern below "SAGA (synchronization)". , it decides to apply “TCC” to participating system 2 . Finally, the application pattern determination unit 101 of the management system 100 refers to the row of "Retry (no multiple execution)" and determines that the dependency patterns are "SAGA (synchronous)", "SAGA (asynchronous)", and "TCC". identify something. In this embodiment, when there are a plurality of dependency patterns, if one or more of them are applied, the pattern can be applied. However, when multiple patterns are applied, the patterns must be applied so that there is no contradiction in hierarchical relationships among all of them. Therefore, in the present embodiment, it is determined that "Retry (no multiple execution)" is applied as a subordinate application pattern of "TCC". It should be noted that if a pattern is described in the "dependence pattern (hierarchy)" but the described pattern is not applied, the pattern of the row cannot be applied. For example, "TCC" cannot be applied if the "SAGA (synchronization)" pattern is not applied.

参加システム2呼び出し813へのパターン適用で説明した処理を他の参加システムへも実施することにより、図8記載の分散トランザクションプログラム803において、「XA(排他制御)」、及び「多重受信メッセージ破棄(非同期)」を除いた、すなわち、それぞれの参加システム呼び出しプログラムに対し、「XA」、「SAGA(非同期)」、「SAGA(同期)」、「TCC」、「多重受信メッセージ破棄(非同期)」、「Retry(多重実行なし)」、「Retry(多重実行あり)」の各パターンが、適宜、適用された分散トランザクションプログラム803の生成が決定される。 By applying the pattern application to the participating system 2 call 813 to other participating systems as well, the distributed transaction program 803 shown in FIG. "XA", "SAGA (Asynchronous)", "SAGA (Synchronous)", "TCC", "Multiple Received Message Discard (Asynchronous)", Generation of the distributed transaction program 803 to which each pattern of "Retry (without multiple execution)" and "Retry (with multiple execution)" is appropriately applied is determined.

管理システム100の適用パターン判定部101は、S1103において、さらにパターンテーブル501を参照し、前後の適用パターンからさらに適用するパターンを決定する。S1103の処理を、図12を用いて説明する。 In S1103, the application pattern determination unit 101 of the management system 100 further refers to the pattern table 501 and determines a pattern to be applied from the previous and next application patterns. The processing of S1103 will be explained using FIG.

図12は、図11のS1103(管理システム100が実行するさらなる適用パターンの探索、及び適用処理)を示すフロー図である。 FIG. 12 is a flowchart showing S1103 (further application pattern search and application processing executed by the management system 100) in FIG.

管理システム100の適用パターン判定部101は、S1201において、分散トランザクションプログラム803を走査し、各参加システムの呼び出しプログラム(例えば、参加システム2呼び出し813)の前後の呼び出しプログラムに適用されたパターンを取得し、さらにパターンテーブル501を参照することで、前後の適用パターンから各参加システムの呼び出しに適用可能なパターンを決定する。S1201の処理によって適用されるパターンを、参加システム2呼び出し813を例に取り説明する。参加システム2呼び出し813には、例えば図8に示すように、すでに「SAGA(同期)」821、「TCC」822、「Retry(多重実行なし)」823といったパターンが適用されている。S1102で説明した様に、「XA(排他制御)」、「多重受信メッセージ破棄(同期)」、「多重受信メッセージ破棄(非同期)」が候補の適用パターンとして抽出される。 In S1201, the application pattern determination unit 101 of the management system 100 scans the distributed transaction program 803 and acquires the pattern applied to the calling program before and after the calling program of each participating system (for example, the calling program of the participating system 2 813). Furthermore, by referring to the pattern table 501, a pattern applicable to calling each participating system is determined from the preceding and following applicable patterns. The pattern applied by the process of S1201 will be described by taking the participation system 2 call 813 as an example. For Participating System 2 call 813, patterns such as "SAGA (synchronization)" 821, "TCC" 822, and "Retry (no multiple execution)" 823 have already been applied, as shown in FIG. 8, for example. As described in S1102, "XA (exclusive control)", "discard multiple reception message (synchronous)", and "discard multiple reception message (asynchronous)" are extracted as candidate application patterns.

管理システム100の適用パターン判定部101は、S1202において、適用可能なパターンはあるか、すなわち、S1201において抽出されたパターンのうち、パターンテーブル501の「依存パターン(前)」列512、「依存パターン(後)」列513の各列を参照し、抽出されたパターンの適用可否を判定する。S1202の処理を「参加システム3呼び出し」815を例に取り説明する。適用パターン判定部101は、「参加システム4呼び出し」814(参加システム3呼び出しの順番の1つ後の順番である参加システム4呼び出し)に「XA」824が適用されていることから、パターンテーブル501の「依存パターン(後)」列513に記述された「XA」を含んだ行に対応の「XA(排他制御)」を、「参加システム3呼び出し」815に適用可能と判定する(S1203以降のループ処理により、最終的に「参加システム1呼び出し」811、及び「参加システム2呼び出し」813に対しても「XA(排他制御)」が適用可能と判定される)。また、適用パターン判定部101は、「参加システム1呼び出し」811(参加システム2呼び出しの順番の1つ前の順番である参加システム1呼び出し)に適用された「SAGA(非同期)」826を参照し、「参加システム2呼び出し」813に、パターンテーブル501の「依存パターン(前)」列513に記述された「SAGA(非同期)」を含んだ行に対応の「多重受信メッセージ破棄(非同期)」827を適用可能と判定する。 In S1202, the application pattern determination unit 101 of the management system 100 determines whether there is an applicable pattern. (After)” column 513 is referred to determine whether the extracted pattern is applicable. The processing of S1202 will be described by taking “call participating system 3” 815 as an example. Since "XA" 824 is applied to "participating system 4 call" 814 (participating system 4 call, which is the order one after the order of participating system 3 call), the application pattern determination unit 101 determines that the pattern table 501 "XA (exclusive control)" corresponding to the row containing "XA" described in the "dependence pattern (after)" column 513 of S1203 is determined to be applicable to "participating system 3 call" 815 ( Through loop processing, it is finally determined that “XA (exclusive control)” is applicable to “participating system 1 call” 811 and “participating system 2 call” 813). In addition, the application pattern determination unit 101 refers to “SAGA (asynchronous)” 826 applied to “participating system 1 call” 811 (participating system 1 call that is one order before the order of participating system 2 call). , ``Discard multiple received message (asynchronous)'' 827 corresponding to the row containing ``SAGA (asynchronous)'' described in the ``dependent pattern (before)'' column 513 of the pattern table 501 in the ``participating system 2 call'' 813. is applicable.

なお、適用パターン判定部101は、パターンテーブル501の「XA(排他制御)」は適用が任意であることを示す「オプション」列517が「Yes」となっていることを読み取り、当該パターンは適用かつ適用は任意と判定する。パターン「XA(排他制御)」とは、「依存パターン(後)」列513の「XA」パターンが適用される参加システムのデータベースに対し、事前に排他制御と呼ばれるデータの読み書きに関わるロックをかけるパターンである。これにより、「XA(排他制御)」が適用された参加システムの分散トランザクション実行時に、「XA」が適用された参加システムの分散トランザクションに係るデータの書き換えを防止する効果がある。例えば、オプションが「Yes」のパターンは、適用可能なパターンの数が一定数未満の場合に適用されてよい(言い換えれば、適用可能なパターンの数が一定数以上の場合に適用されないでよい)。 Note that the applicable pattern determination unit 101 reads that the “option” column 517 indicating that “XA (exclusive control)” in the pattern table 501 is optional is “Yes”, and the pattern is applied. And it is determined that the application is optional. The pattern "XA (exclusive control)" locks the database of the participating system to which the "XA" pattern in the "dependence pattern (after)" column 513 is applied, in advance, which is called exclusive control and is related to reading and writing data. It's a pattern. This has the effect of preventing rewriting of data related to the distributed transaction of the participating system to which "XA (exclusive control)" is applied when executing the distributed transaction of the participating system to which "XA (exclusive control)" is applied. For example, a pattern whose option is 'Yes' may be applied if the number of applicable patterns is less than a certain number (in other words, it may not be applied if the number of applicable patterns is equal to or greater than a certain number). .

適用パターン判定部101は、適用可能なパターンが1つ以上あればS1203に処理を進め、適用可能なパターンがなければフローを終了する。 If there is one or more applicable patterns, the applicable pattern determination unit 101 advances the process to step S1203, and if there is no applicable pattern, the flow ends.

管理システム100の適用パターン判定部101は、S1203において、S1202において適用可能と判定されたパターンの分散トランザクションプログラム803への適用を決定し、適用は任意とされたパターンについては、適用任意の決定を行い、次のS1201に処理を移す。 In S1203, the application pattern determination unit 101 of the management system 100 determines to apply the pattern determined to be applicable in S1202 to the distributed transaction program 803, and determines whether to apply the pattern determined to be optional. , and the process moves to the next step S1201.

S1201、S1202、及びS1203を適用可能なパターンがなくなるまで繰り返す。 S1201, S1202, and S1203 are repeated until there are no more applicable patterns.

管理システム100の分散トランザクションプログラム生成部104は、図11のS1104において、分散トランザクションプログラム803のパターン構造を決定する。S1104の処理を、図13を用いて説明する。図13は、図11のS1104(パターン構造の決定処理)を示すフロー図である。 The distributed transaction program generator 104 of the management system 100 determines the pattern structure of the distributed transaction program 803 in S1104 of FIG. The processing of S1104 will be explained using FIG. FIG. 13 is a flowchart showing S1104 (pattern structure determination processing) in FIG.

管理システム100の分散トランザクションプログラム生成部104は、S1301において、パターン構造が一意かどうかを判断する。本実施形態においては、「XA(排他制御)」825の適用がオプションとなっており、一意に定まらないため処理がS1302に移る。 The distributed transaction program generator 104 of the management system 100 determines in S1301 whether the pattern structure is unique. In this embodiment, application of "XA (exclusive control)" 825 is an option, and since it is not uniquely determined, the process moves to S1302.

管理システム100の分散トランザクションプログラム生成部104は、S1302において、パターン構造に関わるパターンルールは定義済みかを確認する。この処理を、図14を用いて説明する。 In S1302, the distributed transaction program generator 104 of the management system 100 checks whether pattern rules related to the pattern structure have been defined. This processing will be described with reference to FIG.

図14は、管理システム100によって管理されるパターンルールを示している。パターンルールは、管理システム100のパターン管理部102によって管理され、パターンルールテーブル1401とパターンルールテーブル1401と紐付けて管理されているパターンルールプログラム(パターンルールプログラム(rule001)1411はその一例)からなる。パターンルールテーブル1401は、適用がオプションであるパターン毎に行を有し、「パターン」列1402及び「プログラム」列1403を有する。本実施形態においては、適用が一意に定まっていない「XA(排他制御)」825について、「パターン」列1402に「XA(排他制御)」があり「プログラム」列1403に「rule001」があり、「rule001」に、それに対応するパターンルールプログラム(rule001)1411が定義(関連付け)されている。このため、「XA(排他制御)」825についてパターンルールは定義済みとしてされる。この場合、処理がS1303に移る。 FIG. 14 shows pattern rules managed by the management system 100 . The pattern rule is managed by the pattern management unit 102 of the management system 100, and consists of a pattern rule table 1401 and a pattern rule program (a pattern rule program (rule001) 1411 is an example) managed in association with the pattern rule table 1401. . The pattern rule table 1401 has a row for each pattern that is optional to apply, and has a “pattern” column 1402 and a “program” column 1403 . In this embodiment, for "XA (exclusive control)" 825 whose application is not uniquely determined, there is "XA (exclusive control)" in the "pattern" column 1402 and "rule001" in the "program" column 1403, A pattern rule program (rule001) 1411 corresponding to "rule001" is defined (associated). Therefore, the pattern rule for "XA (exclusive control)" 825 is already defined. In this case, the process moves to S1303.

管理システム100の分散トランザクションプログラム生成部104は、S1303において、パターン管理部102からのパターンルールの取得、及び適用を実施する。図14を参照した例によれば、「XA(排他制御)」に対応したパターンルール「rule001」が取得及び適用される。パターンルール「rule001」には、「常に適用」というパターンルールプログラム(rule001)1411が紐付けて管理されており、適用可能なシステム呼び出し全てに当該パターンが適用される。したがって、本実施形態においては、参加システム1呼び出し811、参加システム2呼び出し813、及び参加システム3呼び出し815に対し、当該パターン(「XA(排他制御)」825)が適用される(図8参照)。 The distributed transaction program generation unit 104 of the management system 100 acquires and applies the pattern rule from the pattern management unit 102 in S1303. According to the example with reference to FIG. 14, the pattern rule "rule001" corresponding to "XA (exclusive control)" is acquired and applied. A pattern rule program (rule001) 1411 "always applied" is associated with the pattern rule "rule001" and managed, and the pattern is applied to all applicable system calls. Therefore, in this embodiment, the pattern (“XA (exclusive control)” 825) is applied to the participating system 1 call 811, the participating system 2 calling 813, and the participating system 3 calling 815 (see FIG. 8). .

管理システム100の分散トランザクションプログラム生成部104は、S1304において、パターン構造は一意かを判断し、一意であれば処理を終了し、一意でなければS1305に処理を移す。本実施形態においては、図14のパターンルールにより、すべてのパターンが一意に定まるため、処理が終了する。 In S1304, the distributed transaction program generation unit 104 of the management system 100 determines whether the pattern structure is unique. In this embodiment, all patterns are uniquely determined by the pattern rule in FIG. 14, so the process ends.

図14に示したパターンルールが定義されておらず、処理がS1305に進んだ場合の処理を、図8を用いて説明する。 Processing when the pattern rule shown in FIG. 14 is not defined and the processing proceeds to S1305 will be described with reference to FIG.

図8が示す分散トランザクション編集画面801は、パターン構造が一意に定まらなかった場合において、ユーザ300が分散トランザクションを編集し、パターン構造を一意に定めるために用いられる画面である。分散トランザクション編集画面801は、フロー修正画面802と決定ボタン804からなる。ユーザ300は、パターン構造が一意に定まっていない「XA(排他制御)」825の適用範囲をフロー修正画面802で確認しつつ、マウス207の操作により当該パターンの適用範囲を矢印82の範囲で定めることができる。ユーザ300は、編集が終了した後、決定ボタン804をマウス207でクリックすることにより編集結果を確定させる。なお、これらのユーザ300による操作は、分散トランザクションプログラム生成部104に入力され、S1305の処理結果として分散トランザクションプログラム803に反映される。 A distributed transaction editing screen 801 shown in FIG. 8 is a screen used by the user 300 to edit the distributed transaction and uniquely define the pattern structure when the pattern structure has not been uniquely determined. A distributed transaction edit screen 801 consists of a flow correction screen 802 and an enter button 804 . The user 300 confirms the application range of "XA (exclusive control)" 825 whose pattern structure is not uniquely determined on the flow correction screen 802, and determines the application range of the pattern by operating the mouse 207 within the range of the arrow 82. be able to. After finishing the editing, the user 300 confirms the editing result by clicking the decision button 804 with the mouse 207 . These operations by the user 300 are input to the distributed transaction program generation unit 104 and reflected in the distributed transaction program 803 as the processing result of S1305.

管理システム100の分散トランザクションプログラム生成部104は、S1105において、図11のS1101からS1104までによって適用が決定されたパターンを、各参加システムのシステム呼び出しプログラム(811、812、813、814、815)に適用し、実行される分散トランザクションプログラム803を生成する。 In S1105, the distributed transaction program generation unit 104 of the management system 100 applies the patterns determined in S1101 to S1104 of FIG. Generates a distributed transaction program 803 that is applied and executed.

参加システムの呼び出しプログラム(811、812、813、814、815)へのパターンプログラムの適用を、図4、図6、及び図9を用いて説明する。 Application of the pattern program to the calling programs (811, 812, 813, 814, 815) of the participating systems will be described with reference to FIGS. 4, 6 and 9. FIG.

図4は、管理システム100のパターン管理部102によって管理されるパターンプログラムテーブル401及び当該テーブルに紐付けて管理されるパターンプログラム(パターンプログラム(Retry)411はその一例)を示す図である。パターンプログラムテーブル401は、パターンプログラム毎に行を有し、「パターン」列402、及び「プログラム」列403の2列から構成されている。「パターン」列402には、適用パターン判定部101によって適用可否が判定されるパターンを含むパターン(例えばパターンの名称)の一覧が記載されている。「プログラム」列403には「パターン」列402で定義されたパターンに対応したプログラムのIDが管理されている。パターンプログラム(Retry)411は、「Retry」パターンに対応したパターンプログラムの一例である。「パターンプログラム」とは、処理のパターン(典型的にはパターン化された処理ロジック))が記述されたプログラムである。 FIG. 4 is a diagram showing a pattern program table 401 managed by the pattern management unit 102 of the management system 100 and pattern programs (a pattern program (Retry) 411 is one example) managed in association with the table. The pattern program table 401 has a row for each pattern program, and consists of two columns, a “pattern” column 402 and a “program” column 403 . A “pattern” column 402 lists patterns (for example, pattern names) including patterns for which applicability is determined by the applicable pattern determining unit 101 . The “program” column 403 manages IDs of programs corresponding to the patterns defined in the “pattern” column 402 . A pattern program (Retry) 411 is an example of a pattern program corresponding to the "Retry" pattern. A “pattern program” is a program in which processing patterns (typically patterned processing logic) are described.

図6は、管理システム100の呼び出しプログラム管理部103によって管理される、各参加システムの呼び出しプログラムを管理する呼び出しプログラムテーブル601と当該テーブルに紐づけて管理されている呼び出しプログラム(呼び出しプログラム(参加システム2)611はその一例)を示す図である。呼び出しプログラムテーブル601は、参加システム毎(呼び出しプログラム毎)に行を有し、「参加システム」列602と「プログラム」列603の2つの列から構成される。「参加システム」列602には、分散トランザクションで呼び出される参加システム(例えば参加システムの名称)が列挙されている。また、「プログラム」列603には、各参加システムに対応した呼び出しプログラムのIDが記載されている。呼び出しプログラム(参加システム2)611は、参加システム2の呼び出しプログラムに対応した呼び出しプログラムの一例である。 FIG. 6 shows a calling program table 601 managed by the calling program management unit 103 of the management system 100, which manages calling programs of each participating system, and calling programs (calling programs (participating systems) managed in association with the table. 2) 611 is an example). The calling program table 601 has a row for each participating system (for each calling program), and is composed of two columns, a “participating system” column 602 and a “program” column 603 . A "participant" column 602 lists the participant systems (eg, name of the participant system) that are invoked in the distributed transaction. A "program" column 603 describes the ID of the calling program corresponding to each participating system. A calling program (participating system 2 ) 611 is an example of a calling program corresponding to the calling program of the participating system 2 .

図9は、呼び出しプログラムに対し、パターンが適用される一例を示した図である。 FIG. 9 is a diagram showing an example in which patterns are applied to a calling program.

管理システム100の分散トランザクションプログラム生成部104は、図11のS1105において、適用パターン判定部101から適用パターンに関わる判定結果を受け取る。分散トランザクションプログラム生成部104は、パターン管理部102から適用パターンに対応するパターンプログラム(図9の例ではパターンプログラム(Retry)411)を取得し、呼び出しプログラム管理部103から各システム呼び出しに対応したプログラム(図9の例では呼び出しプログラム(参加システム2)611)を取得する。分散トランザクションプログラム生成部104は、取得された呼び出しプログラムに対応した参加システムに適用のパターンに対応したパターンプログラムに、当該呼び出しプログラムを適用する(例えば埋め込む)ことで、パターン適用済み呼び出しプログラム(図9の例ではRetryパターンを適用済みの参加システム2呼び出しプログラム903)を生成する。 The distributed transaction program generation unit 104 of the management system 100 receives the determination result related to the application pattern from the application pattern determination unit 101 in S1105 of FIG. The distributed transaction program generation unit 104 acquires a pattern program (pattern program (Retry) 411 in the example of FIG. 9) corresponding to the application pattern from the pattern management unit 102, and generates a program corresponding to each system call from the calling program management unit 103. (In the example of FIG. 9, the calling program (participating system 2) 611) is acquired. The distributed transaction program generation unit 104 applies (for example, embeds) the calling program to the pattern program corresponding to the pattern applied to the participating system corresponding to the acquired calling program, thereby creating a pattern-applied calling program (see FIG. 9 In the example of , a participating system 2 calling program 903) to which the Retry pattern has already been applied is generated.

参加システム2呼び出しプログラム611へのパターンプログラム(Retry)411の適用を例に、パターン適用済み呼び出しプログラムの生成を説明する。まず、パターンプログラム(Retry)411には、「@Retry」というアノテーションと呼び出しプログラムを挿入する「method()」が関数として定義されている。アノテーションは、当該関数にアノテーション記載の処理、若しくは機能をさらに付与することを示す、複数のプログラミング言語に採用されている仕様の一つである。分散トランザクションプログラム生成部104は、パターンプログラム(Retry)411の「method()」で定義された関数部分に、呼び出しプログラム(参加システム2)611を挿入することにより、Retryパターン適用済み参加システム2呼び出しプログラム903を生成することができる。なお、パターンプログラムや参加システム呼び出しプログラムの記述、及びパターン適用済み参加システム呼び出しプログラムの生成は、実施形態に応じて適切な記述や方法を用いることができる。例えば、分散トランザクションにおいて標準的な仕様であるXAや、当該仕様に関わる実装を用いてもよい。 Generation of a pattern-applied calling program will be described by taking as an example the application of the pattern program (Retry) 411 to the participating system 2 calling program 611 . First, in the pattern program (Retry) 411, the annotation "@Retry" and "method( )" for inserting the calling program are defined as functions. An annotation is one of the specifications adopted in a plurality of programming languages, indicating that the function is further provided with the processing or function described in the annotation. The distributed transaction program generation unit 104 inserts the calling program (participating system 2) 611 into the function portion defined by "method()" of the pattern program (Retry) 411, thereby calling the Retry pattern-applied participating system 2. A program 903 can be generated. Appropriate descriptions and methods can be used for the description of the pattern program and the participating system calling program, and the generation of the pattern-applied participating system calling program according to the embodiment. For example, XA, which is a standard specification for distributed transactions, or an implementation related to this specification may be used.

図11のS1105では、分散トランザクションに参加する参加システム毎(分散トランザクションフロー1001又はサービス特性テーブル701から特定される参加システム毎に)、パターン適用済み呼び出しプログラムが生成される。参加システム毎のパターン適用済み呼び出しプログラムと、分散トランザクションフロー1001が表す参加システム順(呼び出し順)とを基に、当該参加システム順に実行されるパターン適用済み呼び出しプログラムを含んだ分散トランザクションプログラム803が生成される。 In S1105 of FIG. 11, a pattern-applied calling program is generated for each participating system participating in the distributed transaction (for each participating system specified from the distributed transaction flow 1001 or the service characteristic table 701). Based on the pattern-applied calling program for each participating system and the order of participating systems (calling order) represented by the distributed transaction flow 1001, a distributed transaction program 803 including the pattern-applied calling program to be executed in the order of the participating systems is generated. be done.

以上の図11記載の一連のフローにより、分散トランザクションプログラム803が生成され、図3のS311が終了する。 The distributed transaction program 803 is generated through the series of flows shown in FIG. 11, and S311 in FIG. 3 ends.

図3を参照して、分散トランザクションに係る操作(A302)、トランザクション要求A303、トランザクション結果A304、及び結果の応答(A305)について説明する。 The operation (A302), transaction request A303, transaction result A304, and result response (A305) relating to the distributed transaction will be described with reference to FIG.

本実施形態においては、ユーザ300は管理システム100で生成された分散トランザクションプログラム803の実行を、管理システム100に分散トランザクションに係る操作A302として要求することで、分散トランザクションを実行させることができる。管理システム100の分散トランザクション実行部105は、ユーザ300からの要求を受け取り、分散トランザクションに関わる複数(又は一つ)の参加システム110それぞれに順序通りにトランザクション要求A303を発行することにより、分散トランザクションプログラム803を実行する。各参加システム、例えば参加システム1は、管理システム100からのトランザクション要求A303を受け付け、トランザクション実行部111、データベース管理部112、及びデータベース113の連携により参加システム1におけるトランザクションを実行し、結果をトランザクション結果A304として管理システム100に返す。各参加システムにおけるトランザクションは、実施形態に応じて、例えばXAに代表される仕様に基づいてもよいし、特定のプロトコルや参加システムが提供するAPIに応じたSAGAの実行により実現されていてもよい。 In this embodiment, the user 300 can execute a distributed transaction by requesting the management system 100 to execute the distributed transaction program 803 generated by the management system 100 as an operation A302 related to the distributed transaction. The distributed transaction execution unit 105 of the management system 100 receives a request from a user 300 and issues a transaction request A303 in order to each of a plurality (or one) of participating systems 110 involved in the distributed transaction, thereby executing the distributed transaction program. 803 is executed. Each participating system, for example the participating system 1, receives a transaction request A303 from the management system 100, executes the transaction in the participating system 1 through the cooperation of the transaction execution unit 111, the database management unit 112, and the database 113, and outputs the result as a transaction result. It is returned to the management system 100 as A304. Transactions in each participating system, depending on the embodiment, may be based on specifications such as XA, or may be realized by executing SAGA according to a specific protocol or API provided by the participating system. .

ユーザ300は、分散トランザクションに係る操作の結果の応答(A305)を管理システム100から受け取り、分散トランザクションに係る一連の処理を終える。 The user 300 receives an operation result response (A305) related to the distributed transaction from the management system 100, and completes a series of processing related to the distributed transaction.

かくして、本実施形態の情報処理システム1では、分散トランザクションフロー、及び参加システムのサービス特性が所与とできない環境下においても、分散トランザクション管理システム100の実装を改変することなく、適切なパターンの組み合わせによりデータ整合性維持に要する工数を減じることができる。 Thus, in the information processing system 1 of this embodiment, even in an environment where the distributed transaction flow and the service characteristics of the participating systems cannot be given, an appropriate combination of patterns can be obtained without modifying the implementation of the distributed transaction management system 100. can reduce the number of man-hours required for maintaining data consistency.

以上の説明は、例えば下記のように総括することができる。下記の総括は、上述の実施形態の説明の補足又は実施形態の変形例を含んでよい。 The above description can be summarized, for example, as follows. The following summary may include supplements to the description of the above embodiments or variations of the embodiments.

分散トランザクション管理部は、入力部51と、適用パターン判定部101と、分散トランザクションプログラム生成部104とを有する。入力部51は、分散トランザクションフロー1001及びサービス特性テーブル701の入力を受け付ける。分散トランザクションフロー1001は、分散トランザクションにおいて呼び出される複数の参加システム110それぞれの呼び出し順番を規定した情報である。複数の参加システム110の各々は、当該分散トランザクションに参加するシステムである。サービス特性テーブル701は、複数の参加システム110の各々について当該参加システムの特性であるサービス特性を表すテーブルである。適用パターン判定部101は、呼び出し先の参加システム110のサービス特性の制約条件を表す情報をパターン毎に含んだパターンテーブル501を基に、サービス特性テーブル701が表す参加システム110毎に、当該参加システム110のサービス特性に対応した制約条件を満たすパターンを適用パターンとして特定する。分散トランザクションプログラム生成部104は、複数の参加システムの各々についてパターン適用済呼び出しプログラムを生成し、当該複数の参加システム110の各々のパターン適用済呼び出しプログラムと、分散トランザクションフロー1001が表す呼び出し順序とを基に、当該呼び出し順序で実行される複数のパターン適用済呼び出しプログラムを含んだ分散トランザクションプログラム803を生成する。複数の参加システム110の各々について、パターン適用済呼び出しプログラムは、それぞれパターンが記述された複数のパターンプログラムのうち、当該参加システム110について上記特定された適用パターンのパターンプログラムが、当該参加システム110を呼び出し先とした呼び出しプログラムに適用されたプログラムである。 The distributed transaction management unit has an input unit 51 , an application pattern determination unit 101 and a distributed transaction program generation unit 104 . The input unit 51 receives inputs of the distributed transaction flow 1001 and the service characteristic table 701 . The distributed transaction flow 1001 is information that defines the calling order of each of the multiple participating systems 110 called in the distributed transaction. Each of the multiple participating systems 110 is a system that participates in the distributed transaction. The service characteristic table 701 is a table representing the service characteristic, which is the characteristic of the participating system, for each of the plurality of participating systems 110 . Based on a pattern table 501 containing, for each pattern, information representing the constraint conditions of the service characteristics of the participating system 110 to be called, the applicable pattern determination unit 101 determines, for each participating system 110 represented by the service characteristics table 701, the participating system A pattern that satisfies a constraint condition corresponding to the service characteristics of 110 is specified as an applicable pattern. The distributed transaction program generation unit 104 generates a pattern-applied calling program for each of the plurality of participating systems, and generates a pattern-applied calling program for each of the plurality of participating systems 110 and the calling order represented by the distributed transaction flow 1001. Based on this, a distributed transaction program 803 containing a plurality of pattern-applied calling programs to be executed in the calling order is generated. For each of the plurality of participating systems 110, the pattern-applied calling program, among the plurality of pattern programs each describing a pattern, is the pattern program of the application pattern specified for the participating system 110. It is the program applied to the calling program that was called.

これにより、参加システム110のサービス特性が変化しても、変化後のサービス特性は入力されるサービス特性テーブル701に記述されているため、参加システム110について、変化後のサービス特性に適したパターンが特定され、そのパターンのパターンプログラムが呼び出しプログラムに適用されたパターン適用済呼び出しプログラムが自動生成され、そのパターン適用済呼び出しプログラムを含む分散トランザクションプログラム803が自動生成される。結果として、管理システムの実装を改変することなく、適切なパターンを組み合わせた分散トランザクションを実行することができる。 As a result, even if the service characteristics of the participating system 110 change, the service characteristics after the change are described in the service characteristics table 701 to be input. A pattern-applied calling program is automatically generated by identifying and applying the pattern program of the pattern to the calling program, and a distributed transaction program 803 including the pattern-applied calling program is automatically generated. As a result, distributed transactions combining suitable patterns can be executed without modifying the implementation of the management system.

分散トランザクション管理システム100が、分散トランザクションプログラム803を実行する分散トランザクション実行部105を備えてよい。これにより、分散トランザクションプログラム803の生成後に分散トランザクションプログラム803を分散トランザクション管理システム100が実行することが可能である。 Distributed transaction management system 100 may include distributed transaction execution unit 105 that executes distributed transaction program 803 . This allows the distributed transaction management system 100 to execute the distributed transaction program 803 after the distributed transaction program 803 is generated.

パターンテーブル501が、パターン毎に、パターン間の依存関係を表す情報を含んでよい。パターン間の依存関係は、パターンの階層関係や、前後(例えば、直前又は直後)のパターンとの関係でよい。適用パターン判定部101が、サービス特性テーブル701が表す参加システム110毎に、当該参加システム110の適用パターンを、当該参加システム110のサービス特性に対応した制約条件を表す情報の他に、当該参加システム110に対応した、パターン間の依存関係を表す情報を基に、特定してよい。これにより、パターン間の依存関係に矛盾しない適切なパターンを適用パターンとして特定することができる。 The pattern table 501 may include, for each pattern, information representing dependency relationships between patterns. The dependency relationship between patterns may be a hierarchical relationship of patterns or a relationship with patterns before and after (for example, immediately before or after). For each participating system 110 represented by the service characteristics table 701, the application pattern determination unit 101 determines the application pattern of the participating system 110 by determining the application pattern of the participating system 110 in addition to the information representing the constraint conditions corresponding to the service characteristics of the participating system 110. 110 may be specified based on the information representing the inter-pattern dependency relationship. As a result, an appropriate pattern that does not contradict the dependency relationship between patterns can be specified as the applicable pattern.

各パターンについて、パターン間の依存関係を表す情報は、パターンの階層関係を表す情報である依存パターン(階層)を含んでよい。適用パターン判定部101が、サービス特性テーブル701が表す参加システム110毎に、当該参加システム110の適用パターンとして、当該参加システム110のサービス特性に対応した制約条件を満たし、且つ、当該参加システム110について既に特定済の適用パターンの階層が当該参加システムに対応した依存パターン(階層)が表す階層を満たすパターンを特定してよい。これにより、パターンの階層関係に矛盾しない適切なパターンを適用パターンとして特定することができる。 For each pattern, the information representing the inter-pattern dependency may include a dependency pattern (hierarchy), which is information representing the hierarchical relationship of the patterns. For each participating system 110 represented by the service characteristics table 701, the application pattern determination unit 101 satisfies the constraint conditions corresponding to the service characteristics of the participating system 110 and A pattern that satisfies the hierarchy represented by the dependency pattern (hierarchy) corresponding to the participating system may be identified from the already identified hierarchy of application patterns. As a result, an appropriate pattern that does not contradict the hierarchical relationship of patterns can be specified as an applicable pattern.

各パターンについて、パターン間の依存関係を表す情報は、下記(a)及び(b)のうちの少なくとも一つ、
(a)当該パターンが適用パターンとされる参加システム110の呼び出し順番の直前の呼び出し順番の参加システム110についての適用パターンを表す情報である依存パターン(前)、
(b)当該パターンが適用パターンとされる参加システム110の呼び出し順番の直後の呼び出し順番の参加システム110についての適用パターンを表す情報である依存パターン(後)、
を含んでよい。適用パターン判定部101が、サービス特性テーブル701が表す参加システム110毎に、当該参加システム110の適用パターンとして、当該参加システム110のサービス特性に対応した制約条件を満たし、且つ、下記(A)及び(B)のうちの少なくとも一つを満たすパターンを特定してよい。これにより、呼び出し順番が直前又は直後の順番である参加システム110に適用のパターンに矛盾しない適切なパターンを適用パターンとして特定することができる。
(A)当該参加システム110の呼び出し順番の直前の呼び出し順番の参加システム110についての適用パターンが、当該参加システム110に対応した依存パターン(前)が表す適用パターンに該当する。
(B)当該参加システム110の呼び出し順番の直後の呼び出し順番の参加システム110についての適用パターンが、当該参加システム110に対応した依存パターン(後)が表す適用パターンに該当する。
For each pattern, the information representing the inter-pattern dependency is at least one of the following (a) and (b):
(a) dependency pattern (previous), which is information representing the application pattern for the participating system 110 whose calling order is immediately before the calling order of the participating system 110 whose pattern is the applied pattern;
(b) dependency pattern (later), which is information representing the application pattern for the participating system 110 whose calling order is immediately after the calling order of the participating system 110 whose pattern is the applied pattern;
may contain For each participating system 110 represented by the service characteristics table 701, the application pattern determination unit 101 satisfies the constraint conditions corresponding to the service characteristics of the participating system 110 as the application pattern of the participating system 110, and the following (A) and A pattern that satisfies at least one of (B) may be identified. As a result, it is possible to specify, as an application pattern, an appropriate pattern that does not conflict with the pattern applied to the participating systems 110 whose call order is immediately before or immediately after.
(A) The application pattern for the participating system 110 in the calling order immediately before the calling order of the participating system 110 corresponds to the application pattern represented by the dependency pattern (previous) corresponding to the participating system 110 .
(B) The application pattern for the participating system 110 in the calling order immediately after the calling order of the participating system 110 corresponds to the application pattern represented by the dependency pattern (later) corresponding to the participating system 110 .

分散トランザクションプログラム生成部104は、分散トランザクションプログラム803の構造が一意に定まらない場合、所定のルール又はユーザによる入力を基に、分散トランザクションプログラム803の構造を決定してよい。これにより、分散トランザクションプログラム803の構造を適切に定めることができる。例えば、分散トランザクションプログラム生成部104は、分散トランザクションプログラム803の構造が一意に定まらない場合、所定のルールを基に分散トランザクションプログラム803の構造を決定し、それでもその構造が一意に定まらない場合に、ユーザによる入力を基に、分散トランザクションプログラム803の構造を一意に決定してよい。 If the structure of the distributed transaction program 803 is not uniquely determined, the distributed transaction program generator 104 may determine the structure of the distributed transaction program 803 based on a predetermined rule or user input. This allows the structure of the distributed transaction program 803 to be defined appropriately. For example, when the structure of the distributed transaction program 803 is not uniquely determined, the distributed transaction program generator 104 determines the structure of the distributed transaction program 803 based on a predetermined rule. Based on user input, the structure of distributed transaction program 803 may be uniquely determined.

パターンテーブル501が、パターン毎に、当該パターンの適用がオプションか否かを表す情報を含んでよい。分散トランザクションプログラム803の構造が一意に定まらない場合とは、特定された少なくとも一つの適用パターンがオプションである場合でよい。このように、パターンの適用をオプショナルにすることに伴い生じる、分散トランザクションプログラム803の構造が一意に定まらないという課題を、上述のようにルール又はユーザ入力により解決することができる。 The pattern table 501 may include, for each pattern, information indicating whether application of the pattern is optional. A case where the structure of the distributed transaction program 803 is not uniquely determined may be a case where at least one specified application pattern is optional. In this way, the problem that the structure of the distributed transaction program 803 is not uniquely determined, which is caused by making pattern application optional, can be solved by rules or user input as described above.

適用がオプションである少なくとも一つのパターンについて、当該パターンの適用に関するルールに従う処理のためのパターンルールプログラムが関連付けられており、特定された適用パターンに適用がオプションの適用パターンがあり、当該適用パターンについて、関連付けられたパターンルールプログラムがある場合、分散トランザクションプログラム生成部104は、分散トランザクションプログラム803の構造を一意に定めるために当該パターンルールプログラムを実行してよい。このようにして、分散トランザクションプログラム803の構造が一意に定まらない場合には該当のルールプログラムを用いて自動的に分散トランザクションプログラム803の構造が一意に定めることが期待できる。 At least one pattern whose application is optional is associated with a pattern rule program for processing according to rules regarding the application of the pattern, the specified application pattern has an application pattern whose application is optional, and the application pattern has an optional application pattern. , if there is an associated pattern rule program, distributed transaction program generator 104 may execute the pattern rule program to uniquely define the structure of distributed transaction program 803 . In this way, when the structure of the distributed transaction program 803 is not uniquely determined, it can be expected that the structure of the distributed transaction program 803 is automatically determined uniquely using the corresponding rule program.

以上、一実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。 Although one embodiment has been described above, this is an example for explaining the present invention, and is not intended to limit the scope of the present invention only to this embodiment. The present invention can also be implemented in various other forms.

例えば、図11においてS1103及びS1104が無く(例えば、適用パターンが常に一義的に決まる場合(例えば、「オプション」列517が無い場合))、S1102の次にS1105が行われてもよい。また、例えば、図11のS1103及びS1104のうちS1103が無くS1104は存在してもよい。 For example, if there are no S1103 and S1104 in FIG. 11 (for example, if the application pattern is always uniquely determined (for example, if there is no "option" column 517)), then S1102 may be followed by S1105. Further, for example, among S1103 and S1104 in FIG. 11, S1103 may be absent and S1104 may exist.

100:分散トランザクション管理システム 100: Distributed Transaction Management System

Claims (9)

分散トランザクションにおいて呼び出される複数の参加システムそれぞれの呼び出し順番を規定した情報である分散トランザクションフロー、及び当該複数の参加システムの各々について当該参加システムの特性であるサービス特性を表す情報であるサービス特性情報の入力を受け付ける入力部と、
呼び出し先の参加システムのサービス特性の制約条件を表す情報をパターン毎に含んだパターン情報を基に、前記サービス特性情報が表す参加システム毎に、当該参加システムのサービス特性に対応した制約条件を満たすパターンを適用パターンとして特定する適用パターン判定部と、
前記複数の参加システムの各々についてパターン適用済呼び出しプログラムを生成し、当該複数の参加システムの各々のパターン適用済呼び出しプログラムと、前記分散トランザクションフローが表す呼び出し順序とを基に、当該呼び出し順序で実行される複数のパターン適用済呼び出しプログラムを含んだ分散トランザクションプログラムを生成する分散トランザクションプログラム生成部と
を備え、
前記複数の参加システムの各々について、前記パターン適用済呼び出しプログラムは、それぞれパターンが記述された複数のパターンプログラムのうち、当該参加システムについて前記特定された適用パターンのパターンプログラムが、当該参加システムを呼び出し先とした呼び出しプログラムに適用されたプログラムである、
分散トランザクション管理システム。
Distributed transaction flow, which is information that defines the calling order of each of the multiple participating systems called in a distributed transaction, and service characteristic information, which is information representing the service characteristics, which are the characteristics of the participating system, for each of the multiple participating systems. an input unit that receives input;
Based on pattern information containing information representing the constraint conditions of the service characteristics of the called participating system for each pattern, each participating system represented by the service characteristic information satisfies the constraint conditions corresponding to the service characteristics of the participating system. an applied pattern determination unit that identifies a pattern as an applied pattern;
generating a pattern-applied calling program for each of the plurality of participating systems, and executing it in the calling order based on the pattern-applied calling program of each of the plurality of participating systems and the calling order represented by the distributed transaction flow; a distributed transaction program generator for generating a distributed transaction program including a plurality of pattern-applied calling programs that
For each of the plurality of participating systems, the pattern-applied calling program calls the participating system by the pattern program of the application pattern identified for the participating system among the plurality of pattern programs each describing a pattern. is the program applied to the earlier calling program,
Distributed transaction management system.
請求項1に記載の分散トランザクション管理システムにおいて、
前記分散トランザクションプログラムを実行する分散トランザクション実行部、
を備える分散トランザクション管理システム。
2. The distributed transaction management system of claim 1, wherein
a distributed transaction execution unit that executes the distributed transaction program;
A distributed transaction management system with
請求項1に記載の分散トランザクション管理システムにおいて、
前記パターン情報が、パターン毎に、パターン間の依存関係を表す情報を含み、
前記適用パターン判定部が、前記サービス特性情報が表す参加システム毎に、当該参加システムの適用パターンを、当該参加システムのサービス特性に対応した制約条件を表す情報の他に、当該参加システムに対応した、パターン間の依存関係を表す情報を基に、特定する、
分散トランザクション管理システム。
2. The distributed transaction management system of claim 1, wherein
The pattern information includes, for each pattern, information representing a dependency relationship between patterns,
The application pattern determination unit determines, for each participating system represented by the service characteristic information, the application pattern of the participating system corresponding to the participating system in addition to the information representing the constraint conditions corresponding to the service characteristics of the participating system. , based on the information representing the dependencies between patterns, identify
Distributed transaction management system.
請求項3に記載の分散トランザクション管理システムにおいて、
各パターンについて、パターン間の依存関係を表す情報は、パターンの階層関係を表す情報である依存パターン(階層)を含み、
前記適用パターン判定部が、前記サービス特性情報が表す参加システム毎に、当該参加システムの適用パターンとして、当該参加システムのサービス特性に対応した制約条件を満たし、且つ、当該参加システムについて既に特定済の適用パターンの階層が当該参加システムに対応した依存パターン(階層)が表す階層を満たすパターンを特定する、
分散トランザクション管理システム。
4. The distributed transaction management system of claim 3, wherein
For each pattern, the information representing the dependency relationship between the patterns includes a dependency pattern (hierarchy) that is information representing the hierarchical relationship of the patterns,
The application pattern determination unit satisfies the constraint conditions corresponding to the service characteristics of the participating system and has already been specified for the participating system as the application pattern of the participating system for each participating system represented by the service characteristics information. Identify a pattern that satisfies the hierarchy represented by the dependency pattern (hierarchy) corresponding to the participating system in which the hierarchy of application patterns is represented;
Distributed transaction management system.
請求項3に記載の分散トランザクション管理システムにおいて、
各パターンについて、パターン間の依存関係を表す情報は、下記(a)及び(b)のうちの少なくとも一つを含み、
(a)当該パターンが適用パターンとされる参加システムの呼び出し順番の直前の呼び出し順番の参加システムについての適用パターンを表す情報である依存パターン(前)、
(b)当該パターンが適用パターンとされる参加システムの呼び出し順番の直後の呼び出し順番の参加システムについての適用パターンを表す情報である依存パターン(後)、
前記適用パターン判定部が、前記サービス特性情報が表す参加システム毎に、当該参加システムの適用パターンとして、当該参加システムのサービス特性に対応した制約条件を満たし、且つ、下記(A)及び(B)のうちの少なくとも一つを満たすパターンを特定する、
(A)当該参加システムの呼び出し順番の直前の呼び出し順番の参加システムについての適用パターンが、当該参加システムに対応した依存パターン(前)が表す適用パターンに該当する、
(B)当該参加システムの呼び出し順番の直後の呼び出し順番の参加システムについての適用パターンが、当該参加システムに対応した依存パターン(後)が表す適用パターンに該当する、
分散トランザクション管理システム。
4. The distributed transaction management system of claim 3, wherein
For each pattern, the information representing the inter-pattern dependency includes at least one of the following (a) and (b),
(a) Dependency pattern (previous), which is information representing the application pattern for the participating system whose calling order is immediately before the calling order of the participating system for which the pattern is the applied pattern;
(b) Dependency pattern (later), which is information representing the application pattern for the participating system whose calling order is immediately after the calling order of the participating system for which the pattern is the applied pattern;
The application pattern determination unit satisfies the constraint conditions corresponding to the service characteristics of the participating system as the application pattern of the participating system for each participating system represented by the service characteristics information, and the following (A) and (B) identify patterns that satisfy at least one of
(A) The application pattern for the participating system in the calling order immediately before the calling order of the participating system corresponds to the application pattern represented by the dependency pattern (previous) corresponding to the participating system.
(B) The application pattern for the participating system in the calling order immediately after the participating system's calling order corresponds to the application pattern represented by the dependency pattern (later) corresponding to the participating system.
Distributed transaction management system.
請求項1に記載の分散トランザクション管理システムにおいて、
前記分散トランザクションプログラム生成部は、前記分散トランザクションプログラムの構造が一意に定まらない場合、所定のルール又はユーザによる入力を基に、分散トランザクションプログラムの構造を決定する、
分散トランザクション管理システム。
2. The distributed transaction management system of claim 1, wherein
When the structure of the distributed transaction program is not uniquely determined, the distributed transaction program generation unit determines the structure of the distributed transaction program based on predetermined rules or user input.
Distributed transaction management system.
請求項6に記載の分散トランザクション管理システムにおいて、
前記パターン情報が、パターン毎に、当該パターンの適用がオプションか否かを表す情報を含み、
前記分散トランザクションプログラムの構造が一意に定まらない場合とは、特定された少なくとも一つの適用パターンがオプションである場合である、
分散トランザクション管理システム。
7. The distributed transaction management system of claim 6,
The pattern information includes, for each pattern, information indicating whether the application of the pattern is optional,
The case where the structure of the distributed transaction program is not uniquely determined is the case where at least one specified application pattern is optional.
Distributed transaction management system.
請求項6に記載の分散トランザクション管理システムにおいて、
適用がオプションである少なくとも一つのパターンについて、当該パターンの適用に関するルールに従う処理のためのパターンルールプログラムが関連付けられており、前記特定された適用パターンに適用がオプションの適用パターンがあり、当該適用パターンについて、関連付けられたパターンルールプログラムがある場合、前記分散トランザクションプログラム生成部は、前記分散トランザクションプログラムの構造を一意に定めるために当該パターンルールプログラムを実行する、
分散トランザクション管理システム。
7. The distributed transaction management system of claim 6,
At least one pattern whose application is optional is associated with a pattern rule program for processing according to a rule regarding application of the pattern, the identified application pattern has an application pattern whose application is optional, and the application pattern , if there is an associated pattern rule program, the distributed transaction program generator executes the pattern rule program to uniquely define the structure of the distributed transaction program;
Distributed transaction management system.
コンピュータが、分散トランザクションフロー及びサービス特性情報の入力を受け付け、
前記分散トランザクションフローは、分散トランザクションにおいて呼び出される複数の参加システムそれぞれの呼び出し順番を規定した情報であり、
当該複数の参加システムの各々は、当該分散トランザクションに参加するシステムであり、
前記サービス特性情報は、当該複数の参加システムの各々について当該参加システムの特性であるサービス特性を表す情報であり、
コンピュータが、呼び出し先の参加システムのサービス特性の制約条件を表す情報をパターン毎に含んだパターン情報を基に、前記サービス特性情報が表す参加システム毎に、当該参加システムのサービス特性に対応した制約条件を満たすパターンを適用パターンとして特定し、
コンピュータが、前記複数の参加システムの各々についてパターン適用済呼び出しプログラムを生成し、当該複数の参加システムの各々のパターン適用済呼び出しプログラムと、前記分散トランザクションフローが表す呼び出し順序とを基に、当該呼び出し順序で実行される複数のパターン適用済呼び出しプログラムを含んだ分散トランザクションプログラムを生成し、
前記複数の参加システムの各々について、前記パターン適用済呼び出しプログラムは、それぞれパターンが記述された複数のパターンプログラムのうち、当該参加システムについて前記特定された適用パターンのパターンプログラムが、当該参加システムを呼び出し先とした呼び出しプログラムに適用されたプログラムである、
分散トランザクション管理方法。
a computer accepting input of distributed transaction flow and service characteristic information;
The distributed transaction flow is information that defines the calling order of each of a plurality of participating systems called in a distributed transaction,
each of the plurality of participating systems is a system that participates in the distributed transaction;
The service characteristic information is information representing a service characteristic, which is a characteristic of the participating system, for each of the plurality of participating systems,
Based on the pattern information containing the information representing the constraint conditions of the service characteristics of the called participating system for each pattern, the computer applies constraints corresponding to the service characteristics of the participating system for each of the participating systems represented by the service characteristics information. Identify the pattern that satisfies the condition as the applicable pattern,
A computer generates a pattern-applied calling program for each of the plurality of participating systems, and based on the pattern-applied calling program of each of the plurality of participating systems and the calling order represented by the distributed transaction flow, the calling generating a distributed transaction program containing a plurality of patterned calling programs executed in sequence;
For each of the plurality of participating systems, the pattern-applied calling program calls the participating system by the pattern program of the application pattern identified for the participating system among the plurality of pattern programs each describing a pattern. is the program applied to the earlier calling program,
Distributed transaction management method.
JP2021098052A 2021-06-11 2021-06-11 Distributed transaction management method and system Active JP7285283B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2021098052A JP7285283B2 (en) 2021-06-11 2021-06-11 Distributed transaction management method and system
US17/683,705 US11556554B2 (en) 2021-06-11 2022-03-01 Distributed transaction management method and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021098052A JP7285283B2 (en) 2021-06-11 2021-06-11 Distributed transaction management method and system

Publications (2)

Publication Number Publication Date
JP2022189463A JP2022189463A (en) 2022-12-22
JP7285283B2 true JP7285283B2 (en) 2023-06-01

Family

ID=84389894

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021098052A Active JP7285283B2 (en) 2021-06-11 2021-06-11 Distributed transaction management method and system

Country Status (2)

Country Link
US (1) US11556554B2 (en)
JP (1) JP7285283B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240039981A1 (en) * 2022-07-28 2024-02-01 Adp, Inc. Distributed transactions over broadcast communication channel within microservices environment

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004272912A (en) 2003-03-06 2004-09-30 Microsoft Corp Architecture for distributed computing system and automated design, development and management of distributed application
US20190220331A1 (en) 2018-01-16 2019-07-18 Enterpriseweb Llc Event-driven programming model-based on asynchronous, massively parallel dataflow processes for highly-scalable distributed applications

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5785130B2 (en) 2012-04-19 2015-09-24 三菱電機株式会社 Program generator
US10430402B2 (en) * 2015-01-16 2019-10-01 Red Hat, Inc. Distributed transaction with dynamic form
WO2021211025A1 (en) * 2020-04-15 2021-10-21 Telefonaktiebolaget Lm Ericsson (Publ) Policy-aware distributed ledger networks

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004272912A (en) 2003-03-06 2004-09-30 Microsoft Corp Architecture for distributed computing system and automated design, development and management of distributed application
US20190220331A1 (en) 2018-01-16 2019-07-18 Enterpriseweb Llc Event-driven programming model-based on asynchronous, massively parallel dataflow processes for highly-scalable distributed applications

Also Published As

Publication number Publication date
JP2022189463A (en) 2022-12-22
US11556554B2 (en) 2023-01-17
US20220398555A1 (en) 2022-12-15

Similar Documents

Publication Publication Date Title
US11847438B2 (en) Offline capabilities for live applications in a cloud collaboration platform
US11269819B1 (en) Managing consistency models in a distributed database
US7543046B1 (en) Method for managing cluster node-specific quorum roles
US8438534B2 (en) Transformation of data between hierarchical data formats
TW510988B (en) Automatic resource group formation and maintenance in a high availability cluster configuration
US8549353B2 (en) Batch processing error handling modes
US8683431B2 (en) Applying rules to data
KR102549994B1 (en) Systems and methods for performing data processing operations using variable level parallelism
US20110161941A1 (en) Creation of form-based applications
US9842183B1 (en) Methods and systems for enabling concurrent editing of electronic circuit layouts
JP7098793B2 (en) Causal relationship display system and method
US20110161917A1 (en) Processing collections of data items
US20110161886A1 (en) Transformation of hierarchical data formats using graphical rules
JP7285283B2 (en) Distributed transaction management method and system
CN113688612A (en) Multimodal sharing of content between documents
US20160364674A1 (en) Project management with critical path scheduling and releasing of resources
US20140039943A1 (en) Dynamic and hierarchical generic data mapping for traveler profile publication
Helland Life beyond distributed transactions: an apostate’s opinion
JP3942877B2 (en) Computer-readable recording medium recording program for managing CAD data and program for managing CAD data
US20180075057A1 (en) Network partition tolerance in a high available centralized vcs implementation
US20230409346A1 (en) Cloud Infrastructure Management
US6389482B1 (en) Dynamic transitioning from a local pipe to a cross-system pipe
US20220245176A1 (en) Data processing system with manipulation of logical dataset groups
JP7417462B2 (en) Package generation device, package management system and package generation method
Hatim et al. Workflow access control: From role engineering to task engineering

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220302

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220302

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230522

R150 Certificate of patent or registration of utility model

Ref document number: 7285283

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150