基于Agent技术的校园一卡通异构数据库中间件研究
1引言
随着信息网络的发展,高校的信息化建设也正逐步进入轨道,作为高校数字化校园建设的重要基础建设一一“校园一卡通”工程,同时也是目前高校多校区发展的需求。本文主要是针对高校一卡通信息平台,研究各个应用支撑系统之间的数据库异构问题,并引入Agent技术,应用于这些异构数据库中间件系统中,实现数据库间信息共享和转换。
2 相关技术简介
2.1 Agent技术
Agent技术是在网络技术和Internet发展以及决策支持系统(NSS)技术的基础上发展起来的,具有很强的自主能动性的软件技术,早在上世纪70年代,人工智能领域就已经提出了Agent的概念。它能通过网络访问异构的资源,同时具有自主性和学习性,可以不受用户监控、指导的情况下由自己的决策机制,按照一定的规程迁移,寻找合适的计算资源、信息资源,处理或使用这些资源,代表用户完成特定任务。
鉴于Agent在处理问题方面的自治性、社会性、反应性,以及移动性等特点,Agent技术能有效地将分布于不同结点间的异构数据库集成在一起,并提供有效的数据集成和管理技术来动态支持数据的共享。
2.2中间件技术
中间件是在计算机硬件和操作系统之上,支持应用软件开发和运行的系统软件,它能够使应用软件相对独立于计算机硬件和操作系统平台。因此中间件是一种独立的系统软件或服务程序,它的主要作用是用来屏蔽网络硬件平台的差异性和操作系统与网络协议的异构性,使应用软件能够比较平滑地运行于不同平台上。同时中间件在负载平衡、连接管理和调度方面起了很大的作用。使企业级应用的性能得到大幅提升,满足了关键业务的需求。
按照IDC的分类方法,中间件可分为六类,分别是数据访问中间件、远程过程调用中间件、消息中间件、交易中间件、对象中间件等。其中数据访问中间件:是为了建立数据应用资源互操作的模式,对异构环境下的数据库实现联接或文件系统实现联接的中间件。
2.3 XML技术
XML(Extensible Markup Language)是一种可以对信息进行自我描述的语言。它允许定义一套符合自己需要的标记,作为信息传输的载体。标记用于界定内容。XML语法允许自行定义任意复杂的标记结构。XML使用普通的文本,而不是二进制的数据格式,因此具有跨平台的优点。XML的优点主要表现为:规范、简单、可扩展性、自描述性、简明性 。
3 基于Agent的异构数据库中间件应用
校园一卡通是一个全新的理念,作为学校数字化校园的基础建设,在提升学校信息化建设和核心竞争力中起着举足轻重的作用。校园一卡通的建设目标是为交叉学科建设提供学术平台;为改善学生培养环境提供完整的数字化解决方案;提高学校内部管理系统的效率,建成集成的校园信息系统。
本文是利用Agent技术的优点,将其引入校园一卡通异构数据库中间件系统集成中,其建立的模型如图1所示。
3.1模型各部分功能
(1)管理Agent:它响应用户Agent发来的用户信息和操作请求,承担着对外来请求进行认证并授权的责任,保证系统运行的安全。具体表现为:
①创建和注销业务Agent。管理Agent根据用户和程序对工作流程的定义和描述,在工作流程实例化的过程中,创建相应的业务Agent。这些业务Agent的定义,如任务处理接口等,存放在Agent定义库中,而它的初始化状态和一些执行参数则放在Agent状态库中。这样,新创建的活动Agent就在管理Agent中完成了注册,可以在以后的执行过程中接收管理Agent的调度。
②接收用户请求并分解任务。接收客户端发来的服务请求,然后根据具体的服务来查询规则库和知识库, 寻找合适的业务Agent来协助完成任务。处理完成任务后接收业务Agent返回的服务结果, 并将其整合返回给用户Agent。
③对业务Agent的服务进行管理。管理Agent在收到业务Agent或者其它Agent的服务请求以后,查询Agent定义库中关于各个Agent的相关数据,同时根据Agent状态库中的各个业务Agent的状态和运行时的参数,返回句柄或者拒绝,并给出拒绝原因。
(2)元数据:包括各局部数据库的模式信息、集成系统的全局视图信息以及异构模式问的转换规则等。元数据位于管理Agent所在的同一机器上,这样对于全局数据提取相应的信息,再由管理Agent执行。
(3)业务Agent:根据用户的不同需求,提供不同的业务处理服务,产生相应的规则,调用不问的算法将用户需求转换成不同的形式.相互协作,表现同步。它包括接收箭理Agent发来的请求任务,与各业务Agent合作通讯,传输数据访问Agent返回的服务结果等。具体表现为:①数据传输管理:主要负责解释管理Agent发来的服务请求以及将数据库访问Agent返回的服务结果传输给管理Agent。通过在流套接宇的基础上一个传输通道来完成。 l 务Agent一股处于监听状态, 为了保证数据传输的完整性,采用双重确认的机制。 ② 通信管理:主要负责与其它业务Agent进行通信和协作。作为通信的中间层,屏蔽了通信的一致性和完整性,使整个系统在通信上有较好的扩展性和灵活性。
(4)数据访问Agent:采用Agent技术构建数据访问中间件,可以根据用户端程序的不同要求动态连接数据库。它对应各子系统的数据库服务器,接收和解释来自业务Agent的请求, 检验业务Agent的合法性及权限,将服务通过标准接口JDBC传给数据源执行,取得数据结果后,将其转换成XML格式传给业务Agent。具体表现为:
①系统检测:该模块主要的功能是实时地监测数据库系统的运行状况和资源状况。同时它还维护着一张静态的系统任务表,当某个任务触发条件到来时(如到了某个系统时间),它就会自动地触发系统任务表中指定的任务请求,更好地实现系统层面上的自动化。
②与数据库的连接管理:该模块管理中间件系统与数据库之间的连接,它的功能实现是真正达到数据库类型和位置对上层的应用系统透明、均衡数据库服务器负载根本之所存,使得支持异构数据库更加方便。这种数据库连接方案采用在中间件环境中命名数据库连接的方式定义可用的连接(逻辑连接),每个连接指定了(DBMS,DBName,USER,PASSWORD)。每个连接可由一个线程实现,这些连接组成连接池,这些线程于数据库访问服务启动时启动,于服务终止时终止。这种方式有助于减少用户程序对具体环境的依赖性。
③缓冲池管理:为了不同速率设备之间传输进行匹配,都会采用缓冲区的方式。采用缓冲池一是由于高性能和高可靠性的要求,二是为了提升速度:在进行数据库操作时,会有一些经常进行的操作,这些频繁进行的操作如果能够被保存下来,就可以节省很多的时间。采用的实现方法是根据连接管理中的一个计数器,执行次数多的才可以进行保留。当客户的SOL请求到达后,先检查缓冲区中有没有结果的缓存,如果有就直接将结果返I鱼J,如果没有再进行相应的处理。
④ 数据处理:将数据库中的数据集提取出来映射成相应的XML文档,以便传输、共享和整合。
3.2工作流程
各个Agent相互配合,共同协作完成任务,其处理过程如下:
(1)用户Agent接收请求,首先判断,是否是已定义的正确接口之一,如果不是,则直接返回用户错误信息;如果是,则执行2。
(2)调用缓冲区管理,查询是否已经执行过这个请求, 如果是,则执行5; 如果不是,则执行3。
(3)调用连接管理,看足否有可用的物理连接,如果无,则等待;如果有,则执行4。
(4)进行物理的连接,进行数据处理。
(5)得到的结果, 打包处理,将其传送给用户Agent。
{$page$}
其流程图如图2所示。
4 关键模块实现
由于子系统数据库的异构,它们的数据库模型,或者是信息的组织形式各不相同,这样给数据库之问的数据交换和信息共享带来了很多问题。本文采用的是将数据库中的记录集提取出来转换成XML,文件,这样便于数据的交换和整合以及透明访问。
下面以查询学生学籍管理系统为例,说明如何将数据库中读取的数据转换成xML文件。数据库采用的是SOLServer 2000,学生学籍管理系统表student表1。
5 结束语
本文在高校一卡通中针对校园一卡通中异构数据库的异构问题,结合Agent的技术应用到异构数据库中间件中,设计了一种基于Agent的校园一卡通异构数据库中间件模型,有效地解决学校与银行以及校内各部门之间所存在的异构数据库之间的关联数据查询和共享。