IP Library Granted Patent US 8,230,052
Granted Patent B2
US 8,230,052 · App. 11/675,053 · Granted Jul 24, 2012

Module diagnostic toolkit for client-server based protocols

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,230,052
App. No.
11/675,053
Granted
Jul 24, 2012
Kind
B2
Abstract

This paper describes a server diagnostic module toolkit which provides for the non-intrusive inspection and/or data transformation of stages, modules, and data on a server utilizing a request-response protocol. Diagnostic modules are installed on a server so that diagnostic commands may be sent by a client within an otherwise normal request and received by the server to invoke debugging and monitoring functionality during the normal runtime processing of the server. Diagnostic data may then be stored and later retrieved so that debugging and monitoring may be accomplished without disturbing the normal processing of requests by the server.

Claims (31)

1. In a client-server computing environment, a method of allowing the inspection and/or server data transformation of modules for an HTTP request pipeline in a runtime, non-intrusive manner by providing a set of diagnostic modules that subscribe to various stages of the HTTP request pipeline and monitor module execution at any subscribed server stage therein, the method comprising:

receiving, from a client, a first HTTP request at a server that has an HTTP request pipeline and that executes a plurality of software modules that perform particular functions within one or more stages of the HTTP request pipeline;

the server also including a set of diagnostic modules, separate from the software modules, that subscribe to various stages of the HTTP request pipeline and monitor software module execution at any subscribed stage therein;

determining that the first HTTP request includes a diagnostic command in its header, the diagnostic command requesting the execution of one or more command handlers of one or more diagnostic modules that subscribe to at least one stage within the HTTP request pipeline;

based on the diagnostic command included in the first HTTP request, executing at least one function of the one or more diagnostic modules within the at least one stage of the HTTP request pipeline to perform an inspection, a data transformation, or both on data as the data passes through the at least one stage of the HTTP request pipeline to which the one or more diagnostic modules subscribe thereby enabling the inspection, data transformation, or both in a runtime, non-intrusive manner;

storing diagnostic data obtained from the inspection, the data transformation, or both in a log

receiving, from the client, a second HTTP request at the server, the second HTTP request including a diagnostic command in its header that requests the retrieval of the stored diagnostic data;

and in response to the second HTTP request, retrieving and sending the diagnostic data to the client.

2. The method as recited in claim 1 , wherein each stage within the HTTP request pipeline is subscribed to by one or more of the diagnostic modules.

3. The method as recited in claim 1 , wherein the request further includes one or more parameters for use when executing the at least one function of the one or more diagnostic modules.

4. The method as recited in claim 1 , wherein performing the inspection, the data transformation, or both, comprises inspecting parameters being passed to another module other than the one or more diagnostic modules of the plurality of modules.

5. The method as recited in claim 1 , wherein executing the at least one function comprises enabling a previously installed module.

6. The method as recited in claim 1 , wherein executing the at least one function comprises disabling a previously installed module.

7. In a client-server computing environment, a method of remotely invoking the inspection and/or server data transformation of server modules for an HTTP request pipeline in a runtime, non-intrusive manner the method comprising:

creating a first HTTP request to be sent to the server that has an HTTP request pipeline and that executes a plurality of software modules that perform particular functions within one or more stages of the HTTP request pipeline, the server also including a set of diagnostic modules, separate from the software modules, that subscribe to various stages of the HTTP request pipeline and monitor software module execution at any subscribed stage therein, creating the first HTTP request comprising:

determining a stage or a module in the HTTP request, pipeline which is to be monitored,

identifying a diagnostic command for executing one or more command handlers functionality of one or more diagnostic modules that subscribe to at least one stage within the request pipeline, and

including the diagnostic command in the header of the HTTP request;

sending the first HTTP request to the server wherein, when received by a server, the diagnostic command included in the header causes the execution of at least one function of the one or more diagnostic modules, and wherein, based on the execution of the at least one function of the one or more diagnostic modules, an inspection, data transformation, or both, of on data as the data passes through the at least one stage of the HTTP request pipeline to which the one or more diagnostic modules subscribe, and wherein based on the performance of the inspection, data transformation, or both, diagnostic data is stored in a log;

creating a second HTTP request to be sent to the server and including in the header of the second HTTP request a diagnostic command that requests retrieval of the stored diagnostic data; and

receiving the diagnostic data from the server in response to the second HTTP request such that the diagnostic data is obtained in a runtime, non-intrusive manner.

8. The method as recited in claim 7 wherein executing the at least one function comprises enabling a previously installed module.

9. The method as recited in claim 7 wherein executing the at least one function comprises disabling a previously installed module.

10. A computer program product comprising a computer-readable storage device having encoded thereon computer-readable instructions, the instructions, when executed in a computing environment, perform a method comprising:

receiving, from a client, a first HTTP request at a server that has an HTTP request pipeline and that executes a plurality of software modules that perform particular functions within one or more stages of the HTTP request pipeline, the server also including a set of diagnostic modules, separate from the software modules, that subscribe to various stages of the HTTP request pipeline and monitor software module execution at any subscribed stage therein;

determining that the first HTTP request includes a diagnostic command in its header, the diagnostic command requesting the execution of one or more command of one or more diagnostic modules that subscribe to at least one stage within the request pipeline;

based on the diagnostic command included in the first HTTP request, executing at least one function of the one or more diagnostic modules within the at least one stage of the HTTP request pipeline-to perform an inspection, a data transformation, or both on data as the data passes through the at least one stage of the HTTP request pipeline to which the one or more diagnostic modules subscribe thereby enabling the inspection, data transformation, or both in a runtime, non-intrusive manner;

storing diagnostic data obtained from the inspection, the data transformation, or both in a log

receiving, from the client, a second HTTP request at the server, the second HTTP request including a diagnostic command in its header that requests the retrieval of the stored diagnostic data; and

in response to the second HTTP request, retrieving and sending the diagnostic data to the client.

11. The computer program product of claim 10 , wherein the request further includes one or more parameters for use when executing the at least one function of the one or more diagnostic modules.

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 Feb 15, 2007
From: SINGLA, KANWALJEET; GOCIMAN, CIPRIAN; GOKTEPE, METE
To: MICROSOFT CORPORATION
Reel/Frame 018892/0546 →