02/28/2007 10:05 AM
post5756
|
Current Specification Assumes Single Address Targets
The current specification declares two port types for resolving location independent information to location dependent
addressing. In pseudo-code, these two interfaces are essentially
EndpointReferenceType resolveEPI (EndpointIdentifier: IRI) throws ResolveFailedFault;
EndpointReferenceType resolve () throws ResolveFailedFault;
Unfortunately, by virtue of the fact that these two resolution operations both return a single EPR, the specification
assumes/implies that all endpoints have exactly one address. However, this may not be the case. It may be relevant for
a web server to host web services on multiple ports or at multiple paths, or even at multiple host names to allow for
various clients to contact it from various networks. Perhaps some addresses are only accessible from behind a NAT while
other addresses are public, but slower. Also, maybe multiple protocols are supported. Perhaps the resource can
support both HTTP with message level encryption, and HTTPS without message level encryption. Finally, there may be
proprietary protocols that are much more efficient for local resources and clients, but not as globally recognized as
SOAP over HTTP. Resources may choose to support both in order to provide efficient communication for clients that
implement the more advanced protocol while still allowing interoperable implementations to communication through more
standard means. Because of these things, I would rather see these operations changed to the following pseudo-
declarations:
EndpointReferenceType[] resolveEPI (EndpointIdentifier: IRI) throws ResolveFailedFault;
EndpointReferenceType[] resolve () throws ResolveFailedFault;
|
|
|