日本好好热aⅴ|国产99视频精品免费观看|日本成人aV在线|久热香蕉国产在线

  • <cite id="ikgdy"><table id="ikgdy"></table></cite>
    1. 西西軟件園多重安全檢測(cè)下載網(wǎng)站、值得信賴(lài)的軟件下載站!
      軟件
      軟件
      文章
      搜索

      首頁(yè)業(yè)內(nèi)動(dòng)態(tài) 業(yè)內(nèi)資訊 → 面向服務(wù)的架構(gòu)SOA十誡

      面向服務(wù)的架構(gòu)SOA十誡

      相關(guān)軟件相關(guān)文章發(fā)表評(píng)論 來(lái)源:本站整理時(shí)間:2010/7/30 17:10:04字體大小:A-A+

      作者:佚名點(diǎn)擊:131次評(píng)論:0次標(biāo)簽: SOA

      • 類(lèi)型:編程輔助大。19.3M語(yǔ)言:中文 評(píng)分:1.2
      • 標(biāo)簽:
      立即下載
      3 頁(yè) 典型通用功能
      典型通用功能
      其他的瑣事還包括,但并不僅限于以下幾個(gè)方面:

      安全:建立服務(wù)請(qǐng)求者身份和訪問(wèn)權(quán)限。
      通知:確認(rèn)某一業(yè)務(wù)事件應(yīng)通知哪些人。這包括了維護(hù)基于此的事件訂閱。
      輸出管理:在線下進(jìn)行信息通信,而不是作為一種服務(wù)響應(yīng)。典型例子就是當(dāng)客戶請(qǐng)求必須被正式確認(rèn)時(shí),比如使用電子郵件來(lái)確認(rèn)你剛剛通過(guò)瀏覽器所做的網(wǎng)上采購(gòu)。對(duì)那些主動(dòng)提供的消息也是需要的,比如每月的賬單。輸出管理必須決定通過(guò)哪條渠道去發(fā)送信息,以及使用哪個(gè)地址來(lái)發(fā)送。它應(yīng)該把消息轉(zhuǎn)換成接收方能夠接收的格式,發(fā)送消息,并把消息添加到歸檔文檔。輸出管理包括維護(hù)那些被用來(lái)將數(shù)據(jù)轉(zhuǎn)換成用戶可理解消息的模板,以及潛在接收者的地址和渠道偏好。
      數(shù)據(jù)轉(zhuǎn)換:把數(shù)據(jù)從一種格式轉(zhuǎn)換為另一個(gè),把獨(dú)立的各個(gè)服務(wù)打包為一個(gè)服務(wù)——用麥當(dāng)勞的說(shuō)法,開(kāi)心樂(lè)園餐——以及分解拆包,將服務(wù)請(qǐng)求拆分成適用于不同人群的各個(gè)獨(dú)立請(qǐng)求,匯集各個(gè)回應(yīng),排隊(duì)及出列,或協(xié)議轉(zhuǎn)換。
      流程編排:編排某一流程,以確保按適當(dāng)順序且僅相關(guān)時(shí)來(lái)執(zhí)行那些組成流程的服務(wù),確?煲馄跁r(shí)發(fā)送告警信息,以及確保因輔助信息或者逾期打斷從而引起的新流程分支被啟用。
      歸檔管理:維護(hù)及訪問(wèn)相關(guān)的歸檔信息。這些可能是虛擬的檔案,從某種意義上是展現(xiàn)給用戶的信息,當(dāng)他需要某個(gè)檔案時(shí)可以使用查詢(xún)來(lái)檢索。對(duì)那些從數(shù)據(jù)庫(kù)中抽取的內(nèi)容,這被認(rèn)為是正常的,但是沒(méi)有特殊理由不對(duì)文檔使用相同的方法。在某些情況下應(yīng)使用設(shè)備來(lái)特別增加指派文檔至檔案中。
      記錄管理:維護(hù)那些不允許被更改的信息。
      至下而上敘述
      這些實(shí)現(xiàn)瑣事的服務(wù)不能形成業(yè)務(wù)服務(wù)層次的部分。不能使用自上而下的方式去設(shè)計(jì)它們,因?yàn)檫@些服務(wù)都沒(méi)有所謂的“上”。對(duì)這樣的服務(wù),使用旨在實(shí)現(xiàn)最大程度重用的自下而上的方法會(huì)更適合。這使得從這個(gè)階段起就能夠?qū)崿F(xiàn)服務(wù)的優(yōu)勝劣汰。

      采用數(shù)據(jù)庫(kù)化的方法,很少能夠?qū)嶋H把次等通用功能用更好的替換,因?yàn)檫@要求修改所有使用該方法的應(yīng)用。使用SOA則不同,這種替換很簡(jiǎn)單,前提是已經(jīng)應(yīng)用了“不去了解你不需要了解的事情”這條規(guī)則,包括其推論:服務(wù)請(qǐng)求不應(yīng)該包含超過(guò)指定該請(qǐng)求必要信息之外的其他信息,而且服務(wù)本身應(yīng)該在需要時(shí)主動(dòng)要求更多信息。如授權(quán)服務(wù),該服務(wù)由某應(yīng)用調(diào)用,旨在決定是否允許某特定用戶在某客戶數(shù)據(jù)上執(zhí)行某項(xiàng)功能——比如說(shuō):“我們的雇員Donald Jones是否被授權(quán)可以訪問(wèn)Acme Widgets company公司相關(guān)的財(cái)務(wù)數(shù)據(jù)?”。服務(wù)的簡(jiǎn)單版本可能具備處理某些特定情況的能力,在此特定情形下可以通過(guò)使用雇員功能對(duì)應(yīng)表來(lái)回答這些問(wèn)題。稍微復(fù)雜一點(diǎn)的版本可能會(huì)識(shí)別出Donald Jones屬于某個(gè)或多個(gè)組的成員,除了個(gè)人權(quán)限外還擁有該組的權(quán)限。再更近一步,授權(quán)服務(wù)可能會(huì)使用用戶證書(shū)去區(qū)別雇員和客戶,并允許客戶只能夠訪問(wèn)他們自己的數(shù)據(jù)。一個(gè)完善的版本可能會(huì)使用標(biāo)準(zhǔn)化的服務(wù)去調(diào)用業(yè)務(wù)流程管理系統(tǒng)或者項(xiàng)目管理系統(tǒng),詢(xún)問(wèn)Donald Jones是否已經(jīng)被賦予了任何我們和Acme Widgets交易相關(guān)的職責(zé)。更好的做法是,授權(quán)服務(wù)會(huì)記錄請(qǐng)求和應(yīng)答的日志,而簡(jiǎn)單的版本不會(huì)這樣做。組織可以從一個(gè)服務(wù)的版本切換到另一個(gè)而無(wú)需對(duì)調(diào)用服務(wù)的應(yīng)用做任何改變。

      也有可能設(shè)計(jì)出根據(jù)操作必需的條件自動(dòng)配置自己的通用服務(wù)。例如,授權(quán)服務(wù)可以檢查是否有服務(wù)可以告知它員工對(duì)某些特定客戶有職責(zé),并在該服務(wù)不可用的情況下決定只使用個(gè)人還是群組的訪問(wèn)權(quán)限。用這種方式,服務(wù)可以在很多組織之間復(fù)用。

      5.不要在測(cè)試上自尋煩惱
      為什么SOA更容易測(cè)試
      對(duì)SOA缺點(diǎn)的一種看法是測(cè)試?yán)щy。這種看法完全不恰當(dāng),原因有很多。

      首先,在SOA中使用元數(shù)據(jù)可以避免錯(cuò)誤被植入到系統(tǒng)中?梢栽谠獢(shù)據(jù)層次就對(duì)系統(tǒng)進(jìn)行驗(yàn)證,例如,保證所有需要處理的數(shù)據(jù)在使用前就被匯總并校驗(yàn)。在整個(gè)業(yè)務(wù)流程范圍內(nèi)都可以實(shí)現(xiàn)這點(diǎn)。當(dāng)你可以驗(yàn)證設(shè)計(jì)的時(shí)候就不要測(cè)試整個(gè)系統(tǒng)。

      其次,幾乎所有測(cè)試,包括所有系統(tǒng)集成測(cè)試,一旦測(cè)試基準(zhǔn)被建立后都可以自動(dòng)完成。但是,需要一些前提條件。表現(xiàn)層和業(yè)務(wù)執(zhí)行層必須被嚴(yán)格的區(qū)分。好在這是使用SOA的一種很自然的方式。對(duì)所有輸入,都應(yīng)該存在相應(yīng)的XSD。使用該XSD,可以生成測(cè)試記錄。同理,也可以生成帶有預(yù)期輸出結(jié)果的測(cè)試記錄。在測(cè)試過(guò)程中,不能產(chǎn)生可以證明系統(tǒng)運(yùn)行正常的任何輸出地方,必須在測(cè)試腳本中添加專(zhuān)門(mén)為此生成的附加輸出的查詢(xún)語(yǔ)句。當(dāng)測(cè)試開(kāi)始運(yùn)行時(shí),測(cè)試記錄被一條條輸入系統(tǒng),然后輸出的結(jié)果自動(dòng)和期望的結(jié)果進(jìn)行對(duì)比。這會(huì)產(chǎn)生一個(gè)異常列表,其中每項(xiàng)都應(yīng)仔細(xì)考慮。測(cè)試可以按需進(jìn)行。自然,測(cè)試的結(jié)果可能取決于存積在數(shù)據(jù)庫(kù)中的數(shù)據(jù),所以這點(diǎn)需要進(jìn)行彌補(bǔ)。而且,系統(tǒng)不可表現(xiàn)出時(shí)間相關(guān)的行為。系統(tǒng)必須有能力響應(yīng)每隔一段時(shí)間(它對(duì)自動(dòng)化測(cè)試序列更適合)就產(chǎn)生的事件,而不是花上一周時(shí)間去等待某個(gè)基于時(shí)間的觸發(fā)器被觸發(fā)。用戶界面的測(cè)試應(yīng)該單獨(dú)進(jìn)行,而且永遠(yuǎn)不在集成測(cè)試中使用。

      第三,SOA的設(shè)計(jì)趨向于產(chǎn)生更加健壯的系統(tǒng):系統(tǒng)出錯(cuò)的機(jī)會(huì)更少。SOA減少了信息系統(tǒng)為了協(xié)同工作而需要達(dá)成協(xié)議的因素?cái)?shù)量,這樣一來(lái),導(dǎo)致在某關(guān)鍵因素上產(chǎn)生分歧的設(shè)計(jì)錯(cuò)誤的概率也減少了。就算真的出錯(cuò),也能夠在造成損害之前檢測(cè)到。使用SOA,消息在被處理前會(huì)被驗(yàn)證,這樣可以判斷消息是否格式正確、是否符合相應(yīng)的XSD。

      可行性測(cè)試
      最后,作為數(shù)據(jù)庫(kù)時(shí)代特有的產(chǎn)物——測(cè)試環(huán)境和生產(chǎn)環(huán)境必須嚴(yán)格區(qū)分,從此不再需要了,而且有時(shí)候這也是不適合的。這是很有可能的,這是因?yàn)槲覀儾辉賹?shí)際進(jìn)行系統(tǒng)測(cè)試了,而是對(duì)測(cè)試通路和信息處理的方式進(jìn)行測(cè)試。SOA提供了三重安全的、有效區(qū)分測(cè)試消息和生產(chǎn)消息的方法。除了被封裝好的消息,其他每個(gè)消息自身和相應(yīng)的命名空間都包含版本號(hào)。而且每個(gè)消息都包含一個(gè)標(biāo)簽用以指示它是用于測(cè)試還是生產(chǎn)。所需的只是一個(gè)SOA網(wǎng)關(guān),它存在于防火墻內(nèi)部,對(duì)每條進(jìn)入消息進(jìn)行如下處理:

      校驗(yàn)消息以確定其是否與一個(gè)已知XSD的版本相符(被封裝好的消息除外)。
      使用我們對(duì)相應(yīng)XSD的副本對(duì)消息進(jìn)行校驗(yàn),以確定其是否有效。
      如果消息用于生產(chǎn)的,就驗(yàn)證消息版本號(hào)是否被允許用于生產(chǎn)。只有這樣,消息才能夠被傳遞到生產(chǎn)系統(tǒng)。其他所謂的“生產(chǎn)”消息都會(huì)被拒絕。
      如果消息用于測(cè)試,消息可能會(huì)被傳遞到指定的測(cè)試版系統(tǒng)。在特殊情況下,消息如果只是用來(lái)做數(shù)據(jù)檢索,那也有可能被傳遞到生產(chǎn)系統(tǒng)。
      只有在消息被完全測(cè)試過(guò)后,生產(chǎn)版本的注冊(cè)庫(kù)和XSD才能得以更新。
      這樣的處理方法不僅僅只是三重安全的,而且使得消息的路由能以一種合乎實(shí)際的方式得到測(cè)試。這也大大降低了從測(cè)試系統(tǒng)切換到生產(chǎn)系統(tǒng)時(shí)重新進(jìn)行配置的需求。因?yàn)檫@種重新配置天生就是不可測(cè)試的,常常成為錯(cuò)誤的根源。發(fā)布經(jīng)理只能通過(guò)在半夜或者周末發(fā)布新的版本軟件來(lái)彌補(bǔ)這類(lèi)錯(cuò)誤;這樣,就算新版本出現(xiàn)了任何錯(cuò)誤,也可以在有人發(fā)現(xiàn)錯(cuò)誤之前恢復(fù)到老版本。但如果這樣的變化影響到了其他組織那就沒(méi)有辦法這樣操作了。SOA發(fā)布管理要簡(jiǎn)單得多!

      我們對(duì)于SOA測(cè)試的一般認(rèn)識(shí)是時(shí)候該改變了。SOA是能夠把測(cè)試需求和設(shè)置測(cè)試的工作減少到最低的一種方案。它能使重要測(cè)試更自動(dòng)化的完成,結(jié)果也更好。


      完善之理論
      SOA使得信息系統(tǒng)的開(kāi)發(fā)和部署能夠比使用數(shù)據(jù)庫(kù)化的方法支持更為豐富的用戶體驗(yàn)。這樣的系統(tǒng)能夠涵蓋更多的信息格式、更廣的行為集合,其行為上也可以達(dá)到更高層次的統(tǒng)一和一致以及更加可靠,不管是從客戶還是從組織內(nèi)關(guān)注合規(guī)的人員的觀點(diǎn)來(lái)衡量。然而,要想獲得這些好處需要我們跟已有的數(shù)據(jù)庫(kù)方法實(shí)踐說(shuō)再見(jiàn)。

      6.始終信守你的諾言
      為什么數(shù)據(jù)庫(kù)不能一直信守諾言
      接收一個(gè)服務(wù)請(qǐng)求的動(dòng)作是通過(guò)定義一個(gè)承諾,即向請(qǐng)求者承諾服務(wù)請(qǐng)求會(huì)被執(zhí)行,來(lái)確定的。這種執(zhí)行定義了一個(gè)流程,其至少包含一個(gè)步驟,但通常是多個(gè)步驟。

      數(shù)據(jù)庫(kù)化的思考和流程不能融洽相處。從它們各自的本質(zhì)來(lái)看,數(shù)據(jù)庫(kù)就像是一個(gè)個(gè)孤島。而孤島會(huì)促使偏狹地思考問(wèn)題:任何孤島之外的東西都不重要?梢酝ㄟ^(guò)數(shù)據(jù)庫(kù)中的事務(wù)概念來(lái)形象地解釋這個(gè)問(wèn)題:某個(gè)工作單元把數(shù)據(jù)庫(kù)從一種一致性狀態(tài)轉(zhuǎn)移到另一個(gè)。在一些特殊的情況下,該概念可能會(huì)被擴(kuò)展到多個(gè)數(shù)據(jù)庫(kù),雖然可以通過(guò)兩階段提交技術(shù)來(lái)做,但這也有局限性。邏輯一致性可能需要貫穿整個(gè)業(yè)務(wù)流程得以維護(hù),而不只是恰好在某個(gè)時(shí)刻;需要在信息改變波及的所有地方去維護(hù),其中不僅包括數(shù)據(jù)庫(kù)還有流程管理系統(tǒng)、信息以及發(fā)送和接受信息的人工代理,而這一切從數(shù)據(jù)庫(kù)世界的觀點(diǎn)看來(lái)是完全陌生的。