Static vs. dynamic Web service clients

My last post started out to answer a question about RelaxNG vs. XSD, but ended up exploring an essentially orthogonal topic: an alternate model for building clients. I spent some more time thinking about that idea after I posted, leading to two observations.

First, the pure message oriented model we need for clients is similar to COM's IDispatch (or CORBA's DII), but with two essential differences. IDispatch existed primarily to support late-bound scripting languages. We need to adopt the same model not because we're working in those languages, but because we want to late-bind to multiple versions of different services with different portTypes without getting tied up in portType proliferation and negotiation. Also, IDispatch-based interfaces were still unique to their compontents; you couldn't count on two components sharing the same dispids (locally unique numbers used for dispatching). In contrast, Web service messages have an associated action URI, which is globally unique and can be supported across multiple services. Optimally, and organization defines a bunch of standard messages and apps define some specialized ones. Clients use the ones they need. Again, this is very much like the message-driven programming model in Windows.

Second, the desire for a dynamic client interface doesn't mean there are never cases where you want a static interface. I'm not suggesting that static interfaces go away, just that they be augmented with an additional model. If we end up with a spectrum of choices from RPC with objects (static and generally tightly-coupled) to messaging with XML/objects (dynamic and capable of being loosely-coupled, but you'll still have to put some rigor and effort into it because this is not simple), then we're in a good place. First the APIs have to support this spectrum (WSE does today, future plumbing will tomorrow) and then the tools have to support it (not much so far). Meanwhile, people who believe in this model need to help folks rigidly in the RPC camp understand both the benefits and the costs of being more dynamic.


Posted Aug 18 2004, 10:50 AM by tim-ewald

Add a Comment

(required)  
(optional)
(required)  
Remember Me?