Claims
- 1. In a server system providing one or more services, a method of dynamically executing one or more functions at any of one or more processing steps that may occur in providing the one or more services to one or more client systems, the method comprising:
an act of defining one or more processing steps that are performed by a server system in providing one or more services; an act of dynamically assigning at least one function to at least one of the one or more processing steps; at each processing step, an act of dynamically evaluating whether or not any function has been assigned; and at each processing step that has at least one assigned function, an act of executing the at least one assigned function.
- 2. A method as recited in claim 1, further comprising an act of evaluating whether the at least one dynamically assigned function should be executed either before or after the at least one of the one or more processing steps.
- 3. A method as recited in claim 1, wherein the one or more processing steps enable processing requests from client systems, the method further comprising:
an act of receiving a request for the one or more services from the client system; based on the request for the one or more services, an act of generating a response; and an act of sending the response to the client system.
- 4. A method as recited in claim 3, wherein the request and the response comprise data organized hierarchically within a network message.
- 5. A method as recited in claim 4, wherein the hierarchically organized data comprises eXtensible Markup Language (“XML”) formatted data, and wherein the network message comprises a Simple Object Access Protocol (“SOAP”) network message.
- 6. A method as recited in claim 5, wherein the hierarchically organized data comprises binary data.
- 7. A method as recited in claim 1, further comprising an act of defining one or more functions that may be executed at any of the one or more defined processing steps.
- 8. A method as recited in claim 1, wherein the server system comprises an eXtensible Markup Language (“XML”) data repository providing access to XML data based on identity information that is received with a request from a client system for the one or more services provided by the server system.
- 9. A method as recited in claim 1, wherein the server system comprises a plurality of processing layers that contain the one or more processing steps, the method further comprising an act of describing at least a portion of the server system in accordance with an eXtensible Markup Language (“XML”) schema.
- 10. A method as recited in claim 9, wherein the plurality of layers comprise at least one of (i) a parsing layer, (ii) a security layer, (iii) a cryptography layer, and (iv) a service layer.
- 11. A method as recited in claim 10, wherein the at least one function comprises at least one of (i) a logging function, and (ii) a filtering function.
- 12. A method as recited in claim 1, wherein executing the assigned function detects an error condition in a request received from a client system, the method further comprising:
an act of terminating any further processing on the request; and an act of generating a response that includes information about the error condition.
- 13. A method as recited in claim 1, further comprising an act of dynamically unassigning the at least one function from the at least one of the one or more processing steps.
- 14. A computer-readable medium having computer-executable instructions for performing the acts recited in claim 1.
- 15. In a server system for providing one or more services to one or more client systems, wherein the server system comprises one or more functional processing blocks, a method of dynamically applying one or more actions while executing any of the one or more functional processing blocks, the method comprising:
within a server system providing one or more services, a step for identifying one or more functional processing blocks where one or more actions may be applied to one or more requests directed to the one or more services; for at least one of the one or more functional processing blocks, a step for dynamically associating at least one action; a step for checking whether or not any action has been associated with a particular functional processing block during execution of the particular functional processing block; and during execution of any functional processing block with one or more associated actions, a step for applying the one or more associated actions.
- 16. A method as recited in claim 15, wherein the step for dynamically associating at least one action comprises an act of evaluating whether the at least one dynamically associated action should be applied before or after the at least one of the one or more functional processing blocks.
- 17. A method as recited in claim 15, further comprising a step for responding to a client system based on a request for the one or more services from the client system.
- 18. A method as recited in claim 15, wherein the request and the response to the client system comprise data organized hierarchically within a network message, the hierarchically organized data comprising eXtensible Markup Language (“XML”) formatted data, and the network message comprising a Simple Object Access Protocol (“SOAP”) network message.
- 19. A method as recited in claim 15, wherein the server system comprises data that can be manipulated with eXtensible Markup Language (“XML”), and wherein access to the data is governed by the identity of the requestor.
- 20. A method as recited in claim 15, wherein the server system comprises a plurality of processing layers, and wherein the plurality of layers comprise at least one of (i) a parsing layer, (ii) a security layer, (iii) a cryptography layer, and (iv) a service layer, and wherein the at least one action comprises at least one of (i) a logging operation, and (ii) a filtering operation.
- 21. A method as recited in claim 15, further comprising a step for dynamically disassociating the at least one action from the at least one of the one or more functional processing blocks.
- 22. A computer-readable medium having computer-executable instructions for performing the steps recited in claim 15.
- 23. A computer program product for use in a server system providing one or more services, the computer program product implementing a method of dynamically executing one or more functions at any of one or more processing steps that may occur in providing the one or more services to one or more client systems, wherein the computer program product comprises one or more computer-readable media carrying computer executable instructions for implementing the method, and wherein the method comprises acts of:
defining one or more processing steps that are performed by a server system in providing one or more services; dynamically assigning at least one function to at least one of the one or more processing steps; at each processing step, dynamically evaluating whether or not any function has been assigned; and at each processing step that has at least one assigned function, executing the at least one assigned function.
- 24. A computer program product as recited in claim 23, the method further comprising an act of evaluating whether the at least one dynamically assigned function should be executed either before or after the at least one of the one or more processing steps.
- 25. A computer program product as recited in claim 23, wherein the one or more processing steps enable processing requests from client systems, the method further comprising acts of:
receiving a request for the one or more services from the client system; based on the request for the one or more services, generating a response; and sending the response to the client system.
- 26. A computer program product as recited in claim 25, wherein the request and the response comprise data organized hierarchically within a network message.
- 27. A computer program product as recited in claim 26, wherein the hierarchically organized data comprises extensible Markup Language (“XML”) formatted data, and wherein the network message comprises a Simple Object Access Protocol (“SOAP”) network message.
- 28. A computer program product as recited in claim 23, wherein the server system comprises an extensible Markup Language (“XML”) data repository providing access to XML data based on identity information that is received with a request from a client system for the one or more services provided by the server system.
- 29. A computer program product as recited in claim 23, wherein the server system comprises a plurality of processing layers that contain the one or more processing steps, and wherein the plurality of layers comprise at least one of (i) a parsing layer, (ii) a security layer, (iii) a cryptography layer, and (iv) a service layer.
- 30. A computer program product as recited in claim 23, wherein the at least one function comprises at least one of (i) a logging function, and (ii) a filtering function.
- 31. A computer program product as recited in claim 23, wherein executing the assigned function detects an error condition in a request received from a client system, the method further comprising acts of:
terminating any further processing on the request; and generating a response that includes information about the error condition.
- 32. A computer program product as recited in claim 23, the method further comprising an act of dynamically unassigning the at least one function from the at least one of the one or more processing steps.
- 33. A computer program product as recited in claim 23, where the one or more computer-readable media are physical storage media.
- 34. A computer program product for use in a server system that provides one or more services to one or more client systems, wherein the server system comprises one or more functional processing blocks, the computer program product implementing a method of dynamically applying one or more actions while executing any of the one or more functional processing blocks, wherein the computer program product comprising one or more computer-readable media carrying computer executable instructions for implementing the method, and wherein the method comprises steps for:
within a server system providing one or more services, identifying one or more functional processing blocks where one or more actions may be applied to one or more requests directed to the one or more services; for at least one of the one or more functional processing blocks, dynamically associating at least one action; checking whether or not any action has been associated with a particular functional processing block during execution of the particular functional processing block; and during execution of any functional processing block with one or more associated actions, applying the one or more associated actions.
- 35. A computer program product as recited in claim 34, wherein the step for dynamically associating at least one action comprises an act of evaluating whether the at least one dynamically associated action should be applied before or after the at least one of the one or more functional processing blocks.
- 36. A computer program product as recited in claim 34, wherein the request and the response to the client system comprise data organized hierarchically within a network message, the hierarchically organized data comprising extensible Markup Language (“XML”) formatted data, and the network message comprising a Simple Object Access Protocol (“SOAP”) network message.
- 37. A computer program product as recited in claim 34, wherein the server system comprises data that can be manipulated with extensible Markup Language (“XML”), and wherein access to the data is governed by the identity of the requester.
- 38. A computer program product as recited in claim 34, wherein the server system comprises a plurality of processing layers, and wherein the plurality of layers comprise at least one of (i) a parsing layer, (ii) a security layer, (iii) a cryptography layer, and (iv) a service layer, and wherein the at least one action comprises at least one of (i) a logging operation, and (ii) a filtering operation.
- 39. A computer program product as recited in claim 34, the method further comprising a step for dynamically disassociating the at least one action from the at least one of the one or more functional processing blocks.
- 40. One or more computer-readable media having stored thereon a data structure for use when accessing a hierarchically organized request or a hierarchically organized response associated with the request using a locator statement without having to determine the processing context of the locator statement, the data structure comprising:
a first field that represents an ancestral node for the hierarchically organized request and the hierarchically organized response, the first field further comprising:
a second field that represents the hierarchically organized request; and a third field that represents the hierarchically organized response, wherein the locator statement may be used to locate hierarchical nodes within either the hierarchically organized request or the hierarchically organized response.
- 41. One or more computer-readable media as recited in claim 40, wherein the first field represents a server, the first field further comprising:
a fourth field that represents performance information for the server.
- 42. One or more computer-readable media as recited in claim 40, wherein the first field further comprises information related to other request/response pairs.
- 43. One or more computer-readable media as recited in claim 40, wherein the locator statement comprises an xPath statement.
- 44. One or more computer-readable media as recited in claim 40, wherein the data structure is organized in accordance with an extensible Markup Language (XML).
- 45. One or more computer-readable media as recited in claim 40, wherein the one or more computer-readable media are physical storage media.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] The present application claims priority from co-pending U.S. provisional application serial No. 60/275,809, filed Mar. 14, 2001 and entitled “Identity-Based Service Communication Using XML Messaging Interfaces”, which provisional application is incorporated herein by reference in its entirety.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60275809 |
Mar 2001 |
US |