3

我现在正在从事与远程汽车管理相关的项目。

我们有一些设备能够启动/停止汽车引擎,提供 GPS 坐标,检查门锁状态等。此设备已安装 SIM 卡。

第二个方面是一个服务器,它应该与设备通信,并允许消费者通过 iPhone、Android 和 WM7 手机管理他们的汽车。

我现在的主要问题是应该为设备和服务器之间的通信定义哪些技术要求。

有人知道有没有关于这种数据传输的标准设计模式的书籍或文章?

下面是一个让我烦恼的问题的例子

我们需要向设备发送一些请求(例如“启动汽车”或“给我里程”)。为了提供它,服务器应该有一个地址,它应该发送这个请求。

如果我理解正确,有以下方法可以做到:

  • 组织 VPN(昂贵)
  • 使用 SMS 传输(昂贵)
  • 使用 TCP 套接字组织设备和服务器之间的持久会话(我不知道它是否适用于俄罗斯 GSM 网络现实)

也许这里有人有类似的专业知识,可以给我应该搬到哪里的建议?

4

1 回答 1

2

资源

  • 根据这些原则设计服务层

  • 您可以保持 TCP 连接处于活动状态以降低连接成本。那么长轮询成本是最小的。

  • 您可以检查ZeroMQ,它似乎是适合您项目的发布/订阅服务器

费用

  • 请求待处理命令的消息和来自服务器的空响应(这将超过 99.9% 的对话)可以减少到每个请求一个字节,每个响应另一个字节。所以每十秒进行一次轮询,我们有:

    (20byte TCP 帧) + 1 byte/message * (1 request + 1 response) * 6messages/1min * 60min/hour * 720hour/month = 每月10.8Mb需要使用长轮询

  • 现在,您添加从服务器向设备发送用户命令的成本(与长轮询消息相比,它们相对较少):

    1 kbyte/message * (1 request + 1 response) * 20messages/day * 30day/month = 每月1.2Mb需要支持用户命令

  • 最后,您必须决定要收集哪些数据 - GPS、门传感器等 - 以及 -1 分钟、10 分钟、每小时等的频率 -这将总计长轮询成本= 假设12MB

总成本:每月大约 24Mb

于 2012-12-20T15:46:37.583 回答