The software that powers future Internet computing will be built in a very different way than it is today. In place of large, monolithic applications -- such as, say, a Cobol mainframe accounting system -- software experts see a world in which a module of code is developed once, then used in many different applications.
Many pieces are being put into place to help developers move to the next generation of software. One key facet that is already well under way is the use of software components distributed over a network, industry experts say.
But developers are just beginning to feel the effects of how much XML, with its ability to let dissimilar systems exchange data, will transform the landscape. When XML is combined with new messaging systems and the Simple Object Access Protocol (SOAP), data hand-offs can occur between systems anywhere over the Internet without much programmer intervention.
Such developments bring the prospect of future software applications based on Web services much closer to reality.
"We dont fully understand the implications. It will make a fluid world even more fluid," says Pierre Haren, CEO of Ilog, a supplier of prebuilt software components in Mountain View, Calif., and Paris.
To reach this frictionless universe, code must be developed according to shared standards and portable across systems. Today, the world remains divided into hostile camps for developing software objects. One camp is led by Sun Microsystems with its Java platform; the other is headed by Microsoft with its upcoming .Net platform.
But even these rivals have agreed that the Microsoft-sponsored SOAP is an important means of exchanging XML data, along with Web Services Description Language, an XML-based means of describing services, and Universal Description, Discovery and Integration, an XML registry specification for publishing services.
That amount of agreement lays the tracks for a new generation of interoperable applications. "For the first time, you see the big players -- Sun, IBM, HP [Hewlett-Packard] and Microsoft -- agreeing on a core set of standards," says Rick Nadler, Borland Softwares architect of Web services.
Another milestone is the appearance of development tools that use the concept of reusable code. About a year ago, Rational Software unveiled the Reusable Asset Specification, which defines a way to identify and catalog software assets. With the RAS definition, toolmakers can let developers document and label their creations for later rediscovery and reuse.
The notion of reusable code has been around for at least a decade, but systems that implement it have always stumbled over the complexities of handling many different types of code. Without RAS, looking for a useful code object required parsing the lines of each piece of code.
"Its like opening every letter in the bag and seeing what its about to find the one sent to you," says Alan Brown, director of Rationals e-development accelerators group, which helps customers implement RAS-empowered tools. Using RAS, on the other hand, is like putting an address on the letters envelope, he says.
Now, companies such as LogicLibrary have sprung up to take advantage of RAS features. LogicLibrary sells Logidex, a $95,000 system that uses RAS to map the characteristics of software and describe the business processes to which its linked. By giving a developer a variety of means to search for the code, Logidex helps ensure that code is used multiple times, says Brent Carlson, LogicLibrarys co-founder and vice president of technology.
Logidexs capacity to catalog and retrieve code, however, doesnt only apply to newly created objects. Existing software can be parsed by software analysis tools, which feed their results into the Logidex library of software assets.
"We can reverse-engineer that existing software, build up a diagram" and store descriptions of the diagram in the library, Carlson says. The diagram is based on Unified Modeling Language (UML), a standard for application design tools maintained by the Object Management Group, an industry consortium.
With the wide acceptance of RAS, UML and XML, the building blocks are in place to make software into a more portable, reusable asset, Carlson says. Future developers will design Web applications that draw on the strengths of many existing systems.
Reusing code can double the speed of new application development, experts predict. And, new development environments that support standards such as RAS, UML and XML can begin to provide more of the underlying work of linking to databases, connecting to the network and assembling code modules to work together.
Nevertheless, the world of software will retain its complex terrain, Borlands Nadler says. Systems such as Rational Rose or Borlands Delphi or JBuilder environments build more connectivity and intelligence into the developers tool kit, but software engineers will still need to understand where code came from and what its limits are. Nadler says it remains "a fantasy" in some quarters that components will somehow assemble themselves into Web services, monitor themselves and heal themselves when something goes wrong.
On the contrary, Nadler says, "the death of the developer has been greatly exaggerated."