Digital decoupling

The digital decoupling system solves the problem of the existing system running in parallel with the new system by receiving and converting data sets, generating events and sending them to the destination computing element, and realizes the rapid utilization of new technologies and reduces the complexity of migration.

CN114556319BActive Publication Date: 2025-08-01ACCENTURE GLOBAL SOLUTIONS LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202080069190.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-03-10
Filing Date
2020-08-12
Publication Date
2025-08-01
Estimated Expiration
2040-08-12

AI Technical Summary

Technical Problem

Existing computing systems are difficult to operate in parallel with new computing technologies, resulting in complex and time-consuming migration processes, and it is impossible to efficiently utilize new technologies.

Method used

Through a digital decoupling system, the data configuration agent is used to receive the updated data set, update the source table of the source database, and generate events through the adapter module to send them to the destination computing element, so as to realize parallel operations between the existing system and the new system.

Benefits of technology

Allow new technologies to run in parallel on existing systems, reduce interface and bandwidth requirements, reduce migration complexity, and achieve rapid utilization of new technologies.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114556319B_ABST
    Figure CN114556319B_ABST
Patent Text Reader

Abstract

This document describes a digital decoupling architecture that enables an existing computing system to operate in parallel with new computing technologies. In some aspects, a method includes receiving, by a digital decoupling system, one or more updated data sets from a source computing system, each updated data set including data that has been updated at the source computing system. Source data entries of a source table of a database of the digital decoupling system are updated based on each updated data set. In response to detecting a change to the source table, target data entries of data including the updated source data entries are added to a target table of the database. An adapter module obtains the data of the target data entries and generates an event specifying the data of the target data entries. The event is sent to one or more destination computing elements.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross - Reference to Related Applications

[0002] This application claims the benefit of U.S. Patent Application No. 16 / 814,577, filed on March 10, 2020, and U.S. Provisional Application No. 62 / 887,096, filed on August 15, 2019, which are hereby incorporated by reference in their entirety. Background Art

[0003] This specification relates to digital decoupling techniques that enable legacy computing systems to operate in parallel with new computing technologies.

[0004] Computing technology continues to improve at a very rapid pace. To some extent, organizations can adapt and upgrade their systems over time to make them compatible with newer technologies. However, there comes a point where legacy systems can no longer support newer technologies or become so outdated that significant upgrades are required. A complete migration to a new system can be expensive and time - consuming. Summary of the Invention

[0005] This specification generally describes a digital decoupling architecture that enables legacy computing systems to operate in parallel with new computing technologies.

[0006] In general, one innovative aspect of the subject matter described in this specification can be embodied in a method that includes the following actions: receiving, by a digital decoupling system, from a data provisioning agent installed on a source computing system, one or more updated data sets, each updated data set including data that has been updated at the source computing system. For each updated data set, source data entries in a source table of a database of the digital decoupling system are updated based on the data of each updated data set. A database trigger of the digital decoupling system detects a change to the source data table in response to an update to the source data entries. In response to detecting a change to the source table, a target data entry including the data of the updated source data entry is added to a target table of the database. An adapter module of the digital decoupling system obtains the data of the target data entry from the target table. The adapter module generates an event specifying at least a portion of the data of the target data entry. The event is sent to one or more destination computing elements different from the source computing system. Other embodiments of this aspect include corresponding computer systems, devices, and computer programs recorded on one or more computer storage devices, each computer program being configured to perform the actions of the method. A system of one or more computers can be configured to perform particular operations or actions by virtue of software, firmware, hardware, or a combination of them installed on the system that, when in operation, cause the system to perform the actions. One or more computer programs can be configured to perform particular operations or actions by virtue of instructions that, when executed by a data - processing device, cause the device to perform the actions.

[0007] The foregoing and other embodiments may each optionally include one or more of the following features (individually or in combination). In some aspects, updating a source data entry includes one of the following: (i) adding the source data entry to a source table, where the source data entry includes data of an updated data set; or (ii) modifying the source data entry based on data of the updated data set.

[0008] In some aspects, a database trigger initiates an event in response to detecting the addition of a source data entry to a source table. Some implementations may include removing data of the updated data set from a target table by an adapter module after the event is sent to one or more destination computing elements.

[0009] In some aspects, sending the event to one or more destination computing elements includes sending the event to a cloud platform. Some aspects include configuring a data configuration agent to detect changes to a database of a source computing system and push a corresponding updated data set to a digital decoupling system in response to each detected change.

[0010] Some aspects include: determining, by an adapter module, the type of the event based on data of the updated data set; and including data specifying the type of the event in the event. In some implementations, the source computing system includes a SAP ECC platform, and the destination computing system includes a SAP HANA platform. The source table and the target table may include SAP HANA database tables.

[0011] The subject matter described in this specification can be implemented in a particular embodiment and can achieve one or more of the following advantages. The digital decoupling system described in this document enables existing computing systems and new computing systems to operate in parallel using the same data. This allows newer technologies to consume data from existing computing systems before a complete migration from the existing computing systems. This also enables newer software platforms to be used with older platforms without waiting for a complete migration that may take several years to complete. Thus, newer technologies can be built on top of existing systems to enable faster adoption of the newer technologies.

[0012] The digital decoupling system can be configured to receive pushed updated data from an existing computing system and can convert the updated data into events that can be consumed by multiple different computing elements (e.g., multiple cloud applications, microservices, cloud platforms, user interfaces, etc.). In this way, multiple different custom interfaces to the database of the existing computing system do not have to be developed for various computing systems. Instead, each consumer of the data of the existing computing system can receive a copy of the same event specifying the updated data. This results in less complexity, fewer interfaces, and less bandwidth being consumed to send data to each computing system.

[0013] A digital decoupling system may include a data management system, such as a SAP HANA system, configured to generate events based on updates to an existing computing system, and the events will later be used at the data management system of a new computing system to which the existing computing system is migrated. This enables newer technologies, such as new applications, to be built on the data management system during migration and continue to be used after migration is complete.

[0014] Details of one or more implementations of the subject matter described in this specification are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the subject matter will become apparent from the specification, the drawings, and the claims. BRIEF DESCRIPTION OF THE DRAWINGS

[0015] Figure 1 is an example of an environment in which a digital decoupling system generates events based on updated data received from a source computing system.

[0016] Figure 2 is a block diagram illustrating an example decoupling pipeline.

[0017] Figure 3 is a flowchart of an example process for generating events based on updated data received from a source computing system.

[0018] Figure 4 is a block diagram of a computing system that may be used in conjunction with the computer-implemented methods described in this document.

[0019] The same reference numerals and names in the various figures indicate the same elements. DETAILED DESCRIPTION

[0020] This specification generally describes a digital decoupling architecture that enables an existing computing system to operate in parallel with new computing technologies. The existing computing system can receive, generate, and process data in a normal manner. A data configuration agent may be deployed on the existing computing system and configured to send new and modified data from the existing computing system to the digital decoupling system.

[0021] The digital decoupling system may be configured to receive new or modified data from the existing computing system and convert the data into events consumable by applications and / or other computing systems (e.g., cloud-based applications and / or microservices). In this way, new computing systems and applications that may be incompatible with the existing computing system and otherwise unable to interact with the existing computer system can operate in parallel with the existing computing system until a full migration from the existing computing system to a new computing system (e.g., a cloud-based computing system) can be achieved.

[0022] Figure 1is an example of an environment 100 in which a digital decoupling system 120 generates events based on updated data received from a source computing system 110. The source computing system 110 may be an existing computing system that includes custom applications and / or custom business logic that uses data stored by the source computing system 110 (also referred to as a database for brevity) to perform functions. For example, the source computing system 110 may be an enterprise computing system of an organization, and the source database 112 may be an enterprise database system.

[0023] In a specific example, the source computing system 110 may be a system running an on-premises enterprise resource planning (ERP) system such as SAP TM A group of network computers that is part of the SAP ERP Central Components (SAP ECC). In this example, the source database 112 may be SAP TM Database system. SAP TM ECC systems can be migrated to, for example, SAP HANA TM Platform. Such a migration may take a long time for large computing systems (e.g., enterprise systems of a large company or other large organization). Digitally decoupled system 120 can enable source computing system 110 to continue executing its processes and enable one or more destination computing elements 150 to execute processes using the same (or similar) data. Digitally decoupled system 120 can be different from source computing system 110; for example, the two computing systems can be connected via a network.

[0024] Source database 112 may store data used and generated by various applications of source computing system 110. For example, source database 112 may store all or a substantial portion of an organization's master data. To enable access to at least some of the data in source database 112, data configuration agent 114 may be deployed on source computing system 110, for example, within source database 112.

[0025] The data configuration agent 114 can be configured, for example, by a user to push data from the source database 112 to the digital decoupling system 120. The data configuration agent 114 can be configured to push updates to specified data to the corresponding data configuration server 122 of the digital decoupling system 120. In other words, the data configuration agent 114 can be configured to propagate changes to certain data in the source database 112 to the digital decoupling system 120.

[0026] A user may specify data for which updates are to be sent to the digital decoupling system 120 using a set of propagation criteria. The propagation criteria may include specific tables within the database 120, specific fields within a table, specific rows or columns of a table, specific types of data, and / or other appropriate criteria. The data configuration agent 114 may use the propagation criteria to determine what data to send to the digital decoupling system 120.

[0027] The data configuration agent 114 can monitor the source database 112 for changes to data that meet the propagation criteria. The data configuration agent 114 can monitor new data added to the source database 112, modifications to data already stored in the source database 112, and / or deletions of data previously stored in the source database 112. When the data configuration agent 114 detects a change to data that meets the propagation criteria, the data configuration agent 114 can send the updated data set 116 to the data configuration server 122. The updated data set 116 can include data that has been updated in the source database 112 and meets the propagation criteria.

[0028] For example, assume that the source database 112 includes data about books in a library. The propagation criteria can specify that when the loan status of a book is changed, the data configuration agent 114 is to send the identifier of the book (e.g., the book title or the International Standard Book Number (ISBN) of the book) and the loan status of the book to the digital decoupling system 120. In this example, when the source database 112 is updated to indicate that a particular book has been loaned out, the data configuration agent 114 can detect the change to the loan status of the book and generate an updated data set 116 that includes the title of the loaned book and the loan status of the book. If the copyright data of the book is changed in this example, the data configuration agent 114 will not send the date when the updated copyright date does not meet the propagation criteria.

[0029] In some implementations, the data configuration agent 114 can use an adapter to monitor changes in the source database 112. In an implementation where the source computing system 110 is a SAP ECC system, the adapter can be an OracleECC adapter.

[0030] The data configuration server 122 can receive the updated data set 116 and update the decoupled database 124 of the digital decoupling system 124 based on the updated data set 116. The decoupled database 124 can be a database system that stores data for use by the destination computing element 150. In some implementations, the decoupled database can also be a database system that will later be used as the core data system for the computing system to which the source computing system 110 is migrating. In other words, the decoupled database 124 can ultimately be the primary database that replaces the database 112. In some other implementations, the decoupled database 124 can only be used until the new computing system is in place in the organization.

[0031] In some implementations, the decoupled database 124 is an in-memory relational database management system that stores data at the project level. For example, the decoupled database 124 can be SAP HANA TMA memory column-oriented relational database management system. The use of project-level storage prevents information loss due to information aggregation, which may be important for other operations that use the data. Project-level storage also enables additional logic to be implemented before generating events based on the data. For example, the additional logic can provide mapping, transformation, and / or analysis of the use of the data. Project-level storage can also help connect cloud-based services and other services with limited integration capabilities, where logic that cannot be implemented by the services may need to be pre-established.

[0032] The decoupled database 124 includes one or more source tables 132, a database trigger module 134, and one or more target tables 136. When receiving the updated data set 116 from the data configuration agent 114, the data configuration server 122 can update the source data entries of the source table 132 based on the updated data set 116. In some implementations, the source table 132 tracks changes to the data stored in the source database 112 that meet the propagation criteria. In this way, the data that meets the propagation criteria is the same in the source table 132 and the source database 112. In an implementation where the decoupled database 124 is SAP HANA TM In the implementation of the in-memory database, the source table 132 and the target table 136 can be virtual in-memory tables.

[0033] For example, if the updated data set 116 includes new data that was not previously stored in the source database 112, the data configuration server 122 can add source data entries (e.g., rows or columns) to the source table 132. The source data entry can include the new data added to the source database 112. If the updated data set 116 includes modified data, the data configuration server 122 can modify the existing source data entries in the source table 132 based on the updated data set 116. If the updated data set 116 specifies deleting data from the source database 112, the data configuration server 122 can delete the source data entries corresponding to the deleted data from the source table 132.

[0034] The database trigger module 134 can be a software module configured to monitor and detect changes in the source table 132 and update the target table 136 based on the detected changes in the source table 132. For example, the database trigger module 134 can be configured to monitor any changes to the source table 132, such as new data, modified data, or deleted data. In response to detecting a change, the database trigger module 134 can add target data entries to the target table 136.

[0035] The target data entry may include the data of the source data entry that has been changed. For example, the target data entry may match the updated source data entry. Continuing with the previous library book example, assume that the source data entry is a row in source table 132 that includes data about a book in the library. If the data of the book is updated in the source database 112 and the updated data is propagated to the source table 132, then the database trigger 134 may add a target data entry as a row in the target table 136, where the target data entry includes the same data as the updated row in the source table 132.

[0036] The source table 132 and the target table 136 may have the same structure, such as the same row and column configuration. In this way, the database trigger 134 can simply copy the updated row from the source table 132 to the target table 136.

[0037] Unlike the source table 132, the target table 136 may only store data until the data is sent to the destination computing element 150. In this way, the source table 136 can match the relevant data in the source database 132, while the target table 136 is used to generate events for consumption by the destination computing element 150. Using two different tables can provide the technical advantages of the described digital decoupling technique. For example, the use of different tables facilitates keeping tables 132 and 136 clean (e.g., not storing unnecessary data) and reducing the size of tables 132 and 136 by storing the data only when it may be needed. This prevents the decoupling database 124 from being overloaded. The use of two tables enables the decoupling database 124 to apply logic to the data while transferring the data from one table to the other, thus providing additional flexibility.

[0038] The digital decoupling system 120 further includes an adapter module 126. The adapter module 126 may be a software module configured to detect when data is added to the target table 136 and generate an event based on the data. For example, the adapter module 126 may monitor the addition of data (e.g., new target data entries) in the target table 136.

[0039] When a target data entry is added to the target table, the adapter module 126 may generate an event 142 for the target data entry. The event 142 may include event data based on the data of the target data entry. The adapter module 126 may generate the event 142 by configuring the data of the target data entry into the format of the event. For example, the computing system 150 may be configured to receive events having a specific format (e.g., a specific set of fields, each field including a specific type of data). The adapter module 126 may obtain the data of the target data entry and place each piece of data into the appropriate field of the event 142. The adapter module 126 may then send the event 142 to the destination computing element 150.

[0040] The destination computing element 150 may include a cloud computing platform, cloud applications, on-premises applications running on an on-premises computer connected to the digital decoupled system, cloud microservices, a user interface of a computer, and so on. Each destination computing element 150 may be configured to listen for events sent by the adapter module 126. For example, each destination computing element 150 may subscribe to messages including the event 142.

[0041] In some implementations, each destination computing element 150 may subscribe to a specific type of event (e.g., less than all events) or all events sent by the adapter module 126. In this example, the adapter module 126 may specify the type of the event in the event data of each event. The type of the event may be based on the type of data change, addition, modification, or deletion, or the type of the data being updated, such as a change in book title, a change in loan status, and so on.

[0042] In some implementations, the adapter module 126 streams the events to a data streaming platform. For example, the adapter module 126 may stream the events to Apache Kafka TM data streaming platform. In another example, the adapter module 126 may be deployed in the Apache Kafka TM data streaming platform. For example, the adapter module 126 may include custom code for monitoring a target table and converting the data in the target table 136 into events streamed by the Apache Kafka TM data streaming platform. The data streaming platform may stream the events to the destination computing element 150.

[0043] Using the digital decoupled system 120, each destination computing element 150 may receive relevant data from the existing computing system 110. In some implementations, the digital decoupled system 120 may provide the data in real time or near real time, for example, within a few seconds after the data is updated in the source database 112. For example, the data configuration agent 114, the database trigger 134, and the adapter module 126 may all be configured to continuously monitor their respective data and respond immediately (or within a short period of time) in response to detecting a change in the data. In this way, from a technical perspective, it may seem as if the destination computing element 150 is directly connected to the source database 112.

[0044] Additionally, the digital decoupling system 120 eliminates the need for a custom interface to be created for each destination computing element 150. Without the digital decoupling system 120, each destination computing element 150 that wants to access the data in the source database 112 would require a custom interface to the source database 112. The digital decoupling system 120 creates a less complex and more efficient system where each destination computing element 150 can receive updated data from the source database 112 from the same event 142, which also reduces the amount of data that must be transmitted from the source database 112.

[0045] In some implementations, the digital decoupling system 120 can provide two-way communication between the source database 112 and the destination computing element 150. For example, if an application wants to provide an acknowledgement or other data to the source database 112, then the application can provide the data to the digital decoupling system 120. In turn, the digital decoupling system 120 can configure the data for the source database 112 and provide the configured data to the source database 112. If the source database 112 is a SAP TM database, then the digital decoupling system 120 can provide the data to the application layer of the SAP TM database.

[0046] Figure 2 is a block diagram illustrating an example decoupling pipeline 200. The decoupling pipeline 200 includes an existing computing system 210 having existing logic 214 that performs operations based on input data 212 and a data master 216, which can be a database system that stores master data for an existing computing system 210. The existing computing system 210 can also include an application programming interface API 218.

[0047] When the data in the data master 216 is updated, the data can be replicated as a replication event 230. The replication event 230 can include the updated data, which can be stored in a source table and / or a target table, as described above with reference to Figure 1 . An event handler 232 (such as an adapter module) can convert the replication event 230 into a business event 240 for consumption by other computing elements (such as a new application 250, a new microservice 260, or a user interface push application 270). The data of the business event can also be stored in a data storage unit 242, which can be a long-term storage device such as a hard disk drive, flash memory, cloud storage, a data lake, and so on.

[0048] The new application 250 and the new microservice 260 can each separately include local data 252 and local data 262. The local data is generated and / or stored locally by the new application 250 or the new microservice 260. The new application 250 includes an API 254, and the new microservice 260 includes an API 264. The APIs 218, 254, and 264 enable the existing computing system 210, the new application 250, and the new microservice 260 to receive the pushed data 280 from the application push 270 at the user interface, respectively. The APIs 218, 254, and 264 are optional and can facilitate the implementation of the digital decoupled architecture. Implementing the APIs 218, 254, and 264 can further decouple different components in the architecture and can add more monitoring capabilities to manage the architecture in the long run.

[0049] Figure 3 It is a flowchart of an example process 300 for generating an event based on updated data received from a source computing system. The process 300 can be implemented by the digital decoupled system 120. The operations of the process 300 can also be implemented as instructions stored on a non-transitory computer-readable medium, and the execution of the instructions by one or more data processing devices can cause the one or more data processing devices to perform the operations of the process 300.

[0050] One or more updated data sets are received (302). The updated data sets can be received by the data configuration server of the digital decoupled system. A data configuration agent deployed on the source computing system can send the updated data sets to the data configuration server in response to an update to the data stored on the source computing system. Each updated data set can include updated data that has been updated at the source computing system. For example, the data configuration agent can push the updated data sets to the digital decoupled system in response to detecting an update to the data.

[0051] The source table is updated based on the updated data sets (304). The data configuration server can update the source data entries of the source table based on the data of the updated data sets. For example, if the updated data set specifies new data to be added to the existing computing system, then the data configuration server can add a new source data entry to the source table. The source data entry can include the data of the updated data set.

[0052] Target data entries are added to the target table (306). As described above, the database trigger module can be configured to detect changes to the source table and add target data entries to the target table in response to the addition. The target data entries can include the data of the source data entries.

[0053] The adapter module obtains data for a target data entry (308). For example, the adapter module can monitor a target table for any new additions to the target table. In response to detecting a new target data entry in the target table, the adapter module can obtain the data for the new target data entry.

[0054] The adapter module generates an event specifying at least a portion of the data for the target data entry (310). The adapter module can generate event data for the event based on a specific format for the event data. The specific format can be based on the format in which the data streaming platform streams the event or the format of the destination computing element that will receive and consume the event data.

[0055] The adapter module sends the event to one or more destination computing elements (312). The adapter module can send the event to the destination computing element by streaming the event to the data streaming platform. As described above, the destination computing element can include an application, a microservice, a cloud computing platform, and so on.

[0056] Embodiments of the subject matter and the functional operations described in this specification can be implemented in digital electronic circuitry, in tangibly embodied computer software or firmware, in computer hardware including the structures disclosed in this specification and their structural equivalents, or in one or more of their combinations. Embodiments of the subject matter described in this specification can be implemented as one or more computer programs, i.e., one or more modules of computer program instructions encoded on a tangible non-transitory program carrier for execution by, or to control the operation of, a data processing apparatus. Alternatively or additionally, the program instructions can be encoded on an artificially generated propagated signal (e.g., a machine-generated electrical, optical, or electromagnetic signal) that is generated to encode information for transmission to an appropriate receiver apparatus for execution by the data processing apparatus. A computer storage medium can be a machine-readable storage device, a machine-readable storage substrate, a random or serial access memory device, or a combination of one or more of them.

[0057] The term "data processing apparatus" refers to data processing hardware and includes all kinds of devices, equipment, and machines for processing data, including, for example, programmable processors, computers, or multiple processors or computers. The apparatus can also be or further include special-purpose logic circuitry, such as an FPGA (Field Programmable Gate Array) or an ASIC (Application Specific Integrated Circuit). In addition to the hardware, the apparatus can optionally further include code that creates a runtime environment for the computer program, such as code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them.

[0058] A computer program (which may also be referred to or described as a program, software, software application, module, software module, script, or code) can be written in any form of programming language, including assembly language or interpreted language, or declarative or procedural language, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program can, but need not, correspond to a file in a file system. The program can be stored in a part of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple co-operating files (e.g., files that store one or more modules, subroutines, or portions of code). A computer program can be deployed to run on one computer or on multiple computers distributed at one site or across multiple sites and interconnected by a communication network.

[0059] The processes and logical flows described in this specification can be performed by one or more programmable computers running one or more computer programs to perform functions by operating on input data and generating output. The processes and logical flows can also be performed by special-purpose logic circuitry, and the apparatus can also be implemented as special-purpose logic circuitry, such as an FPGA (Field Programmable Gate Array) or an ASIC (Application Specific Integrated Circuit).

[0060] Computers suitable for running a computer program include, for example, general-purpose microprocessors or special-purpose microprocessors or both, or any other kind of central processing unit. Generally, the central processing unit will receive instructions and data from a read-only memory or a random access memory or both. The main elements of a computer are the central processing unit for performing or executing instructions and one or more memory devices for storing the instructions and data. Generally, a computer will also include or be operatively coupled to receive data from or transfer data to one or more mass storage devices (e.g., magnetic disks, magneto-optical disks, or optical disks) for storing data, or both. However, a computer need not have such devices. In addition, a computer can be embedded in another device (e.g., a mobile phone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a global positioning system (GPS) receiver, or a portable storage device such as a universal serial bus (USB) flash drive, to name just a few).

[0061] Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media, and memory devices, including, for example, semiconductor memory devices such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory may be supplemented by, or incorporated in, special purpose logic circuitry.

[0062] To provide for interaction with a user, embodiments of the subject matter described in this specification may be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user and a keyboard and a pointing device (e.g., a mouse or a trackball) by which the user may provide input to the computer. Other kinds of devices may also be used to provide for interaction with the user; for example, feedback provided to the user may be any form of sensory feedback, such as visual feedback, auditory feedback, or tactile feedback; and input from the user may be received in any form, including acoustic, speech, or tactile input. Additionally, a computer may interact with the user by sending documents to and receiving documents from a device used by the user; for example, by sending a web page to a web browser on a user device in response to a request received from the web browser.

[0063] Embodiments of the subject matter described in this specification may be implemented in a computing system that includes a back-end component (e.g., as a data server), or that includes a middleware component (e.g., an application server), or that includes a front-end component (e.g., a client computer having a graphical user interface or a web browser through which a user may interact with an implementation of the subject matter described in this specification), or any combination of one or more such back-end, middleware, or front-end components. The components of the system may be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network (LAN) and a wide area network (WAN), such as the Internet.

[0064] A computing system may include clients and servers. The clients and servers are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. In some embodiments, a server sends data (e.g., an HTML page) to a user device, for example, in order to display the data to a user interacting with the user device (which acts as a client) and to receive user input from the user. Data generated at the user device (e.g., the result of a user interaction) may be received at the server from the user device.

[0065] An example of one such type of computer is shown in Figure 4In which, a schematic diagram of a general computer system 400 is shown. System 400 can be used to describe operations associated with any computer-implemented method among the computer-implemented methods previously described according to one implementation. System 400 includes a processor 410, a memory 420, a storage device 430, and an input / output device 440. Each of the components 410, 420, 430, and 440 is interconnected using a system bus 450. The processor 410 is capable of processing instructions for execution within the system 400. In one implementation, the processor 410 is a single-threaded processor. In another implementation, the processor 410 is a multi-threaded processor. The processor 410 is capable of processing instructions stored in the memory 420 or on the storage device 430 to display graphical information for a user interface on the input / output device 440.

[0066] The memory 420 stores information within the system 400. In one implementation, the memory 420 is a computer-readable medium. In one implementation, the memory 420 is a volatile memory unit. In another implementation, the memory 420 is a non-volatile memory unit.

[0067] The storage device 430 is capable of providing mass storage for the system 400. In one implementation, the storage device 430 is a computer-readable medium. In various different implementations, the storage device 430 can be a floppy disk device, a hard disk device, an optical disk device, or a tape device.

[0068] The input / output device 440 provides input / output operations for the system 400. In one implementation, the input / output device 440 includes a keyboard and / or a pointing device. In another implementation, the input / output device 440 includes a display unit for displaying a graphical user interface.

[0069] Although this specification contains many specific implementation details, these should not be construed as limitations on the scope of what may be claimed, but rather as descriptions of features that may be specific to particular embodiments. Certain features described in the context of separate embodiments in this specification can also be implemented in combination in a single embodiment. Conversely, the various features described in the context of a single embodiment can also be implemented separately or in any suitable sub-combination in multiple embodiments. Additionally, although features may be described above as acting in certain combinations and even if initially claimed as such, one or more features from a claimed combination can in some cases be deleted from the combination, and the claimed combination can relate to a sub-combination or a variation of a sub-combination.

[0070] Similarly, although operations are depicted in the drawings in a particular order, this should not be construed as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed to achieve the desired result. In some cases, multitasking may be advantageous. Additionally, the separation of various system modules and components in the embodiments described above should not be construed as requiring such separation in all embodiments, and it should be understood that the described program components and systems generally may be integrated together in a single software product or packaged into multiple software products.

[0071] Particular embodiments of the subject matter have been described. Other embodiments are within the scope of the appended claims. For example, the acts recited in the claims can be performed in a different order and still achieve the desired result. As one example, the processes depicted in the figures need not require the particular order or sequential order shown to achieve the desired result. In some cases, multitasking may be advantageous.

Claims

1. A computer-implemented method, comprising: Receiving, by a digital decoupling system, one or more updated data sets from a data configuration agent installed on a source computing system including a SAP ERP central component platform, each updated data set including data that has been updated at the source computing system; For each updated data set: Updating source data entries of a source table of a database of the digital decoupling system based on the data of the updated data set; Detecting, by a database trigger of the digital decoupling system, a change in the source table, the change in the source table in response to the update of the source data entries; In response to detecting the change in the source table, adding target data entries to a target table of the database, the target data entries including data of the updated source data entries, wherein the source table and the target table include SAP HANA database tables; Obtaining, by an adapter module of the digital decoupling system, the data of the target data entries from the target table; Generating, by the adapter module, an event that specifies at least a portion of the data of the target data entries; Sending the event to one or more destination computing elements different from the source computing system, wherein sending the event to one or more destination computing elements includes sending the event to a cloud platform and a SAP HANA platform; And Removing the target data entries from the target table in response to generating and sending the event, The method further includes: Determining, by the adapter module, a type of the event based on the data of the updated data set; And Including data specifying the type of the event in the event.

2. The computer-implemented method according to claim 1, wherein updating the source data entries includes one of the following: (i) adding the source data entries to the source table, wherein the source data entries include the data of the updated data set; or (ii) modifying the source data entries based on the data of the updated data set.

3. The computer-implemented method according to claim 1, wherein the database trigger initiates the event in response to detecting addition of the source data entries to the source table.

4. The computer-implemented method according to claim 1, further comprising configuring the data configuration agent to: detect changes in a database of the source computing system, and push corresponding updated data sets to the digital decoupling system in response to each detected change.

5. A computer-implemented system, comprising: One or more computers; And One or more computer memory devices interoperably coupled to the one or more computers and having a tangible non-transitory machine-readable medium storing one or more instructions, the one or more instructions when executed by the one or more computers perform operations, the operations including: The digital decoupling system receives one or more updated data sets from a data configuration agent installed on a source computing system including an SAP ERP Central Component platform, each updated data set including data that has been updated at the source computing system; For each updated data set: Update the source data entries of the source table in the database of the digital decoupling system based on the data of the updated data set; Detect a change in the source table by a database trigger of the digital decoupling system, the change in the source table in response to the update of the source data entries; In response to detecting the change in the source table, add target data entries to the target table of the database, the target data entries including the data of the updated source data entries, wherein the source table and the target table include SAP HANA database tables; Obtain the data of the target data entries from the target table by an adapter module of the digital decoupling system; Generate, by the adapter module, an event that specifies at least a portion of the data of the target data entries; Send the event to one or more destination computing elements different from the source computing system, wherein sending the event to one or more destination computing elements includes sending the event to a cloud platform and an SAP HANA platform; and In response to generating and sending the event, remove the target data entries from the target table, wherein the operations further include: Determine, by the adapter module, the type of the event based on the data of the updated data set; and Include data specifying the type of the event in the event.

6. The computer-implemented system according to claim 5, wherein updating the source data entries includes one of the following: (i) adding the source data entries to the source table, wherein the source data entries include the data of the updated data set; or (ii) modifying the source data entries based on the data of the updated data set.

7. The computer-implemented system according to claim 5, wherein the database trigger initiates the event in response to detecting the addition of the source data entries to the source table.

8. The computer-implemented system according to claim 5, wherein the operations include configuring the data configuration agent to: detect changes in the database of the source computing system, and push corresponding updated data sets to the digital decoupling system in response to each detected change.

9. A non-transitory computer-readable medium storing one or more instructions executable by a computer system to perform operations, the operations including: The digital decoupling system receives one or more updated data sets from a data configuration agent installed on a source computing system including an SAP ERP Central Component platform, each updated data set including data that has been updated at the source computing system; For each updated data set: Update the source data entries of the source table in the database of the digital decoupling system based on the data of the updated data set; Changes to the source table are detected by a database trigger of the digital decoupling system, the changes to the source table being in response to the update of the source data entry; In response to detecting the changes to the source table, a target data entry is added to a target table of the database, the target data entry including the data of the updated source data entry, wherein the source table and the target table comprise SAP HANA database tables; The data of the target data entry is obtained from the target table by an adapter module of the digital decoupling system; An event is generated by the adapter module, the event specifying at least a portion of the data of the target data entry; The event is sent to one or more destination computing elements different from the source computing system, wherein sending the event to one or more destination computing elements includes sending the event to a cloud platform and a SAP HANA platform; and In response to generating and sending the event, the target data entry is removed from the target table, wherein the operations further include: Determining, by the adapter module, the type of the event based on the data of the updated data set; and Including data specifying the type of the event in the event.

10. The non-transitory computer-readable medium according to claim 9, wherein updating the source data entry includes one of the following: (i) adding the source data entry to the source table, wherein the source data entry includes the data of the updated data set; or (ii) modifying the source data entry based on the data of the updated data set.

Citation Information

Patent Citations

  • Synchronization system for entities maintained by multiple applications

    US20090217289A1