Upagather服务器端文档

 

 

 

 

 

Upagather服务器端文档


 

Contents

Upagather服务器端文档... 1

一、         综述... 2

二、         配置文件的加载... 2

1.      配置文件格式说明... 2

2.      现有配置文件内容介绍... 4

3.      添加新配置示例... 5

三、         用户静态信息扫描... 5

扫描器基本原理... 6

四、         静态信息加载... 6

1.      需要加载的表... 6

2.      加载说明... 6

五、         用户全权限验证... 6

1.      验证步骤... 6

2.      验证参数及结果说明... 7

六、         请求分发... 7

七、         前端参数使用情况... 7

八、         数据库的插入... 8

1.      数据插入点说明... 8

2.      Sql语句说明... 9

九、         数据库数据来源... 9

1.      数据库表数据来源说明... 9

2.      插件域说明... 11

3.      操作系统类型编号... 11

 


 

一、           综述

这是一份采集系统服务器端实现的详细文档,文档中主要涉及一下几个模块:

1.        配置文件的加载

2.        用户静态信息扫描

3.        静态信息加载

4.        用户权限验证

5.        请求分发

6.        前端数据使用情况

7.        数据库的插入方法

8.        数据库数据来源

 

二、           配置文件的加载

1.      配置文件格式说明

采集系统的配置文件为配置路径下的upagather.xml文件。加载配置文件使用框架内部的加载方式。配置文件的结构如下:

<ConfigFile>

       <Item>

              <Name></Name>

              <Param>

       <ParamName></ParamName>

       <ParamValue></ParamValue>

</Param>

</Item>

</ConfigFile>

具体的加载过程可以参见com.unionpay.upa.configure.ConfigManager类。

整个文件中只有一个ConfigFile节点,每个ConfigFile节点中含有多个Item节点。每个Item节点中包含一个Name节点和多个Param节点。Param节点至少包含两个节点,即ParamNameParamValue,也可以包含第三个节点ParamDescParamName节点是参数的名称,ParamValue为参数的值。在系统启动的时候需要Item节点的Name值和ParamName来取得相应的参数值。具体取到参数值的方法如下:

ConfigureManager.getInstantce().getPropertyAsInt(“ThreadPool”,”poolnumber”);

upagather.xml文件中的参数在系统启动时全部被加载到com.unionpay.upa.gatherMgr.bll.GatherConstants类中。

2.      现有配置文件内容介绍

下面内容介绍一下当前系统中所有参数的作用,使用ItemName域来分类。

1)       ThreadPool

n  poolnumber    线程池的个数

n  threadperpool  每个线程池中的线程数

n  isordered        插入数据库是是否按照一定的顺序插入,目前使用的是false

2)       batch

n  batchsize        批处理的规模,现在这个参数没有使用

3)       ScriptParams

n  这个Item中定义了前段传来变量的名称,使用情况会在下文予以说明,具体参数的含义参见《客户端解决草案》

4)       PicturePath

n  path               请求图片所在的相对路径

5)       Seperators

n  系统中用到的一些分隔符和一些常用符号

6)       SourceType

n  页面来源选项中相对应的类型

n  DB开头的表示类型存储到数据库是对应的编号

7)       Scheduler

n  Jobgroup        定时器对应的工作分组

n  Jobname         定时器任务的名称

n  Trigger           触发器的名称

n  Interval          定时器触发的时间间隔,以毫秒为单位

n  Expirelength   用户信息过期的时长,以毫秒为单位

8)       Otherdata

n  Item中配置了一些插入数据库时必需而前段又没有传来一些数据

n  Status                    tbl_upa_log_link_visit表中的rec_st

n  Actionrecst            tbl_upa_log_action表中的rec_st

n  Actionstatisticsst     tbl_upa_log_action表中的statistics_st

n  Nulldate                时间的空值,这个值在现有系统中没有用到,可以删除

9)       BrowserType

n  这个Item定义了国内现有占有率比较高几大浏览器的对应的采集编号

10)    OsID

n  0     表示访问者使用windows操作系统

n  1     mac操作系统

n  2     linux操作系统,不再细分linux的种类

n  3     其他

使用参数是,直接调用GatherConstants加上相应的参数名称即可。

3.      添加新配置示例

在配置文件中添加新的参数的具体步骤

 

1.       添加到配置文件中

 

创建一个Item,也可使用现有的Item。如下图:

1:插入新的Item参数

需要注意的是,这里所有的值都是大小写敏感的。

 

2.       参数的获取

 

采集系统服务器的参数全部在类con.unionpay.upa.gatherMgr.bll.GatherConstants中定义。入下图:

2:参数的获取方法

函数的第一个参数是ItemName域,第二个参数是ParamName域。可以看到,这里插入的是一个字符串,在获取的时候使用的是getPropertyAsString函数。如果是一个数值,可以使用相应的函数,具体这些函数的定义可以在com.unionpay.upa.configure.ConfigManager类中找到。

 

3.       参数的使用

 

在使用参数时,值需要用类名加上相应的参数名即可。如下图:

3:参数的使用

三、           用户静态信息扫描

 

这一块使用了squitz定时器,但是模块内部比较简单。

扫描器基本原理

每隔一定的时间,就将用户信息池里的所有用户信息扫描一遍,将过期的用户删除掉。

时间间隔和过期时间长度在配置文件中都由定义。

 

       该模块在GatherServletsetupSchedule函数中初始化。扫描参数的定义在upagather.xml文件的Scheduler模块中,具体定时器的参数含义见第二部分第7小节。

       任务的具体执行类为com.unionpay.upa.gatherMgr.dal.UserScanner类。具体步骤可以参照类中的execute方法。

四、           静态信息加载

1.      需要加载的表

数据库中有三张表的内容需要在系统启动的时候加载到内存中,并需要常驻内存:

1.        TBL_UPA_LOG_ACTION

2.        TBL_UPA_SITE

3.        TBL_UPA_SITE_URL

2.      加载说明

静态信息在加载时,并没有可以配置的选项,以上三张表的内容会被加载到内存中。对内存中表的内容的操作全部在相应的[table_name]Mgr类中进行,这些类在com.unionpay.upa.gatherMgr.bll包中。

如果在数据库中动态更新了以上表的内容,可以登陆到WebContent/adminx/index.jsp页面来进行刷新,以重新加载这些表的数据。

五、           用户全权限验证

1.    验证步骤

用户请求合法性的验证,需要用户提供其用户名,这个参数会在js前端给出,后台提取。验证方法为:

1.        提取用户的domain对应的SiteDto对象,若该对象不存在则请求不合法

2.        比对SiteDto中的SiteKey域和提取到的用户名,若相同则合法,不相同则非法

不管请求是否合法,系统都会应答指定的图片信息。

2.    验证参数及结果说明

Domain是由前端传来的upadm值取得,用户名是由前端传来的upau值取得。

       为了不影响采集系统使用者的系统,无论请求是否合法,系统都会返回一张相同的1x1icon图片。图片的路径定义在配置文件的PicturePath节点的path子节点下面。具体细节参见第一部分第4小节。

六、           请求分发

请求是被分发到各个线程池中的,分发过程是由前端传来的信息决定的。

取得请求的id和时间戳,合并成为一个字符串,取到新字符串的hash值,即可得到对应的线程池的编号。

这部分内容写在com.unionpay.upa.webbusi.webstruct.GatherServlet类中。具体参见getPoolNo方法。

线程池的个数和每个线程池中的线程数在配置文件的ThreadPool节点中定义。具体参数含义参照第二部分第1小节。

线程池的声明和定义放在com.unionpay.upa.gatherMgr.model.GatherCacheResources类中。

七、           前端参数使用情况

 

前端参数传递情况

1

参数名称

表名

列名

其他使用情况

2

upah

-

3

upai

tbl_upa_log_visit

visitor_cookie_id

4

upats

tbl_upa_log_visit

5

upav

-

6

upawh

tbl_upa_log_visit

config_resolution

7

upacd

tbl_upa_log_visit

config_color_depth

8

upala

tbl_upa_log_visit

location_browser_lang

9

upacs

tbl_upa_log_visit

charset

10

upaij

-

11

upaswf

tbl_upa_log_visit

config_browser_falsh

12

upau

用户身份验证

13

upaa

14

哈希域

-

15

id

-

16

首次访问时间

-

17

上次访问时间

-

18

当前访问时间

-

19

访问次数

tbl_upa_log_visit

visitor_returning

20

upad

21

哈希域

-

22

当前访问时间

-

23

source

tbl_upa_log_visit

referer_type

24

surl

tbl_upa_log_visit

referer_url

25

parames

tbl_upa_log_visit

referer_keyword

26

upab

27

哈希域

-

28

当前访问时间

-

29

本次访问页面数

tbl_log_link_visit

visit_total_actions

30

upacsu

验证访问页面

31

uparfu

-

32

upacsp

-

33

upadm

用户身份验证

“-”表示未使用

1:前端数据使用情况表

参数的含义、说明和编码方式详细参见《客户端解决草案》第二部分。

八、           数据库的插入

1.      数据插入点说明

在采集系统中,服务器端由三处需要往数据库里面插入数据。

1)       新用户来访时,往TBL_UPA_LOG_VISITTBL_UPA_LOG_LINK_VISIT表中分别插入一条记录

2)       用户来访时,只向TBL_UPA_LOG_LINK_VISIT表中插入一条记录

3)       遇到新的TBL_UPA_LOG_ACTION时,向TBL_UPA_LOG_ACTION表中插入一条记录

前两次插入在com.unionpay.upa.gatherMgr.bll.GatherLinkMgr类中,第三个在com.unionpay.upa.gatherMgr.bll.LogActionMgr类中。其中第一个插入使用了事务管理。

2.      Sql语句说明

数据库操作的sql语句写在相应[talbe_name]GATDAO类中,这些类都在com.unionpay.upa.gatherMgr.dal.baseimpl包中。

 

九、           数据库数据来源

1.      数据库表数据来源说明

 

TBL_UPA_LOG_ACTION

log_action_id

自增模块

site_url

header:reffer或前端传来的upacsu

site_url_title

-

site_url_type

-

rec_st

配置文件

statistics_st

配置文件

rec_crt_ts

服务器时间

rec_upd_ts

和创建时间相同的服务器时间

comments

-

2tbl_upa_log_action表数据来源表

 

TBL_UPA_LOG_LINK_VISIT

log_link_visit_id

自增模块

log_action_id

相应action的id

log_visit_id

相应log_visit的id

visit_action_time

访问服务器时间

visit_total_time

-

site_url

当前页面的参数,来自header:reffer

rec_st

配置文件

rec_crt_ts

创建记录的服务器时间

rec_upd_ts

更新时间,和创建时间相同

comments

-

visit_total_actions

前端cookieb,当前访问次数

3tbl_upa_log_link_visit表数据来源表

 

TBL_UPA_LOG_VISIT

log_visit_id

自增模块

site_id

相应的site的id

visitor_returning

前端cookiea,访问次数

visit_first_action_time

访问的服务器时间

visit_last_action_time

和访问时间相同的时间

visitor_cookie_id

前端,upai+upats

visit_action_time

访问的服务器时间

leave_action_time

和访问时间相同的时间

visit_total_time

-

visit_entry_action_id

-

visit_exit_action_id

-

visit_total_actions

-

referer_url

前端cookied,surl

referer_keyword

前端cookied,parames

referer_type

前端cookied,source,具体编号见《客户端解决草案》

referer_name

-

config_resolution

前端upawh

config_color_depth

前端upacd

config_os_id

Header:user-agent,编号见注解

config_browser_version

header:user-agent

config_browser_name

header:user-agent,具体编号见文档《浏览器类型说明》

location_browser_lang

前端upala

config_plugin

前端,下面予以说明

location_ip

服务器获取

config_browser_flash

前端upaswf

charset

前端upacs

reserve1

-

reserve2

-

reserve3

-

rec_crt_ts

访问的服务器时间

rec_upd_ts

和访问时间相同的时间

4tbl_upa_log_visit表数据来源表

2.      插件域说明

config_plugin域是由多个01字符组成,1表示存在或开启,0表示不存在或关闭。目前该域中只有两种插件统计结果:从左向右,第一个为java是否开启,来自前端upaij,第二个是flash是否支持,来自前端upaswf

3.      操作系统类型编号

       Windows        0

       Mac               1

       Linux             2

       Other             3

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值