Product Review
Middle-Tier Data Management
Middle-Tier Data Management
Mar. 25, 2002 12:00 AM
XML databases are different from traditional databases, and they require a new set of features and metrics for evaluating them. In my last column (XML-J, Vol. 3, issue 2) I talked about native XML database management systems (XDBMS), and I'd like to follow up with how they differ from traditional databases and why this is significant.
When databases were first introduced to the industry eons ago, corporations had piles upon piles of data waiting to be poured into some form of digital storage and management. Not so with the introduction of XML - the biggest bottlenecks today are the piles upon piles of applications trying to effectively use all the available digital information.
Addressing this need is something that is square in the middle of XML's sweet spot. XML is flexible enough to manage any information (structured and unstructured) and extensible enough to support new and changing applications, and it is an Internet standard to cross IT boundaries. For all these reasons, XML database management systems do not usually act as the database of record - although they certainly can - but more often are used for middle-tier data management.
What Is Middle-Tier Data Management?
The typical architecture within an enterprise consists of four layers: back-end systems, business logic, presentation and delivery, and the client application (see Figure 1). Most will agree that XML is the language of choice for delivering information to clients, and few are rushing to convert back-end systems to XML, but the two tiers in the middle present confusion.
Much has to happen to information in the middle tier(s). Most infrastructure is required to:
- Convert diverse information (structured and unstructured) into XML.
- Extract the relevant information (a custom view) for each application.
- Deliver data in real time.
- Connect to systems not under local control (i.e., systems from another division or a partner).
- Support changes in applications, partners, and back-end systems.
- Prevent localized changes from rippling throughout the extended enterprise.
These aren't easy tasks, but this is exactly what middle-tier data management addresses: it works with app servers and Web servers to make sure that the right data gets to the right place, in real time - and XML is the format of choice for the job.
How Is Middle-Tier Different from Back-End Data Management
The two are very different. Consider these distinctions:
Primary purpose: The primary role of a back-end data management system is to be the database of record, providing permanent and definitive storage regardless of how the data is eventually used. Middle-tier data management is the opposite. Its purpose is to serve the needs of the applications.
Data model: The data model in a back-end database has a fixed schema and is usually highly typed and normalized. And it should be. If it's to serve as a permanent database of record, it should be predictable and solid as a rock. Again, middle-tier data management is the reverse - inflexibility is a liability here. The data is constantly changing to support new business initiatives, and an inextensible data model forces systems and applications to be hard-wired together, creating the ripple effect described above.
Duration of the data: In back-end databases the data is usually stored forever. Invoices, customer profiles, and part numbers are maintained in the database long after the information stops being actively used. With middle-tier data management the data typically persists only for the duration of a process. While the process may last for several years, as in the case of a supply chain or an e-commerce site, durable data can be siphoned off and stored in a back-end system.
Development effort: - Because a back-end database is designed to be permanent, significant development effort is invested upfront to anticipate all future needs. Beyond that, the development is mostly maintenance (connecting to new sources, schema evolution, etc.), and in general the less the better. This isn't necessarily the case at the northern end of the architecture diagram. Development is constant, and occurs every time the organization moves to become more competitive. Whether there's a new partner, a new system, or an additional feature, the data management system requires nearly continuous new development.
Is Middle-Tier Data Management Necessary?
That depends on how much the infrastructure is being stretched to deliver on the six requirements listed above. If data is strictly structured, if batch files suffice, or if agility is not an issue, then it may not be necessary. The alternate ways of delivering XML to clients may be more appropriate, such as flat files or on-the-fly adapters. Flat files are flexible, and of course cheap, but everything is left as an exercise for the reader and there are no enterprise-class guaranties included. Adapters can turn non-XML data into an XML document, but they don't address any of the issues above.
If It Doesn't Walk Like a Duck, It Probably Won't Look Like a Duck
Because the usage models of middle-tier and back-end data management systems are quickly diverging, the feature sets of relational and XML databases are diverging as well. XDBMSes depend on an extensible data model, which is considered heresy to the traditional DBA. Also, simple and standard interfaces, and connectivity options, jump to the top of the priority list.
It should be mentioned, however, that middle-tier data management is not the only way to use an XDBMS. XDBMSes are often used as the database of record or as an embedded database, but those are topics for another day.
About Coco JaenickeCoco Jaenicke was, until recently, the XML evangelist and director of product marketing for eXcelon, the industry's first application development environment for building and deploying e-business applications. She is a member of XML-J's Editorial Advisory Board.