论文部分内容阅读
摘 要:本文从共享和同步高校各个管理信息系统数据的目的出发,提出了一种基于专用数据发布服务器(Data Publishing Server,简称DPS)和Oracle数据库链接技术的校园一卡通数据发布模式,有效地解决了现阶段校园管理信息系统间的数据同步问题。
关键词:DPS;管理信息系统;数据库;数据推送
中图分类号:TP311文献标识码:B 文章编号:1673-8454(2010)21-0018-03
一、引言
按照数字化校园建设对统一信息采集和共享数据的要求,高校各个管理信息系统往往存在着信息汇总同步不及时、需要人工干预等缺陷,这就造成数据处理效率低下、时间不确定、易遗漏等一系列问题。本文从共享和同步高校各个管理信息系统数据的目的出发,提出了一种基于专用数据发布服务器(Data Publishing Server,简称DPS)和Oracle数据库链接技术的校园一卡通数据发布模式,有效地解决了现阶段校园管理信息系统间的数据同步问题。
二、DPS发布模式整体结构设计
1.DPS发布模式整体流程
作为校园一卡通数据发布模式的基础,一卡通后台Oracle数据库、DPS、校园各个管理信息系统信息平台间在硬件逻辑上利用校园网络连接,在数据逻辑上利用数据推送和数据读取机制。一卡通系统后台定期向DPS推送定制的数据表,DPS将接收到的数据表存储在本地数据库中,学校各个管理信息系统平台数据库则定时向DPS发起数据更新信号,建立数据更新链路,自DPS数据表中读取符合各自管理信息系统要求的数据表,从而完成从校园一卡通后台数据库到DPS再到各个管理信息系统后台的整个数据同步共享流程。整个系统的工作流程如图1所示。
2.DPS数据发布总体结构
校园一卡通系统担负着身份认证和校园消费功能。所以本系统设计时必须考虑对校园一卡通系统平台的安全保证,不能因对各个管理信息系统提供数据查询功能而影响一卡通系统后台数据的安全。本系统设计的网络安全机制主要体现在:建立DPS并在一卡通后台数据核心与新建的DPS间加装防火墙,阻断外网对一卡通数据核心的所有访问。
数据发布系统总体结构由三大部分组成。第一部分是防火墙以内,即一卡通后台数据专网;第二部分的DPS作为数据中转平台处于防火墙以外,与外部校园网络相连通,以防火墙为内部网络与外部网络的物理和逻辑分界;第三部分包含基于外部校园网络的各个校园管理信息系统数据应用平台,如图书馆服务器、校园信息平台服务器、食堂商户终端、超市商户终端、控水控电商户终端等,其整体结构如图2所示。
3.数据发布流程的关键控制点
数据发布流程的焦点集中在以下两个方面:(1)数据同步流程。校园一卡通后台定时启动数据更新进程,连接建立并在DPS更新校园一卡通后台数据信息镜像。(2)数据迁移/查询流程。针对校园各管理信息系统数据库的异样性,数据迁移/查询采用两种基本模式:一种是基于Oracle数据库的管理信息系统可建立指向DPS的数据库链路,直接读取数据,从而将数据迁移至各个管理信息系统数据库;一种是基于其他数据库的管理信息系统,可采用定制的数据查询程序从DPS导出数据到本地,再导入本管理信息系统的数据库。
4.安全性考量
数据库安全性考量主要体现在两个方面:一是数据从校园一卡通内网推送至DPS,而DPS不能逆向访问校园一卡通数据核心,数据同步进程运行在内网,内网处于主动地位,便于进行流程的监视、控制、维护和管理;二是每个管理信息系统通过各自指定的用户名访问,便于控制各用户不同的数据表访问权限。
三、系统实现过程设计
1.建立数据发布服务器
硬件平台采用IBM X236服务器,操作系统为Windows 2000 Server,采用Oracle数据库,版本为Oracle 10g。部署服务器操作系统,将服务器连入校园网;安装Oracle,创建数据库实例yktweb,创建专用的数据更新用户,如dpsuser,密码为userdps,并赋予Create Any Table权限。配置内网Oracle客户端的Net8 Assistant,建立指向DPS数据库的网络命名yktweb,由于是从防火墙内向外连接,从根本上保证了一卡通数据系统的安全。
利用Oracle数据库的数据库链接功能,在校园一卡通后台数据库建立指向DPS数据库的数据库链接(Data Link)。建立名称为dl_yktweb的数据库链接。数据库链接建立完成以后,用“表名@dl_yktweb”的形式即可在本地引用。接下来,进行数据同步。根据各个管理信息系统对数据表的结构、内容的具体要求,综合一卡通后台数据库若干相关数据表建立特定视图(View)。以学生身份信息为例:
create or replace view SFinfo as
select i.sno 学号,account 校园卡账号,name 姓名,decode(i.sex,0,’未知’,1,’男’,2,’女’)性别,
(select p.name from pid p where p.code=i.pidcode) 身份类型,
(select d.name from department d where d.code=i.deptcode) 部门,
(select picdb.pic from picdb where picdb.no=i.no) 照片
from idinformation i
根据sfinfo视图,在远程DPS数据库建立相同数据结构的名为sfinfo的数据表:
create table sfinfo@dl_yktweb as select * from sfinfo where 1=2;
where子句不成立,可创建一个相同数据结构的空表。然后向sfinfo@dl_yktweb插入数据:
insert sfinfo@dl_yktweb as select * from sfinfo;
以上就是数据更新的整个过程。
同理,可为不同的管理信息系统建立各自所需的视图(一卡通后台)和数据表(DPS数据库),在一卡通后台数据库建立包含有若干个包含特定子查询的insert语句(对应不同的管理信息系统)的SQL脚本,通过运行该脚本,即可将更新数据推送至远程DPS,从而达到数据更新的目的。
2.各个管理信息系统的数据迁移和查询
DPS上建立的各个管理信息系统所需的数据表所有权属于dpsuser,故应分别为各个管理信息系统建立数据查询用户角色,为该用户角色赋予所有权属于dpsuser的特定数据表的Select权限,并在此用户下建立指向特定数据表的同义词(Synonyms),实现各个不同用户角色对不同数据表的独立访问。
对基于Oracle数据库的各个管理信息系统而言,数据迁移比较简单,利用数据库链接即可快速完成。向各管理信息系统的系统管理员提供DPS的IP地址、数据库端口、网络服务名、Oracle用户名/密码,在各个管理信息系统的后台数据库建立指向DPS的数据库链接,各个管理信息系统的数据库服务器通过定时执行SQL脚本,访问DPS相应数据表实现数据迁移。数据查询以各个管理信息系统发起为开始,以DPS接收查询条件并生成相应的数据表回传至各个管理信息系统数据库为结束,从而完成一个完整的面向各个管理信息系统的数据迁移流程。
3.通用查询程序的开发
由于校内各管理信息系统采用的后台数据库具有差异性,个别管理信息系统数据库无法顺利连接基于Oracle数据库的DPS服务器,对此,专门开发了一个专用的数据查询程序来获取DPS所发布的数据,软件采用Visual Basic OO4O的方式。OO4O(Oracle Objects for OLE)是Oracle公司提供的开发基于Oracle数据库应用程序的一组编程对象的集合,它能够直接快速地访问Oracle数据库,并且支持大多数面向对象的程序设计语言。
以学生身份信息表为例,查询程序的基本原理是调用OO4O对象连接到DPS数据库,获得查询结果后,调用Excel对象,将数据信息以Excel格式保存在本地,照片文件以“学号.JPG”保存。实现以上主要功能的VB代码如下:
Dim OraSession As OraSession
Dim OraDatabase As OraDatabase
Dim OraDynaset As OraDynaset
Dim OraFields As OraFields
Dim OraPic As OraBlob
Dim Exc As Excel.Application
Dim Excbk As Excel.Workbook
Dim Excsht As Excel.Worksheet
Set OraSession = CreateObject("OracleInProcServer.XOraSession")
Set OraDatabase = OraSession.DbOpenDatabase("yktweb","dpsuser/userdps", 0
关键词:DPS;管理信息系统;数据库;数据推送
中图分类号:TP311文献标识码:B 文章编号:1673-8454(2010)21-0018-03
一、引言
按照数字化校园建设对统一信息采集和共享数据的要求,高校各个管理信息系统往往存在着信息汇总同步不及时、需要人工干预等缺陷,这就造成数据处理效率低下、时间不确定、易遗漏等一系列问题。本文从共享和同步高校各个管理信息系统数据的目的出发,提出了一种基于专用数据发布服务器(Data Publishing Server,简称DPS)和Oracle数据库链接技术的校园一卡通数据发布模式,有效地解决了现阶段校园管理信息系统间的数据同步问题。
二、DPS发布模式整体结构设计
1.DPS发布模式整体流程
作为校园一卡通数据发布模式的基础,一卡通后台Oracle数据库、DPS、校园各个管理信息系统信息平台间在硬件逻辑上利用校园网络连接,在数据逻辑上利用数据推送和数据读取机制。一卡通系统后台定期向DPS推送定制的数据表,DPS将接收到的数据表存储在本地数据库中,学校各个管理信息系统平台数据库则定时向DPS发起数据更新信号,建立数据更新链路,自DPS数据表中读取符合各自管理信息系统要求的数据表,从而完成从校园一卡通后台数据库到DPS再到各个管理信息系统后台的整个数据同步共享流程。整个系统的工作流程如图1所示。
2.DPS数据发布总体结构
校园一卡通系统担负着身份认证和校园消费功能。所以本系统设计时必须考虑对校园一卡通系统平台的安全保证,不能因对各个管理信息系统提供数据查询功能而影响一卡通系统后台数据的安全。本系统设计的网络安全机制主要体现在:建立DPS并在一卡通后台数据核心与新建的DPS间加装防火墙,阻断外网对一卡通数据核心的所有访问。
数据发布系统总体结构由三大部分组成。第一部分是防火墙以内,即一卡通后台数据专网;第二部分的DPS作为数据中转平台处于防火墙以外,与外部校园网络相连通,以防火墙为内部网络与外部网络的物理和逻辑分界;第三部分包含基于外部校园网络的各个校园管理信息系统数据应用平台,如图书馆服务器、校园信息平台服务器、食堂商户终端、超市商户终端、控水控电商户终端等,其整体结构如图2所示。
3.数据发布流程的关键控制点
数据发布流程的焦点集中在以下两个方面:(1)数据同步流程。校园一卡通后台定时启动数据更新进程,连接建立并在DPS更新校园一卡通后台数据信息镜像。(2)数据迁移/查询流程。针对校园各管理信息系统数据库的异样性,数据迁移/查询采用两种基本模式:一种是基于Oracle数据库的管理信息系统可建立指向DPS的数据库链路,直接读取数据,从而将数据迁移至各个管理信息系统数据库;一种是基于其他数据库的管理信息系统,可采用定制的数据查询程序从DPS导出数据到本地,再导入本管理信息系统的数据库。
4.安全性考量
数据库安全性考量主要体现在两个方面:一是数据从校园一卡通内网推送至DPS,而DPS不能逆向访问校园一卡通数据核心,数据同步进程运行在内网,内网处于主动地位,便于进行流程的监视、控制、维护和管理;二是每个管理信息系统通过各自指定的用户名访问,便于控制各用户不同的数据表访问权限。
三、系统实现过程设计
1.建立数据发布服务器
硬件平台采用IBM X236服务器,操作系统为Windows 2000 Server,采用Oracle数据库,版本为Oracle 10g。部署服务器操作系统,将服务器连入校园网;安装Oracle,创建数据库实例yktweb,创建专用的数据更新用户,如dpsuser,密码为userdps,并赋予Create Any Table权限。配置内网Oracle客户端的Net8 Assistant,建立指向DPS数据库的网络命名yktweb,由于是从防火墙内向外连接,从根本上保证了一卡通数据系统的安全。
利用Oracle数据库的数据库链接功能,在校园一卡通后台数据库建立指向DPS数据库的数据库链接(Data Link)。建立名称为dl_yktweb的数据库链接。数据库链接建立完成以后,用“表名@dl_yktweb”的形式即可在本地引用。接下来,进行数据同步。根据各个管理信息系统对数据表的结构、内容的具体要求,综合一卡通后台数据库若干相关数据表建立特定视图(View)。以学生身份信息为例:
create or replace view SFinfo as
select i.sno 学号,account 校园卡账号,name 姓名,decode(i.sex,0,’未知’,1,’男’,2,’女’)性别,
(select p.name from pid p where p.code=i.pidcode) 身份类型,
(select d.name from department d where d.code=i.deptcode) 部门,
(select picdb.pic from picdb where picdb.no=i.no) 照片
from idinformation i
根据sfinfo视图,在远程DPS数据库建立相同数据结构的名为sfinfo的数据表:
create table sfinfo@dl_yktweb as select * from sfinfo where 1=2;
where子句不成立,可创建一个相同数据结构的空表。然后向sfinfo@dl_yktweb插入数据:
insert sfinfo@dl_yktweb as select * from sfinfo;
以上就是数据更新的整个过程。
同理,可为不同的管理信息系统建立各自所需的视图(一卡通后台)和数据表(DPS数据库),在一卡通后台数据库建立包含有若干个包含特定子查询的insert语句(对应不同的管理信息系统)的SQL脚本,通过运行该脚本,即可将更新数据推送至远程DPS,从而达到数据更新的目的。
2.各个管理信息系统的数据迁移和查询
DPS上建立的各个管理信息系统所需的数据表所有权属于dpsuser,故应分别为各个管理信息系统建立数据查询用户角色,为该用户角色赋予所有权属于dpsuser的特定数据表的Select权限,并在此用户下建立指向特定数据表的同义词(Synonyms),实现各个不同用户角色对不同数据表的独立访问。
对基于Oracle数据库的各个管理信息系统而言,数据迁移比较简单,利用数据库链接即可快速完成。向各管理信息系统的系统管理员提供DPS的IP地址、数据库端口、网络服务名、Oracle用户名/密码,在各个管理信息系统的后台数据库建立指向DPS的数据库链接,各个管理信息系统的数据库服务器通过定时执行SQL脚本,访问DPS相应数据表实现数据迁移。数据查询以各个管理信息系统发起为开始,以DPS接收查询条件并生成相应的数据表回传至各个管理信息系统数据库为结束,从而完成一个完整的面向各个管理信息系统的数据迁移流程。
3.通用查询程序的开发
由于校内各管理信息系统采用的后台数据库具有差异性,个别管理信息系统数据库无法顺利连接基于Oracle数据库的DPS服务器,对此,专门开发了一个专用的数据查询程序来获取DPS所发布的数据,软件采用Visual Basic OO4O的方式。OO4O(Oracle Objects for OLE)是Oracle公司提供的开发基于Oracle数据库应用程序的一组编程对象的集合,它能够直接快速地访问Oracle数据库,并且支持大多数面向对象的程序设计语言。
以学生身份信息表为例,查询程序的基本原理是调用OO4O对象连接到DPS数据库,获得查询结果后,调用Excel对象,将数据信息以Excel格式保存在本地,照片文件以“学号.JPG”保存。实现以上主要功能的VB代码如下:
Dim OraSession As OraSession
Dim OraDatabase As OraDatabase
Dim OraDynaset As OraDynaset
Dim OraFields As OraFields
Dim OraPic As OraBlob
Dim Exc As Excel.Application
Dim Excbk As Excel.Workbook
Dim Excsht As Excel.Worksheet
Set OraSession = CreateObject("OracleInProcServer.XOraSession")
Set OraDatabase = OraSession.DbOpenDatabase("yktweb","dpsuser/userdps", 0