[Home] [By Thread] [By Date] [Recent Entries]
David Brownell <david-b@p...> writes: > > One thing that XML-RPC or SOAP buy you (today) over straight > > XML+HTTP is automatic marshalling. Specifically, what is missing > > is that you can't do: > > > > http.put(url, anyObject) > > > > and have 'anyObject' marshalled and serialized to XML > > automatically by the library, and then sent over HTTP. > > If "anyObject" is literally any object, then there's a HUGE downside > to that: Application developers start to "think" in terms of APIs > that work within a particular programming environment, rather than > in terms of interoperable data. They rely on automagic marshaling > code they don't/can't control. And bit by bit, interoperability > starts to disappear... > > Of course, for folk controlling those programming environments, that > is a feature (customers then can't switch vendors so easily). And > some customers may even be comfortable ceding control over those > parts of their business strategies, given time-to-market wins. No need to convince me about the fragility and lock-in of APIs :-) (considering my "Web RPCs Considered Harmful" article[1]). > If that's "any object defined using an Interface Definition Language > (IDL)" then that's less of an issue. I typically associate IDLs with APIs, so I'm not sure how that relates to "interoperable data"??? When I think of "interoperale data" at a higher level than straight XML (or via DOM), I'm thinking of data that interoperable because it is an encoding format (in XML), a la RDF, SOAP Encoding, or via some XML Schema magic yet to be developed, that unmarshals to something more approachable from programming languages than straight XML in a DOM or via SAX. More like: http.put(url, rdfStatementSet) http.put(url, soapObject) http.put(url, tupleSpaceTuple) http.put(url, xmlSchemableInstance) http.put(url, grove) and, of course, I don't mean to exclude the very basic: http.put(url, domObject) So, I'm agreeing with you, by 'anyObject' I did not mean to imply literally any object. Interoperable data first, internal representation follows. -- Ken [1] <http://monkeyfist.com/articles/514>
|

Cart



