IP Library › Granted Patent US 7,685,304
Granted Patent B2
US 7,685,304 · App. 11/567,375 · Granted Mar 23, 2010

Web services multi-protocol support

Assignee: Yahoo! Inc.
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 7,685,304
App. No.
11/567,375
Granted
Mar 23, 2010
Kind
B2
Abstract

A solution is provided wherein a single service implementation may be exposed to users as two or more different web service protocols. The service then appears to the user to be utilizing a desired protocol even though the service itself is potentially operating under a different protocol. A gateway may be utilized that maintains mappings between the supported protocols. When a user sends a request to a particular service, the gateway may determine whether the request is in the format of the protocol utilized by the underlying web service. If not, the gateway may convert the format to match the correct protocol. An embodiment is also possible where a single endpoint is utilized for multiple services having multiple protocols. This may be coupled with an ability to detect a protocol automatically from request contents, thus seamlessly integrating multiple protocols into a user's experience.

Claims (66)

1. A method for multi-protocol web services support, the method comprising:

intercepting, at a gateway, a first request in a first web service protocol destined for a first web service from a first user;

determining if the first web service supports the first web service protocol;

if the first web service does not support the first web service protocol:

accessing a stored mapping at the gateway corresponding to the first web service protocol and to a second web service protocol, wherein the second web service protocol is supported by the first web service, wherein the stored mapping includes a predefined portion and a user-configurable portion, wherein the predefined portion contains mappings between commonly used commands, and wherein the user-configurable portion contains mappings that a user has added on top of, or instead of, the mappings in the predefined portions; and

converting the first request into the second web service protocol using the stored mapping; and

sending the first request to the first web service.

2. The method of claim 1 , further comprising:

receiving a first response in the second web service protocol from the first web service;

accessing a stored mapping corresponding to the first web service protocol and to the second web service protocol;

converting the first response into the first web service protocol using the stored mapping; and

sending the first response to the first user.

3. The method of claim 1 , wherein the first and second web service protocols are protocols selected from the group consisting of: Simple Object Access Protocol (SOAP), Representational State Transfer (REST), and Extensible Markup Language Remote Procedure Call (XML-RPC).

4. The method of claim 1 , wherein the method is performed by a gateway.

5. The method of claim 1 , further comprising: performing Uniform Resource Locator (URL) rewriting on requests destined for a URL corresponding to the first web service.

6. The method of claim 1 , further comprising:

receiving a second request in the second web service protocol for the first web service from a second user; and

sending the second request to the first web service without conversion.

7. The method of claim 1 , further comprising:

receiving a second request, in a third web service protocol, for a second web service from a second user;

determining of the second web service supports the third web service protocol;

if the second web service does not support the third web service protocol:

accessing a second stored mapping corresponding to the third web service protocol and to a fourth web service protocol, wherein the fourth web service protocol is different than the second web service protocol and is supported by the second web service; and

converting the request into the fourth web service protocol using the second stored mapping; and

sending the second request to the second web service.

8. The method of claim 7 , wherein the first web service and the second web service are accessed via a single endpoint.

9. An apparatus for multi-protocol web services support, the apparatus comprising:

a processor configured to operate software modules comprising:

a first request first protocol receiver;

a first web service protocol determiner coupled to the first request first protocol receiver;

a stored mapping accessor coupled to the first web service protocol determiner and configured to access a stored mapping corresponding to a first web service protocol and to a second web service protocol, wherein the second web service protocol is supported by a first web service, wherein the stored mapping includes a predefined portion and a user-configurable portion, wherein the predefined portion contains mappings between commonly used commands, and wherein the user-configurable portion contains mappings that a user has added on top of, or instead of, the mappings in the predefined portions;

a first request second protocol converter coupled to the stored mapping accessor; and

a first request first web service sender coupled to the first request second protocol converter and to the first web service protocol determiner.

10. The apparatus of claim 9 , wherein the processor is further configured to operate software modules comprising:

a first response second protocol receiver coupled to the stored mapping accessor;

a first response first protocol converter coupled to the stored mapping accessor; and

a first response first user sender coupled to the first response first protocol converter and to the first web service protocol determiner.

11. The apparatus of claim 9 , wherein the apparatus is a gateway.

12. The apparatus of claim 9 , wherein the apparatus is located on the same physical device as a first web service.

13. The apparatus of claim 9 , further comprising a Uniform Resource Locator (URL) rewriter coupled to the first request first protocol receiver.

14. An apparatus for multi-protocol web services support, the apparatus comprising:

means for intercepting, at a gateway, a first request in a first web service protocol destined for a first web service from a first user;

means for determining if the first web service supports the first web service protocol;

means for if the first web service does not support the first web service protocol:

accessing a stored mapping at the gateway corresponding to the first web service protocol and to a second web service protocol, wherein the second web service protocol is supported by the first web service, wherein the stored mapping includes a predefined portion and a user-configurable portion, wherein the predefined portion contains mappings between commonly used commands, and wherein the user-configurable portion contains mappings that a user has added on top of, or instead of, the mappings in the predefined portions; and

converting the first request into the second web service protocol using the stored mapping; and

means for sending the first request to the first web service.

15. The apparatus of claim 14 , further comprising:

means for receiving a first response in the second web service protocol from the first web service;

means for accessing a stored mapping corresponding to the first web service protocol and to the second web service protocol;

means for converting the first response into the first web service protocol using the stored mapping; and

means for sending the first response to the first user.

16. The apparatus of claim 14 , wherein the first and second web service protocols are protocols selected from the group consisting of: Simple Object Access Protocol (SOAP), Representational State Transfer (REST), and Extensible Markup Language Remote Procedure Call (XML-RPC).

17. The apparatus of claim 14 , wherein the apparatus is a gateway.

18. The apparatus of claim 14 , further comprising: means for performing Uniform Resource Locator (URL) rewriting on requests destined for a URL corresponding to the first web service.

19. The apparatus of claim 14 , further comprising:

means for receiving a second request in the second web service protocol for the first web service from a second user; and

means for sending the second request to the first web service without conversion.

20. The apparatus of claim 14 , further comprising:

means for receiving a second request in a third web service protocol for a second web service from a second user;

means for determining of the second web service supports the third web service protocol;

means for, if the second web service does not support the third web service protocol:

accessing a second stored mapping corresponding to the third web service protocol and to a fourth web service protocol, wherein the fourth web service protocol is different than the second web service protocol and is supported by the second web service; and

converting the request into the fourth web service protocol using the second stored mapping; and

means for sending the second request to the second web service.

21. The apparatus of claim 20 , wherein the first web service and the second web service are accessed via a single endpoint.

Assignments (9)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE ASSIGNOR NAME PREVIOUSLY RECORDED AT REEL: 052853 FRAME: 0153. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 29, 2021
From: R2 SOLUTIONS LLC
To: STARBOARD VALUE INTERMEDIATE FUND LP, AS COLLATERAL AGENT
Reel/Frame 056832/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED ON REEL 053654 FRAME 0254. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST GRANTED PURSUANT TO THE PATENT SECURITY AGREEMENT PREVIOUSLY RECORDED. Recorded Dec 30, 2020
From: STARBOARD VALUE INTERMEDIATE FUND LP
To: R2 SOLUTIONS LLC
Reel/Frame 054981/0377 →
RELEASE OF SECURITY INTEREST IN PATENTS Recorded Jul 8, 2020
From: STARBOARD VALUE INTERMEDIATE FUND LP
To: ACACIA RESEARCH GROUP LLC; AMERICAN VEHICULAR SCIENCES LLC; BONUTTI SKELETAL INNOVATIONS LLC; CELLULAR COMMUNICATIONS EQUIPMENT LLC; INNOVATIVE DISPLAY TECHNOLOGIES LLC; LIFEPORT SCIENCES LLC; LIMESTONE MEMORY SYSTEMS LLC; MOBILE ENHANCEMENT SOLUTIONS LLC; MONARCH NETWORKING SOLUTIONS LLC; NEXUS DISPLAY TECHNOLOGIES LLC; PARTHENON UNIFIED MEMORY ARCHITECTURE LLC; R2 SOLUTIONS LLC; SAINT LAWRENCE COMMUNICATIONS LLC; STINGRAY IP SOLUTIONS LLC; SUPER INTERCONNECT TECHNOLOGIES LLC; TELECONFERENCE SYSTEMS LLC; UNIFICATION TECHNOLOGIES LLC
Reel/Frame 053654/0254 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 25, 2020
From: EXCALIBUR IP, LLC
To: R2 SOLUTIONS LLC
Reel/Frame 053459/0059 →
PATENT SECURITY AGREEMENT Recorded Jun 5, 2020
From: ACACIA RESEARCH GROUP LLC; AMERICAN VEHICULAR SCIENCES LLC; BONUTTI SKELETAL INNOVATIONS LLC; CELLULAR COMMUNICATIONS EQUIPMENT LLC; INNOVATIVE DISPLAY TECHNOLOGIES LLC; LIFEPORT SCIENCES LLC; LIMESTONE MEMORY SYSTEMS LLC; MERTON ACQUISITION HOLDCO LLC; MOBILE ENHANCEMENT SOLUTIONS LLC; MONARCH NETWORKING SOLUTIONS LLC; NEXUS DISPLAY TECHNOLOGIES LLC; PARTHENON UNIFIED MEMORY ARCHITECTURE LLC; R2 SOLUTIONS LLC; SAINT LAWRENCE COMMUNICATIONS LLC; STINGRAY IP SOLUTIONS LLC; SUPER INTERCONNECT TECHNOLOGIES LLC; TELECONFERENCE SYSTEMS LLC; UNIFICATION TECHNOLOGIES LLC
To: STARBOARD VALUE INTERMEDIATE FUND LP, AS COLLATERAL AGENT
Reel/Frame 052853/0153 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 3, 2016
From: YAHOO! INC.
To: EXCALIBUR IP, LLC
Reel/Frame 038950/0592 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 1, 2016
From: EXCALIBUR IP, LLC
To: YAHOO! INC.
Reel/Frame 038951/0295 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 18, 2016
From: YAHOO! INC.
To: EXCALIBUR IP, LLC
Reel/Frame 038383/0466 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 6, 2006
From: KOTHARI, PANKAJ; ATREYA, AVINASH
To: YAHOO! INC.
Reel/Frame 018591/0247 →
Continuity (1)
Related Publication 20080140861A1 · Jun 12, 2008