en:docs:tk:som

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

  1. IDL compiler is a C++ program rather than a SOM based framework. This solves a chicken-and-egg problem.
  1. Assembler is not used for thunking, somResolve() uses macros and apply/dispatch stubs.
  1. Some components are just hollow stubs, such as SOMP.
  1. Some components are not fully functional, eg somossvr.
  1. You can have both C and C++ header files generated. The choice of 'somcorba' or 'somstars' comes from managing the 'SOMSTAR' macro.
  1. No security functions implemented.