我们正在开发一种处理科学现场数据收集和存储的解决方案。
该解决方案应该处理连接到通过蜂窝网络连接到中央SQL服务器的车辆(卡车,船只等)的多个厚Windows PC现场客户端。
客户端为中央服务器提供从设备收集的数据以及手动输入。客户端从中央服务器消耗半静态数据,例如人员列表以及与特定任务相关的预定义数据。
与服务器的连接不稳定,因此客户端应能够在不连接中央服务器的情况下完全运行3小时。
我们将MSMQ和Microsoft Sync Framework视为处理客户端/服务器通信的选项。您可以提供的任何见解将非常感激。
答案 0 :(得分:1)
通过WCF实现同步框架同步。这将允许您(a.o.)使用WCf行为压缩数据。而且您不必将您的SQL Server暴露给互联网。 http://code.msdn.microsoft.com/Database-Sync-SQL-Server-7e88adab 和http://code.msdn.microsoft.com/Database-SyncSQL-Server-e97d1208
如果您可能发生冲突(在客户端和服务器上更新多个客户端或两者上的数据),请实现命令模式以从客户端向服务器发送数据。在客户端本地更改数据,同时创建一条消息以发送到不使用同步框架的服务器,但服务器可以使用相同的结果进行处理。这为您提供了更多的控制和灵活性。
我不知道msmq。您可以通过WCF进行可靠的消息传递,只要您从客户端发送的消息是幂等的,并且从服务器发送给客户端的数据被认为是最重要的事实,我认为不需要msmq。
如果你可以在客户端上使用sql express,我非常喜欢使用sql server更改跟踪同步fx 2.0方法,但这是微软不支持的方案。 否则,只要您没有超过50个表,就可以使用带有元数据表的sync fx 2.1方法。
如果您有更具体的问题,我可能会了解更多。