Embedded COM using Python + Remote OLE Automation?
Dennis E. Hamilton
infonuovo at email.com
Fri Mar 3 20:01:10 CET 2000
That has been done with a Java Gateway. I will dig out where I ran across
that and follow up.
You don't need any Microsoft software to honor the COM interface model. It
is the registry and COM SCM (System Control Manager, I think) that create
porting/exporting difficulties with regard to creating COM clients and COM
servers, especially COM servers.
The honoring of automation first is also a good principle. There are some
exotic things that come up around MTS and DCOM though, in addition to
creating the equivalent of exceptions in the face of multi-threading. I
think it would be cool to be able to interoperate with DCOM and MTS without
having to replicate it. More of a coexistence approach, and that seems
consistent with your idea.
From: python-list-admin at python.org
[mailto:python-list-admin at python.org]On Behalf Of Warren Postma
Sent: Friday, March 03, 2000 09:30
To: python-list at python.org
Subject: Embedded COM using Python + Remote OLE Automation?
Between two windows machines, COM and DCOM is ubiquitous. On non-MS
platforms, as well as on embedded systems, the traditional approach involves
a gateway [example: CORBA to COM gateway]. What about a third alternative?
It may be possible, without benefit of the source code to COM and DCOM, to
construct a service for any non-windows Python-supported-platform to let it
talk to any Automation interface on any Windows platform, or indeed, to
provide it's own automation interfaces, callable from Microsoft. Get me
here? I'm talking about doing at least the slower and more "script oriented"
IDispatch level of COM over a network, from the ground up. Now that sounds
hard, doesn't it?
First, the ground rules I can think of:
- Implementing my own RPC and/or DCOM is out.
- I have a ws2_32.dll emulation layer that is winsock-compatible
- I have a subset of the core Win32 API to work with.
- I'd rather not do a "gateway" if I can avoid it.
Why Not Do a Gateway:
More information about the Python-list