freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

讓企業(yè)soa項(xiàng)目更可控之必備十大戒條-文庫吧

2025-07-14 10:44 本頁面


【正文】 為此做任何改變或調(diào)整。任何你不需要了解的東西不會(huì)傷害到你。當(dāng)然了,除非你硬要去了解它,在這種情況下如果你們不想在SOA上浪費(fèi)時(shí)間的話,其他人可能最好離遠(yuǎn)點(diǎn)兒。不去了解那些你不需要了解的東西可能比你想象的要難。如果你開發(fā)專門用于與你通信的信息系統(tǒng)的信息檢索服務(wù),你的思路已經(jīng)不對(duì)了,因?yàn)槟阋呀?jīng)把其他系統(tǒng)的知識(shí)歸并到系統(tǒng)中了。需求中的任何更改將會(huì)迫使雙方系統(tǒng)都作出更改。通常來講,比較好的方式是采用數(shù)量有限的檢索服務(wù)暴露系統(tǒng)數(shù)據(jù),當(dāng)檢索服務(wù)結(jié)合在一起使用時(shí),它們涵蓋了所有相關(guān)服務(wù)的信息檢索需求。例如,某個(gè)產(chǎn)品數(shù)據(jù)庫可能通過好幾個(gè)服務(wù)分別暴露出去:一個(gè)簡(jiǎn)單的僅包含編碼、描述、部門以及產(chǎn)品定價(jià)的服務(wù)、一個(gè)暴露出所有該產(chǎn)品財(cái)務(wù)方面信息的服務(wù),以及一個(gè)暴露出所有該產(chǎn)品物流方面信息的服務(wù)。許多系統(tǒng)僅需簡(jiǎn)單服務(wù)即可得到滿足,大部分只需要部分?jǐn)?shù)據(jù)而非全部,或財(cái)務(wù)或物流的服務(wù),而有一些兩者都需要,但此外沒有任何一個(gè)需要特別接口的系統(tǒng)。這種工作方式被稱為麥當(dāng)勞方式:客戶從標(biāo)準(zhǔn)產(chǎn)品中搭配出自己需要的產(chǎn)品。支持這種方式并不困難,因?yàn)椴还茉鯓幽愣夹枰@些服務(wù)去支持面向客戶的程序。你甚至可以用這種方式來支持非常特別的信息需求,因?yàn)槟切┎恍枰臄?shù)據(jù)可以在消費(fèi)前就過濾掉。如果不想在巨無霸漢堡中放小黃瓜,扔掉它就可以了!這種方式的基本思路是提供過多的信息要比提供過少的信息遇到的問題少,因?yàn)榻邮辗较到y(tǒng)可以很容易通過程序過濾掉不需要的信息,但是如果缺少信息那就麻煩了。不去了解你不需要了解的東西也會(huì)使得為支持業(yè)務(wù)流程所需的信息交互大大簡(jiǎn)化。在SOA的范式中,當(dāng)你請(qǐng)求另一個(gè)代理為你做一些事,那就是你所需要做的全部。你不需要為代理提供可能有助于完成任務(wù)的或者是其必需的額外信息。在點(diǎn)菜時(shí),確保有用于這道菜的原料是廚師的職責(zé)。你說出想要的東西,然后就可以靜候佳音了。反過來,代理會(huì)使用信息檢索服務(wù)來向你咨詢所有信息,但是檢索什么、何時(shí)檢索以及從何檢索,這些問題都應(yīng)該由他來決定,你無須去了解,更不用將該知識(shí)歸并至你的系統(tǒng)中。這樣,在他那一端的更改幾乎不需要你這邊作出更改。比如說,如果他決定停止維護(hù)對(duì)你數(shù)據(jù)的拷貝,你什么更改都不需要做。當(dāng)然,不去了解你不需要了解的事情確實(shí)會(huì)導(dǎo)致效率低下。原本只需要一次交換即可實(shí)現(xiàn)的操作現(xiàn)在將需要多個(gè)步驟。麥當(dāng)勞方式常常會(huì)導(dǎo)致原本一個(gè)服務(wù)即可滿足卻提供了多個(gè)服務(wù)的情況,另一邊卻還在檢索信息,而這些信息又常常是冗余而非十分必要。總會(huì)出現(xiàn)一些情形,可以通過好的商業(yè)意識(shí)來優(yōu)化這些通信模式。也會(huì)有很多場(chǎng)合你會(huì)想要優(yōu)化用戶接口,那也只是因?yàn)楫?dāng)前的表示設(shè)備并不擅長提供給用戶吸引人的界面。但是在你優(yōu)化之前,請(qǐng)考慮你會(huì)失去什么樣的靈活性。另外絕不要想去優(yōu)化那些尚未穩(wěn)定的功能需求。為時(shí)過早的規(guī)范凍結(jié)數(shù)據(jù)庫范式中,一個(gè)真正的難題在于:它要求在你還未足夠了解并有能力去確定數(shù)據(jù)的具體結(jié)構(gòu)前,就去做這件事。因?yàn)樗鼈兒鲆暳艘粋€(gè)生活中簡(jiǎn)單的事實(shí):只有當(dāng)用戶看到他們不想看到的東西時(shí),他們才知道其真正想要的是什么。其工作原理是這樣:一旦完成了數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì),任何后續(xù)修改都會(huì)引起雜亂的數(shù)據(jù)庫轉(zhuǎn)換,除此之外每個(gè)訪問該數(shù)據(jù)庫的系統(tǒng)也會(huì)改變。所有這些改變必須都協(xié)調(diào)好,當(dāng)所有對(duì)數(shù)據(jù)庫的操作都限制在單個(gè)系統(tǒng)時(shí)候,這種協(xié)調(diào)是很困難的,但如果有多個(gè)系統(tǒng)都在操作,那就更難了,尤其是:如果其中有些系統(tǒng)被不受你控制的參與方管理的時(shí)候。事實(shí)上,在系統(tǒng)開發(fā)階段做這些更改就已經(jīng)很成問題了。其后果是,數(shù)據(jù)庫設(shè)計(jì)早在系統(tǒng)開發(fā)階段就被凍結(jié),然后數(shù)據(jù)分析師們?cè)偃ソ吡π拚@些設(shè)計(jì)?,F(xiàn)在的問題是數(shù)據(jù)分析師們面臨著不可能完成的工作。他們必須在用戶理解這個(gè)設(shè)計(jì)(且不說贊賞這個(gè)設(shè)計(jì)實(shí)際應(yīng)用如何)前就確定該設(shè)計(jì)。只有在過了很久之后——系統(tǒng)已經(jīng)構(gòu)建好之后——用戶才能對(duì)該系統(tǒng)有所體會(huì)并對(duì)其是否滿足自己的需求作出評(píng)估。如果此時(shí)發(fā)現(xiàn)數(shù)據(jù)結(jié)構(gòu)上有任何大問題,要想修復(fù)就太晚了。SOA原型法你可能會(huì)問:“SOA是怎么個(gè)不同尋常呢?”說到底,難道SOA不像數(shù)據(jù)庫范式那樣一樣需要結(jié)構(gòu)化數(shù)據(jù)嗎?這個(gè)問題的簡(jiǎn)單答案:不管請(qǐng)求數(shù)據(jù)時(shí),被人工代理處理還是被自動(dòng)化系統(tǒng)處理,SOA都是管用的,并且就算數(shù)據(jù)沒有被最優(yōu)結(jié)構(gòu)化,人們還是可以解讀它。比如說,用戶可以判斷信件是否正在被發(fā)送至另一個(gè)國家,無論信件的地址是用行一、行二、行三和行四來表示的,而信息系統(tǒng)需要至少“國家”來作為數(shù)據(jù)結(jié)構(gòu)可識(shí)別的一部分。仔細(xì)回答這個(gè)問題就包括了對(duì)SOA原型法的討論,這種討論包括以下幾方面:識(shí)別將被構(gòu)建到系統(tǒng)中的元數(shù)據(jù)。把它放在主命名空間中,用傳統(tǒng)方式根據(jù)其結(jié)構(gòu)把數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫管理系統(tǒng)(DBMS)。例如,用戶信息,這個(gè)元數(shù)據(jù)可能由用戶ID和用戶名構(gòu)成。因?yàn)檫@個(gè)元數(shù)據(jù)被構(gòu)建到系統(tǒng)中,所以為了使用這些字段而把邏輯也構(gòu)建到系統(tǒng)中是完全有可能的,比如通過用戶ID檢索記錄并基于用戶名排序和篩選記錄。對(duì)每一條數(shù)據(jù)庫記錄,把不包含在主命名空間的所有數(shù)據(jù)放到一個(gè)單獨(dú)的XML字符串中,該字符串作為一個(gè)單獨(dú)的字段添加到數(shù)據(jù)庫記錄中。對(duì)每個(gè)XML字符串,構(gòu)建一個(gè)二級(jí)命名空間,開發(fā)XSD,同時(shí)添加一個(gè)單獨(dú)數(shù)據(jù)項(xiàng)到主命名空間。對(duì)用戶記錄的初步實(shí)現(xiàn)來說,這個(gè)字符串可能包括地址行一、行二、行三和行四的元數(shù)據(jù)。用戶記錄本身的XSD將會(huì)包括三個(gè)字段的元數(shù)據(jù):用戶ID、用戶名和以XML字符串包括的附加的用戶相關(guān)數(shù)據(jù)。附加用戶數(shù)據(jù)的XSD包括每條地址行的元數(shù)據(jù)。使用基于XSD的邏輯來為數(shù)據(jù)庫記錄的各相關(guān)層次獲取及展示所有數(shù)據(jù),這可以通過給每個(gè)XML字符串(包含對(duì)主記錄的字符串)增加一個(gè)標(biāo)準(zhǔn)驗(yàn)證服務(wù)來實(shí)現(xiàn)。如有可能,利用某種工具來產(chǎn)生使用XSD的接口而不要自己去編程。該工具必須使用二級(jí)XML字符串所包含的元數(shù)據(jù)來將其解包,并且必須同時(shí)使用主、次兩級(jí)XSD的邏輯來獲取新記錄。其結(jié)果就是一個(gè)可運(yùn)行的原型,用戶可用以評(píng)估預(yù)期使用的系統(tǒng)。要盡量適應(yīng)和修改基于XSD的邏輯以及驗(yàn)證服務(wù)直到用戶對(duì)系統(tǒng)滿意為止。就拿用戶記錄來說,一個(gè)新的針對(duì)字符串的XSD可包括以下元數(shù)據(jù):街道地址、郵編、縣市、以及國家。使用舊XSD存儲(chǔ)的數(shù)據(jù)仍會(huì)正確顯示,所以無需立即將其轉(zhuǎn)換。而使用新XSD將會(huì)獲取新的記錄。一旦用戶和你確信元數(shù)據(jù)已經(jīng)穩(wěn)定了,那么請(qǐng)考慮把數(shù)據(jù)遷移到傳統(tǒng)的數(shù)據(jù)結(jié)構(gòu)和主命名空間。當(dāng)然,SOA原型法并不總是必要的。當(dāng)需求受限于如此多的不確定性時(shí),請(qǐng)使用原型法,這樣先做原型然后再將其穩(wěn)定比較經(jīng)濟(jì)。但是請(qǐng)記住這個(gè)肯定要比數(shù)據(jù)庫化原型法要簡(jiǎn)單的多。在數(shù)據(jù)庫化的時(shí)代,原型法只是可有可無,但是在SOA的時(shí)代,它便是家常便飯。不要將設(shè)計(jì)細(xì)節(jié)固定,除非你確定它們是正確的。就是這么簡(jiǎn)單。產(chǎn)品驅(qū)動(dòng)的服務(wù)分解SOA主要的優(yōu)勢(shì)就是它是一個(gè)能被轉(zhuǎn)化成技術(shù)的業(yè)務(wù)概念,不像數(shù)據(jù)庫世界里那樣,技術(shù)概念總想試圖跟上業(yè)務(wù)的步伐。在SOA中,每個(gè)服務(wù)必須明確地增加價(jià)值,不只是在抽象意義層面上,而更具體地要針對(duì)那些調(diào)用方而言。發(fā)生的一切之所以這樣發(fā)生了,是因?yàn)榉?wù)請(qǐng)求者要求其如此。通過不實(shí)現(xiàn)任何服務(wù)請(qǐng)求者沒有明確要求的東西,服務(wù)可以被限定在它們的核心功能上。如果SOA中所有的參與者都積極這樣去做,那么將會(huì)使互操作性大大增加。SOA中最高層次的服務(wù)是業(yè)務(wù)交易:某個(gè)客戶下了一個(gè)貨物或服務(wù)的訂單——除非訂單被供應(yīng)商拒絕——否則這就開始了一個(gè)訂單交付。在SOA范式中,任何從接受訂單到訂單交付之間所發(fā)生的都可以也應(yīng)該以服務(wù)的形式實(shí)現(xiàn)。為實(shí)現(xiàn)訂單交付而要求的每個(gè)中間產(chǎn)品或狀態(tài),供應(yīng)商會(huì)要求某些人或某些組織機(jī)構(gòu)——不一定是供應(yīng)商內(nèi)部的組織——來執(zhí)行交付。然后這些中間服務(wù)自身又可以分解成多個(gè)服務(wù),一直到增加價(jià)值的基本組織層面。層次服務(wù)分解是SOA范式中非常重要的一部分,因?yàn)樗狗?wù)交付通過服務(wù)水平協(xié)議的方式管理。它可以確保每個(gè)服務(wù)都有專人負(fù)責(zé),并且服務(wù)消費(fèi)者們知道他們會(huì)得到什么。通用的中間產(chǎn)品和通用的服務(wù)服務(wù)分解都是關(guān)于產(chǎn)品的。只有當(dāng)組成服務(wù)的那些子服務(wù)不能立即執(zhí)行時(shí)流程才會(huì)出現(xiàn)。例如,如果決定是否接受客戶訂單的服務(wù)要求:先執(zhí)行判斷訂單價(jià)值的子服務(wù),再執(zhí)行確定客戶信用狀態(tài)的子服務(wù),那么實(shí)現(xiàn)該服務(wù)就包含了一個(gè)流程。每個(gè)這樣的流程只與一個(gè)服務(wù)相關(guān)。如果你發(fā)現(xiàn)有個(gè)流程不僅限于單個(gè)這樣的服務(wù),那么你很有可能是忘了把客戶的初始需求建模為服務(wù)了。有可能出現(xiàn)這樣的情況,相同的中間產(chǎn)品——當(dāng)然還有相同的服務(wù)——可能會(huì)被不同的高級(jí)別產(chǎn)品需要。比如,那些要求明顯區(qū)分交付過程的商品,在中間產(chǎn)品的環(huán)節(jié),其中的差別一般來說幾乎微乎其微,中間產(chǎn)品其實(shí)也是由客戶來支付——為了從客戶那里賺取利潤,我們需要金額、日期以及讓我們可以冠冕堂皇地向客戶要求支付的條款,實(shí)際是什么則并不用去理會(huì)。在這種情況下,正常的基準(zhǔn)是如果存在通用的中間產(chǎn)品,那么它應(yīng)該由單個(gè)服務(wù)來實(shí)現(xiàn),而這個(gè)服務(wù)能夠被多個(gè)高級(jí)別的服務(wù)調(diào)用。這種服務(wù)只有結(jié)果是重要的——不是開始——因?yàn)槭占瘜?duì)交付服務(wù)有用的信息是服務(wù)本身的一部分,而不是請(qǐng)求服務(wù)源頭的一部分。需要注意的是:是否需要單個(gè)服務(wù)是由業(yè)務(wù)決定的,和信息技術(shù)沒有任何關(guān)系。如果不管是現(xiàn)在還是相關(guān)的未來,交付相同的中間產(chǎn)品都是切實(shí)有用的,那么就應(yīng)該有單個(gè)服務(wù)。除非在現(xiàn)在或相關(guān)的未來有商業(yè)力量發(fā)揮作用使中間產(chǎn)品發(fā)生結(jié)構(gòu)性分化,那我們最好不要為每組需求分別提供相應(yīng)服務(wù)。然而事實(shí)偏偏相反。在SOA,事物是由相同走向不同,而在數(shù)據(jù)庫化的方法中,事物則是由不同走向相同。帶有多種行為的通用服務(wù)你可能會(huì)問,如果需要兩種完全不同的行為而你只為其提供一種服務(wù),這樣做的意義何在呢?難道我們還在被同樣困擾數(shù)據(jù)庫世界的“一刀切”做法限制?比如,如果我們出售兩種類型的產(chǎn)品,其中一種使用固定價(jià)格而另一種則根據(jù)某些復(fù)雜的公式計(jì)算出變動(dòng)價(jià)格,為什么不用兩種結(jié)算服務(wù),為每種特定的產(chǎn)品各訂制一種呢?這些問題很好,但問錯(cuò)了地方。它們是好問題,那是因?yàn)槿魏尾荒艹浞謶?yīng)對(duì)發(fā)生在問題域內(nèi)變化的設(shè)計(jì)方法注定會(huì)失敗。但是它們問在了錯(cuò)誤的地方,這是因?yàn)楦鶕?jù)問題域中的變化來調(diào)整方案的靈活性應(yīng)該構(gòu)建到服務(wù)中,而不是圍繞著服務(wù)來構(gòu)建。就拿結(jié)算服務(wù)來說,每次調(diào)用一種方法時(shí),它應(yīng)該決定這兩種算法應(yīng)該使用哪一種。那樣的話,如果引入第三種結(jié)算算法,那么只有結(jié)算服務(wù)需要去做調(diào)整。請(qǐng)注意這并不意味著結(jié)算服務(wù)必須被設(shè)計(jì)成某種“萬能”機(jī)器。它同樣可以很好地為每個(gè)算法分別調(diào)用相應(yīng)的子服務(wù)。這種選擇——介于多功能解決方案和包含不同組件的框架之間——是一種可以根據(jù)服務(wù)來決定的選擇,因?yàn)樗恍枰环?wù)請(qǐng)求者知道。在SOA中,這種選擇更常見,但目前的做法則常常導(dǎo)致產(chǎn)生框架解決方案,因?yàn)樾枰喙δ芊桨傅母杏X在很大程度上是由于不能從那些需要執(zhí)行的信息里識(shí)別出服務(wù)請(qǐng)求造成的。這種需要高素質(zhì)專家來實(shí)現(xiàn)的帶有如此多參數(shù)的以一應(yīng)十的多功能方案的日子不會(huì)長久了。堅(jiān)持要點(diǎn)流程驅(qū)動(dòng)方法也可以使我們分清我們是代表服務(wù)請(qǐng)求者做事還是為自己做事。以服務(wù)請(qǐng)求者身份做的事應(yīng)該作為服務(wù)的一部分
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1