最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

基于ACE的龙芯电子书包系统服务器设计和实现

IT圈 admin 54浏览 0评论

2024年4月11日发(作者:闪晨萱)

第29卷第3期 

2012年3月 

计算机应用与软件 

Computer Applications and Software 

Vo1.29 No.3 

Mar.2012 

基于ACE的龙芯电子书包系统服务器设计和实现 

罗 威 陈志云 周 宏 蔡建华 

(华东师范大学计算中心上海200241) 

(华东师范大学教育信息化系统工程研究中心上海200062) 

摘要. 提出一种基于ACE的“龙芯电子书包”系统服务器,包括框架底层和逻辑处理层,方便将框架底层移植到服务器系统上 

。 并增强稳定性,最后用测试证明该方法能提高服务器的性能。 

关键词 

中图分类号

ACE龙芯电子书包

TP311 

服务器 

A 文献标识码

DESIGN ANDⅡ PLEMENTATIoN oF ACE.BASED LooNGSoN ELECTRONICS 

BAG SYSTEM SERVER 

Luo wei Chen Zhiyun Zhou Hong Cai Jianhua 

(Computer Center,East China Normal University,Shanghai 200241,China) 

(E-Educational Sya ̄m Engineering Research Center,East China Normal University,Shanghai 200062,China) 

Abstract This paper proposed an ACE-based Loongson Electronics Bag system server which includes the framework underlying layer and 

the logic processing layer.It is easy to transplant the framework underlying layer to server systems and to enhance the stability of the s ̄tems. 

In the end of the paper,tests show that the method can improve the performance of the server. 

Keywords Adaptive communication envionmentr(ACE)Loongson electronics bag Server 

以学习者为中心,电子书包资源为辅助手段的互动教学模式探 

0 引 言 

龙芯CPU是我国科学家经过十年攻关所取得的重大科研 

索的体现。 

创新成果。但由于MIPS指令集与X86指令集之间的不兼容 

性,导致龙芯电脑平台上的支撑软件非常不足,特别是目前在基 

础教育领域还缺乏完善的集成解决方案。这导致国产软硬件的 

可用性略显不足,影响了国产软硬件在基础教育领域的进一步 

推广应用。 

1相关工作 

ACE是可以自由使用的、开放源码的、强大的、面向对象的 

应用工具包…。它采用了分层结构,包括OS适配层、C++外包 

装层、框架层和网络化服务和组件,如图1所示…。 

0s适配层是位于本地OS API和ACE之间的代码层。它 

电子书包是一个全新的组合概念。它包含主产品阅读工 

具,远程网上家教和设计精美的电子学具。电子书包不仅能减 

轻学生肩膀上的负担,更重要的是,作为一个现代化的学习工 

具,电子书包能把学生从“灌输式”的教学方式中解放出来。但 

使ACE的较高层与平台依赖性屏蔽开来,从而使用ACE编写 

的代码保持了相对的平台无关性。只需经过极少的修改,就可 

以使ACE应用移植到其他平台上。 

c++包装层包含一些C++类,可用于构建高度可移植的 

和类型安全的C++应用,可用于:并发和同步、进程间通信、内 

当前市场现存的电子书包,如汉王电子书包等产品,多采用主观 

被动式教学模式,忽略了教育中要求互动的本质,因此,龙芯多 

媒体互动电子书包的设计和研制是十分必要的。 

龙芯多媒体电子书包系统是由华东师范大学教育信息化系 

统工程研究中心开发研究的。实际上它是一个储存、记载和阅 

存管理、信号处理、文件处理等。 

框架层和网络化服务和组件是ACE中最高的“积木”设计 

者可以使用这些组件来帮助自己在更高的层面上思考和构建系 

统。该层包含以下一些大型组件:并发事件处理组件(Reactor 

和Proaetor组件),连接或服务初始化组件(Acceptor和Connec. 

otr组件),流组件(Stream组件),服务配置组件等_2]。 

收稿13期:2011—03—15。全国教育科学“十一五”规划青年基金课 

读信息、资料的电子装置,既能使用本地已经下载的资源,也能 

通过互联网参与到自己所在的虚拟学习社区,与同学老师在线 

学习,交流学习心得等。该系统由运行在龙芯电脑上的客户端、 

应用程序服务器、数据库服务器、Web服务器和m服务器五 

部分组成。 

龙芯多媒体电子书包系统是针对我国基础教育特点,设计 

题(CCA100119)。罗威,硕士生,主研领域:教育信息化,多媒体技术。 

136 计算机应用与软件 2012晕 

阱伽锄鲋层 框詈 包装展 适配层 

作的完成所触发的服务器请求 。对每个接收到的新连接服 

务器程序都会产生两个类型的参数:ACE—HANDLE与ACE— 

Message

回圆圆 函蓝 

曰回 

Block。前者为新到连接的唯一标识符,后者为已接收 

数据包所在的内存缓存区。 

分析和处理数据包模块主要负责对接收到的每个数据包进 

行解释、分析。根据收到的数据包中的包头不同,转而送入到具 

体的业务逻辑处理模块进行处理。 

(2)逻辑处理层 

因为服务器的各项业务逻辑涉及到数据库操作、读取配置 

文件、打印各类日志信息等操作,从而需要将逻辑层划分为数据 

库管理、配置和验证、目志管理、自动处理、具体业务逻辑管理五 

个模块,具体功能如下。 

具体业务逻辑管理模块是逻辑处理层的核心模块,用于完 

图1 ACE层次结构图 

成具体逻辑业务。该模块实现了客户端的登录、下载、聊天、同 

本文就是通过借鉴ACE框架中的丰富而强大的组件和模 

步等逻辑,从而达到具体的客户端与服务器之间的业务交互。 

式,构造了一个高性能并发的服务器程序。 

数据库管理模块负责对数据库服务器中数据进行管理和维 

护。因为系统使用的是MySQL数据库,所以在本模块中使用 

2 系统设计 

MySQL++这个API(应用程序编程接口)来操作数据库。另外 

在数据库管理模块设计时用到了一个类似于cache缓存结构的 

2.1服务器层次结构设计 

处理,大大节省了访问数据库的时间消耗。 

配置和验证信息模块有两个功能:一是读取从配置文件里 

在系统中,服务器(这里指应用程序服务器)性能的高低直 

读取监听端口、数据库、PI’P和Web服务器地址等信息,完成初 

接影响系统的总体性能的好坏 j,因此,电子书包系统设计关 

始化配置工作;二是对使用本服务器的权限进行认证(需使用 

键在于服务器的设计,通过对自适应通信环境的分析,以及对 

配套的电子加密狗才能使用)。 

ACE中间件的研究,在解决网络应用底层通信的连接、并发等 

日志管理模块主要使用ACE—DEBUG、ACE_ERROR、ACE— 

的封装和复用问题上有很大的优势,另外采用ACE技术作为网 TRACE函数管理日志模块。各种日志信息按发生时间次序打 

络通信应用软件的中间件,还可以有效地降低软件开发复杂性, 

印到本地服务器中,方便服务器的管理和维护。 

提高代码的可移植性,从而大大降低软件开发所需经费。 

自动处理服务模块使用了Proactor框架中的ACE—Se ̄ice— 

在本文中将服务器的总体框架分为两层,框架底层和逻辑 

Handler类,可以初始化TCP/IP连接服务。另外还可以定时处 

处理层。框架底层负责网络通信和分析数据包等操作,只需要 

理指定的业务逻辑(如检查客户端连接,检查数据库连接等)。 

修改少量代码即可移植到其他网络通信软件中,实现相同的功 

2.2服务器体系结构及运行机理 

能。框架底层具有通用性。逻辑处理层负责处理具体业务逻辑 

上一节中已经介绍了该服务器的层次结构,并对各模块的 

以及相关操作,具有定制性。服务器功能分层如图2所示。 

功能做了简单的描述。图3简要说明了服务器中各模块之间的 

联系和处理过程。 

图2服务器层次结构图 

服务器层次划分和主要的功能如下: 

(1)框架底层 

图3服务器体系结构图 

通信模块,此模块主要负责与客户端的底层通信,使用了 

服务器的运行机制如下: 

ACE提供的Acceptor—Connec ̄r框架和Proac ̄r框架,使用这些 

(1)启动过程通信模块启动Proac ̄r框架、打开监听端 

框架能够简化TCP/IP层的底层通信细节,以便专注和简化应用 

口,配置和验证模块读取配置文件验证使用信息,数据库管理模 

逻辑的处理。Acceptor-Connec ̄r框架用于建立连接,Proac ̄r框 

块连接数据库服务器。 

架应用异步UO,实现了应用高效的多路分离和分派由异步操 

(2)处理过程若通信模块收到新来数据包,将数据包送 

第3期 罗威等:基于ACE的龙芯电子书包系统服务器设计和实现 137 

人分析处理模块,解析包头,按照包头信息的不同送人具体业务 

前摄器模式支持多个事件处理器的多路分离和分派,这些 

逻辑处理模块进行处理,然后根据逻辑不同配合其他模块完成 

处理器由异步事件的触发来完成。使用前摄器模式的主要优点 

操作。 

在可以启动多个并发操作,并可并行运行,而不要求服务器必须 

服务器的业务逻辑主要由登录、下载、聊天、同步等主要业 

拥有多个线程。它的实现方式如下 : 

务构成,在这里由于篇幅的关系只对下载的具体实现做详细的 (1)创建服务处理器。 

介绍。 

(2)实现服务处理器I/O操作。由ACE—Asynch—Read— 

在准备下载之前通过其他业务逻辑服务器已经告诉客户端 

Streem和ACE_Asynch—Read—Streem来提供异步读写操作。 

用户要下载书或学习资料的基本信息(书名、下载路径等)。下 (3)使用连接器或处理器和远端进行连接。ACE—Asynch— 

载过程分为5个步骤(如图4所示)。前两步是客户端与丌P 

Acceptor或ACE—Asynch—Acceptor用于完成被动和主动的建立 

服务器之间的通信,然后客户端更新本地数据库下载列表。然 

连接。 

后发送包含下载成功的数据包给服务器(包结构如表1所示)。 

(4)启动Proactor事件分发处理。 

最后服务器更新数据库内该用户的已下载信息。 

3.2数据库访问控制 

考虑到服务程序需频繁访问数据库这一业务特点。在内存 

圈I 姒 --・_-—----一l ‘IⅡ  I‘■--_ ■j■■L f  I互 ■ j 0=■  

中开辟一个固定大小的区域,将需频繁访问客户存在数据库内 

的信息在程序初始化阶段映射到内存中来,然后采用ACE框架 

中缓存式分配器(Cached aUocotor)来动态管理这些内存信息。 

这样就大大加快了服务器处理数据库数据的速度,将访问数据 

库的时间代价转变成访问服务器内存的时间代价。另外程序会 

定时检查数据库以保证内存信息与数据库的一致性。 

缓存式分配器使用ACE—Cached—Allocator预先分配内存, 

记录 

然后使用自己内部的机制来管理此内存 。图5演示缓存式分 

配器。在构造器中预分配的内存在空闲表中进行内部管理。该 

表将若干chunk作为节点,chunk可以为任何复杂的数据类型。 

图4下载逻辑过程图 

当用户请求内存chunk时,它将分配一个指针,而空闲表被调 

表l下载返回数据包结构表 

整,当用户释放内存时,它将回到空闲表中,如此往复循环直到 

分类 内容 字节数 

ACE

_

Cached

_

Allocator被销毁 。 

请求命令版本:1.0 1 

请求命令类型: 1 

数据包头 COMMAND—RPY—DOWNLOADR 

Sizeof(RepDownl

请求命令长度:

oadRpt)

 

 4 

数据包体 资源号:SoureeID 1 

图5缓存式分配器 

3服务器优化技术 

3.3发布版权控制 

为了保护开发商和软件使用者的合法权利,系统需要对软 

3.1并发控制 

件的使用进行严格的控制,因此软件需要相配套的电子狗才能 

作为C/S系统架构中的服务器,最基本的要求莫过于有效 

运行服务端。 

稳定地处理来自客户端各种不同的连接请求。为了达到这一目 

电子狗是在使用了世界三大安全公司之一的Safenet生产 

的,采用了ACE框架层中的善于处理多路事件的Proactor框架。 

的圣天诺加密锁的基础上进行二次开发所产生的。该锁采用公 

以下几个类相互合作完成了Proactor框架,如表2所示。 

钥保护及128位AES安全保护服务器制。每次应用程序与软 

件锁间的通讯,都会使用一个独立的保护密钥,让黑客无法暴力 

表2 Proactor框架类表 

破解。 

ACE类 描述 

通过对软件使用的时间和最大客户端连接数的设置,并利 

ACE

Handler 定义用于接收异步I/O操作的结果 

用服务器配置和验证信息管理模块对该电子狗的合法性进行验 

- 

和处理定时器到期的接口 

证,从而达到版权控制的目的。 

ACE

—.

Asynch

—.

Read

—.

Stream 在I/O留上发起异步读和异步写操 

ACE

_

AsynehAWrite

_

Stream 作,并使每个操作与一个用于接收 

ACE

4性能测试 

_

Asynch

Result 结果的ACE—Handler对象关联起来 

ACE

Asynch

_

Acceptor Acceptor-Connector模式的一种实现, 

ACE

Connector 它异步的建立TCP/IP连接 

4.1测试环境. 

—.

Asyneh

—.

CPU采用Intel奔腾4 2.8 GHz。 

ACE

—.

Service

_

Handler 初始化TCP/1P连接的服务 

物理内存大小:512 MB×2。 

138 计算机应用与软件 2012卑 

操作系统采用基于Linux 2.6.31内核的Ubuntu 9.10操作 

系统。 

网络通信软件积累了经验,对推广ACE技术也有重要意义。 

I  ●

4.2测试方法 

服务器的测试分为压力测试和逻辑测试,压力测试测试服 

参考文献 

[1]Schmid D C,Huston S D.C++网络编程(卷1):运用ACE和模式 

消除复杂性[M].电子工业出版社. 

[2]Schmid D C,Huston S D.C++网络编程(卷2):基于ACE和框架 

的系统化复用[M].电子工业出版社. 

务器的负载能力,逻辑测试则测试逻辑业务是否正确 ]。 

在压力测试部分,使用一个多线程测试程序,每个线程给 

服务器发送登录包,登录失败会输出打印出信息,只需要查看服 

务器的TCP连接数即可知道该服务器的负载能力。 

[3]刘佳娜,张林龙.基于ACE的软件许可证系统设计和实现[J].计 

算机工程,2006。32(5):128—130. 

在负载测试中,使用了一个“机器人”程序。该程序把不同 

逻辑包发送给服务器,然后将服务器返回的数据包的基本信息 

[4]李青,曹绣英.基于ACE的无线局域网认证业务的设计与实现 

打印日志,查看服务器的各种逻辑反应。最后用一个批处理程 

序运行多个“机器人”程序。由于中小学校中(按一般初级中学 

15个班,小学lO个班计算)一个教学班的基本规模为60人,因 

而在每个批处理上模拟60个客户端的连接访问。 

4.3结果分析 

负载测试结果如表3所示。可以看到服务器的负载能力大 

概在2000个TCP连接。 

表3压力测试结果统计表 

 }测试次数 1 2 3 

 fTCP连接数 1875 1923 1965 

逻辑测试统计图(如图6所示)是选取了逻辑测试中的三 

种协议的统计结果。(平均响应时间=响应总时间/响应数)从 

逻辑测试结果看,图6按3个不同的协议来统计日志数据。从 

图中可以得出,按照协议的不同,服务器的响应时间会所有区 

别,随着在线人数的增加,响应时间也会相应增加。 

匣时间湖 统ifl 统If2 统计3 鲥1 统计2 缴f3 统计1 统计2 I}ii_}3 

51 782 986 294 219 244 l哇9 139 331 

-2‰ 65 265 5l8 2 817 1286 410 8T 865 

l1 0 1 18 23 8 35 27 25 4: 弘3 

_100 4 29 7 3 13 13 l7 

101—200 2 3 2 0 2 11 4 

l01-5000 ̄ 2 c 0 c 1 ( 0 

1Il000 c 0 f c c 0 0 ( 

ooo ̄ia ̄0 0 0 0 c 0 O 0 0 

幢数 600 1080 l560 600 10踟 惭c 60o 10鼬 l560 

响 ) 61.6513 6 6483 1.2626 69.5442 99.1046 强048 00。3117 121.565" 17屯475 

图6逻辑测试统计图 

测试结果表明,服务器程序很好地把各个逻辑的响应时间 

控制在有效范围内,满足了作为服务器程序的基本要求。 

5 结语 

本文通过研究ACE作为网络通信中间件的各种特点和应 

用优势,对“龙芯电子书包”系统进行了设计和开发。给出了基 

于中间件ACE的服务器的具体设计方案,运用层次化、模块化 

的方式设计了系统服务器,这样既保证了层与层的分离,提供了 

系统的可扩展性,同时也提高了代码的复用性。通过测试,该服 

务器满足了作为一个以学校单位为规模的系统服务器的设计要 

求。“龙芯电子书包”系统的现实推广配上龙芯电脑低廉价格 

的优势,将丰富以国产处理器龙芯为平台的电脑在教育领域的 

应用。系统服务器的开发也为将来利用ACE开发高效灵活的 

[J].应用科学报,2005,23(2):131—135. 

[5]李涛,李慧.基于ACE的并发编程模式和池式内存分配的研究 

[J].计算机工程与设计,2006,27(1):26—28. 

[6]斐尔明,孙功星.大规模用户登录服务的负载平衡实现[J].计算 

机工程,2006,32(8):139—180. 

(上接第81页) 

参考文献 

[1]贾渊,刘鹏程,蒋勇,等.基于偏微分方程的肉品图像去噪对比研究 

[J].计算机应用与软件,2011,28(4):109—113. 

[2]Xu R,Chen Y W.Wavelet—based muhiresolution medical image regis- 

tration strategy combining mutual information with spatial information 

[J].International Journal of Innovative Computing,Information and 

Control,2007,3(2):285—296. 

[3]宣兆新,陆金桂,石云,等.基于改进的遗传算法的图像恢复[J]. 

计算机应用与软件,2010,27(3):252—254. 

[4]Manjon J V,Carbonell c J,Luu J J,et 1a.MRI denoising using non-lo— 

cal means[J].Medicla Image Analysis,2008(12):514—523. 

[5]Buades A,Coil B,Morel J M.A non—local algorithm for image denoising 

[C]//IEEE CVPR,San Diego,Caliofrnia,IEEE Press,2005:60—65. 

[6]孙伟峰.基于非局部信息的信号与图像处理算法及其应用研究 

[D].济南:山东大学,2010. 

[7]Ke ̄rann C,Boulanger J.Optimal spatila adaptation for patch—based 

image denoising[J].IEEE Transactions on Image Processing,2006,15 

(1O):2866—2878. 

[8]Coup6 P,Yger P,Prima S,et a1.An optimized hlcokwise no ̄ocal 

means denoising filter for 3-D magnetic resonance images[J].IEEE 

Transactions on Medical Imaging,2008,27(4):425—441. 

[9]Avanaki A N,Diyanat A,Sodagari S.Optimum parameter estimation for 

non-local reCallS image de—noising using corner information[C]//The 

9 International Conference on Signal Processing,Beijing,China,IEEE 

Press,2008:861—863. 

[10]Zimmer S,Didas s,Weickert J.A rotationally invariant block matching 

strategy improving image denoising with non—local means[C]//Interna— 

tional Workshop Off Local and Non-Local Approximation in Image Pro— 

eessing,I丑usanne,Switzerland,2008. 

[11]许光宇,檀结庆.带结构检测的非局部均值图像去噪算法[J].计 

算机应用,2011,31(3):749—752. 

[12]Smith S M,Brady J M.SUSAN—A new approach to low level image pro— 

cessing[J].International Journal of ComputerVision,1997,23(1):45 

78. 

[13]ZhangY K,ZhangY J,LuH B.Statisticla sinogram smoothingforlow- 

dose CT with segmentation.based adaptive filtering[J].IEEE Transac— 

tions on Nuclear Science,2010。57(5):2587—2598. 

2024年4月11日发(作者:闪晨萱)

第29卷第3期 

2012年3月 

计算机应用与软件 

Computer Applications and Software 

Vo1.29 No.3 

Mar.2012 

基于ACE的龙芯电子书包系统服务器设计和实现 

罗 威 陈志云 周 宏 蔡建华 

(华东师范大学计算中心上海200241) 

(华东师范大学教育信息化系统工程研究中心上海200062) 

摘要. 提出一种基于ACE的“龙芯电子书包”系统服务器,包括框架底层和逻辑处理层,方便将框架底层移植到服务器系统上 

。 并增强稳定性,最后用测试证明该方法能提高服务器的性能。 

关键词 

中图分类号

ACE龙芯电子书包

TP311 

服务器 

A 文献标识码

DESIGN ANDⅡ PLEMENTATIoN oF ACE.BASED LooNGSoN ELECTRONICS 

BAG SYSTEM SERVER 

Luo wei Chen Zhiyun Zhou Hong Cai Jianhua 

(Computer Center,East China Normal University,Shanghai 200241,China) 

(E-Educational Sya ̄m Engineering Research Center,East China Normal University,Shanghai 200062,China) 

Abstract This paper proposed an ACE-based Loongson Electronics Bag system server which includes the framework underlying layer and 

the logic processing layer.It is easy to transplant the framework underlying layer to server systems and to enhance the stability of the s ̄tems. 

In the end of the paper,tests show that the method can improve the performance of the server. 

Keywords Adaptive communication envionmentr(ACE)Loongson electronics bag Server 

以学习者为中心,电子书包资源为辅助手段的互动教学模式探 

0 引 言 

龙芯CPU是我国科学家经过十年攻关所取得的重大科研 

索的体现。 

创新成果。但由于MIPS指令集与X86指令集之间的不兼容 

性,导致龙芯电脑平台上的支撑软件非常不足,特别是目前在基 

础教育领域还缺乏完善的集成解决方案。这导致国产软硬件的 

可用性略显不足,影响了国产软硬件在基础教育领域的进一步 

推广应用。 

1相关工作 

ACE是可以自由使用的、开放源码的、强大的、面向对象的 

应用工具包…。它采用了分层结构,包括OS适配层、C++外包 

装层、框架层和网络化服务和组件,如图1所示…。 

0s适配层是位于本地OS API和ACE之间的代码层。它 

电子书包是一个全新的组合概念。它包含主产品阅读工 

具,远程网上家教和设计精美的电子学具。电子书包不仅能减 

轻学生肩膀上的负担,更重要的是,作为一个现代化的学习工 

具,电子书包能把学生从“灌输式”的教学方式中解放出来。但 

使ACE的较高层与平台依赖性屏蔽开来,从而使用ACE编写 

的代码保持了相对的平台无关性。只需经过极少的修改,就可 

以使ACE应用移植到其他平台上。 

c++包装层包含一些C++类,可用于构建高度可移植的 

和类型安全的C++应用,可用于:并发和同步、进程间通信、内 

当前市场现存的电子书包,如汉王电子书包等产品,多采用主观 

被动式教学模式,忽略了教育中要求互动的本质,因此,龙芯多 

媒体互动电子书包的设计和研制是十分必要的。 

龙芯多媒体电子书包系统是由华东师范大学教育信息化系 

统工程研究中心开发研究的。实际上它是一个储存、记载和阅 

存管理、信号处理、文件处理等。 

框架层和网络化服务和组件是ACE中最高的“积木”设计 

者可以使用这些组件来帮助自己在更高的层面上思考和构建系 

统。该层包含以下一些大型组件:并发事件处理组件(Reactor 

和Proaetor组件),连接或服务初始化组件(Acceptor和Connec. 

otr组件),流组件(Stream组件),服务配置组件等_2]。 

收稿13期:2011—03—15。全国教育科学“十一五”规划青年基金课 

读信息、资料的电子装置,既能使用本地已经下载的资源,也能 

通过互联网参与到自己所在的虚拟学习社区,与同学老师在线 

学习,交流学习心得等。该系统由运行在龙芯电脑上的客户端、 

应用程序服务器、数据库服务器、Web服务器和m服务器五 

部分组成。 

龙芯多媒体电子书包系统是针对我国基础教育特点,设计 

题(CCA100119)。罗威,硕士生,主研领域:教育信息化,多媒体技术。 

136 计算机应用与软件 2012晕 

阱伽锄鲋层 框詈 包装展 适配层 

作的完成所触发的服务器请求 。对每个接收到的新连接服 

务器程序都会产生两个类型的参数:ACE—HANDLE与ACE— 

Message

回圆圆 函蓝 

曰回 

Block。前者为新到连接的唯一标识符,后者为已接收 

数据包所在的内存缓存区。 

分析和处理数据包模块主要负责对接收到的每个数据包进 

行解释、分析。根据收到的数据包中的包头不同,转而送入到具 

体的业务逻辑处理模块进行处理。 

(2)逻辑处理层 

因为服务器的各项业务逻辑涉及到数据库操作、读取配置 

文件、打印各类日志信息等操作,从而需要将逻辑层划分为数据 

库管理、配置和验证、目志管理、自动处理、具体业务逻辑管理五 

个模块,具体功能如下。 

具体业务逻辑管理模块是逻辑处理层的核心模块,用于完 

图1 ACE层次结构图 

成具体逻辑业务。该模块实现了客户端的登录、下载、聊天、同 

本文就是通过借鉴ACE框架中的丰富而强大的组件和模 

步等逻辑,从而达到具体的客户端与服务器之间的业务交互。 

式,构造了一个高性能并发的服务器程序。 

数据库管理模块负责对数据库服务器中数据进行管理和维 

护。因为系统使用的是MySQL数据库,所以在本模块中使用 

2 系统设计 

MySQL++这个API(应用程序编程接口)来操作数据库。另外 

在数据库管理模块设计时用到了一个类似于cache缓存结构的 

2.1服务器层次结构设计 

处理,大大节省了访问数据库的时间消耗。 

配置和验证信息模块有两个功能:一是读取从配置文件里 

在系统中,服务器(这里指应用程序服务器)性能的高低直 

读取监听端口、数据库、PI’P和Web服务器地址等信息,完成初 

接影响系统的总体性能的好坏 j,因此,电子书包系统设计关 

始化配置工作;二是对使用本服务器的权限进行认证(需使用 

键在于服务器的设计,通过对自适应通信环境的分析,以及对 

配套的电子加密狗才能使用)。 

ACE中间件的研究,在解决网络应用底层通信的连接、并发等 

日志管理模块主要使用ACE—DEBUG、ACE_ERROR、ACE— 

的封装和复用问题上有很大的优势,另外采用ACE技术作为网 TRACE函数管理日志模块。各种日志信息按发生时间次序打 

络通信应用软件的中间件,还可以有效地降低软件开发复杂性, 

印到本地服务器中,方便服务器的管理和维护。 

提高代码的可移植性,从而大大降低软件开发所需经费。 

自动处理服务模块使用了Proactor框架中的ACE—Se ̄ice— 

在本文中将服务器的总体框架分为两层,框架底层和逻辑 

Handler类,可以初始化TCP/IP连接服务。另外还可以定时处 

处理层。框架底层负责网络通信和分析数据包等操作,只需要 

理指定的业务逻辑(如检查客户端连接,检查数据库连接等)。 

修改少量代码即可移植到其他网络通信软件中,实现相同的功 

2.2服务器体系结构及运行机理 

能。框架底层具有通用性。逻辑处理层负责处理具体业务逻辑 

上一节中已经介绍了该服务器的层次结构,并对各模块的 

以及相关操作,具有定制性。服务器功能分层如图2所示。 

功能做了简单的描述。图3简要说明了服务器中各模块之间的 

联系和处理过程。 

图2服务器层次结构图 

服务器层次划分和主要的功能如下: 

(1)框架底层 

图3服务器体系结构图 

通信模块,此模块主要负责与客户端的底层通信,使用了 

服务器的运行机制如下: 

ACE提供的Acceptor—Connec ̄r框架和Proac ̄r框架,使用这些 

(1)启动过程通信模块启动Proac ̄r框架、打开监听端 

框架能够简化TCP/IP层的底层通信细节,以便专注和简化应用 

口,配置和验证模块读取配置文件验证使用信息,数据库管理模 

逻辑的处理。Acceptor-Connec ̄r框架用于建立连接,Proac ̄r框 

块连接数据库服务器。 

架应用异步UO,实现了应用高效的多路分离和分派由异步操 

(2)处理过程若通信模块收到新来数据包,将数据包送 

第3期 罗威等:基于ACE的龙芯电子书包系统服务器设计和实现 137 

人分析处理模块,解析包头,按照包头信息的不同送人具体业务 

前摄器模式支持多个事件处理器的多路分离和分派,这些 

逻辑处理模块进行处理,然后根据逻辑不同配合其他模块完成 

处理器由异步事件的触发来完成。使用前摄器模式的主要优点 

操作。 

在可以启动多个并发操作,并可并行运行,而不要求服务器必须 

服务器的业务逻辑主要由登录、下载、聊天、同步等主要业 

拥有多个线程。它的实现方式如下 : 

务构成,在这里由于篇幅的关系只对下载的具体实现做详细的 (1)创建服务处理器。 

介绍。 

(2)实现服务处理器I/O操作。由ACE—Asynch—Read— 

在准备下载之前通过其他业务逻辑服务器已经告诉客户端 

Streem和ACE_Asynch—Read—Streem来提供异步读写操作。 

用户要下载书或学习资料的基本信息(书名、下载路径等)。下 (3)使用连接器或处理器和远端进行连接。ACE—Asynch— 

载过程分为5个步骤(如图4所示)。前两步是客户端与丌P 

Acceptor或ACE—Asynch—Acceptor用于完成被动和主动的建立 

服务器之间的通信,然后客户端更新本地数据库下载列表。然 

连接。 

后发送包含下载成功的数据包给服务器(包结构如表1所示)。 

(4)启动Proactor事件分发处理。 

最后服务器更新数据库内该用户的已下载信息。 

3.2数据库访问控制 

考虑到服务程序需频繁访问数据库这一业务特点。在内存 

圈I 姒 --・_-—----一l ‘IⅡ  I‘■--_ ■j■■L f  I互 ■ j 0=■  

中开辟一个固定大小的区域,将需频繁访问客户存在数据库内 

的信息在程序初始化阶段映射到内存中来,然后采用ACE框架 

中缓存式分配器(Cached aUocotor)来动态管理这些内存信息。 

这样就大大加快了服务器处理数据库数据的速度,将访问数据 

库的时间代价转变成访问服务器内存的时间代价。另外程序会 

定时检查数据库以保证内存信息与数据库的一致性。 

缓存式分配器使用ACE—Cached—Allocator预先分配内存, 

记录 

然后使用自己内部的机制来管理此内存 。图5演示缓存式分 

配器。在构造器中预分配的内存在空闲表中进行内部管理。该 

表将若干chunk作为节点,chunk可以为任何复杂的数据类型。 

图4下载逻辑过程图 

当用户请求内存chunk时,它将分配一个指针,而空闲表被调 

表l下载返回数据包结构表 

整,当用户释放内存时,它将回到空闲表中,如此往复循环直到 

分类 内容 字节数 

ACE

_

Cached

_

Allocator被销毁 。 

请求命令版本:1.0 1 

请求命令类型: 1 

数据包头 COMMAND—RPY—DOWNLOADR 

Sizeof(RepDownl

请求命令长度:

oadRpt)

 

 4 

数据包体 资源号:SoureeID 1 

图5缓存式分配器 

3服务器优化技术 

3.3发布版权控制 

为了保护开发商和软件使用者的合法权利,系统需要对软 

3.1并发控制 

件的使用进行严格的控制,因此软件需要相配套的电子狗才能 

作为C/S系统架构中的服务器,最基本的要求莫过于有效 

运行服务端。 

稳定地处理来自客户端各种不同的连接请求。为了达到这一目 

电子狗是在使用了世界三大安全公司之一的Safenet生产 

的,采用了ACE框架层中的善于处理多路事件的Proactor框架。 

的圣天诺加密锁的基础上进行二次开发所产生的。该锁采用公 

以下几个类相互合作完成了Proactor框架,如表2所示。 

钥保护及128位AES安全保护服务器制。每次应用程序与软 

件锁间的通讯,都会使用一个独立的保护密钥,让黑客无法暴力 

表2 Proactor框架类表 

破解。 

ACE类 描述 

通过对软件使用的时间和最大客户端连接数的设置,并利 

ACE

Handler 定义用于接收异步I/O操作的结果 

用服务器配置和验证信息管理模块对该电子狗的合法性进行验 

- 

和处理定时器到期的接口 

证,从而达到版权控制的目的。 

ACE

—.

Asynch

—.

Read

—.

Stream 在I/O留上发起异步读和异步写操 

ACE

_

AsynehAWrite

_

Stream 作,并使每个操作与一个用于接收 

ACE

4性能测试 

_

Asynch

Result 结果的ACE—Handler对象关联起来 

ACE

Asynch

_

Acceptor Acceptor-Connector模式的一种实现, 

ACE

Connector 它异步的建立TCP/IP连接 

4.1测试环境. 

—.

Asyneh

—.

CPU采用Intel奔腾4 2.8 GHz。 

ACE

—.

Service

_

Handler 初始化TCP/1P连接的服务 

物理内存大小:512 MB×2。 

138 计算机应用与软件 2012卑 

操作系统采用基于Linux 2.6.31内核的Ubuntu 9.10操作 

系统。 

网络通信软件积累了经验,对推广ACE技术也有重要意义。 

I  ●

4.2测试方法 

服务器的测试分为压力测试和逻辑测试,压力测试测试服 

参考文献 

[1]Schmid D C,Huston S D.C++网络编程(卷1):运用ACE和模式 

消除复杂性[M].电子工业出版社. 

[2]Schmid D C,Huston S D.C++网络编程(卷2):基于ACE和框架 

的系统化复用[M].电子工业出版社. 

务器的负载能力,逻辑测试则测试逻辑业务是否正确 ]。 

在压力测试部分,使用一个多线程测试程序,每个线程给 

服务器发送登录包,登录失败会输出打印出信息,只需要查看服 

务器的TCP连接数即可知道该服务器的负载能力。 

[3]刘佳娜,张林龙.基于ACE的软件许可证系统设计和实现[J].计 

算机工程,2006。32(5):128—130. 

在负载测试中,使用了一个“机器人”程序。该程序把不同 

逻辑包发送给服务器,然后将服务器返回的数据包的基本信息 

[4]李青,曹绣英.基于ACE的无线局域网认证业务的设计与实现 

打印日志,查看服务器的各种逻辑反应。最后用一个批处理程 

序运行多个“机器人”程序。由于中小学校中(按一般初级中学 

15个班,小学lO个班计算)一个教学班的基本规模为60人,因 

而在每个批处理上模拟60个客户端的连接访问。 

4.3结果分析 

负载测试结果如表3所示。可以看到服务器的负载能力大 

概在2000个TCP连接。 

表3压力测试结果统计表 

 }测试次数 1 2 3 

 fTCP连接数 1875 1923 1965 

逻辑测试统计图(如图6所示)是选取了逻辑测试中的三 

种协议的统计结果。(平均响应时间=响应总时间/响应数)从 

逻辑测试结果看,图6按3个不同的协议来统计日志数据。从 

图中可以得出,按照协议的不同,服务器的响应时间会所有区 

别,随着在线人数的增加,响应时间也会相应增加。 

匣时间湖 统ifl 统If2 统计3 鲥1 统计2 缴f3 统计1 统计2 I}ii_}3 

51 782 986 294 219 244 l哇9 139 331 

-2‰ 65 265 5l8 2 817 1286 410 8T 865 

l1 0 1 18 23 8 35 27 25 4: 弘3 

_100 4 29 7 3 13 13 l7 

101—200 2 3 2 0 2 11 4 

l01-5000 ̄ 2 c 0 c 1 ( 0 

1Il000 c 0 f c c 0 0 ( 

ooo ̄ia ̄0 0 0 0 c 0 O 0 0 

幢数 600 1080 l560 600 10踟 惭c 60o 10鼬 l560 

响 ) 61.6513 6 6483 1.2626 69.5442 99.1046 强048 00。3117 121.565" 17屯475 

图6逻辑测试统计图 

测试结果表明,服务器程序很好地把各个逻辑的响应时间 

控制在有效范围内,满足了作为服务器程序的基本要求。 

5 结语 

本文通过研究ACE作为网络通信中间件的各种特点和应 

用优势,对“龙芯电子书包”系统进行了设计和开发。给出了基 

于中间件ACE的服务器的具体设计方案,运用层次化、模块化 

的方式设计了系统服务器,这样既保证了层与层的分离,提供了 

系统的可扩展性,同时也提高了代码的复用性。通过测试,该服 

务器满足了作为一个以学校单位为规模的系统服务器的设计要 

求。“龙芯电子书包”系统的现实推广配上龙芯电脑低廉价格 

的优势,将丰富以国产处理器龙芯为平台的电脑在教育领域的 

应用。系统服务器的开发也为将来利用ACE开发高效灵活的 

[J].应用科学报,2005,23(2):131—135. 

[5]李涛,李慧.基于ACE的并发编程模式和池式内存分配的研究 

[J].计算机工程与设计,2006,27(1):26—28. 

[6]斐尔明,孙功星.大规模用户登录服务的负载平衡实现[J].计算 

机工程,2006,32(8):139—180. 

(上接第81页) 

参考文献 

[1]贾渊,刘鹏程,蒋勇,等.基于偏微分方程的肉品图像去噪对比研究 

[J].计算机应用与软件,2011,28(4):109—113. 

[2]Xu R,Chen Y W.Wavelet—based muhiresolution medical image regis- 

tration strategy combining mutual information with spatial information 

[J].International Journal of Innovative Computing,Information and 

Control,2007,3(2):285—296. 

[3]宣兆新,陆金桂,石云,等.基于改进的遗传算法的图像恢复[J]. 

计算机应用与软件,2010,27(3):252—254. 

[4]Manjon J V,Carbonell c J,Luu J J,et 1a.MRI denoising using non-lo— 

cal means[J].Medicla Image Analysis,2008(12):514—523. 

[5]Buades A,Coil B,Morel J M.A non—local algorithm for image denoising 

[C]//IEEE CVPR,San Diego,Caliofrnia,IEEE Press,2005:60—65. 

[6]孙伟峰.基于非局部信息的信号与图像处理算法及其应用研究 

[D].济南:山东大学,2010. 

[7]Ke ̄rann C,Boulanger J.Optimal spatila adaptation for patch—based 

image denoising[J].IEEE Transactions on Image Processing,2006,15 

(1O):2866—2878. 

[8]Coup6 P,Yger P,Prima S,et a1.An optimized hlcokwise no ̄ocal 

means denoising filter for 3-D magnetic resonance images[J].IEEE 

Transactions on Medical Imaging,2008,27(4):425—441. 

[9]Avanaki A N,Diyanat A,Sodagari S.Optimum parameter estimation for 

non-local reCallS image de—noising using corner information[C]//The 

9 International Conference on Signal Processing,Beijing,China,IEEE 

Press,2008:861—863. 

[10]Zimmer S,Didas s,Weickert J.A rotationally invariant block matching 

strategy improving image denoising with non—local means[C]//Interna— 

tional Workshop Off Local and Non-Local Approximation in Image Pro— 

eessing,I丑usanne,Switzerland,2008. 

[11]许光宇,檀结庆.带结构检测的非局部均值图像去噪算法[J].计 

算机应用,2011,31(3):749—752. 

[12]Smith S M,Brady J M.SUSAN—A new approach to low level image pro— 

cessing[J].International Journal of ComputerVision,1997,23(1):45 

78. 

[13]ZhangY K,ZhangY J,LuH B.Statisticla sinogram smoothingforlow- 

dose CT with segmentation.based adaptive filtering[J].IEEE Transac— 

tions on Nuclear Science,2010。57(5):2587—2598. 

发布评论

评论列表 (0)

  1. 暂无评论