Application- and service-oriented architecture in Zope 3

Over at Industrie Toulouse , Jeffrey P Shell meditates on an issue I've long been fascinated by: the interaction between an application-oriented architecture (e.g., Zope's HTML aspect) and a service-oriented architecture (e.g., Zope's XML-RPC aspect):

I've found that while traditional Zope method calls should - in theory - work fine with something like XML-RPC, they seldom do. Sometimes it's because too much HTML is returned from a call, but most of the time lately (for me at least), it's that I want the server to do some processing of the results before sending them out to the client, using the relatively simple data types afforded to XML-RPC. As a result, I've been adding in extra Python Scripts particularly for XML-RPC, and letting them work in the proper places either via acquisition or some other clever tricks. It's not a bad system, but it's not exactly formalized or repeatable, since it's not in a formal Product.

In Zope 3, this is different.

Zope 3 should yield a usable, scalable means of adapting the works of other developers into new solutions by providing better control of product/service/view configuration and overrides, such as adding a new XML-RPC API to someone else's bug tracking system without having to alter that bug tracking system, or use secret Python hacks to alter behaviour. [ Industrie Toulouse ]

This indeed sounds encouraging. In a talk given at the 8th International Python Conference, in Jan 2000, I touched on this theme:

The general notion of XML as an interface description language isn't rocket science, and there's huge leverage still to be gotten out of even something as simple as XML-RPC, never mind SOAP. We can all imagine how to build network services this way, and I'm sure there are people in this room who are already doing it. The challenge is to embed this mindset directly in a toolkit, so that everything you build with it is not only a trivial first-generation Web object, but also a more powerful second-generation Web object that delivers its services equally well to people and to other Web objects. XML-RPC and eventually SOAP will be key enablers, but what's also needed is a vision of how and why to integrate those things into a platform. I think Zope has the right set of ideas, and I'm eager to see where it takes them. [ The three faces of XML in Zope ]

I haven't dug into Zope 3 yet, but I'm greatly enjoying Jeffrey's reports. From the sound of it, the Zopistas are planning to occupy the strategic middle ground between application- and service-oriented architecture.


Former URL: http://weblog.infoworld.com/udell/2002/09/16.html#a412