Providing customized integrated flow templates

By monitoring user interactions with external systems, identifying and sorting data change events, and generating customized integration flow templates, the problem of users finding it difficult to quickly find suitable integration flow templates is solved, achieving automated integration flow generation and improving efficiency and accuracy.

CN115039092BActive Publication Date: 2025-12-05INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202180011119.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-02-24
Filing Date
2021-02-11
Publication Date
2025-12-05
Estimated Expiration
2041-02-11

AI Technical Summary

Technical Problem

In integrated products, users find it difficult to quickly find and customize suitable integration flow templates. The modification process of existing templates is time-consuming and complex, especially for users who are not familiar with the system, making it difficult to achieve automated integration that meets business needs.

Method used

By monitoring user interactions with external systems, identifying data change event pairs, filtering and sorting event chains, generating customized integrated flow templates, and using processor circuits and memory to execute relevant computer program instructions, customized integrated flow templates are provided.

Benefits of technology

It enables the automated generation of integration flow templates based on data changes from external systems, reducing the time users spend manually searching and modifying, and improving the efficiency and accuracy of integration flows.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115039092B_ABST
    Figure CN115039092B_ABST
Patent Text Reader

Abstract

A method and system for customizing integration flow templates is provided. The method can include monitoring integrations of a user with a plurality of systems external to an integration system to read data changes at the external systems, identifying at least one pair of events, where each pair of events is between two external systems that have the same data change event. The identified pairs of events are filtered to include them in a chain of events, and the external systems of the filtered pairs of events in the chain of events are ordered based on timestamps of the data change events. The method outputs an integration flow template based on the ordered external systems of the pairs of events that define a flow trigger and at least one flow node.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present invention relates to managing integration flows, and more specifically, to providing customized integration flow templates based on user activity. BACKGROUND

[0002] In an integration product, users can create integration flows in order to perform different actions in different systems when an integration is triggered. An integration product enables information packaged into messages to flow between different business applications in multiple external systems. In some cases, the business applications can be provided by external cloud service systems, also known as Software as a Service (SaaS) systems.

[0003] A simple integration flow can be, for example, when a new lead is created in a cloud service marketing system, to create a lead in a cloud service sales system with the same information. This simple flow can help its users to synchronize leads between their cloud service marketing system and their cloud service sales system, and is a typical flow that most businesses using both a cloud service marketing software product and a cloud service sales software product would be interested in.

[0004] An integration product can provide templates in the form of integration flow forms that users are interested in, which are generated based on typical use cases. In order to select a template to build their own flow, a customer needs to select a template based on their business use case, and modify the template flow based on their specific requirements.

[0005] As there are many templates for a business to choose from, the act of finding and utilizing the appropriate template can be time consuming and confusing, especially for users who can not yet be clear on which systems and flows they want to implement.

[0006] Modifying an existing template can involve performing some operations to tailor the template flow to conform to the user's business needs. This can include adding or removing system nodes if the template does not contain all of the systems being used, and / or adding or removing field mappings between system nodes. These modifications can be time consuming and difficult to implement for inexperienced users. SUMMARY

[0007] Embodiments can be directed to a computer-implemented method for providing a customized integration flow template, the method comprising: monitoring user interactions with a plurality of systems external to an integration system to read data changes at the external systems; identifying at least one pair of events, wherein each pair of events is between two external systems having a same data change event; filtering the at least one pair of events to include in a chain of events; ordering the external systems of the filtered pair of events in the chain of events based on timestamps of the data change events; and outputting the integration flow template based on the ordered external systems of the pair of events defining a flow trigger and at least one flow node.

[0008] Embodiments can also be directed to a system for providing a customized integration flow template, the system comprising: a processor circuit and a memory configured to provide the processor circuit with computer program instructions to perform the functions of the components: an external system monitoring component to monitor user interactions with a plurality of systems external to an integration system to read data changes at the external systems; a pair of events identifying component to identify at least one pair of events, wherein each pair of events is between two external systems having a same data change event; a filtering component to filter the at least one pair of events to include in a chain of events; an ordering component to order the external systems of the filtered pair of events in the chain of events based on timestamps of the data change events; and a template output component to output the integration flow template based on the ordered external systems of the pair of events defining a flow trigger and at least one flow node.

[0009] Embodiments can also be directed to a computer program product for providing a customized integration flow template, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor circuit to cause the processor circuit to: monitor user interactions with a plurality of systems external to an integration system to read data changes at the external systems; identify at least one pair of events, wherein each pair of events is between two external systems having a same data change event; filter the at least one pair of events to include in a chain of events; order the external systems of the filtered pair of events in the chain of events based on timestamps of the data change events; and output the integration flow template based on the ordered external systems of the pair of events defining a flow trigger and at least one flow node.

[0010] The computer readable storage medium can be a non-transitory computer readable storage medium, and the computer readable program code can be executed by a processing circuit. The above summary is not intended to describe every illustrated embodiment or every implementation of the present disclosure. BRIEF DESCRIPTION OF DRAWINGS

[0011] The drawings included in the present application are incorporated into, and make part of, the specification. They illustrate embodiments of the present disclosure and, together with the description, serve to explain the principles involved. The drawings are only schematic and are meant to provide illustrations of some embodiments and are not limiting of the present disclosure.

[0012] Figure 1 is a schematic diagram of a system in accordance with embodiments of the present disclosure.

[0013] Figure 2A is a flow diagram depicting details of a method in accordance with embodiments of the present disclosure. Figure 1

[0014] Figure 2B is a flow diagram depicting further details of the method depicted in Figure 2 in accordance with embodiments of the present disclosure. Figure 1

[0015] Figure 3 is a flow diagram depicting aspects of a method in accordance with embodiments of the present disclosure. Figure 1

[0016] Figure 4 is a block diagram depicting a system in accordance with embodiments of the present disclosure. Figure 1

[0017] Figure 5 is a block diagram of a computer system or cloud server in which the present application can be implemented in accordance with embodiments of the present disclosure. Figure 1

[0018] Figure 6 is a schematic diagram of a cloud computing environment in which the present application can be implemented in accordance with embodiments of the present disclosure. Figure 1

[0019] Figure 7 is a diagram of the layers of abstraction of a cloud computing environment in which the present application can be implemented in accordance with embodiments of the present disclosure. Figure 1 It should be understood that the elements shown in the figures are not necessarily to scale, for clarity and simplicity in illustration. For example, the dimensions of some of the elements can be exaggerated relative to other elements. In addition, where considered appropriate, reference numerals can be repeated among the figures to indicate corresponding or analogous features.

[0020] While the application is susceptible to various modifications and alternative forms, specific embodiments are herein described by way of example in the drawings and detailed description. It should be understood, however, that the application is not limited to the particular embodiments described. On the contrary, the application is intended to cover all modifications, equivalents and alternatives falling within the spirit and scope of the application.

[0021]

[0022] ​​​​​​​In the drawings and in the specific embodiments, like reference numerals refer to like components, parts, steps, and processes. DETAILED DESCRIPTION

[0023] A system and method for providing users of an integration product with customized integration flow templates is described. The method provides integration templates that are tailored to the user based on data changes in their external systems over a period of time. The system utilizes the information flow between these external systems to determine useful integration templates that can be implemented to automate these tasks. The user can then use this flow as a starting point to build their own flow.

[0024] The method identifies correlations of data flowing through several different systems and uses these correlations to generate integration flows. This benefits the user by providing integration flow templates as a starting point for the correlations, rather than having to search through existing templates, build a flow from scratch, or continue to rely on manual processing.

[0025] REFERENCE Figure 1 The block diagram depicts an example embodiment of a system 100 that includes an integration server 140 for an enterprise that provides an integration product for its multiple users 161-163 to interact with business applications. The business applications 121-123 can be provided as cloud services on external cloud service systems 111-113. The cloud services can be referred to as software as a service (SaaS). The business application 124 can also be provided on a non-cloud computer system 114 that is local or remote to the enterprise. The systems 111-114 that provide the business applications 121-124 are referred to as external systems because they are external to the integration system.

[0026] The integration server 140 can be provided as a fully managed integration platform on the cloud from a cloud integration service 130. The integration server 140 can be deployed from packaged integration assets provided to the enterprise customer by a tool kit. The integration server 140 can run its own container to ensure workload isolation and allow the enterprise customer to package applications with all their dependencies into standard units of software development, containing all necessary components, including runtimes, system tools, and libraries, to enable the customer to deploy their integration solutions.

[0027] The enterprise customer can build integration flows 142 between the business applications 121-124, and the integration flows 142 can be exposed as application programming interface (API) operations. The integration flows 142 provide automatic movement of data between sources and targets. Integration flow templates 132 can be provided by the cloud integration service 130.

[0028] The described system includes a template providing system 150 for integration server 140 to provide custom integration flow templates 151 to enterprise customers based on user 161-163 interactions with business applications 121-124. The connection between the template providing system 150 and the integration server 140 is the integration flow pattern so that it can generate flow templates that can be used on that particular integration server 140.

[0029] Events 125-128 are captured in external systems 111-114 and custom integration flow templates 151 can be generated with at least one flow 152, each flow 152 including a trigger 153 and at least one node 154, 155. The nodes represent specific actions that trigger corresponding events in the target system.

[0030] For a trigger or a node, there are three key pieces of information.

[0031] 1. Which external system does it represent.

[0032] 2. Which event does it capture for a trigger or which action does it take for a node. (e.g. Create, Update Event < for trigger>, Delete, Update Action < for action>).

[0033] 3. Which target object is the event or action for.

[0034] The nodes represent specific actions that will trigger corresponding events in the target system. For example, the event can be a lead created in a sales system and the flow will have a “Sale Create Lead” node.

[0035] Referring to Figure 2A , flowchart 200 depicts an example embodiment of the described method performed at the template providing system 150. The method can be performed at the customer’s integration system or remotely via the cloud integration service 130.

[0036] The method can receive 201 access permissions for a user to read data changes in a time period from multiple external systems. External systems are any systems that are not part of the integration system, including on-premise systems that run business applications and cloud service systems. The method can monitor 202 user interactions with the external systems over a defined time period. The monitoring 202 can be on a per-account basis, monitoring users or groups of users in the enterprise with user configurations.

[0037] The monitoring can include providing a set of changes that have occurred or by allowing the integration server to listen for data changes in the next defined time period. This collects 203 data change events that occur in the external systems. The data change events can have multiple fields in which data values are changed in each external system.

[0038] Once the data change events have been collected, the data change events are used to determine a custom or bespoke integration flow template.

[0039] This includes identifying 204 event pairs of external systems that have the same data change in the data change events. Identifying the event pairs can be done for each system's data change events by comparing the events to the data change events of the rest of the external systems. Two systems can be marked as a pair if they have fields that contain the same values and have a one-to-one mapping relationship in most data change events. Fields that contain the same values are referred to as common fields and data change events that contain the same values are referred to as the same data change events. The common fields are used as the mapping relationship between the two nodes.

[0040] The identified event pairs can be processed. Filters 205 can be performed on the identified event pairs based on defined criteria that include the event pairs as triggers or as event nodes in the event chain. Each event pair must have a common field with another pair in the chain.

[0041] The filtering 205 can be based on a threshold number of the same data values in the common fields in the event pairs. A predefined percentage of the same data change events of one external system can be used to link all other pairs in the chain. Those same data change events can be referenced as triggers and end points at the last node of the same data change event chain.

[0042] One of the benefits of this approach is that it does not rely on any similarity of field names to recognize the mapping relationship. The field names can be completely different between two external systems, they are only recognized by the value match. If the values are boolean or numbers, this will result in a large number of mappings, but they will be filtered out by the predefined match rate.

[0043] Further processing 206 can be performed to discover single flows and remove loops in the flows. This can include limiting the event pairs so that:

[0044] - each pair must have a unique combination of external systems.

[0045] - each external system can only appear in at most two pairs; and

[0046] - there should be at least two external systems that only appear once in all the event pairs as these will form the trigger and end nodes.

[0047] The discarded event pairs are kept for subsequent processing to obtain at least one potential additional flow template.

[0048] The filtering 205 and processing 206 can be performed using constraint programming or iterative logic, for example, as further described in relation to Figure 3

[0049] Each event pair in the final set of event pairs must have a common field with another pair in the set. The system's sets are ordered 207 based on the timestamps of the events, so that they define a chain of events in chronological order. This can include identifying which are source and target systems from the timestamps, in order to identify triggers and at least one flow node.

[0050] The order of the external systems in the chain is organized to generate a final flow. For each endpoint of a same data change event chain, the data changes in the chain are iterated by comparing the timestamps of the most same data change events and the positions of the pairs in the chain are ordered to generate a final integration template.

[0051] If two same data change event chains share the same set of same data change events, and one contains all the external systems of the other, the two same data change event chains are considered to be duplicates. If the two chains are the same length, the shorter chain can be discarded, or one is discarded at random.

[0052] It is determined 208 whether there are any unused event pairs discarded by the processing 206. If so, these event pairs are processed 209 by looping the method to obtain another flow.

[0053] Once there are no more unused pairs, at least one resulting flow can be output 210 as a template integration flow or can be used to match to an existing template integration flow. The output template integration flow can be stored as a template for other users with the originating user's consent.

[0054] The user can then validate and complete the integration flow for their environment, and optionally further adjust the flow.

[0055] Referring to Figure 2B , a flowchart 250 depicts an exemplary embodiment of the described method performed at the template providing system 150.

[0056] The method can begin 251 and data change events can be collected 252 from multiple external systems. The method can identify 253 event pairs that share same data change events.

[0057] It can be determined 254 whether event pairs are found. If not, the method can end 260. If event pairs are found, it can be determined 255 whether more than one event pair is found. If so, the method can generate 256 same data change event chains using the multiple event pairs.​

[0058] In the case where only one event pair is found, the method can order 257 the external systems in the event pair by time to generate an integration template. In the case where multiple event pairs are found and grouped into event chains, the method can order 257 the external systems in the event chains by time to generate an integration flow template.

[0059] It can be determined 258 whether any unused event pairs were discarded in generating the previous integration flow template. If so, these event pairs are processed to generate another integration flow template 256 by looping the method. If there are no unused event pairs, the method can output 259 all integration flow templates. The method can then end 260.

[0060] Reference Figure 3 Flowchart 300 depicts an example embodiment of the aspect of the method of Figure 2A Filtering 205 of the method of

[0061] The method can receive 301 the identified event pairs between external system pairs. The event pairs can be limited 302 to those that all include one same external system.

[0062] The common fields of the event pairs are examined within the external system pairs, and the event pairs with the highest number of common fields that have the same values of data changes and that are used as reference values are selected 303.

[0063] The other event pairs are searched 304 for the number of reference values in each of the other event pairs. If the event pairs do not meet a threshold number of reference values, they are discarded. This can be performed by comparing the same data change events to other event pairs to find the best match with the highest same data change event match. If no pairs are found with a preset percentage, the logic can terminate here. This can be repeated with new shared same data change events between the selected pairs.

[0064] The remaining filtered event pairs can be provided 305 for processing to find single flows and remove any loops, as described in step 206 of Figure 2A

[0065] After the analysis, the output shows the user some example flows that the user can use as a starting point to build their detailed integration. If there is not enough data through the user's system, there can not be matching data events found, so no example flows will be shown to the user.

[0066] ​To illustrate the method, an example embodiment is described. In the embodiment, the business applications 121-123 include sales and marketing cloud services, email cloud services, social media services, spreadsheet applications, and APIs, all provided in external systems to the integration server.

[0067] Example 1:

[0068] In the external systems, only events are captured. For example:

[0069] • 10:00 a message is received in the social media system:

[0070] givenname: John,

[0071] familyname: Doe,

[0072] emailaddress: jd@company.com, sendtime: 9:59)

[0073] • 10:01 a lead is created in the sales system:

[0074] givenname: John,

[0075] familyname: Doe,

[0076] emailaddress: jd@company.com, createdate: 10:01)

[0077] • 12:00 an email is sent in the email system:

[0078] email: jd@company.com, sent: 12:00)

[0079] For this single value change event, based on the above events, the method determines 3 systems and mapping fields are related:

[0080] • socialmedia.givenname <-> sales.firstname

[0081] • socialmedia.familyname <-> sales.lastname

[0082] • socialmedia.emailaddress <-> sales.contact <-> email.email

[0083] Thus, the social media system and the sales system have 3 common fields, the social media system and the email system have 1 common field, and the sales system and the email system have 1 common field.

[0084] If there are assumed to be other value change events, and they all have the same value, but the email system has some noise. The social media system has 10 events that 100% match the 10 events of the sales system. The email system has 15 events, 5 of which do not have the same value change in the other two systems.

[0085] If the matching threshold is set to 80% or above, then the email system will not be considered due to a 10 / 15 = 66.67% match rate. The template will have two system events:

[0086] A lead created by the sales system <-> a message received by the social media.

[0087] The method then looks at the 10 events, and if all the social media events happen before the sales events, then the system is reordered to generate the following flow:

[0088] (Trigger) when a message is received by the social media system -> (Action) a lead is created by the sales system, where the value from the social media givenname is used as the first name, the value from the social media familyname is used as the last name, and the value from the social media emailaddress is used as the contact.

[0089] Example 2:

[0090] One example use case is described as follows. A user performs the following tasks every day at 10am (referred to as user routine 1):

[0091] 1. Check if there are new customers added to the shared spreadsheet.

[0092] 2. Add the contact of the new customer to the external marketing system and the external sales system, in which system first order is random.

[0093] 3. Once all the actions in step 2 are complete, send a welcome email to these contacts.

[0094] Another user performs the following tasks periodically throughout the day (referred to as user routine 2).

[0095] 1. Check for new leads in the external marketing system.

[0096] 2. Call the API system to provide a product for the new customer.

[0097] 3. Send another email to the customer after step 2 is complete.

[0098] The described method can be used to generate two templates that have access to all the systems needed to perform both user tasks.

[0099] System 1 event A and system 2 event B are a pair of events because field X in event A of system 1 has the same value as field Y in event B of system 2. To build a chain that links two pairs (4 systems), the other two systems must have field Z and field W in event C of system 3 and event D of system 4, respectively.

[0100] First, if two pairs do not share the same external system event, they will not be checked against each other.

[0101] For example:

[0102] Pair AB -> Excel row - Sales Lead;

[0103] Pair BC -> Sales Lead -- Email Mail;

[0104] Pair CD -> Email - API Lead;

[0105] Pair BD -> Sales Lead - API Lead;

[0106] Pairs AB, BC, and BD will be checked because they all have B (Sales Lead), CD will be discarded.

[0107] Let's assume that event A (from system 1) and event B (from system 2) both have 8 fields changed to the same value, so it has 8 common fields (AB pair). For the other pairs: 10 fields are changed to have 3 common fields (BC pair), 4 fields are changed to have 4 common fields (BD pair). Since the AB pair has the most common fields, it will be chosen as the starting pair.

[0108] In the change event of the BC pair, search for the same values of the 8 common fields identified in the AB pair. The pre-set percentage threshold is set to = 80%. It is found that 3 common fields in the BC pair are 3 of the 8 common fields in the AB pair, and the value change of these 3 common fields is 100% match. Therefore, it will be recorded in the chain headed by the AB pair (AB<->BC).

[0109] For the BD pair, it is found that only 1 field in the BD common field has a 60% match of the same value as one common field in the AB pair. Therefore, BD will not be in this chain.

[0110] Using the example of user routine 1 and user routine 2, the following pairs will be found:

[0111] Spreadsheet system <-> Marketing system

[0112] Marketing system <-> Email system

[0113] Sales system <-> Email system

[0114] Spreadsheet system <-> Sales system

[0115] Marketing system <-> Sales system

[0116] Marketing system <-> API system

[0117] API system <-> Email system

[0118] Follow a set of example guidelines to find single data flows and exclude loops:

[0119] Each pair must have a unique combination of external systems;

[0120] Each external system can only appear in at most two pairs; and

[0121] There should be at least two external systems that only appear once in all pairs.

[0122] For example, if there are pairs AB, BC, CD, DB, and DE: each pair has a unique combination of external systems, and A and E only appear once in all pairs. However, BC -> CD -> DB is a loop. In this example, B and D both appear in more than two pairs. In the case of a good constraint algorithm, DB would be identified and removed based on the requirement that each external system can only appear in at most two pairs. This is provided as an example use of constraints, as in this example, BD is not in the chain because it does not meet the 80% match criteria of the same value change.

[0123] The purpose of this method is not to generate flows where action nodes can have more than one downstream node. In other words, when forming the first flow template, one of BC and BD will be removed, and the removed pair will become the second flow template, i.e. the result will be flow 1: AB -> BC, plus flow 2: BD.

[0124] It can find the first flow in the first iteration: based on the constraints listed above, there can be multiple ways of removal. The one with the highest number of pairs will be chosen, and if there is a tie in the highest number of pairs, a random one will be chosen.

[0125] Spreadsheet system <-> Marketing system

[0126] Marketing system <-> Email system (removed)

[0127] Sales system <-> Email system

[0128] Spreadsheet system <-> Sales system (deleted)

[0129] Marketing system <-> Sales system

[0130] Marketing system <-> API system (deleted)

[0131] API system <-> Email system (deleted)

[0132] Regarding the data changes that were deleted in the first iteration:

[0133] Marketing system <-> Email system

[0134] Spreadsheet system <-> Sales system

[0135] Marketing system <-> API system

[0136] API system <-> Email system

[0137] It will find another flow:

[0138] Marketing system <-> Email system (deleted)

[0139] Spreadsheet system <-> Sales system (deleted)

[0140] Marketing system <-> API system

[0141] API system <-> Email system

[0142] However, in a real use case, there could be different flows:

[0143] Spreadsheet system <-> Marketing system

[0144] Marketing system <-> Email system (deleted)

[0145] Sales system <-> Email system (deleted)

[0146] Spreadsheet system <-> Sales system (deleted)

[0147] Marketing system <-> Sales system (deleted)

[0148] Marketing system <-> API system

[0149] API system <-> Email system

[0150] And

[0151] Marketing system <-> Email system (deleted)

[0152] Sales system <-> Email system

[0153] Spreadsheet system <-> Sales system

[0154] Marketing system <-> Sales system (deleted)

[0155] For each identical chain of event changes, the system will collect the timestamps at which the system collected these events. For example, add the change event of data entry with email bob@company.com to sales, marketing, and email service.

[0156] bob@company.com; 12:10 - Sales, 12:11 - Email, 10:10 - Marketing

[0157] fred@company.com; 12:10 - Sales, 12:09 - Email, 7:00 - Marketing

[0158] jane@company.com; 12:11 - Sales, 12:10 - Email, 5:00 - Marketing

[0159] Thus, if the ordering of all events with respect to time is identical, the systems in the flow template will be reordered. For example, to compose a flow from the example set of events shared above, the template should order the marketing system before the sales and email. The order between sales and email is not important.

[0160] Reference Figure 4 , a block diagram depicts an example embodiment of a template providing system 150 provided at a computer system, the template providing system 150 comprising at least one processor circuit 401, hardware modules or circuitry for performing the functions of the described components, which can be software units executing on the at least one processor circuit. Multiple processor circuits running parallel processing threads can be provided, such that part or all of the functionality of the components is processed in parallel. A memory 402 can be configured to provide computer instructions 403 to the at least one processor circuit 401 to perform the functionality of the components.

[0161] The template providing system 150 can interface with the integrated server 140 to provide reference Figure 1 The integrated flow 142 described.

[0162] The template providing system 150 comprises components providing the functionality of the described methods. The template providing system 150 comprises a user access component 451 for receiving a user permission to collect data related to data change events at external systems within a time period, an external system monitoring component 452 for monitoring external systems, and a data change event component 453 for collecting data.

[0163] The template providing system 150 can include an event pair identification component 454 for identifying pairs of external systems having the same data value change in data change events and a chain generation component 455 that can include a filtering component 456 for filtering events based on defined criteria and a sorting component 457 for ordering systems in an event chain.

[0164] The template providing system 150 can include a template output component 458 for outputting the chain as a customized integration flow template 152. The template providing system 150 can also or instead include a template matching component 459 that matches the generated event chain to an existing template integration flow.

[0165] Figure 5 A block diagram of components of a computing system providing an integration server 140 and a template providing system 150 in accordance with embodiments of the application is depicted. Figure 1 and Figure 4 It should be understood that Figure 5 The description of only one implementation is provided for the sake of brevity and clarity and is not intended to mean that one implementation is preferred or required over other implementations. Numerous modifications can be made to the depicted environments.

[0166] The computing system can include at least one processor circuit 502, at least one computer readable RAM 504, at least one computer readable ROM 506, at least one computer readable storage medium 508, device drivers 512, read / write drive or interface 514, and network adapter or interface 516, all interconnected through a communication structure 518. The communication structure 518 can be implemented with any architecture designed for passing data and / or control information between processors (such as microprocessors, communications and network processors, etc.), system memory, peripheral devices, and any other hardware components within a system.

[0167] At least one operating system 510 and application programs 511, such as the template providing system 150, are stored on at least one computer readable storage medium 508 for execution by at least one processor circuit 502 via at least one respective RAM 504, which can include cache memory. In the depicted embodiment, each computer readable storage medium 508 can be a magnetic magnetic disk storage device of internal hard disks, CD-ROMs, DVDs, memory sticks, magnetic tapes, optical disks, semiconductor storage devices such as RAM, ROM, EPROM, flash, or any other computer readable storage medium that can store a computer program and digital information.

[0168] The computing system can also include a R / W drive or interface 514 to read from and write to at least one removable, portable computer readable storage medium 526. The application programs 511 on the computing system can be stored on the at least one removable, portable computer readable storage medium 526, read via the R / W drive or interface 514 and loaded into the respective computer readable storage media 508 of the respective computing system.

[0169] The computing system can also include a network adaptor or interface 516, such as a TCP / IP adaptor card or wireless communication adapter. The application programs 511 on the computing system can be downloaded to the computing device from an external computer or external storage device via a network (for example, the Internet, a local area network or other wide area network or wireless network) and the network adaptor or interface 516. From the network adaptor or interface 516, the programs can be loaded into the computer readable storage media 508. The network can comprise copper wires, optical fibers, wireless transmission, routers, firewalls, switches, gateway computers and edge servers.

[0170] The computing system can also include a display screen 520, a keyboard or keypad 522, and a computer mouse or touchpad 524. Device drivers 512 interface to the display screen 520, keyboard or keypad 522, computer mouse or touchpad 524, and / or display screen 520 for pressure sensing of alphanumeric character input and user selections. The device drivers 512, R / W drive or interface 514 and network adaptor or interface 516 can include hardware and software stored in the computer readable storage media 508 and / or ROM 506.

[0171] The present application can be a system, a method, and / or any possible technical details of integration levels of computer program products. The computer program product can include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor circuit to carry out aspects of the present application.

[0172] A computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium can be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanism that is encoded with instructions (such as a punch card or raised structures in a groove with instructions encoded thereon), and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.

[0173] Computer readable program instructions described herein can be downloaded to respective computing / processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and / or a wireless network. The network can comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and / or edge servers. A network adapter card or network interface in each computing / processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing / processing device.

[0174] Computer readable program instructions for carrying out operations of the present application can be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, configuration data for integrated circuitry, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++ or the like and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The computer readable program instructions can execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer can be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection can be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate array (FPGA), or programmable logic array (PLA) can execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present application.

[0175] The computer readable program instructions can also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus implement the functions / acts specified in the flowchart and / or block diagram block or blocks.

[0176] These computer readable program instructions can be provided to a processor circuit of a computer, or other programmable data processing apparatus, to produce a machine, such that the instructions, which execute via the processor circuit of the computer or other programmable data processing apparatus, create means for implementing the functions / acts specified in the flowchart and / or block diagram block or blocks. These computer readable program instructions can also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and / or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including

[0177] The computer readable program instructions can also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process such that the instructions which execute on the computer, other programmable apparatus or other device implement the functions / acts specified in the flowchart and / or block diagram block or blocks.

[0178] The flow diagrams and the block diagrams in the drawings are meant as illustrative representations of the architectures, functions, and operations of possible implementations of systems, methods and computer program products according to the present disclosure. It will be understood that each block of the flow diagrams and / or block diagrams, and combinations of blocks in the flow diagrams and / or the block diagrams, can be implemented by analogues of one or more of the accompanying code listings. Such implementations can be realized on one or more programmable apparatuses by one or more articles of manufacture (for example, one or more computers) programmed to perform the functions of the flow diagrams and / or the block diagrams, by one or more machines serving as controllers to the one or more programmable apparatuses, or by one or more compositions of physical devices, such as microcode, or firmware, programmed to perform the functions of the flow diagrams and / or the block diagrams. In this context, a "article of manufacture" can be one or more computer- or machine-readable memories (for example, one or more magnetic disks, optical disks, or flash memories), one or more physically implemented in circuitry (for example, in one or more application-specific integrated circuits or microprocessors), or one or more combinations of any of the above. The flow diagrams and / or the block diagrams also illustrate operations according to the present disclosure in accordance with the actions of the accompanying code listings. The flow diagrams and / or the block diagrams can also illustrate operations according to the present disclosure in accordance with the actions of the accompanying code listings.

[0179] Cloud computing

[0180] It should be understood that while the present disclosure includes a detailed description on cloud computing, implementations of the teachings herein are not limited to a cloud computing environment. Rather, embodiments of the application are capable of working in conjunction with any other type of computing environment now known or later developed.

[0181] Cloud computing is a model of service delivery for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g. networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) that can be rapidly provisioned and released with minimal management effort or interaction with a provider of the service. This cloud model can be comprised of at least five characteristics, at least three service models, and at least four deployment models.

[0182] The characteristics are as follows:

[0183] On-demand self-service: cloud consumers can unilaterally provision computing capabilities, such as server time and network storage, as needed, automatically without requiring human interaction with the service's provider.

[0184] Broad network access: capabilities are available over a network and accessed through standard mechanisms that promote use by heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, and PDAs).

[0185] Resource pooling: the provider's computing resources are pooled to serve multiple consumers using a multi-tenant model, with different physical and virtual resources dynamically assigned and reassigned according to consumer demand. There is a sense of location independence in that the consumer generally has no control or knowledge over the exact location of the provided resources but can be able to specify location at a higher level of abstraction (e.g., country, state, or datacenter).

[0186] Rapid elasticity: capabilities can be rapidly and elastically provisioned, in some cases automatically, frequently with little or no management effort or interaction with a provider. For consumers, the capacity available for provisioning is generally unbounded and can be rapidly expanded to meet sudden and unpredictable demand.

[0187] Measured service: cloud systems automatically control and optimize resource use by leveraging utilization of resources in an economical and efficient manner, including their ability to deliver specific services at certain quality of service levels to groups of consumers.

[0188] Service models are as follows:

[0189] Software as a Service (SaaS): the capability provided to the consumer is to use the provider's applications running on a cloud infrastructure. The applications are accessible from various client devices through a thin client interface such as a web browser (e.g., web-based e-mail). The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings.

[0190] Platform as a Service (PaaS): the capability provided to the consumer is to deploy onto the cloud infrastructure consumer-created or acquired applications created using the programming languages and tools supported by the provider. The consumer does not manage or control the underlying cloud infrastructure including networks, servers, operating systems, or storage, but has control over the deployed applications and possibly application hosting environment configurations.

[0191] Infrastructure as a Service (laaS): the capability provided to the consumer is to provision processing, storage, networks, and other fundamental computing resources where the consumer is able to deploy and run arbitrary software, which can include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure but has control over operating systems, storage, deployed applications, and possibly limited control of select networking components (e.g., host firewalls).

[0192] Deployment models are as follows:

[0193] Private cloud: the cloud infrastructure is operated solely for an organization. It can be managed by the organization or a third party and can exist on-premises or off-premises.

[0194] Community cloud: the cloud infrastructure is shared by several organizations and supports mission-critical enterprise resources. It can be managed by the organizations or a third party and can exist on-premises or off-premises.

[0195] Public cloud: the cloud infrastructure is made available to the general public or a large industry group and is owned by an organization selling cloud services.

[0196] Hybrid cloud: the cloud infrastructure is a composition of two or more types of cloud (private, community, or public) that remain unique entities but are bound together by standardized or proprietary technologies that enable data and application portability.

[0197] A cloud computing environment is service-oriented, focusing on stateless, low-coupled, modular, and semantically interoperable. The core of cloud computing is an infrastructure that includes a network of interconnected nodes.

[0198] Referring now to Figure 6 , an illustrative cloud computing environment 50 is depicted. As shown, cloud computing environment 50 includes one or more cloud computing nodes 10 with which local computing devices used by cloud consumers, such as, for example, personal digital assistant (PDA) or cellular telephone 54A, desktop computer 54B, laptop computer 54C, and / or automobile computer system 54N can communicate. Nodes 10 can communicate with one another. They can be grouped (not shown) physically or virtually, in one or more networks, such as Private, Community, Public, or Hybrid clouds as described hereinabove, or a combination thereof. This allows cloud computing environment 50 to offer infrastructure, platforms and / or software as services with Figure 6 It is understood that all types of computing devices can communicate over a network, such as the Internet, and that they can communicate with any type of networked computing device, including cloud computing nodes 10. Also, it is understood that computing devices 54A-N can have different capabilities and be supported by one or more Internet service providers as part of cloud computing environment 50.

[0199] Referring now to Figure 7 , a set of functional abstraction layers are shown as provided by cloud computing environment 50 Figure 6 It should be understood that the components, layers and functions shown in Figure 7 are intended to be illustrative only and embodiments of the present application are not limited in scope to just the components, layers and functions illustrated. As shown, the following layers and corresponding functions are provided:

[0200] Hardware and software layer 60 includes hardware and software components. Examples of hardware components include: mainframes 61; RISC (Reduced Instruction Set Computer) architecture based servers 62; servers 63; blade servers 64; storage devices 65; and networks and networking components 66. In some embodiments, software components include network application server software 67 and database software 68.

[0201] Virtualization layer 70 provides an abstraction layer from which the following examples are

[0202] In one example, management layer 80 can provide the functions described below. Resource provisioning 81 provides dynamic procurement of computing resources and other resources that are utilized to perform tasks within the cloud computing environment. Metering and Pricing 82 provide cost tracking as resources are utilized within the cloud computing environment, and billing or invoicing for consumption of these resources. In one example, these resources can include application software licenses. Security provides identity verification for cloud consumers and tasks, as well as protection for data and other resources. User portal 83 provides access to the cloud computing environment for consumers and system administrators. Service level management 84 provides cloud computing resource allocation and management such that required service levels are met. Service Level Agreement (SLA) planning and fulfillment 85 provide pre-arrangement for, and procurement of, cloud computing resources for future usage in accordance with an SLA.

[0203] Workloads layer 90 provides examples of functionality for which the cloud computing environment can be utilized. Examples of workloads and functions which can be provided from this layer include: mapping and navigation 91; software development and lifecycle management 92; virtual classroom education delivery 93; data analysis processing 94; transaction processing 95; and integrated flow template processing 96.

[0204] The computer program product of the present application comprises one or more computer- readable hardware storage devices having computer-readable program code stored thereon, the program code being executable by one or more processor circuits to implement the method of the present application.

[0205] The computer system of the present application comprises one or more processor circuits, one or more memories, and one or more computer-readable hardware storage devices, the one or more hardware storage devices containing program code executable by the one or more processor circuits via the one or more memories to implement the method of the present application.

[0206] The description of various embodiments of the application is intended for purposes of illustration, and is not intended to be limiting. Many modifications and variations will be apparent to those of ordinary skill in the art, without departing from the scope and spirit of the described embodiments. The terminology used is for the purpose of describing particular embodiments only and is not intended to be limiting. It is to be understood that the use of certain terms is not intended to limit the scope of the embodiments described herein to a specific embodiment, and that such terms are used in a descriptive sense only. Embodiments of the present application are described herein with the understanding that individual features of the embodiments illustrated are for the purpose of clarity and are not meant to limit the scope of the application, but can be used in combination, and that in general, the terms used are intended to have their ordinary meaning.

[0207] Modifications and adaptations of the above described arrangements are possible and are within the scope of the present application.

Claims

1. A method for providing a computer-implemented custom integrated flow template, the method comprising: Monitor user interactions with multiple external systems outside the integrated system to read data changes at those external systems; Identify at least one event pair, wherein each event pair is between two external systems that have the same data change event, and the two external systems are labeled as an event pair when they have fields containing the same value and have a one-to-one mapping relationship in most data change events; The at least one event pair is filtered to include it in the event chain; Based on the timestamps of the data change events, the external systems that have filtered the event pairs included in the event chain are sorted. as well as The customized integrated flow template is output by an external system based on the sorted event pairs of defined flow triggers and at least one flow node.

2. The method according to claim 1, wherein, The same data change event occurs in response to the identification of multiple instances where the same data value is entered in a field common to two external systems and the two external systems have a one-to-one mapping relationship in most of the data change values.

3. The method according to claim 1, wherein, Identifying at least one event pair includes identifying data change events for each external system and comparing the data change events with data change events for other external systems, wherein each event pair includes a field common to another identified event pair.

4. The method of claim 1, further comprising receiving user access to an account of an integration system, the integration system providing access to the plurality of external systems to read data changes within a defined time period and capture user routines based on the customized integration flow template.

5. The method according to claim 1, wherein, Filtering the at least one event pair includes restricting the identified event pairs to a group of event pairs, all of which include a common external system.

6. The method according to claim 1, wherein, Filtering the at least one event pair includes filtering the at least one event pair according to a predefined threshold of the same data change value of the same data change event of the reference event pair, and referencing the same data change value of the same data change event as the endpoint of the event chain.

7. The method of claim 6, further comprising selecting the at least one event pair having the highest number of identical data change values ​​among identical data change events as the reference event pair.

8. The method according to claim 1, wherein, Filtering the at least one event pair includes processing to discard the event pair, to discover a single data stream as the basis for the customized integrated stream template, and to remove any loops.

9. The method according to claim 6, wherein, The sorting of the external systems includes: For each endpoint of the event chain, the process iterates through the data changes within the event chain; and The custom integrated stream template is generated by sorting the positions of event pairs in the event chain by comparing the timestamps of most of the same data change events.

10. The method of claim 8, further comprising processing any discarded event pairs to discover another data stream as the basis for another customized integrated stream template.

11. The method according to claim 1, wherein, Outputting the customized integration flow template involves matching the sorted external systems with existing templates to select a template to use.

12. The method according to claim 1, wherein, Outputting the customized integration flow template includes publishing the customized integration flow template for use by other integration system users.

13. A system for providing customized integrated flow templates, the system comprising: Processor circuitry and memory, the memory being configured to provide computer program instructions to the processor circuitry to perform the functions of the components; An external system monitoring component is used to monitor the user's interactions with multiple external systems outside the integrated system in order to read data changes at the multiple external systems; An event pair identification component is used to identify at least one event pair, wherein each event pair is between two external systems that have the same data change event, and the two external systems are marked as an event pair when they have fields containing the same value and have a one-to-one mapping relationship in most data change events; A filtering component for filtering the at least one event pair to include it in the event chain; A sorting component for sorting external systems of filtered event pairs included in the event chain based on the timestamps of the data change events; as well as A template output component for outputting the customized integrated stream template based on an external system that defines the ordering of event pairs of stream triggers and at least one stream node.

14. The system according to claim 13, wherein, The event pair identification component includes: Identify data change events for each external system; and The event is compared with data change events from other external systems, where each event pair includes fields common to another identified event pair.

15. The system of claim 13, further comprising a user access component for receiving user access to an account of an integrated system, the integrated system providing access to the plurality of external systems to read data changes over a defined time period and capture user routines based on the customized integrated flow template.

16. The system according to claim 13, wherein, The filtering component includes: The identified event pairs are restricted to a group of event pairs, all of which include a common external system; and The at least one event pair is filtered according to a predefined threshold for the same data change value of the same data change event of the reference event pair, and the same data change value of the same data change event is used as the endpoint of the event chain.

17. The system according to claim 13, wherein, The filtering component includes: Processing involves discarding event pairs to discover a single data stream as the basis for the customized integrated stream template and removing any loops; and Process any discarded event pairs to discover another data stream as the basis for another custom integrated stream template.

18. The system according to claim 16, wherein, The sorting component includes: For each endpoint of the event chain, the process iterates through the data changes within the event chain; and The event pairs in the event chain are sorted by comparing the timestamps of most of the same data change events to generate the customized integrated stream template.

19. The system according to claim 13, wherein, The template output component includes: Match the sorted external systems with existing templates to select a template to use; and The template is published for use by other integrated system users.

20. A computer program product for providing a customized integrated flow template, the computer program product comprising at least one non-transitory computer-readable storage medium having program instructions embodied thereon, the program instructions being executable by at least one computer processor circuitry to cause the processor circuitry to: Monitor user interactions with multiple external systems outside the integrated system to read data changes at those external systems; Identify at least one event pair, wherein each event pair is between two external systems that have the same data change event, and the two external systems are labeled as an event pair when they have fields containing the same value and have a one-to-one mapping relationship in most data change events; The at least one event pair is filtered to include it in the event chain; The external system sorts the filtered event pairs included in the event chain based on the timestamps of the data change events. as well as The customized integrated flow template is output by an external system based on the sorted event pairs of defined flow triggers and at least one flow node.

Citation Information

Patent Citations

  • Data Event Processing and Application Integration in a Network

    US20100223629A1