[go: up one dir, main page]

JP2025141750A - Accounting system - Google Patents

Accounting system

Info

Publication number
JP2025141750A
JP2025141750A JP2024116200A JP2024116200A JP2025141750A JP 2025141750 A JP2025141750 A JP 2025141750A JP 2024116200 A JP2024116200 A JP 2024116200A JP 2024116200 A JP2024116200 A JP 2024116200A JP 2025141750 A JP2025141750 A JP 2025141750A
Authority
JP
Japan
Prior art keywords
server
auxiliary
accounting
processing
servers
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.)
Pending
Application number
JP2024116200A
Other languages
Japanese (ja)
Inventor
敦志 新谷
寛之 野田
資大 村松
Original Assignee
株式会社北國銀行
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 株式会社北國銀行 filed Critical 株式会社北國銀行
Publication of JP2025141750A publication Critical patent/JP2025141750A/en
Pending legal-status Critical Current

Links

Landscapes

  • Hardware Redundancy (AREA)

Abstract

【課題】勘定系処理をより確実に実行することができる勘定系システムを提供する。
【解決手段】勘定系システムは、第1のプラットフォーマが提供する第1クラウドシステム1におけるサーバ10と、前記第1のプラットフォーマと異なる第2のプラットフォーマが提供する第2クラウドシステム2における補助サーバ20とを備え、前記サーバ10がクライアントシステム4からのアクセスを受けて勘定系処理を実行し、前記サーバ10と前記補助サーバ20との間で、前記勘定系処理を実行するためのデータベースを同期し、前記補助サーバ20に切り換えて前記勘定系処理を実行する。
【選択図】図1

An accounting system capable of more reliably executing accounting processing is provided.
[Solution] The accounting system comprises a server 10 in a first cloud system 1 provided by a first platform provider and an auxiliary server 20 in a second cloud system 2 provided by a second platform provider different from the first platform provider, wherein the server 10 receives access from a client system 4 and executes accounting system processing, synchronizes databases for executing the accounting system processing between the server 10 and the auxiliary server 20, and switches to the auxiliary server 20 to execute the accounting system processing.
[Selected Figure] Figure 1

Description

本発明は、勘定系システムに関する。 The present invention relates to an accounting system.

クラウドシステムでは、複数のサーバコンピュータが互いに同期を取り、いずれかのサーバの障害時等に別のサーバに切り換えて処理を実行することが行われている。例えば特許文献1では、二重化されたサーバユニットのいずれか一方を主系として複数の端末に対してサービスを提供させ、他方のサーバユニットを従系とする二重化サーバシステムが開示されている。 In a cloud system, multiple server computers are synchronized with each other, and if one server fails, processing is switched to another server. For example, Patent Document 1 discloses a duplicated server system in which one of the duplicated server units acts as the main system and provides services to multiple terminals, while the other server unit acts as the secondary system.

特開2000-330814号公報Japanese Patent Application Laid-Open No. 2000-330814

一つの側面では、勘定系処理をより確実に実行することができる勘定系システムを提供することを目的とする。 One aspect is to provide an accounting system that can perform accounting processing more reliably.

一つの側面では、勘定系システムは、第1のプラットフォーマが提供する第1クラウドシステムにおけるサーバと、前記第1のプラットフォーマと異なる第2のプラットフォーマが提供する第2クラウドシステムにおける補助サーバとを備え、前記サーバがクライアントシステムからのアクセスを受けて勘定系処理を実行し、前記サーバと前記補助サーバとの間で、前記勘定系処理を実行するためのデータベースを同期し、前記補助サーバに切り換えて前記勘定系処理を実行する。 In one aspect, the accounting system includes a server in a first cloud system provided by a first platform provider and an auxiliary server in a second cloud system provided by a second platform provider different from the first platform provider, and the server receives access from a client system to perform accounting system processing, synchronizes databases for performing the accounting system processing between the server and the auxiliary server, and switches to the auxiliary server to perform the accounting system processing.

一つの側面では、勘定系処理をより確実に実行することができる。 On the one hand, accounting processing can be performed more reliably.

勘定系システムの構成例を示す説明図である。FIG. 1 is an explanatory diagram showing an example of the configuration of an accounting system. サーバの構成例を示すブロック図である。FIG. 2 is a block diagram illustrating an example of the configuration of a server. 運用環境及びスタンバイ環境の構成例を示す図である。FIG. 1 illustrates an example of the configuration of an operational environment and a standby environment. 勘定系システムが実行する処理手順の一例を示すフローチャートである。10 is a flowchart illustrating an example of a processing procedure executed by an accounting system. ステップS12のサブルーチンの処理手順を示すフローチャートである。10 is a flowchart showing the processing procedure of a subroutine of step S12. ステップS17のサブルーチンの処理手順を示すフローチャートである。10 is a flowchart showing the processing procedure of a subroutine of step S17.

以下、本発明をその実施の形態を示す図面に基づいて詳述する。
(実施の形態)
図1は、勘定系システムの構成例を示す説明図である。本実施の形態では、マルチクラウド環境で、クラウド間のデータを同期し、いずれかのクラウド環境を選択して、オンラインによる銀行業務のための勘定系処理を実行する勘定系システムについて説明する。勘定系システムは、第1クラウドシステム1、第2クラウドシステム2、管理者端末3、クライアントシステム4、4、4…を含む。各装置は、インターネット等のネットワークNを介して通信接続されている。
The present invention will be described in detail below with reference to the drawings showing embodiments thereof.
(Embodiment)
FIG. 1 is an explanatory diagram showing an example of the configuration of an accounting system. In this embodiment, an accounting system is described that synchronizes data between clouds in a multi-cloud environment, selects one of the cloud environments, and executes accounting processing for online banking operations. The accounting system includes a first cloud system 1, a second cloud system 2, an administrator terminal 3, and client systems 4, 4, 4, etc. Each device is connected to a network N such as the Internet for communication.

第1クラウドシステム1は、第1のプラットフォーマが提供するクラウドシステムであり、複数のサーバ10、10、10…から構成されている。本実施の形態では、第1クラウドシステム1として、マイクロソフト(登録商標)社が提供するMicrosoft Azure(登録商標)を想定する。後述の如く、本実施の形態では第1クラウドシステム1を主たる勘定系システムとして機能させ、オンラインによる銀行業務のための種々の勘定系処理を行わせる。 The first cloud system 1 is a cloud system provided by a first platform provider and is composed of multiple servers 10, 10, 10... In this embodiment, Microsoft Azure (registered trademark) provided by Microsoft (registered trademark) Corporation is assumed as the first cloud system 1. As described below, in this embodiment, the first cloud system 1 functions as the main accounting system and performs various accounting processing for online banking operations.

以下の説明では、第1クラウドシステム1を「運用環境1」と呼ぶ。 In the following description, the first cloud system 1 will be referred to as the "operational environment 1."

なお、図1では便宜上、各サーバ10を異なるハードウェア(サーバコンピュータ)として図示しているが、サーバ10、10、10…は同じ物理サーバ上に仮想的に構築された仮想マシンであってもよい。この点は下記のコンテナ基盤30、クォーラムデバイス40も同様である。 For convenience, in Figure 1, each server 10 is illustrated as a different piece of hardware (server computer), but the servers 10, 10, 10, etc. may also be virtual machines virtually constructed on the same physical server. This also applies to the container platform 30 and quorum device 40 described below.

運用環境1にはサーバ10以外に、コンテナ基盤30と、クォーラムデバイス40(例えばサーバコンピュータ)とが配置されている。コンテナ基盤30は、オンライン銀行業務に係るアプリケーション(例えば普通預金の入金取引、出金取引等)を実行するコンテナ(アプリケーション実行基盤)である。クォーラムデバイス40は、各サーバ10のデータベースの死活監視を行うコンピュータである。各装置の機能については後述する。 In addition to servers 10, operational environment 1 also includes a container platform 30 and a quorum device 40 (e.g., a server computer). The container platform 30 is a container (application execution platform) that executes applications related to online banking operations (e.g., deposit transactions, withdrawal transactions, etc. for savings accounts). The quorum device 40 is a computer that monitors the status of the databases of each server 10. The functions of each device will be described later.

第2クラウドシステム2は、第1のプラットフォーマと異なる第2のプラットフォーマが提供するクラウドシステムであり、複数の補助サーバ20、20、20…から構成されている。本実施の形態では、第2クラウドシステム2として、グーグル(登録商標)社が提供するGoogle Cloud Platform(登録商標)を想定する。本実施の形態では第2クラウドシステム2を予備の勘定系システムとして機能させ、運用環境1に障害等が発生した場合に勘定系処理を行わせる。 The second cloud system 2 is a cloud system provided by a second platform provider different from the first platform provider, and is composed of multiple auxiliary servers 20, 20, 20.... In this embodiment, the second cloud system 2 is assumed to be Google Cloud Platform (registered trademark) provided by Google (registered trademark). In this embodiment, the second cloud system 2 functions as a backup accounting system, and performs accounting system processing in the event of a failure or other problem in the operational environment 1.

以下の説明では、第2クラウドシステム2を「スタンバイ環境2」と呼ぶ。 In the following description, the second cloud system 2 will be referred to as the "standby environment 2."

なお、スタンバイ環境2も運用環境1と同様に、各補助サーバ20は同じ物理サーバ上に構築された仮想マシンであってもよい。 In addition, as with the operational environment 1, in the standby environment 2, each auxiliary server 20 may be a virtual machine built on the same physical server.

また、スタンバイ環境2には、運用環境1と同様に、コンテナ基盤50と、クォーラムデバイス60とが配置されている。 In addition, the standby environment 2 is equipped with a container base 50 and a quorum device 60, just like the operational environment 1.

管理者端末3は、本システムの管理者が操作する端末装置であり、例えばパーソナルコンピュータである。本システムでは管理者端末3を介して管理者から実行環境の切換要求を受け付けた場合に、勘定系処理を実行する環境を運用環境1からスタンバイ環境2に切り換える。 Administrator terminal 3 is a terminal device operated by the administrator of this system, such as a personal computer. When this system receives a request to switch the execution environment from the administrator via administrator terminal 3, it switches the environment in which accounting processing is executed from operational environment 1 to standby environment 2.

クライアントシステム4は、銀行業務に係るオンラインサービスを受けるクライアントである。クライアントシステム4は、銀行内のシステム(例えば普通預金の入金取引、出金取引等)であってもよく、銀行外のシステム(例えばBaaS(Business as a Service)、FinTech企業のサービス等)であってもよい。本システムは、クライアントシステム4からのアクセスを受けて勘定系処理を実行する。 Client system 4 is a client that receives online services related to banking operations. Client system 4 may be an internal bank system (e.g., deposit transactions for ordinary savings accounts, withdrawal transactions, etc.) or an external bank system (e.g., BaaS (Business as a Service), FinTech company services, etc.). This system receives access from client system 4 and performs accounting processing.

なお、本実施の形態ではオンラインによる銀行業務に係る処理を行う勘定系システムを例に説明するが、本システムを、銀行業務以外の金融処理を行うシステムに応用してもよい。 In this embodiment, we will explain an accounting system that performs online banking-related processing as an example, but this system may also be applied to systems that perform financial processing other than banking.

図2は、サーバ10の構成例を示すブロック図である。サーバ10は、制御部11、主記憶部12、通信部13、及び補助記憶部14を備える。
制御部11は、一又は複数のCPU(Central Processing Unit)、MPU(Micro-Processing Unit)、GPU(Graphics Processing Unit)等の演算処理装置を有し、補助記憶部14に記憶されたプログラムPを読み出して実行することにより、種々の情報処理、制御処理等を行う。主記憶部12は、SRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)等の一時記憶領域であり、制御部11が演算処理を実行するために必要なデータを一時的に記憶する。通信部13は、通信に関する処理を行うための通信モジュールであり、外部と情報の送受信を行う。
2 is a block diagram showing an example of the configuration of the server 10. The server 10 includes a control unit 11, a main memory unit 12, a communication unit 13, and an auxiliary memory unit .
The control unit 11 has one or more arithmetic processing devices such as a central processing unit (CPU), a micro-processing unit (MPU), a graphics processing unit (GPU), etc., and performs various information processing, control processing, etc. by reading and executing a program P stored in the auxiliary storage unit 14. The main storage unit 12 is a temporary storage area such as a static random access memory (SRAM) or a dynamic random access memory (DRAM), and temporarily stores data necessary for the control unit 11 to execute arithmetic processing. The communication unit 13 is a communication module for performing communication-related processing, and transmits and receives information to and from the outside.

補助記憶部14は、大容量メモリ、ハードディスク等の不揮発性記憶領域であり、制御部11が処理を実行するために必要なプログラムP(プログラム製品)、その他のデータを記憶している。また、補助記憶部14は、勘定系元帳DB140を記憶している。勘定系元帳DB140は、勘定系処理の結果(トランザクションログ)を格納するデータベースであり、サーバ10が勘定系処理を実行するために必要なデータベースである。 The auxiliary memory unit 14 is a non-volatile storage area such as a large-capacity memory or hard disk, and stores the program P (program product) and other data required for the control unit 11 to execute processing. The auxiliary memory unit 14 also stores the accounting system ledger DB 140. The accounting system ledger DB 140 is a database that stores the results of accounting system processing (transaction logs), and is a database required for the server 10 to execute accounting system processing.

なお、本実施の形態では便宜上、勘定系元帳DB140が単一であるものとして説明するが、サーバ10は補助サーバ20と複数のデータベースを同期してもよい。 For convenience, this embodiment will be described assuming that there is a single accounting ledger DB 140, but the server 10 may synchronize multiple databases with the auxiliary server 20.

また、補助記憶部14はサーバ10に接続された外部記憶装置であってもよい。また、サーバ10は複数のコンピュータからなるマルチコンピュータであっても良く、ソフトウェアによって仮想的に構築された仮想マシンであってもよい。 The auxiliary storage unit 14 may also be an external storage device connected to the server 10. The server 10 may also be a multi-computer consisting of multiple computers, or may be a virtual machine virtually constructed using software.

また、本実施の形態においてサーバ10は上記の構成に限られず、例えば操作入力を受け付ける入力部、画像を表示する表示部等を含んでもよい。また、サーバ10は、CD(Compact Disk)-ROM、DVD(Digital Versatile Disc)-ROM等の可搬型記憶媒体1aを読み取る読取部を備え、可搬型記憶媒体1aからプログラムPを読み取って実行するようにしても良い。 Furthermore, in this embodiment, the server 10 is not limited to the above configuration, and may include, for example, an input unit that accepts operational input, a display unit that displays images, etc. The server 10 may also be equipped with a reading unit that reads portable storage media 1a such as CD (Compact Disk)-ROM or DVD (Digital Versatile Disc)-ROM, and may read and execute the program P from the portable storage medium 1a.

補助サーバ20のハードウェア構成はサーバ10と同様であるため、本実施の形態では補助サーバ20のハードウェア構成に関する図示及び説明を省略する。 The hardware configuration of the auxiliary server 20 is similar to that of the server 10, so illustrations and descriptions of the hardware configuration of the auxiliary server 20 will be omitted in this embodiment.

図3は、運用環境1及びスタンバイ環境2の構成例を示す図である。以下では本実施の形態の概要を説明する。 Figure 3 shows an example configuration of an operational environment 1 and a standby environment 2. The following provides an overview of this embodiment.

上述の如く、本システムでは主に運用環境1で勘定系処理(以下では「トランザクション」とも言う)を実行すると共に、運用環境1に障害等が発生した場合に、予備の環境であるスタンバイ環境2で勘定系処理を実行する。運用環境1は例えばMicrosoft Azureであり、スタンバイ環境2は例えばGoogle Cloud Platformである。運用環境1のサーバ10、及びスタンバイ環境2の補助サーバ20はいわゆるSQLサーバであり、後述の「可用性グループ」(Basic Availability Group)や「分散可用性グループ」(Distributed Availability Group)を構成可能である。 As described above, in this system, accounting processing (hereinafter also referred to as "transactions") is primarily performed in operational environment 1, and in the event of a failure or other problem in operational environment 1, accounting processing is performed in standby environment 2, which is a backup environment. Operational environment 1 is, for example, Microsoft Azure, and standby environment 2 is, for example, Google Cloud Platform. Server 10 in operational environment 1 and auxiliary server 20 in standby environment 2 are so-called SQL servers, and can configure "basic availability groups" and "distributed availability groups," as described below.

本実施の形態では、運用環境1及びスタンバイ環境2それぞれにおいて複数台ずつ(図3では2台ずつ)サーバ10及び補助サーバ20を使用する。サーバ10、10及び補助サーバ20、20はそれぞれ、異なる可用性グループを構成する。 In this embodiment, multiple servers 10 and auxiliary servers 20 (two each in Figure 3) are used in each of the operational environment 1 and standby environment 2. The servers 10, 10 and auxiliary servers 20, 20 each constitute a different availability group.

可用性グループとは、複数のSQLサーバ(ノード)を束ねて、クライアントに対して論理的に単一のSQLサーバであるかのように抽象化する技術であり、SQLサーバに設定可能なオプションである。可用性グループは、メインとなる一つのSQLサーバ(Primary)と、サブとなる最大8つのSQLサーバ(Secondary)とで構成することができる。メインのSQLサーバとサブのSQLサーバとは、後述の同期コミットモード又は非同期コミットモードにより、リアルタイムでデータベースの同期を行う。 An availability group is a technology that bundles multiple SQL servers (nodes) and abstracts them to clients as if they were a single logical SQL server; it is an option that can be set on an SQL server. An availability group can be composed of one main SQL server (Primary) and up to eight sub-SQL servers (Secondary). The main SQL server and sub-SQL servers synchronize their databases in real time using either synchronous commit mode or asynchronous commit mode, as described below.

上述の如く、運用環境1のサーバ10、10とスタンバイ環境2の補助サーバ20、20とはそれぞれ、異なる可用性グループを構成する。運用環境1のサーバ10、10のうち、いずれかのサーバ10はメインのサーバコンピュータ(Primary)として機能し、他のサーバ10はサブのサーバコンピュータ(Secondary)として機能する。メインのサーバ10は、コンテナ基盤30に配置したオンライン銀行業務に係るアプリケーション(例えば普通預金の入金取引、出金取引等)から、可用性リスナーを介してトランザクションを受け付ける。 As described above, the servers 10, 10 of the operational environment 1 and the auxiliary servers 20, 20 of the standby environment 2 each constitute a different availability group. Of the servers 10, 10 of the operational environment 1, one of the servers 10 functions as the main server computer (Primary), and the other server 10 functions as a sub-server computer (Secondary). The main server 10 accepts transactions via an availability listener from applications related to online banking services (e.g., deposit transactions, withdrawal transactions, etc.) deployed on the container platform 30.

可用性リスナーとは、可用性グループを構成した場合に、クライアントから見たときの論理的なエンドポイント(接続先)となるサービスである。SQLサーバとクライアントの間に可用性リスナーを介在させることで、クライアントはどのSQLサーバに接続するのかを意識せずに接続することができる。 An availability listener is a service that serves as the logical endpoint (connection destination) from the client's perspective when an availability group is configured. By placing an availability listener between the SQL server and the client, the client can connect without having to be aware of which SQL server it is connecting to.

コンテナ基盤30を介してクライアントシステム4からトランザクションを受け付けた場合、メインのサーバ10はトランザクションを実行する。トランザクションログはリアルタイムでサブのサーバ10に送信され、勘定系元帳DB140が同期される。 When a transaction is received from a client system 4 via the container platform 30, the main server 10 executes the transaction. The transaction log is sent to the sub-server 10 in real time, and the accounting ledger DB 140 is synchronized.

そして、メインのサーバ10が何らかの理由(例えば障害等)で稼働を停止した場合、サブのサーバ10に自動的に切換(フェールオーバー(Failover)、図3では「F/O」と図示)を行ってトランザクションを実行する。これにより、ユーザは継続してオンラインサービスを受けることができる。 If the main server 10 stops operating for some reason (such as a failure), the transaction is automatically switched over to the sub-server 10 (failover, shown as "F/O" in Figure 3), allowing users to continue receiving online services.

サーバ10、10のうちいずれをメインとするかは、ハートビート通信に基づくクォーラム(投票)に依る。運用環境1のサーバ10、10及びクォーラムデバイス40は定期的にハートビート信号を送受信し、互いにデータベースの死活監視を行っている。サーバ10、10及びクォーラムデバイス40はそれぞれ投票権を持ち、トランザクションを実行するメインのサーバ10を多数決により選択する。すなわち、サーバ10、10及びクォーラムデバイス40のうち過半数がサーバ10を「正常」と判断した場合、そのサーバ10をメインとして選択する。多数決により決定するため、サーバ10及びクォーラムデバイス40の総数は奇数であることが望ましい。例えば図3のように、サーバ10及びクォーラムデバイス40の総数が3台である場合、計3票の投票権から過半数が決定されるため、いずれかのノード(サーバ10)が停止した場合に残りの2/3で過半数が維持され、クラスターは存続することができる。 Which of the servers 10, 10 is designated as the main server is determined by a quorum (voting) based on heartbeat communication. The servers 10, 10 and quorum device 40 in operational environment 1 periodically send and receive heartbeat signals to monitor the health of each other's databases. The servers 10, 10 and quorum device 40 each have voting rights, and the main server 10 to execute transactions is selected by majority vote. In other words, if a majority of the servers 10, 10 and quorum device 40 determine that a server 10 is "normal," that server 10 is selected as the main server. Because the decision is made by majority vote, it is desirable that the total number of servers 10 and quorum devices 40 be an odd number. For example, as shown in Figure 3, if there are three servers 10 and quorum devices 40, the majority is determined from a total of three voting rights. Therefore, if one node (server 10) stops, the remaining two-thirds maintain the majority, and the cluster can survive.

スタンバイ環境2についても基本的な処理動作は同じである。スタンバイ環境2の補助サーバ20、20のうち、いずれかの補助サーバ20がメインのサーバコンピュータ(Forwarder)として機能し、他の補助サーバ20はサブのサーバコンピュータ(Secondary)として機能する。メインの補助サーバ20は、コンテナ基盤50に配置したオンライン銀行業務に係るアプリケーション(普通預金の入金取引、出金取引等)から、可用性リスナーを介してトランザクションを受け付けて実行し、トランザクションログをサブの補助サーバ20と同期する。そして、メインの補助サーバ20が稼働を停止した場合、サブの補助サーバ20に自動的に切り換わる。運用環境1と同様に、補助サーバ20の切換は、ハートビート通信に基づくクォーラム(投票)に依る。 The basic processing operations are the same for standby environment 2. Of the auxiliary servers 20 in standby environment 2, one of them functions as the main server computer (Forwarder), and the other auxiliary server 20 functions as a sub-server computer (Secondary). The main auxiliary server 20 accepts and executes transactions via an availability listener from applications related to online banking (savings deposit transactions, withdrawal transactions, etc.) deployed on the container platform 50, and synchronizes the transaction log with the sub-auxiliary server 20. If the main auxiliary server 20 stops operating, it automatically switches to the sub-auxiliary server 20. As with operational environment 1, switching of auxiliary servers 20 is based on a quorum (voting) based on heartbeat communication.

本実施の形態では、運用環境1とスタンバイ環境2との間で処理を切換可能とすべく、運用環境1において実行したトランザクションログをスタンバイ環境2に同期する。具体的には、運用環境1に構成した可用性グループと、スタンバイ環境2に構成した可用性グループとにまたがる分散可用性グループを構成する。 In this embodiment, to enable processing to be switched between production environment 1 and standby environment 2, transaction logs executed in production environment 1 are synchronized with standby environment 2. Specifically, a distributed availability group is configured spanning the availability group configured in production environment 1 and the availability group configured in standby environment 2.

分散可用性グループとは、2つ以上の異なる可用性グループにまたがる可用性グループであり、SQLサーバに設定可能なオプションである。分散可用性グループを構成する各可用性グループは同じ場所にある必要はなく、オンプレミス物理環境、オンプレミス仮想環境、パブリッククラウド環境などにそれぞれ配置し、それらの可用性グループ同士で分散可用性グループを構成することが可能である。 A distributed availability group is an availability group that spans two or more different availability groups, and is an option that can be configured on SQL Server. The availability groups that make up a distributed availability group do not need to be in the same location; they can be placed in an on-premises physical environment, an on-premises virtual environment, a public cloud environment, etc., and a distributed availability group can be configured between these availability groups.

図3に示すように、本実施の形態では、運用環境1のサーバ10、10から構成される可用性グループと、スタンバイ環境2の補助サーバ20、20から構成される可用性グループとの間で分散可用性グループを構成する。運用環境1のサーバ10(Primary)はスタンバイ環境2の補助サーバ20(Forwarder)との間でトランザクションログを送受信し、勘定系元帳DB140を同期する。本実施の形態ではサーバ10と補助サーバ20との間で、非同期コミットモードではなく同期コミットモードにより同期を行う。 As shown in Figure 3, in this embodiment, a distributed availability group is formed between an availability group consisting of servers 10, 10 in operational environment 1 and an availability group consisting of auxiliary servers 20, 20 in standby environment 2. Server 10 (Primary) in operational environment 1 sends and receives transaction logs to and from auxiliary server 20 (Forwarder) in standby environment 2, and synchronizes the accounting ledger DB 140. In this embodiment, synchronization is performed between server 10 and auxiliary server 20 in synchronous commit mode rather than asynchronous commit mode.

同期コミットモードとは、各ノード(サーバ10及び補助サーバ20)の間でデータベースを同期する場合に、メインのノードが、サブのノードからデータベースを同期した旨のレスポンスを待ってトランザクションを行うモードである。これに対し、非同期コミットモードとは各ノードへのデータの伝搬(レスポンス)を待たずにトランザクションを進めるモードである。非同期コミットモードの方が処理速度に優れるが、ノードを切り換えた際にデータの欠損が生じる可能性がある。本実施の形態ではデータの欠損が生じないように、同期コミットモードで同期を行う。 Synchronous commit mode is a mode in which, when synchronizing databases between nodes (server 10 and auxiliary server 20), the main node waits for a response from the sub-node indicating that the database has been synchronized before proceeding with the transaction. In contrast, asynchronous commit mode is a mode in which the transaction proceeds without waiting for data propagation (response) to each node. Asynchronous commit mode has superior processing speed, but there is a possibility of data loss when switching nodes. In this embodiment, synchronization is performed in synchronous commit mode to prevent data loss.

そして、運用環境1が何らかの理由(例えば大規模災害による障害等)で稼働を停止した場合、スタンバイ環境2の補助サーバ20に切り換えてトランザクションを実行する。運用環境1からスタンバイ環境2への切換は、管理者端末3を介して管理者による手動操作で行われる。ただし、スタンバイ環境2の補助サーバ20が運用環境1のサーバ10と通信できない場合、具体的には、運用環境1のデータベース(勘定系元帳DB140)にアクセスや操作が出来ない場合、または、運用環境1とスタンバイ環境2でデータベースの同期が出来ていない場合に強制的にフェールオーバーが行われる。 If operational environment 1 stops operating for some reason (for example, a failure due to a large-scale disaster), transactions are executed by switching to auxiliary server 20 in standby environment 2. Switching from operational environment 1 to standby environment 2 is performed manually by the administrator via administrator terminal 3. However, if auxiliary server 20 in standby environment 2 cannot communicate with server 10 in operational environment 1, specifically if it is unable to access or operate the database (accounting ledger DB 140) in operational environment 1, or if the databases in operational environment 1 and standby environment 2 cannot be synchronized, a forced failover will occur.

スタンバイ環境2が稼働している最中に運用環境1が復旧すると、運用環境1及びスタンバイ環境2の双方に可用性グループのプライマリやクォーラムが存在するといった不整合(スプリットブレイン)が生じる。そのため、スタンバイ環境2の稼働中は、サーバ10と補助サーバ20との間の通信を遮断する。 If production environment 1 is restored while standby environment 2 is running, an inconsistency (split-brain) will occur, where the primary and quorum of the availability group exist in both production environment 1 and standby environment 2. For this reason, communication between server 10 and auxiliary server 20 is cut off while standby environment 2 is running.

上述の如く、本システムでは運用環境1の可用性グループとスタンバイ環境2の可用性グループにまたがる分散可用性グループ(クォーラムデバイス40、60あり)を構成する。このような構成にすることにより、以下の効果を奏する。すなわち、運用環境1のサーバ10、10とスタンバイ環境2の20、20とを一つの可用性グループとする場合と比べて、スタンバイ環境2への切換時に運用環境1を切り離す操作を管理者が行う必要がなくなる。また、フェールオーバーモードの変更(スタンバイ環境2のメインの補助サーバ20の停止時に自動的にフェールオーバーされるように、サブの補助サーバ20のフェールオーバーモードを「手動」から「自動」に変更する)を行う必要もなくなる。また、クォーラムデバイス40、60を加えて同期コミット(投票)を行うようにすることで、各環境に必要なノード数を削減することができる。 As described above, this system configures a distributed availability group (with quorum devices 40, 60) spanning the availability group of production environment 1 and the availability group of standby environment 2. This configuration provides the following benefits. Compared to a case where servers 10, 10 in production environment 1 and servers 20, 20 in standby environment 2 are combined into a single availability group, the administrator does not need to perform the operation of separating production environment 1 when switching to standby environment 2. It also eliminates the need to change the failover mode (changing the failover mode of the sub-auxiliary server 20 from "manual" to "automatic" so that automatic failover occurs when the main auxiliary server 20 in standby environment 2 is stopped). Furthermore, by adding quorum devices 40, 60 and performing synchronous commit (voting), the number of nodes required for each environment can be reduced.

以上より、本実施の形態によれば、運用環境1内のサーバ10、10の間で同期を取るだけでなく、予備の実行環境としてスタンバイ環境2を用意することで、勘定系処理をより確実に実行することができる。 As described above, according to this embodiment, not only is synchronization achieved between the servers 10, 10 in the operational environment 1, but by providing a standby environment 2 as a backup execution environment, accounting system processing can be executed more reliably.

図4は、勘定系システムが実行する処理手順の一例を示すフローチャートである。図4に基づき、勘定系システムが実行する処理内容について説明する。
運用環境1の複数のサーバ10及びクォーラムデバイス40は互いにハートビート通信を行い、勘定系処理を実行するサーバ10を多数決により選択する(ステップS11)。選択されたサーバ10は、クライアントシステム4からのアクセスを受けて勘定系処理を実行するサブルーチンを実行する(ステップS12)。
4 is a flowchart showing an example of a processing procedure executed by the accounting system. The processing executed by the accounting system will be described with reference to FIG.
The servers 10 and the quorum device 40 in the operational environment 1 communicate with each other through heartbeats, and select the server 10 that will execute accounting processing by majority vote (step S11). The selected server 10 receives access from the client system 4 and executes a subroutine that executes accounting processing (step S12).

勘定系システムは、管理者端末3から、勘定系処理を実行する環境(クラウドシステム)の切換要求を受け付けたか否かを判定する(ステップS13)。切換要求を受け付けていないと判定した場合(S13:NO)、勘定系システムは処理をステップS11に戻す。 The accounting system determines whether a request to switch the environment (cloud system) in which accounting system processing is executed has been received from the administrator terminal 3 (step S13). If it determines that a switching request has not been received (S13: NO), the accounting system returns processing to step S11.

切換要求を受け付けたと判定した場合(S13:YES)、勘定系システムは、勘定系処理を実行する環境を運用環境(第1クラウドシステム)1からスタンバイ環境(第2クラウドシステム)2に切り換える(ステップS14)。スタンバイ環境2の補助サーバ20は、運用環境1のサーバ10との間の通信を遮断する(ステップS15)。スタンバイ環境2の複数の補助サーバ20及びクォーラムデバイス60は互いにハートビート通信を行い、勘定系処理を実行する補助サーバ20を多数決により選択する(ステップS16)。選択された補助サーバ20は、クライアントシステム4からのアクセスを受けて勘定系処理を実行するサブルーチンを実行し(ステップS17)、一連の処理を終了する。 If it is determined that the switching request has been received (S13: YES), the accounting system switches the environment in which accounting system processing is performed from the operational environment (first cloud system) 1 to the standby environment (second cloud system) 2 (step S14). The auxiliary server 20 in the standby environment 2 cuts off communication with the server 10 in the operational environment 1 (step S15). The multiple auxiliary servers 20 in the standby environment 2 and the quorum device 60 communicate with each other using heartbeats, and the auxiliary server 20 that will perform accounting system processing is selected by majority vote (step S16). The selected auxiliary server 20 receives access from the client system 4 and executes a subroutine that performs accounting system processing (step S17), thereby completing the series of processes.

図5は、ステップS12のサブルーチンの処理手順を示すフローチャートである。図5に基づき、ステップS12における勘定系処理のサブルーチンの処理内容について説明する。
クライアントシステム4は、勘定系処理の実行をサーバ10に要求する(ステップS31)。サーバ10は勘定系処理を実行する(ステップS32)。サーバ10は勘定系処理の結果(トランザクションログ)をスタンバイ環境2の補助サーバ20に送信し、勘定系元帳DB140を同期する(ステップS33)。これに対し、補助サーバ20は勘定系元帳DB140を同期した旨のレスポンスを運用環境1のサーバ10に出力する(ステップS34)。当該レスポンスを補助サーバ20から取得した場合、サーバ10は勘定系処理の結果をクライアントシステム4に出力し(ステップS35)、サブルーチンをリターンする。
5 is a flowchart showing the processing procedure of the subroutine of step S12. The processing contents of the subroutine of the accounting system processing in step S12 will be described with reference to FIG.
The client system 4 requests the server 10 to execute accounting system processing (step S31). The server 10 executes the accounting system processing (step S32). The server 10 sends the results of the accounting system processing (transaction log) to the auxiliary server 20 in the standby environment 2 and synchronizes the accounting system ledger DB 140 (step S33). In response, the auxiliary server 20 outputs a response to the server 10 in the operational environment 1 indicating that the accounting system ledger DB 140 has been synchronized (step S34). When the server 10 receives this response from the auxiliary server 20, it outputs the results of the accounting system processing to the client system 4 (step S35) and returns the subroutine.

図6は、ステップS17のサブルーチンの処理手順を示すフローチャートである。図6に基づき、ステップS17における勘定系処理のサブルーチンの処理内容について説明する。
クライアントシステム4は勘定系処理の実行を補助サーバ20に要求する(ステップS51)。補助サーバ20は勘定系処理を実行する(ステップS52)。補助サーバ20は、勘定系処理の結果をクライアントシステム4に出力し(ステップS53)、サブルーチンをリターンする。
6 is a flowchart showing the processing procedure of the subroutine of step S17. The processing contents of the subroutine of the accounting system processing in step S17 will be described with reference to FIG.
The client system 4 requests the auxiliary server 20 to execute accounting processing (step S51). The auxiliary server 20 executes the accounting processing (step S52). The auxiliary server 20 outputs the results of the accounting processing to the client system 4 (step S53) and returns the subroutine.

以上より、本実施の形態によれば、勘定系処理をより確実に実行することができる。 As a result, this embodiment allows accounting system processing to be executed more reliably.

今回開示された実施の形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。 The embodiments disclosed herein are to be considered in all respects as illustrative and not restrictive. The scope of the present invention is defined by the claims, not by the meaning described above, and is intended to include all modifications within the meaning and scope of the claims.

各実施の形態に記載した事項は相互に組み合わせることが可能である。また、特許請求の範囲に記載した独立請求項及び従属請求項は、引用形式に関わらず全てのあらゆる組み合わせにおいて、相互に組み合わせることが可能である。さらに、特許請求の範囲には他の2以上のクレームを引用するクレームを記載する形式(マルチクレーム形式)を用いているが、これに限るものではない。マルチクレームを少なくとも一つ引用するマルチクレーム(マルチマルチクレーム)を記載する形式を用いて記載しても良い。 The matters described in each embodiment can be combined with each other. Furthermore, the independent claims and dependent claims described in the claims can be combined with each other in any and all combinations, regardless of the citation format. Furthermore, although the claims use a format in which a claim cites two or more other claims (multi-claim format), this is not limited to this. A format in which multiple claims cite at least one other multiple claim (multi-multi-claim) can also be used.

1 運用環境(第1クライドシステム)
10 サーバ
11 制御部
12 主記憶部
13 通信部
14 補助記憶部
P プログラム
30 コンテナ基盤
40 クォーラムデバイス
2 スタンバイ環境(第2クラウドシステム)
20 補助サーバ
50 コンテナ基盤
60 クォーラムデバイス
3 管理者端末
4 クライアントシステム
1. Operational environment (first cloud system)
10 Server 11 Control unit 12 Main memory unit 13 Communication unit 14 Auxiliary memory unit P Program 30 Container platform 40 Quorum device 2 Standby environment (second cloud system)
20 Auxiliary server 50 Container platform 60 Quorum device 3 Administrator terminal 4 Client system

Claims (6)

第1のプラットフォーマが提供する第1クラウドシステムにおけるサーバと、
前記第1のプラットフォーマと異なる第2のプラットフォーマが提供する第2クラウドシステムにおける補助サーバとを備え、
前記サーバがクライアントシステムからのアクセスを受けて勘定系処理を実行し、
前記サーバと前記補助サーバとの間で、前記勘定系処理を実行するためのデータベースを同期し、
前記補助サーバに切り換えて前記勘定系処理を実行する
勘定系システム。
a server in a first cloud system provided by a first platform provider;
an auxiliary server in a second cloud system provided by a second platform provider different from the first platform provider;
The server receives access from the client system and executes accounting processing;
Synchronizing databases for executing the accounting system processing between the server and the auxiliary server;
An accounting system that switches to the auxiliary server and executes the accounting processing.
前記第1クラウドシステムにおける前記サーバは、前記第1クラウドシステム内で相互に同期する複数のサーバにより構成され、
前記第2クラウドシステムにおける前記補助サーバは、前記第2クラウドシステム内で相互に同期する複数の補助サーバにより構成される
請求項1に記載の勘定系システム。
the server in the first cloud system is configured by a plurality of servers synchronized with each other within the first cloud system;
The accounting system according to claim 1 , wherein the auxiliary server in the second cloud system is configured by a plurality of auxiliary servers that are synchronized with each other within the second cloud system.
前記サーバ及び補助サーバはSQLサーバであり、
複数の前記サーバと、複数の前記補助サーバとがそれぞれ、複数のサーバコンピュータを単一のサーバコンピュータとして動作させる、異なる可用性グループを構成し、
前記複数のサーバ及び複数の補助サーバが、複数の可用性グループにまたがる可用性グループである分散可用性グループを構成する
請求項2に記載の勘定系システム。
the server and the auxiliary server are SQL servers;
The plurality of servers and the plurality of auxiliary servers each constitute a different availability group in which the plurality of server computers operate as a single server computer;
The accounting system according to claim 2 , wherein the plurality of servers and the plurality of auxiliary servers constitute a distributed availability group that is an availability group spanning a plurality of availability groups.
前記第1クラウドシステム及び第2クラウドシステムにそれぞれ配置されたクォーラムデバイスを更に備え、
前記複数のサーバ及びクォーラムデバイスは相互にハートビート通信を行って前記勘定系処理を行う前記サーバを多数決により選択し、
前記複数の補助サーバ及びクォーラムデバイスは相互にハートビート通信を行って前記勘定系処理を行う前記補助サーバを多数決により選択する
請求項2に記載の勘定系システム。
Further, a quorum device is disposed in each of the first cloud system and the second cloud system,
the plurality of servers and the quorum device communicate with each other through heartbeat communication to select the server that will perform the accounting system processing by majority vote;
The accounting system according to claim 2 , wherein the plurality of auxiliary servers and the quorum device communicate with each other through heartbeat communication to select the auxiliary server that performs the accounting system processing by majority vote.
前記勘定系処理を実行するサーバコンピュータを前記サーバから前記補助サーバに切り換えた場合、前記サーバと前記補助サーバとの間の通信を遮断する
請求項1に記載の勘定系システム。
The accounting system according to claim 1 , wherein when a server computer that executes the accounting system processing is switched from the server to the auxiliary server, communication between the server and the auxiliary server is interrupted.
前記サーバは、前記補助サーバから前記データベースを同期した旨のレスポンスを取得した場合、前記勘定系処理の結果を前記クライアントシステムに出力する
請求項1に記載の勘定系システム。
The accounting system according to claim 1 , wherein the server outputs a result of the accounting system processing to the client system when the server receives a response from the auxiliary server indicating that the database has been synchronized.
JP2024116200A 2024-03-13 2024-07-19 Accounting system Pending JP2025141750A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202463564647P 2024-03-13 2024-03-13
US63/564647 2024-03-13

Publications (1)

Publication Number Publication Date
JP2025141750A true JP2025141750A (en) 2025-09-29

Family

ID=97213111

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2024116200A Pending JP2025141750A (en) 2024-03-13 2024-07-19 Accounting system

Country Status (1)

Country Link
JP (1) JP2025141750A (en)

Similar Documents

Publication Publication Date Title
US9785691B2 (en) Method and apparatus for sequencing transactions globally in a distributed database cluster
US8856091B2 (en) Method and apparatus for sequencing transactions globally in distributed database cluster
KR100711396B1 (en) Server redundancy method and redundant server system
CN100544342C (en) Storage system
US7640451B2 (en) Failover processing in a storage system
US7383317B2 (en) Exactly once data framework system
EP3694148A1 (en) Configuration modification method for storage cluster, storage cluster and computer system
US7490205B2 (en) Method for providing a triad copy of storage data
US7941602B2 (en) Method, apparatus and program storage device for providing geographically isolated failover using instant RAID swapping in mirrored virtual disks
US8191078B1 (en) Fault-tolerant messaging system and methods
US20030065708A1 (en) Exactly once JMS communication
US20010037371A1 (en) Mirroring network data to establish virtual storage area network
US6968401B2 (en) Method, system, and program for maintaining and swapping paths in an MPIO environment
US20040254984A1 (en) System and method for coordinating cluster serviceability updates over distributed consensus within a distributed data system cluster
US20130124916A1 (en) Layout of mirrored databases across different servers for failover
JP2005502096A (en) File switch and exchange file system
US11544162B2 (en) Computer cluster using expiring recovery rules
US8683258B2 (en) Fast I/O failure detection and cluster wide failover
US20040006587A1 (en) Information handling system and method for clustering with internal cross coupled storage
Vallath Oracle real application clusters
AU2002332845B2 (en) Exactly once cache framework
US20080250421A1 (en) Data Processing System And Method
AU2002332845A1 (en) Exactly once cache framework
JP2025141750A (en) Accounting system
Brady Designing GIS for high availability and high performance

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20251014