我可以推荐你使用Thrift并通过它们建立通信。
节俭为您所需的语言(Java和JRuby)提供了生成器,并提供良好和快速的通信。
更新: Thrift是在Facebook开发的RPC(远程过程调用)框架。详细你可以在Wiki中阅读。
在一些词来节省您的时间,它是什么以及如何使用它:
你来描述数据结构和.thrift文件(文件)服务接口。并从这个文件生成一个或几个语言所需的所有源文件(全部需要序列化)(您需要)。比你可以简单地创建几行服务器和客户端
在客户端使用它会看起来像你只是使用简单的类。
随着节俭,你可以使用什么协议和运输使用。 在大多数情况下,通过Blocked或Not-blocked transport使用Binary或Compact协议。因此,网络通信将以快速序列化的方式轻而快速。
SOAP(基于HTTP上的XML)包,其数量较大,并且不适合发送二进制数据,但不仅限于此。另外XML序列化非常慢。所以使用SOAP你会收到很大的开销。此外,你需要用肥皂写(或使用第三方)lib来呼叫服务器(小型网络层),节俭已经为你做好了。
SMTP和基本上JMS不适合实时和问答通信。 我的意思是,如果您只需要将某些消息放入队列中,某人有时会给出该消息并对其进行处理,那么您可以(也应该)使用JMS或任何其他MQ服务(Thrift可以这样做,但MQ体系结构对此更好问题)。 但是,如果您需要实时查询应答呼叫,则应使用RPC,因为它可以是HTTP(REST,SOAP),二进制(Thrift,ProtoBuf,JDBC等)或任何其他协议。 Thrift(和ProtoBuf)提供了生成客户端和服务器的框架,因此它将您从低级别问题中封装出来。
P.S: 我在过去的https://github.com/imysak/using-thrift(通过Thrift Java服务器+ Java客户端或node.js客户端进行通信)中做了一些示例,可能对某人有用。但是你可以找到更简单更好的例子。
你能不能,请说明一点什么'Thrift'是,可以将其与'soap'或不便进行比较? – ted 2013-02-13 16:38:50
@ted,更新我的回答,我希望它帮你。 – iMysak 2013-02-14 00:19:29