US20130268678A1 - Method and Apparatus for Facilitating Fulfillment of Requests on a Communication Network - Google Patents

Method and Apparatus for Facilitating Fulfillment of Requests on a Communication Network Download PDF

Info

Publication number
US20130268678A1
US20130268678A1 US13/909,606 US201313909606A US2013268678A1 US 20130268678 A1 US20130268678 A1 US 20130268678A1 US 201313909606 A US201313909606 A US 201313909606A US 2013268678 A1 US2013268678 A1 US 2013268678A1
Authority
US
United States
Prior art keywords
web
service
requests
request
network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US13/909,606
Inventor
Siva Subramanian
Franco Travostino
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
RPX Clearinghouse LLC
Original Assignee
Rockstar Consortium US LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Rockstar Consortium US LP filed Critical Rockstar Consortium US LP
Priority to US13/909,606 priority Critical patent/US20130268678A1/en
Publication of US20130268678A1 publication Critical patent/US20130268678A1/en
Assigned to RPX CLEARINGHOUSE LLC reassignment RPX CLEARINGHOUSE LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BOCKSTAR TECHNOLOGIES LLC, CONSTELLATION TECHNOLOGIES LLC, MOBILESTAR TECHNOLOGIES LLC, NETSTAR TECHNOLOGIES LLC, ROCKSTAR CONSORTIUM LLC, ROCKSTAR CONSORTIUM US LP
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Definitions

  • the present invention relates to communication networks and, more particularly, to a method and apparatus for facilitating fulfillment of web-service requests on a communication network, for example by enabling load balancing of the requests to resources and tracking the requests on the resources.
  • Data communication networks may include various computers, servers, nodes, routers, switches, bridges, hubs, proxies, and other network devices coupled to and configured to pass data to one another. These devices will be referred to herein as “network elements.” Data is communicated through the data communication network by passing protocol data units, such as packets, frames, data cells, segments, or other logical associations of bits/bytes of data, between the network elements by utilizing one or more communication links between the network elements. A particular protocol data unit may be handled and modified by multiple network elements and cross multiple communication links as it travels between its source and its destination over the network.
  • protocol data units such as packets, frames, data cells, segments, or other logical associations of bits/bytes of data
  • Web servers are conventionally used to provide web pages in response to requests for content from network users.
  • content switches were developed to provide enhanced services on the network, such as to allow these requests for content to be distributed between several web servers so that no individual web server would be overloaded with user requests.
  • Distributing requests between several web servers has become known as “load balancing.”
  • Several methods have been developed to distribute web user content requests, such as a round-robin method in which the web servers are designated to service requests in a particular order and a modified round-robin method in which particular web servers are designated more frequently than other web servers. Since the user-generated requests generally all involve transactions that are of relatively uniform size and can be handled in a real-time manner, this type of load balancing scheme generally works fairly well for user-to-network interactions.
  • Web-service is a mechanism to support computer-to-computer transactions. These transactions may involve relatively complex computations, database accesses, and may require other network transactions to be generated or invoked.
  • a web-service may enable a computerized inventory system to maintain an inventory log, interrogate depletion of the inventory at various stations or monitoring points, and order new inventory by interfacing another computing system as necessary.
  • conventional web-service use Simple Object Access Protocol (SOAP) and eXtensible Markup Language (XML) to initiate and participate in computer-to-computer transactions, although the invention discussed below will not be limited to only using these particular protocols.
  • SOAP Simple Object Access Protocol
  • XML eXtensible Markup Language
  • web-service requests increase in size and complexity, it may become necessary to split the requests into several segments and split those segments between several different servers. Similarly, a single web-service request may spawn other sub-requests that need to be serviced by other servers or on other resources. In this environment, it would be advantageous to enable web-service requests to be managed, monitored, and/or tracked so that progress of the request may be determined across the several servers and the network could provide update responses to the client regardless of the platform being used to implement the request.
  • a content switch is provided with a web-service facilitator to enable web-service requests to be intercepted, analyzed, and intelligently load-balanced to servers within a server farm, between server clusters, or between server clusters and then between servers within the server cluster forming the web-resource of interest to the request.
  • the web-service facilitator may collect historical data and use the historical data to more accurately predict how much server resources will be required to fulfill the request.
  • the web-service facilitator may also include many other features, such as a scheduler configured to enable the web-service request to be scheduled for future execution and tracking mechanism configured to enable the web-service requests to be tracked as it is processed by the web-resource, and as secondary and sub-secondary requests are generated and cause secondary and sub-secondary responses to be generated.
  • a scheduler configured to enable the web-service request to be scheduled for future execution
  • tracking mechanism configured to enable the web-service requests to be tracked as it is processed by the web-resource, and as secondary and sub-secondary requests are generated and cause secondary and sub-secondary responses to be generated.
  • Other manners of facilitating web-service requests may be included as well and the invention is not limited to these several examples. While the invention will be discussed herein in connection with web-service requests, the invention is not limited to this embodiment as it also may be applied to facilitating requests for on-demand computing and grid resources.
  • FIG. 1 is a functional block diagram of a network containing one or more content switches configured to facilitate fulfillment of web-service requests according to an embodiment of the invention
  • FIG. 2 is a program flow diagram illustrating execution of a web-service request on the network of FIG. 1 ;
  • FIG. 3 is a flow chart illustrating a process of facilitating a web-service request by intelligently load-balancing the request to an available resource server;
  • FIG. 4 is a functional block diagram of a content switch including a web-service facilitator interfaced with web-service resources according to an embodiment of the invention.
  • a content switch or other content-aware network element is configured to intercept web-service requests and intelligently load balance the web-service requests between servers configured to perform the requested web-service.
  • Embodiments of the invention may include numerous features, such as the ability to perform load balancing based on the type of request, the target class of server, whether the request is likely to spawn any subservient requests, statistical information associated with how particular servers have handled other similar previous requests, the pending requests and work load on the servers, the current ability of the servers to handle additional requests, the numbers type and schedule of requests in a queue waiting to be allocated to one or more of the servers, and numerous other factors that may affect the servers' ability to process the request.
  • FIG. 1 illustrates a network containing one or more content switches configured to facilitate fulfillment of web-service requests, such as to enable the web-service requests to be load balanced between multiple resource servers and/or to enable the resource request to be monitored/tracked on the network according to an embodiment of the invention.
  • a web-service client 10 seeking to initiate a transaction issues a request (arrow 1 ) across a communication network 12 such as the Internet.
  • the invention is not limited to an implementation that operates over the Internet, however, as other network infrastructures may be used as well.
  • the target of the request typically will be a resource 14 capable of fulfilling the request.
  • a content switch 16 on the communication network is configured to interface the resource 14 to the network and to intercept communications between the web-service client 10 and resource 14 .
  • the content switch 16 may contain a web-service facilitator 18 to enable the content switch 16 to perform enhanced services in connection with facilitating the fulfillment web-service requests on the communication network.
  • One aspect of the web-service facilitator may enable the content switch 16 to implement load balancing between servers 20 or other computer environments associated with the resource 14 to enable requests to be intelligently allocated to one of the servers.
  • Another aspect of the web services facilitator may enable the content switch to monitor the progress of the web-service requests and inform the web-service client of the progress of the request.
  • the content switch 16 has directed the web-service request to server A in resource 14 .
  • This server may be able to fulfill the request on its own or may be required to spawn secondary requests to other web-service resources.
  • the server A has spawned a secondary request (arrow 2 ) to another resource 14 ′.
  • the secondary resources may be interfaced to the network using a content switch 16 ′ having a web-service facilitator 18 ′ in much the same way as the primary resource 14 is interfaced to the communication network. If the secondary resource needs to issue tertiary requests it will do so as well. This process may iterate until all the necessary resources are marshaled to fulfill the primary request.
  • the secondary resource When the secondary resource has completed its portion of the secondary request, it passes the secondary result (arrow 3 ) back to the requesting primary web-service resource 14 . Where tertiary and sub-tertiary requests have been spawned, the results of these requests may be passed back to the secondary resource 14 ′ or may be passed directly to the primary web-service resource 14 .
  • the primary web-service resource 14 will then respond to the web-service client 10 with the result from the primary request (arrow 4 ).
  • the other web-service marshaled to work on the web-service request may also respond directly to the web-service client.
  • FIG. 2 illustrates a flow diagram showing the execution of a web-service request on the network of FIG. 1 .
  • a resource server A (arrow 1 ) through content switch X and content switch Y, at least one of which include a web-service facilitator 18 .
  • the resource server A will operate on the request for a period of time (C 1 ).
  • the resource server A may then determine that it needs access to a secondary resource, server D, and pass a secondary request (arrow 2 ) to resource server D. Since server A is interfaced with content switch Y, the request will pass through content switch Y, which will then pass the request toward server D via content switch Z.
  • Resource server D will operate on the secondary request for a period of time (C 2 ) and pass the result of the secondary request (arrow 3 ) back to resource server A.
  • the result will be passed via content switches Z and Y in the reverse manner as the secondary request.
  • Resource server A may then process the request using the secondary result for a period of time (C 3 ) and finally issue a result (arrow 4 ) to the client.
  • the result will be passed through the network via content switches Y and X.
  • the same server was used to process the request before and after spawning the secondary request.
  • the invention is not limited in this regard, as different resource servers may be used to serve the request.
  • server A may be used to serve the request initially, and then server B may be used to service the request upon receipt of the result from the secondary web-server response (assuming appropriate coordination and transfer of data between the servers A and B).
  • server B may be used to service the request upon receipt of the result from the secondary web-server response (assuming appropriate coordination and transfer of data between the servers A and B).
  • the invention is not limited therefore to a particular implementation as this figure is intended to illustrate the nature in which a web-resource may require server resources over a period of time and over a sequence of different and possibly unrelated servers. Because the content switches X, Y, and Z handle the requests and results, they are able to manage, monitor, and track the web service request on the network.
  • allocation of a web-service request to a resource may spawn a complex series of events which may require the resource to operate on the request, stop operation on the request, and then resume operation on the request at an undetermined time in the future.
  • the content switch with web-service facilitator may intelligently determine the anticipated sequence of events associated with the request and allocate requests to resources accordingly, taking into account not only the current load and current processor commitments, but the anticipated processor commitments associated with the other requests being handled by the web-service resource.
  • FIG. 3 illustrates a flow chart explaining one method that may be utilized by a content switch and web-service facilitator 18 to implement load balancing of web-service requests to web-service resources and to provide other enhanced services on the communication network in connection with web-service.
  • the web-service facilitator 18 when a web-service request is received by the content switch 16 ( 30 ), the web-service facilitator 18 initially collects information associated with the request ( 32 ). For example, the web-service facilitator may determine what type of request is embodied in the web-service request ( 34 ). Since the resource may be capable of handling many different types of requests and the content switch may be configured to interface more than one resource 14 to the communication network 12 .
  • the request may be a read request, a write request, or may require any number of additional types of operations.
  • the web-service facilitator 18 can start to determine which resource may be most likely to be able to handle the request. Additionally, the web-service facilitator may determine constraints associated with the request ( 36 ) such as time constraints associated with execution, quality of service constraints, security parameters, and many other different constraints that may be specified by the client.
  • Determining the constraints may also involve determining other parameters associated with the request, such as the size of the request (i.e. what the request is actually seeking) and other parameters that may affect the resource's ability to service the request and/or the amount of effort the resource is likely to have to expend to process the request. Additionally, the web-service facilitator may determine whether it is likely that the request will spawn any secondary, tertiary, or sub-tertiary requests.
  • the web-service facilitator may also collect information relating to the resource ( 38 ).
  • the current state of the resources may include current conditions ( 40 ), such as the time of day, week, month, year, whether it is a holiday or weekend, the state of congestion on the network, and other factors that may influence servicing of the request.
  • the current resource information may include determining resource conditions such as the current processor load on the server (as estimated by the web-service facilitator or as communicated by the server), whether a server is currently experiencing failure or if the server is expected to be turned off for an upgrade or other scheduled outage.
  • the web-service facilitator may collect current processor load information or other resource information from the resource itself.
  • the web-service facilitator may have facilities to enable it to interface a CPU monitor or engage in Simple Network Management Protocol exchanges with the web-resources to determine the current state of execution on the web resources.
  • the invention is not limited to any particular way of ascertaining the current operating conditions on the resources.
  • the resources information also includes determining what other requests are being handled by the server, resource, or web-service facilitator that may impact or be impacted by assignment of the present request to one of the servers. For example, the web-service facilitator may look at pending requests ( 46 ), queued requests ( 48 ), spawned requests ( 50 ), scheduled requests ( 52 ) or any other requests that are being handled, monitored, or are otherwise known to the web-service facilitator.
  • the web-service facilitator will collect historical information ( 54 ) to help it make its load balancing determination or to help it determine if a particular sequence of events may be considered unusual.
  • Historical data may include data gathered by the web-service facilitator associated with other similar requests, such as how long typical requests of this nature tend to take, an estimate of the burden associated with processing this request on the resource given how other requests of this nature have been processed previously, whether this request is likely to spawn any sub-requests, and numerous other historical facts that may be useful for the web-service facilitator to make an intelligent decision about how much processing time will be required to implement this resource request and the timing associated with processing this request.
  • the web-service facilitator may learn from processing and tracking requests on the web-service resources that a particular type of request requires a relatively large block of processor time for a relatively short period of time, while another type of web-service request spawns a large number of sub-requests and therefore requires a relatively small amount of processor time on the primary resource but is likely to take a relatively long time to execute. In this instance it may be better to cause the first types of requests to be handled by one or a set of primary resources and to cause the second types of requests to be handled by another set of primary resources.
  • the invention is not limited to this particular example, as many different types of network request and much more sophisticated analysis may be performed in connection with interfacing the requests to the web-service resources.
  • the web-service facilitator 18 may make a determination as to which resource and optionally which server within which resource should be used to satisfy the request ( 56 ).
  • the web-service facilitator may use the collected request information and resource information and use that information to determine the amount of processor resources were required to process previous similar requests under similar situations.
  • the statistical and/or raw historical data may be used in this context.
  • classification may be used to cause the requests to fall within one of a predetermined number of request classifications and optionally within one or more sub-classifications within the classification. Classifying requests makes it easier to identify similar previous requests. Similarly, current resource information may be classified into a series of categories. Breaking down the total set of possible number of available states into classes and sub-classes increases the likelihood that raw or statistical data will be available that may be identified as having been conceptually similar to the current request. The invention is not limited in this regard, however, as any number of ways may be used as well to correlate request, resource, and historical data to determine an estimated resource usage value, which may then be used to select from between the available resources.
  • the web-service facilitator 18 may determine that it is advantageous to cause two different servers to operate on the request simultaneously to cooperatively execute the request or to race to fulfill the request.
  • the invention is not limited to this embodiment, however.
  • the web-service facilitator may perform additional functions in connection with the web-service request as well, and the invention is not limited to a content switch that simply load balances web-service requests to web-service resources.
  • the content switch may also perform additional services on the communication network, such as security services, on behalf of the web-service client or web-service resource.
  • security services include authentication determination, authorization determination, establishing accounting entries, performing firewall services, and numerous other security services.
  • the web-service facilitator may also monitor the progress of the web-service request, for example where the web-service request may take a not insignificant period of time to execute on the resource or where the web-service request is likely to spawn secondary or sub-secondary requests.
  • the web-service facilitator may also monitor the progress of the request to update its databases of historical data based on the execution of this particular request on the selected web-resource(s).
  • FIG. 4 illustrates a content switch having a web-service facilitator instantiated thereon and interfaced to two servers configured to handle web service requests on the communication network.
  • the content switch 16 generally includes network ports 51 configured to interface with the network 12 and servers 20 configured to provide web-service resources 14 .
  • the ports 51 are interconnected by ingress processors 53 to a switch fabric 55 .
  • the ports, ingress processors, and switch fabric form a data plane within the content switch and enable the content switch to handle data packets on the network.
  • One or more packet queues 56 may be connected to the switch fabric to store packets or other protocol data units pending transmission by the network element 16 .
  • a data queue 58 may be provided to receive selected data from the switch fabric identified as being relevant to the web services facilitator.
  • the switch fabric 55 is controlled by a processor 60 containing control logic 62 .
  • the processor 60 may control the switch fabric directly or through a control interface 64 configured to implement filters 64 and other policy rules 66 on the switch fabric 55 .
  • the processor may cause one or more filters to be configured on the switch fabric such that packets received on one of the network ports and containing a particular combination of features may be directed to a packet inspection module or to the control plane containing the processor 60 for inspection.
  • a web-service facilitator software package including program code configured to enable the content switch to perform the functions associated with the web-service facilitator described above.
  • the web-service facilitator software may be stored in memory and interfaced to the processor 60 , or may be loaded onto the processor 60 to enable the content switch 16 to perform the functions of the web-service facilitator.
  • the web-service facilitator may be maintained on a separate computing platform such as a blade server and interfaced to the content switch.
  • the invention is not limited to any particular manner of implementing the web-service facilitator or any particular manner of associating the web-service facilitator to the content switch 16 . Accordingly, the invention is intended to encompass any such variations.
  • a memory 70 containing data and instructions configured to enable the web-services facilitator to be instantiated on the processor 60 and control logic 62 is provided on the network element as well.
  • the memory in this embodiment, contains a web-service facilitator that is configured to facilitate fulfillment of web-service requests by enabling requests to be load-balanced between several servers associated with a resource.
  • the load balancing software includes several subroutines configured to collect and/or analyze data associated with the request, resource, or historical data.
  • the load balancing software 72 includes a request type subroutine 74 configured to determine the type of request received by the web-services facilitator.
  • a request constraints subroutine 76 is included to determine and record constraints associated with the request.
  • a current conditions subroutine 78 is provided to ascertain the current conditions attendant to the request, such as the time at which the request is to execute, etc.
  • the current conditions subroutine may be used to determine the conditions at the time the request is received where the request is to be executed in real time, or may determine the current conditions when the request is expected to execute, for example where the request is to be executed at a particular time in the future.
  • a resource conditions subroutine ( 80 ) is provided to determine the conditions of the resource at the time the resource is to be executed. As this subroutine looks at actual operational parameters of the requested resource or servers associated with the resource, this subroutine only looks at present conditions, although it may be possible to make informed guesses as to what the conditions of the servers are likely to be at a predetermined future point in time.
  • a pending request subroutine 82 , queued request subroutine 84 , spawned request subroutine 86 and a scheduled request subroutine 88 all keep track of different types of requests that are being processed by the resource or are scheduled to be processed by the resource. Optionally these subroutines may be collapsed into a unified request subroutine.
  • a statistics subroutine 90 collects raw data from a raw data database 92 to obtain meaningful abstraction of the raw data for use by the load balancing software to determine an estimated resource usage value, which may be used to select one of the resources to handle the request.
  • the web-service facilitator may include tables of raw data 92 to retain information about requests that have been serviced by the content switch to thereby establish a database of information.
  • this database of historical information may include both raw data and statistical data, the raw data being results obtained from individual requests and the statistical data being data derived from the raw data.
  • Examples of types of data that may be collected by the web-service facilitator include request type, the request magnitude, the number and type of spawned secondary/sub-secondary requests, the total time to receive a response, the amount of processor time attributed to the request by the resource, the type of server at the resource that was used to process the request, the state of the server at the time the request was allocated to the server, the amount of congestion on the network at the time the request was sent to the server, what time of the day the request was sent to the resource, the day of the week or particular other time period during the week/month/year when the request was sent to the resource, and many other factors that may help the web-service facilitator estimate the amount of processor resources required to fulfill the request and establish the optimum server to handle the request.
  • the raw data collected from experiences with allocating individual or groups of requests to the users may be collected and then abstracted periodically or on an on-going basis to obtain statistical information.
  • the statistical information may be more useful for the web-service facilitator as it may provide a faster way to determine how a request with particular parameters may be handled.
  • the load balancing software may contain additional modules as well, or the network element may contain additional modules configured to supplement the load balancing software to enhance the capabilities of the network element and provide additional functionality to the web service facilitator.
  • These modules ( 94 - 102 and 106 ) discussed below may be integrated with and/or form part of the load balancing software 72 or may be self contained software or hardware modules configured to implement particular aspects of the web service facilitator.
  • the web-service facilitator may include a classifier 94 configured to classify requests, and current conditions into categories, and sub-categories.
  • the statistical information may be organized by category and sub-category as well, to enable a fast correlation between the received request, conditions, and statistical information to take place.
  • the content switch may categorize the request into a database request, and into a sub-category database read. Within that sub-category, it may be determined that the request will need to perform approximately 200 database read operations to fulfill the request. From the raw data associated with other database read operations, statistical information may be collected indicating that database read operations take on average 1 ms to complete when the server is not congested, and that the database read operations take on average 5 ms to complete when the server is congested. Given the time at which the request is received the web-service facilitator may determine which servers are likely to be congested, or if all the servers are likely to be congested.
  • the web-service facilitator may determine that it will take anywhere between 200 and 1000 ms to complete the request. This information may be used to determine which server would best be able to handle this request. Additionally, this information may be stored in another module in the web-service facilitator to enable the web-service facilitator to have better knowledge of the likely load on that server in connection with allocating other requests to the resource.
  • This example is not meant to limit the scope of the invention but rather to explain an example of how the web-service facilitator may be put to use in a real-life example. The invention extends beyond this example to implementations configured to utilize the information available to the web-service facilitator to perform load balancing and other services on behalf of the web-service resources.
  • the web-service facilitator may also include a scheduling module 96 to schedule execution of requests on the resources. For example, it may be that the request does not need to be executed in real time or was requested to be executed at a particular time in the future. Including a scheduling module enables the web-service facilitator to schedule constrained, unconstrained, and under-constrained requests and adjust the schedules to accommodate newly received requests while also allowing requests to be scheduled for future execution. Additionally, where the resources are overloaded servicing other requests, the scheduling module may act as a queue to hold requests until they may be passed to the servers without risking that the servers may drop the requests for lack of capacity and to prevent the servers from experiencing a failure due to the overload condition.
  • the web-service facilitator may include a request monitor 98 to enable the web-service facilitator to monitor the ongoing status of the request after it has been submitted to the resource for execution. For example, it may be that a given request will require several attendant resources to participate to prepare a response to the request. This may be done for example as discussed above by issuing sub-requests to other resources, etc.
  • the request monitor may monitor these sub-requests and match the secondary and sub-secondary responses with the primary request to monitor the progress of the primary and secondary requests. This may be done, for example, by setting appropriate filters and listening for responses to the various sub-requests.
  • the request monitor may also be configured to perform update functions to update the client of the progress of the request periodically, upon request, or upon occurrence of a particular or series of events associated with the request.
  • the web-service facilitator may include a resource health monitor 100 to enable the web-service facilitator to monitor the state of the network elements configured to implement the request or other associated network elements.
  • the resource health monitor may be configured to intervene where it appears an unexpected pattern of events associated with a request has transpired. For example, the resource health monitor may detect that a secondary response to a secondary request has not been received within a particular period of time after the secondary request was sent to the secondary resource. In this event, the resource health monitor may conclude, based on the period of time and historical response information, that the secondary request has gotten lost or dropped somewhere in the secondary resource or on the network interconnecting the content switch with the secondary resource. This may cause the resource health monitor to take action or alert the web-service facilitator to the potential problem, which may be used to initiate an inquiry or to initiate a resubmission of the secondary request.
  • the web-service facilitator may also include a management function to enable it to be interfaced by a network management program to set default values, parameters, and to otherwise enable the content switch to be managed for operation on the network or in connection with particular resources available through it.
  • the web-service facilitator may also include a security module configured to perform security services on the network.
  • the security module may perform AAA (Authorization, Authentication, and Accounting) services, encryption services, firewall services, or numerous other security services on the network.
  • AAA Authorization, Authentication, and Accounting
  • the security module 102 may be used in this example to implement these access restrictions. Numerous other security operations may be implemented as well and the invention is not limited to this particular example.
  • the resources 20 may participate in collecting data for use by the web-service facilitator.
  • the resources may include a CPU occupancy monitor 104 or other facility to enable processor time, request parameters, time of day, and other raw and/or statistical information to be collected and passed to the web-service facilitator 18 .
  • This information may be communicated to the content switch over a dedicated management port 63 which may be connected to a management network, or may be communicated over the data network used to interface requests to the resources.
  • the invention is not limited to how the raw/statistical information is communicated between the resource and content switch.
  • the content switch may also include numerous other components configured to enable it to operate on the network.
  • the content switch may include a protocol stack 106 containing instructions and data relevant to communications protocols to enable it to participate in protocol exchanges on the network.
  • the content switch may also include content switch software to enable it to perform packet inspection on filtered packets to learn the content of the packets being transported on the network.
  • the control logic of FIG. 5 may be implemented as a set of program instructions that are stored in a computer readable memory within the network device and executed on a microprocessor within the network device.
  • ASIC Application Specific Integrated Circuit
  • FPGA Field Programmable Gate Array
  • Programmable logic can be fixed temporarily or permanently in a tangible medium such as a read-only memory chip, a computer memory, a disk, or other storage medium.
  • Programmable logic can also be fixed in a computer data signal embodied in a carrier wave, allowing the programmable logic to be transmitted over an interface such as a computer bus or communication network. All such embodiments are intended to fall within the scope of the present invention.

Abstract

Fulfillment of web-service requests may be facilitated by intelligently load balancing the web-service requests between servers or server clusters configured to perform the requested web-service. Load balancing may be based on the type of request, target class of server, whether the request is likely to spawn any subsequent requests, relevant historical information, other requests, current and anticipated work load on the servers, the current ability of the servers to handle additional requests, the numbers type and schedule of requests in a queue waiting to be allocated to one or more of the servers, and numerous other factors that may affect the servers' ability to process the request. Requests may be classified to enable historical correlation between how servers have handled previous requests and the present request. Additionally, requests may be scheduled for future execution and monitored during execution.

Description

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • This application is a continuation of U.S. patent application Ser. No. 10/794,675, filed Mar. 5, 2004, the content of which is hereby incorporated herein by reference.
  • BACKGROUND OF THE INVENTION
  • 1. Field of the Invention
  • The present invention relates to communication networks and, more particularly, to a method and apparatus for facilitating fulfillment of web-service requests on a communication network, for example by enabling load balancing of the requests to resources and tracking the requests on the resources.
  • 2. Description of the Related Art
  • Data communication networks may include various computers, servers, nodes, routers, switches, bridges, hubs, proxies, and other network devices coupled to and configured to pass data to one another. These devices will be referred to herein as “network elements.” Data is communicated through the data communication network by passing protocol data units, such as packets, frames, data cells, segments, or other logical associations of bits/bytes of data, between the network elements by utilizing one or more communication links between the network elements. A particular protocol data unit may be handled and modified by multiple network elements and cross multiple communication links as it travels between its source and its destination over the network.
  • Web servers are conventionally used to provide web pages in response to requests for content from network users. As networks have evolved, content switches were developed to provide enhanced services on the network, such as to allow these requests for content to be distributed between several web servers so that no individual web server would be overloaded with user requests. Distributing requests between several web servers has become known as “load balancing.” Several methods have been developed to distribute web user content requests, such as a round-robin method in which the web servers are designated to service requests in a particular order and a modified round-robin method in which particular web servers are designated more frequently than other web servers. Since the user-generated requests generally all involve transactions that are of relatively uniform size and can be handled in a real-time manner, this type of load balancing scheme generally works fairly well for user-to-network interactions.
  • As networks have evolved, the concept of web-service has been developed. Web-service is a mechanism to support computer-to-computer transactions. These transactions may involve relatively complex computations, database accesses, and may require other network transactions to be generated or invoked. For example, a web-service may enable a computerized inventory system to maintain an inventory log, interrogate depletion of the inventory at various stations or monitoring points, and order new inventory by interfacing another computing system as necessary. Typically, conventional web-service use Simple Object Access Protocol (SOAP) and eXtensible Markup Language (XML) to initiate and participate in computer-to-computer transactions, although the invention discussed below will not be limited to only using these particular protocols.
  • As the transactions become more complex, and more resource and time intensive, a simple round-robin or modified round-robin approach becomes insufficient. Specifically, it may be that a particular transaction requires a significant amount of processor time whereas other transactions require significantly less processor time. As networks become more diverse, tasking the client application with selecting an appropriate server is not feasible as often the clients don't have the capability to monitor server loads and request specific servers, or are not provided with sufficient information to allow them to make an informed decision. Accordingly, it would be advantageous to enable web-service requests to be load balanced across web servers forming the web resources more intelligently.
  • Additionally, as web-service requests increase in size and complexity, it may become necessary to split the requests into several segments and split those segments between several different servers. Similarly, a single web-service request may spawn other sub-requests that need to be serviced by other servers or on other resources. In this environment, it would be advantageous to enable web-service requests to be managed, monitored, and/or tracked so that progress of the request may be determined across the several servers and the network could provide update responses to the client regardless of the platform being used to implement the request.
  • SUMMARY OF THE INVENTION
  • The present invention overcomes the above-mentioned and other drawbacks by providing a method and apparatus for facilitating requests for web-services, on-demand computing, and grid resources, for example by enabling load balancing of the requests to resources and tracking the requests on the resources. According to one embodiment of the invention, a content switch is provided with a web-service facilitator to enable web-service requests to be intercepted, analyzed, and intelligently load-balanced to servers within a server farm, between server clusters, or between server clusters and then between servers within the server cluster forming the web-resource of interest to the request. The web-service facilitator may collect historical data and use the historical data to more accurately predict how much server resources will be required to fulfill the request. The web-service facilitator may also include many other features, such as a scheduler configured to enable the web-service request to be scheduled for future execution and tracking mechanism configured to enable the web-service requests to be tracked as it is processed by the web-resource, and as secondary and sub-secondary requests are generated and cause secondary and sub-secondary responses to be generated. Other manners of facilitating web-service requests may be included as well and the invention is not limited to these several examples. While the invention will be discussed herein in connection with web-service requests, the invention is not limited to this embodiment as it also may be applied to facilitating requests for on-demand computing and grid resources.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • Aspects of the present invention are pointed out with particularity in the appended claims. The present invention is illustrated by way of example in the following drawings in which like references indicate similar elements. The following drawings disclose various embodiments of the present invention for purposes of illustration only and are not intended to limit the scope of the invention. For purposes of clarity, not every component may be labeled in every figure. In the figures:
  • FIG. 1 is a functional block diagram of a network containing one or more content switches configured to facilitate fulfillment of web-service requests according to an embodiment of the invention;
  • FIG. 2 is a program flow diagram illustrating execution of a web-service request on the network of FIG. 1;
  • FIG. 3 is a flow chart illustrating a process of facilitating a web-service request by intelligently load-balancing the request to an available resource server; and
  • FIG. 4 is a functional block diagram of a content switch including a web-service facilitator interfaced with web-service resources according to an embodiment of the invention.
  • DETAILED DESCRIPTION
  • The following detailed description sets forth numerous specific details to provide a thorough understanding of the invention. However, those skilled in the art will appreciate that the invention may be practiced without these specific details. In other instances, well-known methods, procedures, components, protocols, algorithms, and circuits have not been described in detail so as not to obscure the invention.
  • According to one embodiment of the invention, a content switch or other content-aware network element is configured to intercept web-service requests and intelligently load balance the web-service requests between servers configured to perform the requested web-service. Embodiments of the invention may include numerous features, such as the ability to perform load balancing based on the type of request, the target class of server, whether the request is likely to spawn any subservient requests, statistical information associated with how particular servers have handled other similar previous requests, the pending requests and work load on the servers, the current ability of the servers to handle additional requests, the numbers type and schedule of requests in a queue waiting to be allocated to one or more of the servers, and numerous other factors that may affect the servers' ability to process the request.
  • FIG. 1 illustrates a network containing one or more content switches configured to facilitate fulfillment of web-service requests, such as to enable the web-service requests to be load balanced between multiple resource servers and/or to enable the resource request to be monitored/tracked on the network according to an embodiment of the invention. As shown in FIG. 1, in a conventional web-service context, a web-service client 10 seeking to initiate a transaction issues a request (arrow 1) across a communication network 12 such as the Internet. The invention is not limited to an implementation that operates over the Internet, however, as other network infrastructures may be used as well. The target of the request typically will be a resource 14 capable of fulfilling the request.
  • According to an embodiment of the invention, a content switch 16 on the communication network is configured to interface the resource 14 to the network and to intercept communications between the web-service client 10 and resource 14. As described in greater detail below, the content switch 16 may contain a web-service facilitator 18 to enable the content switch 16 to perform enhanced services in connection with facilitating the fulfillment web-service requests on the communication network.
  • One aspect of the web-service facilitator may enable the content switch 16 to implement load balancing between servers 20 or other computer environments associated with the resource 14 to enable requests to be intelligently allocated to one of the servers. Another aspect of the web services facilitator may enable the content switch to monitor the progress of the web-service requests and inform the web-service client of the progress of the request. These and other aspects in which the web-service facilitator 18 may facilitate fulfillment of web-service requests will be discussed below.
  • Assume, in the embodiment illustrated in FIG. 1, that the content switch 16 has directed the web-service request to server A in resource 14. This server may be able to fulfill the request on its own or may be required to spawn secondary requests to other web-service resources. In the example illustrated in FIG. 1, the server A has spawned a secondary request (arrow 2) to another resource 14′. The secondary resources may be interfaced to the network using a content switch 16′ having a web-service facilitator 18′ in much the same way as the primary resource 14 is interfaced to the communication network. If the secondary resource needs to issue tertiary requests it will do so as well. This process may iterate until all the necessary resources are marshaled to fulfill the primary request.
  • When the secondary resource has completed its portion of the secondary request, it passes the secondary result (arrow 3) back to the requesting primary web-service resource 14. Where tertiary and sub-tertiary requests have been spawned, the results of these requests may be passed back to the secondary resource 14′ or may be passed directly to the primary web-service resource 14. The primary web-service resource 14 will then respond to the web-service client 10 with the result from the primary request (arrow 4). Optionally, the other web-service marshaled to work on the web-service request may also respond directly to the web-service client.
  • FIG. 2 illustrates a flow diagram showing the execution of a web-service request on the network of FIG. 1. As shown in FIG. 2, when a client issues a web-service request, the request is passed toward a resource server A (arrow 1) through content switch X and content switch Y, at least one of which include a web-service facilitator 18. The resource server A will operate on the request for a period of time (C1). The resource server A may then determine that it needs access to a secondary resource, server D, and pass a secondary request (arrow 2) to resource server D. Since server A is interfaced with content switch Y, the request will pass through content switch Y, which will then pass the request toward server D via content switch Z. Resource server D will operate on the secondary request for a period of time (C2) and pass the result of the secondary request (arrow 3) back to resource server A. The result will be passed via content switches Z and Y in the reverse manner as the secondary request. Resource server A may then process the request using the secondary result for a period of time (C3) and finally issue a result (arrow 4) to the client. The result will be passed through the network via content switches Y and X. In this embodiment, the same server was used to process the request before and after spawning the secondary request. The invention is not limited in this regard, as different resource servers may be used to serve the request. For example, server A may be used to serve the request initially, and then server B may be used to service the request upon receipt of the result from the secondary web-server response (assuming appropriate coordination and transfer of data between the servers A and B). The invention is not limited therefore to a particular implementation as this figure is intended to illustrate the nature in which a web-resource may require server resources over a period of time and over a sequence of different and possibly unrelated servers. Because the content switches X, Y, and Z handle the requests and results, they are able to manage, monitor, and track the web service request on the network.
  • As shown in this FIG. 2, allocation of a web-service request to a resource may spawn a complex series of events which may require the resource to operate on the request, stop operation on the request, and then resume operation on the request at an undetermined time in the future. According to an embodiment of the invention, the content switch with web-service facilitator may intelligently determine the anticipated sequence of events associated with the request and allocate requests to resources accordingly, taking into account not only the current load and current processor commitments, but the anticipated processor commitments associated with the other requests being handled by the web-service resource.
  • FIG. 3 illustrates a flow chart explaining one method that may be utilized by a content switch and web-service facilitator 18 to implement load balancing of web-service requests to web-service resources and to provide other enhanced services on the communication network in connection with web-service. As shown in FIG. 3, when a web-service request is received by the content switch 16 (30), the web-service facilitator 18 initially collects information associated with the request (32). For example, the web-service facilitator may determine what type of request is embodied in the web-service request (34). Since the resource may be capable of handling many different types of requests and the content switch may be configured to interface more than one resource 14 to the communication network 12. For example, if the web-service request is directed at a database resource, the request may be a read request, a write request, or may require any number of additional types of operations. By inspecting the type of request, the web-service facilitator 18 can start to determine which resource may be most likely to be able to handle the request. Additionally, the web-service facilitator may determine constraints associated with the request (36) such as time constraints associated with execution, quality of service constraints, security parameters, and many other different constraints that may be specified by the client.
  • Determining the constraints may also involve determining other parameters associated with the request, such as the size of the request (i.e. what the request is actually seeking) and other parameters that may affect the resource's ability to service the request and/or the amount of effort the resource is likely to have to expend to process the request. Additionally, the web-service facilitator may determine whether it is likely that the request will spawn any secondary, tertiary, or sub-tertiary requests.
  • In addition to collect information about the request, the web-service facilitator may also collect information relating to the resource (38). The current state of the resources may include current conditions (40), such as the time of day, week, month, year, whether it is a holiday or weekend, the state of congestion on the network, and other factors that may influence servicing of the request. Additionally, the current resource information may include determining resource conditions such as the current processor load on the server (as estimated by the web-service facilitator or as communicated by the server), whether a server is currently experiencing failure or if the server is expected to be turned off for an upgrade or other scheduled outage.
  • The web-service facilitator may collect current processor load information or other resource information from the resource itself. According to an embodiment of the invention, the web-service facilitator may have facilities to enable it to interface a CPU monitor or engage in Simple Network Management Protocol exchanges with the web-resources to determine the current state of execution on the web resources. The invention is not limited to any particular way of ascertaining the current operating conditions on the resources.
  • The resources information also includes determining what other requests are being handled by the server, resource, or web-service facilitator that may impact or be impacted by assignment of the present request to one of the servers. For example, the web-service facilitator may look at pending requests (46), queued requests (48), spawned requests (50), scheduled requests (52) or any other requests that are being handled, monitored, or are otherwise known to the web-service facilitator.
  • In addition to request and resource information, the web-service facilitator will collect historical information (54) to help it make its load balancing determination or to help it determine if a particular sequence of events may be considered unusual. Historical data may include data gathered by the web-service facilitator associated with other similar requests, such as how long typical requests of this nature tend to take, an estimate of the burden associated with processing this request on the resource given how other requests of this nature have been processed previously, whether this request is likely to spawn any sub-requests, and numerous other historical facts that may be useful for the web-service facilitator to make an intelligent decision about how much processing time will be required to implement this resource request and the timing associated with processing this request.
  • For example, the web-service facilitator may learn from processing and tracking requests on the web-service resources that a particular type of request requires a relatively large block of processor time for a relatively short period of time, while another type of web-service request spawns a large number of sub-requests and therefore requires a relatively small amount of processor time on the primary resource but is likely to take a relatively long time to execute. In this instance it may be better to cause the first types of requests to be handled by one or a set of primary resources and to cause the second types of requests to be handled by another set of primary resources. The invention is not limited to this particular example, as many different types of network request and much more sophisticated analysis may be performed in connection with interfacing the requests to the web-service resources.
  • Once the relevant data has been collected from the request, target resource(s) and from historical records, the web-service facilitator 18 may make a determination as to which resource and optionally which server within which resource should be used to satisfy the request (56). There are many ways of using the collected data to make a load balancing determination and the invention is not limited to a particular embodiment. For example, the web-service facilitator may use the collected request information and resource information and use that information to determine the amount of processor resources were required to process previous similar requests under similar situations. The statistical and/or raw historical data may be used in this context.
  • Optionally, to make it easier to correlate request information, resource information and historical information, classification may be used to cause the requests to fall within one of a predetermined number of request classifications and optionally within one or more sub-classifications within the classification. Classifying requests makes it easier to identify similar previous requests. Similarly, current resource information may be classified into a series of categories. Breaking down the total set of possible number of available states into classes and sub-classes increases the likelihood that raw or statistical data will be available that may be identified as having been conceptually similar to the current request. The invention is not limited in this regard, however, as any number of ways may be used as well to correlate request, resource, and historical data to determine an estimated resource usage value, which may then be used to select from between the available resources.
  • Optionally, for time-sensitive and important requests, the web-service facilitator 18 may determine that it is advantageous to cause two different servers to operate on the request simultaneously to cooperatively execute the request or to race to fulfill the request. The invention is not limited to this embodiment, however.
  • The web-service facilitator may perform additional functions in connection with the web-service request as well, and the invention is not limited to a content switch that simply load balances web-service requests to web-service resources. For example, the content switch may also perform additional services on the communication network, such as security services, on behalf of the web-service client or web-service resource. Examples of security services include authentication determination, authorization determination, establishing accounting entries, performing firewall services, and numerous other security services.
  • Optionally, the web-service facilitator may also monitor the progress of the web-service request, for example where the web-service request may take a not insignificant period of time to execute on the resource or where the web-service request is likely to spawn secondary or sub-secondary requests. The web-service facilitator may also monitor the progress of the request to update its databases of historical data based on the execution of this particular request on the selected web-resource(s). These and other features of several embodiments of the invention will be discussed in greater detail below in connection with FIG. 4.
  • FIG. 4 illustrates a content switch having a web-service facilitator instantiated thereon and interfaced to two servers configured to handle web service requests on the communication network. As shown in FIG. 4, the content switch 16 generally includes network ports 51 configured to interface with the network 12 and servers 20 configured to provide web-service resources 14. The ports 51 are interconnected by ingress processors 53 to a switch fabric 55. The ports, ingress processors, and switch fabric form a data plane within the content switch and enable the content switch to handle data packets on the network. One or more packet queues 56 may be connected to the switch fabric to store packets or other protocol data units pending transmission by the network element 16. Additionally, to enable request data to be collected from traffic passing through the switch fabric, a data queue 58 may be provided to receive selected data from the switch fabric identified as being relevant to the web services facilitator.
  • The switch fabric 55 is controlled by a processor 60 containing control logic 62. In the embodiment illustrated in FIG. 4, the processor 60 may control the switch fabric directly or through a control interface 64 configured to implement filters 64 and other policy rules 66 on the switch fabric 55. For example, the processor may cause one or more filters to be configured on the switch fabric such that packets received on one of the network ports and containing a particular combination of features may be directed to a packet inspection module or to the control plane containing the processor 60 for inspection.
  • Interfaced to the control logic or resident thereon is a web-service facilitator software package including program code configured to enable the content switch to perform the functions associated with the web-service facilitator described above. The web-service facilitator software may be stored in memory and interfaced to the processor 60, or may be loaded onto the processor 60 to enable the content switch 16 to perform the functions of the web-service facilitator. Optionally, the web-service facilitator may be maintained on a separate computing platform such as a blade server and interfaced to the content switch. The invention is not limited to any particular manner of implementing the web-service facilitator or any particular manner of associating the web-service facilitator to the content switch 16. Accordingly, the invention is intended to encompass any such variations.
  • A memory 70 containing data and instructions configured to enable the web-services facilitator to be instantiated on the processor 60 and control logic 62 is provided on the network element as well. The memory, in this embodiment, contains a web-service facilitator that is configured to facilitate fulfillment of web-service requests by enabling requests to be load-balanced between several servers associated with a resource.
  • In the embodiment illustrated in FIG. 4, the load balancing software includes several subroutines configured to collect and/or analyze data associated with the request, resource, or historical data. For example, in the embodiment illustrated in FIG. 4, the load balancing software 72 includes a request type subroutine 74 configured to determine the type of request received by the web-services facilitator. A request constraints subroutine 76 is included to determine and record constraints associated with the request. A current conditions subroutine 78 is provided to ascertain the current conditions attendant to the request, such as the time at which the request is to execute, etc. The current conditions subroutine may be used to determine the conditions at the time the request is received where the request is to be executed in real time, or may determine the current conditions when the request is expected to execute, for example where the request is to be executed at a particular time in the future.
  • A resource conditions subroutine (80) is provided to determine the conditions of the resource at the time the resource is to be executed. As this subroutine looks at actual operational parameters of the requested resource or servers associated with the resource, this subroutine only looks at present conditions, although it may be possible to make informed guesses as to what the conditions of the servers are likely to be at a predetermined future point in time.
  • A pending request subroutine 82, queued request subroutine 84, spawned request subroutine 86 and a scheduled request subroutine 88 all keep track of different types of requests that are being processed by the resource or are scheduled to be processed by the resource. Optionally these subroutines may be collapsed into a unified request subroutine.
  • A statistics subroutine 90 collects raw data from a raw data database 92 to obtain meaningful abstraction of the raw data for use by the load balancing software to determine an estimated resource usage value, which may be used to select one of the resources to handle the request.
  • According to one embodiment of the invention, the web-service facilitator may include tables of raw data 92 to retain information about requests that have been serviced by the content switch to thereby establish a database of information. Optionally, this database of historical information may include both raw data and statistical data, the raw data being results obtained from individual requests and the statistical data being data derived from the raw data. Examples of types of data that may be collected by the web-service facilitator include request type, the request magnitude, the number and type of spawned secondary/sub-secondary requests, the total time to receive a response, the amount of processor time attributed to the request by the resource, the type of server at the resource that was used to process the request, the state of the server at the time the request was allocated to the server, the amount of congestion on the network at the time the request was sent to the server, what time of the day the request was sent to the resource, the day of the week or particular other time period during the week/month/year when the request was sent to the resource, and many other factors that may help the web-service facilitator estimate the amount of processor resources required to fulfill the request and establish the optimum server to handle the request.
  • As mentioned above, the raw data collected from experiences with allocating individual or groups of requests to the users may be collected and then abstracted periodically or on an on-going basis to obtain statistical information. The statistical information may be more useful for the web-service facilitator as it may provide a faster way to determine how a request with particular parameters may be handled.
  • The load balancing software may contain additional modules as well, or the network element may contain additional modules configured to supplement the load balancing software to enhance the capabilities of the network element and provide additional functionality to the web service facilitator. These modules (94-102 and 106) discussed below may be integrated with and/or form part of the load balancing software 72 or may be self contained software or hardware modules configured to implement particular aspects of the web service facilitator. For example, the web-service facilitator may include a classifier 94 configured to classify requests, and current conditions into categories, and sub-categories. The statistical information, according to this embodiment, may be organized by category and sub-category as well, to enable a fast correlation between the received request, conditions, and statistical information to take place. For example, the content switch may categorize the request into a database request, and into a sub-category database read. Within that sub-category, it may be determined that the request will need to perform approximately 200 database read operations to fulfill the request. From the raw data associated with other database read operations, statistical information may be collected indicating that database read operations take on average 1 ms to complete when the server is not congested, and that the database read operations take on average 5 ms to complete when the server is congested. Given the time at which the request is received the web-service facilitator may determine which servers are likely to be congested, or if all the servers are likely to be congested. Depending on the result of these operations the web-service facilitator may determine that it will take anywhere between 200 and 1000 ms to complete the request. This information may be used to determine which server would best be able to handle this request. Additionally, this information may be stored in another module in the web-service facilitator to enable the web-service facilitator to have better knowledge of the likely load on that server in connection with allocating other requests to the resource. This example is not meant to limit the scope of the invention but rather to explain an example of how the web-service facilitator may be put to use in a real-life example. The invention extends beyond this example to implementations configured to utilize the information available to the web-service facilitator to perform load balancing and other services on behalf of the web-service resources.
  • The web-service facilitator may also include a scheduling module 96 to schedule execution of requests on the resources. For example, it may be that the request does not need to be executed in real time or was requested to be executed at a particular time in the future. Including a scheduling module enables the web-service facilitator to schedule constrained, unconstrained, and under-constrained requests and adjust the schedules to accommodate newly received requests while also allowing requests to be scheduled for future execution. Additionally, where the resources are overloaded servicing other requests, the scheduling module may act as a queue to hold requests until they may be passed to the servers without risking that the servers may drop the requests for lack of capacity and to prevent the servers from experiencing a failure due to the overload condition.
  • In one embodiment, the web-service facilitator may include a request monitor 98 to enable the web-service facilitator to monitor the ongoing status of the request after it has been submitted to the resource for execution. For example, it may be that a given request will require several attendant resources to participate to prepare a response to the request. This may be done for example as discussed above by issuing sub-requests to other resources, etc. The request monitor may monitor these sub-requests and match the secondary and sub-secondary responses with the primary request to monitor the progress of the primary and secondary requests. This may be done, for example, by setting appropriate filters and listening for responses to the various sub-requests. The request monitor may also be configured to perform update functions to update the client of the progress of the request periodically, upon request, or upon occurrence of a particular or series of events associated with the request.
  • Additionally, the web-service facilitator may include a resource health monitor 100 to enable the web-service facilitator to monitor the state of the network elements configured to implement the request or other associated network elements. In this embodiment, the resource health monitor may be configured to intervene where it appears an unexpected pattern of events associated with a request has transpired. For example, the resource health monitor may detect that a secondary response to a secondary request has not been received within a particular period of time after the secondary request was sent to the secondary resource. In this event, the resource health monitor may conclude, based on the period of time and historical response information, that the secondary request has gotten lost or dropped somewhere in the secondary resource or on the network interconnecting the content switch with the secondary resource. This may cause the resource health monitor to take action or alert the web-service facilitator to the potential problem, which may be used to initiate an inquiry or to initiate a resubmission of the secondary request.
  • The web-service facilitator may also include a management function to enable it to be interfaced by a network management program to set default values, parameters, and to otherwise enable the content switch to be managed for operation on the network or in connection with particular resources available through it.
  • The web-service facilitator may also include a security module configured to perform security services on the network. The security module may perform AAA (Authorization, Authentication, and Accounting) services, encryption services, firewall services, or numerous other security services on the network. For example, the owner of the web-service resource may wish to only allow access to the resource to particular users or to requests that have been formatted in a particular manner. The security module 102 may be used in this example to implement these access restrictions. Numerous other security operations may be implemented as well and the invention is not limited to this particular example.
  • Optionally, as illustrated in FIG. 4, the resources 20 may participate in collecting data for use by the web-service facilitator. For example, the resources may include a CPU occupancy monitor 104 or other facility to enable processor time, request parameters, time of day, and other raw and/or statistical information to be collected and passed to the web-service facilitator 18. This information may be communicated to the content switch over a dedicated management port 63 which may be connected to a management network, or may be communicated over the data network used to interface requests to the resources. The invention is not limited to how the raw/statistical information is communicated between the resource and content switch.
  • The content switch may also include numerous other components configured to enable it to operate on the network. For example, the content switch may include a protocol stack 106 containing instructions and data relevant to communications protocols to enable it to participate in protocol exchanges on the network. The content switch may also include content switch software to enable it to perform packet inspection on filtered packets to learn the content of the packets being transported on the network.
  • The control logic of FIG. 5 may be implemented as a set of program instructions that are stored in a computer readable memory within the network device and executed on a microprocessor within the network device. However, it will be apparent to a skilled artisan that all logic described herein can be embodied using discrete components, integrated circuitry such as an Application Specific Integrated Circuit (ASIC), programmable logic used in conjunction with a programmable logic device such as a Field Programmable Gate Array (FPGA) or microprocessor, or any other device including any combination thereof. Programmable logic can be fixed temporarily or permanently in a tangible medium such as a read-only memory chip, a computer memory, a disk, or other storage medium. Programmable logic can also be fixed in a computer data signal embodied in a carrier wave, allowing the programmable logic to be transmitted over an interface such as a computer bus or communication network. All such embodiments are intended to fall within the scope of the present invention.
  • It should be understood that various changes and modifications of the embodiments shown in the drawings and described in the specification may be made within the spirit and scope of the present invention. Accordingly, it is intended that all matter contained in the above description and shown in the accompanying drawings be interpreted in an illustrative and not in a limiting sense. The invention is limited only as defined in the following claims and the equivalents thereto.

Claims (52)

What is claimed is:
1-21. (canceled)
22. A method of serving web-service requests with a network of resources, the method comprising:
receiving a web-service request;
predicting a respective load on the network of resources for the web-service request; and
sending the web-service request to at least one selected network resource for service based, at least in part, on the respective predicted load of the web-service request.
23. The method of claim 22, wherein predicting a respective load on the network of resources for the web service request comprises determining a type of the request.
24. The method of claim 22, wherein predicting a respective load on the network of resources for the web service request comprises determining a number and a type of resource required to service the web service request.
25. The method of claim 22, wherein predicting a respective load on the network of resources for the web service request comprises predicting the respective load based, at least in part, on historical information characterizing resource usage for previous web-service requests.
26. The method of claim 25, comprising:
monitoring handling of current web-service requests; and
responsive to the monitoring, adding information to the historical information for use in predicting load on the network of resources for future web-service requests.
27. The method of claim 25, wherein the historical information comprises statistical information characterizing handling of previous similar web-service requests by particular resources.
28. The method of claim 27, wherein the statistical information is organized by category and web-service requests are classified to enable fast correlation between web-service requests and relevant statistical information.
29. The method of claim 26, wherein the historical information comprises raw data from the monitoring.
30. The method of claim 22, wherein predicting a respective load on the network of resources for the web-service request comprises considering at least one of number, type and schedule of web-service requests waiting for service in at least one queue.
31. The method of claim 22, wherein predicting a respective load on the network of resources for the web-service request comprises determining an anticipated sequence of events associated with each web-service request.
32. The method of claim 22, wherein predicting a respective load on the network of resources for the web-service request comprises determining current load on the network of resources and predicting anticipated resource requirements for other web-service requests being handled by the network of resources.
33. The method of claim 22, wherein predicting a respective load on the network of resources for the web-service request comprises predicting load characteristics based on historical load statistics for at least one of a corresponding time of day, a corresponding day of week, a corresponding time of month, a corresponding month of year, and a corresponding holiday.
34. The method of claim 22, wherein predicting a respective load on the network of resources for the web-service request comprises determining, based on information gathered for previous web-service requests, whether the web-service request is likely to spawn sub-requests.
35. The method of claim 34, comprising predicting a respective load on the network of resources for each of the spawned sub-requests.
36. The method of claim 23, comprising holding web-service requests for later sending to a selected network resource for service.
37. The method of claim 36, wherein holding web-service requests comprises queuing web-service requests.
38. The method of claim 36, wherein holding web-service requests comprises scheduling web-service requests for later service.
39. The method of claim 22, wherein predicting a respective load on the network of resources for each of the web-service requests comprises predicting a processor time requirement at at least one network resource for each web-service request.
40. The method of claim 22, wherein the network resources comprise web servers.
41. The method of claim 22, performed at a content switch coupled to a plurality of web servers configured to service the web-service requests.
42. The method of claim 41, wherein the plurality of web servers are configured as at least one server farm.
43. The method of claim 41, wherein the plurality of web servers are configured as at least one server cluster.
44. The method of claim 43, wherein the plurality of web servers are configured as multiple server clusters.
45. The method of claim 41, performed by a plurality of content switches operating cooperatively.
46. The method of claim 45, wherein the plurality of content switches operating cooperatively are configured in tiers.
47. The method of claim 22, wherein predicting a respective load on the network of resources for each of the web-service requests comprises accounting for current status of network resources.
48. The method of claim 22, wherein predicting a respective load on the network of resources for each of the web-service requests comprises accounting for anticipated out-of-service periods for network resources.
49. The method of claim 22, comprising:
splitting at least one web-service request into sub-requests; and
routing the sub-requests to different network resources for service.
50. The method of claim 22, wherein sending the web-service request to at least one selected network resource for service comprises sending the web-service request to more than one server configured to cooperatively service the request.
51. The method of claim 22, wherein sending the web-service request to at least one selected network resource for service comprises sending the web-service request to more than one server configured to sequentially service the request.
52. The method of claim 22, wherein sending the web-service request to at least one selected network resource for service comprises sending the web-service request to more than one server configured to race to fulfill the request.
53. The method of claim 22, wherein sending the web-service request to at least one selected network resource for service based, at least in part, on the respective predicted load of the web-service request, comprises:
classifying the web-service request; and
sending the web-service request to at least one selected network resource selected based, at least in part, on the classification of the web-service request.
54. The method of claim 53, wherein:
classifying the web-service request comprises sub-classifying the web-service request; and
sending the web-service request to at least one selected network resource selected based, at least in part, on the classification of the web-service request comprises selecting the network resource based, at least in part, on the sub-classification.
55. The method of claim 22, comprising, after receiving the web-service request and before sending the web-service request, providing a security service for the web-service request.
56. The method of claim 22, wherein providing a security service comprises providing at least one of authentication, authorization and accounting.
57. The method of claim 22, wherein sending the web-service request to at least one selected network resource for service comprises selecting the at least one selected network resource based, at least in part, on at least one predetermined value.
58. The method of 57, wherein the at least one predetermined value is at least one of a default value and a provisioned value.
59. The method of claim 57, wherein the predetermined value is associated with a class of service.
60. The method of claim 57, wherein the predetermined value is set by a management function.
61. The method of claim 22, comprising scheduling the web-service request for service by the at least one selected network resource.
62. The method of claim 61, comprising scheduling the web-service request for service at a future time when the web-service request does not require real-time service.
63. The method of claim 22, comprising monitoring a status of the web-service request after it has been sent to the at least one selected network resource for service.
64. The method of claim 63, wherein monitoring a status of the web-service request comprises monitoring status of sub-requests sent to plural network resources.
65. The method of claim 22, comprising monitoring operational state of the at least one selected network resource.
66. The method of claim 65, comprising re-submitting the web-service request when monitoring operational state of the at least one selected resource indicates a problem with service of the web-service request.
67. The method of claim 65, comprising re-submitting a secondary web-service request when monitoring operational state of the at least one selected resource indicates a problem with service of the secondary web-service request.
68. The method of claim 22, comprising providing update responses to clients requesting web-services regarding the servicing of their web-service requests.
69. The method of claim 68, wherein the update requests are provided independently of network resources selected to service the web-requests.
70. The method of claim 22, wherein the network of resources comprises a communication network.
71. The method of claim 70, wherein the communication network comprises the Internet.
72. The method of claim 70, wherein the communication network comprises a communication network other than the Internet.
US13/909,606 2004-03-05 2013-06-04 Method and Apparatus for Facilitating Fulfillment of Requests on a Communication Network Abandoned US20130268678A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/909,606 US20130268678A1 (en) 2004-03-05 2013-06-04 Method and Apparatus for Facilitating Fulfillment of Requests on a Communication Network

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/794,675 US8484348B2 (en) 2004-03-05 2004-03-05 Method and apparatus for facilitating fulfillment of web-service requests on a communication network
US13/909,606 US20130268678A1 (en) 2004-03-05 2013-06-04 Method and Apparatus for Facilitating Fulfillment of Requests on a Communication Network

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US10/794,675 Continuation US8484348B2 (en) 2004-03-05 2004-03-05 Method and apparatus for facilitating fulfillment of web-service requests on a communication network

Publications (1)

Publication Number Publication Date
US20130268678A1 true US20130268678A1 (en) 2013-10-10

Family

ID=34912321

Family Applications (2)

Application Number Title Priority Date Filing Date
US10/794,675 Expired - Fee Related US8484348B2 (en) 2004-03-05 2004-03-05 Method and apparatus for facilitating fulfillment of web-service requests on a communication network
US13/909,606 Abandoned US20130268678A1 (en) 2004-03-05 2013-06-04 Method and Apparatus for Facilitating Fulfillment of Requests on a Communication Network

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US10/794,675 Expired - Fee Related US8484348B2 (en) 2004-03-05 2004-03-05 Method and apparatus for facilitating fulfillment of web-service requests on a communication network

Country Status (1)

Country Link
US (2) US8484348B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105141541A (en) * 2015-09-23 2015-12-09 浪潮(北京)电子信息产业有限公司 Task-based dynamic load balancing scheduling method and device
US20160275427A1 (en) * 2015-03-20 2016-09-22 International Business Machines Corporation Inquiry-based adaptive prediction
US20230068651A1 (en) * 2021-08-31 2023-03-02 Nokia Technologies Oy Detection of abnormal network function service usage in communication network

Families Citing this family (157)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050144280A1 (en) * 2003-03-18 2005-06-30 Fujitsu Limited Load distribution system by inter-site cooperation
EP1566940A1 (en) * 2004-02-20 2005-08-24 Alcatel Alsthom Compagnie Generale D'electricite A method, a service system, and a computer software product of self-organizing distributing services in a computing network
US8782654B2 (en) 2004-03-13 2014-07-15 Adaptive Computing Enterprises, Inc. Co-allocating a reservation spanning different compute resources types
US8831026B2 (en) * 2004-03-19 2014-09-09 International Business Machines Corporation Method and apparatus for dynamically scheduling requests
US8335909B2 (en) 2004-04-15 2012-12-18 Raytheon Company Coupling processors to each other for high performance computing (HPC)
US7711977B2 (en) * 2004-04-15 2010-05-04 Raytheon Company System and method for detecting and managing HPC node failure
US9178784B2 (en) * 2004-04-15 2015-11-03 Raytheon Company System and method for cluster management based on HPC architecture
US8336040B2 (en) 2004-04-15 2012-12-18 Raytheon Company System and method for topology-aware job scheduling and backfilling in an HPC environment
US20050235055A1 (en) * 2004-04-15 2005-10-20 Raytheon Company Graphical user interface for managing HPC clusters
US8190714B2 (en) * 2004-04-15 2012-05-29 Raytheon Company System and method for computer cluster virtualization using dynamic boot images and virtual disk
US7464160B2 (en) * 2004-06-17 2008-12-09 International Business Machines Corporation Provisioning grid services to maintain service level agreements
US20070266388A1 (en) 2004-06-18 2007-11-15 Cluster Resources, Inc. System and method for providing advanced reservations in a compute environment
US8176490B1 (en) 2004-08-20 2012-05-08 Adaptive Computing Enterprises, Inc. System and method of interfacing a workload manager and scheduler with an identity manager
JP2006072785A (en) * 2004-09-03 2006-03-16 Hitachi Electronics Service Co Ltd Request message control method for using of service, and service provision system
CA2827035A1 (en) 2004-11-08 2006-05-18 Adaptive Computing Enterprises, Inc. System and method of providing system jobs within a compute environment
US8244882B2 (en) * 2004-11-17 2012-08-14 Raytheon Company On-demand instantiation in a high-performance computing (HPC) system
US7433931B2 (en) * 2004-11-17 2008-10-07 Raytheon Company Scheduling in a high-performance computing (HPC) system
US8863143B2 (en) 2006-03-16 2014-10-14 Adaptive Computing Enterprises, Inc. System and method for managing a hybrid compute environment
US9075657B2 (en) 2005-04-07 2015-07-07 Adaptive Computing Enterprises, Inc. On-demand access to compute resources
US9231886B2 (en) 2005-03-16 2016-01-05 Adaptive Computing Enterprises, Inc. Simple integration of an on-demand compute environment
US9015324B2 (en) 2005-03-16 2015-04-21 Adaptive Computing Enterprises, Inc. System and method of brokering cloud computing resources
WO2008036058A2 (en) 2005-03-16 2008-03-27 Cluster Resources, Inc. On-demand computing environment
US9608929B2 (en) * 2005-03-22 2017-03-28 Live Nation Entertainment, Inc. System and method for dynamic queue management using queue protocols
US8782120B2 (en) * 2005-04-07 2014-07-15 Adaptive Computing Enterprises, Inc. Elastic management of compute resources between a web server and an on-demand compute environment
US20060256770A1 (en) * 2005-05-13 2006-11-16 Lockheed Martin Corporation Interface for configuring ad hoc network packet control
US8756320B2 (en) * 2005-07-14 2014-06-17 Grid Nova, Inc. Web service grid architecture
US8001176B2 (en) * 2005-10-14 2011-08-16 Canon Kabushiki Kaisha Web service with multiple listening endpoints
JP5025116B2 (en) * 2005-10-25 2012-09-12 キヤノン株式会社 Information processing apparatus, control method therefor, and program
US8249917B1 (en) * 2005-12-07 2012-08-21 Amazon Technologies, Inc. Load balancing for a fulfillment network
DE602006004856D1 (en) * 2006-06-02 2009-03-05 Software Ag System and method for managing web services
US8626946B2 (en) * 2006-08-03 2014-01-07 Citrix Systems, Inc. Systems and methods for hierarchical global load balancing
US8281360B2 (en) 2006-11-21 2012-10-02 Steven Adams Flewallen Control of communication ports of computing devices using policy-based decisions
CN101267445B (en) * 2007-03-12 2013-04-17 华为技术有限公司 A WEB service realization system, device and method
US20080256079A1 (en) * 2007-04-11 2008-10-16 Yahoo! Inc. Load-based technique to balance data sources to data consumers
US7991910B2 (en) 2008-11-17 2011-08-02 Amazon Technologies, Inc. Updating routing information based on client location
US8028090B2 (en) 2008-11-17 2011-09-27 Amazon Technologies, Inc. Request routing utilizing client location information
US8042115B2 (en) * 2007-08-16 2011-10-18 International Business Machines Corporation Method and system for balancing component load in an input/output stack of an operating system
US8127300B2 (en) * 2007-08-28 2012-02-28 International Business Machines Corporation Hardware based dynamic load balancing of message passing interface tasks
US8312464B2 (en) * 2007-08-28 2012-11-13 International Business Machines Corporation Hardware based dynamic load balancing of message passing interface tasks by modifying tasks
US20090064166A1 (en) * 2007-08-28 2009-03-05 Arimilli Lakshminarayana B System and Method for Hardware Based Dynamic Load Balancing of Message Passing Interface Tasks
US8108876B2 (en) * 2007-08-28 2012-01-31 International Business Machines Corporation Modifying an operation of one or more processors executing message passing interface tasks
US8234652B2 (en) * 2007-08-28 2012-07-31 International Business Machines Corporation Performing setup operations for receiving different amounts of data while processors are performing message passing interface tasks
US8041773B2 (en) 2007-09-24 2011-10-18 The Research Foundation Of State University Of New York Automatic clustering for self-organizing grids
US20090157879A1 (en) * 2007-09-27 2009-06-18 Philip Stoll System and method for providing web services with load balancing
US8121117B1 (en) 2007-10-01 2012-02-21 F5 Networks, Inc. Application layer network traffic prioritization
US7908363B2 (en) * 2007-10-23 2011-03-15 Yahoo! Inc. Call limiter for web services
US7844707B2 (en) * 2007-12-20 2010-11-30 Yahoo! Inc. Web service multi-key rate limiting method and system
US8601090B1 (en) 2008-03-31 2013-12-03 Amazon Technologies, Inc. Network resource identification
US7962597B2 (en) 2008-03-31 2011-06-14 Amazon Technologies, Inc. Request routing based on class
US8447831B1 (en) 2008-03-31 2013-05-21 Amazon Technologies, Inc. Incentive driven content delivery
US8321568B2 (en) 2008-03-31 2012-11-27 Amazon Technologies, Inc. Content management
US7970820B1 (en) 2008-03-31 2011-06-28 Amazon Technologies, Inc. Locality based content distribution
US8606996B2 (en) 2008-03-31 2013-12-10 Amazon Technologies, Inc. Cache optimization
US8102865B2 (en) * 2008-05-16 2012-01-24 Microsoft Corporation Group based allocation of network bandwidth
US9407681B1 (en) 2010-09-28 2016-08-02 Amazon Technologies, Inc. Latency measurement in resource requests
US9213953B1 (en) * 2008-09-15 2015-12-15 Amazon Technologies, Inc. Multivariable load balancing in a fulfillment network
US8688837B1 (en) 2009-03-27 2014-04-01 Amazon Technologies, Inc. Dynamically translating resource identifiers for request routing using popularity information
US8412823B1 (en) 2009-03-27 2013-04-02 Amazon Technologies, Inc. Managing tracking information entries in resource cache components
US8433749B2 (en) 2009-04-15 2013-04-30 Accenture Global Services Limited Method and system for client-side scaling of web server farm architectures in a cloud data center
US11323508B2 (en) 2009-05-22 2022-05-03 Comcast Interactive Media, Llc Web service system and method
US8782236B1 (en) 2009-06-16 2014-07-15 Amazon Technologies, Inc. Managing resources using resource expiration data
US8397073B1 (en) 2009-09-04 2013-03-12 Amazon Technologies, Inc. Managing secure content in a content delivery network
US11720290B2 (en) 2009-10-30 2023-08-08 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US10877695B2 (en) 2009-10-30 2020-12-29 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US10721269B1 (en) 2009-11-06 2020-07-21 F5 Networks, Inc. Methods and system for returning requests with javascript for clients before passing a request to a server
US9495338B1 (en) 2010-01-28 2016-11-15 Amazon Technologies, Inc. Content distribution network
US9503375B1 (en) 2010-06-30 2016-11-22 F5 Networks, Inc. Methods for managing traffic in a multi-service environment and devices thereof
US9420049B1 (en) 2010-06-30 2016-08-16 F5 Networks, Inc. Client side human user indicator
US10958501B1 (en) 2010-09-28 2021-03-23 Amazon Technologies, Inc. Request routing information based on client IP groupings
US9003035B1 (en) 2010-09-28 2015-04-07 Amazon Technologies, Inc. Point of presence management in request routing
US8468247B1 (en) 2010-09-28 2013-06-18 Amazon Technologies, Inc. Point of presence management in request routing
US9712484B1 (en) 2010-09-28 2017-07-18 Amazon Technologies, Inc. Managing request routing information utilizing client identifiers
US8452874B2 (en) 2010-11-22 2013-05-28 Amazon Technologies, Inc. Request routing processing
KR20120066116A (en) * 2010-12-14 2012-06-22 한국전자통신연구원 Web service information processing method and web service compositing method and apparatus using the same
US10467042B1 (en) 2011-04-27 2019-11-05 Amazon Technologies, Inc. Optimized deployment based upon customer locality
US9426041B2 (en) * 2011-05-06 2016-08-23 Skype Communication system and method
US9516624B2 (en) * 2011-09-30 2016-12-06 Intel Deutschland Gmbh Communication terminal, network component, base station and method for communicating
KR101696698B1 (en) * 2011-12-23 2017-01-17 한국전자통신연구원 Distribution and management method of components having reliance
US20140358918A1 (en) * 2012-01-27 2014-12-04 Telefonaktiebolaget L M Ericsson (Publ) Method and Apparatus for Handling Data-Related Requests
US9244843B1 (en) 2012-02-20 2016-01-26 F5 Networks, Inc. Methods for improving flow cache bandwidth utilization and devices thereof
US9020912B1 (en) 2012-02-20 2015-04-28 F5 Networks, Inc. Methods for accessing data in a compressed file system and devices thereof
JP5967187B2 (en) * 2012-03-02 2016-08-10 日本電気株式会社 Route control system, control device, and route control method
US10623408B1 (en) 2012-04-02 2020-04-14 Amazon Technologies, Inc. Context sensitive object management
US9154551B1 (en) 2012-06-11 2015-10-06 Amazon Technologies, Inc. Processing DNS queries to identify pre-processing information
US9612866B2 (en) * 2012-08-29 2017-04-04 Oracle International Corporation System and method for determining a recommendation on submitting a work request based on work request type
US9323577B2 (en) 2012-09-20 2016-04-26 Amazon Technologies, Inc. Automated profiling of resource usage
US10033837B1 (en) 2012-09-29 2018-07-24 F5 Networks, Inc. System and method for utilizing a data reducing module for dictionary compression of encoded data
US9578090B1 (en) 2012-11-07 2017-02-21 F5 Networks, Inc. Methods for provisioning application delivery service and devices thereof
US10205698B1 (en) 2012-12-19 2019-02-12 Amazon Technologies, Inc. Source-dependent address resolution
US10375155B1 (en) 2013-02-19 2019-08-06 F5 Networks, Inc. System and method for achieving hardware acceleration for asymmetric flow connections
US9497614B1 (en) 2013-02-28 2016-11-15 F5 Networks, Inc. National traffic steering device for a better control of a specific wireless/LTE network
US9225638B2 (en) 2013-05-09 2015-12-29 Vmware, Inc. Method and system for service switching using service tags
US10116762B2 (en) * 2013-08-06 2018-10-30 Walmart Apollo, Llc System and method for storing and processing web service requests
US10419572B2 (en) 2013-08-06 2019-09-17 Walmart Apollo, Llc Caching system and method
US10803015B2 (en) 2013-08-06 2020-10-13 Walmart Apollo, Llc Caching system and method
US9336265B2 (en) 2013-08-06 2016-05-10 Wal-Mart Stores, Inc. System and method for processing web service transactions using timestamp data
CN103544060B (en) * 2013-10-25 2016-06-22 珠海许继芝电网自动化有限公司 A kind of service dispatch system and method based on WEBSERVICE
US9401971B2 (en) * 2014-01-31 2016-07-26 International Business Machines Corporation Resource recommendation, reuse and optimization through common context
CN104133724B (en) * 2014-04-03 2015-08-19 腾讯科技(深圳)有限公司 Concurrent tasks dispatching method and device
US10025873B2 (en) 2014-04-18 2018-07-17 Walmart Apollo, Llc System and method for storing and processing database requests
US9571495B2 (en) 2014-05-29 2017-02-14 General Electric Company Methods and systems for authorizing web service requests
US9705986B2 (en) 2014-06-18 2017-07-11 Alfresco Software, Inc. Elastic scalability of a content transformation cluster
US10133798B2 (en) 2014-06-18 2018-11-20 Alfresco Software, Inc. Content transformations using a transformation node cluster
US11496606B2 (en) 2014-09-30 2022-11-08 Nicira, Inc. Sticky service sessions in a datacenter
US9774537B2 (en) 2014-09-30 2017-09-26 Nicira, Inc. Dynamically adjusting load balancing
US9935827B2 (en) 2014-09-30 2018-04-03 Nicira, Inc. Method and apparatus for distributing load among a plurality of service nodes
US9870451B1 (en) * 2014-11-25 2018-01-16 Emmi Solutions, Llc Dynamic management, assembly, and presentation of web-based content
US10097448B1 (en) 2014-12-18 2018-10-09 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
TWI580217B (en) * 2015-02-05 2017-04-21 物聯智慧科技(深圳)有限公司 Management server and the operation method thereof and server system
US10225326B1 (en) 2015-03-23 2019-03-05 Amazon Technologies, Inc. Point of presence based data uploading
US9819567B1 (en) 2015-03-30 2017-11-14 Amazon Technologies, Inc. Traffic surge management for points of presence
US10834065B1 (en) 2015-03-31 2020-11-10 F5 Networks, Inc. Methods for SSL protected NTLM re-authentication and devices thereof
US10609091B2 (en) 2015-04-03 2020-03-31 Nicira, Inc. Method, apparatus, and system for implementing a content switch
US10505818B1 (en) 2015-05-05 2019-12-10 F5 Networks. Inc. Methods for analyzing and load balancing based on server health and devices thereof
US9832141B1 (en) 2015-05-13 2017-11-28 Amazon Technologies, Inc. Routing based request correlation
US10270878B1 (en) 2015-11-10 2019-04-23 Amazon Technologies, Inc. Routing for origin-facing points of presence
US10348639B2 (en) 2015-12-18 2019-07-09 Amazon Technologies, Inc. Use of virtual endpoints to improve data transmission rates
US10404698B1 (en) 2016-01-15 2019-09-03 F5 Networks, Inc. Methods for adaptive organization of web application access points in webtops and devices thereof
US10075551B1 (en) 2016-06-06 2018-09-11 Amazon Technologies, Inc. Request management for hierarchical cache
US10110694B1 (en) 2016-06-29 2018-10-23 Amazon Technologies, Inc. Adaptive transfer rate for retrieving content from a server
US9992086B1 (en) 2016-08-23 2018-06-05 Amazon Technologies, Inc. External health checking of virtual private cloud network environments
US10033691B1 (en) 2016-08-24 2018-07-24 Amazon Technologies, Inc. Adaptive resolution of domain name requests in virtual private cloud network environments
CN106331150B (en) * 2016-09-18 2018-05-18 北京百度网讯科技有限公司 For dispatching the method and apparatus of Cloud Server
US10616250B2 (en) 2016-10-05 2020-04-07 Amazon Technologies, Inc. Network addresses with encoded DNS-level information
US10412198B1 (en) 2016-10-27 2019-09-10 F5 Networks, Inc. Methods for improved transmission control protocol (TCP) performance visibility and devices thereof
US11063758B1 (en) 2016-11-01 2021-07-13 F5 Networks, Inc. Methods for facilitating cipher selection and devices thereof
US10505792B1 (en) 2016-11-02 2019-12-10 F5 Networks, Inc. Methods for facilitating network traffic analytics and devices thereof
US10831549B1 (en) * 2016-12-27 2020-11-10 Amazon Technologies, Inc. Multi-region request-driven code execution system
US10372499B1 (en) 2016-12-27 2019-08-06 Amazon Technologies, Inc. Efficient region selection system for executing request-driven code
US10938884B1 (en) 2017-01-30 2021-03-02 Amazon Technologies, Inc. Origin server cloaking using virtual private cloud network environments
US10503613B1 (en) 2017-04-21 2019-12-10 Amazon Technologies, Inc. Efficient serving of resources during server unavailability
US11075987B1 (en) 2017-06-12 2021-07-27 Amazon Technologies, Inc. Load estimating content delivery network
US10447648B2 (en) 2017-06-19 2019-10-15 Amazon Technologies, Inc. Assignment of a POP to a DNS resolver based on volume of communications over a link between client devices and the POP
US10742593B1 (en) 2017-09-25 2020-08-11 Amazon Technologies, Inc. Hybrid content request routing system
US10805181B2 (en) 2017-10-29 2020-10-13 Nicira, Inc. Service operation chaining
US11012420B2 (en) 2017-11-15 2021-05-18 Nicira, Inc. Third-party service chaining using packet encapsulation in a flow-based forwarding element
US11223689B1 (en) 2018-01-05 2022-01-11 F5 Networks, Inc. Methods for multipath transmission control protocol (MPTCP) based session migration and devices thereof
US10797910B2 (en) 2018-01-26 2020-10-06 Nicira, Inc. Specifying and utilizing paths through a network
US10659252B2 (en) 2018-01-26 2020-05-19 Nicira, Inc Specifying and utilizing paths through a network
US10592578B1 (en) 2018-03-07 2020-03-17 Amazon Technologies, Inc. Predictive content push-enabled content delivery network
US10805192B2 (en) 2018-03-27 2020-10-13 Nicira, Inc. Detecting failure of layer 2 service using broadcast messages
US10728174B2 (en) 2018-03-27 2020-07-28 Nicira, Inc. Incorporating layer 2 service between two interfaces of gateway device
US11595250B2 (en) 2018-09-02 2023-02-28 Vmware, Inc. Service insertion at logical network gateway
US10944673B2 (en) 2018-09-02 2021-03-09 Vmware, Inc. Redirection of data messages at logical network gateway
US10862852B1 (en) 2018-11-16 2020-12-08 Amazon Technologies, Inc. Resolution of domain name requests in heterogeneous network environments
US11025747B1 (en) 2018-12-12 2021-06-01 Amazon Technologies, Inc. Content request pattern-based routing system
US11301281B2 (en) 2019-02-22 2022-04-12 Vmware, Inc. Service control plane messaging in service data plane
US11283717B2 (en) 2019-10-30 2022-03-22 Vmware, Inc. Distributed fault tolerant service chain
US11140218B2 (en) 2019-10-30 2021-10-05 Vmware, Inc. Distributed service chain across multiple clouds
US11223494B2 (en) 2020-01-13 2022-01-11 Vmware, Inc. Service insertion for multicast traffic at boundary
US11659061B2 (en) 2020-01-20 2023-05-23 Vmware, Inc. Method of adjusting service function chains to improve network performance
US11153406B2 (en) 2020-01-20 2021-10-19 Vmware, Inc. Method of network performance visualization of service function chains
US11528219B2 (en) 2020-04-06 2022-12-13 Vmware, Inc. Using applied-to field to identify connection-tracking records for different interfaces
US11611625B2 (en) 2020-12-15 2023-03-21 Vmware, Inc. Providing stateful services in a scalable manner for machines executing on host computers
US11734043B2 (en) 2020-12-15 2023-08-22 Vmware, Inc. Providing stateful services in a scalable manner for machines executing on host computers
CN114792089A (en) * 2021-01-26 2022-07-26 伊姆西Ip控股有限责任公司 Method, apparatus and program product for managing computer system
CN115334162B (en) * 2022-07-26 2023-12-05 国家能源集团江苏电力有限公司 Secure communication method and system for power service management based on user request

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010032254A1 (en) * 1998-05-29 2001-10-18 Jeffrey C. Hawkins Method and apparatus for wireless internet access
US20010034752A1 (en) * 2000-01-26 2001-10-25 Prompt2U Inc. Method and system for symmetrically distributed adaptive matching of partners of mutual interest in a computer network
US20010037223A1 (en) * 1999-02-04 2001-11-01 Brian Beery Management and delivery of product information
US20020016729A1 (en) * 2000-06-19 2002-02-07 Aramark, Corporation System and method for scheduling events and associated products and services
US20020032777A1 (en) * 2000-09-11 2002-03-14 Yoko Kawata Load sharing apparatus and a load estimation method
US20020049608A1 (en) * 2000-03-03 2002-04-25 Hartsell Neal D. Systems and methods for providing differentiated business services in information management environments
US20030037200A1 (en) * 2001-08-15 2003-02-20 Mitchler Dennis Wayne Low-power reconfigurable hearing instrument
US20030120593A1 (en) * 2001-08-15 2003-06-26 Visa U.S.A. Method and system for delivering multiple services electronically to customers via a centralized portal architecture
US20030187871A1 (en) * 2002-03-14 2003-10-02 International Business Machines Corporation Session information inheriting method and apparatus
US20050060590A1 (en) * 2003-09-16 2005-03-17 International Business Machines Corporation Power-aware workload balancing usig virtual machines
US7792714B1 (en) * 2001-12-28 2010-09-07 Fannie Mae System and method for providing a common data and analytic framework for valuating financial instruments and portfolios

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6279001B1 (en) * 1998-05-29 2001-08-21 Webspective Software, Inc. Web service
US6728748B1 (en) * 1998-12-01 2004-04-27 Network Appliance, Inc. Method and apparatus for policy based class of service and adaptive service level management within the context of an internet and intranet
US6748413B1 (en) * 1999-11-15 2004-06-08 International Business Machines Corporation Method and apparatus for load balancing of parallel servers in a network environment
US20020194343A1 (en) * 2001-02-28 2002-12-19 Kishan Shenoi Measurement of time-delay, time-delay-variation, and cell transfer rate in ATM networks
US6944678B2 (en) * 2001-06-18 2005-09-13 Transtech Networks Usa, Inc. Content-aware application switch and methods thereof
CA2404552C (en) * 2001-09-21 2008-12-09 Corel Corporation System and method for secure communication
US6901595B2 (en) * 2001-09-29 2005-05-31 Siebel Systems, Inc. Method, apparatus, and system for implementing a framework to support a web-based application
SE0200418D0 (en) * 2002-02-13 2002-02-13 Ericsson Telefon Ab L M A method and apparatus for computer load sharing and data distribution
US7228354B2 (en) * 2002-06-28 2007-06-05 International Business Machines Corporation Method for improving performance in a computer storage system by regulating resource requests from clients
US7203720B2 (en) * 2002-11-27 2007-04-10 Bea Systems, Inc. Web server hit multiplier and redirector
US20040111506A1 (en) * 2002-12-10 2004-06-10 International Business Machines Corporation System and method for managing web utility services

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010032254A1 (en) * 1998-05-29 2001-10-18 Jeffrey C. Hawkins Method and apparatus for wireless internet access
US20010037223A1 (en) * 1999-02-04 2001-11-01 Brian Beery Management and delivery of product information
US20010034752A1 (en) * 2000-01-26 2001-10-25 Prompt2U Inc. Method and system for symmetrically distributed adaptive matching of partners of mutual interest in a computer network
US20020049608A1 (en) * 2000-03-03 2002-04-25 Hartsell Neal D. Systems and methods for providing differentiated business services in information management environments
US20020016729A1 (en) * 2000-06-19 2002-02-07 Aramark, Corporation System and method for scheduling events and associated products and services
US20020032777A1 (en) * 2000-09-11 2002-03-14 Yoko Kawata Load sharing apparatus and a load estimation method
US20030037200A1 (en) * 2001-08-15 2003-02-20 Mitchler Dennis Wayne Low-power reconfigurable hearing instrument
US20030120593A1 (en) * 2001-08-15 2003-06-26 Visa U.S.A. Method and system for delivering multiple services electronically to customers via a centralized portal architecture
US7792714B1 (en) * 2001-12-28 2010-09-07 Fannie Mae System and method for providing a common data and analytic framework for valuating financial instruments and portfolios
US20030187871A1 (en) * 2002-03-14 2003-10-02 International Business Machines Corporation Session information inheriting method and apparatus
US20050060590A1 (en) * 2003-09-16 2005-03-17 International Business Machines Corporation Power-aware workload balancing usig virtual machines

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160275427A1 (en) * 2015-03-20 2016-09-22 International Business Machines Corporation Inquiry-based adaptive prediction
US20160277317A1 (en) * 2015-03-20 2016-09-22 International Business Machines Corporation Inquiry-based adaptive prediction
US9882837B2 (en) * 2015-03-20 2018-01-30 International Business Machines Corporation Inquiry-based adaptive prediction
US9887935B2 (en) * 2015-03-20 2018-02-06 International Business Machines Corporation Inquiry-based adaptive prediction
US10135757B2 (en) * 2015-03-20 2018-11-20 International Business Machines Corporation Inquiry-based adaptive prediction
US10142260B2 (en) * 2015-03-20 2018-11-27 International Business Machines Corporation Inquiry-based adaptive prediction
CN105141541A (en) * 2015-09-23 2015-12-09 浪潮(北京)电子信息产业有限公司 Task-based dynamic load balancing scheduling method and device
US20230068651A1 (en) * 2021-08-31 2023-03-02 Nokia Technologies Oy Detection of abnormal network function service usage in communication network

Also Published As

Publication number Publication date
US20050198200A1 (en) 2005-09-08
US8484348B2 (en) 2013-07-09

Similar Documents

Publication Publication Date Title
US8484348B2 (en) Method and apparatus for facilitating fulfillment of web-service requests on a communication network
US7243351B2 (en) System and method for task scheduling based upon the classification value and probability
US11159406B2 (en) Load balancing web service by rejecting connections
US7472159B2 (en) System and method for adaptive admission control and resource management for service time guarantees
JP3989443B2 (en) Method for controlling a web farm and web farm
EP1603307B1 (en) System and method for performance managment in a multi-tier computing environment
US20060179059A1 (en) Cluster monitoring system with content-based event routing
US20040111506A1 (en) System and method for managing web utility services
US7792957B2 (en) Method and system for determining a plurality of scheduling endpoints in a grid network
CN109218355A (en) Load equalizing engine, client, distributed computing system and load-balancing method
CN106533806B (en) Method for providing cross-layer QoS based on application awareness in multi-tenant SDN network
CN101167054A (en) Methods and apparatus for selective workload off-loading across multiple data centers
US7460558B2 (en) System and method for connection capacity reassignment in a multi-tier data processing system network
US7512706B2 (en) Method, computer program product, and data processing system for data queuing prioritization in a multi-tiered network
US11329890B2 (en) Network-aware workload management using artificial intelligence and exploitation of asymmetric link for allocating network resources
Aljoby et al. On SDN-enabled online and dynamic bandwidth allocation for stream analytics
Tran-Dang et al. Task priority-based resource allocation algorithm for task offloading in fog-enabled IoT systems
CN107430526B (en) Method and node for scheduling data processing
Li et al. Performance guarantee for cluster-based internet services
Shah et al. A methodology for ensuring fair allocation of CSOC effort for alert investigation
US20060179342A1 (en) Service aggregation in cluster monitoring system with content-based event routing
Li et al. Load-balancing based cross-layer elastic resource allocation in mobile cloud
CN110636013A (en) Dynamic scheduling method and device for message queue
Mehta et al. Utility-based allocation of industrial IoT applications in mobile edge clouds
Komalavalli et al. An Optimal Server Selection Model for Dynamic Task Allocation in Cloud

Legal Events

Date Code Title Description
AS Assignment

Owner name: RPX CLEARINGHOUSE LLC, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:ROCKSTAR CONSORTIUM US LP;ROCKSTAR CONSORTIUM LLC;BOCKSTAR TECHNOLOGIES LLC;AND OTHERS;REEL/FRAME:034924/0779

Effective date: 20150128

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION