Information processing device, information processing system, and information processing method

The long polling mechanism addresses synchronization challenges by reducing system load and security risks in cloud-on-premise database synchronization through real-time event-based updates.

JP7718957B2Active Publication Date: 2025-08-05MIROKU JYOHO SERVICE CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
JP2021175786
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-10-27
Publication Date
2025-08-05
Estimated Expiration
2041-10-27

AI Technical Summary

Technical Problem

The synchronization of cloud-side and on-premise databases is hindered by potential security vulnerabilities and increased system load due to frequent inquiries for database updates, leading to inconsistencies.

Method used

Implementing a long polling mechanism where the on-premise server sends requests to the cloud server for event occurrence information, allowing the on-premise server to acquire and update both databases based on received information, thereby reducing system load and minimizing security risks.

Benefits of technology

This approach effectively synchronizes databases while reducing system load and preventing security holes by using long polling requests to manage database updates efficiently.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007718957000001
    Figure 0007718957000001
  • Figure 0007718957000002
    Figure 0007718957000002
  • Figure 0007718957000003
    Figure 0007718957000003
Patent Text Reader

Abstract

To provide an information processing device which synchronizes a database of a cloud side and a database of an on-premises side while suppressing a system load, and a system and method.SOLUTION: An on-premises sever 3 includes: a request transmitting unit 332 for transmitting, to a cloud server arranged on a cloud, a long polling request for requesting the acquisition of event occurrence information indicating the occurrence of an event for updating a first database on a cloud; an event acquisition unit 333 which acquires, from the cloud server, the event occurrence information in response to the long polling request until a prescribed time period elapses from the transmission of the long polling request; an update information acquisition unit 334 which acquires update information corresponding to the event for updating the first database and a second database 4 on the on-premises when having acquired the event occurrence information; and an updating unit 335 which updates the first database and the second database on the basis of the acquired update information.SELECTED DRAWING: Figure 4
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to an information processing device, an information processing system, and an information processing method for synchronizing databases. [Background technology]

[0002] Conventionally, a server provided on a cloud and an on-premise system provided in a communication network within an office have been linked together (see, for example, Patent Document 1). [Prior art documents] [Patent documents]

[0003] [Patent Document 1] Japanese Patent Publication No. 2020-064660 Summary of the Invention [Problem to be solved by the invention]

[0004] When a server on the cloud accesses a database on an on-premise system, a security hole may occur. For this reason, some organizations prevent communication from the server to the on-premise system, and also set up a database on the cloud, synchronizing the database on the on-premise system with the database on the cloud.

[0005] In this case, the server on the cloud cannot notify the on-premise system in real time of database update processes that occur on the cloud, which can lead to problems such as inconsistencies in the contents of the two databases.To minimize inconsistencies in the contents of the two databases, the on-premise system must frequently inquire of the server on the cloud about whether database update processes have occurred on the cloud, which creates the problem of increased system load.

[0006] The present invention has been made in consideration of these points, and aims to synchronize a cloud-side database with an on-premise database while reducing the load on the system. [Means for solving the problem]

[0007] An information processing device according to a first aspect of the present invention is an information processing device provided in an on-premises environment that synchronizes a first database on the cloud referenced by a server provided on the cloud with a second database provided in the on-premises environment, and includes: a request sending unit that sends a long polling request to the server to request acquisition of event occurrence information indicating that an event has occurred that will update the first database; an event acquiring unit that acquires the event occurrence information from the server in response to the long polling request within a predetermined time from the sending of the long polling request; an update information acquiring unit that, when the event acquiring unit acquires the event occurrence information, acquires update information corresponding to the event for updating the first database and the second database; and an update unit that updates the first database and the second database based on the update information acquired by the update information acquiring unit.

[0008] The event occurrence information may include update information identification information for identifying the update information, the server may store the update information in association with the update information identification information, and the update information acquisition unit may acquire from the server the update information associated with the update information identification information included in the event occurrence information.

[0009] The request sending unit may newly send the long polling request to the server in response to the event acquisition unit acquiring the event occurrence information. The update unit may update the first database after completing the update of the second database.

[0010] The request sending unit may identify a first time period, which is a time period in which the probability of the event occurring is relatively high, and a second time period, which is a time period in which the probability of the event occurring is relatively low, and may send the long polling request more frequently per unit time in the first time period than in the second time period.

[0011] An information processing system according to a second aspect of the present invention includes a first server provided on a cloud that references a first database provided on the cloud, and a second server provided in an on-premises environment that synchronizes the first database with a second database provided in the on-premises environment. The first server has an occurrence information sending unit that, when it detects an event that updates the first database within a predetermined time after receiving a long polling request from the second server to request acquisition of event occurrence information indicating that an event that updates the first database has occurred, sends event occurrence information to the second server, indicating that an event that updates the first database has occurred. The second server has a request sending unit that sends the long polling request, an event acquiring unit that acquires the event occurrence information from the first server within the predetermined time after the request sending unit sends the long polling request, an update information acquiring unit that, when the event acquiring unit acquires the event occurrence information, acquires update information for updating the first database and the second database corresponding to the event, and an update unit that updates the first database and the second database based on the update information acquired by the update information acquiring unit.

[0012] The first server may further have a storage control unit that, upon detecting the occurrence of the event, associates the update information with update information identification information for identifying the update information and stores the associated information in a storage unit, and the occurrence information sending unit may, in response to receiving the long polling request, send the event occurrence information including the update information identification information to the second server, and the update information acquisition unit may acquire from the first server the update information associated with the update information identification information included in the event occurrence information.

[0013] An information processing method according to a third aspect of the present invention is executed by a computer provided in an on-premises environment that synchronizes a first database on the cloud referenced by a server provided in the cloud with a second database provided in the on-premises environment, and includes the steps of sending a long polling request to the server to request acquisition of event occurrence information indicating that an event has occurred that will update the first database; acquiring the event occurrence information from the server in response to the long polling request within a predetermined time from sending the long polling request; upon acquiring the event occurrence information, acquiring update information corresponding to the event for updating the first database and the second database; and updating the first database and the second database based on the acquired update information. [Effects of the Invention]

[0014] According to the present invention, it is possible to suppress the load on the system while synchronizing the cloud-side database with the on-premise-side database. [Brief explanation of the drawings]

[0015] [Figure 1] 1 is a diagram illustrating an overview of an information processing system according to an embodiment of the present invention. [Figure 2] FIG. 2 is a diagram illustrating a configuration of a cloud server according to the present embodiment. [Figure 3]FIG. 10 is a diagram illustrating an example of update management information. [Figure 4] FIG. 2 is a diagram illustrating a configuration of an on-premise server according to the present embodiment. [Figure 5] FIG. 2 is a sequence diagram showing a processing flow in the information processing system according to the present embodiment. DETAILED DESCRIPTION OF THE INVENTION

[0016] [Outline of Information Processing System S] 1 is a diagram showing an overview of an information processing system S according to this embodiment. The information processing system S is, for example, a workflow system for accepting business applications, etc. The information processing system S has a cloud server 1 as a first server, a second database 4, an on-premise server 3 as a second server, the second database 4, an internal terminal 5, and an external terminal 6.

[0017] The cloud server 1 and the first database 2 are provided on the cloud and are communicatively connected to an external terminal 6 via a communication network such as the Internet or a mobile phone line. The on-premise server 3, the second database 4, and the internal terminal 5 are provided in an on-premise environment, which is a communication network environment established within the company that operates the information processing system S. Note that although only one internal terminal 5 and one external terminal 6 are shown in FIG. 1, in reality, the information processing system S has multiple internal terminals 5 and multiple external terminals 6.

[0018] In response to receiving a request for inquiry about various information related to the workflow from the internal terminal 5, the on-premise server 3 provides the internal terminal 5 with various information stored in the second database 4. The on-premise server 3 also receives various applications and approvals related to the workflow from the internal terminal 5, and adds or updates data to the second database 4. The cloud server 1 also receives inquiries about various information and requests to register various applications or approvals related to the workflow from the external terminal 6 via a communication network such as the Internet or a mobile phone line.

[0019] In the information processing system S, there is a risk of a security hole occurring when the second database 4 is accessed from the cloud server 1. For this reason, a first database 2 is provided on the cloud, and while the first database 2 and the second database 4 are synchronized, the cloud server 1 refers to the first database 2 and provides various information to the external terminal 6.

[0020] Furthermore, when synchronizing the first database 2 and the second database 4, if the cloud server 1 notifies the on-premise server 3 of information for updating the second database 4, a problem arises in that a security hole may occur.

[0021] To address this problem, in the information processing system S, the cloud server 1 does not update the first database 2, but instead refers to the first database 2 updated by the on-premise server 3. In order to identify that the first database 2 needs to be updated, the on-premise server 3 sends a long polling request to the cloud server 1, for example, using the HTTPS protocol, to request acquisition of event occurrence information indicating that an event that updates the first database 2 has occurred.

[0022] After receiving the long polling request, the cloud server 1 accepts a predetermined process for updating the first database 2 from the external terminal 6, and then transmits event occurrence information indicating that an event for updating the first database 2 has occurred to the on-premise server 3. When the on-premise server 3 obtains the event occurrence information within a predetermined time from the transmission of the long polling request, it obtains update information for updating the first database 2 and the second database 4, and updates the first database 2 and the second database 4 based on the update information.

[0023] In this way, the information processing system S can prevent security holes from occurring by sending a long polling request from the on-premise server 3, acquiring the event occurrence information and update information, and having the on-premise server 3 update the first database 2, without opening a port on the on-premise server 3 side for acquiring the event occurrence information and update information. By sending a long polling request to acquire the event occurrence information, the on-premise server 3 can acquire the event occurrence information with fewer requests than when using a normal acquisition request that receives response information in a shorter time than a long polling request.

[0024] Furthermore, by updating the first database 2 and the second database 4 from the on-premise server 3 side, the information processing system S can shorten the processing time required for synchronizing the databases and reduce the amount of communication data sent and received in association with updating the databases, compared to when the cloud server 1 and the on-premise server 3 send and receive data to each other to synchronize the first database 2 and the second database 4. Therefore, the information processing system S can synchronize the first database 2 on the cloud side with the second database 4 on the on-premise side while minimizing the load on itself.

[0025] [Cloud Server 1 Configuration] Next, the configurations of the cloud server 1 and on-premise server 3 of the information processing system S will be described. First, the configuration of the cloud server 1 will be described. FIG. 2 is a diagram showing the configuration of the cloud server 1 according to this embodiment. As shown in FIG. 2, the cloud server 1 has a communication unit 11, a memory unit 12, and a control unit 13. The control unit 13 has a reception unit 131, a memory control unit 132, a request reception unit 133, an occurrence information transmission unit 134, and an update information transmission unit 135.

[0026] The communication unit 11 is an interface for connecting the cloud server 1 to a network for transmitting and receiving data between the on-premise server 3 and the external terminal 6. The storage unit 12 is a storage medium including a ROM (Read Only Memory), a RAM (Random Access Memory), etc. The storage unit 12 stores programs executed by the control unit 13. For example, the storage unit 12 stores programs that cause the control unit 13 to function as a reception unit 131, a storage control unit 132, a request receiving unit 133, an occurrence information transmitting unit 134, and an update information transmitting unit 135.

[0027] The control unit 13 is, for example, a CPU (Central Processing Unit). The control unit 13 executes the programs stored in the storage unit 12, thereby functioning as a reception unit 131, a storage control unit 132, a request reception unit 133, an occurrence information transmission unit 134, and an update information transmission unit 135.

[0028] The reception unit 131 receives a workflow inquiry request from the external terminal 6. For example, when the reception unit 131 receives a workflow inquiry request from the external terminal 6, it refers to the first database 2, extracts application information and approval information related to the workflow being queried, and transmits information indicating the status of the workflow including the extracted application information and approval information to the external terminal 6. The reception unit 131 also receives a registration request for various applications or various approvals related to the workflow from the external terminal 6. Here, the various applications and various approvals related to the workflow are events that update the first database 2.

[0029] When the memory control unit 132 detects that an event to update the first database 2 has occurred, it associates the update information for updating the first database 2 with an update information ID for identifying the update information and stores them in the memory unit 12 as update management information.

[0030] Specifically, first, the storage control unit 132 detects that the reception unit 131 has received various applications and approvals related to the workflow, thereby detecting the occurrence of an event that updates the first database 2. When the storage control unit 132 detects the occurrence of an event that updates the first database 2, the storage control unit 132 generates update information based on the various applications or approvals received by the reception unit 131, without updating the first database 2, and generates an update information ID for identifying the update information.

[0031] Here, the update information is, for example, information in XML format that includes multiple pieces of information for updating data stored in the first database 2 or adding data to the first database 2. The update information includes, for example, information indicating the user who performed the approval and the target of the application or approval. Note that the update information is not limited to information in XML format, and may be one or more SQL statements for updating the first database 2 and the second database 4.

[0032] When the memory control unit 132 generates the update information and the update information ID, it associates the update information ID, the update information, and a transmission determination flag indicating whether the update information ID has been transmitted to the on-premise server 3, and stores them in the memory unit 12 as update management information.

[0033] FIG. 3 is a diagram illustrating an example of update management information. As shown in FIG. 3, it can be seen that the update management information includes an update information ID, update information, and a transmission determination flag. The transmission determination flag has either a value of "0," which indicates that the update information ID has not been transmitted to the on-premises server 3, or a value of "1," which indicates that the update information ID has been transmitted to the on-premises server 3. In the example shown in FIG. 3, the value of the transmission determination flag associated with the update information IDs "1001" and "1002" is "1," which indicates that these update information IDs have been transmitted to the on-premises server 3. On the other hand, the value of the transmission determination flag associated with the update information ID "1003" is "0," which indicates that this update information ID has not yet been transmitted to the on-premises server 3.

[0034] When a new event occurs and the update information, the update information ID, and the transmission determination flag are associated and stored in the memory unit 12 as update management information, the update information has not yet been sent to the on-premise server 3, so the memory control unit 132 stores in the memory unit 12 the update management information that associates the transmission determination flag with a value of "0", the update information, and the update information ID.

[0035] The request receiving unit 133 receives, from the on-premise server 3, a long polling request for requesting acquisition of event occurrence information indicating that an event that updates the first database 2 has occurred.

[0036] A long polling request is a request that allows a response to be made within a predetermined time after the request is received. A response to a long polling request may be made at a time different from the time the request is received.

[0037] When the occurrence information sending unit 134 detects an event that updates the first database 2 within a predetermined time after receiving a long polling request from the on-premise server 3 to request the acquisition of event occurrence information, it sends the event occurrence information to the on-premise server 3.

[0038] Specifically, when the request receiving unit 133 receives a long polling request, the occurrence information transmitting unit 134 refers to the update management information stored in the memory unit 12 and determines whether there is an update information ID and update information associated with a transmission determination flag whose value is "0".

[0039] If there is no update information ID and update information associated with the transmission determination flag whose value is "0", the occurrence information transmission unit 134 determines whether new update management information has been stored in the storage unit 12 for a predetermined time since the request reception unit 133 received the long polling request. If the occurrence information transmission unit 134 determines that new update management information has been stored in the storage unit 12, it transmits event occurrence information including the update information ID included in the newly stored update management information to the on-premise server 3.

[0040] Furthermore, if there is an update information ID and update information associated with a transmission determination flag whose value is "0", the occurrence information transmission unit 134 transmits event occurrence information including the update information ID to the on-premises server 3 in response to receiving a long polling request. After transmitting the event occurrence information including the update information ID to the on-premises server 3, the occurrence information transmission unit 134 updates the value of the transmission determination flag associated with the update information ID to "1". Note that, although the occurrence information transmission unit 134 transmits event occurrence information including one update information ID to the on-premises server 3, this is not limiting, and if multiple events occur simultaneously, the occurrence information transmission unit 134 may transmit event occurrence information including multiple update information IDs corresponding to each of the multiple events to the on-premises server 3.

[0041] The update information transmission unit 135 transmits update information to the on-premise server 3. Specifically, the update information transmission unit 135 receives an update information acquisition request from the on-premise server 3, the update information acquisition request including an update information ID and requesting acquisition of update information associated with the update information ID. In response to receiving the update information acquisition request, the update information transmission unit 135 transmits to the on-premise server 3 the update information associated with the update information ID included in the acquisition request in the update management information stored in the storage unit 12.

[0042] [On-premise server 3 configuration] Next, a description will be given of the configuration of the on-premise server 3. Fig. 4 is a diagram showing the configuration of the on-premise server 3 according to this embodiment. As shown in Fig. 4, the on-premise server 3 has a communication unit 31, a storage unit 32, and a control unit 33. The control unit 33 has a reception unit 331, a request transmission unit 332, an event acquisition unit 333, an update information acquisition unit 334, and an update unit 335.

[0043] The communication unit 31 is an interface for the on-premise server 3 to connect to the internal terminal 5 via a network in the on-premise environment, or to connect to the cloud server 1 or the first database 2 via the Internet.

[0044] The storage unit 32 is a storage medium including a ROM, a RAM, etc. The storage unit 32 stores a program executed by the control unit 33. For example, the storage unit 32 stores a program that causes the control unit 33 to function as a reception unit 331, a request transmission unit 332, an event acquisition unit 333, an update information acquisition unit 334, and an update unit 335.

[0045] The control unit 33 is, for example, a CPU. The control unit 33 executes the programs stored in the storage unit 32 to function as a reception unit 331, a request transmission unit 332, an event acquisition unit 333, an update information acquisition unit 334, and an update unit 335.

[0046] The reception unit 331 receives various applications and approvals related to workflows from an internal terminal 5 connected to the on-premise server 3 in an on-premise environment. The first database 2 and the second database 4 related to the various applications and approvals received by the reception unit 331 are updated by an update unit 335.

[0047] The request sending unit 332 sends to the cloud server 1 a long polling request for requesting acquisition of event occurrence information indicating that an event that updates the first database 2 has occurred.

[0048] In response to a long polling request, the event acquisition unit 333 acquires event occurrence information from the cloud server 1 within a predetermined time from the transmission of the long polling request. Specifically, if there is no unsent update information in the storage unit 12 of the cloud server 1 within a predetermined time from the transmission of the long polling request, the event acquisition unit 333 acquires event occurrence information including the update information ID from the cloud server 1 in response to update management information associating the update information with the update information ID being stored in the storage unit 12 of the cloud server 1. In this way, the event acquisition unit 333 can acquire event occurrence information in real time in response to the cloud server 1 receiving various applications and approvals from the external terminal 6.

[0049] Here, if the cloud server 1 simultaneously accepts various applications or approvals from two external terminals 6 while the request sending unit 332 is sending a long polling request, and two events that update the first database 2 occur simultaneously, update management information corresponding to each of the two events is stored in the storage unit 12. In this case, the event acquiring unit 333 acquires event occurrence information including an update information ID corresponding to one of the two events in response to one long polling request, and enters a state in which event occurrence information including the update information ID of the other of the two events has not yet been acquired.

[0050] Furthermore, when the request sending unit 332 sends a long polling request at predetermined time intervals, it takes time to acquire event occurrence information corresponding to an event that occurs between the time the event occurrence information is acquired within the predetermined time and the time the next long polling request is sent.

[0051] In response to this, when the event acquisition unit 333 acquires the event occurrence information, the request transmission unit 332 transmits a new long polling request to the cloud server 1. The request transmission unit 332 transmits a new long polling request at the timing when the event acquisition unit 333 acquires the event occurrence information.

[0052] Then, if an unsent update information ID exists in storage unit 12 of cloud server 1, event acquisition unit 333 acquires event occurrence information including the update information ID at the timing of transmitting the long polling request. In this manner, even if multiple events occur consecutively in cloud server 1, on-premise server 3 can acquire event occurrence information corresponding to each of these events. Furthermore, even if a new event occurs immediately after transmitting event occurrence information, on-premise server 3 can acquire the new event occurrence information without delay.

[0053] If the event acquisition unit 333 does not acquire event occurrence information within a predetermined time after transmitting the long polling request, the request transmission unit 332 transmits a new long polling request when a predetermined time has elapsed since transmitting the long polling request. In this way, the on-premise server 3 can persistently inquire of the cloud server 1 whether event occurrence information has occurred.

[0054] Furthermore, although the request sending unit 332 has been described as sending one long polling request at a time to the cloud server 1, this is not limiting. The request sending unit 332 may send multiple long polling requests and establish multiple connections with the cloud server 1 before acquiring event occurrence information. In this way, even if events occur frequently and consecutively within a short period of time, new event occurrence information can be acquired without delay.

[0055] Furthermore, the request sending unit 332 may identify a first time slot, which is a time slot in which the probability of an event occurring is relatively high, and a second time slot, which is a time slot in which the probability of an event occurring is relatively low, and may increase the frequency of sending long polling requests per unit time during the first time slot compared to the second time slot. For example, the request sending unit 332 may change the frequency of sending long polling requests by changing the waiting time interval for long polling or by changing the number of simultaneous connections with the cloud server 1. In this way, the on-premises server 3 can acquire event occurrence information in real time even if multiple applications or approvals are made simultaneously during a time slot in which there are many applications or approvals, and can reduce the load on the cloud server 1 and the on-premises server 3 by reducing the frequency of sending long polling during a time slot in which there are few applications or approvals.

[0056] When the event acquisition unit 333 acquires event occurrence information, the update information acquisition unit 334 acquires update information for updating the first database 2 and the second database 4 corresponding to the event. Specifically, at the timing when the event acquisition unit 333 acquires the event occurrence information, the update information acquisition unit 334 transmits to the cloud server 1 an update information acquisition request including the update information ID included in the event occurrence information acquired by the event acquisition unit 333, and acquires the update information associated with the update information ID. In this way, the on-premise server 3 can acquire update information in real time at the timing when an event occurs.

[0057] Furthermore, when the reception unit 331 receives various applications and approvals related to the workflow from the internal terminal 5, the update information acquisition unit 334 generates update information based on the received various applications or approvals, thereby acquiring the update information. The update information acquisition unit 334 may generate an update information ID for identifying the update information, and store the ID in the storage unit 32 in association with the update information.

[0058] The update unit 335 updates the first database 2 and the second database 4 based on the update information acquired by the update information acquisition unit 334. For example, the update unit 335 first generates an SQL statement as a command statement for updating the second database 4 based on the update information acquired by the update information acquisition unit 334. The update unit 335 updates the second database 4 using the generated command statement. After completing the update of the second database 4, the update unit 335 generates difference information between the updated second database 4 and the first database 2, and updates the first database 2 using the generated difference information.

[0059] If the first database 2 on the cloud is updated before the second database 4, a problem such as a communication network problem may occur when attempting to update the first database 2, making it difficult to recover from the inconsistent state. In response to this, the update unit 335 updates the first database 2 based on the update information acquired by the update information acquisition unit 334 after the update of the second database 4 is completed. Therefore, even if a problem occurs when updating the first database 2, the possibility of an inconsistent state occurring can be reduced by restoring the second database 4 to its state before the update, for example.

[0060] [Processing flow in information processing system S] Next, a description will be given of the flow of processing in the information processing system S. Fig. 5 is a sequence diagram showing the flow of processing in the information processing system S according to this embodiment. In the example shown in Fig. 5, the flow of processing will be described in the case where the cloud server 1 receives application information indicating various applications within a predetermined time after the on-premise server 3 transmits a long polling request to the cloud server 1.

[0061] First, the request sending unit 332 of the on-premise server 3 sends a long polling request to the cloud server 1, and the request receiving unit 133 of the cloud server 1 receives the long polling request from the on-premise server 3 (S1).

[0062] Next, the accepting unit 131 of the cloud server 1 receives the application information and accepts various applications (S2). When the receiving unit 131 receives various applications, the storage control unit 132 of the cloud server 1 generates update information based on the application information and an update information ID for identifying the update information (S3). The storage control unit 132 associates the generated update information, the update information ID, and a transmission determination flag, and stores them in the storage unit 12 as update management information (S4). Here, the value of the transmission determination flag is set to "0."

[0063] The occurrence information transmission unit 134 refers to the update management information stored in the storage unit 12, identifies the update information ID associated with the transmission determination flag whose value is "0", and transmits the event occurrence information including the update information ID to the on-premise server 3 (S5). The event acquisition unit 333 acquires the event occurrence information from the cloud server 1 in response to the long polling request.

[0064] When the occurrence information transmitter 134 transmits the event occurrence information including the update information ID to the on-premise server 3, the occurrence information transmitter 134 updates the value of the transmission determination flag associated with the update information ID to "1" (S6).

[0065] When the event acquisition unit 333 acquires the event occurrence information, the update information acquisition unit 334 extracts the update information ID from the acquired event occurrence information and sends an update information acquisition request including the update information ID to the cloud server 1 (S7).

[0066] The update information transmission unit 135 of the cloud server 1 receives the update information request from the on-premise server 3. Upon receiving the request to acquire update information, the update information transmission unit 135 identifies, in the update management information, the update information associated with the update information ID included in the acquisition request, and transmits the identified update information to the on-premise server 3 (S8). The update information acquisition unit 334 acquires the update information from the cloud server 1.

[0067] The update unit 335 performs an update process to update the second database 4 based on the update information acquired by the update information acquisition unit 334 (S9). After the update of the second database 4 is completed, the update unit 335 performs an update process to update the first database 2 based on difference information indicating the difference between the first database 2 and the second database 4 (S10).

[0068] [Effects of this embodiment] As described above, the on-premises server 3 according to this embodiment transmits a long polling request to the cloud server 1 provided on the cloud to request acquisition of event occurrence information indicating that an event has occurred that updates the first database 2 on the cloud, and acquires the event occurrence information from the cloud server 1 in response to the long polling request within a predetermined time from the transmission of the long polling request. Upon acquiring the event occurrence information, the on-premises server 3 acquires update information corresponding to the event for updating the first database 2 and the second database 4 on-premises, and updates the first database 2 and the second database 4. In this way, the on-premises server 3 can synchronize the first database 2 on the cloud side with the second database 4 on-premises while reducing the load on the entire information processing system S.

[0069] The present invention has been described above using embodiments, but the technical scope of the present invention is not limited to the scope described in the above embodiments, and various modifications and changes are possible within the scope of the gist of the present invention. Furthermore, all or part of the device can be configured by functionally or physically distributing or integrating in any unit. Furthermore, new embodiments resulting from any combination of multiple embodiments are also included in the embodiments of the present invention. The effects of new embodiments resulting from the combination combine the effects of the original embodiments. [Explanation of symbols]

[0070] 1. Cloud Server 2. Database 1 3 On-premise servers 4. Second Database 5 Internal Terminal 6 External Terminal 11 Communications Department 12 Storage section 13 Control Unit 31 Communications Department 32 Storage section 33 Control Unit 131 Reception 132 Memory control unit 133 Request Receiving Unit 134 Occurrence information transmission unit 135 Update Information Transmission Unit 331 Reception Department 332 Request sending unit 333 Event Acquisition Department 334 Update information acquisition unit 335 Update Department

Claims

1. An information processing device provided in an on-premise environment that synchronizes a first database on a cloud referenced by a server provided in the cloud with a second database provided in the on-premise environment, a request sending unit that sends a long polling request to the server to request acquisition of event occurrence information indicating that an event that updates the first database has occurred; an event acquisition unit that acquires the event occurrence information from the server in response to the long polling request within a predetermined time from the transmission of the long polling request; an update information acquisition unit that acquires, when the event acquisition unit acquires the event occurrence information, update information corresponding to the event for updating the first database and the second database; an update unit that updates the first database and the second database based on the update information acquired by the update information acquisition unit; An information processing device having the above.

2. the event occurrence information includes update information identification information for identifying the update information, the server stores the update information identification information and the update information in association with each other; the update information acquisition unit acquires, from the server, the update information associated with the update information identification information included in the event occurrence information; The information processing device according to claim 1 .

3. the request sending unit newly sends the long polling request to the server in response to the event acquisition unit acquiring the event occurrence information.

3. The information processing device according to claim 1 or 2.

4. the update unit updates the first database after completing the update of the second database. The information processing device according to claim 1 .

5. the request transmission unit identifies a first time period, which is a time period in which the probability of the event occurring is relatively high, and a second time period, which is a time period in which the probability of the event occurring is relatively low, and increases the frequency of transmitting the long polling request per unit time in the first time period compared to the second time period; The information processing device according to claim 1 .

6. An information processing system including: a first server provided on a cloud that references a first database provided on the cloud; and a second server provided in an on-premise environment that synchronizes a second database provided in the on-premise environment with the first database, The first server an occurrence information sending unit that, when detecting an event that updates the first database within a predetermined time after receiving from the second server a long polling request for requesting acquisition of event occurrence information indicating that an event that updates the first database has occurred, sends to the second server event occurrence information indicating that an event that updates the first database has occurred; and The second server a request sending unit that sends the long polling request; an event acquisition unit that acquires the event occurrence information from the first server within a predetermined time after the request transmission unit transmits the long polling request; an update information acquisition unit that acquires, when the event acquisition unit acquires the event occurrence information, update information for updating the first database and the second database corresponding to the event; an update unit that updates the first database and the second database based on the update information acquired by the update information acquisition unit; having Information processing system.

7. The first server a storage control unit that, when detecting the occurrence of the event, associates the update information with update information identification information for identifying the update information and stores the associated information in a storage unit; the occurrence information transmission unit transmits the event occurrence information including the update information identification information to the second server in response to receiving the long polling request; the update information acquisition unit acquires, from the first server, the update information associated with the update information identification information included in the event occurrence information; The information processing system according to claim 6.

8. A method for synchronizing a first database on the cloud referenced by a server on the cloud with a second database on the on-premise environment, the method being executed by a computer on the on-premise environment. sending a long polling request to the server to request acquisition of event occurrence information indicating that an event that updates the first database has occurred; acquiring the event occurrence information from the server in response to the long polling request within a predetermined time from transmission of the long polling request; When the event occurrence information is acquired, acquiring update information corresponding to the event for updating the first database and the second database; updating the first database and the second database based on the acquired update information; An information processing method comprising:

Citation Information

Patent Citations

  • Information sharing system

    JP2012155392A

  • Shadowing Storage Gateway

    JP2014529111A

  • Content item block replication protocol for multi-premises hosting of digital content items - Patent Application 20070122967

    JP2019506644A

  • Information processing apparatus, terminal device, program, and information processing system

    JP2020064660A

  • Information processing system, information processing apparatus, and database management program

    JP2020177562A