SOA和云架構(gòu)設(shè)計更多的是在企業(yè)架構(gòu)的應(yīng)用架構(gòu)和技術(shù)架構(gòu)層面,然后才過渡到單個應(yīng)用的架構(gòu)設(shè)計約束,因此也可以理解為是傳統(tǒng)軟件架構(gòu)設(shè)計更加上層的一個內(nèi)容。SOA和云架構(gòu)設(shè)計更加確切點來說應(yīng)該是基于SOA和云計算思想的架構(gòu)設(shè)計改進,而不是對面向?qū)ο蠹軜?gòu)設(shè)計思想的否定。
SOA思想強調(diào)的解耦,解耦思想最終落實到架構(gòu)設(shè)計中是業(yè)務(wù)能力組件化,組件間的交互通過服務(wù)接口進行,粗粒度的服務(wù)本身就體現(xiàn)了松耦合,解耦不僅僅是組件的應(yīng)用層,還包括了數(shù)據(jù)庫和數(shù)據(jù)層都能夠自成一套可以獨立進行需求,設(shè)計,開發(fā),測試和運維的全生命周期管理。另外為了最大限度的解耦,還需要借助消息中間件或服務(wù)總線,還需要考慮盡可能將同步服務(wù)轉(zhuǎn)換為異步服務(wù)設(shè)計。
SOA思想強調(diào)的粗粒度,在架構(gòu)設(shè)計中需要考慮的是不同的業(yè)務(wù)系統(tǒng),組件或模塊間只需要暴露需要暴露的服務(wù)能力而高內(nèi)聚的屏蔽內(nèi)部的數(shù)據(jù)和業(yè)務(wù)的復雜性。同時組件之間的交互要盡可能的減少傳統(tǒng)意義上的數(shù)據(jù)庫層的數(shù)據(jù)集成,數(shù)據(jù)集成和同步一方面是數(shù)據(jù)多點落地帶來的數(shù)據(jù)實時性和一致性方面的問題,一方面是數(shù)據(jù)的集成同步導致大量組件內(nèi)部邏輯外泄。同時盡量在架構(gòu)設(shè)計過程中遵循領(lǐng)域設(shè)計和建模的思路,即在數(shù)據(jù)庫上抽象領(lǐng)域?qū)ο髮,以屏蔽底層?shù)據(jù)模型細節(jié)。
SOA思想強調(diào)的可復用,在傳統(tǒng)的架構(gòu)設(shè)計中本身就有一個重要步驟即可復用的組件的抽取,可復用的組件朝外提供的服務(wù)能力自然也是可復用的服務(wù),這是其一。傳統(tǒng)架構(gòu)設(shè)計中進行完模塊和組件劃分后,需要考慮組件之間的接口設(shè)計,那么在接口設(shè)計中需要考慮接口本身的服務(wù)化設(shè)計,接口本身的可復用性設(shè)計。對于底層技術(shù)組件或共享數(shù)據(jù)組件的可復用大家比較容易理解,而對于業(yè)務(wù)服務(wù)的可復用重點則在于可以復用到多個不同的業(yè)務(wù)場景或業(yè)務(wù)流程中服務(wù)的組合和組裝。
SOA思想強調(diào)的服務(wù)本身的靈活組合和組裝,這個內(nèi)容往往偏EA架構(gòu)設(shè)計層面的內(nèi)容,即需要從端到端的業(yè)務(wù)流程層面來識別和分析服務(wù)。傳統(tǒng)的架構(gòu)設(shè)計往往關(guān)注的是一個個核心用例功能點,而服務(wù)組裝編排關(guān)注的則是跨多個業(yè)務(wù)功能點的流程協(xié)同。提出這個的原因也正是,當我們在企業(yè)內(nèi)規(guī)劃和建設(shè)一個全新的系統(tǒng)時候,務(wù)必先考慮該系統(tǒng)在整個企業(yè)應(yīng)用架構(gòu)體系中的位置,該系統(tǒng)和其它業(yè)務(wù)系統(tǒng)間的橫向縱向業(yè)務(wù)系統(tǒng)關(guān)系,然后再過渡到系統(tǒng)內(nèi)架構(gòu)設(shè)計。
對于單個系統(tǒng),前面專門有文章談過基于SOA的架構(gòu)設(shè)計要點,這里再重點描述下即,單個系統(tǒng)能夠組件化設(shè)計,組件之間能夠做到從數(shù)據(jù)庫到應(yīng)用層相對獨立,組件之間只能通過服務(wù)接口交互,這個重點解決了組件間的橫向協(xié)同問題;其次,單個組件的設(shè)計建議的方法還是遵循領(lǐng)域建模的思路,最好是在原來的分層技術(shù)架構(gòu)上,增加專門的服務(wù)層,即對于單個組件縱向來說也通過服務(wù)層來實現(xiàn)底層領(lǐng)域服務(wù)邏輯和上層界面展現(xiàn)和服務(wù)組裝的分離。對于組件縱向可以采用傳統(tǒng)API服務(wù)接口,而對于組件橫向則采用WebService接口來實現(xiàn)進一步的解耦。
從以上分析來說,當我們談到SOA架構(gòu)設(shè)計的時候,不要一開始就被消息中間件,ESB服務(wù)總線等內(nèi)容誤導,如果沒有充分的考慮SOA思想內(nèi)涵并在傳統(tǒng)的架構(gòu)設(shè)計中引入SOA思想,那么即使采用了ESB服務(wù)總線最終也可能只起到了簡單的接口平臺的作用。
接著談下云的思想,云思想的核心是終端能力朝云端的遷移,即集中化。SOA雖然強調(diào)了復用,但是這個復用可能還是在原來單個業(yè)務(wù)系統(tǒng)內(nèi)部建設(shè),然后再將服務(wù)能力共享出來,而云的思想更多的則考慮建設(shè)都不在傳統(tǒng)的單個系統(tǒng)內(nèi)部了,而應(yīng)該集中化建設(shè),能力集中提供,這個集中化提供的地方即平臺。基于這個思想需要注意到的就是對于傳統(tǒng)的軟件架構(gòu)設(shè)計而言,由于關(guān)注的是單個業(yè)務(wù)系統(tǒng),可復用的組件或能力還在系統(tǒng)內(nèi)部,而到了云架構(gòu)設(shè)計階段,關(guān)注的是企業(yè)內(nèi)整個應(yīng)用和技術(shù)架構(gòu)體系,因此這些可復用的內(nèi)容從傳統(tǒng)的系統(tǒng)內(nèi)轉(zhuǎn)化到了完全的系統(tǒng)外,這個是云架構(gòu)設(shè)計思想下很重要的一個轉(zhuǎn)變,即準備有了完全獨立于系統(tǒng)外的可為多個業(yè)務(wù)系統(tǒng)提供服務(wù)能力的云平臺。這個云平臺不是簡單的IaaS平臺,而更多是PaaS層面的流程平臺,數(shù)據(jù)平臺,集成平臺,技術(shù)平臺等。
云思想強調(diào)無限伸縮,對應(yīng)到架構(gòu)設(shè)計中即可擴展性,對于傳統(tǒng)的架構(gòu)設(shè)計我們更加關(guān)注的是組件或接口本身的技術(shù)可擴展性,而比較少關(guān)注業(yè)務(wù)系統(tǒng)本身所對應(yīng)的IT基礎(chǔ)設(shè)施或平臺本身的資源彈性伸縮擴展性,這個在架構(gòu)設(shè)計中也是可以考慮引入的,包括各種分布式存儲,分布式處理和計算,數(shù)據(jù)拆分,對PaaS資源托管平臺的統(tǒng)一接入和適配等。
最后,在涉及到云架構(gòu)設(shè)計的時候,需要考慮多租戶設(shè)計,多租戶設(shè)計和傳統(tǒng)架構(gòu)設(shè)計中的多組織設(shè)計還有些區(qū)別,租戶往往有更加嚴格的資源隔離和資源流量控制要求,而不僅僅是數(shù)據(jù)訪問上的隔離。還有就是在基于云架構(gòu)設(shè)計中,需要重點考慮自服務(wù)模式,即圍繞服務(wù)全生命周期的管控來考慮云的能力的服務(wù)化提供。
核心關(guān)注:拓步ERP系統(tǒng)平臺是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊涵了豐富的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)載請注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文網(wǎng)址:http://www.ezxoed.cn/html/consultation/10839615959.html