Steve: Developing on the Edge - My position paper.
Steve: Developing on the Edge
Thoughts on development, Web-services, technology and mountains.
26Jan
Fri2007
My position paper.

As I said, I won't be attending the W3C enterprise computing workshop. too busy with other things, including writing up the interop results for the WSRF-based deployment API, my review of the first Alpine prototype, and the final editing stages of Ant in Action.

If I were going, this is what my position would be

Position paper on the W3c Workshop

Let's recognise that the SOAP dream of dynamic service binding, interop and global services is dead. The only place SOAP survives is in the enterprise, because if you can control both ends of the conversation, you can use the same toolkit and eliminate interop. The key selling point of most SOAP stacks -reverse generation of WSDL from your classes- is actually viable in this context, rather than the source of interop problems discussed in [Loughran and Smith, 2005]. The handholding the tools provide is something developers expect and appreciate, especially once they get the SOAP debugging tools they also need.

The other thing that is doomed, apart from the odd special case, is the fat client application. The cost of developing, testing and maintaining client apps is too high compared to web sites, the functionality of which is improving every day. If you must do a rich client application, XUL is the most compelling framework, as it has many of the features of a web application.

At the same time, Web2.0 != REST. There are some very RESTy parts of the ecosystem: RSS and Atom feeds; the Atom Publishing Protocol. But AJAX is not REST, merely something else that uses HTTP to exchange content, be it XML or JSON. And so there is no clear cut model for writing REST applications, other than the ''mashup'', web sites that integrate the published front ends of other applications.

The W3C can and should embrace the web-centric architecture, rather than try and fix legacy protocols to work through proxy servers by helping them tunnel over HTTP. What then are the problems?

  1. How to provide a client programming model that accesses REST endpoints with the same ease of use as same-stack-SOAP-development?
  2. How to integrate Atom feeds and APP into the enterprise as an alternate communications pattern; polling over posting?
  3. What is the best programming paradigm for this. Ruby on Rails shows how a dynamic language with continuations and the ActiveRecord database binding makes server-side web development easy. What can we do with clients?
  4. How to keep Web 2.0 style applications providing a back end 'service' architecture that meets the needs and business models of providers and consumers.
  5. How best to transition legacy middleware -including SOAP systems- to the new world

On an personal note, having implemented a SOAP stack with WS-Addressing and WS-RF support, can I observe that the near-perfect lack of tests makes any chance of compliance very unlikely. The W3C should not only embrace and adopt the Web 2.0 technologies, it should adopt their test-centric, iterative-design processes for the development of future standards.

Comments