基于生物识别技术的考试身份认证系统的框架设计
来源:岁月联盟
时间:2010-08-30
1 引言
在现行的考试中大多采用传统的证件核对或相片比对的身份认证方式,冒名顶替和证件丢失现象时有发生,已经成为这一考试大国一个顽症。因而建立一套行之有效的考试身份认证系统成为有关方面亟待解决的问题。生物识别技术以其特有的唯一性、永久性和防伪性等优点使其在各种身份认证系统中得到了广泛的重视[1],大量的开发应用研究正在逐渐实施中。有鉴于此,我们把生物识别技术引入到考试身份认证系统中,并结合现在广泛采用的面向服务的架构(Service Oriented Architecture,SOA)技术来提高系统的通用性、重用性、稳定性。2 SOA架构技术分析
考虑到考试身份认证系统的扩展性、可维护性以及未来的战略性,在设计中使用了SOA架构理念,在具体的设计和实现中使用.NET实现一个N层架构。SOA技术当前已经成为软件技术的一个重要方向,该架构以实现交互式软件间松耦合为目的。SOA架构解决了CORBA和DCOM技术在解决软件重用性和维护性上的不足。总体来说,它具有松耦合、位置透明、代码重用、统一服务、平台独立性等优点[2]。 在SOA架构的实现上Web服务是比较理想的方式,如图1所示Web服务是WS-I组织(ws-i.org)定义的一套共通的分布式应用程序标准,利用HTTP、XML、SOAP和WSDL这些标准规范,实现跨平台,跨语言,因特网的整合目的[3]。SOA是一个架构上的概念,而Web服务是一个实现上的概念。所有的Web服务的实现都可归类为SOA,但SOA的实现方式不仅仅只有Web服务一种,也可以使用CORBA,J2EE,COM+,Remoting等来实现,因而这里采用Web服务方式来实现SOA架构。
图1 Web服务架构
考虑到不同的考试应用环境,有必要提供不同的服务接口。在考试身份认证的分布点地域很大时势必需要通过Internet,使用Web服务接口,它使系统具有跨越不同平台的能力。而当认证局限在一个局域网的环境下,客户应用程序以.NET语言编写,使用Remoting接口,它比Web服务的效率要高一些。
3 整体设计
一直以来生物认证的技术在不断发展,更有效、更快速的算法不断涌现,使用N层架构易于今后的维护和升级,升级时只需要对考试身份认证层做改动,对其他层次的改动可以降到最低。就使用的客户角度来讲,系统主要是要提供身份的认证,不过考虑系统数据库的建立,考试身份认证系统应提供两种服务:注册用户和认证用户。为此,整个系统的逻辑实现框图如图2所示。
4 考试身份认证系统的技术实现
5 生物认证层的设计考虑
生物认证在原理上都是抽取特征值、比对生物特征值,只是具体的抽取方法和比对算法有所不同。生物认证层要做到将不同的算法、不同类型的生物识别做成一个个插件(plug-in),在该层中有一个“工厂”,根据特定的规则找到某个特定的插件,然后动态生成插件。可扩展的考试身份认证系统采用了抽象工厂(Abstract Factory)的设计模式,在《Design Patterns》一文中对它的定义如下:为一系列相关或者相互依赖的对象提供一个接口,而不必指定这些对象的具体类[4]。由此抽象出了一个共同的接口IBioProcess,该接口定义提供了生物识别应该具备的所有功能,如下所示。 Public interface IBioProcess{ featureBuf ExtractImageFeature(); featureBuf ExtractFileFeature(); int CheckImageFile(); File GenerateImageFileBuffer(); int JudgeQuality(); int DiscernFeature(); } 不同第三方提供的生物认证技术是实现该接口的具体类。对于客户来说,与其交互的是该抽象接口,而不是那些具体类(也无法知道有哪些类)。这种设计模式保证本系统具有低耦合性(loose coupling)和高凝聚性(high cohesion)。 第三方提供的生物认证类应该从IBioProcess接口继承,但这并不是必须的,可以对第三方提供的生物认证技术进行包装,使包装类从IBioProcess接口继承,这些类或者包装类以插件(Plug-In)的形式存在,它能够被即插即用(Plug-and-Play)。抽象工厂的设计模式在生物认证层的具体应用可以由图4表示。在这里,Dynamic Factory是个概念上的类,在实际实现时由两个类组成,它的作用是动态寻找、加载、生成、升级、卸载插件,客户端程序通过Dynamic Factory得到IBioProcess接口。6 结束语
通过提出SOA架构用于考试身份认证系统中能提供一个高通用性、重用性、稳定性的软件框架。使用了抽象工厂的设计模式来实现了对系统多种现有以及未来生物认证方式的支持,使得系统具有前瞻性和扩展性。最后,框架还应该对系统安全作深入考虑,主要是数据传输过程的安全性和数据存储过程的安全性,可以考虑加密及WS-Security协议等手段来解决,但这也势必降低系统的效率。 [1]黄健青,刘磊.指纹识别技术在商务认证系统中的应用.安全技术与应用,2006,3,50 [2]Peter Varhol, SOA Offers Competitive Advantages, http://www.ftponline.com/special/soa/overview/default.asp [3]Thiru Thangarathinam, .NET Remoting versus Web Services,http://www.developer.com/net/vb/article.php/10926_2201701_1 [4]Alan Shalloway, James R.Trott, Design Patterns Explained: A new perspective on object-oriented design (电子版), 2000, pearson Education