我们正在开发一个需要使用web服务与远程服务器同步的iOS应用程序。现有的web服务具有“操作”风格,而不是REST (在WCF中实现,但公开了JSON HTTP端点)。我们不确定如何构建最适合iOS的web服务,并希望得到一些建议。我们还对如何管理iOS中的同步过程感兴趣。
无需详细说明,该应用程序允许用户估算远程站点的修复成本。这些费用按房间和项目分列。如果用户有互联网连接,则可以将此数据发送回服务器。
可以为每个项目拍摄多张照片,但它们将被保存在一个单独的队列中,当连接达到最佳状态(理想情况下是wifi)时,该队列将发送。
我们的后端应用程序控制每个房间和项目的唯一ids。因此,每次我们向服务器发送这些成本时,服务器都会回显中央数据库in,因此,它们可以在移动应用程序中同步。我已经稍微简化了这一点,因为操作合同实际上要大得多,但我只想说明基本需求,而不让事情复杂化。
首先,web服务体系结构:我们目前有两个操作: GetCosts和UpdateCosts。
我的假设是,如果我们使用严格的REST体系结构,我们将需要将单个web服务操作分解为多个较小的服务。这将使服务更多的聊天,我们还必须保证从应用程序的送货订单。例如,我们需要确保在项目之前添加包含房间。
虽然这似乎更多的RESTful,但我们的看法是,这些额外的调用是昂贵的连接(安全检查,数据库调用等)。web (对服务焦点的操作)的类型决定了块状还是健谈性?由于这是移动(3G),我们是更好地处理许多较小的消息,还是几个大消息?
第二,iOS方面。关于如何管理iOS (5)应用程序本身内的数据同步,当前的建议是什么。我们需要多个队列,并且需要保证每个队列中的传递顺序(技术上,在队列之间进行排序)。服务器需要控制唯一的ids和其他属性,并将它们回显回应用程序。然后,应用程序需要更新内部数据库,在重新更新时,确保更新消息中有正确的ids (基本上是一个调用中的多个插入和更新)。
我们的后端有大量的业务逻辑操作这些成本估计。我们不想在应用程序中出现这种情况。
当前,iOS应用程序发送成本数据,然后服务器用填充的ids (和其他数据)回显该数据。删除现有的成本数据,并将回显响应数据添加到设备上的客户端数据库。这给我们带来了麻烦,因为任何照片都可能没有发送,但是原始实体树已经被删除和替换了。显然,更新成本树而不是替换它将消除这个问题,但我不确定是否有任何好的xcode库来做这样的事情。
我欢迎你的任何建议。
发布于 2012-07-17 08:25:12
在移动设备上,限制带宽是关键。我们使用WCF (如果我现在就使用WebAPI MVC4)和Msmq来确保消息传递。服务器通过将数据放置到Msmq中将数据推送到移动设备。Wcf总是为任何请求从Msmq读取数据,移动设备将数据存储在SQLite中,并使用本地队列发送和释放数据。
我不熟悉IOS,但我假设本地数据存储可以用作队列。
https://softwareengineering.stackexchange.com/questions/152898
复制相似问题