电信计费系统毕业论文.doc

上传人:laozhun 文档编号:3988723 上传时间:2023-03-30 格式:DOC 页数:48 大小:605KB
返回 下载 相关 举报
电信计费系统毕业论文.doc_第1页
第1页 / 共48页
电信计费系统毕业论文.doc_第2页
第2页 / 共48页
电信计费系统毕业论文.doc_第3页
第3页 / 共48页
电信计费系统毕业论文.doc_第4页
第4页 / 共48页
电信计费系统毕业论文.doc_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《电信计费系统毕业论文.doc》由会员分享,可在线阅读,更多相关《电信计费系统毕业论文.doc(48页珍藏版)》请在三一办公上搜索。

1、数据挖掘技术在电信计费系统中的应用摘要随着网络的高速发展,一些大型厂商推出了服务器出租这项业务。为了使得出租商快捷、方便以及高效的统计出用户的登录信息及应缴费情况,本文开发了一个电信计费系统。本系统采用C/S架构,在UNIX环境下以C+为主要的开发语言开发完成。客户端的功能包括定时从非结构型服务器日志文件采集用户数据,匹配登入/登出信息,向服务器发送数据;服务端的功能包括接收客户端发送过来的数据,存储数据和整合数据等。从海量用户数据中匹配登入/登出信息采用了数据挖掘技术,所提取到的有效计费信息存储在Oracle数据库中。关键词:电信计费系统;数据挖掘;数据匹配;数据整合 The Applica

2、tion of Data Mining Technology in the Telecom Toll SystemABSTRACTWith the rapid development of the network , some large companies such as China Telecom launched the server rent business. In order to statistic user login information and charge more fastly, conveniently and efficiently, a Telecom toll

3、 system is developed in this paper. This system is programmed by C+ language with C/S architecture in Unix operater system.The functions in client port include reading user information from unstructural log file ,matching data and sending data to a server;The functions in sever port include receivin

4、g data from client, data storage and integrating data. Data mining technology is used in the huge amount of data matching processing and all the resultful data are all stored in Oracle database. Keywords:the Telecom toll system ; Data mining ;Data matching ;Data integration 目录1 引言11.1课题来源及意义11.2国内外发

5、展状况11.2.1数据挖掘技术的基本知识11.2.2数据挖掘技术的基本应用21.2.3数据挖掘技术的发展21.3 本文的主要工作21.3.1设计思想和实现目标21.3.2论文结构安排32 系统分析32.1可行性研究42.1.1 技术可行性42.1.2经济可行性42.2需求分析42.2.1项目业务需求42.2.2功能模块52.2.3用例描述73概要设计133.1业务流程133.1.1业务流程中几个存储文件的命名规则133.1.2业务规则说明133.2系统模块133.3接口设计153.3.1用户接口153.3.2外部接口153.3.3内部接口163.4数据结构设计163.4.1登入/登出记录数据类

6、173.4.2 匹配的用户登录记录类173.5数据库设计184 详细设计和实现204.1 客户端模块204.1.1 数据读取模块设计204.1.2 数据匹配模块设计234.1.3 数据发送模块设计274.2 服务端模块314.2.1数据接收模块设计334.2.2数据存储模块设计364.2.3数据缓冲池384.3异常设计394.3.1异常类结构图394.3.2客户端异常类说明394.4数据库具体实现405 结论42参考文献43致谢441 引言1.1课题来源及意义随着计算机及互联网技术的高速发展,一些大的厂家例如电信,推出了服务器出租这项业务,选择这项业务的用户可以通过远程登录服务器上进行自己的工

7、作。服务器出租就是指用户不需要自己购买服务器,只需要根据自己的业务要求,向运营商申请一个帐号通过远程登录,便可以轻松享用服务器。由于服务器的价格相当昂贵,所以更多的用户更倾向于选择租用,而不是购买。这样服务器出租便得到了广泛的发展。这时就需要一款运行在服务器上的计时软件,来统计用户的使用情况来做出相应的收费依据。在此背景下,电信计费系统便应运而生了,电信计费系统是专门为服务器租赁商开发研究的,租赁商只需要在各地区出租的服务器上安装本系统,就会有相应的数据从客户端源源不断发送到服务端,这样便可以轻松的了解各地服务器的运营状况,以及盈亏情况,同时也可以作为用户缴纳费用的依据。电信计费系统是专门为电

8、信制作的一款计费程序,可以非常方便、快捷、实时查询出用户需要缴纳的费用。方便运营商在后续阶段进行合理的计划调整。通过对这一课题的学习和研究,可以将电信计费系统的基本原理、实现流程等展现出来,并可作为新的综合电信计费系统来学习和研究,也可以顺带了解实际电信实时计费的工作流程,具有一定的现实意义。1.2国内外发展状况由于用户数量巨大,所有用户信息交错保存在非结构型日志文件中。如何从海量数据中找到某一用户的计费信息,就需要数据挖掘技术的支持。1.2.1数据挖掘技术的基本知识数据挖掘(Data Mining,简称DM),又称为数据库中知识发现(Knowledge Discovery from Data

9、base,简称KDD),它是一个从大量数据中抽取挖掘出未知的、有价值的模式或规律等知识的复杂过程1。整个知识挖掘(KDD)过程是由若干挖掘步骤组成,而数据挖掘仅是其中的一个主要步骤。尽管数据挖掘仅仅是整个知识挖掘过程中的一个重要步骤,但由于目前工业界、媒体、数据库研究领域中,“数据挖掘”一词已被广泛使用并被普遍接受,因此也可以广义地使用“数据挖掘”一词来表示整个知识挖掘过程,即数据挖掘就是一个从数据库、数据仓库或其它信息资源库的大量数据中发掘出有趣的知识。1.2.2数据挖掘技术的基本应用实际上数据挖掘技术从一开始就是面向应用的。目前,在很多重要的领域,数据挖掘都可以发挥积极促进的作用。尤其是在

10、如银行、电信、保险、交通、零售(如超级市场)等商业应用领域。数据挖掘能够帮助解决许多典型的商业问题,其中包括:数据库营销、客户群体划分、背景分析、交叉销售等市场分析行为,以及客户流失性分析、客户信用评分、欺诈发现等等。1.2.3数据挖掘技术的发展数据挖掘的目的就是为企业决策提供的正确依据,利用计算机及信息技术辅助完成从分析数据、发现问题、作出决策到采取行动这一系列操作。因此人们将这种机构行为和手段称这为“事务智能”(Business Intelligent,简称BI),BI能极大地改进决策的质量和及时性,从而改进机构的生产率或发挥竞争优势。所以近年来,一些大公司将数据分析和数据挖掘工具及其有关

11、技术组合起来形成所谓BIS(Business Intelligent Softwave)。其中SAS公司的的Enterprise Minter就是将数据源、数据预处理、数据存贮、数据分析与发掘、信息表示与应用等方面技术有机形成一个复杂数据挖掘系统有机整体。1.3 本文的主要工作1.3.1设计思想和实现目标设计思想是:任何用户登录Unix系统,Unix系统都会记录用户的登录信息,所有用户登入/登出的信息都保存在Unix的系统日志文件中。数据采集系统就是通过读取Unix系统日志文件中用户登入/登出信息,并找出成对的登入/登出记录,得到用户登录服务器的登入时刻、登出时刻、登录时间长度等电信用户收费需

12、要使用的数据。实现目标是: 把匹配处理好的数据保存成电信工作人员可以阅读的文本文件,做为电信收费依据。1.3.2论文结构安排本文的结构安排如下:第一章 引言介绍了课题的概况和相关技术的发展情况,以及课题的设计思想和实现目标。第二章 系统分析介绍了项目中涉及到的各种数据信息,各个功能模块的运行流程。第三章 概要设计概要设计文档主要描述了数据挖掘系统的总体设计,从上述文档中明确DMS系统需求的基础,从而划分出DMS系统的几大功能,进行系统开发分工,明确各模块之间的接口,为进行后面的详细设计和实现做好准备。第四章 详细设计及实现本章主要介绍了各个模块的具体实现流程图和具体实现代码第五章 结论回顾并总

13、结了课题的研究过程中所做的工作,也思考了研究过程中遇到的问题并列出了实践中的不足之处,最后根据自己的认识对相关技术的发展前景进行了展望。2 系统分析2.1需求分析电信公司现在具有哪些设备环境,能提供哪些原始数据,需要的最终数据形式是什么,数据是什么。电信公司为客户提供Unix服务器出租的服务,这样就必须有一个程序通过从Unix系统日志文件的海量数据中挖掘出用户登录、登出的时间来计算用户登录时长,并生成数据报表存储在公司另外的一个Oracle数据库中,以便电信公司计算费用。2.2功能模块根据用户需求分析,电信计费系统主要功能模块包括:数据读取,数据匹配,数据发送,数据接收,数据存储,数据整合。模

14、块具体活动流程如图2-1:图2-1系统活动图数据读取:该模块的主要功能是读取UNIX服务器上的的用户登录信息日志文件,备份日志文件,读取上一次未匹配成功的登录记录信息,读取备份的日志文件。数据匹配:该模块的主要功能是将数据读取模块读取到的数据按照图一定的关系匹配成完整的数据,未完成的匹配的数据保存在到文件中。方便下次读取时进行匹配。数据发送:该模块的主要功能是建立客户端socket网络连接,将匹配好的用户登录记录发送到服务,未发送成功的记录保存在文件中为下次发送时重新读取。数据接收:该模块的主要功能是建立服务端的网络连接,从客户端读取匹配好的用户登录信息放入缓冲池中。数据存储:该模块的主要功能

15、是将缓冲池中的数据保存到指定的数据库表中。数据整合:该模块的主要功能是将数据库中保存的用户登录记录按照日、月、年整合成详细的报表。2.3用例描述根据用户需求和功能分析,生成系统用例图。如图2-1所示。图2-2系统用例图电信计费系统各功能模块的用例说明如下:数据读取用例说明: 保存用户登录信息的UNIX系统日志文件在/var/adm目录下,文件名为wtmpx,日志文件以二进制方式进行存储的,如果想在UNIX下查看wtmpx,可以使用last命令:last -a -n number | -number -f filename name | ttywtmpx文件中每条记录都包含有372个字节,所包含

16、的每条记录项格式如下表2-1所示(其中灰色背景区域的数据为本系统需要采集的数据项): 表2-1用户登录记录数据项格式位置范围字节长度含义000-03132 用户登录名 032-0354 初始进程 id 036-06732 设备名 068-0714 进程ID072-0732 登录类型7-登入,8-登出 074-0752过程终止076-0772 退出状态2 这是C数据类型补齐产生的空位080-0834 登录时刻 /单位是秒 084-0874 和微秒 088-0914 会议编号,用于视窗 092-11120 预保留112-1132 significant length of ut_host 114-

17、371257/* 登录IP*/日志文件登录数据项总数可以使用公式:记录项总数=日志文件大小/372。数据采集基本流程如表2-2表2-2数据采集的基本流程用例名称数据采集功能简述DMS管理员运行数据挖掘系统,完成数据采集的功能前置条件数据挖掘系统在服务器上已正确安装基本流1. 管理员启动DMS服务端系统2. 管理员启动DMS客户端系统3. 客户端程序定期将登录数据文件备份,并清空源文件4. 客户端系统读取上次未匹配成功的登入信息5. 客户端读取备份的数据信息,剔除非法登录的用户6. 客户端获得用户的登入/登出记录表7. 客户端将用户登入/登出记录匹配为完整的登录记录客户端程序将不能成功匹配的登入

18、记录写到文件中保存8. 客户端程序将匹配好的登录记录发送到服务端9. 服务端程序接客户端发送的数据10. 服务端程序先将数据写到服务端文件存入缓冲池中11.服务端程序将缓冲池的数据保存到数据库中分支与异常第1步,若服务端程序启动失败,则发送异常报告。第2步,若客户端程序启动失败,则发送异常报告。第3步,若清空文件失败,则发送异常报告。第4步,若上次未匹配的登入记录文件不存在,则跳过到第5步。第5步,若读取备份的用户记录数据文件失败,则发送异常报告。第7步,若指定的保存文件不存在,则创建文件。第7步,若创建目录或写文件失败,则发送异常报告。第8步,若发送数据失败,则定时重传。第10步,若写入文件

19、失败,则发送异常报告。后置条件启动contrab命令,定时读取、发送数据备注无数据读取用例说明如表2-3:表2-3数据读取的基本流程用例名称数据读取功能简述客户端程序读取系统数据文件和上次未匹配的登入记录,形成用户登录记录项。前置条件DMS客户端程序启动基本流1) 读取上次未匹配的登入记录。2) 将存储到记录放入链表中。3) 读取备份的数据文件,清空源文件,将文件内容解析成可用的记录。4. 将解析得到的用户登录记录放入对应的链表中。5. 返回用户登录记录链表。分支与异常第1步,若上次未匹配的登入记录文件不存在,则跳过到第3步。第3步,若用户登录数据文件不存在,则报告异常。后置条件无备注无数据匹

20、配用例说明如图2-4:表2-4 数据匹配的基本流程用例名称数据匹配功能简述DMS客户端程序读取用户的登入/登出记录链表,找到一条匹配的数据,包装成匹配记录,添加到匹配链表中,删除登入/登出记录,并将本次未匹配的登入记录保存到指定文件中。前置条件已经获得用户登入/登出记录链表基本流1. 访问用户登入/登出记录链表,按照登入/登出的对应关系匹配数据,包装成匹配记录。2. 把匹配好的记录添加到匹配链表中3. 将未匹配的登入记录写到指定的文件中。分支与异常后置条件无备注无数据发送用例说明:表2-5 数据发送的基本流程用例名称数据发送功能简述客户端将匹配好的数据通过网络socket发送给服务端。前置条件

21、用户登录记录已经匹配成功基本流1.读取发送失败的文件。2.创建网络连接,链接到服务端。3.遍历匹配的用户登录记录集合,将匹配好的用户登录数据按照指定格式发送。4.删除发送的信息5.循环直到所有匹配的登录记录处理完成。6.保存发送失败的记录到文件中。 7.关闭网络连接。分支与异常第2步,若网络连接失败,则发送异常报告。第6步,若写文件失败,则发送异常报告。后置条件无备注无数据接收用例说明:表2-6 数据接收的基本流程用例名称数据接收功能简述DMS服务端接收从客户端传送过来的数据。前置条件服务器程序启动,客户端完成匹配,连接到服务端,并已发送数据。基本流1. 开启服务程序。2. 创建socket网

22、络连接。3. 开启新的线程为客户端服务。4. 循环从客户端中接受数据,保存在数据池中。5. 关闭流对象,关闭网络连接,终止线程。分支与异常第1步,若开启服务失败,则发送异常报告。第2步,若获得网络连接失败,则发送异常报告。第4步,若写出数据失败,则发送异常报告。后置条件无备注无数据保存用例说明:表2-6 数据保存的基本流程用例名称数据保存功能简述采集系统服务器将存放在数据池中的的数据保存到数据库。前置条件服务器已经接收到数据。基本流1、 建立到数据库的连接。2、循环访问数据池中的数据。3、 将数据池中的记录插入到数据库相应的表格中。4、访问完成后断开与数据库的链接。分支与异常第1步,若建立数据

23、库连接失败,则发送异常报告。第2步,若插入记录失败,则发送异常报告。后置条件无备注无数据整合用例说明:表2-7数据整合的基本流程用例名称数据整合功能简述服务端将接收到的用户登录的数据整合成日报表,月报表和年报表。前置条件数据库中存放有用户登录信息基本流1. 执行SQL语句,将数据库中存放的前一天的记录按照用户名和实验室ip地址为条件组合,统计出前一天,用户登录某一实验室机器的总时间,整理形成日报表。2. 执行SQL语句,根据日报表数据整合出用户登录服务器记录的月报表。3. 执行SQL语句,根据用月报表数据整合出用户登录服务器记录的年报表。分支与异常后置条件无备注无3概要设计3.1业务流程3.1

24、.1业务流程中几个存储文件的命名规则(1)系统日志文件由外部传递给客户端程序,客户端需要判定该文件是否存在然后才能采集, 采集的数据为该文件的备份文件,备份的文件由当前的日期和源文件名共同命名。(2)未匹配成功的登入数据项集合保存在文件中,文件名为faillog.dat。(3)发送失败的数据匹配集合保存在failsend.dat中。3.1.2业务规则说明日志登入/登出数据项读取规则:系统日志文件中的数据项有很多类,通过登录名和登录类型可以获知哪些信息需要采集,哪些信息可以舍弃,只有满足如下条件的数据项才是需要采集的:(1)登录名若以(.)开头,一般是登录程序本身的日志数据项,为非法数据,不需要

25、采集。(2)登录类型必须是7(登入)或8(登出),其他类型的可以舍弃。3.2系统模块图3-1系统功能模块图物理上DMS系统分为客户端和服务端两部分,在客户端包含数据采集模块,数据匹配分析模块和数据发送模块;在服务端端包含数据接收模块,数据存储模块和数据整合模块,各模块的主要功能如下所示:数据采集模块:该模块的主要功能是读取UNIX服务器上的用户登录记录日志的备份文件,提取有用的记录信息,如表3-1所示,保存到链表集合中,并传给数据匹配模块来进行数据匹配。表3-1 要读取的原始记录数据数据名数据含义是否需要采集备注说明logname用户名是匹配同一次登录会话的必需数据之一pid登录进程ID匹配同

26、一次登录会话的必需数据之二type登录类型7-登入,8-登出type的值在1-8之间,但只对7与8两种情况进行处logtime登录时刻/单位为秒是要采集的数据,logtime是登入或登出的时间 登录的IP地址是要采集的数据数据匹配模块:数据匹配模块的主要功能是将采集到的用户记录信息按照登入、登出关系匹配成一条完整的登入、登出记录,并计算出用户的在线时间,将这些信息推入链表中,然后将这些信息发送给数据发送模块。该模块的输入数据是从日志文件中采集到的原始记录,输出的是匹配好的登入、登出记录。表3-2需要匹配登录记录数据数据名数据含义logname用户登录名logintime登入时刻logoutti

27、me登出时刻durations登录时间长度logip登录终端的ip地址数据发送模块:该模块的主要功能是建立连接到服务端,将匹配好的登录、登出记录用通过网络TCP/IP协议发送到DMS系统服务端。数据接收模块:该模块在服务器端主要功能是从网络中接收客户端发送来的登录/登出数据。数据存储模块:该模块得主要功能是将从数据接收模块接收到的数据按照一定的格式添加到数据库中,保存为用户登入/登出记录明细表。数据整合模块:将数据库中保存的用户登录/登出记录明细表的数据整理生成日报表,根据日报表整合成月报表,根据月报表整合成年报表。用户登录服务器的信息在客户端匹配好后发送给服务端,服务端接收到这些数据,并保存

28、在数据库中形成用户登录记录明细表。客户端定期从wtmpx中提取数据,定期向服务端发送信息然后我们的程序需要用plsql定期的整理出日报表,月报表和年报表。在数据库中保存的用户登录记录信息结构如下表所示:表3-3数据库中保存的登录记录数据数据名数据含义Logname用户名Logintime登入时间Logouttime退出时间Durations在线时间长度Logip登录终端的IP地址Labip用户登录的实验室IP3.3接口设计3.3.1用户接口 用户:执行命令,启动DMS服务端程序。 系统:服务端系统正常运行,等待接收数据。 用户:执行命令,启动DMS客户端程序。 系统:客户端系统正常运行,采集并

29、发送数据。 3.3.2外部接口 客户端系统读取用户登录记录文件,获得用户登录、登出信息。 客户端系统读取上次未匹配成功的登入记录文件,获取未匹配的登入记录数据。 服务端系统将匹配好的数据写入数据库表中。 服务端系统整合出日报表,月报表和年报表。 3.3.3内部接口 客户端读取模块与匹配模块间的接口: 输入:读取解析好的用户登入/登出记录链表 输出:无 客户端匹配模块与发送模块间的接口: 输入:匹配成功的用户登录记录链表 输出:无 客户端数据发送与服务端数据接收间的接口: 输入:匹配成功的用户登录记录项 输出:接收成功与否的消息 服务端数据接收模块与数据保存模块间的接口: 输入:发送成功的用户登

30、录记录列表 输出:无 服务端数据保存模块与数据库间接口: 输入:发送成功的用户登录记录列表 输出:无 服务端数据整合模块与数据库间接口: 输入:用户登录记录明细表 输出:用户登录记录的日报表,月报表和年报表3.4数据结构设计根据系统需求,设计出如下数据实体:1、LogRec:登入/登出记录类,用来存放一条原始的用户登入/登出记录。2、MatchedLogRec:匹配成功的登录记录类,用来表示一条匹配成功的用户 登录记录。3.4.1登入/登出记录数据类(1)LogRec类图:图3-2 LogRec类图(2)LogRec类成员变量说明成员变量定义成员变量说明备注char logname32用户名i

31、nt pid用户的进程IDshort type登录类型7=登入;8=登出int logtime用户登入/登出时刻(秒)char logip257用户登录IP表3-4LoRec类成员变量3.4.2 匹配的用户登录记录类MatchedLogRec类图:图3-3MatchedLogRec类图MatchedLogRec类成员变量说明:表3-5MatchedLoRec类成员变量成员变量定义成员变量说明备注char logname32用户登录名char logip32用户登录终端IPint logintime登入时刻(秒)int logoutTime登出时刻(秒)int durations用户在线总时间(

32、秒)char labip257实验室IP3.5数据库设计根据用户需求,最后生成的数据库表包括:用户登录记录明细表、用户登录记录日报表、用户登录记录月报表和用户登录记录年报表。数据库具体表结构如下:表3-6用户登录记录明细表字段类型长度约束备注登录记录编号Number15PK系统自动生成用户IDchar32NOT NULL实验室IPchar20NOT NULL用户终端IPchar257NOT NULL登入时间Number20NOT NULL登出时间Number20NOT NULL登录时长Number12由登出时间-登入时间求得表3-7用户登录记录日报表字段类型长度约束备注用户IDchar32PK

33、实验室IPchar20PK日登录时长Number12NOT NULL登出时间Date表3-8用户登录记录月报表字段类型长度约束备注用户IDchar32PK实验室IPchar257PK月登录时长Number12NOT NULL登出时间Date表3-9用户登录记录年报表字段类型长度约束备注用户IDchar32PK实验室IPchar20PK年登录时长Number12NOT NULL登出时间Date4 详细设计和实现4.1 客户端模块Client类封装数据挖掘系统客户端的所有功能。 图4-1Client类图sendLogs方法定义:表4-1sendLogs方法方法原型public void sendL

34、ogs()方法功能执行数据挖掘系统客户端的完整过程,其中logReader 负责读取数据,logSender负责发送数据参数说明无返回类型void抛出异常调用类的异常4.1.1 数据读取模块设计 logReader类封装了读取日志数据的各项功能图4-2logReader类图LogReader成员变量说明如表4-2所示:表4-2logReader成员变量成员变量定义成员变量说明char logFileName50读取用户登录数据的日志文件名char backFileName50备份的日志文件名char failLoginsFileName50未匹配成功的登录记录保存文件名logins list保

35、存登入的记录链表logouts list保存退出的记录链表matches list保存匹配成功的记录链表readLogs方法如表4-3所示:表4-3readLogs定义方法方法原型Public : list readlogs()方法功能读取日志文件总调度函数 存储匹配好的数据集合参数说明无返回类型list抛出异常调用函数中可能抛出的异常readLogs方法活动图:图4-3readLogs活动图数据读取模块具体代码实现:int fd=open(backFileName,O_RDONLY); struct stat filestate; fstat(fd,&filestate); coutfile

36、size:filestate.st_sizeendl; for(int i=0;ifilestate.st_size/372;i+) LogRec log; read(fd,&log.logname,32); lseek(fd,36,SEEK_CUR); read(fd,&log.pid,4); log.pid=htonl(log.pid); / 大小端转换htons! read(fd,&log.logtype,2); log.logtype=htons(log.logtype); lseek(fd,6,SEEK_CUR); read(fd,&log.logtime,4); log.logti

37、me=htonl(log.logtime); lseek(fd,30,SEEK_CUR); read(fd,&log.logip,257); lseek(fd,1,SEEK_CUR); if(log.logname0!=.) if(log.logtype=7) logins.push_back(log); if(log.logtype=8) logouts.push_back(log); 4.1.2 数据匹配模块设计backup方法如表4-4所示:表4-4backup定义方法方法原型private:void backup()方法功能备份日志文件 并清空原文件参数说明无返回类型void抛出异常读

38、取数据失败,抛出BackupExceptionbackup方法活动图: 图4-4backup活动图readFailLogins方法如表4-5所示:表4-5readFailLogins定义方法方法原型public: void readFailLogins方法功能读取上一次未匹配成功的登入记录参数说明无返回类型void抛出异常读取数据失败,抛出ReadFailLoginExceptionreadFailLogins方法活动图:图4-5readFailLogins活动图readBackupFile方法如表4-6所示:表4-6readBackupFile定义方法方法原型public: void rea

39、dBackupFile方法功能读取备份的日志文件 把读取到的数据放入对应的属性中参数说明无返回类型Void抛出异常读取数据失败,抛出ReadBackFileExceptionreadBackupFile方法活动图:图4-6readBackupFile活动图matchLogRec方法如表4-7所示:表4-7matchLogRec定义方法方法原型Public: void matchLogRec()方法功能将用户登入/登出记录按照用户名和IP匹配为完整的登录记录,存入matches参数说明无返回类型void抛出异常匹配数据失败,抛出MatchLogRecExceptionmatchLogRec方法活

40、动图:图4-7matchLogRec方法活动图saveFailLogins方法如表4-8:表4-8saveFailLogins定义方法方法原型Public: void saveFailLogins()方法功能将匹配失败的日志记录保存到指定的文件中参数说明无返回类型无抛出异常匹配数据失败抛出SaveFailLoginsException数据匹配模块具体代码实现:list:iterator oit=logouts.begin(); list:iterator iit=logins.begin(); for(;oit!=logouts.end();) for(iit=logins.begin();i

41、it!=logins.end() if(!strcmp(oit-logname,iit-logname) & oit-pid=iit-pid& !strcmp(oit-logip,iit-logip) MatchedLogRec mlog; strcpy(mlog.logname,oit-logname); mlog.pid=oit-pid; mlog.logintime=iit-logtime; mlog.logouttime=oit-logtime; mlog.durations=oit-logtime-iit-logtime; strcpy(mlog.logip,oit-logip); matches.push_bac

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号