《武汉工程大学学报》  2008年04期 96-98   出版日期:2008-04-30   ISSN:1674-2869   CN:42-1779/TQ
基于JXTA技术的在线考试系统设计与实现


0引言网络架构在互联网上应用最为广泛的分布式模型是C/S服务器模型,C/S架构是一种非常典型的中央集中式架构,在C/S架构中客户端请求服务,服务器提供服务,整个网络都依赖于服务器来提供网络服务.整个网络只有在服务器存在的前提下才有意义.但是一旦出现客户端数量不断增加的情况,网络的效率就会不断降低.为了解决上述问题P2P网络架构应运而生,P2P采用的是非中央化的架构如图1所示,在P2P模式下网络中不分客户端和服务器,都称为节点.P2P网络模式中的每个节点都是同等的,具有相同的状态,每一个节点都具有请求一个服务或者提供一个服务的功能[1].但是并不要求每个节点都具有相同的物理性能.一个P2P网络可以包含有不同性能的节点,例如服务器、客户机、路由器、PDA等都可以作为节点出现.图1P2P网络拓扑结构
Fig.1P2P network topology architecture但是,P2P当前所处的环境是“诸侯割据”,存在着众多应用不同的协议、不同的架构.为了彻底地解决这个问题,Sun公司推出了JXTA技术,目的是为P2P应用提供一个标准的P2P平台基础.“JXTA技术是网络编程和计算的平台,用以解决现代分布计算,尤其是点对点(P2P)计算中出现的问题”.当要满足如下需求时可以应用JXTA技术:不需要或不可能实现中央化、需要具有一定的自适应能力、需要具有一定的可伸缩性、彼此关系是短暂性的、资源分散[1].1系统需求分析现有基于C/S模式的在线考试系统一般存在以下缺陷:当在线考试客户端数量不断增加的情况,考试系统的效率就会不断降低、并且不能为满足用户需求而开放源码.基于以上因素本文提出了应用JXTA技术来构建在线考试系统模型.JXTA技术采用统一资源分散寻址,为JXTA组件每个可设定地址的实例分配一个内部标识符.该标识由64字节数字组成,使用一种可确保在时间和空间上都有很高概率的唯一性的算法产生.同时,因为JXTA 采用了三种安全技术,传输层安全协议(Transport Layer Security, TLS)、JXTA 协议的传输独立性和数字证书和证书授权,为系统的安全提供了保障[2].本系统的主要特点是实现了基于JXTA技术的在线考试与交流,打破了过去的基于C/S模式的在线考试与交流.建立起了一种全新的信息交流模式,而不在拘泥于传统服务器/客户机的限制,主要体现在实现了点对点的在线考试与信息交流.2系统建模因为JXTA本身是源代码开放的,而且JxtaUnicastSecure Pipe使用传输安全层协议(TLS)来对通信管道提供安全保障,所以可以利用JXTA构建信息系统的网络模型.本系统模块结构如图2所示.图2在线考试系统结构
Fig.2Online examination system系统采用的是JXTA技术,在JXTA中通过对等组实现定义一组服务和资源、提供一个安全区域、建立区域、创建一个监控的环境等功能,可以为Peer提供发现、成员资格、访问、管道、解析、监视、汇聚等服务;JXTA还提供了对等组的认证机制,对等组的成员在交流通信和共享信息时必须遵守约定的协议.“主考Peer”首先在网络中创建一个对等组,然后等待“应试 Peer”的加入;“应试 Peer”在网络中发现该对等组后,首先提交身份验证证书,验证通过后才能加入该对等组进行在线考试或在线交流.系统中对等点“主考Peer”与多个“应试 Peer”之间的信息传输是通过管道来实现的,JXTA技术中管道是在端点之上的服务或应用之间发送和接收信息的虚拟连接通道.如果要实现信息传递,首先是建立管道,JXTA提供的默认服务是单向、异步的通信,采用单向管道模式是因为异步模式共同特征最少,容易在非IP的传输中实现;而采用异步模式是因为其具有比同步模式更强的可缩放性[3].在JXTA中管道有单播型(UnicastType)和广播型(PropagateType)及单播安全行(UnicastSecureType)三种管道.JXTA提供了Pipe的API,主要由两个包组成:net.jxta.pipe以及net.jxta.impl.pipe.在JXTA中信息是以消息的形式存在,消息定义了一个可传递各种数据的封装.JXTA的消息是使用二进制格式来实现二进制和XML数据的高效传输[4].在应用层面上,如果两个Peer分别代表两家不同的公司,而且它们已经通过互联网建立连接,那么一方的信息就必须为另一方所识别,所以当前互联网上关于数据描述和交换的协议,如XML、SOAP、UDDI等都是一个完善的P2P软件所要考虑的.在JXTA中通告正是结构化的XML文档,是JXTA的基本构建模块之一,用来帮助对等体发现所有的服务,包括其它对等体、管道和对等组.第4期吕涛,等:基于JXTA技术的在线考试系统设计与实现
武汉工程大学学报第30卷
3系统实现系统应用的开发工具是NetBeans5.5、JDK 5.0、JXTA 2.0、 Sun Java System Application Server Enterprise Edition 8服务器,数据库采用的是Pointbase数据库,Pointbase是一个100%纯java语言编写的小型数据库,因为是采用纯java语言编写的, 对平台支持性强.并且可以直接过渡到其它数据库.系统中的在线交流与在线考试是不能同时进行的,如果要进行在线考试,且虚拟试卷已存在,则直接进入“在线考试”模块,如无虚拟试卷或要对以存在的虚拟试卷进行修改,在考试之前首先在控制台启动“信息资源管理”模块来生成虚拟试卷,可以通过“插入”,“删除”等操作来实现,然后生成虚拟试卷;接下来退出“信息资源管理”,进入“在线考试”模块创建连接就可以在“主考Peer”和“应试 Peer”之间建立一个关于“问题—答案”的会话.该会话中的“主考Peer”将创建一个通信代理Agent,通信代理Agent依照事先生成的虚拟试卷提供考试题目给“应试 Peer”,依次发送考试题目给“应试 Peer”,并且通信代理Agent将记录从该“应试 Peer”中接收的答案,并对该“应试 Peer”的答案进行评估.最后该“主考Peer”将根据该“应试 Peer”的回答情况给出成绩.该系统设计的类有Mainframe、Servers、DBConnectionManager、 DBConnection、DbManage、TableModel、Agent、AgentFactory、C_Mainframes、Client、Chat.其中Mainframe、C_Mainframe、Servers、Client、Chat实现在线考试的操作界面GUI及创建虚拟试卷域、对等节点和提供一个使得对等节点间能相互通信的环境,设置JXTA环境和建立“主考Peer”对等节点到“应试 Peer”对等节点的通信连接.DBConnectionManage 、DBConnection、DbManage、TableMode实现数据库考试信息的管理及虚拟试卷的生成.Agent用来获取已生成的虚拟试卷,提供考试题目和接收应试的答案.在JXTA平台的启动流程中需要注意的是:当首次启动应用程序时会出现一个图形界面的JXTA配置窗口,用于配置JXTA平台的网络环境,包括Peer的信息、TCP/IP和HTTP的配置、Rendezvous和Relay Peer,以及Security安全信息[5].该应用程序的用户GUI接口显示了与对等节点之间的通信相关的数据,而JXTA集成的后台应用程序则负责更新在用户前端显示的数据.”信息资源管理”模块实现对考试信息的管理及生成虚拟试卷,执行过程如图3所示;“应试Peer”的执行过程如图4所示.图3试卷信息资源管理
Fig.3Information resource of paper management图4“应试Peer”窗口
Fig.4User interface4结语基于C/S模式和P2P模式系统的性能对比测试结果如表1所示, 可以发现借助P2P可以使网络中的节点之间实现共享信息和计算资源、网络节点负载均衡.与传统的C/S模式相比,可以更加有效地利用网络上大量闲置的信息资源、存储空间、处理器周期等资源,避免服务器带来的瓶颈问题,在降低服务器成本等方面有明显的优势,实现对自动化技术的支持.
表1P2P模式与C/S模式的性能测试对比
Table 1Comparison of P2P and C/S model
性能模式P2P模式C/S模式寻址方式基于内容寻址URL网络存储模式内容位于边缘内容位于中心节点增加增加了有效的数据资源增加了Server的负载搜索效率高低闲置资源利用率高低JXTA技术在安全上的突出特点来源于它自身良好的可扩展性,并且由于它开放源代码,便于程序开发人员对其深入研究.与传统的分布式系统相比,JXTA技术具有无可比拟的优势,因此JXTA技术具有广阔的应用前景.