邵冬华,王 刚
(1.南通航运职业技术学院,江苏 南通 226010;2.江苏金智教育信息技术有限公司,南京 211100)
随着高校信息化建设的发展,各高校大部分都已经建立了校内的数据中心,通过与业务系统的数据集成和共享,累计了大量的各类教务、科研、管理方面的数据。同时,主管部门对所属高校的数据采集由于受到各高校内部数据的异构性、数据一致性等问题,一直不能实时地进行数据收集,大部分依靠手工的数据整理工作,耗时耗力。
近年来,云计算技术迅猛发展,以资源聚合和虚拟化为基本特征,支持应用服务化、专业化,具有弹性服务、资源池化、按需服务、服务可计费等特点[1]。近年,包括 Google,Amazon,IBM 与Microsoft在内的几乎所有的IT行业巨头都将云计算作为未来发展的主要战略之一[2-4]。
各高校所建立的内部数据中心,对于主管部门而言,是一个很大的 “云”,而多个高校的数据的动态采集和使用,则是这个 “云”上的服务。本文引入云计算的思路,通过使数据对象虚拟化和服务的构建,为建立跨校的信息平台提供新的思路。
云计算 (Cloud Computing)是一种新型的资源和服务交付方式,在目前还没有普遍一致的定义,是分布式计算的延伸,通过整合、管理、调配分布自网络各处的计算资源,以按需分配、按用计费、通过互联网分发统一的交互接口的同时向多用户提供服务的一种服务模式[5]。也是一种由规模经济驱动的大规模分布式计算模式,通过这种计算模式,实现抽象的、虚拟的、可动态扩展、可管理的计算、存储、平台和服务等资源池,由互联网按需提供给外部用户[6]。云计算技术研究尚处于起步阶段,目前主要应用于互联网、商业和科学计算等领域[7-8]。
云计算有如下几个主要特点:
(1)大规模:只有大规模的分布式计算才能体现出云计算的高效。才能体现资源整合和服务提供的优势。
(2)可扩展性:由于云计算使用的是通过互联网提供服务交互方式,服务可随着使用人数的增长动态的扩展。
(3)动态配置:服务是按需定制和供应的。
(4)虚拟化:终端用户从云中获取应用服务,而不需要关心服务的具体实现和具体位置。这就要求服务的提供者必须是抽象的实体,是虚拟化的,否则无法满足服务的动态、按需等需求。
(5)安全性:云端的用户信息可分布在地理上相互隔离的数据库主机中,用户自己也无法判断信息的备份地点,从而大大提高系统的安全性容灾能力。
通常情况下,上级部门会采用新增信息管理系统、各个高校将需要采集的数据通过页面录入、导入的方式提交数据,费时费力,数据的及时性也很难得到保障。而目前,大部分的高校校内已经或者逐步开始建设校内的数据中心库。这两层数据的及时有效的对接已经成为研究高校数据使用的研究热点。
云计算的出现及其特点,给跨校信息平台的研究带来了新的思路。各个高校之间的数据中心是存放在各个学校的,分布比较广,数量也较多。而上级部门采集的信息也会随着政策、业务等发生多样性的变化。要求跨校信息平台的服务能够实现动态配置、具有较好的可扩展性。
参照云计算的体系结构,跨校信息平台的体系结构如图1所示。
在跨校信息平台的体系结构中,主要分为四层,分别是资源层、虚拟化层、服务层和应用层。
资源层主要有分布在各高校内部的数据中心组成,主要包含硬件服务器、操作系统软件、数据库、应用软件等。这些资源随着高校数量的增加会越来越庞大。由于资源的归属等原因,分布式的协同计算等在跨校数据平台中应用较少,本文不作过多描述。
图1 跨校信息平台体系结构
虚拟化层是实现跨校信息平台的基础层,只有将各高校的数据对象虚拟化后,才能够构建服务和应用。虚拟化层主要是将各高校数据中心中的数据实体转换成虚拟数据对象,即将物理上的表、视图等转换成逻辑上的数据对象,以便屏蔽来自不同高校的多数据源、多访问方式等问题。同时,将各个高校也进行虚拟化描述。
服务层是在数据对象虚拟化之后,对数据的进一步服务封装。服务的封装依据于业务的不同,服务的分类颗粒度也不同。以跨校学生基本信息为列,在平台中需要查询多个高校的学生人数、单个学校的学生明细。这个应用中,服务就分为学生人数统计服务和学生明细查询服务。而学生明细查询服务,则可以分为学生自然信息查询服务和学生在校系想你查询服务。
应用层主要是在服务层的基础上,构建针对具体业务的应用。包含用户认证、服务的权限管理、服务的配置 (由细颗粒的服务组建粗颗粒的服务)、服务订阅等。
使用以上的体系结构,解决了在构建跨校信息平台时的几个基本要求:
(1)扩展性。当增加一所新的高校时,不会带来体系结构的复杂度的增加。只需要按照其他高校的方法进行数据对象虚拟化,并在服务层中注册新的虚拟对象。
(2)分布计算性。分布式计算的范围大小取决于服务的粗细度。比如:对学生信息的统计和查询。如果服务中只有基本信息查询服务,当构建应用的时候,统计的数据就需要由跨校信息平台统一来完成,无法分布计算。而如果服务细分为统计和查询,则统计工作则分布在各个高校的数据中心,服务则直接从虚拟的学生数据统计对象中获取统计信息。
(3)数据实时性。跨校信息平台本身并不存储数据,数据存储在各高校的数据中心,并由相应的业务系统支撑进行数据的维护工作。当平台接受用户请求的时候,会通过构建的服务到对应的数据中心中获取实时数据。
(4)稳定性。平台中包含了多个高校的数据,当一个高校的数据物理访问出现故障时,并不妨碍其他高校的数据实时范围和系统功能使用。
(5)节省投入。有效利用了现有的高校数据中心资源,减少了在构建平台过程中可能会涉及的数据中心建设和维护。缩短了项目见效的时间。
数据对象虚拟化是构建跨校信息平台的基础和核心。由于各高校的基础数据源基本上都是关系型数据库,且大部分使用了Oracle数据库,所以本文使用了目前较为流行的Oracle的ODI(Oracle Data Integrator)组件,作为数据对象虚拟化工具。
目前,ODI组件可以支持绝大部分的关系型数据库的数据反向操作。比如通过驱动连接MS SqlServer数据库,通过建立ODBC数据源,连接Excel文件等。
数据对象虚拟化主要使用ODI组件中的数据反向操作,将数据库中的实体对象转换成XML的对象描述。当物理上可连接到对方的数据库时,ODI可以将有权限访问的数据对象反向成逻辑数据对象,即转换成XML文件。在此过程中,主要生成连接信息描述,库信息描述,数据对象描述。连接信息描述主要包含连接名称、ID、连接驱动类型、连接关联的学校ID、连接的账号和密码等;库信息描述主要包含库名称、ID、使用的连接信息、库类型等;数据对象描述主要包含数据对象的描述、包含的列描述、主键描述等信息,如图2所示。
对于高校对象的虚拟化描述,主要包含高校名称、ID等信息。高校对象的虚拟化描述是作为索引,在多个高校数据对象虚拟化描述统一命名规则的前提下,提供快速的检索。这样,既提高了索引的效率,又能在新增高校的时候,使得服务层只需要遍历高校对象即可,这样就不需要改变服务层的设计和实现。
图2 一个虚拟化数据对象的XML描述
本文以跨校信息平台中的学生信息查询的应用为例,描述数据服务的构建过程。
对于学生信息查询的应用而言,平台需要提供学生总数的查询、学生男女生人数的查询、学生专业信息的查询,以及对应的学生明细的查询等。这样学生信息的数据服务就分两个层次,提供两个调用接口。一个是统计 (TJ_BZKS),一个是明细(MX_BZKS)。
对于统计的数据服务,就统计而言,接口中包含<学校ID,统计对象ID,字段名>,其中学校ID表示具体指的哪个高校,输入的值是高校编码,空表示所有注册的高校;统计对象指的是统计是在哪个类别里面,对于学生信息查询而言,输入的是BZKS;字段名表示以学生信息中的哪个字段为统计维度进行统计,为空表示统计的是学生信息的总数。接口的返回是一个ResultSet的XML描述。包含学校ID、统计对象、字段名、统计值。
对于明细的数据服务,接口中包含<学校ID,统计对象ID,字段名列表>,其中学校ID和统计对象ID同统计接口的定义一致,字段名表示明细显示的列,是一个字段名列表。接口返回的ResultSet是依据接口中指定的字段名列表为列,数据明细为行的XML描述。
在服务对虚拟化对象的调用和执行过程中,如果学校ID为空,则依据学校ID的虚拟化对象为索引,遍历各学校的虚拟化的统计对象。在执行过程中分为两层实现,分别为逻辑层实现和物理层实现。逻辑层时间主要是依据接口的调用,形成对各高校虚拟化数据对象的操作,物理层则依据各高校的连接信息、库信息和对象信息进行物理连接和查询,并返回结果。如图3所示,使用SQL语句对上述过程进行了描述。
图3 服务对虚拟化对象的调研和执行
自从各高校开始建设数据中心库以来,数据的安全性就受到了高度的重视。本文讨论的跨校信息平台的建设,需要自上而下的从各个所属高校的数据中心库直接读取数据,这对各个高校的数据安全带来了影响。
针对安全问题,采用两层数据安全防护,即从网络层和应用层。
在网络层,在各高校内部,对可访问数据中心库的IP地址进行限制,只有上级部门的有限的几个IP地址才可访问本校的数据中心库。
在应用层,在连接数据中心库之前,进行连接的安全验证。数据是通过二次加密后的密文传递的。加密是利用MD5算法依靠双方约定的密钥和服务器时间进行第一次加密,接着对密文进行固定位数的向左移位,即第二次加密。
加密协议如下:
MD5(密钥+时间戳)+位移数;
此验证方法中,密钥是双方约定的、可定期变化的;时间戳在经过取舍处理后,可允许在10分钟内都有效,即允许此请求在双方服务器时间一致情况下10分钟内有效,或者服务器时间误差10分钟内,请求有效。位移的数量是通过传递的密文的最后一位标记的,可定期变化的;MD5的加密方法采用32位小写。
在验证过程中,首先依据约定好的密钥和时间戳进行MD5加密;其次对密文进行二次加密,即根据获取传递过来的位移数进行密文的位移;最后将二次加密后的密文同传递过来的前32位密文进行比对 (区分大小写),如果一致则验证通过,如果不一致则拒绝连接。
通过在构建跨校信息平台的研究过程中,结合平台的实际需求,引入了云计算的思路,着重介绍了在引入云计算后,跨校信息平台的体系结构,以及对数据对象的虚拟化和数据服务的构建过程。本文的研究同时也为进一步利用已用的各高校数据中心资源提供了一种新的思路。后续,将逐步完善跨校信息平台的研究,对平台实现过程中会涉及得到的统一数据标准、跨校虚拟网络、非关系型数据等方面进行进一步的研究和实现。
[1]罗军舟,金嘉晖,宋爱波,等.云计算:体系架构与关键技术[J].通信学报,2011,32(7):3-21.
[2]Luis M.vaquero,Luis Rodero-Merino,Juan Caceres,et al.A break in the clouds:towards a cloud definition[J].ACM SIGCOMM Computer Communication Revie,2009,39 (1):50-55.
[3]陈康,郑纬民.云计算:系统实例与研究现状[J].软件学报,2009,20(5):1337-1348.
[4]A di Costanzo,M.D.de Assuncao,R.Buyya.Harnessing cloud technologies for a virtualized distributed computing in frastructure [J].IEEE Internet Computing,2009,13 (5):24-33.
[5]虚拟化与云计算小组.虚拟化与云计算[M].北京:电子工业出版社,2009.
[6]Ian Foster,Yong Zhao,Ioan Raicu,et al.Cloud Computing and Grid Computing 360-Degree Compared[M].Austin,TX:Grid Computing Environments Workshop,2008.
[7]Dikaiakos M D,Katsaros D,Mehra P.Cloud computing:distributed internet computing for IT and scientificres earch[J].IEEE Internet Computing,2009,13 (5):10-13.
[8]李伯虎,柴旭东,侯宝存,等.一种基于云计算理念的网络化建模与仿真平台—— “云仿真平台”[J].系统仿真学报,2009,21 (17):5292-5299.