Database connection management for integrated streams in cloud environment

By introducing the public name data source mechanism of internal data sources and integrated stream data sources into the integration platform, database connections are reasonably allocated, and the connection competition problem between integrated stream workers and internal services is solved, and efficient utilization of database connections and system stability is achieved.

CN120448087APending Publication Date: 2025-08-08SAP SE
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411252495.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2024-02-06
Filing Date
2024-09-09
Publication Date
2025-08-08

AI Technical Summary

Technical Problem

In a cloud environment, the usage time of the database connection between the integrated stream worker and the internal service is different, resulting in the internal service receiving the connection timeout exception, affecting its function, and thus affecting the execution of the integrated stream worker.

Method used

The internal data source and integrated stream data source are logically implemented as public name data sources. According to the initiator of the request, the connection request is directed to the corresponding data source, ensuring that both internal services and integrated streams can effectively obtain database connections, and reasonably allocate database connections through the management of integrated stream connection pools and reserved connection pools.

Benefits of technology

It effectively solves the connection competition problem between internal services and integrated flows, ensures efficient utilization of database connections, avoids connection timeout exceptions, and improves system stability and performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120448087A_ABST
    Figure CN120448087A_ABST
Patent Text Reader

Abstract

Various examples described herein relate to an integrated platform system. The integrated platform system may include a database management system and an integrated flow worker. The integrated stream worker may include an integrated stream data source and an internal data source. An ensemble flow worker may receive a first connection request for a database management system from a first ensemble flow. The integration flow operator may assign a first connection from the pool of integration flow connections to a first integration flow. The integrated flow worker may receive a second connection request from the internal service that describes a second operation to be performed at the database management system and allocates a reserved connection to the internal service.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] An integration platform is a software application or set of software applications that is configured to integrate messaging between different sets of software applications. For example, the integration platform can receive a message sent by one software application, called a sender component, and route the message to another software application, called a receiver component. The integration platform can perform various transformations on the message from the sender component so that the message can be successfully read and processed by the receiver component. In some examples, the integration platform is configured to poll the sender component to retrieve messages to be sent to the receiver component. BRIEF DESCRIPTION OF THE DRAWINGS

[0002] The present disclosure is illustrated by way of example and not limitation in the following figures.

[0003] Figure 1 is a diagram illustrating one example of an environment including an integration platform, a database management system, and various sending and receiving software components.

[0004] Figure 2 is a flow chart illustrating one example of a process flow that can be performed by an integration flow worker to handle a connection request from an integration flow or an internal service to access a database management system.

[0005] Figure 3 is a flowchart illustrating one example of a process flow that may be performed by an integration flow worker upon receiving a connection request from an integration flow.

[0006] Figure 4 is a flow chart illustrating one example of a process flow that may be performed by an integration flow worker upon receiving a connection request from an internal service.

[0007] Figure 5 is a flow chart illustrating another example of a process flow that may be performed by an integration flow worker when a connection request is received from an internal service.

[0008] Figure 6 is a block diagram illustrating one example of an architecture for a computing device.

[0009] Figure 7 is a block diagram of a machine in the example form of a computer system within which instructions may be executed to cause the machine to perform any one or more of the methodologies discussed herein. DETAILED DESCRIPTION

[0010] An integration platform (such as the SAP Cloud Integration product available from SAP SE of Walldorf, Germany) can be configured to perform various operations to facilitate the exchange of messages between one or more sender components and one or more receiver components. For example, the integration platform can be programmed to route messages from a sender component to a receiver component. The integration platform can also be programmed to convert messages from a format received from the sender component to a format expected by the receiver component. In some examples, the integration platform can also manage the configuration of the sender system and / or the receiver system. For example, the integration platform can manage the sending component to configure user accounts associated with sent messages, permissions associated with sent messages, messaging policies, etc. The integration platform can also configure the receiver system, for example, by specifying endpoints for various messages, credentials for accessing the receiver system with messages, etc.

[0011] Consider the example of an enterprise operating source systems that generate and / or consume master data. The enterprise may wish to make the master data available to other destination systems. The enterprise can leverage an integration platform as middleware to replicate the master data so that new states defined by the master data are also updated on the destination systems. In some examples, the enterprise utilizes the integration platform to integrate between multiple sets of sending and receiving components. For example, the enterprise may wish to integrate between software components used for different tasks, including, for example, different database components, different enterprise resource planning components, and so on. Each integration between one or more specific sending components and one or more specific receiving components can utilize a configuration specific to the combination of the sending and receiving components.

[0012] In some examples, the integration platform can be implemented using multiple integration flows. An integration flow can include a set of instructions executed by the integration platform runtime (e.g., an integration flow worker) to interface between at least one specific sender component and at least one specific receiver component. In some examples, the integration flow can be individually programmed and deployed based on the needs of an enterprise utilizing the integration platform (sometimes referred to herein as a user enterprise). In some examples, the integration flow generated by the user enterprise is based on templates, instructions, etc. provided by a developer of the integration platform (also referred to herein as an integration platform developer).

[0013] In some examples, multiple integration flows are deployed by an integration flow worker. An integration flow worker is a runtime that executes in a cloud environment or other system that implements an integration platform. Each integration flow worker can manage the execution of one or a group of integration flows.

[0014] In addition to implementing integration flows, an integration flow worker may also include various internal services that support the execution of the integration flow. The internal services may perform various tasks, such as monitoring the execution status or health of the integration flow worker, tracking the relationship between messages processed by the integration flow worker and messages processed by other integration flow workers, acquiring and releasing locks at the database management system, managing timers associated with various messages, managing number ranges associated with various messages, and so on.

[0015] As described herein, an integration flow worker can utilize a database management system to store various data related to an integration message. To facilitate the use of a database management system, an integration flow worker can implement one or more data sources including one or more connection pools to the database management system.

[0016] Consider an example in which an integration flow is developed to facilitate the exchange of messages according to a numbered sequence of messages. The integration flow that processes a particular message of the sequence can utilize a database connection to store data indicating the message's position in the sequence. The integration flow can also utilize the database connection to access data describing other messages from the sequence that have been previously processed. Consider another example that includes one or more timer-based integration flows. A timer-based integration flow is an integration flow that can be scheduled to execute at a specific time and / or for a specific duration. Such a timer-based integration flow can utilize a database connection to access scheduling data indicating when the timer-based integration flow should execute. The timer-based integration flow can also utilize the database connection to write and / or access data describing the duration of the timer-based integration flow.

[0017] The database connection assigned to an integration flow worker can also be used by various internal services of the integration flow worker. For example, an internal service that monitors the execution status and / or health of an integration flow worker can use the database connection to write the results of its analysis to a database management system. An internal service that monitors the execution of timers for a timer-based integration flow can use the database connection to access data describing one or more timers.

[0018] In various examples, integration flows and internal services of an integration flow worker can utilize database connections differently. An internal service can utilize a database connection for operations at a database management system that take a relatively short period of time. For example, an internal service that monitors the execution status or health of an integration flow worker can utilize a database connection to write data about its analysis results and then release the database connection. On the other hand, an integration flow can utilize a database connection for a relatively longer period of time. For example, the timer-based integration flow example described above can utilize a database connection for its execution duration, which can be much longer than the time to execute a single read or write operation or a series of read and write operations.

[0019] The varying durations of database connection usage between internal services and integration flows can create challenges during the execution of integration flow workers. For example, if an integration flow worker is implementing multiple integration flows simultaneously, an integration flow may acquire and maintain an available database connection for a relatively long period of time. This can leave fewer database connections available for internal services. This can cause the internal service to receive a connection timeout exception. In this way, the functionality of the internal service may be impaired due to the delay. Degradation or delay of tasks performed by the internal service can adversely affect the execution of the integration flow worker, including, for example, affecting the execution of various integration flows.

[0020] Various examples utilize internal data sources and integrated flow data sources to address these and other challenges. Internal and integrated flow data sources can be, for example, Java data sources that utilize a Java Database Connectivity (JDBC) connection pool to one or more database management systems. The integrated flow data source can include a pool of database connections available to the integrated flow. The internal data source can include at least one database connection available to the internal service. In this way, at least one database connection can be available for use by the internal service. Because the internal service can utilize the database connection for a shorter duration, fewer database connections can be used for the internal service. In some examples, only a single database connection can be used for the internal service.

[0021] In some examples, internal data sources and integration flow data sources can be logically implemented as components of a common-name data source. In this way, integration flows and internal services can direct database connection requests to the common-name data source. Depending on the initiator of the request, the common-name data source can direct the appropriate connection request to the internal or integration flow data source.

[0022] Figure 1 1 is a diagram illustrating one example of an environment 100 including an integration platform 102, a database management system 104, and various sending and receiving software components 106. The integration platform 102 executes an example integration flow worker 108, which includes an integration flow data source 124 and an internal data source 126 that manage connections 128, 130, 132, 134 to the database management system 104. The database management system 104 can execute at the cloud environment 101 utilizing a processor, memory, and / or drives or other hardware storage devices provided by the cloud environment 101.

[0023] Integration platform 102 manages messaging between two or more software components, such as example software component 106. Example software component 106 includes cloud application 140, application 142 executed on-premises, and DBMS 144. Cloud application 140 can execute in a cloud environment, such as a public cloud environment or a private cloud environment. In some examples, cloud application 140 executes in cloud environment 101, for example, in the tenancy that implements integration platform 102 or in a different tenancy, such as another tenancy held by a user enterprise for integration platform 102. Although a single cloud application 140 is shown, it should be understood that integration platform 102 can manage messaging for more than a single cloud application.

[0024] On-premises application 142 executes on an on-premises computing system. For example, an enterprise utilizing on-premises application 142 may maintain one or more servers, network equipment components, etc. to implement the on-premises computing system. On-premises application 142 may be implemented by executing appropriate software on the on-premises computing system. Although a single on-premises application 142 is shown, it should be understood that integration platform 102 may manage messaging for more than a single on-premises application.

[0025] The DBMS 144 can be implemented, for example, in a cloud environment and / or in an on-premises environment. The DBMS 144 can implement a database management system that can be associated with one or more client applications. In some examples, the DBMS 144 can be or include a database management system such as S / 4Hana™, SAP Concur®, SAP Successfactors®, SAP Data Warehouse Cloud, or Inbound Documents (IBD), available from SAP SE of Walldorf, Germany. Other examples of cloud-delivered data sources can include Structured Query Language (SQL) database services such as BigQuery®, available from Google LLC of Mountain View, California, Sharepoint®, available from Microsoft Corporation of Redmond, Washington, and various data storage products available from Salesforce, Inc. of San Francisco, California.

[0026] It should be understood that software components 106 are examples of software components that may be managed by integration platform 102. In many example systems, integration platform 102 will manage more than Figure 1 The message passing between the combination of the three example software components 106 is shown. In addition, it should be understood that Figure 1 The types of example software components 106 shown in are provided for example purposes and are not exhaustive. Other types of applications in other combinations may be managed by the integration platform.

[0027] The integration platform 102 can manage messaging for the various software components 106 using integration flows implemented by integration flow workers, such as the integration flow worker 108. Figure 1 A single integration flow worker 108 is shown in FIG, but it should be understood that the integration platform 10 can execute multiple integration flow workers ( Figure 1 not shown).

[0028] The integration flow worker 108 implements example integration flows 110, 112, 114. In some examples, the integration flows 110, 112, 114 are implemented as patterns or descriptions of how to process one or more inbound messages from a sending system and transform the messages into messages that can be read by a receiving system. The integration flow worker 108 can initiate one or more integration flows 110, 112, 114, for example, in response to receiving corresponding incoming messages from a sending system.

[0029] Integration flows 110, 112, 114 can be configured with parameters that control how the respective integration flows 110, 112, 114 perform integration with respect to two or more software components (e.g., one or more sending systems and one or more receiving systems). For example, any of the example software components 106 can be a sending system or a receiving system. In some examples, the integration flows 110, 112, 114 can have a maximum message size that can be processed. Reducing the maximum message size can reduce the processing resources consumed by the integration flows 110, 112, 114 when performing integration tasks.

[0030] In some examples, the integration flows 110, 112, 114 have one or more configurable parameters related to message throttling. For example, the integration flows 110, 112, 114 can be arranged to process messages serially, i.e., one message at a time. In other arrangements, the integration flows 110, 112, 114 can be arranged to process messages in parallel. In some examples, the number of messages that the integration flows 110, 112, 114 can process in parallel is further configurable. For example, the integration flows 110, 112, 114 can have a maximum number of messages that can be processed simultaneously. Furthermore, in some examples, the integration flows 110, 112, 114 can delay the start of a new message processing task until a threshold time has passed since the start of the previous message processing task. In various examples, the integration flows 110, 112, 114 can be modified to change parameters such as whether they process messages serially or in parallel, the number of messages that can be processed simultaneously in parallel, the threshold time period for starting a new message processing task, and the like.

[0031] In some examples, the integration flows 110, 112, 114 can be configurable with respect to the type of adapter used to interface with the example software component 106. The adapter used by the integration flows 110, 112, 114 can be the type of interface and / or process used by the integration flows 110, 112, 114 to communicate with one or more sender software components and one or more receiver software components. Different adapter types can consume different levels of resources at the cloud environment 101. For example, an adapter type that performs message syntax validation (such as Simple Object Access Protocol (SOAP)) may take more time and therefore consume more resources than another adapter that does not include such validation. Therefore, cloud environment resources used by the integration flows 110, 112, 114 can be reduced by modifying the type of adapter used.

[0032] The integration flow worker 108 also executes various internal services 116, 118, 120. The internal services 116, 118, 120 may include executable code that executes concurrently with one or more of the integration flows 110, 112, 114 to manage the integration flows 110, 112, 114 and other aspects of the integration flow worker 108.

[0033] Different internal services 116, 118, 120 can perform different tasks related to the operation of the integration flow worker 108. For example, the internal services 116, 118, 120 can monitor the execution and / or health of the integration flow worker 108. For example, the internal services can periodically determine factors that affect the state and / or health of the integration flow worker 108. Factors measured by the internal services 116, 118, 120 can include metrics describing resources of the cloud environment 101 consumed by the integration flow worker 108. For example, the internal services 116, 118, 120 can measure public cloud environment memory being used by the integration flow worker 108, public cloud environment processor resources being used by the integration flow worker 108, public cloud environment network resources being used by the integration flow worker 108, and the like.

[0034] In some examples, internal services 116, 118, 120 that monitor the status and / or health of the integration flow workers 108 can be configured to detect error conditions and respond with remedial actions. The remedial actions can include reporting the status of the integration flow workers 108 to the services 146, 148, 150 (e.g., an orchestration service) of the desired integration platform.

[0035] In some examples, the integration platform 102 is arranged according to a microservices architecture. In a microservices architecture, different parts of an application are implemented by a collection of loosely coupled microservices that execute at a cloud environment. Each microservice may include an executable that executes in a container implemented by the cloud environment 101. In a microservices architecture, each microservice is programmed to perform a defined task or a small set of tasks and interact with other microservices in a defined manner, for example, according to an application programming interface (API). When an internal service 116, 118, 120 detects an error condition at an integration flow worker 108, it can notify a container orchestration service, such as, for example, a Kubernetes® container orchestration system. The container orchestration service can respond by terminating the container that implements the integration flow worker 108 and starting a new integration flow worker 108 in a new container, for example from a common container image.

[0036] One or more of the internal services 116, 118, 120 can implement message relationship tracking. For example, some messages between software components 106 can be part of a common set of messages. A common set of messages can relate to a single transaction between software components 106, a set of related transactions between software components 106, and the like. For example, the internal services 116, 118, 120 can detect that an incoming message is part of a common set of messages. The internal services 116, 118, 120 can access the database management system 104 to determine whether another integration flow at the integration flow worker 108 or another integration flow worker has already processed one or more messages from the common set of messages. If another integration flow has already processed one or more messages from the common set of messages, the internal services 116, 118, 120 can pass the incoming message to that integration flow. If no other integration flow has already processed one or more messages from the set of common messages, the internal service 116, 118, 120 can assign the message to an integration flow 110, 112, 114 (and / or start a new integration flow 110, 112, 114 for the message). The internal service 116, 118, 120 can also write data to the database management system 104 indicating the set of common messages and an indication of the integration flow 110, 112, 114 that processed the message.

[0037] In some examples, one or more of the internal services 116, 118, 120 can acquire and / or release locks at the database management system 104, for example, on behalf of the integration flows 110, 112, 114. For example, one or more of the integration flows 110, 112, 114 can process messages that are part of a transaction that includes multiple messages. A record of the transaction can be stored at the database management system 104. While an integration flow 110, 112, 114 is processing a message or a collection of messages that are part of a transaction, the integration flow 110, 112, 114 can utilize a lock that prevents the corresponding portion of the database management system 104 from being read or written by other components. In some examples, the integration flows 110, 112, 114 can be configured to request locks from the internal services 116, 118, 120. When the integration flows 110, 112, 114 have completed their transactions, the internal services 116, 118, 120 can release the locks.

[0038] In some examples, one or more of the internal services 116, 118, 120 are configured to manage one or more timers associated with the integration flows 110, 112, 114. For example, one or more of the integration flows 110, 112, 114 can be timer-based integration flows that are scheduled to execute at a specific time and / or for a specific duration. The internal services 116, 118, 120 can implement the timers and periodically write the status of the timers to the database management system 104. In some examples, the internal services 116, 118, 120 can read the status of the timers from the database management system 104.

[0039] In some examples, one or more of internal services 116, 118, 120 are configured to manage number ranges associated with incoming messages. In some examples, when a message is part of a common set of messages related to a common transaction, the messages of the transaction are numbered according to a sequence. Internal services 116, 118, 120 can detect receipt of each message in the sequence and write an indication to database management system 104 that the message has been received.

[0040] In addition to one or more integration flow workers (such as the integration flow worker 108), the integration platform 102 can also execute various other services 146, 148, 150. The services 146, 148, 150 can support the execution of various integration flows by the various integration flow workers. In some examples, the services 146, 148, 150 can include an orchestration service for orchestrating the spin-up and spin-down of the various integration flow workers 108. Furthermore, in some examples, the services 146, 148, 150 can include an integration flow design application. The integration flow design application can be accessed by users of the user enterprise to design and / or modify one or more integration flows.

[0041] As described herein, the integration flows 110, 112, 114 and the internal services 116, 118, 120 can utilize the database management system 104. To facilitate the use of the database management system 104, the integration flow worker 108 can execute an integration flow data source 124 and an internal data source 126. The integration flow data source 124 and the internal data source 126 can be or include any suitable type of data source, such as, for example, a Java data source implemented as a pool that manages database connections 128, 130, 132, 134. In some examples, the database connections 128, 130, 132, 134 are JDBC connections.

[0042] In some examples, the integration flows 110, 112, 114 and the internal services 116, 118, 120 can direct connection requests to a common name data source 122. The common name data source 122 can be programmed to direct the connection requests to the integration flow data source 124 or the internal data source 126, depending on the source of the request. In some examples, the internal services 116, 118, 120 are programmed to make connection requests that include an indication that the connection request is from the internal service 116, 118, 120. The data source 122 can use the indication, or the lack of indication, to distribute the connection requests to the integration flow data source 124 or the internal data source 126.

[0043] The integration flow data source 124 can utilize an integration flow pool of connections 128, 130, 132 to the database management system 104. For example, when the integration flow data source 124 receives a connection request (e.g., from an integration flow 110, 112, 114), the integration flow data source 124 can determine whether one or more of the connections 128, 130, 132 are available. If a connection is available, the integration flow data source 124 can allocate the connection to the requesting integration flow 110, 112, 114. The requesting integration flow 110, 112, 114 can utilize the allocated connection according to its processing. For example, the requesting integration flow 110, 112, 114 can utilize the allocated connection 128, 130, 132 to perform one or more queries or other operations at the database management system 104. The one or more operations can include, for example, read operations, write operations, etc. When the requesting integration flow 110, 112, 114 has completed its use of the database management system 104, it can return its allocated connection to the integration flow pool of connections managed by the integration flow data source 124.

[0044] The internal data source 126 can utilize a reserved connection 134. In some examples, the reserved connection 134 is part of a common connection pool utilized by both the integration flow data source 124 and the internal data source 126. In this example, the reserved connection 134 may not be assignable by the integration flow data source 124 to the integration flows 110, 112, 114. For example, the reserved connection 134 may not be assignable by the integration flow data source 124. The reserved connection 134 may be a single connection from a common connection pool that includes the connections 128, 130, 132, 134. In other examples, the reserved connection is implemented by ensuring that at least one connection in the common connection pool that includes the connections 128, 130, 132, 134 is assigned to the internal service 116, 118, 120 or is available for assignment to the internal service 116, 118, 120.

[0045] When the public name data source 122 receives a connection request from an internal service 116, 118, 120, it can route the connection request to the internal data source 126. The internal data source 126 can determine whether a reserved connection 134 is available. If a reserved connection 134 is available, the internal data source 126 can allocate the reserved connection 134 to the requesting internal service 116, 118, 120. The requesting internal service 116, 118, 120 can utilize the reserved connection 134. Utilizing the reserved connection 134 can include performing an operation at the database management system 104, such as, for example, a read operation and / or a write operation. After utilizing the reserved connection 134, the requesting internal service 116, 118, 120 can release the reserved connection 134 to the internal data source 126 for re-allocation.

[0046] In some examples, the internal data source 126 can be programmed to borrow one or more connections 132 from the integrated stream data source 124. Figure 1In the example shown, connection 132 is part of the integration flow pool of connections 128, 130, and 132 managed by integration flow data source 124. Connection 132, indicated by the dashed box, has been borrowed by internal data source 126. For example, if internal data source 126 receives a connection request from internal service 116, 118, and 120 and reserved connection 134 is unavailable, in some cases internal data source 126 may allocate a connection from the integration flow pool of connections 128, 130, and 132 managed by integration flow data source 124. For example, internal data source 126 may determine whether the status of the connection pool 128, 130, and 132 of integration flow data source 124 satisfies one or more threshold conditions. In some examples, the one or more threshold conditions may be related to the use of the integration flow pool of connections 128, 130, and 132 managed by integration flow data source 124. For example, if less than a threshold portion of the connection pool 128, 130, 132 is currently utilized, the internal data source 126 may allocate one of the connections 128, 130, 132 to the requesting internal service 116, 118, 120. The threshold portion may be, for example, 50%, 55%, 60%, 65%, 70%, 75%, 80%, 85%, 90%, 95%, etc.

[0047] When a connection from the integration flow pool of connections 128, 130, 132 managed by the integration flow data source 124 is allocated to an internal service 116, 118, 120, the internal service 116, 118, 120 can utilize the connection to perform one or more queries or other operations at the database management system 104. After using the allocated connection 128, 130, 132, the internal service 116, 118, 120 releases the allocated connection 128, 130, 132. When the internal service 116, 118, 120 releases the connection 128, 130, 132, it can be returned to the integration flow pool of connections 128, 130, 132 managed by the integration flow data source 124.

[0048] Figure 2 2 is a flow chart illustrating one example of a process flow 200 that can be executed by the integration flow worker 108 to process a connection request from an integration flow 110, 112, 114 or an internal service 116, 118, 120 to access the database management system 104. At operation 202, a connection request can be received. The connection request can originate from an integration flow 110, 112, 114 or from an internal service 116, 118, 120.

[0049] At operation 204 , the integration flow worker 108 (eg, its public name data source 122 ) determines whether the received connection request is an internal connection request from an internal service 116 , 118 , 120 or an integration flow connection request from an integration flow 110 , 112 , 114 .

[0050] In some examples, a connection request is tagged to indicate whether it originates from an integration flow 110, 112, 114 or an internal service 116, 118, 120. In some examples, the internal service 116, 118, 120 is configured to tag the connection request with an indication that the connection request originates from the internal service 116, 118, 120. For example, the internal service 116, 118, 120 may set a flag or otherwise incorporate data into the connection request indicating that the connection request originates from the internal service 116, 118, 120. In some examples, the integration flow 110, 112, 114 is further configured to tag the connection request as originating from the integration flow. In other examples, the integration flow or the internal service tags the connection request. In these examples, the data source 122 may determine that tagged requests are to be directed to one of the data sources 124, 126, and that untagged requests are to be directed to the other data source 124, 126.

[0051] If the received connection request comes from an integration flow 110, 112, or 114, the data source 122 may route the connection request to the integration flow data source 124. At operation 206, the integration flow data source 124 may allocate a connection from the connection pool 128, 130, or 132 to the requesting integration flow 110, 112, or 114, if such a connection is available. On the other hand, if the received connection request comes from an internal service 116, 118, or 120, the data source 122 may route the connection request to the internal data source 126. At operation 208, if a reserved connection is available, the internal data source 126 may allocate the reserved connection 134 to the internal service 116, 118, or 120.

[0052] Figure 3 3 is a flow chart illustrating an example of a process flow 300 that may be performed by the integration flow worker 108 (e.g., its integration flow data source 124) upon receiving a connection request from an integration flow 110, 112, 114. For example, the process flow 300 illustrates an example manner for implementing operation 208 of the process flow 200. At operation 302, the integration flow data source 124 may receive a connection request from an integration flow 110, 112, 114. The connection request may have been routed to the integration flow data source 124 by the common name data source 122.

[0053] At operation 304, the integration flow data source 124 can determine whether any connections from the connection pool 128, 130, 132 are available for allocation. If a connection is not in use by another integration flow 110, 112, 114 or an internal service 116, 118, 120, the connection is available for allocation. If at least one connection from the connection pool 128, 130, 132 is available, the integration flow data source 124 can allocate the connection to the requesting integration flow 110, 112, 114 at operation 306. The requesting integration flow can use the allocated connection to perform operations, such as one or more queries, at the database management system 104. Upon completing its use of the connection, the requesting integration flow 110, 112, 114 can return the connection to the integration flow data source 124, making it available for allocation to another integration flow 110, 112, 114 or an internal service 116, 118, 120.

[0054] If the integration flow data source 124 determines that no connection is available in the connection pool 128, 130, 132 at operation 304, the integration flow data source 124 may return a connection timeout exception to the requesting integration flow 110, 112, 114 at operation 308. The connection timeout exception may include data indicating that no connection is available to the requesting integration flow 110, 112, 114. In some examples, the requesting integration flow 110, 112, 114 may request a connection again at a later time.

[0055] Figure 4 4 is a flow diagram illustrating one example of a process flow 400 that may be performed by the integration flow worker 108 (e.g., its internal data source 126) upon receiving a connection request from an internal service 116, 118, 120. At operation 402, the internal data source 126 may receive a connection request from the internal service 116, 118, 120. The connection request may have been routed to the integration flow data source 124 by the common name data source 122.

[0056] At operation 404, the internal data source 126 can determine whether the reserved connection 134 is available for allocation. If the reserved connection 134 has not yet been allocated to another internal service 116, 118, 120, the reserved connection may be available. If the reserved connection 134 is available, the internal data source 126 can allocate the reserved connection 134 to the requesting internal service 116, 118, 120 at operation 406. The requesting internal service 116, 118, 120 can use the allocated connection to perform operations, such as one or more queries, at the database management system 104. Upon completion of the one or more queries, the requesting internal service 116, 118, 120 can return the reserved connection 134 to the internal data source 126.

[0057] If the internal data source 126 determines that the reserved connection 134 is not available at operation 404, the internal data source 126 may return a connection timeout exception to the requesting internal service 116, 118, 120 at operation 408. The connection timeout exception may include data indicating that no connection is available to the requesting internal service 116, 118, 120. In some examples, the requesting internal service 116, 118, 120 may request a connection again at a later time.

[0058] Figure 5 is a flow chart illustrating one example of a process flow 500 that may be performed by the integration flow worker 108 (eg, its internal data source 126) upon receiving a connection request from an internal service 116, 118, 120. Figure 5 In the example of FIG. 1 , the internal data source 126 may borrow a connection from the connection pools 128 , 130 , 132 if the reserved connection 134 is unavailable and one or more threshold conditions are met.

[0059] At operation 502, the internal data source 126 may receive a connection request from an internal service 116, 118, or 120. The connection request may have been routed to the integration flow data source 124 by the common name data source 122. At operation 504, the internal data source 126 may determine whether a reserved connection 134 is available for allocation. If the reserved connection is not in use by another internal service 116, 118, or 120, the reserved connection may be available. If the reserved connection 134 is available, the internal data source 126 may allocate the reserved connection 134 to the requesting internal service 116, 118, or 120 at operation 506. The requesting internal service 116, 118, or 120 may use the allocated connection to perform operations, such as one or more queries, at the database management system 104. Upon completion of the one or more queries, the requesting internal service 116, 118, or 120 may return the reserved connection 134 to the internal data source 126.

[0060] If the internal data source 126 determines at operation 504 that the reserved connection 134 is not available, then at operation 508 the internal data source 126 can determine whether to borrow a connection from the connection pool 128, 130, 134 managed by the integration flow data source 124. This can include, for example, determining whether one or more threshold conditions are met. The threshold conditions can include, for example, whether a threshold portion of the integration flow pool of connections 128, 130, 132 managed by the integration flow data source 124 is available.

[0061] If the internal data source 126 determines not to borrow a connection from the integration flow data source 124, then at operation 512, the internal data source may return a connection timeout exception to the requesting internal service 116, 118, 120. If the internal data source 126 determines to borrow a connection from the integration flow data source 124, then it may allocate a connection from the connection pool 128, 130, 132 to the requesting internal service 116, 118, 120 at operation 510. The requesting internal service 116, 118, 120 may use the allocated connection to perform operations at the database management system 104, such as one or more queries. Upon completion of the one or more queries, the requesting internal service 116, 118, 120 may return the allocated connection to the integration flow pool of connections 128, 130, 132 managed by the integration flow data source 124. The integration flow data source 124 may continue to utilize the returned connection to allocate to the integration flows 110, 112, 114, for example, as described with respect to Figure 3 described.

[0062] Example:

[0063] In view of the above disclosure, various examples are described below. It should be noted that one or more features of the examples taken alone or in combination should be considered within the disclosure of this application.

[0064] Example 1 is an integration platform system, comprising: at least one computing device implementing a cloud environment, the at least one computing device being programmed to execute: a database management system; and an integration flow worker, the integration flow worker comprising: an integration flow data source, the integration flow data source being assigned an integration flow connection pool, the integration flow connection pool comprising a plurality of connections to the database management system; an internal data source, the internal data source being assigned a reserved connection to the database management system; an internal service; and a plurality of integration flows, a first integration flow of the plurality of integration flows being configured to interface at least one message between a first software component and a second software component; and the integration flow worker being programmed to perform operations, the operations comprising: receiving a first connection request for the database management system from the first integration flow; assigning a first connection from the integration flow connection pool to the first integration flow; receiving a second connection request describing a second operation to be performed at the database management system from the internal service; and assigning the reserved connection to the internal service.

[0065] In Example 2, the subject matter of Example 1 can optionally include: an integration flow data source and an internal data source being accessible to the plurality of integration flows and the internal service via a common name data source.

[0066] In Example 3, the subject matter of Example 2 may optionally include the first connection request indicating that the first connection request is sent to the public name data source.

[0067] In Example 4, the subject matter of any one or more of Examples 1-3 optionally includes operations further comprising: receiving a third connection from an internal service; determining that the reserved connection to the database management system is unavailable; determining that the integration flow connection pool satisfies a threshold condition; and in response to determining that the integration flow connection pool satisfies the threshold condition, allocating the connection from the integration flow connection pool to the internal service.

[0068] In Example 5, the subject matter of Example 4 may optionally include determining that the integration flow connection pool satisfies a threshold condition comprises determining that less than a threshold portion of the plurality of connections of the integration flow connection pool are being used.

[0069] In Example 6, the subject matter of any one or more of Examples 4-5 may optionally include that the operations further include: after allocating the connection of the integration flow connection pool, returning the connection to the integration flow connection pool.

[0070] In Example 7, the subject matter as recited in any one or more of Examples 1-6 may optionally include the internal service being programmed to perform operations including generating the second connection request.

[0071] In Example 8, the subject matter of Example 7 may optionally include generating, by the internal service, the second connection request comprising merging an indication that the second connection request is from the internal service with the second connection request.

[0072] In Example 9, the subject matter of any one or more of Examples 1-8 optionally includes: the internal service utilizing the reserved connection to perform an operation at a database management system, the operation comprising at least one of: a request to write data describing performance of an integration flow worker; a request to write data regarding a relationship between messages received by at least one of the plurality of integration flows; a request to the database management system; or a request to describe a state of a timer.

[0073] Example 10 is a method for executing an integration platform, which includes an executable integration flow worker for implementing multiple integration flows, the method including: receiving a first connection request to a database management system that communicates with the integration flow worker from a first integration flow among the multiple integration flows, the first integration flow being configured to interface at least one message between a first software component and a second software component, the integration flow worker including an integration flow data source and an internal data source, the integration flow data source being assigned an integration flow connection pool, the integration flow connection pool including multiple connections to the database management system, the internal data source being assigned a reserved connection to the database management system; assigning a first connection from the integration flow connection pool to the first integration flow; receiving a second connection request to the database management system from an internal service of the integration flow worker; and assigning the reserved connection to the internal service.

[0074] In Example 11, the subject matter of Example 10 may optionally include: an integration flow data source and an internal data source being accessible to the plurality of integration flows and the internal service via a common name data source.

[0075] In Example 12, the subject matter of Example 11 may optionally include the first connection request indicating that the first connection request is sent to the public name data source.

[0076] In Example 13, the subject matter of any one or more of Examples 10-12 optionally includes: receiving a third connection request from an internal service describing a third operation to be performed at a database management system; determining that the reserved connection to the database management system is unavailable; determining that the integration flow connection pool satisfies a threshold condition; and in response to determining that the integration flow connection pool satisfies the threshold condition, performing the third operation using a connection from the integration flow connection pool.

[0077] In Example 14, the subject matter of Example 13 may optionally include determining that the integration flow connection pool satisfies a threshold condition comprises determining that less than a threshold portion of the plurality of connections of the integration flow connection pool is being used.

[0078] In Example 15, the subject matter of any one or more of Examples 13-14 may optionally include: after performing the third operation using the connection of the integration flow connection pool, returning the connection to the integration flow connection pool.

[0079] In Example 16, the subject matter as recited in any one or more of Examples 10-15 may optionally include the internal service being programmed to perform operations including generating the second connection request.

[0080] In Example 17, the subject matter of Example 16 may optionally include generating, by the internal service, the second connection request comprising merging an indication that the second connection request is from the internal service with the second connection request.

[0081] In Example 18, the subject matter of any one or more of Examples 10-17 optionally includes: the internal service utilizing the reserved connection to perform an operation at a database management system, the operation comprising at least one of: a request to write data describing performance of an integration flow worker; a request to write data regarding relationships between messages received by at least one of the plurality of integration flows; a request to the database management system; or a request to describe a state of a timer.

[0082] Example 19 is a non-transitory machine-readable medium comprising instructions which, when executed by at least one processor, cause the at least one processor to execute an integration platform, the integration platform comprising an executable integration flow worker for implementing a plurality of integration flows, the execution of the integration platform comprising: receiving a first connection request to a database management system that communicates with the integration flow worker from a first integration flow among the plurality of integration flows, the first integration flow being configured to interface at least one message between a first software component and a second software component, the integration flow worker comprising an integration flow data source and an internal data source, the integration flow data source being assigned an integration flow connection pool comprising a plurality of connections to the database management system, the internal data source being assigned a reserved connection to the database management system; assigning a first connection from the integration flow connection pool to the first integration flow; receiving a second connection request to the database management system from an internal service of the integration flow worker; and assigning the reserved connection to the internal service.

[0083] In Example 20, the subject matter of Example 19 may optionally include the integration flow data source and the internal data source being accessible to the plurality of integration flows and the internal service via a common name data source.

[0084] Figure 6 6 is a block diagram 600 illustrating one example of a software architecture 602 for a computing device. The architecture 602 can be used in conjunction with various hardware architectures, for example, as described herein. Figure 6 is merely a non-limiting example of a software architecture, and many other architectures may be implemented to facilitate the functionality described herein. A representative hardware layer 604 is shown and may represent, for example, any of the computing devices described above. In some examples, the hardware layer 604 may be configured according to Figure 7 It is implemented by the architecture of the computer system.

[0085] Representative hardware layer 604 includes one or more processing units 606 having associated executable instructions 608. Executable instructions 608 represent executable instructions of software architecture 602, including implementations of the methods, modules, subsystems, components, etc. described herein, and may also include a memory and / or storage module 610 also having executable instructions 608. Hardware layer 604 may also include other hardware as indicated by other hardware 612, which represents any other hardware of hardware layer 604, such as other hardware illustrated as part of architecture 602.

[0086] exist Figure 6 In the example architecture of , software architecture 602 can be conceptualized as a stack of layers, where each layer provides specific functionality. For example, software architecture 602 may include layers such as an operating system 614, a library 616, a middleware layer 618, an application 620, and a presentation layer 644. In operation, applications 620 and / or other components within a layer may invoke API calls 624 through the software stack and, in response to the API calls 624, access responses, return values, etc., shown as messages 626. The layers shown are representative in nature, and not all software architectures have all layers. For example, some mobile or dedicated operating systems may not provide a middleware layer 618, while other operating systems may provide such a layer. Other software architectures may include additional or different layers.

[0087] The operating system 614 can manage hardware resources and provide public services. The operating system 614 can include, for example, a kernel 628, services 630, and drivers 632. The kernel 628 can serve as an abstraction layer between the hardware and other software layers. For example, the kernel 628 can be responsible for memory management, processor management (e.g., scheduling), component management, networking, security settings, etc. The services 630 can provide other public services for other software layers. In some examples, the services 630 include interrupt services. The interrupt services can detect the receipt of an interrupt and, in response, cause the architecture 602 to suspend its current processing and execute an interrupt service routine (ISR) when the interrupt is accessed.

[0088] Driver 632 may be responsible for controlling or interfacing with the underlying hardware. For example, depending on the hardware configuration, driver 632 may include a display driver, a camera driver, a Bluetooth® driver, a flash driver, a serial communication driver (e.g., a Universal Serial Bus (USB) driver), a Wi-Fi® driver, an NFC driver, an audio driver, a power management driver, etc.

[0089] Libraries 616 can provide common infrastructure that can be utilized by applications 620 and / or other components and / or layers. Libraries 616 generally provide functionality that allows other software modules to perform tasks more easily than directly interfacing with underlying operating system 614 functionality (e.g., kernel 628, services 630, and / or drivers 632). Libraries 616 can include system 634 libraries (e.g., C standard libraries), which can provide functionality such as memory allocation functions, string manipulation functions, mathematical functions, etc. In addition, libraries 616 can include API libraries 636, such as media libraries (e.g., libraries for supporting the rendering and manipulation of various media formats such as MPEG4, H.264, MP3, AAC, AMR, JPG, PNG), graphics libraries (e.g., the OpenGL framework that can be used to render 2D and 3D graphics content on a display), database libraries (e.g., SQLite that can provide various relational database functions), web libraries (e.g., WebKit that can provide web browsing functionality), etc. Libraries 616 can also include a variety of other libraries 638 to provide many other APIs to applications 620 and other software components / modules.

[0090] The middleware layer 618 (sometimes also referred to as a framework) can provide a higher-level common infrastructure that can be utilized by applications 620 and / or other software components / modules. For example, the middleware layer 618 can provide various graphical user interface (GUI) functions, advanced resource management, advanced location services, etc. The middleware layer 618 can provide a wide spectrum of other APIs that can be utilized by applications 620 and / or other software components / modules, some of which can be specific to a particular operating system or platform.

[0091] Applications 620 include built-in applications 640 and / or third-party applications 642. Examples of representative built-in applications 640 may include, but are not limited to, contact applications, browser applications, book reader applications, location applications, media applications, messaging applications, and / or game applications. Third-party applications 642 may include any of the built-in applications 640 as well as a variety of other applications. In a specific example, third-party applications 642 (e.g., applications developed using an Android™ or iOS™ software development kit (SDK) by an entity other than the vendor of a particular platform) may be mobile software running on a mobile operating system such as iOS™, Android™, Windows® Phone, or other mobile computing device operating system. In this example, third-party applications 642 may call API calls 624 provided by a mobile operating system such as operating system 614 to facilitate the functionality described herein.

[0092] Applications 620 can create a user interface to interact with users of the system using built-in operating system functionality (e.g., kernel 628, services 630, and / or drivers 632), libraries (e.g., system 634, API library 636, and other libraries 638), and middleware layer 618. Alternatively or additionally, in some systems, interaction with the user can occur through a presentation layer, such as presentation layer 644. In these systems, application / module "logic" can be separated from aspects of the application / module that interact with the user.

[0093] Some software architectures utilize virtual machines. Figure 6 In the example of FIG6 , this is illustrated by virtual machine 648. A virtual machine creates a software environment in which applications / modules can execute as if they were executed on a hardware computing device. The virtual machine is hosted by a host operating system (operating system 614) and typically, but not always, has a virtual machine monitor 646 that manages the operation of the virtual machine and the interface with the host operating system (i.e., operating system 614). Software architecture is executed within the virtual machine, such as operating system 650, libraries 652, framework / middleware 654, applications 656, and / or presentation layer 658. These software architecture layers executed within virtual machine 648 may be the same as the corresponding layers previously described or may be different.

[0094] Modules, components, and logic

[0095] Certain embodiments are described herein as including logic or multiple components, modules, or mechanisms. A module may constitute a software module (e.g., code embodied (1) on a non-transitory machine-readable medium or (2) in a transmission signal) or a hardware-implemented module. A hardware-implemented module is a tangible unit capable of performing certain operations and may be configured or arranged in a certain manner. In example embodiments, one or more computer systems (e.g., stand-alone, client, or server computer systems) or one or more hardware processors may be configured by software (e.g., an application or portion of an application) to operate as a hardware-implemented module to perform certain operations as described herein.

[0096] In various embodiments, a hardware-implemented module may be implemented mechanically or electronically. For example, a hardware-implemented module may include dedicated circuitry or logic that is permanently configured to perform certain operations (e.g., as a dedicated processor, such as a field programmable gate array (FPGA) or an application-specific integrated circuit (ASIC)). A hardware-implemented module may also include programmable logic or circuitry (e.g., contained within a general-purpose processor or another programmable processor) that is temporarily configured by software to perform certain operations. It should be understood that the decision to implement a hardware-implemented module mechanically in a dedicated and permanently configured circuit or in a temporarily configured (e.g., configured by software) circuit may be driven by cost and time considerations.

[0097] Thus, the term "hardware-implemented module" should be understood to encompass a tangible entity, i.e., an entity that is physically constructed, permanently configured (e.g., hardwired), or temporarily or provisionally configured (e.g., programmed) to operate in a certain manner and / or perform certain operations described herein. Considering embodiments in which hardware-implemented modules are temporarily configured (e.g., programmed), each hardware-implemented module need not be configured or instantiated at any one moment in time. For example, where the hardware-implemented modules include a general-purpose processor configured using software, the general-purpose processor can be configured as corresponding different hardware-implemented modules at different times. Thus, software can configure a processor to, for example, constitute a particular hardware-implemented module at one moment in time, and to constitute a different hardware-implemented module at a different moment in time.

[0098] The modules of hardware implementation can provide information to the modules of other hardware implementations and receive information from the modules of other hardware implementations. Therefore, the modules of described hardware implementation can be regarded as being communicatively coupled. In the case of multiple such hardware implementation modules at the same time, communication can be achieved by signal transmission (for example, by connecting the appropriate circuits and buses of the modules of hardware implementation). In the embodiment in which multiple hardware implementation modules are configured or instantiated at different times, the communication between the modules of such hardware implementations can be achieved, for example, by storing and retrieving information in a memory structure accessible to the modules of multiple hardware implementations. For example, a module of hardware implementation can perform an operation and store the output of the operation in a memory device coupled with its communication. Then, another module of hardware implementation can access the memory device at a later time to retrieve and process the output of the storage. The module of hardware implementation can also initiate communication with an input or output device and can operate on a resource (for example, a collection of information).

[0099] The various operations of the example methods described herein may be performed, at least in part, by one or more processors that are temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Whether temporarily or permanently configured, such processors may constitute processor-implemented modules that operate to perform one or more operations or functions. In some example embodiments, the modules mentioned herein may include processor-implemented modules.

[0100] Similarly, the methods described herein can be implemented at least in part by a processor. For example, at least some of the operations of the method can be performed by one or more processors or modules implemented by the processor. The execution of certain operations can be distributed among one or more processors, not only residing in a single machine, but also deployed across multiple machines. In some example embodiments, one or more processors can be located in a single location (e.g., in a home environment, an office environment, or a server farm), while in other embodiments, the processors can be distributed in multiple locations.

[0101] The one or more processors may also operate to support execution of the relevant operations in a "cloud computing" environment or as "software as a service" (SaaS). For example, at least some operations may be performed by a group of computers (as an example of a machine including a processor), which may be accessed via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., APIs).

[0102] Electronic devices and systems

[0103] The example embodiments may be implemented in digital electronic circuitry, or in computer hardware, firmware, or software, or in a combination of these. The example embodiments may be implemented using a computer program product, for example, a computer program tangibly embodied in an information carrier, for example, in a machine-readable medium, for execution by a data processing apparatus (for example, a programmable processor, a computer, or multiple computers), or to control the operation of the data processing apparatus.

[0104] A computer program can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, subroutine, or other unit suitable for use in a computing environment. A computer program can be deployed to be executed on one computer or at one site or on multiple computers distributed across multiple sites and interconnected by a communication network.

[0105] In example embodiments, the operations may be performed by one or more programmable processors executing a computer program to perform functions by operating on input data and generating output. The method operations may also be performed by, and the apparatus of example embodiments may be implemented as, special purpose logic circuitry (e.g., an FPGA or an ASIC).

[0106] The computing system may include a client and a server. The client and the server are typically remote from each other and typically interact via a communication network. The relationship between the client and the server is generated by means of computer programs that run on respective computers and have a client-server relationship with each other. In the embodiments of the programmable computing system, it will be understood that both hardware and software architectures are worthy of consideration. Specifically, it will be understood that the choice of implementing certain functions in permanently configured hardware (e.g., ASIC), in temporarily configured hardware (e.g., a combination of software and a programmable processor), or in a combination of permanently and temporarily configured hardware may be a design choice. The hardware (e.g., machine) and software architecture that may be deployed in various example embodiments are described below.

[0107] Example machine architecture and machine-readable medium

[0108] Figure 7 724 can be executed in the computer system 700 so that the machine performs any one or more methods discussed herein. In an alternative embodiment, the machine operates as a standalone device or can be connected (e.g., networked) to other machines. In a networked deployment, the machine can operate with the ability of a server or client machine in a server-client network environment, or operate as a peer machine in a peer-to-peer (or distributed) network environment. The machine can be a personal computer (PC), tablet PC, set-top box (STB), personal digital assistant (PDA), cellular phone, network equipment, network router, switch or bridge, or any machine that can (sequentially or otherwise) perform an instruction specifying the action to be taken by the machine. In addition, although only a single machine is shown, the term "machine" should also be considered to include any set of machines that perform one or more of the methods discussed herein, either individually or in combination.

[0109] The example computer system 700 includes a processor 702 (e.g., a central processing unit (CPU), a graphics processing unit (GPU), or both), a main memory 704, and a static memory 706, which communicate with each other via a bus 708. The computer system 700 may also include a video display unit 710 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)). The computer system 700 also includes an alphanumeric input device 712 (e.g., a keyboard or a touch-sensitive display screen), a user interface (UI) navigation (or cursor control) device 714 (e.g., a mouse), a disk drive unit 716, a signal generating device 718 (e.g., a speaker), and a network interface device 720.

[0110] Machine-readable media

[0111] The disk drive unit 716 includes a machine-readable medium 722 having stored thereon one or more sets of data structures and instructions 724 (e.g., software) embodying or used by any one or more of the methodologies or functionality described herein. The instructions 724 may also reside, completely or at least partially, within the main memory 704 and / or within the processor 702 during execution thereof by the computer system 700, with the main memory 704 and the processor 702 also constituting the machine-readable medium 722.

[0112] Although the machine-readable medium 722 is shown as a single medium in the example embodiment, the term "machine-readable medium" can include a single medium or multiple media (e.g., a centralized or distributed database and / or associated caches and servers) that store one or more instructions 724 or data structures. The term "machine-readable medium" should also be taken to include any tangible medium that can store, encode, or carry instructions 724 for execution by a machine and cause the machine to perform any one or more of the methods disclosed herein, or that can store, encode, or carry data structures utilized by or associated with these instructions 724. Thus, the term "machine-readable medium" should be taken to include, but is not limited to, solid-state memory and optical and magnetic media. Specific examples of machine-readable media 722 include non-volatile memory, including, by way of example, semiconductor memory devices such as erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), and flash memory devices; magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks.

[0113] transmission medium

[0114] Instructions 724 may also be sent or received over a communication network 726 using a transmission medium. The instructions 724 may be sent using a network interface device 720 and any of a number of well-known transmission protocols (e.g., HTTP). Examples of communication networks include a local area network (LAN), a wide area network (WAN), the Internet, a mobile phone network, a plain old telephone (POTS) network, and wireless data networks (e.g., WiFi and WiMax networks). The term "transmission medium" should be taken to include any intangible medium capable of storing, encoding, or carrying instructions 724 for execution by the machine, and includes digital or analog communication signals or other intangible media to facilitate communication of such software.

[0115] Although the embodiments have been described with reference to specific example embodiments, it will be apparent that various modifications and changes may be made to these embodiments without departing from the broader spirit and scope of the present disclosure. Therefore, the description and drawings should be regarded as illustrative and not restrictive. The drawings forming a part thereof show, by way of illustration and not limitation, specific embodiments in which the subject matter may be practiced. The illustrated embodiments are described in sufficient detail to enable those skilled in the art to practice the teachings disclosed herein. Other embodiments may be utilized and derived therefrom so that structural and logical substitutions and changes may be made without departing from the scope of the present disclosure. Therefore, this detailed description should not be regarded as having a limiting meaning, and the scope of the various embodiments is limited only by the appended claims and the full scope of equivalents to which such claims are entitled.

Claims

1. An integrated platform system, comprising: At least one computing device implementing a cloud environment, the at least one computing device being programmed to perform: Database management systems; as well as An integrated flow worker, the integrated flow worker comprising: an integration stream data source, the integration stream data source being assigned an integration stream connection pool, the integration stream connection pool comprising a plurality of connections to the database management system; an internal data source, the internal data source being assigned a reserved connection to the database management system; Internal services; and a plurality of integration flows, a first integration flow of the plurality of integration flows configured to interface at least one message between a first software component and a second software component; and The integration flow worker is programmed to perform operations including: receiving a first connection request for the database management system from the first integration flow; allocating a first connection from the integration flow connection pool to the first integration flow; receiving a second connection request from the internal service describing a second operation to be performed at the database management system; and The reserved connection is allocated to the internal service. 2 . The integration platform system according to claim 1 , wherein the integration flow data source and the internal data source are accessible to the plurality of integration flows and the internal service via a common name data source. 3 . The integration platform system according to claim 2 , wherein the first connection request indicates that the first connection request is sent to the public name data source.

4. The integrated platform system according to claim 1, wherein the operation further comprises: receiving a third connection from the internal service; determining that the reserved connection to the database management system is unavailable; Determining that the integrated flow connection pool meets a threshold condition; as well as In response to determining that the integration flow connection pool satisfies a threshold condition, allocating a connection from the integration flow connection pool to the internal service. 5 . The integration platform system of claim 4 , wherein determining that the integration flow connection pool satisfies the threshold condition comprises determining that less than a threshold portion of the plurality of connections in the integration flow connection pool are being used.

6. The integrated platform system according to claim 4, wherein the operation further comprises: After the connection of the integration flow connection pool is allocated, the connection is returned to the integration flow connection pool. 7 . The integrated platform system of claim 1 , wherein the internal service is programmed to perform operations including generating the second connection request. 8 . The integration platform system according to claim 7 , wherein generating the second connection request by the internal service comprises merging an indication that the second connection request is from the internal service with the second connection request.

9. The integration platform system of claim 1, wherein the internal service utilizes the reserved connection to perform an operation at the database management system, the operation comprising at least one of: a request to write data describing the performance of the integration flow worker; a request to write data regarding a relationship between messages received by at least one of the plurality of integration flows; A request to the database management system; or a request to describe the status of a timer.

10. A method of executing an integration platform, the integration platform comprising an executable integration flow worker for implementing a plurality of integration flows, the method comprising: receiving, from a first integration flow of the plurality of integration flows, a first connection request to a database management system in communication with the integration flow worker, the first integration flow being configured to interface at least one message between a first software component and a second software component, the integration flow worker comprising an integration flow data source and an internal data source, the integration flow data source being allocated an integration flow connection pool comprising a plurality of connections to the database management system, the internal data source being allocated a reserved connection to the database management system; allocating a first connection from the integration flow connection pool to the first integration flow; receiving a second connection request to the database management system from an internal service of the integration flow worker; as well as The reserved connection is allocated to the internal service. 11 . The method of claim 10 , wherein the integration flow data source and the internal data source are accessible to the plurality of integration flows and the internal service via a common name, data source. 12 . The method of claim 11 , the first connection request indicating that the first connection request is sent to the public name data source.

13. The method according to claim 10, further comprising: receiving, from the internal service, a third connection request describing a third operation to be performed at the database management system; determining that the reserved connection to the database management system is unavailable; Determining that the integrated flow connection pool meets a threshold condition; as well as In response to determining that the integration flow connection pool satisfies a threshold condition, the third operation is performed using a connection in the integration flow connection pool. 14 . The method of claim 13 , wherein determining that the integration flow connection pool satisfies the threshold condition comprises determining that less than a threshold portion of the plurality of connections of the integration flow connection pool are being used.

15. The method according to claim 13, further comprising: After the third operation is performed using the connection in the integration flow connection pool, the connection is returned to the integration flow connection pool.

16. The method of claim 10, the internal service being programmed to perform operations including generating the second connection request.

17. The method according to claim 16, wherein generating the second connection request by the internal service comprises: An indication that the second connection request is from an internal service is merged with the second connection request.

18. The method of claim 10, the internal service utilizing the reserved connection to perform an operation at the database management system, the operation comprising at least one of: a request to write data describing performance of the integration flow worker; a request to write data regarding a relationship between messages received by at least one of the plurality of integration flows; A request to the database management system; or a request to describe the status of a timer.

19. A non-transitory machine-readable medium comprising instructions thereon, the instructions, when executed by at least one processor, causing the at least one processor to execute an integration platform, the integration platform comprising an executable integration flow worker for implementing a plurality of integration flows, the execution of the integration platform comprising: receiving, from a first integration flow of the plurality of integration flows, a first connection request to a database management system in communication with the integration flow worker, the first integration flow being configured to interface at least one message between a first software component and a second software component, the integration flow worker comprising an integration flow data source and an internal data source, the integration flow data source being allocated an integration flow connection pool comprising a plurality of connections to the database management system, the internal data source being allocated a reserved connection to the database management system; allocating a first connection from the integration flow connection pool to the first integration flow; receiving a second connection request to the database management system from an internal service of the integration flow worker; as well as The reserved connection is allocated to the internal service.

20. The non-transitory machine-readable medium of claim 19, the integration flow data source and the internal data source being accessible to the plurality of integration flows and the internal service via a common name data source.