IP Library Granted Patent US 7,941,546
Granted Patent B2
US 7,941,546 · App. 12/273,516 · Granted May 10, 2011

Cross-domain communication technique for execution of web mashups

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,941,546
App. No.
12/273,516
Granted
May 10, 2011
Kind
B2
Abstract

A system and method is described for communicating requests from a Web mashup being executed within the context of a Web browser to third-party Web services in a manner that does not violate the Same Origin Policy (SOP) observed by many Web browsers. In one embodiment, a workflow engine operating in the context of a Web browser executes a plurality of executable components comprising a Web mashup. The workflow engine transparently redirects Web service requests generated by the executing components to a proxy server that acts as an intermediate between the workflow engine and third-party Web services. The proxy server, which is not subject to SOP, transmits the Web service requests to the third-party Web service and obtains requested data therefrom. The proxy server further returns the requested data in a manner that is useable by the Web mashup components.

Claims (47)

1. A method for communicating requests from a Web mashup being executed within the context of a Web browser to a third-party Web service that does not support cross-domain calls from the Web browser in a manner that does not violate a Same Origin Policy observed by the Web browser, comprising:

receiving in a workflow engine running in the context of the Web browser a first Web service request to the third-party Web service generated by the Web mashup;

responsive to receiving the first Web service request, generating in the workflow engine a cross-domain call to a proxy server that does support cross-domain calls from the Web browser and is not subject to the Same Origin Policy, wherein the cross-domain call includes information to be used by the proxy server in placing a second Web service request to the third-party Web service, and issuing the cross-domain call from the workflow engine to the proxy server; and

receiving in the workflow engine a callback from the proxy server that includes content returned from the third-party Web service responsive to the placement of the second Web service request by the proxy server; and

processing the callback in the workflow engine to deliver the content returned from the third-party Web service to the Web mashup.

2. The method of claim 1 , wherein receiving in the workflow engine a callback from the proxy server comprises receiving in the workflow engine a callback function from the proxy server that includes as an argument the content returned from the third-party Web service; and

wherein processing the callback in the workflow engine comprises executing the callback function in the workflow engine.

3. The method of claim 2 , wherein the Web mashup comprises a plurality of executable components, wherein receiving the first Web service request generated by the Web mashup comprises receiving a first Web service request generated during execution of one of the executable components, and wherein receiving the callback function comprises receiving a callback function to the one of the of the executable components.

4. The method of claim 1 , wherein issuing a cross-domain call comprises issuing a Javascript Object Notation with Padding (JSONP) cross-domain call.

5. The method of claim 1 , wherein the information included within the cross-domain call that is to be used by the proxy server in placing the second Web service request to the third-party Web service comprises:

an identifier of the third-party Web service.

6. The method of claim 1 , wherein the information included within the cross-domain call that is to be used by the proxy server in placing the second Web service request to the third-party Web service comprises one or more of:

a name of an operation to be performed by the third-party Web service; and

input data to be provided to an operation to be performed by the third-party Web service.

7. The method of claim 2 , wherein the information included within the cross-domain call further includes:

a name of the callback function.

8. A computer program product comprising a computer-readable storage device having computer program logic recorded thereon for enabling a processing unit to communicate requests from a Web mashup being executed within the context of a Web browser to a third-party Web service that does not support cross-domain calls from the Web browser in a manner that does not violate a Same Origin Policy observed by the Web browser, the computer program logic comprising:

first means for enabling the processing unit to receive a first Web service request to the third-party Web service generated by the Web mashup;

second means for enabling the processing unit to generate a cross-domain call to a proxy server that supports cross-domain calls from the Web-browser and is not subject to the Same Origin Policy, wherein the cross-domain call includes information to be used by the proxy server in placing a second Web service request to the third-party Web service, and to issue the cross-domain call to the proxy server responsive to receiving the first Web service request;

third means for enabling the processing unit to receive a callback from the proxy server that includes content returned from the third-party Web service responsive to the placement of the second Web service request by the proxy server; and

fourth means for enabling the processing unit to process the callback to deliver the content returned from the third-party Web service to the Web mashup.

9. The computer program product of claim 8 , wherein the third means comprises means for enabling the processing unit to receive a callback function from the proxy server that includes as an argument the content returned from the third-party Web service; and

wherein the fourth means comprises means for enabling the processing unit to execute the callback function to deliver the content returned from the third-party Web service to the Web mashup.

10. The computer program product of claim 9 , wherein the Web mashup comprises a plurality of executable components, wherein the first means comprises means for enabling the processing unit to receive a first Web service request generated during execution of one of the executable components, and wherein the third means comprises means for enabling the processing unit to receive a callback function to the one of the of the executable components.

11. The computer program product of claim 8 , wherein the second means comprises means for enabling the processing unit to issue a Javascript Object Notation with Padding (JSONP) cross-domain call.

12. The computer program product of claim 8 , wherein the information included within the cross-domain call that is to be used by the proxy server in placing the second Web service request to the third-party Web service comprises:

an identifier of the third-party Web service.

13. The computer program product of claim 8 , wherein the information included within the cross-domain call that is to be used by the proxy server in placing the second Web service request to the third-party Web service comprises one or more of:

a name of an operation to be performed by the third-party Web service; and

input data to be provided to an operation to be performed by the third-party Web service.

14. The computer program product of claim 9 , wherein the information included within the cross-domain call further includes:

a name of the callback function.

15. A method for communicating requests from a Web mashup being executed within the context of a Web browser to a third-party Web service that does not support cross-domain calls from the Web browser in a manner that does not violate a Same Origin Policy observed by the Web browser, comprising:

receiving in a proxy server that supports cross-domain calls from the Web browser and is not subject to the Same Origin Policy a cross-domain call from a workflow engine running in the context of the Web browser, wherein the cross-domain call was issued by the workflow engine responsive to receiving a first Web service request generated by the Web mashup;

responsive to receiving the cross-domain call, generating in the proxy server a second Web service request to the third-party Web server based on information included within the cross-domain call and placing the second Web service request to the third-party Web service;

receiving content returned from the third-party Web service responsive to the placement of the second Web service request by the proxy server; and

returning from the proxy server to the workflow engine a callback that includes the content returned from the third-party Web service.

16. The method of claim 15 , wherein receiving a cross-domain call comprises receiving a Javascript Object Notation with Padding (JSONP) cross-domain call.

17. The method of claim 15 , wherein the information included within the cross-domain call comprises:

an identifier of the third-party Web service.

18. The method of claim 15 , wherein the information included within the cross-domain call comprises one or more of:

a name of an operation to be performed by the third-party Web service; and

input data to be provided to an operation to be performed by the third-party Web service.

19. The method of claim 15 , wherein returning from the proxy server to the workflow engine a callback that includes the content returned from the third-party Web service comprises:

returning from the proxy server to the workflow engine a callback function that includes as an argument the content returned from the third-party Web service.

20. The method of claim 19 , wherein the information included within the cross-domain call further includes:

a name of the callback function.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034564/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 21, 2009
From: RICE, TIMOTHY S.; STERLAND, ANDREW R.; WONG, PATRICK CHI WAI; NATHAN, ADAM D.
To: MICROSOFT CORPORATION
Reel/Frame 022981/0393 →