论文部分内容阅读
摘要:为了实现异构环境中数据集成的目标,提出了基于XML、B/S三层架构的企业异构数据库之间数据共享的实施方案,设计和实现了一个通用的异构数据集成系统。文章介绍了该系统的核心体系结构、工作流程和各模块的功能;阐述了XML文档模式的验证和提取、XML文档问的映射、XML文档模式和数据库关系模式之间的映射等关键模块的设计和实现:最后简要说明了实现系统所采用的相关Java技术。
关键词:数据集成;XML;关系模式;映射
0 引言
企业信息化的逐步深入,使得任何一个独立的信息持有或使用单位都有可能成为一个异构的数据源。与此同时,企业又需要访问各种异构数据源,来加强战略伙伴之间的合作关系,对资源进行集成和协调,快速响应市场需求,提高自身竞争力。为此,必须要有一种系统能够支持异构数据源的数据集成。
数据集成即是把不同来源、格式、特点、性质的异构数据在逻辑上或物理上有机地集中起来,为用户提供全面的数据共享。在企业数据集成领域,已经有了很多成熟的框架可以利用。目前通常采用联邦数据库系统(Federated Database System,FDBS)、中介系统(Mediation System)和数据仓库(Data Warehouse)等方法来构造集成系统,这些框架在不同的侧重点和应用上解决了数据共享问题,本文研究了目前国内外数据集成策略以及相关应用技术,在此基础上提出了一种基于XML(eXtensible Markup Language,可扩展标记语言)、B/S三层架构,建立数据交换中心的总体解决方案,并结合相关的Java技术实现了其系统原型。
1 相关技术简介
1.1 XML技术
XML是由W3C(World Wide Web Consortium,万维网联盟)定义的一种语言,它是SGML(Standard Generalized Markup Language,标准通用标记语言)的一个简化子集。XML文件是由标记及其所标记的内容构成的文本文件。与HTML(HyperText Markup Language,超文本标记语言)文件不同的是,这些标记可由用户自定义,使得XML文件能够很好地体现数据的结构和含义。WBC推出XML的主要目的是使Intenet网络上的数据相互交流更方便,让文件的内容更加简明易懂。
作为表示结构化数据的行业标准,XML具有许多特点,如可扩展性、自描述性等等,非常适合用于企业间异构数据的集成。
1.2 Web服务
为了在数据的发送方和接收方之间建立一个通道,需要有一种能够跨平台、跨语言的协议或组件,它能够使用XML来描述和包装需交换的数据或对象内容,以使得各种平台的数据和对象都能通过同一个标准进行传输。HTTP(HyperText Trans-fer Protocol,超文本传输协议)和SOAP(simple Object Ac-tess Protocol,简单对象访问协议)正是这样一种协议。
HTTP是ISO/OSI开发系统互联参考模型的应用层协议,采用请求,响应方式传送WWW的数据。SOAP是一种轻量级协议,用于在分散型、分布式环境中交换结构化信息。SOAP利用XML技术定义一种可扩展的消息处理框架,并提供了一种可通过多种底层协议进行交换的消息结构(如图1所示)。这种框架独立于任何一种特定的编程模型和其他特定实现的语义。
2 基于XML的企业间信息集成框架
2.1整体解决方案
系统在整体结构上采用“数据交换中心”的思想来解决不同企业应用系统之间的协同问题。通过采用统一的数据交换标准,使各应用系统与数据交换中心相连,利用数据交换中心来实现数据共享和路由。由于隔离了数据存储层和应用层,应用与其底层的数据结构和存储方式无关,从而不需要对原有业务系统进行改造,也不需要对已有的业务流程重新开发。这种连接方式实现了数据的无缝集成和共享访问,既保证了各业务系统的有效协同,同时又保证了各应用系统的相互独立性和低耦合性,从整体上提高了系统运作的高效性和安全性。
基于数据安全性、系统性能、系统扩展性和实施难度等方面的考虑,整个体系结构在物理拓扑上采用星型结构(如图2所示)。
根据以上拓扑结构,结合异构数据交换需求和现有技术的可行性,考虑采用基于Web服务的数据交换模式来实现异构数据集成。基于Web服务的数据交换模式独立于所有的参与者,可以很好地实现数据的实时性和完整性,能更好地屏蔽企业的内部数据(具体的数据处理由企业的业务逻辑来决定)。更重要的是,它是一种高度松散耦合的交换方式,参与数据交换的任何一方修改了其业务逻辑或数据格式,所影响的只是它本身,共享的方法屏蔽了所有的外部改变。
2.2框架结构
数据交换中心之所以能够交换基于不同操作平台和数据库的数据,主要得益于其对信息的统一表示、完整的消息服务能力以及功能完备的交换平台软件系统。信息的统一表示依靠元语言标准、信息标准、元数据标准、显示标准、解析标准、转换标准和封装标准来保证。完整的消息服务能力依靠信息的统一封装、统一编址、信息的可靠性传输、路由管理等技术手段实现。交换平台软件系统一般采用基于基础/中心数据库的数据交换、消息中间件服务器等技术方式。
以下给出该数据交换中心节点及企业终端节点的框架结构(如图3所示),并对各模块功能予以说明。
(1)数据操作引擎:它是负责接收和发送XML数据的平台。实现接收功能的部分实际上是一些监听组件,监听并接收来自数据交换节点传入的数据;实现发送功能的部分是通过各种传输协议来把XML数据发送到指定目标地址。
(2)XML解析器:主要完成XML模式的确认,即测试文档是否符合施加到其文档类型之上的约束条件。分析该XML文档的语法和格式是否正确,以确保在传输过程中没有数据丢失和错误。分析企业所用的Schema是否和交换中心使用的Schema一致,如果不一致,则需要进行映射处理。
(3)XML映射器:当企业所用的Schema和交换中心使用的Schema不一致的时候,将用到该功能模块。它首先检查是否有相应的XSLT(可扩展样式表语言)文件。如果有,则直接按该文件的规则把企业的XML转换为标准格式的XML文件;如果没有,则从企业用的Schema中提取出对应的数据格式和数据类型以及字段名,根据业务规则把标准Schema中对应的数据格式、数据类型以及字段名一一映射,系统将按此生成一个XSLT文件并用此文件进行映射。
以企业间完成一次数据交换为例,XML解析器与XML映射器进行的数据解析过程描述如下。
步骤1:XML检查器首先检查在数据交换中心服务器上是否有发送方所发送数据类型的Schema文件。如果没有,就提取传入数据的Schema并将此Schema作为发送方对所传送数据 类型的Schema,并转入第3步。
步骤2:如果有,则用该Schema来检查接收到的XML文档是否符合该Schema所规定的结构。如果不符合,则认为发送方的数据结构发生了变化,提取传入数据的Schema并将此Schema作为发送方对所传送数据类型的Schema。
步骤3:检查数据交换中心服务器端是否有该数据类型的通用Schema。如果没有,则将发送方的Schema作为该数据类型的通用Schema,并转入第5步。
步骤4:如果有,则检查通用Schema和发送方的Schema是否一致。如果一致,则转入第5步;如果不一致,则检查是否有相应的XSLT文件。如果有,就用该XSLT文档将接收到的XML文档转化为通用的格式;如果没有相应的XSLT,则需要用XML文档的映射器生成一个XSLT文档,再用该XSLT将接收到的XML文档转化为通用的格式。
步骤5:检查接收方在服务器端是否有所要交互数据类型的Schema文档。如果没有,则以通用Schema作为接收方的Schema文档,并进行后续处理。如果有,就检查该Schema是否和通用的Schema一致。若一致就进行后续处理,不一致就检查是否有相应的XSLT文件。如果有,就用该XSLT文档将通用的XML文档转化为符合接收方Schema的格式;如果没有相应的XSLT,则需要用XML文档的映射器生成一个XSLT文档,将通用的XML文档转化为符合接收方Schema的格式。
(4)XML-based转换器:主要完成XML数据模式与其它相应数据模式(关系模式、HTML文档、文本文件等)的转换。
利用XML文档作为中间文件的数据集成,必须实现数据库和XML文档之间的双向转换。两者转换的实质是,XML文档中的数据(可以是内容、属性值、元素名等)与关系模式中字段的映射,XML文档中数据的相互位置的关系与关系模式中元组与元组的关系及元组与字段的关系的映射。本文采用模型驱动方法实现相互映射,它将XML文档中的数据视为特定的对象树模型。在这个模型中,元素及其类型、元素内容或混合内容(复合元素类型)通常被视为类,只具有文本内容的元素(简单元素类型)、属性以及文本都被当作简单属性,然后借助于传统的对象一关系映射技术将XML文档映射成关系数据库。
(5)XML-based封装器:把经过处理后得到的数据按一定的规则转化为XML文件,并将该XML采用SOAP格式进行封装。
(6)数据处理器:直接与数据库及其他信息系统进行交互。
3 实现
针对该系统的特点,采用如下的开发环境。
应用服务器采用Apache组织的Tomcat。Tomcat在本应用系统中有两个作用:其一是作为企业内部MIS系统的Web服务器,其二是提供Web Service功能。
开发工具选择Java进行应用系统的开发。Java需要另外的开发包支持,这里选的是JWSDP,它内部已经整合了开发Web Service及客户端的工具。
开发平台选用Windows系统。基于Java优秀的跨平台性,Web Service也能很方便地部署到其他的操作平台。
4 结束语
通过对当前各种数据集成策略的比较,以及对XML技术、Web服务技术的研究,本文提出了基于XML的异构数据集成框架,并对其内部结构进行了详细说明。该框架采用星型拓扑结构,便于对数据集中管理,实施时可以在数据交换中心制定一套统一的安全管理策略。数据交换发生在中心节点上,该节点接收来自各个企业的数据,解析接收到的数据并按数据交换目的地所识别的格式进行转换,然后发送到目的地。通过数据交换中心节点,可以在数据源和目的地之间建立一个透明的安全数据通道。
关键词:数据集成;XML;关系模式;映射
0 引言
企业信息化的逐步深入,使得任何一个独立的信息持有或使用单位都有可能成为一个异构的数据源。与此同时,企业又需要访问各种异构数据源,来加强战略伙伴之间的合作关系,对资源进行集成和协调,快速响应市场需求,提高自身竞争力。为此,必须要有一种系统能够支持异构数据源的数据集成。
数据集成即是把不同来源、格式、特点、性质的异构数据在逻辑上或物理上有机地集中起来,为用户提供全面的数据共享。在企业数据集成领域,已经有了很多成熟的框架可以利用。目前通常采用联邦数据库系统(Federated Database System,FDBS)、中介系统(Mediation System)和数据仓库(Data Warehouse)等方法来构造集成系统,这些框架在不同的侧重点和应用上解决了数据共享问题,本文研究了目前国内外数据集成策略以及相关应用技术,在此基础上提出了一种基于XML(eXtensible Markup Language,可扩展标记语言)、B/S三层架构,建立数据交换中心的总体解决方案,并结合相关的Java技术实现了其系统原型。
1 相关技术简介
1.1 XML技术
XML是由W3C(World Wide Web Consortium,万维网联盟)定义的一种语言,它是SGML(Standard Generalized Markup Language,标准通用标记语言)的一个简化子集。XML文件是由标记及其所标记的内容构成的文本文件。与HTML(HyperText Markup Language,超文本标记语言)文件不同的是,这些标记可由用户自定义,使得XML文件能够很好地体现数据的结构和含义。WBC推出XML的主要目的是使Intenet网络上的数据相互交流更方便,让文件的内容更加简明易懂。
作为表示结构化数据的行业标准,XML具有许多特点,如可扩展性、自描述性等等,非常适合用于企业间异构数据的集成。
1.2 Web服务
为了在数据的发送方和接收方之间建立一个通道,需要有一种能够跨平台、跨语言的协议或组件,它能够使用XML来描述和包装需交换的数据或对象内容,以使得各种平台的数据和对象都能通过同一个标准进行传输。HTTP(HyperText Trans-fer Protocol,超文本传输协议)和SOAP(simple Object Ac-tess Protocol,简单对象访问协议)正是这样一种协议。
HTTP是ISO/OSI开发系统互联参考模型的应用层协议,采用请求,响应方式传送WWW的数据。SOAP是一种轻量级协议,用于在分散型、分布式环境中交换结构化信息。SOAP利用XML技术定义一种可扩展的消息处理框架,并提供了一种可通过多种底层协议进行交换的消息结构(如图1所示)。这种框架独立于任何一种特定的编程模型和其他特定实现的语义。
2 基于XML的企业间信息集成框架
2.1整体解决方案
系统在整体结构上采用“数据交换中心”的思想来解决不同企业应用系统之间的协同问题。通过采用统一的数据交换标准,使各应用系统与数据交换中心相连,利用数据交换中心来实现数据共享和路由。由于隔离了数据存储层和应用层,应用与其底层的数据结构和存储方式无关,从而不需要对原有业务系统进行改造,也不需要对已有的业务流程重新开发。这种连接方式实现了数据的无缝集成和共享访问,既保证了各业务系统的有效协同,同时又保证了各应用系统的相互独立性和低耦合性,从整体上提高了系统运作的高效性和安全性。
基于数据安全性、系统性能、系统扩展性和实施难度等方面的考虑,整个体系结构在物理拓扑上采用星型结构(如图2所示)。
根据以上拓扑结构,结合异构数据交换需求和现有技术的可行性,考虑采用基于Web服务的数据交换模式来实现异构数据集成。基于Web服务的数据交换模式独立于所有的参与者,可以很好地实现数据的实时性和完整性,能更好地屏蔽企业的内部数据(具体的数据处理由企业的业务逻辑来决定)。更重要的是,它是一种高度松散耦合的交换方式,参与数据交换的任何一方修改了其业务逻辑或数据格式,所影响的只是它本身,共享的方法屏蔽了所有的外部改变。
2.2框架结构
数据交换中心之所以能够交换基于不同操作平台和数据库的数据,主要得益于其对信息的统一表示、完整的消息服务能力以及功能完备的交换平台软件系统。信息的统一表示依靠元语言标准、信息标准、元数据标准、显示标准、解析标准、转换标准和封装标准来保证。完整的消息服务能力依靠信息的统一封装、统一编址、信息的可靠性传输、路由管理等技术手段实现。交换平台软件系统一般采用基于基础/中心数据库的数据交换、消息中间件服务器等技术方式。
以下给出该数据交换中心节点及企业终端节点的框架结构(如图3所示),并对各模块功能予以说明。
(1)数据操作引擎:它是负责接收和发送XML数据的平台。实现接收功能的部分实际上是一些监听组件,监听并接收来自数据交换节点传入的数据;实现发送功能的部分是通过各种传输协议来把XML数据发送到指定目标地址。
(2)XML解析器:主要完成XML模式的确认,即测试文档是否符合施加到其文档类型之上的约束条件。分析该XML文档的语法和格式是否正确,以确保在传输过程中没有数据丢失和错误。分析企业所用的Schema是否和交换中心使用的Schema一致,如果不一致,则需要进行映射处理。
(3)XML映射器:当企业所用的Schema和交换中心使用的Schema不一致的时候,将用到该功能模块。它首先检查是否有相应的XSLT(可扩展样式表语言)文件。如果有,则直接按该文件的规则把企业的XML转换为标准格式的XML文件;如果没有,则从企业用的Schema中提取出对应的数据格式和数据类型以及字段名,根据业务规则把标准Schema中对应的数据格式、数据类型以及字段名一一映射,系统将按此生成一个XSLT文件并用此文件进行映射。
以企业间完成一次数据交换为例,XML解析器与XML映射器进行的数据解析过程描述如下。
步骤1:XML检查器首先检查在数据交换中心服务器上是否有发送方所发送数据类型的Schema文件。如果没有,就提取传入数据的Schema并将此Schema作为发送方对所传送数据 类型的Schema,并转入第3步。
步骤2:如果有,则用该Schema来检查接收到的XML文档是否符合该Schema所规定的结构。如果不符合,则认为发送方的数据结构发生了变化,提取传入数据的Schema并将此Schema作为发送方对所传送数据类型的Schema。
步骤3:检查数据交换中心服务器端是否有该数据类型的通用Schema。如果没有,则将发送方的Schema作为该数据类型的通用Schema,并转入第5步。
步骤4:如果有,则检查通用Schema和发送方的Schema是否一致。如果一致,则转入第5步;如果不一致,则检查是否有相应的XSLT文件。如果有,就用该XSLT文档将接收到的XML文档转化为通用的格式;如果没有相应的XSLT,则需要用XML文档的映射器生成一个XSLT文档,再用该XSLT将接收到的XML文档转化为通用的格式。
步骤5:检查接收方在服务器端是否有所要交互数据类型的Schema文档。如果没有,则以通用Schema作为接收方的Schema文档,并进行后续处理。如果有,就检查该Schema是否和通用的Schema一致。若一致就进行后续处理,不一致就检查是否有相应的XSLT文件。如果有,就用该XSLT文档将通用的XML文档转化为符合接收方Schema的格式;如果没有相应的XSLT,则需要用XML文档的映射器生成一个XSLT文档,将通用的XML文档转化为符合接收方Schema的格式。
(4)XML-based转换器:主要完成XML数据模式与其它相应数据模式(关系模式、HTML文档、文本文件等)的转换。
利用XML文档作为中间文件的数据集成,必须实现数据库和XML文档之间的双向转换。两者转换的实质是,XML文档中的数据(可以是内容、属性值、元素名等)与关系模式中字段的映射,XML文档中数据的相互位置的关系与关系模式中元组与元组的关系及元组与字段的关系的映射。本文采用模型驱动方法实现相互映射,它将XML文档中的数据视为特定的对象树模型。在这个模型中,元素及其类型、元素内容或混合内容(复合元素类型)通常被视为类,只具有文本内容的元素(简单元素类型)、属性以及文本都被当作简单属性,然后借助于传统的对象一关系映射技术将XML文档映射成关系数据库。
(5)XML-based封装器:把经过处理后得到的数据按一定的规则转化为XML文件,并将该XML采用SOAP格式进行封装。
(6)数据处理器:直接与数据库及其他信息系统进行交互。
3 实现
针对该系统的特点,采用如下的开发环境。
应用服务器采用Apache组织的Tomcat。Tomcat在本应用系统中有两个作用:其一是作为企业内部MIS系统的Web服务器,其二是提供Web Service功能。
开发工具选择Java进行应用系统的开发。Java需要另外的开发包支持,这里选的是JWSDP,它内部已经整合了开发Web Service及客户端的工具。
开发平台选用Windows系统。基于Java优秀的跨平台性,Web Service也能很方便地部署到其他的操作平台。
4 结束语
通过对当前各种数据集成策略的比较,以及对XML技术、Web服务技术的研究,本文提出了基于XML的异构数据集成框架,并对其内部结构进行了详细说明。该框架采用星型拓扑结构,便于对数据集中管理,实施时可以在数据交换中心制定一套统一的安全管理策略。数据交换发生在中心节点上,该节点接收来自各个企业的数据,解析接收到的数据并按数据交换目的地所识别的格式进行转换,然后发送到目的地。通过数据交换中心节点,可以在数据源和目的地之间建立一个透明的安全数据通道。