Object-identity and lifecycle in the CORBA-UNO bridge



Hello,

as you may remember, I am working on a bridge between the ORBIT and UNO, 
the OpenOffice component model. I have updated the earlier introduced 
UNO-CORBA bridge document.

http://udk.openoffice.org/common/man/concept/uno_corba.html
(make sure to hit the reload once)

It now contains some thoughts about how to solve the following problems

- oneway calls
- object lifetime
- object identity
- thread identity
- connection managment

I would appreciate any comment on this. Please also tell me, if there 
passages that are impossible to understand.

The possible solutions I have pointed out should work with a common CORBA 
ORB. However, I am now interested in whether there can be found a better 
solutions for the GNOME orbit, so I have some direct questions, which you 
hopefully can answer easily.

A) COM::SUN::STAR::UNO::XINTERFACE <-> GNOME::UNKNOWN
- The semantic of the queryInterface() in UNO is very strong (almost 
identical to the definition in COM). I would like to know, if the 
semantics in BONOBO are the same so that we can map the 
UNO-queryInterface to the GNOME query_interface.

1) If queryInterface on a specific object has once returned a valid 
interface reference for a given type, it must return the valid reference 
for any successive queryInterface call with the same type. 

2) If queryInterface on a specific object has once returned a null 
reference for a given type, it must always return a null reference for 
the same type. 

3)If queryInterface on a reference A returns reference B, queryInterface 
on B for Type A must return interface reference A or calls made on the 
returned reference must be equivalent to calls made on reference A. 


B) ONEWAY CALLS
- Does ORBIT guarantee the sequence of oneway calls ( this meeans is it 
guaranteed that successive oneway calls on an object reach the callee in 
the order the caller sent them. The CORBA specification explicitly denies 
this. ). If this is not the case, we have to make all oneways on UNO 
interfaces synchron, because UNO interfaces rely on that.

C) OBJECT LIFETIME
- For the GNOME::Unknown interface, is there any special treatment in the 
ORBIT runtime ?
- If not, what is your politic of calling ref() and unref(), taken the 
example from my document (the sequence diagrams) ?
- Is there a different treatment for oneway calls, that pass on object 
reference ?

Greetings, Joerg




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]