引自:http://hi.baidu.com/ferrior/blog/item/8a8419dbc07d1667d0164eb4.html
(一)基本组成
DAML-S 是 OWL-S 的前身。 DAML-S 的 ontology 结构包括 3 部分: Service Profile 、 Process Model 和 Service Grounding 。
Service Profile 描述了 Web 服务的性能和服务提供者信息,类似于 UDDI 中的 WSDL ,但描述信息具有语义。
Process Model 规定了 Web 服务所完成的所有任务、执行任务的顺序以及完成各个任务的结果。 Process Model 的功能类似于 WSCI 和 BPEL4WS(两个语法级别的服务组合方法) ,但是 Process Model 更关注于执行一个服务的不同组件的效果。
Service Grounding 规定了客户端程序或代理如何访问 Web 服务,包括使用的协议、端口以及输入输出的定义等等。
总之, Service Profile 为 Web 服务的发现提供了信息, Process Model 和 Service Grounding 则一同告诉代理如何来使用 Web 服务。
下图 是使用 DAML-S 的 Web 服务构架。如图所示,让 DAML-S 结合已有的 Web 服务构架( SOAP 、 WSDL 、 UDDI )可以实现 Web 服务的发现、执行和组合自动化。
(二)基于DAML-S的服务描述、发现、执行和组合
服务的描述: 使用了DAML-S之后,存储在UDDI注册中心上的Web 服务描述信息就是用DAML-S来描述的了。具体来说是 DAML-S 的 Service Profile 使用 ontology 来描述了 Web 服务的性能及其执行效果。发布时,可以将 Service Profile 和 UDDI 中的 Web 服务描述绑定在一起,即使用 UDDI 的 TModel 对 DAML-S 的服务描述进行编码,然后再存放到UDDI注册中心 。
服务的发现: 服务的发现,本质来说是一个Web 服务描述信息的匹配过程。传统的UDDI注册中心的描述信息存储是基于分类的,发现匹配是基于分类精确匹配的。这样发现的查全率就受到了很大影响。用DAML-S的Service Profile 描述服务之后,注册中心里的服务是基于ontology的,也就是说基于语义的。相应的服务发现也从原来的简单的匹配发展到了基于语义的、带有推理性质的模糊匹配。
整个过程是这样的:首先 UDDI注册中心收到一个Web服务发现请求(包括Web 服务功能描述和可以提供的输入以及期望的输出);然后 将该请求转换成 Service Profile 形式,交给匹配引擎;接着 匹配引擎利用 DAML+OIL 推理机参照 DAML Ontology 库和 Web 服务描述库对进行基于语义的模糊匹配。
服务的执行: 这个没什么说的 DAML-S 使用 Service Grounding 定义了代理该如何访问 Web 服务,包括代理和Web服务之间的交互信息、使用的协议、端口、 服务的输入输出和服务执行时机等。
服务的组合: 这里说的组合是自动组合了。DAML-S 把一个 Web 服务认为是一个 Process 。 服务组合部分使用就是 Process Model部分。Process Model又 由两部分组成: Process Model 和 Process Control Model。其中Process Model 描述了服务组件的操作或者进程,说明了服务规划、组合信息以及代理和服务之间的配合;Process Control Model 则允许代理对服务执行过程进行监控。而且 DAML-S 针对这两部分定义了过程本体( Process Ontology )和过程控制本体( Process Control Ontology )。