Provided below are the distribution packages made available as deliverables of the COBIA development project at end of its Phase 2 and subsequent maintenance releases. Current version is following distribution constraints apply:

  • CO-LaN distributes its software using Windows Installer version 5.0 packages. The distribution packages are either installation packages (MSI) or merge modules (MSM) that can be included in third-party MSI installers distributed by software vendors. Windows Installer 5.0 is only supported on Windows 7 and newer.
  • COBIA will not run on Windows XP and older.
  • CO-LaN only provides support for COBIA in versions of Microsoft Windows that are currently supported by Microsoft.

The zipped archive contains three merge modules pertaining to the COBIA redistributable runtime:

  • COBIA Runtime Common: Windows Installer merge module
  • COBIA Runtime x86: Windows Installer merge module for 32-bit architecture
  • COBIA Runtime x64: Windows Installer merge module for 64-bit architecture

The redistributable runtime consists of middleware components that will be installed on the end-user’s computer during installation of Process Modelling Environments (PMEs) and Process Modelling Components (PMCs) developed by the software provider. The COBIA redistributable runtime is intended to be distributed with and utilized by third-party software. An installation package that deploys the above mentioned merge modules is made available separately.

The source code of COBIA middleware is not released but the symbol tables for all released binary code are available on a dedicated symbol server.

The Software Development Kit (SDK) is provided as a stand-alone installation package which distributes a set of components and tools that are used by the software developer to create software that utilizes COBIA. The SDK includes tools to compile the source code of interfaces developed using the COBIA Interface Definition Language (IDL).

Version (October 22, 2021) includes the addition of Flowsheet Monitoring and Custom Data interfaces, updates to installation packages to facilitate their inclusion in third-party installers, along with several minor bug fixes performed as part of active maintenance of COBIA and identified during the development of COBIA Phase III. The following tickets provide descriptions of the issues addressed by this release:

  • Ticket 21: information missing on code generators. Resolved by adding a developer's command prompt, which is a normal command prompt that has the code generation binary folder in the path, as a short cut link from the start menu. Also added a comment in the box that opens to show how to get the help for both cobiaregister.exe and COBIA_CodeGen.exe.
  • Ticket 30: description of components missing within custom installation of COBIA SDK.
  • Ticket 31: dialog on license missing from COBIA runtime installers.
  • Ticket 63: support for Flowsheet Monitoring and Custom Data in COBIA Phase II. An example implementation of a Flowsheet Monitoring PMC was added.
  • Ticket 76: the current custom action by the COBIA SDK installer attempts to make a short path name, and sometimes this will result in a long path name nevertheless. Was decided to not change the COBIA_INCLUDE environment value to be a short path name, remove the custom action that does so and remove the custom action DLL. Visual Studio users will not likely be affected. For other compilers, worst case scenario is that the COBIA_INCLUDE is not supported as it contains spaces and the developer will have to manually provide the right include folder.
  • Ticket 81: BasicCapeCollection? missed assignment and construction from CapeInterface?.
  • Ticket 82: when a COBIA object is exposed to COM via COBIA, a wrapper is placed around the object. If a COBIA object is passed as an argument to COM, through a COMBIA call, this object is also wrapped by a COM object. In this scenario, there are two COM objects created for the same COBIA object, and they are therefore observed from the COM side as two different objects. The solution to the multiple COM wrapper creation is to keep a table of COM wrappers that are currently alive, index by unique ICapeInterface pointer. Any COM wrapper created is added to the table, any COM object deleted is removed from the table. If a COM pointer is requested, the table is checked. All of this is shielded by a mutex specific to this table.
  • Ticket 83: added assignment operators, fixed return type of assignment operators, fixed missing byte swap in assignment from Windows GUID to ExtCapeUUID.
  • Ticket 84: ICapeError was not a valid type in the IDL according to COBIA, so that errors could not be passed via IDL defined interface in their original form.
  • Ticket 87: command line code generater raised an error in case a name space was specified for a new class. It should raise an error in case a namespace is specified for any function except creating a new class.
  • Ticket 88: std::iterator class template (used as a base class to provide typedefs) is deprecated in C++17. Fixed by providing publicly accessible typedefs named iterator_category, value_type, difference_type, pointer, and reference.
  • Ticket 90: registrar component did not release registry writer and reader interfaces in all cases.
  • Ticket 91: Parser component did not check for null pointer in smart pointer assignment.
  • Ticket 92: COBIA IDL parser crashed on invalid parse data (such as text outside of the main library). In addition the parsed IDL file was not closed.
  • Ticket 93: some ICapeString methods were invalidly saying in their comment that the length included the terminating null character.
  • Ticket 94: /*in*/ annotation was missing on UUIDs in automatically generated code.
  • Ticket 95: redundant namespace was used in code generated files.
  • Ticket 96: Current-user PMCs failed to create on wine.
  • Ticket 98: error messages were not formulated properly in IDL parser as a result of multi byte string to wide string conversion issues.
  • Ticket 99: some methods in data wrappers did not initialize the return variables in case of an error return, leading some compilers to complain.
  • Ticket 100: generated wrapper code passed output interface wrappers by value instead of reference. This was not obvious in the generated code, as in case of the CAPE-OPEN 1.2 interfaces, all functions that return an interface return it as [out,retval] and the problem only occurs for interfaces that are returned as [out].
  • Ticket 101: in expectation for COBIA Phase III, allow createInstance to accept CapePMCCreationFlag_AllowRestrictedThreading.
  • Ticket 102: the explanation about the selection of COBIA header files carries a typo. Instead of “Requires for any C++ based COBIA development” should be “Required for any C++ based COBIA development”.
  • Ticket 107: Water PP example throwing string rather than cape_open_error.

Version (July 15, 2021) resolves two issues of major relevance:

  • Ticket 72: Change COMBIA threading model for COM registration
  • Ticket 73: Thermo consumption component CATIDs added

Version (June 11, 2021) resolves two issues of major relevance:

Version (April 23, 2021) resolves especially two issues located in COMBIA:

Version (April 12, 2021) resolves several issues found when exercizing COBIA:

  • Ticket 53: Incorrect SDK registration entry in VBS script
  • Ticket 55: Error in constructor of CapeStringAdapter?
  • Ticket 56: Broken get_reports in COMBIA's unit operation wrapper
  • Ticket 57: Failure to register x64 COBIA PMC as COM component for all users
  • Ticket 58: Uninitialized BSTR in COMBIA string parameter
  • Ticket 59: Crash in COMBIA for empty arrays in VARIANT data wrappers
  • Ticket 60: COMBIA incorrectly stores boolean as integer

Version (March 18, 2021) resolves mainly issues related to deployment:

Version (March 15, 2021) adds mainly transitioning between COM and COBIA to the functionalities covered so far in COBIA. Version resolves tickets:

  • Ticket 46: COBIA Ideal Thermo package edit box does not show
  • Ticket 49: ThermoClientTestPME incorrectly persists array of integers
  • Ticket 50: Persistence transition

Version (February 24, 2021) resolved tickets pertaining to COBIA distributed components:

  • Ticket 32: COBIA_CodeGen.exe cannot locate SDK
  • Ticket 33: Typo in license notice with COBIA SDK installer
  • Ticket 34: Title given to text on license notice
  • Ticket 35: COBIA should link to static MSVC runtimes
  • Ticket 37: Crash on obtaining temp-dependent property list in WaterPP
  • Ticket 38: Invalid response from GetPhaseInfo? in WaterPP
  • Ticket 39: Crash on saving package from test PME
  • Ticket 40: PMC registration fails for all users
  • Ticket 44: Fix to PMC self-registration for all users in header files