Maw*_*awg 3 delphi network-programming communication web-applications
我们打算设计一个有三个"层"的系统.
HQ与与用户进行双向通信的节点进行双向通信.用户从不与总部沟通,反之亦然.
从HQ(使用Delphi)和用户iPad的原生桌面应用程序判断Windows应用程序的权力.他们对节点没有意见.
如果有令人信服的技术论点,我可能能够在Windows程序中将它们从"法令"下降到"更喜欢"(并且,对于isntance,使其基于浏览器).节点没有GUI,他们只是坐在那里玩中间人.
这些东西进行通信的最佳方式是什么(SOAP/HTTP/AJAX/jQuery/home-brewed-protocol-on-top-of-TCP/something-else?)最好是端到端使用相同的协议,或者hq < - >节点和节点< - > iPad的不同协议?
这两个接口中的每一个的两端都可能希望启动一个事务(如果我自己编写协议,我可以很容易地做到这一点),那么我应该使用push/pull/long-poll还是什么?
我希望这种描述有意义.如果没有,请提问.谢谢.
更新:
文件大小通常低于1MB,没有可能超过10MB甚至5MB.在确认第一个文件之前,不会发送第二个文件.
文件从HQ"下坡"流向节点到iPad.文件永远不会"上坡",但会有一些小的数据包(除了确认),这些数据包是由iPad上的用户操作启动的.这些将转到本地节点,然后转到总部.我们可能会说<128字节.
我想在所有方向上都会有低速率的一般控制和维护流量.
对于推/拉(发布/订阅或对等通信),可以使用跨平台消息代理.我不知道是否有(IOS)对微软消息队列(MSMQ)的客户端库,但我也喜欢评价开源解决方案的HornetQ,阿帕奇的ActiveMQ,阿波罗,OpenMQ,阿帕奇QPid或RabbitMQ的.
所有这些解决方案为分布式消息传递提供了可靠的基础,例如故障转移,群集,持久性,高性能和许多客户端连接.在此基础结构消息上可以交换任何内容类型(JSON,二进制,纯文本),并且在顶部消息可以包含路由和优先级信息.它们还支持事务性消息传递.
Delphi和Free Pascal 客户端库可用于许多企业级开源消息产品.(我是其中一些人的作者,支持ActiveMQ,Apollo,HornetQ,OpenMQ和RabbitMQ)
| 归档时间: |
|
| 查看次数: |
517 次 |
| 最近记录: |