An intelligent distributed virtual server for providing distributed services to a plurality of clients, including one or more servers units, each server units storing data and providing services for accessing by one or more clients; a switch for connecting the clients to the server units and to provide a communication link; and a distribution control station connected to the clients and the server units via the switch, wherein the distribution control station receives a request for a service from a client, and automatically, selectively establishes a data link between that client and an server unit, which stores the requested data and provides services, such that the server unit provides the data stream to the client via the communication link, independent of other server units. The capacity of the intelligent distributed virtual server can be dynamically expanded without interrupt the normal server operation. Due to the non-shared accessing between server units, it represents a more efficient model for computing in terms of the resources usages. It can provide distributed computing cross intra-net or Internet. In addition, it provides scalability and all intelligent services such as real time fault handling, security and others.
|
32. A method for communicating content to a plurality of clients, comprising the steps of:
(a) providing multiple server units to be controlled by a control station for dynamically forming a virtual server;
(b) storing data information on each server units for accessing by one or more clients;
(c) instructing the control station to receive a request for data information from a client via a communication link;
(d) instructing the control station to select one of the server units that stores the requested data information;
(e) instructing the selected server unit to establish said data link between that client and the selected server unit; and
(f) instructing the selected server unit providing the requested data from the selected server unit to the requesting client via the communication link, independent of other server units.
1. A control system for a virtual server comprising:
a plurality of physical resources including CPU, memory, storage and network devices,
the control system interconnecting and operatively coupled to one or more server units via a network of lan, Intranet, and Internet to dynamically form a scalable virtual server for providing one or more services to one or more clients via communication links of the network, wherein
the control system including
a client interface for receiving service requests from one or more clients via communication links over the network, and including
a virtual distributor communicating to each server unit and coupling to the client interface for selectively distributing each received client service request to an identified available server unit having the requested service data, and further for the identified server unit providing the service data to the requested client via the communication link independent of other server units; wherein
the control system is also
maintaining a client and server unit mapping list, and authenticating each client before allowing the client to access the server units,
controlling fault handling by detecting fault server unit and deploying spare server units for providing service replacement to the clients, and
monitoring and managing the scalable virtual server with capability of controlling the dynamic adding or removing one or more server units without interrupting normal operation of the scalable virtual server.
2. An intelligent central controlled distributed scalable virtual machine (server) comprises:
a control system (“control station”) comprising a plurality of physical resources including CPU, memory, storage and network communication devices; and
one or more server units, and each one is stored with services and data information for providing services; wherein
the control system interconnecting and controlling each server unit over a network of lan, Intranet, and Internet to dynamically form a virtual server, and providing centralized operations for the virtual server; wherein
the control system including
a client interface for receiving service requests from one or more clients via the communication links of the network, and including
a virtual distributor communicating to each server unit and coupling to the client interface for selectively distributing each received client service request to an identified available server unit having the requested service data, and further for the identified server unit providing the service data to the client via the communication link of the network independent of other server units; wherein
the control station is also
maintaining a client and server mapping list,
authenticating each client before allowing the client to access server units,
controlling fault handling by detecting any fault server unit and deploying spare server unit for providing service replacement to the clients, and
monitoring and managing the virtual server with capability of controlling the dynamic adding or removing one or more server units without interrupting normal operation of the virtual server.
3. The virtual server of
configuring each server unit with a service control for communicating to the control system and each client via the network, and for providing corresponding services including storage volume and block data services, video service, file service, web service, and email service.
4. The virtual server of
configuring a virtual server with one or more server units for providing one or more services.
5. The virtual server of
configuring a virtual server with one or more server units for providing a dedicated service.
6. The virtual server of
providing at least one server unit to be configured with one or more data storage devices and a storage control for coordinating access to the data storage devices; wherein, said server unit includes video server, file server, email server, web server, PC (“personal computer”), NAS, and SAN.
7. The virtual server of
facilitating at least one server unit concurrently providing multiple service data streams to multiple clients up to its maximum concurrent service data streams that the server unit can provide.
8. The virtual server of
providing service for reading data from said server unit and sending the data to the requesting client via a communication link; and
providing service for receiving data form client and write to the server unit's storage media.
9. The virtual server of
providing each thread sharing equal amount of data bandwidth with other threads in a server unit if said threads handling similar client requests for the server unit.
10. The virtual server of
providing service in response to the control station's request for the status, identification, and configuration information of the server unit.
11. The virtual server of
interconnecting a said control station and one or more said server units via one or more switches and routers to form a said virtual server on a Intranet to be accessed by the plurality of clients via said network of Internet, Intranet or lan.
12. The virtual server of
interconnecting a said control station and one or more said server units via a switch to form a said virtual server on a lan to be accessed by the clients via the network of lan, Intranet or Internet.
13. The virtual server of
interconnecting a said control station and one or more said server units via one or more switches and routers to form a said virtual server over internet to be accessed by the clients via said network of lan, intranet or internet.
14. The virtual server of
providing communication connections including IP to ADSL router to deliver service data stream from the server unit to the plurality of clients equipped with TV displaying unit.
15. The virtual server of
providing communication connections including IP switch and router to deliver service data stream from the server unit to the plurality of clients equipped with IP network interface.
16. The virtual server of
detecting each server unit going online; obtaining the identification, configuration, and data information from each server unit; and adding the identification, configuration, and data information of each server unit into a server unit information list on the control station as the information of a server unit pool of the virtual server.
17. The virtual server of
controlling dynamically adding one or more new server units into the server unit pool in response to the demand for the virtual server to process more client requests when each server unit of the virtual server has reached its maximum allowed concurrent service data streams.
18. The virtual server of
updating the server unit information list on the control station in response to the requirement of managing the operation and monitoring the changing status of each server unit.
19. The virtual server of the
dynamically adding or removing server units for the virtual server pool of the scalable virtual server in response to the data bandwidth, data rate, and data throughput requirement of the virtual server.
20. The virtual server of
exposing one or more services information of the virtual server to each client in response to the requirement of providing one or more services, wherein said exposing includes exposing services information to each client's web browser.
21. The virtual server of
hosting the virtual server's web site for facilitating admin users performing administration tasks for the virtual server via web.
22. The virtual server of
receiving a client request and assigning the request to an identified available server unit, which is capable to provide the requested service data stream to the client;
adding information of the identified server unit and the assigned client into a mapping list; and
updating the mapping list by removing a client from the assigned server unit in response to the server unit finishing the requested service to the client.
23. The virtual server of
providing one or more spare server units in the virtual server pool to be stored with corresponding data for providing service replacement to each corresponding server unit.
24. The virtual server of
(1) detecting a fault in a server unit, which currently in providing requested data to each client;
(2) identifying a spare server unit storing that requested data; and
(3) selectively re-establishing said data stream between each client and the spare server unit storing the requested data such that the spare server unit provides the service replacement data stream to each client via the communication link independent of other server units.
25. The virtual server of
receiving authentication information from each client, verifying the authentication information, and providing the requested data streams to the client only if the authentication information is verified.
26. The virtual server of
means for communicating content to a plurality of clients, comprising:
(a) means for providing multiple said server units to be controlled by the control station and dynamically form a virtual server;
(b) means for storing data information on each server units for accessing by one or more clients;
(c) means for receiving a request for data information from a client via a communication link;
(d) means for selecting one of the server units that stores the requested data information;
(e) means for establishing a data link between that client and the selected server unit; and
(f) means for providing the requested data from the selected server unit to the requesting client via the communication link, independent of other server units.
27. The virtual server of
providing the control station to be configured with computation and communication capacity for supporting the designated number of client requests.
28. The virtual server of
said communication links includes wireless and non-wireless communication links.
29. The virtual server of the
hiding said each server unit from one or more clients and exposing the control station as an accessing point of the virtual server for the clients' centralized accessing of the virtual server.
30. The virtual server of the
distributing client requests to the identified server unit up to the maximum service data streams that server unit can provided.
31. The virtual server of the
deploying the numbers of switches and routers to the virtual server in response to the requirement of the bandwidth and data streams capacity for the scalable virtual server.
33. The method of
step (d) further includes the steps of instructing the control station to determine if one of the said server unit stores the requested data information, and if so, selecting that server unit and performing steps (e) and (f).
34. The method of
said step (a) further includes the steps of instructing the control station obtaining identification information from each server unit and maintaining that said information;
said step (b) further includes the steps of instructing the control station obtaining and maintaining said data information corresponding to each identified server unit; and
said step (d) further includes the steps of instructing the control station checking the data information to determine if one of the identified said server unit stores the requested data information, and if so, selecting that server unit and performing steps (e) and (f).
35. The method of
said step (a) further includes the steps of providing one or more spare server units to be controlled by the control station;
said step (b) further includes the steps of storing corresponding data on said spare server units for service replacement; and
the method further including the sequence of steps of:
(g) instructing the control station detecting a fault in a server unit currently providing requested data to a client;
(h) instructing the control station identifying a spare server unit storing that requested data; and
(i) instructing the control station selectively re-establishing said data stream between that client and the spare server unit storing the requested data, wherein that spare server unit provides the data stream to the client via the communication link, independent of other server unit units.
36. The method of
the steps of authenticating the identity of the client before providing the requested service data to the client.
37. The method of
the steps of receiving authentication information from that client, verifying the authentication information, and providing the requested data streams only if the authentication information is verified.
38. The method of
said step (c) further includes the steps of: instructing the control station receiving multiple requests for data streams from multiple clients;
said step (d) further includes the steps of: for each requesting client, instructing the control station selecting one of the server units that stores the data streams requested by that client;
said step (e) further includes the steps of: establishing a data stream between each requesting client and the selected server unit for that client; and
said step (f) further includes the steps of providing each requested data stream from a selected server unit to the requesting client via the corresponding communication link, independent of other server units.
39. The method of
said multiple requests can be random in time.
|
The present invention relates generally to distributed virtual server, and more particularly to distributed intelligent virtual server.
a) Basic Terminology:
While these servers may still serve different computational purpose, there are many tasks, which these server may not perform efficiently such as deliver video on Internet etc, deliver the block data to host etc cross corporate intra-net and Internet. There is, therefore, a need for powerful and inexpensive server, which can distribute the computing power cross intra-net or internet, provides scalable capacity, high performance, yet still provide intelligent automatic fault handling, and security etc.
The distributed intelligent virtual server will consist at least one distribution control station and more than one actual server units. This forms a virtual server pool by connecting distribution control station, multiple actual server units, and client system through routers/switches. (See
The example of such distributed virtual server would be distributed video server, virtual SAN, and others. The traditional network management system do not distribute the computing power. The traditional distributed computing is limited in a centralized location such as SMP or MPP system. The current Web based servers do not have concept of the virtual server and hence is not intelligent enough to provide automatic fault handling etc.
These and other features, aspects and advantages of the present invention will become understood with reference to the following description, appended claims and accompanying figures where:
In the drawings, like elements are designated by like reference numbers.
In one example, the distribution control station (14) hosts a virtual block data server (SAN) Web site to perform administration tasks and distribute client's disk volumes requests to specific server units (12) up to the maximum concurrent client volume requests that each block data server unit (12) can handle. In another example for the IP based distributed virtual SAN (block data server), the distribution control station (14) maintains a list (15) of information (13) from each SAN units (12), which will be the list of volumes with specific type, size, address of the block data as well as the IP address of each block data server units.
The same principle could be applied to the distributed video server and other. In third example, the distribution control station (14) hosts a virtual video server Web site to perform administration tasks and distribute client's video requests to specific video server units (12) up to the maximum concurrent client video requests that each video server unit (12) can handle. In fourth example of distributed video server system, the distribution control station (14) maintains a list (15) of video files information (13) from each server units (12).
In one example shown in
The network infrastructure (17) can comprise e.g. the Internet or LAN/WAN (Local Area Network/Wide Area Network) infrastructure between the clients (18) and the virtual server system (10). For example, a client system (18) located in France is connected to the virtual server (10) in U.S.A. by a LAN/WAN network infrastructure (17) (e.g., Internet).
In one version, upon receiving requests for data volume from clients (18), the distribution control station (14) maps a fixed number of clients (18) to each specific server units (12) and allows each server units (12) to deliver data streams directly to the corresponding group of clients (18). The server units (12) are clustered together by switches or routers (16). Each server units (12) runs independently and as such there is no need for communication between the server units (12).
In one example, the distributed virtual block data server (SAN) (10) provides a virtual data volume pool (15) (
Servers Unit
Each server unit (12) can provide essentially the same data stream rate (throughput) to the assigned clients (12). Each thread, which handling client request in the server unit (12) can share equal amount of data bandwidth provided by the server unit (12) as other threads, which handling similar client requests in that server unit (12).
In the following sections, example requirements for a server unit (12) for use in the virtual server (10), are provided.
Basic Requirement
Suitable server units such as NAS, SAN, or PC and computers (12) for use in the present invention provide concurrent data streams. Such server units (12) can be used in e.g. supporting applications such as providing block data to host system, providing video or audio application of online movie theatre, online educational training class, video on demand (VoD) etc. to end users on client (18).
Volume Capacity
Depending on application, the specific volumes requirements must be met. For example, a single block data server (12) (SAN) may have 800 Gbyets of capacity, which may be suitable for host's needs. Another example, a network attached storage (12) (NAS) may require 300 GB volume to host 200 hours 3 Mbits/sec movie etc.
Content Distribution and Delivery Method
The distribution control station (14) “hides” the server units (12) from the clients (18), whereby the clients interface to the distribution control station (14) and are transparently and selectively provided with requested data service streams from the multiple server units (12). The clients (18) access only one point, the distribution control station (14), and based on client requests the distribution control station (14) selectively assigns different server units (12) to different clients (18).
In one embodiment, the distribution control station (14) maintains a list (15) of data information (13) such as volumes information or video contents stored on each server units (12), and selectively provide the information of a appropriate server unit to a client (18).
As shown in
Referring to
Referring to example steps in
Referring to steps in
Referring to
If one of the data identified server units (12) can provide another data stream (depending on the maximum number of data streams and bandwidth that the server unit can provide) (step 66, 68), then the request is continually assigned to that identified server unit, and client identification added to the client list for that server unit (12) (step 70). Otherwise, either the request is rejected, or optionally after a time period the ability of said identified server unit (12) is checked to assign the request to (step 72). As described hereinbelow, the assigned server unit (12) can optionally authenticate the client before providing the requested data information via a data stream (step 74). Further, optionally, after a server unit (12) finishes streaming to a client (18), the client is removed from the server unit list (15) as assigned to that server unit (step 76).
Authentication
In one version of the distributed virtual server (10), each server units (12) authenticates a token from a client (18) assigned to that server unit (12). In one example, the token is the IP address of the client (18), but it can be any other unique identifying information, which provide by distribution control station (14) to server unit (12) after receiving client (18) request. At the time a client (18) requests data information (e.g., reservation a volume or video content), the distribution control station (14) optionally sends back to that client (18) a token (a ticket) indicating which server unit (12) the distribution control station (14) has mapped/assigned the client (18) to for receiving streaming data information from the assigned server unit (12). In addition, the distribution control station (14) also send a token to server unit (12) to indicate which client can be authorized to that server unit (12). Then, upon communication with the assigned client (18), each server unit (12) receives a token from that client (18), and authenticates by using authentication information previously provided to the server unit (12) by the distribution control station (14) as to the identity of that client (18).
As such, each assigned client (18) automatically starts to retrieve data stream based on the token received. Each server units (12) authenticates the assigned client (18) based on the information received from distribution control station (14), and delivers data streams directly to the client (18) upon authentication.
Fault Handling
The distributed virtual server (10) can further provide fault handling. Each individual server units (12), including several disk drives (25), can be configured with e.g. RAID1 or RAID5 etc. This provides data protection at the disk level in each server units, against fault of a single disk. Further, as shown by example steps in
Scalability
A distributed virtual server (10) according to the present invention is scalable by dynamically adding or removing server units (12) without stop the normal virtual server's (10) operation depending on data bandwidth, data rate and data throughput requirements. This allows the virtual server (10) to support a wide range of needs and clients (18) from small to large, and provide a scalable distributed virtual server for virtually unlimited number data streams.
Network Interfaces
Each server units (12) uses a network interface for communication with the distribution control station (14) and the clients (18) via a communication network (17). An example is IP/Ethernet connection, wherein the IP switches/routers (16) are used to deliver the data streams from the server units (12) to clients (18) such as personal computers via the Internet (IP Internet connection). Other suitable connection include e.g. Ethernet to ADSL router to deliver the data stream from server units (12) to TV units with a set Top box via e.g. cable. Other network interfaces such Fiber optical interface for Fiber Channel are possible and contemplated by the present invention.
Switches
The number of server units (12) and switches/routers (16) depends on the bandwidth required of the virtual server (10). For example, in a switch (16) connected to a 1-Gitabit Internet port for client connection, and to eight or twelve 100-bit of server unit ports, each server units (12) is configured with 100-bits/sec Ethernet card. A data transfer forwarder sends information to the corresponding 100-bits port for each server units (12). The number and type of switches (16) further depends on the number of server units (12) connected to each switch (16), and data streaming bandwidth and rate requirements. The example switches or routers are manufactured by Cisco™ and 3 Com™.
Advantages
According to the present invention server units (12) are used scalably to efficiently deliver data streams to clients (18), under the control of one (or more for fault handling) distribution controls station (14) that preferably provide a single point of contact/interface to the clients (18) via the network (17). As more bandwidth and data streams are required, more server units (12) and routers/switches (17) are added to the virtual server (10) to deliver more data streams. Because each server unit (12) operates independent of other server units (12) without sharing internal resources, there is no resource contention in a virtual server (10) according to the present invention that exists in conventional servers such as those utilizing SMP, or MPP machines. Further, as there is no need for intra-node routing and communication, there is no communication bottleneck between the server units (12) in a virtual server (10) according to the present invention, as exists in conventional servers such as those using MPP, or SMP systems. In addition, the virtual server (10) has no geometric restriction each individual server unit (12) can be placed in a single rack mounted cabinet or in a room, or cross the region or continental. This allows saving network bandwidth effectively. The per data stream price is low, specially for delivering a large number of streams to end users when using low cost NAS. In addition, unlike the centralized server such as SMP or MPP, the distributed virtual server has more independently operated network cards and 10 cards, therefore, in case of a single card broken will not bring the entire virtual server malfunction, instead, majority part of the virtual server can still operating normally. Besides, the automatic fault handling can be provided.
Distribution Control Station
In the example of
In one embodiment, the CPU (104) comprises a microprocessor manufactured by Motorola®, such as the 680×0 processor or a microprocessor manufactured by Intel®, such as the 80×86, or Pentium® processor, or a SPARC® microprocessor from Sun Microsystems®. However, any other suitable microprocessor or microcomputer may be utilized. The main memory (106) can comprise dynamic random access memory (DRAM). And video memory (not shown) can comprise a dual-ported video random access memory.
The computer system (14) may be coupled via the bus (102) to a display (112), such as a cathode ray tube (CRT), for displaying information to a computer user. An input device (114), including alphanumeric and other keys, is coupled to the bus (102) for communicating information and command selections to the processor (104). Another type of user input device comprises cursor control (116), such as a mousse, a trackball, or cursor direction keys for communicating direction information and command selections to the processor 104 and for controlling cursor movement on the display (112). This input device typically has two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y) that allows the device to specify positions in a plane.
According to one embodiment of the invention, the steps of the processes of the present invention is provided by computer systems (14) in response to the processor (104) executing one or more sequences of one or more instructions contained in the main memory (106). Such instructions may be read into the main memory (106) from another computer-readable medium, such as the storage device (110). Execution of the sequences of instructions contained in the main memory (106) causes the processor (104) to perform the process steps described herein. One or more processors in a multi-processing arrangement may also be employed to execute the sequences of instructions contained in the main memory (106). In alternative embodiments, hard-wired circuitry such as Application Specific Integrated Circuit (ASIC) may be used in place of or in combination with software instructions to implement the invention. Thus, embodiments of the invention are not limited to any specific combination of hardware circuitry and software.
The term “computer-readable medium” as used herein refers to any medium that participated in providing instructions to the processor 104 for execution. Such a medium may take may forms, including but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media includes, for example, optical or magnetic disks, such as the storage device (110). Volatile media includes dynamic memory, such as the main memory (106). Transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise the bus (102). Transmission media can also take the form of acoustic or light waves, such as those generated during radio wave and infrared data communications.
Common forms of computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, a CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, a RAM, a PROM, an EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave as described hereinafter, or any other medium from which a computer can read.
Various forms of computer readable media may be involved in carrying one or more sequences of one or more instructions to the processor (104) for execution. For example, the instructions may initially be carried on a magnetic disk of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem. A modem local to the computer system (14) can receive the data on the telephone line and use an infrared transmitter to convert the data to an infrared signal. An infrared detector coupled to the bus (102) can receive the data carried in the infrared signal and place the data on the bus (102). The bus (102) carries the data to the main memory (106), from which the processor (104) retrieves and executes the instructions. The instructions received from the main memory (106) may optionally be stored on the storage device (110) either before or after execution by the processor (104).
The computer system (14) also includes a communication interface (118) coupled to bus the (102). The communication interface (118) provides a two-way data communication coupling to a network link (120) that is connected to routers (16). For example, the communication interface (118) may be an integrated services digital network (ISDN) card or a modern to provide a data communication connection to a corresponding type of telephone line, which can comprise part of the network link (120). As another example, the communication interface (118) may be a local area network (LAN) card to provide a data communication connection to a compatible LAN. Wireless links may also be implemented. In any such implementation, the communication interface (118) sends and receives electrical electromagnetic or optical signals that carry digital data streams representing various types of information.
The network link (120) typically provides data communication through one or more networks to other data devices. For example, the network link (120) may provide a connection through a local network to a host/server computer or to data equipment operated by an Internet Service Provider (ISP) (126) via switched (16). The ISP (126) in turn provides data communication services through the world wide packet data communication network now commonly referred to as the “Internet” (128). The Internet (128) uses electrical electromagnetic or optical signals that carry digital data streams. The computer system (14) further includes web server (11) for providing e.g. a user interface to the clients (18) for requesting data streams from the virtual server (10). In one example said user interface can include a list of available video content files in the virtual video server (10) and ways of selecting content files for viewing, including optionally payment terms.
The computer system (14) can send messages and receive data, including program code, through the communication interface (118). In the Internet example, clients (18) can transmit code (e.g., program instructions, HTML, etc.) for an application program through the Internet (128), the ISP (126), and communication interface (118).
The example versions of the invention described herein can be implemented as logical operations in a distribution control station (14). The logical operations of the present invention can be implemented as a sequence of steps executing on distribution control station (14). The implementation is a matter of choice and can depend on performance of the distribution control station (14) implementing the invention. As such, the logical operations constituting said example versions of the invention are referred to for e.g. as operations, steps or modules.
Miscellaneous
The present invention has been described in considerable detail with reference to certain preferred versions thereof; however, other versions are possible. Therefore, the spirit and scope of the appended claims should not be limited to the description of the preferred versions contained herein.
Patent | Priority | Assignee | Title |
7917533, | Apr 17 2008 | Hitachi, LTD | Master management system, master management method, and master management program |
8327169, | Feb 26 2009 | International Business Machines Corporation | Power management to maximize reduced power state for virtual machine platforms |
8825752, | May 18 2012 | NetApp, Inc. | Systems and methods for providing intelligent automated support capable of self rejuvenation with respect to storage systems |
9148491, | Jan 09 2006 | ALD SOCIAL, LLC | Virtual location aware content using presence information data formation with location object (PIDF-LO) |
Patent | Priority | Assignee | Title |
6108703, | Jul 14 1998 | Massachusetts Institute of Technology | Global hosting system |
6449647, | Aug 01 1997 | Cisco Technology, Inc | Content-aware switching of network packets |
6654807, | Feb 10 1998 | SANDPIPER CDN, LLC | Internet content delivery network |
6816905, | Nov 10 2000 | RPX Corporation | Method and system for providing dynamic hosted service management across disparate accounts/sites |
6857012, | Oct 26 2000 | Intel Corporation | Method and apparatus for initializing a new node in a network |
7047300, | Feb 10 1998 | Sprint Communications Company L.P.; SPRINT COMMUNICATIONS COMPANY, L P | Survivable and scalable data system and method for computer networks |
7068597, | Nov 27 2000 | VALTRUS INNOVATIONS LIMITED | System and method for automatic load balancing in a data-over-cable network |
7225464, | Apr 03 2002 | YODLEE, INC | Method for verifying the identity of a user for session authentication purposes during Web navigation |
20010052016, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Mar 22 2002 | TSAO, SHENG TED TAI | TSAO, SHENG TED TAI | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 013459 | /0414 | |
Apr 05 2002 | Sheng Tai (Ted) Tsao | (assignment on the face of the patent) | / | |||
Sep 28 2010 | TSAO, SHENG TAI TED | RPX Corporation | LICENSE SEE DOCUMENT FOR DETAILS | 025053 | /0669 | |
Sep 28 2010 | TSAO, SHENG TAI | RPX Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 025161 | /0511 | |
Jun 19 2018 | RPX Corporation | JEFFERIES FINANCE LLC | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 046486 | /0433 | |
Oct 23 2020 | JEFFERIES FINANCE LLC | RPX Corporation | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 054486 | /0422 |
Date | Maintenance Fee Events |
Jun 05 2012 | STOL: Pat Hldr no Longer Claims Small Ent Stat |
Dec 09 2013 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Jan 22 2018 | REM: Maintenance Fee Reminder Mailed. |
Jul 09 2018 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Jun 08 2013 | 4 years fee payment window open |
Dec 08 2013 | 6 months grace period start (w surcharge) |
Jun 08 2014 | patent expiry (for year 4) |
Jun 08 2016 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jun 08 2017 | 8 years fee payment window open |
Dec 08 2017 | 6 months grace period start (w surcharge) |
Jun 08 2018 | patent expiry (for year 8) |
Jun 08 2020 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jun 08 2021 | 12 years fee payment window open |
Dec 08 2021 | 6 months grace period start (w surcharge) |
Jun 08 2022 | patent expiry (for year 12) |
Jun 08 2024 | 2 years to revive unintentionally abandoned end. (for year 12) |