供应链信息主动集成技术的研究

时间:2022-10-15 01:04:03

供应链信息主动集成技术的研究

摘要:传统的供应链信息集成只是实现了供应链企业间信息的传递与共享,供应链各结点企业之间的联接、合作、设计、竞争策略等方面良好的协调是集成化供应链管理的关键。因此需要供应链企业主动获取供应链合作伙伴的信息。

关键词:供应链;XML;主动集成;动态检索;XQuery

中图分类号:TP311文献标识码:A 文章编号:1009-3044(2010)21-5804-02

Supply Chain Initiative to Integrate Information Technology Research

SUN Wei

(Jiangsu Food Science College, Huai'an 223003, China)

Abstract: The traditional supply chain information integration between enterprises is realized, and sharing information transmission chain of each node connected between enterprises, cooperation, the design, the competition strategy, coordinate the supply chain management is the key. Therefore need to supply chain enterprises to get a supply chain partner information.

Key words: supply chain; XML; proactive integration; dynamic retrieval; XQuery

1 基于XML的动态检索技术分析

基于XML的动态检索技术需检索合作伙伴的信息系统,也就是对RDB进行检索。由于市场竞争及信息安全的需要,核心企业通常不会开放自己的关系数据库。因此,用户必须通过XML视图而来间接读取关系数据库。

XML动态检索早期的检索方式是,首先把企业的各种信息转换成对应的XML视图,然后查询XML进行视图检索得到结果。这种检索方式不能动态反映信息的变化,而且转换频繁,工作量大,因为它的转换方法是基于RDB和XML视图的转换算法,是在静态转换基础上实现检索的。

采用了动态检索机制的供应链信息集成技术,是将XML查询语言XQuery转换为SQL语言,然后通过SQL语言直接对RDB进行检索。同时,从XQuery中提取的检索标记结构,形成XML格式检索结果,从而实现直接对关系数据库的动态检索。这种检索过程对于企业用户来说是透明的,就好像用户自己在操纵XML视图。

XQuery是一种XML的查询语言。一句经典的话来形容XQuery,即“XQuery之于XML就象SQL之于数据库中的表”。XQuery提供名为FLWOR表达式的特性,支持迭代及变量与中间结果的绑定。这类表达式对连接2个或多个文档的计算、重构数据都很有用。

从FLWOR表达式我们可以看出其结构很像SQL的select语句,因而可以很自然地建立它们之间的对应关系。其中for部分相当于SQL中的from关键字,where部分相当于SQL中的where关键字,order by部分相当于SQL中的order by关键字,return部分相当于SQL中select关键字。虽然SQL中没有与FLWOR表达式中let的直接对应关系,但“let $a=路径表达式”相当于将路径表达式对应结点与变量a绑定,在select语句中直接用路径表达式对应的结点就可以了。图1是一个简单的XQuery到SQL的映射:

由于数据在XML模式和关系模式中的组织结构不同,两种模式需要通过模式映射来建立联系,因此XQuery到SQL的查询转换受限于所采用的模式映射策略。从XQuery到SQL的转换结构如图2所示。

模式映射模块记录了关系数据库与XML模式间的对应关系,查询转换模块里的转换算法则可以根据模式映射模块中的信息做适当的转换。当用户查询核心企业的信息,首先要根据用户的XML Schema生成一个XQuery查询语句,查询转换模块将会根据映射模块的信息来执行转换机制,将XQuery查询转换成一个相同语义的SQL查询,在关系数据库上执行此SQL查询,并将返回结果转换为XML格式的数据。

2 模式映射模块

XQuery语句操作的对象是XML文档中的元素或属性,SQL语句操作的对象是关系模式的字段或关系表。在这两种语句的转换过程中,必要的模式映射信息主要有:XML模式中的某个元素是映射到关系模式的表还是字段。不同的模式策略,就需用不同的构造方法获取信息。

因此,模式映射模块要屏蔽XML模式与关系模式之间的映射,为查询转换模块提供一个透明的模式映射操作接口,没有必要考虑具体采用的是何种模式映射策略。这里,模式映射模块主要由模式映射库和操作接口两部分组成:

2.1 模式映射库

XML模式定义在XML Schema文件中,因此需要对Schema文件进行解析,并且将其映射到关系模式。映射信息会按照一定的规范存储到模式映射库,产生的关系模式中的表、表的结构等信息同样也都会存储在模式映射库。

同时在映射库上还要定义模式映射接口,这样在进行查询转换时只用这些定义好的操作接口,而不用考虑下层采用的是何种模式映射策略了。不同的模式映射策略,模式解析策略也是不同的。若用户希望采用某种特定的模式映射策略,就必需根据需要实现该模块。

2.2 操作接口

为了使用户可以较方便地通过操作接口获得模式映射库中的信息,从而实现自定义的模式解析。操作接口需要在模式映射库上提取的一系列的公共操作接口,查询转换模块是这些接口的主要调用者。操作接口主要用来获取关系模式、XML模式、以及它们之间的映射信息。

由于XQuery中需要使用XPath表达式,因此要提供接口,用于实现XQuery的XPath路径表达式翻译成一些SQL表达式。在这一接口中,要定义数组变量XPath用于存储解析XQuery得到的多条路径,数组变量SQL存储转换结果。查询转换模块调用通过此接口可以实现XPath路径表达式到SQL表达式的转换。

因此,模式映射模块将基于特定模式映射策略的模式信息抽取出来,存储到模式映射库;同时定义一系列的操作接口,让调用者可以透明地访问需要的模式映射,这为实现查询转换模块的模式映射策略无关化奠定了基础。

3 查询转换模块

查询转换模块主要用于根据模式映射模块提供的信息把XQuery查询语句等价转换成对应SQL语句,其中包括XQuery查询语句的解析、绑定变量树的构造和SQL表达式组合成完整SQL语句。查询转换模块由以下三个子模块组成:

3.1 XQuery解析

XQuery解析主要依据XQuery表达式的语法,对用户所输入的XQuery查询语句进行词法分析和语法分析,生成相应的抽象语法树以进一步构造绑定变量树。

想实现对输入的XQuery查询语句的结构进行识别,就必须设计出相应的词法分析器。词法分析器的设计与实现是一件非常艰巨的任务,可以借助现有的编译器自动生成工具生成词法分析器。在使用这些生成工具的时候,不需要考虑分析器的具体实现细节,只需要提供用正规式描述的单词符号的词法规则就可以了。

上一篇:《Painter》课程教学探析 下一篇:“白云教育”在线考试系统的设计与实现