- From: Mark Baker <distobj@acm.org>
- Date: Fri, 9 May 2003 14:59:33 -0400
- To: www-ws-arch@w3.org
On Fri, May 09, 2003 at 02:00:27PM -0400, Champion, Mike wrote: > > "Uniform" means that every method makes sense on every resource. > > The interface for java.lang.Object is uniform, for example, but the > > interface for java.lang.String isn't. > > > > A typical use of SOAP (with the method in the body) is manipulating > > objects via their specific interface, and so is not uniform. > > Whoa! This is where we part company, unless I'm missing something profound. > > Here's a gedankenexperiment: A company has some asset management module in > their ERP system, and wants to make it web-accessible so that remote > employees can check and update the information about what equipment they use > at home. (This happens to be the last significantly complex Web app that I > used, that's where this example comes from). They build a HTML form with > all the necessary widgets to display computers, printers, serial numbers, > etc. The Boss, being a lurker on www-ws-arch, assigns two programmers to > write an interface between the HTML form and the ERP system: Fred just > POSTS the form data to a CGI script which untangles the data from HTTP > parameters and calls the ERP's APIs to do what needs to be done. George > writes some Javascript in the Web page that collects the information from > the form fields, builds a SOAP RPC message, and POSTs it to the ERP system's > SOAP interface, which basically untangles the data from the SOAP body and > calls the ERP's APIs to do what needs to be done. > > Are you trying to tell me that what Fred does is using a uniform interface > and what George does is not? No. The mobile code in that example changes the situation significantly; the RPC call is not part of the wire contract because it doesn't cross a trust boundary (i.e. it's code written by George calling code written by George or George's employer). It would be non-uniform only if the party on the other side of the trust boundary were required to understand the semantics of the RPC method that gets called. But, it's still tunneling, and therefore has visibility issues. Good example though. MB -- Mark Baker. Ottawa, Ontario, CANADA. http://www.markbaker.ca Web architecture consulting, technical reports, evaluation & analysis Actively seeking contract work or employment
Received on Friday, 9 May 2003 14:57:36 UTC