Extended Systems aims to offer performance, simplicity and ease of use, and for the most part has scored a solid success. You won't find enterprise-level application-server features such as failover or load-balancing, or even row- or record-level locking, but neither will you find the price tag, learning curve or complexity associated with such features. If Advantage's basic features meet your requirements, you may find that it does the job at a fraction of the cost and development time of other solutions. And if you need a small memory footprint and to minimize network traffic while maintaining high performance, Advantage is a good choice.
We tested the Advantage Database Server on a Dell PowerEdge 2200 with 256 MB of RAM running Windows NT 4.0 Service Pack 5. Under Windows NT (3.51 or later), the database server operates as a service, but it can also function as a NLM under NetWare (3.11 or later). Supported clients include DOS, Windows 3.1x and 95/98/NT; client-development kits are available for Delphi, CA-Visual Objects and CA-Clipper, and FoxPro, as well as other ODBC-based clients.
Clean, or Bare-Bones?
After an uneventful installation (the only hang-up was having to copy the files from the CD to disk, apparently because writeable media is required to complete installation), the database server came up properly as a new NT service. I then launched the Advantage Data Architect, a simple tool used to build new native Advantage tables (stored in a proprietary ISAM format), or to import pre-existing tables from Paradox/dBase, FoxPro or CA-Clipper databases.
You won't find data-modeling tools and built-in import for other database formats, which restricts the use of Advantage to users who have one of the supported types, or who are willing to manually re-enter their tables via the Data Architect. This is Advantage's most obvious shortcoming. Still, the Data Architect lets users maintain index and data parameters, set filters and configure many other table features and parameters quickly and easily.
Although standard DBF tables are not allowed to have field names longer than 10 characters, may not exceed 2 billion records, and can be no larger than 4 GB, the native Advantage ADT file type is much more flexible, with 128-byte fields, and record and file-size limits in exabytes (264). ADT databases are thus bounded primarily by host performance limitations. Record-locking for tables that are opened in shared (nonexclusive) mode occurs on a table level. Other sessions can still access the table in read-only mode, but a session that is modifying one record of a table in shared mode locks the entire table for updates. This is a less flexible scheme than record-level or row-level locking, but it's simple, robust, requires no lock retries and generates no additional network traffic in order to function properly.
Advantage offers built-in basic transaction processing, but lacks some capabilities of more full-featured transaction-processing systems. Advantage supports basic build, commit and rollback operations, and can group and roll back multiple inserts, updates and deletes to a number of database tables as a single virtual operation. This capability is essential to building any robust database system. But Advantage doesn't support transactions involving tables residing on multiple servers, doesn't maintain a persistent transaction journal file (which would aid in recovery from crashes) and doesn't support nested transactions or partial transaction rollbacks.
It seems that Extended Systems has designed Advantage with simplicity and robustness in mind, which is a risky strategy when other database servers have long since succumbed to "featuritis." The upside is that Advantage seems very stable and very fast. Doing a few things but doing them very well is a refreshingly old-fashioned approach to software engineering, and makes me wonder if Extended Systems somehow managed to firewall its engineering team from its marketing department.
The Real Skinny
One of the most surprising things about Advantage is its small footprint, both in its disk space and RAM requirements. The database server takes up about 2 MB of drive space, and even if you add up all the various components, administration tools, DLLs and help files, it's still less than 10 MB. In this age of uncontrolled bloatware, when it seems as if you can't get a Solitaire program to fit on a 100-MB Zip disk, it's gratifying to see such efficient code.
Even better is the memory footprint, which was typically less than 2 MB. By comparison, an installation of Microsoft SQL Server 7 took more than four times as much, and Oracle instances running on my test platform routinely required between 10 MB and 30 MB at a minimum. No, you won't get all of the capabilities of Oracle or SQL Server with Advantage, but if you don't need them, it's a delight to work with a database server that at least claims to be able to run on a host with a 386 processor.
The small file size came in handy, as the copy of Advantage Server and the Data Architect that I initially received turned out to be version 5.1 instead of the new 5.5 version, which includes native support for a subset of the ANSI SQL specification and stronger encryption between client and server. Extended Systems was able to quickly e-mail me an updated copy of the entire software package. Try doing that with SQL Server or Oracle!
There are very few bells and whistles to Advantage, and there are some areas (database compatibility and data-modeling tools in particular) where it could use some major upgrades. But in general, working with the Advantage database server made me somewhat nostalgic. It was like going to see an old movie, filmed before special effects took over Hollywood.
Send your comments on this article to rhoffman@nwc.com.