The Methods & Tools Special Interest Group of the CAPE-OPEN Laboratories Network (CO-LaN) held a conference call on July 13, 2017 to address the persistence mechanism provided in COBIA. Bill BARRETT (U.S. Environmental Protection Agency), Jasper van BATEN (AmsterCHEM), Michael HLAVINKA (Bryan Research & Engineering) and myself attended this call.
Starting from comments provided by Michael HALLORAN from the Interoperability Special Interest Group of CO-LaN, the motivations for the solution proposed were discussed and developed.
From the start the CAPE-OPEN standard did not develop its own persistence mechanism. Take a look at the document describing persistence and you will find that it relies solely on COM persistence. Since COBIA is out there to replace COM in whatever it is used for CAPE-OPEN, COBIA needs to develop its own persistence strategy. CAPE-OPEN imposes that any PMC implements at least one of the following COM persistence interfaces: IPersistStream or IPersistStreamInit. But any PMC may also implement other COM persistence interfaces and these may match (or not) the persistence strategy applied by a given PME. So a PME typically tries first its preferred persistence strategy by asking a PMC if it supports it, then falls back on either IPersistStream or IPersistStreamInit if its preferred persistence interface is not there. That leads to some complexity on both sides. Since COBIA is meant to simplify the implementation of CAPE-OPEN, it appeared a bad choice for COBIA to just reproduce the same persistence arrangement as with COM. Better go for a single persistence mechanism. But this is obviously debatable.
It is worth pointing out that the single choice made for COBIA in terms of persistence is not supposed to impact existing COM PMEs and PMCs. COMBIA is there to make interoperabilty work in terms of persistence. A COM PME will be able to persist a COBIA PMC since the COM persistence interface, either IPersistStream or IPersistStreamInit, sought after by the PME on the COBIA PMC, will be present in COMBIA and capable to translate into the COBIA persistence mechanism. So a COM PME won't need to be modified regarding persistence. Same for the other way round.
Next comes the persistence technology chosen by COBIA. COBIA is developing a persistence mechanism which will lead to human-readable persisted data. It seems the proper way to ensure that over time persisted data is still accessible. So a COBIA PMC will provide to a COBIA PME its object data in a serialized form. The COBIA PME will then execute its flowsheet persistence in any way it thinks fit. But at least COBIA won't prevent the whole flowsheet persistence to be in a human-readable form.
You are welcome to provide feedback on the above general motivations. More details will be provided later on.
July 13, 2017 conference call
A new object model, the CAPE-OPEN Binary Interop Architecture (COBIA), has been proposed as a next step in the evolution of CAPE-OPEN. COBIA will include registration components, binary interoperability standards, and middleware that acts as a bridge between software components. Development of COBIA involves a number of tasks, grouped in phases, which can be performed incrementally. This memo is intended to describe these tasks, and provide an overview of the implementation process.
Return to “COBIA: CAPE-OPEN Object Model”
Jump to
- General
- ↳ Howto
- ↳ Process modelling and simulation
- Process Modelling Components
- ↳ ChemSep Property Package
- ↳ ChemSep Unit Operation
- ↳ COUSCOUS Unit Operations (AmsterCHEM)
- ↳ FlowExchange Unit Operation (AmsterCHEM)
- ↳ MATLAB Unit Operation (AmsterCHEM)
- ↳ Microsoft Excel Unit Operation (AmsterCHEM)
- ↳ Python Unit Operation (AmsterCHEM)
- ↳ REFPROP Property Package Manager (AmsterCHEM)
- ↳ Scilab Unit Operation (AmsterCHEM)
- ↳ TEA Thermodynamic server (AmsterCHEM)
- Process Modelling Environments
- ↳ Aspen Hysys (Aspen Technology Inc.)
- ↳ Aspen Plus (Aspen Technology Inc.)
- ↳ COCO (AmsterCHEM)
- ↳ DWSIM
- ↳ gPROMS (Process Systems Enterprise Ltd)
- ↳ Microsoft Excel Thermo Import (AmsterCHEM)
- ↳ Open Modelica
- ↳ PetroSim (KBC Advanced Technologies plc)
- ↳ PRO/II (AVEVA)
- ↳ ProSim Plus (ProSim SA)
- ↳ Python Thermo import (AmsterCHEM)
- ↳ Scilab Thermo import (AmsterCHEM)
- ↳ UniSim Design
- Implementation and development
- ↳ Distribution and installation
- ↳ Process Modelling Components
- ↳ Thermodynamic components
- ↳ Unit Operations
- ↳ Process Modelling Environments
- ↳ CAPE-OPEN Binary Interop Architecture
- CAPE-OPEN Interface specifications
- ↳ Common interfaces
- ↳ Parameters v1.0
- ↳ Business interfaces
- ↳ Thermodynamic v1.0
- ↳ Thermodynamic v1.1
- ↳ Unit Operations v1.0
- ↳ Flowsheet Monitoring
- ↳ Custom Data
- Activities of Special Interest Groups
- ↳ Methods & Tools SIG
- ↳ COBIA: CAPE-OPEN Object Model
- ↳ Flowsheet Monitoring
- ↳ Reporting Common interface
- ↳ Interop SIG
- ↳ Thermo SIG
- ↳ UNIT SIG
- Dissemination actions
- ↳ CAPE-OPEN 2019 Annual Meeting
- ↳ CAPE-OPEN 2018 Annual Meeting
- ↳ CAPE-OPEN 2017 Annual Meeting
- ↳ CAPE-OPEN 2016 Annual Meeting
- ↳ CAPE-OPEN 2013 Annual Meeting
- ↳ CAPE-OPEN 2012 Annual Meeting
- ↳ AIChE 2013 Annual Meeting
- ↳ AIChE 2012 Annual Meeting
- ↳ ICheaP-11
- ↳ ECCE-9
- News