1 数据共享关键技术
XML等数据转换技术可以实现异构系统之间的通信,完成数据共享;XML技术本质上是一种数据转换技术,数据转换又分为语义转换和格式转换两种。格式转换是将非结构化的数据转换为结构化数据的方法,一般包括XML技术、JSON技术以及AJAX技术等。传统的异构数据系统中共享数据时,一般使用XML作为其数据转换技术,由于XML技术不会受到特定的数据格式要求、操作系统等等的限制,所以可以在异构系统间实现数据共享。
XML技术的全称是“可扩展的标记语言”,在描述数据时使用一些特定的标记;之所以说XML技术是可扩展的,是因为在XML文件中可以自由扩充标签元素。XML标记用一对尖括号(<>)包含起来,“<”是开始标记,“/>”是结束标记,例如bigdata1。XML中的标记可以嵌套,但后开始的标记要先结束。XML技术的作用主要是描述数据的结构,其关键技术内容包括XML文档的描述和验证、链接技术、约束结束以及文档转换技术等。
XML技术在描述其文档结构时,使用的是一种称为“文档类型定义”(DTD)的技术,它包含了XML文档中元素及其属性的定义规则、能够使用的实体以及元素之间的关系等。由于DTD文档描述了这些与格式相关的规则,所以异构系统间可以使用通用的DTD验证系统外的XML数据是否有效,从而进行数据共享。DTD在进行数据共享时存在一定的局限性,由于它并不遵循XML技术的语法结构,所以DTD可以共享的数据类型有限;另外DTD不支持命名空间,所以可能会有命名冲突。Schema技术部分解决了DTD在数据共享上的局限性,在支持XML语法结构的同时,Schema本身就是一个XML文件,而且支持比DTD更细粒度的数据共享类型。XML中的文档转换技术指的是“可扩展样式表语言”(XSL),除了可以设置XML文档的格式外,还能够在XML文档格式和其他文档格式之间进行转换。XSL主要包括XSLT、XSL-FO以及XPath三部分,其中XSLT实现XML文档转换的功能,XSL-FO进行XML文档的格式化工作,而XPath可以进行XML内容的查询,以提取XML文档的信息。
基本的数据共享技术在进行数据的共享时,需要相互调用数据,在异构系统间进行数据交互的技术有Web Service技术、中间件技术等。Web Service技术通过WEB提供服务,由于它提供的是标准接口,所以即使是不同的应用、不同的业务之间,也可以进行数据的调用和共享,而不需要其他软硬件的支持。Web Service技术在应用时主要包括三种角色[1]:服务提供者、服务代理以及服务请求者。服务提供者就是提供Web Service服务的角色,它向服务代理描述了Web Service服务的内容和规范,并明确说明Web Service服务的类型、地址以及服务的格式等;服务代理类似于一个中介,其作用是接收服务提供者发布的Web Service服务,并向服务请求者提供服务查询功能。服务请求者根据查询请求向服务代理查询Web Service服务,并根据相关服务的描述和服务提供者绑定,以进行后续服务调用。Web Service技术提供服务的体系结构图如图1所示:
中间件是位于操作系统和应用层之间的一层软件,其目的是屏蔽不同操作系统间的差异。按照不同的用途,可以将中间件技术分为不同的应用种类,如远程过程调用技术、数据库访问技术等。在进行系统集成时,中间件技术的作用是接收并将应用的请求转换为要访问的系统可以处理的模式,起到一个桥梁的作用。
2 数据共享模型
异构信息系统间在进行数据共享时,要将共享的信息展现给其他系统,数据集成的共享模型主要有数据仓库共享模型、中间件共享模型以及P2P数据共享模型[2]。
在全局视图上,中间件技术提供了一种数据共享模型,由不同的中间件软件组成了一个中间件集成平台,以此隐藏异构数据源之间的数据差别。中间件数据集成平台能够集成结构化、非结构化的数据,在融合异构系统数据上具有比较好的效果。在中间件数据共享模型中,不仅可以提供各个成员应用子系统的数据共享,而且能够使各个成员数据库系统实现本地系统自治。中间件数据共享模型的核心是中间件和封装器,封装器的作用是封装各个子系统应用的数据源,并将转换为整个中间件数据共享模型系统可用的通用模型。中间件数据共享模型在数据共享上有很大的优势[3]:(1) 数据访问的透明化。当应用中间件数据共享模型时,某一个子应用系统如果想要请求其他应用系统的数据,它们之间不能直接进行数据通信,而要通过中间件层来实现;这样做的好处是分离了应用程序和其他数据源,对应用系统来说,异构系统的数据库是透明的,如果异构数据发生变化,应用程序不需要修改。(2) 方便管理数据源。当使用中间件数据共享系统时,中间件层维护全局数据视图,各成员系统不需要管理数据源,减轻了各成员系统的负担。(3) 较好的安全性。使用中间件数据共享技术的集成系统中,各成员应用系统之间是相互独立的,不能直接访问异构系统间的应用,所以具有较高的安全性。虽然中间件数据共享模型有上述优势,但在构造中间件数据共享模型时也存在一定的困难,比如如何构造全局视图、如何实现中间件的视图和数据源之间的映射等。
数据仓库数据共享模型不仅存储了异构系统中的数据,而且还会另外存储一份需要共享的数据的副本;在数据仓库中存储的数据要借助ETL工具进行数据的抽取和转换。基于数据仓库共享模型的数据共享方式复制了多个异构数据源的数据,并对外提供统一的接口,这样用户在访问数据时就无需直接访问原始数据,而只需要访问数据仓库中的数据即可。数据仓库中的共享数据还具有面向应用的特性。在获取数据时,ETL工具具有重要的作用,完成数据的抽取、转换和清洗的功能[4]:(1) 数据抽取。顾名思义,数据抽取的作用就是从异构数据源中抽取(复制)需要共享的数据,不同数据源的数据遵循不同的规则,所以需要进一步处理。(2) 数据转换和清洗。不同数据源的数据在语义、类型以及格式上存在一定的差异,所以需要进行分离、集成或聚集操作,以提高异构数据源的质量。(3) 数据的加载。共享数据处理完毕后,可以加载到数据仓库中,方便用户的共享使用。虽然数据仓库共享模型方便共享数据的集中管理,但它也有一定的缺陷,比如因为要经过诸如数据的抽取、转换以及清洗的过程,所以性能上可能无
法满足实时性的要求。
3 HBase数据共享模型
单纯的数据仓库数据共享模型,采用的数据仓库是公共数据库,也就是说其数据共享方式是基于公共数据库的。公共数据库指的是可以被多于两个的应用系统公共使用的数据库,在云计算应用系统中,一般而言数据都有多个备份,Hadoop开源框架上HBase数据库可以作为一个较好的公共数据库。
HBase数据库作为公共数据库时,可以进行数据的标准化,以此建立统一的数据共享格式;另外,多个副本机制还可以实现共享数据的高效存取。HBase数据库是一种列式存储的数据库,可以面向稀疏数据,由于它可以利用大量廉价服务器搭建大规模的集群环境,所以可以实现对海量数据的共享和处理。不像中间件数据共享模型以及数据仓库共享模型那样,HBase数据共享模型在存取共享数据时需要的时间比较短,比中间件共享模型少了数据转换的时间,比数据仓库数据共享模型少了数据抽取以及数据清洗的时间,只需要对HBase数据库中共享数据进行增删改查操作就可以使各子应用系统中的数据保持一致。
在读写性能上,HBase数据共享模型处理共享数据所需要的时间更短。传统的数据共享模型中的数据库一般都是关系型数据库,而HBase等Nosql数据库技术在处理海量数据上更有优势,淘宝、百度等大型互联网公司都开始使用HBase数据库作为共享数据库。HBase数据共享模型的优势主要体现在[5]:(1) 数据插入速度与数据量无关。随着数据量的增大,关系型数据库的数据插入速度会明显降低,而HBase数据库的数据插入速度几乎保持不变。(2) 支持共享数据需求的变化。HBase数据库是列式存储的,所以当数据共享需求发生变化时,可以方便地进行扩展。例如要增加一个新的字段时,完全可以增加一个新的列簇,而无需修改原来的数据结构。(3) 增强了共享系统的可靠性。HBase数据库的数据在存储时,并不像关系型数据库那样将所有的数据存在在一个数据节点上,而是会将同样的数据存储到多个HRegion服务器,保存数据的多个副本。
4 结论
本文首先研究了实现数据共享的关键技术,比如XML技术和Web Service技术等,然后分析了中间件数据模型、数据仓库共享模型等主要的数据共享模型,最后说明了基于HBase技术的数据共享模型,可以为后续数据共享技术提供一定的帮助。
参考文献:
[1] 王海豹.基于Hadoop架构的数据共享模型研究[D].北京工业大学,2013.
[2] 陈文青.DFS技术在企业数据共享中的应用研究[J].计算机光盘软件与应用,2013,10(15).
.计算机与应用化学,2012,5(28).