Thermo Special Interest Group met on October 18, 2022 from 10 am till noon.
- Progress the Manager interface specification
AmsterCHEM (represented by Jasper van BATEN), BASF (represented by Sergej BLAGOV), University of Cape Town (represented by Klaus MÖLLER), Michel PONS (Consultant as Chief Technology Officer), apologies received from KBC (represented by Richard SZCZEPANSKI).
As described in the presentation made by the Thermo SIG at the CAPE-OPEN 2022 Annual Meeting, the Manager Common interface, i.e. ICapeManager, provides for three ways to make available to a PME (Primary Modelling Environment) a Primary Process Modelling Component (PMC) as an object.
One of these ways is to de-persist a Primary PMC Object using the data previously persisted by this object. So far, the PME, by invoking CreateFromPersistence on the ICapeManager interface implemented on the Manager, was passing to the Manager a pointer to the persistence object containing the data persisted by the Primary PMC Object. Next the Manager was returning to the PME a pointer to the Primary PMC Object once de-persistence had occurred. So the returned Primary PMC Object was de-persisted, and it was left to the PME the task to request the Primary PMC Object to initialize itself (PME calling ICapeUtilities::Initialize implemented on the Primary PMC Object).
This workflow called for a major difference on the PME side between what the PME is doing for a stand-alone Primary PMC Object and what it is doing for a Primary PMC Object created through a Manager. To de-persist a stand-alone Primary PMC Object, the PME figures out (through various queries) which is the persistence interface implemented on the Primary PMC Object the PME has instantiated, then calls the method Load on this interface before invoking ICapeUtilities::Initialize implemented on the Primary PMC Object. With the design presented at the CAPE-OPEN 2022 Annual Meeting, the Manager was given the role to de-persist the Primary PMC Object it had instantiated, using the reference to the persistence interface passed by the PME.
By making the Manager return just an un-configured Primary PMC Object, and leaving the task of de-persisting the returned Primary PMC Object to the PME, what refers to persistence and de-persistence is completely left on the PME side, where it is already readily implemented for any Primary PMC object. It appears as a more simple workflow for both the PME and the Primary PMC Object created by a Manager.
So there is no more a CreateFromPersistence method on ICapeManager but a CreateForLoad method. This new method has no argument. As was the case for CreateFromPersistence, CreateForLoad returns an interface to the Primary PMC Object that has been instantiated by the Manager.
A few comments remaining in the document have also been tackled. Apart from some additional formatting, the document containing the specification of the Manager Common interface has apparently reached the point where it can be handed over to the Methods & Tools Special Interest Group for review and hopefully adoption.
Next meeting of Thermo SIG is scheduled for October 25, 2022.
Any CO-LaN Member interested in the Thermo SIG activities is welcome to join this Special Interest Group. Contact the co-leaders of the SIG for further information: Sergej BLAGOV at BASF () and Jasper van BATEN at AmsterCHEM (). The Thermo SIG is looking for additional parties, well versed into any aspect of thermodynamics applied to process simulation and willing to contribute to the maintenance and development of CAPE-OPEN interface specifications related to thermodynamical aspects.