Python和Jython(JAVA)App之间通过网络进行通信

时间:2011-08-22 03:53:51

标签: java python jython

我将开发一个基于Saas(软件即服务)的应用程序,该应用程序使用将在服务器上运行的python应用程序和将作为jython应用程序运行的客户端GUI。最初我的计划是客户端将在Jython中开发用于原型设计,但是如果应用程序复杂性增加并且取决于jython的性能恶化,我将把客户端完全移植到JAVA。

现在,我想探索一种方法,以便我可以使用Twisted这样的知名工具在服务器和客户端应用之间进行有效的TCP / IP通信。我还在考虑其他选项,如corba和pyro。

基于此,我有这个问题。

python和jython客户端之间最有效的TCP / IP套接字通信方式。我可以在python端使用twisted,在jython端使用java socket api(它们兼容)吗?或者还有其他更好的方法(用于原型设计和RAD目的)吗?

2 个答案:

答案 0 :(得分:2)

我建议使用RPC,而不是通过套接字进行纯TCP / IP通信。

如果客户端很少,并且您不想使用复杂的技术,请使用JsonRPC或XMLRPC之类的东西。 (请注意,Pyro只能在用Python编写服务器和客户端时使用。如果您打算稍后迁移到Java,则应考虑这一点。)

如果性能和安全性在这里很重要(例如,许多客户端同时发送请求,或者您需要SSL连接),请使用Ice之类的内容。我更喜欢Ice而不是Corba,因为它更简单,更现代,但却和Corba一样好(可能更好)。

更新:在我阅读您的评论后,我真的建议您使用Ice。 Ice和Corba以及类似的技术称为ORB(对象请求代理)他们不使用传统的服务器/客户端模型。因此,应用程序中的所有对象都可以相互通信。无论他们在哪里。在这种情况下,您将拥有真正的分布式应用程序。

答案 1 :(得分:0)

你可以使用扭曲,没有错,我建议zeromq。它真的很快,并且使编写网络应用程序变得非常简单。