Cutting and Sewing with XML

 
 
By Peter Coffee  |  Posted 2004-11-08
 
 
 

Its rarely a term of praise to compare an IT system to a quilt. In an IT context, I usually see the "q" word with a prefix like "patchwork" or even "crazy"—labeling a system as combining all sorts of independently developed elements with no coherent overall design.

With several quilters in my family, though, I think of their craft as creating a new and unique higher-level pattern by combining pre-existing component patterns in a way that embodies some original theme. That image came to my mind the other day when I was thinking of the opportunity to extract and recombine XML data, from many sources, into a new and added-value combination in the same way that a quilter works with fabrics.

A quilting metaphor illuminates the developer opportunity that XML provides. Its hard to imagine combining pieces of metal and plastic, or leather and glass, in the way that a quilter joins pieces of fabric. Heterogeneous combinations like the ones Ive just mentioned are like combinations of arbitrary binary data structures: They require tricky integration techniques and produce awkward products that cant be handled correctly without detailed knowledge of exactly how they were put together and from what.

A quilt, in contrast, may have a complex design, but the core technology of sewing pieces of fabric together is straightforward and scalable: With proper infrastructure and management protocols, any number of people could be working together on a single project at any time. The resulting product, though hierarchical, is also homogeneous: No matter how many pieces come together to make a component of a larger quilt, that component can be handled as if it were a single piece of fabric when its being integrated into the next higher level of the design. XML has the same characteristics.

I found myself thinking along these lines during a conversation with Kevin Collins, VP of Engineering at Navio in Cupertino, Calif. The companys technology delivers digital content, not just as pay-per-download offerings, but more generally as highly tailored digital "bearer instruments" that represent titles to combinations of rights. "You might be able to share access," Collins explained, "or to let your friends preview content that youve bought. We have the ability to set up custom currencies."

Navio announced last month its adoption of the XML Intelligence Platform from Ipedo, in Redwood City, Calif. I spoke with Ipedo co-founder Tim Matthews, who described the use of XML to create a virtualized data source that draws live data, or results of computations, from any number of sources to support applications such as Navios—including, for example, retailing of cellular telephone "ring tones," a $3 billion market thats being tracked (as of this past weekend) by Billboard magazine just like the latest hit songs.

When I was wondering if anyone else had invoked the image of quilts in connection with XML, I found that someone else must have had a similar idea a few years ago: Theres an XML query language called Quilt, considered to be the ancestor of the rapidly rising XQuery.

To read about the use of XQuery in relational databases, click here.

That reminds me, in turn, of a comment by Ipedos Tim Matthews: "Write queries, not code." The "language wars" that used to provide so much coder entertainment in years past may soon give way to equally vigorous debates over the best way to express queries. I can live with that. When applications are primarily queries against data, with the client environment letting the user control the manner of display and interaction, I believe well wind up with both higher-quality applications and more productive users. Theres nothing "crazy" about that.

Tell me what youre putting together at peter_coffee@ziffdavis.com.

Check out eWEEK.coms for the latest news, reviews and analysis in programming environments and developer tools.

Rocket Fuel