1 引言 在现行的考试中大多采用传统的证件核对或相片比对的身份认证方式,冒名顶替和证件丢失现象时有发生,已经成为中国这一考试大国一个顽症。因而建立一套行之有效的考试身份认证系统成为有关方面亟待解决的问题。生物识别技术以其特有的唯一性、永久性和防伪性等优点使其在各种身份认证系统中得到了广泛的重视[1],大量的开发应用研究正在逐渐实施中。有鉴于此,我们把生物识别技术引入到考试身份认证系统中,并结合现在广泛采用的面向服务的架构(Service Oriented Architecture,SOA)技术来提高系统的通用性、重用性、稳定性。
2 SOA架构技术分析 考虑到考试身份认证系统的扩展性、可维护性以及未来的战略性,在设计中使用了SOA架构理念,在具体的设计和实现中使用.NET实现一个N层架构。SOA技术当前已经成为软件技术发展的一个重要方向,该架构以实现交互式软件间松耦合为目的。SOA架构解决了CORBA和DCOM技术在解决软件重用性和维护性上的不足。总体来说,它具有松耦合、位置透明、代码重用、统一服务、平****立性等优点。 在SOA架构的实现上Web服务是比较理想的方式,如图1所示Web服务是WS-I组织()定义的一套共通的分布式应用程序标准,利用HTTP、XML、SOAP和WSDL这些标准规范,实现跨平台,跨语言,因特网的整合目的。SOA是一个架构上的概念,而Web服务是一个实现上的概念。所有的Web服务的实现都可归类为SOA,但SOA的实现方式不仅仅只有Web服务一种,也可以使用CORBA,J2EE,COM+,Remoting等来实现,因而这里采用Web服务方式来实现SOA架构。
图1 Web服务架构
考虑到不同的考试应用环境,有必要提供不同的服务接口。在考试身份认证的分布点地域很大时势必需要通过Internet,使用Web服务接口,它使系统具有跨越不同平台的能力。而当认证局限在一个局域网的环境下,客户应用程序以.NET语言编写,使用Remoting接口,它比Web服务的效率要高一些。
3 整体设计 一直以来生物认证的技术在不断发展,更有效、更快速的算法不断涌现,使用N层架构易于今后的维护和升级,升级时只需要对考试身份认证层做改动,对其他层次的改动可以降到最低。就使用的客户角度来讲,系统主要是要提供身份的认证,不过考虑系统数据库的建立,考试身份认证系统应提供两种服务:注册用户和认证用户。为此,整个系统的逻辑实现框图如图2所示。
图2 系统实现框图 整个考试身份认证系统介于客户应用程序的客户端和服务端之间。客户应用程序有两类:自身没有认证系统的客户程序和自身拥有认证系统的客户程序。客户应用程序的客户端先要通过考试身份认证系统的认证,才能与客户应用程序的服务端通信。自己没有认证系统的客户程序与自己拥有认证系统的客户程序相比,需要与数据库交互。 在设计中,整个考试身份认证系统逻辑上可以分为三层:接口层,生物认证层和数据层。其中接口层由Web服务层和生物外观层组成,这两层合作解决了与其他应用程序集成的问题。如果客户程序是以.NET语言编写,且运行在局域网中,则可以使用Remoting技术直接调用生物外观层来使用服务。如果不是使用.NET语言编写,且需要跨越因特网,则可以调用Web服务层以享用服务。Web服务在实现上是通过委托给生物外观层实现的。而生物外观层解决了与不同算法的生物认证、不同类型的生物认证集成的问题。
4 考试身份认证系统的技术实现
如图3中,客户应用程序接收考试身份认证系统的服务,但它不属于考试身份认证系统的一部分,因而用虚线表示。就需要的服务来说,有两种类型的客户程序,一种是本身没有认证系统,对于这种客户应用程序,考试身份认证系统提供了完整的解决方案,它提供注册和认证两种服务。另一种应用程序是本身已经有认证方案,需要借助于生物识别方式进行更加安全的认证,对于这种客户应用程序,考试身份认证系统提供了抽取特征值,比较特征值等服务。这两种服务在实现上的区别是前者需要与数据库打交道,在数据库中存储用户信息,而后者不需要。 就运行环境来说,有两种类型的服务,一种是运行在因特网上,用各种各样的语言编写,这类应用程序可以使用HTTP+SOAP方式访问Web服务层,为了提高性能和安全性,Web服务层利用了最新的WSE2.0技术加强Web服务;另一种运行在局域网中,以.NET语言编写的客户应用程序,这一类应用程序可以使用Remoting访问生物外观层。Remoting方式在性能上优于Web服务方式。 生物外观层的存在有两重意义,一是如果服务的消费者所运行的环境比较一致(对于本考试身份认证系统而言,即运行在微软平台上),则客户应用程序可以使用Remoting技术直接与外观层进行交互,以提高效率。二是简化了Web Service层的实现——Web服务层的实现实际上是委托给生物外观层实现的,Web服务层只是对生物外观层做了一次包装,将其包装成了Web服务。 生物认证层是实际进行生物认证的地方,这一层中使用了抽象工厂的设计模式,设计和实现了一个“插件框架”。由于各种生物认证原理是一样的,既获取生物图像à获取生物图像的特征值à比对生物特征值,因此将不同第三方提供的生物认证技术作为插件(Plug-In),由一个工厂以即插即用的方式生成插件,使客户程序可以根据某个特定条件动态寻找、生成乃至升级插件,保证了系统的最大扩展性。 对数据库的访问是通过数据访问层调用存储过程实现的,存储过程相对于SQL语句具有性能好、易维护、安全等优点。 由于系统的各个层次(除了存储过程和数据库之外),都可能抛出异常,为了统一的处理异常,设计了一个异常处理层,这种设计方法,不仅使异常处理统一化,而且易于管理和维护;并且异常处理层与实际的业务流程分开,可以使异常处理模块变成一个实用(Utility)类,不用修改或只要稍作修改就可应用于其他系统的异常处理中。这种设计方式也体现了当今软件开发的流行趋势,即提高软件(代码)的重用性。 从逻辑上来说,考试身份认证系统可以分为:Web Service层、生物外观层、生物认证层、数据访问层、存储过程层、数据库层、异常处理层,异常处理层应该部署在每个物理层中。下面将对主要的生物认证层的具体集成问题作阐述。5 生物认证层的设计考虑 生物认证在原理上都是抽取特征值、比对生物特征值,只是具体的抽取方法和比对算法有所不同。生物认证层要做到将不同的算法、不同类型的生物识别做成一个个插件(plug-in),在该层中有一个“工厂”,根据特定的规则找到某个特定的插件,然后动态生成插件。可扩展的考试身份认证系统采用了抽象工厂(Abstract Factory)的设计模式,在《Design Patterns》一文中对它的定义为一系列相关或者相互依赖的对象提供一个接口,而不必指定这些对象的具体类。由此抽象出了一个共同的接口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 Peter Varhol, SOA Offers Competitive Advantages, http:// Thiru Thangarathinam, .NET Remoting versus Web Services,http://10926_2201701_1 Alan Shalloway, James , Design Patterns Explained: A new perspective on object-oriented design (电子版), 2000, pearson Education
中国论文网(www.lunwen.net.cn)免费学术期刊论文发表,目录,论文查重入口,本科毕业论文怎么写,职称论文范文,论文摘要,论文文献资料,毕业论文格式,论文检测降重服务。