將面向服務(wù)架構(gòu)(SOA)應(yīng)用遷移到包括云在內(nèi)的虛擬資源池中是有一些棘手的。也許在SOA應(yīng)用中處理彈性資源池最大的問(wèn)題是,錯(cuò)誤地認(rèn)為SOA發(fā)布/登記流程完全掌握了資源的發(fā)放,但實(shí)際上這會(huì)在相當(dāng)程度上把事情復(fù)雜化。
許多情況下,SOA應(yīng)用針對(duì)虛擬資源進(jìn)行優(yōu)化所需的變化被局限在publication/syndication及編排流程,應(yīng)用架構(gòu)師很容易就能對(duì)其進(jìn)行規(guī)劃,并推動(dòng)這些更好地為未來(lái)準(zhǔn)備。在云爆發(fā)或組件變更會(huì)引發(fā)狀態(tài)保持的特殊情況下,特定流程必須按照次序進(jìn)行。這要由應(yīng)用架構(gòu)師來(lái)決定何時(shí)需要進(jìn)行虛擬資源調(diào)節(jié)以及如何優(yōu)化它們。
SOA應(yīng)用在高層將應(yīng)用用戶/服務(wù)用戶與服務(wù)及其組件通過(guò)登記流程進(jìn)行綁定。其目標(biāo)是讓應(yīng)用組件松耦合,甚至到允許應(yīng)用利用web服務(wù)描述語(yǔ)言(WDSL)動(dòng)態(tài)“購(gòu)買”組件的地步。組件被托管時(shí)“發(fā)布”到注冊(cè)流程—比方說(shuō),如果它是通過(guò)虛擬機(jī)器(VM)移動(dòng)功能遷移的話。
隨著資源分配變得越來(lái)越動(dòng)態(tài),注冊(cè)功能的性能變得重要起來(lái),其主要原因并非因?yàn)樗锌赡苡绊懙綉?yīng)用性能,而是由于對(duì)行動(dòng)緩慢的注冊(cè)流程的快速變更會(huì)出現(xiàn)在重新注冊(cè)期間要處理服務(wù)請(qǐng)求的風(fēng)險(xiǎn)。這會(huì)導(dǎo)致應(yīng)用的一部分與工作流失聯(lián),造成應(yīng)用的不穩(wěn)定。重新注冊(cè)的風(fēng)險(xiǎn)問(wèn)題可通過(guò)確保注冊(cè)流程迅速處理請(qǐng)求,以及在停掉(以及撤銷注冊(cè))舊位置的組件之前,一旦組件出現(xiàn)在新的位置時(shí)就首先注冊(cè)該組件來(lái)降低。
性能工作流以及動(dòng)態(tài)資源
并非所有動(dòng)態(tài)資源都是生而平等的;在VM移動(dòng)應(yīng)用中,通常是在數(shù)據(jù)中心之內(nèi)對(duì)機(jī)器進(jìn)行遷移,而在云端,組件可能被托管在千里之外。此類彈性問(wèn)題在于其對(duì)應(yīng)用工作流未來(lái)性能進(jìn)行優(yōu)化的影響。
在許多牽涉到服務(wù)總線協(xié)調(diào)和集成的應(yīng)用中,如果應(yīng)用組件托管在相互“網(wǎng)絡(luò)距離”遙遠(yuǎn)的地方,消息流延遲的累積會(huì)影響到應(yīng)用性能,這意味著由于地理距離及網(wǎng)絡(luò)跳轉(zhuǎn)很可能會(huì)經(jīng)歷顯著的傳輸延遲。而WDSL幾乎從來(lái)就沒(méi)有考慮過(guò)這一點(diǎn),因此訂購(gòu)組件的應(yīng)用有可能選到了一個(gè)距離太遙遠(yuǎn)的組件來(lái)支撐體驗(yàn)質(zhì)量目標(biāo)。
解決方案之一是讓W(xué)DSL適應(yīng)至少包括地理“區(qū)域”參考在內(nèi)的因素來(lái)進(jìn)行托管,以便運(yùn)行在特定地方的應(yīng)用會(huì)選擇復(fù)制于相同地理位置的組件。另一種辦法則是適應(yīng)訂購(gòu)方對(duì)注冊(cè)流程的處理,返回匹配請(qǐng)求方地理位置的組件。
這些方法哪一個(gè)最好,將取決于應(yīng)用架構(gòu)師能夠控制注冊(cè)流程的程度;開源工具很容易修改,但是專利工具可能就不允許修改,只能嘗試“給WDSL添加位置”的辦法。如果所有其他辦法都失效了,應(yīng)用用戶可以被定向到特定位置的注冊(cè)點(diǎn),確保不會(huì)選到地方太遠(yuǎn)的組件。當(dāng)然,所有這一切,都依賴于至少對(duì)組件托管時(shí)的存放位置有一些了解。要看一下云供應(yīng)商的管理能力,看看可以做哪些事情。
SOA協(xié)調(diào)及云爆發(fā)
在SOA/虛擬資源應(yīng)用中,協(xié)調(diào)本身會(huì)是一個(gè)復(fù)雜的因素。因?yàn)橄⒘髟诜⻊?wù)總線上合并,如果中間件采用的是真正集中化的總線架構(gòu)的話,協(xié)調(diào)點(diǎn)的位置會(huì)是性能的一個(gè)重要因素。允許直接將消息傳遞給后繼組件的更為分布式的消息管理,對(duì)于許多SOA應(yīng)用來(lái)說(shuō)并不實(shí)際,因?yàn)樗鼈兺ㄟ^(guò)業(yè)務(wù)流程執(zhí)行語(yǔ)言(BPEL)或別的工作流語(yǔ)言強(qiáng)加一種消息操縱邏輯。對(duì)于這些情況,選擇在哪里對(duì)應(yīng)用進(jìn)行協(xié)調(diào)對(duì)于讓SOA與動(dòng)態(tài)資源適配來(lái)說(shuō)至關(guān)重要。
對(duì)于企業(yè)來(lái)說(shuō),云內(nèi)的負(fù)載均衡或數(shù)據(jù)中心資源以及溢出云資源之間的云爆發(fā)正成為越來(lái)越有價(jià)值的應(yīng)用,但是這往往意味著未來(lái)工作共享需要復(fù)制多個(gè)組件出來(lái)。在設(shè)計(jì)心得SOA組件時(shí),考慮這一未來(lái)需要是明智的,因?yàn)樵S多組件會(huì)維持狀態(tài)或在多步事務(wù)中維持工作的上下文,因此無(wú)法在事務(wù)中被替換,否則的話狀態(tài)就會(huì)丟失。
Web或RESTful應(yīng)用設(shè)計(jì)學(xué)校一直倡導(dǎo)有客戶端來(lái)維持狀態(tài),但是在SOA中,甚至在某些中間件里,組件也會(huì)如此。當(dāng)應(yīng)用是通過(guò)BPEL在中間件/協(xié)調(diào)級(jí)創(chuàng)建時(shí),中間件狀態(tài)控制尤其常見,且盡管這種做法被SOA架構(gòu)師詆毀,在云爆發(fā)或負(fù)載均衡應(yīng)用中它有可能比由組件維持狀態(tài)更加靈活。如果不能確定的話,客戶端狀態(tài)管理是最好的!
如果為了利用資源的動(dòng)態(tài)性而加入容錯(cuò)設(shè)施,哪怕在云和虛擬應(yīng)用沒(méi)有負(fù)載均衡的情況下狀態(tài)也會(huì)成為問(wèn)題。許多架構(gòu)師忘記了如果狀態(tài)是由組件自身維護(hù)的話,它會(huì)在失敗時(shí)丟失,從而令追求快速動(dòng)態(tài)故障切換的目標(biāo)無(wú)法實(shí)現(xiàn)。在致力于包含有動(dòng)態(tài)故障切換的SOA應(yīng)用之前,應(yīng)該先檢查看看狀態(tài)是如何維持的,否則的話你有可能浪費(fèi)寶貴的時(shí)間,為某事準(zhǔn)備的ALM周期將無(wú)法正常工作。
注冊(cè)的控制、協(xié)調(diào)以及狀態(tài)是SOA動(dòng)態(tài)資源優(yōu)化的三大問(wèn)題。開始考慮這三點(diǎn)的應(yīng)用架構(gòu)師可能很快就能找到所有重要的問(wèn)題并正確處置。這是確保SOA應(yīng)用響應(yīng)云和虛擬化趨勢(shì)以及在未來(lái)應(yīng)用設(shè)計(jì)中正確地將其作為基石的最好方式。
核心關(guān)注:拓步ERP系統(tǒng)平臺(tái)是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://www.guhuozai8.cn/
本文標(biāo)題:SOA應(yīng)用開發(fā)和遷移不再難
本文網(wǎng)址:http://www.guhuozai8.cn/html/consultation/1083939676.html