The subject matter of this invention relates generally to application processing. More specifically, aspects of the present invention provide a solution for maximizing resources in a multi-application processing environment.
Computer applications are pieces of computer software that help a user thereof perform a task or a number of related tasks. In the electronic environment of today, these applications are often provided in such a way as to be accessible to a number of users. To accomplish this, a provider of the application may host the application from a particular location that is accessible via a network, such as a local area network or wide area network, such as the Internet.
As the number of users utilizing applications provided by a host increases, the hardware requirements can easily move beyond what is able to be provided by a single server site. Because of this, networks of server sites are often used for purposes of application hosting. These networks can include large numbers of servers that can be geographically remote from one another. One such solution for such a network is a cloud environment. Cloud computing delivers hardware and/or software computing resources for use as a service over a network, such as the internet.
The inventors of the present invention have discovered that the current way of managing resources in a network of server sites can be improved. Specifically, applications are often assigned to server sites that fail to maximize resources of the server site. These assignments can use such assigning strategies as first come first served, geographical location, most available space, or the like. However, use of these and other potentially inefficient strategies can result in fewer applications being able to be provided by a specific server site and/or by the network as a whole.
In general, aspects of the present invention provide a solution for maximizing server site resources in a server network. In an embodiment, an application signature is collected for an application. This application signature includes a representation of operating characteristics of the application. The application signature is compared with application signatures collected from other applications in the server network. Based on the comparison, the application is assigned for execution to a server site that hosts a group of applications that have similar application signatures to that of the application.
A first aspect of the invention provides a method for maximizing server site resources in a server network, comprising: collecting an application signature of an application, the application signature including a representation of operating characteristics of the application; comparing the application signature with application signatures collected from other applications in the server network; and assigning, based on the comparing, the application for execution on a server site hosting a group of applications having application signatures that are similar to the application signature of the application.
A second aspect of the invention provides a system for maximizing server site resources in a server network, comprising at least one computer device that performs a method, comprising: collecting an application signature of an application, the application signature including a representation of operating characteristics of the application; comparing the application signature with application signatures collected from other applications in the server network; and assigning, based on the comparing, the application for execution on a server site hosting a group of applications having application signatures that are similar to the application signature of the application.
A third aspect of the invention provides a computer program product stored on a computer readable storage medium, which, when executed performs a method for maximizing server site resources in a server network, comprising: collecting an application signature of an application, the application signature including a representation of operating characteristics of the application; comparing the application signature with application signatures collected from other applications in the server network; and assigning, based on the comparing, the application for execution on a server site hosting a group of applications having application signatures that are similar to the application signature of the application.
A fourth aspect of the invention provides a method for deploying an application for maximizing server site resources in a server network, comprising: providing a computer infrastructure being operable to: retrieve collect an application signature of an application, the application signature including a representation of operating characteristics of the application; compare the application signature with application signatures collected from other applications in the server network; and assign, based on the comparing, the application for execution on a server site hosting a group of applications having application signatures that are similar to the application signature of the application.
Still yet, any of the components of the present invention could be deployed, managed, serviced, etc., by a service provider who offers to implement the teachings of this invention in a computer system.
Embodiments of the present invention also provide related systems, methods and/or program products.
These and other features of this invention will be more readily understood from the following detailed description of the various aspects of the invention taken in conjunction with the accompanying drawings in which:
The drawings are not necessarily to scale. The drawings are merely schematic representations, not intended to portray specific parameters of the invention. The drawings are intended to depict only typical embodiments of the invention, and therefore should not be considered as limiting the scope of the invention. In the drawings, like numbering represents like elements.
As indicated above, aspects of the present invention provide a solution for maximizing server site resources in a server network. In an embodiment, an application signature is collected for an application. This application signature includes a representation of operating characteristics of the application. The application signature is compared with application signatures collected from other applications in the server network. Based on the comparison, the application is assigned for execution to a server site that hosts a group of applications that have similar application signatures to that of the application.
Turning to the drawings,
Computing device 104 is shown including a processing component 106 (e.g., one or more processors), a memory 110, a storage system 118 (e.g., a storage hierarchy), an input/output (I/O) component 114 (e.g., one or more I/O interfaces and/or devices), and a communications pathway 112. In general, processing component 106 executes program code, such as resource maximizing program 140, which is at least partially fixed in memory 110. To this extent, processing component 106 may comprise a single processing unit, or be distributed across one or more processing units in one or more locations.
Memory 110 also can include local memory, employed during actual execution of the program code, bulk storage (storage 118), and/or cache memories (not shown) which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage 118 during execution. As such, memory 110 may comprise any known type of temporary or permanent data storage media, including magnetic media, optical media, random access memory (RAM), read-only memory (ROM), a data cache, a data object, etc. Moreover, similar to processing component 116, memory 110 may reside at a single physical location, comprising one or more types of data storage, or be distributed across a plurality of physical systems in various forms.
While executing program code, processing component 106 can process data, which can result in reading and/or writing transformed data from/to memory 110 and/or I/O component 114 for further processing. Pathway 112 provides a direct or indirect communications link between each of the components in computer system 102. I/O component 114 can comprise one or more human I/O devices, which enable a human user 120 to interact with computer system 102 and/or one or more communications devices to enable a system user 120 to communicate with computer system 102 using any type of communications link.
To this extent, resource maximizing program 140 can manage a set of interfaces (e.g., graphical user interface(s), application program interface, and/or the like) that enable human and/or system users 120 to interact with resource maximizing program 140. Users 120 could include system administrators who want to maximize the resources of their server sites, among others. Further, resource maximizing program 140 can manage (e.g., store, retrieve, create, manipulate, organize, present, etc.) the data in storage system 118, including, but not limited to one or more application signatures 152, using any solution.
In any event, computer system 102 can comprise one or more computing devices 104 (e.g., general purpose computing articles of manufacture) capable of executing program code, such as resource maximizing program 140, installed thereon. As used herein, it is understood that “program code” means any collection of instructions, in any language, code or notation, that cause a computing device having an information processing capability to perform a particular action either directly or after any combination of the following: (a) conversion to another language, code or notation; (b) reproduction in a different material form; and/or (c) decompression. To this extent, resource maximizing program 140 can be embodied as any combination of system software and/or application software. In any event, the technical effect of computer system 102 is to provide processing instructions to computing device 104 in order to maximize server site resources.
Further, resource maximizing program 140 can be implemented using a set of modules 142-146. In this case, a module 142-146 can enable computer system 102 to perform a set of tasks used by resource maximizing program 140, and can be separately developed and/or implemented apart from other portions of resource maximizing program 140. As used herein, the term “component” means any configuration of hardware, with or without software, which implements the functionality described in conjunction therewith using any solution, while the term “module” means program code that enables a computer system 102 to implement the actions described in conjunction therewith using any solution. When fixed in a memory 110 of a computer system 102 that includes a processing component 106, a module is a substantial portion of a component that implements the actions. Regardless, it is understood that two or more components, modules, and/or systems may share some/all of their respective hardware and/or software. Further, it is understood that some of the functionality discussed herein may not be implemented or additional functionality may be included as part of computer system 102.
When computer system 102 comprises multiple computing devices 104, each computing device 104 can have only a portion of resource maximizing program 140 fixed thereon (e.g., one or more modules 142-146). However, it is understood that computer system 102 and resource maximizing program 140 are only representative of various possible equivalent computer systems that may perform a process described herein. To this extent, in other embodiments, the functionality provided by computer system 102 and resource maximizing program 140 can be at least partially implemented by one or more computing devices that include any combination of general and/or specific purpose hardware with or without program code. In each embodiment, the hardware and program code, if included, can be created using standard engineering and programming techniques, respectively.
Regardless, when computer system 102 includes multiple computing devices 104, the computing devices can communicate over any type of communications link. Further, while performing a process described herein, computer system 102 can communicate with one or more other computer systems using any type of communications link. In either case, the communications link can comprise any combination of various types of wired and/or wireless links; comprise any combination of one or more types of networks; and/or utilize any combination of various types of transmission techniques and protocols.
As discussed herein, resource maximizing program 140 enables computer system 102 to maximize server site resources. To this extent, resource maximizing program 140 is shown including a signature collecting module 142, a signature comparing module 144, and an application assigning module 146.
Referring now to
In an embodiment, server network environment 200 can be a virtual datacenter environment. In this embodiment, one or more of server sites 202, 212 is a physical server. Applications 204, 214 on the server sites 202, 212 in a virtual datacenter environment can include one or more virtual servers. Each instance of application 204, 214 that is a virtual server on a particular physical server can operate simultaneously with other systems instances virtual server applications 204, 214 while maintaining independence. This means that each of the instances of applications 204, 214 that include a virtual server operates independently of other virtual server instances and does not share information with other virtual server instances even though the virtual server instances operate on the same physical server. Owing to the characteristics of these virtual server instances, a single physical server site 202, 212 can execute a very large number of virtual server instances concurrently. The independent operation of these virtual server instances ensures that the number of concurrent virtual server instances is only limited by the hardware constraints of physical server site 202, 212.
Turning now to
To this extent, virtual server 230, includes a virtualization hypervisor 232 at the lowest level. Specifically, virtualization hypervisor 232 provides a platform that allows multiple “guest” systems to run concurrently on the physical server 210 (
In any event, referring back to
Turning now to
In any event, turning again to
Referring now to
Referring back to
Additionally or in the alternative, optimization could be performed at the software level. One example of software modifications could include combined hash tables for applications that use the same hash intensive applications. Software level optimization can also include applications on the physical server undergoing a whole or partial de-instantiation. In this process, one or more applications that execute the same application software can be collapsed into a single instance. This can enable a single instance of the application software to be instantiated for all of the collapsed applications. In addition, an application can be checked at the virtual machine level to determine whether a version of application software that it is executing in common with other applications on the physical server is an older version than that being executed by the other members. In this case, attempts can be made to upgrade the software to the most current version, including, but not limiting to contacting a user 120 to offer an upgrade or the like. Once this upgrade has been performed, the application can be merged as described above. The above examples should not be seen as limiting, but it should rather be understood that any solution for optimizing a computer site to perform a certain class of tasks is envisioned.
Further, process virtual machines that are located in different logical partitions (LPAR) of the physical server can be grouped in the same LPAR. In addition, threads of applications that would normally utilize different process virtual machines can be grouped into a single process virtual machine. Still further, LPARs can be converted to WPARs, while remove some of the constraints regarding complete separation of applications while maintaining logical separation.
Turning now to
While shown and described herein as a method and system for maximizing server site resources, it is understood that aspects of the invention further provide various alternative embodiments. For example, in one embodiment, the invention provides a computer program fixed in at least one computer-readable medium, which when executed, enables a computer system to maximize server site resources. To this extent, the computer-readable medium includes program code, such as resource maximizing program 140 (
In another embodiment, the invention provides a method of providing a copy of program code, such as resource maximizing program 140 (
In still another embodiment, the invention provides a method of generating a system for remediating a migration-related failure. In this case, a computer system, such as computer system 120 (
The terms “first,” “second,” and the like, if and where used herein do not denote any order, quantity, or importance, but rather are used to distinguish one element from another, and the terms “a” and “an” herein do not denote a limitation of quantity, but rather denote the presence of at least one of the referenced item. The modifier “approximately”, where used in connection with a quantity is inclusive of the stated value and has the meaning dictated by the context, (e.g., includes the degree of error associated with measurement of the particular quantity). The suffix “(s)” as used herein is intended to include both the singular and the plural of the term that it modifies, thereby including one or more of that term (e.g., the metal(s) includes one or more metals).
The foregoing description of various aspects of the invention has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed, and obviously, many modifications and variations are possible. Such modifications and variations that may be apparent to an individual in the art are included within the scope of the invention as defined by the accompanying claims.