-
2008-09-10
corba and jacorb tips - [工作学习]
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://jimsu.yourblog.org/logs/3032330.html
最近在学习和使用corba做一些开发。虽然corba已经经历了数十年,但对于我来说还是一片空白。
在做数据集成,尤其是电信行业中,corba应用非常广泛。最近我做的一个项目就是要为电信软件集成提供服务,通常为第三方提供开放接口的方式很多,比如corba,JMX,XML,web service等。一般电信运营商会要求你优先实现corba的接口。
经过这一阵的学习和实践,总算有了些体会,不过老大说有人用corba两三年,对里面的东西还是一知半解,看来需要静下心来好好研究一番。
我们使用的JacORB,它能很容易集成在java application中。(TAO比较适合在C++ Application中使用)虽然源于大学项目,但经过这些年的发展和考验,市场对其评价还是不错的,不过只有在真正使用中才会发现很多问题。
在此,记录一下遇到的一些问题,呵呵。
jacorb source project按照其提供的guide貌似无法编译通过(jdk1.6)java+corba最好的开发工具就是: eclipse,ant,ORB Studio
java+corba编程最好的参考书: java programming with corba,3rd edition, JacORB23ProgrammingGuide.pdf, corba 3.0/3.1规范+omg corba行业规范哪里有较好的IDL例子作为参考?
re: 建议参考omg corba行业规范中提供的idl,或者学习Adventnet webnms corba northbound tutorial提供的idl.哪里有较好的corba代码例程?
re: jacorb/demo里面真的不错。如何给name service指定固定端口? re: #ns -DOAPort=12345
ns使用的udp.
调用者如何找到ns? re: 使用corbaloc::1.2@x.x.x.x:ns_portnum/NameService字符串。
ns的端口号可以通过#dior -f d:\NS_Ref来查看,也可以通过lsns来测试一下ns是否正常启动。如何给notification service指定固定端口? re: #ntfy -port 22222
notification service使用的是tcp.
调用者如何找到ntfy? re: 使用corbaloc::x.x.x.x:ntfy_portnum/NotificationService字符串。
可以通过lsns来看哪些EventChannel, Interface被创建了。
启动ntfy如果找不到类的错误,你需要修改ntfy, ntfy.bat将jacorb/lib下的jar加入到classpath中。很多书籍和网上都举例使用orb.resolve_initial_references(xx)来获取一个引用,但实际上往往会失败,建议改为orb.string_to_object(xx);
notification与event是兼容的,只是提升了更多的功能,比如filtering, Qos, structured event..., 所以还是使用notification比较好。
poa很复杂,其配置策略也非常多,建议参考vbdevelopers_zh_visibroker里面的描述,不过这些与orb的实现支持程度有关。
如何将代码在不同的ORB中移植?
re: 只要在初始化orb时,将ORBClass,ORBSingletonClass属性参数替换成其他ORB提供的类名即可,当然jar也是需要的。随机文章:
Great Adobe and FMS 2008-08-26ClassLoader学习使用 2008-01-09新版本终于交付了,一点感受 2007-03-27work daily 2006-07-07redhat在嵌入式平台上的应用 2006-01-20
收藏到:Del.icio.us






评论