IP Library Granted Patent US 9,305,178
Granted Patent B2
US 9,305,178 · App. 14/557,342 · Granted Apr 5, 2016

Brokering data access requests and responses

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,305,178
App. No.
14/557,342
Granted
Apr 5, 2016
Kind
B2
Abstract

The present invention extends to methods, systems, and computer program products for brokering data access requests and responses. Aspects of the invention include a brokering pipeline that sequentially processes data access requests and data access responses. The brokering pipeline manages access authentications, request brokering, response rewrite, cache, and hosting multiple (e.g., business) entities.

Claims (45)

1. At a computer system, the computer system including a brokering pipeline for brokering data access requests, a security boundary protecting the brokering pipeline and other components inside the security boundary from components outside the security boundary, a method for brokering a data access request, the method comprising:

receiving a data access request from an external identity, the data access request requesting data maintained inside the security boundary, the external identity outside of the security boundary;

mapping the external identity to a corresponding internal identity, the internal identity configured for use inside the security boundary;

sending the data access request to an exposed endpoint for previously registered logic associated with an external entity, the previously registered logic bound to one or more data repositories that maintain the requested data;

receiving a response to the data access request, the response including the requested data;

rewriting the response to make it appear that a component of the brokering pipeline generated the response, rewriting the response decoupling the exposed endpoint from the external entity; and

sending the re-written response to the external identity.

2. The method of claim 1 , further comprising prior to receiving the data access request, registering the logic associated with the external entity at a query engine.

3. The method of claim 1 , wherein mapping the external identity to a corresponding internal identity comprises referring to an access directory to determine that the external identity maps to the corresponding internal identity.

4. The method of claim 1 , further comprising prior to mapping the external identity to a corresponding internal identity, validating the external identity for public access to the brokering pipeline.

5. The method of claim 1 , wherein receiving a data access request from an external identity comprises receiving a data access request from a computing domain; and

further comprising prior to mapping the external identity to a corresponding internal identity, validating the computing domain for private access to the one or more data repositories.

6. The method of claim 1 , wherein sending the data access request to an exposed endpoint for previously registered logic comprises sending the data access request to registered logic that is encapsulated along with one or more data entities in a registered entry at a query engine.

7. The method of claim 1 , wherein receiving a response to the data access request comprises receiving a response that includes the requested data returned from a caching layer of the brokering pipeline.

8. The method of claim 7 , further comprising the caching layer monitoring changes at the one or more data repositories to keep cached data up to date.

9. The method of claim 1 , wherein receiving a response to the data access request comprises receiving a response that includes the requested data returned from the one or more data repositories.

10. A computer program product for use at a computer system, the computer system including a brokering pipeline for brokering data access requests, a security boundary protecting the brokering pipeline and other components inside the security boundary from components outside the security boundary, the computer program product for implementing a method for brokering a data access request, the computer program product comprising one or more computer storage devices having stored thereon computer-executable instructions that, when executed at a processor, cause the computer system to perform the method, including the following:

receive a data access request from an external identity, the data access request requesting data maintained inside the security boundary, the external identity outside of the security boundary;

map the external identity to a corresponding internal identity, the internal identity configured for use inside the security boundary;

send the data access request to an exposed endpoint for previously registered logic associated with an external entity, the previously registered logic bound to one or more data repositories that maintain the requested data;

receive a response to the data access request, the response including the requested data;

rewrite the response to make it appear that a component of the brokering pipeline generated the response, rewriting the response decoupling the exposed endpoint from the external entity; and

send the re-written response to the external identity.

11. The computer program product of claim 10 , further comprising computer-executable instructions that, when executed, cause the computer system to, prior to receiving the data access request, register the logic associated with the external entity at a query engine.

12. The computer program product of claim 10 , wherein computer-executable instructions that, when executed, cause the computer system to map the external identity to a corresponding internal identity comprise computer-executable instructions that, when executed, cause the computer system to refer to an access directory to determine that the external identity maps to the corresponding internal identity.

13. The computer program product of claim 10 , further comprising computer-executable instructions that, when executed, cause the computer system to, prior to mapping the external identity to a corresponding internal identity, validate the external identity for public access to the brokering pipeline.

14. The computer program product of claim 10 , wherein computer-executable instructions that, when executed, cause the computer system to receive a data access request from an external identity comprise computer-executable instructions that, when executed, cause the computer system to receive a data access request from a computing domain; and

further comprising computer-executable instructions that, when executed, cause the computer system to, prior to mapping the external identity to a corresponding internal identity, validate the computing domain for private access to the one or more data repositories.

15. The computer program product of claim 10 , wherein computer-executable instructions that, when executed, cause the computer system to send the data access request to an exposed endpoint for previously registered logic comprise computer-executable instructions that, when executed, cause the computer system to send the data access request to registered logic that is encapsulated in a registered entry at a query engine.

16. The computer program product of claim 10 , wherein computer-executable instructions that, when executed, cause the computer system to receive a response to the data access request comprise computer-executable instructions that, when executed, cause the computer system to receive a response that includes the requested data returned from a caching layer of the brokering pipeline.

17. The computer program product of claim 10 , wherein computer-executable instructions that, when executed, cause the computer system to receive a response to the data access request comprise computer-executable instructions that, when executed, cause the computer system to receive a response that includes the requested data returned from the one or more data repositories.

18. A computer system, the computer system comprising:

one or more processors;

system memory;

one or more data repositories;

a query engine; and

one or more computer storage devices having stored thereon computer-executable instructions representing a brokering pipeline, the brokering pipeline configured to:

receive a data access request from an external identity, the data access request requesting data maintained inside the security boundary, the external identity outside of the security boundary;

map the external identity to a corresponding internal identity, the internal identity configured for use inside the security boundary;

send the data access request to an exposed endpoint for previously registered logic associated with an external entity, the previously registered logic bound to one or more data repositories that maintain the requested data;

receive a response to the data access request, the response including the requested data;

rewrite the response to make it appear that a component of the brokering pipeline generated the response, rewriting the response decoupling the exposed endpoint from the external entity; and

send the re-written response to the external identity.

19. The computer system of claim 18 , wherein the brokering pipeline being configured to receive a response to the data access request comprises the brokering pipeline being configured to receive a response that includes the requested data returned from a caching service of the brokering pipeline.

20. The computer system of claim 19 , wherein the caching service is configured to monitor changes at the one or more data repositories to keep cached data up to date.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2015
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034819/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 2, 2014
From: LIU, ZHEN; MAK, BOBBY CHIU CHUN; HUANG, JERRY; HE, JUN; DENG, XIAOMIN; LI, QINGHU; ZHANG, WEI PU
To: MICROSOFT CORPORATION
Reel/Frame 034307/0232 →