IP Library › Granted Patent US 9,547,532
Granted Patent B2
US 9,547,532 · App. 13/353,718 · Granted Jan 17, 2017

Techniques to provide proxies for web services

Inventors: Michael Loughry (Kirkland, WA); Elroy Dyksen (Redmond, WA); Robert Congdon (Redmond, WA); Edward Banti (Seattle, WA); Kumarswamy Valegerepura (Washington, WA); Ilya Smirnov (Redmond, WA); Selvaraj Nalliah (Redmond, WA); Harvey Rook (Redmond, WA)
Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
G06F9/541
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,547,532
App. No.
13/353,718
Granted
Jan 17, 2017
Kind
B2
Abstract

Techniques to provide proxies for web services are described. A technique may include providing proxies for web services that translate one format to a format native used, or understood, by the web service without having to rewrite existing APIs. In one embodiment, for example, an apparatus may comprise a processing unit and a network interface coupled to the processing unit. The apparatus may further include a web service executing web service requests on the processing unit using a native format. The apparatus may further include a proxy to receive a web service request in a first format via the network interface and to translate the web service request from the first format to the native format. Other embodiments are described and claimed.

Claims (52)

1. A computer-implemented method, comprising:

providing a first access point for requests to an application program interface (API) to a web service executing on a web service server wherein the API communicates with the web service using a format native to the web service;

providing a second access point for requests in a first format, wherein the API receives requests from and provides responses to a client in a format different from the first format, wherein the first format is JavaScript Object Notation (JSON);

processing a web service request from the client;

translating the web service request into the format native to the web service;

processing the web service request to generate a response in the format native to the web service;

sending the web service request to the first access point when the web service request is in the format different from the first format;

translating the response from the format native to the web service to the first format;

sending the web service request to the second access point when the web service request is in the first format, including when the client is implemented in a language that is different from a language used for the web service; and

providing the response in the first format to the client.

2. The method of claim 1 , further comprising:

deserializing a JSON request into at least one data type in the format native to the web service; and

passing the at least one data type to the web service.

3. The method of claim 1 , further comprising:

translating the web service request in the first format to the format of the API;

processing the web service request from the API to generate a response in the format native to the web service; and

translating the response from the format native to the web service to the first format.

4. The method of claim 1 , further comprising:

receiving the web service request via the API in the first format; and

translating the web service request into the format native to the web service.

5. An article comprising computer-readable storage hardware containing instructions that when executed cause a system to:

provide a first access point for requests to an application program interface (API) to a web service, wherein the API communicates with the web service using a format native to the web service;

provide a second access point for requests in a first format, wherein the API receives requests from and provides responses to a client in a format different from the first format, wherein the first format is JavaScript Object Notation (JSON);

process a schema mapping between constructs of the first format to native data types at the web service;

send a received web service request to the first access point when the web service request is in the format different from the first format and compatible with the native format;

send a received web service request to the second access point when the web service request is in the first format;

translate the web service request into the format native to the web service by converting a data type in the first format to a data type in the format native to the web service;

provide the web service request to the API to process the web service request to generate a response in the format native to the web service;

translate the response from the format native to the web service to the first format; and

provide the response in the first format to a client.

6. The article of claim 5 , wherein the storage hardware further comprising instructions that when executed cause the system to:

deserialize a JSON request into at least one data type in the format native to the web service; and

process the web service request according to the at least one data type.

7. The article of claim 5 , the storage hardware further comprising instructions that when executed cause the system to:

translate the web service request in the first format to the format of the API;

process the web service request from the API to generate a response in the format native to the web service; and

translate the response from the format native to the web service to the first format.

8. The article of claim 5 , the storage hardware further comprising instructions that when executed cause the system to:

receive the web service request via the API in the first format; and

translate the web service request into the format native to the web service.

9. An apparatus, comprising:

a processor;

a network interface coupled to the processor;

a web service application executing web service requests on the processor using a native format, the web service application being implemented in a language that is different from a language used for a client sending the web service requests;

a proxy to receive a web service request in a first format via the network interface and to translate the web service request from the first format to the native format for the web service application to execute, wherein the first format is JavaScript Object Notation (JSON), and to translate a response to a web service request from the native format to the first format;

an application program interface (API) to the web service application, the API to receive web service requests from, and provide responses to, a client in a format different from the first format, wherein the API communicates with the web service using the native format;

a first access point for requests to the API; and

a second access point for requests in the first format.

10. The apparatus of claim 9 , wherein the web service request includes at least one of: a time zone header and a version header.

11. The apparatus of claim 9 , the proxy further to translate the web service request in the first format to the format of the API; and the web service application to process the web service request from the API to generate a response in the native format.

12. The apparatus of claim 9 , the API to receive the web service request in JSON format; and the proxy to translate the web service request into the native format.

13. The apparatus of claim 9 , further comprising a schema mapping that maps a data type in the first format to a data type in the native format.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034544/0541 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 23, 2012
From: LOUGHRY, MICHAEL; DYKSEN, ELROY; CONGDON, ROBERT; BANTI, EDWARD; VALEGEREPURA, KUMARSWAMY; SMIRNOV, ILYA; NALLIAH, SELVARAJ; ROOK, HARVEY
To: MICROSOFT CORPORATION
Reel/Frame 027572/0840 →
Continuity (1)
Related Publication 20130191509A1 · Jul 25, 2013