SourceFiles.org - Use the Source, Luke
Home | Register | News | Forums | Guide | MyLinks | Bookmark

Related Sites

Latest News
  General News
  Reviews
  Press Releases
  Software
  Hardware
  Security
  Tutorials
  Off Topic


Back to files

Copyright (c) 1999-2004 The dbXML Group, L.L.C. All rights reserved.

See LICENSE for The dbXML License

Table of Contents

Introduction
Avoiding Confusion
Target Platforms
Release Notes
Authors
Acknowledgments

Introduction

dbXML is a Native XML Database (NXD). NXDs are databases that store XML using an internalized format for faster overall processing. dbXML was developed using the Java 2 Standard Edition version 1.4, and should operate properly on all platforms to which J2SE 1.4 has been ported.

Avoiding Confusion

dbXML is not to be confused with Berkeley DB XML which is currently being developed by Sleepycat Software. Berkeley DB XML is relatively new, written in C/C++, leverages Berkeley DB, and is meant to operate as an embedded XML database. dbXML was started in 1999, is written in Java, and can operate both in embedded and client/server modes.

Some people have taken to calling Berkeley DB XML the name "BDB XML".

Target Platforms

The dbXML code base is written in Java, and requires JDK 1.4.1 or higher to operate. It utilizes Java's New I/O system, which isn't supported in JDK versions lower than 1.4. The following is a list of tested platforms and the JDK version that was used:

Platform Java VM Used


Mac OS X Apple's Java 2 SDK 1.4.2
   Solaris     Sun's Java 2 SDK 1.4.2
   Linux       Sun's Java 2 SDK 1.4.2
   Windows     Sun's Java 2 SDK 1.4.2

Release Notes

Version 2.0

This is the official production release of version dbXML 2.0. A lot of work has gone into this release, and I'm very pleased to see it finally available in its final form.

Between the first release candidate and now, only a few minor bugs were found.

  • Newer versions of Xerces are strict about parsing the "]]>" sequence when it doesn't belong to a CDATA section. Labrador serialized that sequence incorrectly and was causing parsing problems. This problem has been resolved.
  • The latest version of Xalan had a method return value that was not class-compatible with the older version. This was causing the XUpdate engine to fail with a ClassCastException. This problem has been resolved.
  • Collections weren't removing their Labrador context when being dropped or otherwise disposed of, which would result in a phantom Collection if one were to connect to the Collection directly. This has been resolved.
  • Because the getInformation RPC method was exposed by both CollectionProxy and ContentProxy, attempting to connect a CollectionClient to a Document (or vice versa) would result in a Null Pointer Exception. This has been resolved.

Version 2.0 (Release Candidate 1)

This is the first, and hopefully the only, Release Candidate for dbXML 2.0.

  • dbXML has now been built and tested with the Java 2 SDK version 1.4.2 on both Solaris and Mac OS X. There may now be compatibility issues with dbXML and the version of Xalan that is included in the Java 2 SDK 1.4.1 or earlier, so Java 2 SDK 1.4.2 is recommended.
  • Previous Betas used Java's Memory Mapped I/O facilities to perform paging for the database. This led to many performance and behavioral inconsistencies between Windows and UNIX, and so the paging system has reverted to standard Java I/O.
  • Replaced the database bootstrap system with a more self-contained mechanism that works better with various versions of Windows.
  • UTF-8 was not fully functional in Beta 3, it only appeared so. Queries, updates and indexes based on UTF-8 content would fail. These problems have been resolved.
  • The Administrator now includes dialogs for creating both Collections and Indexes. Double-clicking on a document now actually OPENS that document. What a novel concept, eh? Also, a very basic hierarchical grid editor has been added, a new property editor has been added, and a Server shut down context menu has been added.
  • Arbitrary properties that are specified in the Command Line's MKCOL, MKIDX, MKTRG, and MKEXT commands are now passed through to the associated database object. In the case of MKCOL, these properties are passed to the associated Filer object.
  • Cleaned up the Producer concept in the DTSM libraries so that Producer and extensions of Producer emit common events to implementations of the Consumer interface.
  • An access control check is now performed when you attempt to shutdown the server remotely. This check is performed against the top level "system" collection, and requires "Execute" access.
  • Using the most recent stable version of Xerces and Xalan now.
  • The XPathQueryResolver now imports a result Element's contextually relevant parent namespace declarations so that the resulting node can be parsed when it exits the system.

Version 2.0 (Beta 3)

Beta 3 includes several bug fixes as well as some additional functionality in the Administrator tool. This will probably be the final beta before a release candidate is made available.

  • dbXML now includes proper support for UTF-8 in the transport layer. In order to do this, I had to replace the Apache XML-RPC library with a heavily modified one that serializes XML above character 0xFF correctly, and uses JAXP to get a parser instance instead of the embedded MinML parser. MinML was small and fast, but it was lacking in its ability to parse UTF-8. This modified XML-RPC library also strips away all of the server side functionality, which is handled by Labrador anyway.
  • Added a XML namespace prefix mapping tab to the Administrator preferences, so a user can define a set of reusable namespace prefix mappings, without having to add them to their XML for every query.
  • The Programmer's Guide now talks about creating indexes for elements and attributes that belong to a namespace. This behavior has always existed in dbXML, but was never documented.

Version 2.0 (Beta 2)

Beta 2 is mainly a bug-fix release, but also fills in some holes in the Administrator tool.

  • The indexing system would fail when you attempted to create an index on a pattern that didn't already have an accompanying set of symbols in the Collection's symbol table. New indexes now automatically generate symbol table entries to accommodate future collection population.
  • The dbXML REST Web Browser interface couldn't handle slashes in Document names, so browsing Collections such as /system/SysAccess and /system/SysSymbols would fail. This has been corrected.
  • The Command Line tools now support spaces in values by allowing quoted strings. For example: connect user=tom pass="my pass".
  • The dbXML Exception system has now been altered for supporting chained messages. Exceptions that are morphed as they propagate through the system now include the messages of their root causes in the newly generated message. This means you can now figure out why your document isn't being parsed as it goes into the system.
  • The ValueIndexer would kindly ignore invalid type names and assume that you meant 'string'. This has now been corrected, and you will be yelled at if you try to create an improper index. As a result, the programmer's guide now goes into a little more depth about index management.
  • Trigger, Extension, and Index creation would still generate a configuration item, even if the object instantiation failed. This would lead to 'duplicate name' errors on subsequent attempts to create the object. This has been corrected.
  • On Windows, the Command Line's IMPORT command would leave the imported files open, causing them to be locked. This command now properly closes the files after import.
  • The Administrator has been filled out more, and now includes a basic preferences dialog. There is now a preferences for performing "auto-beautifying" of XML loaded into the editor. This includes both documents and query results.

Version 2.0 (Beta)

Some History:

The dbXML project was started toward the end of 1999 by Tom Bradford. In its infancy, dbXML was written in C++ and was intended to be an embedded XML data store. Over its first year, the project migrated from C++ to Java and shifted from an embedded store to a client/server model.

In early 2001, dbXML Core version 1.0 was forked. One image of that fork was renamed Xindice and donated to The Apache Software Foundation. The other image of the fork was retained by The dbXML Group to be developed as a commercial product.

Beginning with version 2.0 (Beta), The commercial version of dbXML has been resurrected as an open source project, and is being released under the terms of the GNU General Public License. The dbXML Group will also continue to provide commercial licensing for dbXML for those users who are restricted in their use of GPLed software.

A LOT has changed since the last version of dbXML that was released as open source by the dbXML Group. Since version 1.0, dbXML has been practically rewritten from the ground up. The overall architecture remains essentially the same, and some of the fundamental APIs are very similar, but for the most part, dbXML is a completely new product.

What's Left To Do For 2.0?

  • Transaction recovery needs fixing and lots of testing
  • Documentation. There's some, but need lots more.

Future Features?

  • Dump & Load for backup/restore of portions of the database
  • A SOAP client (when Labrador supports SOAP)
  • The Administrator GUI still needs a lot of work
  • Constraining a Collection using a W3C XML Schema
  • Internalized DTSM representation of primitive schema types
  • Indexing implicitly coerced based on the schema types
  • Abstracted logical/physical plans and surrogate processing engine
  • XQuery in the future... maybe?

Authors

dbXML is currently being maintained by the following people. They are listed in alphabetical order.

Acknowledgments

dbXML Core 1.0 was the result of the hard work of many people who worked for the dbXML Group and/or who individually contributed to the project. Their contributions to that project served as the foundation for dbXML as it exists today, and are greatly appreciated. They are listed in alphabetical order.

  • Tom Bradford
  • Michael Carmack
  • Dolan Halbrook
  • Jay Kalafus
  • Robert Kelsey
  • Brent Moore
  • Mike Mortensen
  • Ichiro Ohta
  • Fernando Padilla
  • Matthew Parry
  • Dan Pratt
  • Gianugo Rabellino
  • Kimbro Staken
  • Chris Staszak

Tom Bradford and OmniCore CodeGuide:

Another quick acknowledgement. I've been using a product called CodeGuide to do my Java development since late 1998 or early 1999. As far as IDEs go, CodeGuide 'appears' to be relatively simple, doesn't have a lot of 'flash', doesn't provide UI design tools, and isn't weighed down by a heap of 'plug-in features du jour'. Its code analysis tools, refactoring support, friendly handholding, and generally comfortable look and feel make it, by far, the best IDE I've ever used. Please check it out: http://www.omnicore.com/

Licensing Acknowledgements

This product includes software developed by The dbXML Group, L.L.C. (http://www.dbxml.com/)

This product includes software developed by the Apache Software Foundation (http://www.apache.org/).

This product includes software developed by the XML:DB Initiative (http://www.xmldb.org/).


Other Sites

Discussion Groups
  Beginners
  Distributions
  Networking / Security
  Software
  PDAs

About | FAQ | Privacy | Awards | Contact
Comments to the webmaster are welcome.
Copyright 2006 Sourcefiles.org All rights reserved.