WO2009155463A2 - Management layer method and apparatus for dynamic assignment of users to computer resources - Google Patents
Management layer method and apparatus for dynamic assignment of users to computer resources Download PDFInfo
- Publication number
- WO2009155463A2 WO2009155463A2 PCT/US2009/047860 US2009047860W WO2009155463A2 WO 2009155463 A2 WO2009155463 A2 WO 2009155463A2 US 2009047860 W US2009047860 W US 2009047860W WO 2009155463 A2 WO2009155463 A2 WO 2009155463A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- remote computing
- data
- computing resources
- meta
- processing unit
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
Definitions
- the present invention relates generally to the management and control of remote computer resources. More particularly, the present invention relates to a method and apparatus that creates and maintains a hierarchical data model for determining the characteristics and state of a particular remote computer resource and ensuring that the most appropriate control system is used to manage that particular remote computer resource.
- a Connection Broker is a central management system that can assign computing resources to users according to their needs.
- One such type of Connection Broker can be found, for example, in United States Patent Application Serial No. 11/689,113 filed i on 21 MARCH 2007 and titled MANAGEMENT LAYER METHOD AND APPARATUS FOR DYNAMIC ASSIGNMENT OF USERS TO COMPUTER RESOURCES which was published on 25 SEPTEMBER 2008 as United States Patent Application Publication 2008/0235361 and herein incorporated by reference.
- One of the features for a Connection Broker is to catalogue within a hierarchical model all the available computing resources and all the meta-data that surrounds those resources.
- Meta-data includes both permanent and temporary data.
- An example of the former is the type of operating system, while an example of the latter is which user is logged into the system and whether they are disconnected or not.
- connection Broker needs to know which agent or external system controls a particular feature of a Hosted Desktop. So, for example, if the Hosted Desktop can be shut down by either the agent running within the Hosted Desktop or by the virtualization management layer - but the latter can only cleanly shut down the Operating System in certain circumstances while the former will only work if the operating system is running correctly then an intelligent choice needs to be made based on the system configuration.
- the Connection Broker needs to keep a track of the state of each remote computing resource - this includes, but is not limited to, information such as to the power state, whether it has been offered to any other user, whether it has been offered to that user before, and the load on the host that is powering that particular remote computing resource.
- the present invention provides a method and apparatus in the form of a management layer that collates and sorts information about remote computer resources in such a way that the most appropriate computer resource is assigned to a particular user or client device according to their needs and the remote computing resources available at that time.
- the present invention forms a method and apparatus that creates and maintains a hierarchical data model for determining the characteristics and state of a particular remote computer resource and ensures that the most appropriate control system is used to manage that particular remote computer resource.
- the present invention uses this data model to sort and categorize remote computing resources into groups and assigns resources from within these groups to users according to the user's needs and rights and the characteristics of the computing resources within each group. Further the invention tracks the state of the remote computing resource and automatically changes the state in accordance with changes in external variables, or internal logic rules.
- the present invention provides a method of managing remote computing resources, the method includes: discovering remote computing resources by means of external agents and external management systems; determining the characteristics of the discovered remote computing resources; sorting the characteristics into a hierarchy according to the source of the data; assigning control of particular remote computing resources to external agents or systems according to the hierarchy previously established; sorting the remote computing resources into pools according to these characteristics and predetermined rules; and further sorting of the remote computing resources into sub pools according to the state of that resource.
- the method forms a management layer embodied within one or more computer processing units in the form of executable software instructions.
- the present invention provides a method of managing remote computing resources, the method includes: gathering meta-data describing a particular remote computing resource; and consolidating the meta-data within a central database such that a most accurate source of a particular variable is given highest prominence.
- the method further uses the meta-data to determine a most appropriate manner for controlling a remote computer resource.
- the method further uses the meta-data so as to group one or more of the remote computer resources having equivalent properties into categories identified as pools.
- the method further gathers the meta-data alongside user and client data and uses the meta-data and the user and client data so as to maintain the state of each remote computer resource.
- the present invention provides a management layer apparatus that manages remote computing resources
- the apparatus includes: a processing unit for discovering remote computing resources by means of external agents and external management systems; a processing unit for determining the characteristics of the discovered remote computing resources; a processing unit for sorting the characteristics into a hierarchy according to the source of the data; a processing unit for assigning control of particular remote computing resources to external agents or systems according to the hierarchy previously established; a processing unit for sorting the remote computing resources into pools according to these characteristics and predetermined rules; and a processing unit for further sorting of the remote computing resources into sub pools according to the state of that resource; wherein the processing units are embodied within one or more computer processing units in the form of executable software instructions.
- the present invention provides a management layer apparatus that manages remote computing resources, the apparatus includes: a processing unit for gathering meta-data describing a particular remote computing resource; and a processing unit for consolidating the meta-data within a central database such that a most accurate source of a particular variable is given highest prominence; wherein the processing units are embodied within one or more computer processing units in the form of executable software instructions.
- the apparatus further includes a processing unit using the meta-data to determine a most appropriate manner for controlling a remote computer resource.
- the apparatus further includes a processing unit using the meta-data so as to group one or more of the remote computer resources having equivalent properties into categories identified as pools.
- the apparatus further includes a processing unit that gathers the meta-data alongside user and client data and uses the meta-data and the user and client data so as to maintain the state of each remote computer resource.
- Figure 1 shows the overall network architecture in accordance with the present invention.
- Figure 2 shows an example of the data gathered from three different sources and how they overlap.
- Figure 3 shows an example of cascading pools with their associated hosted desktops (a particular type of remote computing resource).
- Figure 4 shows an example of the possible states that a remote computer resource could have.
- the present invention provides a method and apparatus in the form of a management layer that collates and sorts information about remote computer resources in such a way that the most appropriate computer resource is assigned to a particular user or client device according to their needs and the remote computing resources available at that time.
- the most appropriate computer resource may be a computer resource including, but not limited to any computing mechanism such as a desktop or computing application. Accordingly, the term computer resource is intended to encompass both desktops and applications.
- the management layer is embodied within one or more computer processing units in the form of executable software instructions.
- the present invention uses the data gathered to determine the most appropriate method for controlling the remote computer resource.
- FIG. 1 an overall network architecture diagram in accordance with the present invention is shown.
- the end-user may be either a fat-client 6a, a thin-client 6b, or a web-client 6c (shown firewalled).
- a network management mechanism in the form of a connection broker (CB) 1 is operatively coupled between the client (thin, fat, or web) and a Hosted Desktop 8 that has been drawn either from Pool A 7a or Pool B 7b.
- the remote computing resource may be a server hosted remote session 9, such as Microsoft Terminal Services.
- the network 11 typically carries data using electrical signaling, optical signaling, wireless signaling, a combination thereof, or any other signaling method known to the networking art. Accordingly, it should be readily apparent that the network 11 can be a fixed channel telecommunications link such as a T1 , T3, or 56 kb line; local area network (LAN) or wide area network (WAN) links; a packet-switched network; a packet-switched network of networks such as the Internet; or any other network configuration known to the art.
- the network 11 typically carries data in a variety of protocols, including but not limited to: user datagram protocol (UDP), asynchronous transfer mode (ATM), X.25, and transmission control protocol (TCP).
- UDP user datagram protocol
- ATM asynchronous transfer mode
- TCP transmission control protocol
- Remote Session 9 can be assigned to a user it has to be discovered by the Connection Broker.
- This discovery is done using either an Agent 2 (such as hosted desktop agents as shown and described in as United States Patent Application Serial No. 11/689,113 filed on 21 MARCH 2007 and titled MANAGEMENT LAYER METHOD AND APPARATUS FOR DYNAMIC ASSIGNMENT OF USERS TO COMPUTER RESOURCES which was published on 25 SEPTEMBER 2008 as United States Patent Application Publication 2008/0235361 and herein incorporated by reference), or a third party management system, such as an authentication system 3, or a virtualization management system 4.
- Such authentication system 3 or virtualization management system 4 are known within the art and are not therefore further described herein.
- the discovery resources are either an agent or from external management systems. It should also be understood that users may also specify resources, for example, by uploading data from a Comma Separated Value (CSV) file or by specifying IP addresses as a method for registering resources with the Connection Broker.
- CSV Comma Separated Value
- the Characteristics include, but are not limited to, the operating system running within the Hosted Desktop or Server Hosted Remote Session (Guest OS Type 8a, Windows Machine Name 8f, DNS Name 8h, Guest OS Service Pack Level 8g, Installed Applications 8j), the Hosted Desktop itself (Associated Template 8b, Resource Pool 8c, Snapshot State 8d), or the system user (User Login State 8e, or User Login Time 8k).
- the Operating system running within the Hosted Desktop or Server Hosted Remote Session
- the Operating System running within the Hosted Desktop or Server Hosted Remote Session (Guest OS Type 8a, Windows Machine Name 8f, DNS Name 8h, Guest OS Service Pack Level 8g, Installed Applications 8j), the Hosted Desktop itself (Associated Template 8b, Resource Pool 8c, Snapshot State 8d), or the system user (User Login State 8e, or User Login Time 8k).
- a variety of pools may also be formed by the number of Central Processing Units (CPUs) or Network Interface Controllers (NIC
- Each of these characteristics is obtained by querying one or more sources - so that the Guest OS Type 8a can be determined by querying either the Agent 2, the Authentication Server 3, or the Virtualization Management 4.
- all remote computing resources are members of one or more pools.
- Hosted Desktop (a particular type of remote computing resource) 8a is a member of Pool 7b, Pool 7c, and Pool 7d but not Pool 7b.
- Resources available to users may of course vary among pools. When assigning a Hosted Desktop from Pool 7c to a user then Hosted Desktop 8a, 8b, or 8c would be appropriate. However, assigning Hosted Desktop 8c is a better use of resources than Hosted Desktops 8a or 8b because Hosted Desktop 8a or 8b can be substituted for 8c without loss of functionality for the user, while assigning Hosted Desktop 8c in place of 8a will result in an inferior match for that user and should only be made if the pool 7a is empty.
- the remote computing resources always have a state. This is derived from the characteristics of the remote computing resources. So when a remote computing resource is first discovered, and before it has been assigned then it will be in the Unassigned Pool 20 in either a Stopped 31 , Running 32, or Suspended state 33. In addition to these states, it is sometimes possible that the Hosted Desktop can be in a particular snapshot state. A snapshot is a capture of that operating system and associated applications at a moment in time. Once a snapshot is taken then that Hosted Desktop can be returned to the moment when the snapshot is taken.
- the Connection Broker determines which remote computer resource to offer to the user according to a predetermined set of rules.
- users can be defined as either unique or global across domains. Based on this setting, the Connection Broker can correctly identify a user with the same user name, as being either the same or different physical user, and assign resources appropriately. As well, resources can be assigned based on the user's location. In operation, if the remote computing resource only belongs to that user then they will always get it. If it is a shared resource then the Connection Broker will pick a particular remote computer resource from the more appropriate Pool according to the predetermined set of rules and the meta-data associated with that resource. Offered remote computing resources are moved into the Offered 21 Pool which is a subset of the relevant Unassigned Pool 20.
- the user can then select one or more of the offered computing resources.
- the selected resources are then placed in the Not Logged In Pool 22, which is a subset of the Offered Pool 21.
- Offered Pool 21 There is no guarantee that a user will pick any or all of the remote computing resources that they are offered. If they are assigned to a user as soon as they are offered then they will be unavailable for any other user. Equally if they are offered to several users at the same time (i.e., over allocated) then there is no guarantee that a user will get the remote computing resource that they desire.
- a remote computing resource Once a remote computing resource has been picked by a user, and hence assigned, it becomes a member of the Assigned Pool 22, and more particularly a member of the Not Logged In Pool 23 then typically that user is automatically logged into the remote computing resource and the user is connected to that resource, hence that resource moves to the Logged In Connected Pool 24.
- This logic is further complicated by the power state of the Hosted Desktop, so if a Hosted Desktop is stopped 21a or suspended 21 b then it is often an unnecessary waste of resources to start the Hosted Desktop 23c when offering it to the user. It is more efficient to select the running Hosted Desktops 21c before the suspended 21b or stopped 21a ones, but if there are no running ones left to offer the suspended or stopped ones but not to start them unless they are picked by the user.
- the user can then be disconnected from the remote computing resource, either intentionally or due to a network failure without logging out of the session - in this case the resource moves to the Logged In Disconnected Pool 25.
- the Hosted Desktop can be returned to the Not Logged In Pool 23 if the user logs out, or if an external event such as timer forces the user to be logged out.
- the Hosted Desktop can be released back to the unassigned pool 20 as a result of an event such as disconnecting or logging out 27, or a timer expiring 28.
Abstract
A method and apparatus for management and control of remote computer resources. The method and apparatus creates and maintains a hierarchical data model for determining the characteristics and state of a particular remote computer resource to ensure the most appropriate control system is used to manage that particular remote computer resource. The data model used sorts and categorizes remote computing resources into groups and assigns resources from within these groups to users according to the user's needs and rights and the characteristics of the computing resources within each group. The state of the remote computing resource is tracked and automatically changes the state in accordance with changes in external variables or internal logic rules.
Description
MANAGEMENT LAYER METHOD AND APPARATUS FOR DYNAMIC ASSIGNMENT OF USERS TO COMPUTER RESOURCES
Cross Reference to Related Applications
[001] This application claims the benefit of and priority from United States provisional patent application serial number 61/074,319 filed on 20 JUNE 2008 and incorporated in its entirety herein by reference.
Field of the Invention
[002] The present invention relates generally to the management and control of remote computer resources. More particularly, the present invention relates to a method and apparatus that creates and maintains a hierarchical data model for determining the characteristics and state of a particular remote computer resource and ensuring that the most appropriate control system is used to manage that particular remote computer resource.
Background of the Invention
[003] Computer architectures go in and out of favor as the relative costs and benefits of the different approaches changes with the introduction of new technology.
[004] The latest technology change is the introduction of Virtual Hosted
Desktops - dedicated desktop operating systems running within virtual machines.
[005] This complements existing solutions such as Microsoft Terminal Services,
Citrix Presentation Server Sessions, and Hosted Desktops running within physical machines.
[006] The proliferation of different centrally hosted resources and the need to integrate the complete solution with existing datacenter and desktop infrastructure as well as corporate business process has created the need for a Connection Broker. A Connection Broker is a central management system that can assign computing resources to users according to their needs. One such type of Connection Broker can be found, for example, in United States Patent Application Serial No. 11/689,113 filed i
on 21 MARCH 2007 and titled MANAGEMENT LAYER METHOD AND APPARATUS FOR DYNAMIC ASSIGNMENT OF USERS TO COMPUTER RESOURCES which was published on 25 SEPTEMBER 2008 as United States Patent Application Publication 2008/0235361 and herein incorporated by reference.
[007] One of the features for a Connection Broker is to catalogue within a hierarchical model all the available computing resources and all the meta-data that surrounds those resources.
[008] Meta-data includes both permanent and temporary data. An example of the former is the type of operating system, while an example of the latter is which user is logged into the system and whether they are disconnected or not.
[009] The problem with this meta-data is that there is no central location for this data - instead the Connection Broker needs to query a series of agents and external systems in order to gather the information.
[0010] The problem is further complicated by the fact that conflicting information can be gathered from different sources because some are able to provide more up to date information than others. So, for example, the Authentication Server knows when a user logs in, but does not know when that user disconnects from the session - while if there is an agent running within the Hosted Desktop it will know the precise state of all users logged into that Hosted Desktop, and hence its information should supersede that of the Authentication Server.
[0011] In addition, the Connection Broker needs to know which agent or external system controls a particular feature of a Hosted Desktop. So, for example, if the Hosted Desktop can be shut down by either the agent running within the Hosted Desktop or by the virtualization management layer - but the latter can only cleanly shut down the Operating System in certain circumstances while the former will only work if the operating system is running correctly then an intelligent choice needs to be made based on the system configuration.
[0012] Finally the Connection Broker needs to keep a track of the state of each remote computing resource - this includes, but is not limited to, information such as to the power state, whether it has been offered to any other user, whether it has been offered to that user before, and the load on the host that is powering that particular remote computing resource.
Summary of the Invention
[0013] It is the object of the present invention to obviate or mitigate at least one disadvantage of previous mechanisms for managing remote computer resources, and more particularly hosted desktops. In general, the present invention provides a method and apparatus in the form of a management layer that collates and sorts information about remote computer resources in such a way that the most appropriate computer resource is assigned to a particular user or client device according to their needs and the remote computing resources available at that time.
[0014] As a manner of management and control of remote computer resources the present invention forms a method and apparatus that creates and maintains a hierarchical data model for determining the characteristics and state of a particular remote computer resource and ensures that the most appropriate control system is used to manage that particular remote computer resource. Using this data model the present invention uses this data model to sort and categorize remote computing resources into groups and assigns resources from within these groups to users according to the user's needs and rights and the characteristics of the computing resources within each group. Further the invention tracks the state of the remote computing resource and automatically changes the state in accordance with changes in external variables, or internal logic rules.
[0015] In the first aspect, the present invention provides a method of managing remote computing resources, the method includes: discovering remote computing resources by means of external agents and external management systems; determining the characteristics of the discovered remote computing resources; sorting the characteristics into a hierarchy according to the source of the data; assigning control of
particular remote computing resources to external agents or systems according to the hierarchy previously established; sorting the remote computing resources into pools according to these characteristics and predetermined rules; and further sorting of the remote computing resources into sub pools according to the state of that resource. The method forms a management layer embodied within one or more computer processing units in the form of executable software instructions.
[0016] In a further embodiment, the present invention provides a method of managing remote computing resources, the method includes: gathering meta-data describing a particular remote computing resource; and consolidating the meta-data within a central database such that a most accurate source of a particular variable is given highest prominence. The method further uses the meta-data to determine a most appropriate manner for controlling a remote computer resource. The method further uses the meta-data so as to group one or more of the remote computer resources having equivalent properties into categories identified as pools. The method further gathers the meta-data alongside user and client data and uses the meta-data and the user and client data so as to maintain the state of each remote computer resource.
[0017] In a further embodiment, the present invention provides a management layer apparatus that manages remote computing resources, the apparatus includes: a processing unit for discovering remote computing resources by means of external agents and external management systems; a processing unit for determining the characteristics of the discovered remote computing resources; a processing unit for sorting the characteristics into a hierarchy according to the source of the data; a processing unit for assigning control of particular remote computing resources to external agents or systems according to the hierarchy previously established; a processing unit for sorting the remote computing resources into pools according to these characteristics and predetermined rules; and a processing unit for further sorting of the remote computing resources into sub pools according to the state of that resource; wherein the processing units are embodied within one or more computer processing units in the form of executable software instructions.
[0018] In an additional embodiment, the present invention provides a management layer apparatus that manages remote computing resources, the apparatus includes: a processing unit for gathering meta-data describing a particular remote computing resource; and a processing unit for consolidating the meta-data within a central database such that a most accurate source of a particular variable is given highest prominence; wherein the processing units are embodied within one or more computer processing units in the form of executable software instructions. The apparatus further includes a processing unit using the meta-data to determine a most appropriate manner for controlling a remote computer resource. The apparatus further includes a processing unit using the meta-data so as to group one or more of the remote computer resources having equivalent properties into categories identified as pools. The apparatus further includes a processing unit that gathers the meta-data alongside user and client data and uses the meta-data and the user and client data so as to maintain the state of each remote computer resource.
Brief Description of the Drawings
[0019] Embodiments of the present invention will now be described, by way of example only, with reference to the attached Figures.
[0020] Figure 1 shows the overall network architecture in accordance with the present invention.
[0021] Figure 2 shows an example of the data gathered from three different sources and how they overlap.
[0022] Figure 3 shows an example of cascading pools with their associated hosted desktops (a particular type of remote computing resource).
[0023] Figure 4 shows an example of the possible states that a remote computer resource could have.
Detailed Description
[0024] Generally, the present invention provides a method and apparatus in the form of a management layer that collates and sorts information about remote computer resources in such a way that the most appropriate computer resource is assigned to a particular user or client device according to their needs and the remote computing resources available at that time. It should be understood that the most appropriate computer resource may be a computer resource including, but not limited to any computing mechanism such as a desktop or computing application. Accordingly, the term computer resource is intended to encompass both desktops and applications.
[0025] The management layer is embodied within one or more computer processing units in the form of executable software instructions. In addition, the present invention uses the data gathered to determine the most appropriate method for controlling the remote computer resource.
[0026] With regard to Figure 1 , an overall network architecture diagram in accordance with the present invention is shown. The end-user may be either a fat-client 6a, a thin-client 6b, or a web-client 6c (shown firewalled). A network management mechanism in the form of a connection broker (CB) 1 is operatively coupled between the client (thin, fat, or web) and a Hosted Desktop 8 that has been drawn either from Pool A 7a or Pool B 7b. Alternatively the remote computing resource may be a server hosted remote session 9, such as Microsoft Terminal Services.
[0027] The network 11 typically carries data using electrical signaling, optical signaling, wireless signaling, a combination thereof, or any other signaling method known to the networking art. Accordingly, it should be readily apparent that the network 11 can be a fixed channel telecommunications link such as a T1 , T3, or 56 kb line; local area network (LAN) or wide area network (WAN) links; a packet-switched network; a packet-switched network of networks such as the Internet; or any other network configuration known to the art. The network 11 typically carries data in a variety of protocols, including but not limited to: user datagram protocol (UDP), asynchronous transfer mode (ATM), X.25, and transmission control protocol (TCP).
[0028] Before a remote computer resource (Hosted Desktop 8, or Server Hosted
Remote Session 9) can be assigned to a user it has to be discovered by the Connection Broker. This discovery is done using either an Agent 2 (such as hosted desktop agents as shown and described in as United States Patent Application Serial No. 11/689,113 filed on 21 MARCH 2007 and titled MANAGEMENT LAYER METHOD AND APPARATUS FOR DYNAMIC ASSIGNMENT OF USERS TO COMPUTER RESOURCES which was published on 25 SEPTEMBER 2008 as United States Patent Application Publication 2008/0235361 and herein incorporated by reference), or a third party management system, such as an authentication system 3, or a virtualization management system 4. Such authentication system 3 or virtualization management system 4 are known within the art and are not therefore further described herein. As discussed above, the discovery resources are either an agent or from external management systems. It should also be understood that users may also specify resources, for example, by uploading data from a Comma Separated Value (CSV) file or by specifying IP addresses as a method for registering resources with the Connection Broker.
[0029] Once discovered, the remote computing resources are sorted into Pools
7a and 7b according to the characteristics of these resources. With regard to Figure 2 the Characteristics include, but are not limited to, the operating system running within the Hosted Desktop or Server Hosted Remote Session (Guest OS Type 8a, Windows Machine Name 8f, DNS Name 8h, Guest OS Service Pack Level 8g, Installed Applications 8j), the Hosted Desktop itself (Associated Template 8b, Resource Pool 8c, Snapshot State 8d), or the system user (User Login State 8e, or User Login Time 8k). As will be apparent to one of ordinary skill in the art, a variety of pools may also be formed by the number of Central Processing Units (CPUs) or Network Interface Controllers (NICs) as well as pools of memory or IP address characteristics. Each of these characteristics is obtained by querying one or more sources - so that the Guest OS Type 8a can be determined by querying either the Agent 2, the Authentication Server 3, or the Virtualization Management 4.
[0030] With regard to Figure 3 all remote computing resources are members of one or more pools. As such, Hosted Desktop (a particular type of remote computing resource) 8a is a member of Pool 7b, Pool 7c, and Pool 7d but not Pool 7b.
[0031] Resources available to users may of course vary among pools. When assigning a Hosted Desktop from Pool 7c to a user then Hosted Desktop 8a, 8b, or 8c would be appropriate. However, assigning Hosted Desktop 8c is a better use of resources than Hosted Desktops 8a or 8b because Hosted Desktop 8a or 8b can be substituted for 8c without loss of functionality for the user, while assigning Hosted Desktop 8c in place of 8a will result in an inferior match for that user and should only be made if the pool 7a is empty.
[0032] With regard to Figure 4 the remote computing resources always have a state. This is derived from the characteristics of the remote computing resources. So when a remote computing resource is first discovered, and before it has been assigned then it will be in the Unassigned Pool 20 in either a Stopped 31 , Running 32, or Suspended state 33. In addition to these states, it is sometimes possible that the Hosted Desktop can be in a particular snapshot state. A snapshot is a capture of that operating system and associated applications at a moment in time. Once a snapshot is taken then that Hosted Desktop can be returned to the moment when the snapshot is taken.
[0033] When there is an event such as a user logging into the Connection Broker then the Connection Broker determines which remote computer resource to offer to the user according to a predetermined set of rules. It should be understood that users can be defined as either unique or global across domains. Based on this setting, the Connection Broker can correctly identify a user with the same user name, as being either the same or different physical user, and assign resources appropriately. As well, resources can be assigned based on the user's location. In operation, if the remote computing resource only belongs to that user then they will always get it. If it is a shared resource then the Connection Broker will pick a particular remote computer resource from the more appropriate Pool according to the predetermined set of rules
and the meta-data associated with that resource. Offered remote computing resources are moved into the Offered 21 Pool which is a subset of the relevant Unassigned Pool 20.
[0034] The user can then select one or more of the offered computing resources.
The selected resources are then placed in the Not Logged In Pool 22, which is a subset of the Offered Pool 21.
[0035] It is useful to determine how to treat remote computing resources in the
Offered Pool 21. There is no guarantee that a user will pick any or all of the remote computing resources that they are offered. If they are assigned to a user as soon as they are offered then they will be unavailable for any other user. Equally if they are offered to several users at the same time (i.e., over allocated) then there is no guarantee that a user will get the remote computing resource that they desire.
[0036] In accordance with the present invention, it has been determined that a better approach is to allow over allocation along with intelligently picking and ranking the offered resources according to the meta-data associated with that resource. This is achieved by applying a weighting to each potential resource.
[0037] This process is further complicated by the fact that remote computing resources are not always completely stateless - in particular there is often a cache file stored within the permanent storage associated with the remote computing resource and this cache is tied to a particular user. So if a user is assigned the same remote computing resource from a pool of resources then that cache will not need to be flushed and recreated - improving the end user experience. Pooling in accordance with the present invention therefore provides for such improvement.
[0038] Once a remote computing resource has been picked by a user, and hence assigned, it becomes a member of the Assigned Pool 22, and more particularly a member of the Not Logged In Pool 23 then typically that user is automatically logged into the remote computing resource and the user is connected to that resource, hence that resource moves to the Logged In Connected Pool 24.
[0039] This logic is further complicated by the power state of the Hosted Desktop, so if a Hosted Desktop is stopped 21a or suspended 21 b then it is often an unnecessary waste of resources to start the Hosted Desktop 23c when offering it to the user. It is more efficient to select the running Hosted Desktops 21c before the suspended 21b or stopped 21a ones, but if there are no running ones left to offer the suspended or stopped ones but not to start them unless they are picked by the user.
[0040] The user can then be disconnected from the remote computing resource, either intentionally or due to a network failure without logging out of the session - in this case the resource moves to the Logged In Disconnected Pool 25.
[0041] The Hosted Desktop can be returned to the Not Logged In Pool 23 if the user logs out, or if an external event such as timer forces the user to be logged out.
[0042] In addition the Hosted Desktop can be released back to the unassigned pool 20 as a result of an event such as disconnecting or logging out 27, or a timer expiring 28.
Claims
1. A method of managing remote computing resources, said method comprising: discovering remote computing resources by means of external agents and external management systems;
determining the characteristics of the discovered remote computing resources; sorting the characteristics into a hierarchy according to the source of the data;
assigning control of particular remote computing resources to external agents or systems according to the hierarchy previously established; sorting the remote computing resources into pools according to these characteristics and predetermined rules; and further sorting of the remote computing resources into sub pools according to the state of that resource.
2. The method as claimed in Claim 1 , wherein said method forms a management layer embodied within one or more computer processing units in the form of executable software instructions.
3. A management layer apparatus that manages remote computing resources, said apparatus comprising: a processing unit for discovering remote computing resources by means of external agents and external management systems; a processing unit for determining the characteristics of the discovered remote computing resources; a processing unit for sorting the characteristics into a hierarchy according to the source of the data; a processing unit for assigning control of particular remote computing resources to external agents or systems according to the hierarchy previously established; a processing unit for sorting the remote computing resources into pools according to these characteristics and predetermined rules; and a processing unit for further sorting of the remote computing resources into sub pools according to the state of that resource; wherein said processing units are embodied within one or more computer processing units in the form of executable software instructions.
4. A method of managing remote computing resources, said method comprising: gathering meta-data describing a particular remote computing resource; and
consolidating said meta-data within a central database such that a most accurate source of a particular variable is given highest prominence.
5. The method as claimed in Claim 4 wherein said method further uses said metadata to determine a most appropriate manner for controlling a remote computer resource.
6. The method as claimed in Claim 5 wherein said method further uses said metadata so as to group one or more of said remote computer resources having equivalent properties into categories identified as pools.
7. The method as claimed in Claim 6 wherein said method further gathers said meta-data alongside user and client data and uses said meta-data and said user and client data so as to maintain the state of each remote computer resource.
8. A management layer apparatus that manages remote computing resources, said apparatus comprising: a processing unit for gathering meta-data describing a particular remote computing resource; and a processing unit for consolidating said meta-data within a central database such that a most accurate source of a particular variable is given highest prominence. wherein said processing units are embodied within one or more computer processing units in the form of executable software instructions.
9. The apparatus as claimed in Claim 8 further including a processing unit using said meta-data to determine a most appropriate manner for controlling a remote computer resource.
10. The apparatus as claimed in Claim 9 further including a processing unit using said meta-data so as to group one or more of said remote computer resources having equivalent properties into categories identified as pools.
11. The apparatus as claimed in Claim 10 further including a processing unit that gathers said meta-data alongside user and client data and uses said meta-data and said user and client data so as to maintain the state of each remote computer resource.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP09767772A EP2304590A4 (en) | 2008-06-20 | 2009-06-18 | Management layer method and apparatus for dynamic assignment of users to computer resources |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US7431908P | 2008-06-20 | 2008-06-20 | |
US61/074,319 | 2008-06-20 |
Publications (2)
Publication Number | Publication Date |
---|---|
WO2009155463A2 true WO2009155463A2 (en) | 2009-12-23 |
WO2009155463A3 WO2009155463A3 (en) | 2010-04-22 |
Family
ID=41434699
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2009/047860 WO2009155463A2 (en) | 2008-06-20 | 2009-06-18 | Management layer method and apparatus for dynamic assignment of users to computer resources |
Country Status (3)
Country | Link |
---|---|
US (1) | US20100011104A1 (en) |
EP (2) | EP2549387A1 (en) |
WO (1) | WO2009155463A2 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2782010A1 (en) * | 2013-03-19 | 2014-09-24 | STMicroelectronics (Grenoble 2) SAS | Hierarchical resource management |
US9317304B2 (en) | 2013-03-19 | 2016-04-19 | Stmicroelectronics (Grenoble 2) Sas | Launching multiple applications in a processor |
US9552477B2 (en) | 2013-03-19 | 2017-01-24 | Stmicroelectronics (Grenoble 2) Sas | Resource management in a processor |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8627328B2 (en) * | 2008-11-14 | 2014-01-07 | Oracle International Corporation | Operation control for deploying and managing software service in a virtual environment |
US9887872B2 (en) * | 2012-07-13 | 2018-02-06 | Microsoft Technology Licensing, Llc | Hybrid application environments including hosted applications and application servers for interacting with data in enterprise environments |
Family Cites Families (73)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2965987B2 (en) * | 1988-02-22 | 1999-10-18 | 株式会社日立製作所 | Data processing system |
US6513060B1 (en) * | 1998-08-27 | 2003-01-28 | Internetseer.Com Corp. | System and method for monitoring informational resources |
JP2000089916A (en) * | 1998-09-11 | 2000-03-31 | Fujitsu Ltd | File controller |
US6260090B1 (en) * | 1999-03-03 | 2001-07-10 | International Business Machines Corporation | Circuit arrangement and method incorporating data buffer with priority-based data storage |
US6385615B1 (en) * | 1999-05-21 | 2002-05-07 | Cisco Technology, Inc. | Communicating network information using universal resource locators |
US6732166B1 (en) * | 1999-05-28 | 2004-05-04 | Intel Corporation | Method of distributed resource management of I/O devices in a network cluster |
US6389429B1 (en) * | 1999-07-30 | 2002-05-14 | Aprimo, Inc. | System and method for generating a target database from one or more source databases |
AUPQ206399A0 (en) * | 1999-08-06 | 1999-08-26 | Imr Worldwide Pty Ltd. | Network user measurement system and method |
US7020697B1 (en) * | 1999-10-01 | 2006-03-28 | Accenture Llp | Architectures for netcentric computing systems |
WO2001063486A2 (en) * | 2000-02-24 | 2001-08-30 | Findbase, L.L.C. | Method and system for extracting, analyzing, storing, comparing and reporting on data stored in web and/or other network repositories and apparatus to detect, prevent and obfuscate information removal from information servers |
AU2001267779A1 (en) * | 2000-05-30 | 2001-12-11 | Koki Uchiyama | Distributed monitoring system providing knowledge services |
US20040268406A1 (en) * | 2001-09-20 | 2004-12-30 | Sparrell Carlton J. | Centralized resource manager with passive sensing system |
US7047253B1 (en) * | 2001-09-28 | 2006-05-16 | Oracle Interntional Corporation | Mechanisms for storing content and properties of hierarchically organized resources |
US7061391B2 (en) * | 2001-10-17 | 2006-06-13 | International Business Machines Corporation | Method, system, and program for monitoring a consumable resource used by a system |
JP3731525B2 (en) * | 2001-11-09 | 2006-01-05 | ソニー株式会社 | Information processing apparatus, information processing method, information processing system, and program |
US7114157B2 (en) * | 2001-11-27 | 2006-09-26 | Kuka Roboter Gmbh | System controlling exclusive access by control programs to system resources |
IL147073A0 (en) * | 2001-12-10 | 2002-08-14 | Monosphere Ltd | Method for managing the storage resources attached to a data network |
US20040083202A1 (en) * | 2002-08-30 | 2004-04-29 | Arkivio, Inc. | Techniques to control recalls in storage management applications |
CN1230737C (en) * | 2002-09-23 | 2005-12-07 | 华为技术有限公司 | Device data polling dispatching method |
US20040064558A1 (en) * | 2002-09-26 | 2004-04-01 | Hitachi Ltd. | Resource distribution management method over inter-networks |
US6885948B2 (en) * | 2002-12-19 | 2005-04-26 | Baseline Technologies, Inc. | Data management of pipeline datasets |
US20040243459A1 (en) * | 2003-01-24 | 2004-12-02 | Geritz William F. | System and method for automating business development |
US7882213B2 (en) * | 2003-06-03 | 2011-02-01 | Bmc Software, Inc. | Network management system to monitor managed elements |
US7082573B2 (en) * | 2003-07-30 | 2006-07-25 | America Online, Inc. | Method and system for managing digital assets |
US7562123B2 (en) * | 2003-09-05 | 2009-07-14 | Palo Alto Research Center Incorporated | Systems and methods for distributed group formation and maintenance in geographically based networks |
US20050060590A1 (en) * | 2003-09-16 | 2005-03-17 | International Business Machines Corporation | Power-aware workload balancing usig virtual machines |
US20060294219A1 (en) * | 2003-10-03 | 2006-12-28 | Kazuki Ogawa | Network system based on policy rule |
US7437730B2 (en) * | 2003-11-14 | 2008-10-14 | International Business Machines Corporation | System and method for providing a scalable on demand hosting system |
EP1741064A4 (en) * | 2004-03-23 | 2010-10-06 | Google Inc | A digital mapping system |
US20060069774A1 (en) * | 2004-06-17 | 2006-03-30 | International Business Machine Corporation | Method and apparatus for managing data center using Web services |
US8191068B2 (en) * | 2004-10-27 | 2012-05-29 | Nec Corporation | Resource management system, resource information providing method and program |
US7403945B2 (en) * | 2004-11-01 | 2008-07-22 | Sybase, Inc. | Distributed database system providing data and space management methodology |
US7590653B2 (en) * | 2005-03-02 | 2009-09-15 | Cassatt Corporation | Automated discovery and inventory of nodes within an autonomic distributed computing system |
US7805593B1 (en) * | 2005-03-24 | 2010-09-28 | Xilinx, Inc. | Real-time performance monitoring using a system implemented in an integrated circuit |
US7870256B2 (en) * | 2005-03-25 | 2011-01-11 | Hewlett-Packard Development Company, L.P. | Remote desktop performance model for assigning resources |
US7454586B2 (en) * | 2005-03-30 | 2008-11-18 | Intel Corporation | Memory device commands |
US7711916B2 (en) * | 2005-05-11 | 2010-05-04 | Oracle International Corporation | Storing information on storage devices having different performance capabilities with a storage system |
US7657624B2 (en) * | 2005-06-22 | 2010-02-02 | Hewlett-Packard Development Company, L.P. | Network usage management system and method |
US20060294412A1 (en) * | 2005-06-27 | 2006-12-28 | Dell Products L.P. | System and method for prioritizing disk access for shared-disk applications |
US20070022126A1 (en) * | 2005-07-21 | 2007-01-25 | Caterpillar Inc. | Method and apparatus for updating an asset catalog |
US7694082B2 (en) * | 2005-07-29 | 2010-04-06 | International Business Machines Corporation | Computer program and method for managing resources in a distributed storage system |
US8341345B2 (en) * | 2005-08-08 | 2012-12-25 | International Business Machines Corporation | System and method for providing content based anticipative storage management |
US8799431B2 (en) * | 2005-08-15 | 2014-08-05 | Toutvirtual Inc. | Virtual systems management |
US20070094061A1 (en) * | 2005-10-12 | 2007-04-26 | Jianying Hu | Method and system for predicting resource requirements for service engagements |
US8010701B2 (en) * | 2005-12-19 | 2011-08-30 | Vmware, Inc. | Method and system for providing virtualized application workspaces |
JP4605072B2 (en) * | 2006-01-17 | 2011-01-05 | 株式会社日立製作所 | Control device and information system control method |
US20070174111A1 (en) * | 2006-01-24 | 2007-07-26 | International Business Machines Corporation | Evaluating a performance of a customer support resource in the context of a peer group |
US20070213992A1 (en) * | 2006-03-07 | 2007-09-13 | International Business Machines Corporation | Verifying a usage of a transportation resource |
US8719816B2 (en) * | 2006-03-14 | 2014-05-06 | University Of Utah Research Foundation | Extendable framework for distributed applications and data |
US7490256B2 (en) * | 2006-04-04 | 2009-02-10 | Microsoft Corporation | Identifying a target processor idle state |
US8131838B2 (en) * | 2006-05-31 | 2012-03-06 | Sap Ag | Modular monitor service for smart item monitoring |
US8296413B2 (en) * | 2006-05-31 | 2012-10-23 | Sap Ag | Device registration in a hierarchical monitor service |
JP4847220B2 (en) * | 2006-06-07 | 2011-12-28 | キヤノン株式会社 | Data processing apparatus, control method therefor, program, and storage medium |
US20080028399A1 (en) * | 2006-07-26 | 2008-01-31 | Diwaker Gupta | System and method for attributing to a corresponding virtual machine CPU utilization of a network driver domain based on observed communication through a virtualized interface |
US8214838B2 (en) * | 2006-07-26 | 2012-07-03 | Hewlett-Packard Development Company, L.P. | System and method for attributing to a corresponding virtual machine CPU utilization of a network driver domain based on weighted communication |
US20080126406A1 (en) * | 2006-09-12 | 2008-05-29 | Endabetla Aruna S | Complexity management tool |
US8956290B2 (en) * | 2006-09-21 | 2015-02-17 | Apple Inc. | Lifestyle companion system |
US8019720B2 (en) * | 2006-10-02 | 2011-09-13 | Salesforce.Com, Inc. | Asynchronous method and system for performing an operation on metadata |
WO2008064602A1 (en) * | 2006-11-29 | 2008-06-05 | Yongmin Zhang | Method and system of group-to-group computing |
JP4884198B2 (en) * | 2006-12-19 | 2012-02-29 | 株式会社日立製作所 | Storage network performance management method, and computer system and management computer using the method |
US20080155091A1 (en) * | 2006-12-22 | 2008-06-26 | Parag Gokhale | Remote monitoring in a computer network |
US20080235361A1 (en) | 2007-03-21 | 2008-09-25 | David Crosbie | Management layer method and apparatus for dynamic assignment of users to computer resources |
CN101681382B (en) * | 2007-06-11 | 2012-12-26 | 三菱电机株式会社 | Navigation system |
US20080310305A1 (en) * | 2007-06-14 | 2008-12-18 | Apple Inc. | Interruption control |
US7865836B1 (en) * | 2007-07-27 | 2011-01-04 | The United States Of America As Represented By The Secretary Of The Navy | Geospatial prioritized data acquisition analysis and presentation |
US7894371B2 (en) * | 2007-07-31 | 2011-02-22 | Motorola, Inc. | System and method of resource allocation within a communication system |
EP2183669B1 (en) * | 2007-08-27 | 2014-05-28 | Correlsense Ltd. | Apparatus and method for tracking transaction related data |
US8156538B2 (en) * | 2007-12-18 | 2012-04-10 | Microsoft Corporation | Distribution of information protection policies to client machines |
US8244846B2 (en) * | 2007-12-26 | 2012-08-14 | Symantec Corporation | Balanced consistent hashing for distributed resource management |
US8548925B2 (en) * | 2008-01-15 | 2013-10-01 | Apple Inc. | Monitoring capabilities for mobile electronic devices |
US8275108B2 (en) * | 2008-02-26 | 2012-09-25 | International Business Machines Corporation | Hierarchal control of teleconferences |
US20090235267A1 (en) * | 2008-03-13 | 2009-09-17 | International Business Machines Corporation | Consolidated display of resource performance trends |
US8160078B2 (en) * | 2008-05-15 | 2012-04-17 | Telcordia Technologies, Inc. | Inter-local peer group (LPG) routing method |
-
2009
- 2009-06-18 US US12/487,602 patent/US20100011104A1/en not_active Abandoned
- 2009-06-18 EP EP12188638A patent/EP2549387A1/en not_active Withdrawn
- 2009-06-18 EP EP09767772A patent/EP2304590A4/en not_active Withdrawn
- 2009-06-18 WO PCT/US2009/047860 patent/WO2009155463A2/en active Application Filing
Non-Patent Citations (1)
Title |
---|
See references of EP2304590A4 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2782010A1 (en) * | 2013-03-19 | 2014-09-24 | STMicroelectronics (Grenoble 2) SAS | Hierarchical resource management |
US9317304B2 (en) | 2013-03-19 | 2016-04-19 | Stmicroelectronics (Grenoble 2) Sas | Launching multiple applications in a processor |
US9529627B2 (en) | 2013-03-19 | 2016-12-27 | Stmicroelectronics (Grenoble 2) Sas | Managing multiple systems in a computer device |
US9552477B2 (en) | 2013-03-19 | 2017-01-24 | Stmicroelectronics (Grenoble 2) Sas | Resource management in a processor |
US10140958B2 (en) | 2013-03-19 | 2018-11-27 | Stmicroelectronics (Grenoble 2) Sas | Managing multiple systems in a computer device |
Also Published As
Publication number | Publication date |
---|---|
WO2009155463A3 (en) | 2010-04-22 |
EP2549387A1 (en) | 2013-01-23 |
US20100011104A1 (en) | 2010-01-14 |
EP2304590A2 (en) | 2011-04-06 |
EP2304590A4 (en) | 2012-04-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11882017B2 (en) | Automated route propagation among networks attached to scalable virtual traffic hubs | |
US11121982B2 (en) | Virtual computing services deployment network | |
CN1175619C (en) | Load balancing in distributed enterprise computer environment | |
US10834044B2 (en) | Domain name system operations implemented using scalable virtual traffic hub | |
US10797989B2 (en) | Scalable virtual traffic hub interconnecting isolated networks | |
EP1323037B1 (en) | Method and apparatus for controlling an extensible computing system | |
Nurmi et al. | The eucalyptus open-source cloud-computing system | |
US9628328B2 (en) | Network controller with integrated resource management capability | |
JP5039947B2 (en) | System and method for distributing virtual input / output operations across multiple logical partitions | |
US8370481B2 (en) | Inventory management in a computing-on-demand system | |
JP5089990B2 (en) | Method and system for a grid-enabled virtual machine with movable objects | |
CN102479099B (en) | Virtual machine management system and use method thereof | |
JP4712279B2 (en) | Method and apparatus for controlling extensible computing system | |
US10785146B2 (en) | Scalable cell-based packet processing service using client-provided decision metadata | |
US20110055398A1 (en) | Methods and systems for flexible cloud management including external clouds | |
WO2017117086A1 (en) | Management of virtual desktop instance pools | |
EP3507692A1 (en) | Resource oversubscription based on utilization patterns in computing systems | |
US20060200469A1 (en) | Global session identifiers in a multi-node system | |
EP2549387A1 (en) | Management layer method and apparatus for dynamic assignment of users to computer resources | |
CN112256439B (en) | Service directory dynamic updating system and method based on cloud computing resource pool | |
CN113452806A (en) | Container adaptation SDN network management method and system based on Kubernetes system | |
CN1625109A (en) | Method and apparatus for virtualizing network resources | |
CN107273044A (en) | Method, electronic equipment and the storage medium of the automatic carry disk of logical partition | |
Corradi et al. | Dynamic load distribution in massively parallel architectures: the parallel objects example | |
EP4283954A1 (en) | Computing power information processing method, first network device, and system |
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: 09767772 Country of ref document: EP Kind code of ref document: A2 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2009767772 Country of ref document: EP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |