IP Library Granted Patent US 8,316,227
Granted Patent B2
US 8,316,227 · App. 11/745,904 · Granted Nov 20, 2012

Health integration platform protocol

Assignee: Microsoft Corporation
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,316,227
App. No.
11/745,904
Granted
Nov 20, 2012
Kind
B2
Abstract

A protocol is provided for communicating data between two applications. The protocol can support communication of an extensible markup language (XML) document over hypertext transfer protocol (HTTP) by associating the XML document with a data envelope and sending the data envelope to a disparate application. The data envelope can comprise a header, which can specify supported compression methods, encryption keys, and/or data specific to the disparate application and/or the sending application. The protocol adds a layer of security to the communication and can prevent malicious requests and other attacks. This protocol can also be used in conjunction with a health integration network.

Claims (31)

1. A protocol system, comprising:

a processing unit; and

a memory storing instructions executable on the processing unit, the instructions comprising

a receiving component configured to execute on the processing unit and to receive a portion of a first data envelope comprising a request for data access from an application and incrementally read the portion of the first data envelope, and

an analysis component configured to execute on the processing unit and to receive the portion of the first data envelope from the receiving component, and make a preliminary determination based on the incremental reading of the portion of the first data envelope including whether or not to continue receiving the first data envelope, and

wherein the preliminary determination is based at least in part on a workload associated with processing the request, indicated in a header of the first data envelope;

a packaging component configured to receive response data based at least in part on the first data envelope, and package the response data in a second data envelope;

wherein in the memory further stores an encryption component configured to execute on the processing unit and to encrypt at least a portion of the second data envelope based on an encryption key specified in the first data envelope.

2. The system of claim 1 , wherein the memory further stores a a protocol interpretation component configured to execute on the processing unit and to read the header and extract information, including an envelope size and a number of method calls requested, concerning the workload.

3. The system of claim 1 , wherein the receiving component is configured to return an error data envelope comprising at least one error code where the first data envelope is entirely received and a trust-level exceeds a threshold.

4. The system of claim 1 , wherein the application includes a health integration network comprising a plurality of data stores that respectively store health related data.

5. The system of claim 3 , wherein the trust-level is determined by utilizing a health integration network to evaluate an authorization corresponding to a value relating to the request for data access.

6. The system of claim 5 , wherein the value relating to the request for data access includes an identifier of a record within the health integration network for which access is requested.

7. The system of claim 6 , wherein a user identifier is additionally read from the first data envelope and used in conjunction with the identifier of a record in evaluating the authorization to determine the trust-level.

8. The system of claim 1 , wherein the analysis component is configured to make the preliminary determination based at least partly on a past malicious request from an IP address.

9. A method, comprising:

receiving a data request packaged within a data envelope as an extensible markup language (XML) document, the data envelope comprising at least one header specifying at least information corresponding to a workload associated with processing the request; and

incrementally reading the data request and making a preliminary determination, based on the workload, concerning whether to continue to read the data request;

receiving at least one public encryption key in the header;

decrypting at least a portion of the data envelope using a private decryption key that corresponds to the public encryption key.

10. The method of claim 9 , further comprising, if the preliminary determination is made to continue to read the data request, incrementally validating the data request while reading the data request.

11. The method of claim 10 , further comprising receiving in the header an indication of a supported compression method.

12. The method of claim 9 , further comprising accessing a health integration network comprising a plurality of databases that respectively store health related data to respond to the data request.

13. The method of claim 12 , the accessing comprising retrieving health related data stored as an XML document in the health integration network.

14. The method of claim 9 , further comprising receiving the data envelope over a hypertext transfer protocol (HTTP) connection.

15. A computer-readable storage medium, wherein the medium is not a signal, storing instructions that, when executed by a computing device, cause the computing device to perform operations comprising:

receiving an extensible markup language (XML) document representing a data envelope, the data envelope comprising a header and a request for data; and

incrementally reading the data envelope to make a determination, based on workload information in the header associated with processing the request, concerning whether to deny the request for data and stop processing the data envelope;

packaging a result in a return data envelope, the result based at least in part on the request for data;

compressing the result based on a compression method specified in the header; and

sending the return data envelope to a requesting entity.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034542/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 8, 2007
From: NOLAN, SEAN PATRICK; APACIBLE, JOHNSON T.; JONES, JEFFREY DICK; MARCJAN, CEZARY
To: MICROSOFT CORPORATION
Reel/Frame 019263/0924 →
Continuity (2)
Provisional Application 60863897 · Nov 1, 2006
Related Publication 20080101597A1 · May 1, 2008