Provides templates for customized integration flows
By monitoring user interactions and data changes to identify and order event pairs, the method generates customized integration flow templates, addressing the challenge of template selection and customization complexity, thereby simplifying the integration flow building process.
Patent Information
- Application Number
- JP2022549643
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-02-24
- Filing Date
- 2021-02-11
- Publication Date
- 2024-12-10
- Estimated Expiration
- 2041-02-11
AI Technical Summary
Users face challenges in selecting and customizing integration flow templates for integration products due to the abundance of available templates and the complexity of modifying them to fit their specific business needs, especially for inexperienced users.
A method and system that monitors user interactions and data changes in external systems to identify event pairs with matching data change events, filters these pairs based on predefined criteria, orders them chronologically, and generates customized integration flow templates with triggers and nodes, providing a tailored starting point for users to build their own flows.
This approach simplifies the template selection process by automating the generation of customized integration flow templates, reducing the time and complexity for users in building integration flows, and ensuring accurate mapping without relying on similar field names.
Smart Images

Figure 0007597471000001 
Figure 0007597471000002 
Figure 0007597471000003
Abstract
Description
[Technical field]
[0001] The present invention relates to managing integration flows, and more particularly to providing integration flow templates based on user activity. [Background technology]
[0002] In integration products, users can create integration flows to perform different actions in different systems when the integration is triggered. Integration products can package information as messages to flow between different business applications in multiple external systems. Business applications can, in some cases, also be provided by external cloud service systems, known as Software as a Service (SaaS).
[0003] A simple integration flow, for example, when a new lead is created in the cloud service marketing system, a lead with the same information is created in the cloud service system. This simple flow helps users to synchronize leads between their cloud service marketing system and their cloud service sales system, and is a typical flow that interests most businesses who use cloud service marketing and sell software products.
[0004] Integration products can provide templates for the forms of integration flows that many users are interested in and these are generated based on typical use cases. To select a template for building their own flows, customers need to select a template based on their business use case and modify the template flow based on their specific requirements.
[0005] Because there are many templates for a business to choose from, the activity of finding and utilizing a suitable template can be time-consuming and confusing, especially for users who may not yet know exactly what systems and flows they want to implement.
[0006] Modifying an existing template may involve performing several actions to tailor the template flow to your business needs. This may include adding or removing systems if the template does not include all systems that will be used, or adding or removing field mappings between system nodes, or both. These modifications can be time consuming and difficult for inexperienced users to implement. Summary of the Invention
[0007] An embodiment may provide a computer-implemented method for providing a customized integration flow template, comprising: monitoring user interactions with a plurality of external systems to an integrated system to retrieve data changes in the external systems; identifying at least one event pair between two external systems having identical data change events in the two external systems; filtering at least one event pair for inclusion in an event chain; ordering the external systems of the filtered event pairs in the event chain based on a timestamp of the data change event; and outputting an integration flow template based on flow triggers and flow nodes, the ordered external systems of event pairs defining at least one flow node.
[0008] Embodiments may also provide a system for providing a customized integration flow template, comprising: a processor circuit; and a memory configured to provide computer program instructions to the processor circuit to perform functions of the components; an external system monitoring component for monitoring user interactions with a plurality of external systems to an integrated system to read data changes in the external systems; an event pair identification component for identifying at least one event pair between two external systems each having identical data change events in the two external systems; a filtering component for filtering at least one event pair for inclusion in an event chain; an ordering component for ordering the external systems of the filtered event pairs in the event chain based on a timestamp of the data change event; and a template output component for outputting an integration flow template based on flow triggers and flow nodes, the ordered external systems of event pairs defining at least one flow node.
[0009] Embodiments may also provide a computer program product for providing a customized integration flow template, the computer program product including at least one non-transient computer-readable storage medium having program instructions embodied therein, the program instructions, when executed by at least one computer processor circuit, causing the processor circuit to: monitor user interactions with a plurality of external systems to an integrated system to read data changes in the external systems; identify at least one event pair between two external systems having identical data change events in the two external systems; filter at least one event pair for inclusion in an event chain; order the external systems of the filtered event pairs in the event chain based on a timestamp of the data change event; and output an integration flow template based on flow triggers and flow nodes, the ordered external systems of event pairs defining at least one flow node.
[0010] The computer-readable recording medium is a non-transitory computer-readable recording medium in which the computer-readable program code can be executable by a processing circuit. The above summary is not intended to describe each illustrated embodiment or every implementation of the present disclosure.
[0011] The drawings included in this application are incorporated in and constitute a part of the specification. They illustrate embodiments of the present disclosure and, together with the description, serve to illustrate the principles of the present disclosure. The drawings are only illustrative of certain embodiments and are not limiting of the disclosure. [Brief description of the drawings]
[0012] [Figure 1] FIG. 1 is a schematic diagram of a system according to an embodiment of the present disclosure. [Figure 2A]FIG. 2A is a flow diagram illustrating method details according to an embodiment consistent with the drawings. [Figure 2B] FIG. 2B is a flow diagram illustrating further details of the method illustrated in FIG. 2, according to an embodiment consistent with the drawings. [Diagram 3] FIG. 3 is a flow diagram illustrating method aspects according to an embodiment not inconsistent with the drawings. [Figure 4] FIG. 4 is a block diagram illustrating a system according to an embodiment consistent with the drawings. [Diagram 5] FIG. 5 is a block diagram of a computer system, or cloud server, in which the present invention may be implemented, according to an embodiment not inconsistent with the drawings. [Figure 6] FIG. 6 is a schematic diagram of a cloud computing environment in which the present invention may be implemented, according to an embodiment not inconsistent with the drawings. [Figure 7] FIG. 7 is a diagram of an abstract model layer of a cloud computing environment in which the present invention may be implemented, according to an embodiment not inconsistent with the drawings. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0013] It will be appreciated that for simplicity and clarity of illustration, elements shown in the figures have not necessarily been drawn to scale. For example, the dimensions of some of the elements may be exaggerated relative to other elements for clarity. Further, where considered appropriate, reference numerals may be repeated among the figures to indicate corresponding or analogous features.
[0014] While the invention is susceptible to various modifications and alternative forms, its features have been shown by way of example in the drawings and will be described in detail. It should be understood, however, that the intention is not to limit the invention to the particular embodiments described. On the contrary, the intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the invention.
[0015] In the drawings and detailed description, like numbers generally refer to like components, parts, steps and processes.
[0016] A system and method are described for providing customized integration flow templates for users of an integration product. The method provides integration templates tailored for users based on data changes in their external systems over a period of time. The system uses the information flows between these external systems to determine useful integration templates that can be implemented to automate these tasks. Users can then use this flow as a starting point for building their own flows.
[0017] The method identifies correlations in data flowing through many different systems and uses these correlations to generate integration flows, which helps users by providing integration flow templates as a good starting point rather than forcing them to search through existing templates, build flows from scratch, or continue to rely on manual processing.
[0018] 1, a block diagram illustrates an example embodiment of a system 100 including an integration server 140 for an enterprise to provide an integrated product for multiple users 161-163 of the enterprise to interact with business applications in a unified manner. The business applications 121-123 may be provided as cloud services on external cloud service systems 111-113. Cloud services may be referred to as Software as a Service (SaaS). Business applications 124 may also be provided on non-cloud-based computer systems 114 or remotely 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 integrated system.
[0019] The integration server 140 can be provided as a fully managed integration platform on the cloud from the cloud integration service 130. The integration server 140 can be deployed from packaged integration assets provided to enterprise clients by toolkits. The integration server 140 can run its own containers to ensure workload isolation and allow enterprise clients to package applications and all of their dependencies into a standard unit for software development that includes all of the runtimes, system tools, and libraries to enable clients to deploy their integration solutions.
[0020] An enterprise client can build integration flows 142 between business applications 121-124, and the integration flows 142 can be exposed as application programming interface (API) operations. The integration flows 142 provide automated movement of data between sources and targets. The integration flow templates 132 can be provided by the cloud integration service 130.
[0021] The described system includes a template provisioning system 150 for an integration server 140 that provides customized integration flow templates 151 for an enterprise client based on the interactions of business applications 121-124 with users 161-163. The link between the template provisioning system 150 and the integration server 140 is the integration flow schema so that it can generate flow templates that can be used on that specific integration server 140.
[0022] Events 125-128 are captured in external systems 111-114 and a customized integration flow template 151 can be generated with at least one flow 152 that includes a trigger 153 and at least one node 154, 155, respectively. A node represents a particular action that will trigger a corresponding event in the target system.
[0023] There are three key pieces of information about a trigger or node: 1. Which external system does it represent? 2. For triggers, what events it will capture, or for nodes, what actions it will take. (e.g., <for trigger> create, update events, <for action> delete, update actions) 3. Which is the target object for the event or action.
[0024] A node represents a particular action that triggers a corresponding event in the target system. For example, an event could be a lead generated in a sales system and a flow would have "sales generate lead".
[0025] 2A, a flow diagram 200 illustrates an example embodiment of the described method performed on the template provision system 150. The method can be performed on a client's integration system or remotely via the cloud integration service 130.
[0026] The method receives 201 user access permissions to read data changes from multiple external systems for a period of time. An external system may be any system that is not part of an integrated system, including local or cloud service systems running business applications. The method may monitor 202 user interactions with the external systems over a defined period of time. The monitoring 202 may be on a per account basis based on user configuration for monitoring users or groups of users within an enterprise.
[0027] Monitoring involves providing a set of changes that have already occurred or by allowing the integration server to listen for data changes for the next defined time period, which collects data change events that have occurred in the external system at 203. A data change event can have multiple fields in each external system that have changed data values.
[0028] Once data change events are collected, they are used to determine customized or tailored integration flow templates.
[0029] This includes identifying pairs of external systems that have identical data changes in the data change events at 204. Identifying event pairs can be performed by comparing the data change events of each system with 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 identical values that have a one-to-one mapping relationship among the data change events. The fields that contain identical values are referred to as common fields, and the data change events that contain identical values are referred to as identical data change events. The common fields are used as a mapping between the two nodes.
[0030] The identified event pairs can be processed. At 205, a filter can be performed on the identified event pairs based on defined criteria for including the event pair in an event chain as a trigger or event node. Each event pair must have a common field with another pair in the chain.
[0031] At 205, filtering can be based on a threshold number of identical data values in common fields in an event pair. A predefined percentage of identical data change events from one external system can be used to chain up all of the other pairs in the chain. These identical data change events can be referred to as end points in the trigger and the last nodes of the identical data change event chain.
[0032] One benefit of this method is that it does not rely on any similarity in field names to recognize mappings. The field names are completely different between the two external systems, and they are identified only by matching values. This would result in a huge number of mappings if the values were booleans or numbers, but they would be filtered out by a pre-configured matching rate.
[0033] Further processing can be performed at 206 to find single flows and remove loops in the flows. This can include limiting event pairs: -Each pair must have a unique combination of external systems; - each external system can only have a maximum of two pairs; and -There must be at least two external systems that appear exactly once in every event pair, as these form the trigger and end nodes.
[0034] The discarded event pairs are stored for subsequent processing for at least one possible additional flow template.
[0035] The filtering at 205 and the processing at 206 may be performed using constraint programming, or iterative logic, as further described in relation to FIG.
[0036] Each event pair in the final group of event pairs must have a field in common with another pair in the group. The group of systems are ordered at 207 based on the timestamps of the events so that they define a chronological event chain. This can include identifying which are source and which are target systems from the timestamps to identify a trigger and at least one flow node.
[0037] The ordering of external systems in the chain is orchestrated to generate a finalized flow. For each end point of an identical data change event, we iterate through the data changes in the chain and order the pairwise positions in the chain by comparing the timestamps of multiple identical data change events to generate a finalized integration template.
[0038] Two identical data change events are considered duplicates if they share the same set of identical data change events and one contains the entirety of another external system. The shorter chain can be discarded, or if two chains are the same length, one can be discarded randomly.
[0039] At 208 it is determined whether there are any unused event pairs discarded by process 206. If so, at 209 these are processed for another flow by looping the method.
[0040] Once there are no more unused pairs, at least one of the resulting flows can be made into a template integration flow at 210 or can be used to match an existing template integration flow. The output template integration flow can be stored, along with the original user's content, as a template for other users.
[0041] The user then confirms and terminates the integration flows for those environments and optionally applies further flows.
[0042] Referring to FIG. 2B, a flow diagram 250 illustrates an example embodiment of the described method performed in the template providing system 150.
[0043] The method may begin at 251 and at 252 data change events may be collected from multiple external systems. The method may identify pairs that share the same data change event at 253.
[0044] At 254, it may be determined whether an event pair is found. If an event pair is not found, the method ends at 260. If an event pair is found, then at 255 it may be determined whether more than one event pair is found. If so, then the method may use multiple event pairs at 256 to generate a chain of identical data change events.
[0045] In the event that only one event pair is found, the method may order 257 the external systems in the event pair by time to generate an integration template. In the event that multiple event pairs are found and grouped into an event chain, the method may order 257 the external systems in the chain by time to generate an integration flow template.
[0046] At 258, it may be determined whether there are any unused event pairs that were discarded in the generation of the previous integration flow template. If so, processing is performed to generate another integration flow template by looping the method at 256. If there are no unused event pairs, the method may output the entire integration flow template at 259. The method then ends at 260.
[0047] Referring to FIG. 3, a flow diagram 300 illustrates an example embodiment of an aspect of the method of FIG. 2A of filtering 205 identified event pairs for inclusion in an event chain.
[0048] The method receives identified event pairs between pairs of external systems at 301. The event pairs may be restricted at 302 to event pairs that all involve one and the same external system.
[0049] Event pairs are checked within the pair of external systems for common fields and the event pair with the highest number of common fields with identical values of data changes is selected 303 and these values are used as reference values.
[0050] Other event pairs are searched 304 to find the number of reference values in each other event pair. An event pair is discarded if it does not match a threshold number of reference values. This can be done by comparing the identical data change events with other pairs to find the best matching one with the highest identical data change event match. The logic can stop if no pairs with the preset percentage are found. This can be repeated for new shared identical data change events between the selected pairs.
[0051] The remaining filtered event pairs are submitted to processing at 305 to find a single flow and remove any loops as described in step 206 of FIG. 2A.
[0052] After analysis, the output presents the user with a number of example flows that can be used as a starting point for building their detailed integration. If insufficient data has passed through the user's system, it is possible that no data-event matches will have been found, and therefore no example flows will be presented to the user.
[0053] Example embodiments have been described to illustrate the methodology. In the example, business applications 121-123 include a sales and marketing cloud service, an email cloud service, a social media service, a spreadsheet application, and all APIs provided in external systems to an integration server.
[0054] Example 1
[0055] In the external system, only the event is captured. for example: · 10:00 The message is received in the social media system. Name: John Last name: Do Email address: jd@company.com, sent time: 9:59) 10:01 Leads are generated in the sales system Name: John Last name: Do Contact: jd@company.com, Created: 10:01) · 12:00 An email is sent via the email system. Email: jd@company.com, sent by 12:00
[0056] For this single value change event, based on the events described above, the method determines that three systems are associated with the mapping field. ·Social Media.Name <-> Sales.Name ·Social Media.Last Name<->Sales.Last Name · Social Media.Email Address <-> Sales.Contact <-> Email.Email
[0057] Thus, the social media system and the sales system have three fields in common, the social media system and the email system have one field in common, and the sales system and the email system have one field in common.
[0058] If we assume there are other value change events, they all have the same value, but the email system has some noise. The social media system has 10 events that match 100% with the 10 events in the sales system. The email system has 15 events, and 5 events do not have the same value change as in the other two systems.
[0059] If you set the matching threshold to be greater than 80%, the email system will not be considered since the matching rate is 10 / 15=66.67%. Because of the template, there will be two system events: Sales system generates lead <-> Social media receives message
[0060] The method then looks at these 10 events and if all of the social media events occurred before the sales event, the system re-prioritizes and generates the following flow: (Trigger) Social media system receives message ---> (Action) Sales system generates lead using first name using value from social media name, last name using value from social media last name, and contact using value from social media email address.
[0061] Example 2
[0062] An example use case is described as follows: A user performs the following task every day at 10am (referred to as User Routine 1): 1. Check if any new customers have been added to the shared spreadsheet. 2. Add contacts for new customers to your external marketing and sales systems in a random order, choosing which system to use first. 3. Send a welcome email to these contacts as soon as all the actions in step 2 are complete.
[0063] Another user performs the following tasks regularly throughout the day (referred to as User Routing 2): 1. Check for new leads in your external marketing systems. 2. Call the API system to provide products to new customers. 3. After step 2 is complete, send another email to the customer.
[0064] The method described can be used to generate two templates that have access to all systems required to perform two user tasks.
[0065] Event A in System 1 and Event B in System 2 are an event pair because Field X in Event A in System 1 has the value of Field Y in Event B in System 2. To build a chain linking the two pairs (four systems), the other two systems must have Fields Z and W in Event C in System 3 and Event D in System 4, respectively.
[0066] First, two pairs will not be checked against each other if they do not share the same external system events.
[0067] for example: Pair AB -> Spreadsheet Rows - Sales Leads Pair BC->Sales Lead-Email Pair CD->Email->Email->API Leads Pair BD->Sales Lead-API Lead
[0068] The pairs AB, BC and BD will be checked since they all have B (a sales lead) and CD will be discarded.
[0069] Suppose event A (from system 1) and event B (from system 2) both have 8 fields with identical values changed, it will have 8 common fields (AB pair). For other pairs: 10 fields changed with 3 common fields (BC pair), 4 fields changed with 4 common fields (BD pair). The number of common fields in the AB pair is the highest, so it will be selected as the start pair.
[0070] The 8 common fields identified from the AB pairs in the BC pair change event are searched for identical values. The preset percentage threshold is set to =80%. The 3 common fields in the BC pair are found to be 3 fields in the 8 common pairs of the AB pair, and the value changes in those 3 common fields are found to be 100% matching. Thus, an in chain read by the AB pair will be recorded (AB<->BC)
[0071] For a BD pair, only one field is found from the common fields of BD that has 60% identical value matching with one of the common fields in the AB pair. Therefore, BD will not be in-chain.
[0072] Using the example user routine 1 and user routine 2, the following pairs are found: Spreadsheet System <-> Marketing System Marketing System <-> Email System Sales System <-> Email System Spreadsheet System <-> Sales System Marketing System <-> Sales System Marketing System<->API System API system <-> Email system
[0073] The following is an example of a set of criteria for finding a single data flow and rule out loops: Each pair must have a unique combination of external systems; Each external system can only exist in a maximum of two pairs; and There should be at least two external systems that appear only once in every pair.
[0074] 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 occur only once in all pairs. However, BC->CD->DB is a loop. In this example, B and D both occur in more than two pairs. With a good constraint algorithm, DB would be identified and eliminated according to the requirement that each external system can only occur in at most two pairs. This is provided as an example use of the constraint: BD in this example is not a chain and does not meet the 80% matching criteria for identical value changes.
[0075] The method does not aim to generate flows where an action node may have more than one downstream node. In other words, one of BC and BD will be deleted when forming the first flow template, and the deleted pair will become the second flow template. That is, the result will be Flow1:AB->BC plus Flow2:BD.
[0076] It can find the first flow in the first iteration. There can be many ways of deletion based on the constraints listed above. The one with the highest number of pairs, if there is a tie among the highest numbers one is chosen randomly. Spreadsheet System <-> Marketing System Marketing System <-> Email System (deleted) Sales System <-> Email System Spreadsheet System <-> Sales System (delete) Marketing System <-> Sales System Marketing System <-> API System (deleted) API System <-> Email System (deleted)
[0077] For the remaining data changes in the first iteration: Marketing System <-> Email System Spreadsheet System <-> Sales System Marketing System <-> API System API system <-> Email system
[0078] Another flaw is discovered: Marketing System <-> Email System (deleted) Spreadsheet System <-> Sales System (delete) Marketing System <-> API System API system <-> Email system
[0079] However, in a real use case there could be a different flow as well. Spreadsheet System <-> Marketing System Marketing System <-> Email System (deleted) Sales System <-> Email System (deleted) Spreadsheet System <-> Sales System (delete) Marketing System <-> Sales System (delete) Marketing System<->API System API system <-> Email system
[0080] and Marketing System <-> Email System (deleted) Sales System <-> Email System Spreadsheet System <-> Sales System Marketing System <-> Sales System (delete)
[0081] For each identical event change chain, the system will collect the timestamp of these changes through the system. For example, a change event for a data entry with email bob@company.com is added to the Sales, Marketing and Email services. bob@company.com: 12:10-Sales, 12:11-Email, 10:10-Marketing fred@company.com: 12:10-Sales, 12:09-Email, 7:00-Marketing jane@company.com: 12:11-Sales, 12:10-Email, 5:00-Marketing
[0082] Therefore, if all events are in the same order in time, the systems in a flow template are reordered. For example, to configure the flow for the example events shared above, the template must have the Marketing system ordered before Sales and Email. The order of Sales and Email is not important.
[0083] 4, a block diagram illustrates an embodiment of an example template provision system 150 provided in a computer system including at least one processor circuit 401, hardware modules or circuits for performing the functions of the described components, which may be software units executing on the at least one processor circuit. Multiple processor circuits operating parallel processing threads may be provided to enable parallel processing of some or all of the functions of the components. Memory 402 may be configured to provide computer instructions 403 to the at least one processor circuit 401 for performing the functions of the components.
[0084] The template providing system 150 interfaces with an integration server 140 for providing an integration flow 142, as described with reference to FIG.
[0085] The template provision system 150 includes components that provide functionality for the described methods. The template provision system 150 includes a user access component 451 that receives user permissions to collect data related to data change events in an external system over a time period, an external system monitoring component 452 for monitoring the external system, and a data change event component 453 for collecting data.
[0086] The template providing system 150 includes an event pair identification component 454 for identifying pairs of external systems that have identical data value changes in a data change event, a chain generation component 455 including a filtering component 456 for filtering event pairs based on predefined criteria, and an ordering component 457 for ordering systems within the event chain.
[0087] 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 alternatively, include a template matching component 459 for using the collected event chains for matching to an existing template integration flow.
[0088] FIG. 5 illustrates a block diagram of components for providing the integrated server 140 and the template providing system 150 of FIGS. 1-4 in accordance with an embodiment of the present invention. It should be understood that FIG. 5 provides only an example of one embodiment and does not imply any limitation with respect to the environment in which different embodiments may be implemented. Many modifications to the depicted environment are possible.
[0089] The computing system may include at least one processor circuit 502, at least one computer readable RAMs 504, at least one computer readable ROM 506, at least one computer readable recording medium 508, device drivers 512, a read / write drive or interface 514, and a communications adapter or interface 516, all interconnected through a communications function 518. The communications function 518 may be implemented in any architecture configured to pass data, or control information, or both, between processor circuits (such as microprocessors, communications and network processors).
[0090] 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 RAMs 504 (which typically include cache memory). In an exemplary embodiment, each computer-readable storage medium 508 may be an internal hard drive, a CD-ROM, a DVD, a memory stick, a magnetic tape, a magnetic disk, an optical disk, a semiconductor storage device such as a RAM, a ROM, an EPROM, a flash memory, or any other computer-readable storage medium capable of storing computer programs and digital information according to embodiments of the present invention.
[0091] The computing system may also include a R / W drive or interface 514 for reading from and writing to at least one portable computer-readable recording medium 526. Application programs 511 on the computing system may be stored on at least one portable computer-readable recording medium 526 and may be read via the respective R / W drive or interface 514 and loaded into the respective computer-readable recording medium 508.
[0092] The computing system may also include a network adapter or interface 516, such as a TCP / IP adapter card or a wireless communication adapter. Application programs 511 on the computing system may be downloaded from an external computer or external storage device via a network (e.g., the Internet, a local area network, or other wide area network, or a wireless network) and the network adapter 516. From the network adapter or interface 516, the programs may be loaded into the computer-readable recording medium 508. The network may include copper wire, optical fiber, wireless communication, routers, firewalls, switches, gateway computers, and edge servers.
[0093] The computing system may also include a display screen 520, a keyboard or keypad 522, and a computer mouse or touchpad 524. The device driver 512 interfaces to the display screen 520 for imaging, the keyboard or keypad 522, the computer mouse or touchpad 524, or the display screen 520 for pressure sensing input of alphanumeric characters and user selections, or a combination thereof. The device driver 512, the R / W drive or interface 514, and the network adapter or interface 516 may include hardware and software stored in the computer readable recording medium 508, or in the ROM 506, or both.
[0094] The present invention may be a system, method, or computer program product, or any combination thereof, at any possible level of technical detail integration. The computer program product may include a recording medium (or media) having computer-readable program instructions thereon for causing a processor to perform features of the present invention.
[0095] A computer readable recording medium may be any tangible device capable of holding and storing a plurality of instructions for use by an instruction execution device. A computer readable medium may be, for example, but not limited to, an electrical recording device, a magnetic recording device, an optical recording device, an electro-magnetic recording device, a semiconductor recording device, or any suitable combination thereof. Non-limiting examples of computer readable recording media include the following: portable computer disks, hard disks, random access memories (RAM), read-only memories (ROM), erasable programmable read-only memories (EPROMs or flash memories), static random access memories (SRAMs), portable compact disk read-only memories (CD-ROMs), digital versatile disks (DVDs), memory sticks, floppy disks, punch cards, or mechanically encoded devices having protruding structures within grooves that record the instructions, and any suitable combination thereof. As used herein, a computer-readable recording medium is not to be construed as a transitory signal per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves such as wave guides or other communications media (e.g., light pulses passing through fiber optic cable), or electrical signals communicated through wires.
[0096] The computer programs described herein can be downloaded from a computer readable recording medium into each computing / processing device, or can be downloaded to an external computer or external recording device via a network, such as the Internet, a local area network, a wide area network, or a wireless network, and combinations thereof. The network can include copper cables, fiber optics, wireless networks, routers, firewalls, switches, gateway computers, and edge servers, and combinations thereof. A network adapter card or network interface in each computing / processing device receives the computer readable program instructions from the network and transfers the computer readable program instructions into a computer readable recording medium in each computing / processing device for storage.
[0097] The computer readable program instructions for carrying out the operations of the present invention can be either source code or object code written in any combination of programming languages, including assembler instructions, instruction set architecture (ISA) instructions, machine language instructions, machine dependent instructions, microcode, firmware instructions, state setting data, configuration data for an integrated circuit, or one or more procedural programming languages, such as Smalltalk®, object oriented programming languages such as C++, the “C” programming language, or similar programming languages. The computer readable program instructions can be executed entirely on the user computer, partially on the user computer as a stand-alone software package, partially on the user computer and partially on a remote computer, or entirely on a remote computer or server. In the latter scenario, the remote computer can be connected to the user computer through any type of network, including a local area network (LAN), a wide area network (WAN), or the connection can be to an external computer (e.g., through an Internet service provider). In some embodiments, computer readable program instructions may be executed by electrical circuitry including, for example, a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA), and state information of the computer readable program instructions may be used to personalize the electrical circuitry to perform features of the present invention.
[0098] Aspects of the invention described herein have been described with reference to flowchart instructions and / or block diagrams of methods, apparatus (systems), and computer readable storage media and computer program products according to embodiments of the invention. It will be understood that any combination of flowchart illustrations and / or block diagrams and / or blocks in flowchart illustrations and / or block diagrams can be implemented by computer readable program instructions.
[0099] These computer readable program instructions can be provided to a general purpose computer, a special purpose computer, or other processor or other programmable data processing device to produce a machine, which when executed by the processor of the computer or other programmable data processing device produces means for implementing the functions / operations specified in the block or blocks of the flowcharts and block diagrams, or combinations thereof. These computer readable program instructions that direct a computer, programmable data processing device, and other device, or combinations thereof, to function in a particular manner can also be stored on a computer readable recording medium, and the computer readable recording medium having instructions stored therein constitutes an article of manufacture containing instructions that implement the functional / operational features specified in the block or blocks of the flowcharts and block diagrams, or combinations thereof.
[0100] The computer-readable program instructions may also be loaded onto a computer, other programmable data processing device, or other device, and cause the computer, other programmable device, or other device to execute a computer-implemented process for a series of operational steps to implement the functions / operations specified in the blocks or combinations of blocks of the flowcharts and block diagrams on the computer, other programmable device, or other device. The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and possible implementation operations of systems, methods, and computer programs according to various embodiments of the present invention. In this respect, the flowcharts or block diagrams may represent modules, segments, or portions of instructions, which include one or more executable instructions for implementing a particular logical function(s) (or functions). In some alternative implementations, the functions described in the blocks may be executed in a manner other than as illustrated. For example, two blocks shown in succession may be actually performed as one step, may be executed simultaneously, substantially simultaneously, partially or completely in a temporally overlapping manner, or the blocks may be executed in reverse order at times, depending on the functions involved. It is also noted that the block diagram and / or flowchart illustrations and / or combinations of blocks in block diagrams and flowchart illustrations can be implemented by special purpose hardware-based systems that perform particular functions or operations or execute special purpose hardware and computer instructions.
[0101] Cloud Computing
[0102] Although this disclosure includes details about cloud computing, the teachings referenced herein are not limited to a cloud computing environment, but rather the disclosed environment can be implemented in combination with any other type of computing environment now known or developed in the future.
[0103] Cloud computing is a service delivery model for on-demand network access with the convenience of accessing a shared pool of rapidly provisioned and open configurable computing resources (e.g., networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) with minimal administrative effort or interaction with a service provider. The cloud model can include at least five characteristics, at least three service models, and at least four deployment models.
[0104] Its features are as follows: On-Demand Self-Service: Cloud consumers are automatically provisioned with computing power - server time and network storage - on an as-needed basis without the need for human interaction with the service provider. Pervasive Network Access: Capabilities are available over the network and accessed through standard mechanisms facilitating use by different thin- and thick-client platforms (eg, mobile phones, laptops, and PDAs). Resource sharing: A provider's computing resources are shared to serve multiple consumers using a multi-tenant model, with different physical and virtualized resources dynamically allocated and reallocated as needed. A sense of location independence exists in that the consumer generally has no control or knowledge regarding the exact location (e.g., country, state, or data center) of the resources being provided, but rather the location can be specified at a high level of abstraction. Rapid Elasticity: Capabilities can be provisioned quickly and elastically, in some cases automatically, to quickly scale out and quickly release and quickly scale in. To the consumer, the features available for supply often appear unlimited and can be purchased in any quantity at any time. Metered Services: Cloud systems automatically control and optimize resource usage by leveraging metering capabilities at several levels of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled and reported to provide transparency to both providers and consumers of the services being used.
[0105] The service model is as follows: Software as a Service (SaaS): The functionality offered to the consumer is the use of the provider's applications running on a cloud infrastructure. Applications are accessible from a variety of client devices through thin-client interfaces such as web browsers (e.g., web-based email). The Consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, storage, or individual application functionality, except for limited user-specific application configuration settings. Platform as a Service (PaaS): The capability offered to a consumer is to deploy applications that the consumer has created or acquired, written using programming languages and tools supported by the provider, on a cloud infrastructure. The consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, or storage, but does control the deployed applications and, potentially, the configuration of the application hosting environment. Infrastructure as a Service (IaaS): The facility provided to the consumer is the provision of processing, storage, networking, and other basic computing resources on which the consumer can deploy and run any software, which may include operating systems and applications. Consumers do not manage or control the underlying cloud infrastructure, but have control over the operating system, storage, deployed applications, and possibly limited control over select networking components (e.g., host firewalls).
[0106] The deployment model is as follows: Private Cloud: The cloud infrastructure operates solely for one organization. It can be managed by that organization or a third party and can exist on-premises or off-premises. Community Cloud: The cloud infrastructure is shared by several organizations to support a specific community with common interests (e.g., mission, security requirements, policies, and compliance considerations). It can be managed by those organizations or by a third party and can exist on-premises or off-premises. Public Cloud: Cloud infrastructure is made available to the public or large industry groups and is owned by organizations that sell cloud services. Hybrid Cloud: A cloud infrastructure is a combination of two or more clouds (private, community, or public) that remain unique entities but are bound to each other by standardized or proprietary technologies that allow portability of data and applications (e.g., cloud bursting for load balancing between clouds).
[0107] Cloud computing environments are service-oriented with a focus on statelessness, loose coupling, modularity, and semantic interoperability. At the heart of cloud computing is the infrastructure, which contains multiple interconnected nodes.
[0108] FIG. 6 illustrates an exemplary cloud computing environment 50 . As shown, the cloud computing environment 50 includes one or more cloud computing nodes 10 with which local computing devices used by cloud consumers, such as a personal digital assistant (PDA) or cellular phone 54A, a desktop computer 54B, a laptop computer 54C, or an automobile computer system 54N, or combinations thereof, communicate. The nodes 10 can communicate with each other. These may be grouped physically or virtually in one or more networks, such as the private, community, public, or hybrid clouds described above, or a combination thereof (not shown). This allows the cloud computing environment 50 to provide an infrastructure, platform, or software-as-a-service for cloud consumers that eliminates the need to maintain resources on local computing devices. It will be understood that the types of computing devices 54A-N shown in FIG. 6 are for illustrative purposes only, and that the computing nodes 10 and the cloud computing environment 50 may communicate with any type of computerized device through any type of network or addressable network connection (e.g., using a web browser), or both.
[0109] Referring now to Figure 7, a set of functional abstraction layers provided by cloud computing environment 50 (Figure 6) is shown. It should be understood that the components, layers, and functions shown in Figure 7 are intended to be illustrative only, and that embodiments of the present invention are not limited thereto. As shown, the following layers and corresponding functions are provided:
[0110] The hardware and software layer 60 includes hardware and software components. Examples of the hardware components may include a mainframe 61, a plurality of servers based on a RISC (reduced instruction set computer) architecture 62, a plurality of servers 63, a plurality of blade servers 64, a plurality of storage devices 65, and a network and networking components 66. In some embodiments, the software components include network application server software 67 and database software 68.
[0111] The visualization layer 70 provides an abstraction layer from which embodiments of virtual entities, described below; virtual servers 71; virtual storage 72; virtual networks 73, including virtual private networks; virtual applications and operating systems 74; and virtual clients 75.
[0112] In one embodiment, the management layer 80 may provide the following functions: A resource provisioning unit 81 provides dynamic acquisition of computing resources and other resources used to perform tasks within the cloud computing environment. A metering and pricing unit 82 provides cost tracking as resources are used within the cloud computing environment and provides billing or charging for the consumption of these resources. In one embodiment, these resources may include application software licenses. A security unit provides identification and authentication of cloud consumers and tasks as well as protection of data and other resources. A user portal unit 83 provides accessibility to the cloud computing environment and system administrators for consumers. A service level management unit 84 provides allocation and management of cloud computing resources to meet required service levels. A service level agreement (SLA) planning and fulfillment unit 85 provides pre-provisioning and acquisition of cloud computing resources as future requests are required according to SLAs.
[0113] The workload layer 90 provides examples of functionality for utilizing a cloud computing environment. Examples of workloads and functionality provided by this layer may include mapping and navigation 91, software development and lifetime management 92, virtual classroom instruction delivery 93, data analytics processing 94, transaction processing 95, and integration flow template processing 96.
[0114] The computer program product of the present invention includes one or more computer readable hardware storage devices having computer readable program code therein, which, when executed by one or more processor circuits, implements the methods of the present invention.
[0115] The computer system of the present invention includes 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 including program code executable by the one or more processor circuits via the one or more memories to implement the methods of the present invention.
[0116] The description of various embodiments of the present disclosure has been presented for illustrative purposes, but is not intended to be exclusive or limited to the disclosed embodiments. Many modifications or variations will be obvious to those skilled in the art without departing from the scope and spirit of the present disclosure. The terms used in this specification are selected to best explain the principles of the present embodiments, practical applications, or technical improvements beyond the technology found in the market, or to allow others skilled in the art to understand the embodiments disclosed herein.
[0117] Improvements and modifications can be made without departing from the spirit of the invention.
Claims
1. 1. A computer-implemented method for providing a customized integration flow template, the method comprising: monitoring user interactions with a plurality of systems external to the integrated system to retrieve data changes in the external systems; identifying at least one event pair between two external systems having identical data change events in the two external systems; filtering at least one event pair for inclusion in the event chain; ordering the external system of the filtered event pairs within the event chain based on timestamps of the data change events; and Outputting a template of an integration flow based on an ordered external system of flow triggers and flow nodes, the sequence of event pairs defining at least one flow node.
4. A computer-implemented method comprising:
2. the same data change event occurs in response to multiple instances identified by the same data value entered into a field common to the two external systems having multiple one-to-one corresponding mappings of values of the data change. The method of claim 1.
3. identifying at least one event pair includes identifying a data change event of a respective external system and comparing the data change event with the data change events of other external systems, each event pair including a field in common with another identified event pair; The method of claim 1.
4. Further comprising receiving user access to user interactions for an account of an integrated system, the integrated system providing access to a plurality of external systems to read data changes for a predefined time period and capture user routines based on an integrated flow template. The method of claim 1.
5. filtering the at least one event pair includes limiting the identified event pairs to a group of event pairs that all include a common external system; The method of claim 1.
6. filtering at least one event pair includes filtering the event pair according to a predefined threshold of a value of a same data change of a same data change event of a referencing event pair and referencing the value of a same data change of the same data change event as an end point of the event chain; The method of claim 1.
7. Further, selecting an event pair having the highest value of the same data change in the same data change event as a reference event pair, The method according to claim 6.
8. filtering at least one event pair includes processing the discarded event pair to find a single data flow as a basis for the integration flow template and removing any loops; The method of claim 1.
9. Sequencing the external system includes: iterating through the data changes in the event chain for each end point of the event chain; and and generating a template of an integration flow by ordering the positions of the event pairs in the event chain by comparing the timestamps of multiple identical data change events. Including, The method according to claim 6.
10. further comprising processing any discarded event pairs to find another data flow as a basis for another integration flow template. The method according to claim 8.
11. and outputting a template of the integration flow includes matching the ordered external system with existing templates to select a template for use. The method of claim 1.
12. Outputting the integration flow template may include publishing the template for use by users of other integration systems. The method of claim 1.
13. 1. A system for providing a customized integration flow template, the system comprising: a processor circuit and a memory configured to provide computer program instructions to the processor circuit to perform the functions of the component; an external system monitoring component for monitoring user interactions with a plurality of external systems to the integrated system and retrieving data changes in the external systems; an event pair identification component that identifies at least one event pair between two external systems having identical data change events in the two external systems; a filtering component that filters at least one event pair for inclusion in the event chain; an ordering component that orders the external system of the filtered event pairs in the event chain based on a timestamp of the data change event; a template output component that outputs a template of an integration flow based on an ordered external system of flow triggers and flow nodes, the sequence of event pairs defining at least one flow node; A system including:
14. The event pair identification component includes: Identifying data change events in each external system; and comparing the data change events with the data change events of other external systems; Each event pair includes a field that is common to another identified event pair. The system of claim 13.
15. and a user access component that receives user access to user interactions for an account of an integrated system, the integrated system providing access to a plurality of external systems to read data changes for a predefined time period and capture user routines based on an integrated flow template. The system of claim 13.
16. The filtering component: restricting the identified event pairs to groups of event pairs that all involve a common external system; and filtering the event pairs according to a predefined threshold of values of identical data change events of the same data change events of the event pairs to be referenced, and referencing the values of identical data change events of the same data change events as end points of the event chain; The system of claim 13 , comprising:
17. The filtering component comprises: Processing the discarded event pairs to find a single data flow as a basis for an integration flow template and removing any loops; and Processing any discarded event pairs to find another data flow as the basis for another integration flow template Including, The system of claim 13.
18. The ordering component includes: iterating through the data changes in the event chain for each end point of the event chain; and and generating a template of an integration flow by ordering the positions of the event pairs in the event chain by comparing the timestamps of multiple identical data change events. Including, 17. The system of claim 16.
19. The template output component includes: Matching the ordered external systems to existing templates and selecting a template for use. Publish the template for use by users of other integrated systems Including, The system of claim 13.
20. 1. A computer program product for providing a customized integration flow template, the computer program product comprising: monitoring user interactions with a plurality of systems external to the integrated system to retrieve data changes in the external systems; identifying at least one event pair between two external systems having identical data change events in the two external systems; filtering at least one event pair for inclusion in an event chain; ordering the external system of the filtered event pairs within the event chain based on timestamps of the data change events; and Outputting a template of an integration flow based on an ordered external system of flow triggers and flow nodes, the sequence of event pairs defining at least one flow node. Execute the Computer program.
Citation Information
Patent Citations
Pattern detecting program
JP2006004346A
Device and method for setting business process
JP2008009966A
Service connection information generation system, method, and program
JP2008210227A
Generic workflow-based routing
JP2009505218A
Method and Apparatus for On-Demand Synthesis and Decomposition of Service Infrastructure
JP2009540469A
