If one were to list the technical challenges facing would-be Web services developers, the result would bear an alarming resemblance to the research agenda for productivity improvement in every form of software development—alarming because that list has not noticeably changed in a decade or more.
If the Web is to be transformed into an open application platform, developers need to make breakthrough progress in rigorous requirements definition, reliable code generation from testable specifications and rapid discoverability of reusable modules produced by external parties. Either Web services will turn out to be a catalyst for real progress on these long-standing battlefronts, or the fundamental difficulties of advancing the state of the art will limit the role of Web services to just another application integration tool—one that will surely be quickly surrounded by the typical fog of vendor claims of “standards-based but better.”
Exposing a Web site as an HTML page, or as a dynamically generated page using Active Server Pages or JavaServer Pages, lets developers define a stand-alone module (or, at worst, an assembly of modules whose dependencies are known). When the client browser hits “reload,” its like rebooting a PC: The developer gets a clean slate.
Exposing a site as a collection of services demands greater attention to issues of sharing resources with other parties, avoiding unconscious assumptions and anticipating problems that must be handled with graceful degradation of service rather than brittle failure.
Web services development cant proceed without greater integration of testing into the development environment. In the same way that integrated environments of the 1990s pioneered “live data” views for development of database access applications, the service development environment must provide live interaction with actual and simulated remote resources—the simulations being needed so that failure modes can be adequately tested.
The Programmers Apprentice projects at the Massachusetts Institute of Technology and other research centers may be pulled out of the laboratory and into industrial practice as developers find themselves needing automated assistance with the combinatorial explosion of scenarios that must be designed and the number of trials that must be performed.
Web services development poses challenges resembling those of grid computing, also a hot topic these days. In February, California Institute of Technology researcher Paul Messina (chairman of the Grid Forum Advisory Committee) said at the Global Grid Forum in Toronto that grid computing and Web services are destined to converge. “Success,” Messina said, “is that eventually there is no distinction between the two.”
One hopes that their common destination is a future list of breakthrough transformations, not a regretful retrospective of hyped ideas that the industry couldnt make real.