This is an old revision of the document!
Quick history:
SOM 1.0 - came out with OS/2 2.0 and used to build WorkPlaceShell
SOM 2.0 - aligned with CORBA 1.1, used CORBA IDL and added DSOM.
SOM adopted by Apple to move OpenDoc from C++ to a language neutral framework.
SOM 3.0 - added IIOP support, referencing counting for SOMObject and more CORBA frameworks
SOM was available on OS/2 2.0 upwards, Windows NT, AIX 4, OS/390 and OS/400.
Why somFree?
This project provides a clean-room implementation of the major SOM components and is built to be very portable. The name comes from the method used to delete a SOMObject.
Main differences from IBM SOM
- IDL compiler is a C++ program rather than a SOM based framework. This solves a chicken-and-egg problem.
- Assembler is not used for thunking, somResolve() uses macros and apply/dispatch stubs.
- Some components are just hollow stubs, such as SOMP.
- Some components are not fully functional, eg somossvr.
- You can have both C and C++ header files generated. The choice of 'somcorba' or 'somstars' comes from managing the 'SOMSTAR' macro.
- No security functions implemented.