Ben Hutchison wrote:
I see 2 basic strategies for interop between .Net and Java:

1. Bytecode conversion
> ...
Although you can convert the bytecode over, its in large part both
framework's libraries that make them useful. To utilize these also
requires a mapping of the basic platform facilities of one API set to
the other. Eg. a Java String gets converted to a .Net string, a Class to
a Type, etc. One can compile the pure C# or Java components across
format using bytecode conversion, but the native libraries they rest
upon need to be recreated.
Yes, recreation of the libraries would be the most time consuming part of the job... IMHO.

2. Remote call interoperability ("Bridging")

The ability to make remote calls using object types between the two
systems. A brief search of the web shows several companies developing
this type of tech; eg www.jnbridge.com.

The first challenge here is to find a suitable common wire protocol. At
present, there is SOAP (Web Services), but it is weak in both
performance and sematics.
Don't think you want to use SOAP for such a bridge: As you stated it's simply too slow. In a research project I participated we've seen latency times for _simple_ local SOAP calls of 10ms on 1.7 GHz machine -- Maybe ok for a more sorphistcated way of integration CGI-like stuff. Otherwise just yet another buzzword.

> ...
The bulk of data flowing down a remote call socket is serialized
objects. Developing a common mapping between Java and .Net object data
is a difficult piece of remote call level interop, a problem similar to
Objects By Value in CORBA.
I know of some very capable CORBA hackers actively participating in OMG at my institute. They are doing fancy stuff like streams over CORBA and such. Quite sure that they have really efficient design patterns for this problem. ;-)

(c) Complex pass-by-value objects which likely as not have no
representation in the other framework; imagine sending eg a
javax.swing.JButton to .Net (remember it cant instatiate it directly as
.Net doesn't understand the Java class definition). How is .Net going to
handle this piece of data?
Bad example: Why would you like to transport something complex like a JButton by value? Method invokation on this object per reference would be natural and works like perfectly...

While I don't think there's a *general* solution for (c), it can be
imporved by building a mapping for a wide variety of common Class-Type
pairs.
I only see the need of recreating the interfaces of the referenced objects by using reflection mechanisms. From my understanding of the .NET technology it should be possible to teach C# late binding if this is possible for VB.Net already...

Since this is a .Net focused list, I guess there is greater interest in
making Java work with .Net than the other way round.
At least for Java on Windows it should be easy to integrate .Net objects into Java applications: .NET objects on windows automatically are COM objects. Java on Windows is capable to instanciate COM objects... Something I doubt is the assumption you could have Java objects in .Net apps without being able to create .Net objects in Java apps....

> Therefore,
obtaining or producing some specification of the Remoting binary
protocol seems a critical early step. This may mean reverse-engineering
it from the shared source CLI.
I strongly double Rotor's license allows this. The the statement about this on http://go-mono.com/.

Alternately, I think Daniel Morgans idea of a CORBA channel has merit;
Java already has excellent support for CORBA, and this sidesteps the
need to develop wire protocol code.
I don't see CORBA just as an alternative. In my opinion providing CORBA support in Mono would be the most valuable solution:

a) CORBA support has some value per se (crossplatform,
accepted standard, ...).
b) Java already has good CORBA support, so we only would have to
build the other end of the bridge.
c) Having CORBA support in Mono would speedup Bonobo integration
of Mono and therefore would improve GNOME integration of
Mono.

The main question to work out about this: Does the OMG have defined CORBA bindings f�r CIL already? Or does Microsoft have defined some? Or is there at least a working group in the OMG working on this issue?


Ciao,
Mathias


_______________________________________________
Mono-list maillist - [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list


Reply via email to