當前位置:工程項目OA系統(tǒng) > 泛普各地 > 河北O(jiān)A系統(tǒng) > 石家莊OA系統(tǒng) > 石家莊OA信息化
管理結(jié)構式Web服務元數(shù)據(jù)
管理結(jié)構式Web服務元數(shù)據(jù)
-- 管理Web服務元數(shù)據(jù)的現(xiàn)狀
Uche Ogbuji (uche.ogbuji@fourthought.com)
首席顧問,F(xiàn)ourthought, Inc.
2002 年 4 月
本文是建立在以前發(fā)表在 developerWorks 上的一篇介紹使用資源描述框架(Resource Description
Framework,RDF)來強化 WSDL 的文章的基礎之上,并與最近的一篇關于 SOAP 和 RDF 一起使用的文章有關。Uche Ogbuji 著眼于
WSDL 的更新對以前介紹過的技術造成的影響,他還提到了有關 RDF 和 Web
服務描述的重要討論以向開發(fā)者展示如何發(fā)揮兩者的優(yōu)勢。
大約一年半以前,我仔細研究了當時剛宣布的 Web 服務描述語言(Web Services
Description Language,WSDL)如何從與 Web
元數(shù)據(jù)格式(RDF)交互(或者在標準層次上,或者在單獨的開發(fā)人員工作的層次上)中獲益。自從那時起,Web 服務社團和 RDF(以及 Semantic
web)社團中就一直有很多活動。這當中有些很好,如這些組織之間的對話已經(jīng)定型,雙方提出的技術也得到了改進。但也有不好的,如出版界莫名其妙地想象了 Web
服務陣營和 Semantic Web 陣營之間在 W3C
發(fā)生的一場臆想的爭斗,雙方為該聯(lián)盟的資源而戰(zhàn)。所有這些進展都是對下一代技術的開發(fā)與交互的深刻認識。但在本文中,我只討論開發(fā)者感興趣的最重要的進展。
對標準的更新
過去的一年中對標準進行了大量更改。WSDL 已經(jīng)更新至版本
1.1,作為 W3C 備忘錄發(fā)布,并是新的 W3C Web 服務描述工作組( W3C Web Services Activity
的一部分)的工作起點。該工作組已經(jīng)發(fā)布了草案需求和用例,其中有一條非常有趣的要求格外引人注目,這就是被標為“必須(MUST)”的 DR070:
憲章:工作組將提供到 RDF 的映射,以便被描述的信息很容易同其它應用程序的信息合并。該映射將在 RDF Interest
Group 的幫助下開發(fā)。
這帶來了好消息,總有一天 WSDL 和 RDF 之間會有標準映射。與 1.0 文檔相比,WSDL 1.1
中在技術方面幾乎沒有重要的更改,大部分是印刷錯誤更正和對當時用到的最新版本的 W3C XML Schema 的更新。
然而,隨著 W3C 的 Semantic Web 活動蓬勃發(fā)展,RDF 發(fā)生了重要的更改。最近的 RDF 模型理論和 RDF/XML 語法規(guī)范推動我對曾經(jīng)采用的 WSDL 映射到 RDF 的方法進行了更改。還需要考慮一些其它因素。尤其是 Eric Prud'hommeaux 不采用我自己的機械的映射方法,而是一直在試圖通過建立 WSDL 元素背后底層意圖的映射來改進我的方法。當然,對于常規(guī)的 RDF 集成,這樣的映射更有用,而且人們希望映射可以“豐富”到可以為 Web 服務描述工作組(Web services description working group)所接受。但是,對于自己的方法,我還有一個特殊目的:提供足夠簡單而且適合非 RDF 類型的映射,并盡可能與 XML 的標識轉(zhuǎn)化相似。
隨著 Web 服務和 RDF 陣營之間的合作越來越多,這樣一種機械映射不再非常必要,因此,我將更多的著眼于開發(fā)者的前景。
您更新映射了嗎?
開始是我把滑雪板運動者保險 Web 服務的 WSDL 映射到 RDF,后來 Eric
Prud'hommeaux's 進行了更新,清單 1 是我再次的更新。
清單 1:更新后的 RDF
中的滑雪板保險服務
<xi:include parse="text"
href="endorsement-services.rdf"/>
為了代碼更加簡單明了,我使用了
XML 通用實體。簡潔起見,我還略去了 SOAP 錯誤消息規(guī)范,并修改了一些用到的名稱空間(例如,更新 XSD 名稱空間)。仍是為了簡潔,我使用的 RDF
類型分別與每個資源在描述中所使用 WSDL 元素名相對應。
任何映射解決的問題都包括 WSDL 的命名方法。對于描述來說,WSDL 功能的名稱不一定是唯一的;端口類型可以取與服務相同的名稱。WSDL 可以根據(jù)上下文自己分辨這一點,但是這令人困惑而且容易出錯。RDF 的好處就在于它迫使人們考慮清楚標識;在這一映射中,由一種方便的標記法來命名。全球唯一的 URI 提供實際的標識,雖然 URI 要向 RDF 軟件提供重要的錨點,但卻不需要讓 WSDL 軟件看到或理會。事實上,這些標識符可以由映射軟件生成為基于隨機數(shù)的全局唯一標識符(universally-unique identifiers,UUID)。
各種建模中常見的一個問題是,如何處理一起使用并且由相同的通用名來表示的屬性和類。例如,在上面的 WSDL 映射中,消息與其部件之間的關系被稱為 <wsdl:part>,這夠自然的了,而該屬性值的類,則被稱為 <wsdl:Part>,這也是很自然的。但這有點糟糕,因為它是通過語法方面的細節(jié)來排除模棱兩可的(也就是說,只能通過 RDF 和大多數(shù)語言中的大小寫來分辨 URI )。但是,我認為,在這種情況下,最好通過自然命名方法來解決這一問題,而不是耍命名的把戲。
在一種情況下,這樣的映射為了清晰而扭曲了這種命名方法:綁定與其相關操作(被命名為 <wsdl:operation>)的綁定細節(jié)之間的關系,以及未命名的內(nèi)聯(lián)資源所表示的該種細節(jié)與抽象的操作定義(來自 WSDL <operation> 元素)之間的關系。后者被命名為 <wsdl:abstractOperation> 以強調(diào)這兩種關系完全不同的概念意義。WSDL 綁定的其余語句并不符合最初的 WSDL 語法所提議的直接方式,因為我曾嘗試通過仔細閱讀規(guī)范中對綁定元素的描述,來尋找最能抓住概念背后的意義的表達。
雖然這是很值得費些功夫的重要任務,但最終我并沒有把元素模式定義分解成低級描述,而是提取每個元素的內(nèi)容模型作為整段文字模式(literal schema),該模式是用 <rdf:parseType=Literal> 編碼的。由于 RDF 1.0 中對 RDF 文本對象的文字內(nèi)容的規(guī)定非常不完整,所以傳統(tǒng)觀點一直認為這是一種危險的做法,但是 RDF 核心工作組已經(jīng)在 XML 典范和信息集工作組(XML canonicalization and infoset working groups)工作的基礎之上對這一規(guī)范進行了非常重要修訂工作。
把這些內(nèi)容用于實際
對于開發(fā)者來說,這一 RDF
映射的直接好處在于能夠把任意數(shù)目的這類 WSDL/RDF 描述聚集到數(shù)據(jù)庫并進行全局查詢。作為這樣的一個示例,我已經(jīng)把它放在了我的在線 RDF
查詢演示接口(清單 1 中的 RDF)中,還有我為問題跟蹤器 Web 服務所寫的 WSDL/RDF 描述,這個服務是我在最近的 SOAP/RDF
文章中討論過的。現(xiàn)在如果試驗這些查詢,您將會得到普通的三元組(triple)或者甚至是圖(graph)。讓我們看一些樣本查詢,開發(fā)者可能會發(fā)現(xiàn)這些查詢有所幫助。
消息調(diào)度
事實上,您可以使用這一 RDF
描述編寫可以靈活調(diào)度代碼的驅(qū)動程序。您可以添加表示對 Web 服務本身的抽象的 RDF 資源。然后把與這一資源有關的語句添加到 WSDL
描述及實現(xiàn)它的編程模塊。請參閱清單 2 中提供的代碼片斷示例。
清單 2:抽象的“參保的滑雪板運動者”web 服務的 RDF 描述
<wsdl:Service rdf:about="http://snowboard-info.com/EndorsementSearch">
<wsdl:description
rdf:resource="&sb;EndorsementSearchDef"/>
<wsdl:implementation>
com.snowboard-info.EndorsementSearch
</wsdl:implementation>
</wsdl:Service>
正如 WSDL 中規(guī)定的,這是 HTTP Web 服務,也許是眾多服務之一。每當消息傳入服務的托管服務器時,我們可以從 HTTP 協(xié)議實現(xiàn)中獲得 SOAP 端點和 SOAPAction ,并迅速獲取諸如根元素名稱空間和本地名稱等細節(jié)。接著,如果要執(zhí)行請求,您可以裝入包括下列查詢的那個模塊:
請查找實現(xiàn) Web 服務的代碼模塊,該 Web 服務的描述指定 SOAP 動作和端點為 http://snowboard-info.com/EndorsementSearch、文檔元素名稱空間為 http://snowboard-info.com、名稱為
GetEndorsingBoarder。
可以使用 Versa(一種 RDF 查詢語言)來實現(xiàn)這一查詢,如清單 3 所示。
清單 3:給定進入的 Web 服務請求條件,從資源庫中檢索代碼模塊的一個 Versa 查詢
1 $port = filter(
2
type(wsdl:Port),
3
".-soap:address->eq(@'http://snowboard-info.com/EndorsementSearch')",
4
".-wsdl:binding->*
5
-wsdl:operation->*
6
-wsdl:soapAction->eq(@'http://snowboard-info.com/EndorsementSearch')",
7
".-wsdl:binding->*
8
-wsdl:operation->*
9
-wsdl:abstractOperation->*
10
-wsdl:input->*
11
-wsdl:part->*
12
-wsdl:element->*
13
-xsd:name->eq('GetEndorsingBoarder')",
14
".-wsdl:binding->*
15
-wsdl:operation->*
16
-wsdl:abstractOperation->*
17
-wsdl:input->*
18
-wsdl:part->*
19
-wsdl:element->*
20
-xsd:namespace->eq(@'http://snowboard-info.com')"
21 );
22
23
((($port<-wsdl:port-*)<-wsdl:service-*)<-wsdl:description-*)
24
-wsdl:implementation->*
這只是介紹了 Versa 的一點皮毛,總體上,它是一種非常簡單的查詢語言(請參閱參考資料尋找教程的鏈接)。為了使解釋脈絡清楚,我給每行都標上了數(shù)字。第 1 行開始變量賦值(一直延至第 21 行)。我隨意使用了一些空格以加強可讀性。Versa 的核心遍歷表達式允許您遍歷 RDF 圖。
$foo - a:predicate -> *
這是向前的遍歷,它按照謂詞(a:predicate)從給定的主語 foo 檢索模型中的所有可以以這種方式找到的賓語。您可以用布爾表達式(比如 eq("bar"))替換 * 字符來進一步細化結(jié)果賓語,這樣就只能與文字為 bar 的字符串匹配。接下來,您可以象下面這樣把結(jié)果賓語用作鏈狀遍歷表達式的起點:
$start-wsdl:binding->*
-wsdl:operation->*
-wsdl:soapAction->eq(@'http://snowboard-info.com/EndorsementSearch')
只要這些動作是帶 URL http://snowboard-info.com/EndorsementSearch 的資源,就可以這樣檢索起始資源的綁定操作的所有 SOAP 動作。Versa 中資源可以寫成限定名(<wsdl:binding>),或者把資源 URI 放在引號中,并在前面加上一個 @ 字符(例如,@'http://schemas.xmlsoap.org/wsdl/')。
您也可以以謂詞的相反方向進行遍歷,也就是說,使用一個回退遍歷,從主語到賓語:
$foo <- a:predicate - *
當您從定義過的 $port 變量回退到與它間接相關的抽象 Web 服務資源時,您將會看到清單 3 中第 23 行的這個動作。接著,為了獲取您正在尋找的代碼模塊名,您可以從該資源向前移到它的實現(xiàn)。
type() 函數(shù)檢索所有給定的 <rdf:type> 資源的列表。filter() 函數(shù)會以列表作為開始,并根據(jù)一組規(guī)則不斷細化。它只遍歷滿足所有條件的列表項。第 2 行是第一個參數(shù),給出了初始列表,而其余 4 個參數(shù)分別從第 3 行、第 4 行、第 7 行和第 14 行開始,這些參數(shù)表示我們已經(jīng)設定的條件(即,具有指定的 SOAP 動作、SOAP 端點、文檔元素名和名稱空間的描述)。
結(jié)束語
正如您所看到的,Web 服務和 RDF
方面的進展不僅為那些想要利用兩者的開發(fā)者提供了更豐富的工具,而且雙方努力之間的合作精神也更為完美。使用 SQL 查詢,或?qū)φ找恍?WSDL 數(shù)據(jù)綁定的 API
調(diào)用足以容易的復制我所演示的 WSDL 元數(shù)據(jù)的 RDF 查詢,但是使用 RDF 的好處在于,我們可以混合 WSDL 和其它基于 RDF
的重要的元數(shù)據(jù),包括內(nèi)容描述和聯(lián)合格式(例如 Prism 和 RSS)、私有簡檔(例如 P3P)以及其它新興的 RDF 應用程序。Web
服務信息管理越一般化,改進集成就越容易提高效率。
參考資料
以前在 IBM developerWorks
發(fā)表的相關文章
- 請單擊文章上部或下部的討論參加關于本文的討論論壇。
- Introduction to RDF(作者 Uche Ogbuji)提供了對 RDF
的基本介紹,還包括指向其它有用資源的鏈接。
- 借助 RDF 增強
WSDL:管理結(jié)構化的 Web 服務元數(shù)據(jù)(作者 Uche Ogbuji)。
- SOAP 與RDF(作者 Uche Ogbuji)。
Uche Ogbuji
的其它相關文章
- WSDL and the
Wild, Wild West ,關于應用程序開發(fā)趨勢(Application Development
Trends)方面。
- Powering Web Services Through Metadata,關于 Web 服務體系結(jié)構設計(Web Services Architect)方面。
WSDL
鏈接
- WSDL 1.1 現(xiàn)在被保留為 W3C 備忘錄。
- Web Services Description Working Group 是 W3C Web Services Activity 的組成部分,負責開發(fā) Web 服務的標準描述語言,對它來說最可能的起點就是 WSDL 1.1。
RDF/Web
服務參考資料
- 請閱讀 WSDL/RDF
mapping(作者 Eric Prud'hommeaux),是他根據(jù)我從前在 developerWorks
上對這兩種技術之間的映射的研究進行了探索。是對他在前一頁面 Annotated RDF WSDL Examples 上所提出的觀點的提煉。
- Eric 還維護著與 Semantic Web 和 Web 服務有關的資源列表。
- W3C Semantic Web 活動主頁上的相關技術的 RDF 部分包括一個有關 Web 服務和 RDF 的部分,其中有我在 developerWorks 上發(fā)表的關于 SOAP/RDF 和
WSDL/RDF 文章。
- Dave Beckett 的 RDF Resource Guide 簡明扼要,并包括一些相關的參考資料。
其它參考資料
- 若需要 Versa 的詳盡介紹,請參閱我的循序漸進教程:Versa by Example。
- Web Services Development and Deployment with IBM Tools and Technologies(作者 Greg Flurry),講述了各種 WebSphere 組件在 Web 服務開發(fā)方面的應用,包括創(chuàng)建 WSDL 描述。
Uche Ogbuji 是 Fourthought Inc. 的顧問兼創(chuàng)始人,該公司是專為企業(yè)知識管理應用提供 XML 解決方案的軟件供應商和顧問。Fourthought 開發(fā)了 XML 中間件開放源代碼的平臺 4Suite。Ogbuji 先生是一名出生于尼日利亞的計算機工程師和作家,他生活和工作在美國科羅拉多州的博耳德。您可以通過 uche.ogbuji@fourthought.com 與 Ogbuji 先生聯(lián)絡。
- 1復明集團網(wǎng)上審批管理OA辦公軟件系統(tǒng)系統(tǒng) V1.0 ...
- 2源天軟件獲2008年度中國IT服務創(chuàng)新獎
- 3Web Services 及其技術(上)
- 4石家莊OA信息化的基本XML和RDF技術(四):問題跟蹤程序模式
- 5泛普OA軟件支持在線直接發(fā)送消息、傳送文件、音頻會話等
- 6石家莊OA軟件的征求意見和民意調(diào)查
- 7互聯(lián)網(wǎng)聯(lián)盟(W3C )發(fā)布Web服務體系新規(guī)范草案
- 8[理論] 如何根據(jù)業(yè)務過程選擇知識應用模式?(夏敬華)
- 9Sun拒入“WS-I” 不想跟微軟IBM玩游戲
- 10架構Web Service:交互界面,Web服務定義的核心
- 11如何讓知識員工忠字當頭?
- 12Web服務設計師,第5部分:基于付費Web服務的障礙
- 13源天榮獲“2008中國信息產(chǎn)業(yè)年度高成長性企業(yè)”稱號
- 14再次跨越障礙--重新審視XML中的語義透明性
- 15The DECOR Project:Workflow-Embedded Organizational Memory Ac
- 16石家莊OA知識歸檔管理與快速查詢管理
- 17企業(yè)CIO剖析中小企業(yè)信息化發(fā)展建設盲點.
- 18如何認識和實施石家莊OA信息化系統(tǒng)的集成(BY AMT 夏敬華)
- 19石家莊OA信息化的價值和挑戰(zhàn)
- 20Web服務的“租用”本質(zhì)
- 21bindingTemplate與Web服務調(diào)用
- 22觀點:微軟的下個效仿對象是惠普
- 23XML Web Service-Enabled Office Documents
- 24W3C發(fā)表WSDL 1.2規(guī)范
- 25由 80/20 法則突破「知識分享」的心防
- 26Web服務的(革)創(chuàng)新,第3部分
- 27有一個綜合性學術資源檢索站點,不錯!
- 28協(xié)同辦公系統(tǒng)整合了多層次的安全控制方案
- 29超越石家莊OA信息化
- 30在ASP程序中調(diào)用Web Service
成都公司:成都市成華區(qū)建設南路160號1層9號
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務大廈18樓