IP Library › Granted Patent US 7,937,703
Granted Patent B2
US 7,937,703 · App. 11/237,147 · Granted May 3, 2011

Stateless server-side automation of web service requests using dynamically generated web service interfaces

Assignee: International Business Machines 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 7,937,703
App. No.
11/237,147
Granted
May 3, 2011
Kind
B2
Abstract

Methods, computer programs, and systems for processing a request through a web service on a server are provided. The method includes receiving a batch request from a client. The batch request includes a plurality of sub-requests that each specifies an operation to be performed by the web service. The method further includes processing the batch request through the web service including performing the operation specified by each of the plurality of sub-requests and generating a corresponding plurality of sub-replies. Each sub-reply contains result data of the processing of a corresponding sub-request. The method further includes constructing a batch reply including the plurality of sub-replies, and returning the batch reply to the client.

Claims (36)

1. A method for processing a batch request through a web service on a server, the method comprising:

processing a batch request from a client through the web service, the batch request including a plurality of sub-requests that each specify an operation to be performed by the web service, the processing including performing the operation specified by each of the plurality of sub-requests and generating a corresponding plurality of sub-replies, wherein a first sub-request of the plurality of sub-requests includes a storage attribute indicating that result data of processing the first sub-request should be stored in a temporary buffer, and wherein a second sub-request of the plurality of sub-requests includes an input attribute indicating that the result data should be used as input to the second sub-request;

creating the temporary buffer on the server;

storing the result data of processing the first sub-request in the temporary buffer on the server;

transforming the result data in the temporary buffer on the server into a form suitable for input to the second sub-request, wherein transforming the result data retrieved from the temporary buffer on the server into a form suitable for input to the second sub-request includes transforming the result data using an XSLT transformation;

retrieving the transformed result data stored in the temporary buffer on the server;

passing the transformed result data as input to the second sub-request when processing the second sub-request to generate a second sub-reply, the second sub-reply corresponding to the processing of the second sub-request;

constructing a batch reply including the plurality of sub-replies;

providing the batch reply to the client; and

clearing the temporary buffer of the result data when the batch reply is returned to the client to ensure that state is maintained on a per request basis.

2. The method of claim 1 , wherein the XSLT transformation is stored in a XSLT library on the server.

3. The method of claim 1 , wherein the XSLT transformation is passed along with the second sub-request to the server.

4. A non-transitory computer readable medium storing a program product for processing a batch request through a web service on a server, the program product comprising instructions operable to cause a programmable processor to:

process a batch request from a client through the web service, the batch request including a plurality of sub-requests that each specifies an operation to be performed by the web service, the instructions to process further including instructions to perform the operation specified by each of the plurality of sub-requests and generate a corresponding plurality of sub-replies, wherein a first sub-request of the plurality of sub-requests includes a storage attribute indicating that result data of processing the first sub-request should be stored in a temporary buffer, and wherein a second sub-request of the plurality of sub-requests includes an input attribute indicating that the result data should be used as input to the second sub-request;

create the temporary buffer on the server;

store the result data of processing the first sub-request in the temporary buffer on the server;

transform the result data in the temporary buffer into a form suitable for input to the second sub-request, wherein the instructions to transform the result data retrieved from the temporary buffer on the server into a form suitable for input to the second sub-request include instructions to transform the result data using an XSLT transformation;

retrieve the transformed result data stored in the temporary buffer on the server;

pass the transformed result data as input to the second sub-request when processing the second sub-request to generate a second sub-reply, the second sub-reply corresponding to the processing of the second sub-request;

construct a batch reply including the plurality of sub-replies;

provide the batch reply to the client; and

clear the temporary buffer of the result data when the batch reply is returned to the client to ensure that state is maintained on a per request basis.

5. The non-transitory computer readable medium of claim 4 , wherein the XSLT transformation is stored in a XSLT library on the server.

6. The non-transitory computer readable medium of claim 4 , wherein the XSLT transformation is passed along with the second sub-request to the server.

7. A system comprising:

a server computing system configured to provide a web service;

a client to generate a batch request, the batch request including a plurality of sub-requests that each specifies an operation to be performed by the web service, wherein a first sub-request of the plurality of sub-requests includes a storage attribute indicating that result data of processing the first sub-request should be stored in a temporary buffer, and wherein a second sub-request of the plurality of sub-requests includes an input attribute indicating that the result data should be used as input to the second sub-request; and

the web service configured to receive the batch request from the client and process the batch request through the web service including performing the operation specified by each of the plurality of sub-requests and generating a corresponding plurality of sub-replies, the web service further configured to:

create the temporary buffer on the server,

store the result data of processing the first sub-request in the temporary buffer on the server,

transform using an XSLT transformation the result data in the temporary buffer into a form suitable for input to the second sub-request,

retrieve the transformed result data stored in the temporary buffer on the server;

pass the transformed result data as input to the second sub-request when processing the second sub-request to generate a second sub-reply, the second sub-reply corresponding to the processing of the second sub-request,

construct a batch reply including the plurality of sub-replies,

return the batch reply to the client, and

clear the temporary buffer of the result data when the batch reply is returned to the client to ensure that state is maintained on a per request basis.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 15, 2005
From: BETHEA, TIMOTHY JOEL; GORKANI, MONIKA MOJGAN; ROBERTS, CYNTHIA MARIE; TAGORE, SOUMITRO
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 017126/0350 →
Continuity (1)
Related Publication 20070074215A1 · Mar 29, 2007