Java与Python的CORBA解决方案
关键词:python corba python高并发解决方案 python java python java 比较 python和java哪个好
因为最近及以后一些项目开发语言和环境逐步要向Java、Python上切,所以过年这几天就花了点功夫研究了一下Java和Python,特别是对它们之间的互操作进行了研究。
由于我在HW从事电信系统开发,用CORBA用得比较多,所以就着重研究了一下两者在CORBA方面的解决方案。
具体来讲,做了以下实验:
实验环境:DUO2330 2×1.6GHz, 2G, WindowsXP SP3, JDK1.6.0, Python2.6/omniORBpy-3.3
第一阶段:
* 用Python/omniORBpy实现CORBA服务端
* 用Python/omniORBpy实现CORBA客户端
* 使用omniNames名字服务器实现Python CORBA服务的发布和调用
第二阶段:
* 用Java/org.omg.CORBA实现CORBA服务端
* 用Java/org.omg.CORBA实现CORBA客户端
* 使用jdk/tnameserv名字服务器实现Java CORBA服务的发布和调用
第三阶段:
* 使用ACE/TAO的nameservice实现Python CORBA服务的发布和调用
* 使用jdk/tnameserv名字服务器实现Python CORBA服务的发布和调用
* 使用Python CORBA客户端调用Java CORBA服务
* 使用Java CORBA客户端调用Python CORBA服务
第四阶段:
* 测试Python CORBA客户端调用Python CORBA服务的执行效率
* 测试Python CORBA客户端调用Java CORBA服务的执行效率
* 测试Java CORBA客户端调用Python CORBA服务的执行效率
* 测试Java CORBA客户端调用Java CORBA服务的执行效率
实验结果如下:
一、解决方案完整性:
* 使用Python/omniORBpy可以无障碍实现服务器、客户端、名字服务器 – OK
* 使用Python/omniORBpy可以正确编译TMF814指定的标准IDL文件 – OK
* 使用Java/org.omg.CORBA可以无障碍实现服务器、客户端、名字服务器 – OK
* 使用Java/org.omg.CORBA可以正确编译TMF814指定的标准IDL文件 – OK
二、互操作性:
* Python/omniORBpy可以正常使用ACE/TAO的nameservice – OK
* Python/omniORBpy可以正常使用jdk/tnameserv名字服务器 – OK
* 使用Python CORBA客户端调用Java CORBA服务 – OK
* 使用Java CORBA客户端调用Python CORBA服务 – OK
三、执行效率:
1、Java客户端调用Java CORBA服务:
69秒/100000次, 1449次/秒
CPU占用率: server=32%, client=27%
2、Java客户端调用Python CORBA服务:
40秒/100000次, 2500次/秒
CPU占用率: server=11%, client=43%
3、Python客户端调用Java CORBA服务:
34秒/100000次, 2941次/秒
CPU占用率: server=35%, client=9%
4、Python客户端调用Python CORBA服务:
11秒/100000次, 9091次/秒
CPU占用率: server=23%, client=18%
四、初步结论:
* Python/omniORBpy和Java/org.omg.CORBA都可以提供CORBA应用解决方案,但从技术完整性和社区资源来看,Java的支持要好于Python。
* Python/omniORBpy开发效率要高于Java,代码更简洁。
* Python/omniORBpy和Java/org.omg.CORBA的互操作性很好。
* 执行效率上Python/omniORBpy明显高于Java/org.omg.CORBA,纯Python/omniORBpy(客户端、服务器都使用 Python实现)效率比纯Java/org.omg.CORBA的效率高627%!—-不知如果使用INOA Orbix或VisiBroker效率会不会明显提升?—-有经验的朋友可以帮忙解答一下这个问题。
说明:以上是我初步的实验结论,因为也是刚接触CORBA不久,所以可能有所偏颇,欢迎各位专家共同探讨!
转载请注明:数据分析 » Java与Python的CORBA解决方案_python培训