ActiveX技术在RFID系统开发中的应用

2013-10-15 07:38杨国强
计算机与现代化 2013年11期
关键词:读卡读卡器驱动程序

王 娜,杨国强

(1.南昌航空大学信息工程学院,江西 南昌 330063;2.江西省计算技术研究所,江西 南昌 330002)

0 引言

作为21世纪最具发展潜力的十大技术之一,RFID(Radio Frequency Identification,射频识别)技术近年来备受关注。随着Web技术的迅猛发展和广泛应用,RFID系统的设计也由传统的C/S(客户/服务器)模式转向 B/S(浏览器/服务器)模式[1-2]。虽然Web应用程序开发快捷、使用简单、容易维护,有良好的可移植性和扩展性,但仍存在一些问题。由于RFID手持终端(数据采集器)无法通过Web服务器端的后台程序将数据直接传到数据库中去,而ActiveX技术能使Web页面成为一种跳跃的、动态的页面,恰好解决了这个问题。因此本系统采用了自主开发的ActiveX控件技术来实现在浏览器中与RFID手持终端进行双向数据通信。

1 ActiveX技术

ActiveX是Microsoft提出的一组使用COM(Component Object Model,部件对象模型)软件部件在网络环境中进行交互的技术集。ActiveX控件是以二进制代码形式发布的,与具体的编程语言无关,可以被任何支持COM的高级语言及软件所调用,有较好的电脑移植性。利用组件技术,就可以实现一次编写,多处使用,而不需要重新编译链接,极大地推动了软件的集成化[3-4]。作为针对Internet应用开发的技术,ActiveX被广泛应用于Web服务器以及客户端的各个方面。同时,ActiveX技术也被用于方便地创建普通的桌面应用程序。其中ActiveX控件是ActiveX技术的核心。控件是建立可编程部件的主要元素,它是程序的自包含片断或独立的组件,这些程序通常是以EXE、DLL及OCX文件存放在服务器中。ActiveX控件有自己的属性和方法,属性反映了ActiveX控件的内部状态,方法提供了各种功能。它允许最终用户直接访问控制所提供的各种功能,直接观察到控件的状态[8-9]。

2 RFID系统

RFID是一种非接触式的自动识别技术,它通过射频信号自动识别目标对象,可快速地进行物品追踪和数据交换[5]。

典型的RFID系统主要由阅读器、电子标签、中间件和应用系统软件组成。射频系统2个主要部分——阅读器和射频卡之间通过无线方式通信,它们都有无线收发模块及天线。射频卡中有存储器,用来存储用户数据和系统数据等。射频卡可根据阅读器发出的指令对这些数据进行相应的实时读写操作。阅读器中的控制模块完成接受、译码及执行阅读器命令,控制读写数据,负责数据安全等功能。它有很强的处理功能,除了完成控制射频卡工作的任务外,还需要实现相互认证、数据加解密、数据校验、出错报警及与计算机的通信等功能。

ActiveX是基于COM的可视化控件结构的一种封装技术,因此将RFID系统的读写过滤模块封装成ActiveX控件的形式嵌入到Web网页,使数据同步更人性化,更易于操作,使用人员只需要在页面轻松的点击按钮即可实现数据的同步。

3 RFID系统中ActiveX控件的设计

由于要在系统中采用RFID读取功能,而RFID设备通常只提供可供C/S模式下调用的驱动程序(动态链接库),因为这些驱动程序无法在网页中直接调用,所以有必要开发封装RFID功能的ActiveX控件,使得用户可以直接通过网页操作RFID设备,本文采用C#编写ActiveX的方式实现。

出于安全性的考虑,基于ActiveX的RFID操作程序可通过ActiveX的安全机制保证用户使用的是经过验证的程序来操作RFID设备。浏览器通过以下的方式来保证ActiveX插件的安全:ActiveX使用了2个补充性的策略:安全级别和证明,来追求进一步的软件安全性;Microsoft提供了一套工具,可以用它来增加ActiveX对象的安全性;通过Microsoft的验证代码工具,可以对ActiveX控件进行签名,以明确自己是控件的作者。

为了使用验证代码工具对组件进行签名,必须从证书授权机构获得一个数字证书;证书包含表明特定软件程序是正版的信息,这确保了其他程序不能再使用原程序的标识。证书还记录了颁发日期。当试图下载软件时,Internet Explorer会验证证书中的信息,以及当前日期是否在证书的截止日期之前。如果在下载时该信息不是最新的和有效的,Internet Explorer将显示一个警告;在浏览器默认的安全级别中,ActiveX控件安装之前,用户可以根据自己对软件发行商和软件本身的信任程度,选择决定是否继续安装和运行此软件。另外一个问题是RFID设备通常是不提供安全机制的,只要通过它驱动程序就能读取到其中的数据,为了防止数据的泄露,在设计中,RFID的封装ActiveX控件还增加了一层加密/解密机制,这样即使非授权用户绕过RFID的封装ActiveX控件读取了RFID设备,得到的也是加密后的数据。

一个典型的B/S架构系统中RFID设备应用架构如图1所示。

图1 B/S架构系统中RFID设备应用架构图

ActiveX读卡器控件通常实现读卡器的打开/关闭、读卡和写卡3大功能,分为2个步骤来实现:开发ActiveX控件、打包并发布ActiveX控件和使用。使用C#开发ActiveX要解决下面3个问题:(1)使.NET组件可以被COM调用。(2)在客户机上注册后,ActiveX控件能通过IE的安全认证。(3)在客户机上注册时,安装包能通过IE的签名认证。

3.1 编写ActiveX控件

要解决上面提到的C#开发ActiveX的3个问题,就需要在程序代码中添加ISafeObject控件安全指针。IE默认安全级别设置中对没有标记为安全的ActiveX控件进行初始化和脚本运行的代码默认是被禁用的。如果要消除这个提示,必须在控件上加上一个脚本安全标志。

一次完整的ActiveX控件签名,首先需要在程序代码中添加ISafeObject控件安全指针,然后对编译好的控件.ocx、dll文件签名。将签好名的文件打包成.cab文件,再对.cab文件签名。在浏览器中通过ActiveX技术调用RFID控件的声明部分代码如下:

大多数RFID设备的驱动程序都提供读卡器的打开/关闭、读卡和写卡3大功能,通常的RFID系统只需对驱动程序进行调用封装即可,本文设计的安全RFID系统的特点在于读卡和写卡操作需经过加密和解密,也就是要写入卡中的数据首先经过加密,然后把加密后的数据写入卡中,而读卡操作则相反,先从卡中读出加密过的数据,经过解密后得到实际的数据然后返回。具体的读卡操作步骤如下:

(1)调用驱动程序打开读卡器;

(2)调用驱动程序读取卡中数据;

(3)调用驱动程序关闭读卡器;

(4)初始化.NET框架安全代码的DESCryptoServiceProvider;

(5)用DESCryptoServiceProvider对卡中读取的数据进行解密;

(6)返回解密后的数据。

写卡操作步骤如下:

(1)初始化.NET框架安全代码的DESCryptoServiceProvider;

(2)用DESCryptoServiceProvider对要写入卡中的数据进行加密;

(3)调用驱动程序打开读卡器;

(4)调用驱动程序将加密后的数据写入卡中;

(5)调用驱动程序关闭读卡器。

3.2 打包并发布ActiveX控件和使用

ActiveX控件开发完成后,要进行打包和发布。ActiveX控件可以使用VS 2010的安装项目进行部署,使用VS 2010创建Windows Form的安装工程就可以将ActiveX的dll进行打包。打包完成后,就可以在应用程序中使用打包好的ActiveX控件了,创建一个Web项目,在测试页面的HTML代码中添加对ActiveX控件的引用,在default.aspx中输入以下代码即可使用:

这里的clsid就是自己生成的GUID编号。

4 结束语

本文基于ActiveX技术,封装RFID的读写过滤功能,并详细介绍了ActiveX控件的编写与发布使用,结合数据库技术,形成一种基于浏览器的实时数据监控系统,大大减少了编程的工作量,提高了开发的质量和效率。另外出于安全性的考虑,本文通过ActiveX的安全机制保证用户使用的是经过验证的程序来操作RFID设备的,具有一定的实际意义。

[1]欧阳峥峥.ActiveX技术在Web程序中的应用[J].电脑知识与技术,2008(1):73-76.

[2]彭义春,陈显龙.基于ActiveX的WebGIS的现实方案[J].东莞理工学院学报,2007,14(1):81-86.

[3]潘爱民.COM原理与应用[M].北京:清华大学出版社,1999.

[4]王跃宣,苏宏业.基于COM技术的先进控制软件开发及应用[J].化工自动化及仪表,2002,29(4):51-53.

[5]周晓光,王晓华.射频识别(RFID)技术原理与应用实例[M].北京:人民邮电出版社,2006.

[6]梁志剑.ActiveX技术在C语言网络教学平台中的研究与实现[J].计算机与现代化,2010(1):53-55.

[7]欧劲昭,黄娟.ActiveX控件的应用及其关键技术[J].计算机应用研究,1999,16(12):50-52.

[8]Farrar B.ActiveX使用指南[M].刘晓丹译.北京:机械工业出版社,1997.

[9]王利亚.ActiveX控件在网络视频监控系统中的应用[J].科技信息:学术研究,2008(24):181,183.

[10]王小正.ActiveX控件在B/S结构题库系统开发中的应用[J].电脑知识与技术,2008(S2):4-6.

[11]马赛红,朱爱红,李连.基于ActiveX控件技术的B/S模式下公文处理的研究与实现[J].计算机与现代化,2011(7):60-63.

[12]贾玉锋,胡迎新.利用ASP.NET和ActiveX技术实现Word文档的在线编辑[J].现代电子技术,2004(15):46-47.

[13]张海龙.在VC++中利用ActiveX控件进行串行通信的犯法[J].网络与信息,2008(4):34-36.

[14]脚本之家.使用VS2010 C#开发ActiveX控件(上)[EB/OL].http://www.jb51.net/article/27115.htm,2013-09-17.

猜你喜欢
读卡读卡器驱动程序
煤矿井下车辆乘人防漏识别读卡基站设计
智能会议预约终端内置读卡器性能的改善*
与淘汰命运抗争 看懂笔记本的读卡器
计算机硬件设备驱动程序分析
基于EMV非接通信规范的非接触读卡器设计
为二维码识别的献礼之作——评测平治二维码门禁读卡器
MATLAB实现组态王中TCP/IP读卡器监控方法
基于LINUX的PBOC3.0关键读卡技术的研究与应用
基于MPC8280的CPU单元与内部总线驱动程序设计
停车场系统存在的中远距离读卡干扰问题