This application is a Submission Under 35 U.S.C. §371 for U.S. National Stage Patent Application of International Application Number PCT/EP2007/062048, filed Nov. 8, 2007, and entitled A METHOD, APPARATUS AND COMPUTER PROGRAM FOR MODIFYING AN ENDPOINT REFERENCE REPRESENTING A WEB SERVICE ENDPOINT, which is related to and claims priority to European Patent Application Serial Number EP0623904.0, filed Nov. 30, 2006, the entirety of which are incorporated herein by reference.
The invention relates to a data processing system and more particularly to the addressing of endpoints within such a data processing system.
The Internet is based on a client server model and comprises a plurality of web servers which are accessible by a plurality of clients over a communication network.
The notion of access to web services via the Internet is becoming popular and a number of standards are developing.
The WS-Addressing specification is the result of a collaborative effort driven by the W3C (World Wide Web Consortium). WS-Addressing is concerned with the targeting of web service messages appropriately.
WS-Addressing introduces the notion of EndpointReferences (EPRs) which convey the information required to address a web service endpoint (a web service port with some possible application data associated) in a standard XML format.
There are a number of properties in an EPR such as its address (which is the URI of the endpoint that the EPR represents), and metadata about the endpoint (such as the capabilities of the endpoint). Some of these properties (such as the address URI) may be generated based on the endpoint's deployment information or they may be known to the application generating the EPR. EPRs are propagated in a SOAP Envelope as part of Web service interactions. The recipient of an EPR in a Web service interaction might use that EPR in order to target the Web service.
According to a first aspect, there is provided a method for modifying an EPR representing a web service endpoint, the method comprising: modifying the EPR in dependence upon at least one attribute of the recipient to which the EPR is to be propagated; and propagating the modified EPR to the client.
The EPR is preferably modified at the point of its propagation to a recipient
The term ‘recipient’ is intended to encompass both a recipient client and a recipient web service.
One such attribute may be the location of the recipient and this may result in modification of the address element of the EPR.
In such an embodiment, information is acquired about the recipient to which the EPR is to be propagated and one or more rules are accessed to determine how the acquired information affects the EPR to be propagated.
An example of rules which may affect the EPR that is ultimately propagated to the EPR recipient is a requirement that a recipient outside of a firewall (behind which the endpoint sits) accesses the target endpoint via that firewall.
In one embodiment, the EPR is modified based on a service level agreement (SLA) between the recipient and the endpoint represented by the EPR.
For example, an EPR recipient may be classified as a ‘gold service’ business partner. In this example, the EPR might be modified during its propagation to that recipient such that it addresses a server guaranteeing a faster turnaround time.
The relative locations of the recipient and the endpoint may also result in modification of the EPR. System topology data may be accessed in order to make a judgement with respect to relative location.
An EPR may comprise metadata. This may be modified in dependence upon an attribute of the intended recipient. For example, it may be required that a certain recipient always access the target endpoint with a specific level of security (security policy). The metadata can be modified to specify such a security policy.
According to another aspect, there is provided an apparatus for modifying an EPR representing a web service endpoint, the apparatus comprising: means for modifying the EPR in dependence upon at least one attribute of the recipient to which the EPR is to be propagated; and means for propagating the modified EPR to the recipient.
The invention may be implemented in computer software.
A preferred embodiment of the present invention will now be described, by way of example only, and with reference to the following drawings:
a, 4b and 4c illustrate the components and processing of the present invention in accordance with a preferred embodiment.
As discussed above, the WS-Addressing specification is about ensuring the correct targeting of web service messages and with this in mind introduces the concept of an Endpoint Reference (EPR).
An exemplary use of an EPR will be described with reference to
A client 160 uses a service requester 170 (e.g. a print application) to contact print catalogue service 110, hosted by web server 100 at step 200. Print catalogue service 110 is accessible via interface 120. Service requester 170 browses the provided printer catalogue to select a printer at step 210. The web service returns an endpoint reference (EPR) at step 220 to the printing service 180 via which the selected printer 130, 140 or 150 may be accessed. In this example, the EPR returned is to a web service 180 hosted by a different web server 175. However in another example, the EPR may be created on and refer to the same web server.
Thus as exemplified, EPRs are typically created and then propagated to clients who might want to access the referenced endpoint. Once the EPR is created, it is deemed to represent the endpoint and its contents are not changed.
In certain situations, it is not appropriate to provide all requesting clients with identical EPRs for the requested web service endpoint. Instead it might be preferable for the EPR to depend on to whom it is being propagated to. For example, if the above EPR is being passed to a client outside a firewall, it may be appropriate to hide the actual address of the web server on which the web service endpoint resides. It also might be appropriate to vary the EPR that is returned dependent upon the client to which the EPR is being propagated.
A solution is therefore proposed which modifies, for example, the address part of the EPR based on the target to which the EPR is to be propagated. Such a modification to the EPR preferably takes place at the same time as the EPR is being serialised for propagation.
The creation and modification of an EPR will now be described with reference to
As shown in
where the wsa prefix <wsa> might equate to www.w3.org/2005/08/addressing and
where targetServiceURI is the URI address of the target service on node A.
Prior to propagation of the EPR to a client, the EPR is serialised into a SOAP message by SOAP Serialiser 310 at steps 410, 420 (
Alternatively the EPR may be propagated in the soap body as shown in listing 2:
As shown in
Accessor component 350 then accesses rules 330 to determine how the destination's address effects the EPR to be propagated (step 510, 520). The rules 330 define the address that should be used by the destination in order to target the endpoint. For example:
The rules 330 might list all the known nodes within a firewall (internal IP addresses) and infer that EPRs propagated to nodes not in this list should have their address re-written to be the firewall's address.
OR
The rules might utilise a topology mapping table representing the system topology in order to re-write the EPR's address based on the destination to which it is being propagated and its relative position in the topology to the endpoint's address.
Modifier component 360 then rewrites the address of the EPR based on the destination to which the EPR will be propagated to (and therefore targeted from at a later point in time) (step 530).
With respect to the example of
Node C is however outside firewall 250 (i.e. not recognised as a node within the firewall bounds) and rules 330 may specify that node C should not therefore be able to access node A directly. Thus during serialisation of a SOAP message for node C, the EPR address generated when the endpoint instance was created is overwritten with the firewall's address. The firewall then routes any messages from the client to the appropriate node.
Note that this EPR rewrite can't be done in the firewall because the EPR might be propagated directly to node C (i.e. avoiding the firewall).
As mentioned above, it should be appreciated that modification of the EPR does not have to depend on location of the EPR recipient. One or more other attributes of the recipient may be taken into account. The rules (exemplified earlier) may utilise some grouping of IP addresses based on some attribute other than topology—for example, EPR's might have their addresses re-written based on the level of service agreement of the destination to which they are being propagated. For instance, the client may be classified as a ‘gold-service’ business partner and thus an EPR might be modified such that the EPR propagated to that client points to a server guaranteeing a particular turn around time. In addition, aspects of the EPR other than address such as Metadata may be modified.
Thus, to summarise:
WS-Addressing EndpointReferences represent Web service endpoints and are propagated in the SOAP Envelope as part of Web service interactions.
There is disclosed a method, apparatus and computer program for resolving (or modifying) aspects of the EndpointReference at the time of its propagation based on the EndpointReference recipient. Different recipients will potentially receive differing EndpointReferences. Aspects of the EndpointReference are re-resolved as the SOAP XML representing the EndpointReference is generated for the EndpointReference's propagation. For example, the location of the client might make a difference to the address propagated—if the client is outside a firewall, it may be appropriate to provide the client with the address of the firewall itself and to allow the firewall to re-route any request from the data to the web service endpoint. Alternatively, metadata contained within the EndpointReference might vary depending on the recipient—policy metadata contained within the EndpointReference might specify more stringent security requirements depending on the recipient.
Number | Date | Country | Kind |
---|---|---|---|
0623904 | Nov 2006 | EP | regional |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/EP2007/062048 | 11/8/2007 | WO | 00 | 5/20/2009 |
Publishing Document | Publishing Date | Country | Kind |
---|---|---|---|
WO2008/064981 | 6/5/2008 | WO | A |
Number | Name | Date | Kind |
---|---|---|---|
6141325 | Gerstel | Oct 2000 | A |
7636939 | Kaler | Dec 2009 | B2 |
7650376 | Blumenau | Jan 2010 | B1 |
7716279 | Savchenko et al. | May 2010 | B2 |
20020169891 | Sasaki et al. | Nov 2002 | A1 |
20030135646 | Inoue et al. | Jul 2003 | A1 |
20040117199 | Fremantle et al. | Jun 2004 | A1 |
20040215707 | Fujita et al. | Oct 2004 | A1 |
20050234923 | Betts | Oct 2005 | A1 |
20060265396 | Raman et al. | Nov 2006 | A1 |
20070005777 | Fremantle et al. | Jan 2007 | A1 |
Number | Date | Country |
---|---|---|
WO 2004084522 | Aug 2004 | GB |
2004133839 | Apr 2004 | JP |
2005006219 | Jan 2005 | WO |
Entry |
---|
Berbner et al. An Architecture for a QoS driven composition of Web Service based Workflows. Networking and Electronic Commerce Research Conference (NAEC 2005), Oct. 6-9, 2005, Riva Del Garda, Italy. pp. 1-10. |
Cubera et al. “Web Services Addressing”. ResearchGate. Jan. 2004. pp. 1-22. |
Foster et al. “Modeling Stateful Resources with Web Services”. Version 1.1. Mar. 5, 2004. pp. 1-24. |
Ferguson et al. “Secure, Reliable, Transacted Web Services: Architecture and Composition”. Nov. 2003. pp. 1-20. |
“Serialization”. Retrieved from Wikipedia.com on Nov. 22, 2016. pp. 1-8. |
“Serialization (C#)”. Visual Studio 2015. https://msdn.microsoft.com/en-us/library/mt656716.aspx. Retrieved Nov. 22, 2016. pp. 1-3. |
Number | Date | Country | |
---|---|---|---|
20100049833 A1 | Feb 2010 | US |