国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
論壇集萃-邏輯數(shù)據(jù)服務(wù) – “SCRUDI”設(shè)計(jì)模式
輯數(shù)據(jù)服務(wù) – “SCRUDI”設(shè)計(jì)模式

時(shí)間:2007-08-07
作者:Richard Manning
瀏覽次數(shù): 111
本文關(guān)鍵字:SOA 數(shù)據(jù)服務(wù) Data ServicesWeb ServicesAquaLogic Data Services Platform CRUD CRUDI 設(shè)計(jì)模式
文章工具
 推薦給朋友
 打印文章

  Data Services是專門(mén)化的Web Services。它允許您在SOA參考架構(gòu)中定義特定于數(shù)據(jù)服務(wù)(以及其他專門(mén)化Web Services)角色和職責(zé)的設(shè)計(jì)模式和方法。我開(kāi)發(fā)且已成功被幾位客戶使用的一個(gè)設(shè)計(jì)模式是“SCRUDI”。

  當(dāng)您考慮對(duì)數(shù)據(jù)使用的典型和傳統(tǒng)操作范圍時(shí),往往可以總結(jié)成首字母縮寫(xiě)“CRUD”,即Create、Retrieve、Update、Delete。這就足夠了。CRUD在數(shù)據(jù)領(lǐng)域是個(gè)熟悉的概念。如果考慮HTTP或REST中的操作,將得到GET、HEAD、PUT、POST、UPDATE、DELETE、OPTIONS、TRACE、CONNECT概念,大多數(shù)web開(kāi)發(fā)人員都應(yīng)該熟悉這些概念。熟悉使用Web進(jìn)行搜索的用戶還會(huì)熟悉web搜索的概念。在SOA中,您將功能組件化到服務(wù)中。在創(chuàng)建SOA解決方案時(shí)識(shí)別并定義服務(wù)及其交互和支持基礎(chǔ)架構(gòu)是常見(jiàn)的活動(dòng)。服務(wù)還可能以接口(例如,WSDL)、格式(例如,XSD)、示例和文檔的形式提供信息,以幫助潛在的服務(wù)消費(fèi)者利用該服務(wù)。

  實(shí)際上,Data Services結(jié)合了以上許多方面,也就是說(shuō),它們是面向數(shù)據(jù)/信息的專門(mén)化Web Services。現(xiàn)在,當(dāng)您結(jié)合數(shù)據(jù)操作(CRUD)或使用HTTP/REST操作、Search與SOA Services以及信息時(shí),最終將得到什么樣的聚合呢?我將得到的結(jié)果稱為“SCRUDI”,即Search、Create、Retrieve、Update、Delete、Information。考慮SOA中數(shù)據(jù)服務(wù)的基本能力、功能和使用上下文時(shí),SCRUDI似乎能成功捕獲Data Services實(shí)際需要執(zhí)行的操作。如果HTTP或REST更適合您的方法,則也可以使用其中定義的操作(也就是以GET、PUT、POST等術(shù)語(yǔ))描述SCRUDI。

  定義Canonical Data(規(guī)范數(shù)據(jù))或Information Model(信息模型)時(shí),常常用到描述“域”概念的實(shí)體,例如Customer、Account、Address、Order等(這也是命名數(shù)據(jù)庫(kù)表的常見(jiàn)抽象?。T谡Z(yǔ)義業(yè)務(wù)模型級(jí)別定義Data Services并提供SCRUDI功能,將擁有一組期望從提供數(shù)據(jù)/信息交互的服務(wù)中獲得的核心行為。使用Customer作為示例,可以如下定義邏輯Customer Data Service:

  服務(wù)名稱:Customer

  操作:Search、Create、Retrieve、Update、Delete、Information

  然后就可以在WSDL中捕獲和公開(kāi)此服務(wù)定義。對(duì)于Logical Canonical Model(邏輯正則模型)中定義的每個(gè)實(shí)體,都可以使用相同的名稱/粒度定義一個(gè)Data Service,并提供這6項(xiàng)操作。在一些情況下,還將提供識(shí)別信息。例如,在Search請(qǐng)求中,將提供匹配搜索標(biāo)準(zhǔn),甚至可能支持正則表達(dá)式;對(duì)于Retrieve、Update或Delete,則可能提供惟一的標(biāo)識(shí)符信息以獲取、更新或刪除特定信息。因?yàn)槟臄?shù)據(jù)服務(wù)是專門(mén)化的web服務(wù),所以可使用XML Schema Definition(XSD)來(lái)定義以上各個(gè)定義的請(qǐng)求和響應(yīng)格式。在Customer數(shù)據(jù)服務(wù)示例中,使用文檔樣式方法的Retrieve結(jié)果將是符合Customer.xsd定義的XML文檔實(shí)例。如果該架構(gòu)中定義的Customer信息很龐大、復(fù)雜,或者您只希望Retrieve這些信息的子集,就會(huì)希望支持使用XQuery/XPath表達(dá)式的特殊查詢,類似于關(guān)系數(shù)據(jù)的SQL功能。因?yàn)樘幱赪eb服務(wù)的上下文(或稱為SOA中的Data Services),并且我們的數(shù)據(jù)格式為XML,所以使用XQuery/XPath比使用SQL更合適。

  現(xiàn)在我們的Data Services表現(xiàn)了Canonical Model(正則模型)(粒度相同或相似),提供了一組標(biāo)準(zhǔn)的操作(SCRUDI),并支持使用特殊查詢來(lái)檢索數(shù)據(jù),這與XSD定義和特定的服務(wù)消費(fèi)者需求一致。盡管模式簡(jiǎn)潔,但其功能非常強(qiáng)大。它是基本的邏輯模型/規(guī)范模型/數(shù)據(jù)服務(wù)設(shè)計(jì)模式。然后就可以考慮更高級(jí)的邏輯抽象,即使用這些數(shù)據(jù)服務(wù)來(lái)提供Application Specialization功能。例如,可以為Customer定義另一個(gè)包含getShippingAddress()操作(該操作使用客戶標(biāo)識(shí)符作為參數(shù))的邏輯數(shù)據(jù)服務(wù)。然后,該操作的實(shí)現(xiàn)可以利用我們的Canonical Model Customer Data Service的Retrieve操作來(lái)傳遞同一個(gè)標(biāo)識(shí)符和XQuery/XPath語(yǔ)句(用于獲得所請(qǐng)求的運(yùn)送地址信息)。如果使用文檔樣式,則將根據(jù)XSD以XML文檔格式返回這些信息。Data Service消費(fèi)者可以使用合適的抽象層,如果應(yīng)用程序或一組應(yīng)用程序有類似的數(shù)據(jù)需求,則可以為這組應(yīng)用程序定義和使用一個(gè)Application Specialization。使用Application Specialization高級(jí)接口(例如,getShippingAddress()操作)的交互使用Web服務(wù)(數(shù)據(jù)服務(wù))接口(例如WSDL),并且不要求直接了解/使用XQuery/XPath。定義的任何XQuery或XPath都將被封裝、重用和優(yōu)化……每個(gè)項(xiàng)目的每個(gè)開(kāi)發(fā)人員都不需要精通XQuery / XPath,只需提供Application Specialization邏輯層數(shù)據(jù)服務(wù)的開(kāi)發(fā)人員精通即可,這些服務(wù)與底層提供SCRUDI操作接口的邏輯數(shù)據(jù)服務(wù)進(jìn)行交互。這是降低復(fù)雜性、TTM、成本并提高靈活性和重用的實(shí)用方式。

  我為不同領(lǐng)域的若干客戶成功地使用了此設(shè)計(jì)模式。該模式簡(jiǎn)單、強(qiáng)大并且靈活,我認(rèn)為是SOA Data Services / Canonical Modeling實(shí)現(xiàn)的最佳實(shí)踐。如果您的工作與數(shù)據(jù)服務(wù)有關(guān),或需要與SOA/Web應(yīng)用程序中的數(shù)據(jù)進(jìn)行交互,就會(huì)希望了解如何對(duì)您的數(shù)據(jù)服務(wù)和規(guī)范模型設(shè)計(jì)應(yīng)用SCRUDI設(shè)計(jì)模式。此外,考慮利用SCRUDI數(shù)據(jù)服務(wù)的Application Specialization,以充分發(fā)揮該方法的價(jià)值。

  當(dāng)然其價(jià)值不至于此。我在BEA咨詢部門(mén)任職,因此如果您對(duì)研究該方法或組織的其他數(shù)據(jù)服務(wù)實(shí)現(xiàn)戰(zhàn)略感興趣,我樂(lè)意幫助您。請(qǐng)告訴我您如何看待該方法和數(shù)據(jù)服務(wù)設(shè)計(jì)模式,并且如果有什么問(wèn)題,敬請(qǐng)告知。謝謝!

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
XQuery和XPath的區(qū)別|極客教程
W3C XPath 活動(dòng) | 菜鳥(niǎo)教程
XML開(kāi)發(fā)筆記 — 總結(jié)
SoapUI中是如何斷言的呢(四)
SQL Server 2005 數(shù)據(jù)庫(kù)開(kāi)發(fā)新架構(gòu)(2)
XML數(shù)據(jù)庫(kù)問(wèn)答 - JUST ON MY WAY
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服