A system and a method dynamically adjusts the quality of service guarantees for virtual servers based upon the resource demands experienced by the virtual servers. virtual server resource denials are monitored to determine if a virtual server is overloaded based upon the resource denials. virtual server resources are modified dynamically to respond to the changing resource requirements of each virtual server. Occasionally, a physical host housing a virtual server may not have additional resources to allocate to a virtual server requiring increased resources. In this instance, a virtual server hosted by the overloaded physical host is transferred to another physical host with sufficient resources.

Patent
   RE44686
Priority
May 11 2000
Filed
Sep 19 2011
Issued
Dec 31 2013
Expiry
May 11 2020

TERM.DISCL.
Assg.orig
Entity
Large
11
148
all paid
0. 5. A method performed by a computing device, having a processor and memory, for modifying the computer resources allocated to a virtual server operating in a first physical host of multiple physical hosts, comprising:
receiving an indication that a first physical host is overloaded, wherein the indication is based on a determination that a virtual server is overloaded and wherein the determination that a virtual server is overloaded is based on one or more resource unavailable messages resulting from denied requests to modify a resource allocation;
determining that a second physical host can accommodate the requested modified resource allocation; and
generating a physical host transfer signal that indicates the second physical host and transferring the virtual server from the first physical host to the second physical host.
0. 7. A system for modifying the computer resources allocated to a virtual server operating in a first physical host of multiple physical hosts, the system comprising:
one or more processors and one or more memories;
a component configured to receive an indication that a first physical host is overloaded, wherein the indication is based on a determination that a virtual server is overloaded and wherein the determination that a virtual server is overloaded is based on one or more resource unavailable messages resulting from denied requests to modify a resource allocation;
a component configured to determine that a second physical host can accommodate the requested modified resource allocation; and
a component configured to generate a physical host transfer signal that indicates a second physical host and to transfer the virtual server from the first physical host to the second physical host if the first physical host is overloaded.
0. 6. A computer-readable storage device storing instructions that, when executed by a computing device, cause the computing device to perform operations configured to modify computer resources allocated to a virtual server operating in a first physical host of multiple physical hosts, the operations comprising:
receiving an indication that a first physical host is overloaded, wherein the indication is based on a determination that a virtual server is overloaded and wherein the determination that a virtual server is overloaded is based on one or more resource unavailable messages resulting from denied requests to modify a resource allocation;
determining that a second physical host can accommodate the requested modified resource allocation; and
generating a physical host transfer signal that indicates the second physical host and transferring the virtual server from the first physical host to the second physical host if the first physical host is overloaded.
0. 1. A network system for dynamically modifying the computer resources allocated to a virtual server, the network system comprising a plurality of physical hosts, the virtual server operating in a first physical host, the computer resources allocated to the virtual server being specified as a quality of service guarantee, the network system comprising:
a virtual server resource monitor communicatively coupled to the first physical host and configured to monitor resource denials and to send a virtual server overloaded signal in response to the resource denials;
a virtual server resource modifier communicatively coupled to the first physical host and configured to receive the virtual server overloaded signal and, in response to the virtual server overloaded signal, to modify a resource allocation for the virtual server and to send a virtual server resource modification signal;
a load balancing module communicatively coupled to the plurality of physical hosts and configured to receive the virtual server resource modification signal and to determine whether the first physical host is overloaded and, in response to a determination that the first physical host is overloaded, to send a physical host transfer signal that indicates a second physical host; and
a dynamic virtual server mover communicatively coupled to the plurality of physical hosts and configured to receive the physical host transfer signal and, in response to the physical host transfer signal, to transfer the virtual server from the first physical host to the second physical host.
0. 2. The network system of claim 1, further comprising a file system communicatively coupled to the plurality of physical hosts and configured to store virtual server system files.
0. 3. The network system of claim 2, wherein the dynamic virtual server mover is further configured to direct the first physical host to store, in the file system, a set of system files for the virtual server and to direct the second physical host to access, from the file system, the set of system files for the virtual server, thereby transferring the virtual server from the first physical host to the second physical host.
0. 4. A computer program product to be executed in a computer for dynamically modifying the computer resources allocated to a virtual server operating in a first physical host in a network system, the network system comprising a plurality of physical hosts, the computer resources allocated to the virtual server being specified as a quality of service guarantee, the computer program product comprising:
program code for creating a virtual server resource monitor communicatively coupled to the first physical host and configured to monitor resource denials and, in response to the resource denials, to send a virtual server overloaded signal;
program code for creating a virtual server resource modifier communicatively coupled to the first physical host and configured to receive the virtual server overloaded signal and, in response to the virtual server overloaded signal, to modify a resource allocation for the virtual server and to send a virtual server resource modification signal;
program code for creating a load balancing module communicatively coupled to the plurality of physical hosts and configured to receive the virtual server resource modification signal and to determine whether the first physical host is overloaded and, in response to a determination that the first physical host is overloaded, to send a physical host transfer signal that indicates a second physical host; and
program code for creating a dynamic virtual server mover communicatively coupled to the plurality of physical hosts and configured to receive the physical host transfer signal and, in response to the physical host transfer signal, to transfer the virtual server from the first physical host to the second physical host.

In one embodiment, a “jumping-window” technique is used. The jumping-window technique measures the number of resource denials a received in consecutive windows of time length t. A new time interval t starts immediately after the end of the last time interval t. In another embodiment, a “moving-window” technique is used. The moving-window technique measures the number of resource denials a received in a continuously moving window of time length t. In the moving-windows technique, all windows of time length t are measured.

The virtual server resource monitor 110 checks 340 if the metric a(t) calculated is beyond the pre-specified threshold T. This determination is made individually for each type of resource denial signal (340A, 340B, 340C and 340D), and need not be made simultaneously. Each different type of resource denial signal 312 may have a different pre-specified threshold T.

If the metric a(t) representing the average resource denial rate does not exceed the threshold T, the method continues to calculate a(t) 330 so that resource denials are continuously monitored. Using the jumping-window technique, after the next consecutive time interval t passes, the method will again check 340 if a(t)>T. Using the moving-windows technique, a continuous loop of steps 330 and 340 is used to measure each continuously-moving window of time t. In another embodiment, a pre-specified schedule for repeating calculating mean resource denials 330 and checking 340 if the threshold T has been exceeded can be established to limit the amount of processing required by the virtual server resource monitor 110.

However, if the metric a(t) does exceed the threshold T, a “resource overloaded” signal is sent 350 to the virtual server resource modifier 120. Each type of resource denial signal 312 has an associated resource overloaded signal. FIG. 3 shows four examples of resource overloaded signals: disk resource overloaded signal 350A, memory resource overloaded signal 350B, network resource overloaded signal 350C, and CPU resource overloaded signal 350D. It is to be understood that there may be many other types of signals indicating an overloaded resource. The examples shown herein are used purely for illustrative purposes.

FIG. 4 shows a flowchart of an embodiment of a method for determining when to increase or decrease a particular resource allocation within a virtual server. The virtual server resource modifier 120 performs the method shown in FIG. 4. A separate analysis using the method of FIG. 4 is performed for each type of resource being monitored.

The modifier 120 waits 410 to receive a resource overloaded signal 350 from the virtual server resource monitor 110. When a resource overloaded signal 350 is received, the modifier 120 checks 420 to determine whether the signal 350 falls within a pre-specified “hysteresis time window” H. The hysteresis time window H check 420 damps the modifier 120 system to avoid rapid changes in the system state. For example, in a situation in which a virtual server has overloaded its existing memory resource allocation, the virtual server may attempt to access memory repeatedly before the memory resource allocation is increased. Each memory access attempt may generate a memory resource overloaded signal 350B. The modifier 120 only needs to respond to one of these signals. The hysteresis time window H check 420 avoids repetitive responses to resource overloaded messages. Thus, the modifier 120 checks 420 whether the most recently received resource overloaded signal 350 (received at T1) is close in time (within the hysteresis time window H) to a previously received resource overloaded signal 350 (received at T0) for a particular resource:
T1−T0<H?

If the recent and previous resource overloaded signals have occurred close enough in time to fall within the pre-specified hysteresis time window H, no further action will be taken and the modifier 120 returns and waits 410 to receive another resource overloaded signal 350. If the current resource overloaded message is not received within the hysteresis time window H, the modifier 120 proceeds to increase 430 the virtual server resource allocation.

The resource allocation for a particular overloaded resource is increased 430 by a pre-specified amount i. Amount i may be specified as a certain percentage of the resources of a physical host, or alternatively amount i may be specified as a certain number of resource units. Amount i may also be specified as a certain percentage of each particular virtual server's current resource allocation, e.g. increase a resource by 5% of its current value. After a particular resource has been increased the modifier 120 sets 440 a timer for a pre-specified time period.

When the timer expires, the modifier 120 determines 450 if the recently increased resource is being fully utilized. In one embodiment, a resource is fully utilized if a corresponding resource denial signal has been received within the timer period 440 after the resource was increased.

If the resource is determined 450 to be fully utilized, the modifier 120 returns and waits 410 for an overloaded signal. However, if it is determined that the resource is not being fully utilized, the modifier 120 decreases 460 the resource by a pre-specified amount d. Amount d may be specified as a certain percentage of the resources of a physical host, or amount d may be specified as a certain number of resource units. Amount d may also be specified as a certain percentage of each particular virtual server's current resource allocation, e.g. decrease a resource by 10% of its current value.

In one embodiment, d (the resource decreases amount) is larger than i (the resource increase amount). This allows unused resources to be decreased aggressively, but overloaded resources to be increased cautiously. In another embodiment, d and i are set such that the resource allocation is increased and decreased by equal amounts. For example, assume that the increase in virtual server resources i is specified as a percentage of each virtual server's current resource allocation. The decrease in virtual server resources d is specified as d=1−(1/1+i), which returns the resource allocation to its previous level. Once the resource reaches a fully utilized state, the modifier 120 then returns to waiting 410.

FIG. 5 shows a block diagram of an embodiment of a process for performing resource load balancing among physical hosts, in the context of a working example of overloaded physical host 160A. The physical host load balancer 130 periodically monitors the resource usage of a group of physical hosts 160 (160A, 160B and 160C) and transfers virtual servers to different ones of these physical hosts 160 in order to balance the resource loads between the physical hosts 160. Requests to increase virtual server resource allocations are also sent to the physical host load balancer 130 in order to assist in the balancing of physical host 160 resource loads. This process is next explained by example.

In this example, physical host load balancing module 130 receives a signal 510 from the virtual server resource modifier 120 indicating that virtual server 162B requires an increased resource allocation. This signal is used as an input 520 into the load-balancing calculator 530. The load-balancing calculator 530 also requests and receives as input the current physical host resource loads 535 from the physical host resource monitor 540.

The physical host resource monitor 540 performs periodic physical host resource checks 545 upon the group of physical hosts 160 (160A, 160B and 160C). Resource checks 545 monitor the current virtual server resource guarantees in each quality of service table for each physical host 160.

The load-balancing calculator 530 determines whether a virtual server's request for additional resources 510 will overload the particular physical host currently hosting the virtual server. Using the example shown in FIG. 5, the load-balancing calculator 530 determines whether physical host 160A is capable of supporting the request for additional virtual server 162B resources 510. If the resource request 510 exceeds the available resources of physical host 160A, the load-balancing calculator 530 determines that physical host 160A is overloaded.

In one embodiment, the load-balancing calculator 530 uses an easiest fit heuristic to find the physical host that has the most available resources. Each different type of resource is associated with an ordinal and a weight. The ith resource Ri has ordinal i and weight wi. For example, resource R1 represents disk resources, R2 represents memory resources, R3 represents network resources and R4 represents CPU resources. The weights for each respective resource are determined by the system operator.

Let Ri(V) denote the resource requirement of the virtual server under consideration, e.g. virtual server 162B, including the requested resource increase from signal 510. Let Ri(Sj) denote the resource availability at the jth physical host. The load-balancing calculator 530 computes the weighted resource availability of physical host j as the sum over i:

i w i * ( R i ( S j ) - R i ( V ) )

Using the easiest fit heuristic, the load-balancing calculator 530 will select the physical host with the largest weighted resource availability to receive the virtual server 162B (in the example of FIG. 5, physical host 160B). The choice of physical host 160B is subject to the constraint that the selected physical host 160B has sufficient resources to meet the resource demands of virtual server 162B. The load-balancing calculator 530 sends 550 a signal 560 to the dynamic virtual server mover 140 indicating that virtual server 162B is to be transferred to physical host 160B.

It will be understood by one of skill in the art that load-balancing calculator 530 may use other criteria for selecting which virtual server to transfer out of an overloaded physical host. In the embodiment given above, the load balancing calculator 530 transfers the virtual server that has most recently requested additional resources. However, in another embodiment, the load balancing calculator could select, for example, the smallest virtual server within an overloaded physical host for transfer, regardless of which virtual server has recently made a request for increased resources.

FIG. 6 is a flowchart of an embodiment of the process for transferring a virtual server from one physical host to another physical host. The dynamic virtual server mover 140 directs the process of FIG. 6. This process is next explained by example.

In this example, virtual server 162B is transferred from old physical host 160A to new physical host 160B. The mover 140 waits 610 to receive a transfer virtual server signal 560. The mover 140 receives a signal 560 directing the transfer of virtual server 162B from physical host 160A to physical host 160B. The mover 140 directs physical host 160A to store 620 local state information associated with virtual server 162B in the file system 150. As shown in FIG. 1, file system 150 is commonly accessible from physical hosts 160A, 160B and 160C.

Mover 140 next directs physical host 160A to stop 630 local processes associated with the virtual server being moved, e.g. virtual server 162B. Mover 140 directs physical host 160B to access 640 the virtual server 162B state information stored in file system 150. Mover 140 directs physical host 160B to start 650 processes associated with virtual server 162B locally. This enables virtual server 162B to begin running locally in physical host 160B. The user of virtual server 162B is then transferred 660 from physical host 160A to physical host 160B by transferring the virtual server 162B address to the new physical host 160B. As explained previously, the mover 140 may use either “make, then break” timing or “break, then make” timing for the transfer process. Although the invention has been described in considerable detail with reference to certain embodiments, other embodiments are possible. As will be understood by those of skill in the art, the invention may be embodied in other specific forms without departing from the essential characteristics thereof. For example, the dynamic resource configuration module may support different numbers of physical hosts. Additionally, different fitting heuristic methods may be used to select physical hosts for receiving transferred virtual servers during load balancing among the physical hosts. Accordingly, the present invention is intended to embrace all such alternatives, modifications, and variations as fall within the spirit and scope of the appended claims and equivalents.

Sharma, Rosen, Keshav, Srinivasan, Chuang, Shaw

Patent Priority Assignee Title
10601740, Apr 03 2019 Progressive Casualty Insurance Company Chatbot artificial intelligence
10819702, Mar 28 2017 HEWLETT-PACKARD DEVELOPMENT COMPANY, L P Methods and systems for providing wake-on-demand access to session servers
11188368, Oct 31 2018 Nutanix, Inc. Asynchronous workload migration control
11194620, Oct 31 2018 Nutanix, Inc. Virtual machine migration task management
11671421, Mar 28 2017 HEWLETT-PACKARD DEVELOPMENT COMPANY, L P Methods and systems for providing wake-on-demand access to session servers
12107849, Mar 28 2017 HEWLETT-PACKARD DEVELOPMENT COMPANY, L P Methods and systems for providing wake-on-demand access to session servers
9400689, Sep 08 2014 International Business Machines Corporation Resource allocation/de-allocation and activation/deactivation
9405581, Sep 08 2014 International Business Machines Corporation Resource allocation/de-allocation and activation/deactivation
9680920, Sep 08 2014 International Business Machines Corporation Anticipatory resource allocation/activation and lazy de-allocation/deactivation
9686347, Sep 08 2014 International Business Machines Corporation Anticipatory resource allocation/activation and lazy de-allocation/deactivation
9880884, Sep 08 2014 International Business Machines Corporation Resource allocation/de-allocation and activation/deactivation
Patent Priority Assignee Title
3377624,
4177510, Nov 30 1973 Compagnie Internationale pour l'Informatique, CII Honeywell Bull Protection of data in an information multiprocessing system by implementing a concept of rings to represent the different levels of privileges among processes
5189667, Mar 01 1990 Kabushiki Kaisha Toshiba Method and apparatus for controlling call processing based upon load conditions
5212793, Sep 04 1991 International Business Machines Corporation Generic initiators
5226160, Jul 18 1989 Visage Method of and system for interactive video-audio-computer open architecture operation
5249290, Feb 22 1991 AT&T Bell Laboratories Method of and apparatus for operating a client/server computer network
5263147, Mar 01 1991 Hughes Training, Inc. System for providing high security for personal computers and workstations
5325530, Jan 29 1993 International Business Machines Corporation Controller for sequential programming tools executed in a parallel computing environment
5437032, Nov 04 1993 International Business Machines Corporation Task scheduler for a miltiprocessor system
5528753, Jun 30 1994 International Business Machines Corporation System and method for enabling stripped object software monitoring in a computer system
5572680, Dec 18 1992 Fujitsu Limited Method and apparatus for processing and transferring data to processor and/or respective virtual processor corresponding to destination logical processor number
5584023, Dec 27 1993 OMNISECURE, INC Computer system including a transparent and secure file transform mechanism
5603020, Oct 08 1993 Fujitsu Limited Method for detecting file names by informing the task of the identification of the directory antecedent to the file
5623492, Mar 24 1995 Qwest Communications International Inc Methods and systems for managing bandwidth resources in a fast packet switching network
5636371, Jun 07 1995 Bull HN Information Systems Inc.; BULL HN INFORMATION SYSTEMS INC Virtual network mechanism to access well known port application programs running on a single host system
5640595, Jun 29 1993 International Business Machines Corporation Multimedia resource reservation system with graphical interface for manual input of resource reservation value
5692047, Dec 08 1995 Oracle America, Inc System and method for executing verifiable programs with facility for using non-verifiable programs from trusted sources
5706097, Sep 13 1996 Eastman Kodak Company Index print with a digital recording medium containing still images, motion sequences, and sound sequences
5706453, Feb 06 1995 Intelligent real-time graphic-object to database linking-actuator for enabling intuitive on-screen changes and control of system configuration
5708774, Jul 23 1996 International Business Machines Corporation Automated testing of software application interfaces, object methods and commands
5719854, Nov 23 1994 Alcatel-Lucent USA Inc Efficiently providing multiple grades of service with protection against overloads in shared resources
5727203, Mar 31 1995 Sun Microsystems, Inc. Methods and apparatus for managing a database in a distributed object operating environment using persistent and transient cache
5748614, Jun 09 1995 Siemens Aktiengesellschaft Method for scheduling message cells leaving an ATM node
5752003, Jul 14 1995 HEWLETT-PACKARD DEVELOPMENT COMPANY, L P Architecture for managing traffic in a virtual LAN environment
5761477, Dec 04 1995 Microsoft Technology Licensing, LLC Methods for safe and efficient implementations of virtual machines
5764889, Sep 26 1996 International Business Machines Corporation Method and apparatus for creating a security environment for a user task in a client/server system
5781550, Feb 02 1996 Hewlett Packard Enterprise Development LP Transparent and secure network gateway
5799173, Jul 25 1994 International Business Machines Corporation Dynamic workload balancing
5809527, Dec 23 1993 Unisys Corporation Outboard file cache system
5828893, Dec 24 1992 Freescale Semiconductor, Inc System and method of communicating between trusted and untrusted computer systems
5838686, Apr 22 1994 Thomson Consumer Electronics, Inc. System for dynamically allocating a scarce resource
5838916, Mar 14 1996 RPX CLEARINGHOUSE LLC Systems and methods for executing application programs from a memory device linked to a server
5842002, Jun 01 1994 Quantum Leap Innovations, Inc. Computer virus trap
5845129, Mar 22 1996 Philips Electronics North America Corporation; Philips Electronics North America Corp Protection domains in a single address space
5850399, Mar 27 1998 RPX Corporation Hierarchical packet scheduling method and apparatus
5860004, Jul 03 1996 Oracle America, Inc Code generator for applications in distributed object systems
5864683, Oct 12 1994 McAfee, LLC System for providing secure internetwork by connecting type enforcing secure computers to external network for limiting access to data based on user and process access rights
5889956, Jul 18 1996 FUJITSU LIMITED, A JAPANESE CORPORATION Hierarchical resource management with maximum allowable allocation boundaries
5889996, Dec 16 1996 Oracle International Corporation Accelerator for interpretive environments
5892968, Oct 16 1995 GOOGLE LLC Multimedia data transferring method
5905730, Mar 27 1998 RPX Corporation High speed packet scheduling method and apparatus
5905859, Jan 09 1997 TREND MICRO INCORPORATED Managed network device security method and apparatus
5913024, Feb 09 1996 McAfee, LLC Secure server utilizing separate protocol stacks
5915085, Feb 28 1997 International Business Machines Corporation; IBM Corporation Multiple resource or security contexts in a multithreaded application
5915095, Aug 08 1995 RPX Corporation Method and apparatus for balancing processing requests among a plurality of servers based on measurable characteristics off network node and common application
5918018, Feb 09 1996 McAfee, LLC System and method for achieving network separation
5920699, Nov 07 1996 Hewlett Packard Enterprise Development LP Broadcast isolation and level 3 network switch
5933603, Oct 27 1995 EMC Corporation Video file server maintaining sliding windows of a video data set in random access memories of stream server computers for immediate video-on-demand service beginning at any specified location
5937159, Mar 28 1997 DATA GENERAL CORP Secure computer system
5956481, Feb 06 1997 Microsoft Technology Licensing, LLC Method and apparatus for protecting data files on a computer from virus infection
5961583, Nov 22 1996 International Business Machines Corporation Method and system for using the event wait list anchor as a lock for events
5978373, Jul 11 1997 AG COMMUNICATION SYSTEMS CORPORATION, A CORPORATION OF DELAWARE Wide area network system providing secure transmission
5982748, Oct 03 1996 AVAYA Inc Method and apparatus for controlling admission of connection requests
5987524, Apr 17 1997 Fujitsu Limited Local area network system and router unit
5991812, Jan 24 1997 FONEWEB, INC Methods and apparatus for fair queuing over a network
5999963, Nov 07 1997 Alcatel Lucent Move-to-rear list scheduling
6016318, Jul 12 1996 NEC Corporation Virtual private network system over public mobile data network and virtual LAN
6018527, Aug 13 1996 RPX CLEARINGHOUSE LLC Queue service interval based cell scheduler with hierarchical queuing configurations
6023721, May 14 1997 Citrix Systems, Inc. Method and system for allowing a single-user application executing in a multi-user environment to create objects having both user-global and system global visibility
6038608, Nov 25 1996 NEC Corporation Virtual LAN system
6038609, Apr 04 1997 Telefonaktiebolaget LM Ericsson Method, communication network and service access interface for communications in an open system interconnection environment
6047325, Oct 24 1997 Network device for supporting construction of virtual local area networks on arbitrary local and wide area computer networks
6055617, Aug 29 1997 International Business Machines Corporation Virtual address window for accessing physical memory in a computer system
6061349, Nov 03 1995 Cisco Technology, Inc System and method for implementing multiple IP addresses on multiple ports
6065118, Aug 09 1996 Citrix Systems, Inc Mobile code isolation cage
6075791, Oct 28 1997 WSOU Investments, LLC System for guaranteeing data transfer rates and delays in packet networks
6075938, Jun 10 1997 The Board of Trustees of the Leland Stanford Junior University Virtual machine monitors for scalable multiprocessors
6078929, Jun 07 1996 DROPBOX, INC Internet file system
6078957, Nov 20 1998 CHECK POINT SOFTWARE TECHNOLOGIES INC Method and apparatus for a TCP/IP load balancing and failover process in an internet protocol (IP) network clustering system
6086623, Jun 30 1997 Oracle America, Inc Method and implementation for intercepting and processing system calls in programmed digital computer to emulate retrograde operating system
6092178, Sep 03 1998 Oracle America, Inc System for responding to a resource request
6094674, May 06 1994 Hitachi, Ltd. Information processing system and information processing method and quality of service supplying method for use with the system
6101543, Oct 25 1996 Hewlett Packard Enterprise Development LP Pseudo network adapter for frame capture, encapsulation and encryption
6108701, Jul 20 1998 THE CHASE MANHATTAN BANK, AS COLLATERAL AGENT Soft switch extension for internet protocol applications
6108759, Feb 23 1995 ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE Manipulation of partitions holding advanced file systems
6122673, Jul 22 1998 Ericsson AB Port scheduler and method for scheduling service providing guarantees, hierarchical rate limiting with/without overbooking capability
6154776, Mar 20 1998 Oracle America, Inc Quality of service allocation on a network
6154778, May 19 1998 Hewlett Packard Enterprise Development LP Utility-based multi-category quality-of-service negotiation in distributed systems
6161139, Jul 10 1998 ENTRUST, INC Administrative roles that govern access to administrative functions
6167520, Nov 08 1996 FINJAN LLC System and method for protecting a client during runtime from hostile downloadables
6172981, Oct 30 1997 International Business Machines Corporation Method and system for distributing network routing functions to local area network stations
6189046, Mar 27 1997 Hewlett Packard Enterprise Development LP Mechanism and method for merging cached location information in a distributed object environment
6192389, Mar 28 1997 International Business Machines Corporation Method and apparatus for transferring file descriptors in a multiprocess, multithreaded client/server system
6192512, Sep 24 1998 TREND MICRO INCORPORATED Interpreter with virtualized interface
6230203, Oct 20 1995 Scientific-Atlanta, LLC System and method for providing statistics for flexible billing in a cable environment
6240463, Nov 24 1998 Lucent Technologies Inc Router placement methods and apparatus for designing IP networks with performance guarantees
6247057, Oct 22 1998 Microsoft Technology Licensing, LLC Network server supporting multiple instance of services to operate concurrently by having endpoint mapping subsystem for mapping virtual network names to virtual endpoint IDs
6259699, Dec 30 1997 WSOU Investments, LLC System architecture for and method of processing packets and/or cells in a common switch
6266678, Dec 31 1998 GOOGLE LLC System and method for dynamically viewing contents of a data file
6269404, Jul 14 1995 HEWLETT-PACKARD DEVELOPMENT COMPANY, L P Virtual network architecture for connectionless LAN backbone
6279039, Apr 03 1996 NCR Voyix Corporation Resource management method and apparatus for maximizing multimedia performance of open systems
6279040, Dec 06 1995 Industrial Technology Research Institute Scalable architecture for media-on demand servers
6282581, Mar 27 1997 Hewlett-Packard Company; HEWLETT-PACKARD DEVELOPMENT COMPANY, L P ; Agilent Technologies, Inc Mechanism for resource allocation and for dispatching incoming calls in a distributed object environment
6282703, Oct 29 1998 International Business Machines Corporation Statically linking an application process with a wrapper library
6286047, Sep 10 1998 Viavi Solutions Inc Method and system for automatic discovery of network services
6298479, May 29 1998 Oracle America, Inc Method and system for compiling and linking source files
6314558, Aug 27 1996 JPMORGAN CHASE BANK, N A , AS SUCCESSOR AGENT Byte code instrumentation
6327622, Sep 03 1998 Oracle America, Inc Load balancing in a network environment
6336138, Aug 25 1998 Hewlett Packard Enterprise Development LP Template-driven approach for generating models on network services
6351775, May 30 1997 SAP SE Loading balancing across servers in a computer network
6353616, May 21 1998 Lucent Technologies Inc Adaptive processor schedulor and method for reservation protocol message processing
6363053, Feb 08 1999 UNILOC 2017 LLC Method and apparatus for measurement-based conformance testing of service level agreements in networks
6370583, Aug 17 1998 HEWLETT-PACKARD DEVELOPMENT COMPANY, L P Method and apparatus for portraying a cluster of computer systems as having a single internet protocol image
6381228, Jan 15 1999 Northrop Grumman Systems Corporation Onboard control of demand assigned multiple access protocol for satellite ATM networks
6385638, Sep 04 1997 HANGER SOLUTIONS, LLC Processor resource distributor and method
6389448, Dec 06 1999 WARP Solutions, Inc.; WARP SOLUTIONS, INC System and method for load balancing
6393484, Apr 12 1999 International Business Machines Corp. System and method for controlled access to shared-medium public and semi-public internet protocol (IP) networks
6425003, Jan 22 1999 Cisco Technology, Inc Method and apparatus for DNS resolution
6430622, Sep 22 1999 International Business Machines Corporation Methods, systems and computer program products for automated movement of IP addresses within a cluster
6434631, Oct 15 1999 WSOU Investments, LLC Method and system for providing computer storage access with quality of service guarantees
6434742, May 10 1999 Alcatel Lucent Symbol for automatically renaming symbols in files during the compiling of the files
6438134, Aug 19 1998 Alcatel-Lucent Canada Inc Two-component bandwidth scheduler having application in multi-class digital communications systems
6442164, Jun 03 1999 Fujitsu Limited Method and system for allocating bandwidth and buffer resources to constant bit rate (CBR) traffic
6449652, Jan 04 1999 EMC IP HOLDING COMPANY LLC Method and apparatus for providing secure access to a computer system resource
6457008, Aug 28 1998 Oracle International Corporation Pluggable resource scheduling policies
6463459, Jan 22 1999 JPMORGAN CHASE BANK, N A , AS SUCCESSOR AGENT System and method for executing commands associated with specific virtual desktop
6470398, Aug 21 1996 HEWLETT-PACKARD DEVELOPMENT COMPANY, L P Method and apparatus for supporting a select () system call and interprocess communication in a fault-tolerant, scalable distributed computer environment
6487578, Sep 29 1997 Intel Corporation Dynamic feedback costing to enable adaptive control of resource utilization
6487663, Oct 19 1998 Intel Corporation System and method for regulating the transmission of media data
6490670, Apr 24 1998 International Business Machines Corporation Method and apparatus for efficiently allocating objects in object oriented systems
6499137, Oct 02 1998 Microsoft Technology Licensing, LLC Reversible load-time dynamic linking
6529950, Jun 17 1999 International Business Machines Corporation Policy-based multivariate application-level QoS negotiation for multimedia services
6529985, Feb 04 2000 CUFER ASSET LTD L L C Selective interception of system calls
6542167, Jan 28 2000 WIND RIVER SYSTEMS, INC System and method for flexible software linking
6553413, Jul 14 1998 Massachusetts Institute of Technology Content delivery network using edge-of-network servers for providing content delivery to a set of participating content providers
6560613, Feb 08 2000 DATACLOUD TECHNOLOGIES, LLC Disambiguating file descriptors
6578055, Jun 05 2000 International Business Machines Corporation Methods, system and computer program products for mirrored file access through assuming a privileged user level
6578068, Aug 31 1999 Accenture Global Services Limited Load balancer in environment services patterns
6580721, Aug 11 1998 Apple Inc Routing and rate control in a universal transfer mode network
6625650, Jun 27 1998 U S BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT System for multi-layer broadband provisioning in computer networks
6647422, Feb 26 1996 Network Engineering Technologies, Inc. Web server employing multi-homed, modular framework
6658571, Feb 09 1999 JPMORGAN CHASE BANK, N A ; MORGAN STANLEY SENIOR FUNDING, INC Security framework for dynamically wrapping software applications executing in a computing system
6691312, Mar 19 1999 MASSACHUSETTS, UNIVERSITY OF Multicasting video
6711607, Feb 04 2000 SERVSTOR TECHNOLOGIES, LLC Dynamic scheduling of task streams in a multiple-resource system to ensure task stream quality of service
6725456, Nov 29 1999 Alcatel Lucent Methods and apparatus for ensuring quality of service in an operating system
6754716, Feb 11 2000 UNWIRED BROADBAND, INC Restricting communication between network devices on a common network
6760775, Mar 05 1999 AT&T Corp System, method and apparatus for network service load and reliability management
6779016, Aug 23 1999 Oracle America, Inc Extensible computing system
6820117, Oct 18 1999 COBALT NETWORKS, INC Bandwidth management
6948003, Mar 15 2000 Intellectual Ventures I LLC Enabling a service provider to provide intranet services
6976258, Nov 30 1999 HANGER SOLUTIONS, LLC Providing quality of service guarantees to virtual hosts
6985937, May 11 2000 Intellectual Ventures I LLC Dynamically modifying the resources of a virtual server
7343421, Feb 14 2000 LONGHORN HD LLC Restricting communication of selected processes to a set of specific network addresses
20030061338,
20090282101,
JP64002145,
RE42726, May 11 2000 Intellectual Ventures I LLC Dynamically modifying the resources of a virtual server
WO9939261,
///////
Executed onAssignorAssigneeConveyanceFrameReelDoc
Mar 20 2001KESHAV, SRINIVASANEnsim CorporationASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0269380323 pdf
Mar 20 2001CHUANG, SHAWEnsim CorporationASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0269380323 pdf
May 03 2001SHARMA, ROSENEnsim CorporationASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0269380323 pdf
Jun 07 2007Ensim CorporationDIGITAL ASSET ENTERPRISES, L L C ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0269380337 pdf
Sep 19 2011Digital Asset Enterprises, L.L.C.(assignment on the face of the patent)
Aug 12 2015DIGITAL ASSET ENTERPRISES, L L C CUFER ASSET LTD L L C MERGER SEE DOCUMENT FOR DETAILS 0371180001 pdf
Sep 18 2018CUFER ASSET LTD L L C Intellectual Ventures I LLCASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0469040748 pdf
Date Maintenance Fee Events
Jun 23 2017M1553: Payment of Maintenance Fee, 12th Year, Large Entity.


Date Maintenance Schedule
Dec 31 20164 years fee payment window open
Jul 01 20176 months grace period start (w surcharge)
Dec 31 2017patent expiry (for year 4)
Dec 31 20192 years to revive unintentionally abandoned end. (for year 4)
Dec 31 20208 years fee payment window open
Jul 01 20216 months grace period start (w surcharge)
Dec 31 2021patent expiry (for year 8)
Dec 31 20232 years to revive unintentionally abandoned end. (for year 8)
Dec 31 202412 years fee payment window open
Jul 01 20256 months grace period start (w surcharge)
Dec 31 2025patent expiry (for year 12)
Dec 31 20272 years to revive unintentionally abandoned end. (for year 12)