GB2528949A - Providing dynamic latency in an integration flow - Google Patents
Providing dynamic latency in an integration flow Download PDFInfo
- Publication number
- GB2528949A GB2528949A GB1413977.8A GB201413977A GB2528949A GB 2528949 A GB2528949 A GB 2528949A GB 201413977 A GB201413977 A GB 201413977A GB 2528949 A GB2528949 A GB 2528949A
- Authority
- GB
- United Kingdom
- Prior art keywords
- latencies
- repeat
- repeat node
- node
- repeats
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
A workload manager component manages an integration flow connecting multiple integration nodes and including at least one repeat node. The repeat node may repeat by sending a message, a variation of a message, or an element of a message to multiple paths or to a single path multiple times; registering a repeat node for monitoring with the workload manager component; collecting data relating to the effect on performance by the integration flow including the monitored repeat node; determining required latencies or variations of latencies between firing of repeats of the repeat node based on the collected data; instructing the latencies or variations of latencies between firing of the repeats of the repeat node to influence dynamically a flow of elements through the repeat node. Priority may be used to weight latency, and its affect on applications assessed, by collecting data from systems resources, applications or resources in the integration flow and service level agreement components for a service orientated architecture using an enterprise service bus.
Description
PROVIDING DYNAMIC LATENCY IN AN INTEGRATION FLOW
FIELD OF INVENTION
[0001] This invention relates to the field of integration flows. In particular, the invention relates to providing dynamic latency in integration flows.
BACKGROUND
[0002] An enterprise service bus (ESB) is a software architecture model used for designing and implementing communication between mutually interacting software applications in a service-oriented architecture (SOA), As a software architectural model for distributed computing, it is a specialty variant of the more general client server model and promotes agility and flexibility with regards to communication between applications.
[0003] Integration flows typically integrate two or more applications and are constructed by connecting multiple integration nodes together. A common integration pattern is an aggregation, in such a pattern an incoming message enters an aggregation node (such as a fan out node) which may then send the message down multiple paths or may propagate the message down the same path multiple times [0004] Aggregation design pattern enables a single inbound request to map into multiple outbound service invocations, the responses from which can be aggregated into a single response to the original request. Aggregation design patterns are often utilised in ESB solutions to implement applications processing batch requests, These are often deployed to systems processing real time traffic and can have a negative impact on the responsiveness of the applications serving the requests.
[0005] In typical batch processing applications, the logic and messages are complex, potentially a single message may be several MB in size and result in lOOs of iterations each with database inserts or invocations of external services, for example. Processing these can have significant impact on other applications running within the same process.
[0006] Current solutions include throttling the batch processing applications by restricting the thread pool it mns in. Other solutions use workload placement of batch processing applications on separate processes (for example, additional cluster/cluster member).
[0007] Therefore, there is a need in the art to address the aforementioned problem.
BRIEF SUMMARY OF THE INVENTION
[0008] According to a first aspect of the present invention there is provided a method for providing dynamic latency in an integration flow carried out by a workload manager component, comprising: managing an integration flow connecting multiple integration nodes and including at least one repeat node, wherein a repeat node repeats by sending a message, a variation of a message, or an element of a message to multiple paths or to a single path multiple times; registering a repeat node for monitoring with the workload manager component; collecting data relating to the effect on performance by the integration flow including the monitored repeat node; detennining required latencies or variations of latencies between firing of repeats of the repeat node based on the collected data; and instmcting the latencies or variations of latencies between firing of the repeats of the repeat node to influence dynamically a flow of elements through the repeat node.
[0009] The method may include: determining a priority of a repeat of a repeat node based on a priority of an incoming message; and weighting the latency for the repeats for the message based on the priority.
[00010] The step of determining required latencies or variations of latencies may be based on the impact of repeats of the repeat node on applications as determined by the collected data. The applications may be in the integration flow or in other integration flows, The step of determining required latencies or variations of latencies may be additionally or alternatively based on the impact of repeats of the repeat node on components downstream of the integration flow as detennined by the collected data.
[00011] The step of collecting data on the effect on performance may collect data from one or more of system resources, including applications or resources in the integration flow and in other integration flows, and applications or resources in systems effected by the repeat node, service level agreement components, and application metrics.
[000 12] The workload manager component may be an external component and instructing a latency may provide additional code to the repeat node.
[00013] The steps of collecting data relating to the effect on performance by the integration flow including the monitored repeat node, and determining required latencies between firing of repeats of the repeat node based on the collected data may include: determining if one or more applications in a system or downstream of the system is reaching a predefined threshold of performance; and instmcting latencies in repeats of the repeat node for one or more applications. The method may also include learning correlations between instructed latencies in a particular repeat node and the effect on performance of applications.
The applications may be real time traffic serving applications and thresholds are set in service level agreements.
[00014] In one embodiment, the integration flow is an aggregation pattern and the repeat node is an aggregation node. The repeat node may be an aggregation node with branching or iterating repeats.
[00015] The step of instructing the latencies may interrupt repeats of a repeat node to throttle batch processing to provide a regulated flow of elements.
[00016] According to a second aspect of the present invention there is provided a system for providing dynamic latency in an integration flow, comprising: an integration flow connecting multiple integration nodes and including at least one repeat node, wherein a repeat node repeats by sending a message, a variation of a message, or an element of a message to multiple paths or to a single path multiple times; a workload manager component including: a node registering component for registering the repeat node for monitoring with the workload manager component; a workload data collecting component for collecting data relating to the effect on performance by the integration flow including the monitored repeat node; a latency determining component for determining required latencies or variations of latencies between firing of repeats of the repeat node based on the collected data; and a latency instructing component for instructing latencies or variations of latencies between firing of the repeats of the repeat node to influence dynamically a flow of elements through the repeat node.
[00017] The workload manager component may include: a priority detennining component for determining a priority of a repeat of a repeat node based on a priority of an incoming message; and a priority weighting component for weighting the latency for the repeats for the message based on the priority.
[00018] The latency determining component may determine required latencies or variations of latencies based on the impact of repeats of the repeat node on applications. The latency determining component may also or alternatively determine required latencies or variations of latencies based on the impact of repeats of the repeat node on components downstream of the integration flow.
[00019] The workload data collecting component may collect information from one or more of: system resources, including applications or resources in the integration flow or in other integration flows, and applications or resources in systems effected by the repeat node, service level agreement components, and application metrics, [00020] The workload manager component may be an external component and the latency instructing component may instruct latencies by providing additional code to the repeat node.
[00021] In one embodiment, the integration flow may be an aggregation pattern and the repeat node is an aggregation node. The repeat node may be an aggregation node with branching or iterating repeats.
[00022] According to a third aspect of the present invention there is provided a computer program product for providing dynamic latency in an integration flow, the computer program product comprising: a computer readable storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a method according to the first aspect of the present invention, [00023] According to a fourth aspect of the present invention there is provided a method substantially as described with reference to the figures.
[00024] According to a fifth aspect of the present invention there is provided a system substantially as described with reference to the figures.
[00025] The described aspects of the invention provide the advantage of enabling workload management products to restrict the impact of batch processing applications when real time traffic serving application responsiveness approaches defined thresholds,
BRIEF DESCRIPTION OF THE DRAWINGS
[00026] The subject matter regarded as the invention is particularly pointed out and distinctly claimed in the concluding portion of the specification. The invention, both as to organization and method of operation, together with objects, features, and advantages thereof may best be understood by reference to the following detailed description when read with the accompanying drawings.
[00027] Preferred embodiments of the present invention will now be described, by way of example only, with reference to the following drawings in which: Figure 1 is a schematic diagram of an embodiment of an integration flow in accordance with the present invention; Figure 2 is a flow diagram of an example embodiment of a method in accordance with the present invention; Figure 3 is a flow diagram of an example embodiment of an aspect of a method in accordance with the present invention; Figure 4 is block diagram of an example embodiment of a system in accordance with the present invention; and Figure 5 is a block diagram of an embodiment of a computer system in which the present invention may be implemented.
[00028] 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 numbers may be repeated among the figures to indicate corresponding or analogous features.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[00029] In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the invention. However, it will be understood by those skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known methods, procedures, and components have not been described in detail so as not to obscure the present invention.
[00030] Method and system are provided for introducing a point of reference or registration in an integration flow at an aggregation node to enable a workload management component to restrict the impact of batch processing applications. An aggregation node is a form of repeat node in that it carries out repeat processing of an element. The term "repeat node" is used herein to describe aggregation nodes and other forms of nodes or primitives which carry out repeat processing of elements. Different ESB products refer to such repeat nodes by different names, such as fan out nodes, for example.
[00031] The impact of batch processing applications may be restricted using the described method when real time traffic serving application responsiveness approaches defined thresholds.
[00032] The described method proposes additional logic in a repeat node that can be influenced dynamically to introduce latency between firing of the output terminals.
[00033] Repeat nodes will often iterate over repeating elements and execute the same logic on each individual piece, possibly invoking a back end service with each discrete section of the incoming data.
[00034] A user may configure a repeat node to be able to be influenced by external code, such as workload management processes, which may then intermpt the iteration logic to essentially throttle the batch processing application when the service levels of real-time applications are being impacted.
[00035] This method may be applied to any repeat nodes including aggregation nodes which are iterative nodes or nodes with branching out terminals. One embodiment of an implementation is fan out nodes/primitives within mediation flows.
[00036] An extension to the described method may be that message priority is taken into account, such that a normal priority message may experience the defined latency (for example, I second) but a high priority message may only be exposed to a fraction of the defined latency or no latency dependency (for example, on a user defined policy).
[00037] The described method enables repeat nodes such as iterative or branching nodes to be dynamically modified for workload management by external code to throttle batch processing work.
[00038] Referring to Figure 1, a schematic diagram shows an example integration flow [00039] An integration flow typically integrates two of more applications and is constructed by connecting multiple integration nodes together. A common integration pattern is an aggregation in which messages are processed by an aggregation block 120. In such a pattern, an incoming message 111 or a modified incoming message enters a repeat node 112 which may then send the message, a modified version of the message, or elements of the message down multiple paths 121-123 perhaps invoking multiple service providers 13] -133.
[00040] In another form of repeat node, it may propagate the message, a modified version of the message, or elements of the message down the same path multiple times using different content from the data for each "fire" (for instance, an inbound "batch" message with hundreds of entries, each entry being sent to a database separately).
[00041] At the other end of the aggregation block 120, an optional correlation node 113 is used to correlate all the response messages into a single message 114.
[00042] A simple pseudo-code example of a repeat node in the form of a fan out node public class FanOut { public void process(Message request) foreach Element repeatingElement: request Message outputMessage = new Message(request); outputMessage. setAggregationContext(repeatingElement); outputTerminal.fire(outputMessage); [00043] The described method provides the following example, the repeat node is registered with the workload manager (who is aware of this class of object) who can then modify the "sleepTime" through the notifyPropertyChange listener method, The amended code showing the described method is underlined: public class FanOut extends Listener ( private mt sleepTime; static WorkloadManager.register(thist II Register with the workload manager
I
(Ovenide public notifyPropertyChange(Sthng name, Object value) if name.eciuaisC'sleepTime") 1 this,sleepTime = ((lnteger)valuegetIntfl
I
public void process(Message request) { foreach Element repeatingElement: request ThreaisleepsleepTime): Message outputMessage = new Message(request); outputMessage. setAggregationC ontext(repeatingElement); outputTerminal.fire(outputTvlessage); [00044] Referring to Figure 2, a flow diagram 200 shows an embodiment of the described method.
[00045] A repeat node 210 (for example, an aggregation node) may be provided and may receive an incoming message 211, optionally including a priority weighting of the message.
The repeat node 210 may fire an output 212 for an element of the message. The repeat node 210 may determine 213 if there are more elements to repeat by iteration or branching at the node. If there are no more elements, the process at the repeat node 210 ends 214.
[00046] The described process inserts a latency 215 for each repeat at the repeat node 210 which is applied to the fired output 212 for the element or message.
[00047] Optionally, a priority of a message maybe obtained from the incoming message 211 and a priority weighting applied to the latency 215 for all elements of the message.
[00048] The latency 215 may be applied by a workload manager 216 which takes input from various components such as service level agreements 217, system resources 218 and application metrics 219.
[00049] With regards to message priority, inbound messages may have a priority defined (for instance according to the Java Message Service (JTIVIS) specification) -for example lets assume 1-5 (1 being highest priority and 5 being lowest priority). A sleepTime (latency) taking the priority into account may be defined as follows: message latency = (priority / maxPriority) * sleepTime [00050] For a 2 second defined "sleepTime" via the Workload Manager to manage resources / strain on the system, the priorities would experience the following latency between each record: Priority Latency (s) 2 0.8 4 1.6 2 [00051] Referring to Figure 3, a flow diagram 300 shows an embodiment of a method as carried out at the workload manager.
[00052] A workload manager may manage 3W an integration flow with at least one repeat node which may be a branching node which repeats by sending an element to multiple paths or an iterating node which repeats by sending an element to a single path multiple times.
[00053] The workload manager may register 302 a repeat node for monitoring and may collect 303 data on the impact of the integration flow including the monitored repeat node.
The impact may be the effect on performance by the integration flow. The data may be collected 303 from: applications or resources in the integration flow; co-located applications or resources, applications or resources downstream from the integration flow, for example, other applications on the system (i.e. the real time traffic serving applications) that may be effected by the batch processing due to shared system resources; service level agreements; and other sources.
[00054] Optionally, the workload manager may determine 304 a priority of an input message. Different elements of an input message would have the same priority. However, different messages may have different priorities.
[00055] The workload manager may determine 305 required latencies between firing of repeats of the repeat node. The required latencies may be determined to ensure the performance of a workflow which includes the repeat node. In one embodiment, it may be determined if a predetermined threshold is being approached in real time traffic serving application responsiveness.
[00056] Optionally, the latencies may be weighted 306 based on the priority of an incoming message. For example, Message 1 (priority 1) has a 0.4 second latency between fire operations of the output terminals for each repeat; however, Message 2 (priority 2) has a 0.8 second latency between each fire operation of the output terminals of each repeat.
[00057] The workload manager may instruct 307 the latencies or variation of an existing latency between firing of repeats in the repeat node. In one embodiment, the variation of latency between firing of repeats may be instructed by incrementing or decrementing a counter indicating applying more or less latency.
[00058] In one embodiment of the step 305 of determining required latencies, the workload manager may be monitoring the service level agreements (SLA) of applications when a predetermined threshold is reached.
[00059] For example, the SLA that response times for application 1 be less than 1 second is only just being met, the threshold 90?/b of the SLA was passed and now the average latency is 0.9 seconds.
[00060] The workload manager determines that it needs to try to improve the responsiveness of "application 1" to bring the response times back down to a safer level. It happens that "batch application 2" started processing just as the response times from "application 1" started to increase. From the application and service level agreement monitoring it is possible to see the correlation between the "application 1" response times increasing and "batch application 2" starting to process messages. If there were more than one potential source of the increasing response times, the workload manager may instruct latency increments on more than one "batch application".
[0006t] The workload manager may now increment the sleep time of the registered repeat node in "batch application 2" by a defined increment (00ms for instance). Additional subsequent increments may be required depending on whether the instructed latency does not provide enough improvement to the response times on "application 1".
[00062] Similarly, if a lower threshold is met (i.e. application I response time drops below 0,5 seconds), the workload manager may begin lifting / reducing instructed latencies on registered repeat nodes.
[00063] The system may also be able to learn over time what instructed latencies in particular repeat nodes have on real time traffic applications. For example, when system resources are w, and workload is x, increasing latency on repeat node a by y reduces response time of application b by z. In this way, the system may learn over time what initial latencies to instruct under certain situations.
[00064] Referring to Figure 4, a block diagram shows an embodiment of the described system 400, [00065] A flow process component 410 is shown with a repeat node 420. The repeat node 420 may include a repeat component 421 for determining if there is a next repeat of the process of the node. The repeat node 420 may also include a priority determining component 422 for determining a priority allocated to a message. The repeat node 420 may also include a latency applying component 423 for adding a latency to a specific repeat of the process.
[00066] The system 400 may include a workload manager component 440 which monitors and has input from various external components including service level agreement components 451, system resources 452, and application metric components 453, [00067] The workload manager component 440 may include a node registering component 441 for registering a repeat node 420 for monitoring and latency applying. A workload data collecting component 442 may collect data from the various external components being monitored.
[00068] The workload manager component 440 may include a priority determining component 443 for receiving a priority for a message from a priority determining component 422 of the repeat node 420. The workload manager component 440 may include a priority weighting component 444 for applying a priority weighting to determined latencies for the repeats of the repeat node 420.
[00069] The workload manager component 440 may also include a latency determining component 445 for determining a latency to be applied to a specific repeat at the repeat node 420. The latency determining component 445 may determine the latency for a specific repeat based on the inputs from the external components 451-452 and from the priority weighting component 444.
[00070] The workload manager component 440 may include a latency instructing component 446 which instmcts the latency applying component 423 of the repeat node 420 of the determined latency for specific repeats at the repeat node [00071] The method is not limited to introducing latency when responsiveness of other co-located applications are being effected. It may also be utilised if downstream components are determined to be a bottleneck and can only service a certain throughput.
[00072] For example, if an external service being invoked is only be able to service I message per second and if the request entering the aggregation block has 100 elements, then it may be beneficial to apply I second latency between each iteration to limit the number of requests reaching the external service to I per second.
[00073] As described in the background, in typical batch processing applications the logic and messages may be complex. A single message may be several MB in size and may result in bUs of iterations each with database inserts or invocations of external services, for example. Processing these can have significant impact on other applications running within the same process or on the same or shared system. The described method uses external code (for example, a workload management component) to detect this and be able to influence the repeat node to introduce a latency (for example, looms) enabling concurrently running applications to have more processor time and resources available to them, thereby improving their observed responsiveness.
[00074] The described method and system address the technical problem of the impact of batch processing in integration flows on applications, particularly applications with real time traffic processing. Dynamically providing latencies in one or more repeat nodes in an integration flow can dynamically control the throughput of messages and the performance of applications in the integration flow.
[00075] Referring to Figure 5, an exemplary system for implementing aspects of the invention includes a data processing system 500 suitable for storing and/or executing program code including at least one processor 501 coupled directly or indirectly to memory elements through a bus system 503. The memory elements may include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution.
[00076] The memory elements may include system memory 502 in the form of read only memory (ROM) 504 and random access memory (RAM) 505, A basic input/output system (BIOS) 506 maybe stored in ROM 504. System software 507 may be stored in RAM 505 including operating system software 508, Software applications 510 may also be stored in RAM 505, [00077] The system 500 may also include a primary storage means 511 such as a magnetic hard disk drive and secondary storage means 512 such as a magnetic disc drive and an optical disc drive. The drives and their associated computer-readable media provide non-volatile storage of computer-executable instructions, data structures, program modules and other data for the system 500. Software applications may be stored on the primary and secondary storage means 511, 512 as well as the system memory 502.
[00078] The computing system 500 may operate in a networked environment using logical connections to one or more remote computers via a network adapter 56.
[00079] Input/output devices 513 may be coupled to the system either directly or through intervening I/O controllers. A user may enter commands and information into the system 500 through input devices such as a keyboard, pointing device, or other input devices (for example, microphone, joy stick, game pad, satellite dish, scanner, or the like). Output devices may include speakers, printers, etc. A display device 514 is also connected to system bus 503 via an interface, such as video adapter 515.
[00080] The present invention may be a system, a method, and/or a computer program product. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention.
[00081] The 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 may 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 mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded 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.
[00082] 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 may 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.
[00083] Computer readable program instructions for carrying out operations of the present invention may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, 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 may 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 may 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 may 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 arrays (FPGA), or programmable logic arrays (PLA) may 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 invention.
[00084] Aspects of the present invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention, It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer readable program instructions, [00085] These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor 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 may 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 instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks, [00086] The computer readable program instructions may 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.
[00087] The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or cany out combinations of special purpose hardware and computer instructions, [00088] Improvements and modifications can be made to the foregoing without departing from the scope of the present invention.
Claims (22)
- CLAIMSA method for providing dynamic latency in an integration flow carried out by a workload manager component, comprising: managing an integration flow connecting multiple integration nodes and including at least one repeat node, wherein a repeat node repeats by sending a message, a variation of a message, or an element of a message to multiple paths or to a single path multiple times; registering a repeat node for monitoring with the workload manager component; collecting data relating to the effect on performance by the integration flow including the monitored repeat node; detenriining required latencies or variations of latencies between firing of repeats of the repeat node based on the collected data; and instructing the latencies or variations of latencies between firing of the repeats of the repeat node to influence dynamically a flow of elements through the repeat node.
- 2. The method as claimed in claim 1, including: determining a priority of a repeat of a repeat node based on a priority of an incoming message; and weighting the latency for the repeats for the message based on the priority.
- 3, The method as claimed in claim I or claim 2, wherein determining required latencies or variations of latencies is based on the impact of repeats of the repeat node on applications as determined by the collected data.
- 4. The method as claimed in claim any one of claims ito 3, wherein determining required latencies or variations of latencies is based on the impact of repeats of the repeat node on components downstream of the integration flow as determined by the collected data.
- 5. The method as claimed in any one of the preceding claims, wherein collecting data on the effect on performance collects data from one or more of: system resources, including applications or resources in the integration flow and in other integration flows, and applications or resources in systems effected by the repeat node, service level agreement components, and application metrics,
- 6. The method as claimed in any one of the preceding claims, wherein the workload manager component is an external component and instructing a latency provides additional code to the repeat node.
- 7, The method as claimed in any one of the preceding claims, wherein collecting data relating to the effect on performance by the integration flow including the monitored repeat node and determining required latencies between firing of repeats of the repeat node based on the collected data, includes: determining if one or more applications in a system or downstream of the system is reaching a predefined threshold of performance; instructing latencies in repeats of the repeat node for one or more applications.
- 8. The method as claimed in claim 7, including: learning correlations between instructed latencies in a particular repeat node and the effect on performance of applications.
- 9. The method as claimed in claim 7 or claim 8, wherein the applications are real time traffic serving applications and thresholds are set in service level agreements.
- 10. The method as claimed in any one of the preceding claims, wherein the integration flow is an aggregation pattern and the repeat node is an aggregation node with branching or iterating repeats.
- 11. The method as claimed in any one of the preceding claims, wherein instructing the latencies interrupts repeats of a repeat node to throttle batch processing to provide a regulated flow of elements.
- 12. A system for providing dynamic latency in an integration flow, comprising: an integration flow connecting multiple integration nodes and including at least one repeat node, wherein a repeat node repeats by sending a message, a variation of a message or an element of a message to multiple paths or to a single path multiple times; a workload manager component including: a node registering component for registering the repeat node for monitoring with the workload manager component; a workload data collecting component for collecting data relating to the effect on performance by the integration flow including the monitored repeat node; a latency determining component for determining required latencies or variations of latencies between firing of repeats of the repeat node based on the collected data; and a latency instmcting component for instmcting latencies or variations of latencies between firing of the repeats of the repeat node to influence dynamically a flow of elements through the repeat node.
- 13. The system as claimed in claim 12, wherein the workload manager component includes: a priority determining component for determining a priority of a repeat of a repeat node based on a priority of an incoming message; and a priority weighting component for weighting the latency for the repeats for the message based on the priority.
- 14. The system as claimed in claim 12 or claim 13, wherein the latency determining component determines required latencies or variations of latencies based on the impact of repeats of the repeat node on applications.
- 15, The system as claimed in any one of claims 12 to 14, wherein the latency determining component determines required latencies or variations of latencies based on the impact of repeats of the repeat node on components downstream of the integration flow,
- 16. The system as claimed in any one of claims 12 to 15, wherein the workload data collecting component collects information from one or more of: system resources, including applications or resources in the integration flow and in other integration flows, and applications or resources in systems effected by the repeat node, service level agreement components, and application metrics,
- 17. The system as claimed in any one of claims 12 to 16, wherein the workload manager component is an external component and the latency instructing component instructs latencies by providing additional code to the repeat node.
- 18. The system as claimed in any one of claims 12 to 17, wherein the integration flow is an aggregation pattern and the repeat node is an aggregation node.
- 19. The system as claimed in claim 18, wherein the repeat node is an aggregation node with branching or iterating repeats,
- 20. A computer program product for providing dynamic latency in an integration flow, the computer program product comprising: a computer readable storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a method according to any of claims ito 11.
- 21. A method substantially as described with reference to the figures.
- 22. A system substantially as described with reference to the figures.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1413977.8A GB2528949B (en) | 2014-08-07 | 2014-08-07 | Providing dynamic latency in an integration flow |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1413977.8A GB2528949B (en) | 2014-08-07 | 2014-08-07 | Providing dynamic latency in an integration flow |
Publications (3)
Publication Number | Publication Date |
---|---|
GB201413977D0 GB201413977D0 (en) | 2014-09-24 |
GB2528949A true GB2528949A (en) | 2016-02-10 |
GB2528949B GB2528949B (en) | 2016-06-29 |
Family
ID=51629424
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
GB1413977.8A Active GB2528949B (en) | 2014-08-07 | 2014-08-07 | Providing dynamic latency in an integration flow |
Country Status (1)
Country | Link |
---|---|
GB (1) | GB2528949B (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107958032A (en) * | 2017-11-20 | 2018-04-24 | 北京工商大学 | A kind of effective dynamic network node influence power measure |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140059204A1 (en) * | 2012-08-24 | 2014-02-27 | Filip Nguyen | Systems and methods for providing message flow analysis for an enterprise service bus |
-
2014
- 2014-08-07 GB GB1413977.8A patent/GB2528949B/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140059204A1 (en) * | 2012-08-24 | 2014-02-27 | Filip Nguyen | Systems and methods for providing message flow analysis for an enterprise service bus |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107958032A (en) * | 2017-11-20 | 2018-04-24 | 北京工商大学 | A kind of effective dynamic network node influence power measure |
CN107958032B (en) * | 2017-11-20 | 2020-11-13 | 北京工商大学 | Effective dynamic network node influence measuring method |
Also Published As
Publication number | Publication date |
---|---|
GB201413977D0 (en) | 2014-09-24 |
GB2528949B (en) | 2016-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10320623B2 (en) | Techniques for tracking resource usage statistics per transaction across multiple layers of protocols | |
US10241843B2 (en) | Application processing allocation in a computing system | |
US10608915B2 (en) | Providing dynamic latency in an integration flow | |
US10027777B2 (en) | Web page pre-loading optimization | |
US10552247B2 (en) | Real-time monitoring alert chaining, root cause analysis, and optimization | |
US9998393B2 (en) | Method and system for managing resource capability in a service-centric system | |
US11150999B2 (en) | Method, device, and computer program product for scheduling backup jobs | |
WO2015101091A1 (en) | Distributed resource scheduling method and device | |
US9059941B1 (en) | Providing router information according to a programmatic interface | |
US9590873B2 (en) | Composite service pre-provisioning | |
US9471389B2 (en) | Dynamically tuning server placement | |
US11848983B2 (en) | Remotely discover and map a network resource model in a cloud environment | |
US8275882B2 (en) | System and method for goal driven threshold setting in distributed system management | |
US10838845B2 (en) | Processing failed events on an application server | |
GB2528949A (en) | Providing dynamic latency in an integration flow | |
US11526499B2 (en) | Adaptively updating databases of publish and subscribe systems using optimistic updates | |
US20210281629A1 (en) | Processing of web-based applications | |
US9716640B2 (en) | Managing isolation requirements of a multi-node workload application | |
CN106484536B (en) | IO scheduling method, device and equipment | |
US11016874B2 (en) | Updating taint tags based on runtime behavior profiles | |
US20240103903A1 (en) | Dynamic pod priority inference utilizing service mesh telemetry data | |
US10884832B2 (en) | Aggregation messaging within an integration environment | |
US10025635B2 (en) | Adaptive scheduling policy for jobs submitted to a grid | |
CN114185682A (en) | Log output method and device, electronic equipment and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
746 | Register noted 'licences of right' (sect. 46/1977) |
Effective date: 20160708 |