If you want to understand your technology strategy options, my usual advice is that you should study Microsoft, Oracle and IBM. There's hardly a software product category in which at least one of them isn't a market leader and mar-
keting trendsetter. Enterprise applications, personal applications, operating systems, app servers, network management, security, analytics, app development, nontabular data types, search, speech recognition -- you name it and they're there. And, of course, in database management, they pretty much have divided the whole market up among themselves.
But despite the overwhelming market power of the Big Three, a few other database management systems vendors are still standing, and there are things to be learned from them, too. An interesting matched pair of such companies is Progress Software Corp. and InterSystems Corp., two of the last remaining major independent software vendors in the Boston area. Both started as fourth-generation language (4GL) vendors but soon added matching DBMSs, which, at least nominally, provide the bulk of their revenues. Both sell primarily through indirect channels but derive a large minority of their revenues from direct enterprise sales. Both seem to have decided that object-oriented database and middleware technology is the wave of the future. And that's where the similarities end.
InterSystems is the smaller and less established of the two. But it's also the more interesting company right now, thanks to an unusual DBMS architecture. InterSystems' Cache database manager has a fundamentally object-oriented design. That is, the native DML/DDL (Data Manipulation/Description Language) is emphatically object-oriented, and the access methods are optimized for the storage and retrieval of entire objects. This language is a proprietary outgrowth of the Mumps standard (Massachusetts General Hospital Utility Multi-Programming System), a health-care-oriented 4GL. Naturally, Java and XML are supported as well. In addition, there is a reasonably versatile and effective SQL overlay.
InterSystems would have you believe that the net effect is blazing performance in major applications, not a lot of performance penalty in add-on applications, all the programming benefits of object orientation and only some of the drawbacks of having business logic and data structure intertwined. A look at InterSystems' user base suggests there's some truth to these claims. Transactional systems in areas such as trading floors and telephony billing support the performance claims. The Cache partner catalog does imply that the heart of the business is specialized apps in areas such as patient records - but a few complete back-office suites suggest that the relational features work at least somewhat as advertised.
To understand what's going on under the covers of Cache, recall that the real action in a DBMS usually takes place in the indexing system. Like any other object-oriented DBMS, Cache essentially accesses data via a tree structure that mimics the object hierarchy. In the case of Cache, the index is just as object-oriented as - and indeed stored in the same way as - the data itself. The tree structure, in turn, is implemented via highly multidimensional (and very sparse) arrays with lots of possible subscripts. The whole thing is navigated via relational-like b-trees, which InterSystems insists are rigorously self-rebalancing. And Cache is particularly fast at updating bit-mapped column indices, a nice boost to SQL performance for some complex queries.
Should you use Cache instead of Oracle or DB2? Probably only if a huge performance advantage can be proved for a particular application. But is Cache a harbinger of future directions from the big DBMS vendors? Quite possibly. True object orientation and complex XML are each awkward to support in classical relational structures, and both Oracle and IBM show refreshing willingness to go beyond classical relational dogma.
Progress' story can be construed to somewhat corroborate that of InterSystems. Its main business is actually based on a much more conventional relational DBMS and 4GL. Although mature, that segment remains fully competitive, and Progress is vying with Oracle and Microsoft for "embedded" DBMS market leadership. Credit for this goes to Progress' historical focus on indirect sales and to some historical product advantages, such as a no-DBA RDBMS and what was once the best 4GL available. But even so, Progress' core techies now think the future is in object-oriented DBMSs (and associated middleware) as well. And while they flirted with pushing XML over object orientation as the post-SQL DBMS paradigm, like InterSystems they now espouse object orientation as the data architecture wave of the future.
Curt A. Monash is a consultant in Acton, Mass. You can reach him at curtmonash@monash.com.