The present invention relates generally to computer management, and more particularly to a system, method, and software for object-based cloud computing management.
Cloud computing systems include computing resources. For example, cloud computing systems may include servers, network storage devices, and other information technology (IT) services. Cloud computing systems include proprietary interfaces to access their respective computing resources.
According to the present invention, disadvantages and problems associated with previous techniques for managing cloud computing systems may be reduced or eliminated.
In certain embodiments, a method for managing cloud computing systems includes establishing a connection between a cloud computing interface and cloud computing systems. Each of the cloud computing systems includes computing resources accessible by a proprietary interface. The cloud computing interface includes object methods that abstract the proprietary interface of each of the cloud computing systems. The method further includes receiving a request to perform an operation on one or more of the cloud computing systems. The method further includes provisioning at least one object method to implement the request.
Certain embodiments of the present invention may provide one or more technical advantages. Conventional cloud computing systems include computing resources and each provider may provide access to the computing resources in a slightly different way. Similar to other emerging technologies, providers of cloud computing systems have created proprietary interfaces to these technologies. Customers may select a particular cloud computing system to avoid dealing with inconsistent and different interfaces and, therefore, are limited to only the capabilities provided by the chosen cloud computing system. According to certain embodiments of the present invention, a cloud computing interface addresses these challenges by providing a uniform means for discovery, monitoring, and management of such environments. The cloud computing interface provides an abstraction layer for the cloud computing systems. The abstraction layer provides a standard communication interface to the cloud computing systems. As a result, certain embodiments of the present invention provide a uniform interface to these cloud computing systems so that they can be used, monitored, and managed in a uniform manner regardless of environment or resources provided. Thus, the possibilities for customers to use cloud computing systems may be expanded and the total cost of ownership may be reduced.
Certain embodiments of the present invention may include some, all, or none of the above advantages. One or more other technical advantages may be readily apparent to those skilled in the art from the figures, descriptions, and claims included herein. Moreover, while specific advantages have been enumerated above, various embodiments may include all, some, or none of the enumerated advantages.
For a more complete understanding of the present invention and its features and advantages, reference is now made to the following description, taken in conjunction with the accompanying drawings, in which:
In general, system 100 is operable to manage cloud computing systems. In certain embodiments, system 100 includes an abstraction layer for discovery, monitoring, and configuration of such cloud computing systems. The abstraction layer may include a standard communication interface to the cloud computing systems. As described in more detail below, the standard communication interface facilitates management of cloud computing systems in a uniform manner regardless of provider.
System 100 may include one or more user systems 102 and one or more administrative systems 104. “User system 102” and “user of user system 102” may be used interchangeably. A user of user system 102 may include, for example, a human user or a computer program or other suitable software module for automatically interacting with user system 102. Likewise, “administrative system 104” and “user of administrative system 104” may be used interchangeably. A user of administrative system 104 may include, for example, a human user or a computer program or other suitable software module for automatically interacting with administrative system 104.
Each user system 102 and administrative system 104 may include one or more computer systems at one or more locations. Each computer system may include any appropriate input devices (such as a keypad, touch screen, mouse, or other device that can accept information), output devices, mass storage media, or other suitable components for receiving, processing, storing, and communicating data. Both the input device and output device may include fixed or removable storage media such as a magnetic computer disk, CD-ROM, or other suitable media to both receive input from and provide output to a user of administrative system 104. Each computer system may include a personal computer, workstation, network computer, kiosk, wireless data port, personal data assistant (PDA), one or more processors within these or other devices, or any other suitable processing device. As an example, system 100 may include multiple distributed user systems 102 and/or administrative systems 104. User systems 102 and administrative systems 104 may be physically distributed, being in different locations geographically remote from each other and from the other components of system 100, or logically distributed, being at approximately the same location as other user systems 102 and administrative systems 104 and the other components of system 100. For simplicity, the one or more user systems 102 and administrative systems 104 of system 100 are referred to throughout this description primarily in the singular. Although user system 102 and administrative system 104 are illustrated and primarily described as being separate, it is understood that the computer systems and the functionality associated with user system 102 and administrative system 104 may be combined or separated in any suitable manner.
System 100 may include one or more server systems 106, referred to primarily in the singular throughout the remainder of this description. Server system 106 may include one or more electronic computing devices operable to receive, transmit, process, and store data associated with system 100. For example, server system 106 may include one or more general-purpose PCs, Macintoshes, workstations, Unix-based computers, server computers, one or more server pools, or any other suitable devices. In certain embodiments, server system 106 includes a web server. In short, server system 106 may include any suitable combination of software, firmware, and hardware. Although a single server system 106 is illustrated, the present invention contemplates system 100 including any suitable number of server systems 106. Moreover, although referred to as a “server system,” the present invention contemplates server system 106 comprising any suitable type of processing device or devices.
Server system 106 may be communicatively coupled to cloud computing systems 108 and 110 via network 112. Although not illustrated, user system 102 and administrative system 104 may be communicatively coupled to one another as well as to server system 106 via network 112. Network 112 facilitates wireless or wireline communication. Network 112 may communicate, for example, IP packets, Frame Relay frames, Asynchronous Transfer Mode (ATM) cells, voice, video, data, and other suitable information between network addresses. Network 112 may include one or more local area networks (LANs), radio access networks (RANs), metropolitan area networks (MANs), wide area networks (WANs), all or a portion of the global computer network known as the Internet, and/or any other communication system or systems at one or more locations.
Server system 106 may include a processing module 114 and a memory module 116. Processing module 114 may include one or more microprocessors, controllers, or any other suitable computing devices or resources. Processing module 114 may work, either alone or with other components of system 100, to provide a portion or all of the functionality of system 100 described herein. Memory module 116 may take the form of volatile or non-volatile memory including, without limitation, magnetic media, optical media, random access memory (RAM), read-only memory (ROM), removable media, or any other suitable memory component. Although a single server system 106 is illustrated, the present invention contemplates system 100 including any suitable number of server systems 106. Moreover, although referred to as a “server system,” the present invention contemplates server system 106 comprising any suitable type of processing device or devices.
System 100 may include one or more cloud computing systems 108 and 110. Cloud computing systems 108 and 110 may include one or more electronic computing devices operable to receive, transmit, process, and store data associated with system 100. For example, cloud computing systems 108 and 110 may include one or more general-purpose PCs, Macintoshes, workstations, Unix-based computers, server computers, one or more server pools, or any other suitable devices. In short, cloud computing systems 108 and 110 may include any suitable combination of software, firmware, and hardware. It should be noted that although two cloud computing systems 108 and 110 are illustrated, any suitable number of cloud computing systems may be included in system 100. In addition, there may be multiple groups of cloud computing systems in system 100.
In certain embodiments, cloud computing systems 108 and 110 provide computing resources 124 and 126, respectively, to customers and charges the customers for their specific use of computing resources 124 and 126. For example, cloud computing resources 124 and 126 may include one or more virtual machines. As another example, cloud computing resources 124 and 126 may include one or more machine images. A machine image may refer to a bootable file that includes a particular configuration and operating system. As yet another example, cloud computing resources 124 and 126 may include one or more Intel x86 based servers that provide a combination of hardware and software resources.
In certain embodiments, computing resources 124 and 126 may be accessible by proprietary interfaces 120 and 122, respectively. In certain embodiments, interfaces 120 and 122 may be unique to their respective cloud computing systems 108 and 110. For example, interfaces 120 and 122 may each include a proprietary command-line interface (CLI) operable to receive typing commands. As another example, interfaces 120 and 122 may each include a proprietary graphical user interface (GUI) such as an online portal that includes hypertext mark-up language (HTML) pages for display and data capture. As another example, interfaces 120 and 122 may each include a proprietary data adapter to access computing resources 124 and 126. It should be noted that although two proprietary interfaces 120 and 122 are illustrated, any suitable number of proprietary interfaces may be implemented. In addition, there may be multiple groups of cloud computing systems sharing a proprietary interface.
A user of user system 102 may select a particular cloud computing system to avoid accessing different proprietary interfaces 120 and 122. For example, resources 124 and 126 of cloud computing systems 108 and 110 may include Unix-based computer resources. Cloud computing systems 108 and 110 may expose resources 124 and 126 in inconsistent and different ways through proprietary interfaces 120 and 122. A user of user system 102 may select a particular cloud computing system and interface, such as cloud computing system 108 and interface 120, to avoid dealing with different interfaces, such as interface 122. Thus, the user may be limited to the Unix-based computers provided by the cloud computing system selected, and therefore the user may not able to take advantage of the Unix-based computers of other cloud computing systems, such as cloud computing system 110.
In certain embodiments, server system 106 may include a cloud computing interface 118. Cloud computing interface 118 may refer to any suitable hardware and/or software operable to abstract proprietary interfaces 120 and 122. In certain embodiments, abstracting proprietary interfaces may refer to displaying the functionality of the proprietary interfaces. In certain embodiments, abstracting proprietary interfaces may refer to translating a request provided by a user into proprietary commands to implement the request at one or more cloud computing systems. As described in more detail below, by abstracting proprietary interfaces 120 and 122, cloud computing interface 118 provides an abstraction layer for cloud computing systems 108 and 110 that hides the different implementation details of the interfaces 120 and 122 to a user and may display the functionality of interfaces 120 and 122 through a uniform interface.
Cloud computing interface 118 includes object methods that abstract proprietary interfaces 120 and 122, in certain embodiments. An object method may refer to any object-oriented functionality. For example, an object method may refer to an application-specific program, a data structure, a class, a web service, and/or any other suitable object-oriented functionality according to particular needs.
Cloud computing interface 118 may receive a request to perform an operation on one or more of the plurality of cloud computing systems and may provision an object method to implement the operation, in certain embodiments. For example, cloud computing interface 118 may receive a request from a user to add a new a virtual machine to cloud computing system 108. Cloud computing interface 118 may provision an object method that translates the request into proprietary commands to implement the request to add a new virtual machine at cloud computing system 108. Thus, cloud computing interface 118 may receive a request to perform an operation on one or more of the plurality of cloud computing systems and an object method may implement the operation.
In certain embodiments, the object methods may be dynamically configured. For example, as described above, proprietary interfaces 120 and 122 may each include a proprietary data adapter to access computing resources 124 and 126. The object methods may be dynamically configured to communicate with the data adapters. As another example, the object methods may be dynamically configured using Extensible Markup Language (XML) files that describe the functionality and communication protocols of proprietary interfaces 120 and 122. By dynamically configuring the object methods, object methods may be rapidly provisioned to support new proprietary interfaces and new functionality within existing proprietary interfaces.
In certain embodiments, a secure connection may be established between cloud computing interface 118 and cloud computing systems 108 and 110 over network 112. For example, a secure Hypertext Transfer Protocol (HTTP) connection may be established between cloud computing interface 118 and cloud computing systems 108 and 110. A secure HTTP protocol refers to a protocol that provides the ability for secure transactions to take place over network 112. In alternative networks, any suitable data communications protocol may be used to establish a secure connection. Additional details of example embodiments of cloud computing interface 118 are discussed below with reference to
Display component 130 may abstract the interfaces of cloud computing systems 108 and 110 and generate a display of the functionality of the interfaces, in certain embodiments. For example, display component 130 may include an object method that may display applications and/or servers provided by interfaces of cloud computing systems 108 and 110. As another example, display component 130 may include an object method that may discover at least one computing resource in cloud computing systems 108 and 110. As another example, display component 130 may include an object method that may list features and/or services provided by interfaces of cloud computing systems 108 and 110.
In certain embodiments, cloud computing imaging component 132 may manage resources for cloud computing systems 108 and 110. For example, imaging component 132 may include an object method that may add machine images to cloud computing systems 108 and 110. As another example, imaging component 132 may include an object method that may display machine images provided by cloud computing systems 108 and 110. As another example, imaging component 132 may include an object method that may instantiate a new server from a machine image.
Cloud computing change and configurations component 134 may configure cloud computing systems 108 and 110, in certain embodiments. For example, change and configurations component 134 may include an object method that may determine the resource consumption of applications and/or servers. As another example, change and configurations component 134 may include an object method that may retrieve the cost associated with operating applications and/or servers. As another example, change and configurations component 134 may include an object method that may determine the resource consumption of selected applications and/or servers. As another example, change and configurations component 134 may include an object method that may delete existing applications and/or servers.
In certain embodiments, display 302 includes several menu tabs for managing the cloud computing systems listed in the managed resource area. In the illustrated embodiment, a summary tab, an imaging tab, a software tab, and an add resource tab are displayed for a particular window and, as indicated by reference number 306, the add resource tab is selected. The add resource tab includes several selectable buttons to add a resource to a particular cloud computing system. For example, button 308 may be selected to add a new virtual machine to a particular cloud computing system. As another example, button 310 may be selected to add a new SUN SOLARIS system to a particular cloud computing system. As yet another example, button 312 may be selected to add a new WINDOWS/LINUX system to a particular cloud computing system. As yet another example, button 314 may be selected to add a new AIX system to a particular cloud computing system. As yet another example, button 316 may be selected to add a new logical partition to a particular cloud computing system. As yet another example, button 318 may be selected to add a new machine image to a particular cloud computing system.
In certain embodiments, a user may select a particular button, such as button 318, by selecting a particular region of display 302 (as indicated by reference number 320) and cloud computing interface 118 may provision an object method to implement the request. In the illustrated embodiment, selecting the particular region of display 302 indicated by reference number 320 may generate a request to add a new machine image. Cloud computing interface 118 may receive the request to add a new machine image and may provision an object method to implement the request. The object method may translate the request into proprietary commands to implement the request.
In certain embodiments, selecting a particular region of display 302 (as indicated by reference number 320) may result in display 302 displaying a new window, such as a new window associated with selecting a particular machine image to add. An example embodiment of selecting a machine image is described in more detail with reference to
In certain embodiments, a user may select a particular machine image to add by selecting a particular region of window 404 (as indicated by reference number 410) and cloud computing interface 118 may provision an object method to implement the request. In the illustrated embodiment, selecting the particular region of window 404 as indicated by reference number 410 may generate a request to add a new machine image. Cloud computing interface 118 may receive the request to add a new machine image and may provision an object method to implement the request. The object method may translate the request into proprietary commands to implement the request.
In certain embodiments, a view of the summary may be customized according to one or more buttons and selection boxes and cloud computing interface 118 may provision an object method to implement the request. For example, a view of the summary may be customized by time selection criteria including 30 minutes (30 m), 1 hour (1 h), 6 hours (6 h), 12 hours (12 h), 1 day (1 d), 1 week (1 wk), 2 weeks (2 wks), and 1 month (1 mo). As another example, a view of the summary may be customized by auto scale and auto refresh selection boxes.
In certain embodiments, a user may select particular criteria by selecting a particular region of window 502 and cloud computing interface 118 may provision an object method to implement the request. For example, a user may select 6 hours (6 h) from the time selection criteria to change the display. Cloud computing interface 118 receives the request and provisions an object method to request data to display the updated summary of and resource_alpha.systema.com.
In certain embodiments, a user may update the profile by editing a particular field and cloud computing interface 118 may provision an object method to implement the request. For example, a user may update the IP Address field to include a different value for resource_alpha.systema.com. Cloud computing interface 118 receives the request and provisions an object method to update the IP address of resource_alpha.systema.com at cloud computing system A.
In certain embodiments, a user may request a change detection analysis to identify changes to resources and cloud computing interface 118 may provision an object method to implement the request. For example, a user may compare a current configuration of components against a baseline configuration of components. Cloud computing interface 118 may receive the request to perform a change detection analysis and may provision an object method to implement the request. In the illustrated embodiment, resource_beta.systema.com is compared against a baseline configuration and the comparison results list an Apache2 HTTP Server (UNIX)(/) as a detected change to resource_beta.systema.com.
It should be understood that some of the steps illustrated in
Although the present invention has been described with several embodiments, diverse changes, substitutions, variations, alterations, and modifications may be suggested to one skilled in the art, and it is intended that the invention encompass all such changes, substitutions, variations, alterations, and modifications as fall within the spirit and scope of the appended claims.
This application claims the benefit under 35 U.S.C. §119(e) of the priority of U.S. Provisional Application No. 61/114,876 filed Nov. 14, 2008, entitled “System, Method, and Software for Object-Based Cloud Computing Management and Reference Architecture.”
Number | Date | Country | |
---|---|---|---|
61114876 | Nov 2008 | US |