桌面Web监控客户端的推荐实现?

时间:2009-04-30 14:30:23

标签: programming-languages client monitoring desktop

背景

我有一个商业创意,其中一个组成部分涉及一个可以下载的客户端。由数千名用户通过网页安装。

申请要求

版本1:

申请必须:

  • 监控用户桌面上的互联网使用情况,监控以下区域:

    • 使用的浏览器,
    • 小时使用
    • 访问过的网站
    • 考虑哪个浏览器标签为“有效”
  • 制作此用法的报告(采用CSV或其他易于导出的格式)

  • 需要用户轻松监控(例如,在Windows中通过系统托盘中的图标允许用户暂停或停止程序)。
  • 通过自动更新轻松升级。
  • 在内存使用方面需要轻量级。
  • 需要轻松快速地安装,
    • 必须能够完全卸载。
  • 不能对浏览器或用户的系统性能体验产生负面影响
对于版本2:
  • 能够呈现图形输出(饼图和条形图)
  • 是多平台(版本1将仅针对Windows)
  • 整合在线组件

问题

鉴于这些要求,您会推荐哪种技术实施,以及您会推荐哪种平台/语言架构?关键方面是功能性和广泛定义的对用户的低影响。 ETA或成本不太重要。

4 个答案:

答案 0 :(得分:3)

听起来像C#会满足您的需求,只要它仅限于Windows客户端。

答案 1 :(得分:2)

去年,我建造了类似的东西。我用过C#。最初它利用了一些3.5框架,但由于安装大小的限制,我不得不将其扩展回2.0框架。它目前正在监控大约13,000台机器。收集并发送回报告服务器每分钟大约3MB的数据。

客户端计算机的范围从Pentium 4机箱到运行XP的256MB RAM到双核2GB机器。

我构建的应用程序不会被最终用户触及,因此它作为Windows服务和IE浏览器帮助程序对象插件的组合运行。 BHO必须准确捕获浏览器中发生的事情。

唯一真正的挑战是让它在XP和Vista(所有服务包级别)以及IE 6和7中运行.XP和Vista具有不同的安全含义需要考虑; IE 6和7也有不同的访问模型。

最后,我们因处理Firefox或其他浏览器而受到惩罚,因为客户并不关心它。

<强>更新

Firefox仅支持javascript,c ++和xul代码扩展;使用c#将是一个完整的PITA。我可能会尝试javascript,如果它能做我需要的只是因为它更容易。

就Chrome而言,他们最近才开始支持扩展程序(March 19,2009)。您必须更改快捷方式启动属性才能运行它们。所以,我可能会跳过浏览器,直到它成熟一点。我想在明年将为插件的构建方式做出很多改变。

关于每分钟的数据量,这是一个总值。每个客户只需每15分钟左右登记一次;或者在断开连接时重新连接到网络。因此,个人流量非常低,对用户体验没有影响。

<强>防火墙

防火墙对我们来说无关紧要的原因是数据通过端口80使用Web服务传输回报告服务器。如果80被阻止,那么它们无论如何都无法浏览,因此没有什么可以收集......就带宽而言,限制你收集的内容并将其广播回来。具有长描述性属性/值名称的XML不是您的朋友。

答案 2 :(得分:1)

Qt和C ++适用于跨平台客户端 - 尤其是如果他们需要以一种无法用垃圾收集的语言(即基本上所有其他语言;-)解决的方式“节省内存”。

答案 3 :(得分:0)

我们需要更多信息:

是时候发展问题吗?使用C#,您可以快速开发这样的应用程序;但它不一定具有与C ++相同的低级性能。您可以用C ++(内存密集型位)和C#中的其他部分开发某些部分,但是您的客户端必须安装.NET框架;更不用说他们可以很容易地对C#部件进行逆向工程。

有一个项目三角形,我们需要知道哪两个对您最重要:

alt text