利用Flex WCF实现Web在线考试实时监控

来源 :中国教育信息化·高教职教 | 被引量 : 0次 | 上传用户:Mr_Law
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:本文介绍了如何利用Flex和WCF实现Web在线考试实时监控。同时对具体的系统架构、技术优势、设计和实现进行了详细阐述,并将其应用于作者所在单位自主研发的在线干部测评系统,取得了良好的实践效果。
  关键词:Flex;WCF;在线考试;实时监控
  中图分类号:TP391.41文献标识码:B文章编号:1673-8454(2010)13-0077-03
  
  一、介绍
  为了实现在线考试系统的远程监管,保证考试的公平、公正性,一个有效的视频实时监控系统显得非常重要,但是Web在线考试不同于传统的具有固定考场的考试,考生在任何有网络的地方都可以登录系统参加考试。因此,在线考试系统不能通过在固定场地安装摄像头等手段来实现视频监控,只有通过考生参加考试时所使用的计算机来实现监控。因此,有必要在在线考试系统中集成实时监控系统来保证考试的有效性。
  目前,Web在线考试监控系统概括起来大致可以分为以下两类:一类是在线监控系统独立于在线考试系统,即考生在参加考试应同时启动相应的监控程序来实现监控。此类系统的优点是功能强大,缺点是需要在客户端和服务器端安装相应的软件或者组件,部署复杂,此外还需要价格不菲的软、硬件购置费用。另一类是浏览器插件技术,也就是Object ActiveX技术,即通过在客户端浏览器上安装相应插件来实现,这种技术可能也需要服务端组件或者中间件来支持。这类系统的优点是部署方便,对客户端没有过多限制,缺点是功能会相对减弱,如果使用第三方插件,也需要软件或者硬件费用。
  为了克服上述方法的一些缺点,在笔者单位自主研发的在线干部测评系统中,我们利用了最新的Flex和WCF技术来实现Web在线考试系统的实时监控。
  Flex是RIA(Rich Internet Applications,即富客户端)的一种技术实现,它由Adobe公司出品,开发工具包是Flex Framework,集成开发工具可以用Flex Builder,所用的编程语言是ActionScript,其程序经过编译后生成SWF文件,传送到客户端,由客户端的Flash Player或者Shockwave Player解释执行,给用户以丰富的体验。而Adobe Flash Player是目前网络上通用的动画播放插件,客户端只要能够连接互联网就能自动安装Flash播放器,因此不存在客户端插件部署问题。
  WCF(Windows Communication Foundation)是一个统一的编程框架,可用于建立安全可靠的、面向服务的、应用高效的开发平台。在Windows平台下,尤其是在.NET平台下开发面向服务的应用程序,或者开发分布式系统,最佳选择就是WCF。原因在于WCF涵盖了之前微软推出的所有用于分布式开发的技术,包括Remoting、Web Services、WSE、MSMQ等,并以一种统一的编程模式来实现。WCF既支持具有互操作性的Web服务,也能够实现.NET客户端与.NET服务端的通信,提供了分布式事务的支持,同时在安全性上,它完全遵循了WS-*标准,此外,它还支持队列服务,可以非常方便地利用消息队列完成异步操作与脱机调用。而这些功能,以前的技术都只是部分实现。
  利用Flex炫丽的富客户端实现技术,结合WCF强大的客户端和服务端交互功能,我们就可以很方便地实现Web在线考试的实时监控,具体的系统架构和实现将在下文详细介绍。
  二、系统架构
  基于Flex和WCF的Web在线考试实时监控系统架构,如图1所示。客户端视频监控模块通过Flex技术来实现,通过客户端浏览器内嵌的Flash播放器来运行视频监控程序。客户端监控模块通过WCF将监控信息发送给服务端,服务端将接收到的信息通过服务器端的人脸识别引擎比对用户信息数据库,如果比对成功,给客户端发送匹配成功指令,客户端正常考试,如果匹配失败,给客户端发送失败指令,客户端将收到相应的警告或者处罚,同时将违纪信息进行记录。在系统构架图中,所有客户端与服务端之间的交互通信(对应①④),以及服务端与服务端(对应②③)之间的交互通信都通过WCF来实现。
  三、系统程序的实现
  1.Flex WCF Visual Studio 2008开发环境的搭建
  虽然,Flex可以直接调用.NET平台的WCF或者Web Services等组件或类来完成Flex与.NET服务端的通信,但其缺点是通信数据量较小,如要传输大量的数据或是实现不同对象的序列化传输,则满足不了需求。由于在我们的系统中需要传输视频和图像数据,通过Flex直接调用WCF可能会产生序列化问题。为了更好地协同Flex与.NET之间的通信,我们还需要引入第三方的开源项目FluorineFx,它是专门针对.NET平台与Flex通信提供的AMF(ActionScript Message Format)协议通信网关,我们可以通过FluorineFx很方便地完成与.NET的通信。FluorineFx官方提供了安装包的下载和在线文档,可以帮助我们有效地利用FluorineFx来开发。使用Visual Studio 2008、FluorineFx和Adobe Flex Builder 3开发系统的具体步骤如下:
  (1)使用Visual Studio 2008结合FluorineFx来开发服务器端的WCF和承载网站。
  首先,通过Microsoft Visual Studio 2008创建解决方案,并添加FluroineFx服务器库,如图2所示。
  FluorineFx服务库添加成功后,项目模板会自动创建一个如下的Sample类和一个Echo方法:
   namespace FlexDotNet.SvrLib
  {
  [RemotingService("Fluorine sample service")]
  public class Sample
  {
  public Sample()
  {}
  public string Echo(string text)
  {
  return "Gateway echo: " text;
  }
  }
  }
   接着添加FluorineFx网站到解决方案,添加成功后网站会自动引用FluorineFx服务库的dll。如图3所示。
  通过上面两步,系统的服务端及调用服务端的网站程序的框架已经构建完成。
  (2)使用Adobe Flex Builder 3开发客户端视频监控模块。
  Adobe Flex Builder 3是用于构建和维护在所有主要浏览器、桌面和操作系统一致部署的极具表现力的 Web 应用程序的高效率开放源码框架。通过Adobe Flex Builder 3可以很方便地设计视频监控模块,编译成功后生成SWF文件,然后通过客户端浏览器的Flash播放器执行该SWF文件。其开发设计界面如图4所示。
  2.系统实现的关键代码
  图5是笔者自主研发的集成了视频实时监控的在线干部测评系统考试界面截图。系统实现中的两段关键代码如下:
  (1)客户端提交视频截图代码
  var nc:NetConnection=new NetConnection();
  var rd:Responder=new Responder(Saved,noSaved);//处理返回值的两个函数一个成功,一个接管失败的。
  nc.objectEncoding = 3;//Fluorine必要的编码的版本
  nc.connect("http://192.168.88.47:2088/web/Gateway.aspx");//fluorineFx的入口,该入口接管了所有的请求
  m_pictureData = "";
  for(var i:int = 0; i < DEFAULT_CAMERA_WIDTH; i ){
  for(var j:int = 0; j < DEFAULT_CAMERA_HEIGHT; j ){
  if(m_pictureData.length > 0)
   m_pictureData = "," m_pictureBitmapData.getPixel32(i,j).toString();
  else
   m_pictureData = m_pictureBitmapData.getPixel32(i,j).toString();
  }
  }
  nc.call("FlexDotNet.SvrLib.Sample.SavePicture",rd,DEFAULT_CAMERA_WIDTH,DEFAULT_CAMERA_HEIGHT,m_pictureData,value);//调用服务端的WCF服务
  (2)服务端接收并保存客户端提交视频截图数据代码
  public string SavePicture(int pic_width, int pic_height, string bitmap_data,string flagid) {
  Bitmap m_pic = new Bitmap(pic_width, pic_height);
  string[] m_tempPics = bitmap_data.Split(’,’);
  for (int i = 0; i < pic_width; i ){
   for (int j = 0; j < pic_height; j ){
  uint pic_argb = (uint)long.Parse(m_tempPics[i * pic_height j]);
  int pic_a = (int)(pic_argb >> 24
其他文献
目的评价绝经后女性膝关节骨性关节炎与胫骨软骨下骨骨密度的相关性。方法选取2017年7月至2017年10月就诊于新疆医科大学第一附属医院的绝经后膝关节骨性关节炎女性80例,年龄
【正】江苏省委、省政府决定,到2010年,确保全省基本实现教育现代化。江苏在“全面达小康、建设新江苏”的全局性部署中,教育是唯一提出要率先实现现代化的领域,这充分体现了
6月30日.天津大学与曙光信息产业股份有限公司(以下简称曙光公司)合作共建“天津大学云计算中心”协议正式签订,天津大学副校长冯亚青、曙光公司副总裁张岳平、先特公司董事长李
摘 要:开放大学继基于Internet的“在线校园”之后,基于移动通信技术的“移动校园”的探索与研究渐受重视。本文分析了开放大学“移动校园”的需求、特点和可行性,并通过上海电视大学“移动校园”构建探索的实践,提出了开放大学“移动校园”进一步发展完善的思考与展望。  关键词:移动校园 构建的探索 现代远程开放教育  中图分类号:TP393.18文献标识码:B  文章编号:1673-8454(2007
目前.中国的高等教育面临新的挑战。首先.教学内容和市场需求脱节.毕业生就业比较困难:其次,学生就业以后适应期长.难以快速进入企业核心生产环节;第三,学生的个性发挥不出来,欠缺创
本文指出了应用集成对于高校管理工作的重要性,并分析了传统集成技术的缺陷,提出了基于面向服务的架构(SOA)的高校应用系统集成解决方案及其优越性,最后给出了该集成平台上服务的
随着人们生活水平的提高,人们对环境的要求越来越高,绿地是公园重要的组成部分,可以说,绿地建设水平直接决 定着公园建设水平,而公园建设水平直接反映出城市的建设水平,由此
怎样培养成人学员学习英语的兴趣蔡东臣,任富坦,马杏芬学习兴趣是影响学习效果的主要因素之一。因此,如何激发和培养学员的学习兴趣,便成为提高成人英语教学质量的关键所在。现根
目的探讨2型糖尿病患者骨折风险预测工具FRAX计算出的骨折风险及骨密度与BMI之间的关系。方法选取278例糖尿病人群,开展相关问卷调查,收集相关临床指标,并检测骨密度,计算FRA
国内城市机动车出行拥堵加剧,技术的发展让电动自行车拥有灵活、轻便、续航持久、成本低等优点,加之共享电动自行车的推广,使电动自行车的使用量急剧上升。电动自行车在出行