运用语义整合技术 四步骤改进SOA

日期: 2010-04-05 来源:TechTarget中国 英文

  回顾NASA(美国国家航空航天管理局,以下简称美国航天局)从多个方面整合数据的成效,Ames研究中心智能系统部门信息共享与整合组的负责人Richard Keller并不能感到满意。美国航天局希望在探索任务中加入数据的采集工作,包括样本数据、照片、声音记录和GPS(全球定位系统)信息,并将这些数据与卫星图、GIS(地理信息系统)数据及在样本数据中发现的特征信息等进行整合。

  “这不仅仅需要采集各种各样的信息,而且还要求这些数据能够以各种格式保存,从表单文件到SQL数据库或者网页。”Richard Keller表达了他的期望。但数据采集工作仅仅是开头。一旦Keller得到了这些信息,他还需要判断这些以不同格式保存的数据之间有什么样的关系。

  “如果你在两个不同的数据库中,都有一个名为‘temp’的字段,那么假设它们都代表同样的意思,具有同样的单位,可以直接进行整合,这是否合情合理呢?”Keller说,“实际上,它们可能一个代表‘温度’,而另一个则意味着‘临时’的取值。所以,为了恰如其分地合并这两个字段,你不得不完全理解这些数据的真实含义。”

  在NASA和其他大型机构——不管是政府部门还是企业,整合各种数据都面临着很大的挑战,但是为了能够方便地在内部或者与外部的合作伙伴共享信息,这又是一个不得不面对的问题。数据整合的挑战也是NASA及其他很多大型机构转为使用具有语义整合能力的SOA的一个重要原因。SOA由能够通过网络提供相互操作性能力的各种服务组成。尽管SOA以业务为中心的特性能够激发人们的热情,但它能够让网络服务的整合与动态选择成为可能,这一特点让无数人产生了浓厚的兴趣。这就让语义技术有了用武之地,它能够用尽可能接近自然语言的模型来处理各种如生物学和经济学一样的专业问题。

  语义技术

  具有内置推理能力的SOA平台,能够帮助企业迅速作出决策,这是基于其服务能力和根据预定义条件获取相关信息的。从SOA本身而言,它并不具备这种能力,但加上语义技术的帮助,能够充分地发挥出彼此的特长,帮助企业作出准确及时的决策。

  语义整合技术是基于底层可靠的服务和数据来作出判断的。然而,这些技术目前还没有完全发展成熟。Progress Software公司的DataXtend Semantic Integrator等工具可以使用普通数据模型追踪这个问题,并验证数据交换的可靠性。

  支持本体论的SOA

  所谓语义整合技术,就是要在各种纷繁复杂的原始数据中找出其共同具有的匹配模式。如果能够做到这一点,那么就可以将这种模式定义为一个原模型,然后将几个原模型根据它们之间的关系连接起来。一种先进的语义整合方法就是Ontology(本体论)。本体论是对一个领域的结构化表述——用它我们可以处理如生物学或者经济学之类的专业领域问题——其表述的基础是面向对象的类及各种类之间的相互关系,这些类和关系可以使用基于XML的网络本体论语言来定义。

  使用本体论,任何一个领域都可以被划分为各种类,然后再描述这些类之间的相互关系。支持本体论的SOA将这一建模技术进行了扩展,在SOA的各种服务之上建立了一个层模型,其中包含了与服务域相对应的各种本体论类。这些对应关系是在建立本体论的设计阶段就确定的,然后在运行的时候通过服务请求的语义相似性实现。这里面还用到了策略思想,用来建立查找语义相似性的逻辑。

  要建立支持本体论的SOA,有以下四个步骤:

  第一步:分析业务流程。

  业务流程通常都包含一系列基于条件的任务执行。这些条件可能需要语义能力来展现其智能化的路由选择。我们将这些地方定义为“可变点”,或者是需要推理能力来实现语义特性的区域。

  每个任务可能都具有几个可变因素,或者对于每个可变因素,都可能具有多个可能的取值。而且未来的业务需求可能会引入新的可变因素,或者已有可变因素有新的取值可能。例如,早期人们认为物理形态只有固态和液态两种,而随着科学的发展,人们才逐渐认可了气态是另一种物理形态。因此,在定义本体论模型时,每一个变量都对应一个数据字典,可以不断地进行扩展,以保证能够满足未来新的业务需求。

  第二步:建立本体论模型。

  本体论是用术语概念和关系来定义。本体论的概念实现为类。本体论中的关系被定义为术语的“对象属性”和“数据类型属性”。从可变点组件到本体论模型中元素的映射,能够帮助建立其本体论模型。

  要准确地识别出业务流程中的任务和可变点,从而最终将它们映射为本体论模型中的元素,建立起有用的模型,必须要有足够的业务知识。开源的本体论建模编辑器和基于知识模型的框架工具,如Protege可以用于本体论建模。

  第三步:创建上下文相关的参与者。

  接下来要做的是,创建运行时的组件,它们在执行时按照条件调用本体论模型中的元素,并根据上下文具体条件执行不同的分支。实现这一点的一种方式是使用基于Java语言的技术。使用业务流程执行语言(BPEL)和模块的概念,业务流程会被封装为一个线性流程。而使用本体论的运行时组件则映射为决定正确服务调用的端点。

  通过定义“策略”和“断言”,能够实现充分的语义特性。“策略”会决定流程的可用性,并决定端点调用的服务,定义哪个地方可以使用什么服务。“断言”包含了本体论中映射的所有可能变量取值。运行时对包含端点的判断是基于“断言”与“策略”二者之间的最佳匹配原则的。

  第四步:实现网络服务。

  网络服务提供最终的业务服务。他们是最终的执行点,包含了实际的业务功能。作用于网络服务的策略,是需要包含新服务端点任务的必要组成部分。

  改进SOA实施

  语义整合被用于各行各业,例如金融服务行业和医疗药品行业,而作为支持本体论的语义整合,其应用范围会更加广泛。我们将建立的支持本体论的SOA体系结构应用在了一个典型的业务领域——禁毒。所有的禁毒活动都需要化学和生物样品,这些样品的管理包括了获取、注册、保存和分发。我们的本体论模型通过动态地调用不同的网络服务实现了对样品获取活动的支持。

  这个系统大致是这样的:一个研究员请求样品(上面的第一步),这个请求发出了一个BPEL过程(第二步),其中,这个业务流程模型的BPEL引擎包括了对一个上下文相关调用的请求(第三步),然后这个调用会与本体论模型引擎相互作用,并根据条件查询相关的“断言”和“策略”。结果会根据具体条件选择适当的网络服务执行(第四步)。

  通过将专业业务领域的流程建模为工作流,并同时建立业务流程模型和本体论模型,本体论可以用来实现语义整合。本体论模型中的类和关系可以基于专业领域的知识和业务流程创建。

  如果基于本体论的SOA实现得不好,随着时间的推移,它可能会变得越来越复杂,而且难以维护。但如果实现得好,用本体论创建智能软件代理就会是一种非常好的方法,能够帮助实现对用户友好度很强的软件,帮助企业用户更好地作出准确及时的决策,加速企业内外部信息的共享。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐