[go: up one dir, main page]

WO2008049738A1 - On-demand personal computer provisioning system and method - Google Patents

On-demand personal computer provisioning system and method Download PDF

Info

Publication number
WO2008049738A1
WO2008049738A1 PCT/EP2007/060822 EP2007060822W WO2008049738A1 WO 2008049738 A1 WO2008049738 A1 WO 2008049738A1 EP 2007060822 W EP2007060822 W EP 2007060822W WO 2008049738 A1 WO2008049738 A1 WO 2008049738A1
Authority
WO
WIPO (PCT)
Prior art keywords
user
software environment
computing
computing hardware
software
Prior art date
Application number
PCT/EP2007/060822
Other languages
French (fr)
Inventor
Jian Huang
Hao Wang
Yin Ben Xia
Zhe Xiang
Original Assignee
International Business Machines Corporation
Ibm United Kingdom Limited
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corporation, Ibm United Kingdom Limited filed Critical International Business Machines Corporation
Publication of WO2008049738A1 publication Critical patent/WO2008049738A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4405Initialisation of multiprocessor systems

Definitions

  • the present invention generally relates to the computer field, and in particular to an on- demand personal computer provisioning system and method.
  • the blade PC solution has been proposed. This solution removes a computer from a user' desktop, reduce it into a blade PC, and concentrates all blade PCs to a security-rich location, and uses software tools to remotely manage, control, change, or reallocate end users' computing resources. In an end user's desktop, only a keyboard, mouse, display and other peripheral devices are left, providing to the user an experience essentially similar to a traditional standalone personal computer.
  • Fig. 1 schematically illustrates the working principles of a prior art blade PC system.
  • the system selects a standard machine, combines it with the user data, and provides to the user as a complete personal computer.
  • the standard machine comprises a computing hardware device and a standard software environment (an operating system and basic applications).
  • a standard software environment an operating system and basic applications.
  • users are prohibited to modify the software environment of a machine. Thus, all users will have the same unique working environment.
  • blade PCs are generally shared among users and tasks for saving computing resources, a user does not have his own dedicated operating system and application environment, and the users or tasks sharing a working environment would affect each other greatly. For example, a user may need to install a new application, have virus infection, or perform wrong operations, all of which will affect the shared working environment, and thus adversely influence other users.
  • the present invention seeks to provide a personal computer provisioning system in which each computing hardware device such as a blade PC is not booted from the local volume, but from a remote volume, and the booting address can be set dynamically; a software environment specific to a user, such as a snapshot of an operating system and applications, which the user can regard as his own standalone software environment, can be created for the user according to the user's requirements; and the user can request for a computing hardware device or software environment separately, and the system can combine the requested computing hardware and software environment together with the user's data, thus forming a complete personal computer.
  • each computing hardware device such as a blade PC is not booted from the local volume, but from a remote volume, and the booting address can be set dynamically
  • a software environment specific to a user such as a snapshot of an operating system and applications, which the user can regard as his own standalone software environment, can be created for the user according to the user's requirements
  • the user can request for a computing hardware device or software environment separately, and the system
  • a computing resource controller for on-demand personal computer provisioning, the computing resource controller comprising: a machine maintainer for according to a user's requirements for a computing hardware device, allocating a computing hardware device which can satisfy the user's requirements from a computing pool comprising a plurality of computing hardware devices that can be booted remotely; and a software maintainer for preparing a software environment in a storage pool according to the user's requirements for a software environment, wherein the machine maintainer is further configured to set the booting address of the allocated computing hardware device to the prepared software environment, and to boot the computing hardware device with the software environment.
  • a on-demand personal computer provisioning system comprising: a computing pool comprising a plurality of computing hardware devices that can be booted remotely; a storage pool on which a software environment for a user can be created and stored; one or more client devices having remote desktop functions; and the foregoing computer resource controller coupled with the computing pool, storage pool, and client devices.
  • an on-demand personal computer provisioning method comprising the steps of: according to a user's requirements for a computing hardware device, allocating a computing hardware device which can satisfy the user's requirements from a computing pool comprising a plurality of computing hardware devices that can be booted remotely; preparing a software environment in a storage pool according to the user's requirements for a software environment; booting the computing hardware device with the software environment; and providing to the user the booted computing hardware device through a client device having remote desktop functions, thus forming the user's personal computer.
  • the present invention can also be embodied in a computer readable medium having program instructions stored thereon, which, when being loaded into a program execution machine, cause the program execution machine to perform the steps of the foregoing on-demand personal computer provisioning method.
  • the present invention Compared with the prior art blade PC solution, the present invention has the following advantages:
  • each user can have his own on-demand customized personal working environment, thus avoiding the influence and interference of each other when multiple users share the same blade PC.
  • a software environment comprising any operating system and applications can be created according to a user's requirements, thus the user's requirements for a software environment can be satisfied better, more flexibly and more conveniently;
  • computing hardware device can be allocated to a user according to the user's requirements for a computing hardware device, such as those for performance and reliability, thus the user's requirements for a computing hardware device can be satisfied better.
  • each computing hardware device can combine with multiple different volumes, so as to form multiple personal computers dedicated to multiple users respectively; each volume can also combine with multiple different computing hardware devices, so as to form multiple personal computers which can satisfy different performance requirements of specific users respectively. In this way, it is not necessary for each user to own his dedicated computing hardware device, and the total number of the computing hardware devices needed in the system is dependent on the number of user logons at peak times.
  • the storage space is saved, the storage cost is lowered, the reliability, security and manageability are enhanced, and the maintenance cost is also lowered.
  • Fig. 1 is a schematic diagram illustrating the working principles of a prior art blade PC system
  • Fig. 2 is a schematic diagram illustrating the working principles of an on-demand personal computer provisioning system according to the present invention
  • Fig. 3 is a schematic diagram illustrating the composition of an on-demand personal computer provisioning system according to an embodiment of the present invention
  • Fig. 4 is a flow diagram of an on-demand personal computer provisioning method according to an embodiment of the present invention.
  • Fig. 5 is a flow diagram of the process of releasing resources in the on-demand personal computer provisioning method according to an embodiment of the present invention.
  • the present invention provides numerous advantages over the prior art.
  • the embodiments of the present invention can obtain the advantages over other possible solutions and/or the prior art, whether a specific advantage will be obtained from a specific embodiment is not a limitation of the present invention. Therefore, the following aspects, features, embodiments and advantages are only for the purpose of illustration, and should not be construed as elements or limitations of the appended claims, unless so set forth clearly in the claims.
  • references to "the present invention” should not be construed as a summary of any inventive subject matter disclosed herein, nor be construed as elements or limitations of the appended claims, unless so set forth clearly in the claims.
  • the functional modules described in the description can be implemented as hardware circuits including customized VLSI circuits or gate arrays, off-the-shelf semiconductors such as logic chips, transistors or other discrete elements, or be implemented as programmable hardware devices such as field programmable gate arrays, programmable array logics, programmable logic devices, etc.
  • These functional modules can further be implemented as software that can be executed by various processor.
  • the executable code of these functional blocks may not necessarily resides together physically, rather they may comprise different instructions stored in different locations, which different instructions, when being coupled together logically, constitutes the functional modules and implement the predefined functions of the functional blocks.
  • Fig. 2 schematically illustrates the working principles of an on-demand personal computer provisioning system according to the present invention.
  • a user logs on through a client device having remote desktop functions, he provides to the system requirements for the desired computing hardware device and software environment, and based thereon, the system selects a computing hardware device that can be booted remotely and which can satisfy the requirements, prepares a software environment comprising an operating system and applications satisfying the requirements in a remote storage pool, and boots the selected computing hardware device remotely with the software environment, and then provides the same with user data together to the user through the client device, as the user's personal computer.
  • Fig. 3 schematically illustrates the composition of an on-demand personal computer provisioning system according to embodiments of the present invention.
  • the on- demand personal computer provisioning system 300 comprises a computing pool 310, a storage pool 320, any number of client devices 330, and a computing resource controller 340 coupled with the computing pool 310, storage pool 320, and client devices 330.
  • the computing pool 310 may comprise a plurality of computing hardware devices, such as blade PCs. Each computing hardware device may be completely contained in a thin, modularized circuit board, a plurality of such circuit boards may be housed in a chassis, the chassis may be positioned in a centralized and secure location. The plurality of the computing hardware devices in one or more chassis constitute the computing pool 310. Therefore, computing hardware devices can be added to or removed from the computing pool 301 conveniently.
  • Each of the computing hardware devices may comprise a processor, a main memory, a read- only memory and other computer components coupled together through a bus. These computer components connected together with permanent storage, user interface devices, peripheral devices etc. may constitute a complete personal computer.
  • Each of the computing hardware devices may be booted from a remote disk, and preferably have no local disk. Of course, each of the computing hardware devices may also have a local disk.
  • the computing hardware device can be booted from a remote disk by using any method as known to those skilled in the art, such as Preboot Execution Environment (PEX).
  • PEX Preboot Execution Environment
  • the target disk address for booting of each of the computing hardware devices can be set dynamically, such as setting the target disk address for booting through BIOS settings.
  • the computing pool 310 can be coupled to a server such as an application server via networks such as an intranet, LAN etc, thus allowing a personal computer provided through the on-demand personal computer provisioning system 300 of the present invention to perform operations such as accessing the application server as part of the network such as an enterprise network.
  • the storage pool 320 provides a permanent storage for the on-demand personal computer provisioning system 300 according to the present invention, and may be used to store the software environment created for each user, which comprises system software such as an operating system and application software as needed by the user.
  • the storage pool 320 may also be used to store the user data of each user.
  • the storage pool 320 preferably comprises one or more initial volumes each containing system software such as an operating system and application software possibly to be used by users.
  • the initial volumes can be pre- established by an administrator, and the system software and application software therein can also be configured and managed by an administrator.
  • the storage pool 320 may undergo volume virtualization through, for example, IBM's SAN Controller (SVC), so as to realize more flexible and efficient storage management.
  • SVC IBM's SAN Controller
  • the storage pool 320 may create a snapshot of a volume using a fast copy technology such as IBM's Flashcopy, so as to create a snapshot from an initial volume according to the user's request, as the software computing environment for the user.
  • a fast copy technology such as IBM's Flashcopy
  • the storage pool 320 may comprise any type of permanent storage device. It may either be a single storage device, or consist of multiple storage devices; it may either consist of the same type of storage devices, or consist of different types of storage devices; it may either be centralized, or be distributed. And it may be managed by various storage management software.
  • Each of the client devices 330 preferably does not have the computing power and storage capacity as a common personal computer, and preferably only comprise user interface devices such as a keyboard, a mouse, display etc. (and possibly peripheral devices such as a printer), and a device for connecting (directly or through the computing resource controller 340 or through other devices) with the computing pool 310, which device provides to the client device 330 remote desktop functions through Virtual Network Computing, (VNP), Remote Desktop Protocol (RDP), etc., so as to allow the user to interact with a computing hardware device in the computing pool 310 through the client device 330, thus forming the user's personal computer.
  • VNP Virtual Network Computing
  • RDP Remote Desktop Protocol
  • the computing resource controller 340 is used to interact the client devices 330, when one of the client devices 330 connects to the computing resource controller 340, providing to the client device 330 the information on the hardware and software resources in the on-demand personal computer provisioning system 300, such as the availability of the computing hardware devices in the computing pool 310, the performances and reliabilities and other features of the computing hardware devices, and the initial volumes and the volumes having been created for users stored in the storage pool and the types of the operating systems and the applications therein, etc., which are to be presented to the user by the client device; the user may select required hardware and software resources based on the information on the hardware and software resources in the on-demand personal computer provisioning system as presented on the client device 330, and send the selection to the computing resource controller 300 through the client device 330.
  • the user can either select a specific computing hardware device available in the computing pool 310, or enter the requirements (preferences or policies) for the computing hardware device, such as the performance and reliability required of the computing hardware device, and based on the user's requirements, the computing resource controller 340 may select a corresponding computing hardware device. Further, the user may either select an existing volume from the volumes stored in the storage pool 320, or request to create a new volume, and may specify the type required of the operating system and application software, and based on the user's selection or requirements, the computing resource controller 340 may select a stored volume or create a new volume.
  • the computing resource controller 340 is further used to control the computing hardware devices in the computing pool 310, such as, powering on or off each computing hardware device, monitoring the status of each computing hardware device, setting the booting address of each computing hardware device, setting the input/output of each computing hardware device, etc.
  • the computing resource controller 340 may select one computing hardware device satisfying user requirements from the computing pool 310 according to the user requirements from one of the client devices, power on the computing hardware device, set the booting address of the computing device to a created or selected software environment, thus booting the computing hardware device with the created or selected software environment, and after the booting, set the input/output of the computing hardware device to the client device 330, thus forming a complete personal computer for the user.
  • the computing hardware device 340 may also monitor the status of the computing hardware device.
  • the computing resource controller 340 is further used to manage the volumes in the storage pool, including creating a software environment for a user or selecting a software environment previously stored for a user according to the user requirements for a software environment from one of the client devices.
  • the software environment for the user may be created by means of creating a snapshot for an initial volume using a fast copy method such as Flashcopy.
  • the computing resource controller 340 comprises in particular a user input/output handler 341, a machine maintainer 342, a software maintainer 343, and a system and user profile database 344.
  • the user input/output handler 341 may be used to process a user request for computing resources from one of the client devices 330, query the information on the computing hardware devices available in the computing pool 310, such as the performances, reliabilities thereof, etc., the information on the software environments such as operating systems, application software etc. available in the storage pool 320, and information on the user profiles in the system and user profile database 344, and provide to the user the information on the available computing hardware devices, software environments and user profiles, for example in the form of a request page, through the client device 330.
  • the user input/output handler 341 may further be used to receive requirements (preferences and/or policies) for computing resources (including a computing hardware device and a software environment) and a selected existing user profile or a request for creating a new user profile, for example inputted or selected in the request page, from one of the client devices 330, and invoke the machine maintainer 342 and software maintainer 343 and provide to them the inputted or selected requirements and the user profile selection or request information etc., in order to create a personal computing environment incorporating a computing hardware deice and a software environment that can satisfy the user's requirements, and provide the personal computing environment to the user through the client device 330, as the user's personal computer.
  • requirements preferences and/or policies
  • the user input/output handler 341 may further be used to, when the user shuts down the machine, invoke the machine maintainer 342 to release the computing hardware device in the computing pool 310, and to invoke the software maintainer 343 to release the system volume and user data in the storage pool 320 or retain the system volume or user data in the storage pool based on the user's requirement or a policy.
  • the machine maintainer 342 may be used to maintain the computing hardware devices in the computing pool 310, such as selecting a computing hardware device according to a command and user requirements from the user input/output handler 341, powering on the computing hardware device, setting the booting address for the computing hardware device, booting the computing hardware device with the software environment in the storage pool
  • the machine maintainer 342 may further be used to, when the user shuts down the machine, shut down the running computing hardware device according to the command from the user input/output handler 341, return it to the computing pool 310 for use by other users, and modify the corresponding information in the system and user profile database.
  • the software maintainer 343 may be used to prepare a system volume and user data as a complete software environment according to the user requirements and user profile selection or creation request from the user input/output handler 341. For example, when the user has requested to create a new user profile, it creates a new system volume according to the user's requirements which can satisfy his requirements, for example by using a fast copy technology such as Flashcopy to create a snapshot of an initial volume as the system volume for this new user. Of course, it may also use a fast copy technology such as Flashcopy to create a snapshot of another user volume having been created and stored, as the system volume for this new user. For example, each of the users who are members of a project team may create a snapshot from a system volume for this project team.
  • a fast copy technology such as Flashcopy
  • the software maintainer 343 can select the system volume for this existing user from the system volumes for users stored in the storage pool 320, as the current system volume for this user.
  • the software maintainer 343 can determine the system volume for the user based on the user profile information from the user input/output handler 341 and by looking up the correspondence relationships between the user profiles and the system volumes stored in the storage pool as maintained in the system and user profile database 344.
  • the software maintainer 343 may also create a new system volume for the user in the storage pool 320 according to the user's requirements. For example, the same user may crate and own multiple system volume versions.
  • the software maintainer 343 may further be used to retain the volume being used in the storage pool 320 for future use when the user shuts down the personal computer and selects to retain the volume in the storage pool 320, and modify the information on the volume and user profile in the system and user profile database 344, such as, for a newly created volume, creating the correspondence relationship between the volume and the user in the system and user profile database 344; for a new user, creating the user's profile; and for an existing user, modifying the user's profile. And it may further be used to delete the volume being used from the storage pool when the user shuts down the personal computer and selects not to retain the volume, and modify the relevant information on the user profile etc. in the system and user profile database.
  • the system and user profile database 344 may be used to store the list of available computing hardware devices, the information on the features and statuses such as performances thereof, the information on the system volumes in the storage pool and the operating systems and applications contained therein, users' profiles and history information, the information on the correspondence relationships between the user profiles and the system volumes, etc.
  • the information in the system and user profile database 344 may be stored or modified by the user input/output handler 341, machine maintainer 342, software maintainer 343 correspondingly at appropriate times.
  • the various modules of the computing resource controller 340 can be implemented in hardware, software, firmware or a combination thereof, and preferably be implemented by software in combination with general purpose computer hardware, the software, when being executed, being able to direct the general purpose computer hardware to perform the functions of the modules of the computing resource controller 340.
  • the computing resource controller 340 can either be integrated with a conventional management system of the computing pool, such as a conventional management system for blade PCs, and/or be integrated with a management system of the storage pool, or function as a separate computing resource controller.
  • the exemplary embodiments of the on-demand personal computer provisioning system of the present invention have been described, it needing to be noted that the above description is only for the purpose of illustration and explanation, and is not intended to limit the present invention.
  • the on-demand personal computer provisioning system of the present invention can also be realized in other ways.
  • the computing resource controller 340 may have more, less or different modules than described, some modules may be combined into larger modules, or be divided into smaller modules.
  • the linking and interaction relationships between the modules may change, for example, the storage pool 320 may be connected with the computing pool 310 directly, rather than through the computing resource controller 340; the computing pool 310 may also be connected with the client device 330 directly or through other devices such as a switch, rather than through the computing resource controller 340.
  • the system and user profile database 344 may reside completely or in part in the storage pool 320 or other storage, rather than in the computing resource controller 340.
  • the user input/output handler 310, machine maintainer 342, software maintainer 343, and system and user profile database 344 may reside outside the computing resource controller 340, functioning as a separate module.
  • the nomenclature of the various modules in the description is only used for the convenience of narration and understanding, and is not intended to limit the present invention.
  • Fig. 4 illustrates the process flow of an on-demand personal computer provisioning method according to an embodiment of the present invention.
  • the user connects to the on-demand personal computer provisioning system 300 of the present invention.
  • the user turns on one of the client devices 330, and the client device 330 sends a connection request to the computing resource controller 340.
  • the user provides the requirements for a computing hardware device and software environment.
  • the user input/output handler 341 in the computing resource controller 340 may look up the information on the computing resources and existing user profiles in the system and user profile database 344, and return to the client device 330 a request page containing the information on the computing resources and existing user profiles. Then, the user may input or select the requirements (preferences and/or policies) for computing resources, and selects an existing user profile, or request to create a new user profile, in the request page through the client device 330, and submit the user requirements and the user profile selection or creation request to the user input/output handler 341.
  • the user can either select a specific one in the computing hardware devices available in the computing pool 310, or input the requirements (preferences and/or policies) for a computing hardware device, such as the performance and reliability required for the computing hardware device, etc., and let the machine maintainer 342 to select a corresponding computing hardware device based on the user's requirements.
  • the user can select an existing user profile in the request page, in which case, after being authenticated, the user will operate as the existing user, and the on-demand personal computer provisioning system 300 of the present invention will invoke the software environment for this user stored in the storage pool 320, as his current environment.
  • the on-demand personal computer provisioning system 300 of the present invention can also create a new software environment for this existing user according to the user's input or selection in the request page, thus producing different versions of software environment for the user.
  • the new software environment can either be obtained by the software maintainer 343 through using a fast copy technology such as Flashcopy to create a snapshot of an initial volume, or through creating a snapshot of a system volume having been stored for this user, or through creating a snapshot of a system volume having been stored for other users such as the system volume of a project team of which the user is a member.
  • the user can also request to create a new user profile in the request page, in which case, the on-demand personal computer provisioning system 300 of the present invention will create a new software environment for the user, and the user can specify the required types of the operating system and applications that will be created by the system 300, or specify the system volume from which a snapshot will be created, such as an initial volume, the system volume of a project team, a volume of another user, etc., and let the software maintainer 343 to create a new software environment based on the user's specification by using a fast copy technology such as Flashcopy.
  • a fast copy technology such as Flashcopy
  • a computing hardware device is allocated according to the user's requirements for a computing hardware device.
  • the user input/output handler 34 after receiving the user's selection or requirements, may invoke the machine maintainer 342 and provide to it the user's selection or requirements.
  • the machine maintainer 342 may allocate an appropriate computing hardware device from the computing pool 310 according to the user's selection or requirements, such as powering on the computing hardware device, and enter into its BIOS settings, and at the same time, modify the status information of the computing hardware device in the system and user profile database 344, such as changing its idle status to an occupied status.
  • a software environment for the user is prepared according to the user's requirements for a software environment.
  • the user input/output handler 341 after receiving the user's selection or requirements, may invoke the software maintainer 343, and provide to it the user's requirements for a software environment, and the software maintainer 343 may prepare system and application software and user data according to the user's requirements for a software environment, as a complete software environment for the user. If the user has requested to create a new user profile, the user is a new user, and the software maintainer 343 may create a new system volume that can satisfy the user's requirements according to the user's requirements as described above.
  • the software maintainer may select this existing user's system volume among users' system volumes stored in the storage pool 320 or create a new system volume for the user as described above.
  • the software maintainer 343 may determine the user's system volume stored in the storage pool 320 based on the user profile information from the user input/output handler 341, for example by looking up the correspondence relationships between the users' profile and the system volumes stored in the storage pool 320 as maintained in the system and user profile database.
  • step 404 the computing hardware device is booted with the software environment.
  • the machine maintainer 342 may set the booting address for the allocated computing hardware device to the software environment prepared in the storage pool 320, and boot the computing hardware device with the software environment.
  • step 405 the information on the computing hardware device, system volume and user profile is modified.
  • the software maintainer 343 may modify the relevant information in the system and user profile database 344, such as for a new system volume created for a new user, adding the correspondence relationship between the new user's profile and the new system volume.
  • a complete personal computer is provided to the user.
  • the machine maintainer 342 may monitor the status of the computing hardware device, and when the booting process is completed, notify the same to the user input/output handler 341.
  • the user input/output handler 342 may switch the input and output of the new computing hardware device to the client device 330, so that the user can interact with the new computing hardware device through, for example, VNC or RDP software, thus obtaining his complete personal computer.
  • Fig. 5 illustrates the process of releasing the computing resources in the on-demand personal computer provisioning method according to the embodiment of the present invention.
  • the process starts with the user requesting to release the resources.
  • the user may issue a command to shut down the machine through the client device 330 that he is operating, then the user input/output handler 341 receives the command, and switches the screen of the client device 330 from the running operating system to a window of the computing resource controller 340 in the on-demand personal computer provisioning system 300 of the present invention.
  • This process can be realized by, for example, inserting software that may capture a user's shutdown command into each operating system.
  • step 501 the computing hardware device is shut down, and the information on the computing hardware device is modified.
  • the user input/output handler 341 may invoke the machine maintainer to shut down the running computing hardware device.
  • the machine maintainer 342 may monitor the status of the computing hardware device, and when it is powered off, modify the information on the computing hardware device in the system and user profile database 344, such as, changing its occupied status to the idle status so that it can be used by other users.
  • step 502 it is determined whether to retain the system volume. It can be specified by the user in the above window whether to retain the system volume, or it can be determined according to a predefined policy or configuration whether to retain the system volume.
  • step 502 determines whether it is determined in step 502 to retain the system volume.
  • the process proceeds to step 503, where the system volume is retained, and the data about the software environment and user profiles is modified.
  • the user input/output handler 341 may invoke the software maintainer 343 to retain the volume in the storage pool 320, and modify the information on the volume and user profile in the system and user profile database 344, such as, for a newly created volume, creating the correspondence relationship between the volume and the user in the system and user profile database 344; for a new user, creating the profile of the user; and for a old user, modifying the user's profile.
  • step 502 If it is determined in step 502 not to retain the system volume, the process proceeds to step
  • the process flow of the on-demand personal computer provisioning method according to an embodiment of the present invention and the process of releasing the resources therein have been described. It should be noted that the illustrated and described steps are only for the purpose of illustration and description, and are not intended to limit the present invention.
  • the on-demand personal computer provisioning method of the present invention may have more, less, or different steps than described. Some steps may be combined together, and some steps may be divided into smaller steps. The execution order of the steps may change, and some steps may be executed in parallel.
  • the order between the step 501 of shutting down the computing hardware device and the step 502 of determining whether to retain the system volume, as well as that between the step 503 of retaining the system volume and the step 504 of deleting the system volume can be reversed, or they may be executed in parallel.
  • the on-demand personal computer provisioning method has been described with reference to the operations of the on-demand personal computer provisioning system 300 according to the embodiment of the present invention, as will be understood by those skilled in the art, the method of the present invention is not limited thereto, rather, it can be realized by another system different with the described on-demand personal computer provisioning system 300.
  • the present invention can also be implemented as a method for providing an on-demand personal computer provisioning service to users by using the above described on-demand personal computer provisioning method according to the present invention.
  • the present invention can also be embodied in a computer readable medium having program instructions stored thereon, which, when being loaded into a program execution machine, cause the program execution machine to perform the steps of the above described on-demand personal computer provisioning method.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

A computing resource controller for on-demand personal co mputer provisioning is disclosed, comprising: a machine maintainer for according to a user's requirements for a computing hardware device, allocating a computing hardware device which can satisfy the user's requirements from a computing pool comprising a plurality of computing hardware devices that can be booted remotely; a software maintainer for preparing a software environment in a storage pool according to the user's requirements for a software environment, wherein the machine maintainer is further configured to set the booting address for the allocated computing hardware device to the prepared software environment, and to boot the computing hardware device with the software environment; and a user input/output handler for switching the input and output of the booted computing hardware device to a client device having remote desktop functions, thus forming the user's personal computer. Preferably, the computing hardware device is a blade PC. An on-demand personal computer provisioning system co mprising the controller and a corresponding method are also disclosed.

Description

ON-DEMAND PERSONAL COMPUTER PROVISIONING SYSTEM AND METHOD
Technical field
The present invention generally relates to the computer field, and in particular to an on- demand personal computer provisioning system and method.
Background art
In today's enterprise environment, provisioning and management of personal computer platform is a permanent challenge for business and IT management. In a traditional standalone personal computer provisioning scheme, employees of an enterprise have their own separate personal computers, which are interconnected in a LAN, intranet etc, and connected to an external network such as Internet through a gateway etc; and the IT team of the enterprise is responsible for the maintenance and management of these personal computers. Such a schema has the following problems: comparatively high machine purchase costs, the enterprise always having to purchase and upgrade users' desktop personal computers for necessary but infrequently occurring performance needs; comparatively low machine utilization, in many enterprises, actually there always being more than 30% desktop personal computers in an idle state at any time, which causes a tremendous waste of computer resources. In addition, such a standalone personal computer provisioning schema has high management and maintenance costs. According to Gartner's PC TCO analysis, in the lifecycle of a traditional personal computer, the enterprise may spend up to 8,000 dollar to maintain it. When personal computer hardware or software fails, a long delay may be caused; and distributed hardware and software may exert heavy pressure on technical support resources.
To solve the above problems, the blade PC solution has been proposed. This solution removes a computer from a user' desktop, reduce it into a blade PC, and concentrates all blade PCs to a security-rich location, and uses software tools to remotely manage, control, change, or reallocate end users' computing resources. In an end user's desktop, only a keyboard, mouse, display and other peripheral devices are left, providing to the user an experience essentially similar to a traditional standalone personal computer.
Fig. 1 schematically illustrates the working principles of a prior art blade PC system. As shown, when a user logs on, the system selects a standard machine, combines it with the user data, and provides to the user as a complete personal computer. The standard machine comprises a computing hardware device and a standard software environment (an operating system and basic applications). To maintain a standard and stable working environment, users are prohibited to modify the software environment of a machine. Thus, all users will have the same unique working environment. That is, in the current blade PC solution, although by concentrating personal computers together, the management, maintenance and operation costs are lowered, security is enhanced, and by sharing the computer blades among different users, the utilization of the computing resources is raised, and the users' desktop real estate, heating, and noise are reduced, it still has the following shortcomings: since in the current blade PC solution, blade PCs are generally shared among users and tasks for saving computing resources, a user does not have his own dedicated operating system and application environment, and the users or tasks sharing a working environment would affect each other greatly. For example, a user may need to install a new application, have virus infection, or perform wrong operations, all of which will affect the shared working environment, and thus adversely influence other users. On the other hand, if the method in which a specific blade PC is assigned to a specific user or task is adopted, the utilization of the computing resources will be lowered, and the cost of ownership of computing resources will be increased. In any case, a user of a current blade PC can only accept a preconfϊgured working environment, and cannot have his own on-demand dedicated working environment.
Therefore, a need apparently exists in the art for an on-demand personal computer provisioning system and method which can overcome the above shortcomings and is more convenient and efficient than the current blade PC solution.
Summary of the invention The present invention seeks to provide a personal computer provisioning system in which each computing hardware device such as a blade PC is not booted from the local volume, but from a remote volume, and the booting address can be set dynamically; a software environment specific to a user, such as a snapshot of an operating system and applications, which the user can regard as his own standalone software environment, can be created for the user according to the user's requirements; and the user can request for a computing hardware device or software environment separately, and the system can combine the requested computing hardware and software environment together with the user's data, thus forming a complete personal computer.
In an aspect of the present invention, there is provided a computing resource controller for on-demand personal computer provisioning, the computing resource controller comprising: a machine maintainer for according to a user's requirements for a computing hardware device, allocating a computing hardware device which can satisfy the user's requirements from a computing pool comprising a plurality of computing hardware devices that can be booted remotely; and a software maintainer for preparing a software environment in a storage pool according to the user's requirements for a software environment, wherein the machine maintainer is further configured to set the booting address of the allocated computing hardware device to the prepared software environment, and to boot the computing hardware device with the software environment.
In another aspect of the present invention, there is provided a on-demand personal computer provisioning system, comprising: a computing pool comprising a plurality of computing hardware devices that can be booted remotely; a storage pool on which a software environment for a user can be created and stored; one or more client devices having remote desktop functions; and the foregoing computer resource controller coupled with the computing pool, storage pool, and client devices.
In still another aspect of the present invention, there is provided an on-demand personal computer provisioning method, comprising the steps of: according to a user's requirements for a computing hardware device, allocating a computing hardware device which can satisfy the user's requirements from a computing pool comprising a plurality of computing hardware devices that can be booted remotely; preparing a software environment in a storage pool according to the user's requirements for a software environment; booting the computing hardware device with the software environment; and providing to the user the booted computing hardware device through a client device having remote desktop functions, thus forming the user's personal computer.
In yet another aspect of the present invention, there is further provided a method for providing an on-demand personal computer provisioning service to users by using the foregoing method.
The present invention can also be embodied in a computer readable medium having program instructions stored thereon, which, when being loaded into a program execution machine, cause the program execution machine to perform the steps of the foregoing on-demand personal computer provisioning method.
Compared with the prior art blade PC solution, the present invention has the following advantages:
Firstly, each user can have his own on-demand customized personal working environment, thus avoiding the influence and interference of each other when multiple users share the same blade PC.
Secondly, a software environment comprising any operating system and applications can be created according to a user's requirements, thus the user's requirements for a software environment can be satisfied better, more flexibly and more conveniently;
Thirdly, computing hardware device can be allocated to a user according to the user's requirements for a computing hardware device, such as those for performance and reliability, thus the user's requirements for a computing hardware device can be satisfied better.
In addition, the utilization of the computing resources is enhanced, the computing resources are saved, the cost of ownership thereof is lowered. This is because the computing hardware devices are separable with the volumes, and they can combine together dynamically. At different times, each computing hardware device can combine with multiple different volumes, so as to form multiple personal computers dedicated to multiple users respectively; each volume can also combine with multiple different computing hardware devices, so as to form multiple personal computers which can satisfy different performance requirements of specific users respectively. In this way, it is not necessary for each user to own his dedicated computing hardware device, and the total number of the computing hardware devices needed in the system is dependent on the number of user logons at peak times.
Further, by the centralized management of storage devices, the storage space is saved, the storage cost is lowered, the reliability, security and manageability are enhanced, and the maintenance cost is also lowered.
Finally, by using a fast copy technology such as Flashcopy, the fast copying of new operating system and application software volume, fast copying of user volume versions, and fast copying of the project environment of team members can be realized, thus enhancing the speed of on-demand personal computer provisioning to a user.
Brief description of the accompanying drawings
Embodiments of the present invention will now be described, by way of example only, with reference to the accompanying drawings, wherein:
Fig. 1 is a schematic diagram illustrating the working principles of a prior art blade PC system;
Fig. 2 is a schematic diagram illustrating the working principles of an on-demand personal computer provisioning system according to the present invention;
Fig. 3 is a schematic diagram illustrating the composition of an on-demand personal computer provisioning system according to an embodiment of the present invention; Fig. 4 is a flow diagram of an on-demand personal computer provisioning method according to an embodiment of the present invention; and
Fig. 5 is a flow diagram of the process of releasing resources in the on-demand personal computer provisioning method according to an embodiment of the present invention.
Detailed description of preferred embodiment
Embodiments of the present will be described below with reference to the drawings, it being understood, however, that the present invention is not limited to the described specific embodiments. Rather, it is contemplated that the present invention can be implemented and practiced with any combination of the following features and elements, regardless whether they relate to different embodiments. In the following description, numerous specific details are presented, in order for those skilled in the art to implement the present invention. However, those skilled in the art will realize that the present invention can be implemented without one or more of the specific details, or with additional steps, elements, etc. In other embodiments, commonly-known structures or operations are not described or illustrated in detail in order not to obscure the essential aspects of the present invention.
Further, in various embodiments, the present invention provides numerous advantages over the prior art. However, while the embodiments of the present invention can obtain the advantages over other possible solutions and/or the prior art, whether a specific advantage will be obtained from a specific embodiment is not a limitation of the present invention. Therefore, the following aspects, features, embodiments and advantages are only for the purpose of illustration, and should not be construed as elements or limitations of the appended claims, unless so set forth clearly in the claims. Similarly, references to "the present invention" should not be construed as a summary of any inventive subject matter disclosed herein, nor be construed as elements or limitations of the appended claims, unless so set forth clearly in the claims.
The functional modules described in the description can be implemented as hardware circuits including customized VLSI circuits or gate arrays, off-the-shelf semiconductors such as logic chips, transistors or other discrete elements, or be implemented as programmable hardware devices such as field programmable gate arrays, programmable array logics, programmable logic devices, etc. These functional modules can further be implemented as software that can be executed by various processor. The executable code of these functional blocks may not necessarily resides together physically, rather they may comprise different instructions stored in different locations, which different instructions, when being coupled together logically, constitutes the functional modules and implement the predefined functions of the functional blocks.
Fig. 2 schematically illustrates the working principles of an on-demand personal computer provisioning system according to the present invention. As shown, when a user logs on through a client device having remote desktop functions, he provides to the system requirements for the desired computing hardware device and software environment, and based thereon, the system selects a computing hardware device that can be booted remotely and which can satisfy the requirements, prepares a software environment comprising an operating system and applications satisfying the requirements in a remote storage pool, and boots the selected computing hardware device remotely with the software environment, and then provides the same with user data together to the user through the client device, as the user's personal computer.
Fig. 3 schematically illustrates the composition of an on-demand personal computer provisioning system according to embodiments of the present invention. As shown, the on- demand personal computer provisioning system 300 comprises a computing pool 310, a storage pool 320, any number of client devices 330, and a computing resource controller 340 coupled with the computing pool 310, storage pool 320, and client devices 330.
The computing pool 310 may comprise a plurality of computing hardware devices, such as blade PCs. Each computing hardware device may be completely contained in a thin, modularized circuit board, a plurality of such circuit boards may be housed in a chassis, the chassis may be positioned in a centralized and secure location. The plurality of the computing hardware devices in one or more chassis constitute the computing pool 310. Therefore, computing hardware devices can be added to or removed from the computing pool 301 conveniently.
Each of the computing hardware devices may comprise a processor, a main memory, a read- only memory and other computer components coupled together through a bus. These computer components connected together with permanent storage, user interface devices, peripheral devices etc. may constitute a complete personal computer.
Each of the computing hardware devices may be booted from a remote disk, and preferably have no local disk. Of course, each of the computing hardware devices may also have a local disk. The computing hardware device can be booted from a remote disk by using any method as known to those skilled in the art, such as Preboot Execution Environment (PEX). In addition, the target disk address for booting of each of the computing hardware devices can be set dynamically, such as setting the target disk address for booting through BIOS settings.
The computing pool 310 can be coupled to a server such as an application server via networks such as an intranet, LAN etc, thus allowing a personal computer provided through the on-demand personal computer provisioning system 300 of the present invention to perform operations such as accessing the application server as part of the network such as an enterprise network.
The storage pool 320 provides a permanent storage for the on-demand personal computer provisioning system 300 according to the present invention, and may be used to store the software environment created for each user, which comprises system software such as an operating system and application software as needed by the user. The storage pool 320 may also be used to store the user data of each user. Besides, the storage pool 320 preferably comprises one or more initial volumes each containing system software such as an operating system and application software possibly to be used by users. The initial volumes can be pre- established by an administrator, and the system software and application software therein can also be configured and managed by an administrator. The storage pool 320 may undergo volume virtualization through, for example, IBM's SAN Controller (SVC), so as to realize more flexible and efficient storage management. Besides, the storage pool 320 may create a snapshot of a volume using a fast copy technology such as IBM's Flashcopy, so as to create a snapshot from an initial volume according to the user's request, as the software computing environment for the user. Of course, it is also possible to create a snapshot from a created and stored user volume containing the user's software environment, thus producing a new user volume.
The storage pool 320 may comprise any type of permanent storage device. It may either be a single storage device, or consist of multiple storage devices; it may either consist of the same type of storage devices, or consist of different types of storage devices; it may either be centralized, or be distributed. And it may be managed by various storage management software.
Each of the client devices 330 preferably does not have the computing power and storage capacity as a common personal computer, and preferably only comprise user interface devices such as a keyboard, a mouse, display etc. (and possibly peripheral devices such as a printer), and a device for connecting (directly or through the computing resource controller 340 or through other devices) with the computing pool 310, which device provides to the client device 330 remote desktop functions through Virtual Network Computing, (VNP), Remote Desktop Protocol (RDP), etc., so as to allow the user to interact with a computing hardware device in the computing pool 310 through the client device 330, thus forming the user's personal computer.
The computing resource controller 340 is used to interact the client devices 330, when one of the client devices 330 connects to the computing resource controller 340, providing to the client device 330 the information on the hardware and software resources in the on-demand personal computer provisioning system 300, such as the availability of the computing hardware devices in the computing pool 310, the performances and reliabilities and other features of the computing hardware devices, and the initial volumes and the volumes having been created for users stored in the storage pool and the types of the operating systems and the applications therein, etc., which are to be presented to the user by the client device; the user may select required hardware and software resources based on the information on the hardware and software resources in the on-demand personal computer provisioning system as presented on the client device 330, and send the selection to the computing resource controller 300 through the client device 330. The user can either select a specific computing hardware device available in the computing pool 310, or enter the requirements (preferences or policies) for the computing hardware device, such as the performance and reliability required of the computing hardware device, and based on the user's requirements, the computing resource controller 340 may select a corresponding computing hardware device. Further, the user may either select an existing volume from the volumes stored in the storage pool 320, or request to create a new volume, and may specify the type required of the operating system and application software, and based on the user's selection or requirements, the computing resource controller 340 may select a stored volume or create a new volume.
The computing resource controller 340 is further used to control the computing hardware devices in the computing pool 310, such as, powering on or off each computing hardware device, monitoring the status of each computing hardware device, setting the booting address of each computing hardware device, setting the input/output of each computing hardware device, etc. For example, the computing resource controller 340 may select one computing hardware device satisfying user requirements from the computing pool 310 according to the user requirements from one of the client devices, power on the computing hardware device, set the booting address of the computing device to a created or selected software environment, thus booting the computing hardware device with the created or selected software environment, and after the booting, set the input/output of the computing hardware device to the client device 330, thus forming a complete personal computer for the user. And in the process, the computing hardware device 340 may also monitor the status of the computing hardware device.
The computing resource controller 340 is further used to manage the volumes in the storage pool, including creating a software environment for a user or selecting a software environment previously stored for a user according to the user requirements for a software environment from one of the client devices. The software environment for the user may be created by means of creating a snapshot for an initial volume using a fast copy method such as Flashcopy.
According to an embodiment of the present invention, the computing resource controller 340 comprises in particular a user input/output handler 341, a machine maintainer 342, a software maintainer 343, and a system and user profile database 344.
Preferably, the user input/output handler 341 may be used to process a user request for computing resources from one of the client devices 330, query the information on the computing hardware devices available in the computing pool 310, such as the performances, reliabilities thereof, etc., the information on the software environments such as operating systems, application software etc. available in the storage pool 320, and information on the user profiles in the system and user profile database 344, and provide to the user the information on the available computing hardware devices, software environments and user profiles, for example in the form of a request page, through the client device 330.
The user input/output handler 341 may further be used to receive requirements (preferences and/or policies) for computing resources (including a computing hardware device and a software environment) and a selected existing user profile or a request for creating a new user profile, for example inputted or selected in the request page, from one of the client devices 330, and invoke the machine maintainer 342 and software maintainer 343 and provide to them the inputted or selected requirements and the user profile selection or request information etc., in order to create a personal computing environment incorporating a computing hardware deice and a software environment that can satisfy the user's requirements, and provide the personal computing environment to the user through the client device 330, as the user's personal computer.
The user input/output handler 341 may further be used to, when the user shuts down the machine, invoke the machine maintainer 342 to release the computing hardware device in the computing pool 310, and to invoke the software maintainer 343 to release the system volume and user data in the storage pool 320 or retain the system volume or user data in the storage pool based on the user's requirement or a policy. The machine maintainer 342 may be used to maintain the computing hardware devices in the computing pool 310, such as selecting a computing hardware device according to a command and user requirements from the user input/output handler 341, powering on the computing hardware device, setting the booting address for the computing hardware device, booting the computing hardware device with the software environment in the storage pool
320, monitoring the availability and running status of the hardware device, recording the availability, running status etc. of the hardware device in the system and user profile database 344, and so on. The machine maintainer 342 may further be used to, when the user shuts down the machine, shut down the running computing hardware device according to the command from the user input/output handler 341, return it to the computing pool 310 for use by other users, and modify the corresponding information in the system and user profile database.
The software maintainer 343 may be used to prepare a system volume and user data as a complete software environment according to the user requirements and user profile selection or creation request from the user input/output handler 341. For example, when the user has requested to create a new user profile, it creates a new system volume according to the user's requirements which can satisfy his requirements, for example by using a fast copy technology such as Flashcopy to create a snapshot of an initial volume as the system volume for this new user. Of course, it may also use a fast copy technology such as Flashcopy to create a snapshot of another user volume having been created and stored, as the system volume for this new user. For example, each of the users who are members of a project team may create a snapshot from a system volume for this project team. As will be understood by those skilled in the art, other methods may be used to create a new system volume for the new user. On the other hand, when the user selects to use an existing user profile, the software maintainer 343 can select the system volume for this existing user from the system volumes for users stored in the storage pool 320, as the current system volume for this user. The software maintainer 343 can determine the system volume for the user based on the user profile information from the user input/output handler 341 and by looking up the correspondence relationships between the user profiles and the system volumes stored in the storage pool as maintained in the system and user profile database 344. Alternatively, the software maintainer 343 may also create a new system volume for the user in the storage pool 320 according to the user's requirements. For example, the same user may crate and own multiple system volume versions.
The software maintainer 343 may further be used to retain the volume being used in the storage pool 320 for future use when the user shuts down the personal computer and selects to retain the volume in the storage pool 320, and modify the information on the volume and user profile in the system and user profile database 344, such as, for a newly created volume, creating the correspondence relationship between the volume and the user in the system and user profile database 344; for a new user, creating the user's profile; and for an existing user, modifying the user's profile. And it may further be used to delete the volume being used from the storage pool when the user shuts down the personal computer and selects not to retain the volume, and modify the relevant information on the user profile etc. in the system and user profile database.
The system and user profile database 344 may be used to store the list of available computing hardware devices, the information on the features and statuses such as performances thereof, the information on the system volumes in the storage pool and the operating systems and applications contained therein, users' profiles and history information, the information on the correspondence relationships between the user profiles and the system volumes, etc. The information in the system and user profile database 344 may be stored or modified by the user input/output handler 341, machine maintainer 342, software maintainer 343 correspondingly at appropriate times.
The various modules of the computing resource controller 340 can be implemented in hardware, software, firmware or a combination thereof, and preferably be implemented by software in combination with general purpose computer hardware, the software, when being executed, being able to direct the general purpose computer hardware to perform the functions of the modules of the computing resource controller 340.
The computing resource controller 340 can either be integrated with a conventional management system of the computing pool, such as a conventional management system for blade PCs, and/or be integrated with a management system of the storage pool, or function as a separate computing resource controller.
In the foregoing, the exemplary embodiments of the on-demand personal computer provisioning system of the present invention have been described, it needing to be noted that the above description is only for the purpose of illustration and explanation, and is not intended to limit the present invention. The on-demand personal computer provisioning system of the present invention can also be realized in other ways. For example, the computing resource controller 340 may have more, less or different modules than described, some modules may be combined into larger modules, or be divided into smaller modules.
The linking and interaction relationships between the modules may change, for example, the storage pool 320 may be connected with the computing pool 310 directly, rather than through the computing resource controller 340; the computing pool 310 may also be connected with the client device 330 directly or through other devices such as a switch, rather than through the computing resource controller 340. The system and user profile database 344 may reside completely or in part in the storage pool 320 or other storage, rather than in the computing resource controller 340. The user input/output handler 310, machine maintainer 342, software maintainer 343, and system and user profile database 344 may reside outside the computing resource controller 340, functioning as a separate module. In addition, the nomenclature of the various modules in the description is only used for the convenience of narration and understanding, and is not intended to limit the present invention.
In the following, the on-demand personal computer provisioning method of the present invention will be described with reference to the on-demand personal computer provisioning system according to the embodiment of the present invention as illustrated in Fig. 3 and described above in conjunction with the drawings. Fig. 4 illustrates the process flow of an on-demand personal computer provisioning method according to an embodiment of the present invention. As shown, first, the user connects to the on-demand personal computer provisioning system 300 of the present invention. In particular, the user turns on one of the client devices 330, and the client device 330 sends a connection request to the computing resource controller 340. Next, in step 401, the user provides the requirements for a computing hardware device and software environment. In particular, the user input/output handler 341 in the computing resource controller 340, after receiving the connection request from the client device 330, may look up the information on the computing resources and existing user profiles in the system and user profile database 344, and return to the client device 330 a request page containing the information on the computing resources and existing user profiles. Then, the user may input or select the requirements (preferences and/or policies) for computing resources, and selects an existing user profile, or request to create a new user profile, in the request page through the client device 330, and submit the user requirements and the user profile selection or creation request to the user input/output handler 341. The user can either select a specific one in the computing hardware devices available in the computing pool 310, or input the requirements (preferences and/or policies) for a computing hardware device, such as the performance and reliability required for the computing hardware device, etc., and let the machine maintainer 342 to select a corresponding computing hardware device based on the user's requirements. In addition, the user can select an existing user profile in the request page, in which case, after being authenticated, the user will operate as the existing user, and the on-demand personal computer provisioning system 300 of the present invention will invoke the software environment for this user stored in the storage pool 320, as his current environment. Alternatively, the on-demand personal computer provisioning system 300 of the present invention can also create a new software environment for this existing user according to the user's input or selection in the request page, thus producing different versions of software environment for the user. The new software environment can either be obtained by the software maintainer 343 through using a fast copy technology such as Flashcopy to create a snapshot of an initial volume, or through creating a snapshot of a system volume having been stored for this user, or through creating a snapshot of a system volume having been stored for other users such as the system volume of a project team of which the user is a member. On the other hand, the user can also request to create a new user profile in the request page, in which case, the on-demand personal computer provisioning system 300 of the present invention will create a new software environment for the user, and the user can specify the required types of the operating system and applications that will be created by the system 300, or specify the system volume from which a snapshot will be created, such as an initial volume, the system volume of a project team, a volume of another user, etc., and let the software maintainer 343 to create a new software environment based on the user's specification by using a fast copy technology such as Flashcopy.
In step 402, a computing hardware device is allocated according to the user's requirements for a computing hardware device. In particular, the user input/output handler 341, after receiving the user's selection or requirements, may invoke the machine maintainer 342 and provide to it the user's selection or requirements. The machine maintainer 342 may allocate an appropriate computing hardware device from the computing pool 310 according to the user's selection or requirements, such as powering on the computing hardware device, and enter into its BIOS settings, and at the same time, modify the status information of the computing hardware device in the system and user profile database 344, such as changing its idle status to an occupied status.
In step 403, a software environment for the user is prepared according to the user's requirements for a software environment. In particular, the user input/output handler 341, after receiving the user's selection or requirements, may invoke the software maintainer 343, and provide to it the user's requirements for a software environment, and the software maintainer 343 may prepare system and application software and user data according to the user's requirements for a software environment, as a complete software environment for the user. If the user has requested to create a new user profile, the user is a new user, and the software maintainer 343 may create a new system volume that can satisfy the user's requirements according to the user's requirements as described above. On the other hand, if the user has selected to use an existing user profile and has been authenticate, the user is an existing user, and the software maintainer may select this existing user's system volume among users' system volumes stored in the storage pool 320 or create a new system volume for the user as described above. The software maintainer 343 may determine the user's system volume stored in the storage pool 320 based on the user profile information from the user input/output handler 341, for example by looking up the correspondence relationships between the users' profile and the system volumes stored in the storage pool 320 as maintained in the system and user profile database.
In step 404, the computing hardware device is booted with the software environment. In particular, the machine maintainer 342 may set the booting address for the allocated computing hardware device to the software environment prepared in the storage pool 320, and boot the computing hardware device with the software environment.
In step 405, the information on the computing hardware device, system volume and user profile is modified. In particular, the software maintainer 343 may modify the relevant information in the system and user profile database 344, such as for a new system volume created for a new user, adding the correspondence relationship between the new user's profile and the new system volume.
In step 406, a complete personal computer is provided to the user. In particular, the machine maintainer 342 may monitor the status of the computing hardware device, and when the booting process is completed, notify the same to the user input/output handler 341. The user input/output handler 342 may switch the input and output of the new computing hardware device to the client device 330, so that the user can interact with the new computing hardware device through, for example, VNC or RDP software, thus obtaining his complete personal computer.
In the foregoing, the process flow of the on-demand personal computer provisioning method according to an embodiment of the present invention, in particular the process of the user requesting and obtaining his personal computer, has been described with reference to the drawings. In the following, the process of releasing the computing resources in the on- demand personal computer provisioning method according to an embodiment of the present invention will be described with reference to the drawings.
Fig. 5 illustrates the process of releasing the computing resources in the on-demand personal computer provisioning method according to the embodiment of the present invention. As shown, the process starts with the user requesting to release the resources. Preferably, the user may issue a command to shut down the machine through the client device 330 that he is operating, then the user input/output handler 341 receives the command, and switches the screen of the client device 330 from the running operating system to a window of the computing resource controller 340 in the on-demand personal computer provisioning system 300 of the present invention. This process can be realized by, for example, inserting software that may capture a user's shutdown command into each operating system.
In step 501, the computing hardware device is shut down, and the information on the computing hardware device is modified. In particular, the user input/output handler 341 may invoke the machine maintainer to shut down the running computing hardware device. The machine maintainer 342 may monitor the status of the computing hardware device, and when it is powered off, modify the information on the computing hardware device in the system and user profile database 344, such as, changing its occupied status to the idle status so that it can be used by other users.
In step 502, it is determined whether to retain the system volume. It can be specified by the user in the above window whether to retain the system volume, or it can be determined according to a predefined policy or configuration whether to retain the system volume.
If it is determined in step 502 to retain the system volume, the process proceeds to step 503, where the system volume is retained, and the data about the software environment and user profiles is modified. In particular, the user input/output handler 341 may invoke the software maintainer 343 to retain the volume in the storage pool 320, and modify the information on the volume and user profile in the system and user profile database 344, such as, for a newly created volume, creating the correspondence relationship between the volume and the user in the system and user profile database 344; for a new user, creating the profile of the user; and for a old user, modifying the user's profile.
If it is determined in step 502 not to retain the system volume, the process proceeds to step
504, where the system is deleted, and the system and user profile database is modified. Now, the process of releasing the resources is completed.
In the foregoing, the process flow of the on-demand personal computer provisioning method according to an embodiment of the present invention and the process of releasing the resources therein have been described. It should be noted that the illustrated and described steps are only for the purpose of illustration and description, and are not intended to limit the present invention. The on-demand personal computer provisioning method of the present invention may have more, less, or different steps than described. Some steps may be combined together, and some steps may be divided into smaller steps. The execution order of the steps may change, and some steps may be executed in parallel. For example, the order between the step 501 of shutting down the computing hardware device and the step 502 of determining whether to retain the system volume, as well as that between the step 503 of retaining the system volume and the step 504 of deleting the system volume can be reversed, or they may be executed in parallel. In addition, although the on-demand personal computer provisioning method has been described with reference to the operations of the on-demand personal computer provisioning system 300 according to the embodiment of the present invention, as will be understood by those skilled in the art, the method of the present invention is not limited thereto, rather, it can be realized by another system different with the described on-demand personal computer provisioning system 300.
The present invention can also be implemented as a method for providing an on-demand personal computer provisioning service to users by using the above described on-demand personal computer provisioning method according to the present invention.
In addition, the present invention can also be embodied in a computer readable medium having program instructions stored thereon, which, when being loaded into a program execution machine, cause the program execution machine to perform the steps of the above described on-demand personal computer provisioning method.
Although the present invention has been described and explained specifically with reference to the preferred embodiments, those skilled in the art will recognize that various changes in form and detail may be made therein without departing from the spirit and scope of the present invention. The scope of the present invention is defined by the appended claims.

Claims

1. A computing resource controller for on-demand personal computer provisioning, the computing resource controller comprising: a machine maintainer for, according to a user's requirements for a computing hardware device, allocating a computing hardware device which can satisfy the user's requirements from a computing pool comprising a plurality of computing hardware devices that can be booted remotely; and a software maintainer for preparing a software environment in a storage pool according to the user's requirements for a software environment, wherein the machine maintainer is further configured to set the booting address for the allocated computing hardware device to the prepared software environment, and to boot the computing hardware device with the software environment.
2. The computing resource controller according to claim 1, further comprising a user input/output handler for switching the input and output of the booted computing hardware device to a client device having remote desktop functions, thus forming the user's personal computer.
3. The computing resource controller according to claim 2, further comprising a system and user profile database for storing the information on computing hardware devices in the computing pool and software environments stored in the storage pool and user profiles.
4. The computing resource controller according to claim 3, wherein the software maintainer is further configured to: when the user selects a user profile previously created and stored, based on the user's requirements for a software environment, select the software environment corresponding to the user profile and previously created and stored, or create a new software environment for the user in the storage pool; and when the user requests to create a new user profile, based on the user's requirements for a software environment, create a new software environment for the user in the storage pool.
5. The computing resource controller according to claim 4, wherein the user input/output handler is further configured to provide to the user the information on the computing hardware devices, software environments and user profiles through the client device, so that the user can provide the requirements for a computing hardware device and software environment, and request to create or select a user profile based on the information.
6. The computing resource controller according to claim 4, wherein the software maintainer is further configured to generate a snapshot of an initial volume and/or another volume previously created and stored comprising an operating system and applications, as the user's software environment; and the computing resource controller further comprises a configurator for generating the initial volume and configuring the operating system and applications contained therein by an administrator.
7. The computing resource controller according to claim 6, wherein the storage pool adopts a virtual volume management technology.
8. The computing resource controller according to claim 7, wherein the software maintainer uses a fast copy technology to generate the snapshot of the initial volume comprising an operating system and applications.
9. The computing resource controller according to claim 1, wherein the machine maintainer is further configured to shut down the computing hardware device when the user requests to shut down the personal computer; and the software maintainer is further configured to retain the software environment for the user in the storage pool when the user requests to shut down the personal computer and it has been determined to retain the software environment for the user, and to delete the software environment for the user from the storage pool when it has been determined not to retain the software environment for the user.
10. The computing resource controller according to claim 1, wherein the computing hardware device is a blade PC.
11. A on-demand personal computer provisioning system, comprising: a computing pool comprising a plurality of computing hardware devices that can be booted remotely; a storage pool in which a software environment for a user can be created and stored; one or more client devices having remote desktop functions; and the computing resource controller according to any of claims 1-10 coupled with the computing pool, storage pool, and client devices.
12. An on-demand personal computer provisioning method, comprising the steps of: according to a user's requirements for a computing hardware device, allocating a computing hardware device which can satisfy the user's requirements from a computing pool comprising a plurality of computing hardware devices that can be booted remotely; preparing a software environment for the user in a storage pool according to the user's requirements for a software environment; booting the computing hardware device with the software environment; and providing to the user the booted computing hardware device through a client device having remote desktop functions, thus forming the user's personal computer.
13. The method according to claim 12, further comprising the step of storing and/or modifying the information on computing hardware devices, software environments and user profiles.
14. The method according to claim 13, further comprising the step of requesting to create a new user profile or selecting a user profile previously created and stored through the client device by the user, and wherein the step of preparing the software environment for the user according to the user's requirements for a software environment comprising: when the user selects a user profile previously created and stored, based on the user's requirements for a software environment, selecting the software environment corresponding to the user profile and previously created and stored in the storage pool, or creating a new software environment for the user; and when the user requests to create a new user profile, based on the user's requirements for a software environment, creating a new software environment for the user in the storage pool.
15. The method according to claim 14, further comprising the step of: providing to the user the information on computing hardware devices, software environments and user profiles through the client device, so that the user can provide the requirements for a computing hardware device and software environment, and request to create or select a user profile based on the information.
16. The method according to claim 14, wherein the step of creating a new software environment for the user comprising: generating a snapshot of an initial volume and/or another volume previously created and stored comprising an operating system and applications, as the software environment for the user, wherein the operating system and applications contained in the initial volume can be configured by an administrator.
17. The method according to claim 16, wherein the step of creating a snapshot of an initial volume comprising an operating system and applications is performed in a storage pool adopting a virtual volume management technology.
18. The method according to claim 17, wherein the step of creating a snapshot of the initial volume is performed by using a fast copy technology.
19. The method according to claim 12, further comprising the steps of: when the user requests to shut down the personal computer: shutting down the computing hardware device; determining whether to retain the software environment for the user; when it is determined to retain the software environment for the user, retaining the software environment for the user for future use; and when it has been determined not to retain the software environment for the user, deleting the software environment for the user from the storage pool.
20. The method according to claim 12, wherein the computing hardware device is a blade PC.
21. A method for providing an on-demand personal computer provisioning service to users by using the method of any of claims 12-20.
PCT/EP2007/060822 2006-10-23 2007-10-11 On-demand personal computer provisioning system and method WO2008049738A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CNA2006101371822A CN101169725A (en) 2006-10-23 2006-10-23 Personal computer supply system on demand and method
CN200610137182.2 2006-10-23

Publications (1)

Publication Number Publication Date
WO2008049738A1 true WO2008049738A1 (en) 2008-05-02

Family

ID=38988060

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2007/060822 WO2008049738A1 (en) 2006-10-23 2007-10-11 On-demand personal computer provisioning system and method

Country Status (2)

Country Link
CN (1) CN101169725A (en)
WO (1) WO2008049738A1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103503414A (en) * 2012-12-31 2014-01-08 华为技术有限公司 Computing storage integration cluster system
CN105657057A (en) * 2012-12-31 2016-06-08 华为技术有限公司 Calculation and storage fused cluster system
CN105653303A (en) * 2014-11-10 2016-06-08 阿里巴巴集团控股有限公司 Application installation control method and device
US9792181B2 (en) 2010-02-22 2017-10-17 International Business Machines Corporation Pool of devices providing operating system redundancy
CN112068954A (en) * 2020-08-18 2020-12-11 弥伦工业产品设计(上海)有限公司 Method and system for scheduling network computing resources

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8261266B2 (en) * 2009-04-30 2012-09-04 Microsoft Corporation Deploying a virtual machine having a virtual hardware configuration matching an improved hardware profile with respect to execution of an application
US10868717B2 (en) * 2019-01-31 2020-12-15 Hewlett Packard Enterprise Development Lp Concurrent profile deployments
CN111198766B (en) * 2020-01-06 2021-02-05 中科驭数(北京)科技有限公司 Database access operation deployment method, database access method and device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040181641A1 (en) * 2003-03-12 2004-09-16 International Business Machines Corporation System, method and computer program product to automatically select target volumes for a fast copy to optimize performance and availability
EP1594057A1 (en) * 2004-04-15 2005-11-09 Raytheon Company System and method for computer cluster virtualization using dynamic boot images and virtual disk
US20060161765A1 (en) * 2005-01-19 2006-07-20 International Business Machines Corporation Reducing the boot time of a client device in a client device/data center environment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040181641A1 (en) * 2003-03-12 2004-09-16 International Business Machines Corporation System, method and computer program product to automatically select target volumes for a fast copy to optimize performance and availability
EP1594057A1 (en) * 2004-04-15 2005-11-09 Raytheon Company System and method for computer cluster virtualization using dynamic boot images and virtual disk
US20060161765A1 (en) * 2005-01-19 2006-07-20 International Business Machines Corporation Reducing the boot time of a client device in a client device/data center environment

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KRZYSZTOF ZIELINSKI ET AL: "Role of N1 Technology in the Next Generation Grids Middleware", ADVANCES IN GRID COMPUTING - EGC 2005 LECTURE NOTES IN COMPUTER SCIENCE;;LNCS, SPRINGER-VERLAG, BE, vol. 3470, 2005, pages 942 - 951, XP019012063, ISBN: 3-540-26918-5 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9792181B2 (en) 2010-02-22 2017-10-17 International Business Machines Corporation Pool of devices providing operating system redundancy
CN103503414A (en) * 2012-12-31 2014-01-08 华为技术有限公司 Computing storage integration cluster system
CN103503414B (en) * 2012-12-31 2016-03-09 华为技术有限公司 A kind of group system calculating storage and merge
CN105657057A (en) * 2012-12-31 2016-06-08 华为技术有限公司 Calculation and storage fused cluster system
US9733848B2 (en) 2012-12-31 2017-08-15 Huawei Technologies Co., Ltd. Method and system for pooling, partitioning, and sharing network storage resources
US10082972B2 (en) 2012-12-31 2018-09-25 Huawei Technologies Co., Ltd. Method and system for pooling, partitioning, and sharing network storage resources
US10481804B2 (en) 2012-12-31 2019-11-19 Huawei Technologies Co., Ltd. Cluster system with calculation and storage converged
US11042311B2 (en) 2012-12-31 2021-06-22 Huawei Technologies Co., Ltd. Cluster system with calculation and storage converged
CN105653303A (en) * 2014-11-10 2016-06-08 阿里巴巴集团控股有限公司 Application installation control method and device
CN105653303B (en) * 2014-11-10 2019-01-22 阿里巴巴集团控股有限公司 The installation control method and device of application
CN112068954A (en) * 2020-08-18 2020-12-11 弥伦工业产品设计(上海)有限公司 Method and system for scheduling network computing resources

Also Published As

Publication number Publication date
CN101169725A (en) 2008-04-30

Similar Documents

Publication Publication Date Title
US8086808B2 (en) Method and system for migration between physical and virtual systems
EP2176747B1 (en) Unified provisioning of physical and virtual disk images
US8327350B2 (en) Virtual resource templates
KR101173712B1 (en) System and method for computer cluster virtualization using dynamic boot images and virtual disk
US7676635B2 (en) Recoverable cache preload in clustered computer system based upon monitored preload state of cache
US9003001B2 (en) Bios parameter virtualization via BIOS configuration profiles
WO2008049738A1 (en) On-demand personal computer provisioning system and method
CN101650660B (en) Booting a computer system from central storage
US20190334765A1 (en) Apparatuses and methods for site configuration management
JP5893029B2 (en) How to enable hypervisor control in a cloud computing environment
US10838754B2 (en) Virtualized systems having hardware interface services for controlling hardware
US20140129819A1 (en) Cloud cluster system and boot deployment method for the same
US20100042636A1 (en) Internet server system, method of creating virtual machine of the internet server and method of starting the same
US10956170B2 (en) BIOS setting modification system
TW200828118A (en) Method and process for using common preinstallation environment for heterogeneous operating systems
US20140229695A1 (en) Systems and methods for backup in scale-out storage clusters
MXPA06012869A (en) System and method for integrated on-demand delivery of operating system and applications.
WO2013032694A1 (en) Distributed resource management in a portable computing device
US9898273B1 (en) Dynamically updating APIS based on updated configuration file of a computing system
US7668938B1 (en) Method and system for dynamically purposing a computing device
JP5255566B2 (en) System and method for processing data
US7366867B2 (en) Computer system and storage area allocation method
CN1834912A (en) ISCSI bootstrap driving system and method for expandable internet engine
Meier et al. IBM systems virtualization: Servers, storage, and software
US8732688B1 (en) Updating system status

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 07821189

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 07821189

Country of ref document: EP

Kind code of ref document: A1