#4092 closed discussion (fixed)
using ZeroMQ messaging instead of CORBA/omniORB?
Reported by: | Owned by: | somebody | |
---|---|---|---|
Priority: | normal | Milestone: | 1.12.0 |
Component: | *unknown* | Version: | |
Keywords: | Cc: |
Description
Hi,
I'm bringing here a question (rather than an issue) that I initially posted at https://github.com/OpenModelica/OMPython/issues/17 but I guess that the main OM Trac is more appropriate.
I was wondering if, in the mid term, there was the idea to *replace the communication channel between the OMC and Python* (and I understand this is in fact the communication between every OM components).
I find the present choice (CORBA/omniORB) to be slightly complicated (1). To be clear, I have zero knowledge of these messaging systems. Only, I know people at IPython were very happy with ZMQ (which they started using when they split the kernel and the front end to make the Notebook interface). Also, Googling for "Corba ZMQ", I found a link to a 2011 study by people from CERN (2). Of course the use case is different, but I just read through the paper and the story is they were looking for a replacement for their existing CORBA infrastructure. ZMQ appeared their best options (many criterions: simplicity, features...).
Now this is just an empty idea since I don't plan to start working on this, but maybe it is a useful suggestion?
best,
Pierre
(1)I mean simple practical issues, especially for OMPython: no pip install, no conda install. For Anaconda, I've found a third party built package at https://anaconda.org/mutirri/omniorb but after installation, I still get an ImportError: No module named omniORB...
(2) http://zeromq.wdfiles.com/local--files/intro%3Aread-the-manual/Middleware%20Trends%20and%20Market%20Leaders%202011.pdf
Change History (8)
comment:1 by , 8 years ago
comment:2 by , 8 years ago
I think it would be best to just use the compiler dll directly from python as we do it in OMEdit.
Then there is no need for IPC (inter process communication) of any kind.
comment:3 by , 8 years ago
That would presumably also help with transitioning OMPython to Python 3 compatibility at some point (hopefully soon).
comment:4 by , 8 years ago
@adrpo: It is a bit hard to use OMC as a DLL from within Python since we use macros and need to set stack base, etc. We'd probably need a pure C interface for:
- Init of an OMC object (created as a separate thread in order to get a stack base, init GC, etc)
- Call exported API functions (for example just executing commands like in CORBA), taking the initialized OMC object
- Freeing the OMC object
comment:6 by , 8 years ago
I'd like to support this request. We also have trouble installing CORBA/omniORB on some Windows PCs.
comment:7 by , 7 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
This is implemented in release 1.12.0, see
comment:8 by , 7 years ago
Milestone: | Future → 1.12.0 |
---|
Thank you for the hint. CORBA is really ancient. It appears worthwhile to investigate alternatives that emerged meanwhile.