我正在开发跟踪车辆的应用程序。将有大约10k或更多的车辆。每个分钟都会发送〜250bytes。数据包含gps位置以及CAN总线(我们可以从车载电脑和仪表板读取的每个数据)的所有内容。数据由GSM/GPRS发送(使用UDP协议)。估计每天这些数据的行数是〜2000k。关于设计和构建分布式应用程序以跟踪车辆的建议
我看到那里有3个主要块(块 - >平均主要模块)。多线程套接字服务器(MSS) - 我拥有它。 MSS将接收到的数据存储到队列中(使用NServiceBus)。
2. 规则处理器服务器(RPS) - 这是该系统的核心。该块负责解析接收到的数据,存储在数据库中,处理规则,向Notifier Server发送消息(这将发送电子邮件/短信文本)。
规则示例。如前所述,接收到的字节会有关于当前速度的信息。当速度高于120时:在Web应用程序中为特定用户显示警报,发送电子邮件,发送短信文本。
(在同一台机器上可以有多个RPS实例)。
3. Web应用程序 - 允许报告和用户定义的规则,监控警报等
我要找的意见如何RPS和Web应用程序之间的设计交流。
一些问题:
是否应Web应用程序和RPS已经分离的数据库或一个中央数据库就足够了?
我在web应用程序中有一个域模型。如果有一个中央数据库,那么我可以在RPS上使用相同的模型(对象)吗?那么,如何将更改后的规则发送给RPS?
我试图尽可能地解耦这些块。我打算为每个客户端创建不同的应用程序实例(每个客户端都有独立的数据库)。一名客户将拥有10万辆车辆,其他车辆仅有100辆。
请注意该领域的现有专利。我曾为vert.net工作,还有其他人。 – kenny 2010-04-23 11:38:33