Access services in hybrid cloud computing systems

By implementing access services in the public cloud and connecting to private cloud services, the problem of difficulty in accessing public cloud resources is solved, application release and cost structure optimization is achieved, and strict access control is maintained.

CN114666412BActive Publication Date: 2024-12-17MICROSOFT TECHNOLOGY LICENSING LLC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202210295046.5
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2016-07-22
Filing Date
2017-07-18
Publication Date
2024-12-17
Estimated Expiration
2037-07-18

AI Technical Summary

Technical Problem

Due to strict access control, private cloud computing systems have difficulty accessing applications and resources in the public cloud, and the implementation of cost structure based on usage is difficult, resulting in software vendors being unable to directly publish applications or access usage data.

Method used

By implementing access services in the public cloud, services connecting to private clouds allow resources in the public cloud to be exposed to private clouds, and promote data upload from private clouds to public clouds, realizing application release and cost structure optimization.

Benefits of technology

The interoperability between private clouds and public clouds is achieved, and strict access control of private clouds is maintained, while allowing the public cloud to be released in private clouds and implementing a usage-based cost structure.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114666412B_ABST
    Figure CN114666412B_ABST
Patent Text Reader

Abstract

Disclosed herein are techniques for facilitating operations in a hybrid cloud computing system. In one embodiment, a method may include receiving, at a public cloud, a plurality of applications deployable in a private cloud, and notifying an access service of a public cloud computing system about the received applications deployable in the private cloud. The method also includes receiving, from a connection service of the private cloud, a request for a list of the received applications available at the public cloud and deployable in the private cloud. The method also includes, in response to the received request, selectively identifying the list of applications to the private cloud based on a service subscription associated with the connection service.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Divisional Application Instructions

[0002] This application is a divisional application of the Chinese invention patent application with international application number PCT / US2017 / 042472, international application date July 18, 2017, entering the Chinese national phase on January 16, 2019, national application number 201780044136.4, and invention name “Access Service in Hybrid Cloud Computing System”. Technical Field

[0003] Embodiments of the present disclosure relate to cloud computing. Background Art

[0004] Remote or "cloud" computing typically utilizes a collection of remote servers to provide computing, data storage, electronic communications, or other cloud services. A computer network may interconnect remote servers as nodes to form a computing fabric with one or more computing clusters. During operation, multiple nodes in a computing fabric may collaborate to provide a distributed computing environment that facilitates the execution of user applications in order to provide the desired cloud services. Summary of the invention

[0005] This Summary is provided to introduce some concepts in a simplified form that are further described below in the Detailed Description. 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.

[0006] Cloud computing systems can be public or private. Public cloud computing systems typically offer subscriptions to cloud services to the public. Examples of public clouds include Microsoft Amazon Web and Google On the other hand, companies, universities, government entities and other organizations may often have dedicated servers, data centers or other computing facilities that are configured to deploy cloud services for internal use only. Such cloud computing systems are often referred to as private clouds.

[0007] One disadvantage of a private cloud is that users of the private cloud generally cannot access applications published in the public cloud. For example, independent software vendors ("ISVs") can develop various types of applications and "publish" or make the applications available to other users in the public cloud. Other users can then download, purchase, rent, or otherwise deploy and use the published applications in the public cloud. However, due to strict access controls in the private cloud, ISVs are generally not able to publish the developed applications directly to the private cloud. As such, applications available in the public cloud are often not available to users of the private cloud.

[0008] Moreover, implementing a private cloud can be expensive. Organizations typically purchase and / or license expensive software for cloud computing platforms to be deployed in private servers or data centers. An alternative cost structure is a usage-based cost structure, under which an organization pays only for actual use of the software, with little or no upfront cost. However, implementing a usage-based cost structure in a private cloud can be difficult because software vendors typically do not have access to any usage data in the private cloud due to strict access controls in the private cloud.

[0009] Several embodiments of the disclosed technology can address at least some of the aforementioned deficiencies by implementing an access service in a public cloud that can interface with a connection service in a private cloud. The access service can be configured to expose information in the public cloud to the connection service of the private cloud without directly accessing resources in the private cloud. For example, the access service can be configured to provide a list of applications available at the public cloud that can be deployed in the private cloud based on a service subscription associated with the connection service. The access service can also be configured to facilitate the private cloud to retrieve artifacts of the application to facilitate publishing the application in the private cloud.

[0010] In other examples, the access service may be configured to facilitate uploading the usage data of the application from the private cloud to the public cloud. In some embodiments, the connection service at the private cloud may contact the access service at the public cloud to obtain permission to store the usage data in a network storage device in the public cloud. In response, the access service may verify the credentials of the connection service and provide permission upon verification of the credentials. With the obtained permission, the private cloud may then store the usage data in the network storage device. The access service may then cause the execution of replication, filtering, anomaly detection, or other processing of the usage data stored in the network storage device.

[0011] Several embodiments of the disclosed technology can allow one or more private clouds to become extensions of a public cloud (or multiple) without compromising the strict access controls associated with the private cloud. Instead of directly accessing resources in the private cloud, the access service at the public cloud exposes information and facilitates access to various resources available at the public cloud. In this way, administrators of the private cloud can select, retrieve, and deploy various resources available at the public cloud while maintaining strict access controls for the private cloud. With the permission of the public cloud, the private cloud can also upload usage data to the public cloud periodically or in other suitable ways. As a result, a usage-based cost structure can be implemented for software or applications of a cloud computing platform deployed in a private cloud. BRIEF DESCRIPTION OF THE DRAWINGS

[0012] Figure 1 is a schematic diagram of a hybrid cloud computing system according to an embodiment of the disclosed technology.

[0013] Figure 2Ais a diagram illustrating an embodiment of the disclosed technology applicable to Figure 1 Schematic diagram of a cloud computing system in a hybrid cloud computing system.

[0014] Figure 2B is a diagram illustrating an embodiment according to the disclosed technology Figure 2A Schematic diagram of some hardware / software components of a cloud computing system.

[0015] Figure 3A-3C is a diagram illustrating certain stages during the release of an application from a public cloud computing system to a private cloud computing system Figure 1 Schematic diagram of some hardware / software components of a hybrid cloud computing system.

[0016] Figure 3D is a diagram illustrating the process during certain stages of removing a published application previously published in a private cloud computing system Figure 1 Schematic diagram of some hardware / software components of a hybrid cloud computing system.

[0017] Figure 4 is a diagram illustrating the process during certain stages of uploading usage data from a private cloud computing system to a public cloud computing system Figure 1 Schematic diagram of some hardware / software components of a hybrid cloud computing system.

[0018] Figure 5 is an illustration of certain stages during configuration of a service subscription to a public cloud computing system for a connection service in a private cloud computing system Figure 1 Schematic diagram of some hardware / software components of a hybrid cloud computing system.

[0019] Figure 6A-6D is a flow chart illustrating various aspects of a process for facilitating operations between a public cloud computing system and a private cloud computing system according to an embodiment of the disclosed technology.

[0020] Figure 7 Is applicable to Figure 1 Computing devices that are certain components of a hybrid cloud computing system. DETAILED DESCRIPTION

[0021] Certain embodiments of computing systems, devices, components, modules, routines, and processes for facilitating operations between public and private clouds are described below. In the following description, specific details of the components are included to provide a thorough understanding of certain embodiments of the disclosed technology. Those skilled in the art will also understand that the disclosed technology may have additional embodiments or may be used without the following references. Figure 1-Figure 7 The described embodiments are practiced in the context of several details.

[0022] As used herein, the term "cloud computing system" or "cloud" generally refers to a computer system configured to provide various cloud computing services via a computer network. A cloud computing system may include multiple network devices that interconnect a large number of remote servers or nodes to each other and / or to an external network (e.g., the Internet). In one example, a cloud computing system may include multiple containers, racks, or other suitable enclosures, each of which holds multiple servers in a cloud computing data center (or a portion thereof). The term "network device" generally refers to a network communication component. Example network devices include routers, switches, hubs, bridges, load balancers, security gateways, or firewalls. A "node" generally refers to a computing device configured to implement one or more virtual machines, virtual routers, virtual gateways, or other suitable virtualized computing components. For example, a node may include a computing server having a hypervisor configured to support one or more virtual machines.

[0023] As used herein, the term "public cloud" or "public cloud computing system" generally refers to a cloud computing system that provides cloud service subscriptions to the public. Examples of public clouds include Microsoft Amazon Web and Google In contrast, the term "private cloud" or "private cloud computing system" generally refers to a cloud computing system that is used for internal use of an organization and under strict access control of the organization due to security, data protection, privacy or other considerations. The organization's private cloud is generally not accessible to users outside the public cloud or the organization. The term "hybrid cloud" generally refers to a cloud computing system that has one portion that is a public cloud interconnected with another portion that is a private cloud. As discussed in more detail below, several embodiments of the disclosed technology can allow interaction between public and private clouds while generally maintaining strict access controls at the private cloud.

[0024] As also used herein, the term "cloud computing service" or "cloud service" generally refers to one or more computing resources provided over a computer network, such as the Internet. Example cloud services include software as a service ("SaaS"), platform as a service ("PaaS"), and infrastructure as a service ("IaaS"). SaaS is a software distribution technology in which software applications are hosted by a cloud service provider, such as in a data center, and accessed by users over a computer network. PaaS generally refers to the delivery of operating systems and related services over a computer network without the need for downloading or installing. IaaS generally refers to outsourced equipment used to support storage, hardware, servers, network devices, or other components, all of which are accessible over a computer network.

[0025] As also used herein, the term "resource provider" generally refers to a cloud service that is configured to provide one or more resources in a public cloud or a private cloud or to make one or more resources in a public cloud or a private cloud available. One or more resources can be deployed and managed by, for example, a resource manager accessible via a user portal. In certain embodiments, a resource provider may be configured to provide a representative state transfer ("REST") application programming interface ("API") for working with associated resources. For example, a resource provider may be configured to deploy a key vault for storing keys and credentials. The resource provider may provide an example resource type called a "vault" for creating a key vault, and another example resource type called a "vault / confidential" for creating a secret in the key vault. In other embodiments, a resource provider may also provide computing resources (e.g., virtual machines), storage resources (e.g., network storage devices), network resources (e.g., virtual networks), database resources (e.g., database servers), or other suitable types of resources.

[0026] A private cloud can provide secure and / or private cloud services to an organization's users by imposing strict access controls. However, such strict access controls can have several disadvantages. In one example, applications developed by an ISV and available in a public cloud are generally not available to users in a private cloud. In another example, it can be difficult to implement a usage-based cost structure in a private cloud because the software vendor generally does not have access to any usage data in the private cloud. Several embodiments of the disclosed technology can address at least some of the aforementioned deficiencies by implementing access services in the public cloud to interface with connectivity services in the private cloud. The access services can expose various resources of the public cloud to the private cloud, as well as facilitate uploading data from the private cloud to the public cloud. As a result, applications available at the public cloud can be published in the private cloud, and usage data in the private cloud can be uploaded to the public cloud to allow for the implementation of a usage-based cost structure, as described below with reference to Figure 1-Figure 7 Described in more detail.

[0027] Figure 1 is a schematic diagram illustrating a hybrid cloud computing system 100 according to an embodiment of the disclosed technology. Figure 1 As shown in , the hybrid cloud computing system 100 may include a public cloud 108 and one or more private clouds 106, which are interconnected with a client device 102 of a user 101 via a computer network 104. The computer network 104 may include an intranet, a social network, the Internet, or other suitable types of networks. Figure 2A An example computer network 104 is described in greater detail.

[0028] although Figure 1Specific components and associated arrangements of the hybrid cloud computing system 100 are shown in FIG. 1 , but in other embodiments, the hybrid cloud computing system 100 may include additional and / or different components. For example, in the illustrated embodiment, the hybrid cloud computing system 100 includes two private clouds, namely, a first private cloud 106a and a second private cloud 106b. In other embodiments, the hybrid cloud computing system 100 may include three, four, or any other suitable number of private clouds 106. In further embodiments, the hybrid cloud computing system 100 may also include a network server, a domain name server, or other suitable components.

[0029] The client device 102 may solely comprise a computing device that facilitates the user 101 to access the public cloud 108 and / or the private cloud 106 via the computer network 104. For example, in the illustrative embodiment, the client device 102 solely comprises a desktop computer. In other embodiments, the client device 102 may also comprise a laptop computer, a tablet computer, a smart phone, or other suitable computing device. Although for illustration purposes, the client device 102 may be a computer that is not specifically described in detail in the example embodiment. Figure 1 Three users 101 are shown in FIG. 1 , but in other embodiments, hybrid cloud computing system 100 may facilitate any suitable number of users 101 accessing public cloud 108 and / or private cloud 106 via computer network 104 .

[0030] Public cloud 108 and private cloud 106 may be configured separately to provide subscriptions to certain cloud services to user 101. Figure 1 As shown in , the public cloud 108 is open to the public. Thus, all users 101 can access the public cloud 108. On the other hand, the private cloud 106 can have strict access control. Thus, only authorized users 101 can access the private cloud 106. For example, the first user 101a and the second user 101b can be authorized to access the first private cloud 106a and the second private cloud 106b, respectively, but the third user 101c cannot. Thus, the third user 101c cannot access any of the first private cloud 106a or the second private cloud 106b, but can access the public cloud 108.

[0031] As in Figure 1As shown in , the first, second and third administrators 103a-103c can respectively manage the first private cloud 106a, the second cloud 106b and the public cloud 108 via the additional client device 102'. However, the third administrator 103c of the public cloud 108 cannot access any of the private clouds 106. As described in more detail below, several embodiments of the disclosed technology involve implementing a resource provider (hereinafter referred to as an "access service") at the public cloud 108, which can be connected to another resource provider (hereinafter referred to as a "connection service") at the private cloud 106. The access service can allow the first administrator 103a and the second administrator 103b of the private cloud 106 to access resources available at the public cloud 108 and upload usage data from the private cloud 106 to the public cloud 108. In this way, the private cloud 106 can become an extension of the public cloud 108 to enable applications to be published from the public cloud 108 to the private cloud 106 and to implement a usage-based cost structure in the private cloud 106. Refer to the following Figure 2A-2B Example components of a cloud computing system suitable for use with public cloud 108 or private cloud 106 are described in greater detail.

[0032] Figure 2A is a diagram illustrating an embodiment of the disclosed technology applicable to Figure 1 Schematic diagram of a cloud computing system 110 of a public cloud 108 or a private cloud 106. Figure 2A As shown in , cloud computing system 110 may include an underlying network 109 interconnecting multiple client devices 102 and computing fabric 114 associated with user 101. Figure 2A Specific components of the cloud computing system 110 are shown in FIG. 1 , but in other embodiments, the cloud computing system 110 may also include additional and / or different components. For example, the cloud computing system 110 may also include additional computing structures (not shown) interconnected with each other, network storage devices, utility infrastructure, and / or other suitable components.

[0033] As in Figure 2A As shown in FIG. 1 , the underlying network 109 may include one or more physical network devices 113 that interconnect the users 101 and the computing structures 114. Examples of network devices 113 may include routers, switches, firewalls, load balancers, or other suitable network components. Figure 2A A particular connection scheme is shown in FIG. 1 , but in other embodiments, network devices 113 may be operably coupled in a hierarchical, flat, "mesh," or other suitable topology.

[0034] As in Figure 2AAs shown in , the computing structure 114 may include multiple nodes 105 that are operably coupled to each other through a network device 113. In some embodiments, the node 105 may individually include a processor, a physical server, or several physical servers. In other embodiments, the node 105 may also include a virtual server or several virtual servers. The nodes 105 can be organized into racks, availability zones, groups, sets, computing clusters, or other suitable divisions. For example, in the illustrated embodiment, the nodes 105 are grouped into three computing clusters 107 (individually shown as first, second, and third computing clusters 107a-107c, respectively), which are operably coupled to corresponding network devices 113 in the underlying network 119. Although for illustrative purposes, Figure 2A Three computing clusters 107 are shown in FIG. 1 , but in other embodiments, computing fabric 114 may include one, two, eight, sixteen, or any other suitable number of computing clusters 107 having similar or different components and / or configurations.

[0035] As in Figure 2A As shown in , the computing structure 114 may also include a management controller 115, which is configured to monitor, control or otherwise manage the operation of the nodes 105 in the computing cluster 107. For example, in some embodiments, the management controller 115 may include a construction controller, which is configured to manage processing, storage, communication or other suitable types of hardware resources in the computing cluster 107 for hosting cloud services. In other embodiments, the management controller 115 may also include a data center controller, an application delivery controller, or other suitable types of controllers. In the illustrated embodiment, the management controller 115 is shown as being separate from the computing cluster 107. In other embodiments, the management controller 115 may include one or more nodes 105 in the computing cluster 107. In further embodiments, the management controller 115 may include a software service hosted on one or more nodes 105 in the computing cluster 107.

[0036] In operation, user 101 may request deployment of a cloud service via, for example, a user portal (not shown). For example, user 101 may request instantiation of virtual machine 145 (e.g., Figure 2B In response to receiving the request from user 101, management controller 115 may verify the subscription level of user 101 and provide instantiation of the virtual machine upon verification. Management controller 115 may then cause one or more nodes 105 to instantiate the requested virtual machine 145, as described below with reference to Figure 2B Described in more detail.

[0037] Figure 2B is a diagram illustrating an embodiment of the disclosed technology implemented on the underlying network 109 and suitable for Figure 2AA schematic diagram of an example overlay network 109' of a cloud computing system 110. Figure 2B For the sake of clarity, only Figure 2A Certain components of the underlying network 109. Figure 2B As shown in , the first node 105a and the second node 105b may each include a processor 131, a memory 133, and an input / output component 135 that are operably coupled to each other. The processor 131 may include a microprocessor, a field programmable gate array, and / or other suitable logic devices. The memory 133 may include volatile and / or non-volatile media (e.g., ROM; RAM, magnetic disk storage media; optical storage media; flash memory devices and / or other suitable storage media) and / or other types of computer-readable storage media, which are configured to store data received from the processor 131 and instructions for the processor 131 (e.g., for executing the following reference Figure 6A-6D The input / output component 135 may include a display, touch screen, keyboard, mouse, printer, and / or other suitable types of input / output devices configured to accept input from an operator and / or an automated software controller (not shown) and provide output to an operator and / or an automated software controller (not shown).

[0038] The memory 133 of the first node 105a and the second node 105b may include instructions executable by the processor 131 to cause the single processor 131 to provide a hypervisor 141 (individually identified as a first hypervisor 141a and a second hypervisor 141b, respectively) and other suitable components (not shown). The hypervisor 141 may be individually configured to start, monitor, terminate and / or otherwise locally manage one or more virtual machines 145 organized into the tenant site 143. For example, as in Figure 2B As shown in , the first node 105a may provide a first hypervisor 141a for managing a first tenant site 143a and a second tenant site 143b, respectively. The second node 105b may provide a second hypervisor 141b for managing a first tenant site 143a' and a second tenant site 143b', respectively. The hypervisor 141 may be a software, firmware, or hardware component. The tenant sites 143 may each include a plurality of virtual machines 145 or other suitable tenant instances for a particular user 101. For example, the first node 105a and the second node 105b may both host tenant sites 142a and 142a' for the user 101. The first node 105a and the second node 105b may both host tenant sites 142a and 142a' for the second user 101b( Figure 1 ) hosting tenant sites 143b and 143b'. Each virtual machine 145 can execute a corresponding operating system, middleware and / or application.

[0039] Still like Figure 2B As shown in , the cloud computing system 110 may include an overlay network 109' having one or more virtual networks 147 that interconnect tenant sites 143a and tenant sites 143b across multiple nodes 105. For example, a first virtual network 147a interconnects a first tenant site 143a at a first node 105a and a first tenant site 143a' at a second node 105b. A second virtual network 147b interconnects a second tenant site 143b at a first node 105a and a second tenant site 143b' at a second node 105b. Although a single virtual network 147 is shown as corresponding to one tenant site 143, in other embodiments, multiple virtual networks 147 (not shown) may be configured to correspond to a single tenant site 143.

[0040] Even if the virtual machines 145 are located on different nodes 105, the virtual machines 145 on the virtual network 147 can communicate with each other via the underlying network 109 ( Figure 2A ) can communicate with each other. The communications of each of the virtual networks 147 can be isolated from the other virtual networks 147. In some embodiments, communication can be allowed to cross from one virtual network 147 to another virtual network through a secure gateway or in a controlled manner. A virtual network address can correspond to one of the virtual machines 145 in a particular virtual network 147. Therefore, different virtual networks 147 can use the same one or more virtual network addresses. Example virtual network addresses can include IP (Internet Protocol) addresses, MAC (Media Access Control) addresses, and / or other suitable addresses.

[0041] In some embodiments, the virtual machines 145 hosted on one or more nodes 105 may be used to perform one or more user-requested tasks. In other embodiments, the virtual machines 145 or other suitable components of the cloud computing system 110 may also be used to implement tasks for the public cloud 108 ( Figure 1 ) or for a separate private cloud 106 ( Figure 1 ). The access service may be configured to provide information about available resources at the public cloud 108 to the connection service of the private cloud 106. The access service may also be configured to facilitate access by the private cloud 106 to network storage devices in the public cloud 108. In some embodiments, the access service or the connection service may be implemented separately as a cloud service, for example, by providing a connection service in the computing structure 115 ( Figure 2A ) in one or more virtual machines 145 on the selected node 105. In other embodiments, access services and / or connection services may be provided by a dedicated server or via other suitable technologies. Figure 3A-Figure 5 Example components and operations of the access service and the connection service are described in more detail.

[0042] Figure 3A-3C is a diagram that illustrates some of the phases during the release of an application from a public cloud to a private cloud. Figure 2A A schematic diagram of certain hardware / software components of computing system 100 in FIG. Figure 3A-3C In the example, some components of the hybrid cloud computing system 100 are omitted for clarity. Figures 3A-3C Only one private cloud 106 is shown. Other and / or additional private clouds may have the same Figure 3A-3C Similar components and associated operations shown in .

[0043] In addition, Figure 3A-3C In other figures of this article, separate software components, objects, classes, modules and routines can be computer programs, steps or processes written in C, C++, C#, Java and / or other suitable programming languages ​​as source code. Components can include, but are not limited to: one or more modules, objects, classes, routines, attributes, processes, threads, executable files, libraries or other components. Components can be in source or binary form. Components can include aspects of source code before compilation (e.g., classes, attributes, steps, routines), compiled binary units (e.g., libraries, executable files), or artifacts (e.g., objects, processes, threads) instantiated and used at runtime. In some embodiments, actors can be used to implement the various components and modules described below. In other embodiments, monolithic applications, multi-layer applications or other suitable components can also be used to implement the generation of applications and / or related services.

[0044] Components within a system may take different forms within the system. As an example, a system including a first component, a second component, and a third component may include, but is not limited to, a system in which the first component is a property in the source code, the second component is a binary compiled library, and the third component is a thread created at runtime. A computer program, step, or process may be compiled into an object, intermediate code, or machine code and presented for execution by one or more processors of a personal computer, a network server, a laptop computer, a smart phone, and / or other suitable computing device. Likewise, a component may include a hardware circuit.

[0045] Those skilled in the art will recognize that hardware can be thought of as petrified software, and software can be thought of as liquefied hardware. As just one example, the software instructions in the components can be burned into a programmable logic array circuit, or can be designed as a hardware circuit with an appropriate integrated circuit. Likewise, hardware can be emulated by software. Various implementations of source code, intermediate code, and / or object code and associated data can be stored in a computer memory, which includes a read-only memory, a random access memory, a disk storage medium, an optical storage medium, a flash memory device, and / or other suitable computer-readable storage medium other than a propagated signal.

[0046] As in Figure 3A As shown in , the public cloud 108 may include a resource manager 122 configured to facilitate management of various resources at the public cloud 108. The public cloud 108 may also include various resource providers 121 configured to provide various resources. For example, in the illustrated embodiment, the public cloud 108 may include an authentication service 124, a publishing service 126, and an access service 128 that are operably coupled to each other. Each of the above services may be provided by the computing structure 114 ( Figure 2A ) via one or more nodes 105 ( Figure 2A ) to execute appropriate instructions on the public cloud 108. The public cloud 108 may also include a repository 111, which contains records of applications 112 and usage data 114. The repository 111 may include a database or other suitable network storage device in the public cloud 108. Figure 3A Specific components of the public cloud 108 are shown in FIG. 1 , but in other embodiments, the public cloud 108 may also include storage services, computing services, network services, database services, or other suitable types of resource providers.

[0047] Resource manager 122 may be configured to deploy, monitor, and / or manage services provided to subscribers (e.g., Figure 1 The resource manager 122 may allow subscribers to interact with the available resources as a group. For example, the resource manager 122 may allow one or more available resources to be deployed, updated, or deleted in a coordinated operation. The resource manager 122 may also be configured to provide security, auditing, and tagging features to facilitate management of resources after deployment. Figure 3A 1 is shown as having a resource manager 122, but in other embodiments, the resource manager 122 may be omitted. In such embodiments, subscribers may manage the various available resources in the public cloud 108 individually, separately, or in other suitable ways.

[0048] The authentication service 124 can be configured to support a variety of authentication and authorization protocols. For example, in some embodiments, the authentication service 124 can be configured to support single-key or multi-key authentication. In other embodiments, the authentication service 124 can also be configured to support key rollover. In other embodiments, the authentication service 124 can also be configured to support granting limited access to HTTP (Hypertext Transfer Protocol) or other suitable services by orchestrating approval interactions between users and services, or by allowing users to obtain limited access themselves. An example authentication service 124 is provided by Microsoft Corporation of Redmond, Washington. Active Directory service. In one embodiment, the authentication service 124 may be part of the cloud computing platform of the public cloud 108. In other embodiments, the authentication service 124 may be a standalone service, application, or other suitable component.

[0049] The publishing service 126 may be configured to receive and publish to the user 101 ( Figure 1 ) provides access to the application 112. In some embodiments, the ISV may develop a SaaS application and submit the developed SaaS application to the publishing service 126. The publishing service 126 may in turn be configured to verify the submitted SaaS application to ensure compatibility with the cloud computing platform, the absence of malware, or other suitable purposes. The publishing service 126 may also be configured to categorize, classify, or otherwise identify one or more characteristics of the application 112.

[0050] The publishing service 126 can then be configured to store one or more copies of the various artifacts of the application 112 in, for example, a repository 111 in the public cloud 108 or other suitable network storage device (not shown). As used herein, the term "artifact" generally refers to a byproduct produced during the development of a block of software. For example, use cases, class diagrams, other Unified Modeling Language (UML) models, requirements, design documents, or other suitable types of artifacts can help describe the functionality, architecture, and / or design of the application 112. Other artifacts can contain information related to the development process of the application, such as project plans, business cases, and risk assessments.

[0051] In some embodiments, the publishing service 126 may also publish certain artifacts of the applications 112 to the access service 128. For example, in one embodiment, when an ISV submits an application 112, the ISV may elect to have the application 112 also published to the private cloud 106. In response to receiving the submitted application 112, the publishing service 126 may then notify, publish, or otherwise make the access service 128 aware of the submitted application 112. In other embodiments, all submitted applications 112 may be published to the access service 128 by default. In further embodiments, certain categories, classes, groups, or types of applications 112 may be automatically published to the private cloud 106 by default.

[0052] The access service 128 can be configured to interface with the connection service 134 in the private cloud 106. The access service 128 can be configured to expose various available resources of the public cloud 108 to the private cloud 106, as well as facilitate uploading usage data from the private cloud 106 to the public cloud 108. For example, in certain embodiments, the access service 128 can be configured to provide a list of applications 112 to the connection service 134. The applications 112 in the list are available to be published in the private cloud 106, as described in more detail below.

[0053] As in Figure 3A As shown in FIG, the private cloud 106 may include a resource manager 122′, a connection service 134, a compute service 136, a gallery service 138, and a usage tracking service 140 operably coupled to a repository 111′. The resource manager 122′ and the repository 111′ may be generally similar to those of the public cloud 108. For example, the resource manager 122′ may be configured to facilitate the administrator 103 to deploy, monitor, and / or manage resources in the private cloud 106. The repository 111′ may be configured to store applications 112′ published in the private cloud 106 and records of usage data 114′ in the private cloud 106.

[0054] The connection service 134 can be configured to interface with the access service 128 of the public cloud 108 while maintaining strict access control to the private cloud 106. In certain embodiments, the connection service 128 can be associated with a subscription to the access service 128 of the public cloud 108. Based on the subscription, the connection service 134 can be authenticated and connected to the access service 128 to perform various operations. For example, the connection service 134 can retrieve a list of applications 112 available for publication in the private cloud 106. The connection service 134 can also be configured to retrieve details (e.g., executable files) of the application 112 from the public cloud 108 and facilitate publication of the application 112 in the private cloud 106, as described below with reference to Figure 3B and Figure 3CThe computing service 136 may be configured to provide computing resources to the user 101 and / or other services of the private cloud 106. For example, in one embodiment, the computing service 136 may be configured to instantiate a virtual machine for retrieving details of the application 112 from the public cloud 108, as described below with reference to Figure 3B and Figure 3C Described in more detail.

[0055] The gallery service 138 may be configured to provide resources that facilitate the generation, publication, and / or modification of gallery items that correspond individually to applications 112' in the repository 111'. For example, in one embodiment, the gallery service 138 may create one or more gallery items based on a request from the connection service 134. In other embodiments, the gallery service 138 may also create, modify, or perform other operations on gallery items based on input from an administrator 103 or from other suitable entities.

[0056] The usage tracking service 140 can be configured to track the usage (e.g., elapsed time of usage) of the applications 112' and / or other software in the private cloud 106. For example, in one embodiment, the user 101 ( Figure 1 ) can deploy and execute the published application 112' in the private cloud 106. The usage tracking service 140 can track the duration of usage associated with the application 112' and create or update a record of the usage data 114' in the repository 111'. In other embodiments, the usage tracking service 140 can also be configured to report the accumulated usage data 114' to the public cloud 108, as described below with reference to Figure 4 Described in more detail.

[0057] Figure 3A The operation of retrieving a list of applications 112 suitable for being published in the private cloud 106 from the public cloud 108 is illustrated. Figure 3A As shown in , in operation, an ISV (not shown) can submit an application 112 to the public cloud 108. In response to receiving the submitted application 112, the publishing service 126 can verify and publish the application 112 to be accessible to the users 101 of the public cloud 108. The publishing service 126 can also publish one or more applications 112 suitable for being published in the private cloud 106 to the access service 128. In response, the access service 128 stores various artifacts of the application 112 in the repository 111.

[0058] In certain embodiments, the administrator 103 of the private cloud 106 may initiate the retrieval process for the list of applications 112 by submitting a retrieval request 142 to, for example, the resource manager 122'. The resource manager 122' may then call the connection service 134 to access the public cloud 108. In response, the connection service 134 may transmit an authentication request 144 to the public cloud 108 using a key, password, or other suitable credential. In response, the authentication service 124 at the public cloud 108 may authenticate the connection service 134 and transmit an access token 146 to the connection service 134 upon authentication.

[0059] As in Figure 3B , the connection service 134 may then utilize the access token to call the resource manager 122 at the public cloud 108 to retrieve the list of applications 112. In response, upon validating the access token 146, the resource manager 122 calls the access service 128 to obtain the list of applications 112. The access service 128 may then provide the list 154 of applications to the connection service 134, which in turn may display or otherwise output the list 154 of applications to the administrator 103, for example, on the client device 102′.

[0060] The administrator 103 may then select one, some, or all of the applications 112 in the list 154 of applications and issue a download command 152 to the resource manager 122' to initiate a download process to retrieve the selected applications 112. In response, the connection service 134 may transmit a details request 158 ​​to the resource manager 122 at the public cloud 108 to create a registration resource related to the application 112 and request application details 156 for the application 112 to be downloaded. The requested application details may include connection information, such as a shared access signature ("SAS") key, a network location, a download size, or other suitable parameters related to the application 112.

[0061] In response to receiving the details request 158, the access service 128 generates the requested application details 156. In one example, the access service 128 can create a SAS key for a storage account in the repository 111 that is associated with the application 112 to be downloaded. In other embodiments, the access service 128 can generate other suitable data for the application details 156 in other suitable ways. The access service 128 can then provide the generated application details 156 to the connection service 134 in the private cloud 106.

[0062] The connection service 134 can then create a computing resource (e.g., a virtual machine) in the resource manager 122' at the private cloud 106 and pass the application details 156 (e.g., a SAS key) to the created computing resource. Using the application details 156, the computing service 136 can then use the created computing resource to download various artifacts (e.g., application images, extensions, etc.) of the application 112 from the repository 111 of the public cloud 108 and store the downloaded artifacts in the repository 111' of the private cloud 106.

[0063] The connection service 134 may then create a gallery item resource in the resource manager 122′ of the private cloud 106 and pass the application details 156 to the gallery service 138. Using the application details 156, the gallery service 138 may then download one or more gallery items 160 from the repository 111 at the public cloud 108 and associate the downloaded gallery items 160 with the application 112′ stored in the repository 111′ at the private cloud 106. Optionally, the connection service 134 may also transmit a status update (not shown) to the resource manager 122 at the public cloud 108 to update the registered resource with a success or failure result.

[0064] Thus, several embodiments of the disclosed technology can allow a private cloud 106 to access published applications 112 in a public cloud 108 without compromising string access control in the private cloud 106. As described above, during the above-described publishing process in the private cloud 106, the public cloud 108 may not directly access any resources in the private cloud 106. Instead, the access service 128 only exposes certain information of available resources at the public cloud 108 and allows the private cloud 106 to decide whether and / or which application 112 will be published in the private cloud 106.

[0065] The access service 128 of the public cloud 108 can also facilitate the deletion or "unpublishing" of the published application 112' in the private cloud 106. Figure 3DAs shown in , the ISV can submit a removal request 163 to the public cloud 108 to remove one of the applications 112 from the public cloud 108. In response to receiving the removal request 163, the publishing service 126 can notify the access service 128 that the application 112 should be deleted. The access service 128 can then delete all artifacts related to the application 112 from the repository 111 at the public cloud 108. The access service can also set the status of the registered resources related to the deleted application 112 to a disabled state. When the connection service 134 at the private cloud 106 subsequently authenticates the authentication request 144, the connection service 134 can discover that the registered resources related to the deleted application 112 have been set to a disabled state. In response, the connection service 134 deletes the gallery items and computer resources corresponding to the deleted application 112 from the gallery service 138 and the computing service 136, respectively.

[0066] Figure 4 is a diagram illustrating certain stages during uploading usage data from private cloud 106 to public cloud 108 Figure 1 Schematic diagram of some hardware / software components of the hybrid cloud computing system 100 in FIG. In the following description, for the sake of clarity, the discussion of some operations is omitted. For example, Figure 3A The authentication operation shown in Figure 4 108, although such operations are performed whenever the connectivity service 134 accesses the access service 128 at the public cloud 108. Although the following discussion uses the interaction between the public cloud 108 and the private cloud 106 to illustrate various aspects of the disclosed technology, in other embodiments, the operations discussed below may also be applied to the interaction between two or more public clouds 108 (not shown, e.g., which are managed by different management entities or otherwise isolated).

[0067] In the illustrated embodiment, the administrator 103 may request a transfer of usage data from the private cloud 106 to the public cloud 108 by issuing a transfer request 166. In response, the connection service 134 may transmit a data storage request 168 to the resource manager 122 at the public cloud 108 to request access to the stored usage data 114' in the public cloud 108. In other embodiments, the connection service 134 or other components of the private cloud 106 may initiate such usage data uploads on a periodic, continuous, or other suitable basis. In some embodiments, the usage data 114' may include the duration of one or more uses of software deployed in the private cloud 106 (e.g., software of a cloud computing platform deployed in the private cloud 106 and / or one or more applications executed on a cloud computing platform in the private cloud 106 to provide various cloud services to the users 101 of the private cloud 106). In other embodiments, the usage data 114' may also include a digital signature or otherwise be associated with a digital signature to indicate to the public cloud 108 that the usage data 114' is indeed from the private cloud 106. An example digital signature may be generated by converting all or part of the usage data 114' into a string, number, or other suitable identifier via, for example, a cryptographic hash function. Analyzing such a digital signature may provide non-repudiation to the public cloud 108 to track, verify, and prove that the uploaded usage data 114' was indeed received from the private cloud 106 and that the usage data 114' was not altered during transmission.

[0068] In response to receiving the data storage request 168, the access service 128 can generate an access token 146' that allows the connection service 134 to access the data stored in the public cloud 108. In one example, the access token 146' can include connection information, such as a SAS key. In other examples, the access token 146' can include an access code, a password, or other suitable token. The connection service 134 can then pass the received access token 146' to the usage tracking service 140, which in turn uploads some or all of the usage data 114' in the repository 111' to the repository 111 of the public cloud 108 under the storage account associated with the connection service 134.

[0069] The access service 128 may then copy, move, or otherwise obtain the uploaded data 114 from the storage account associated with the connection service 134 and store the usage data 114 in another storage account associated with the access service 128 at the public cloud 108. The access service 128 may then cause various post-processing operations to be performed on the obtained usage data 114. For example, the access service 128 may cause filtering, sorting, categorization, anomaly detection, telemetry, or other suitable operations to be performed on the usage data 114 in another storage account associated with the access service 128. In another example, when the usage data 114 at the public cloud 108 becomes out of sync with the usage data 114' at the private cloud 106 (e.g., due to different progress of changes / updates in the public cloud 108 and the private cloud 106), the access service 128 may also cause a transformation of the uploaded usage data 114. Example transformations may include realigning the usage data 114 and 114' based on timestamps or other suitable markers, removing duplicate entries, combining certain entries, or other suitable operations.

[0070] The access service 128 can then push or otherwise transmit the post-processed usage data 114 to other suitable services for further processing. For example, a billing service in the public cloud 108 can generate charges or bills for users 101 of the private cloud 106 for using software of the cloud computing platform and / or applications executed on the cloud computing platform in the private cloud 106. In other examples, the service suspension service can suspend a service subscription associated with the connection service 134 of the private cloud 106 when one or more bills expire, a service suspension request is received, or under other suitable conditions.

[0071] Figure 5 is an illustration of certain stages during configuration of a service subscription to the public cloud 108 for a connection service 134 in the private cloud 106 Figure 1 A schematic diagram of some hardware / software components of the hybrid cloud computing system 100 in FIG. Figure 5 As shown in , the administrator 103 can initiate the configuration process by providing subscription credentials 170 (e.g., subscription password, key, etc.) that call the power shell script, or perform other suitable operations. In response, the connection service 134 uses the account request 172 to call the authentication service 124 at the public cloud 108 to create a service account for the connection service 134 based on the service credentials 170. In response to the received account request 172, upon authenticating the subscription credentials 170, the authentication service 124 provides identity access 174 to the connection service 134 at the private cloud 106. Based on the identity access 174, the connection service 134 can be configured to access the resource manager 122 at the public cloud 108. Subsequently, a registration resource for the connection service 134 can be created at the access service 128.

[0072] Figure 6A-6D is a diagram illustrating the promotion of an embodiment according to the disclosed technology Figure 1 Flowchart of various aspects of the process of operation between the public cloud 108 and the private cloud 106. Although the following reference Figure 1-Figure 5 These processes are described with reference to hybrid cloud computing system 100 , but in other embodiments, embodiments of these processes may be performed in other computing systems having additional and / or different components.

[0073] Fig. 6A 2 is a flow chart illustrating a process 200 of providing a list of available applications at a public cloud 108 to a private cloud 106 according to an embodiment of the disclosed technology. Fig. 6A As shown in FIG. 2 , process 200 may include receiving one or more applications to be published in a public cloud 108 from an ISV or other suitable entity at stage 202. Applications may be developed to provide solutions on a cloud computing platform common to both a public cloud and a private cloud 106. In some embodiments, some or all applications may be marked by default to be published to both a public cloud 108 and a private cloud 106. In other embodiments, an ISV or other suitable entity may choose whether to publish an application to a private cloud 106.

[0074] Process 200 may also include publishing the application to an access service at public cloud 108 at stage 204. In some embodiments, publishing the application to an access service at public cloud 108 includes providing various artifacts of the application to the access service, which in turn may store the received artifacts on a network storage device (such as, Figure 3A 111 in the repository 111 in the private cloud 106). The process 200 may also include receiving a retrieval request from a connection service in the private cloud 106 at stage 206. The connection service may be associated with a service subscription to the public cloud 108. In response to the received retrieval request, the process 200 may also include: at stage 208, based on the service subscription associated with the connection service of the private cloud 106, identifying and transmitting a list of applications available to the private cloud 106 via an access service of the public cloud 108.

[0075] Figure 6B 2 is a flow chart illustrating a process 210 of retrieving a list of available applications from a public cloud 108 according to an embodiment of the disclosed technology. Figure 6BAs shown in , process 210 may include authenticating a service subscription to the public cloud 108 at stage 212. In some embodiments, authenticating the service subscription includes submitting various types of subscription credentials to the public cloud 108. In other embodiments, the service subscription may be authenticated via other suitable means. Process 210 may also include transmitting a request for a list of available applications upon authentication at stage 214. In response, process 210 may include receiving a list of available applications at the private cloud 106 from the public cloud 108.

[0076] Figure 6C 2 is a flow chart illustrating a process 220 of downloading an application from a public cloud 108 according to an embodiment of the disclosed technology. Figure 6C As shown in , process 220 may include receiving a selection of one or more applications from a list of available applications at public cloud 108 at stage 222. Then, process 220 may include transmitting a request to download the selected application at stage 224. Process 220 may also include receiving product details of the selected application from public cloud 108 at stage 226. In some embodiments, the product details may include a SAS key or a binary large object (blob) associated with the selected application. In other embodiments, the product details may include other suitable information associated with the selected application. Then, process 220 may include downloading the selected application based on the received product details at stage 228. In some embodiments, downloading the selected application may include instantiating a virtual machine, and retrieving the selected application using the instantiated virtual machine. In other embodiments, downloading the selected application may include other suitable file retrieval techniques.

[0077] Fig.6D 2 is a flow chart illustrating a process 230 of uploading usage data from a private cloud 106 to a public cloud 108 according to an embodiment of the disclosed technology. Fig.6D As shown in , process 230 may include requesting permission to upload usage data at stage 232. In some embodiments, requesting permission may include submitting subscription credentials to the public cloud 108. In other embodiments, requesting permission may include submitting other suitable credentials to the public cloud 108. Then, process 230 may include receiving access permission from the public cloud 108 at stage 134. In one embodiment, the access permission may include a SAS key that grants limited access to a storage account in a network storage device in the public cloud 108. The storage account is associated with the private cloud 106. In other embodiments, the access permission may include an access token or other suitable type of permission. Then, process 230 may include uploading the usage data at the private cloud 106 to the network storage device of the public cloud 108 using the received access permission.

[0078] Despite the Figure 6A-6D The process illustrated in FIG. 1 shows specific operations, but in other embodiments, some operations may be combined into a single operation. For example, in Fig.6D In process 230, by storing the data store request 168 ( Figure 4 ) and usage data 114'( Figure 4 ) as a single package from private cloud 106 ( Figure 4 )Submit to public cloud 108( Figure 4 ), the operation of uploading usage data at stage 236 may be combined with the request to upload data at stage 232. During authentication, the public cloud 108 may save the uploaded usage data 114' in a temporary storage space, buffer, or other suitable location. At the time of authentication, the public cloud 108 may store the received usage data 114' in the connection service 134 ( Figure 4 ) in the account associated with your account.

[0079] Figure 7 Is applicable to Figure 1 The computing device 300 may be adapted to include certain components of the hybrid cloud computing system 100. For example, the computing device 300 may be adapted to include certain components of the hybrid cloud computing system 100. Figure 1 Node 105 or client device 102. In a very basic configuration 302, computing device 300 may include one or more processors 304 and system memory 306. Memory bus 308 may be used for communication between processor 304 and system memory 306.

[0080] Depending on the desired configuration, the processor 304 can be of any type, including but not limited to a microprocessor (μP), a microcontroller (μC), a digital signal processor (DSP), or any combination thereof. The processor 304 can include one or more levels of cache, such as a level 1 cache 310 and a level 2 cache 312, a processor core 314, and registers 316. An example processor core 314 can include an arithmetic logic unit (ALU), a floating point unit (FPU), a digital signal processing core (DSP core), or any combination thereof. An example memory controller 318 can also be used with the processor 304, or in some embodiments, the memory controller 318 can be an internal part of the processor 304.

[0081] Depending on the desired configuration, system memory 306 may be of any type, including but not limited to volatile memory (such as RAM), non-volatile memory (such as ROM, flash memory, etc.), or any combination thereof. System memory 306 may include an operating system 320, one or more applications 322, and program data 324. Figure 7 This described basic configuration 302 is illustrated in FIG. 3 by those components within the inner dashed line.

[0082] The computing device 300 may have additional features or functions, as well as additional interfaces to facilitate communication between the basic configuration 302 and any other devices and interfaces. For example, a bus / interface controller 330 may be used to facilitate communication between the basic configuration 302 and one or more data storage devices 332 via a storage interface bus 334. The data storage device 332 may be a removable storage device 336, a non-removable storage device 338, or a combination thereof. Examples of removable storage devices and non-removable storage devices include: magnetic disk devices such as floppy disk drives and hard disk drives (HDDs), optical disk drives such as compact disk (CD) drives or digital versatile disk (DVD) drives, solid state drives (SSDs), and tape drives, etc. Example computer storage media may include volatile and non-volatile, removable and non-removable media implemented in any method or technology for storing information (such as computer-readable instructions, data structures, program modules, or other data). The term "computer-readable storage medium" or "computer-readable storage device" does not include propagated signals and communication media.

[0083] System memory 306, removable storage 336, and non-removable storage 338 are examples of computer-readable storage media. Computer-readable storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store the desired information and can be accessed by computing device 300. Any such computer-readable storage medium may be part of computing device 300. The term "computer-readable storage medium" does not include propagated signals and communication media.

[0084] The computing device 300 may also include an interface bus 340 for facilitating communication from various interface devices (e.g., output devices 342, peripheral interfaces 344, and communication devices 346) to the basic configuration 302 via the bus / interface controller 330. Example output devices 342 include a graphics processing unit 348 and an audio processing unit 350, which may be configured to communicate with various external devices such as a display or speakers via one or more A / V (audio / video) ports 352. Example peripheral interfaces 344 include a serial interface controller 354 or a parallel interface controller 356, which may be configured to communicate with external devices such as input devices (e.g., keyboards, mice, pens, voice input devices, touch input devices, etc.) or other peripheral devices (e.g., printers, scanners, etc.) via one or more I / O (input / output) ports 358. Example communication devices 346 include a network controller 360, which may be arranged to facilitate communication with one or more other computing devices 362 over a network communication link via one or more communication ports 364.

[0085] A network communication link can be an example of a communication medium. Communication media can generally be embodied by computer-readable instructions, data structures, program modules, or other data in a modulated data signal (such as a carrier wave or other transmission mechanism), and can include any information delivery medium. A "modulated data signal" can be a signal having one or more of its characteristics set or changed in a manner that encodes the information in the signal. As an example and not limitation, communication media can include wired media such as a wired network or a direct wired connection, and wireless media such as acoustic, radio frequency (RF), microwave, infrared (IR) and other wireless media. The term computer-readable media as used herein can include storage media and communication media.

[0086] The computing device 300 may be implemented as part of a small portable (or mobile) electronic device such as a cellular phone, a personal digital assistant (PDA), a personal media player device, a wireless network watch device, a personal headset device, a dedicated device, or a hybrid device including any of the above functionality. The computing device 300 may also be implemented as a personal computer including both laptop computer configurations and non-laptop computer configurations.

[0087] It can be understood from the foregoing that the present disclosure has described specific embodiments of the present disclosure for illustrative purposes, but various modifications may be made without departing from the present disclosure. In addition, many elements of one embodiment may be combined with other embodiments in addition to or in place of the elements of other embodiments. Accordingly, the technology is not limited except as set forth in the appended claims.

Claims

1. A computing device for facilitating operations between a public cloud computing system and a private cloud computing system, the public cloud computing system being interconnected with the private cloud computing system via a computer network, the computing device comprising: processor; as well as a memory operatively coupled to the processor, the memory containing instructions executable by the processor to cause the processor to perform a process comprising: receiving a user input at the private cloud computing system, the user input selecting, from a list of applications available for deployment in the private cloud computing system, an application available at a network storage device of the public cloud computing system and deployable at the private cloud computing system based on a service subscription of the private cloud computing system to the public cloud computing system, the public cloud computing system being configured to provide information to the private cloud computing system based on the service subscription without directly accessing the private cloud computing system; and In response to receiving the user input, transmitting, via a connection service of the private cloud computing system, a request to retrieve the selected application to the public cloud computing system; and In response to granting the request by the public cloud computing system, the selected application is downloaded from the network storage device of the public cloud computing system.

2. The computing device of claim 1 , wherein the process performed by the processor further comprises: The downloaded application is published in the private cloud computing system so that users of the private cloud computing system have access to deploy the downloaded application in the private cloud computing system.

3. The computing device of claim 1 , wherein the process performed by the processor further comprises: The list of applications is presented to the user.

4. The computing device of claim 1 , wherein downloading the selected application based on the received product details comprises: instantiating a virtual machine at the private cloud computing system; passing the received product details to the instantiated virtual machine; as well as The virtual machine is directed to download the selected artifacts of the application from the network storage device of the public cloud computing system using the product details.

5. The computing device of claim 1 , wherein downloading the selected application based on the received product details comprises: instantiating a virtual machine at the private cloud computing system; passing the received product details to the instantiated virtual machine; as well as The virtual machine is directed to download the selected artifacts of the application from the network storage of the public cloud computing system using the product details, wherein the product details include permission to access the artifacts of the application in the network storage of the public cloud computing system.

6. The computing device of claim 1 , wherein the process performed by the processor further comprises: downloading a gallery item corresponding to the downloaded application from the public cloud computing system; The downloaded application is published in the private cloud computing system using the downloaded gallery item associated with the downloaded application.

7. The computing device of claim 1 , wherein the process performed by the processor further comprises: downloading a gallery item corresponding to the downloaded application from the public cloud computing system; as well as publishing the downloaded application in the private cloud computing system using the downloaded gallery item associated with the downloaded application; as well as In response to successful publishing of the downloaded application, a status update indicating successful publishing of the downloaded application in the private cloud computing system is transmitted to the public cloud computing system.

8. A method of facilitating operations between a public cloud computing system and a private cloud computing system, the public cloud computing system being interconnected with the private cloud computing system via a computer network, the method comprising: detecting, based on a service subscription of a connectivity service of the private cloud computing system to an access service of the public cloud computing system, a selection of one of the one or more available applications in a list showing one or more available applications for deployment in the private cloud computing system, the access service being configured to provide information to the connectivity service of the private cloud computing system based on the service subscription without directly accessing the private cloud computing system; as well as In response to detecting the selection, requesting and receiving from the public cloud computing system one or more components of the one of the one or more available applications corresponding to the detected selection; as well as The received one or more components of the one of the one or more available applications are deployed in the private cloud computing system.

9. The method according to claim 8, further comprising: transmitting an authentication request for the connection service from the private cloud computing system to the public cloud computing system, the authentication request including data representing the service subscription associated with the connection service; and Wherein receiving the list showing available applications comprises: receiving the list showing available applications in response to authentication of the connection service by the public cloud computing system.

10. The method according to claim 8, further comprising: transmitting an authentication request for the connection service from the private cloud computing system to the public cloud computing system; receiving an access token to the access service of the public cloud computing system in response to authentication of the connection service by the public cloud computing system; and The transmitting the request to the public cloud computing system includes transmitting the request for an available application stored in a network storage device at the public cloud computing system and the received access token.

11. The method according to claim 8, further comprising: transmitting an authentication request for the connection service from the private cloud computing system to the public cloud computing system; receiving an access token to the access service of the public cloud computing system in response to authentication of the connection service by the public cloud computing system; and wherein transmitting the request to the public cloud computing system comprises: transmitting the request for an available application stored in a network storage device at the public cloud computing system and the received access token; and Wherein receiving the list of available applications comprises: receiving the list of available applications based on the transmitted access token and the request for available applications.

12. The method according to claim 8, wherein: The public cloud computing system includes a collection of available applications stored in a network storage device; and The service subscription associated with the connectivity service identifies a subset of the available applications deployable at the private cloud computing system.

13. The method according to claim 8, further comprising: receiving, at the private cloud computing system, a user input requesting that the list of available applications be shown; and Wherein transmitting the request for available applications stored in a network storage device at the public cloud computing system includes: in response to the user input received at the private cloud computing system, using the connection service of the private cloud computing system to transmit the request for available applications stored in the network storage device at the public cloud computing system.

14. A method of facilitating operations between a public cloud computing system and a private cloud computing system, the public cloud computing system being interconnected with the private cloud computing system via a computer network, the method comprising: using a connection service of the private cloud computing system, transmitting a request for a list of available applications stored in a network storage device at the public cloud computing system, the list of available applications being deployable at the private cloud computing system; receiving, via the access service of the public cloud computing system, a list showing one or more available applications based on a service subscription of the connection service of the private cloud computing system to the access service of the public cloud computing system, the access service being configured to provide information to the connection service of the private cloud computing system based on the service subscription without directly accessing the private cloud computing system; as well as The received list is presented for selection of an available application from among the one or more available applications in the list for deployment in the private cloud computing system.

15. The method according to claim 14, further comprising: transmitting an authentication request for the connection service from the private cloud computing system to the public cloud computing system, the authentication request including data representing the service subscription associated with the connection service; and Wherein receiving the list showing available applications comprises: receiving the list showing available applications in response to authentication of the connection service by the public cloud computing system.

16. The method according to claim 14, further comprising: transmitting an authentication request for the connection service from the private cloud computing system to the public cloud computing system; receiving an access token to the access service of the public cloud computing system in response to authentication of the connection service by the public cloud computing system; and Wherein transmitting the request to the public cloud computing system includes transmitting the request for an available application stored in the network storage device at the public cloud computing system and the received access token.

17. The method according to claim 14, further comprising: transmitting an authentication request for the connection service from the private cloud computing system to the public cloud computing system; receiving an access token to the access service of the public cloud computing system in response to authentication of the connection service by the public cloud computing system; and wherein transmitting the request to the public cloud computing system comprises: transmitting the request for an available application stored in the network storage device at the public cloud computing system and the received access token; and Wherein receiving the list of available applications comprises: receiving the list of available applications based on the transmitted access token and the request for available applications.

18. The method according to claim 14, further comprising: The public cloud computing system includes a set of available applications stored in the network storage device; and The service subscription associated with the connectivity service identifies a subset of the available applications deployable at the private cloud computing system.

19. The method of claim 14, wherein: receiving, at the private cloud computing system, a user input requesting that the list of available applications be shown; and Wherein transmitting the request for available applications stored in a network storage device at the public cloud computing system includes: in response to the user input received at the private cloud computing system, using the connection service of the private cloud computing system to transmit the request for available applications stored in the network storage device at the public cloud computing system.

20. The method of claim 14, further comprising: In response to detecting a selection of one of the one or more available applications in the list, requesting and receiving from the public cloud computing system one or more components of the one of the one or more available applications corresponding to the detected selection; as well as The received one or more components of the one of the one or more available applications are deployed in the private cloud computing system.

Citation Information

Patent Citations

  • System for managing cloud computing service and cloud computing management method

    CN102427481A

  • Cloud computing management system and cloud computing management method

    CN102882908A