Abstract:
A modularized computing system includes a plurality of modular components that are coupled together forming a network. Each modular component includes a standard network interface. The system further includes an initialization module, a monitor module, a storage medium, and a management module. As a module unit is coupled to the network, the initialization module automatically configures the component to an operable state. The monitor module monitors network operations including performance parameters of each modular component based on a plurality of system policies. Based on information gathered by the monitor module, the management module actively modifies network structure and resource allocation to optimize network performance.

Description:
BACKGROUND OF THE INVENTION 
       [0001]    1. Field of the Invention 
         [0002]    Embodiments of the present invention relate, in general, to integrated computing and storage systems and particularly to a system for automated integration of modular computer and storage components. 
         [0003]    2. Relevant Background 
         [0004]    A computer system can be characterized as a diverse combination of electronic components that function together as a cohesive entity. In its simplest terms, a computer consists of a processor, some form of a storage medium, and a means to communicate between the processor and storage medium. A personal computer, for example, typically includes one microprocessor, a combination of read only memory and random access memory, and a communication bus to transfer data and code between the processor and the various forms of memory. 
         [0005]    When a user elects to expand the capability of a personal computer, for example to expand the storage capability, one option is to purchase a larger hard drive that is either internally or externally based. Depending on the type and brand, this added storage capability can be added in what is known to one skilled in the art as “plug and play”. And while it is possible to couple two or more personal computers together to increase computational capability, such a task is not trivial. For example, consider the difficulty in linking a computer based on an Apple® operating system to one operating on a Microsoft® operating system so as to utilize both processors to address a problem present on a UNIX® based machine. 
         [0006]    In network computing, the independent nature of compute and storage components becomes even more pronounced. A typical computing system includes several components. Typically a component is primarily a storage component or a compute component. These components are linked together by a network infrastructure such as routers, switches, gateways, and the like. When such a compute or storage component is added to an established network system, it is essentially an island unto itself. Beyond plugging the component into the same wall outlet for electrical power, a component newly added, to an established enterprise system has little ability to interact with any other system component. Without customizing network adapters, installing an operating system, modifying existing protocols to meet the network protocol, configuring network interfaces, and countless other configuration tasks, the component fails to be interoperable with the other components of the enterprise system. 
         [0007]    Historically, operational costs of an enterprise system are many times greater than the initial capital outlay. In part this is due to the need to integrate each component as it is added to a system. However, operational costs do not cease once a component has been incorporated into a system. The cost of maintaining a system of compute and storage components is significant. To minimize these costs, entities strive to maintain a system that does not impede operations from lack of resources yet does not possess significant excess capabilities. Unfortunately systems today are designed for surge requirements. For example, during the holiday shopping period, an e-commerce provider may need 100 servers to ensure that customers are promptly and accurately provided with the ability to conduct a transaction. Even a momentary lapse in the system&#39;s capability can result in significant monetary losses. Thus systems are designed to address this momentary need yielding, during other periods, a highly inefficient storage and compute infrastructure. And while theoretically it may be possible for a technician to disconnect surplus components and then reinitialize them when needed, the cost of doing so is prohibitive when compared to simply maintaining their operational status. Thus many enterprise systems can be characterized as having vast amounts of excess capability over the majority of a system&#39;s life span. A challenge remains, therefore, for a system in which compute and storage components are modular such that they can be added and/or removed in an automated manner. These and other challenges present in the prior art are addressed by the present invention. 
       SUMMARY OF THE INVENTION 
       [0008]    A modularized computing system, according to one embodiment of the present invention, includes a plurality of modular components that are coupled together forming a network. Each modular component includes a network interface that is common throughout the network. The system further includes an initialization module, a monitor module, a storage medium, and a management module. As a module unit is coupled to the network, the initialization module automatically configures the component to an operable state. The monitor module monitors network operations including performance parameters of each modular component based on a plurality of system policies stored in the storage medium. Based on information gathered by the monitor module, the management module actively modifies network structure and resource allocation to optimize network performance. 
         [0009]    According to one embodiment of the present invention, performance parameters conveyed to the management module by the monitor module are compared to established system policies. Responsive to a module failing to meet an established policy, the management module automatically modifies the network by altering resource allocations within the existing network or by modifying the network structure itself. To maintain operations of the computing system in compliance with the system policies, the management module can add or remove modular components from the network. In addition, the management module can logically make a module component unavailable to network applications. 
         [0010]    At least one embodiment of the present invention also includes the superimposition of logical data interconnects over the physical interconnect structure of the network so as to enable the management module to logically manage the network. The management module, according to one embodiment, can modify operational tasks of the modular components of the system based on each component&#39;s ability to be in compliance with the system policies. This modification can be accomplished dynamically or periodically and is automatic needing no user initiation or authorization. 
         [0011]    The features and advantages described in this disclosure and in the following detailed description are not all-inclusive. Many additional features and advantages will be apparent to one of ordinary skill in the relevant art in view of the drawings, specification, and claims hereof. Moreover, it should be noted that the language used in the specification has been principally selected for readability and instructional purposes and may not have been selected to delineate or circumscribe the inventive subject matter; reference to the claims is necessary to determine such inventive subject matter. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0012]    The aforementioned and other features and objects of the present invention and the manner of attaining them will become more apparent, and the invention itself will be best understood, by reference to the following description of a preferred embodiment taken in conjunction with the accompanying drawings, wherein: 
           [0013]      FIG. 1  shows a networked computer environment in which one embodiment of the present invention is implemented and 
           [0014]      FIG. 2  shows a flowchart of one method embodiment for managing a modular computing system according to the present invention. 
       
    
    
       [0015]    The Figures depict embodiments of the present invention for purposes of illustration only. One skilled in the art will readily recognize from the following discussion that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the principles of the invention described herein. 
       DETAILED DESCRIPTION OF EMBODIMENTS 
       [0016]    A modular computing system comprising a plurality of modular components coupled together via an interface common throughout the network is herein disclosed by way of example. According to one embodiment of the present invention, a plurality of modular components is coupled together to form a computing system. Included in the system is a plurality of modules configured to monitor, initialize, and manage the system&#39;s modular components. 
         [0017]    Specific embodiments of the present invention are hereafter described in detail with reference to the accompanying Figures. Like elements in the various Figures are identified by like reference numerals for consistency. Although the invention has been described and illustrated with a certain degree of particularity, it is understood that the present disclosure has been made only by way of example and that numerous changes in the combination and arrangement of parts can be resorted to by those skilled in the art without departing from the spirit and scope of the invention. 
         [0018]      FIG. 1  is a high level block diagram of a computing system  100  comprising a plurality of managed modular components  110 ,  120 . In this embodiment of the present invention, a plurality of compute modules  120  and storage modules  110  are coupled together via a network infrastructure  130  to form a computing system  100 . A compute module  120 , as will be understood by one skilled in the relevant art, is a computer, server or the like whose primary functionality is processing of data. Similarly, a storage module  110  is a modular component whose primary function is one of storage of data. To some degree a compute module  120  will possess some ability to store data and a storage module  110  will have some ability to process data; however, the functionality and design of each is such that its primary role, be it storage or computing, is driven by its inherent capabilities. For example, a compute module  120  may possess a number of processors including field programmable gate arrays. Conversely, a storage module  110  may include one of many forms of storage media including hard disk, tape, flash, etc. While each module possesses an interface to the system  100 , the actual capabilities of each module can vary. Indeed one advantage of the present invention is to optimize performance of the system by capitalizing on the differing capabilities of each of the plurality of modular components  110 ,  120 . 
         [0019]    Turning again to  FIG. 1 , the system  100  also includes an initialization module  150 , a monitor module  160 , and a management module  170 . Each of these modules is coupled so that they may interact with one another as well as with the remaining modular components  110 ,  120  of the system  100 . In addition to these modules, a storage medium  175  is coupled to the management module  170 , according to one embodiment of the present invention, to provide to the management module  170  a plurality of system policies. 
         [0020]    The policies maintained within the storage medium  175  and utilized by the management module  170  identify guidelines from which the management module  170  can implement modifications to the system  100 . In addition, policies can include performance utilization parameters and/or indices that the management module can use to determine whether one or more components should be added or removed from the system or whether application tasks should be reallocated. 
         [0021]    The storage medium  175  can, according to another embodiment of the present invention, include initialization protocols that can be transferred to the initialization module  150 . When a new module is added to the system  100  or when an existing module has been removed and then at a later time is returned to an operational state, the initialization module  150 , using protocols gained from the storage medium  175 , automatically initializes the component and brings its capabilities online to the system  100 . Similarly, when the management module  170  determines that a component&#39;s resources are no longer benefiting the system  100  and determines the system  100  would be better off without the component&#39;s contribution, the initialization module  150  can initialize procedures to remove the component from the system and place it into a dormant state. 
         [0022]    According to one embodiment of the present invention, policies, protocols, procedures, indices and the like are predetermined and presented to the management module  150  for automatic implementation. In another embodiment of the present invention, policies stored in the storage medium  175  can be modified to reflect a changing environment. 
         [0023]    As previously discussed and shown in  FIG. 1 , the monitor module  160  is coupled to the management module  170  and the system  100 . The monitor module gathers information from each of the plurality of modular components  110 ,  120  throughout the system  100 . Information including utilization of component resources, application tasks assigned to each of the components, and other performance indices is gathered by the monitor module  160  and conveyed to the management module  170 . In one embodiment of the present invention, information gathered by the monitor module  160  is analyzed to determine whether the information complies with existing policies. When a component fails to meet an established policy or performance parameter, the identity of the component and the details of the policy breach are conveyed to the management module  170  for action. In other embodiments, the monitor module  160  conveys information to the management module  170  on a real time basis. 
         [0024]    Based on information gathered by the monitor module  160 , the management module  170  can automatically modify the system  100 . Modification by the management module  170  can be done dynamically or periodically, and the scope of the modification can range from reallocation of component assigned tasks and resources to modification of the system structure itself. Due to the modular nature of each component  110 ,  120  that comprises the system  100 , the management module has the ability to add and remove components at will. This capability is coupled with the ability to initialize a new module automatically. 
         [0025]    For example, assume that the monitor module  160  reports to the management module  170  that several compute components  120  are being under utilized yet the many storage components  110  of a particular type are beyond an established storage capacity target. The management module  170 , based on established policies and procedures, can ascertain via the monitor module  160  what application tasks are assigned to each component. Using information regarding each of the components&#39; capabilities and utilization, the management module can reallocate application tasks to make some components more fully utilized in compliance with system policies thus rendering other components, in this case compute components, essentially idle. 
         [0026]    Those compute components  120  that are idle can be removed from the system. At the same time the management module can add new storage components to address the need for additional storage space, or conversely, implement transfer of data to other types of storage mediums already established within the system that are not fully utilized. To the extent new resources need to be added to the system  100 , the management module  170 , working in conjunction with the initialization module  150 , automatically brings the resources of a new component online. 
         [0027]      FIG. 2  is a flowchart illustrating a method of implementing an exemplary process for managing a modular computing system. In the following description, it will be understood that each block of the flowchart illustrations, and combinations of blocks in the flowchart illustrations, can be implemented by computer program instructions. These computer program instructions may be loaded onto a computer or other programmable apparatus to produce a machine such that the instructions that execute on the computer or other programmable apparatus create means for implementing the functions specified in the flowchart block or blocks. These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable apparatus to function in a particular manner such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means that implement the function specified in the flowchart block or blocks. The computer program instructions may also be loaded onto a computer or other programmable apparatus to cause a series of operational steps to be performed in the computer or on the other programmable apparatus to produce a computer implemented process such that the instructions that execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart block or blocks. 
         [0028]    Accordingly, blocks of the flowchart illustrations support combinations of means for performing the specified functions and combinations of steps for performing the specified functions. It will also be understood that each block of the flowchart illustrations, and combinations of blocks in the flowchart illustrations, can be implemented by special purpose hardware-based computer systems that perform the specified functions or steps, or combinations of special purpose hardware and computer instructions. 
         [0029]    One embodiment of a method for managing a computing system comprising modular components begins  205  with the formation  210  of the system using a plurality of commonly interfaced compute and storage components. Thereafter each of the plurality of components is automatically initialized  230  including installation of any needed communication and network protocols and/or other parameters necessary for each component to be a working member of the system. 
         [0030]    From that point forward, each component in the system is monitored  260  by the monitor module. Each component is monitored for compliance with existing policies as well as indications that a component is either over utilized or under utilized. This, and other information, is used to manage  280  the plurality of network components and the applications which they are conducting. As a result  295  of this management, the system can operate more efficiently. As the removal and addition of modular components from and to the system is automatic, the present invention has the advantage of being able to automatically, and without the incurrence of additional cost, maintain individual component utilization and performance at peak levels. No longer do components operate at a fraction of their capacity or do excess components exist on a system simply because of surge periods. The modular nature of each component enables the system to minimize human interaction and thus optimizes system performance. 
         [0031]    As will be understood by those familiar with the art, the invention may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. Likewise, the particular naming and division of the modules, managers, functions, systems, engines, layers, features, attributes, methodologies, and other aspects are not mandatory or significant, and the mechanisms that implement the invention or its features may have different names, divisions, and/or formats. Furthermore, as will be apparent to one of ordinary skill in the relevant art, the modules, managers, functions, systems, engines, layers, features, attributes, methodologies, and other aspects of the invention can be implemented as software, hardware, firmware, or any combination of the three. Of course, wherever a component of the present invention is implemented as software, the component can be implemented as a script, as a standalone program, as part of a larger program, as a plurality of separate scripts and/or programs, as a statically or dynamically linked library, as a kernel loadable module, as a device driver, and/or in every and any other way known now or in the future to those of skill in the art of computer programming. Additionally, the present invention is in no way limited to implementation in any specific programming language, or for any specific operating system or environment. 
         [0032]    While there have been described above the principles of the present invention in conjunction with a system for modular computing, it is to be clearly understood that the foregoing description is made only by way of example and not as a limitation to the scope of the invention. Particularly, it is recognized that the teachings of the foregoing disclosure will suggest other modifications to those persons skilled in the relevant art. Such modifications may involve other features that are already known per se and which may be used instead of or in addition to features already described herein. Although claims have been formulated in this application to particular combinations of features, it should be understood that the scope of the disclosure herein also includes any novel feature or any novel combination of features disclosed either explicitly or implicitly or any generalization or modification thereof which would be apparent to persons skilled in the relevant art, whether or not such relates to the same invention as presently claimed in any claim and whether or not it mitigates any or all of the same technical problems as confronted by the present invention. The Applicant hereby reserves the right to formulate new claims to such features and/or combinations of such features during the prosecution of the present application or of any further application derived therefrom.