ObjectStore is innovative in its use of the C++ language to make database access transparent. Objects can be created in a database by overloading the operator new(). In this way, one can create new C++ objects directly in the database yet these persistent objects look and behave just like normal C++ objects. Data is mapped into memory as operating system pages. When data is referenced in a different page, by making use of signals, ObjectStore traps the pointer exception and transparently brings objects in from the database by bringing in the required page(s). In addition, by use of a technique called swizzling, the database can be accessed from different platforms, with pages being 'swizzled' as they are brought into memory on page faults to correct big endian versus little endian platform issues as well as virtual function table layout. The design of ObjectStore is described in a 1991 paper[1] in the Communications of the ACM.
ObjectStore was originally created in 1988 by Object Design, Incorporated, which was based in Burlington, Massachusetts and founded by several former Symbolics employees, including Daniel Weinreb. In 2002 the product was acquired by Progress Software, which continued to develop the technology, expanding its use beyond the object database market to target uses as a database for real-time computing, specifically designed for RFID data management, and as a cache for relational databases.
In 2013, Progress Software sold off many of its non-core products to Aurea Software, Inc., a newly formed operating subsidiary of ESW Capital, the investment arm of Trilogy Enterprises. As part of the deal the ObjectStore product line moved to a separate operating subsidiary of ESW Capital.
[2]
The ObjectStore product is used in many fields, including telecommunications, financial services, travel, GIS, and the government.
One of the early successful applications of the product was with Telstra to handle 13 and 1300 numbers in Australia - similar to 1800 numbers in the US. The product enabled the real time mapping of those numbers to a number closest to the caller - for example a local taxi company or the nearest open Pizza Hut.[3]