APP下载

基于SOA的身份识别在开放阅览室管理系统的应用

2012-03-14沈彦君

大学图书馆学报 2012年4期
关键词:表示层阅览室架构

□沈彦君

1 引 言

开放阅览室管理系统旨在综合运用现代信息技术以及校园网络资源,建立一个开放式阅览室数字化管理平台;在实现对阅览室的状态、阅览室使用情况等实时信息统计管理的基础上,通过校园网络及时、准确、有效、透明地在教学楼和宿舍楼的电子显示屏上发布各个阅览室的使用情况;为学生提供一个更加高效利用图书馆学习资源的平台。为此,我们采用基于指纹的身份识别技术开发了阅览室管理系统,并部署和应用了此系统,取得了较好的效果,得到师生们的一致认可。

我们基于面向服务的体系结构(Service-Oriented Architecture,SOA)组件模型,结合指纹识别技术,开发了开放阅览室管理系统,主要完成的功能有信息实时发布、基于指纹的身份认证和自动化排座。信息实时发布是通过校园网、系统网站和遍布校园各教学楼、宿舍楼的大屏幕,实时地将各个阅览室使用情况显示出来,方便学生自主选择阅览时间。基于指纹的身份认证是采用先进的指纹识别技术,实现基于指纹的身份认证,避免传统身份认证系统中他人代替打卡的现象发生。自动化排座是根据各个阅览室的使用情况,对新到的学生自动进行排座操作,同时对学生中途离开和总阅览时间实现精细控制。

2 基于SOA的系统架构

2.1 系统架构简介

应用系统的架构,经历了两层架构和三层架构的发展阶段。目前主流的是三层架构,该架构由三个各不相同的逻辑层次组成,分别是:表示层、业务层和数据库层[1]。该架构的优势主要有:一、系统设计、扩展、变更甚至重用都更加易于实现;二、层次划分清晰,便于项目实施管理过程中人员有效分工、职责明确;三、模块化使测试有效快捷。但是,在项目实施运行过程中,也发现了诸多不足。比如:逻辑层需求分析复杂,信息交互量大,而划分不够明细,势必造成开发阶段代码逻辑复杂、紊乱、冗余高,同时产生的不良编码模式也不利于后期软件的测试、扩展以及重构等,这些都违背了三层架构初始设计的目的。

为了解决传统应用程序三层架构不够合理、组件不利于重用的不足,本系统结合SOA的原则和规范[2][3],采用SOA 架构来实现系统各部分之间的松散耦合性,基于Web Services技术①Web Services是通过一系列标准和协议来保证程序之间的动态连接。将业务功能封装起来实现服务[4],通过Web Services间的交互,实现系统的业务流程,构造出一个新的、层次结构清晰、逻辑合理的、低耦合、高内聚的基于SOA的应用程序架构。

图1 基于SOA的软件架构

在表示层与业务逻辑层之间增加服务层,提供标准化的服务接口及系统的业务逻辑和控制。为了进一步地将表示层与业务逻辑解耦合,服务层除了实现系统的全部服务外,还有一个工作流引擎,由工作流引擎来接受数据、处理服务的调用并将服务处理后的数据返回给表示层;表示层仅需关注与用户的交互,获取数据以及如何更好地向用户显示结果。服务的实现采用“契约优先”的原则,屏蔽具体业务的实现。在业务逻辑层将业务逻辑与数据访问进行剥离,细分为业务逻辑、实体、实体操作、数据访问接口和数据访问。

服务层负责将业务逻辑与显示相隔离;具体的业务逻辑主要依靠实体以及实体操作,实际上实体操作是指:使用各种实体操作方法并组合来实现不同业务,同时处理访问接口层数据返回的实体;而所有底层方法通过数据访问接口进行定义,给数据访问留下接口。对象实体则在实体层进行定义,对于只有属性没有方法的实体,基本上按抽象类进行定义。如图1所示。

2.2 基于SOA系统架构的优点

基于SOA的软件系统架构主要的优点有:具备SOA架构的优点,层次清晰,结构逻辑性强,功能完备;模块化使得系统开发条理明晰,更加快速高效。使用Web服务包装业务逻辑,有利于分布式应用程序的开发,客户端的开发可以使用多种平台、多种技术。在服务层添加工作流引擎,将表示层与具体的业务逻辑相隔离,表示层只需要获取用户的需求,将具体的服务调用及管理交由工作流引擎处理。服务层的设计采用“契约优先”的原则,尽可能地使工作流引擎只关注业务流程,降低工作流引擎与业务逻辑实现的耦合度。一旦具体的业务逻辑发生变化,只要其服务接口不变,上层结构就无需发生变化。基于面向对象的思想,定义了数据实体类以及实体操作类,区别于数据实体以及数据操作,便于对两者进行修改,从而提高系统整体的灵活性。由于从业务逻辑中把数据访问分离出来,并采用了O/R Mapping实现持久化对象,从而进一步提高了系统的可移植性。使用工厂模式,进一步增添数据访问接口层,体现了面向对象依赖倒置原则,降低了数据访问层变化对整个系统的影响性。

3 基于指纹的身份认证服务构件在包装平台的实现

基于SOA的系统架构其关键问题为服务的实现、工作流引擎的设计与实现以及系统的安全性。我们在.NET平台下实现了一个基于SOA的服务构件包装平台。该平台采用C/S结构,使用C#语言编写。

下面以基于指纹的身份认证[5]服务构件为例,介绍一下服务构件在包装平台的实现过程:

第一步 添加服务构件接口描述文件的元素。

进入服务构件包装平台或新建服务构件项目后进入包装平台的主界面,在界面中填写服务构件接口描述文件的元素。填写完成的元素经过添加后以列表的形式展示在包装平台的下面,如图2所示。

图2 服务构建包装平台

第二步 创建服务构件接口描述文件。

服务构件接口描述文件的元素确认无误后,平台自动生成服务构件的接口描述文件。接口描述文件如图3所示。服务构件接口描述文件是服务构件创建的核心,该文件可以用XML格式或文本文件的形式保存。如果认为接口描述文件存在问题,可以进行修改或返回上一步重新生成。

图3 生成的接口描述文件

第三步 创建服务构件接口文件。

服务构件的接口描述文件确定以后,服务构件的接口文件也随之确定。这样只要接口文件保持不变,服务构件内部实现可以根据实际情况创建和改变。这样服务构件内部的变化对服务使用者是透明的。从而既实现了服务构件与服务构件使用者之间的松耦合,又实现了服务构件接口与服务构件实现之间的松耦合。服务构件的接口文件如图4所示。

图4 生成的接口文件

第四步 创建服务构件的实现。

服务构件的实现是在已生成的标准接口下以继承类的形式创建。创建的方法主要有两种:一是直接在现有的继承类中编写代码,完成服务构件的实现工作;二是通过调用现有系统的DLL(动态链接库)文件,从而调用现有系统中的函数实现。身份认证服务构件具体实现如图5所示。最后,生成身份认证服务构件和对应的客户端可执行代理文件。

图5 创建服务实现

4 应用实现

学生进入阅览室分配阅览台,具体操作流程如下:

学生进入入口处,按屏幕提示,使用指纹验证,验证身份无误,由系统返回学生的个人信息。

学生通过按号器选择阅览室,选择完毕后系统自动给出该学生的阅览台号。

在这个环节,系统采用桌面程序作为客户端,在阅览室的门口摆有提示的屏幕、指纹识别仪和按号器,学生通过指纹识别模块进行身份识别,再由阅览室管理子系统提供学生可访问的阅览室资源。

学生离开阅览室分为单个学生离开和批量离开两种情况,单个学生离开分为暂时离开、暂时离开未按时归来(非正常离开)和正常离开三种情况。学生在阅览过程中需要在较短时间内处理个人事务时,允许其暂时离开阅览室,并且要求在规定的时间内回到阅览室,其阅览台为其保留。学生暂时离开后,在规定的时间内没有按时回到阅览室,阅览台发出警告,由管理员收拾阅览台,由系统收回阅览台,这种状态称为非正常离开。学生阅览完后,离开阅览室,由系统收回阅览台,这种状态称为正常离开。在阅览室关闭的时候,由管理员对阅览室进行批量离开处理,将所有阅览台设置为正常离开状态,并对各个阅览室的所有阅览台作断电处理。

5 结束语

分布式理论将网络上分布的各种软件资源看作是服务,随着分布式计算在技术上(如 XML,Web Services等)的成熟,面向服务的架构是以“服务”为基本元素,技术层面上,它是一种能够适应业务变化、抽象、松散耦合的粗粒度软件架构;体现出面向服务的架构在业务层面上“重用”和“互操作”的核心理念,必然成为解决应用集成、基于标准服务的资源整合、代码可重用以及加快应用实施的首选方案。通过对业务服务精心分析并设计,便可快捷地构建出灵活而功能强大的基于SOA的应用系统。同时,SOA可以对Web应用中的分散功能进行整合,抽取出可共用的标准服务,通过组合或重用服务的方式来进一步满足业务需求变化。SOA的目的是以服务定义和重用为中心将流程创新、有效管理和技术策略结合起来帮助Web应用系统实现业务和技术优势[6]。

基于对SOA的这种较面向对象和面向构件更具优势的软件开发方法的研究,我们构建了一个松散耦合的,易于扩展及重用,实用性强、使用简单、管理维护方便的基于SOA的软件架构,并在此基础上设计并实现了一个对开放阅览室全程进行监督和控制的智能管理系统。

本系统经过将近两个学年的使用,目前运行良好,为阅览室管理提供了方便,最大程度地提高了阅览室资源的利用率,为学生自习、阅览提供了便利。同时,本系统的投入使用也为开展高校数字化校园以及整合数字化高校各业务部门工作提供了理论研究和探索性实践研究的基础。

目前,高校各业务部门都有自己的业务系统,考虑到经济成本等因素必须将现有业务进行整合,这就需要各业务系统按统一的标准进行接口服务的开放,因此,拟定各种服务的编排标准,将是我们下一步的主要工作之一。

1 陈琦程.面向服务的行业解决方案:原理、方法与实践.北京:电子工业出版社,2011:112-186

2 Dirk Krafzig,Karl Banke,Dirk Slama.Enterprise SOA:Service-Oriented Architecture Best Practices.New York:Prentice Hall,2006:41-48

3 欧石燕.基于SOA架构的术语注册和服务系统设计与应用.中国图书馆学报,2011(5):13-25

4 古超.基于Web Services的高校图书馆业务系统接口扩展及应用.情报探索,2011,162(4):95-97

5 陈源.指纹识别应用于高校图书馆的实现途径及前景.图书馆论坛,2009(3):57-61

6 李晓婷.基于SOA架构的Web图表生成与打印系统[硕士学位论文].郑州:中国人民解放军信息工程大学,2007

猜你喜欢

表示层阅览室架构
基于FPGA的RNN硬件加速架构
原创童书阅览室
原创童书阅览室
原创童书阅览室
功能架构在电子电气架构开发中的应用和实践
基于Spring的企业级Web项目架构设计研究
LSN DCI EVPN VxLAN组网架构研究及实现
ASP.NET三层构架解析
基于SSH框架科研管理系统的设计
一种基于FPGA+ARM架构的μPMU实现