基于云平台的可控在线程序评测中间件的制作方法

文档序号:11411021阅读:326来源:国知局
基于云平台的可控在线程序评测中间件的制造方法与工艺

本发明涉及在线程序评测系统及云平台技术领域,尤其是一种基于云平台的可控在线程序评测中间件。



背景技术:

随着互联网的日益发达,在线考试、在线程序评测不断兴起。目前在线程序评测多是在线编程测试,在各高校均有面向学生练习用的测试系统,编程能力竞赛如topcoder等也广泛使用在线程序评测系统。但目前的在线评测系统大多被作为练习培训使用,不能真正应用于真实考试。究其原因,主要是因为这些系统不能解决考试中的作弊问题,考生的客户端不可控,考生在客户端的行为无法监控。如果在考试中不能解决作弊问题,考试或者程序评测就失去了其公平性。



技术实现要素:

本发明所要解决的技术问题在于,提供一种基于云平台的可控在线程序评测中间件,能够实现考试环境的统一,实现对用户行为的监控。

为解决上述技术问题,本发明提供一种基于云平台的可控在线程序评测中间件,包括:云平台接口模块、虚拟机内部控制器、考试监控模块和考试专用客户端;云平台接口模块与相应的云平台相连接,管理分配在不同云平台上的考试环境,支持多个云平台作为后端;考试专用客户端通过远程桌面协议与相应的虚拟机相连接,考生通过考试专用客户端使用运行于虚拟机上的桌面环境,考试专用客户端还与考试监控模块相连,考试专用客户端对考生在本地的操作进行监控并反馈给考试监控模块;虚拟机内部控制器与考试监控模块相连,虚拟机内部控制器使用远程桌面协议,监控考生在虚拟机桌面环境中的操作,将异常行为上报给服务器端的考试监控模块;考试监控模块对监控信息进行收集、处理和反馈。

优选的,考生通过本地的考试专用客户端连接在线评测系统进行身份验证,获取进入考试环境的权限;考生通过考试专用客户端使用远程桌面协议连接并使用云平台中的考试环境,所有操作被限制在云平台的桌面环境内,考试专用客户端对考生在本地机器上的动作进行监控。

优选的,云平台接口模块支持同时使用多个云平台,为不同的云平台提供相同的操作接口;此中间件主要使用了云平台提供的创建销毁虚拟机、创建虚拟网络、保存快照等功能,这些基础功能不同的云平台都有支持,但是使用的接口不尽相同,计费手段也大不同。因此云平台接口模块对不同云平台的对应接口进行了统一包装,极大简化了对不同云平台的使用。管理员在制定考试时,只需指定使用什么云平台,使用云平台上的什么镜像,具体的操作细节、计费细节由云平台接口模块完成。

优选的,虚拟机内部控制器使用远程桌面协议,侦测控制考生在考试环境中的操作,通过windowsserver提供的remotedesktopservicemanager功能,制定考生在考试环境中的权限,并可以侦测考生的登陆、登出、使用的程序等信息。

优选的,考试结束后,在线评测系统将通过云平台接口模块释放虚拟机,考生自动下线,退出考试。在线评测系统将通过云平台接口模块调用对应云平台的api释放虚拟机,考生自动下线,退出考试。例如,如果本场考试选用的云平台是阿里云,则在考试结束后,云平台接口模块将调用阿里云的api释放虚拟机。

优选的,考试结束后,考试监控模块生成监控报告。监控报告包括考生信息、考生考试过程中本地机器的ip变动信息(以发现互相交换账户密码的团伙作弊)、考生在客户端退出全屏的次数、时间点以及每次退出全屏时的截屏信息(以监控在本地客户端上的操作)。

本发明的有益效果为:本发明通过使用基于云平台中的远程桌面系统,考试时考生的行为被完全限制在远程桌面内部,并且可被完全监控,极大地提升了在线编程测试的公平性,实现考试环境的统一及对用户行为的监控。

附图说明

图1是本发明的系统架构示意图。

图2是本发明的hustoj系统的层次示意图。

图3是本发明的hustoj系统加上云平台结构模块及消息处理系统后的层次示意图。

图4是本发明的hustoj的数据库与hustoj的原有模块进行交互的架构示意图。

具体实施方式

如图1所示,一种基于云平台的可控在线程序评测中间件,包括:云平台接口模块、虚拟机内部控制器、考试监控模块和考试专用客户端;云平台接口模块与相应的云平台相连接,管理分配在不同云平台上的考试环境,支持多个云平台作为后端;考试专用客户端通过远程桌面协议与相应的虚拟机相连接,考生通过考试专用客户端使用运行于虚拟机上的桌面环境,考试专用客户端还与考试监控模块相连,考试专用客户端对考生在本地的操作进行监控并反馈给考试监控模块;虚拟机内部控制器与考试监控模块相连,虚拟机内部控制器使用远程桌面协议,监控考生在虚拟机桌面环境中的操作,将异常行为上报给服务器端的考试监控模块;考试监控模块对监控信息进行收集、处理和反馈。

在考试开始前,管理员通过在线测评系统制定考试计划,考试计划包括最基础的考试时间、考生名单,还包括考试所选用的云平台以及所用镜像。在设计中,系统可以同时支持多个云平台作为后端,这样,在校内的云平台资源不够时,可以零时使用阿里云等公有云平台组织考试,使考试资源使用更灵活,成本更低。同时,选择镜像其实就是选择考生考试时所使用的软件环境,通过使用同一个镜像,考生考试时将具有同样的编程环境,进一步提升了考试的公平性。另外,镜像可以由管理员灵活配置,可以对镜像中的软件如编译器等进行升级,解决了传统机房考试时给每台机器配置软件的繁琐。另外,管理员还需指定考试的监控策略,即对考生的哪些行为进行监控。考生有何等行为时应该自动汇报,提醒管理员的注意。在考试开始前一段时间内,在线测评系统将通过云平台接口模块自动在云平台上创建虚拟机。

考试开始后,考生通过本地的考试专用客户端连接在线测评系统进行身份验证。确认有权限参加考试后,便可通过远程桌面协议连接上云平台中的虚拟机。考生实际操作的是虚拟机的系统,在虚拟机中编写代码,并像使用传统oj一样,提交程序,提交到oj的程序将由判题核心进行判题,并将结果通过在线测评系统反馈给用户。

考试过程中,根据管理员制定的监考策略,虚拟机内部控制器及考生所用客户端会对考生的行为进行监控,并将违反策略的行为上报给考试监控系统。虚拟机内部控制器通过远程桌面协议监控考生在虚拟机内的操作,客户端监控考生在自己机器上的操作。例如,若管理员在策略中禁止考生向虚拟机中传送文件,则此操作将被阻止。若考生尝试了此动作,虚拟机内部控制器会将此行为,以及考生试图上传的文件上报给在线测评消息处理系统。同时,按照策略,客户端等还可对考生进行周期性的截屏,开启摄像头视频取证,这样可做到考生行为全程可追溯。

考试完成后,在线程序评测系统将通过云平台接口模块要求释放虚拟机,考生自动下线,退出考试。同时在线测评系统将会自动生成所有考生在这场考试中的行为报告,对考生的异常行为进行统计,便于管理员分析。同时,考试的原始监控数据,如截屏,视频等将根据管理员的策略保存一段时间,便于将来对可能存在的作弊行为进行事后的调查取证。

如图2所示,hustoj是由华中科技大学毕业生王良晶等同学开发并在2008年底以gpl协议进行开源的一个在线程序评测系统。具有文档丰富,技术支持完备,部署案例多,成熟,稳定的优点。

rdp远程桌面协议,由微软公司开发并负责维护,在windows平台上有原生支持,在其他操作系统如linux、osx上,均有开源实现。相对于vnc、spice等协议,rdp具有延迟小、响应快、体验好、支持平台全的特点。

openstack作为一个成熟的、开源的云平台实现,为用户提供了公有云之外的选择,极大降低了搭建云平台的技术门槛。openstack提供了网络管理、身份认证等服务,同时我们可以通过openstack的api对虚拟机进行统一的管理及监控。

现阶段,我们在实现中采取了一位考生对应于云平台中一台虚拟机的方式,这种方式实现简单可靠,但资源利用率偏低。当虚拟机资源不足时,可以考虑采取多位考生共用同一台虚拟机的方式或者使用我们提供的阿里云支持,扩展到公有云上。

在此实施例中,客户端及虚拟机内部控制器部分与上一部分提到的架构设计基本相同。但是在线程序评测系统部分,我们充分利用了hustoj的已有实现,对其功能进行了扩展,使hustoj支持基于云计算环境的公平可信考试。下面我们主要介绍对hustoj的扩展。同时,对于已经部署了hustoj系统的广大用户,我们也将提供简单可靠的升级方法。

hustoj提供了一套完整的oj框架,包括前端界面、后端数据库管理及判题核心。hustoj采用了分层设计,主要可以分为三个层次:前端web界面,后端数据库及判题核心。

如图3所示,是我们为hustoj加上云平台接口模块及消息处理系统后的结构层次。同时,为了简化我们原有模块与hustoj原有模块之间的交互,我们新加进去的模块采用了hustoj的数据库与hustoj的原有模块进行交互

如图4所示,此架构图省略了云平台服务模块与oj模块的细节,重点展示新模块与oj老模块之间的交互。

下面我们对实施例的系统的运行过程中oj部分的流程进行简单描述:

1、首先管理员在新建考试后,考试相关信息会被存入oj的数据库。

2、我们新增的负责创建虚拟机的云平台模块会扫描数据库,当发现有新的考试快要开始时,便在对应云平台上创建虚拟机,并将虚拟机的ip等信息再存入数据库。

3、再考试开始后,客户端通过验证后,便会向oj请求虚拟机的ip地址,以便连接。oj直接访问数据库,便可将虚拟机的ip地址取出,返回给用户,用户连接上虚拟机。

4、当考试结束后,我们新增的云平台模块便会根据数据库中的虚拟机信息,将对应虚拟机销毁。

使用数据库交互虽然增大了新模块与hustoj原有模块之间的耦合性,但是比使用基于网络的通信接口可靠,新模块的编写部署也得到极大的简化。

对于已经部署了hustoj的用户,可以不对系统做大量修改,便可使系统支持云环境中的可信考试。我们提供了经过测试的脚本,主要用于为hustoj数据库增加若干表,并启动若干用于支持云平台及在线测评消息处理的进程。原有系统在升级过程中,不必停机,服务不必中断。

尽管本发明就优选实施方式进行了示意和描述,但本领域的技术人员应当理解,只要不超出本发明的权利要求所限定的范围,可以对本发明进行各种变化和修改。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1