淺談SOA實(shí)踐:云計算敏捷化的目標(biāo)

責(zé)任編輯:editor005

2015-01-16 14:27:53

摘自:比特網(wǎng)

重新回顧“敏捷” DevOps、SOA重用和敏捷設(shè)計之間的矛盾使開發(fā)人員意識到,敏捷開發(fā)與敏捷運(yùn)行編程并不是一回事??梢哉f,服務(wù)化組件設(shè)計會使云計算敏捷性不同于應(yīng)用程序敏捷性或者設(shè)計敏捷性。

云計算幾乎代表了IT變革。其中一個被大家公認(rèn)的云變革驅(qū)動因素是,當(dāng)客戶需要或者有機(jī)會的時候應(yīng)用程序需要變得更加敏捷或者對環(huán)境變化要更加迅速地響應(yīng)??紤]到應(yīng)用程序中SOA占據(jù)了主要地位,將SOA實(shí)踐作為云計算敏捷化目標(biāo)是非常重要的抉擇。對于云計算和應(yīng)用程序架構(gòu)師來說,這就意味著:

理解敏捷究竟是什么意思

深入研究SOA能做什么,以及應(yīng)該做什么 應(yīng)用SOA敏捷性來解除體系架構(gòu)的限制。

對于許多SOA架構(gòu)師來說,“SOA敏捷設(shè)計”這一步驟看起來是多余的。起初,SOA其中一個目標(biāo)是要鼓勵敏捷。SOA敏捷設(shè)計所面臨的主要問題是要重新定義敏捷,使之能追蹤到SOA的體系結(jié)構(gòu)和工作流程。

敏捷開發(fā)非常受Web歡迎,這意味著,在團(tuán)隊交互和迭代進(jìn)行中,通過一系列網(wǎng)絡(luò)活動的廣泛協(xié)作可以創(chuàng)建一些應(yīng)用程序?;诟鹘M件間的重用和松耦合原則,設(shè)立了SOA敏捷目標(biāo),因此激發(fā)新應(yīng)用程序中組件重用功能。

結(jié)合SOA組件化原則,調(diào)整現(xiàn)代敏捷設(shè)計理念 應(yīng)用程序結(jié)構(gòu)也許會成為協(xié)調(diào)SOA組件化與敏捷理念同步的關(guān)鍵要素。應(yīng)用程序架構(gòu)的業(yè)務(wù)功能基本上是應(yīng)用程序中程序語言的聲明部分。良好的應(yīng)用影響架構(gòu)應(yīng)該區(qū)分出應(yīng)用程序的所有功能模塊,從而,恰當(dāng)?shù)亓私庵赜脵C(jī)會。當(dāng)然,對于新項目來說,可以借助應(yīng)用程序敏捷化的傳統(tǒng)的現(xiàn)代理念來設(shè)計功能架構(gòu),并以此作為組件化的基礎(chǔ)。

這里的問題是,幾乎所有的敏捷開發(fā)都是針對于SOA組件化環(huán)節(jié)而不是制作環(huán)節(jié)。架構(gòu)師們努力保留下來目前的組件架夠來節(jié)省交易成本,這樣只能使問題越來越糟糕。SOA組件化中存在的最大一個問題并不是組件化沒有用,而是并沒有應(yīng)用組件化。每一個架構(gòu)師都知道,重用是一個重要的目標(biāo),但是,許多架構(gòu)師沒有在設(shè)計階段強(qiáng)制的將重用環(huán)節(jié)加入到組件化中。

解決這個問題的唯一方法是,當(dāng)敏捷設(shè)計開發(fā)識別出重用機(jī)會時,也就是說現(xiàn)有組件不能很好的支持敏捷開發(fā)時,應(yīng)該使用授權(quán)指令,此時,為了適應(yīng)敏捷開發(fā),就要對組件進(jìn)行更改。大多數(shù)企業(yè)會發(fā)現(xiàn),這種方法會使他們組件從邏輯組件化程序的失敗陰影中走出來。

只有一開始就逐層向下的使用功能架構(gòu),才能確保真正的實(shí)現(xiàn)迭代和不同團(tuán)隊之間的協(xié)作。首先,定義組件的界面設(shè)置,然后,通過協(xié)作關(guān)系來填充業(yè)務(wù)邏輯。哪里有需要,這些高等級組件可以被分解為較低等級的架構(gòu)。然而,最好是保持原始功能的組件模式,以確保團(tuán)隊之間的敏捷化協(xié)作不會因?yàn)榧軜?gòu)的改變而終止。

應(yīng)用BPEL查找問題

一種查找本應(yīng)在云計算環(huán)境中成功運(yùn)行的組件問題的方法是,查看現(xiàn)有應(yīng)用程序的業(yè)務(wù)流程執(zhí)行語言(BPEL)中的工作流程編排。例如,當(dāng)兩個不同的功能被同一個BPEL調(diào)用時,或者當(dāng)BPEL出于不同的原因在不同的工作流程中執(zhí)行相同的任務(wù)時,都要使用BPEL。任何一種情況都會發(fā)出非結(jié)構(gòu)化組件調(diào)整信號。

盡管,通過組件重用,SOA組件化可以對敏捷開發(fā)起到支持的作用,但是同時也會產(chǎn)生嚴(yán)格的流程相互關(guān)系,這種關(guān)系會阻礙云計算中的敏捷開發(fā)項目。BPEL或者工作流程也同樣會發(fā)出異常信號。如果BPEL的編排很稀缺,這也許說明,組件中包含了太多的業(yè)務(wù)邏輯。根據(jù)用戶的反饋,這就是SOA組件化和重用技術(shù)“脫軌”的主要原因。

BPEL編程增加了應(yīng)用程序中自動化應(yīng)用編程和整合流程編程的潛在影響。云環(huán)境中經(jīng)常會應(yīng)用 DevOps工具來部署和集成應(yīng)用程序。恰當(dāng)?shù)刂С諨evOps,同時也可以使開發(fā)任務(wù)識別組件化和敏捷妥協(xié)。

如果組件重用成功的話,那么,新應(yīng)用程序的許多組件也可以被應(yīng)用到其他方面。當(dāng)證實(shí)該結(jié)論并非正確時,它就可能暗示,目前的組件太過于特殊化了而不能滿足之前SOA組件化標(biāo)準(zhǔn)。

重新回顧“敏捷” DevOps、SOA重用和敏捷設(shè)計之間的矛盾使開發(fā)人員意識到,敏捷開發(fā)與敏捷運(yùn)行編程并不是一回事。重新成像或者普通成像都可以應(yīng)用組件重用技術(shù),然而后者符合了現(xiàn)代化媽服務(wù)設(shè)計原則。即使最先進(jìn)的云設(shè)計也沒有對組件的服務(wù)化調(diào)度進(jìn)行授權(quán),但是事情確實(shí)以這種方式發(fā)展。

可以說,服務(wù)化組件設(shè)計會使云計算敏捷性不同于應(yīng)用程序敏捷性或者設(shè)計敏捷性。當(dāng)具備服務(wù)功能后,組件實(shí)現(xiàn)了多租戶操作、根據(jù)運(yùn)行的實(shí)例數(shù)水平擴(kuò)展、以及彈性負(fù)載均衡和狀態(tài)管理的功能。大多數(shù)SOA設(shè)計還未被授權(quán)。展望未來,當(dāng)考慮到云計算的敏捷SOA時,這將會是服務(wù)化領(lǐng)域最后的要求。同時也為以后的開發(fā)省去許多麻煩。

原文鏈接:http://cloud.chinabyte.com/134/13115634.shtml

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號-6京公網(wǎng)安備 11010502049343號