版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1Copyright Tarena Technologies Inc., 2008. All rights reserved.Tarena High-End IT T中国北京中国北京电话:(010)62135687、62136369地址:北京市海淀区北三环西路甲18号 中鼎大厦B座7层中国上海中国上海电话:(021)61202630、61202603地址:上海市北京东路668号 上海科技京城B区9层 加拿大多伦多加拿大多伦多电话:(416)491-6456 地址:Suite 1208, Deerford Road, Toronto, Ontario, Canada邮编:M2J 3J3中国广州中
2、国广州电话:(020)85518868、85518898 地址:广州天河区岗顶侨鑫教育主楼三层电信计费系统电信计费系统 -数据数据,采集采集,整合整合2回想回想nOOADnUMLnSocket编程n多线程编程nJDBC编程nIO/NIO文件处理.3内容内容n理解采集与整合的需求.n理解采集与整合的设计.n理解采集源wtmpx数据的格式结构.n理解采集数据的分析匹配结果数据.n理解采集中类结构的设计-类图与时序图.n理解采集中核心流程-类中函数说明.4Copyright Tarena Technologies Inc., 2008. All rights reserved.Tarena High
3、-End IT T中国北京中国北京电话:(010)62135687、62136369地址:北京市海淀区北三环西路甲18号 中鼎大厦B座7层中国上海中国上海电话:(021)61202630、61202603地址:上海市北京东路668号 上海科技京城B区9层 加拿大多伦多加拿大多伦多电话:(416)491-6456 地址:Suite 1208, Deerford Road, Toronto, Ontario, Canada邮编:M2J 3J3中国广州中国广州电话:(020)85518868、85518898 地址:广州天河区岗顶侨鑫教育主楼三层整体需求与结构说明整体需求与结构说明5采集需求说明采集
4、需求说明n本系统是一个计费的系统,要想对用户进行准确的收费,首先必须能够获得用户使用开放实验室的准确的使用记录,采集子系统正是为了获取这些记录而提供的。 n获取用户使用实验室的准确记录有三种情况:n利用操作系统的自身功能:开放实验室是一个Unix服务器, Unix服务器本身就具有记录系统日志的功能。用户每次登录和退出Unix服务器的信息都会被自动保存到一个在线日志文件/var/adm/wtmpx中。采集系统通过调用Unix系统函数来读取这个日志文件中的内容,然后对读取到的内容进行整理,整理为方便计费的数据,其中包括登录名、登录时间或登出时间等作为计费依据的数据。最后把这些数据存入数据库中,以备
5、其他系统使用。为了使读取的数据量不至于过大,采集系统会每小时定时执行一次,每次只采集上一个小时时间段之内的数据。n2、利用开放实验室的个人web主页功能(personal web hosting): 只要用户在其主目录(home)下创建了public_html目录,采集系统通过扫描目录public_html就可以产生计费依据。访问开放实验室的web信息: 用户每次访问web服务器,web服务器都会在access.log中记录下相应的信息,如客户端的ip和被访问的URL等。通过分析web服务器的访问日志产生计费依据。n3、使用开放实验室的e-mail功能: 根据邮箱的个数产生计费依据。n阐明:2
6、,3的情况目前不做处理,提供扩展接口便于今后扩展。6整合需求说明整合需求说明n采集系统定时将用户使用服务器的数据存入到了数据库中,但这些数据都是流水帐的数据,是用户每次使用UNIX操作系统的用时。如果用户量大,用户频繁地登入/出,将产生大量的数据,不便于将来生成用户的月账单和对开放实验室的使用情况进行月统计和年统计,因此,出现了整合系统。n整合是将某个用户或某个实验室在某一时段内所用机时求和后形成一条记录。整合系统具体整合规则如下:n1. 每小时定时整合一次,生成以小时为单位统计的数据,程序总是每小时定时整合前一小时的数据。n2. 每天定时整合一次,生成以天为单位统计的数据,程序总是每天定时整
7、合前一天的数据. n3. 每个月定时整合一次,生成以月为单位统计的数据,程序总是每个月定时整合前一个月的数据。n整合按用户与实验室整合,便于帐单查询与帐务查询,以及用户自服务帐单查询. 7相关术语字典相关术语字典n实验室n就是用户使用的Unix服务器,用户需要帐号与口令,通过IP访问.n业务帐号n用户使用实验室需要的帐号,口令,IP必须向电信运营商才能获得,该申请信息就是业务帐号,业务帐号中包含资费种类,用户的费用产生就是不同业务帐号下费用的总计.n帐务帐号n用户费用结算的信息就是通过帐务帐号来管理.帐务帐号主要记录用户的支付方式,申请的业务帐号等.n帐单查询n就是费用查询,费用按不同业务的费
8、用按帐务帐号总计成用户费用.帐单查询就是查询帐务帐号下的费用,和每个帐务帐号下的业务帐号明细.n帐务查询n按实验室查询在每个实验室上产生的登录时长统计. n用户自服务帐单查询.n用户可以查询发生在自己个人帐务帐号下的总计费用,以及费用明细.8计费系统整体结构说明计费系统整体结构说明nXX电信运营商新增一项Open Lab开放实验室出租业务,即该电信运营商提供基于Unix平台的实验室环境,选择使用这种业务的用户能够远程登录到实验室中做基于这个实验室环境的一些工作和实验。运营商希望借助先进的计算机技术对访问实验室的用户进行管理和计费,由此实现对此项业务运营的支持与管理。本项目主要包括以下子系统:n
9、采集系统n整合系统n用户管理系统n资费管理系统n管理员管理系统n帐单查询系统n帐务查询系统n用户自服务系统n权限管理系统 9计费系统整体结构图计费系统整体结构图10电信计费系统的业务工作流模型电信计费系统的业务工作流模型 : 电信营运超级管理员 : 电信营运管理员 : 用户用户自服务系统电信数据采集系统电信数据整合系统电信运营计费管理系统电信实验室服务器电信数据库服务器 : 系统管理人员1: 登录3: 填写资料开通权限2: 申请权限4: 登录6: 填写申请资料12: 帐务帐单统计查询5: 申请帐务帐号与业务帐号8: 登录使用实验室服务器14: 用户个人信息维护与帐单查询15: 数据访问10:
10、采集数据存储13: 数据访问9: 用户登录时长数据采集11: 数据整合7: 开通实验室业务帐号11电信物理结构拓扑图电信物理结构拓扑图12数据采集部署结构图数据采集部署结构图电信开发实验室电信开发实验室电信开发实验室数据库服务器采集程序服务器可以把采集服务器程序部署到与数据库同一台服务器采集服务器程序采集客户程序采集客户程序采集客户程序数据整合程序采集备份程序13用户计费原理用户计费原理n当用户申请帐务帐号后就有了交费数据,然后可以申请业务帐号.n用户通过申请的业务帐号和口令登录电信的实验室服务器使用服务.n计费的依据是用户使用实验室的时间长度和使用服务的资费标准.n用户使用实验室的时长公式:
11、n登录时长=用户登出时间-用户登录的时间.n用户应该交纳的费用公式:n交纳费用=登录时长*资费单位费用 + 资费基本费用.14要实施的系统要实施的系统n电信运营计费管理系统:n用户通过该系统向管理员申请帐务帐号与业务帐号.n管理员通过该系统录入资费标准.n管理员通过该系统统计查询所有实验室的用户使用情况.n超级管理员通过该系统授权一般管理员.n电信数据采集与整合系统:n采集系统:由系统定时启动扫描系统的登录历史文件,把用户登录/登出实验室的数据采集并分析处理后存储到数据库服务器.n整合系统:把采集的原始数据按用户或按实验室进行统计整合,便于管理员统计查询或便于用户查询个人的应交费情况.n用户自
12、服务系统:n用户可以通过该系统修改个人的信息资料,或查询个人的交费情况.15Copyright Tarena Technologies Inc., 2008. All rights reserved.Tarena High-End IT T中国北京中国北京电话:(010)62135687、62136369地址:北京市海淀区北三环西路甲18号 中鼎大厦B座7层中国上海中国上海电话:(021)61202630、61202603地址:上海市北京东路668号 上海科技京城B区9层 加拿大多伦多加拿大多伦多电话:(416)491-6456 地址:Suite 1208, Deerford Road, To
13、ronto, Ontario, Canada邮编:M2J 3J3中国广州中国广州电话:(020)85518868、85518898 地址:广州天河区岗顶侨鑫教育主楼三层需求分析需求分析 -用例分析用例分析16采集整合用例采集整合用例数据采集数据整合后台数据服务系统管理人员数据采集客户数据采集服务器17采集的采集的C/S设计设计n采集过程的特点:n由于系统本身分散的特点,采集点与数据存储点是分散的.n采集点是客户Client,存储点是数据库服务器Servern采用两种方式C/S可以达到目的.nJDBC是直接的C/S方式n优点:简单,直接n确定:数据库安全性差.现在已经产生很多技术避免对数据库的直
14、接访问.如EJB,Web服务,JMS等n低层的Socket数据传输方式.本设计中采用的方式.n优点:数据库安全.n缺陷:面向低层开发,需要处理多线程,数据传递失败等细节.18数据采集数据采集-采集点说明采集点说明 : 系统管理人员采集器系统日志数据处理器数据分析器1: 启动采集2: 采集3: 4: 分析5: 分析结果6: 处理(使用Socket发送)19数据采集数据采集-存储点说明存储点说明 : 系统管理人员服务器接受数据存储数据库1: 启动2: 接受3: 存储20数据整合说明数据整合说明 : 系统管理人员数据整合器整合数据1: 启动整合2: 整合数据3: 4: 存储整合数据可以用两种方式实现
15、Java代码实现整合代码实现整合存储过程实现整合存储过程实现整合21Copyright Tarena Technologies Inc., 2008. All rights reserved.Tarena High-End IT T中国北京中国北京电话:(010)62135687、62136369地址:北京市海淀区北三环西路甲18号 中鼎大厦B座7层中国上海中国上海电话:(021)61202630、61202603地址:上海市北京东路668号 上海科技京城B区9层 加拿大多伦多加拿大多伦多电话:(416)491-6456 地址:Suite 1208, Deerford Road, Toront
16、o, Ontario, Canada邮编:M2J 3J3中国广州中国广州电话:(020)85518868、85518898 地址:广州天河区岗顶侨鑫教育主楼三层采集源数据说明采集源数据说明 - 采集前采集前的补充说明的补充说明22用户登录数据记录源用户登录数据记录源wtmpx格式格式n在Unix中用户登录的记录存放的一个系统历史记录文件wtmpx中,该文件是二进制文件.n该文件的读取有两种方式:n通过C读取.n通过Java读取.本设计中采用的方式.n读取文件的关键是理解二进制记录格式,在C中有一个结构提utmpx,只要理解该结构体就可以理解记录格式.23理解理解utmpx结构体结构体24Wtm
17、px记录字节记录字节位置范围位置范围字节长度字节长度含义含义000-03132/* user login name */032-0354/* inittab id */036-06732/* device name (console, lnxx) */068-0714/* process id */072-0732/* type of entry */074-0752/* process termination*/076-0772/* exit status*/2/* 这是这是C数据类型补齐产生的空位数据类型补齐产生的空位*/080-0834/* time entry was made */*
18、 seconds */084-0874/* and microseconds */088-0914/* session ID, used for windowing */092-11120/* reserved for future use */112-1132/* significant length of ut_host */114-371257/* remote host name */25详细说明详细说明wtmpx26Type含义含义n#define EMPTY0n#define RUN_LVL1n#define BOOT_TIME2n#define OLD_TIME3n#define
19、 NEW_TIME4n#define INIT_PROCESS5n#define LOGIN_PROCESS6 -登录进程n#define USER_PROCESS7-用户进程n#define DEAD_PROCESS8-终止进程27Copyright Tarena Technologies Inc., 2008. All rights reserved.Tarena High-End IT T中国北京中国北京电话:(010)62135687、62136369地址:北京市海淀区北三环西路甲18号 中鼎大厦B座7层中国上海中国上海电话:(021)61202630、61202603地址:上海市北京
20、东路668号 上海科技京城B区9层 加拿大多伦多加拿大多伦多电话:(416)491-6456 地址:Suite 1208, Deerford Road, Toronto, Ontario, Canada邮编:M2J 3J3中国广州中国广州电话:(020)85518868、85518898 地址:广州天河区岗顶侨鑫教育主楼三层数据采集分析设计数据采集分析设计 -客户端客户端28数据采集分析设计数据采集分析设计n分析设计的思路n按用例场景为单位进行分析设计.n以时序图为主要手段,以类图为主要目的的分析模式分析设计.n分析中重点关注:数据源-处理过程-数据结构n分析中的三个阶段:n第一阶段:数学模型
21、建立阶段n实体类n功能类n第二阶段:业务逻辑模型建立阶段nDAO层类,n功能类责任分配.n第三阶段:模型整合与完善阶段n利用J ava的设计模式,产生辅助类,降低系统的耦合程度.29数据实体类图设计数据实体类图设计-数据源数据源30实体类实体类LogRecord说明说明nLogRecord:n把数据源的数据读取后以对象形式保存.n在该系统中,采用把登录/登出分开存放,便于分析.n负责封装日志中数据nuser:登录用户帐号ntype:登录类型,登录7/登出8nvisittime:登录/登出的时间nlabip:采集的服务器IP nuserip:用户IPnpid:登录进程ID,主要识别同用户的登录。
22、nMatchedRecordn负责存放匹配处理好的数据.就是把用户登录/登出整合成一条数据.n在数据发送,本地存储都以该类型的形式使用.31根据实体类设计成表结果根据实体类设计成表结果n原始采集用户登录时长明细表 (details_x) 其中x 是1-31-MatchedRecord类 字段英文名字段英文名字段汉字名字段汉字名类型类型约束条件约束条件说明说明loginname登录名登录名Varchar(20)loginip登录登录IPVarchar(24)logintime登录时间登录时间Timestamplogouttime登出时间登出时间Timestamplabip实验室实验室IPVarc
23、har(24)duration登录时长登录时长long32数据实体类图设计数据实体类图设计-数据存储目标数据存储目标33数据实体类说明数据实体类说明n在采集数据的存储方式,根据客户需求与系统性能的考虑,设计的时候把数据存储表结构分为三类:n采集的原始登录数据记录表。n按不同用户在不同实验室上的数据整合表。n按不同实验室的数据整合表。n留意:按实验室整合与按用户在不同实验室上整合的存储因为数据量的问题在设计上有区别。其中前者的表按天,月,年各一张,后者的天表31张,月表12张,年表根据年份一年一张。34采集的原始登录数据记录表采集的原始登录数据记录表n该表特点:n该类表一张。该表设计成一个,主要
24、是原始数据很少被查询。n数据量很大。n可能为用户查询使用业务的明细的时候查询。n登录/登出构成一条记录,不存储时长。n可能几个小时一条记录,也可能一小时内若干条记录。35按不同用户在不同实验室上的数据整合表按不同用户在不同实验室上的数据整合表n该类表主要存储整合后的数据。其中存储时长,按时间间隔分三种:n一小时内的数据整合成一条记录。单独存放在一张表中-天表。n一天内的数据整合成一条记录。单独存放在一张表中-月表。n一个月内的数据整合成一条记录。单独存放在一张表中-年表。n留意:n这三张表结构完全一样,除时间范围具体的值不同。n因为该表查询的频繁度很高,在设计的时候设计成天表31张,月表12张
25、,年表根据年份一年一张。36按不同实验室的数据整合表按不同实验室的数据整合表n该类表存储整合数据,其中不再存储用户登录名等信息,按时间间隔分三种:n一小时内的数据整合成一条记录。单独存放在一张表中-天表。n一天内的数据整合成一条记录。单独存放在一张表中-月表。n一个月内的数据整合成一条记录。单独存放在一张表中-年表。n留意:n该表的查询主要是运营商在统计运营情况的时候使用,使用频率相对较低。设计的时候采用每种表各一张。37设计实体类的意义设计实体类的意义n实体类是E-R中的E的编程语言描述.n实体类是数据的OO实现与分析设计结果.n使用实体类的好处:n在程序中以对象形式使用数据结果.n在程序中
26、数据可以持久.n可以很轻松与Hibernate融合.38类说明类说明nDetail-对应设计的表结构与原始采集后生成的格式一样nloginname 登录名nlabip 登录实验室IPnloginip 用户IPnlogouttime 登出的时间nlogintime 登录的时间nduration 登录时长nDetailDay, DetailMonth, DetailYear类与上面描述一样.39类的表结构描述类的表结构描述n按用户统计整合的时记录表detaildays_x 其中x是1-31 字段英文名字段英文名字段汉字名字段汉字名类型类型约束条件约束条件说明说明loginname登录名登录名Var
27、char(20)loginip登录登录IPVarchar(24)logouttime登出时间登出时间Timestamplabip实验室实验室IPVarchar(24)duration登录时长登录时长long40类的表结构描述类的表结构描述n按用户统计整合的天记录表detailmonths_x 是1-12字段英文字段英文名名字段汉字字段汉字名名类型类型约束条件约束条件说明说明loginname登录名登录名Varchar(20)loginip登录登录IPVarchar(24)logouttime整合时间整合时间Timestamplabip实验室实验室IPVarchar(24)duration登录时
28、长登录时长long41类的表结构描述类的表结构描述n按用户统计整合的月记录表detailyears_x x不定x表示年 字段英字段英文名文名字段汉字段汉字名字名类型类型约束条约束条件件说明说明loginname登录名登录名Varchar(20)Loginip登录登录IPVarchar(24)logouttime整合时整合时间间TimestampLabip实验室实验室IPVarchar(24)Duration登录时登录时长长long42类的表结构描述类的表结构描述n按服务器整合的时记录表detaildays 字段英字段英文名文名字段汉字段汉字名字名类型类型约束条约束条件件说明说明logoutti
29、me整合时整合时间间TimestampLabip实验室实验室IPVarchar(24)Duration登录时登录时长长long43类的表结构描述类的表结构描述n按服务器整合的天记录表degtailmonths字段英文名字段英文名字段汉字名字段汉字名类型类型约束条件约束条件说明说明logouttime整合时间整合时间TimestampLabip实验室实验室IPVarchar(24)Duration登录时长登录时长Long44类的表结构描述类的表结构描述n按服务器整合的月记录表detailyears 字段英文名字段英文名字段汉字名字段汉字名类型类型约束条件约束条件说明说明logouttime整合时
30、间整合时间TimestampLabip实验室实验室IPVarchar(24)Duration登录时长登录时长long45采集端类图采集端类图46时序说明时序说明 : CollectionLauchor : CollectionThread : DataCollector : LogDealer : LogRecord : MatchedRecord1: start( )2: collect( )15: deal(Vector)6: new11: new3: getNativeIP( )4: initlog( )5: mappingLogBuffer(String)8: parseLogBuff
31、er(MappedByteBuffer, Vector, Vector)7: activate(String)10: passivate(Vector, String)9: match(Vector, Vector)12: new13: init( )14: 47类说明类说明nCollectionLaunchor n采集主程序类,发动采集线程。 创建线程 CollectionThread th=new CollectionThread启动线程 th.start();48类说明类说明nCollectionThread n采集线程,负责启动采集过程。 产生DataCollector对象调用数据采集
32、函数collect释放资源线程关闭return49类说明类说明nDataCollector n负责采集环境的处理与数据采集,分析处理 获取本地IP getNativeIP初始化日志文件 initlog日志文件内存映射 mappingLogBuffer登出数据匹配 match读取上次未匹配的数据 activate注入LogDealer类型的logdealer对象调用logdealer的deal函数进行数据处理保存未匹配数据passivate解析日志 parseLogBuffer50类说明类说明nLogRecord类n负责登录/登出数据封装。nMatchedRecord类n负责匹配好的数据的封装。
33、 nCollectionListener接口n规范采集好的数据的处理方式。 nLogDealer类n负责匹配好数据的发送处理,如果发送失败,则数据被保存。该类主要实现CollectionListener接口。 51Copyright Tarena Technologies Inc., 2008. All rights reserved.Tarena High-End IT T中国北京中国北京电话:(010)62135687、62136369地址:北京市海淀区北三环西路甲18号 中鼎大厦B座7层中国上海中国上海电话:(021)61202630、61202603地址:上海市北京东路668号 上海科
34、技京城B区9层 加拿大多伦多加拿大多伦多电话:(416)491-6456 地址:Suite 1208, Deerford Road, Toronto, Ontario, Canada邮编:M2J 3J3中国广州中国广州电话:(020)85518868、85518898 地址:广州天河区岗顶侨鑫教育主楼三层数据采集分析设计数据采集分析设计 -服务器服务器端端52数据采集服务器端类图数据采集服务器端类图53类的时序说明类的时序说明 : ServerLauncher : DataRecieverTh : CollectionTh : DBEnvInit : DetailDAO : Detail1:
35、start( )4: start( )2: initDAO( )3: initSocket( )5: getDBParamter( )6: 7: getConnection(Properties)8: 12: insert(Detail)10: new9: recieve( )11: 54类说明类说明nServerLauncher类:n服务器数据接受器启动器 .nDataRecieverTh类:n服务器接受主线程。nCollectionTh类:n每个客户数据接收处理类。 nDBEnvInit类n数据库环境初始化类nBasicDAO泛型类n封装对数据库访问最常用的规范。 nDetailDAO类 n负责对数据库的数据增,删,修,查询操作.nDetail类n采集数据原始记录实体类。该类与MatchedRecord完全一样,在设计的时候为与客户端分开,故意设计成实体类,主要便于使用Hibernate。Detail类对应数据库中对应的t_detail_x31张表。 55Copyrig
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年音乐教师资格考试试题
- 2026年数字化背景下信息工程项目的关键技术研究题库
- 2026年软件设计师考试编程题库与技巧指导
- 2026年零售业营销策略与决策制定试题
- 2026年虚拟现实技术专家认证试题集VRAR开发及应用解析
- 2026年计算机编程语言Python入门与进阶测试题
- 2026年电子竞技知识库电竞知识竞赛试题及答案
- 2026年网络信息安全策略企业及个人网络防护措施设计题目
- 健全低空空域权属基础制度
- 智能餐厅点餐系统维护协议(2025年)
- 关键岗位人员风险管控与预警体系
- 加班工时管控改善方案
- 2025年江苏省高考地理真题(含答案解析)
- 口腔科院感预防与控制考核试题附答案
- 心肌梗死护理教学课件
- 2025年市场监督管理局招聘面试题及答案
- DB42T 1279-2017 机动车检验检测机构资质认定评审通 用指南
- 应急测绘服务方案(3篇)
- 2025至2030年中国移动充电车行业市场全景评估及发展策略分析报告
- 2025年湖南省长沙市长郡教育集团中考三模道德与法治试题
- 南京市五校联盟2024-2025学年高二上学期期末考试英语试卷(含答案详解)
评论
0/150
提交评论