解决方案:电信主机计费系统_数据采集子模块
优采云 发布时间: 2022-11-26 11:23解决方案:电信主机计费系统_数据采集子模块
需求分析
1、根据软件工程的要求,重复用户的需求,得到用户的认可。
2.定制需求和专业化需求。
三、需求规范的主要内容
1)用例:系统中的角色。
2)事件流:系统中的角色如何协同工作以完成特定功能。
3)异常流量:处理各种突发情况。
4)前提条件:事件流和异常流中每个特定环节的依赖关系。
5)后置条件:事件流和异常流中每个特定环节的输出结果。
术语解释
DMS: 数据挖掘系统用户
:对于需要使用Unix实验室租赁服务的客户,用户通过电信公司提供的账号和密码登录指定的Unix机器,使用Unix服务。终端机
:用户通过本地终端机访问我们的Unix机,使用Unix服务,也就是我们所说的终端机。在我们的程序中,我们将记录该终端的IP作为向用户收费的依据之一。登录
日志文件:在Unix机器上自动记录用户登录/注销日志的文件:/var/adm/wtmpx;在我们的程序中,此文件也可以是程序外部指定的另一个文件。我们的程序需要从此文件中提取数据以匹配用户登录/注销的记录,并将其用作未来收费的基础。用户登录记录
:登录中记录的用户登录Unix系统的日志记录
日志文件,其中收录
用户的登录名、用户登录 Unix 的时间、登录的终端机器的 IP 和其他信息。用户注销记录:记录在用户注销Unix
系统的登录日志文件中的日志记录,其中收录
用户的登录名、用户注销Unix的时间、终端机登录的IP等。我们需要将用户的登录记录与注销记录进行匹配,以获得完整的登录信息并计算用户的登录时间。用户登录记录:将用户的登录记录与注销记录按照
对应关系进行匹配,形成完整的登录记录,登录记录收录
以下信息:用户登录名、登录时间、注销时间、登录时长、登录终端机IP等。
匹配登录/注销记录:等效于用户的登录记录。
不匹配的登录记录:在登录日志文件中,登录记录理论上匹配一个登录记录,但是有可能用户在我们采集
数据时还没有注销,所以日志文件中可能没有与登录记录匹配的登录记录,
这些登录记录我们将其保存在指定的文件中,并在下次采集
时读取。
项目背景
在电信业务中,有Unix实验室租赁业务。只要用户向电信运营商申请Unix账号,就可以远程登录Unix实验室,使用Unix系统。
用户需要使用电信运营商
提供的Unix实验室服务需要支付一定的费用,电信运营商需要一套数据采集
系统来采集
用户登录实验室的时间长度数据,以便作为在指定时间范围内向用户收费的依据。
数据采集系统必须采集
以下信息:登录用户名、登录时间、注销时间、登录总在线时间、登录实验室IP、用户终端IP等信息。
DMS 3.0项目需要开发这样一个通用的数据采集系统程序,采集
Unix机器记录的用户登录和注销的原创
记录,将这些记录解析并匹配成用户登录记录,然后发送到数据采集服务器,在服务器端以日期形式将这些数据保存在数据库中, 然后将这些数据整合成日报、月报和年报。
商业原理
任何用户登录到Unix系统,Unix系统
将记录用户的登录信息,所有用户登录/注销信息都保存在Unix系统日志文件中。数据采集系统是读取Unix系统日志文件中的用户登录/注销信息,并找出配对的登录/注销记录,获取用户在实验室的登录时间、注销时间、登录时间长度等电信用户需要用于计费的数据,最后将匹配数据保存到文本文件中,供电信工作人员读取,作为电信收费的依据。
用户登录到 Unix 系统的日志记录文件位于
Unix 的 /var/adm 目录,文件名为 wtmpx,日志文件为二进制文件,可以使用 Unix 中的最后一个命令查看,最后一个命令格式为:
最后一个 [-a] [-n 编号 | -编号] [-f 文件名] [名称 | tty]
WTMPX文件中的登录记录收录
372个字节,每个记录收录
数据项的格式如表1-1所示:(*敏*感*词*背景标记的数据项为要采集的数据项)。
登录记录总数的
计算方法如下:登录记录总数 = 日志文件大小/372。
匹配后的数据记录
功能概述
DMS3.0系统主要实现以下核心功能:数据读取、数据匹配、数据发送、数据接收、数据存储、数据集成。
1. 数据读取
该功能模块的主要任务是读取Unix机器的用户登录记录文件,并将文件信息解析为程序对象,以方便匹配模块的匹配。
2. 数据匹配
该模块的主要任务是根据登录/注销关系,将数据读取模块读取的数据匹配成完整的登录记录。
3. 数据发送
该模块的主要任务是建立客户端网络连接,并将匹配的用户登录记录作为字符串发送到服务器。
4. 接收数据
该模块的主要任务是建立服务器端网络连接,并从客户端读取匹配的用户登录记录字符串。
5. 数据存储
该模块的主要任务是将数据接收模块接收的数据保存到指定的数据库表中。
6. 数据集成
该模块的主要任务是将保存在数据库中的用户登录记录计划的数据集成到日报、月报和年报中。
系统用例 0.术语概念
1)用例:系统中的角色。
2)事件流:系统中的角色如何协同工作以完成特定功能。
3)异常流量:处理各种突发情况。
4)前提条件:事件流和异常流中每个特定环节的依赖关系。
5)后置条件:事件流和异常流中每个特定环节的输出结果。
1. 用例图
【DMS3.0系统用例图】
2. 用例描述
数据采集
功能简介 :DMS管理员运行DMS程序完成数据采集功能
前提条件:DMS程序正确安装和部署
基本流程 :DMS管理员启动DMS服务器程序 DMS管理员启动DMS客户端程序 DMS客户端程序读取
上次不匹配的登录记录 DMS客户端程序读取用户登录数据文件 DMS客户端程序 获取用户登录/注销记录列表: DMS客户端程序将用户的登录和注销记录按照对应关系匹配成完整的登录记录, DMS客户端程序将无法成功匹配的登录记录写入文件并保存,DMS客户端程序将匹配的登录记录发送到数据采集
服务器,DMS服务器程序接收采集到的数据,DMS服务器程序将数据写入服务器文件并保存
有例外的分支
步骤1:如果启动服务器程序失败,则报告异常。
步骤2,如果启动客户端程序失败,则报告异常。
步骤3,
如果最后一个不匹配的登录文件不存在,请跳至步骤 3。
步骤4:如果读取用户登录数据文件失败,则报告异常。
步骤7:如果指定的写出目录不存在,请创建该目录。
步骤7,如果创建目录或写入文件失败,则报告异常。
步骤8:如果数据发送失败,将定期重新传输。
步骤 10:如果写入文件失败,请报告异常。
数据读取
功能简介:
DMS程序读取系统数据文件和上次不匹配的登录记录,以形成用户登录记录的列表。
前提 条件
DMS 客户端程序启动
基本流
1. 根据系统配置信息确定最后一个不匹配的登录记录文件的位置。
2. 读取上次不匹配的登录记录,形成用户登录记录列表。
3. 根据系统配置信息确定用户登录数据文件的位置。
4. 读取数据文件并将文件内容解析为用户登录记录。
5. 将上一步中解析的用户登录记录添加到列表中。
6. 返回用户登录记录列表。
有例外的分支步骤
2,如果最后一个不匹配的登录记录文件不存在,请跳到步骤 3。
步骤 4:如果用户登录数据文件不存在,则报告异常。
读取上次不匹配的登录记录
功能的简要说明
DMS 程序读取最后一个不匹配的登录记录以形成用户登录记录列表。
前提 条件
DMS 客户端程序启动
基本流
1. 根据系统配置信息确定最后一个不匹配的登录记录文件的位置。
2. 读取文件内容并将数据解析为用户登录记录。
3. 创建内存列表以保存读取登录记录数据。
4. 清除不匹配的登录文件。
有例外的分支
步骤2,如果最后一个不匹配的登录记录文件不存在,则结束此用例。
步骤2:如果读取文件失败,请报告异常。
步骤 4:如果文件清空失败,则报告异常。
读取用户登录数据文件
功能的简要说明
DMS程序读取用户登录数据文件以形成用户登录记录列表。
前提 条件
DMS 客户端程序启动
基本流
1. 根据系统配置信息确定数据文件位置。
2. 备份数据文件并删除原创
数据文件。
3. 根据系统配置信息确定最后一个不匹配的登录记录文件的位置。
4. 读取上次不匹配的登录记录,形成用户登录记录列表。
5. 读取数据文件并将文件内容解析为用户登录记录。
6. 将上一步中解析的用户登录记录添加到列表中。
7. 返回用户登录记录列表。
有例外的分支
步骤2:如果找不到数据文件,则报告异常。
步骤二:如果备份失败,请报异常。步骤
3,如果最后一个不匹配的登录文件不存在,请跳到步骤 4。
步骤4:如果读取备份数据文件失败,则报告异常。
步骤 6:如果指定的写出目录不存在,则创建一个目录。
步骤 6:如果创建目录或写入文件失败,则报告异常。
步骤7:如果指定的写出目录不存在,请创建该目录。
步骤7,如果创建目录或写入文件失败,则报告异常。
数据匹配
功能的简要说明DMS程序读取用户登录/注销记录列表,根据登录
" />
/注销的对应关系匹配完整的用户登录记录,并将不匹配的登录记录写入指定文件。
前提 条件
已获取用户登录/注销记录列表
基本流
1. 访问用户登录/注销记录列表
并根据登录/注销的对应关系匹配登录记录。
2. 将不匹配的登录记录写入文件。
匹配登录记录
功能的简要说明
根据对应关系将用户登录/注销记录与用户登录记录进行匹配,以计算用户的登录时间。
前提 条件
已获取用户登录/注销记录列表
基本流
1. 定义两个列表来保存登录记录和注销记录。
2. 循环访问用户登录/注销记录列表,签出登录记录和注销记录,并分别存储在登录记录列表和注销记录列表中。
3.循环访问注销记录列表,遍历每个注销记录后的登录记录列表,找到对应的登录记录,将两条对应的记录合并为一条用户登录记录,然后从列表中删除两条记录。
4. 循环直到处理完所有注销记录。
保存不匹配的登录信息
功能的简要说明匹配
到文件后保存剩余的登录记录数据,以便下次匹配。
前提 条件
匹配登录记录已完成
基本流
1. 匹配完成后,将登录记录列表中的剩余记录写入文件并保存。
有例外的分支
步骤1:如果未找到指定的文件,则创建该文件。
步骤1:如果文件创建失败,请报告异常。
数据发送
功能的简要说明
采集
系统客户端通过网络将匹配的数据发送到服务器。
前提 条件
用户登录记录已匹配
基本流
1. 建立与服务器的网络连接。
2. 循环访问匹配的用户登录记录集合,获取匹配的用户登录数据记录。
3. 以指定格式发送匹配的用户登录数据记录。
4. 循环执行 2-3 个步骤,直到处理完所有匹配的登录记录。
5. 关闭网络连接。
有例外的分支
步骤 1:如果网络连接失败,则报告异常。
步骤二:如果数据写入失败,则报异常。
数据接收
功能的简要说明
采集系统服务器接收从客户端发送的数据。
前提 条件
服务器程序启动,客户端完成匹配,数据已发送。
基本流
1. 启动服务程序。
2. 获取互联网连接。
3. 启动一个新线程来服务客户。
4. 获取输入流和输出流。
5. 包装流对象。
6. 循环从输入流中读取字符串并将其保存在本地列表中。
7. 成功读取一行字符串后,向服务器发送成功传递标志。
8. 循环执行 5-6 个步骤,直到收到所有字符串。
9. 关闭流对象,关闭网络连接,然后终止线程。
有例外的分支
步骤一:如果服务无法启动,请报异常。
步骤2:如果网络连接获取失败,请报告异常。
步骤四:如果流对象获取失败,则报异常。
步骤6:如果读取数据失败,请报告异常。
步骤7:如果数据写入失败,则报告异常。
数据保存
功能的简要说明
采集系统服务器将接收到的数据保存到数据库中。
前提 条件
服务器已收到数据。
基本流
1. 建立与数据库的连接
2. 遍历接收到的数据列表
3. 将列表中的记录插入用户登录记录计划
4. 访问完成后关闭连接
有例外的分支
步骤一:如果数据库连接失败,则报异常。
步骤3:如果插入记录失败,请报告异常。
数据集成
功能的简要说明
采集
系统服务器将用户登录记录计划的数据集成到每日,每月和年表。
前提 条件
存在用户登录记录的详细列表
基本流
1.执行SQL语句,将前一天的记录合并到用户中
登录记录根据用户名和实验室IP进行排查,并统计用户每天登录实验室机器的总时间数据,形成每日报表。
2、执行SQL语句,根据用户登录记录日报表的数据,整合用户登录记录月报表。
3、执行SQL语句,根据用户登录记录月度报表的数据,整合用户登录记录年报。
合并每日报告
功能的简要说明根据用户登录记录
的详细信息,整合用户登录记录的每日报表
前提 条件
已获取前一天所有用户登录记录的详细信息
每天执行一次
基本流
1. 建立与数据库的连接。
2.执行SQL语句,根据用户在用户登录记录日程中合并前一天的记录
名称和实验室IP,并统计用户每天登录实验室机器的总时间数据,形成每日报告。
3. 关闭与数据库的连接
有例外的分支
步骤一:如果连接失败,上报异常。
步骤二:如果SQL执行失败,则报异常。
步骤三:如果数据库连接关闭失败,则报异常。
合并月度报告
功能的简要说明
每月报告根据用户登录记录合并,每日报告
前提 条件
已获取前一天所有用户登录记录的每日报告
例如,1号的所有数据都是在2号时获得的
每天执行一次
基本流
1. 建立与数据库的连接。
2、以用户登录名和实验室IP为条件分组,计算每个用户登录每个实验室的每月登录时间,并存储在月度表中。
3. 关闭数据库连接。
有例外的分支
步骤一:如果连接失败,上报异常。
步骤二:如果访问表失败,请报异常。
步骤三:如果连接关闭失败,则报异常。
合并年度报表
功能的简要说明
根据用户登录记录的月度报告合并年度报告
前提 条件
已获取上个月所有用户登录记录的每日报告
例如,在 2 月份,第 1 号的所有数据都可用
每月执行一次
基本流
1. 建立与数据库的连接。
2、按用户登录名和实验室IP分组,计算每个用户每月登录每个实验室的时间,并按年表存储。
3.关闭数据库连接。
有例外的分支
步骤一:如果连接失败,上报异常。
步骤二:如果访问表失败,请报异常。
步骤三:如果连接关闭失败,则报异常。
外形设计 术语说明物理
结构:描述系统功能模块与物理设备之间的连接。系统模块
:描述系统的功能模块。
界面设计:设计系统与用户、系统与
外部和系统的功能模块。
用户界面:描述系统与用户交互的依赖关系。外部
接口:描述系统与其他外部系统之间的依赖关系。
内部接口:描述系统内功能模块之间的依赖关系。
整体设计
业务流程
这是该项目的一般流程图,没有涉及任何具体细节。一般过程如图所示,首先读取数据,即从日志文件中读取数据,然后将放入内存集的数据与所需数据进行匹配,并将匹配集发送到服务器。服务器接收数据,将数据保存到数据库中,数据进入数据库进行集成。
描述:
1、业务流程中若干存储文件的命名规则:
1.1 系统日志文件从外部传递给程序,程序需要确定它们是否存在才能采集
。
1.2 不匹配登录数据项集合的存储路径从外部传递给程序,文件名采用登录.dat。
2、业务规则说明:
2.1 日志登录/注销数据项读取规则
系统日志文件中的数据项较多,但并非所有数据项都需要采集,只需采集满足以下条件的数据项:a) 登录
名不能以点(.)开头,一般是登录程序本身的日志数据项,不需要采集。
b) 登录类型
必须为 7(登录)或 8(注销),登录类型在下面的列表中指定:
系统模块
1、数据采集模块:该模块的主要功能是读取Unix机器上用户登录日志文件的内容,将其转换为登录记录对象,将这些对象存储在STL集合中,传输到数据匹配分析模块进行分析。该模块的输入数据是 Unix 机器的日志文件 /var/adm/wtmpx,输出数据是几个登录日志对象(保存在集合中)。
2、数据匹配分析模块:该模块的主要功能是根据登录情况,将数据采集模块采集的用户登录记录数据匹配成完整的登录/注销记录
注销关系,并计算用户登录的长度,然后将这些完整的登录/注销记录传送给数据发送模块。模块的输入数据为原创
登录记录对象,输出数据为匹配的登录/注销记录对象。
3、数据发送模块:该模块的主要功能是以网络传输的形式将匹配的登录/注销记录发送到采集系统服务器。
4、数据接收模块:该模块的主要功能是读取采集客户端从网络发送的登录/注销数据。
5、数据存储模块:该模块的主要功能是将数据接收模块接收的数据以指定格式写入数据库,并保存为用户登录记录的详细列表。
6、数据集成模块:将数据库中保存的用户登录记录详细信息数据整理成日报,根据日报整合月报,根据月报整合年报。
界面设计
1. 用户界面
用户:运行命令以启动DMS3.0服务器。系统
:服务器系统正在运行并等待接收数据。
用户:运行命令以启动 DMS3.0 客户端程序。系统
:客户端系统运行、采集
和发送数据。
用户:修改客户端配置文件参数
系统:下一次运行根据新的配置参数处理数据。
用户:修改服务器端配置文件的参数
系统:下一次运行根据新的配置参数处理数据。
2. 外部接口
系统读取用户登录记录文件,获取用户登录信息。
系统读取上一个不匹配的登录记录文件,获取不匹配的登录记录数据。
系统将匹配的数据写入指定的数据库表。
该系统集成了月度和年度报告。
3. 内部接口
数据读取模块和数据匹配模块之间的接口:
输入:用户登录/注销记录的解析列表。
输出:无数据
匹配模块与数据发送模块之间的接口:
输入:匹配的用户登录记录的列表。
输出:无数据
发送模块与数据接收模块之间的接口:
输入:匹配用户登录记录数据项
输出:接收成功或失败消息
数据接收模块与数据存储模块之间的接口:
输入:匹配用户登录记录的列表
输出:无
数据存储模块和数据库之间的接口:
输入:匹配用户登录记录的列表
输出:无
数据集成模块和数据库之间的接口:
输入:用户登录记录详细信息
输出:用户登录记录每日、每月和年度报告
数据结构设计
根据系统要求,设计以下数据实体:
1、LogRec:登录/注销记录类,用于表示原创
用户登录/注销记录。
2、MatchedLogRec:匹配的登录记录类,用来表示匹配的用户登录记录。
下面介绍了每个实体类的设计:
LogRec 类图:
描述:
MatchedLogRec 类图:
描述:
数据库设计
详细设计 1.数据类图
服务器端类图
1) 服务器类说明
成员变量说明:
类方法说明:
会员描述:
创建线程时使用 ThreadID 来标记线程对象
方法说明:
运行执行特定的数据引入工作
start 完成线程的创建并启动线程
接收数据(void *) 创建线程时调用的线程函数
3) 数据保存线程类说明
会员描述:
创建线程时使用 ThreadID 来标记线程对象
将数据存储到数据库的logDao对象
方法说明:
运行执行调用 DAO 的特定工作
start 完成线程的创建并启动线程
saveData(void *) 创建线程时调用的线程函数
4) 日志道类说明
方法说明:
连接到数据库
saveData 根据日志记录的退出时间存储放置在相应日志表中的数据
如果退出时间为 8 天,则会放入 logdetail08 日志表中
提交数据提交事务断开
断开
5) 用户数据类说明
成员变量的说明
类方法说明
客户端类图
1) 客户端类的描述:
- 公共无效发送日志()
功能功能:执行数据采集客户端的完整过程logReader负责读取数据log发送者负责发送数据
2) LogReader 类的描述:
logReader 类封装了日志读取的所有功能
成员变量的说明
类函数说明:
活动图:
3) 日志*敏*感*词*类
成员变量的说明
异常类
1) 客户端异常类的描述
解决方案:站群系统管理平台简介.ppt
" />
文件介绍:站组系统管理平台介绍 十月 29, 2014 * 概述站组系统的概念 我校站群系统的特点 * 白水模式站组系统的概念 * 什么是站组系统?顾名思义,站组系统的概念是一种智能站组管理系统,可以在短时间内构建和管理多个网站。它是分层管理,分层维护,高度耦合,并且可以根据特定权限共享信息来呈现网站集。我校购买的通源站群系统管理平台采用异步JavaScript和XML(AJAX)技术和组件化开发。该系统完全基于浏览器,可以轻松创建和管理网站。*通源站群系统* 白水模式站群系统特点* 站群为一站式采集、编辑、分发系统,系统提供一站式内容采集、编辑、审核、发布。选择一个列以查看列文章列表。单击以采集
和编辑。 随时预览文章和专栏。批量发布、返工和转发文章。可以预览列、增量发布和完全发布列。非常易于使用。支持智能建站,可以通过多种默认建站模板和向导实现快速建站。*(自定义模板)使用 Dreamweaver 模板制作器插件,您可以快速制作模板。* 站组系统可实现一个平台上数百个站点的管理,每个站点可独立运行或资源共享,确保单位内多个站点的可持续发展。您可以随时切换到您工作的网站,每个网站可以收录
任意列和子列。、多列管理*、多列管理
" />