An intelligent local client agent can passively keep track of the state of network intermediaries, and can allocate network traffic according to different policies. In addition, an optional management platform running on a policy server provides an active network monitor of intermediaries and implements administrative policies. Under the present invention, an intermediary-aware application (e.g., a browser) will be configured to use the local client agent instead of an intermediary. The policy server can remotely load configuration information into a running client agent to provide administrative constraints or state changes. At each client agent, the intermediary servers (e.g. SOCKS servers) are ranked into tiers, so that several servers in the top-rated tier can be used concurrently to provide better performance. When the performance of a server degrades, its tier rating is lowered, and thus it may be avoided. Administratively defined tiers can be used to reserve resources for mission critical applications. Each client agent may passively collect local statistics on observed performance. The policy server may aggregate and evaluate the collected data, and use it as metrics to improve the tier groupings to the client agents, in order to provide better utilization of shared resources.
|
1. A method for a client agent resident at a client computer to establish communication between the client location and a destination location comprising the steps of:
receiving a request for communication from said client location said request specifying a destination for the communication; analyzing the content of said communication request, said content comprising at least one of the application to be invoked for processing said communication request, the protocol used to make the request, and the identification of the requested data; determining an optimal communication path based on said analyzing; and attempting to establish communications along said optimal path.
15. A client resident client agent for establishing communications between a client location and a destination location comprising:
receiver component for receiving a request for communication from said client location said request specifying the destination for the communication; processing means for analyzing the content of said communication request information, said content comprising at least one of the application to be invoked for processing the communication request, the protocol used to make the request, and the identification of the requested data, and for determining an optimal communication path based on said analyzing; and communication component for attempting to establish communications along said optimal path.
20. A communication system for a first client computer location to establish communication with at least one other computer location comprising:
at least one client resident client agent associated with said first client computer location, said client agent comprising: receiver component for receiving a request for communication from said client location said request specifying the destination for the communication; processing means for analyzing the content of said communication request, said content comprising at least one of the application to be invoked for processing said communication request, the protocol used to make the request and the identification of the requested data, and for determining an optimal communication path based on said analyzing; and communication component for attempting to establish communications along said optimal path; and at least one management server for sharing communication information with said at least one client agent.
21. An article of manufacture comprising:
a computer usable medium having computer readable program code embodied therein for establishing communication between a client location and a destination location, the computer readable program code in said article of manufacture being executed at the client location and comprising: computer readable program code for receiving a request for communication from said client location said request specifying the destination for the communication; computer readable program code for analyzing the content of said communication request, said content comprising at least one of the application to be invoked for processing the communication request, the protocol used to make the request, and the identification of the requested data; computer readable program code for determining an optimal communication path based on said analyzing; and computer readable program code for attempting to establish communications along said optimal path. 2. The method of
when communications cannot be established along said optimal path, selecting a successive alternative path; trying to establish communication along said alternative path; and repeating said selecting and trying until communication between said client location and said destination has been established.
3. The method of
4. The method of
5. The method of
6. The method of
7. The method of
8. The method of
9. The method of
10. The method of
11. The method of
12. The method of
13. The method of
14. The method of
when communications cannot be established along said optimal path, selecting a successive alternative path; trying to establish communication along said alternative path; repeating said selecting and trying until communication between said client location and said destination has been established; and notifying said management server about said communication.
16. The client agent of
17. The client agent of
18. The client agent of
19. The client agent of
22. The article of manufacture of
|
This invention relates generally to improving the availability and performance of network-mediated applications. More particularly, it relates to a client-based dynamic server switching method for use in a distributed system including multiple intermediary servers.
The demand for remote networked services is steadily increasing. Many networked applications must access intermediaries in order to reach remote services. Network intermediaries include security firewalls, file caches, and directory services. For example, many corporations establish security firewalls to protect their internal networks from unauthorized access, e.g. from the Internet. At the same time, internal users need to cross these firewalls to access remote services, for instance, to access public search engines (e.g. for price comparisons in procurement). One common way to enable crossing the firewall boundaries, is for client applications (e.g. Web browsers) to access SOCKS servers. These servers are trusted network intermediaries that are enabled to communicate, across the firewalls boundaries, with remote Internet services. Typically, client applications that access remote services across the firewalls are statically configured to use only one such intermediary, e.g., a given SOCKS server. Hence, such applications become dependent on the performance and availability of the given intermediary in order to perform many of their functions. Therefore, if the SOCKS server fails, all of the Web browsers using that socks server will be unable to communicate with any remote server outside the firewalls. From the end-user perspective, connectivity to the Internet has been lost, while in fact, that is not necessarily the case, since an alternative SOCKS server may be able to provide the equivalent service at the same time.
A second problem faced by these client applications is that many of their communications are often unnecessarily being routed via intermediaries. For example, a Web browser may be statically configured to access a given SOCKS server for all remote services, even if some of these services are "inside the firewall", that is, are local to the network domain, and hence do not require access via a SOCKS server intermediary. Such requests create unnecessary load on the intermediaries, which results in additional delays for all interactions.
A third problem with prior art approaches is the lack of configurable policies to allocate constrained network resources. For example, on a bandwidth-constrained network, the download of a large news file may significantly slow all other interactions via the network. In particular, real-time applications, such as live broadcasts of multimedia streams may be unnecessarily delayed, since the current Internet infrastructure is lacking in effective priority mechanisms. It is desirable to provide a means and method for controlling the priority and pace of requests and acknowledgments of IP packets at the clients.
In order to improve the performance and availability of networked applications, multiple functionally-equivalent intermediary servers are needed to provide service to a large number of clients. It is also desirable in such a system to direct clients transparently to one of a multiplicity of intermediary servers to obtain the requested service; and, if an intermediary is not functioning as desired, the client request would ideally automatically be routed to another intermediary.
One method known in the art that seeks to increase the performance and availability of networked applications, is to create a cluster of computing nodes (also called a "multi-node cluster") to share the load. This multi-node cluster approach is particularly useful for increasing the processing capacity at "hot" sites on the Internet. For the sake of consistency herein, the term "the Internet" refers to the collection of networks and gateways that use the Transmission Control Protocol/Internet Protocol (TCP/IP) suite of protocols, TCP/IP being a well known protocol for communications between computers (see e.g., D. E. Comer, Inter-networking with TCP/IP, Principals, Protocols and Architecture, Prentice Hall). The multi-node cluster is encapsulated, such that it is made to appear as one entity to clients, in order to make the added capacity provided by the multi-node cluster be transparent to clients. Client requests are distributed among nodes in the multi-node cluster. Many load balancing techniques are known in the art; see for example, Dias et al., "A Scalable and Highly Available Web Server", Proc. 41st IEEE Computer Society Intl. Conf. (COMPCON) 1996, Technologies for the Information Superhighway, pp. 85-92, Feb. 1996; see also U.S. Pat. No. 5,371,852, issued Dec. 6, 1994 to Attanasio et al., entitled "Method and Apparatus for Making a Cluster of Computers Appear as a Single Host."
A key problem with the static allocation of intermediaries is that it often results in a poorly balanced workload, thereby wasting network resources. For example, one SOCKS server can have a large number of clients simultaneously connecting to it while others are serving only a few clients. The workload across the intermediaries can become skewed and highly imbalanced, potentially causing significant performance degradation due to server overloads. In the event that an intermediary server fails or is overloaded, there is no automatic mechanism for redirecting a client to another server. A need exists, therefore, for a client-based means to automatically switch to an alternate intermediate server in order to receive remote services without interruption, in the event of service degradation or failure of a network intermediary.
Similar problems have been addressed by (1) server-side solutions, like Network Dispatcher, and (2) application-specific solutions. A server-side solution does not address the same problem, since it does not have any control over the clients. An application-specific solution can address a similar problem for a given intermediated application, at the cost of increased complexity in the application, and the intermediate servers.
What is desirable, and is an objective of the present invention, is to provide a solution to the foregoing problems, which solution is client-based and can support an arbitrary set of networked applications.
An objective of the present invention is, therefore, to provide a local client-resident intermediary broker, that can intelligently route the traffic among intermediaries so as to: (1) provide better availability of the intermediary services, (2) share the load of requests across several intermediaries (e.g. load balancing), and (3) bypass intermediaries whenever possible.
In addition, it is an objective of the present invention to provide remote administrative control of the local intermediary brokers, enabling them to utilize their shared, limited networking resources, according to specific policies. For example, important interactive data, such as e-commerce traffic can be given higher priority than non-critical information. Remote administrative control will, thereby, prevent the "tragedy of the commons" syndrome, where each client tries to locally maximize its private utilization.
Accordingly, it is yet another objective of this invention to provide an improved client-based system for accessing network intermediaries.
These and other objectives are realized by the present invention wherein a method and an apparatus are implemented as an intelligent local broker, the client agent, that can passively keep track of the state of network intermediaries, and can allocate network traffic according to different policies. In addition, an optional management platform running at a policy server provides an active network monitor of intermediaries and implements administrative policies. Under the present invention, an intermediary-aware application (e.g., a browser) will be configured to use the local client agent instead of a specific intermediary. The policy server can remotely load configuration information into a running client agent to provide administrative constraints or state changes. At each client agent, the intermediary servers (e.g., SOCKS servers, HTTP proxy caches, etc.) are ranked into tiers, so that several servers in the top-rated tier can be used concurrently to provide better performance. When the performance of a server degrades, its tier rating is lowered, and thus it may be avoided. Administratively defined tiers can be used to reserve resources for mission-critical applications. Each client agent may passively collect local statistics on observed performance. The policy server may aggregate and evaluate the collected data, and use it as metrics to improve the tier groupings to the client agents, in order to provide better utilization of shared resources.
According to the present invention, the intermediary broker automatically detects performance imbalances and/or failures (complete or partial) and dynamically switches to an alternate intermediate server in order to continue receiving the remote service with minimal disruption.
The present invention includes features for automatically and gracefully switching clients among multiple intermediate servers in the event that such an intermediate server becomes overloaded or fails. A preferred embodiment addresses the case where clients are accessing Internet services via intermediaries. The switching among intermediaries must be transparent to the client. When an intermediary server fails, the respective client agents detect the failure and automatically switch to alternate intermediary servers that continue to provide the clients Internet access.
The present invention also includes features for gracefully switching clients to alternate intermediary servers in the case of server failure or overload while maintaining a balanced workload across multiple intermediary servers in a distributed network environment.
These, and further characteristics and features of the invention, will be more apparent from the following detailed description of a preferred embodiment and the appended drawings in which:
The present invention introduces at least one client agent to the communications environment, as shown in FIG. 2. Client agents 210A through 210E, comprise components which passively monitor the state of network intermediaries, 120A-120C, and which allocate network traffic to and from the client according to different policies, as affected by such considerations as the availability of each server, a traffic prioritization scheme, etc., as further detailed below. Illustrated client agents 210A-210D are dedicated client agents which reside at each client site, 110A-110D, respectively. Client agent 210E services more than one client location, 110E and 110F, and is located at a site which is remote from each of the client locations which it serves. It is the client agents that establish communications for the client locations in response to client communications requests. Any of client agents 210A through 210E may select any of the SOCKS servers, 120A-120C, for remote communications. For local communications, the client agent may determine that it is unnecessary to go through a server for establishing communication with another client location. Therefore, as illustrated by arrow 260, communication between one client site, 110C, and another client site, 110D, will be established directly without the need to go through any intermediary. In addition, as shown by arrow 270, connection to destination 140A from the client agent 210A at client site 110A may be established directly without going through intermediaries and/or the Internet.
Each client agent has a collection of variables (e.g., stored in a table) that it maintains and consults in response to each client request. In addition, each client agent maintains a record of connections, failed and successful. Based upon the information culled from the collection of variables and the data that is to be communicated, the client agent selects the optimal communications path for the requested communication. The contents of the client agent's collection of variables may include an administratively-assigned ranking of servers, which would then indicate the preferred path or paths to the client agent for establishing communication on behalf of the client location via the highest ranked server or servers, in addition to a listing of networks/destinations which are directly reachable by that client, without the need for going through an intermediary server. Should communication with a first selected intermediary server be unsuccessful, the client agent can select a next alternative path for the requested communication, and so on, until a connection for the requested communication has been completed.
As mentioned above, each client agent's collection of variables may include administratively assigned rankings that are but one basis upon which to determine a preferred communications path. Additional considerations which may factor into the client agent's determination include load sharing performance considerations, bandwidth preservation considerations, and traffic prioritization. A primary objective of the inventive client agent is to avoid the use of intermediaries whenever such is possible. For instance, the client agent will convert a SOCKS-based connection to a direct connection to the intended destination whenever the destination is reachable without going through an intermediary socks server. This feature has the two advantages that the additional overhead of an intermediary in the request/response path is avoided; and, one can avoid the self-imposed processing limits which each intermediary necessary has. Another consideration which factors into the client agent's selection of an intermediary is the alternative paths which certain information flows can take. For example, requests to access internal web sites, intended for use by corporate employees, need not be routed through SOCKS servers. In addition, if the corporate intranet has the feature of providing transparent access, to either Internet or intranet locations, such facility is preferably chosen over a SOCKS server connection.
Yet another consideration is the existence of intermediaries that provide augmented content when a web page is retrieved, such as suggestions about other sites, etc. Such an intermediary may only need to process a subset of the content being delivered to the web browser (e.g., HTML content) with other content being useless to such an intermediary. Based upon the request from the client, client agents can intelligently separate the different data flows so that only relevant data is received by the specialized intermediary, while all other content flows through different intermediaries, thereby reducing the load on the specialized intermediaries and improving the performance retrieval.
Yet another criteria for connection is traffic prioritization that the client agent can perform based on the nature of the data to be received in response to the request. For example, bulk data transfer can be given a lower priority, while interactive traffic (like a Telnet session) can be given a higher priority. Higher priority traffic is given precedence over traffic of a lower priority. The client agent may make any of the foregoing determinations based upon learning from the history of data retrieved for prior requests or based upon administratively-assigned rules.
In a preferred embodiment of the invention, the ranking and rules found in a client agent's table of variables are dynamically maintained. While the present invention is resilient in the fact that a client agent can select alternative paths based on real-time information (i.e., after an attempt to establish a path through a certain server has been unsuccessful), it is also desirable to continually update the table to reflect the ever-changing realities of the communications environment. After trying unsuccessfully to establish communication through a chosen intermediary, or after a pre-set number of unsuccessful attempts to access the destination in the chosen path, the client agent may update its own variable information to lower the ranking of the unavailable intermediary. What is additionally desirable is to share such information with other client agents in the network.
The management platform at each control server monitors for significant changes in the state of the intermediary servers, such as failures or overloads, or when a previously failed intermediary returns to service. The control server will periodically send messages to the client agents to inform them of such configuration changes (e.g., "use SOCKS server S1 and S3, but not S2"). This allows clients to respond to performance problems, even if they are not currently using the intermediary servers.
The operations of the inventive components will now be detailed.
Specifically, as detailed in
After a path has been selected, the client agent attempts to make a connection with the selected intermediary, at step 440. If a connection is made, as determined at step 441, the client agent reads data from the client or from the service provider and forwards same to the corresponding endpoint at step 450. If, however, the connection cannot be made successfully, as indicated by a "no" response at 441, the client agent records the unsuccessful attempt at step 442, optionally adjusts rankings at 443, and returns to step 430 to select another intermediary. For a given request, it will not be necessary for the client agent to repeat steps 431, 433 an 435; such, that the client agent can go directly to step 437 at this point in the processing. It is also to be noted that the client agent could be implemented to identify backup connection paths, such that a return to step 430 would simply involve accessing a next entry in a list which was created at the first iteration of step 437. The client agent may count unsuccessful attempts and "time out" at 444 if no possible intermediary can be selected, in which case, the client is informed of the failure at 445 and the client agent process terminates. once connection is established, data is exchanged at step 450 until it is determined, at step 460, that the communication has been terminated, either intentionally (e.g., at the end of a file) or unintentionally (e.g., system failure). When the communication has been terminated, statistics associated with the connection are recorded, at step 470, by the client agent, including such information as the bytes transmitted per second, the total data transferred, the connection establishment time, etc. After a threshold amount of recorded information has been gathered, which is a local determination at step 480 based on an assumption that no system could tolerate continual updates, the updated recorded information is provided at step 490 to all interested entities on the network. Specifically, when a management platform is available, the client agent provides the information to the management platform on the control server with which it is associated.
As noted above, the client agent may use the information locally to update its own tables, particularly in the inventive embodiment in which there is no management platform to coordinate system inputs and communicate that information to the client agents. Alternatively, the information is provided to, and updated table information is received from, the management platform.
As discussed previously with reference to
The first advantage of the present method is that it is client-resident, and depends solely on the availability of the client. A second advantage is that it is portable, that is, does not require any changes to the applications' code, nor to the network interfaces on the computer hosts. A third advantage is that it provides dynamic reconfiguration of resource allocation, based on administrative policies of the client-side organizations. In contrast, server-side solutions can only implement server-side policies. A fourth advantage is that the present solution allows for traffic priorities, which depend on client-side specific policies.
The invention has been described with reference to several specific embodiments. One having skill in the relevant art will recognize that modifications may be made without departing from the spirit and scope of the invention as set forth in the appended claims.
Carpenter, Geoffrey C., Goldszmidt Ziman, German S.
Patent | Priority | Assignee | Title |
10193852, | Aug 07 2002 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Canonical name (CNAME) handling for global server load balancing |
10505792, | Nov 02 2016 | F5 Networks, Inc | Methods for facilitating network traffic analytics and devices thereof |
10536236, | Aug 26 2013 | Coriant Operations, Inc. | Intranodal ROADM fiber management apparatuses, systems, and methods |
10812266, | Mar 17 2017 | F5 Networks, Inc | Methods for managing security tokens based on security violations and devices thereof |
11095603, | Aug 07 2002 | Avago Technologies International Sales Pte. Limited | Canonical name (CNAME) handling for global server load balancing |
11122042, | May 12 2017 | F5 Networks, Inc | Methods for dynamically managing user access control and devices thereof |
11178150, | Jan 20 2016 | F5 Networks, Inc | Methods for enforcing access control list based on managed application and devices thereof |
11343237, | May 12 2017 | F5 Networks, Inc | Methods for managing a federated identity environment using security and access control data and devices thereof |
11350254, | May 05 2015 | F5 Networks, Inc | Methods for enforcing compliance policies and devices thereof |
11757946, | Dec 22 2015 | F5 Networks, Inc | Methods for analyzing network traffic and enforcing network policies and devices thereof |
6823382, | Aug 20 2001 | RIVERBED TECHNOLOGY LLC | Monitoring and control engine for multi-tiered service-level management of distributed web-application servers |
6973488, | Mar 31 2000 | Intel Corporation | Providing policy information to a remote device |
7363370, | Oct 26 2000 | JASON M DONAHUE TRUST | Multi-platform optimization model |
7379994, | Oct 26 2000 | JASON M DONAHUE TRUST | Aggregate system resource analysis including correlation matrix and metric-based analysis |
7437446, | Sep 30 2002 | ENT SERVICES DEVELOPMENT CORPORATION LP | Reporting of abnormal computer resource utilization data |
7467196, | Jan 12 2005 | International Business Machines Corporation | Managing network errors communicated in a message transaction with error information using a troubleshooting agent |
7469285, | Jun 01 2007 | ENT SERVICES DEVELOPMENT CORPORATION LP | Generation of computer resource utilization data per computer application |
7472079, | Jan 12 2005 | International Business Machines Corporation | Computer implemented method for automatically controlling selection of a grid provider for a grid job |
7502850, | Jan 06 2005 | International Business Machines Corporation | Verifying resource functionality before use by a grid job submitted to a grid environment |
7512688, | Mar 01 2002 | Hitachi, Ltd. | PPPoE network system that can distribute connection requests from PPPoE client terminals to specific PPPoE servers |
7533170, | Jan 06 2005 | International Business Machines Corporation | Coordinating the monitoring, management, and prediction of unintended changes within a grid environment |
7562035, | Jan 12 2005 | International Business Machines Corporation | Automating responses by grid providers to bid requests indicating criteria for a grid job |
7571120, | Jan 12 2005 | International Business Machines Corporation | Computer implemented method for estimating future grid job costs by classifying grid jobs and storing results of processing grid job microcosms |
7590623, | Jan 06 2005 | KYNDRYL, INC | Automated management of software images for efficient resource node building within a grid environment |
7668741, | Jan 06 2005 | TWITTER, INC | Managing compliance with service level agreements in a grid environment |
7707288, | Jan 06 2005 | TWITTER, INC | Automatically building a locally managed virtual node grouping to handle a grid job requiring a degree of resource parallelism within a grid environment |
7716472, | Dec 29 2005 | AVAST SOFTWARE S R O | Method and system for transparent bridging and bi-directional management of network data |
7761557, | Jan 06 2005 | International Business Machines Corporation | Facilitating overall grid environment management by monitoring and distributing grid activity |
7778999, | Jan 24 2003 | AVAST SOFTWARE S R O | Systems and methods for multi-layered packet filtering and remote management of network devices |
7793308, | Jan 06 2005 | International Business Machines Corporation | Setting operation based resource utilization thresholds for resource use by a process |
7805509, | Jun 04 2004 | SAP SE | System and method for performance management in a multi-tier computing environment |
7817547, | Oct 02 2007 | Microsoft Technology Licensing, LLC | Uncovering the differences in backbone networks |
7818401, | Dec 23 2004 | Google Technology Holdings LLC | Method and apparatus for providing decentralized load distribution |
7840678, | May 06 2004 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Host-level policies for global server load balancing |
7885188, | Aug 23 2004 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Smoothing algorithm for round trip time (RTT) measurements |
7921133, | Jun 10 2004 | International Business Machines Corporation | Query meaning determination through a grid service |
7945678, | Aug 05 2005 | F5 Networks, Inc. | Link load balancer that controls a path for a client to connect to a resource |
7949757, | May 06 2004 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Host-level policies for global server load balancing |
8024441, | Sep 26 2000 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Global server load balancing |
8078913, | May 28 2009 | Microsoft Technology Licensing, LLC | Automated identification of performance crisis |
8136118, | Jan 14 2004 | International Business Machines Corporation | Maintaining application operations within a suboptimal grid environment |
8214495, | Jun 04 2004 | SAP SE | System and method for performance management in a multi-tier computing environment |
8275881, | Jan 13 2004 | International Business Machines Corporation | Managing escalating resource needs within a grid environment |
8280998, | May 06 2004 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Configurable geographic prefixes for global server load balancing |
8339965, | Oct 02 2007 | Microsoft Technology Licensing, LLC | Uncovering the differences in backbone networks |
8346591, | Jan 12 2005 | International Business Machines Corporation | Automating responses by grid providers to bid requests indicating criteria for a grid job |
8387058, | Jan 13 2004 | International Business Machines Corporation | Minimizing complex decisions to allocate additional resources to a job submitted to a grid environment |
8396757, | Jan 12 2005 | International Business Machines Corporation | Estimating future grid job costs by classifying grid jobs and storing results of processing grid job microcosms |
8504721, | Sep 26 2000 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Global server load balancing |
8510428, | May 06 2004 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Configurable geographic prefixes for global server load balancing |
8516129, | Aug 05 2005 | F5 Networkds, Inc. | Link load balancer that controls a path for a client to connect to a resource |
8549148, | Oct 15 2010 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Domain name system security extensions (DNSSEC) for global server load balancing |
8583650, | Jan 06 2005 | KYNDRYL, INC | Automated management of software images for efficient resource node building within a grid environment |
8627431, | Jun 04 2011 | Microsoft Technology Licensing, LLC | Distributed network name |
8755279, | Aug 23 2004 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Smoothing algorithm for round trip time (RTT) measurements |
8825833, | Mar 30 2005 | International Business Machines Corporation | Tracking computer system configuration changes with corresponding message responses |
8862740, | May 06 2004 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Host-level policies for global server load balancing |
8874781, | Oct 17 2011 | Qualcomm Incorporated | System and apparatus for power efficient delivery of social network updates to a receiver device in a broadcast network |
8949850, | Aug 01 2002 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Statistical tracking for global server load balancing |
8958439, | Aug 03 2010 | F5 Networks, Inc | Mediating method and system between signaling network peers |
9015323, | Sep 26 2000 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Global server load balancing |
9130954, | Sep 26 2000 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Distributed health check for global server load balancing |
9225775, | Sep 26 2000 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Global server load balancing |
9300523, | Jun 04 2004 | SAP SE | System and method for performance management in a multi-tier computing environment |
9338182, | Oct 15 2010 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Domain name system security extensions (DNSSEC) for global server load balancing |
9438469, | Jan 02 2013 | Industrial Technology Research Institute | Auto-configuration server and management method of customer premises equipments |
9479574, | Sep 26 2000 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Global server load balancing |
9584360, | Sep 29 2003 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Global server load balancing support for private VIP addresses |
9652469, | Jun 04 2011 | Microsoft Technology Licensing, LLC | Clustered file service |
Patent | Priority | Assignee | Title |
5603029, | Jun 07 1995 | International Business Machines Corporation | System of assigning work requests based on classifying into an eligible class where the criteria is goal oriented and capacity information is available |
5828844, | Oct 08 1996 | AT&T Corp. | Internet NCP over ATM |
5996021, | May 20 1997 | AT&T Corp | Internet protocol relay network for directly routing datagram from ingress router to egress router |
6035341, | Oct 31 1996 | SENSORMATIC ELECTRONICS, LLC | Multimedia data analysis in intelligent video information management system |
6038594, | Feb 02 1998 | TELESAT NETWORK SERVICES, INC | Internet communication system and method with asymmetric terrestrial and satellite links |
6058435, | Feb 04 1997 | UNIFY, INC | Apparatus and methods for responding to multimedia communications based on content analysis |
6067580, | Mar 11 1997 | International Business Machines Corporation | Integrating distributed computing environment remote procedure calls with an advisory work load manager |
6249516, | Dec 06 1996 | IPCO, LLC | Wireless network gateway and method for providing same |
6253230, | Sep 22 1998 | International Business Machines Corporation | Distributed scalable device for selecting a server from a server cluster and a switched path to the selected server |
6360266, | Dec 17 1993 | Apple Inc | Object-oriented distributed communications directory system |
6418478, | Oct 30 1997 | Commvault Systems, Inc. | Pipelined high speed data transfer mechanism |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Jan 20 1999 | International Business Machines Corporation | (assignment on the face of the patent) | / | |||
Jan 20 1999 | CARPENTER, GEOFFREY C | International Business Machines Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 009713 | /0037 | |
Jan 20 1999 | GOLDSZMIDT ZIMAN, GERMAN S | International Business Machines Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 009713 | /0037 | |
Sep 28 2012 | International Business Machines Corporation | eBay Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 029536 | /0500 |
Date | Maintenance Fee Events |
Jun 29 2004 | ASPN: Payor Number Assigned. |
Sep 19 2007 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Oct 26 2011 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Nov 25 2015 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
Jun 08 2007 | 4 years fee payment window open |
Dec 08 2007 | 6 months grace period start (w surcharge) |
Jun 08 2008 | patent expiry (for year 4) |
Jun 08 2010 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jun 08 2011 | 8 years fee payment window open |
Dec 08 2011 | 6 months grace period start (w surcharge) |
Jun 08 2012 | patent expiry (for year 8) |
Jun 08 2014 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jun 08 2015 | 12 years fee payment window open |
Dec 08 2015 | 6 months grace period start (w surcharge) |
Jun 08 2016 | patent expiry (for year 12) |
Jun 08 2018 | 2 years to revive unintentionally abandoned end. (for year 12) |