Redirection of client requests to multiple endpoints

US10645183B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10645183-B2
Application numberUS-201715633476-A
CountryUS
Kind codeB2
Filing dateJun 26, 2017
Priority dateJun 26, 2017
Publication dateMay 5, 2020
Grant dateMay 5, 2020

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

According to examples, an apparatus may include a processor and a memory on which is stored machine readable instructions that are to cause the processor to access a request from a client device, and send the request to a first endpoint, in which the first endpoint is configured to generate a first response to the request. The instructions are further to cause the processor to receive the first response from the first endpoint, in which the first response includes redirect information for the request, select, based upon the redirect information, a second endpoint that is configured to generate a second response to the request, send the request to the selected second endpoint, receive the second response from the second endpoint, and send a final response to the client device, the final response including information included in both the first response and the second response.

First claim

Opening claim text (preview).

What is claimed is: 1. An apparatus comprising: a processor; and a memory on which is stored machine readable instructions that are to cause the processor to: access a request from a client device; send the request to a first endpoint, wherein the first endpoint is configured to generate a first response to the request; receive the first response from the first endpoint, wherein the first response includes redirect information for the request, wherein the redirect information includes a collection of name/value pairs from which the processor is to determine a second endpoint; determine, based upon a calculation using the name/value pairs received from the first endpoint, the second endpoint that is configured to generate a second response to the request, wherein the second endpoint is determined from a plurality of candidate endpoints; send the request to the selected second endpoint; receive the second response from the second endpoint; and send a final response to the client device, the final response including information included in both the first response and the second response. 2. The apparatus according to claim 1 , wherein the instructions are further to cause the processor to add the name/value pairs in the received redirect information into a processing context to determine the second endpoint from the plurality of candidate endpoints. 3. The apparatus according to claim 1 , wherein the second response includes second redirect information, and wherein to process the second response, the instructions are further to cause the processor to: select, based upon the second redirect information, a further endpoint that is configured to generate a further response; send the request to the selected further endpoint; receive the further response from the further endpoint; and wherein the final response includes information from the further response. 4. The apparatus according to claim 3 , wherein the second response includes second redirect information, and wherein to process the second response, the instructions are further to cause the processor to: select, based upon the second redirect information, the first endpoint, wherein the first endpoint is configured to generate the further response from information contained in the second response; and receive, from the first endpoint, the further response. 5. The apparatus according to claim 1 , wherein the first response includes partial information that satisfies a portion of the request, and wherein the instructions are further to cause the processor to: insert the partial information into the request; and send the request with the partial information to the determined second endpoint. 6. The apparatus according to claim 5 , wherein the second response includes second partial information that satisfies a second portion of the request, and wherein the instructions are further to cause the processor to: insert the second partial information into the request; send the request with the second partial information to the first endpoint, wherein the first endpoint is configured to process the second partial information to generate a third response; receive the third response; and wherein the final response includes information from the third response. 7. The apparatus according to claim 5 , wherein the second response includes second partial information that satisfies a second portion of the request, and wherein the instructions are further to cause the processor to: prepare the final response to include the partial information from the first endpoint and the second partial information from the second endpoint; and wherein the first endpoint and the second endpoint provide microservices of a service. 8. The apparatus according to claim 1 , wherein the instructions are further to cause the processor to: determine whether responses received from a plurality of endpoints are successful responses to the request; determine, based upon the determination as to whether the responses are successful responses to the request, health statuses of the plurality of endpoints; and record the determined health statuses. 9. The apparatus according to claim 1 , wherein the instructions are further to cause the processor to: determine whether a number of redirects to a plurality of endpoints exceeds a predetermined threshold count; and in response to a determination that the number of redirects exceeds the predetermined threshold count, cease delivery of the request to an additional endpoint. 10. A method comprising: accessing, by a processor, a request from a client; selecting, by the processor, a first endpoint that is configured to generate a first portion of a response to the request; sending the request to the selected first endpoint; receiving the first portion of the response from the first endpoint, the first portion of the response including redirect information for the request and a bit field that indicates that the request is to be redirected to another endpoint; selecting, by the processor and based upon the redirect information and the bit field indicating that the request is to be redirected to another endpoint, a second endpoint that is configured to generate a second portion of the response to the request, wherein the second endpoint is selected from a plurality of candidate endpoints; redirecting the request to the second endpoint; receiving the second response from the second endpoint; and outputting a final response to the client, the final response including information from the first portion of the response and the second portion of the response. 11. The method according to claim 10 , wherein the second portion of the response includes second redirect information, said method further comprising: selecting, based upon the second redirect information, a third endpoint that is configured to generate a third portion of the response; sending the request to the selected third endpoint; receiving the third portion of the response from the third endpoint; determining whether the third portion of the response includes third redirect information; and in response to a determination that the third portion of the response does not include third redirect information, determining whether the final response is a successful response to the request. 12. The method according to claim 11 , further comprising: in response to a determination that the final response is not a successful response to the request, recording a health of the further endpoint; selecting a replacement endpoint that is configured to generate the third portion of the response; sending the request to the selected replacement endpoint; receiving the third portion of the response from the replacement endpoint; and wherein the final response includes information from the third portion of the response from the replacement endpoint. 13. The method according to claim 11 , wherein outputting the final response further comprises outputting the final response in response to a determination that the final response is a successful response to the request. 14. The method according to claim 10 , further comprising: receiving a subsequent portion of the response that is subsequent to the second portion of the response from a subsequent endpoint; determining that the subsequent portion of the response includes subsequent redirect information; determining whether a redirect count of the request exceeds a predetermined redirect count; in response to a determination that the redirect count does not exceed the predetermined redirect count, sending the request to a second subseque

Assignees

Inventors

Classifications

  • in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46) · CPC title

  • Resource delivery mechanisms · CPC title

  • Electricity · mapped topic

  • Electricity · mapped topic

  • Intermediate processing functionally located close to the data provider application, e.g. reverse proxies · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10645183B2 cover?
According to examples, an apparatus may include a processor and a memory on which is stored machine readable instructions that are to cause the processor to access a request from a client device, and send the request to a first endpoint, in which the first endpoint is configured to generate a first response to the request. The instructions are further to cause the processor to receive the first…
Who is the assignee on this patent?
Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification H04L67/2814. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue May 05 2020 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 10 related publications on this page (citations in our corpus or others sharing the same primary CPC).