回顧NASA(美國(guó)國(guó)家航空航天管理局,以下簡(jiǎn)稱美國(guó)航天局)從多個(gè)方面整合數(shù)據(jù)的成效,Ames研究中心智能系統(tǒng)部門信息共享與整合組的負(fù)責(zé)人Richard Keller并不能感到滿意。美國(guó)航天局希望在探索任務(wù)中加入數(shù)據(jù)的采集工作,包括樣本數(shù)據(jù)、照片、聲音記錄和GPS(全球定位系統(tǒng))信息,并將這些數(shù)據(jù)與衛(wèi)星圖、GIS(地理信息系統(tǒng))數(shù)據(jù)及在樣本數(shù)據(jù)中發(fā)現(xiàn)的特征信息等進(jìn)行整合。
“這不僅僅需要采集各種各樣的信息,而且還要求這些數(shù)據(jù)能夠以各種格式保存,從表單文件到SQL數(shù)據(jù)庫(kù)或者網(wǎng)頁(yè)。”Richard Keller表達(dá)了他的期望。但數(shù)據(jù)采集工作僅僅是開頭。一旦Keller得到了這些信息,他還需要判斷這些以不同格式保存的數(shù)據(jù)之間有什么樣的關(guān)系。
“如果你在兩個(gè)不同的數(shù)據(jù)庫(kù)中,都有一個(gè)名為‘temp’的字段,那么假設(shè)它們都代表同樣的意思,具有同樣的單位,可以直接進(jìn)行整合,這是否合情合理呢?”Keller說,“實(shí)際上,它們可能一個(gè)代表‘溫度’,而另一個(gè)則意味著‘臨時(shí)’的取值。所以,為了恰如其分地合并這兩個(gè)字段,你不得不完全理解這些數(shù)據(jù)的真實(shí)含義。”
在NASA和其他大型機(jī)構(gòu)——不管是政府部門還是企業(yè),整合各種數(shù)據(jù)都面臨著很大的挑戰(zhàn),但是為了能夠方便地在內(nèi)部或者與外部的合作伙伴共享信息,這又是一個(gè)不得不面對(duì)的問題。數(shù)據(jù)整合的挑戰(zhàn)也是NASA及其他很多大型機(jī)構(gòu)轉(zhuǎn)為使用具有語(yǔ)義整合能力的SOA的一個(gè)重要原因。SOA由能夠通過網(wǎng)絡(luò)提供相互操作性能力的各種服務(wù)組成。盡管SOA以業(yè)務(wù)為中心的特性能夠激發(fā)人們的熱情,但它能夠讓網(wǎng)絡(luò)服務(wù)的整合與動(dòng)態(tài)選擇成為可能,這一特點(diǎn)讓無數(shù)人產(chǎn)生了濃厚的興趣。這就讓語(yǔ)義技術(shù)有了用武之地,它能夠用盡可能接近自然語(yǔ)言的模型來處理各種如生物學(xué)和經(jīng)濟(jì)學(xué)一樣的專業(yè)問題。
語(yǔ)義技術(shù)
具有內(nèi)置推理能力的SOA平臺(tái),能夠幫助企業(yè)迅速作出決策,這是基于其服務(wù)能力和根據(jù)預(yù)定義條件獲取相關(guān)信息的。從SOA本身而言,它并不具備這種能力,但加上語(yǔ)義技術(shù)的幫助,能夠充分地發(fā)揮出彼此的特長(zhǎng),幫助企業(yè)作出準(zhǔn)確及時(shí)的決策。
語(yǔ)義整合技術(shù)是基于底層可靠的服務(wù)和數(shù)據(jù)來作出判斷的。然而,這些技術(shù)目前還沒有完全發(fā)展成熟。Progress Software公司的DataXtend Semantic Integrator等工具可以使用普通數(shù)據(jù)模型追蹤這個(gè)問題,并驗(yàn)證數(shù)據(jù)交換的可靠性。
支持本體論的SOA
所謂語(yǔ)義整合技術(shù),就是要在各種紛繁復(fù)雜的原始數(shù)據(jù)中找出其共同具有的匹配模式。如果能夠做到這一點(diǎn),那么就可以將這種模式定義為一個(gè)原模型,然后將幾個(gè)原模型根據(jù)它們之間的關(guān)系連接起來。一種先進(jìn)的語(yǔ)義整合方法就是Ontology(本體論)。本體論是對(duì)一個(gè)領(lǐng)域的結(jié)構(gòu)化表述——用它我們可以處理如生物學(xué)或者經(jīng)濟(jì)學(xué)之類的專業(yè)領(lǐng)域問題——其表述的基礎(chǔ)是面向?qū)ο蟮念惣案鞣N類之間的相互關(guān)系,這些類和關(guān)系可以使用基于XML的網(wǎng)絡(luò)本體論語(yǔ)言來定義。
使用本體論,任何一個(gè)領(lǐng)域都可以被劃分為各種類,然后再描述這些類之間的相互關(guān)系。支持本體論的SOA將這一建模技術(shù)進(jìn)行了擴(kuò)展,在SOA的各種服務(wù)之上建立了一個(gè)層模型,其中包含了與服務(wù)域相對(duì)應(yīng)的各種本體論類。這些對(duì)應(yīng)關(guān)系是在建立本體論的設(shè)計(jì)階段就確定的,然后在運(yùn)行的時(shí)候通過服務(wù)請(qǐng)求的語(yǔ)義相似性實(shí)現(xiàn)。這里面還用到了策略思想,用來建立查找語(yǔ)義相似性的邏輯。
要建立支持本體論的SOA,有以下四個(gè)步驟:
第一步:分析業(yè)務(wù)流程。
業(yè)務(wù)流程通常都包含一系列基于條件的任務(wù)執(zhí)行。這些條件可能需要語(yǔ)義能力來展現(xiàn)其智能化的路由選擇。我們將這些地方定義為“可變點(diǎn)”,或者是需要推理能力來實(shí)現(xiàn)語(yǔ)義特性的區(qū)域。
每個(gè)任務(wù)可能都具有幾個(gè)可變因素,或者對(duì)于每個(gè)可變因素,都可能具有多個(gè)可能的取值。而且未來的業(yè)務(wù)需求可能會(huì)引入新的可變因素,或者已有可變因素有新的取值可能。例如,早期人們認(rèn)為物理形態(tài)只有固態(tài)和液態(tài)兩種,而隨著科學(xué)的發(fā)展,人們才逐漸認(rèn)可了氣態(tài)是另一種物理形態(tài)。因此,在定義本體論模型時(shí),每一個(gè)變量都對(duì)應(yīng)一個(gè)數(shù)據(jù)字典,可以不斷地進(jìn)行擴(kuò)展,以保證能夠滿足未來新的業(yè)務(wù)需求。
第二步:建立本體論模型。
本體論是用術(shù)語(yǔ)概念和關(guān)系來定義。本體論的概念實(shí)現(xiàn)為類。本體論中的關(guān)系被定義為術(shù)語(yǔ)的“對(duì)象屬性”和“數(shù)據(jù)類型屬性”。從可變點(diǎn)組件到本體論模型中元素的映射,能夠幫助建立其本體論模型。
要準(zhǔn)確地識(shí)別出業(yè)務(wù)流程中的任務(wù)和可變點(diǎn),從而最終將它們映射為本體論模型中的元素,建立起有用的模型,必須要有足夠的業(yè)務(wù)知識(shí)。開源的本體論建模編輯器和基于知識(shí)模型的框架工具,如Protege可以用于本體論建模。
第三步:創(chuàng)建上下文相關(guān)的參與者。
接下來要做的是,創(chuàng)建運(yùn)行時(shí)的組件,它們?cè)趫?zhí)行時(shí)按照條件調(diào)用本體論模型中的元素,并根據(jù)上下文具體條件執(zhí)行不同的分支。實(shí)現(xiàn)這一點(diǎn)的一種方式是使用基于Java語(yǔ)言的技術(shù)。使用業(yè)務(wù)流程執(zhí)行語(yǔ)言(BPEL)和模塊的概念,業(yè)務(wù)流程會(huì)被封裝為一個(gè)線性流程。而使用本體論的運(yùn)行時(shí)組件則映射為決定正確服務(wù)調(diào)用的端點(diǎn)。
通過定義“策略”和“斷言”,能夠?qū)崿F(xiàn)充分的語(yǔ)義特性。“策略”會(huì)決定流程的可用性,并決定端點(diǎn)調(diào)用的服務(wù),定義哪個(gè)地方可以使用什么服務(wù)。“斷言”包含了本體論中映射的所有可能變量取值。運(yùn)行時(shí)對(duì)包含端點(diǎn)的判斷是基于“斷言”與“策略”二者之間的最佳匹配原則的。
第四步:實(shí)現(xiàn)網(wǎng)絡(luò)服務(wù)。
網(wǎng)絡(luò)服務(wù)提供最終的業(yè)務(wù)服務(wù)。他們是最終的執(zhí)行點(diǎn),包含了實(shí)際的業(yè)務(wù)功能。作用于網(wǎng)絡(luò)服務(wù)的策略,是需要包含新服務(wù)端點(diǎn)任務(wù)的必要組成部分。
改進(jìn)SOA實(shí)施
語(yǔ)義整合被用于各行各業(yè),例如金融服務(wù)行業(yè)和醫(yī)療藥品行業(yè),而作為支持本體論的語(yǔ)義整合,其應(yīng)用范圍會(huì)更加廣泛。我們將建立的支持本體論的SOA體系結(jié)構(gòu)應(yīng)用在了一個(gè)典型的業(yè)務(wù)領(lǐng)域——禁毒。所有的禁毒活動(dòng)都需要化學(xué)和生物樣品,這些樣品的管理包括了獲取、注冊(cè)、保存和分發(fā)。我們的本體論模型通過動(dòng)態(tài)地調(diào)用不同的網(wǎng)絡(luò)服務(wù)實(shí)現(xiàn)了對(duì)樣品獲取活動(dòng)的支持。
這個(gè)系統(tǒng)大致是這樣的:一個(gè)研究員請(qǐng)求樣品(上面的第一步),這個(gè)請(qǐng)求發(fā)出了一個(gè)BPEL過程(第二步),其中,這個(gè)業(yè)務(wù)流程模型的BPEL引擎包括了對(duì)一個(gè)上下文相關(guān)調(diào)用的請(qǐng)求(第三步),然后這個(gè)調(diào)用會(huì)與本體論模型引擎相互作用,并根據(jù)條件查詢相關(guān)的“斷言”和“策略”。結(jié)果會(huì)根據(jù)具體條件選擇適當(dāng)?shù)木W(wǎng)絡(luò)服務(wù)執(zhí)行(第四步)。
通過將專業(yè)業(yè)務(wù)領(lǐng)域的流程建模為工作流,并同時(shí)建立業(yè)務(wù)流程模型和本體論模型,本體論可以用來實(shí)現(xiàn)語(yǔ)義整合。本體論模型中的類和關(guān)系可以基于專業(yè)領(lǐng)域的知識(shí)和業(yè)務(wù)流程創(chuàng)建。
如果基于本體論的SOA實(shí)現(xiàn)得不好,隨著時(shí)間的推移,它可能會(huì)變得越來越復(fù)雜,而且難以維護(hù)。但如果實(shí)現(xiàn)得好,用本體論創(chuàng)建智能軟件代理就會(huì)是一種非常好的方法,能夠幫助實(shí)現(xiàn)對(duì)用戶友好度很強(qiáng)的軟件,幫助企業(yè)用戶更好地作出準(zhǔn)確及時(shí)的決策,加速企業(yè)內(nèi)外部信息的共享。
{{item.content}}