CORBA技术及在Delphi中的实现(四)

日期: 2007-12-27 作者:秦志强 来源:TechTarget中国

  2、 Implementation Reposity

  Implementation Reposity用来存储有关服务器的信息,这样服务器才能自动被Smart Agent启动,尤其是Implementation Reposity含有有关服务器的名字及用来找到它的可执行程序的路径信息。

  当一项叫做OAD(即Object Activation Daemon)的CORBA服务器需要启动一个服务器时,OAD可以通过查看Implementation Reposity,并执行其中的文件来给服务器定位。换句话说,Implementation Reposity中存储着服务器的路径、可执行文件名及其他一些相关的信息,如果该服务器并未运行但却已在Implementation Reposity中注册过了,那么Smart Agent可以请求OAD来启动它。

  五、 在Delphi中使用CORBA

  为在Delphi中使用Corba技术,首先要创建服务器和客户,然后在此基础上创建各类实用程序。服务器和客户程序创建如下:

  1、 服务器的创建

  创建CORBA服务器所需的步骤如下:

  1)、创建一个标准的应用程序并保存到自己的目录中。在该目录下建立两个附加子目录,一个叫Client,另一个叫Server。

  2)、选择New File,转到multitier页面,选择CORBA Object。当提示为对象取个名字的时候,应叫它CorbaTestObject,而让其他所有设置都处在默认的状态。

  3)、打开Type Library Edit建立一个叫GetName的方法,它是IcorbaTestObject的一部分,小心别把它加到根上(Project Name).在此处编辑器是不允许一个方法加入的。

  4)、该方法的返回类型应该是一个WideString。在Parameters页面的靠近顶端处设置它,这个方法的COM IDL是:HRESULT_Stdcall GetName([out,retval])BSTR *Name).而Delphi的声明是:Function GetName:WideString[dispid$00000001];safecall;这个方法自动说明为Safecall,但这在Type Library Editor中可能不太明显。

  5)、单击Refresh按钮来产生方法的代码。完成这个方法的实现代码,让它返回一个对象名字的字符串。

  6)、存盘,执行一次该程序。到这一阶段,该应用程序必须提前运行,否则客户就无法访问它。

  2、 客户程序的创建

  建立一个客户应用程序的步骤:

  1)、启动一个正规的应用程序

  2)、将由服务器创建的XXX_TLB.pas文件加到主窗体的uses子句中,然后再把CornInit也加到uses子句中。

  3)、创建一个按钮响应方法。

  4)、从XXX_TLB.pas文件中获得CreateInstance的调用,并将它复制到按钮响应方法中,去掉无关的存储单元,保存其返回的类型。

  5)、声明一个叫FcorbaTest的局部变量,它是属于对象返回的类型,在此处便是ICorbaTestObject,将从TLB中复制来的函数的返回值赋给它,将你所选择的任何字符串输送给CreateInstance.

  FcorbaTest:=TcorbaTestObjectCorbaFactory.CreateInstance(‘CorbaTest’);

  6)、写一段代码从对象实例中调用方法,该对象实例是从TLB中复制的函数中返回的。

  7)、确定Smart Agent已启动,然后启动服务器与客户应用程序,接着调用服务器所定义的方法(注:除非正在使用OAD,否则要明确启动服务器与客户应用程序,因为它是不会自动启动的)。

  四、结束语

  CORBA通过ORG机制为远程对象的激活提供了基本机制,而不管实现这些对象所使用的平台和技术,而且CORBA还为对象管理提供了一组对象服务,如名字服务、事件服务、事物处理服务及永久对象服务等。因此该技术为分布式应用的开发提供了强有力的支持,具有广泛的应用基础。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐