Python与Jython(JAVA)应用程序之间的通信

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

现在,我想探索一种方法,以便我可以使用一些众所周知的工具(如Twisted)在服务器和客户端应用程序之间进行有效的TCP / IP通信.我还在考虑其他选项,如corba和pyro.

基于此,我有这个问题.

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

最佳答案 我建议使用RPC,而不是通过套接字进行纯TCP / IP通信.

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

如果性能和安全性在这里很重要(例如,许多客户端同时发送请求,或者您需要SSL连接)请使用类似于Ice的内容.我更喜欢Ice over Corba,因为它更简单,更现代,但又更好于Corba (也许更好).

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

点赞