Using interchangeable non-computing resources for cloud-based applications

By receiving multiple keys to define the connection between non-computing resources and configuring the system, the problem of difficulty in deploying applications across different non-computing resources is solved, efficient switching and configuration between different platforms is achieved, and application portability is improved and independence.

CN119213421APending Publication Date: 2024-12-27MICROSOFT TECHNOLOGY LICENSING LLC
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
CN202380040369.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-06-06
Filing Date
2023-04-17
Publication Date
2024-12-27

AI Technical Summary

Technical Problem

When developing cloud-based applications, developers need to specify in their application code which non-computing resources the application should be deployed to, and it becomes difficult to deploy applications across different non-computing resources (such as databases, cache systems, messaging queues), especially Switching between different platforms is inefficient and requires rewriting the code.

Method used

By receiving multiple keys, each corresponding to multiple non-computing resources, defining the connection between the service and the non-computing resources, and configuring the system at deployment time to adapt to the behavior of different non-computing resources, providing an abstraction layer that allows Users choose and switch between multiple non-computing resources to avoid updating application code.

Benefits of technology

It realizes convenient switching and configuration between different non-computing resources without changing the application code, improves the portability and independence of the application, and simplifies the cross-platform deployment process.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119213421A_ABST
    Figure CN119213421A_ABST
Patent Text Reader

Abstract

In an example, a system for using interchangeable non-computing resources is provided. The system includes at least one processor and a memory storing instructions that, when executed by the at least one processor, cause the system to: receive a first key corresponding to a first non-computing resource, define a first connection with the first non-computing resource based on the first key; receiving a second key corresponding to a second non-computing resource, and defining a second connection with the second non-computing resource based on the second key; an indication corresponding to the selection of the first non-computing resource is received, and the system is configured at the generated application deployment to interface with the first non-computing resource.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] During the development of cloud-based applications, developers may need computing resources and non-computing resources. Developers may need to specify in the application code which non-computing resources the application should be deployed to. If the developer wants to deploy the application to different non-computing resources, they may need to rewrite the application's code to specify which different non-computing resources the application should be deployed to. Such systems and methods can make it difficult to deploy applications across different non-computing resources (e.g., database platforms, cache and storage systems, messaging queues, etc.), which can run on different underlying platforms (e.g., cloud platforms), and switching between different resources running on different platforms can be frustrating and inefficient.

[0002] It is with respect to these and other general considerations that the described embodiments are described.Although relatively specific problems have also been discussed, it should be understood that the embodiments should not be limited to solving the specific problems identified in the background. Summary of the invention

[0003] Aspects of the present disclosure relate to methods, systems, and media for using interchangeable non-computing resources, such as for cloud-based applications.

[0004] In some examples, a system for using interchangeable non-computing resources is provided. The system includes at least one processor and a memory storing instructions, which, when executed by the at least one processor, causes the system to: receive a first key corresponding to a first non-computing resource, define a first connection with the first non-computing resource based on the first key, receive a second key corresponding to a second non-computing resource, define a second connection with the second non-computing resource based on the second key, receive an indication corresponding to a selection of the first non-computing resource; and configure the system to interface with the first non-computing resource when deploying a generated application.

[0005] In some examples, a method of using interchangeable non-computing resources is provided. The method includes receiving a first key corresponding to a first database, defining a first connection between a service and the first database based on the first key, receiving a second key corresponding to a second database, defining a second connection between the service and the second database based on the second key, receiving an indication corresponding to a selection of the first database, and configuring the service to interface with the first database when deploying the service.

[0006] In some examples, a method of using interchangeable non-computing resources is provided. The method includes: receiving a plurality of keys, each key corresponding to a respective one of a plurality of non-computing resources, defining a connection between a service and each of the plurality of non-computing resources according to the plurality of keys, receiving an indication corresponding to a selection of a first non-computing resource of the plurality of non-computing resources, configuring at a deployment of the service to interface with the first non-computing resource and sending, and at the deployment, configuration instructions for the selected non-computing resource. The configuration instructions adapt a behavior of the first non-computing resource.

[0007] Some examples also include receiving an indication corresponding to selection of a second non-computing resource, and reconfiguring the system in the deployment to interface with the second non-computing resource.

[0008] In some examples, the first key and the second key are connection strings.

[0009] Some examples also include updating the deployment manifest based on the selection of the first non-computing resource.

[0010] In some examples, receiving a first key corresponding to the first non-computing resource also includes receiving a first set of authentication data corresponding to the first non-computing resource. Further, defining a first connection between the service and the first non-computing resource based on the first key also includes defining the first connection between the service and the first non-computing resource based on the first key and the first set of authentication data.

[0011] Some examples also include transmitting the configuration instructions to the first non-computing resource at the deployment location, whereby the configuration instructions adapt the behavior of the first non-computing resource.

[0012] In some examples, the first non-computing resource is one of a database, a cache system, or a messaging queue.

[0013] Some examples also include receiving an indication corresponding to a selection of a second non-computing resource in the plurality of non-computing resources, and reconfiguring the service to interface with the second non-computing resource when deploying the service.

[0014] In some examples, reconfiguration of the service includes updating the deployment manifest based on the second non-computing resource.

[0015] In some examples, receiving a plurality of keys (each key corresponding to a respective one of the plurality of non-computing resources) further comprises receiving a plurality of authentication data sets. Further, defining a connection between the service and the non-computing resource based on the plurality of keys further comprises defining a connection between the service and the non-computing resource based on the plurality of keys and the authentication data sets.

[0016] In some examples, at least one of the plurality of non-computing resources is one of a database, a cache system, or a messaging queue.

[0017] This summary is provided to introduce some concepts in a simplified form, which are further described in the detailed description below. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. Additional aspects, features, and / or advantages of the examples will be set forth in part in the following description and in part will be obvious from the description, or may be learned by practice of the disclosure. BRIEF DESCRIPTION OF THE DRAWINGS

[0018] Non-limiting and non-exhaustive examples are described with reference to the following figures.

[0019] Figure 1 An overview of an example system for using interchangeable non-computing resources according to aspects described herein is illustrated.

[0020] Figure 2 According to the aspects described in this article Figure 1 Detailed schematic diagram of a portion of an example system.

[0021] Figure 3 According to the aspects described in this article Figure 1 Detailed schematic diagram of parts of the example system

[0022] Figure 4 An example system for using interchangeable non-computing resources according to aspects described herein is illustrated.

[0023] Figure 5A FIG. 1 illustrates a first configuration according to the aspects described herein. Figure 4 Example system.

[0024] Figure 5B FIG. 1 shows a second configuration according to the aspects described herein. Figure 4 Example system.

[0025] Figure 5C FIG. 1 shows a third configuration according to the aspects described herein. Figure 4 Example system.

[0026] Figure 6 An example method for using interchangeable non-computing resources according to aspects described herein is illustrated.

[0027] Figure 7 An example method for using interchangeable non-computing resources according to aspects described herein is illustrated.

[0028] Figure 8 A block diagram illustrating example physical components of a computing device for practicing aspects of the present disclosure.

[0029] Fig.9A and9B is a simplified block diagram of a mobile computing device for practicing aspects of the present disclosure.

[0030] Fig.10 is a simplified block diagram of a distributed computing system in which aspects of the present disclosure may be practiced.

[0031] Fig.11 A tablet computing device is illustrated for performing one or more aspects of the present disclosure. DETAILED DESCRIPTION

[0032] In the following detailed description, reference is made to the accompanying drawings which form a part of this document, in which specific embodiments or examples are presented in an illustration. These aspects may be combined, other aspects may be utilized, and structural changes may be made without departing from the present disclosure. The embodiments may be practiced as methods, systems, or devices. Accordingly, the embodiments may take the form of hardware implementation, complete software implementation, or implementation combining software and hardware aspects. The following detailed description should not be understood in a limiting sense, and the scope of the present disclosure is defined by the appended claims and their equivalents.

[0033] As mentioned above, during the development of cloud-based applications, developers may need computing resources and non-computing resources. For example, a computing resource can be a device that includes computing hardware (such as a processor and memory). Examples of computing resources may include computers and / or servers. In contrast, non-computing resources can be services that computing resources use to store and retrieve data from. For example, computing resources can include processors, such as central processing units (CPUs) that perform computing and / or data movement operations (e.g., read / write commands). However, commands executed by the CPU may be computationally expensive compared to non-computing resources that may not use the CPU to execute commands. For this purpose, developers can program and deploy applications on computing resources (e.g., computers or servers) and connect their applications to non-computing resources (e.g., database services) to track indicators of users who may be using services related to the programmed applications.

[0034] Developers may need to specify in the application code which non-computing resource the application should be deployed to. If the developer wishes to deploy the application to a different non-computing resource, they may need to rewrite the application code to specify this different non-computing resource. Such systems and methods can make it difficult to deploy applications across different non-computing resources (e.g., databases, caching systems, messaging queues, etc.) that may run on one of multiple different underlying platforms (e.g., cloud platforms), and switching between different resources running on different platforms can be frustrating and inefficient. For example, because the application's code needs to be rewritten every time the developer wants to swap non-computing resources.

[0035] Cloud-native applications consist not only of compute, storage, network, and identity resources, but also of the connections and references between them. Developers may be concerned with the dependencies of one or more applications on resources such as databases and messaging queues. Developers may want to express which dependencies are required and how the code will access them, while minimizing the degree to which software parts depend on each other (e.g., coupling) to increase independence and portability of services. Application models that attempt to fully describe applications and their requirements may require the ability to model and deploy connections to the underlying platform.

[0036] In most deployment systems today, connections are expressed as resource references in the template language. However, at deployment, these references are resolved into values ​​and deployed to the target platform. Once deployed, the source of the referenced value is lost, and there may be no information about where the value was extracted from.

[0037] Developers often use common APIs and connection strings as interfaces between services and infrastructure for portability across development platforms and clouds, and in some instances, across multiple clouds. Switching between clouds or non-compute resources (e.g., that may be associated with different providers) may require updating configuration to pass one or more of username, password, host, port, or connection string values.

[0038] Accordingly, aspects of the present disclosure relate to methods and systems for using interchangeable non-computing resources, such as for building cloud-based applications. In general, the mechanisms disclosed herein create an abstraction layer that allows users to select and switch between one or more non-computing resources without having to change application code. Thus, developers can write one set of application code and deploy the application to different locations without having to update the application code to specify which non-computing references need to be referenced.

[0039] More specifically, the mechanism disclosed herein may include receiving a plurality of keys, each key corresponding to a corresponding one of a plurality of non-computing resources, defining a connection between a service and each of the plurality of non-computing resources, receiving an indication corresponding to a portion of a first non-computing resource of the plurality of non-computing resources based on the plurality of keys, configuring the service to interface with the first non-computing resource; in the deployment of the service, receiving an indication corresponding to a selection of a second non-computing resource of the plurality of non-computing resources, and reconfiguring the service to interface with the second non-computing resource. Developers may not have to update the code of the service or an application corresponding to the service to reconfigure the service to interface with the second non-computing resource.

[0040] According to some aspects described herein, as a specific example, a developer may be building a shuttle scheduling service for a campus. The developer's application may be a front-end container that connects to a relational database server to track a user's shuttle trip. The developer may want to use a container to run the application locally, and then switch to a hosted database on a cloud server when deploying the application. The developer can write a deployment manifest that specifies details corresponding to various aspects of the front-end container. When the developer wants to deploy his application to a hosted database on a cloud server, the deployment manifest may be updated to switch between different non-computing resources (e.g., one or more cloud database resources) based on parameters (e.g., selection indications of one or more parameters). The developer's code may not change when one or more non-computing resources that interface with the container are swapped.

[0041] Figure 1 An example of a system 100 for using interchangeable non-computing resources in accordance with some aspects of the disclosed subject matter is shown. The system 100 includes one or more computing devices 102, one or more servers 104, a communication network or network 106, and a plurality of non-computing resources 108a, 108b, and 108c.

[0042] The computing device may include a communication system 110a, a resource connector engine 112a, and a resource configuration engine 114a. In some examples, the computing device 102 may execute at least a portion of the resource connector component 112a to connect an application or service to a non-computing resource at a deployment of a service application. Further, in some examples, the computing device 102 may execute at least a portion of the resource configuration component 114a to configure or adapt a specific behavior of a non-computing resource (e.g., a database, a cache system, a messaging queue, etc.), which may run on one of a plurality of different underlying platforms (e.g., a cloud platform).

[0043] The server 104 may include a communication system 110b, a resource connector engine 112b, and a resource configuration engine 114b. In some examples, the server 104 may execute at least a portion of the resource connector component 112b to connect an application or service to a resource at a deployment location of the service application. In addition, in some examples, the server 104 may execute at least a portion of the resource configuration component 114b to configure or adjust specific behaviors of non-computing resources (e.g., databases, cache systems, messaging queues, etc.), which may run on one of a plurality of different underlying platforms (e.g., a cloud platform).

[0044] Additionally or alternatively, in some examples, computing device 102 can communicate data to server 104 via communication network 106, which can execute at least a portion of resource connector components 112a and / or 112b and resource configuration components 114a and / or 114b. In some examples, resource connector components 112a and / or 112b can execute one or more portions of method / process 600, as follows in conjunction with Figure 6 Further, in some examples, resource configuration components 114a and / or 114b may perform one or more portions of method / process 600, as follows: Figure 6 Give a description.

[0045] The communication network 106 can communicate data from the computing device 102 and / or the server 104 to one or more of the plurality of non-computing resources 108a, 108b, and 108c. The plurality of non-computing resources 108a, 108b, and 108c can include one or more of a cloud database (e.g., a hosted cloud database), a relational database (e.g., a distributed relational database), or a sequel server container. Accordingly, one or more of the plurality of non-computing resources can be a database (e.g., a relational database, a cloud database, a hosted database, a distributed database, etc.). Additionally or alternatively, one or more of the plurality of non-computing resources can be a cache system or a messaging queue. Each of the plurality of non-computing resources can be configured to run on one of the plurality of underlying platforms (e.g., a cloud platform). Other types of non-computing resources to which data can be deployed from a cloud-based application that can be recognized by a person of ordinary skill in the art.

[0046] In some examples, the computing device 102 and / or the server 104 may be any suitable computing device or combination of devices that a requester may use, such as a desktop computer, a laptop computer, a smart phone, a tablet computer, a wearable computer, a server computer, a virtual machine executed by a physical computing device, a web server, etc. In addition, in some examples, there may be multiple computing devices 102 and / or multiple servers 104. Although the illustrated example shows one computing device 102, one server 104, and three non-computing resources 108a, 108b, 108c, one skilled in the art should recognize that there may be any number of computing devices 102, servers 104, and / or non-computing resources 108a, 108b, 108c.

[0047] In some examples, communication network 106 can be any suitable communication network or combination of communication networks. For example, communication network 106 can include a Wi-Fi network (which can include one or more wireless routers, one or more switches, etc.), a point-to-point network (e.g., a Bluetooth network), a cellular network (e.g., a 3G network, a 4G network, a 5G network, etc. that conforms to any suitable standard), a wired network, etc. In some examples, communication network 106 can be a local area network (LAN), a wide area network (WAN), a public network (e.g., the Internet), a private or semi-private network (e.g., a company or university intranet), any other suitable type of network, or any suitable combination of networks. Figure 1 The communication links (arrows) shown may be any suitable communication links or combinations of communication links, such as wired links, fiber optic links, Wi-Fi links, Bluetooth links, cellular links, and the like.

[0048] Figure 2 A detailed schematic diagram of a resource connector engine or component 112 of an example system 100 for using interchangeable non-computing resources is shown. The resource connector component 112 includes multiple components or engines that implement various aspects of the resource connector component 112. For example, the resource connector component 112 includes a resource selection component 202, a resource identification component 204, an authentication component 206, a deployment manifest 208, and / or an application deployment component 210.

[0049] Resource selection component 202 may include (e.g., stored in a memory location corresponding to resource selection component 202) and / or generate an indication of one or more non-computing resources selected by a user to interface with a service or application. For example, the indication may correspond to the indication previously described herein. Figure 1 The selection of one or more of the plurality of non-computing resources 108a, 108b, 108c discussed. The resource selection component 202 may receive user input corresponding to the selected non-computing resource. Alternatively, the behavior of one or more non-computing resources may generate an indication of a different non-computing resource for selection. For example, if a first non-computing resource has an upper threshold of network traffic that is approaching, if a second non-computing resource has a network traffic threshold that is higher than the first non-computing resource, an indication corresponding to the second non-computing resource may be generated. The selection of the non-computing resource may not require any code changes to the service or application.

[0050] The resource identification component 204 may include (e.g., stored in a memory location corresponding to the resource identification component 204) and / or generate one or more indications of non-computing resources that may be connected to a particular service or application. For example, one or more non-computing resources (e.g., from a plurality of non-computing resources 108a, 108b, 108c) may be identified by connecting to a particular server, or connecting to a particular computing device, or logging into a particular network connection. Alternatively, in some examples, one or more non-computing resources may be identified by receiving a key (e.g., a connection string) corresponding to one or more non-computing resources. Alternatively, the resource identification component 204 may include an indication of one or more non-computing resources identified by a user, such as by inputting parameters or other types of system configurations.

[0051] Authentication component 206 may include (e.g., stored in a memory location corresponding to authentication component 206) and / or generate an indication of authentication data that may be used to connect a service or application to one or more non-computing resources. For example, the authentication data may include a username and password corresponding to a specific user or user group that is granted access rights to the resource. Additionally or alternatively, the authentication data may include multi-factor authentication data. For example, the non-computing resource may provide a multi-factor authentication code to the user, such as via an email, a phone number, an application notification, etc. Authentication component 206 may obtain the multi-factor authentication data (e.g., from the user, directly from an email, a phone number, an application notification, etc.). Additionally or alternatively, authentication component 206 may receive authentication data in other ways, such as provided by information from the user, or transmitted from information in a database storing authentication data corresponding to a specific user or user group, which authentication data may be configured for each service or application as a non-computing resource to be interfaced.

[0052] In some examples, the authentication component 206 can be used in conjunction with the resource identification component 204. For example, a connection can be defined between a non-computing resource and a service based on one or more keys and one or more sets of authentication data. For example, if there are two non-computing resources, then a first key and a first set of authentication data can correspond to a first non-computing resource of the two non-computing resources, and a second key and a second set of authentication data can correspond to a second non-computing resource of the two non-computing resources. Therefore, the two non-computing resources can be identified by receiving two sets of keys and / or authentication data corresponding to two different non-computing resources.

[0053] The deployment manifest component 208 may include (e.g., stored in a memory location corresponding to the deployment manifest component 208) and / or generate instructions for a deployment manifest for an application that can be deployed to one or more non-computing resources. For example, the services described herein may be built by a developer to complete one or more tasks. The service may include one or more applications that may be run locally or via non-computing resources (e.g., a cloud database). When an application is deployed to a non-computing resource, a deployment manifest may be generated. The deployment manifest may include instructions corresponding to which interface of a plurality of non-computing resources the application is to be configured to connect to.

[0054] Application deployment component 210 may include (e.g., stored in a memory location corresponding to application deployment component 210) and / or generate instructions that, when executed by a processor, cause an application to be deployed. For example, an application may be deployed to multiple non-computing resources (e.g., Figure 1 The application deployment component 210 may compile source code corresponding to the application. Additionally or alternatively, the application deployment component 210 may also build the application. This built application may then be transferred from a host computing device or server (e.g., computing device 102 and / or server 104) to one or more non-computing resources (e.g., resources 108a, 108b, 108c). The non-computing resource 108 may be remote from the host computing device or server. For example, the non-computing resource 108 may run one or more remote servers, such as one or more remote servers stored in one or more data centers, which are remote from the host computing device or server.

[0055] Typically, resource connector engine 112 acts as an abstract connector that increases the portability of an application or service. Resource connector engine 112 can increase the portability of an application or service by allowing the application or service to exchange interfaces with any of a plurality of non-computing resources without requiring developers to rewrite the application or service.

[0056] Figure 3 A detailed schematic diagram of a resource configuration engine 114 of an example system 100 for using interchangeable non-computing resources is illustrated. The resource configuration engine 114 includes a plurality of components or engines that implement various aspects of the resource configuration component 114. For example, the resource configuration component 114 includes a resource identification component 302, a behavior definition component 304, a behavior adaptation component 306, and an application deployment component 308.

[0057] The resource identification component 302 may contain (e.g., stored in a memory location corresponding to the resource selection component 302) and / or generate an indication of one or more non-computing resources that may be configured by a particular service or application. For example, one or more non-computing resources (e.g., from the plurality of non-computing resources 108a, 108b, 108c) may be identified by connecting to a particular server, or connecting to a particular computing device, or logging into a particular network connection. Alternatively, in some examples, one or more non-computing resources may be identified by receiving a key (e.g., a connection string) corresponding to the one or more non-computing resources.

[0058] Alternatively, resource identification component 302 may include an indication of one or more non-computing resources identified by a user, such as via input parameters or other types of system configuration, wherein the one or more non-computing resources are capable of having one or more behaviors adapted using the mechanisms described herein.

[0059] In some examples, resource identification component 302 can be similar to resource identification component 204. However, in some examples, resource identification component 302 can be different from resource identification component 204, for example, in instances where resource identification component 204 identifies a non-computing resource that cannot be configured to adapt its behavior using the mechanisms described herein due to, for example, the configuration of the non-computing resource and / or pre-configured settings of the non-computing resource.

[0060] The behavior definition component 304 can contain (e.g., stored in a memory location corresponding to the behavior definition component 304) and / or generate indications of one or more behaviors to which the non-computing resource can adapt. An example of a defined behavior may be, in an instance where one or more of the non-computing resources is a database, defining a new table within one or more of the non-computing resources. The new table may be a state store (e.g., a data store containing metadata corresponding to one or more data states and / or state operations). Further examples of behaviors that can be defined may include one or more of a read operation, a transaction operation, an encryption operation, or any other configurable database operation recognized by a person of ordinary skill in the art.

[0061] The behavior adaptation component 306 can contain (e.g., be stored in a memory location corresponding to the behavior adaptation component 306) and / or generate computer-readable instructions that, when executed by a processor, cause the behavior of one or more non-computing resources to be adapted. For example, the behavior of one or more non-computing resources can be adjusted to implement one or more behavior definitions contained in and / or generated by the behavior definition component 304.

[0062] The application deployment component 308 may include (e.g., be stored in a memory location corresponding to the application deployment component 308) and / or generate instructions that, when executed by a processor, cause an application to be deployed. For example, an application may be deployed that includes the instructions of the behavior adaptation component 306 to adapt the behavior of one or more non-computing resources. The application deployment component 308 may compile source code corresponding to the application. Additionally or alternatively, the application deployment component 308 may compile source code corresponding to one or more behaviors that the non-computing resources are configured to be adapted to.

[0063] Additionally or alternatively, the application deployment component 308 can build an application. The built application can then be transferred from a host-side computing device or server (e.g., computing device 102 and / or server 104) to one or more non-computing resources (e.g., resources 108a, 108b, 108c). The non-computing resources 108a, 108b, 108c may be remote from the host-side computing device or server. For example, the non-computing resources 108a, 108b, 108c may run on one or more remote servers, such as one or more remote servers stored in one or more data centers, which are remote from the host-side computing device or server. The behavior of one or more non-computing resources can be adapted based on the reception of the deployed application. Additionally or alternatively, the behavior of one or more non-computing resources can be adapted based on the execution of instructions received by the deployed application.

[0064] In general, resource configuration component 114 allows non-computing resources to be dynamically provisioned after an application is deployed (e.g., via resource connector component 112) according to various aspects of the present invention. Specifically, resource configuration component 114 can allow specific behaviors to be configured based on user (e.g., developer) defined behavior definitions. Such configurability can improve the user experience because one or more non-computing resources can be automatically configured using the methods disclosed herein.

[0065] Figure 4 An example system 400 for using interchangeable non-computing resources according to aspects described herein is illustrated. The system 400 includes a service 410, a connector or abstraction layer 420, and a plurality of non-computing resources, such as a first non-computing resource 430a, a second non-computing resource 430b, and a third non-computing resource 430c.

[0066] Service 410 may be a front-end image or container. For example, service 410 may include a lightweight, standalone, executable software package that includes everything needed to run an application (e.g., code, runtime, system tools, system libraries, settings, etc.). Service 410 may further include additional configuration options, such as network connectivity and storage options. Service 410 may include an application that has been programmed by a developer.

[0067] As discussed previously herein, a developer may write an application for a service such as service 410. The developer may initially decide to run the application locally, using a front-end container (e.g., service 410), and then decide to switch to one of a plurality of non-computing resources (e.g., one of non-computing resources 430a, 430b, 430c). The plurality of non-computing resources 430a, 430b, 430c may be similar to the non-computing resources described previously herein. Figure 1 The plurality of non-computing resources 108a, 108b, 108c discussed. For example, the plurality of non-computing resources 430a, 430b, 430c may include one or more of a cloud database, such as a hosted cloud database, a relational database, such as a distributed relational database, or a sequel server container. Accordingly, one or more of the plurality of non-computing resources 430a, 430b, 430c may be a database (e.g., a relational database, a cloud database, a hosted database, a distributed database, etc.). One of ordinary skill in the art recognizes other types of non-computing resources that may be used to deploy data from a cloud-based application.

[0068] After switching from a local container (such as service 410) to a cloud database (such as one of multiple non-computing resources 430a, 430b, 430c), the developer may decide to switch to a different one of the multiple non-computing resources 430a, 430b, 430c. For example, different non-computing resources may have different advantages or disadvantages for interfacing with the service. Regardless, one advantage of the mechanisms disclosed herein may be the convenience and portability of exchanging non-computing resources with which the service may interface. Therefore, for different factors such as scalability, cost, observability of data usage, storage availability, etc., developers can freely exchange non-computing resources without having to redevelop the source code of the application.

[0069] The abstraction layer or connector 420 may include multiple components or engines. For example, the connector 420 may include, implement and / or correspond to the above-mentioned Figure 1 and Figure 2 In addition or alternatively, the connector 420 may include, implement and / or correspond to the resource connector component 112 discussed above. Figure 1 and Figure 3 One or more aspects of the resource configuration component 114 discussed.

[0070] Figure 5A-5C According to the aspects described herein, the first configuration, the second configuration, and the third configuration are respectively illustrated. Figure 4 In the example system 400. Specifically, Figure 5AAn exemplary system 400 is shown in which a service 410 is configured to interface with a first non-computing resource 430a via a connector 420 . Figure 5B Exemplary system 400 is shown in which service 410 is configured to interface with second non-computing resource 430b via connector 420 . Figure 5C Exemplary system 400 is shown in which service 410 is configured to interface with third non-computing resource 430c via connector 420 .

[0071] Each of the plurality of non-computing resources 430a, 430b, 430c may include a corresponding key, such as a connection string, that the connector 420 may use to cause the service to interface with a selected one of the plurality of non-computing resources. While in some examples, the key may be a connection string (e.g., a unique string value corresponding to a user who can access the non-computing resource), in other examples, the key may be an integer, a floating point value, or another data type that corresponds to the user being authorized to access the resource.

[0072] A user or developer may provide an indication to the system 400 indicating which of the multiple non-computing resources 430a, 430b, 430c the user wishes to use. For example, a user may build a shuttle scheduling service for an enterprise campus. The shuttle scheduling service may be a front-end container, such as container 410. The shuttle scheduling service may be configured to interface with a cloud database (e.g., one of the multiple non-computing resources 430a, 430b, 430c) to track one or more metrics of the shuttle scheduling service, such as tracking a number of users riding the shuttle, tracking popular times for accessing the shuttle scheduling service, tracking geographic locations for accessing the shuttle scheduling service, and the like. Multiple non-computing resources 430a, 430b, 430c of different resources may provide access to different metrics that a developer may find valuable. Accordingly, the convenience and portability of switching between different non-computing resources is also valuable to developers.

[0073] Figure 6 An example method 600 using interchangeable non-computing resources is illustrated. In the example, various aspects of the method 600 are performed by a device, such as a computing device 102 and / or a server 104, as discussed above. Figure 1 related.

[0074] Method 600 begins at operation 602, where a first key is received. The first key corresponds to a first resource (e.g., a non-computing resource). The first resource may be similar to the one described previously herein. Figure 1 and Figure 4-5COne of the plurality of non-computing resources 108a, 108b, 108c or 430a, 430b, 430c discussed. In some examples, the first key can be a connection string. The connection string can be a unique string value that corresponds to a user who can access the first resource. In other examples, the first key can be an integer, a floating point value, or other data type that corresponds to providing access to the resource to the user.

[0075] In operation 604, a first connection of a first resource is defined based on the first key. The first connection can be an instruction in a deployment manifest that, when executed, is configured to connect a service or application to the first resource. The first connection can be defined by one or more aspects of the resource connector component 112. For example, the first resource can be identified by the resource identification component 204 and / or by a deployment manifest identification updated and / or generated by the deployment manifest component 208.

[0076] In operation 606, a second key is received. The second key corresponds to a second resource (e.g., a non-computing resource). The second resource may be similar to the one described previously in this document. Figure 1 and Figure 4-5C In some examples, the second key may be a connection string. The connection string may be a unique string value that corresponds to a user who can access the first resource. In other examples, the first key may be an integer, a floating point value, or other data type that corresponds to providing access to the resource to the user.

[0077] In operation 608, a second connection to a second resource is defined based on the second key. The second connection may be instructions in the deployment manifest that, when executed, are configured to interface the service or application with the second resource. The second connection may be defined by one or more aspects of the resource connector component 112. For example, the second resource may be identified by the resource identification component 204 and / or by the deployment manifest identification updated and / or generated by the deployment manifest component 208.

[0078] In operation 610, an indication corresponding to a selection of a first resource (eg, a non-computing resource) is received. The indication may be provided by Figure 2 The resource selection component 202 receives or generates. Generally, a user can select one of a plurality of non-computing resources (eg, a first resource or a second resource) whose service or application will be configured to interface with the resource.

[0079] In operation 612, the system is configured to interface with the first resource when the generated application is deployed. For example, the service or application can transmit data to the first resource. Additionally or alternatively, the service or application can transmit instructions that, when executed, generate data within the first resource. Additionally or alternatively, the service or application can receive data from the first resource, such as one or more metrics related to how a user accesses, modifies, or otherwise interacts with the first resource (e.g., reads data, manipulates data, writes data, etc.).

[0080] In operation 614, an indication corresponding to the selection of the second resource is received at the deployment location. The indication may be provided by Figure 2 The resource selection component 202 receives or generates. Generally, a user can select one of a plurality of non-computing resources (e.g., a first resource or a second resource), and its service or application will be configured to interface with the resource. Further, the user can then select a second one (e.g., another resource in the first resource or the second resource) from the plurality of non-computing resources, and its service or application will also be configured to interface with the second resource.

[0081] In operation 616, the system is reconfigured at the deployment location to interface with the second resource. For example, the service or application may transmit data to the second resource. Additionally or alternatively, the service or application may transmit instructions that, when executed, generate data within the second resource. Additionally or alternatively, the service or application may receive data from the second resource, such as one or more metrics related to how a user accesses, modifies, or otherwise interacts with the second resource (e.g., reads data, manipulates data, writes data, etc.).

[0082] The selection of the first resource or the second resource may be based on the functionality or performance of each resource. For example, a user may want to track one or more metrics of their service (such as data usage, service access time, geographic location of service access, data the user is viewing, etc.). Different resources may provide access to different metrics or have different performance (such as memory, security, uplink speed, downlink speed, etc.), which developers may find valuable. Accordingly, the convenience and portability of switching between different resources is also valuable to developers.

[0083] Method 600 may terminate at operation 616. Alternatively, method 600 may return to operation 602, thereby providing an iterative loop: the system receives keys corresponding to resources, defines connections to the resources based on the keys, and configures the system to interface with the resources at the generated application deployment.

[0084] Figure 7An example method 700 using interchangeable non-computing resources is illustrated. In an example, various aspects of the method 700 are performed by a device (e.g., computing device 102 and / or server 104), as described above with respect to Figure 1 discussed.

[0085] Method 700 begins at operation 702, where a plurality of keys are received, each key corresponding to a respective one of a plurality of resources (e.g., a plurality of non-computing resources). The plurality of resources may be similar to those previously described herein with respect to Figure 1 and Figure 4-5C The plurality of non-computing resources 108a, 108b, 108c or 430a, 430b, 430c discussed. In some examples, one or more of the plurality of keys may be a connection string. The connection string may be each unique string value corresponding to a user that can access a corresponding one of the plurality of resources. In other examples, one or more of the plurality of keys may be an integer, a floating point value, or another data type corresponding to the resource that the user is provided access to.

[0086] In operation 704, based on the plurality of keys, a connection between a service (e.g., service 410) and each of the plurality of resources (e.g., resources 430a, 430b, 430c) is defined. The connection can be instructions in a deployment manifest that, when executed, are configured to interface the service or application with one or more of the plurality of resources. The connection can be defined by one or more aspects of the resource connector component 112. For example, one or more of the plurality of resources can be identified by the resource identification component 204 and / or by a deployment manifest identification updated and / or generated by the deployment manifest component 208.

[0087] In operation 706, an indication corresponding to a first resource selected from a plurality of resources is received. The first resource may be Figure 4-5C The indication may be one of the resources 430a, 430b or 430c discussed in the previous section. Figure 2 The resource selection component 202 described in the above is received or generated. Generally, a user can select one from a plurality of resources (eg, a first resource, a second resource, a third resource, etc.) so as to configure its service or application to interface with the resource.

[0088] In operation 708, at the deployment location of the service, the service is configured to interface with the selected first resource. For example, a service or application (such as service 410) can transmit data to the selected resource (such as resources 430a, 430b, 430c). Additionally or alternatively, the service or application can transmit instructions that, when executed, generate data in the selected resource. Additionally or alternatively, the service or application can receive data from the selected resource, such as one or more indicators related to how a user accesses, modifies, or otherwise interacts with the resource (e.g., reads data, operates on data, writes data, etc.).

[0089] In operation 710, at a deployment location, a configuration instruction may be transmitted to a first resource. The configuration instruction may adapt the behavior of the first resource. For example, when interfacing with one or more resources that are databases, the configuration instruction may adjust one or more resources to define a new table. The new table may return a state store (e.g., a data store containing metadata corresponding to one or more data states and / or state operations). The configuration instruction may further adjust one or more resources to perform a database operation, such as a read operation, a transaction operation, an encryption operation, or any other database operation known to those skilled in the art.

[0090] Configuration instructions can be defined by the developer. Additionally or alternatively, configuration instructions can be defined by Figure 3 Specifically, the behavior adaptation component 306 can generate instructions corresponding to one or more behaviors defined by the behavior definition component 304.

[0091] Figure 8-Figure 11 and the related descriptions provide a discussion of various operating environments in which aspects of the present disclosure may be implemented. Figure 8-Figure 11 The devices and systems illustrated and discussed are for purposes of example and explanation and are not limiting of the numerous computing device configurations that may be used to practice the various aspects of the present disclosure described herein.

[0092] Figure 8 800 that can be used to practice aspects of the present disclosure. The computing device components described below may be applicable to the computing devices described above, including Figure 1 1. The computing device 102 in FIG. 100 may include at least one processing unit 802 and a system memory 804 in a basic configuration. Depending on the configuration and type of the computing device, the system memory 804 may include, but is not limited to, volatile memory (e.g., random access memory), non-volatile memory (e.g., read-only memory), flash memory, or any combination of these memories.

[0093] The system memory 804 may include an operating system 805 and one or more program modules 806 suitable for running software applications 820, such as one or more components supported by the system described herein. For example, the system memory 804 may store a resource connector engine or component 824 and / or a resource configuration engine or component 826. The operating system 805 may be suitable for controlling the operation of the computing device 800, for example.

[0094] Furthermore, aspects of the present disclosure may be practiced in conjunction with graphics libraries, other operating systems, or any other application programs and are not limited to any particular application or system. Figure 8 This basic configuration is illustrated in FIG. 8 by the components within the dashed line 808. The computing device 800 may have additional features or functions. For example, the computing device 800 may also include additional data storage devices (removable and / or non-removable), such as magnetic disks, optical disks, or tapes. Figure 8 Additional storage devices are illustrated in FIG. 8 with removable storage devices 809 and non-removable storage devices 810 .

[0095] As described above, a number of program modules and data files may be stored in system memory 804. When executed on processing unit 802, program modules 806 (e.g., applications 820) may perform various processes including, but not limited to, those described herein. Other program modules that may be used according to aspects of the present disclosure may include email and contact applications, word processing applications, spreadsheet applications, database applications, slide presentation applications, drawing or computer-aided applications, and the like.

[0096] In addition, aspects of the present disclosure may be practiced on a packaged or integrated electronic chip containing discrete electronic components, containing logic gates, a circuit utilizing a microprocessor, or on a single chip containing electronic components or a microprocessor. For example, aspects of the present disclosure may be practiced via a system-on-chip (SOC), wherein Figure 8 One or more components shown may be integrated onto a single integrated circuit. Such a SOC device may include one or more processing units, a graphics unit, a communication unit, a system virtualization unit, and various application functions, all of which are integrated (or "burned") onto a chip substrate as a single integrated circuit. When operated via the SOC, functions related to the client switching protocol capability may be operated via application-specific logic integrated with other components on the computing device 800 on a single integrated circuit (chip). Some aspects of the present disclosure may also be practiced using other technologies capable of performing logical operations (e.g., AND, OR, NOT), including but not limited to mechanical, optical, fluid, and quantum technologies. In addition, some aspects of the present disclosure may be practiced in a general-purpose computer or any other circuit or system.

[0097] The computing device 800 may also have one or more input devices 812, such as a keyboard, a mouse, a pen, a sound or voice input device, a touch or sliding input device, etc. Output device(s) 814 (e.g., a display, a speaker, a printer, etc.) may also be included. The above devices are only examples, and other devices may also be used. The computing device 800 may include one or more communication connections 816 to allow communication with other computing devices 850. Examples of suitable communication connections 816 include, but are not limited to, radio frequency (RF) transmitters, receivers, and / or transceiver circuits; universal serial bus (USB), parallel and / or serial ports.

[0098] The term "computer-readable medium" as used herein may include computer storage media. Computer storage media may include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storing information, such as computer-readable instructions, data structures, or program modules. System memory 804, removable storage device 809, and non-removable storage device 810 are all examples of computer storage media (e.g., memory storage). Computer storage media may include random access memory (RAM), read-only memory (ROM), electrically erasable read-only memory (EEPROM), flash memory or other memory technology, CD-ROM, digital versatile disk (DVD) or other optical storage, magnetic cassettes, magnetic tape, disk storage or other magnetic storage devices, or any other manufactured article that can be used to store information and can be accessed by computing device 800. Any such computer storage media may be part of computing device 800. Computer storage media does not include carrier waves or other propagated or conditioned data signals.

[0099] Communication media may be implemented by computer readable instructions, data structures, program modules or other data in a modulated data signal, such as a carrier wave or other transport mechanism, and includes any information transmission media. The term "modulated data signal" may describe a signal that encodes information in the signal in a manner that sets or changes one or more characteristics of the signal. By way of example (but not limitation), communication media may include wired media, such as a wired network or direct-wired connection, and wireless media, such as acoustic, radio frequency (RF), infrared and other wireless media.

[0100] Fig.9A and Fig. 9B A mobile computing device 900 is illustrated, such as a mobile phone, a smart phone, a wearable computer (such as a smart watch), a tablet computer, a laptop computer, etc., which can practice some aspects of the present disclosure. In some aspects, the client can be a mobile computing device. Fig.9AOne aspect of a mobile computing device 900 for implementing the present aspect is illustrated. In a basic configuration, the mobile computing device 900 is a handheld computer having input elements and output elements. The mobile computing device 900 typically includes a display screen 905 and one or more input buttons 910 that allow a user to input information into the mobile computing device 900. The display screen 905 of the mobile computing device 900 may also serve as an input device (e.g., a touch screen display).

[0101] If included, optional side input element 915 allows further user input. Side input element 915 can be a rotary switch, a button, or any other type of manual input element. In alternative aspects, mobile computing device 900 can include more or fewer input elements. For example, in some cases, display screen 905 may not be a touch screen.

[0102] In yet another alternative example, the mobile computing device 900 is a portable telephone system, such as a cellular phone. The mobile computing device 900 may also include an optional keypad 935. The optional keypad 935 may be a physical keypad or a "soft" keypad generated on a touch screen display.

[0103] In various examples, output elements include a display screen 905 for displaying a graphical user interface (GUI), a visual indicator 920 (e.g., a light emitting diode), and / or an audio transducer 925 (e.g., a speaker). In some aspects, the mobile computing device 900 incorporates a vibration transducer for providing tactile feedback to the user. In another aspect, the mobile computing device 900 incorporates input and / or output ports, such as an audio input (e.g., a microphone jack), an audio output (e.g., a headphone jack), and a video output (e.g., an HDMI port) for sending signals to or receiving signals from external devices.

[0104] Fig. 9B 900 is a block diagram illustrating an architecture of one aspect of a mobile computing device. That is, a mobile computing device 900 may include a system (e.g., architecture) 902 for implementing some aspects. In some examples, the system 902 is implemented as a "smartphone" capable of running one or more applications (e.g., a browser, email, calendar, contact manager, messaging client, game, and media client / player). In some aspects, the system 902 is integrated into a computing device, such as a device that integrates a personal digital assistant (PDA) and a wireless phone.

[0105] One or more application programs 966 may be loaded into the memory 962 and run on or in association with the operating system 964. Examples of such applications include a phone dialer, an email program, a personal information management (PIM) program, a word processing program, a spreadsheet program, an Internet browser program, a messaging program, and the like. The system 902 also includes a non-volatile storage area 968 within the memory 962. The non-volatile storage area 968 may be used to store persistent information that should not be lost when the system 902 is powered off. The application programs 966 may use and store information in the non-volatile storage area 968, such as emails or other messages used by an email application, and the like. A synchronization application (not shown) may also reside on the system 902, which is programmed to interact with a corresponding synchronization application residing on a host computer to keep the information stored in the non-volatile storage area 968 synchronized with the corresponding information stored on the host computer. It is appreciated that other applications may also be loaded into the memory 962 and run on the mobile computing device 900 described herein (e.g., a resource connector engine, a resource configuration engine, and the like).

[0106] System 902 has a power source 970, which can be implemented as one or more batteries. Power source 970 can also include an external power source, such as an AC power adapter or a power base that can replenish or charge the batteries.

[0107] The system 902 may also include a radio interface layer 972 that performs the functions of transmitting and receiving radio frequency communications. The radio interface layer 972 facilitates wireless connectivity between the system 902 and the "outside world" via a communications carrier or service provider. Transmissions to and from the radio interface layer 972 are performed under the control of the operating system 964. In other words, communications received by the radio interface layer 972 may be propagated to the application 966 via the operating system 964, and vice versa.

[0108] The visual indicator 920 can be used to provide a visual notification, and / or the audio interface 974 can be used to generate an audible notification through the audio transducer 925. In the example shown, the visual indicator 920 is a light emitting diode (LED), and the audio transducer 925 is a speaker. These devices can be directly coupled to the power supply 970, and even if the processor 960 and / or the dedicated processor 961 and other components may be turned off to save battery power, when they are activated, they will remain on for a period of time according to the provisions of the notification mechanism. The LED can be programmed to remain on indefinitely until the user takes action to indicate the power-on state of the device. The audio interface 974 is used to provide audible signals to the user and receive audible signals from the user. For example, in addition to being coupled to the audio transducer 925, the audio interface 974 can also be coupled to a microphone to receive audible input, for example, to facilitate a phone call. According to aspects of the present disclosure, the microphone can also be used as an audio sensor to facilitate control of notifications, as described below. The system 902 can also include a video interface 976, which can operate the onboard camera 930 to record still images, video streams, etc.

[0109] The mobile computing device 900 implementing the system 902 may have other features or functions. For example, the mobile computing device 900 may also include other data storage devices (removable and / or non-removable), such as magnetic disks, optical disks, or tapes. Fig. 9B The non-volatile storage area 968 in exemplifies this additional storage space.

[0110] Data / information generated or captured by the mobile computing device 900 and stored via the system 902 may be stored locally on the mobile computing device 900, as described above, or the data may be stored on any number of storage media accessible by the device via the wireless interface layer 972, or on a wired connection between the mobile computing device 900 and another computing device associated therewith, such as a server computer in a distributed computing network such as the Internet. It is appreciated that such data / information may be accessed via the mobile computing device 900 through the wireless interface layer 972 or a distributed computing network. Likewise, such data / information may be easily transferred between computing devices for storage and use according to well-known data / information transmission and storage means, including email and collaborative data / information sharing systems.

[0111] Fig.10One aspect of a system architecture for processing data received into a computing system from a remote source, such as a personal computer 1004, a tablet computing device 1006, or a mobile computing device 1008 as described above, is illustrated. The content displayed on the server device 1002 may be stored in different communication channels or other storage types. For example, a directory service 1024, a web portal 1025, a mailbox service 1026, an instant messaging repository 1028, or a social networking site 1030 may be used to store various documents.

[0112] The client may use a resource connector engine or component 1020 when communicating with the server device 1002. Additionally or alternatively, the server device 1002 may use a resource configuration engine or component 1021. The server device 1002 may exchange data with a client computing device such as a personal computer 1004, a tablet computing device 1006, and / or a mobile computing device 1008 (e.g., a smartphone) via a network 1015. By way of example, the computer system described above may be implemented in a personal computer 1004, a tablet computing device 1006, and / or a mobile computing device 1008 (e.g., a smartphone). In addition to receiving graphics data that may be pre-processed in a graphics generation system or post-processed in a receiving end computing system, any of these computing devices may obtain content from a repository 1016.

[0113] Fig.11 An exemplary tablet computing device 1100 is illustrated, which can perform one or more aspects of the present disclosure. In addition, the aspects and functions described herein can be run on distributed systems (e.g., cloud-based computing systems), in which application functions, memory, data storage and retrieval, and various processing functions can be remotely operated through distributed computing networks (e.g., the Internet or intranet). Various types of user interfaces and information can be displayed via an onboard computing device display or via a remote display unit associated with one or more computing devices. For example, various types of user interfaces and information can be projected onto a wall surface and displayed and interacted with on the wall surface. Interaction with numerous computing systems that can practice aspects of the present disclosure includes: typing input, touch screen input, voice or other audio input, gesture input (when the associated computing device is equipped with a detection (e.g., machine) function for capturing and interpreting user gestures to control computing device functions), etc.

[0114] For example, various aspects of the present disclosure have been described above with reference to block diagrams and / or operational diagrams of methods, systems, and computer program products according to various aspects of the present disclosure. The functions / behaviors noted in the block diagrams may not occur in the order shown in any flow chart. For example, two blocks shown in succession may actually be executed substantially simultaneously, or the blocks may sometimes be executed in reverse order depending on the functions / behaviors involved.

[0115] The description and illustration of one or more aspects set forth in this application are not intended to limit or restrict the scope of the claimed disclosure in any form. The aspects, examples and details provided in this application are deemed to be sufficient to convey their ownership and enable others to make and use the content required by this disclosure. The understanding of the claimed disclosure should not be limited to any aspect, example or detail provided in this application. Whether combined or displayed and described separately, various features (including structural and methodological features) are intended to be selectively included or omitted to form an embodiment with a specific feature set. After understanding the description and illustration of this application, those skilled in the art can conceive of variations, modifications and alternative aspects within the broader spirit of the inventive concept embodied in this application and without departing from the claimed broad scope of the disclosure.

Claims

1. A system for using interchangeable non-computing resources, the system comprising: at least one processor; a memory storing instructions that, when executed by the at least one processor, cause the system to: receiving a first key corresponding to a first non-computing resource; defining a first connection with the first non-computing resource based on the first key; receiving a second key corresponding to a second non-computing resource; defining a second connection with the second non-computing resource based on the second key; receiving an indication corresponding to selection of the first non-computing resource; as well as At the deployment of the generated application, the system is configured to interface with the first non-computing resource.

2. The system of claim 1 , wherein the instructions, when executed by the at least one processor, further cause the system to: receiving an indication corresponding to selection of the second non-computing resource; and The system is reconfigured at the deployment to interface with the second non-computing resource. 3 . The system of claim 1 , wherein the first key and the second key are connection strings.

4. The system of claim 1, wherein configuring the system further comprises: A deployment manifest is updated based on the selection of the first non-computing resource.

5. The system of claim 1 , wherein receiving the first key corresponding to the first non-computing resource further comprises receiving a first set of authentication data corresponding to the first non-computing resource, and wherein defining the first connection with the first non-computing resource based on the first key further comprises defining the first connection with the first non-computing resource based on the first key and the first set of authentication data.

6. The system of claim 1, wherein the instructions, when executed by the at least one processor, further cause the system to: At the deployment, configuration instructions are transmitted to the first non-computing resource, whereby the configuration instructions adapt behavior of the first non-computing resource.

7. The system of claim 6, wherein the first non-computing resource is one of a database, a cache system, or a messaging queue.

8. A method of using interchangeable non-computing resources, the method comprising: receiving a first key corresponding to a first database; defining a first connection between a service and the first database based on the first key; receiving a second key corresponding to a second database; defining a second connection between the service and the second database based on the second key; receiving an indication corresponding to selection of the first database; as well as At the deployment location of the service, the service is configured to interface with the first database.

9. The method according to claim 8, further comprising: receiving an indication corresponding to selection of the second database; as well as At the deployment of the service, the service is reconfigured to interface with the second database.

10. The method of claim 8, wherein the receiving of the first key corresponding to the first database further comprises receiving a first set of authentication data corresponding to the first database, and wherein the defining of the first connection between the service and the first database based on the first key further comprises defining the first connection between the service and the first database based on the first key and the first set of authentication data.

11. The method according to claim 8, further comprising: At the deployment, configuration instructions are transmitted to the first database, whereby the configuration instructions adapt behavior of the first database. 12 . The method of claim 11 , wherein the first database is one or more of a cloud database, a relational database, a distributed relational database, or a Sequel database.

13. A method of using interchangeable non-computer resources, the method comprising: receiving a plurality of keys, each key corresponding to a respective one of a plurality of non-computing resources; defining a connection between a service and each of the plurality of non-computing resources based on the plurality of keys; receiving an indication corresponding to selection of a first non-computing resource among the plurality of non-computing resources; At a deployment location of the service, configuring the service to interface with the first non-computing resource; as well as At the deployment, configuration instructions are transmitted to the selected non-computing resource, whereby the configuration instructions adapt behavior of the first non-computing resource.

14. The method according to claim 13, further comprising: receiving an indication corresponding to selection of a second non-computing resource among the plurality of non-computing resources; as well as At the deployment of the service, the service is reconfigured to interface with the second non-computing resource.

15. The method of claim 14, wherein the configuration of the service comprises updating a deployment manifest based on the first non-computing resource, and wherein the reconfiguration of the service comprises updating the deployment manifest based on the second non-computing resource.

Citation Information

Patent Citations

  • Cloud database connection multiplexing

    US20150095343A1

  • On-demand resource provisioning

    US20180069804A1

  • Credential management in cloud-based application deployment

    US20180083937A1

  • Adaptable Data Source Connection Strings

    US20220129331A1