使用J2SE1.4开发CORBA程序
Java2的J2SE1.4版本为通用对象请求代理结构(CORBA)引入了许多新的特性和改进。新的特性和改进不仅体现在对标准CORBA规范的修改,而且也表现在对已有特性性能的提高上。一个新添的重要特性就是轻便对象适配器(POA)。
CORBA新特性
早在1990年CORBA就已经成为了分布式应用程序的基础。在十多年来的发展中,很多重要的新特性被逐渐添加入了CORBA 2.2和更新的版本中。新补充的特性中有一个就是轻便对象适配器(POA),它在CORBA 2.2规范中被定义。
轻便对象适配器
直到CORBA 2.1版本,对象管理组织(OMG)在CORBA中定义的唯一标准对象适配器还只有基础对象适配器(BOA),它为创建不同类型的CORBA对象提供了基本方法。但是ORB提供商和开发者都发现BOA在某些方面有些模糊而且没有实现一些他们想要的特性。这使ORB提供商们开发了他们自己的扩充程序,因此在不同ORB实现之间的移植变困难了。新的标准对象适配器即轻便对象适配器(POA),它使开发人员可以创建对象实现,并且能够在不同开发商提供的不同ORB产品间很容易的跨越使用。POA就是在ORB和服务器程序之间的中介程序,如图1所示。
图1 基于POA的请求分派
客户端调用目标对象引用,然后发送请求。ORB获得这个请求后,就将该请求分派给POA,由POA确定目标对象。POA将请求分派给服务端,服务端执行请求并将结果返回给POA,POA再发送给ORB,最终传到客户端。由于一个程序可能会有很多个POA,为了使ORB发送请求至正确的POA,它需要使用对象关键字即标识符,对象关键字作为请求内容的一部分被保存在对象引用中。对象关键字包含了一个重要内容即对象ID,POA使用它来指定目标对象和服务器之间的关联(这种关联可能被保存在映射中)。