电信营运设计
后台:数据采集与整合
文档编号:
Version 1.0
2008 年 05 月
达内 IT 培训集团
修改记录
摘要 日期 修改原因 版本
2008-05-28
新建 1.0
一、 数据采集
一、 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) 类功能结构说明-时序图
:
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
由于在采集的时候有的用户正在登
录中,还没有登出,所以无法处理
这种数据,这就是不能匹配成对的
数据。这些数据必须保存起来,在
下次采集的时候用来匹配,这个属
性就是设置没有匹配成功的数据的
保 存 文 件 名 。 该 属 性 只 指 定 文 件
名 , 目 录 采 用 上 面 指 定 的 备 份 目
录。
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 的
- 1
- 2
- 3
前往页