Accounting system
A dual-cloud system with synchronized servers in a distributed availability group addresses the reliability issue in cloud-based accounting systems by ensuring seamless failover and data synchronization, enhancing service continuity and reducing data loss.
Patent Information
- Application Number
- JP2024116200
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-03-13
- Filing Date
- 2024-07-19
- Publication Date
- 2025-09-29
AI Technical Summary
Existing accounting systems in cloud environments lack reliability in processing due to potential failures in single server systems, leading to disruptions in service availability.
Implementing a dual-cloud system architecture with a primary cloud system and a secondary cloud system provided by different platform providers, where servers are synchronized and configured in a distributed availability group to ensure seamless failover and data synchronization in synchronous commit mode, allowing for reliable accounting processing even in the event of failures.
Ensures reliable execution of accounting processing by enabling automatic failover to a secondary cloud system, reducing data loss and maintaining service continuity during failures.
Smart Images

Figure 2025141750000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to an accounting system. [Background technology]
[0002] In a cloud system, multiple server computers are synchronized with each other, and in the event of a failure in one server, 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 a main system to provide services to multiple terminals, and the other server unit acts as a secondary system. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Japanese Patent Application Laid-Open No. 2000-330814 Summary of the Invention [Problem to be solved by the invention]
[0004] In one aspect, an object of the present invention is to provide an accounting system that can more reliably execute accounting processing. [Means for solving the problem]
[0005] 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, the server receives access from a client system to perform accounting system processing, synchronizes a database 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. [Effects of the Invention]
[0006] In one aspect, accounting processing can be performed more reliably. [Brief explanation of the drawings]
[0007] [Figure 1] FIG. 1 is an explanatory diagram showing an example of the configuration of an accounting system. [Figure 2] FIG. 2 is a block diagram illustrating an example of the configuration of a server. [Figure 3] FIG. 1 illustrates an example of the configuration of an operational environment and a standby environment. [Figure 4] 10 is a flowchart illustrating an example of a processing procedure executed by an accounting system. [Figure 5] 10 is a flowchart showing the processing procedure of a subroutine in step S12. [Figure 6] 10 is a flowchart showing the processing procedure of a subroutine in step S17. DETAILED DESCRIPTION OF THE INVENTION
[0008] 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 communicatively connected via a network N such as the Internet.
[0009] 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) is assumed as the first cloud system 1. As will be described later, in this embodiment, the first cloud system 1 functions as a main accounting system, and performs various accounting processes for online banking operations.
[0010] In the following description, the first cloud system 1 is referred to as the "operational environment 1."
[0011] 1, for convenience, each server 10 is illustrated as a different piece of hardware (server computer), but the servers 10, 10, 10, ... may be virtual machines virtually constructed on the same physical server. This also applies to the container platform 30 and quorum device 40 described below.
[0012] In addition to the servers 10, the 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.
[0013] 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, Google Cloud Platform (registered trademark) provided by Google (registered trademark) is assumed as the second cloud system 2. 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 the like in the operational environment 1.
[0014] In the following description, the second cloud system 2 is referred to as the "standby environment 2."
[0015] 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.
[0016] In addition, in the standby environment 2, a container base 50 and a quorum device 60 are arranged, similar to the operational environment 1.
[0017] The administrator terminal 3 is a terminal device, such as a personal computer, operated by the administrator of this system. When this system receives a request to switch the execution environment from the administrator via the administrator terminal 3, it switches the environment in which accounting processing is executed from the operational environment 1 to the standby environment 2.
[0018] The client system 4 is a client that receives online services related to banking operations. The client system 4 may be a system within a bank (for example, a deposit transaction for a regular savings account, a withdrawal transaction, etc.) or a system outside the bank (for example, BaaS (Business as a Service), a service provided by a FinTech company, etc.). This system receives access from the client system 4 and executes accounting processing.
[0019] In this embodiment, an accounting system that performs online banking-related processing will be described as an example, but this system may also be applied to a system that performs financial processing other than banking.
[0020] 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 CPU (Central Processing Unit), an MPU (Micro-Processing Unit), a GPU (Graphics Processing Unit), 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 an SRAM (Static Random Access Memory) or a DRAM (Dynamic Random Access Memory), 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.
[0021] The auxiliary storage unit 14 is a non-volatile storage area such as a large-capacity memory or a hard disk, and stores a program P (program product) and other data required for the control unit 11 to execute processing. The auxiliary storage unit 14 also stores an 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.
[0022] For the sake of convenience, this embodiment will be described assuming that there is only one accounting ledger DB 140, but the server 10 may synchronize with the auxiliary server 20 a plurality of databases.
[0023] 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 by software.
[0024] Furthermore, in this embodiment, the server 10 is not limited to the above configuration, and may include, for example, an input unit that accepts operation input, a display unit that displays images, etc. Furthermore, the server 10 may be provided with a reading unit that reads a portable storage medium 1a such as a CD (Compact Disk)-ROM or a DVD (Digital Versatile Disc)-ROM, and may read and execute the program P from the portable storage medium 1a.
[0025] The hardware configuration of the auxiliary server 20 is the same as that of the server 10, and therefore, in this embodiment, illustrations and descriptions of the hardware configuration of the auxiliary server 20 will be omitted.
[0026] 3 is a diagram showing an example of the configuration of the operational environment 1 and the standby environment 2. An outline of this embodiment will be described below.
[0027] As described above, in this system, accounting system processing (hereinafter also referred to as "transactions") is mainly performed in operational environment 1, and in the event of a failure or other problem in operational environment 1, accounting system processing is performed in standby environment 2, which is a backup environment. The operational environment 1 is, for example, Microsoft Azure, and the standby environment 2 is, for example, Google Cloud Platform. The server 10 in operational environment 1 and the auxiliary server 20 in standby environment 2 are so-called SQL servers, and can configure "basic availability groups" and "distributed availability groups," which will be described later.
[0028] In this embodiment, multiple servers 10 and auxiliary servers 20 (two servers each in FIG. 3) are used in each of the operational environment 1 and the standby environment 2. The servers 10, 10 and auxiliary servers 20, 20 each constitute a different availability group.
[0029] 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 configured with 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, which will be described later.
[0030] 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 operations (e.g., deposit transactions, withdrawal transactions, etc. for savings accounts) deployed on the container base 30.
[0031] An availability listener is a service that acts as a logical endpoint (connection destination) from the client's perspective when configuring an availability group. By placing an availability listener between the SQL server and the client, the client can connect without being aware of which SQL server it is connecting to.
[0032] 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.
[0033] If the main server 10 stops operating for some reason (such as a failure), the transaction is automatically switched to the sub-server 10 (failover, shown as "F / O" in Figure 3), allowing users to continue receiving online services.
[0034] 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 the operational environment 1 periodically send and receive heartbeat signals to mutually monitor the health of their databases. The servers 10, 10, and quorum device 40 each have voting rights, and the main server 10 that will 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 "healthy," 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.
[0035] The basic processing operations are the same for the standby environment 2. Of the auxiliary servers 20, 20 in the standby environment 2, one of the auxiliary servers 20 functions as a 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 (e.g., deposit transactions and withdrawal transactions for savings accounts) 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 the operational environment 1, switching of the auxiliary server 20 is based on a quorum (voting) based on heartbeat communication.
[0036] In this embodiment, to enable switching of processing between the production environment 1 and the standby environment 2, the transaction log executed in the production environment 1 is synchronized with the standby environment 2. Specifically, a distributed availability group is configured spanning the availability group configured in the production environment 1 and the availability group configured in the standby environment 2.
[0037] A distributed availability group is an availability group that spans two or more different availability groups, and is an option that can be set in SQL Server. The availability groups that make up a distributed availability group do not need to be in the same location; they can be located in an on-premises physical environment, an on-premises virtual environment, or a public cloud environment, and these availability groups can form a distributed availability group.
[0038] As shown in Figure 3, in this embodiment, a distributed availability group is configured between an availability group made up of servers 10, 10 in operational environment 1 and an availability group made up 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.
[0039] The synchronous commit mode is a mode in which, when synchronizing databases between each node (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, the asynchronous commit mode is a mode in which the transaction proceeds without waiting for the propagation (response) of data to each node. The asynchronous commit mode has superior processing speed, but there is a possibility that data loss may occur when switching nodes. In this embodiment, synchronization is performed in the synchronous commit mode to prevent data loss.
[0040] If the operational environment 1 stops operating for some reason (for example, a failure due to a large-scale disaster), the transaction is executed by switching to the auxiliary server 20 of the standby environment 2. Switching from the operational environment 1 to the standby environment 2 is performed manually by the administrator via the administrator terminal 3. However, if the auxiliary server 20 of the standby environment 2 cannot communicate with the server 10 of the operational environment 1, specifically if it is unable to access or operate the database (accounting ledger DB140) of the operational environment 1, or if the databases of the operational environment 1 and the standby environment 2 cannot be synchronized, a forced failover will occur.
[0041] If the production environment 1 is restored while the standby environment 2 is running, an inconsistency (split-brain) occurs, where the primary and quorum of the availability group exist in both the production environment 1 and the standby environment 2. For this reason, communication between the server 10 and the auxiliary server 20 is cut off while the standby environment 2 is running.
[0042] 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 advantages. 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 separate 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 secondary auxiliary server 20 from "manual" to "automatic" so that automatic failover occurs when the primary auxiliary server 20 in standby environment 2 stops). Furthermore, by adding quorum devices 40, 60 and enabling synchronous commit (voting), the number of nodes required for each environment can be reduced.
[0043] 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.
[0044] 4 is a flowchart showing an example of a processing procedure executed by the accounting system. The processing contents executed by the accounting system will be described with reference to FIG. The multiple 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).
[0045] The accounting system determines whether or not 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 is determined that a switching request has not been received (S13: NO), the accounting system returns the process to step S11.
[0046] 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 perform heartbeat communication with each other, and select the auxiliary server 20 that will perform accounting system processing 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.
[0047] 5 is a flowchart showing the processing procedure of the subroutine in step S12. The processing contents of the subroutine for 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.
[0048] 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.
[0049] As described above, according to this embodiment, accounting system processing can be executed more reliably.
[0050] The embodiments disclosed herein are to be considered as illustrative in all respects and not restrictive. The scope of the present invention is defined by the claims, not by the above meaning, and is intended to include all modifications within the meaning and scope of the claims.
[0051] 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 combination, regardless of the reference format. Furthermore, although the claims use a format in which a claim references two or more other claims (multi-claim format), this is not limited to this format. A format in which multiple claims (multi-multi-claims) that reference at least one other multiple claim may also be used. [Explanation of symbols]
[0052] 1. Operational environment (first cloud system) 10 Servers 11 Control section 12 Main memory 13 Communications Department 14 Auxiliary storage P Program 30 Container Platform 40 quorum devices 2 Standby environment (second cloud system) 20 Auxiliary Server 50 Container Platform 60 quorum devices 3. Administrator terminal 4 Client Systems
Claims
1. 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; Switching to the auxiliary server and executing the accounting system processing Accounting system.
2. the server in the first cloud system is configured by a plurality of servers synchronized with each other within the first cloud system; 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. The accounting system according to claim 1 .
3. 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 plurality of servers and the plurality of auxiliary servers constitute a distributed availability group, which is an availability group that spans a plurality of availability groups. The accounting system according to claim 2 .
4. 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 plurality of auxiliary servers and the quorum device communicate with each other through heartbeat communication, and select the auxiliary server that will perform the accounting system processing by majority vote. The accounting system according to claim 2 .
5. When the 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. The accounting system according to claim 1 .
6. When the server receives a response from the auxiliary server indicating that the database has been synchronized, the server outputs the result of the accounting system processing to the client system. The accounting system according to claim 1 .
Citation Information
Patent Citations
Duplexed server system
JP2000330814A