|
|
CTO ArticlesIT World EAI, web services and high school grammar classesBy Sean Mc Grath My one and only New Year's resolution this year is to take the time to write down all of the silly questions I have in my head that I would like to have answered. The kind of questions we knowledge workers do not ask willingly because of fear that we will look silly or ill informed. Here are a couple from my ever-expanding list:
I remember studying English grammar in my youth and finding my head exploding with "why" questions I was too diffident to ask. Here are some I remember:
Let's skip the question about the avoidability of irregular verbs and the plenitude of special cases. (I still have not come across a good explanation of these phenomena!). Instead, let's concentrate on the question of the disparity between the number of verbs and the number of nouns. It sounds plausible that in the classic subject/verb/object scheme of things common to almost all languages, there are many more objects in the world than there are actions you would want to perform on objects. By combining a small number of verbs with a large number of nouns (objects), you create a very large communication space with the minimum of fuss. As long as you know the general rule for applying verbs to nouns you can do so without any extra language machinery beyond the general rule. I'll buy that. Believe it or not, this brings us nicely onto the subject of enterprise application integration (EAI) in general and web services in particular. The web can usefully be thought of as a large collection of nouns. These nouns are known as URLs. Basically, things that have addresses, created using a unified, universal naming convention. The web also has a small set of verbs. Some of the most common are GET, PUT, POST and DELETE. The HTTP protocol is basically the means by which we apply this small set of verbs to a vast sea of nouns on the web. Recently however, we have seen the emergence of the web equivalent of irregular verbs. Hoards of them in fact. Each of which must be learned on a case-by-case basis. There is no rhyme or reason to how these verbs work. You just have to learn them just like the irregular verbs of your grammar classes. Examples include the verbs "To search using search engine X", "To create a PDF", "To list Italian fiscal codes". . . A sample list of these so called web services are available on the Xmethods[1] website. Web services technology - in the sense of SOAP/WSDL - is basically a recipe for creating an uncountable number of irregular verbs - one for each noun on the Web! But look back at what we started with on the web. No irregularity. Just a vast communication space created out of sheer simplicity. A small number of standard verbs applied uniformly to a large number of nouns. So here is the big question. We have learned from the real pain of enterprise application integration that irregularity really hurts. Every CORBA IDL was basically an irregular verb. Every EDI bilateral exchange format was an irregular verb. The combinatorial explosion of effort involved in linking one irregular verb to another is unacceptable. Irregular verbs hurt. And yet we may have living proof that it does not have to be so. Perhaps irregularity - at least in IT languages is not unavoidable. We have the web. If things continue in their current trajectory in the web services world, grammar classes for programmers in the future are not going to be a pleasant experience. Those that find the experience of learning this stuff "off by heart" grindingly time consuming and boring will ask "does it really need to be this way?". "Is all this money really being well spent learning all this stuff?" "Why is it that EAI still costs ten times what the hardware/software cost - just like in the CORBA and EDI days?" "Why can't things be as simple as the original web?". The good news is that there is a growing appreciation of *why* the Web works, thanks in no small part to Roy Fielding's dissertation on the REST architectural style that underlies the runaway integration success story that is the web. At the heart of REST is the idea that the web works precisely because it uses a small number of verbs applied to a large number of nouns. Examples of how this idea can be applied to web services are emerging -building on the lessons of the web rather than repeating the mistakes of EAI eras past. As a starting point, I recommend Roger Costello's REST tutorial[2]. From there I recommend Mark Baker[3], Paul Prescod[4] and Bill de hÓra[5]. 2003 is likely to be the year when all of this will come to a head. The debate is unlikely to be boring. [1] http://www.xmethods.com
|