📄 faq.htm
字号:
<!-- Generated by HomePage Publisher - Version 2.1 Level(B) -->
<!-- Most recent revision: November 14, 1999. -->
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="HomePage Publisher">
<META NAME="HPP" CONTENT="V=2.1 L=B ECP=1004 DCP=850 LID=1-86">
<TITLE>Inprise Delphi CORBA Support - Frequently Asked Questions</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000C0" VLINK="#AE00AE" ALINK="#FF007F">
<BASEFONT SIZE=3>
<H1>Frequently Asked Questions</H1>
<P ALIGN=JUSTIFY>
<OL TYPE=1>
<LI> <b>Is the ORB written in Delphi?</b><BR>
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.
<P ALIGN=JUSTIFY>
<LI> <b>How does the Delphi/C++ connection work?</b><BR>
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.
<P ALIGN=JUSTIFY>
<LI> <b>How fast is this ORB?</b><BR>
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.
<P ALIGN=JUSTIFY>
<LI> <b>Why do I see COM-style code when it is supposed to be CORBA ?</b><BR>
The code that implements Delphi CORBA access both in Delphi 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.
<P ALIGN=JUSTIFY>
<LI> <b>How does the garbage collection work ?</b><BR>
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.
<P ALIGN=JUSTIFY>
<LI> <b>Is it thread safe ?</b><BR>
Yes and there is no need to call CoInitialize at any time.
<P ALIGN=JUSTIFY>
<LI> <b>What goes over the wire?</b><BR>
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.
<P ALIGN=JUSTIFY>
<LI> <b>What is the long term goal ?</b><BR>
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.
<P ALIGN=JUSTIFY>
<LI> <b>What about SSL?</b><BR>
No support is planned right now.
<P ALIGN=JUSTIFY>
<LI> <b>Will a Delphi Client work with GateKeeper ?</b><BR>
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.
</OL>
</BODY>
</HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -