XML is taking hold as the foundation of Small Packet (<100KB) Data Exchange. This is coming about for a number of reasons. The first and most important, is that SOA designs are taking off as companies build to integrate, interoperate with flexibility, reuse and agility. Second, XML data bases are also starting to take off because XMLs XQuery is more standardized than SQL, the hierarchic database is simpler for modeling many objects+ relationships, and after about 100KB worth of data – XML starts to lose big time in performance to relational and other database solutions (so XML never tries to eliminate the big boy on the block).
Nonetheless, thrusting SOA and XML databases forward is the fact XML has three virtues and three vices which help secure for it these key roles in development.
The XML Virtues are:
1)It is a widely accepted standard for data definition, storage and layout/presentation;
2)Its basic rules and syntax are tediously simple but human readable;
3)It has managed to produce viable and fairly unform standards with mostly consistent program implementations:
a)for data definition there are simple DTD-Data Type Definitions and more comprehensive, robust XSD-XML Schema Definitions;
b)for storage it has managed to produce reasonably uniform XPATH and XQUERY tools for accessing and XSLT tools for transforming data stored in XML format;
c)for presentation and layout its has done less well; XHTML is reasonably standard but not highly adopted while XSL, XS:FO, SVG, XUL have both mixed adoption (see XAML from Microsoft as their own XUL+SVG combo) and victims of proprietary extensions.
XMLs vices are:
1)it is human readable and it is very verbose. These vices invite a number of security and performance problems;
2)it is declarative and recursive in all its functions and “programming” making it compact to develop in but adding to performance challenges;
3)it is naturally hierarchic with all the virtues and vices that data architecture implies.
So just as XML becomes the medium of small to medium scale procedural and data interchange through SOA+ESB frameworks and systems watch for a parallel growth in XML databases either implementing those data interchanges or acting as a local object and/or data persistence engine of choice. It certainly does not hurt that major XML databases such as Apache Xindice and Berkeley DB XML are not only Open Source but cross platform and in the case of DB XML also support XQuery.
Think of the trade-offs between XML and RDBMS as:
Speed of development – advantage XML
Speed of deployment – advantage XML
Cost of deployment – advantage XML
Availability of development tools – roughly even
Availability of management tools – advantage RDBMS
Security – very slight advantage RDBMS
Size of database handled – decisive advantage RDBMS
Speed and scalability – decisive advantage RDBMS
It looks like there is a hyperbolic cusp or saddle here in the benefits-costs curve, so expect XML and SQL databases to co-exist and interoperate for better or worse. So, despite all the XML-enablement being added to DB2, Oracle, SQL Server and other databases, expect XML databases with their underlying XPath/XQuery/XSLT engines to prosper. SOA+ESB will help the XML database cause. Hmm … another syntactic and semantic landscape to learn. Ohhhhh …. delicious.