以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 Web Services & Semantic Web Services 』  (http://bbs.xml.org.cn/list.asp?boardid=10)
----  自己写了一点WSDL-S的笔记,欢迎大家能够指正、讨论  (http://bbs.xml.org.cn/dispbbs.asp?boardid=10&rootid=&id=31303)


--  作者:csdncannon
--  发布时间:4/26/2006 12:58:00 PM

--  自己写了一点WSDL-S的笔记,欢迎大家能够指正、讨论

全文下载:


为方面大家浏览,以下粘贴出部分正文。
WSDL-S笔记
花两天时间初步看了下WSDL-S,以及IBM发布的一套工具。总体感觉他们对
WSDL的的兼容做得很好,比较照顾工业界的感受。但是对于WSDL的语义扩展很
有限,不过个人感觉效果还是非常好的,还是很让人眼前一亮的。
 
 遗憾也是有的:目前还没有看到他们的WSDL-S的正式的规范,只有一个
叫”Technical Note”的东东,在University of Georgia(http://lsdis.cs.
uga.edu/projects/meteor-s/wsdl-s/)和IBM alphaworks(http://www. alpha
works.ibm.com/ tech/wssem)上只找到一些samples,对于PE中的expression
属性是如何表达的、具体的匹配算法、Mediations如何生成、推理的具体过程、
如何进行服务组装来得到新的匹配结果等等问题,都没有回答,估计他们也是在
探索中的。

WSDL-S的总体思想
1. 构建在目前的Web服务标准之上:
Web服务随着SOA的发展,它的相关标准在工业界也已经被普遍采用,因此
WSDL-S采取了对WSDL向上兼容的方式,使得工业界更容易接纳它。

2. 可以采用不同的语义表达语言来对Web服务进行语义标注:
语义表达语言可以是OWL、WSMO甚至UML。这使得语义标注机制和具体的语
义表达语言分离开来,用户有更多的选择。

3. 支持对Web服务的XML SCHEMA的数据类型进行语义标注:
先来回顾下WSDL2.0,规范中有如下一些XML element:interface、
operation、message、binding、service和endpoint。其中interface、
operation、message是用来定义服务接口的,而binding、service、endpoint
是用来定义具体服务实现的。WSDL-S采取了在前三者中插入一些扩展的XML
element和attribute来达到语义标注的效果,而被标注对象都是XML SCHEMA
中的一些构件。

4. 在Web服务的XML SCHEMA类型和本体(或UML)之间提供丰富的映射机制。比
如某服务的输入和该领域本体的某概念对应,则这种映射关系既可以通过
URI来直接映射到本体中的概念,也可以通过RDF、OWL、XSLT、XQuery等语
言的snippet来表达(后一种方式在IBM发布的例子中并没有看到对应的用
法)。


WSDL-S的IOPE
1. Input && Output
 在Operation的Input和Output所用到的types的定义中,对xs:element和xs:complexType加入了wssem:modelReference和wssem:schemaMapping这两个属性,这两个属性都是optional的。其中xs= http://www.w3.org/2001/XMLSchema , wssem= http://www.ibm.com/xmlns/WebServices/WSSemantics .

在xs:element加入wssem:modelReference示例如下:
<types>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace=" http://www.ourdemos.com/purchaseorder/wsdl/PurchaseOrder/"
xmlns="http://www.ourdemos.com/purchaseorder/wsdl/PurchaseOrder/">
<!—Semantic annotations for these complex types are given in their respective type
definitions>
<xs:complexType name="processPurchaseOrderRequest">
<xs:all>
<xs:element name="billingInfo" type="xs:POBilling"/>
<xs:element name="orderItem" type="xs:POItem"/>
</xs:all>
</xs:complexType>
<!—Semantic annotation is added directly to this leaf element />
<xs:element name= "processPurchaseOrderResponse" type="xs:string
wssem:modelReference="POOntology#OrderConfirmation"/>
</xs:schema>
</types>
此处的wssem:modelReference这个Attribute表明了processPurchaseOrderResponse这个xs:element级别的类型映射到POOntology这个本体中的OrderConfirmation这个概念。同样也可以在xs:complexType中加入wssem:modelReference这个属性,只不过对于类型标注的层次更高一些。此处注意,如果某xs:element有两次语义标注,高层次的complexType处标注的语义会覆盖低层次的element处标注的语义。
在xs:complexType加入wssem:modelReference示例如下:
<?xml version="1.0" encoding="UTF-8"?>
<schema attributeFormDefault="qualified"
elementFormDefault="unqualified"
targetNamespace="http://www.ourdemos.com/purchaseorder/"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:xsd1=http://www.ourdemos.com/purchaseorder/
xmlns:wssem="http://www.ibm.com/xmlns/WebServices/WSSemantics"
xmlns:POOntology="http://www.ibm.com/ontologies/PurchaseOrder.owl">
<include schemaLocation="POAddress.xsd"/>
<include schemaLocation="Account.xsd"/>
<complexType name="POBilling" wssem:modelReference=”POOntology#Billing”>
<all>
<element name="shipToAddress" type="xsd1:POAddress" />
<element name="billToAddress" type="xsd1:POAddress" />
<element name="accountID" type="xsd1:string />"
</all>
</complexType>
</schema>

关于wssem:schemaMapping属性的讨论只在Technical Note的附录中谈到了,我没有具体看过,但是IBM发布的Samples中没有这方面的例子。欢迎大家补充!
在加入wssem:schemaMapping属性的示例:
<?xml version="1.0" encoding="UTF-8"?>
<schema attributeFormDefault="qualified"
elementFormDefault="unqualified"
targetNamespace="http://www.ourdemos.com/purchaseorder/"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:xsd1=”http://www.ourdemos.com/purchaseorder/
xmlns:wssem="http://www.ibm.com/xmlns/WebServices/WSSemantics"
xmlns:POOntology="http://www.ibm.com/ontologies/PurchaseOrder.owl">
<import location="WSSemantics.xsd" namespace="
http://www.ibm.com/xmlns/WebServices/WSSemantics/"/>
<complexType name="POAddress"
wssem:schemaMapping=”http://www.ibm.com/schemaMapping/POAddress.xsl”>
<all>
<element name="recipientInstName" type="string" />
<element name="streetAddr1" type="string" />
<element name="streetAdd2" type="string" />
<element name="city" type="string" />
<element name="state" type="string" />
<element name="zipCode" type="string" />
<element name="country" type="string" />
</all>
</complexType>
</schema>

http://www.ibm.com/schemaMapping/POAddress.xsl
<?xml version='1.0' ?>
<xsl:transform version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<xsl:template match="/">
<Address rdf:ID="Address1">
<has_Receiver rdf:datatype="xs:string">
<xsl:value-of select="POAddress/recepientInstName"/>
<has_StreetAddress rdf:datatype="xs:string">
<xsl:value-of select="concat(POAddress/streetAddr1,POAddress/streetAddr2)"/>
</has_StreetAddress >
<has_City rdf:datatype="xs:string">
<xsl:value-of select="POAddress/city"/>
</has_City>
<has_State rdf:datatype="xs:string">
<xsl:value-of select="POAddress/state"/>
</has_State>
<has_ZipCode rdf:datatype="xs:string">
<xsl:value-of select="POAddress/zipCode"/>
</has_ZipCode>
<has_Country rdf:datatype="xs:string">
<xsl:value-of select="POAddress/country"/>
</has_Country>
</Address>
</xsl:template>
</xsl:transform>


2. Preconditions && Effect
这两种形式的语义是通过在interface的定义中加入两个element:wssem:precondition和wssem:effect来引入的。
<interface name="PurchaseOrder">
<operation name="processPurchaseOrder” pattern=wsdl:in-out>
<input messageLabel = ”processPurchaseOrderRequest"
element="tns:processPurchaseOrderRequest"/>
<output messageLabel ="processPurchaseOrderResponse"
element="processPurchaseOrderResponse"/>
<!—Precondition and effect are added as extensible elements on an operation>
<wssem:precondition name="ExistingAcctPrecond”
wssem:modelReference="POOntology#AccountExists">
<wssem:effect name="ItemReservedEffect"
wssem:modelReference="POOntology#ItemReserved"/>
</operation>
</interface>

wssem:effect和wssem:precondition的expression属性是通过用AND,OR,XOR等来组合一些Statement来得到的。

wssem:precondition的schema的定义:
<xsd:element name=precondition>
<xsd:complexType>
<xsd:complexContent
<xsd:restriction base="xsd:anyType">
<xsd:attribute name=”name” type=”xsd:string” />
<xsd:attribute name="modelReference" type="xsd:anyURI" />
<xsd:attribute name="expression" type="xsd:string" />
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>

wssem:effect 的schema的定义:
<xsd:element name=”effect”>
<xsd:complexType>
<xsd:complexContent
<xsd:restriction base="xsd:anyType">
<xsd:attribute name=”name” type=”xsd:string” />
<xsd:attribute name="modelReference" type="xsd:anyURI" />
<xsd:attribute name="expression" type="xsd:string" />
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>

Semantic Tools for Web Services from IBM && University of Georgia:
一些Flash:
http://www.alphaworks.ibm.com/demo/flash/wssem
提供的一些功能:
1. 一个图形化的WSDL编辑器


2. 在WSDL编辑器的基础上进行语义标注

3. 一个本体导入工具,并显示本体中的分类

4. 两种匹配方式:
 单个服务匹配: 与wsdl目录下的每个服务单独进行匹配,匹配结果为单               
个服务
服务匹配的结果

观察两个服务之间的映射关系:

 组合服务匹配:匹配结果可以是wsdl目录下服务的组合,组合的方式用 BPEL来描述,同时提供一个BPEL的编辑器(这个我的wtp里没出来,log里看出来是某个库没装,也没去弄它了)
服务匹配结果:

我的BPEL的编辑器打不开,只能直接看它的代码了,不过还算容易懂的:
<?xml version="1.0" encoding="ASCII"?>
<process:process xmlns:process="http://schemas.xmlsoap.org/ws/2003/03/business-process/" name="SomeName"><process:partnerLinks/><process:partners/><process:variables/><process:sequence name="SomeSequence"><process:invoke name="invoke-{http://uima.semantica.ibm.com.wsdl/digitalsigningservice/}digitalsigningservice/digitalsigningservice_OBJECT" operation="{http://uima.semantica.ibm.com.wsdl/digitalsigningservice/}digitalsigningservice/digitalsigningservice"/><process:invoke name="invoke-{http://uima.semantica.ibm.com.wsdl/encryptionservice/}encryptionservice/encryptionservice_OBJECT" operation="{http://uima.semantica.ibm.com.wsdl/encryptionservice/}encryptionservice/encryptionservice"/><process:invoke name="invoke-{http://uima.semantica.ibm.com.wsdl/purchaseorderservice/}purchaseorderservice/purchaseorderservice_OBJECT" operation="{http://uima.semantica.ibm.com.wsdl/purchaseorderservice/}purchaseorderservice/purchaseorderservice"/></process:sequence></process:process>
被匹配的服务和匹配出来的组合服务的流程:

[此贴子已经被admin于2007-5-21 23:18:52编辑过]

--  作者:hopeshared
--  发布时间:4/26/2006 5:31:00 PM

--  
呵呵,真巧,我最近也一直在IBM的几个工具上折腾web service和bpel
看了你的文档,首先你提到了对wsdl的扩展的支持,这个我在实践的时候没有考虑太多,相反,我希望生成的wsdl是可以通用的(当然,结果是不通用的,namespace的区别导致的各个工具生成的wsdl不一样)

我没有尝试用wsdl编辑器,只是简单看了看。IBM的工具支持从已有的代码来生成wsdl,所以我就没有研究了。

不知道你用的是什么工具,我用RAD/RSA + WAS来开发web service

但是bpel不能用这两个工具来开发,我现在想说的就是bpel,呵呵,因为我今天学习了一天如何用WID来开发bpel,觉得这套工具很强大,学起来很费劲

bpel的开发环境首选是Websphere Integeration Developer + Websphere Process Server,这两个工具在ibm站点上都没有那种免费版本下载

我用这个工具开发的时候,觉得这个工具给bpel作了太多的扩展。今天我刚学到从接口或者从wsdl中来做service composition

但是现在我碰到了一个问题,我不知道如何在bpel中调用一个远程的web service。在wid中加入需要使用某个web service的话,只能首先得到这个wsdl文件(如果是本地的,可以copy文件,如果是远程的,则根据访问得到的wsdl保存起来)。我觉得在bpel的规范中应该支持远程访问web service的。

目前还是最初的学习阶段,要是有人知道并指点一下就好了!


--  作者:hopeshared
--  发布时间:4/26/2006 5:42:00 PM

--  
我传张用wid开发的一个bpel图上来吧,这是wid的一个示例项目


此主题相关图片如下:
按此在新窗口浏览图片


--  作者:csdncannon
--  发布时间:4/26/2006 6:22:00 PM

--  
感觉你可以另起一个主题了

不知道你的思路是什么样的?

总感觉这些跟sws有关系吗?具体工具的使用,可以去maillist上问吧


--  作者:jlyh930
--  发布时间:5/23/2006 9:02:00 PM

--  
ibm的几个工具到底怎么用啊,我下了SemanticsToolkit-1.1.1.zip 可是不知道怎么用啊,你们的wsdl编辑器是怎么弄得啊,这不是源码吗,怎么安装啊啊,我什么都不懂
--  作者:csdncannon
--  发布时间:5/24/2006 12:44:00 PM

--  
看wtp里面的帮助

以下是引用jlyh930在2006-5-23 21:02:00的发言:
ibm的几个工具到底怎么用啊,我下了SemanticsToolkit-1.1.1.zip 可是不知道怎么用啊,你们的wsdl编辑器是怎么弄得啊,这不是源码吗,怎么安装啊啊,我什么都不懂


--  作者:csdncannon
--  发布时间:5/30/2006 10:56:00 AM

--  

wsdl-s匹配算法的描述


--  作者:jlyh930
--  发布时间:6/7/2006 8:41:00 PM

--  
我看了但是在eclipse中安装还是遇到了很多的麻烦,请问搂住可以指教小你装的是那个eclipse 的版本用了那些配置啊,我还没有搞定啊,我的qq:65600955 (你加我吧,和你一起讨论学写下怎样, 准明 wsdl-s哦 呵呵)
--  作者:liushuo
--  发布时间:6/16/2006 4:04:00 PM

--  
请问文章中"语义标注机制"和"语义表达"分别是什么意思,能告诉我英文词吗?
--  作者:timothy
--  发布时间:5/21/2007 11:00:00 AM

--  
我也在做这方面的!
      可是找不到工具啊!!!!
     Websphere Integeration Developer v601根本就下载不了啊 !!!

谁能帮帮我???


--  作者:tj-figo
--  发布时间:5/21/2007 8:02:00 PM

--  
现在在WSDL-S的基础上,已经有了Draft了,就是SAWSDL,我最近也在看,大家不妨讨论一下。觉得比OWL-S的要简单一些。
--  作者:edwardxh2009
--  发布时间:12/23/2009 8:32:00 PM

--  
你好,看了你的笔记觉得很好,但是却不能下载,所以想请您发一份到我的QQ邮箱:79668157@qq.com,谢谢!
--  作者:yuchao8023
--  发布时间:3/22/2010 9:45:00 PM

--  
现在IBM的官网上面是不已经下不到Semantic Tools for Web Services,这些工具了,只能下WID
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
156.250ms