The X Factor
STUCK IN TRAFFIC on the drive home? Log on to Food.com, a restaurant and delivery service site, from your wireless personal digital assistant and order Chinese takeout. What you see on that small screen is different from what you saw last weekend when you browsed the same site from your WebTV to order pizza during a commercial break. And tomorrow when you order lunch from your office, the display on the Food.com homepage will depend on the speed of the browser your company uses.
Why the customized displays? Because Food.com is using extensible markup language (XML) to specify the amount of text that is appropriate to display and how it should appear, depending on the browser and platform in use. That is possible because XML enables information to be tagged once yet formatted in many different ways. "When I first thought about XML, I focused on how it would streamline data delivery," says Rob Mayfield, chief architect at Food.com in San Francisco. "Now I'm looking at XML for rendering capabilities that allow me to customize the way our site displays content."
XML is an open standard for defining and sharing data on the web. Like HTML, it is a tag language, but it's more flexible than HTML and better suited for integrating data from a variety of sources. XML works well in applications that transfer data from one system to another, applications that offer different views of the same data and for electronic publishing.
Avalanche of Tools
Smart corporate developers like Mayfield are finding clever ways to exploit the extensibility of XML with the help of newly released application development tools. Within the last six months, a bewildering assortment of commercial and "open-source tools have become available. "It's a market that's all over the place. Every week there are new products that become available," says Douglas Barry, founder and principal of the database consulting firm Barry & Associates in Burnsville, Minn.
In general, XML tools are available in three price ranges. The most expensive are XML application servers with data storage capabilities. These typically sell for several thousand dollars per CPU. Some vendors that sell application servers also sell XML toolkits for several hundred dollars. For example, Bluestone Software's XML-Server typically sells for $3,000, but its Visual-XML developer toolkit is $99 a seat.
The second category includes downloadable versions of individual XML tools, which are often priced at around $100. Some examples of tool types are schema editors, translators and data extractors. For example, Extensibility sells XML Authority -- a tool for managing XML schemas, or graphical representations of the structures that appear in XML documents -- for $100 for a single-user license.
The third and largest category, however, is free open-source software. Open-source tools are available for free downloads at vendor and foundation websites such as the Apache Software Foundation in Forest Hill, Md., a not-for-profit organization that was designed to support open, collaborative software development. The most widely used free XML tools are parsers, the tools that decode XML tags in various programming langguages. Among the companies that have donated their XML parsers to Apache are IBM and Sun Microsystems. Late last year, Apache began the Xerces project to combine the best features of these XML parsers.
For their part, Mayfield and his team are using Bluestone Software's Total-e-Business suite of tools, along with popular open-source tools, including LotusXSL, for using the extensible style language (XSL), which reformats XML into HTML for display purposes.
People just getting into XML development may wonder whether to begin with an XML server or with individual tools. If your XML application development budget allows for only one purchase, invest in an XML server, preferably one that works well with your database and web application server. XML servers, also called XML data servers, refer to a wide range of middleware products that automate the exchange of XML-compliant structured data. "The term is used loosely because there are many vendors that want to say they have an XML server," notes Michael Goulde, executive vice president and senior consultant with the Patricia Seybold Group, an IT consultancy in Boston.
Choosing an XML server requires serious investigation because the storage methods and capabilities of these products vary greatly, Barry agrees. At a minimum, an XML server stores and retrieves data from various sources, applies the appropriate markup tags and distributes it to applications. Bluestone Software and Software AG are among the vendors that introduced XML servers last year.
However, some servers simply serve up XML tags, while others actually store the XML data. Among those in the latter category, some may use an object database, others a relational database or even a flat file. "It's important to understand your data storage needs and to make sure that the XML servers you are considering meet your needs before you make a final choice," Barry says.
Move Over, SGML
XML is also replacing standard generalized markup language (SGML) tools as the way to format structured documents. Therefore, some of the most popular SGML authoring tools have been reincarnated as XML authoring tools.
XML authoring tools automate the process of adding XML tags to standard word processing documents. For example, WizeUp.com, a digital college textbook publisher in New York City, uses Enigma's DynaTag to insert searchable and printable notes into its textbooks. The XML tags ensure that notes will appear at the appropriate locations within the text.
DynaTag was originally an authoring tool for SGML. Others that have evolved from SGML include Arbortext's Adept and Adobe Systems' FrameMaker + SGML.
Give and Take
Even in corporate settings, many of the most widely used XML tools are the parsers, XSL processors and other tools available free from vendors' websites or those of nonprofit organizations. For example, insurance e-commerce technology provider ChannelPoint.com in Colorado Springs, Colo., has used XML in developing an internet portal for insurance and benefits brokers and agents. ChannelPoint Chief Architect Tom LaStrange used open-source tools including the IBM XML4J parser and Java-based LotusXSL stylesheet technology to create XML data models of paper-based forms for online enrollment. XML4J and LotusXSL are both available through a free download from AlphaWorks, IBM's website for emerging software technology (www.alphaworks.ibm.com). LotusXSL is also available from the Apache Software Foundation.
In fact, the marketplace for XML tools has begun to resemble the market for Java development tools, in which some of the most widely used tools are ones that vendors have donated. However, the traditional caveats regardingg open-source software still apply. "If a developer's goal is to gain an understanding of the technology, open-source tools work well," says Goulde. "But if the goal is to build an application, developers will want the service and support that a vendor can provide paying customers."
How risky is it to use open-source XML tools? That depends on which tool you're using. "If you are using an XML parser or conversion tool, you have not lost anything but time if the tool does not work," says Barry. However, he adds, it's an entirely different situation where data storage is involved. "If you are using an XML product that stores data, your company is at serious risk if the data storage breaks and corrupts your data. It's essential to have extensive support for any XML server that supports large databases and busy websites," he says.
Room for Improvement
But despite the flurry of XML tool announcements, there are still holes to be filled. One tool that Food.com's Mayfield is still seeking is a good XSL creation tool. "I'd like to find tools that would make stylesheets easier to use. These tools would eliminate some of the need for writing browser-specific code," he says.
And while LaStrange was creating ChannelPoint's XML-enabled site, he created Merlot, a Java-based extensible XML editor that his company is making freely available as open source. LaStrange believed that the XML community needed an XML editor that would allow developers to create custom editors for individual XML elements.
As for XML's future, the market will undergo big changes within the next two years, after standards organizations ratify key standards for it, Goulde says. "XML is destined to be so universally supported that separate XML products will no longer be necessary," he says. "When XML standards are in place, XML will become at once less visible but more present." That is, a wide range of server products will be able to store and retrieve XML behind the scenes. "XML will be so deeply embedded in the core application development tools that developers will no longer need to think about the low-level details of its syntax," he says.