orbas(CORBA实现开源项目)

CORBA/CMIP网关项目


本项目开发一个CORBA-ASN.1协议的双向网关框架(框架的含义是和业务无关),即要能实现运行时CORBA Request/ASN.1 Request的动态转换,而非在编译时实现转换。

此网关要求有较快的速度,本项目的目的是改变采用每个CORBA调用到ASN.1消息硬编码映射的方法,这样具体业务网管的开发人员不需要了解CORBA的细节,不需要考虑针对CORBA的特殊使用方法,就可以直接完成工作(相当于多了一个客户端)。

具体实现方式,可能有如下两种:

1、DSI

重载invoke函数,当gateway得到请求时,查询接口库,将请求动态组装成相应的ASN.1请求。这是一种通行的CORBA/non-CORBA网关实现方式,但我目前还没有发现这样的例子代码,如果各位有此方面的例程,很想一观。

从理论上来说,此方式难度不太大,但性能可能较低。

2、在一个比较低的层次实现

比如,在TAO源代码基础上,将IIOP请求分流,不经过POA Manager和POA,直接转换成ASN.1请求。

此方式的效率应该较高,但难度相对也比较大。

此外,还应当有一个编译器,将IDL文件编译成ASN.1定义(其实,C++定义也可以),同时生成一些mapping信息,以便网关在运行时读取,从而实现动态转换。