CO-LaN Management Board discussed today the request made by the Methods & Tools Special Interest Group to initiate Phase III of the COBIA development project. The request describes the scope and the work programme defined by the Methods & Tools SIG in accordance with the high-level roadmap approved by CO-LaN Management Board in 2016.
The COBIA development project utilizes a phased approach that incrementally adds functionality during each phase. The purpose of Phase I was to develop a prototype to demonstrate proof-of-concept. Phase II provided a runtime and software development kit (SDK) that allows running and development of COBIA-based PMCs and PMEs, for in-process operation on a single machine. The goal of Phase III is to remove these restrictions.
The outcome of Phase III will be the addition of marshaling (the process of transforming the memory representation of an object to a data format suitable for storage or transmission) to the COBIA runtime. Adding marshaling will allow in-process interoperation between different frameworks/languages, and interoperation with out-of-process or remote objects (cloud computing). As such, Phase III will provide language bindings that enable developers to use COBIA middleware with additional programming languages beyond C++ and other operating systems besides Microsoft Windows. Phase III will also make use of the marshaling functionality to log all COBIA calls, including CAPE-OPEN calls, expanding logging beyond the current capabilities of the CAPE-OPEN Logging and Testing Tool (COLTT).
Phase III will be conducted under four separate work packages. The last three work packages can be performed concurrently, with concurrent deliverables. The Work Packages are:
- Marshaler Work Package: the Marshaler Work Package is the initial step in Phase III and consists of developing the marshaling functionality that generalizes interoperability between COBIA-based objects and allows them to interact indirectly through proxies. The deliverables for the Marshaler Work Package updates the COBIA runtime and the COBIA SDK. The product of the Marshaler Work Package is a prerequisite for the remaining work packages.
- Language Binding Work Package: the Language Binding Work Package creates code generators (distributed through the COBIA Software Development Kit) and adapts the COBIA runtime to the targeted languages in order to support COBIA development and execution of COBIA based components. The deliverables for this Work Package will be new versions of the COBIA runtime and of the COBIA SDK that support targeted programming languages. This Work Package builds upon the Marshaler Work Package.
- Remote Computing Work Package: the Remote Computing Work Package extends the marshalers to access objects on remote computers either within an enterprise network or cloud computing environments. The deliverable of this Work Package includes updates to the COBIA runtime and COBIA SDK to support remote computing.
- Logging Work Package: the Logging Work Package modifies the COBIA code generators and/or runtime to allow for logging calls over the COBIA pipeline. The deliverable for this Work Package adds logging capabilities to the COBIA runtime and to the COBIA SDK. This Work Package enables CO-LaN to develop a logging application that can identify and subscribe to desired log-able events.
The selection of programming languages leading to development of suitable bindings considers both the applicability of the programming language to computer-aided process engineering (CAPE) and the ease of developing and maintaining the language binding. The applicability analysis includes feedback from the attendees of the CAPE-OPEN 2020 Annual Meeting (number of participants supporting the choice is listed in parentheses by each programming language). The following is a prioritized list (implementation order) of the programming languages:
- C Application Binary Interface (ABI) (required for Python and FORTRAN) (9)
- Python (15)
- FORTRAN (10)
- Microsoft .NET (5)
CO-LaN Management Board approved the scope given to Phase III and will enter into contractual discussions to put Phase III into motion.