Server-less computing based continuous gateway monitoring for data changes
By calling serverless setup and message processing services at the gateway interface of the computing environment, establishing and maintaining connections to the data repository, the problem of difficulty in achieving long-term monitoring in a serverless computing environment is solved, reducing costs and achieving efficient data change monitoring.
Patent Information
- Application Number
- CN202380060439.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-08-24
- Filing Date
- 2023-07-20
- Publication Date
- 2025-04-08
AI Technical Summary
The prior art is difficult to efficiently implement long-term monitoring functions in a serverless computing environment, and the cost is high.
By receiving data change requests for monitoring data repositories at the gateway interface of the computing environment, calling serverless settings services and serverless message processing services, establishing and maintaining the connection between the gateway interface and the data repository, monitoring and messaging of data changes is realized.
Reduces the cost of maintaining connections with serverless services, enabling efficient data change monitoring and messaging for a variety of data repositories.
Smart Images

Figure CN119790381A_ABST
Abstract
Description
Background Art
[0001] One or more aspects relate generally to processing within a computing environment, and more particularly to improving processing associated with a gateway within a computing environment.
[0002] The client system can use a continuous change notification application programming interface (API) or monitoring API to open a connection with an API server, which monitors a specified data repository, waiting for change messages from the API server over the connection. Whenever data changes in the specified data repository, the client system receives a message about the change from the API server.
[0003] In one or more implementations, the continuous change notification API is a server-based application that solves, for example, the cache invalidation problem; that is, how to determine when the cached or displayed information is no longer an appropriate representation of the underlying data repository. Any type of cache invalidation (not just front-end or back-end related) can be built using the monitoring API server. Summary of the invention
[0004] By providing a computer program product for facilitating processing within a computing environment, certain disadvantages of the prior art are overcome, and additional advantages are provided herein. According to one aspect of the present invention, a computer program product is provided, the computer program product comprising one or more computer-readable storage media and program instructions contained thereon. The program instructions can be read by a processing circuit to cause the processing circuit to perform a method, the method comprising: receiving a monitoring request for monitoring data changes in a data repository from a user system at a gateway interface of the computing environment. In addition, the method comprises: calling a serverless setup service by the gateway interface based on receiving the monitoring request to establish a connection between the gateway interface and the data repository of the computing environment to be monitored for data changes. In addition, the method comprises: calling a serverless message processing service by the gateway interface to mutate a data change indication from the data repository received at the gateway interface through the connection into a mutated data change message indicating a data change at the data repository, for returning to the user system according to the monitoring request, and terminating thereafter.
[0005] By calling the serverless setup service based on receiving a monitoring request through the gateway interface, and calling the serverless message processing service through the gateway interface, there is no limit on the service execution time because they are short-term serverless services. Each service is called when prompted by a corresponding event, and in one or more embodiments, once the corresponding function is completed, the serverless service is not maintained as long-term or active. In this way, when called by the occurrence of a corresponding event, the cost for the serverless service is reduced from the full monitoring time window to the time window for completing the associated function. Since there is no permanent connection to maintain with the gateway interface, the costs associated with the serverless service are greatly reduced. In addition, no changes to the data repository are required because the method works with a variety of supported data repositories.
[0006] In one or more embodiments, the connection between the gateway interface and the data repository to be monitored for data changes, when established, has an infinite execution time.
[0007] In one embodiment, invoking the serverless setup service includes invoking, by the gateway interface, the serverless setup service with user parameters associated with the monitoring request to establish the connection between the gateway interface and the data repository to be monitored for data changes.
[0008] In one or more embodiments, the method further includes: monitoring, by the gateway interface, the connection between the gateway interface and the data repository for the data change indication from the data repository. In one or more embodiments, the method further includes: receiving, at the gateway interface, the data change indication from the data repository over the connection, wherein the data change indication from the data repository includes a first data change indication format, and the mutation data change message for returning to the user system includes a second data change indication format, and wherein the second data change indication format is different from the first data change indication format.
[0009] In one or more embodiments, the method further comprises: based on the monitoring request, facilitating maintaining another infinite execution time connection between the gateway interface of the computing environment and the user system. In one embodiment, the method comprises: returning the mutation data change message to the user system according to the monitoring request by the gateway interface through the another infinite execution time connection.
[0010] In one embodiment, the serverless setup service is a first function as a service FaaS, and the serverless message processing service is a second function as a service FaaS.
[0011] Computer-implemented methods and computer systems related to one or more aspects are also described and claimed herein. Additionally, services related to one or more aspects are described and may be claimed herein.
[0012] According to another aspect of the present disclosure, a computer-implemented method is provided, comprising: receiving a monitoring request for monitoring data changes in a data repository from a user system at a gateway interface of a computing environment; calling a serverless setup service by the gateway interface based on receiving the monitoring request to establish a connection between the gateway interface and the data repository of the computing environment whose data changes are to be monitored; and calling a serverless message processing service by the gateway interface to mutate a data change indication from the data repository received at the gateway interface through the connection into a mutated data change message indicating a data change at the data repository, for returning to the user system according to the monitoring request, and terminating thereafter.
[0013] According to another aspect of the present disclosure, a computer system for facilitating processing within a computing environment is provided, the computer system comprising: a memory; and at least one processor that communicates with the memory, wherein the computer system is configured to execute a method comprising: receiving a monitoring request for monitoring data changes in a data repository from a user system at a gateway interface of the computing environment; calling a serverless setup service by the gateway interface based on receiving the monitoring request to establish a connection between the gateway interface and the data repository of the computing environment whose data changes are to be monitored; and calling a serverless message processing service by the gateway interface to mutate a data change indication from the data repository received at the gateway interface through the connection into a mutated data change message indicating a data change at the data repository, for returning to the user system according to the monitoring request, and terminating thereafter.
[0014] Additional features and advantages are realized through the techniques described herein.Other embodiments and aspects are described in detail herein and are considered a part of the claimed aspects. BRIEF DESCRIPTION OF THE DRAWINGS
[0015] In the claims at the end of the specification, one or more aspects are particularly pointed out and clearly claimed as examples. The foregoing contents and objects, features and advantages of one or more aspects are apparent from the following detailed description in conjunction with the accompanying drawings, in which:
[0016] Figure 1 An example of a computing environment that includes and / or uses one or more aspects of the present invention is depicted;
[0017] Figure 2 Another embodiment of a computing environment incorporating and / or using one or more aspects of the present invention is depicted;
[0018] Figure 3A An embodiment of a continuous gateway monitoring workflow based on serverless computing according to one or more aspects of the present invention is depicted;
[0019] Figure 3B is a data structure depicting one embodiment of a serverless setup service / function workflow and a serverless message processing service / function workflow according to one or more aspects of the present invention.
[0020] Figure 4 Another embodiment of a computing environment incorporating and / or using one or more aspects of the present invention is depicted;
[0021] Figure 5 Describes more detailed embodiments of computing environments that incorporate and use one or more aspects of the present invention;
[0022] Figure 6A-6B Another embodiment of a continuous gateway monitoring workflow based on serverless computing according to one or more aspects of the present invention is depicted; and
[0023] Figure 7 Another example of a computing environment that includes and / or uses one or more aspects of the present invention is depicted. DETAILED DESCRIPTION
[0024] The accompanying drawings incorporated in and forming part of this specification further illustrate the present invention and are used together with the detailed description of the present invention to explain various aspects of the present invention. In this regard, please note that the description of known systems, equipment, processing techniques, etc. is omitted so as to unnecessarily make the present invention difficult to understand in detail. However, it should be understood that the detailed description and specific examples, although indicating aspects of the present invention, are given only in an illustrative and non-limiting manner. Those skilled in the art will understand from the present invention various substitutions, modifications, additions and / or other arrangements within or within the scope of the basic inventive concept. It should also be noted that many inventive aspects or features are disclosed herein, and unless inconsistent, each disclosed aspect or feature can be combined with any other disclosed aspect or feature according to the needs of the specific application of the disclosed concept.
[0025] It should also be noted that the illustrative embodiments are described below using specific code, design, architecture, protocol, layout, schematic diagram or tool only as an example and not as a limitation. In addition, in some cases, the illustrative embodiments are described only as examples using specific software, tools or data processing environments to make the description clear. The illustrative embodiments can be used in conjunction with other comparable or similar purpose structures, systems, applications or architectures. One or more aspects of the illustrative embodiments can be implemented in hardware, software or a combination thereof.
[0026] As will be appreciated by those skilled in the art, program code as referred to herein may include software and / or hardware. For example, program code in certain embodiments of the present invention may utilize software-based implementations of the functions described, while other embodiments may include fixed-function hardware. Some embodiments combine both types of program code. Examples of program code (also referred to as one or more programs) are described in Figure 1 The operating system 122 and monitoring request related code 200 are depicted in FIG. Figure 1 In the example computing environment 100 of , the persistent storage 113 and the gateway 140, the cloud orchestration module 141, the virtual machine group 143 and the container set 144 are part of or associated with the public cloud 105. In another example, Figure 7 The program code depicted in the computing environment of includes, in part, an application 716 , an operating system 718 , a gateway interface 720 , a serverless service 721 , a data repository 722 , and computer-readable program instructions 723 , which are stored in the memory 706 of the computer system 702 .
[0027] As context, containerization is the encapsulation of software code (e.g., for implementing a service or microservice) with its dependencies (such as operating system libraries and / or other dependencies) that are used to run the software code to create a single lightweight executable file (referred to as a container). A container is portable because it runs consistently and reliably on any information technology infrastructure. In one or more embodiments, the software code may be an application, such as an edge application or edge service instance in the case of edge-based computing. A container is created from a container image, which is a static file that includes executable program code that can be run as an isolated process on a computing or information technology (IT) infrastructure. An image can be used to run one or more containers, which are runtime instances of a container image. Containers are lightweight (e.g., they share the machine's operating system), efficient, easy to manage, secure, and portable.
[0028] An example of a product for providing and managing containers is It is an open source system for automating the deployment, scaling, and management of containerized applications. is a registered trademark of The Linux Foundation in at least one jurisdiction. )Kubernetes groups the containers that make up an application into logical units so that they are easily manageable and discoverable. In operation, Kubernetes orchestrates containerized applications to run on a cluster of hosts (or nodes) and automates the deployment and management of cloud-native applications using either on-premises infrastructure or public cloud platforms. The Kubernetes system is designed to run containerized applications across a cluster of nodes (or servers or devices) that can be located in a single geographic location or distributed across multiple geographic locations. In one or more implementations, a cluster is a set of nodes (whether physical or virtual computing resources) running a Kubernetes agent that is managed by a Kubernetes control plane.
[0029] Container orchestration is the automation of much of the operational work required to run containerized workloads and services. Orchestration includes the broad processes required to maintain the lifecycle of containers, including provisioning, deployment, scaling (up and down), networking, load balancing, etc. Note that Kubernetes is only one example of an orchestration platform that can be used to manage, for example, service deployments (as disclosed herein). In one or more embodiments, a container orchestration platform such as Docker can be used in accordance with one or more aspects disclosed. TM Other platforms such as Docker to manage service deployment. TM are trademarks or registered trademarks of Docker, Inc., San Francisco, California, USA.)
[0030] As described above, a continuous change notification application program interface (API) or monitoring API can be used to solve, for example, cache invalidation problems; that is, how to determine when the information being displayed or cached is no longer an appropriate representation of the underlying data repository. Any kind of cache invalidation (not just front-end or back-end related) can be built using the monitoring API. With the monitoring API, a user system opens a connection to an API server that monitors a specified data repository, waiting for repeated messages from the data store server over the connection. Whenever a change occurs in the data repository, the user system receives a message about the change. The connection to the data store server remains active until the application is completed. Many monitoring API examples are known, including those implemented by couchDB and etcd.
[0031] Monitoring APIs are also widely used in mobile and web applications. A common architecture or workflow includes a client application that establishes a connection with an API server that monitors resource changes. The API server is stateless and is not the source of resources. The API server then monitors an upstream data repository, which can be the source of resources. When the API server receives a message from the monitored data repository, it processes the message to filter, enrich, transform the message, etc., and passes the processed message to the client application.
[0032] Because the API server assists with client authentication and authorization, client applications typically do not monitor upstream data repositories directly, and typically do not want to expose the underlying data store data structure and schema, or expose data store credentials to client applications for security reasons.
[0033] As an alternative embodiment, serverless computing can be used to build web-based applications, which is more efficient and cheaper than implementing an API server. However, the problem is that web applications cannot use long-term monitoring functions with serverless computing. For example, there are currently restrictions on the execution time of such functions. For example, the maximum timeout of existing serverless computing services that run code in response to events is 900 seconds, which means that the execution time of a single call to the platform cannot exceed 900 seconds. In addition, the cost is relatively high because serverless platform functions are charged by execution time (including the time when the function is dormant and / or blocked input / output).
[0034] Before describing the embodiments of the present invention, Figure 1 Examples of computing environments that include and / or use one or more aspects of the present invention are discussed.
[0035] Various aspects of the present invention are described by explanatory text, flow charts, block diagrams of computer systems, and / or block diagrams of machine logic, included in computer program product (CPP) embodiments. For any flow chart, depending on the technology involved, the operations may be performed in an order different from the order shown in a given flow chart. For example, two operations shown in consecutive flow chart blocks may be performed in reverse order, as a single integrated step, simultaneously, or in a manner that at least partially overlaps in time, also depending on the technology involved.
[0036] Computer program product embodiments ("CPP embodiments" or "CPP") are terms used in this disclosure to describe any collection of one or more storage media (also referred to as "media") that are collectively included in a collection of one or more storage devices that collectively include machine-readable code corresponding to instructions and / or data for performing the computer operations specified in a given CPP claim. A "storage device" is any tangible device that can retain and store instructions for use by a computer processor. A computer-readable storage medium may be an electronic storage medium, a magnetic storage medium, an optical storage medium, an electromagnetic storage medium, a semiconductor storage medium, a mechanical storage medium, or any suitable combination of the foregoing. Some known types of storage devices that include these media include: floppy disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or Flash memory), static random access memory (SRAM), compact disk read-only memory (CD-ROM), digital versatile disk (DVD), memory stick, floppy disk, mechanical encoding device (such as a punch card or pits / islands formed in a major surface of a disk), or any suitable combination of the foregoing. As the term is used in the present invention, computer readable storage media is not to be interpreted as storage in the form of transient signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides, light pulses through optical cables, electrical signals transmitted through wires and / or other transmission media. As will be appreciated by those skilled in the art, data is typically moved at certain occasional points in time during normal operation of the storage device, such as during access, defragmentation or garbage collection, but this does not make the storage device temporary because the data is not temporary when stored.
[0037] The computing environment 100 includes an example of an environment for executing at least some computer codes (including monitoring request related code 200) related to executing the relevant methods of the present invention. In addition to the block 200, the computing environment 100 also includes, for example, a computer 101, a wide area network (WAN) 102, an end-user device (EUD) 103, a remote server 104, a public cloud 105, and a private cloud 106. In this embodiment, the computer 101 includes a processor group 110 (including a processing circuit 120 and a cache 121), a communication structure 111, a volatile memory 112, a persistent memory 113 (including an operating system 122 and a block 200, as described above), a peripheral device group 114 (including a user interface (UI), a device group 123, a memory 124, and an Internet of Things (IoT) sensor group 125), and a network module 115. The remote server 104 includes a remote database 130. The public cloud 105 includes a gateway 140 , a cloud orchestration module 141 , a host physical machine group 142 , a virtual machine group 143 , and a container group 144 .
[0038] Computer 101 may take the form of a desktop computer, a laptop computer, a tablet computer, a smart phone, a smart watch or other wearable computer, a mainframe computer, a quantum computer, or any other form of computer or mobile device now known or developed in the future that is capable of running programs, accessing a network, or querying a database, such as remote database 130. As is understood in the art of computer technology, execution of computer-implemented methods may be distributed among multiple computers and / or among multiple locations. On the other hand, in the presentation of this computing environment 100, the detailed discussion focuses on a single computer, particularly computer 101, to keep the presentation as simple as possible. Computer 101 may be located in the cloud, although Figure 1 On the other hand, computer 101 need not be in the cloud unless it can be positively indicated to any extent.
[0039] Processor group 110 includes one or more computer processors of any type now known or to be developed in the future. Processing circuit 120 can be distributed over multiple packages, such as multiple coordinated integrated circuit chips. Processing circuit 120 can implement multiple processor threads and / or multiple processor cores. Cache 121 is a memory located in the processor chip package, typically used for data or code that threads or cores running on processor group 110 should have quick access to. Cache memories are typically organized into multiple levels based on relative proximity to the processing circuit. Alternatively, some or all of the caches of the processor group may be located "off-chip". In some computing environments, processor group 110 may be designed to use quantum bits and perform quantum computing.
[0040] Computer readable program instructions are typically loaded onto the computer 101 to cause the processor group 110 of the computer 101 to perform a series of operating steps to implement a computer-implemented method, such that the instructions so executed will instantiate the method specified in the flowchart and / or illustrative description of the computer-implemented method contained in this document (collectively referred to as the "method of the present invention"). These computer readable program instructions are stored in various types of computer readable storage media, such as cache 121 and other storage media discussed below. The program instructions and related data are accessed by the processor group 110 to control and directly execute the method of the present invention. In the computing environment 100, at least some of the instructions for performing the method of the present invention can be stored in the block 200 in the persistent memory 113.
[0041] The communication fabric 111 is the signaling pathways that allow the various components of the computer 101 to communicate with each other. Typically, the fabric is comprised of switches and conductive pathways, such as those that make up a bus, a bridge, physical input / output ports, etc. Other types of signal communication pathways may be used, such as fiber optic communication pathways and / or wireless communication pathways.
[0042] The volatile memory 112 is any type of volatile memory currently known or developed in the future. Examples include dynamic type random access memory (RAM) or static type RAM. Typically, volatile memory is characterized by random access, but this is not required unless explicitly indicated. In the computer 101, the volatile memory 112 is located in a single package and is internal to the computer 101, but, alternatively or additionally, the volatile memory can be distributed over multiple packages and / or located externally relative to the computer 101.
[0043] Persistent memory 113 is any form of non-volatile memory for computers known now or to be developed in the future. The non-volatility of the memory means that the stored data will be maintained regardless of whether the computer 101 is powered and / or whether the persistent memory 113 is powered directly. Persistent memory 113 can be a read-only memory (ROM), but typically at least a portion of the persistent memory allows the writing of data, the deletion of data, and the rewriting of data. Some common forms of persistent memory include disks and solid-state storage devices. Operating system 122 can take a variety of forms, such as various known proprietary operating systems or open source portable operating system interface type operating systems using a kernel. The code included in block 126 typically includes at least some computer code involved in executing the method of the present invention.
[0044] The peripheral device group 114 includes a peripheral device group of the computer 101. The data communication connection between the peripheral device and other components of the computer 101 can be implemented in various ways, such as a Bluetooth connection, a near field communication (NFC) connection, a cable connection (such as a universal serial bus (USB) type cable), a plug-in connection (such as a secure digital (SD) card), a connection through a local area communication network, or even a connection through a wide area network such as the Internet. In various embodiments, the UI device group 123 may include components such as a display screen, a speaker, a microphone, a wearable device (such as goggles and smart watches), a keyboard, a mouse, a printer, a touchpad, a game controller, and a tactile device. The memory 124 is an external memory (such as an external hard drive) or a pluggable memory (such as an SD card). The memory 124 can be persistent and / or volatile. In some embodiments, the memory 124 can take the form of a quantum computing storage device for storing data in the form of quantum bits. In embodiments where computer 101 is required to have a large amount of storage (e.g., computer 101 locally stores and manages a large database), the memory may be provided by a peripheral storage device designed to store very large amounts of data, such as a storage area network (SAN) shared by multiple geographically dispersed computers. IoT sensor group 125 includes sensors that can be used in IoT applications. For example, one sensor may be a thermometer and another sensor may be a motion detector.
[0045] The network module 115 is a collection of computer software, hardware, and firmware that allows the computer 101 to communicate with other computers via the WAN 102. The network module 115 may include hardware, such as a modem or a Wi-Fi signal transceiver, software for packetizing and / or depacketizing data for transmission over a communication network, and / or web browser software for transmitting data over the Internet. In some embodiments, the network control function and the network forwarding function of the network module 115 are executed on the same physical hardware device. In other embodiments (e.g., embodiments utilizing software defined networks (SDN)), the control function and forwarding function of the network module 115 are executed on physically separated devices, so that the control function manages multiple different network hardware devices. Computer-readable program instructions for executing the method of the present invention can typically be downloaded to the computer 101 from an external computer or an external storage device via a network adapter card or a network interface contained in the network module 115.
[0046] WAN 102 is any wide area network (e.g., the Internet) capable of transmitting computer data over non-local distances by any technology for transmitting computer data now known or developed in the future. In some embodiments, the WAN may be replaced and / or supplemented by a local area network (LAN) designed to transmit data between devices located in a local area such as a Wi-Fi network. A WAN and / or LAN typically includes computer hardware such as copper transmission cables, optical transmission fibers, wireless transmissions, routers, firewalls, switches, gateway computers, and edge servers.
[0047] End-user device (EUD) 103 is any computer system used and controlled by an end-user (e.g., a customer of an enterprise operating computer 101), and may take any of the forms discussed above in connection with computer 101. EUD 103 typically receives data that is helpful and useful from the operation of computer 101. For example, in the hypothetical case where computer 101 is designed to provide recommendations to an end-user, the recommendations would typically be transmitted from network module 115 of computer 101 to EUD 103 via WAN 102. In this way, EUD 103 may display or otherwise present the recommendations to the end-user. In some embodiments, EUD 103 may be a client device, such as a thin client, a heavy client, a mainframe, a desktop, etc.
[0048] Remote server 104 is any computer system that provides at least some data and / or functionality to computer 101. Remote server 104 may be controlled and used by the same entity that operates computer 101. Remote server 104 represents a machine that collects and stores useful data for use by other computers, such as computer 101. For example, in the hypothetical case where computer 101 is designed and programmed to provide recommendations based on historical data, the historical data may be provided to computer 101 from remote database 130 of remote server 104.
[0049] The public cloud 105 is any computer system that is available to multiple entities and provides on-demand availability of computer system resources and / or other computer capabilities, particularly data storage (cloud storage) and computing capabilities, without requiring direct active management by users. Cloud computing typically utilizes resource sharing to achieve consistency and economies of scale. Direct active management of the computing resources of the public cloud 105 is performed by computer hardware and / or software of the cloud orchestration module 141. The computing resources provided by the public cloud 105 are typically implemented by virtual computing environments running on various computers that constitute the host physical machine group 142, which are various physical computers in and / or available for the public cloud 105. The virtual computing environment (VCE) is typically in the form of a virtual machine from the virtual machine group 143 and / or a container from the container group 144. It will be appreciated that these VCEs can be stored as images and can be transferred between various physical machine hosts as images or after the VCE is instantiated. The cloud orchestration module 141 manages the transmission and storage of images, deploys new instances of the VCE, and manages active instances of VCE deployment. Gateway 140 is a collection of computer software, hardware, and firmware that allows public cloud 105 to communicate over WAN 102 .
[0050] Some further explanation of virtualized computing environments (VCEs) will now be provided. A VCE can be stored as an "image." A new active instance of a VCE can be instantiated from an image. Two familiar types of VCEs are virtual machines and containers. Containers are VCEs that use operating system level virtualization. This refers to an operating system feature where the kernel allows multiple isolated user space instances (called containers) to exist. From the perspective of the programs running in them, these isolated user space instances typically behave like real computers. Computer programs running on a normal operating system can utilize all of the resources of that computer, such as connected devices, files and folders, network shares, CPU power, and quantifiable hardware capabilities. However, a program running within a container can only use the contents of that container and the devices assigned to that container, a feature known as containerization.
[0051] Private cloud 106 is similar to public cloud 105, except that the computing resources are only available to a single enterprise. Although private cloud 106 is depicted as communicating with WAN 102, in other embodiments, the private cloud can be completely disconnected from the Internet and can only be accessed through a local / private network. A hybrid cloud is a combination of multiple clouds of different types (e.g., private, community, or public cloud types), typically implemented separately by different vendors. Each of the multiple clouds remains an independent discrete entity, but the larger hybrid cloud architecture is tied together through standardized or proprietary technologies that support orchestration, management, and / or data / application portability between multiple constituent clouds. In this embodiment, both public cloud 105 and private cloud 106 are part of a larger hybrid cloud.
[0052] As discussed, embodiments of the present invention include a computer program product, a computer-implemented method, and a computer system in which program code executed on one or more processors performs serverless computing-based continuous gateway monitoring for data changes in a data repository, one embodiment of which is described in detail in the following. Figure 2 As shown, one or more user systems 220 (or client systems) having one or more applications 222 may open respective long-lived connections 221 (i.e., connections with unlimited execution time) to a gateway interface 230, which may be Figure 1 The gateway interface 230 may be part of or may be associated with a gateway (e.g., gateway 140) in an embodiment of a computing environment of the present invention. In one or more implementations, the gateway interface 230 is used to monitor data changes in one or more data repositories 240. For example, the data repositories 240 may be one or more databases, data storage systems, data sources, etc., which may experience changes in data over time.
[0053] In one or more implementations, the gateway interface 230 includes an agent that receives a monitoring request from the user system 220 to monitor data changes in the data repository 240. The request can be received via an open connection 221. Upon receiving the monitoring request, the gateway interface 230 calls 231 a serverless setup service 232, which in one embodiment is implemented as a function as a service (FaaS). The call is synchronized with the receipt of the monitoring request, and in one embodiment, the input is metadata about the user's original request, and the output of the serverless setup service 232 is metadata for facilitating the establishment of an upstream connection, which in one example is used to establish an open connection 233 between the gateway interface 230 and the data repository 240. This connection 233 is a second long-lived connection, that is, a connection that has an infinite execution time when established.
[0054] In addition to having an agent (e.g., a software agent) within the gateway interface 230 to accept or receive monitoring requests from a user system, the gateway interface 230 also has an agent (e.g., a software agent) to monitor data changes in the data repository 240. For example, in one or more implementations, the gateway interface 230 can receive or capture a data change segment or other data change indication 241, and in response to receiving the data change segment, can call 235 or generate a serverless message processing service 234. In one embodiment, calling the serverless message processing service 234 includes providing as input a data change segment or data change indication received from the data repository 240 through an open connection between the gateway interface 230 and the data repository 240. In one embodiment, the serverless message processing service 234 returns a mutation data change message to the gateway interface 230, and the gateway interface 230 returns a mutation data change message 237 to the user system 220, such as the user application 222, that initiated the monitoring request. Note that in one or more embodiments, the serverless setup service / function 232 can be received from or identified by the user system 220, for example, as can the serverless message processing service / function 234. Both of these may be provided by the user system / application to ensure, for example, that the connection opened between the gateway and the data repository meets the user requirements, and that the mutation data change messages returned to the user system / application are formatted as required by the user application.
[0055] For example, Figure 3A Another embodiment of a continuous gateway monitoring workflow based on serverless computing according to one or more aspects of the present invention is depicted. In one or more implementations, the serverless setup service and the serverless message processing service can be defined or provided as a function as a service (FaaS). In one embodiment, a user (or client) or other computing environment operator can define the service or function code to be used, including the serverless setup service / function and the serverless message processing service / function 300. In addition to establishing the serverless setup service and the serverless message passing processing service to be used, an agent (including a function prompt) 310 is also defined and / or implemented. For example, in one embodiment, the agent includes a prompt agent that creates a connection between the gateway interface and the data repository based on receiving a monitoring request, and a prompt agent that mutates (or changes) the data change indication from the data repository into a format desired by the user system or application. In this way, a computing resource provider (e.g., a cloud-based provider) can run or execute the serverless setup service code and the serverless message passing processing service code when prompted or called from the gateway interface 320, respectively.
[0056] Figure 3BDescribes further details of one embodiment of a serverless setup service / function workflow and a serverless message processing service / function workflow according to one or more aspects of the present invention. Figure 3B As shown, in one embodiment, the service to be called can be implemented as a function as a service (FaaS). The serverless setup service is synchronized with the receipt of input, in particular with the receipt of a monitoring request at the gateway interface and metadata about the user's original request. The serverless setup service is configured to facilitate the establishment of an upstream connection between the gateway interface and the data repository in question, wherein the output is a message confirming the establishment of the upstream connection. In one embodiment, the prompt condition may be the receipt of a monitoring request from a user system. The setup function may be a cold start function, and depending on the implementation, the timeout for terminating the serverless service may be set to a desired default timeout.
[0057] In one or more embodiments, the serverless message processing service / function is a synchronous function, wherein in one embodiment, the invocation of the function is synchronized to the receipt of a data change indication from a data repository at a gateway interface. The input to the message processing service may include metadata used when establishing an upstream connection, and the service is implemented to process data change indications in a data stream from a data repository and return a mutation data change message. In one embodiment, the prompt condition is a data change on a data repository provided to the gateway interface. In one or more implementations, the message processing function is not cold-started, but pre-started, for example, to reduce the waiting time that may occur when the function is first called or after a period of inactivity. For example, the timeout for stopping or terminating the message processing function upon completion can be customized based on user input or requirements. Note that when the gateway interface is prompted by the occurrence of an associated event, each service / function will execute its specific process. When the two services / functions indicated are called, the computing resource provider running the service either executes the service on a running server, or if no server is currently available, a new server can be activated to perform the corresponding function.
[0058] Figure 4 Another embodiment of a computing environment incorporating and / or using one or more aspects of the present invention is depicted. In one implementation, computing environment 210' may be similar to Figure 2 computing environment 210, and / or Figure 1The computing environment 100 of the present invention. In the depicted implementation, in addition to the gateway interface 230, a gateway sidecar 400 is provided to interact with the function as a service (FaaS) code that provides the serverless computing-based features discussed herein. In one implementation, the gateway interface 230 is connected to a user or client system, such as a user or client application, and accepts data access requests, including monitoring requests. The gateway interface can maintain data repository connections 233 to multiple data repositories 240 using lifecycle management via the gateway sidecar 400.
[0059] In one or more embodiments, the gateway sidecar 400 interacts with the function as a service (FaaS) code to provide the functionality disclosed herein. For example, the gateway sidecar 400 facilitates serverless invocation of a setup service / function to establish a data repository connection 233 (i.e., an upstream connection between the gateway and the data repository 240), monitors data changes in the data repository, serverless invocation or generation of a message processing service to process data change indications or feeds, and forwards appropriate mutation data change messages from the gateway to the user system, after which the message processing service can be serverless stopped or terminated. In this way, the message processing service runs only when needed.
[0060] Figure 5 100 'is a more detailed embodiment of a computing environment 210 'that incorporates and uses one or more aspects of the present invention. In one or more embodiments, aspects of computing environment 210 'can be the same or similar to one or more features of computing environment 100, as well as Figure 2 Computing Environment 210 and Figure 4 210 ' is the same or similar in one or more aspects. As shown, multiple types of clients or users can access the function as a service (FaaS) / serverless system via the API gateway interface 230, including one or more user interfaces (UI) 500, one or more command line interfaces (CLI) 501, and one or more user or client systems 220. In the depicted implementation, the interface provided to the user is encapsulated as a representational state transfer (REST) API 502 as a way to connect components in a service or microservice architecture.
[0061] Authentication and authorization may be managed by an identity manager 505 with reference to one or more identity providers 506. Authentication and authorization may be facilitated by maintaining client or user related information in a confidential data repository 510 from a confidential data repository 511. The entire configuration in the system may be stored in a configuration database 515. As a function as a service (FaaS), in one implementation, a setup service ("Setup" FaaS) 232 and a message processing service (Message Processing FaaS) 234 may be built to run in a Docker image stored in a Docker registry 520. Supporting services include an image manager 521, a function manager 522, and an API manager 512, as well as a gateway sidecar 400, which facilitates calling the corresponding setup service 232 and message processing service 234. When there is a data change on the data repository 240, in one embodiment, an event 530 is sent to an event bus 532 driven by an external event driver 534. A notification is then sent to the function manager 522 via the gateway sidecar 400, and the function manager 522 may call or spawn a message processing service ("message processing" FaaS) 234. The output of the service, i.e., the mutation data change message, may then be sent to the user system 220 that submitted the monitoring request via the REST API 502 and the gateway interface 230.
[0062] refer to Figure 6A-6B Further details of one embodiment that facilitates processing in a computing environment are described as it relates to one or more aspects of the present invention.
[0063] refer to Fig. 6A In one embodiment, a gateway interface executed on one or more processors of a computing environment receives a monitoring request from a user system to monitor data changes in a data repository 600. Based on receiving the monitoring request, the gateway interface calls a serverless setup service to establish a connection between the gateway interface and the data repository of the computing environment to be monitored for data changes 602. In addition, the gateway interface calls a serverless message processing service to mutate a data change indication from the data repository received at the gateway interface through the connection into a mutated data change message indicating a data change at the data repository for return to the user system according to the monitoring request, and terminates thereafter 604.
[0064] In one example, a connection between a gateway interface and a data repository to be monitored for data changes has an infinite execution time 606 when established.
[0065] In one embodiment, invoking the serverless setup service includes invoking, by the gateway service, the serverless setup service with user parameters associated with the monitoring request to establish a connection 608 between the gateway interface and the data repository to be monitored for data changes.
[0066] See also Figure 6B In one embodiment, the method further includes: monitoring, by the gateway interface, a connection between the gateway interface and the data repository for a data change indication from the data repository 610. In one example, the method further includes: receiving, at the gateway interface, a data change indication from the data repository via a connection, wherein the data change indication from the data repository includes a first data change indication format, and the mutation data change message for returning to the user system in accordance with the monitoring request includes a second data change indication format, the second data change indication format being different from the first data change indication format 612.
[0067] In one embodiment, the method further comprises: based on the monitoring request, facilitating another infinite execution time connection between the gateway interface of the computing environment and the user system 614. In one example, the method comprises: returning a mutation data change message 616 to the user system according to the monitoring request via another infinite execution time connection by the gateway interface.
[0068] In one embodiment, the serverless setup service is a first function as a service FaaS, and the serverless message processing service is a second function as a service FaaS 618 .
[0069] refer to Figure 7 An embodiment of a computing environment for incorporating and using one or more aspects of the present invention is described. As an example, the computing environment can be of various architectures and various types, including but not limited to: personal computing, client-server, distributed, virtual, simulated, partitioned, non-partitioned, cloud-based, grid, time-sharing, clustered, peer-to-peer, mobile, with one or more nodes, with one or more processors, and / or any other type of environment and / or configuration, etc., which is capable of performing processes such as storing data in a selected manner as described herein and retrieving and using the data to generate an optimal task solution for a selected event. Aspects of the present invention are not limited to a particular architecture or environment.
[0070] See also Figure 7 In one example, the computing environment 700 includes a computer system 702, which is shown, for example, in the form of a general-purpose computing device. The computer system 702 may include (but is not limited to) one or more processors or processing units 704 (e.g., central processing unit (CPU) and / or special processor, etc.), a memory 706 (e.g., system memory, main memory, main storage device, central storage device or storage device), and one or more input / output (I / O) interfaces 708, which are interconnected via one or more buses and / or other connections. For example, the processor 704 and the memory 706 are connected to the I / O interface 708 via one or more buses 710, and the processors 704 are connected to each other via one or more buses 711.
[0071] For example, bus 711 is a memory or cache coherent bus, and bus 710 represents one or more of a variety of types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. For example, but not limited to, such architectures include Industry Standard Architecture (ISA), Micro Channel Architecture (MCA), Enhanced ISA (EISA), Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI).
[0072] The memory 706 may include, for example, a cache 112, such as a shared cache, which may be coupled to a local cache 714 of one or more processors 704 via, for example, one or more buses 711. In addition, the memory 706 may include one or more programs or applications 716, at least one operating system 718, and optionally one or more of a gateway interface 720, a serverless service 721, and a data repository 722, and one or more computer-readable program instructions 723 for use in accordance with one or more aspects of the present invention. The computer-readable program instructions 723 may be configured to perform the functions of embodiments of aspects of the present invention.
[0073] The computer system 702 can communicate with one or more external devices 730, such as a user terminal, a tape drive, a pointing device, a display, and one or more data storage devices 734, via, for example, an I / O interface 708. The data storage device 734 can store one or more programs 736, one or more computer-readable program instructions 738, and / or data, etc. The computer-readable program instructions can be configured to perform the functions of embodiments of various aspects of the present invention.
[0074] The computer system 702 may also communicate via, for example, the I / O interface 708 with a network interface 732, which enables the computer system 702 to communicate with one or more networks, such as a local area network (LAN), a general wide area network (WAN), and / or a public network (e.g., the Internet), thereby providing communications with other computing devices or systems.
[0075] The computer system 702 may include and / or be coupled to removable / non-removable, volatile / non-volatile computer system storage media. For example, it may include and / or be coupled to non-removable non-volatile magnetic media (commonly referred to as a "hard drive"), a disk drive for reading and writing to a removable non-volatile disk (e.g., a "floppy disk"), and / or an optical drive for reading or writing to a removable non-volatile optical disk (e.g., a CD-ROM, DVD-ROM, or other optical media). It should be understood that other hardware and / or software components may be used in conjunction with the computer system 702. Examples include, but are not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data archival storage systems, etc.
[0076] The computer system 702 may operate with numerous other general or special purpose computing system environments or configurations. Examples of known computing systems, environments, and / or configurations that may be used with the computer system 702 include, but are not limited to, personal computer (PC) systems, server computer systems, thin clients, thick clients, handheld or laptop devices, multiprocessor systems, microprocessor-based systems, set-top boxes, programmable consumer electronics, network PCs, minicomputer systems, mainframe computer systems, and distributed cloud computing environments including any of the above systems or devices, and the like.
[0077] The computing environments described herein are merely examples of computing environments that may be used. Other environments may be used, including but not limited to non-partitioned environments, partitioned environments, cloud environments, distributed environments, non-distributed environments, virtual environments, and / or simulated environments; embodiments are not limited to any one environment. Although various examples of computing environments are described herein, one or more aspects of the present invention may be used with multiple types of environments. The computing environments provided herein are merely examples.
[0078] In addition to the above, a service provider that provides customer environment management may also provide, commit, deploy, manage, service, etc., one or more aspects. For example, a service provider may create, maintain, support, etc. computer code and / or computer infrastructure that performs one or more aspects for one or more customers. In return, as an example, the service provider may receive payment from the customer under a subscription and / or fee agreement. Additionally, or alternatively, the service provider may receive payment from the sale of advertising content to one or more third parties.
[0079] In one aspect, an application for performing one or more embodiments may be deployed. As an example, deployment of an application includes providing a computer infrastructure operable to perform one or more aspects of one or more embodiments.
[0080] As another aspect, a computing infrastructure may be deployed including integrating computer readable code into a computing system, wherein the code in combination with the computing system is capable of performing one or more embodiments.
[0081] As another aspect, a process for integrating computing infrastructure can be provided, the process comprising integrating computer readable code into a computer system. The computer system comprises a computer readable medium, wherein the computer medium comprises one or more embodiments. The code combined with the computer system can execute one or more embodiments.
[0082] Although various embodiments are described above, these are merely examples. For example, additional, fewer, and / or other features, constraints, tasks, and / or events may be considered. Many variations are possible.
[0083] The term used herein is only used to describe the purpose of specific embodiments, and is not intended to limit the present invention. As used herein, the singular form "one", "an" and "the" are intended to also include plural forms, unless the context clearly indicates otherwise. It will also be understood that the term "include" (and any form included, such as "include"), "have" (and any form with) and "contain" (and any form containing) are open linking verbs. Therefore, the method or equipment of "include", "have", "include" or "contain" one or more steps or elements have these one or more steps or elements, but are not limited to only have these one or more steps or elements. Similarly, the step or element of the method of "include", "have", "include" or "contain" one or more features have these one or more features, but are not limited to only have these one or more features. In addition, the equipment or structure configured in a certain way is configured at least in this way, but can also be configured in an unlisted way.
[0084] The corresponding structures, materials, operations and equivalents of all functionally defined means or steps in the following claims (if any) are intended to include any structure, material or operation for performing the function in combination with other elements specifically indicated in the claims. The description of one or more embodiments is provided for the purpose of illustration and description, not exhaustive, nor is it intended to limit the invention to the form described. It is obvious to those of ordinary skill in the art that many modifications and variations can be made. The selection and description of the embodiments are to best explain the various aspects and practical applications, so that those of ordinary skill in the art can understand that the present invention can have various embodiments with various changes suitable for the desired specific use.
Claims
1. A computer program product for facilitating processing within a computing environment, the computer program product comprising: One or more computer-readable storage media and program instructions contained therein, the program instructions being readable by a processing circuit to cause the processing circuit to perform a method comprising: receiving, at a gateway interface of the computing environment, from a user system a monitoring request to monitor data changes in a data repository; Invoking, by the gateway interface, a serverless setup service based on receiving the monitoring request to establish a connection between the gateway interface and the data repository of the computing environment whose data is to be monitored for change; and The server-less message processing service is called by the gateway interface to mutate a data change indication from the data repository received through the connection at the gateway interface into a mutated data change message indicating a data change at the data repository, for return to the user system in accordance with the monitoring request, and terminated thereafter.
2. The computer program product according to claim 1, wherein: The connection between the gateway interface and the data repository to be monitored for data changes, when established, has an infinite execution time.
3. The computer program product according to claim 2, wherein: Invoking the serverless setup service includes invoking, by the gateway interface, the serverless setup service with user parameters associated with the monitoring request to establish the connection between the gateway interface and the data repository to be monitored for data changes.
4. The computer program product of claim 2, further comprising: The connection between the gateway interface and the data repository is monitored, by the gateway interface, for the data change indication from the data repository.
5. The computer program product of claim 4, further comprising: The data change indication is received at the gateway interface through the connection from the data repository, wherein the data change indication from the data repository includes a first data change indication format, and the mutation data change message returned to the user system in accordance with the monitoring request includes a second data change indication format, the second data change indication format being different from the first data change indication format.
6. The computer program product of claim 2, further comprising: Based on the monitoring request, facilitating maintaining another indefinite execution time connection between the gateway interface of the computing environment and the user system.
7. The computer program product of claim 6, further comprising: The mutation data change message is returned to the user system by the gateway interface through the other infinite execution time connection according to the monitoring request.
8. The computer program product of claim 1, wherein: The serverless setup service is a first function as a service FaaS, and the serverless message processing service is a second function as a service FaaS.
9. A computer-implemented method comprising: receiving, at a gateway interface of the computing environment, from a user system a monitoring request to monitor data changes in a data repository; Invoking, by the gateway interface, a serverless setup service based on receiving the monitoring request to establish a connection between the gateway interface and the data repository of the computing environment whose data is to be monitored for change; as well as The server-less message processing service is called by the gateway interface to mutate a data change indication from the data repository received through the connection at the gateway interface into a mutated data change message indicating a data change at the data repository, for return to the user system in accordance with the monitoring request, and terminated thereafter.
10. The computer-implemented method of claim 9, wherein: The connection between the gateway interface and the data repository to be monitored for data changes, when established, has an infinite execution time.
11. The computer-implemented method of claim 10, wherein: Invoking the serverless setup service includes invoking, by the gateway interface, the serverless setup service with user parameters associated with the monitoring request to establish the connection between the gateway interface and the data repository to be monitored for data changes.
12. The computer-implemented method of claim 10, further comprising: monitoring, by the gateway interface, the connection between the gateway interface and the data repository for the data change indication from the data repository; as well as The data change indication is received at the gateway interface through the connection from the data repository, wherein the data change indication from the data repository includes a first data change indication format, and the mutation data change message returned to the user system in accordance with the monitoring request includes a second data change indication format, the second data change indication format being different from the first data change indication format.
13. The computer-implemented method of claim 10, further comprising: based on the monitoring request, facilitating maintaining another indefinite execution time connection between the gateway interface of the computing environment and the user system; as well as The mutation data change message is returned to the user system by the gateway interface through the other infinite execution time connection according to the monitoring request.
14. The computer-implemented method of claim 9, wherein: The serverless setup service is a first function as a service FaaS, and the serverless message processing service is a second function as a service FaaS.
15. A computer system for facilitating processing within a computing environment, the computer system comprising: Memory; as well as at least one processor in communication with the memory, wherein the computer system is configured to perform a method comprising: receiving, at a gateway interface of the computing environment, from a user system a monitoring request to monitor data changes in a data repository; Invoking, by the gateway interface, a serverless setup service based on receiving the monitoring request to establish a connection between the gateway interface and the data repository of the computing environment whose data is to be monitored for change; and The server-less message processing service is called by the gateway interface to mutate a data change indication from the data repository received through the connection at the gateway interface into a mutated data change message indicating a data change at the data repository, for return to the user system in accordance with the monitoring request, and terminated thereafter.
16. The computer system of claim 15, wherein: The connection between the gateway interface and the data repository to be monitored for data changes, when established, has an infinite execution time.
17. The computer system of claim 16, wherein: Invoking the serverless setup service includes invoking, by the gateway interface, the serverless setup service with user parameters associated with the monitoring request to establish the connection between the gateway interface and the data repository to be monitored for data changes.
18. The computer system of claim 16, further comprising: monitoring, by the gateway interface, the connection between the gateway interface and the data repository for the data change indication from the data repository; as well as The data change indication is received at the gateway interface through the connection from the data repository, wherein the data change indication from the data repository includes a first data change indication format, and the mutation data change message returned to the user system in accordance with the monitoring request includes a second data change indication format, the second data change indication format being different from the first data change indication format.
19. The computer system of claim 16, further comprising: based on the monitoring request, facilitating maintaining another indefinite execution time connection between the gateway interface of the computing environment and the user system; as well as The mutation data change message is returned to the user system by the gateway interface through the other infinite execution time connection according to the monitoring request.
20. The computer system of claim 15, wherein: The serverless setup service is a first function as a service FaaS, and the serverless message processing service is a second function as a service FaaS.