Object-enabling technology
OLE
- document centered -- text, graphics, reports
- component software -- standard programmatic interface
- distributed object systems -- component object model
(D)COM
Features
- linking, embedding, storage
Alternatives
- IBM SOM/DSOM, Apple OpenDoc
slide: Object-enabling technology -- OLE
Standardization -- system integration
OMG
- information sharing -- technology, policy
Object Management Architecture -- interface standards
IDL
- Object Services
- Object Request Broker
- Common Facilities -- file manipulation, print queuing, email
- Application Objects -- spreadsheets, word processor
slide: The OMG standardization effort
Object Services
- life cycle -- creation and deletion
- persistence -- management of object storage
- naming -- mapping names to references
- event notification -- registration of events
Future
- transactions, concurrency, relationships, ... ,time
slide: The OMG Object Services
Persistent objects
ODMG
- database extension -- unified type system
Object Definition Language
ODL
- standard types -- objects and literals
- references -- Ref< T >
- collections -- List< T > , Bag< T >, Set< T >
Object Manipulation Language
OML
- create, delete, modify, reference
Object Query Language
OQL
- oql(type& value,const char* query,...)
slide: The ODMG-93 standardization efforts
Design principles
object model
- the programmer feels that there is one language
Language binding
C++ODL/OML
- objects and literals -- embedded objects are literals
- relationships -- not directly supported by C++
- extents -- must be maintained by programmer
- keys -- simulated by C++ data members
slide: Language binding -- C++ ODL/OML
C++ODL/OML binding -- future
- no distinction between persistent and transient objects
- better integration of the query sublanguage
Modifications to C++
- overloading dot (access operator), r/l values, ...
Standardization efforts -- de facto market share
- PDES/STEP, ODA, PCTE, OSI/NMF, ISO ODP, ANSI X3
slide: Future standardization efforts