如何让SOA更智能

SOA更智能

用语义级的本体描述语言(OWL)来描述SOA的整个过程,可以提高SOA的自动化程度,以实现服务的自动发现、自动匹配与自动组装。

■ 北京地税个税SOA项目组

SOA是近几年来被频繁提及的概念,它作为一种架构模型,能够帮助系统架构者更迅速、更具有重用性地架构整个业务系统。SOA的核心是“服务”,而 对服务的描述则是其中的最重要的环节之一。实际上,正是通过对服务接口的标准化描述,才使得服务可以提供给异构平台上的用户使用。

目前,服务描述最常用的是一种语法级的描述方法,即基于语法对Web服务特征、接口等进行描述,如WSDL。 不过,随着服务描述研究的发展,现在也出现了一些语义级的描述方法,包括轻量级Web服务能力描述语言SCDL、规范化描述语义Web服务的本体框架 WSMO、基于OWL语言的Web服务本体OWL-S等。本文基于本体描述语言(OWL),探讨如何对SOA中的服务从语义角度进行描述。

OWL描述语言

OWL(Web Ontology Language)是W3C开发的一种网络本体语言,用于对本体进行语义描述。由于OWL是在DAML+OIL 的基础上改进而开发的,所以一方面要保持对DAML+OIL/RDFS的兼容性,另一方面又要保证更加强大的语义表达能力,同时还要保证描述逻辑 (DL,Description Logic)的可判定推理,因此,W3C的设计人员针对各类特征的需求制定了三种相应的OWL的子语言,即OWL Lite、OWL DL和OWL Full,这三种子语言的表达能力递增。

OWL Lite是表达能力最弱的子语言。它是OWL DL的一个子集,但是通过降低OWL DL中的公理约束,保证了迅速高效的推理。因为OWL Lite表达能力较弱,为其开发支持工具要比其他两个子语言容易一些。OWL Lite主要用于提供给那些仅需要一个分类层次和简单约束的用户。

OWL DL(Description Logic,描述逻辑)将可判定推理能力和较强表达能力作为首要目标,而忽略了对RDFS的兼容性。OWL DL包括了OWL语言的所有语言成分,但使用时必须符合一定的约束,受到一定的限制。OWL DL提供了描述逻辑的推理功能,描述逻辑是OWL的形式化基础。

OWL Full包含OWL的全部语言成分并取消了OWL DL中的限制,它将RDFS扩展为一个完备的本体语言,支持那些不需要可计算性保证但需要最强表达能力和完全自由的RDFS用户。在OWL Full中,一个类可以看成是个体的集合,也可以看成是一个个体。由于OWL Full取消了基数限制中对可传递性质的约束,因此不能保证可判定推理。

下面所述方法使用OWL DL来描述SOA中的服务,具有较强的表达能力和可判定推理能力。

 

服务描述的关键要素

 

基于OWL、使用本体(Ontology)对SOA中的服务进行描述,可以从语义角度为实施SOA提供基础支持,同时,还可以使用OWL在此基础之上进一步对SOA中的服务发现、服务匹配和服务组装进行描述。

在对SOA架构服务进行描述时会涉及以下关键要素:

服务(Service): 服务是本文所述本体(ontology)中最基本的概念。比如,个人报税系统中会有登录页面,用户输入ID、密码,系统检查数据库匹配ID、密码,返回验证成功或者验证失败,这就是一个登录服务。

服务提供者和服务消费者: 每个服务都有一个服务提供者,但可能会有多个消费者,产生一个或多个效果(effect)。服务提供者和消费者都是服务参与者(actor)——参与了某个活动。事实上,除了服务提供者和服务消费者还可能有很多其他种类的参与者。

效果(Effect):  服务会产生效果,效果即为服务对消费者产生的价值。在前面所述的登录服务例子中,登录服务产生了一个效果(effect)——登录成功进入系统或者登录失败拒绝进入。

此外,还有信息条目(Information Item)、系统和组合(Composition)等术语,这里不再赘述。

地税对私业务实例

以下结合个人所得税服务管理系统中的信息核对服务实例来解析上述基于OWL的服务描述方法的语义描述能力。

假设用户张三使用信息核对服务,成功核对了个人身份信息。在信息核对服务实例中,假设包含以下子服务: 公安数据交换服务、核心数据交换服务、身份核对服务、车船核对服务、房产核对服务。下面来分别描述各个子服务。

在公安数据交换服务中,公安数据交换系统作为服务的提供者,也是服务的参与者,用户张三作为服务的请求者,也是服 务的参与者。公安数据交换系统“提供”了公安数据交换服务; 张三“消费”了公安数据交换服务。张三使用了公安数据交换服务后,成功完成与公安数据的数据交换,得到身份信息及与纳税人的身份关系,这是公安数据交换服 务的“效果”。

假设在服务页面上有如下提示“请输入18位身份证号”,这就是“information item”,同时“请输入18位身份证号”描述了一个操作步骤,是一种“描述”,它“描述”了下一个步骤。张三在“information item”的提示下输入了自己的身份证号,成功完成公安数据交换,获得了相关的身份信息,成功调用了该子服务。

获得相关个人信息后,身份核对服务开始运行,同样,身份核对系统和张三分别是身份核对服务的提供者和请求者。身份 核对服务运行过程中若有相关提示,如“核对中,请稍候”,该提示即为“information item”,是对核对进行状态的一种描述。核对完成后,系统提示核对成功,于是张三“消费”了身份核对服务,得到了一个身份核对服务的“效果”,即核对成 功,在身份核对服务中,这个“效果”同时也是一种“修改”,即对于身份核对状态的一种改变。

核心数据交换服务、车船核对服务、房产核对服务与上述两服务基本类似,这里不再加以重复描述。

需要说明的是,本文所述服务描述方法中,OWL语言所支持的基数受到限制。在上述例子中体现为,公安数据交换服务 只能有公安数据交换系统一个提供者,身份核对服务也只能有身份核对系统这样一个服务提供者,这由本体(ontology)中对服务的基数限制决定。同样, 公安数据交换服务至少有一个“效果”,即交换成功或者交换失败,本例中交换服务有两个“效果”。

最后,从信息核对服务这个整体来看,这些子服务构成了一个“组合(composition)”,而信息核对服务由这个组合“提供(produce)”。这个组合“has component”身份核对服务,与之相对,身份核对服务“is component of”这个组合。

限于篇幅,此处只是简单地描述了几个服务实例。事实上,本文描述的本体可以作为应用于地税行业SOA的领域本体的核心,并在此基础之上可以使用OWL进一步对SOA中的服务发现、服务匹配、服务组装进行描述,从而完成对SOA整个过程的完整语义描述,以实现服务的自动发现、自动匹配与自动组装。

你可能感兴趣的:(如何让SOA更智能)