Re: Few questions about REST

Hi Mark,

You said in an earlier mail :

Just that if it's not late bound, then client software needs upgrading
whenever new services are introduced.  The opposite isn't true, however;
just because you are late bound, it doesn't mean you don't need client
upgrades to access new services.  Consider an FTP client that supports
ftp URIs; when a new scheme is introduced, it needs upgrading to be able
to use it.  It's really the combination of the uniform interface and
late-binding which is why the Web is so powerful; HTTP clients can
interact with *ANY* URI (perhaps with a proxy), because HTTP semantics
are uniform to *ALL* URI.

Thanks for the explanation. I think I can see now how late-binding helps
HTTP clients, especially after seeing what a proxy can do.
This is how I see what a late-binding can do for a client :
For example, if a document of known mime-type is fetched for the purposes of
presentation, then it doesn't matter which scheme, http:// or custom://, was
used, and yes, a presentation software (a browser in a simple case) doesn't
need to get upgraded. But if a document is of unknown mime type, then a
presentation software will have to be upgraded.
In other words, with late-binding, it's a layer which communicates with a
service(s) doesn't need to get upgraded, while an application layer may or
may not need to get updated.
The same probably applies to a RESTful (SOAP or XML) client which enables a
machine to machine communication. For example, if a new service is
available, then as far as a SOAP client stack (which wraps/unwraps XML doc
in/out of envelope, etc, sends and receives it) is concerned it doesn't need
to get changed. An application layer may not need to change as well,
provided the data returned is of known format or if those data can be
transformed into a known format by some generic pre-processing filter.
Otherwise, to avail of a new service's data, the application layer will have
to get changed as well.
So, late-binding does indeed reduce integration costs for a client in that a
layer talking to (URI-)identified resources through a uniform interface
doesn't need to get changed. This is of critical importance to the Web in
general.
It seems that it would also be beneficial for a SOAP client as well, though
it's probably of less critical importance than it's for a general HTTP
client.

Do you agree ?

Thanks !
Sergey Beryozkin

Received on Wednesday, 17 September 2003 05:45:44 UTC