US 7,593,994 B2
Generating a dynamic web service and dynamic service surrogate for legacy application components
Andrew D. Milligan, Redmond, Wash. (US); Harris Syed, Kirkland, Wash. (US); John D. Doty, Seattle, Wash. (US); Max Attar Feingold, Bellevue, Wash. (US); and Saji Abraham, Bellevue, Wash. (US)
Assigned to Microsoft Corporation, Redmond, Wash. (US)
Filed on Mar. 08, 2005, as Appl. No. 11/74,619.
Prior Publication US 2006/0206567 A1, Sep. 14, 2006
Int. Cl. G06F 15/16 (2006.01)
U.S. Cl. 709—206  [709/232; 709/246] 19 Claims
OG exemplary drawing
 
1. At a service computing device in a distributed system, a method of providing web services via a custom object created by a developer for legacy components that communicate via a legacy interface that is not developed to communicate in a web service environment, the custom object allowing a developer control over the web services' interoperability, robustness, and efficiency, without requiring a rewrite of the legacy components, the method comprising:
receiving from a web service, a request to access a service provided by an application with one or more legacy components which communicate using a legacy interface that is not developed to communicate in a web service environment;
identifying that the request corresponds to a service controlled by a service surrogate which is a custom object created by a developer to expose a surrogate interface as an abstraction between the web service client and the legacy interface, the surrogate interface being created based on a surrogate description;
accessing surrogate metadata, the surrogate metadata describing the service surrogate and a surrogate interface for communicating with an instance of the service surrogate;
accessing component metadata, the component metadata describing calls which may be passed to the one or more legacy components, parameters which may be passed to the one or more legacy components, and the order in which parameters are to be passed;
passing at least a portion of the request via the surrogate interface to an instance of the service surrogate;
the instance of the service surrogate processing at least a portion of the request by one or more of a call into the one or more legacy components, a call into the instance of the service surrogate, or a call into other systems outside the application and the service surrogate;
based on the surrogate description, identifying that a message exchange pattern for the one or more legacy components requires a response to the web service client;
receiving one or more return values from one or more of the one or more legacy components, the instance of the service surrogate, or the other systems outside the application and the instance of the service surrogate;
using the instance of the of the service surrogate to format the one or more return values into a web service response message; and
sending the web service response message to the web service client for further processing.