admin 管理员组文章数量: 1086019
2024年2月28日发(作者:小程序介绍模板)
维普资讯
第27卷第3期 2007年3月 计算机应用 Computer Applications Vol_27 No.3 Mar.2o07 文章编号:1001—9081(2007)03—0712-03 基于ACE Reactor的BSC功能测试系统设计 谢伦义 ,文军 ,罗永和 (1.电子科技大学软件学院,四川成都610054; 2_电子科技大学计算机科学与工程学院,四川成都610054) (xlyxOl@163.corn) 摘要:GSM通信工程迫切需要对BSC系统进行各种功能测试,而软硬件环境的多样性和异构 性,使得BSC平台架构上的测试相当困难。为了减少整个通信软件的成本,简化各种配置的复杂性, 利用ACE中间件丰富的组件和Reactor框架设计模式,使用软件仿真硬件所实现的逻辑。通过引入 两个插桩,来仿真两个物理的NetHawk Server卡,在Linux OS下建立了基于IP通信的功能测试环境。 实验证明了新测试系统的可靠性和健壮性,并解决了昂贵测试硬件短缺的问题。 关键词:ACE;BSC;Reactor;NetHawk;设计模式;事件多路分离和分配;中间件 中图分类号:TP393.06 文献标识码:A Design of BSC function test system based on ACE reactor XIE Lun—yi ,WEN Jun 一,LUO Yong—he (1.School of ,University ofElectronic cSience and Technology foChina,Chengdu Sichnan 610054,Chian; 2 School fo cD cSience and Engineering,University foElectronic cSience and Technology foChina, Sichuan 610054,Ch/an) Abstract:The global system for mobile(GSM)communication projects erquier imminently to make function test on base station controller(BSC)system.But BSC platform enconuters more dificulties due tO the variety and heterogeneiyt of hardware nad softwal'e.In order to reduce the cost Df software and simplify the configurations of test system。software Was used to simulate the logic of hardware by rich components of Adaptive Communication Enviornment(ACE)and Reactor design pattern.Two stubs were introduced to simulate the physical NetHawk Server cards.Based on IP communication,a new test environment Was built under Linux operating system.The experiment proves the reliability and robustness of the new test system,and the costly hardware resource shortage is not a problem in the system as wel1. Key words:ACE;BSC;Reactor;NetHawk;desing patterns;event demultiplexing and dispatching;middleware 0 引言 中间件技术由于自身的互操作性、强大的服务功能、快速 的开发能力等特性,目前已经成为诸如金融、电信等大型核心 随着移动通信网络的IP化以及移动通信中3G业务的展 业务系统的支撑平台。ACE是一套优秀的中间件,这种面向 开,通信运营商不断升级和分布新的GSM网络,迫使世界各 对象的工具包,实现了通信软件的许多基本设计模式,其目标 地通信设备制造商采用最新的通信技术来设计移动、交换和 用户是类Unix和Win32平台上高性能通信服务和应用的开 传输设备。MxBSC项目为全球移动通信运营商提供了最新 发者。利用ACE丰富的框架和组件,能更迅速地开发可移植 一代GSM无线基站控制器。这个项目在研发过程中果断大 性、高性能的网络应用软件,尤其是多线程化的并发应用,开 胆地采用新技术,其系统内部实现了全部基于以太网总线的 发者不用对和底层的OS机制相关联的许多繁琐而易错的细 通讯方式,包括用户平面的数据流也是通过自主研发的 节作分析,如:事件多路分离、消息缓冲和排队、信号机制,具 “TDM over Ethernet”技术实现了与其他系统信令和系统控制 有很大的灵活性及更少的错误数量。 共享高速以太网的可能。在外部接口上,它能够支持El/T1、 本文分析了ACE Reactor框架的技术和实现,利用其事 STM.1和IP等接入方式,完全能够满足当前网络和未来网络 件多路分离和分发的原理,建立多异步事件处理的网络应用 演进的需求。显然,BSC平台架构的升级、新业务的引入,对 服务模型。在该模型的基础上,结合ACE中的连接器和接收 源码的移植和新模块开发带来了极大的改变,基于MxBSC所 器 组件及其他复用技术,在基于Linux OS环境下设计了 有的特征,项目人员必须重新设计新的测试软件来进行系统 一个BSC的功能仿真测试系统。 的各种功能测试。但是硬件设备、软件环境的多样性和异种 性,使得网络程序设计的复杂性大大提高,应用程序作为软件 l Reactor框架技术和实现 功能的最终实现者,不应当也不可能去直接应对底层平台所 ACE的Reactor所实现的Reactor模式[41是架构型模式, 有的复杂性。因而对软件开发者来说,一套专门处理“多平 允许由一个或多个事件源递送应用的事件进行驱动;这些事 台”差异和编程复杂性的中间件,对BSC功能仿真测试系统 件源中最为重要的是L/O端点。Reactor框架便利了反映式 的开发具有重要的意义。 I/O模型的使用,使得对许多类型的事件而进行的检测、多路 收稿日期:2006一O9—20;修订日期:2006—12一O9 作者简介:谢伦义(1975一),男,湖南新邵人,硕士研究生,主要研究方向:计算机网络、嵌入式应用;文军(1966一),男,四川绵阳人,副教 授,博士,主要研究方向:计算机网络、数据库;罗永和(1975一),男,福建沙县人,硕士研究生,主要研究方向,嵌入式实时系统、中间件技术.
维普资讯
第3期 谢伦义等:基于ACE Reactor的BSC功能测试系统设计 7l3 分离,以及应用定义的处理器的分派得到自动化实现,应用者 VO句柄、定时器和信号的事件多路分离器。其中,基于VO 无须为了满足事件处理的需要而编写平台相关的中心代码。 句柄的事件由handle—input、handle—output、handle—exceptions 在Linux OS中,ACE Reactor框架的核心是通过操作系统的事 方法分派;基于定时器的事件由handle—timeout方法分派;而 件多路分离器——select 来巧妙实现的。 基于信号的事件由handle_signal方法分派。 1.1 ACE Reactor框架的类实现 ACE Reactor框架简化了事件驱动程序的开发,而事件驱 2 BSC功能测试系统的设计 动是许多网络化应用的特征,在这些应用中常见的事件源包 2.1 BSC功能测试系统 括用于//O操作的IPC流上的活动、POSIX信号以及定时器 在BSC功能测试系统中,两个最关键的模块是两个插桩 到期。因而Reactor中的框架类(如图1)是与这些事件紧密 (stub),称为LBfidge和SBridge。在真实的环境中,这两个插 相关的。 桩是由两个物理的NetHawk server卡 来实现的。在这个新 的IP功能测试环境中,LBridge提供LAPD(Link Access Protocol for D channe1)帧在UDP/IP的传输功能,实现BTS J (Base Trnasceiver Station)和BSC的建LAPD链和通信过程; SBfidge提供MTP Lay2 叫(Message Transfer Part)在TCP/IP 的传输功能,建立和BSC之间传送MTP3消息的SS7 J 图1 ACE Reactor框架类 (Singaling System Number 7)收发消息机制。图3是IP环境 Reactor框架的核心是ACE—Reactor类,在Linux中它使 下BSC功能测试系统的框架图:LBfidge是基于Abis 叫接口 用select()同步事件多路分离器函数来检测VO事件和定时 和BSC建链通信的,而SBfidege是基于Atermux 接口和 器事件。它和ACE—Time—Value、ACE—Event—Handler、ACE— BSC建链通信的。图中各种NetHawk Client是和BSC通信的 Time—Queue都属于事件基础设施类,而图1中的Application 不同类型的消息流,称为scenario,由标准的c语言代码写成。 Event Handler是应用层类,由ACE—Event—Handler抽象 IUDP/P SCTP佃 基类 派生,该类定义具体的事件处理器,执行钩子函 socket socket 数所定义的应用处理。 1.2 Reactor框架的网络应用和处理流程模型 I1 Ne(tBHTawS kRCS uLlie)lmh. l 圈. l I f NetH awkC lien t 图2基于Reactor框架网络应用处理流程模型 IlNe(tBTs OML)IHawkclientl I-JI I l(TC_OM) I 实质上ACE—Select—Reactor_l 是ACE—Reactor接 口的一种实现,在ACE Reactor框架类和组件的基础上, 图 A—bis…I A…tmux l I 一个用于实现Reactor网络应用和处理流程模型如图2, 图3 BSC功能测试系统框图 2.2基于ACE Reactor框架的LBfidge 注册对象集合 西 根据LBridge在功能测试框架中的特点,其实现的目的 是:为BSC提供一个透明无缝的BTS接口和为NetHawk client 提供一个透明无缝的NetHawk server接口。在LBfidge内部实 现中,其关键部分是一个LAPD协议的仿真器。它主要负责 收发基于TCP/IP的来自NetHawk client的LAPD消息,管理 基于UDP/IP的LAPD帧。 通信前,LBfidge完成最基本的配置和创建两个IP通信 套节字。在基于ACE Reactor框架的LAPD Simulator中,它简 化了这样的事件驱动型的网络应用:1)反应器框架负责来自 亥层 f操作系统事件多路分离器接口f 多NetHawk Client事件和LAPD—MR的事件;2)多路分离不 在Linux下ACE Reactor框架对事件的处理流程分为三个层 同类型的连接事件(TCP/UDP)到预先已注册的事件处理器: 次:1)内核层,检测来自各事件源事件的发生;2)框架层,将 NetHawk Client Handler和LAPD—MR Handler;3)分派具体的 事件多路分离给其预先登记的事件处理器;3)应用层,被分 钩子函数处理相应的数据逻辑。在LAPD Message Handle 派给处理器所定义的钩子函数,以一种预先定义的方式处理 Functions中采取的IPC方式为Message Queue。图4为给出 相 应 的 事 件。 了相关类主要成员的UML图。 ACE—Reactor使用在EventHandler中申明的虚爿 ACE_Event_Handler NetHawk—.ClientHandler —.LAPD M隈一Handler -peel:ACE..Time_Value -dgram:ACF ̄SOCK_Stream -redvBuf:unsigned char redvBufi unsigned char --OUtput_queue二:ACE Message Queue  ̄。 et—handle 0:ACE_HANDLE -timerld:long handle—input(in handle:ACE_HANDLE):int +geLhandle():ACE—HANDLE +handle—close(in handle:ACE_HANDLE.in mask:int):int +handle_input fni handle:ACE-HANDLE):int +send(in*buf:void.in len:int,in IPADDR:ACE_INET ̄ddr)"int +hanlde_closefin handle:ACE_HANDLE,in mask=int):int +LapdMsgHandlerForLAPDMR(in pmsg:unsigned char,in len:int):int +send Msg_queue(in uf:char,inlen:int):int +handle_timeout(intv:ACETime alue,in arg:void=O):int +pee ̄):AC OCK._Stream ACE Reactor 图4 LBridge具体实现UML图
维普资讯
7l4 计算机应用 图。 2007血 NetHawk Cfient Handler:反应器侦测到TCP套节字上有 来自NetHawk Client的scen ̄o数据流时,回凋handle—input, 11C-5s7一NIF Event handler:用一个Message Queue来缓冲 不同类型的消息,来自TC—OM~NIF的m2ua_eonfig数据、来自 TCMTP2_一从接收到的消息中分解LAPD L2参数SAPI、TEI 等传递给 LAPD Message Handler,处理后转发给BSC;对接收来自BSC 的的LAPD消息,反应器回调Handle—output,转发此消息给 NetHawk Cliento LAPD—Stub的SS7和MTP2数据,均经TC—M2ua—Interface 发给BSC,应用进程检查到当前Message Queue队列中有任何 消息时,向反应器注册,handler—output将被回调,发送相应的 MR—Handler:基于UDP/IP,在BSC和LAPD 消息给对端,即TC_M2ua_Interfae;同时当反应器侦测到对应 c的套节字上存在来自NetHawk Client的任何消息时,回调 handlerinput,在钩子函数中判断具体的消息类型,把收到的 _message handler之间进行LAPD帧的消息透传,二者通过回调 handleinput和handle—output具体的钩子函数来实现,即: _handle—input完成来自BSC的LAPD—MR的LAPD帧送给 这些消息转发到其他处理器的消息队列中。 TCOM——LAPD message handler处理;而对来自NetHawk Client的消息 流经LhPD message handler处理成LAPD帧后,由Reactor回 调handle_output经UDP套接口送出给BSC的LAPD—MR。 2.3基于ACE Reactor框架的SBridge 根据SBridge在BSC功能测试系统中的特点,它的主要 NIF Event handler:用一个Message Queue缓冲来 自TC_sS7一NIF的m2ua—eortifg配置数据和来自TC—NHP的 OM数据,经TC~SCTP-Interface(TCP Socket)发出给BSC。当 应用进程发现Message Queue中存在消息时,它向反应器注 册,handle_output将会被Reactor回调。同时当Reactor检测 用途是实现:1)与BSC之间的Atermux接口功能;2)与 NetHawk Client之间的A接口功能;3)MTP2插桩供配置功 到TC_SCTP-interface上有1/O读事件发生时,回调handler— input,通知应用进程接收消息,针对具体的消息类型,转发到 对应处理器消息队列中。 TC—能;4)消息流管理。 在通信开始前,SBridge进程将接收来自BSC的配置数 据,分发给相应的模块进行初始化,之后进程的主要任务是根 据SS7和OM(Operation and Mmntenance)功能来转发各种不 同的消息流(scenario)。在该进程中,有4个基于TCP/IP的 事件处理模块:TC—SS7一NIF handler、TC—OM—NIF handler、TC— MTP2_TCOM——NHP Event handler:用一个Message Queue缓冲来自 NIF的OM数据,经对应的套节字发给NetHawk Client,此时NetHawk Client起到仿真TCOM的功能。当应用 Stub handler和TC_NHP handler handler,它们和ACE的 Aeceptor-Connector框架一起共同构建成一个ACE Reactor的 反应式服务器框架模式。在4个不同的事件处理器中,IPC 的方式为Message Queue。图5为相关类主要成员的UML I l 进程检测到Message Queue中存有未处理的消息时,它向反应 器注册,handle_output将被Reactor回调,用于处理具体的钩 子函数。此外当Reactor侦测到对应的套节字上存在来自 NetHawk Client消息流的1/O读事件时,回调handle—input,它 把接收到的消息处理后放到TC—OM—NIF处理器的输出队列 Queue—Output中。 l I ACE_Event_Handler △ LAPDMR_Handler _--NetHawk_Client_Handler -peer_:ACETimeValue __ream dgram:ACESOCKSt__-redvBuf:unsigned char —pedvBuf:unsigned char +get.handleO:ACE_HANDLE input(in handle:ACE_HANDLE):int +handle_—output_queue:ACE_Message_Queue -timed&long +get_handle():ACE_HANDLE +handle_input(in handle:ACE_HANDLE):inc +handle_close(in handle:ACE_HANDLE.in mask:int):int +sendMsgqueue(in buf:char,in len:int):int +handletimeout(int tv:ACE_Time_Value.in arg:void=0):int +pee ):ACE_SOCK|-Stream ____+handle close(in handle:ACE_HANDLE,in mask:int):int +send(in buff void.in len:int,in IPADDR:ACE_[NE-'Y Addr):int +LapdMsgHandlerForLAPDMR(in pmsg:unsigned char,int len:int):int l ACER ̄ _…. 个 图5 SBfidge具体实现UML图 TCMTP2—_Stub Event handler:它是Sbridge中最重要的一 装Linux Enterprise OS的工作站上运行LBridge和SBridge仿 真程序,通过Ethernet直接连接到Elite(BSC Simulator)上,同 时在其他的两台安装有Linux Enterprise OS的PC机运行不同 个事件处理器,来自不同处理器的消息流都必须经过它来处 理和转发。在该事件处理器中存在5个Message Queue,即: ueue ssQ7 to—ss7nif,ueue—mtQp2一to_ss7nif,Queue_mtp2_from _类型的BTS scenarios和MSC scenarios,分别采用各组的测试 流程,二者测试得到的结果日志文件的内容和真实环境得到 的数据完全一致。这表明:LBridge和SBridge在功能上已基 本实现了预定的要求,从软件上仿真了硬件所实现的逻辑,简 化了各种配置,目前已被成功应用于具体的项目中。 ss7nif,Queue_mtp2_eonfig和本身内部消息队列。这些消息 队列用来缓冲来自TC—OM—NIF的m2ua_eonfig数据,来自TC SS7一_NIF的将要发给NetHawk Client的SS7和MTP2数据。 应用进程侦测到任一输出队列存有数据要输出时,它会通知 反应器,handle~output将被反应器回调,钩子函数取出数据并 转发给NetHawk Client。此外处理器利用handle—input通知应 4 结语 本文通过分析了ACE Reactor框架和复用技术,提出基 于ACE Reactor框架的应用服务模型,并给出具体的BSC功 能仿真测试系统实例。在实例中整合了部分电信SS7协议、 HDLC、部分GSM网络移动标准在整个仿真测试中的应用。 这个基于Linux的ACE架构的仿真测试系统既保留了以往的 (下转第720页) 用进程。当有来自对端NetHawk Client的1/O读事件,钩子 函数会接收来自该套节字上的不同类型消息流,做相应的处 理后将其转发到不同的目标队列中。 3实验及结果分析 在新的IP测试环境中,测试组、IP传输组分别用一台安
维普资讯
720 一计算机应用 2007血 个元胞在t+1时刻的状态只(直接)取决于t时刻的该 具体通过2003年、1991年、1982年、1975年、1954年洪泽湖 元胞及其邻元元胞的状态,因此,根据只有满足水位条件和种 子元胞点具备关联性的特点,制定洪水蔓延规则,即正在淹没 元胞的扩展规则,我们假定正在淹没元胞表示向前淹没没有 被淹没的区域,则在本模型中的元胞状态转换规则函数可以 记为: 洪涝灾害发生的实测数据资料对洪水蔓延模型进行验证。 本文主要选择蒋坝点水位数据作为测试点,输入在以上 灾害年蒋坝点最高水位数据,仿真模拟洪泽湖洪涝灾害状况, 根据洪水蔓延的结果计算洪水蔓延的历时、深度、速率、影响 面积、以及应用灾害损失评估计算模型计算洪涝灾害损失状 况。输入蒋坝点在灾害年的最高水位值,仿真模拟计算洪泽 模型推理计算,计算的受灾面积、洪水历时、洪水深度、灾害损 失统计等数据与实测数据的相对误差均在8%以内,其误差 在许可范围内。测试结果表明,洪泽湖洪水蔓延模型具有一 定的合理性和有效性。 ,…,s 小。)) ,:sl”= S:,s ) 刻的状态。 如图3所示。由此可见通过 其中, 为元胞,s为状态,Ⅳ为邻元。s:为第 个元胞在t时 湖的洪水流量和灾害影响面积,任意元胞 (i,J)的下一个状态值可以记为: s 』)= s ),s lj_I),s 由上式可知,该元胞的下一个状态值由元胞本身和另8 个元胞在当前时刻的状态而定。因此该元胞的具体规则如下: 1)如果s )=0或s )=3,则s )=s ); 3 结语 元胞自动机具有离散动力演化的功能,只需确定简单的 2)如果s )=2,则s|+ 』)=3; 3)如果s:i.』)=1且s =2,s 为邻元元胞集合,其中 规则就可以模拟复杂系统的运行过程。本文抛弃了传统的建 ={( . .J_1),s . s _1),s .,s +1),s I), 立微分、偏微分计算方法,提出利用元胞自动机原理结合地理 信息系统等技术手段模拟洪泽湖洪水的蔓延演变,元胞自动 机通过元胞局部演化规则实现了洪水流的有效表达,洪水流 的流向由领域元胞状态和元胞本身状态确定,可以更加快速 简单地模拟洪水蔓延。 元胞自动机能够有效地对洪水蔓延进行有效的模拟,从 而为洪泽湖的防洪减灾预警提供技术支持。但由于元胞自动 机作为一种非线性方法,对地理实体的描述有一定的局限性, 且洪涝灾害仿真模拟本身是对洪水在地域上的迁移和变化的 模拟计算,具有明显的时空特性,对洪水蔓延状态的时空分析 以及格网尺寸的确定对于最终的仿真模拟效果有很大的影 s —I+I),s +I』+I)} 设 。f为i,.『行列坐标对应元胞的高程值, 叫为邻元元 胞的高程值,当珥.,<H 并且 =1(s: 与 具备连通 性),则S (‘・ =2;否则Sc+1‘ ’D=1。其中i, 代表二维元胞行 列坐标值,t代表离散的时间,t+1代表t时刻的下一个时刻, s )表示该元胞在某一个离散时间t上的元胞状态。s 』)表 示该元胞在某t时刻的下一个离散时刻元胞状态。 2.2模型计算结果分析 响,这些影响的消除将依赖于该模型进一步完善。 参考文献: [1】黄华国,张晓丽.基于三维曲面元胞自动机模型的林火蔓延模 拟[J】.北京林业大学学报,2005,27(3):94—97. [2】杨吉新,王乘,沈成武.元胞单元法[J】.固体力学学报,2004, 25(2):203—207. [3】 周成虎,孙战利,谢一春.地理元胞自动机研究[M】.北京:科 学出版社,1999.15—28. [4】 赵学龙,祝玉学,鲁兆民.燕昌尾矿坝地下水位预测的一维元胞 l954 1975 1982 199l 2003 自动机模型【J】.矿业快报,2001,22(1):4—5. [5】赵文杰,刘兆理.元胞自动机在环境科学中的应用[J】.东北师 大学报(自然科学版),2003,35(2):87—92、 图3洪泽湖水流量和灾害影响面积实测值与模型计算值对比 根据以E建立的洪泽湖洪水蔓延模型,对湖区蒋坝点、老子 山点、二河闸点进行测试。主要测试各点的水流量数据信息和该 点水位数据变化带来的洪水影响面积,并与实际数据进行比较, (上接第714页) [6】 许林,郭洪民,杨湘杰.一种基于OpenGL的三维元胞自动机模 型【J】.计算机工程与科学,2005,27(10):85—86. 测试特点,又很好地结合了新一代BSC的IP特征,在很大程 度上为公司减轻了NetHawk Server卡昂贵而非常短缺的场 合,部门相关组已经将其作为最基本的BSC测试工具。 参考文献: [I】 SCHMIDT DC,HUSTON SD.C++Network Programming,Volume of Reusable Object—Oriented Software[M】.Pearson Education,2O02. [5J STEVENS WD,FENNER B,RUDOFF AM.UNIX Network Pro— gramming,Volume1:The Sockets Networking API,3E[M】.Addi- son Wesley,2004. [6】STEVENS WR,RAGE SA.Advanced Programming in the Unix En- vironment,Second Edition[M】.Pearson Education,2005. [7】PRATA S.C++Primer Plus[M】.Fitfh Edition.Sams Publishing, I:Mastering Comple ̄with ACE and Patterns[M】.Addison Wes— Icy,2002. [2】 SCHMIDT IX],HUSTON SD.C++Network Pro[3】ng,Volume 2: 2oo5. SystematicReusewith ACE and Frameworks[ .Ad ̄sonWesley,2OO3. HUSTON SD,JOHNSON jc,SYYID U.The ACE Programmer's Guide:Practical Design Patterns for Network and Systems Program— [8】 GUNNAR H.GSM Networks:Protocols,Terminolog and Implemen— tation[M】.Artech House Publishers,1998. [9】Speciifcations ofSignallingSystemNo.7,lTU—TQ.703,Message transfor part[S】,1996. [10】PPP in HDLC—like Framing,RFC 1662[S】,1994. ming[M】.Addison Wesley,2004. [4】 GAMMA E,HELM JOHNSOM R,et 02.Desin Patgterns Elements
版权声明:本文标题:基于ACE Reactor的BSC功能测试系统设计 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/b/1709050020a537030.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论