Tarena IT
培训集团
电信营运
电信营运电信营运
电信营运设计
设计设计
设计
后台:数据采集与整合
文档编号
文档编号文档编号
文档编号:
::
:
Version
Version Version
Version 1.0
1.01.0
1.0
2008
年
05
月
达内
达内达内
达内 IT 培训集团
培训集团培训集团
培训集团
Tarena IT
培训集团
修改记录
修改记录修改记录
修改记录
摘要
日期
修改原因
版本
2008-05-28
新建
1
.
0
Tarena IT
培训集团
一
一一
一、
、、
、
数据采集
数据采集数据采集
数据采集
一、
UI
设计
(无)
二、数据采集类图设计
(
一
)
数据采集客户端
1)
类结构概要说明
-
类图
LogDealer
ip : String
port : int
desttinationpath : String
storefile : String
socket : Socket
inputstream : ObjectInputStream
outputstream : DataOutputStream
init() : void
initSocket() : void
send(out : ObjectOutputStream, data : MatchedRecord) : void
recieve(in : InputStream) : int
store(path : String, filename : String, data : Vector<MatchedRecord>) : void
load(path : String, filename : String) : Vector<MatchedRecord>
close() : void
LogRecord
user : String
visittime : long
userip : String
labip : String
pid : int
CollectionListener
deal(logrecord : Vector<MatchedRecord>) : void
<<Interface>>
DataCollector
ip : String
logdealer : CollectionListener
collect() : void
getNativeIP() : String
mappingLogBuffer(filename : String) : MappedByteBuffer
parseLogBuffer(logbuffer : MappedByteBuffer, logout : Vector, login : Vector) : void
match(logout : Vector, login : Vector) : Vector
passivate(login : Vector, filename : String) : void
activate(filename : String) : Vector
initlog()
CollectionLauchor
main(args : String[]) : static void
CollectionThread
run() : void
start() : void
MatchedRecord
user : String
logintime : long
logouttime : long
labip : String
userip : String
duration : long
2)
类功能结构说明
-
时序图
Tarena IT
培训集团
:
CollectionLauchor
:
CollectionThread
:
DataCollector
: LogDealer : LogRecord :
MatchedRecord
1: start( )
2: collect( )
16: deal(Vector)
6: new
11: new
3: getNativeIP( )
4: initlog( )
5: mappingLogBuffer(String)
8: parseLogBuffer(MappedByteBuffer, Vector, Vector)
7: activate(String)
10: passivate(Vector, String)
9: match(Vector, Vector)
12: new
13: init( )
15:
14: initSocket( )
17: send( )
3)
配置文件说明:
为了保证系统得灵活性,在该系统中把服务器和本机有关的参数都通过属性文件配置,
由程序动态读取。文件名确定为
unix_server.properties
属性
key
属性
value
例子
备注说明
interval interval = 60
采集的间隔时间
,
以分钟为单位
ip
ip = 192.168.0.20
采集点的
IP
地址。
sourcefile sourcefile= f:\\usr\\adm\\wtmpx
采集的源的文件名,包含目录
destinationpath destinationpath= f:\\usr\\history\\
采集源的备份目录,目录后面必须加
\
目录分隔符号。
command command=cmd /C move
数据源被采集的时候,先移动到备份
目录,这个属性设置数据源文件移动
的
shell
指令或
dos
指令。
historyfile historyfile = history.dat
由于在采集的时候有的用户正在登
录中,还没有登出,所以无法处理这
种数据,这就是不能匹配成对的数
Tarena IT
培训集团
据。这些数据必须保存起来,在下次
采集的时候用来匹配,这个属性就是
设置没有匹配成功的数据的保存文
件名。该属性只指定文件名,目录采
用上面指定的备份目录。
serverip serverip = 127.0.0.1
接收服务器
IP
serverport
接收服务器端口。
storefile storefile= store.dat
数据发送失败的临时存储文件。目录
采用使用上面的指定的备份目录。
4)
类详细说明
1.
类
类类
类
CollectionLaunchor
采集主程序类,发动采集线程。
CollectionLauchor
main(args : String[]) : static void
a) Main
函数
函数说明
创建
CollectionThread
线程对象,并调用
run
函数启动线程。
参数
args
:环境变量参数
返回类型
void
函数流程说明
CollectionThread
th=new CollectionThread
th.start();
b)
注意:该启动器可以由用户发起为一个后台服务,也可以由
Unix
的
定时服务发起,我们采用使用
Unix
发起的方式。
用户后台服务发起
的方式只需要把线程的运行方式改变成循环就是。
2.
类
类类
类
CollectionThread
采集线程,负责启动采集过程。封装一个采集线程。
该类主要调用采集器类
DataCollector
进行数据采集。该类继承
JDK
的
Thread
类