1. Field of the Invention
The present invention relates to computer software, and deals more particularly with methods, systems, and computer program products for dynamically extending network-accessible services, an example of which is Web services, thereby making additional operations available in a transparent manner.
2. Description of the Related Art
The term “Web service” refers generally to an interface that describes a collection of network-accessible operations. Web services technology is a mechanism for distributed application integration, whereby program-to-program operation is facilitated via distributed network access to software. Web services are also commonly referred to as the “service-oriented architecture” for distributed computing. Web services fulfill a specific task or a set of tasks. A Web service may work with one or more other Web services in an interoperable manner to carry out a complex workflow or a business transaction. For example, completing a complex purchase order transaction may require automated interaction between an order placement service (i.e., order placement software) at the ordering business and an order fulfillment service at one or more of its business partners. In turn, this order fulfillment service may interact with a credit card approval service, a package delivery service, and so forth.
The open industry standards leveraged by Web services to facilitate “just-in-time” distributed application integration include HTTP (“Hypertext Transfer Protocol”), SOAP (“Simple Object Access Protocol”), WSDL (“Web Services Description Language”), and UDDI (“Universal Description, Discovery, and Integration”). HTTP is commonly used to exchange messages over TCP/IP (“Transmission Control Protocol/Internet Protocol”) networks such as the Internet. SOAP is an XML-based protocol used to invoke methods in a distributed environment. UDDI is an XML-based registry technique with which businesses may list their services and with which service requesters may find businesses providing particular services. Just-in-time application integration is facilitated by issuing UDDI requests to locate distributed services through a UDDI registry, and dynamically binding the requester to a located service using service information which is conveyed in a platform-neutral WSDL format using SOAP and HTTP messages. Using these components, Web services will provide requesters with transparent access to program components which may reside in one or more remote locations, even though those components might run on different operating systems and be written in different programming languages than those of the requester.
For more information on SOAP, refer to “SOAP Version 1.2 Part 0: Primer, W3C Recommendation 24 Jun. 2003”, which is available from the W3C. More information on WSDL may be found in “Web Services Description Language (WSDL) 1.1, W3C Note 15 Mar. 2001”, which is also available from the W3C. Detailed information on UDDI is available from the Organization for the Advancement of Structured Information Standards (“OASIS”). HTTP is described in Request For Comments (“RFC”) 2616 from the Internet Engineering Task Force, titled “Hypertext Transfer Protocol—HTTP/1.1” (June 1999).
Use of Web services is becoming increasingly popular. As this technology becomes more pervasive, Web service authors and administrators of Web service implementations may want to be able to add additional operations to previously-deployed Web services. As an example, it may be desirable to add management capabilities to the deployed Web services. One way in which this might be done is to have all services provide a base management class that offers management features, and then subclass or extend this base class to offer service-specific details. However, this would be extremely costly, and is not extensible beyond planned-for base classes. (For example, it might be desirable to add operations that do not pertain to management.) In addition, it would be quite time-consuming and disruptive to retroactively update previously-deployed services. Therefore, this is not a viable approach.
The present invention avoids these drawbacks and limitations, enabling dynamic extensions to network-accessible services (such as Web services) to be provided in a transparent manner.