Frequently Asked Questions
- Is the ORB written in Delphi?
No. Delphi uses the VisiBroker C++ ORB. Access is provided by Delphi code
contained in the OrbPas33.dll or OrbPas 40.dll file. This approach provides
the Delphi community with the ability to use a fast and stable industry-standard
ORB and avoids the need to develop and maintain a new ORB from scratch.
- How does the Delphi/C++ connection work?
The OrbPas33.dll (or OrbPas40.dll) DLL is a Delphi wrapper round the the C++
Visibroker run time DLL (orb_br.dll). The CORBA objects are created in the
C++ ORB in the same way as they would be for a pure C++ client and a proxy
for the object is maintained on the Delphi side. When a method is invoked
on the proxy from a Delphi executable the proxy in turn invokes the same method
on the C++ object.
- How fast is this ORB?
The wrapper classes impose some overhead but the Delphi ORB still achieves
a performance comparable to that of the unwrapped C++ ORB. Initial tests indicate
an overall performance within 10% of the C++ ORB.
- Why do I see COM-style code when it is supposed to be CORBA ?
The code that implements Delphi CORBA access both in Delphi 6 and in this
implementation has a COM-style appearance but this is superficial. The use
of COM QueryInterface, AddRef and Release is for object reference counting.
By way of an example, the TCorbaObject class definition has a COM-style with
a QueryInterface, AddRef and Release methods and a GUID. Under the covers
the TCorbaObject implementation substitutes custom calls in place of the operating
system COM calls.
- How does the garbage collection work ?
The garbage collection is done with reference counting. Note, however, that
when a client sets a stub to nil, the runtime will not reduce the reference
of the associated skeleton on the server side.
- Is it thread safe ?
Yes and there is no need to call CoInitialize at any time.
- What goes over the wire?
The on-the-wire stuff is handled by the C++ ORB and is industry standard IIOP.
This ensures full compatibility with the VisiBroker Java and C++ ORBs as well
as with IIOP-compliant ORBs from third parties.
- What is the long term goal ?
The intention is to provide interfaces and implementation classes for all
of the main classes in the Visibroker for C++ implementation. The OrbPas33.dll
and OrbPas40.dll DLL links in the Visibroker for C++ DLL and provides wrappers
around the C++ calls. With this release, Delphi has a pretty feature rich
set of CORBA capabilities.
- What about SSL?
No support is planned right now.
- Will a Delphi Client work with GateKeeper ?
The GateKeeper is intended for use with the VisiBroker Java ORB. It does not
work with the C++ ORB and so does not work with the Delphi ORB either.