创建简单队列Compact Framework的最佳实践



我们正在使用运行在Windows CE Embedded 7.0上的.net Compact Framework 3.5创建一个应用程序。该应用程序正在从我们不同的车辆收集不同的数据,并将其发送回我们的服务器。

我们面临的问题是连接丢失,这种情况经常发生,因为接收有时很糟糕(隧道、树林等)

如果连接中断大约15分钟,那么很多数据就无法到达服务器。现在的问题是,我们应该如何处理这些数据?使用现有队列框架之一?创建我们自己的?

我们需要的一些东西是或将是伟大的东西:

  • 队列应该是持久的,因此如果设备重新启动,数据不会丢失
  • 我们的服务器目前正在运行ASP.NET WebApi,所以如果能使用它就太好了
  • 我们发送不同类型的数据,其中一些数据必须在另一个数据之前到达服务器,因此需要某种优先级系统
  • 新数据比旧数据更重要

我找了很多,但什么也找不到。你们有什么想法吗?

我希望这是正确的地方,它似乎是专门为软件推荐的。感谢

我没有解决方案,但客户正在使用第三方框架,例如MCL,或者编写自己的"基于队列"同步框架。

MSDN 上有一篇不错的文章

一种解决方案是使用一个基于文件的消息传递系统,该系统具有独立的通信器进程,与主进程解耦。每个消息(数据)都是一个文件,通信器处理这些文件并更新主进程或远程数据服务器。我已经做了一些使用ftp的单向解决方案和一个使用eMail的解决方案。eMail系统具有持久性和基于"队列"的优点。

另一种解决方案使用SMS向客户端发送更新和处理信息。

由于我使用Compact Framework队列来解耦主进程和通信,所以我没有使用这些队列来保持热启动。但是,只要在每个EnQueue或DeQueue上定期保存队列对象就不会成为使用序列化的问题。

我的提示是使用CF队列并使用序列化来持久化它们。如果您随后使用Web服务或其他任何东西在服务器和客户端之间传输数据,则没有什么区别。您是否考虑过相同服务器数据的重复更新的并发更新和同步错误,或者这不会有问题?

OTOH MS为SQL Server/SQL Server Compact提供了一个处理数据同步的同步框架。它需要和SQL Server端的IIS。

相关内容

最新更新