WPS
The WPS is based on SOM the System Object Model. SOM allows access objects across various processes (including processes on remote machine) via DSOM classes, an implementation of an ORB compatible with an older (version 1.1) CORBA specification (remember SOM wasn't updated for quite a while. At hobbes exists newer SOM implementation, but some ppl reports problems with it). There's a lot of fuzz about how advanced the WPS is because it uses CORBA etc. bla bla. In fact most of the features of the WPS don't need a fully CORBA compliant ORB and more important don't use it. While Distributed SOM (DSOM) is coming with OS/2 the WPS seem to use only local SOM.
Note: It is possible to use DSOM for WPS objects access. You need to start WPS DSOM server first.
While it's possible to query, load, unload and replace SOM classes on demand during program execution the WPS usually builds its class tree during initialization. Thus class replacement requires a WPS restart. Note that adding of classes can still be done without a restart. Saying this that doesn't mean you never can replace a class during runtime. It's always possible to bend the borders with some serious hacking but there's no general API for that.
Prerequisites
- SOM compiler - Contained in the OS/2 toolkit which comes with your commercial compiler or eCS.
Or at http://hobbes.nmsu.edu/pub/os2/dev/wps/somobjtk.zip or at http://hobbes.nmsu.edu/pub/os2/dev/wps/opendc12.zip
- C compiler - Visual Age 3.08
Or any C/C++ compiler. Open Watcom was tested for easy tasks and all worked fine. There was an article in a german magazine quite a while ago with an example using EMX.
- For other programming languages (Pascal,... ) you need to write an emitter for the SOM Compiler which creates the necessary binding files.
Programming
- Short overview how WPS programming works in general.
- Tutorial for a simple WPS class.