(计算机科学与技术专业论文)基于internet的拨号用户管理认证计费系统.pdf_第1页
(计算机科学与技术专业论文)基于internet的拨号用户管理认证计费系统.pdf_第2页
(计算机科学与技术专业论文)基于internet的拨号用户管理认证计费系统.pdf_第3页
(计算机科学与技术专业论文)基于internet的拨号用户管理认证计费系统.pdf_第4页
(计算机科学与技术专业论文)基于internet的拨号用户管理认证计费系统.pdf_第5页
已阅读5页,还剩55页未读 继续免费阅读

(计算机科学与技术专业论文)基于internet的拨号用户管理认证计费系统.pdf.pdf 免费下载

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

文档简介

摘要 本论文介绍基于i n t e r a c t 的拨号用户管理认证计费系统。论文首 先介绍了开发应用软件的基本技术和基本理论,然后对多进程的 p 蛆d i u ss e r v e r 的软件结构、多进程共享有限的数据库连接实现、双 r a d i u ss e r v e r 主各工作方式、邮件自动开户修改密码、在线用户强制 断线处理及专线流量计费等问题进行了详尽阐述。该系统在多平台上 实现了拨号用户的管理、认证、记帐、计费,并支持灵活的查询和复 杂的统计报表功能,实现了专线用户的计费管理。本文介绍了计费系 统的三大模块:用户拨号认证计费模块、用户前台管理模块、用户自 服模块,并对其中用户前台管理部分作了详尽阐述。论文中对整个管 理系统的体系结构、功能设计、数据自动备份系统等方面做了重点论 述。 关键词:客户机服务器,计费系统,进程,- 双r a d i u s f i e r v e r a b s t r a c t t h ep a p e risa b o u to ft h ed i a l i n gc o n s u m e rm a n a g e m e n ta n d a u t h e n t i c a t i o nt h ec a l c u l a t e f e es y s t e mb a s e do nt h ei n t e r n e t t h e p a p e r s t a r t sw i t ht h eb a s i ct e c h n o l o g ya n dt h e o r y o f d e v e l o p i n ga p p l i e ds o f t w a r e o nt h ei n t e r n e t t h e naf u r t h e r a n a l y s i s i sm a d eo ft h es o f t w a r es t r u c t u r eo fm u l p r o c e s s r a d i u ss e r v e ra n dt h ec o n n e c tr e a l i z a t i o no f u l p r o c e s ss h a r e l i m i t e dd a t a b a s ea n dd o u b l er a d i u ss e r v e rw o r k i n gm e t h o da n d m a i la u t o m a t i c a lm a n a g e m e n ta n dm o d i f yc o d e t h es y s t e m r e a l i z e st h e m a n a g e m e n t ,a u t h e n t i c a t i o n ,a c c o u n t i n g a n d c a l c u l a t e f e eo fd i a l i n gc o n s u m e ro r t h em u 卜p l a t f o r m ,s u p p o r t s f l e x i b l ei n q u i r ea n dc o m p l e xc a l c u l a t et a b l ef u n c t i o n ,c a r t i e s o u t s p e c i a l l i n ec o n s u m e rm a n a g e m e n t t h ep a p e ri n t r o d u c e s d i a l i n gc o n s u m e ra u t h e n t i c a t i o nc a l c u l a t em o d e l c o n s u m e rp l a t m a n a g e m e n tm o d e c o n s u m e rs e r v e rm o d e l i nt h i ss y s t e m t h e n af u r t h e ra n a l y s i sism a d eo fc o n s u m e rp 】a tm a n a g e m e n t t h i s p a p e re x p o u n d so nt h ef a c i i i t ya n dm a i n t a i n a b i l i t yo fw h o l e m a n a g e m e n ts y s t e ma r c h i t e c t u r e ,f u n e t i o n a ld e s i g n a n dd a t aa u t o b a c k u ps y s t e m k e yw o r d s :i n t e r n e t ,c 1 i e n t s e r v e r ,c a l c u l a t e f e es y s t e m p r o c e s s ,d o u b er a d i u ss e r v e r 第一章引言 i n t e r n e t 作为个了解迅速变化和发展的世界的窗口,越来越 多的企事业单位和个人想通过其了解世界。国际计算机互联网是目 前世界上使用人数最多,信息资源最丰富,现已连接世界上绝大多 数国家和地区的大型计算机网络。 互联网的飞速发展为互联网服务提供商( i s p ) 提供了巨大的商 机和挑战,互联网接入服务市场已面临着剧烈的市场竞争。i s p 为用 户提供优质的接入,同时更要提供周到、全面、令人满意的优质服 务,从而获得更大的利润。在i s p 经营过程中,具有一套能灵活制 订用户服务、计费政策、及时准确记录用户拨号信息的软件,已成 为众多i s p 追求的方案。 随着国内互联网用户数量的增加,原有的些单进程的r a d i u s s e r v e r 已经无法满足现在的需求。同时国内互联网i s p 为了提供更 好的服务,提出了实对计费的要求,但原r a d i u ss e r v e r 无法处理 这些新的处理要求,所以我们提出以多进程共享有限的数据库充 分利用系统资源,节省了大量的程序运行时间。考虑到中、大型i s p 对系统可靠性的需求,采用了双r a d i u ss e r v e r 主备工作方式,使 系统的可靠性增强。 当前面向现代企业,面向未来开发的网络接入综合应用系统应 运而生。各种应用系统都有其各自的特点,有的侧重于企业内部网、 有的强调计费管理。本系统在多平台上实现了拨号接入的用户管理、 认证系统、记帐系统、计费系统,并支持灵活的查询及复杂的统计 报表功能,还可实现专线用户的计费管理。 第二章技术基础 2 1t o p i p 技术 t c p i p ( t r a n s m i s s i o nc o n t r o lp r o t o c o l i n t e r n e tp r o t o c 0 1 ) 即健输控制协议网间协议,它是用于计算机通信的一个协议组,是 由a r p a n e t 网的研究机构发展起来的。所谓“协议”是关于通信过 程的规则或条约它规定了如何传输信号,如何在宿主计算机上将 数据包重新组成计算机信息等。 传输控制协议t c p ( t r a n s m i s s i o nc o n t r o lp r o t o c 0 1 ) ,负责数 据的流量控制。并保证传输的正确性。网间协议i p ( i n t e r n e t p r o t o c 0 1 ) ,负责将数据从一处传往另一处。t c p i p 协议具有广泛的 兼容性和可伸缩性,可连接不同的计算机网络协议、不围的网络设 备。 t c p i p 协议采用下述4 层结构: 应用层:支持用户,提供通信工具和相关服务( e - m a i l ) 等; 传输层:传输控制,保证端对端数据传输的完整性( t c p ) ; 网际层:数据传输,发往目的地( i p ) ; 网络接口z 访问具体网络( 如乙太网、令牌网等) 。 t c p i p 协议体系的核心是网5 暴层( i p ) 和传输层( t c p ) ,i p 和 t c p 是网络互连的桥梁和可靠性的保证;网络接口层则灵活地支持多 种物理层和链路层协议;网络应用层除了原有的应用层协议以外, 很容易接纳其它的应用层协议。t c p 【p 协议简捷实用易推广。亿p i p 不仅适用于广域网( w a n ) ,并己嵌入局域网( l a n ) 中。 t c p i p 已成为网络互连事实上的标准,并成为支持i n t e r n e t 的 协议标准。 2 2 客户机服务器计算模式的基本概念 计算机网络、网络操作系统与网络应用软件开发技术的发展, 为客户机,服务器计算模式的研究与应用奠定了基础。 2 c l i e n t s e r v e r 概念最早用于描述软件的体系结构,它用来表示两 类协作程序之间的关系,其中一类为客户机程序,另一类是服务嚣 程序。c l i e n t 程序与s e r v e r 程序可以运行在一台计算机中,也可以 运行在网络环境中的两台或多台计算机中。在网络环境中,c l i e n t 程 序向s e r v e r 程序发出服务请求,s e r v e r 程序接收、处理c l i e n t 程序 的请求,并将处理结果回送客户机,c l i e n t s e r v e r 代表了9 0 年代开 放式系统的协同处理工作模式。 在早期的分时多终端主机系统中,所有的程序( 数据库管理系 统、应用程序、通信程序等) 都在一个主机系统中运行。所有数据 都存储在主机中,用户通过本地或远程终端访问主机。这种结构的 优点是数据存取管理方便,安全性较好,并发处理能力强;缺点是 系统投资大,维护费用较高。随着计算机应用的日趋广泛,人们对 计算机系统提出了降低费用的“向下优化”要求。这就是人们开展 c l i e n t s e r v e r 结构研究的一个驱动力。 在传统的局域网系统中,网络工作站要完成数据处理的全部工 作,而文件服务器仅能完成共事文件系统的管理。这种结构的优点 是系统造价低;缺点是网络工作站与文件服务器分工不合理,网络 工作站要承担数据处理的全部任务,而且大量数据在局域网上传输 造成了网络通信负荷较重。局域网性能下降。针对这种情况,人们 对局域网系统提出了增强性能的“向上优化”要求。这就是人们开展 c l i e n t s e r v e r 结构研究的另一个驱动力。 在这个背景下,人们开始寻求性能价格比的“恰到好处的规 模”。即将应用资源与任务在c l i e n t 与s e r v e r 之间进行恰到好处的 分配。在这种计算模式下。运行c l i e n t 程序的客户枫通过网络提出 服务请求。由最适合完成该任务的服务器完成数据处理与服务任务。 2 2 1 客户机服务器中的数据库服务器 典型的c l l e n t s e r v e r 结构由三个平台构成:计算机平台、网 络平台、数据库平台。为了克服传统局域网中资源共享模式负载过 重、性能下降的缺点,人们提出了“c l i e n t s e r v e r 模式”中一种最 基本的服务类型。数据库服务。数据库服务的核心设备是数据库服 务器。在c l i e n t s e r v e r 模式中,客户机应用程序通过网络向数据 库服务器发送查询和统计服务请求,数据库服务器根据客户机服务 请求自动完成查询和统计任务然后将查询和统计结果发送给客户 机。在这个过程中。客户机和数据库服务器之间只需要传送服务请 求命令与命令执行结果,而不需要传送任何数据库文件。 c l i e n t s e r v e r 模式通过合理的任务分工和协同操作。可以充分发挥 数据库服务器和客户机各自的处理功能,并能减少网络通信量,有 利于改善网络性能,提高向用户提供网络服务的质量。 2 2 2 客户机服务器计算模式的特点 在c l i e n t s e r v e r 计算模式中,一个或多个客户机与一个或多 个服务器,以及支持客户机、服务器进程通信的网络操作系统基同 组成了一个分布式计算、分布式处理的系统。在c l i e n t s e r v e r 计 算模式中,应用可以分为两部分;前端的客户机部分和后端的服务 器部分。客户机提出服务要求,网络将用户请求传送到服务器;服 务器执行用户请求,完成所要求的操作并将结果回送用户。 在c l i e n t s e r v e r 结构中,客户机是用户与系统交互的接口, 服务器是一个或一组应用进程,它能向一个或多个客户机提供服务。 在理想的c l i e n t s e r v e r 模式中,客户机与服务器的通信可以独立 于服务嚣平台与网络平台,在一个多服务器的环境中。服务器应能 协同工作,共同为用户提供服务,而服务器之闻的通信过程对用户 是透明的。 2 2 3 客户机服务器中的中间件 c l i e n t s e r v e r 模式与传统的资源基享模式相比有以下优点: 1 网络通信量减少,响应时间缩短,网络能为用户提供更好 的服务质量; 4 2 通过将一个应用分成运行在由网络互联的报务器与客户机 上,可以充分发挥客户机与服务嚣双方的功能,组成一个有效的分 布式应用环境; 3 通过将应用程序与它们所处理的数据隔离,可以使数据具有 很好的独立性。可以方便地开发新的应用; 4 将数据存放在服务器中,服务器可以对数据访问实现有效的 管理和控制,未授权用户无法读写数据进行非法访问,应用系统数 据的安全性、完整性得到了很好的保护; 5 。由于客户机有自己的管理用户界面。因此每个服务嚣可以支 持更多的用户。 为了解决开发应用程序对网络过分依赖的问题,在客户机和服 务器之间增加了一层软件,即中间件。利用中间件所提供的高层应 用程序编程接口,可以将低层网络协议与实现技术屏蔽起来。同时, 中问件还提供数据转换、差错检测、安全管理、队列与命名等功能。 2 。3 客户l i t 务器体系结构及其发展 2 3 1 传统的两层客户服务器体系结构 9 0 年代初,随着p c 机的成功和网络技术的日益普及,客户服 务器技术及应用出现了爆炸性的增长。为利用桌蕊系统的方便性和 网络的互联能力,大量的基于主机的系统向客户服务器系统转移。 传统的客户服务器应用软件模式大都是基于“胖客户机”结构 下的两层结构应用软件。客户规软件一股由应用程序及相应的数据 库连接程序组成,服务器软件一般是某种数据库系统。客户机软件 的主要功能是处理与用户的交互、按照某种应用逻辑进行处理和与 数据库系统进行交互;服务器软件的主要功能是数据库系统根据客 户软件的请求进行数据库操作,然后将结果传送给客户软件。客户 软件与服务器软件之间的通信主要是通过s q l 语言。 客户服务器体系结构具有以下优点: 实现了数据库管理系统和应用程序的分离,使数据库系统的 开发和应用程序的开发可相互独立。 可以把安全管理、数据完整性控制、数据存取、部分应用逻 辑等需要集中管理的工作放在服务器上完成。可以把应用的设计、 开发、部分完整性工作放在服务器上完成。在应用开发好后,它既 可以操作所有可连到的不同的数据库,又可以安装在多个客户机上 操作一个共同的数据库。 客户服务器体系结构带来了主机系统的“缩小化”。由于用户 界面及部分应用逻辑在工作站上独立完成,所以应用系统对主机的 要求降低了许多;在小型企业,甚至用p c 机服务器亦可胜任工作。 因此客户服务器体系结构可以使整个系统的费用育较大程度的降 低。 两层结构应用软件的开发工作主要集中在客户方,客户方软件 不但要完成人机交互和数据显示的工作,而且还要完成对应用逻辑 的处理工作,即用户界面与应用逻辑位于同一个平台上。这样就带 来了两个突出的闯题:系统的可伸缩性较差和安装维护困难。 由于在一个系统中并不是所有用户的需求都相同,因此他们要 求程序的功能也不尽相同。使用两层结构应用软件时。开发人员提 供给所有用户的程序都是相同的,除非开发人员不厌其烦地根据不 同用户的需求将大的软件剪裁成不同的小软件分发给用户。 在系统开发完成后,整个系统的安装也非常复杂。在每一台客 户机上不但要安装应用程序,而且必须安装相应的数据库连接程序。 还要完成大量的系统配置工作。如果系统有大量用户,并且用户是 分布的和流动的,例如广域网环境下的应用系统。那么整个系统的 安装将非常困难。在系统进行修改后,所有客户机上的应用软件都 将会受到影响。 以上两个原因使得两层结构应用软件在i n t e r n e t 环境下的使用 受到较大限制。 2 3 2 多层的( 客户应用+ 服务器应用) 服务器体系结构 为解决传统的c l i e n t s e r v e r 体系结构的这些弊端,出现了一 种新的多层体系结构。这种体系结构可以解决企业应用的扩展问题。 新的体系结构把客户端应用分为两部分:客户应用和服务器应用。 客户应用是原来客户应用的一部分。原来客户应用中的另一部分被 移入服务器应用中。裁的客户应用负责用户界面和简单固定的业务 逻辑。新的服务器应用中驻留核心的、易变的业务逻辑。这样,其 结构就变成了新的( 客户应用+ 服务器应用) i n l 务嚣结构。 网络上的客户机和应用服务器合起来作为客户应用,体现用户 业务逻辑。客户机上仅负责用户界面和较固定的业务逻辑;应用服 务器上集中存放通用易变的业务逻辑,也可以进行数据库访问,这 些业务逻辑将由多个客户帆同时调用,构成应用服务嚣。应用服务 器在体系结构中处于前台客户和后台数据库之间,形成了 c l i e n t s e r v e r 的三层或多层体系。 三层结构应用软件的特点是用户界面与应用逻辑位于不同的平 台上,并且应用逻辑被所有用户共享。由于用户界面与应用逻辑位 于不同的平台上那么系统必须提供用户界面与应用逻辑之间的连 接,它们之间的通信协议是由系统自行定义的。 应用逻辑被所有用户共享是两层结构应用软件与三层应用软件 之闻最大的区别。中闻层即应用服务器是整个系统的核心,它必须 为处理系统的具体应用而提供事物处理、安全控制以及为满足不同 数量客户机的请求而进行性能调整的能力。应用服务器软件可以根 据处理逻辑的不同被划分为不同模块,从而使客户端的应用程序在 需要某种应用服务时只与应用服务器上处理这个应用逻辑的模块通 信,并且一个模块能够同时响应多个客户机应用程序的请求。 多层体系结构通过引入中间层组件。扩大了传统时客户服务器 两层计算模式。多层结构可由以下三类分层来定义:前端的客户层, 负责提供可移植的表达逻辑;中间的应用层,允许用户通过将其与 实际应用隔离而共享和控制业务逻辑;后端的数据管理与服务层, 7 提供对数据库的访问。 这静结构解决了传统c l i e m s e r v e r 的可扩展闯题,既减少了 客户端业务逻辑,又降低了客户端对硬件的要求。同时,由于把许 多业务逻辑集中到了单一的应用服务器上,应用系统的维护工作也 被集中到了一起,消除了传统c l i e n t s e r v e r 结构中软件分发的问 题。新的多层结构是具有高度可扩展性的应用体系结构。 多层计算结构变得越来越重要,通过将应用逻辑集中到中间层, 开发者可以迅速更新业务逻辑而无须重新将应用递交到成千上万的 桌面系统上。 2 4 计费系统的基本原理及技术 2 4 1 标准的r a d i u s 协议 r a d i u s 协议的主要目的是为了更方便的管理大量的分布广泛的 用户m o d e m 池。由于m o d e mp o o l 主要用于与外界进行连接因而 他需要进行仔细的安全、授权、计费等。通常将用户数据保存在一 个单独的用户数据库中,这样可以把详细的用户信息准确地传递给 用户。 r a d i u s 协议定义的是一个c l i e n t s m w r 的模型。一个网络访问 服务器( n e t w o r ka c c e s ss e r v e r :n a s ) 做为 l i u 9s e r v e r 的客户运 行,主要传递用户认证信息至l 指定的r a d i u ss e r v e r 。 当n a s 得到用户的认证信息,他会生成一个叫做“a c c e s s - r e q u e s t ”的数据报,其中包含有用户名、用户口令、n a s 的d 及 用户正在使用的端口号。口令是用m d 5 的算法加密的。这个 “a c c 锚姐e q u e b t f ,的数据报通过网络发往r a d i u ss e r v e r 。若一个指 定的时间没有反映,n a s 会重发,若还是没有反映,n a s 会向备份 的r a d i u ss e r v e r 发送这个请求。 当r a d i u ss e r v e r 受到“a c c e s s - r e q u e s t ”。首先检查n a s 的疋地 址是否合法。若n a s 合法r a d i u ss e r v e r 会到用户数据库中查找该请 8 求的用户,数据库中包含了该用户的验证需求列表,它必须包含用 户口令。 如果有任何一个条件不满足,r a d i u ss e r v e r 将发送一个 “a c c e s s - r e j e c t ”来表明该用户是无效的。如果所有的条件都满足。 r a d i u ss e r v e r 会将用户的配置数据放在一个成为“a c c e s s - a c c e p t ” 的报文中发给n a s 。这些值包括服务类型:s l i p 、p p p 、工耀i n u s e r 。 对于p p p 与s l i p ,还可日& 有如口地址、子网掩码、m t u ( 最大传输 单元1 、是否压缩等。 r a d i u s 协议的数据传递运行在m 协议上的u d p 协议上,认证 使用的端口是1 6 4 5 。计费使用的端口是1 6 4 6 。关于r a d i u s 协议的 具体情况参见r f c2 1 3 8 ,对于各个厂商对r a d i u s 协议的扩充,请到 相应厂商的w e b 站点上检索。 2 4 2l i n u x 和o r a c l e 系统( o r a c l e8 0 5f o r l i n u x ) o r a c l e 是以高级结构化查询语言( s q l ) 为基础的大型关系数 据库,通俗地讲它是用方便逻辑管理的语言操纵大量有规律数据的 集合。是目前最流行的客户服务器( c l m n t s e r v e r ) 体系结构的数 据库之一。 0 ) o r a c l e 7 x 以来引入了共享s q l 和多线索服务器体系结构。 这减少了o r a c l e 的资源占用。并增强了o r a c l e 的能力。使之 在低档软硬件平台上用较少的资源就可以支持更多的用户,而在高 档平台上可以支持成百上千个用户。 提供了基于角色( r o l e ) 分工的安全保密管理。在数据库管理 功能、完整性检查、安全性、一致性方面都具有良好的性鸵。 支持大量多媒体数据,如二进制图形、声音、动商以及多维 数据结构等。 提供了与第三代高级语言的接口软件p r o * 系列,能在c c + + 等主语言中嵌入s q l 语句及过程 h ( p u s q l ) 语句。对数据库中的数 9 据进行操纵。加上它有许多优秀的前台开发工具如p o w e r b u i l d 、s q l * f o r m s 、v i s i a lb a s i c 等,可以快速开发生成基 于客户端p c 平台的应用程序,并具有良好的移植性。 提供了新的分布式数据库能力。可通过网络较方便地读写远端 数据库星的数据,并有对称复制蛇技术。 2 4 3m u l t i p r o c s s ( 多进程) 、s 锄n a p h o r c ( 信号量) 多进程做为u n i x 操作系统的基本功能深受广大软件开发人员的 喜爱。被广泛的应用于各种各样的开发中。多进程可以充分发挥计 算机的c p u 的计算能力,例如当系统中一个进程因为某种i o 操作 阻塞时,系统会将该进程挂起。释放对c p u 的使用权,让其他进程 使用c p l 】继续运行。 做为u n i x 系统为用户提供了三种进程间通信的方法,分别是命 名管道、消息队列、共享内存。傲为本文讨论的r a d i u ss e r v e r 使 用了共享内存的方式,由于系统中的各个进程之间需要交换大量的 数据而且进程的数量会很多,做为命名管道与消息队列每次交换数 据时需要建立管道或生成一个消息队列,速度较慢,耗费大量的系 统资源。 由于存在着多进程对一个共事资源的访问,应用程序需要保证 在任意时刻只能有一个进程对这段共事内存进行读写访问。我们必 须借助于u n i x 系统提供的信号量来完成这样的功能。 2 4 4 计费系统的软件体系结构 计费系统从软件方面主要可以分为三个部分;r a d i u ss e r v e r 用 户认证及计费服务器、用户自服子系统、后台算费及帐务子系统、 前台营业子系统。在这几个子系统中,r a d i u s $ c r w r 是整个系统中 最关键的部件,所有的用户认证与计费信息都要通过它与后台数据 库交互。因而它的性能将影响整个系统的性能是整个系统的瓶颈。 若r a d i u ss e r v e r 设计有问题将直接影响系统的稳定性和性能。 1 0 网络结构示意图如图2 1 所示 图2 一l 计费系统的网络结构示意圈 逻辑结构图如图2 - 2 所示 圈2 2 计费系统的逻辑结构示意图 i s p 计费系统的硬件一般由3 个部件组成,分别是r a d i u s s e r v e r 、助b m s ( 关系型数据库) 、a c c e s ss e r v e r ( 访问服务器) 。 对于各个i s p 系统使用不同厂商的产品,对于r a d i u ss e r v e r 主 要有i 】l i i x n t 两种平台,r d b m s 主要有s y b a s e 、o r a c l e 、i n f o l i x 三种。a c c e s ss e r v e r 主要有m a x4 0 0 0 、c i s c o5 3 0 0 、3 c o mt o t a l c o n t r o l 三种。 1 1 r d b m s 主要用于保存用户的姓名、登录名、口令、计费类型 等关于用户的信息。a c c e s ss e r v e r 主要为用户提供一个p s t n 或i b d n 的拨号端口,及同主叫用户建立网络连接,并通过p a p 或c h a p 协议对用户进行认证。对用户的认证请求a c c e s ss e r v e r 会将这些信息封装在一种叫做r a d i u s 的标准的i n t e r n e t 认i 正协 议中,通过与r a d i u ss e r v e r 相连的网络端口传递给r a d i u s s e r v e r ,r a d i u ss e r v e r 会到后台的关系型数据库中查询用户的 信息( 口令、上网时间约定等) 。若用户的请求与数据库中,用 户的数据吻合,r a d i u ss e r v e r 会从后台数据库中提取用户的配 置信息( i pa d d r e s s ,连接速率。访问权限等) ,再将这些参数传 递给a c c e s ss e r v e r 。a c c e s ss e r v e r 与用户建立连接完成连接, 同时启动计时嚣。若不成功r a d i u ss e r v e r 会向a c c e s ss e r v e r 发送一条认证失败的信息。a c c e s ss e r v e r 收到后会与用户断掉 当前的连接。 当用户与a c c e s ss e r v e r 连接断掉时,a c c e s ss e r v e r 会向 r a d i u ss e r v e r 发送一条计赞的数据包,r a d i u ss e r v e r 收到后 会查询系统中的费率等信息为用户算出这张话单的实际费用,存 入后台的关系型数据库。 第三章主要技术问题及解决方案 3 1 多进程r a d i u ss e r v e r 设计 3 1 1 t u 缸l l u 8s e & w c r 软件结构( 如图3 - 1 所示) 疆_ e m e m o r 7 口 图3 - 1p j t d i u ss o r v 骶软件结构图 r a d i u ss e r v e r 是整个系统中最关键的部件,所有的用户认证与 计费信息都要通过它与后台数据库交互,因而它的性能将影响整个 系统的性能,是整个系统的瓶颈。若r a d i u ss e r v e r 设计有问题将 直接影响系统的稳定性和性能。 系统的运行是由用户或操作系统的i n i t 进程调用r a d i u ss e r v e r 主程序开始的。r a d i u ss e r v e r 开始运行后。程序会使用s h e e t 和 s e m g e t 系统调用向系统申请共享内存和信号量,初始化共享内存和 各个信号的初值。在生成这两个系统共享资潭时,使用程序配置文 件中指定的k e y 值这样做是为了系统中的其他进程也可以共事这 两个系统资源。 然后,系统会生成两个s o c k e t 分别被绑定在认证和计费端口上。 主程序会f o r k 两个进程,两个进程都会继承上一段中生成的两个 s o c k e t 旬柄,两个进程会根据进程功能关闭对自己没有用的s o c k e t 旬柄。最后调用s e l e c t 来对s o c k e t 进行监听。这时系统中会产生 两个进程,这两个进程分别叫做“认证受理进程”和“计费受理进 程”。 当两个监听进程发现有数据包到来时会f o r k 另一个进程来 进行相应的处理。在这里使用多进程的目的是提高系统吞吐能力。 若系统不生成进程来为这个请求服务,那么其他请求只有等系统把 前一个请求处理完后,才能被受理。使用多进程后,父进程只是简 单生成一个进程来处理这个请求,而父进程还何以继续受理其他请 求。 多进程系统虽然可以很好的受理与处理n a s 的请求,但是我们 的数据全部保存在后台的关系型数据库中,请求处理进程可以直接 通过关系型数据库提供的库函数,连接到后台数据库。现在让我们 想象一下若我们的前台一共有2 0 0 个并发用户请求。那么我们就需 要建立2 0 0 条到后台数据库的连按。数据库处理每一个用户连接时。 都要为这个连接分配一定的系统资源,2 0 0 个连接会耗费大量的数据 库服务器的资源,使系统效率大大降低。系统成本也大大增加。而 且每个进程与数据库建立连接的时候,都要与数据库服务器在网络 上进行多次协商,来建立一条面向连接的数据库连接,在完成操作 后,还要断掉与数据库的连接。由于我们程序只在数据库中查询较 少的数据信息建立和释放连接将消耗大部分的程序运行时间。 1 4 当系统中有多个并发的请求时,系统中会存在“认证处理进程 l 刈”和“计费处理进程1 _ n ”。它们是由认证和计费受理进程生成 的。这里的“n ”是与前端的n a s 的用户相关,“n ”的数值会随着并 发的前端用户的认证及计费申请的数量增加而增加。被生成的子进 程完成其工作后会自动退出。因而系统中的进程总数应等于正在进 行认证和正在进行计费处理的用户的总和,不会无限制的增长。 现在虽然系统可以很好的受理与处理n a s 的请求。但是我们的 数据全部保存在后台的关系型数据库中,请求处理进程可以直接通 过关系型数据库提供的库函数,连接到后台数据库。如果对每个用 户请求我们就建立一条到后台数据库的连接。数据库处理每一个 用户连接时,都要为这个连接分配定的系统资源,过多的连接会 耗费大量的数据库服务器的资源。使系统效率大大降低。系统成本 也大大增加。而且每个进程与数据库建立连接的时候都要与数据 库服务器在网络上进行多次协商,来建立一条面向连接的数据库连 接。在完成操作后,还要断掉与数据库的连接。由于我们程序只在 数据库中查询较少的数据信息,建立和释放连接将消耗大部分的程 序运行时间。 为了解决上面提出的问题,处理进程不是简单的建立一条到数 据库的连接,而是在系统中建立一个多个进程共享的数据查询队列 和数据库服务进程。当处理进程需要读写数据库中的数据它不建立 到数据库的连接,它会将需要读写的数据放入到系统中的莛享的内 存中,然后等待数据库处理完成后发回的信号。当该进程得到信号 后,它会从共享内存中读出结果数据,释放使用的队列单元,然后 进行处理。 在系统的主进程中,会f o r k 几个数据库服务进程。这几个进程 开始运行时,会建立到后台数据库的连接。在结束时,拆除到数据 库的连接。通过这种方式就限制了到后台数据库的连接数量。同时 到数据库的连接是预先建立好的,因此每次查询时不需要重新建立 到数据库的连接。这样做节省了大量的系统资源和程序运行时间。 对于后台的数据库服务进程会不断的检查看队列中是否有数据 要处理。若没有要处理的数据,则等待。若有数据要处理。则使用 现有的连接迸行数据库查询。 由于系统中的共享内存被认证处理进程、计费处理进程、数据 库服务进程所共享。系统使用信号量技术来控制对这个共享资源的 访问。对于后台数据库服务进程、认证处理进程、计费处理进程中 的等待处理同样也使用信号量来挂起进程,节省进程对c p u 处理能 力的消耗。 3 1 2 多进程共享有限的数据库连接的实现 系统在主进程中申请了一块共享内存,然后将这块共享内存按 着我们定义的数据查询结构分成一个个的信息单元。其用c 语言描 述结构如下: $ t r u c tm s g _ u n i t ( i n tp i d : i n ta c t i o n : i n ta r g v : c h a ra r g v 1 l a x _ a r g 1 i a x _ c h a r : c h a rr e s u l t i 撒_ c h a r : i n ts t a t e : ; 其在内存中的存放如下圈3 - 2 所示: 图3 - 2 内存中信息单元示意图 图中信息单元的数量可以根据用户的实际情况进行调整,这个 队列的大小不应设置太大,因为它会消耗大量的系统内存。 m s gu n i t 中的p i d 是占用这个信息单元的进程i d ,a c t i o n 为 进程需要数据库服务进程进行的操作,a r g v 定义的是参数个数,a r g v 定义的是每一个参数的值,这两个参数与c 语言m a i n 函数的两个参 数功能相同。r e s u l t 用于保存数据库服务进程执行a c t i o n 指定的操 作的返回结果( 这里只定义了一个字符串型的返回值,可以进行扩 展) 。s t a t e 用于表示进程之间同步的关系。 下面讨论如何利用信号量机制来协调认证处理进程、计费处理 进程、数据库处理进程对这段共享区域的访问。在系统主进程中申 请信号量如表3 - 1 所示 表3 - 1 信号量的含义 信号信号量信号量意义 量i d初值 00 表示队列中需要处理的消息单元的个数 11 对整个队列访问控制锁 28 队列中空闲的消息单元的个数( 初值8 与上面 的队列对应,应为队列中总的消息单元的个数) 3o对应于队列中的第一个元素。用于使认证处理 进程及计费处理进程与数据库服务进程同步 40 1 00 对应于队列中的第八个元素,用于使认证处理 进程及计费处理进程与数据库服务进程同步 系统的主进程初始化并设置完这些信号量的初值后,子迸程可 以通过指定的k e y 得到这些信号量的句柄进行操作。 认证、计费子进程的操作如下: ( 1 ) 使用s e m o p ( s e m i d , 2 ,- 1 ,s e mu n i ) o 待一个可操作空闲的信息单元。 ( 2 ) 使用s e m o p ( s e m id , 1 ,- 1 ,s 脒l 孙j d 0 ) 息队列。 。i ) 系统调用,等 ,1 ) ,锁定整个信 ( 3 ) 从信息队列中,找出s t a t e = o 的消息单元。( s t a t e = o 表示该 单元是空阑的) ( 4 ) 初始化该信息单元,p i d = g e t p i d ( ) 为当前进程的i d ,a c t i o n 、 a r g n 、a r g v 放入要求数据库服务进程执行的操作和参数。 ( 5 ) 将s t a t e 的值修改为1 ( 表示该信息单元还没有被数据库服务 进程处理) 。 ( 6 ) 使用s e m o p ( s e m i d ,( n ,i ,s e m _ t 】n d oi p c _ n o w a i t ,1 ) ,这里 n 为该信息单元的序号+ 2 。 ( 7 ) 使用s e m o p ( s e m i d , 0 ,l ,s e m _ u n d o l i p c _ n o w a i t ,1 ) ,将系 统待处理的信息单元数量信号加1 。 ( 8 ) 使用s e m o p ( s e m i d ,( 1 ,l ,s e m _ u i 岫oi p c _ n o w a i t ,1 ) , 释放对整个信息队列锁定。 ( 9 ) 使用s e m o p ( s e m id , n ,0 ,s e m _ u n d o ) ,1 ) ,等待信号n 的 值变为0 。n 值与6 中的相同。目的是为了等待数据库服务进程处理 完成。 数据库处理完成后,读出处理结果,将s t a t e 的值改为0 。( 释 放信息单元) 0 d 使用s e m o p ( s e m i d , 2 ,1 ,s e m _ 删) o ) ,1 ) 系统调用, 将可用空闲的信息单元数量加1 。 注:s e m i d 为系统信号量的甸柄。 数据库服务子进程操作如下: 使用s e m o p ( s e m id , 0 ,一1 ,s e m _ u n d o ) ,1 ) ,等待队列中有 需要处理的信息单元。 ( 2 ) 使用s e m o p ( s e m i d ,f 1 ,一l ,s 删i 加o ,1 ) ,锁定整个信 1 8 息队列。 ( 3 ) 从信息队列中,找出s t a t e = l 的消息单元。( s t a t e = l 表示该 单元是还未处理的) ( 4 ) 将s t a t e 改为2 。( s t a t e = 2 表示数据库服务进程正在处理) ( 5 ) 使用s e m o p ( s e m i d ,f 1 ,1 ,s e 鲑u g o ofi p c _ n o w a i t ,1 ) , 释放对磐个信息队列锁定, ( 6 ) 根据信息单元中的a c t i o n ,a r g n ,a r g v 到后台数据库中去操 作,将操作结果保存到r e s u l t 中。 ( 7 ) 使用s e m o p ( s e m i d , n ,- t ,s e mu n d o ) ,1 ) ,等待信号n 的 值变为0 ,n 为该信息单元对应的信号量i d 。目的是为了通知认证或 请求进程处理完成。 注:s e m i d 为系统信号量的旬柄。 r a d i u ss e r v e r 中与数据库的连接数和队列的大小可以根据具体 使用硬件及数据库的实际应用环境进行调整,优化后的系统可以同 时受理大量并发的认证和计费请求。 3 2 双r a d i u 8s e r v e r 主备方式运行 系统设计时考虑到中、大型i s p ( 互联网服务接入提供商) 对系 统可靠性的要求,系统中可包含两台r a d i u ss e r v e r ,分别为主用和 备用方式工作。主服务器用于正常的认证与计费工作。从服务器( 备 份服务器) 用于备份主服务器。当主服务器由于硬件或软体故障时, 从服务器会自动接替主服务器的工作。但上面的实现要求,主、从 服务器要有一个共享的后台数据库系统支持f 我们的系统中应为 o r a c l e 数据库服务器) ,若用户对于数据库服务器的可靠性还有顾 虑。可以考虑引入o r a c l e 的o p s 功能,来解决数据库服务器的可靠 性,但需要投入的成本很大,造价往往使用户无法接受。 主、从服务器的工作是有n a s ( 网络访问服务器) 与我们的r a d i u s s e r v e r 软件配合完成的。其主要的工作原理是这样的,在n a s 中可 以预先设定两个a u t h e n t i c a t i o ns e r v e r 与两个a c c o u n t i n gs e r v e r , 分别叫做pri m a r y _ a u t h e n ti c a t i o n _ s e r v e r 、 p r i m a r ya c c o u n ti n g s e r v e r 、 s e c o n d _ a u t h e n ti c a ti o n _ s e r v e r 、 s e c o n d _ a u t h e n t i c a t i o n _ s e r v e r 四个。由于我们的软件系统同时包 含了认证与计费功能。因此。可以将上面的p r i m a r y 与s e c o n d 分 别合并,形成两个s e r v e r ,其结构如图3 - 3 所示 图3 - 3 主、从瓶务器运行示意图 当某一个用户拨号时,先建立一条从用户到n a s 的p p p 连接, 然后用户通过p a p 或c h a p 发送用户的认证请求,n a s 将这个请求中 的用户名、口令+ 加上如端口号,n a si p 地址等信息,形成一个新 的r a d i u s 数据包,n a s 将这个包发送到指定的p r i m a r y

温馨提示

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

评论

0/150

提交评论