Richard Riehle posted:

> In the object database domain, persistence is the quality of an object to
> retain its ability for polymorphic behavior even while store in some
> secondary device.  This means the object always knows how to dispatch
> when read into a program's primary memory.
>
> In Ada 95 this capability is reflected in Stream_IO's ability to preserve
> the tag of the object when storing it into a file.  Upon reading such an
> object, any dispatching operation can be invoked because of the persistence
> of the tag.  In this sense, it is not the only data which is persistent (of
> course it is) but also the operations on the data.
>
> This is fundamental challenge of object database software:  how do we make
> both the data and the operations on the data persistent?
>
> Although the Ada "tag" is useful for this purpose in some environments,
> it is not portable across all compilers. Each compiler has its own model
> for a tag.  Therefore, the tag, while a useful feature for designing an
> object database that will always be processed by the same compiler on
> the same machine, does not satisfy the larger problem of persistence as
> understood in the world of object database design.

But one can redefine 'Write and 'Read to be portable.  'Input and 'output
can also be redefined, or you could include a portable representation of
the tag as part of the 'Read and 'Write.

> For a good paper on this subject in the context of Ada 95, see the work of
> Michael Card of Lockheed-Martin in Syracuse. I think it is available on one
> of the Ada web sites.

Some comments about Michael Card's FIRM.  (I know two people besides
Michael who also worked on FIRM and its predecessor, RTDM.)  At one time,
GE Aerospace (now Lockheed-Martin) was struggling to get Ingres to work
with the AN/BSY-2 system (the customer had a preference for Ingres).
Finally, they proved to the customer that there was NO WAY Ingres could
ever hope to handle the required data rates, and got permission to create
their own Real-Time Data Manager (RTDM) in Ada 83.  This was an order of
magnitude faster than Ingres.  FIRM came along after I left (I did not
work directly on RTDM either) and was an Ada 95 improvement on RTDM under
an Air Force contract.

RTDM, having been developed as part of a US DoD contract, is available at
little or no cost for other U.S. government contracts, although you might
prefer to purchase FIRM from Lockheed-Martin, just to get some degree of
support.

I don't know the exact URL, but Lockheed-Martin's web site has a little
info with contact data.  I also found on the Web (don't remember where) a
paper by Mayford Roark about RTDM.  It's hard to find--a Web search for
"Real-Time Data Manager" turns up LOTS of unrelated hits.  However, here's
two places to look for papers on the subject:

http://wuarchive.wustl.edu/languages/ada/ajpo/docs/reports/roark/
(an entertaining warning about COTS on pages 6-7)

http://wuarchive.wustl.edu/languages/ada/ajpo/docs/reports/card/