Rainbow的站点流量统计分析

来源:互联网 发布:求素数的算法优化 编辑:程序博客网 时间:2024/04/29 14:42
1. WhosLoggedOn模块和Monitoring模块实现对站点的统计分析。
    站点统计分析的实现方法为:在用户请求页面的时候,在后台数据库保存当前的访问信息,包括所访问的页面、用户信息、访问时间、客户端信息等等。WhosLoggedOn模块比较简单,仅是统计当前在线的用户,包括匿名用户的数量和注册用户列表。Monitoring模块属于后台管理模块,可以显示访问的详细信息,也可以显示页面访问统计信息,用户访问统计信息等。
    2.具体实现过程
  • 数据层
        数据库表结构:
        存储过程:rb_AddMonitoringEntry 记录访问信息
        rb_GetLoggedOnUsers 取得在线用户统计信息,匿名用户的数量、注册用户数量和列表
        rb_GetMonitoringEntries 根据输入参数不同,取得各种统计信息,包括访问的详细信息、页面访问统计信息、用户访问统计信息、每天访问统计信息、按浏览器类型分类统计(这个统计有的意思,不知出于什么考虑)等等。
  • 数据访问层     Rainbow.Framework.Security.Monitoring 类实现记录访问日志信息。
        Rainbow.Framework.Monitoring.Utility 类实现统计信息的获取。
        程序有3个地方记录访问日志,一是业务逻辑层的Rainbow.Framework.Security.PortalSecurity类中,在用户登录和注销时分别记日志。二是在表示层在DesktopDefault.aspx.cs中页面加载时,记录访问日志信息。
  • 表示层
        WhosLoggedOn模块和Monitoring模块实现对站点的统计分析。WhosLoggedOn模块使用了缓存技术,因此显示的内容与实际可能有些偏差,精确度取决于缓存时间的长短。
       3.存在的问题
        目前版本的存在不少问题,WhosLoggedOn显示信息不准确,Monitoring模块根本无法运行。
        查看源代码,找到几个原因:
    1)当前代码没有保存匿名用户的访问信息,只是保存了注册用户访问信息(一个字,晕;两个字,真晕;再多,真TMD的晕)。从.net 1.x版本迁移过来,把这个功能给丢了。
    2)当前的版本安全机制采用ASP.net 2.0 内置的安全模型,与.net 1.x版差别很大。rb_GetLoggedOnUsers和rb_GetMonitoringEntries两个存储过程都还使用原先的用户表,根本无法运行。
    3) 访问信息记录不全,仅仅是记录对菜单里对应的页面的访问(即在Rainbow框架结构中讨论的"网站由页面组成、页面由模块组成"中所指的页面),对于那些查看、编辑页面(即从SecurePage类继承的页面)都没有记录日志。
    4)Monitoring模块的多语言支持不好,仅做了部分多语言支持。
        目前新版本没出来,要想运行,只好自己修改了。
    1) 对于匿名用户的访问,通过Request.AnonymousID取得ID,同样记录访问日志信息。
    2) 访问日志的采集原先在DesktopDefault.aspx.cs中,现在移到 Rainbow.Framework.Web.UI.Page类中。因为SecurePage也是从Page类中继承的,这样可以保证在访问查看、编辑页面时,也可以记录日志。不过这样也存在一些问题,对于查看、编辑页面的访问,其统计归于模块所在的页面。
    3) 至于存储过程的错误,肯定要改的。
    4) Monitoring模块的多语言支持,版面美化,就慢慢来吧。

    后记:由于 .net 2.0最新版本还没有发布,我下载了最新的源代码,因此程序好多模块都存在不少问题。现在是用到哪个模块就测试、修改哪个模块。

     
  • 原创粉丝点击