OATS: Out-of-proc Application Thermo Server
OATS is an application in which you can load existing CAPE-OPEN version 1.0 or version 1.1 property packages. In turn, these property packages are exposed by the OATS Thermo System (version 1.0) or the OATS Property Package Manager (version 1.1).
Many existing thermodynamic property packages are 32-bit in-process servers. This means that the package is implemented as a DLL that loads into the client application. There is a good reason for this: performance. The communication between in in-proc server and the client application is direct; there is no marshalling layer in between. For out-of-proc servers (implemented as executable or Windows service), the communication between the client application and the property packages is marshalled by the Windows COM mechanism. Considerable performance overhead arises from this.
There are however advantages to running the property package out-of-process. One reason would be stability: if your property package implementation contains an error and causes an exception, this does not terminate the client application. Another good reason is that you cannot load a 32-bit inproc server in a 64-bit client application. So if your client application is a 64-bit application, and you want to access a 32-bit inproc implementation of a property package, OATS can be your middle man.
A 64-bits version of OATS is also available. This can load 64-bit in-process servers. If you want to log interaction between a simulator and a 32-bit CAPE-OPEN component, use the 32-bit version of OATS. If you want to log interaction between a simulator and a 64-bits CAPE-OPEN component, use the 64-bit version of OATS (OATS64).
To get started with OATS, start the application. Then load the property packages you are interested in. You can close the OATS application or leave it running. At this point, you can load the OATS Property Package Manager or OATS Thermo System (depending on whether you are interested in CAPE-OPEN version 1.0 or version 1.1 thermodynamics) into your CAPE-OPEN aware simulation environment.
OATS also contains full logging facilities for by far most CAPE-OPEN version 1.0 and 1.1 interfaces that are exposed and used by property packages (not the Thermo System and Property Package Manager itself however, as these are implemented directly by OATS). So if you are a developer of a Property Package or Property Package Manager or Thermo System, or if you are a developer of an application that uses CAPE-OPEN property packages, OATS will be of great value to you. Just load the property package you are interested in in OATS, enable logging for that package, and load the OATS version into your application. As soon as the property package is created you will be prompted for a log file (*.olg), and as soon as the property package terminates you will automatically be prompted if you want to open the log file.
The log files created by OATS are in XML format. You can double click an existing log file to open it in OATS.
If you have chosen not to install OATS during COCO installation, you will still find OATS.exe in the COCO installation folder. Registration of the OATS objects can be done using:
If you want to remove the OATS registration, you can use:
Registering OATS will also register COULIS.
For OATS and COULIS to properly work, make sure to have the CAPE-OPEN type libraries registered. To do this, download the COM Typelib installer from CO-LaN, or install the type libraries as part of the COCO installation.
- By default, OATS will prompt you for a log file when creating an object that is logged. You can set the log file names to Automatic from the Options menu. Now, logs will appear in an "Oats logs" folder on your desktop. The file name will contain the full time and data of the creation of the log.
- By default, OATS will prompt you to open a log once an object that is logged has terminated. You can turn this off from the Options menu.
- By default, OATS will not log reference counts after QueryInterface, AddRef and Release; you can however enable this option from the Options menu.