去年我建造了一些与此非常相似的东西。我用 C#。最初它利用了一些 3.5 框架,但由于安装大小的限制,我不得不将其缩回到 2.0 框架。它目前正在监控大约 13,000 台机器。每分钟收集大约 3MB 的数据并将其发送回报表服务器。
客户端机器的范围从具有 256MB RAM 的 Pentium 4 机器(在高达双核 2GB 机器上运行 XP)。
我构建的应用程序不会被最终用户触摸,因此它作为 Windows 服务和 IE 浏览器帮助对象插件的组合运行。BHO 对于准确捕捉浏览器中正在发生的事情是必要的。
唯一真正的挑战是让它在 XP 和 Vista(所有服务包级别)以及 IE 6 和 7 下工作。XP 和 Vista 有不同的安全隐患需要考虑;IE 6 和 7 也有不同的访问模式。
最后,我们决定与 Firefox 或其他浏览器打交道,因为客户根本不关心它。
更新
Firefox 仅支持 javascript、c++ 和 xul 代码扩展;使用 c# 将是一个完整的 PITA。如果它可以满足我的需要,我可能会尝试 javascript,因为它更容易。
至于 Chrome,他们最近才开始支持扩展( 2009 年3 月 19 日)。您必须更改快捷方式启动属性才能运行它们。所以,我可能会跳过那个浏览器,直到它成熟一点。我想在接下来的一年里,插件的构建方式将会发生很多变化。
关于每分钟的数据量,这是一个汇总值。每个单独的客户每十五分钟左右只检查一次;或在断开工作时重新连接到网络。因此,个人流量非常低,对用户体验没有影响。
防火墙
防火墙对我们来说真正无关紧要的原因是数据使用 Web 服务通过端口 80 传输回我们的报告服务器。如果 80 被阻止,那么他们无论如何都无法浏览,所以没有什么可收集的……至于带宽,限制你收集的内容并广播出去。具有长描述性属性/值名称的 XML 不是您的朋友。