Monthly Archives: January 2006

Why This is All So Important (Web 2.0 etc.)

In the last couple of posts I talked about the software productivity issue and the standardization solution.
Now I want to spend a little time on why this is all so important.
A good illustration of the potential value of standardization for enterprise software can be found in the Web “mashups” created from technologies referenced as part of the “Web V2.0” concept.
Mashups are basically composite applications that use the “programmable Web,” including Web services.
I like a lot of the ones that use Google maps, such as the one showing bike routes in Chicago, or the one that shows good beer locations in various cities.
Another one I like is the Aytozon mashup that accesses eBay and Amazon.com Web services for side by side price comparisions. This was apparently done independently of either eBay or Amazon.com by a third party who composed the Web services to create a new application.
The recent announcement of Salesforce.com’s acquisition of Strikeiron.com is also very interesting, extending the range of available hosted Web services available by subscription.
The implications for enterprise IT include the availability of new technologies such as AJAX for more easily combining Web features with enterprise applications, which can give rise to a new category of user interfaces. And with more and more Web services available on the Web (by subscription or other terms), enterprises have a growing ability to compose external services with internal applications.
Now the big question is whether the enterprise IT environment is ready and able to participate in these kinds of mashups and composite applications? Clearly if it were we would start to see the kind of innovation that we are already starting to see so visibly on the Web.

Advertisements

Standardization Solution

In yesterday’s entry I talked a lot about the problems caused by the lack of enterprise software standardization.
I realize I didn’t say much about the problem or a proposed solution.
The problem isn’t a lack of standards – many blog entries and articles have been written about the plethora of WS-* proposals.
The problem is the lack of an independently defined and universally endorsed Web services architrecture. Microsoft has one architecture, IBM has another – Sun supports a variation in J2EE specifications that isn’t the same as either, and so on.
Another problem is the lack of any central authority or leadership over the Web services standardization process. Microsoft and IBM have their own process and have produced a number of specs (most of the leading specs in fact), W3C has its process and has produced some specs, OASIS has yet another process and is working on some other specs, WS-I has another process and has defined some profiles of other specs, OMG has yet another process and has contributed a couple of proposals, and so on.
It’s not about abuse of the community process, as this editorial in SD Times says. The market makes standards, committees don’t. Many specifications created in committe are never implemented, and many specifications created in a closed process never succeed, either.
What’s needed is an independent, user-driven (or user monitored) process capable of resolving disputes based in vendor competition (and of course vendors by definition compete with each other so even in an open process we can’t reasonably expect vendors to always be able to come to consensus on their own – at least not in ways that meet the customers’ main requirements) according to which of the competing proposals best meets user requirements.
Despite the fact that the OASIS folks get pissed at me for saying so, I believe that the W3C would be the best place to try to establish such a process, which is why I raised the issue with them. They already have a good rigorous process, including a strong IP policy, significant and helpful staff involvement, and a track record of gaining adoption in the market. Not to mention the influence of their well-known director, Sir Tim.
We in fact try to define a Web services architecture at the W3C from January 2002-January 2004. I spent the majority of those two years as an editor of the spec, which isn’t bad, but did not really accomplish the goal. The specification contains some good information but in particular we tried and failed to define an architecture that allows the industry to know which among the many WS-* proposals is really a useful and necessary part of Web services, and which isn’t.
One reason we had trouble gaining consensus on that was that the group included strong proponents of both the Semantic Web and Web services, and it is often difficult to find good compromises between those communities. (Thus the reason why I was asking whether “one Web” really makes sense since we have so much trouble getting the two communities to see eye to eye.)
Another, perhaps more important, reason, is that the current W3C process does not really have a good way to resolve disputes rooted in a conflict over commercial interests (which as I said is pretty much the root of the problem). The W3C process is designed to promote consensus in a technical discussion, and it does that pretty well. But there’s really no way to break a logjam caused by a commercial conflict of interest such as whether the Microsof, IBM, Sun, or Oracle architecture is the winner.
The OMG process does include such a mechanism, for example, and years ago when I was working on committees at TMF/SPIRIT, there was a way to raise issues to a customer council for resolution. For another example, X/Open (now the Open Group) had an organization that gave customers and vendors different roles – the customers created the requirements, the vendors created the specifications, and the customers and had an opportunity to review the specifications before they were adopted.
This raises all kinds of other contentious issues, such as the role of customers or specification users in the standards process. Should they be expected to be fully participating committee members, etc. Standards are defined for the use of vendors – that is, vendors are the ones who implement them. But they are established for the benefit of the customers – at least that’s the theory. So there needs to be a good balance, but that’s tricky. As I said it’s the market that determines a standard, and therefore vendors with marketshare try to influence customers to adopt the specifications they like.
It is not reasonable, however, for customers to expect vendors to be able to agree by themselves on the adoption of useful, meaningful standards – that is, the ones that truly are able to solve the software productivity issue – since different vendors will emerge from the process as winners or losers, depending on how well their products align with whatever is adopted. We see this kind of struggle in the consumer electronics field all the time, such as the current struggle over the next generation DVD format. This is, again, why independent leadership is so important, since progress toward standardization inevitably causes lumps and bumps.

Software Productivity

The biggest problem for business and industry today is software productivity. It is just too expensive and difficult to develop and maintain the necessary IT applications and systems. And yet everyone depends upon computers to operate their businesses.
View image
Companies have literally no idea what their IT spend should be relative to other corporate expenses, and have difficulty understanding the relationship of IT spend to strategic corporate initiatives. IT projects sustain failure rates that would never be tolerated in any other functional department. Nobody understands the relationship of the high cost of enterprise IT to its benefits.
The solution to the problem is easily stated but very hard to achieve. The IT industry needs meaningful enterprise software standards.
View image
We have seen the “Web of documents” (aka the World Wide Web) succeed beyond anyone’s wildest imagination.
View image
But the Web of data and services for enterprise software systems remains brittle, inflexible, and a mixed bag. Companies still have to deal with the classic spaghetti problem.
View image
While HTML and HTTP have provided consistent standardization for human to computer interaction, and today you can find or buy almost anything on the Web, standards for program to program communication are not yet widely and consistently implemented. Companies still can’t connect their departments or assimilate aquisition applications easily enough or for a reasonable enough price.
The reason IT cost remain so high is labor. Desipte all its advances, software remains a craft industry, relying upon the skills of individuals to bridge the gap between technology and business.
View image
Scientific and industrial methods need to be applied to IT software. It should be possible to take a given set of inputs and match them predictably to a desired set of outputs. It should be possible to develop a set of reusable, interchangable software components and assemble them rapidly into finished applications.
View image
The key to all of this — the mass assembly of software, the introduction of scientific methods and predictable projects, the ability to easily understand and reasonably predict the value of IT investments — is the standardization of application endpoints, or interfaces.
Historically, many attempts have been made to standardize software: COBOL, C, C++, Java, CORBA, MIA, SPIRIT, J2EE, DCE, DCOM… All of these efforts tried to unify the computing world using a single technology. Web services are different. WSDL and SOAP, for example, were written to be communication protocol independent. Meaning these standards acknowledge and embrace technolgoy diversity.
Also, the industry itself appears finally ready for standardization. Software is not changing as rapidly as it was a decade ago and it is starting to commoditize. Companies today have invested in enough IT assets and instead need a better way to use them — a way to improve on what they have. They don’t need more foundational software such as application servers, EAI brokers, database management systems, or packaged applications. Instead they need an architecture (SOA), the standards (WSDL), and the tools (a WSDL based ESB for example) to rapidly expose services and predictably and reliably assemble them into composites.
I gave a version of this presentation at the W3C Advisory Committee meeting in Montreal last December. The occasion was a panel discussion about the future direction of the W3C. I was basically proposing that the W3C shift its investments toward Web services and help solve the problem of enterprise software standardization. Fixing the problem would be the biggest impact the W3C could have on business and industry, and therefore on the world’s economy. Several representatives from other companies agreed with me. I don’t know what, if anything, will come of it but I know they are considering the idea.
View image
In the early days of Web services I used to think that this would be the basis of a unifying architecture across the enterprise firewall, unifying the Web of documents with the Web of data and services (to use the W3C terms).
Today I’m not sure it really makes sense to think about one Web like this. Maybe we need to define a different Web for the exernal world, and another for the internal world of enterprise software. Then we could talk (for example) about connecting REST and WS-* rather than debating which is the best. Maybe this would make it easier to finally achieve the goal.
Anyway, as I told Tim Berners-Lee after the panel discussion, I am an optimist, and I am hopeful we can do something to fix this problem.

For My Father and Carolyn, on Martin Luther King Jr. Day

I’m told my father introduced me to Martin Luther King, Jr. when I was 5 years old, but I don’t remember.
I do remember watching the March on Washington on our small black and white TV on my 9th birthday, looking for my father in the crowd, and listening to the I Have a Dream speech.
But it was in 1965, when he returned from the Selma to Montgomery March, that Carolyn Williams joined our family.
I couldn’t find much about my father on the Web. An entry in the Brown University encyclopedia describes my father’s employment there. It was during this time that he met Martin Luther King, Jr. and introduced him to the family.
My father was the son of a Seattle drycleaner and the daughter of a pioneer Swedish farming family from Bothel, just outside Seattle. He was the first in his family to attend college, and hitchhiked east attend Union College. At Yale Divinity School, where he got his B.D., he met William Sloan Coffin, a civil rights activist.
You never know what you’re going to find. Here’s a Christmas poem my father helped write while living at the Swedish Home.
Be careful what you look for, too. I found a brief obit from the Brown University Alumni Magazine. I’m not sure he ever finished his masters in American Studies, but they have him as a ’64 graduate. You have to go pretty far down the page, or search, to find it. I broke down on seeing this. Maybe it was because of the juxtaposition with Christmas, which he loved so much, and always tried to make so special for all of us, and the tragedy of what, in retrospect, was an easily avoidable stroke. He hung on for 13 years after it disabled him.
I gave the eulogy for him at the Swedish Home on the Sunday following his death – just 10 years ago now. The pastor kept telling me to emphasize hope, the strongest quality he saw in my father, and something that would encourage the other residents.
When he finally came back from the Selma to Montgomery march it was with the news that a teenage girl (Carolyn) would be coming to live with us from Belzoni, Mississippi. We knew she was in some kind of trouble and we were helping her out, but that was about all.
Carolyn finished high school while living with us, went on to college and met her future husband, Jerry Scott. During her memorial service last November the minister read the eulogy she had no doubt helped prepare. We were all listed in the first paragraph, my mother and father and two sisters and brothers. Her beloved adopted family. My sister.
Carolyn worked for a long time for Bob’s Stores, which started in Middletown (where we lived), eventually getting promoted to manager. But after a while she decided she really wanted to work with kids. She joined the Community Renewal Team in Hartford, helping get a Head Start program going, and also became a classroom assistant.
When she was program director two of her staff won national awards. Fittingly enough one of the schools was named after Martin Luther King.
I remember the day MLK was shot. It was as bad as JFK, maybe worse since it was after. I was let out of school to attend the memorial service at the Wesleyan University chapel. My father was chaplin and during the eulogy he broke down in tears. I did too. It was hard to keep hopeful in the face of such tragedy.
May he and Carolyn rest in peace. Let’s take a moment to remember the work of good people who help other people, like MLK Jr., my father, and Carolyn, and take a moment to hope for the best for the world.

Really Simple WSDL Discovery

My colleague William Henry may be onto something with his idea for using RSS as a WSDL discovery mechanism, avoiding the overhead of a UDDI-based solution when you don’t need it.
I can easily imagine StrikeIron and XMethods and others adding RSS feeds that include pointers to the WSDLs they list, as an additional mechanism for publishing links to the services they list.
These types of Web pages are service directories, after all, and pages like these already provide a good alternative to a registry/repository solution for lightweight browsing and discovery.
(In fact these types of pages have survived while the public UDDI will be shut down next week.)
I can easily also imagine Web services and SOA customers starting out their small and “bottom-up” projects by putting an existing intranet Web server to work hosting a page with service descriptions and RSS feeds used the way William’s Celtix demo works.

New IONA Website, updated CTO corner

I’m still catching up following the holiday break. The new IONA Web site went live near the end of 2005, and it includes an updated CTO Corner.
The CTO corner has been a link from my blog for a long time. Its URL is also published on the back cover of both of my Web services books.
This is really something that I should try keep up with a bit better. I’ll make it a New Year’s resolution, and publish it here so I’ll have incentive to stick to it.
The main value for readers of my books (and I guess even for those who don’t have either of the books) is the live links to all the reference materials I (and, in the case of the second book, we) used.
It is much easier to click on a live link than type a URL in yourself – so please check it out!
Unfortunately I discovered during the update that several of the original links from the first book are no longer valid. But it has been almost four years now…