资源描述
,Title Holder,*,单击此处编辑母版文本样式,第二级,第三级,*,Topics,*,Glossary Reference,单击此处编辑母版文本样式,第二级,第三级,*,API Reference,单击此处编辑母版文本样式,第二级,第三级,*,单击此处编辑母版文本样式,第二级,第三级,*,Questions&Answer,单击此处编辑母版文本样式,第二级,第三级,项目说明,数据采集与整合,主题,提出需求与理解需求,用户需求说明,相关开发技术,需求分析,提出需求与理解需求,-,企业系统环境,系统环境,Unix/Linux,操作系统,数据库,:MySQL5.0.51/Oracle,提出需求与理解需求,-,用户提出的需求,(1/4),争对目前使用,Unix/Linux,的人群增多,电信运营商开通一个新的业务,,Unix/Linux,实验室出租业务。用户可以向电信运营商申请,Unix/Linux,帐号,使用电信运营商的,Unix/Linux,服务器。,实验室出租业务:,就是用户可以在电信运营商申请一个帐务帐号,然后利用该帐务帐号申请一个业务帐号,用户利用业务帐号就可以登录到电信的,Unix/Linux,服务器,并使用电信运营商的,Unix/Linux,系统。,提出需求与理解需求,-,用户提出的需求,(2/4),帐务帐号:,凡是在电信运营商的用户使用电信运营商的业务都要缴纳费用,有的用户可能向电信运营商申请多种业务。为避免用户麻烦,电信运营商设置帐务帐号对用户的所有业务一起收费,帐务帐号主要包含用户的基本信息:姓名,出生日期,地址,工作单位,联系电话,邮政编码等信息,这些信息做为用户缴费参考信息。,业务帐号:,业务帐号从属于某帐务帐号,业务帐号主要包含用户登录实验室的登录帐号,登录口令,实验室,IP,地址,实验室帐号是否开通等信息,用户可以通过这些信息登录实验室进行实验操作。,业务开通:,当用户申请业务帐号后,前台工作人员会把信息给系统管理人员,由系统管理人员在指定,IP,的,Unix/Linux,服务器上添加新的帐号,新的口令,然后用户才可以登录实验室进行操作。,提出需求与理解需求,-,用户提出的需求,(3/4),用户登录实验室就需要缴费,电信运营商需要一套,数据采集系统,,把用户登录实验室的时间长度数据采集起来,并存储到数据库(注:目前采用,mysql,数据库),便于在指定的时间范围内作为对用户的收费依据。,要求数据采集必须采集如下信息:登录用户名,登录的时间,登出的时间,登录总的在线时间,登录的实验室,IP,,用户的终端,IP,等信息。,要求采集的用户使用实验室的时间数据要准确、完整不丢失。,Unix/Linux,实验室的可以由外网访问,但用户使用实验室的时间数据必须存储到内网的数据库。,提出需求与理解需求,-,用户提出的需求,(3/4),前台用户缴费的时候,工作人员在数据库中查询用户使用实验室的数据的时间必须很短。前台,计费管理系统,也准备开发,见,计费管理系统需求,用户也可以通过,用户自服务系统,查看个人的使用实验室的具体情况,比如每个业务使用的时间总和,以及每个业务每天,每时具体的使用明细。,用户自服务系统,也在准备开发中,见,用户自服务系统需求,从各实验室采集的数据,除做为收费依据外,电信运营商还需要对采集的数据进行统计分析,比如各实验室服务器使用情况的统计分析等。,提出需求与理解需求,-,用户需求理解概要,用户的需求就是把用户使用实验室的相关数据采集出来,:,为电信运营商收费提供数据依据,.,为用户查询提供数据,.,为运营商统计分析提供数据,.,要求,:,采集的数据要准确,完整,.,前台收费的时候,查询用户各业务的消费数据的速度要快,.,要保证内网数据库安全,.,提出需求与理解需求,-,数据采集原理,要想获得用户使用实验室的时间数据,主要利用实验室,Unix/Linux,系统对用户登录的日志记录功能,:,用户登入,/,登出,Unix,服务器,Unix,系统都会记录用户登入,/,登出的相关信息到一个文件,该文件称为用户,登录历史日志,文件,.,该文件在,Unix,系统的,/usr/adm/,目录下,文件名是,wtmpx,可以通过该日志文件获取用户登录的时间数据和其他相关数据,.,Unix,提供一个,last,可以查看该文件信息,.,提出需求与理解需求,-last,命令,提出需求与理解需求,-wtmpx,文件格式,位置范围,字节长度,含义,000-031,32,/*user login name*/,032-035,4,/*inittab id*/,036-067,32,/*device name(console,lnxx)*/,068-071,4,/*process id*/,072-073,2,/*type of entry*/,074-075,2,/*process termination*/,076-077,2,/*exit status*/,2,/*,这是,C,数据类型补齐产生的空位*,/,080-083,4,/*time entry was made*/*seconds*/,084-087,4,/*and microseconds*/,088-091,4,/*session ID,used for windowing*/,092-111,20,/*reserved for future use*/,112-113,2,/*significant length of ut_host*/,114-371,257,/*remote host name*/,提出需求与理解需求,-wtpmx,实际的数据,使用,last,查看到的数据是经过匹配处理的数据,.,其实,wtmpx,的数据是把登入,/,登出做为两条数据存放的,.,下面是使用,C+,读取的数据,提出需求与理解需求,-,数据库安全考量,问题,:,基于安全考量,程序在设计的时候,最好不要在实验室直接连接,MYSQL,数据库,因为这样设计的话,MYSQL,的连接参数就不是很安全,从而影响数据库的安全性,.,方案,:,我们在设计的时候应该采用基于网络的多层,C/S,的设计模式,.,实验室上写一个程序,负责读取日志,解析日志,并写一个网络客户程序,把解析好的数据通过网络发送到某个服务器,.,不是直接存入数据库,.,采集客户端,在远程写一个服务器程序,接收个实验室服务器上采集 并解析处理好的数据,然后再放入数据库,.,采集服务器端,提出需求与理解需求,-,多层结构示意图,提出需求与理解需求,-,数据采集分层,客户端数据采集发送层,服务器数据接收存储层,数据库服务器层,提出需求与理解需求,-,数据查询速度考量,问题,:,当使用用户多的情况下,(,注,:,按百万量记,),在前台营业人员收费的时候,查询某个用户使用实验室的时间数据就特别的慢,.,而且不便于将来生成用户的月账单和对开放实验室的使用情况进行月统计和年统计。,方案,:,单独设计一个,整合系统,对数据进行整合,.,把大量数据分组存放,.,分组规则如下,:,采集的原始数据根据采集的日期,按每天的单独存放,一共分成,31,张表存放每天采集的数据,.,定期对每组数据进行整合,.,将某个用户或某个实验室在某一时段内所用机时求和后形成一条记录。整合规则如下,:,1.,每小时定时整合一次,生成以小时为单位统计的数据,程序总是每小时定时整合前一小时的数据。,2.,每天定时整合一次,生成以天为单位统计的数据,程序总是每天定时整合前一天的数据,.,3.,每个月定时整合一次,生成以月为单位统计的数据,程序总是每个月定时整合前一个月的数据。,提出需求与理解需求,-,整合系统示意图,提出需求与理解需求,-,采集系统与其他系统物理关系,提出需求与理解需求,-,数据准确考量,(1/2),由于系统运行过程中可能出现不可预知的状况,可能出现数据丢失的情况,从五个方面考虑数据的准确性问题,:,综合考虑,先把日志文件在处理前进行备份,.,今后的任何失败,都可有原始数据参考,.,客户端数据读取,解析,:,解析没有匹配的数据一定要保存,在下次采集匹配的时候再次读取出来匹配,.,从理论上讲,登出数据肯定能找到匹配的登入数据,.,反之则不一定,.,解析过程一般不会出现数据异常的情况,.,提出需求与理解需求,-,数据准确考量,(2/2),客户端数据发送,:,数据发送的时候,可能出现网络故障,数据可能发送不出去,.,网络正常也有可能服务器端接收数据或保存数据错误,.,上面两种或其他异常发生的时候,数据一定要保存到文件中,在下次采集的时候,先发送历史失败数据,在发送新采集的数据,.,服务器端数据接受,存储,:,在,TCP,协议下,在服务器端数据可能在保存数据库的时候出现错误,比如网络问题,.,当服务器出现保存错误的时候,向客户发送错误标记,让数据保存在客户端,.,数据整合,:,数据整合的时候,可能发送数据库网络连接失败,延时等问题或其他异常问题,则需要记录该整合相关数据,便于客户通过,PL/SQL,编程或其他程序进行定点补充整合,.,提出需求与理解需求,-,采集系统与其他系统流程关系,提出需求与理解需求,-,采集系统程序结构,用户需求说明,-,需求说明的意义,从项目开发的过程来说,首先由用户提出需求,这种需求因客户档次不同,水平也有所不同,.,有的可能用口头提需求,.,有的可能简单罗列一些功能要求,.,有的可能罗列的更加专业,.,不管用户怎么罗列,系统开发项目组必须认真地研究客户的需求,确认用户的需求,并及时与用户沟通,保证系统开发组的理解与客户的需求相吻合,.,或者引导用户建立更好,更合理的需求,.,怎样才能与客户及时准确的沟通呢,?,文档就是最好的途径,.,特别在项目启动的初期,基本上是与客户沟通,等用户确认项目组的目标与客户的需求完全一致的时候,项目就可以正式开始分析,设计,编码,测试,部署,用户培训直到系统正常运行,.,通常在需求阶段有两个步骤,:,替用户从用户角度使用专业的方式复述用户需求,用户需求说明,进行初步分析,需求分析,建立简单模型,并用直观的文档来描述,(,注,:,推荐使用,UML,中的用例图与时序图可以直观说明,),该过程还是从用户角度分析,.,用户需求说明,-,系统环境,系统环境,:,系统结构:后台服务,+T/S,结构,操作系统:,Unix/Linux,操作系统支持,数据库:,MySQL/Oracle,任意数据库支持,用户需求说明,-,需求列表,XX,电信运营商新增一项,Open Lab,(开放实验室)出租业务,即该电信运营商提供基于,Unix,平台的实验室环境,选择使用这种业务的用户能够远程登录到实验室中做基于这个实验室环境的一些工作和实验。运营商希望借助先进的计算机技术对访问实验室的用户进行管理和计费,由此实现对此项业务运营的支持与管理。本项目主要包括以下子系统:,后台数据服务系统,采集子系统,整合子系统,计费运营管理系统,用户管理子系统,资费管理子系统,管理员管理子系统,帐单查询子系统,帐务查询子系统,权限管理子系统,用户自服务系统,用户个人信息维护子系统,用户帐单查询子系统,用户需求说明,-,需求列表结构图,用户需求说明,-,程序部署图说明,用户需求说明,-,需求详细说明,(1/2),采集系统,本系统是一个计费的系统,要想对用户进行准确的收费,首先必须能够获得用户使用开放实验室的准确的使用记录,采集子系统正是为了获取这些记录而提供的。,获取用户使用实验室的准确记录原理:,利用操作系统的自身功能,:开放实验室是一个,Unix,服务器,,Unix,服务器本身就具有记录系统日志的功能。用户每次登录和退出,Unix,服务器的信息都会被自动保存到一个在线日志文件,/var/adm/wtmpx,中。采集系统通过调用,Unix,系统函数来读取这个日志文件中的内容,然后对读取到的内容进行整理,整理为方便计费的数据,其中包括登录名、登录时间或登出时间等作为计费依据的数据。最后把这些数据存入数据库中,以备其他系统使用。为了使读取的数据
展开阅读全文