我们打算设计一个具有三个“层”的系统。如何在此系统内通信?
- HQ,单个服务器
- 许多 “节点” 的区域基础上
- 用户,配备了iPad。
HQ与双向与用户双向通信的节点进行双向通信。用户从不与总部沟通,反之亦然。
这是法令从HQ一个Windows应用程序(采用Delphi),并为用户解锁iPhone和iPad原生桌面应用程序的权力。他们对节点没有意见。
如果有令人信服的论据技术,我也许可以从“法令”的Windows程序“喜欢”打下来(并且对于isntance,使基于它的浏览器)。节点没有GUI,他们只是坐在那里玩中间人。
这些事情沟通的最佳方式是什么(SOAP/HTTP/AJAX/jQuery /家庭酿造协议在TCP/something-else之上?)是否最好使用相同的协议结束结束,或不同的协议hq < - >节点和节点< - > iPad?
每个这两个接口的两端可能希望启动事务(如果我摇我自己的协议,我可以很容易地做到),那么我应该使用推/拉/长轮询还是什么?
我希望这个描述有意义。如果没有,请提问。谢谢。
更新:
文件大小是typcially低于1MB什么也没有可能是超过10MB甚至5MB。在确认第一个文件之前,不会发送第二个文件。
文件从总部到节点流向iPad“下坡”。文件永远不会“上坡”流动,但会有一些小数据包(除了ack),这些数据包是由iPad上的用户操作启动的。这些将转到本地节点,然后转到总部。我们可能在说话< 128字节。
我想也会有一般控制&维护交通以低速率,在各个方向。
我想你应该提到你是这些客户端库中的一部分的作者。 – 2011-04-08 10:14:51
我认为你应该为他们提供URL :-) +1和谢谢。 YOu列出了很多选项,但如果您*有*选择,那么您会选择哪一个? – Mawg 2011-04-09 01:12:37
@Mawg:来自Habari JMS客户端支持的消息代理,我建议看看Apache ActiveMQ。通过Fusesource http://fusesource.com/提供商业支持,Fuse消息代理基于ActiveMQ。 “ActiveMQ in Action”一书的两个示例章节(PDF)位于http://www.manning.com/snyder/,幻灯片演示文稿位于http://www.slideshare.net/bruce.snyder/messaging-与-ActiveMQ的演示。其次是OpenMQ,一款精益而坚实的产品。 Habari客户端库可从http://www.habarisoft.com/habari.html获得。 – mjn 2011-04-09 07:58:49