《电信运营-数据采集与整合.ppt》由会员分享,可在线阅读,更多相关《电信运营-数据采集与整合.ppt(59页珍藏版)》请在三一办公上搜索。
1、电信计费系统-数据,采集,整合,回顾,OOADUMLSocket编程多线程编程JDBC编程IO/NIO文件处理.,内容,理解采集与整合的需求.理解采集与整合的设计.理解采集源wtmpx数据的格式结构.理解采集数据的分析匹配结果数据.理解采集中类结构的设计-类图与时序图.理解采集中核心流程-类中函数说明.,整体需求与结构说明,采集需求说明,本系统是一个计费的系统,要想对用户进行准确的收费,首先必须能够获得用户使用开放实验室的准确的使用记录,采集子系统正是为了获取这些记录而提供的。获取用户使用实验室的准确记录有三种情况:利用操作系统的自身功能:开放实验室是一个Unix服务器,Unix服务器本身就具
2、有记录系统日志的功能。用户每次登录和退出Unix服务器的信息都会被自动保存到一个在线日志文件/var/adm/wtmpx中。采集系统通过调用Unix系统函数来读取这个日志文件中的内容,然后对读取到的内容进行整理,整理为方便计费的数据,其中包括登录名、登录时间或登出时间等作为计费依据的数据。最后把这些数据存入数据库中,以备其他系统使用。为了使读取的数据量不至于过大,采集系统会每小时定时执行一次,每次只采集上一个小时时间段之内的数据。2、利用开放实验室的个人web主页功能(personal web hosting):只要用户在其主目录(home)下创建了public_html目录,采集系统通过扫描
3、目录public_html就可以产生计费依据。访问开放实验室的web信息:用户每次访问web服务器,web服务器都会在access.log中记录下相应的信息,如客户端的ip和被访问的URL等。通过分析web服务器的访问日志产生计费依据。3、使用开放实验室的e-mail功能:根据邮箱的个数产生计费依据。说明:2,3的情况目前不做处理,提供扩展接口便于今后扩展。,整合需求说明,采集系统定时将用户使用服务器的数据存入到了数据库中,但这些数据都是流水帐的数据,是用户每次使用UNIX操作系统的用时。如果用户量大,用户频繁地登入/出,将产生大量的数据,不便于将来生成用户的月账单和对开放实验室的使用情况进行
4、月统计和年统计,因此,出现了整合系统。整合是将某个用户或某个实验室在某一时段内所用机时求和后形成一条记录。整合系统具体整合规则如下:1.每小时定时整合一次,生成以小时为单位统计的数据,程序总是每小时定时整合前一小时的数据。2.每天定时整合一次,生成以天为单位统计的数据,程序总是每天定时整合前一天的数据.3.每个月定时整合一次,生成以月为单位统计的数据,程序总是每个月定时整合前一个月的数据。整合按用户与实验室整合,便于帐单查询与帐务查询,以及用户自服务帐单查询.,相关术语字典,实验室就是用户使用的Unix服务器,用户需要帐号与口令,通过IP访问.业务帐号用户使用实验室需要的帐号,口令,IP必须向
5、电信运营商才能获得,该申请信息就是业务帐号,业务帐号中包含资费种类,用户的费用产生就是不同业务帐号下费用的总计.帐务帐号用户费用结算的信息就是通过帐务帐号来管理.帐务帐号主要记录用户的支付方式,申请的业务帐号等.帐单查询就是费用查询,费用按不同业务的费用按帐务帐号总计成用户费用.帐单查询就是查询帐务帐号下的费用,和每个帐务帐号下的业务帐号明细.帐务查询按实验室查询在每个实验室上产生的登录时长统计.用户自服务帐单查询.用户可以查询发生在自己个人帐务帐号下的总计费用,以及费用明细.,计费系统整体结构说明,XX电信运营商新增一项Open Lab(开放实验室)出租业务,即该电信运营商提供基于Unix平
6、台的实验室环境,选择使用这种业务的用户能够远程登录到实验室中做基于这个实验室环境的一些工作和实验。运营商希望借助先进的计算机技术对访问实验室的用户进行管理和计费,由此实现对此项业务运营的支持与管理。本项目主要包括以下子系统:采集系统整合系统用户管理系统资费管理系统管理员管理系统帐单查询系统帐务查询系统用户自服务系统权限管理系统,计费系统整体结构图,电信计费系统的业务工作流模型,电信物理结构拓扑图,数据采集部署结构图,用户计费原理,当用户申请帐务帐号后就有了交费数据,然后可以申请业务帐号.用户通过申请的业务帐号和口令登录电信的实验室服务器使用服务.计费的依据是用户使用实验室的时间长度和使用服务的
7、资费标准.用户使用实验室的时长公式:登录时长=用户登出时间-用户登录的时间.用户应该交纳的费用公式:交纳费用=登录时长*资费单位费用+资费基本费用.,要实施的系统,电信运营计费管理系统:用户通过该系统向管理员申请帐务帐号与业务帐号.管理员通过该系统录入资费标准.管理员通过该系统统计查询所有实验室的用户使用情况.超级管理员通过该系统授权一般管理员.电信数据采集与整合系统:采集系统:由系统定时启动扫描系统的登录历史文件,把用户登录/登出实验室的数据采集并分析处理后存储到数据库服务器.整合系统:把采集的原始数据按用户或按实验室进行统计整合,便于管理员统计查询或便于用户查询个人的应交费情况.用户自服务
8、系统:用户可以通过该系统修改个人的信息资料,或查询个人的交费情况.,需求分析-用例分析,采集整合用例,采集的C/S设计,采集过程的特点:由于系统本身分散的特点,采集点与数据存储点是分散的.采集点是客户Client,存储点是数据库服务器Server采用两种方式C/S可以达到目的.JDBC是直接的C/S方式优点:简单,直接确定:数据库安全性差.现在已经产生很多技术避免对数据库的直接访问.如EJB,Web服务,JMS等低层的Socket数据传输方式.本设计中采用的方式.优点:数据库安全.缺点:面向低层开发,需要处理多线程,数据传递失败等细节.,数据采集-采集点说明,数据采集-存储点说明,数据整合说明
9、,Java代码实现整合存储过程实现整合,采集源数据说明-采集前的补充说明,用户登录数据记录源wtmpx格式,在Unix中用户登录的记录存放的一个系统历史记录文件wtmpx中,该文件是二进制文件.该文件的读取有两种方式:通过C读取.通过Java读取.本设计中采用的方式.读取文件的关键是理解二进制记录格式,在C中有一个结构提utmpx,只要理解该结构体就可以理解记录格式.,理解utmpx结构体,Wtmpx记录字节,详细说明wtmpx,Type含义,#define EMPTY0#define RUN_LVL1#define BOOT_TIME2#define OLD_TIME3#define NEW
10、_TIME4#define INIT_PROCESS5#define LOGIN_PROCESS6-登录进程#define USER_PROCESS7-用户进程#define DEAD_PROCESS8-终止进程,数据采集分析设计-客户端,数据采集分析设计,分析设计的思路按用例场景为单位进行分析设计.以时序图为主要手段,以类图为主要目的的分析模式分析设计.分析中重点关注:数据源-处理过程-数据结构分析中的三个阶段:第一阶段:数学模型建立阶段实体类功能类第二阶段:业务逻辑模型建立阶段DAO层类,功能类责任分配.第三阶段:模型整合与完善阶段利用J ava的设计模式,产生辅助类,降低系统的耦合程度.
11、,数据实体类图设计-数据源,实体类LogRecord说明,LogRecord:把数据源的数据读取后以对象形式保存.在该系统中,采用把登录/登出分开存放,便于分析.负责封装日志中数据user:登录用户帐号type:登录类型,登录7/登出8visittime:登录/登出的时间labip:采集的服务器IP userip:用户IPpid:登录进程ID,主要识别同用户的登录。MatchedRecord负责存放匹配处理好的数据.就是把用户登录/登出整合成一条数据.在数据发送,本地存储都以该类型的形式使用.,根据实体类设计成表结果,原始采集用户登录时长明细表(details_x)其中x 是1-31-Matc
12、hedRecord类,数据实体类图设计-数据存储目标,数据实体类说明,在采集数据的存储方式,根据客户需求与系统性能的考虑,设计的时候把数据存储表结构分为三类:采集的原始登录数据记录表。按不同用户在不同实验室上的数据整合表。按不同实验室的数据整合表。注意:按实验室整合与按用户在不同实验室上整合的存储因为数据量的问题在设计上有区别。其中前者的表按天,月,年各一张,后者的天表31张,月表12张,年表根据年份一年一张。,采集的原始登录数据记录表,该表特点:该类表一张。该表设计成一个,主要是原始数据很少被查询。数据量很大。可能为用户查询使用业务的明细的时候查询。登录/登出构成一条记录,不存储时长。可能几
13、个小时一条记录,也可能一小时内若干条记录。,按不同用户在不同实验室上的数据整合表,该类表主要存储整合后的数据。其中存储时长,按时间间隔分三种:一小时内的数据整合成一条记录。单独存放在一张表中-天表。一天内的数据整合成一条记录。单独存放在一张表中-月表。一个月内的数据整合成一条记录。单独存放在一张表中-年表。注意:这三张表结构完全一样,除时间范围具体的值不同。因为该表查询的频繁度很高,在设计的时候设计成天表31张,月表12张,年表根据年份一年一张。,按不同实验室的数据整合表,该类表存储整合数据,其中不再存储用户登录名等信息,按时间间隔分三种:一小时内的数据整合成一条记录。单独存放在一张表中-天表
14、。一天内的数据整合成一条记录。单独存放在一张表中-月表。一个月内的数据整合成一条记录。单独存放在一张表中-年表。注意:该表的查询主要是运营商在统计运营情况的时候使用,使用频率相对较低。设计的时候采用每种表各一张。,设计实体类的意义,实体类是E-R中的E的编程语言描述.实体类是数据的OO实现与分析设计结果.使用实体类的好处:在程序中以对象形式使用数据结果.在程序中数据可以持久.可以很轻松与Hibernate融合.,类说明,Detail-对应设计的表结构与原始采集后生成的格式一样loginname 登录名labip 登录实验室IPloginip 用户IPlogouttime 登出的时间logint
15、ime 登录的时间duration 登录时长DetailDay,DetailMonth,DetailYear类与上面描述一样.,类的表结构描述,按用户统计整合的时记录表detaildays_x 其中x是1-31,类的表结构描述,按用户统计整合的天记录表detailmonths_x 是1-12,类的表结构描述,按用户统计整合的月记录表detailyears_x x不定x表示年,类的表结构描述,按服务器整合的时记录表detaildays,类的表结构描述,按服务器整合的天记录表degtailmonths,类的表结构描述,按服务器整合的月记录表detailyears,采集端类图,时序说明,类说明,Co
16、llectionLaunchor 采集主程序类,发动采集线程。,类说明,CollectionThread 采集线程,负责启动采集过程。,类说明,DataCollector 负责采集环境的处理与数据采集,分析处理,类说明,LogRecord类负责登录/登出数据封装。MatchedRecord类负责匹配好的数据的封装。CollectionListener接口规范采集好的数据的处理方式。LogDealer类负责匹配好数据的发送处理,如果发送失败,则数据被保存。该类主要实现CollectionListener接口。,数据采集分析设计-服务器端,数据采集服务器端类图,类的时序说明,类说明,ServerL
17、auncher类:服务器数据接受器启动器.DataRecieverTh类:服务器接受主线程。CollectionTh类:每个客户数据接收处理类。DBEnvInit类数据库环境初始化类BasicDAO泛型类封装对数据库访问最常用的规范。DetailDAO类 负责对数据库的数据增,删,修,查询操作.Detail类采集数据原始记录实体类。该类与MatchedRecord完全一样,在设计的时候为与客户端分开,故意设计成实体类,主要便于使用Hibernate。Detail类对应数据库中对应的t_detail_x31张表。,数据整合设计分析,类图,类图的时序说明,类说明,ServerLauncher类:整合启动程序类。DataIntegratorTh类:整合线程,主要完成整合的调用。Integration接口:整合接口规范IntegrationByCall类:整合的存储过程调用实现IntegrationByClient:整合的Java调用实现。IntegrationFactory类:利用工厂模式产生的一个类,负责产生整合对象。DBEnvInit类:见数据采集存储中的说明。ConnectionPool类:数据库连接池的实现。IntegrateImpl类是BasicIntegrateDAO的实现.BasicIntegrateDAO:基本的数据访问,整个整合过程的接口规范.,开始,