电信IP计费系统中的数据采集与整合_第1页
电信IP计费系统中的数据采集与整合_第2页
电信IP计费系统中的数据采集与整合_第3页
电信IP计费系统中的数据采集与整合_第4页
电信IP计费系统中的数据采集与整合_第5页
已阅读5页,还剩79页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、摘要该论文主要研究电信IP计费系统中的数据采集与整合,在设计过程中要解决的问题首先就是如何用CC+从服务器上读取数据,如何把读取的数据进行过滤,并把它们封装成一个结构通过网络传输出去并在网络另一端接收并存储到数据库当中,还有就是如何在ORACLE数据库中对采集的原始数据进行整合生成系统所需要的各个表。这些问题都是在设计当中要重点解决的问题。采集模块的主要功能就是从服务器上读取数据,并把它们封装成一个结构通过网络传到中央处理系统,然后插入到数据库中。在整个毕业设计过程中,通过课程的学习和与老师探讨问题,最终找到解决方案,用unix环境下提供的各个函数读取数据通过socket编程传输数据,然后通过

2、pro*c在中央处理系统中插入到数据库中。适当在服务器上创建作业就能定时采集。整合部分通过使用PL/SQL访问ORACLE数据库,写存储过程和作业实现对原始数据的整合。关键词:PL/SQL、Pro*C、数据采集、数据整合AbstractThis paper is researching about the data acquisition and integration in the IP telecom billing system. In the design process, there are some questions to be solved.First, How to read

3、 data from the server using cc+? How to filter the data which you read from the server, and hold the data encapsulation into a structure and output through the network transmission, on the other side of the network to receive and store them to database.Second, How to integrate the original data whic

4、h you acquisition in the ORACLE database.And generated some tables that your system need.All these questions should focus on solving in our design process.The main function of the acquisition and integration module is to read data from server and implementes the above functions. In the whole design

5、process of graduation, I am study hard and often discussion on the issue with teachers, finally I find the solution.Use the function that the UNIX operating system provided can easily got the data from server and use the socket programming transmite the data.Then insert data into ORACLE database usi

6、ng pro*c.Establish busywork on server suitable can gather data on time.The part of integration make use of PL/SQL to access ORACLE database,and to write procedure and busywork in order to integrate the original dataKey words: PL/SQL,PRO*C, data acquisition,data integration目 录1 绪论12 开发环境和相关知识介绍22.1 U

7、NIX概述22.2 PL/SQL概述32.2.1 PL/SQL的优点32.2.2 PL/SQL块结构32.2.2.1 声明部分(Declaration section)42.2.2.2 异常处理部分(Exception section)42.2.2.3 执行部分(Executable section)42.2.3 PL/SQL块语法42.2.4 PL/SQL块的命名和匿名52.2.4.1 函数52.2.4.2 过程52.2.4.3 包(package)52.2.4.4 触发器(trigger)62.3 Pro*C概述62.3.1 ORACLE 9i FOR RHLINUX6.2的PRO*C环境

8、62.4 什么是SOCKET82.4.1 UNIX环境下SOCKET编程基本过程:83 系统需求分析与概要设计103.1 系统设计思想:103.2 系统功能描述:103.3 需求分析:103.4 系统概要设计133.4.1 系统模块划分:133.4.2 业务流程图:133.4.3 总体架构图:143.4.4 实体间关系图:143.4.5 课题相关模块分析153.4.5.1 系统部署图:153.4.5.2 部署、用例与组件图163.5 课题设计思想:213.6 课题详细描述:224 课题详细设计244.1 数据库设计:244.2 采集系统的实现流程:(UNIX环境下)264.3 定时操作:(UN

9、IX环境下)334.4 整合模块的实现:345 系统测试37总结与体会38致 谢39参考文献40附录一:毕业设计主要代码41附录二:英文资料原文47附录三:英文资料译文671 绪论本课题采用由亚信公司提供的“电信用户管理和计费系统NetCT OSS” 该系统是一个典型的基于Unix平台、Oracle数据库、Web界面,融合Java和C+两种语言实现的大型软件项目,是为电信运营的IP计费服务的。该系统运行于Tomcat平台,采用JavaEE架构、Struts框架,Hibernate、Spring技术及Oracle 数据库,并成功运行于Sun Solaris UNIX及Windows2000环境下

10、。该系统主要分为用户自服务管理模块,管理员管理模块,用户管理等模块,资费模块,帐单和帐务模块以及数据采集与整合模块。本论文主要阐述的是该系统下的两个模块,数据采集与整合。数据采集与整合是整个系统的后台实现,功能是定期采集(采集系统)原始计费日志文件(UNIX系统下的/var/adm/wtmpx文件),并将采集的数据封装整理成BIDR结构的数据清单,然后通过Socket上传给中央处理系统;中央处理系统收集信息并通过Pro*C将数据保存到Oracle数据库当前时间所对应的t_daily_x表中,最后利用PL/SQL周期性进行数据的整合(整合系统)。该课题在设计中要解决的主要问题就是在采集过程中,如

11、何解决数据匹配问题,如何将采集到的有效数据封装成我们需要的结构并输出到网络另一端,由接收端将数据插入到数据库中,如何在数据库中进行周期整合,产生系统所需要的各个表。指导这些问题解决的思想就是文件读写、socket编程、pro*c和用PL/SQL编写的存储过程以及UNIX下的作业操作。在设计中主要用到的语言以及技术主要是Unix C+、PL/SQL、Pro*CC+。之所以选择这些语言及技术,一方面是因为在电信运营支撑系统中,效率有着很关键的作用,效率直接影响着整个系统的使用,另一方面是在UNIX系统下,已经存在对日志文件读取的各种接口,可以很方便的实现采集。考虑到数据采集与整合的这些诸多特点,所

12、以在做该子系统时选择了Unix C+、PL/SQL、Pro*C C+等语言和技术。2 开发环境和相关知识介绍2.1 UNIX概述UNIX是一个强大的多用户、多任务操作系统,支持多种处理器架构,最早由Ken Thompson、Dennis Ritchie和Douglas McIlroy于1969年在AT&T的贝尔实验室开发。经过长期的发展和完善,目前已成长为一种主流的操作系统技术和基于这种技术的产品大家族。由于UNIX具有技术成熟、可靠性高、网络和数据库功能强、伸缩性突出和开放性好等特色,可满足各行各业的实际需要,特别能满足企业重要业务的需要,已经成为主要的工作站平台和重要的企业操作平台。Ken

13、和Dennis最早是在贝尔实验室开发Unix的,此后的10年,Unix在学术机构和大型企业中得到了广泛的应用,当时的UNIX拥有者AT&T公司以低廉甚至免费的许可将Unix源码授权给学术机构做研究或教学之用,许多机构在此源码基础上加以扩充和改进,形成了所谓的Unix“变种 (Variations)”,这些变种反过来也促进了Unix的发展,其中最著名的变种之一是由加州大学Berkeley分校开发的BSD产品。后来AT&T意识到了Unix的商业价值,不再将Unix源码授权给学术机构,并对之前的Unix及其变种声明了版权权利。变种BSD Unix在Unix的历史发展中具有相当大的影响力,被很多商业厂

14、家采用,成为很多商用Unix的基础。BSD使用主版本加次版本的方法标识,如 4.2BSD,4.3BSD,在原始版本的基础上还有派生版本,这些版本通常有自己的名字,如4.3BSD-Net/1,4.3BSD-Net/2等。其不断增大的影响力终于引起了AT&T的关注,于是开始了一场旷日持久的版权官司,这场官司一直打到 AT&T将自己的Unix系统实验室卖掉,新接手的Novell公司采取了一种比较开明的做法,允许伯克利自由发布自己的BSD,但是前提是必须将来自于AT&T的代码完全删除,于是诞生了4.4 BSD Lite版,由于这个版本不存在法律问题,4.4BSD Lite成为了现代BSD系统的基础版本

15、。尽管后来,非商业版的UNIX系统又经过了很多演变,但其最终,都是建立在BSD版本上(Linux除外)。所以从这个角度上,4.4 BSD又是所有自由版(Free版)Unix的基础,它们和Unix V及Linux等共同构成Unix操作系统这片璀璨的星空。BSD在发展中也逐渐衍生出3个主要的分支:FreeBSD,OpenBSD和NetBSD。此后的几十年中,Unix仍在不断变化,其版权所有者不断变更,授权者的数量也在增加。Unix的版权曾经为AT&T所有,之后Novell拥有了Unix,再之后Novell又将版权出售给了SCO(这一事实双方尚存在争议)。有很多大公司在取得了Unix的授权之后,开发

16、了自己的Unix产品,比如IBM的AIX,HP的HPUX,SUN的Solaris和SGI的IRIX。Unix因为其安全可靠,高效强大的特点在服务器领域得到了广泛的应用。直到GNU/Linux流行开始前,Unix也是科学计算、大型机、超级计算机等所用操作系统的主流。2.2 PL/SQL概述PL/SQL是Procedural Language/SQL的缩写,是一种高级数据库程序设计语言,PL/SQL语言在将SQL语言的灵活性及功能与第三代语言的可配置能力相结合方面是独一无二的。该语言集成了面向过程语言的过程结构和强大的数据库操作,为设计复杂的数据库应用提供了功能强大、健壮可靠的程序设计语言。该语言

17、专门用于在各种环境下对Oracle数据库进行访问。由于该语言集成于数据库服务器中,所以PL/SQL代码可以对数据进行快速高效的处理。2.2.1 PL/SQL的优点从版本6开始PL/SQL就被可靠的整合到ORACLE中了,一旦掌握PL/SQL的优点以及其独有的数据管理的便利性,那么你很难想象ORACLE缺了PL/SQL的情形。PL/SQL 不是一个独立的产品,他是一个整合到ORACLE服务器和ORACLE工具中的技术,可以把PL/SQL看作ORACLE服务器内的一个引擎,sql语句执行者处理单个的sql语句,PL/SQL引擎处理PL/SQL程序块。当PL/SQL程序块在PL/SQL引擎处理时,O

18、RACLE服务器中的SQL语句执行器处理pl/sql程序块中的SQL语句。PL/SQL的优点如下:1、PL/SQL是一种高性能的基于事务处理的语言,能运行在任何ORACLE环境中,支持所有数据处理命令。通过使用PL/SQL程序单元处理SQL的数据定义和数据控制元素。2、 PL/SQL支持所有SQL数据类型和所有SQL函数,同时支持所有ORACLE对象类型3、PL/SQL块可以被命名和存储在ORACLE服务器中,同时也能被其他的PL/SQL程序或SQL命令调用,任何客户/服务器工具都能访问PL/SQL程序,具有很好的可重用性。4、可以使用ORACLE数据工具管理存储在服务器中的PL/SQL程序的

19、安全性。可以授权或撤销数据库其他用户访问PL/SQL程序的能力。5、 PL/SQL代码可以使用任何ASCII文本编辑器编写,所以对任何ORACLE能够运行的操作系统都是非常便利的6、对于SQL,ORACLE必须在同一时间处理每一条SQL语句,在网络环境下这就意味作每一个独立的调用都必须被oracle服务器处理,这就占用大量的服务器时间,同时导致网络拥挤。而PL/SQL是以整个语句块发给服务器,这就降低了网络拥挤。2.2.2 PL/SQL块结构PL/SQL是一种块结构的语言,组成PL/SQL程序的单元是逻辑块,一个PL/SQL 程序包含了一个或多个逻辑块,每个块都可以划分为三个部分。与其他语言相

20、同,变量在使用之前必须声明,PL/SQL提供了独立的专门用于处理异常的部分,下面描述了PL/SQL块的不同部分:2.2.2.1 声明部分(Declaration section)声明部分包含了变量和常量的数据类型和初始值。这个部分是由关键字DECLARE开始,如果不需要声明变量或常量,那么可以忽略这一部分;需要说明的是游标的声明也在这一部分。2.2.2.2 异常处理部分(Exception section)这一部分是可选的,在这一部分中处理异常或错误。 2.2.2.3 执行部分(Executable section)执行部分是PL/SQL块中的指令部分,由关键字BEGIN开始,所有的可执行语句

21、都放在这一部分,其他的PL/SQL块也可以放在这一部分。执行部分包含了所有的语句和表达式,执行部分以关键字BEGIN开始,以关键字EXCEPTION结束,如果EXCEPTION不存在,那么将以关键字END结束。分号分隔每一条语句,使用赋值操作符:=或SELECT INTO或FETCH INTO给每个变量赋值,执行部分的错误将在异常处理部分解决,在执行部分中可以使用另一个PL/SQL程序块,这种程序块被称为嵌套块所有的SQL数据操作语句都可以用于执行部分,PL/SQL块不能在屏幕上显示SELECT语句的输出。SELECT语句必须包括一个INTO子串或者是游标的一部分,执行部分使用的变量和常量必须

22、首先在声明部分声明,执行部分必须至少包括一条可执行语句,NULL是一条合法的可执行语句,事物控制语句COMMIT和ROLLBACK可以在执行部分使用,数据定义语言(Data Definition language)不能在执行部分中使用,DDL语句与EXECUTE IMMEDIATE一起使用或者是DBMS_SQL调用。2.2.3 PL/SQL块语法DECLARE-declaration statementsBEGIN-executable statementsEXCEPTION-exception statementsENDPL/SQL块中的每一条语句都必须以分号结束,SQL语句可以是多行的,但

23、分号表示该语句的结束。一行中可以有多条SQL语句,他们之间以分号分隔。每一个PL/SQL块由BEGIN或DECLARE开始,以END结束。注释由“”标示。2.2.4 PL/SQL块的命名和匿名PL/SQL程序块可以是一个命名的程序块也可以是一个匿名程序块。匿名程序块可以用在服务器端也可以用在客户端。命名程序块可以出现在其他PL/SQL程序块的声明部分,这方面比较明显的是子程序,子程序可以在执行部分引用,也可以在异常处理部分引用。PL/SQL程序块可背独立编译并存储在数据库中,任何与数据库相连接的应用程序都可以访问这些存储的PL/SQL程序块。ORACLE提供了四种类型的可存储的程序: 函数、过

24、程、包、触发器2.2.4.1 函数函数是命名了的、存储在数据库中的PL/SQL程序块。函数接受零个或多个输入参数,有一个返回值,返回值的数据类型在创建函数时定义。定义函数的语法如下:FUNCTION name parameter,parameter,.) RETURN datatypes ISlocal declarationsBEGINexecute statementsEXCEPTIONexception handlersEND name2.2.4.2 过程存储过程是一个PL/SQL程序块,接受零个或多个参数作为输入(IN)或输出(OUT)、或既作输入又作输出(INOUT),与函数不同,存

25、储过程没有返回值,存储过程不能由SQL语句直接使用,只能通过EXECUT命令或PL/SQL程序块内部调用,定义存储过程的语法如下:PROCEDURE name (parameter,parameter,.) ISlocal declarationsBEGINexecute statementsEXCEPTIONexception handlers END name2.2.4.3 包(package)包其实就是被组合在一起的相关对象的集合,当包中任何函数或存储过程被调用,包就被加载入内存中,包中的任何函数或存储过程的子程序访问速度将大大加快。包由两个部分组成:包规范和包主体,规范用来声明变量、常

26、量、游标、和子程序,包主体用来实现包规范中的一些子程序。2.2.4.4 触发器(trigger)触发器与一个表或数据库事件联系在一起的,当一个触发器事件发生时,定义在表上的触发器被触发。以上介绍了PL/SQL的基础语法以及如何使用PL/SQL语言设计和运行PL/SQL程序块,并将PL/SQL程序整合到Oracle服务器中,虽然PL/SQL程序作为功能块嵌入Oracle数据库中,但PL/SQL与ORACLE数据库的紧密结合使得越来越多的Oracle数据库管理员和开发人员开始使用PL/SQL。这也是毕业设计所涉及到的数据整合模块。2.3 Pro*C概述Pro*C就是把过程化语言C和非过程化语言SQ

27、L最完善地结合起来,具有完备的过程处理能力,又能完成对Oracle数据库的处理任务,使用户可以通过编程完成各种类型的报表。在Pro*C程序中可以嵌入SQL语言, 利用这些SQL语言可以完成动态地建立、修改和删除数据库中的表,也可以查询、插入、修改和删除数据库表中的行, 还可以实现事务的提交和回滚。在Pro*C程序中还可以嵌入PL/SQL块, 以改进应用程序的性能, 特别是在网络环境下,可以减少网络传输和处理的总开销。2.3.1 ORACLE 9i FOR RHLINUX6.2的PRO*C环境 1、PRO*C:ORACLE数据库作为数据库产品中的佼佼者,应用十分广泛,随着对其应用的深入,使用OR

28、ACLE和C来编制应用系统成为许多系统的选择,而ORACLE和C语言的接口知识成为应该掌握的和十分有用的。PRO*C是ORACLE的预编译器是一种编程工具,通过它把SQL语句嵌入到C语言程序中。如图: 预编译器把源程序作为输入,然后翻译程序中嵌入的 SQL语句,把它们转化成对标准的ORACLE运行库的调用,最后生成一个修改过的源程序。通过对修改过的源程序进行编译、接,形成可执行文件。2、环境配置:A、说明:ORACLE预编译器在ORACLE 8I安装时是默认或选择安装的,安装了PRO*C,则在$ORACLE_HOME/bin路径下就有了可执行程序PROC,以及相应的未经配置预编译环境。为使PR

29、O*C预编译器能工作还必须对环境进行一些配置。ORACLE的PRO*C是对预编译器的选项值的改变来配置环境的。预编译指令基本格式如下:Proc 选项名=选项值 源文件也可把选项值的改变放到config指定的文件中做。大部分选项我们都可以用默认值,但其中有几个选项是需要配置的。 CONFIG:指定PROC的CONFIG文件为$ORACLE_HOME/precomp/admin/pcscfg.cfg,我们可以编辑我们要使用的CONFIG文件。 INCLUDE:包括文件的目录路径,一般在CONFIG文件中配置,pcscfg.cfg中有默认定义。 SYS_INCLUDE:系统头文件所在目录,一般在CO

30、NFIG文件中配置,pcscfg.cfg中有默认定义。但要注意可能默认的系统头文件的路径不对。如 sys_include=($ORACLE_HOME/precomp/public,/usr/include,/usr/lib/gcc-lib/i386-redhat-linux/egcs-2.91.66/include) USERID:用户名/口令 dbname 连接串 B、配置:配置工作比较简单,只要将默认的CONFIG文件COPY到源程序所在的路径下,修改其中的USERID。 使用如下命令对PROC源文件进行预编译,输出相应的C源程序。Proc config=myconfg.cfg iname

31、=myprog.pc oname=myprog.c PRO*C将对INAME指定的PROC源文件进行预编译,输出ONAME指定的文件。 3、联编环境:预编译只是将PROC源文预编译成C源文件,而要将不同源文件编译生成的目标文件联编,则要指定联编所需要的LIBRARY,ORACLE接口程序(PROC程序)需要的the client shared library分布在许多路径下,为联编方便,ORACLE提供了$ORACLE_HOME/precomp/demo/proc/demo_proc.mk文件。使用如下命令:makef demo_proc.mk OBJS=”myporg.o mydb.o” E

32、XE=myprog.e build就可以完成联编2.4 什么是SOCKET SOCKET也就是所谓的套接字,简单的说它是一个文件。它是使用标准Unix文件描述符和其它程序通讯的方式,Unix中的一切就是文件,程序在执行任何形式的 I/O 的时候,程序是在读或者写一个文件描述符。一个文件描述符只是一个和打开的文件相关联的整数,这个文件可能是一个网络连接,FIFO,管道,终端,磁盘上的文件或者什么其它的东西。这里的SOCKET就是一个特定的文件描述符,(称之为Internet 套接字)用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过它向网络发出请求或者应答网络请求。Internet 套

33、接字分为多种形式,常见的有stream sockets流格式和datagram sockets数据报格式等。但经常用的就是这两种数据报套接节有时候也叫无连接套接字。由于数据采集是一个分布式的系统,需要把各个出租的实验室(客户端)上记录包含用户登录与退出信息的数据定期采集并发送到中央处理系统(服务器端)进行整合,然后插入到数据库中,所以需要用到SOCKET编程,这部分又是一个典型的C/S结构。2.4.1 UNIX环境下SOCKET编程基本过程:1.所需头文件:#include#include2.编译时所需链接库-lsocket -lnsl3.客户端socket程序的基本流程: 3.1 构造服务器

34、的sockaddr 3.2 生成一个socket int fd = socket( int family, int type ,int protocol) 3.3 连接服务器 int connect( int sockfd , const struct sockaddr *servaddr, socklen_t addrlen) 3.4 与服务器端通信(读、写操作) ssize_t read( int fildes, void* buf , size_t nbyte) ssize_t write( int fildes, const void* buf , size_t nbyte) 3.5

35、关闭socket close(int sockfd)4.服务器端socket程序的基本流程: 4.1 构造服务器的sockaddr 4.2 生成一个socket int fd = socket( int family, int type ,int protocol) 4.3 将socket与包含ip和port的socket地址结构绑定在一起 int bind( int sockfd , const struct sockaddr* myaddr, socklen_t addrlen) 4.4 主进程一直侦听用户的连接请求 int listen( int sockfd , int backlog

36、) 4.5 从连接请求队列中取出一个请求,并建立一个socket与之通信 int accept( int sockfd , struct sockaddr* cliaddr, socklen_t* addrlen) 4.6 启动子进程完成与用户的通信 ssize_t read( int fildes, void* buf , size_t nbyte) ssize_t write( int fildes, const void* buf , size_t nbyte) 4.7 子进程执行与用户的通信结束后,关闭连接socket close( int sockfd)3 系统需求分析与概要设计3.

37、1 系统设计思想:随着网络的不断发展,网络几乎进入了家家户户。查资料需要网络,看新闻需要网络,看电影需要网络,买东西也需要网络,网络给人们带来的方便无处不在,人们需要使用网络的愿望也越来越大。无法想象人们离开网络会是什么样的。现阶段,要想上网就必须向网络运营商申请代理服务器,随之而产生的问题就是计费和管理问题。另一方面为了让用户更放心的使用网络运营商的代理服务器,让用户随时可以查询自己的信息及使用情况,方便网络运营商管理一系列的复杂事物,以及处理大量的数据,我们设计了本系统。系统只针对电信运营商出租的实验室,即服务器。电信IP计费系统-NetCTOSS是利用J2EE平台下的WEB技术设计和运行

38、.通过利用C、C+从AAA服务器上采集数据然后利用PL/SQL整和到数据库中,供用户和管理员使用.其中持久层采用封装了JDBC的Hibernate框架,数据库采用Oracle,利用Struts框架作为控制器,页面显示采用JSP技术,并且用Spring框架整和Hibernate、Spring,完成企业级应用。3.2 系统功能描述:WEB系统可供用户和管理员查询相关内容。通过登录该系统,用户可以完成查询帐单,修改个人信息,浏览电信运营商提供的各种资费服务。管理员可以完成查询所有用户帐单,修改管理员信息,对用户进行管理(开通,关闭,删除用户帐号),对管理员进行管理(开通,关闭,删除管理员帐号),修改

39、资费项目,查看电信服务器运行情况。采集模块每小时执行一次,从日志文件中循环读取数据,过滤掉不符合要求的数据,采集符合要求的数据并将数据封装成bIDR结构发送到中央服务器端。整合模块根据采集到的数据进行整合并插入到各个表中,每小时执行一次。3.3 需求分析:各模块功能:资费管理:增、删、改、查资费信息(指定价格)管理员管理:增、删、改、查管理员信息用户管理:增、删、改、查用户信息(开通帐号,修改自身信息和需求)帐单查询:按月生成用户月计费帐单帐务查询:按月生成帐务月、年统计报表(对自己业务的查询,对服务器查询,管理)用户自服务:用户修改密码,查询帐单。采集模块:定期采集(次/小时)原始计费Log

40、(wtmpx)文件,整理成bIDR数据清单,并上传给中心处理系统。中心处理系统(接收系统)侦听并收集采集系统发送的数据信息bIDR,并将数据保存的数据库表t_detail_X 。整合模块:按小时合并清单表t_detail_X生成所有用户计费数据日表t_day_X;按天合并日表t_day_X生成所有用户计费数据月表t_month_X;按月合并月表t_month_X生成所有用户计费数据年表t_year_X;按小时合并清单表t_detail_X生成所有Lab_IP数据日表t_day;按天合并日表t_day生成所有Lab_ip数据月表t_month;按月合并月表t_month生成所有Lab_ip数据年

41、表t_year;1、用户管理需求:用户开通管理:管理用户登陆Open Lab的帐号,包括帐号开通、暂停(加锁)、恢复、删除。用户资料管理:管理用户资料,包括姓名(单位)、身份证号码、住址及资费信息等。用户信息:ID,姓名、帐务帐号/密码、Open Lab帐号/密码、状态(正常/暂停/关闭)、联系电话、Email、开通日期、停止日期、付款方式(现金/邮寄/支票/转帐/电子银行)、证件号码、职业(学生/IT从业人员/非IT从业人员)、国籍(中国/美国/加拿大/日本/英国/澳大利亚/其他)、性别(男/女)、单位、联系地址、邮政编码。注意:本系统一个用户对应一个帐务帐号,可以对应多个Open Lab帐

42、号。2、管理员管理需求:管理员开通管理:管理用户登陆NetCT OSS的帐号,包括帐号开通、暂停(加锁)、恢复、删除。管理员资料管理:管理管理员资料,包括姓名、身份证号码、住址等。管理员权限管理:改变管理员的各类权限。管理员信息:ID,姓名、帐号(一个)、密码、状态(正常/暂停/关闭)、联系电话、Email、开通日期、停止日期、权限注意:一个用户对应一个帐号。3、帐单管理需求:整合系统按月生成用户月帐单。帐单信息 用户标识信息:帐单ID,姓名、帐号、状态(正常/暂停/关闭)、联系电话、Email、开通日期.帐务信息:帐号、日期、登录时长、本月费用帐单明细:登录时间退出时间时长4、帐务管理需求:

43、按月、年分别生成月帐务信息统计报表和年帐务信息统计报表。月帐务信息生成一个计费月周期中,每一天的帐务信息。月帐务信息:日期时长费用年帐务信息生成一个计费年周期中,每一月的帐务信息。年帐务信息:月份时长费用5、用户自服务需求:用户可通过Internet自查询自己的当前或历史帐单,并能修改自己自己的一些信息。用户帐务信息自查询用户标识信息:帐单ID,姓名、帐号、状态(正常/暂停/关闭)、开通日期。帐务信息:日期、登录时长、本月费用帐单明细:登录时间 退出时间时长6、资费管理需求:用户可以通过登录系统来查询电信公司所提供的一些资费信息,以方便用户来使用。管理员通过登录系统可以根据公司运营情况来向其中

44、增、删、改资费信息。资费信息:资费ID,资费名称,月租,使用费,描述7、采集模块需求:所需系统文件:/etc/passwd(密码文件),/etc/shadow(用户名文件),计费Log文件数据库表 资料信息表:用户信息、管理员信息、资费信息、URL信息数据存储表:明细表、日表、月表、年表8、整合模块需求:所需数据库表:用户消费明细表、日表、月表、年表产生数据库表:服务器被使用量的日表、月表、年表业务模型:用户首先通过3A服务器验证后,可以使用出租实验室,并记录用户的登录与退出信息,信息经过加工处理生成系统所需数据持久化在数据库中,供管理和查询,如下图:3.4 系统概要设计3.4.1 系统模块划

45、分:该系统包括两个子系统:数据采集与整合系统与WEB系统。在数据采集与整合系统中又可分为数据采集模块与数据整合模块。数据采集与整合系统中的数据采集模块主要功能是将电信服务器上的计费文件中所有用户的消费记录采集并且整理出来,然后插入到数据库中。从功能上讲,该系统共分为三个模块,分别是采集模块,入库模块和网络模块。从部署运行方面讲该采集系统分为客户端和服务器端两个部分。客户端部署在电信服务器上,用于采集和整理计费文件中的原始记录并把结果发送到服务器端。服务器端用于接收从客户端发送过来的数据,并持久化到数据库中相应的表中。数据整合模块主要功能是将数据库中的用户原始的消费数据进行整合,形成可供用户和管

46、理查询的帐单,如日清单,月报表,年报表,以及仅供管理员查询的帐务清单,主要用于考察电信服务器的运行情况。该子系统是电信运营支撑系统中的后台实现,也是WEB系统的依赖。WEB系统是整个电信运营支撑系统的表现,是和用户进行交互的部分。该系统可供用户和管理员查询相关内容。通过登录该系统,用户可以完成查询帐单,修改个人信息,浏览电信运营商提供的各种资费服务。管理员可以完成查询所有用户帐单,修改管理员信息,对用户进行管理(开通,关闭,删除用户帐号),对管理员进行管理(开通,关闭,删除管理员帐号),修改资费项目,查看电信服务器运行情况。根据以上功能,该系统可分为六个模块,用户管理模块,管理员管理模块,用户

47、自服务模块,帐单管理模块,资费管理模块,帐务管理模块。3.4.2 业务流程图:通过底层的采集与整合模块将系统所需要的数据插入到数据库当中,供用户及管理员使用。由图可看出,用户想使用Openlab服务器就必须通过3A服务器的验证,验证通过则允许使用并记录日志。在web部分用户可以通过登录系统来查询及修改自己的信息,管理员可以管理相应的信息。如用户管理和计费管理3.4.3 总体架构图:DailyMonthlyYearORACLE中央处理系统采集系统LogRouterSwitch工作站帐务查询系统用户管理系统ADM管理系统DBS用户自理系统数据整合系统BIDR采集系统解析日志文件中的信息,把对我们有

48、用的信息采集回来,封装成一个结构传输到中央处理系统,然后持久化到数据库当中,经过整合这些数据,再分别存储到不同的表中,供系统使用。通过登录系统,用户可完成相应的操作,包括查询自己的消费信息,修改自己的一些信息等等。管理员则可对用户、业务及服务器进行管理。3.4.4 实体间关系图:3.4.5 课题相关模块3.4.5.1 系统部署图:采集部署图查询和管理部署图3.4.5.2 部署、用例与组件图用例图用例描述用例名称查询月帐单描述管理员可以进行月账单查询用例参与者管理员前置条件管理员已经登录成功 基本事件流登录成功后,管理员进入系统主页面,在主页面的导航菜单中点击帐单管理链接,页面就显示出系统中所有

49、帐务帐号在上月的总的费用的列表基本事件流登录成功后,管理员进入系统主页面,在主页面的导航菜单中点击帐单管理链接,页面就显示出系统中所有帐务帐号在某年某月总的费用的列表,因为帐务帐号很多,不利于查看,在此页面上有分页的功能,在列表下方有上一页和下一页的链接和选择页码的拉列表框,可以直接点击这两个链接或直接在列表框里选择页码来跳转到帐单列表页面,显示指定页面的信息基本事件流登录成功后,管理员进入系统主页面,在主页面的导航菜单中点击帐单管理链接,页面就显示出系统中所有帐务帐号在某年某月总的费用的列表,在此页面中有查询某帐务帐号在某年某月的功能,操作流程是,在页面上方有文本提示写着帐务帐号,后边有一个

50、文本框,在里面填写你要查询的帐务帐号名,后边还有两个下拉列表框,后边文本提示分别写着年、月,在这两个下拉列表框里分别选中你要查询的年和月,然后点击查询按钮完成操作,如果输入的帐务帐号存在,就会在列表页面显示此帐务帐号在某年某月总的费用,如果在帐务帐号文本框里没有输入会查某年某月所有帐号总的费用其他事件流无异常事件流如果查询不到任何结果,则显示没有查询到任何记录。后置条件无用例名称查询月帐单明细描述管理员可以进行月账单明细进行查询用例参与者管理员前置条件管理员已经登录成功 基本事件流登录成功后,管理员进入系统主页面,在主页面的导航菜单中点击帐单管理链接,页面就显示出系统中所有帐务帐号在某年某月总

51、的费用的列表,在每个帐务帐号的总费用之后都会有一个明细的链接,直接点击链接就会进入帐单明细页面 ,此页面会显示该帐务帐号上所有业务帐号上发生的所有费用的明细信息其他事件流无异常事件流无后置条件无组件图帐务管理模块:用例图用例描述用例名称查询月总计清单描述管理员浏览服务器的月使用时长清单用例参与者管理员前置条件管理员已经登录成功 基本事件流登录成功后,进入系统主页面,管理员点击左边导航条的帐务管理后,则显示当前月前一月以小时为单位的所有服务器一整月总计使用时间长度列表页面. 基本事件流登录成功后,进入系统主页面,管理员点击左边导航条的帐务管理后,则显示当前月前一月以小时为单位的每台服务器一整月总

52、计使用时间长度列表页面. 管理员可以选择年份和月份,查看指定某年某月的以小时为单位的所有服务器一整月总计使用时间长度列表异常事件流如果查询不到任何结果,则显示没有查询到任何记录。后置条件无用例名称查询年总计清单描述管理员浏览服务器的年使用时长清单用例参与者管理员前置条件管理员已经登录成功 基本事件流登录成功后,进入系统主页面,管理员点击左边导航条的帐务管理后,则进入服务器月总计列表页面,管理员可点击页面上方服务器年帐务查询链接,进入服务器年总计列表页面,在该页面显示以小时为单位的所有服务器去年总计使用时间长度.基本事件流登录成功后,进入系统主页面,管理员点击左边导航条的帐务管理后,则进入服务器

53、月总计列表页面,管理员可点击页面上方服务器年帐务查询链接,进入服务器年总计列表页面,在该页面管理员可以选择一个年份,查看指定年的以小时为单位的所有服务器一整年总计使用时间长度异常事件流如果查询不到任何结果,则显示没有查询到任何记录。后置条件无用例名称查询月详细清单描述管理员浏览服务器一月每日的使用时长清单用例参与者管理员前置条件管理员已经登录成功 基本事件流登录成功后,进入系统主页面,管理员点击左边导航条的帐务管理后,进入月帐务总计页面.在该页面中管理员点击要查看明细的服务器项最后的详细清单链接,进入月帐务明细页面,在该页面中显示出指定服务器在指定月份中每一天被访问的时长信息。异常事件流如果查

54、询不到任何结果,则显示没有查询到任何记录。后置条件无用例名称查询年详细清单描述管理员浏览服务器一年每月使用时长的清单用例参与者管理员前置条件管理员已经登录成功 基本事件流登录成功后,进入系统主页面,管理员点击左边导航条的帐务管理后,则进入服务器月总计列表页面,管理员可点击页面上方服务器年帐务查询链接,进入服务器年总计列表页面, 在该页面中管理员点击要查看明细的服务器项最后的详细清单链接,进入年帐务明细页面,在该页面中显示出指定服务器在指定年份中每个月被访问的时长信息。异常事件流如果查询不到任何结果,则显示没有查询到任何记录。后置条件无组件图3.5 课题设计思想:本人所负责模块的设计思想是从记录有用户登录与退出信息的文件中读取信息,并经过解析,提取出有效信息,并封装成我们所需要的结构,通过SOCKET编程将采集到的数据提交到中央处理系统,经过处理插入到数据库的原始数据表中。然后经过整合,分别整合成符合系统需求所需要的各个表中,供系统使用,如图1:serverT_DETAIL_XprocOpenlab1Openlab3Open

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论