The present invention relates to Web Services and, more particularly, to extending the operations that can be invoked on a given Web Service without changing the Web Services Description Language (WSDL) definitions for the Web Service.
A Web Service is a software system that supports interoperable machine to machine interaction over a data communication network. In the domain of Web Services, the operations that can be invoked on a given Web Service are typically defined in a WSDL definition document for the Web Service. Sometimes business needs or a change in feature set supported on a server platform make it desirable to add new operations to the Web Service. The addition of new operations, however, presents certain technical challenges.
Conventionally, new operations have been incorporated by updating the WSDL definition document for the Web Service. However, this can introduce backward compatibility problems for older applications that rely on the original WSDL definitions. While it is possible to address backward compatibility problems by versioning the Web Service to allow older applications to use the original WSDL definitions and newer applications to use the updated WSDL definitions, allowing multiple versions of WSDL definitions to coexist for a given Web Service adds substantial complexity.
The present invention, in a basic feature, provides a Web Services interface extension channel that exposes new operations for a Web Service without requiring changes to the WSDL definitions for the Web Service. In some embodiments, extended operation requests and responses are transmitted over the extension channel using SOAP (formerly “Simple Object Access Protocol” but now just “SOAP”) methods reserved for extended operation requests and responses, respectively.
In one aspect of the invention, in a communication system having a service adapted to execute defined operations and extended operations and a client adapted to request execution by the service of defined operations and extended operations, a method performed by the client for invoking at least one of the extended operations comprises the steps of transmitting by the client to the service an extended operation invocation request identifying the at least one extended operation and receiving by the client from the service in response to the request an extended operation invocation response having a result obtained through execution by the service of the at least one extended operation.
In some embodiments, the defined operations are defined in a WSDL definition document for the service and the extended operations are not defined in any WSDL definition document for the service.
In some embodiments, the extended operations are enabled for the service after the defined operations.
In some embodiments, the request utilizes a SOAP method reserved for extended operation requests.
In some embodiments, the response utilizes a SOAP method reserved for extended operation responses.
In some embodiments, the request and the response each comprise an operation identifier that uniquely identifies the invoked extended operation.
In some embodiments, the request and the response each comprise a transaction identifier that uniquely identifies a transaction between the client and the service.
In some embodiments, the method further comprises the steps of transmitting by the client to the service an extended operation status request having the transaction identifier and receiving by the client from the service in response to the extended operation status request an extended operation status response reporting operational status of the transaction.
In some embodiments, the method further comprises the step of receiving by the client from the service an extended operation discovery message reporting availability of the at least one extended operation.
In another aspect of the invention, in a communication system having a service adapted to execute defined operations and extended operations and a client adapted to request execution by the service of defined operations and extended operations, a method performed by the service for executing at least one of the extended operations invoked by the client comprises the steps of receiving by the service from the client an extended operation invocation request identifying the at least one extended operation and transmitting by the service to the client in response to the request an extended operation invocation response having a result obtained through execution by the service of the at least one extended operation.
In yet another aspect of the invention, in a communication system having a service adapted to execute defined operations and extended operations and a client adapted to request execution by the service of defined operations and extended operations, a method performed by the client for invoking at least one of the extended operations comprises the steps of transmitting by the client to the service an extended operation invocation request having a transaction identifier uniquely identifying a transaction, transmitting by the client to the service an extended operation status request having the transaction identifier and receiving by the client from the service an extended operation status response having the transaction identifier and reporting operational status of the transaction, wherein the invocation request and the status request utilize a SOAP method reserved for extended operation requests and the status response utilizes a SOAP method reserved for extended operation responses.
These and other aspects of the invention will be better understood by reference to the following detailed description taken in conjunction with the drawings that are briefly described below. Of course, the invention is defined by the appended claims.
Client 110 is a software element that is implemented by a processor on a client host device. The client host device may be, for example, a personal computer, a mobile phone or a personal data assistant (PDA). Client 110 discovers and invokes extended operations of Web Service 120 through a request and response protocol. Client 110 discovers available extended operations by issuing to Web Service 120 an extended operations discovery request (DISCOVERY REQ) and receiving from Web Service 120 in response to the discovery request an extended operations discovery response (DISCOVERY RESP) containing extended operations information. In some embodiments, the discovery request and response are SOAP messages using XML descriptor types. For example, in the Sharp Open Systems Architecture (OSA), the discovery request may be a GetJobSettableElements SOAP message using the XML_DOC_SET_TYPE descriptor type to request extended operations information and the discovery response may be a GetJobSettableElementsResponse SOAP message using the XML_DOC_DSC_TYPE descriptor type to express extended operations information.
Turning now to
complex sys-name is an attribute whose value specifies the name of a complex system variable that is being described. A complex system may include zero or more nested property descriptions.
IsType is an attribute whose value specifies the type of descriptor. In this case the descriptor type is “operation”.
minOccurs is an attribute whose value specifies the minimum number of occurrences of the system variable that is being described. Where the minimum number of occurrences is zero, the system variable is optional.
maxOccurs is an attribute whose value specifies the maximum number of occurrences of the system variable that is being described. Where the maximum number of occurrences is one, the system variable, is unique.
property sys-name is an attribute whose value specifies the name of a simple system variable (i.e. property) that is being described. There may be zero or more nested property descriptions within a complex system.
allowedValueList is an element of a property description that contains a list of permitted values for the property.
value is an element of a property description that specifies a default value for the property.
allowed is an element of a property description that specifies a permitted value of the property.
appInfo is an element of a property description that contains a list of rules or constraints on the property.
hasConstraint name=“minlength” is an element of a property description that specifies a minimum permitted length of the property.
hasConstraint name=“maxlength” is an element of a property description that specifies a maximum permitted length of the property.
For example, in
Once client 110 has discovered available extended operations through a discovery protocol, client 110 invokes an extended operation by issuing to Web Service 120 an extended operation invocation request message (INVOKE REQ) and receiving from Web Service 120 in response to the invocation request an extended operation invocation response message (INVOKE RESP). The invocation request and response messages each include an operation identifier (op) that uniquely identifies the invoked extended operation and a transaction identifier (pid) that uniquely identifies the transaction between client 110 and Web Service 120. The invocation request message may additionally include arguments (args) that specify a requested action while the invocation response message type may additionally include a result (InvokeResults) generated by Web Service 120 through execution of the requested extended operation. The invocation request and response are one-way messages in that any result produced through execution of the requested extended action is not returned in the context of the call but rather delivered in a separate message (e.g. INVOKE RESP). In some embodiments, the invocation request and response messages are SOAP messages utilizing SOAP methods that are reserved for extended operations requests and responses, respectively, and together define a Web Services interface extension channel that exposes the extended operations of Web Service 120 without requiring changes to the original WSDL definition document. In some embodiments, the invocation request message is a SOAP message using the SOAP method “Invoke” and XML_DOC_SET_TYPE descriptor type to express the requested extended operation while the invocation response message is a SOAP message using the SOAP method “InvokeResponse” and the XML_DOC_DSC_TYPE descriptor type to express the result obtained through execution of the requested extended operation.
Referring now to
Turning now to
Referring to
Naturally, other and further message flows are possible, such as an extended operation termination request and response sequence that proceeds after an extended operation status request and response sequence.
Referring finally to
It will be appreciated by those of ordinary skill in the art that the invention can be embodied in other specific forms without departing from the spirit or essential character hereof. The present description is therefore considered in all respects to be illustrative and not restrictive. The scope of the invention is indicated by the appended claims, and all changes that come with in the meaning and range of equivalents thereof are intended to be embraced therein.
Number | Name | Date | Kind |
---|---|---|---|
6801604 | Maes et al. | Oct 2004 | B2 |
6904600 | James et al. | Jun 2005 | B1 |
7028223 | Kolawa et al. | Apr 2006 | B1 |
7151966 | Baier et al. | Dec 2006 | B1 |
7392391 | Eibach et al. | Jun 2008 | B2 |
7624404 | Yagi | Nov 2009 | B2 |
20030074401 | Connell | Apr 2003 | A1 |
20030088421 | Maes et al. | May 2003 | A1 |
20030110373 | Champion | Jun 2003 | A1 |
20030158956 | Tanaka et al. | Aug 2003 | A1 |
20030163694 | Chen et al. | Aug 2003 | A1 |
20040054690 | Hillerbrand et al. | Mar 2004 | A1 |
20040088713 | Myllymaki et al. | May 2004 | A1 |
20040093580 | Carson et al. | May 2004 | A1 |
20040193703 | Loewy et al. | Sep 2004 | A1 |
20040225656 | Sarkar | Nov 2004 | A1 |
20040225657 | Sarkar | Nov 2004 | A1 |
20040237038 | Stuhec | Nov 2004 | A1 |
20050050299 | Joseph | Mar 2005 | A1 |
20050132094 | Wu | Jun 2005 | A1 |
20050138634 | Luty et al. | Jun 2005 | A1 |
20050164704 | Winsor | Jul 2005 | A1 |
20050182843 | Reistad et al. | Aug 2005 | A1 |
20050216199 | Banet | Sep 2005 | A1 |
20050228984 | Edery et al. | Oct 2005 | A1 |
20050267979 | Bailey | Dec 2005 | A1 |
20060031441 | Davis et al. | Feb 2006 | A1 |
20060077422 | Mathieson et al. | Apr 2006 | A1 |
20060077423 | Mathieson et al. | Apr 2006 | A1 |
20060077464 | Mathieson et al. | Apr 2006 | A1 |
20060085638 | Phillips et al. | Apr 2006 | A1 |
20060095536 | Mathieson et al. | May 2006 | A1 |
20060100935 | Klawitter et al. | May 2006 | A1 |
20060117084 | Morozumi et al. | Jun 2006 | A1 |
20060150026 | Kolawa et al. | Jul 2006 | A1 |
20060167983 | Webb | Jul 2006 | A1 |
20060179421 | Bielski et al. | Aug 2006 | A1 |
20060200747 | Bhatia et al. | Sep 2006 | A1 |
20060200753 | Bhatia et al. | Sep 2006 | A1 |
20060218102 | Gibson et al. | Sep 2006 | A1 |
20070055678 | Fung et al. | Mar 2007 | A1 |
Number | Date | Country | |
---|---|---|---|
20090193132 A1 | Jul 2009 | US |