电信营运设计-数据采集与整合

上传人:re****.1 文档编号:558262177 上传时间:2023-11-04 格式:DOC 页数:21 大小:256.01KB
返回 下载 相关 举报
电信营运设计-数据采集与整合_第1页
第1页 / 共21页
电信营运设计-数据采集与整合_第2页
第2页 / 共21页
电信营运设计-数据采集与整合_第3页
第3页 / 共21页
电信营运设计-数据采集与整合_第4页
第4页 / 共21页
电信营运设计-数据采集与整合_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《电信营运设计-数据采集与整合》由会员分享,可在线阅读,更多相关《电信营运设计-数据采集与整合(21页珍藏版)》请在金锄头文库上搜索。

1、电信营运设计后台:数据采集与整合文档编号:Version 1.02008年05月达内IT培训集团修改记录摘要日期修改原因版本2008-05-28新建10一、 数据采集一、 UI设计(无)二、 数据采集类图设计(一) 数据采集客户端1) 类结构概要说明-类图2) 类功能结构说明-时序图3) 类详细说明1. CollectionLaunchor 采集主程序类,发动采集线程。a) 客户采集启动器,主要启动采集线程,单独启动一个线程进行数据采集b) 在main函数中创建CollectionThread线程对象,并调用run函数启动线程。c) 注意:该启动器可以由用户发起为一个后台服务,也可以由Unix

2、的定时服务发起,我们采用使用Unix发起的方式。 用户后台服务发起的方式只需要把线程的运行方式改变成循环就是。2. CollectionThread 采集线程,负责启动采集过程。a) 封装一个采集线程。该类主要调用采集器类DataCollector进行数据采集。b) 函数run():就是主要创建DataCollector对象,并调用其collection函数进行数据采集。该函数是Thread的run函数覆盖函数.c) 函数start():负责启动线程,该函数来自Thread线程类.d) 注意:该线程是否循环决定采集器启动的方式是否利用Unix的定时启动功能,如果采用Unix的定时功能,则该线程

3、采集完毕自动关闭清空。3. DataCollector 负责采集环境的处理与数据采集,分析处理a) 所有的采集任务有该类完成,主要获取本机IP,复制备份并清空日志文件,读取日志文件,解析日志文件,匹配处理日志登录/登出记录获取用户登录时间,在线用户下次匹配。b) 函数getNativeIP 读取要采集服务器的IP,该IP用属性文件配置。c) 函数 initlog()负责调用Runtime执行mv shell指令进行日志文件的备份并清空原始文件。备份的文件名wtmpx+年(4位)+月(2位)+日(2位)+时(2位),比如wtmpx2008053013.注意:利用Unix系统的Kenerl函数读取

4、的时候,该文件必须采用x结尾,在这里用java处理就不需要。d) 函数mappingLogBuffer 主要把备份的日志文件映射为本地内存缓冲,便于后面解析。参数是备份日志文件名,返回MappedByteBuffer.e) 函数parseLogBuffer,负责解析缓冲的内存结构,利用参数返回两个Vector结构对象,一个存放登录数据,一个存放登出数据,Vecotor中存放的元素类型是LogRecord.该类型请参考LogRecord类说明。【参考】#define EMPTY0#define RUN_LVL1#define BOOT_TIME2#define OLD_TIME3#define

5、NEW_TIME4#define INIT_PROCESS5#define LOGIN_PROCESS6 -登录进程#define USER_PROCESS7-用户进程#define DEAD_PROCESS8-终止进程f) 函数activate 负责把上次为匹配的数据读取为Vector结构。便于后面匹配。参数是存放上次未匹配的登录日志记录,返回Vector结构,其中元素类型LogRecord。g) 函数match,负责匹配登录/登出数据,并返回用户登录时间数据。参数是两个Vector类型的登录/登出数据结构,元素类型是LogRecord,返回的是匹配好的用户登录时长记录,数据类型是Vecto

6、r,其中元素类型是MatchedRecord,详细说明请 参考MatchedRecord类的说明。h) 函数passivate,负责把这次没有匹配好的登录记录保存成文件,以便下次采集的时候匹配。参数是没有匹配好的登录记录,类型是Vector,其中元素类型是LogRecord.i) 函数collect,负责整个采集过程。这是该类中的唯一的一个public函数,主要供采集线程调用。4. LogRecord类,负责登录/登出数据封装。5. MatchedRecord类,负责匹配好的数据的封装。6. CollectionListener接口,规范采集好的数据的处理方式。a) 函数deal,负责匹配好数

7、据的处理,返回void,参数是Vector类型,元素类型是MatchedRecord,是匹配好的所有登录时长数据。7. LogDealer类,负责匹配好数据的发送处理,如果发送失败,则数据被保存。该类主要实现CollectionListener接口。a) 函数init,主要初始化服务器参数,服务器参数使用属性文件配置IP与Port。b) 函数initSocket,主要初始化网络连接。如果初始化失败,则保存数据退出c) 函数send,主要负责数据发送。该函数先发送历史失败数据。d) 函数deal,调用上面的三个函数完成整个处理过程。并接受服务器接收成功的标志。(二) 数据采集服务起器端1) 数据

8、实体类(原则上对应数据结构的实体表)2) 类结构概要说明-类图3) 类功能结构说明-时序图4) 详细说明1. ServerLauncher类:服务器数据接受器启动器a) ServerLauncher主要负责启动服务器接受线程b) 函数main,主要创建DataRecieverTh对象,并调用起其start函数启动线程。2. DataRecieverTh类,服务器接受主线程。a) 主要负责接受客户连接,并为每个客户启动一个数据接收线程来进行客户数据接收。该类继承Thread。b) 成员collectionth是Vector的静态数据结构,负责保存所有客户连接。其中元素类型是CollectionT

9、h.c) 成员serversocket服务器Socketd) 成员dao封装对数据的连接及其对数据表访问封装,具体说明参考DetailDAO说明。e) 函数initSocket,负责网络服务器的初始化。 f) 函数initDAO,负责数据库连接初始化,并初始化数据访问对象dao。g) 函数init服务读取数据库连接擦参数的读取,数据库连接参数用属性文件配置driver,url,user,password四个key-value键值对。该过程由DBEnvInit中两个静态函数完成。h) 函数run是Thread类的覆盖函数,负责接收客户连接,并建立客户处理线程并启动线程,并在collectiont

10、h中记录该客户线程处理对象。3. CollectionTh类,每个客户数据接收处理类。 a) 该类主要接收采集器发送过来的数据,接收成功后发送一个成功标志,然后保存接收的数据。该类继承Thread。b) 函数run接收线程过程,主要调用receive私有函数。c) 函数recieve,通过inputstream读取数据,并发送成功标记,然后调用全局的dao保存数据。4. DBEnvInit类,数据库环境初始化类a) 该类封装了两个函数工具,完成对数据库的连接。b) 函数getDBParamter,负责从属性文件读取数据库连接参数。c) 函数getConnection,负责根据连接属性打开与数据

11、库的连接。注意:该工具可以提供对数据源的支持,在后继版本中提供数据源与Hibernate的支持描述。5. DetailDAO类a) 提供对Detail数据库的插入等操作访问。b) 函数insert负责把接收到的数据插入到数据库。6. BasicDAO泛型类a) 封装对数据库访问最常用的规范。在后面的DAO类,缺省必须实现该接口。7. Detail类,采集数据原始记录实体类。a) 该类与MatchedRecord完全一样,在设计的时候为与客户端分开,故意设计成实体类,主要便于使用Hibernate。b) Detail类对应数据库中对应的t_detail_x31张表。注意:该设计中缺少一个日志类,

12、请自行设计,或采用apache中log4j.jar三、 数据表结构设计(一) 原始采集用户登录时长明细表 (details_x) 其中x 是1-31字段英文名字段汉字名类型约束条件说明loginname登录名Varchar(20)loginip登录IPVarchar(24)logintime登录时间Timestamplogouttime登出时间Timestamplabip实验室IPVarchar(24)duration登录时长long二、 数据整合一、 UI设计二、 数据采集类图设计1. 类结构概要说明1) 数据实体类结构(原则上对应数据库表)2) 数据整合类2. 类功能结构说明3. 类详细说

13、明1) ServerLauncher类:整合启动程序类。2) DataIntegratorTh类:整合线程,主要完成整合的调用。3) Integration接口:整合接口规范4) IntegrationByCall类:整合的存储过程调用实现5) IntegrationByClient:整合的Java调用实现。6) IntegrationFactory类:利用工厂模式产生的一个类,负责产生整合对象。7) DBEnvInit类:见数据采集存储中的说明。8) DetailYearDAO,DetailMonthDAO,DetailDayDAO,IntegratedDetailDayDAO,Integr

14、atedDetailMonthDAO,IntegratedDetailYearDAO负责每个表的整合。1. 负责数据库中数据 表的实际访问操作,原则样一个表对应一个DAO类。注意:整合过程分两类:1 根据客户整合。2 根据实验室整合。由于整合过程就是数据库分组统计查询与数据插入操作,所以设计中其逻辑流程没有设计。三、 数据表结构设计1. 按用户统计整合的时记录表detaildays_x 其中x是1-31字段英文名字段汉字名类型约束条件说明loginname登录名Varchar(20)loginip登录IPVarchar(24)logouttime登出时间Timestamplabip实验室IPVarchar(24)duration登录时长long2. 按用户统计整合的天记录表detailmonths_x 是1-12字段英文名字段汉字名类型约束条件说明loginname登录名Varchar(20)loginip登录IPVarchar(24)logouttime整合时间Timestamplabip实验室IPVa

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号