IP Library › Granted Patent US 8,874,787
Granted Patent B2
US 8,874,787 · App. 12/907,998 · Granted Oct 28, 2014

Optimized consumption of third-party web services in a composite service

Inventor: Marc Mercuri (Bothell, WA)
Assignee: Microsoft Corporation
G06F9/5055
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 8,874,787
App. No.
12/907,998
Filed
Oct 20, 2010
Granted
Oct 28, 2014
Kind
B2
Art Unit
2442
USPC
709/241
Abstract

Technologies are described herein for routing a service request to an appropriate web service. A first service request is routed from a first web service to a second web service. Routing factors associated with the second web service are monitored. A determination is made as to whether the routing factors indicate that the second web service is no longer appropriate for handling service requests. If the routing factors indicate that the first web service is no longer appropriate for handling service requests, then a second service request is routed from the first web service to a third web service. The first web service, the second web service, and the third web service are included in a composite service.

Claims (64)

1. A computer-implemented method for routing a service request to an appropriate web service, the method comprising computer-implemented operations for:

routing a first service request from a first web service to a second web service, wherein the first web service consumes the second web service;

monitoring routing factors associated with the second web service;

determining whether the routing factors indicate that the second web service is no longer appropriate for handling service requests;

in response to determining that the routing factors indicate that the second web service is no longer appropriate for handling service requests, routing a second service request from the first web service to a third web service, the first web service, the second web service, and the third web service in a composite service, wherein the second web service consumes the third web service;

monitoring additional routing factors associated with the third web service;

determining whether the additional routing factors indicate that the third web service is no longer appropriate for handling service requests; and

in response to determining that the additional routing factors indicate that the third web service is no longer appropriate for handling service requests, routing a third service request from the first web service to a fourth web service, the fourth web service in the composite service, wherein the second web service consumes the fourth web service.

2. The computer-implemented method of claim 1 , wherein monitoring routing factors associated with the second web service comprises monitoring service availability of the second web service; and

wherein determining whether the routing factors indicate that the second web service is no longer appropriate for handling service requests comprises determining whether the availability of the second web service indicates that the second web service is no longer appropriate for handling service requests.

3. The computer-implemented method of claim 2 , wherein determining whether the availability of the second web service indicates that the second web service is no longer appropriate for handling service requests comprises:

identifying a time frame during which the second web service is not operational; and

determining that the availability of the second web service indicates that the second web service is no longer appropriate for handling service requests during the time frame.

4. The computer-implemented method of claim 1 , wherein monitoring routing factors associated with the second web service comprises monitoring variable pricing of the second web service; and

wherein determining whether the routing factors indicate that the second web service is no longer appropriate for handling service requests comprises determining whether the variable pricing of the second web service indicates that the second web service is no longer appropriate for handling service requests.

5. The computer-implemented method of claim 4 , wherein determining whether the variable pricing of the second web service indicates that the second web service is no longer appropriate for handling service requests comprises:

identifying a time frame during which the second web service charges a higher fee; and

determining that that the second web service is no longer appropriate for handling service requests during the time frame.

6. The computer-implemented method of claim 1 , wherein monitoring routing factors associated with the second web service comprises monitoring a number of service requests handled by the second web service; and

wherein determining whether the routing factors indicate that the second web service is no longer appropriate for handling service requests comprises determining whether the number of service requests indicates that the second web service is no longer appropriate for handling service requests.

7. The computer-implemented method of claim 6 , wherein determining whether the number of service requests indicates that the second web service is no longer appropriate for handling service requests comprises:

determining that the number of service requests exceeds a threshold specified in a service level agreement between the first web service and the second web service; and

upon determining that the number of service requests exceeds the threshold specified in the service level agreement between the first web service and the second web service, determining that the number of service requests indicates that the second web service is no longer appropriate for handling service requests.

8. The computer-implemented method of claim 1 , wherein monitoring routing factors associated with the second web service comprises monitoring a response time of the second web service; and

wherein determining whether the routing factors indicate that the second web service is no longer appropriate for handling service requests comprises determining whether the response time of the second web service indicates that the second web service is no longer appropriate for handling service requests.

9. The computer-implemented method of claim 8 , wherein determining whether the response time of the second web service indicates that the second web service is no longer appropriate for handling service requests comprises:

determining that the response time exceeds a threshold; and

upon determining that the response time exceeds a threshold, determining that the response time indicates that the second web service is no longer appropriate for handling service requests.

10. The computer-implemented method of claim 1 , wherein the first service request comprises a request for information; and wherein the second web service is adapted to retrieve the information and provide the information to the second web service in response to the request.

11. The computer-implemented method of claim 1 , wherein the first service request comprises a request to perform an action; and wherein the second web service is adapted to perform the action and provide an acknowledgement to the first web service in response to the request.

12. A computer system, comprising:

a processor;

a memory communicatively coupled to the processor; and

a program module which executes in the processor from the memory and which, when executed by the processor, causes the computer system to route a service request to an appropriate web service by

routing a first service request from a first web service to a second web service, wherein the first web service consumes the second web service,

monitoring real-time or near real-time routing factors associated with the second web service,

determining whether the routing factors indicate that the second web service is no longer appropriate for handling service requests,

in response to determining that the routing factors indicate that the second web service is no longer appropriate for handling service requests, routing a second service request from the first web service to a third web service, the first web service, the second web service, and the third web service in a composite service, wherein the second web service consumes the third web service,

monitoring additional routing factors associated with the third web service,

determining whether the additional routing factors indicate that the third web service is no longer appropriate for handling service requests, and

in response to determining that the additional routing factors indicate that the third web service is no longer appropriate for handling service requests, routing a third service request from the first web service to a fourth web service, the fourth web service in the composite service, wherein the second web service consumes the fourth web service.

13. An optical disk, a magnetic disk storage device, or solid state storage device having computer-executable instructions stored thereon which, when executed by a computer, cause the computer to:

route a first service request from a first web service to a second web service, wherein the first web service consumes the second web service;

monitor routing factors associated with the second web service;

determine whether the routing factors indicate that the second web service is no longer appropriate for handling service requests;

in response to determining that the routing factors indicate that the second web service is no longer appropriate for handling service requests, route a second service request from the first web service to a third web service, wherein the second web service consumes the third web service, the first web service;

monitor additional routing factors associated with the third web service;

determine whether the additional routing factors indicate that the third web service is no longer appropriate for handling service requests; and

in response to determining that the additional routing factors indicate that the third web service is no longer appropriate for handling service requests, route a third service request from the first web service to a fourth web service, the first web service, the second web service, the third web service, and the fourth web service in a composite service, wherein the second web service consumes the fourth web service.

14. The computer system of claim 12 , wherein monitoring routing factors associated with the second web service comprises monitoring variable pricing of the second web service; and

wherein determining whether the routing factors indicate that the second web service is no longer appropriate for handling service requests comprises determining whether the variable pricing of the second web service indicates that the second web service is no longer appropriate for handling service requests.

15. The computer system of claim 12 , wherein monitoring routing factors associated with the second web service comprises monitoring a number of service requests handled by the second web service; and

wherein determining whether the routing factors indicate that the second web service is no longer appropriate for handling service requests comprises determining whether the number of service requests indicates that the second web service is no longer appropriate for handling service requests.

16. The computer system of claim 12 , wherein monitoring routing factors associated with the second web service comprises monitoring a response time of the second web service; and

wherein determining whether the routing factors indicate that the second web service is no longer appropriate for handling service requests comprises determining whether the response time of the second web service indicates that the second web service is no longer appropriate for handling service requests.

17. The computer system of claim 12 , wherein determining whether the routing factors indicate that the second web service is no longer appropriate for handling service requests comprises determining whether the routing factors indicate that the second web service is no longer appropriate for handling service requests based on business rules adapted to reduce cost, increase efficiency, and ensure continuity of service.

18. An optical disk, a magnetic disk storage device, or solid state storage device having computer-executable instructions stored thereon which, when executed by a computer, cause the computer to:

route a first service request from a first web service to a second web service, wherein the first web service consumes the second web service;

monitor routing factors associated with the second web service;

determine whether the routing factors indicate that the second web service is no longer appropriate for handling service requests;

in response to determining that the routing factors indicate that the first web service is no longer appropriate for handling service requests, route a second service request from the first web service to a third web service, wherein the second web service consumes the third web service, the first web service;

monitor additional routing factors associated with the third web service;

determine whether the additional routing factors indicate that the third web service is no longer appropriate for handling service requests; and

in response to determining that the additional routing factors indicate that the third web service is no longer appropriate for handling service requests, route a third service request from the first web service to a fourth web service, the first web service, the second web service, the third web service, and the fourth web service in a composite service, wherein the second web service consumes the fourth web service.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034544/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 20, 2010
From: MERCURI, MARC
To: MICROSOFT CORPORATION
Reel/Frame 025163/0362 →
Continuity (1)
Related Publication 20120102224A1 · Apr 26, 2012