【发布时间】:2014-05-09 13:22:05
【问题描述】:
我正在开发一个 Android 应用程序,旨在显示无线电遥控玩具车的 GPS 位置。我正在考虑这样做的方式是使用某种网络服务来保持汽车的位置,它有一个 GPS 和一些 GSM SIM。移动应用程序可以从网络服务中检索数据。
是否也可以使用网络服务进行实时数据传输? 假设我希望移动应用程序在进行更改后立即获取数据。
【问题讨论】:
标签: web-services google-app-engine rest azure
我正在开发一个 Android 应用程序,旨在显示无线电遥控玩具车的 GPS 位置。我正在考虑这样做的方式是使用某种网络服务来保持汽车的位置,它有一个 GPS 和一些 GSM SIM。移动应用程序可以从网络服务中检索数据。
是否也可以使用网络服务进行实时数据传输? 假设我希望移动应用程序在进行更改后立即获取数据。
【问题讨论】:
标签: web-services google-app-engine rest azure
取决于您所说的“实时”和“一旦发生更改”。我在工作中以每秒 60 个单位(并且更快)的速度在装配线上运行的智能相机工作。我在家中研究爱好机器人,这些机器人的动作需要精确到几毫米以内。这两者都被某些人认为是“实时的”,但它们在容忍度方面大约有 100 倍的差异。所以问题是你的实际需求是什么。 更好的是一个人如何为自己做决定。 :-) 沟通的周转时间是一个明显的门控因素。您还必须考虑与服务器硬件和需求量相关的服务器上的处理时间。现代无线以太网上的安静服务器将在 10 毫秒范围内(有很多原因会有所不同)。够快吗?您的服务器将如何检索信息(是否涉及文件读取?数据库?)服务器不是 PC 吗? (嵌入式平台通常具有较少的资源)客户端如何处理 GPS 信息?报告职位可能没问题。陆地导航可能没问题(尽管通过蜂窝网络的行程时间会更长)。细粒度导航不适用于这种响应时间,但 GPS 无论如何都没有解决方案。 希望这能让您了解需要考虑的变量。让我们知道您的决定,更重要的是为什么。 :-)
【讨论】:
具有 1 个核心的 Azure Web 角色实例可以以超过 1000/秒的速度轻松记录传入的地理定位数据。有很多方法可以记录数据——持久性和非持久性。 Windows ETW(Windows 事件跟踪)可以以 100 倍以上的速率记录此类信息。您可以在 Azure 计算实例上使用它。更重要的是您如何消化传入的流、汇总并发送到您的移动客户端。同样,使用 Azure 后端和 Azure 移动服务等许多方法都非常可行。
我的代码使用了标准的 asp.net MVC 5 webapi 模板。我摄取了一个带有地理定位数据的简单 JSON 文档(负载测试高达 1400/秒),并使用 ETW 将其写入 Azure blob 存储。随着您的深入,请询问详细信息。
【讨论】: