怎樣讓SOA和移動(dòng)情境應(yīng)用顯有更有成效
在一個(gè)企業(yè)準(zhǔn)備使用移動(dòng)情境應(yīng)用來(lái)為生產(chǎn)提供更好的效率的同時(shí)也為IT專業(yè)人士們帶來(lái)了很多新的設(shè)計(jì)挑戰(zhàn)。
對(duì)于大部分企業(yè)來(lái)說(shuō),下一步計(jì)劃是要,在某一個(gè)活動(dòng)點(diǎn)上,讓工作人員通過(guò)使用移動(dòng)設(shè)備而獲得更多權(quán)限,從而提高企業(yè)生產(chǎn)效率。這些新應(yīng)用程序通常需要不同的設(shè)計(jì)實(shí)踐,其中包括界面和組件模型的設(shè)計(jì)。許多案例分析發(fā)現(xiàn),這些應(yīng)用程序涉及到Web前端因素和RESTful原理。
與此同時(shí),這些可以提升生產(chǎn)效率的應(yīng)用程序或許也包含應(yīng)用SOA原理的各種組件。要想梳理清其中的內(nèi)容,架構(gòu)師們應(yīng)該使用信息呈現(xiàn)的分層應(yīng)用原則,仔細(xì)檢查應(yīng)用程序的背景和狀態(tài)控制,并重新思考一些界面和ALM的設(shè)計(jì)問(wèn)題。
在移動(dòng)情境應(yīng)用的使用過(guò)程中,工作人員可以通過(guò)在屏幕上使用移動(dòng)設(shè)備而獲得制定任務(wù)的一些信息或者幫助。從近期的一些實(shí)例中我們可以看到,通過(guò)傳統(tǒng)的應(yīng)用程序雖然也可以獲取到任務(wù)信息,但是在這種特殊的環(huán)境中,工作人員要想以這種普通的方式訪問(wèn)任務(wù)信息而是非常苦難或者徒勞。這同時(shí)也意味著,移動(dòng)情境應(yīng)用是根據(jù)具體的信息服務(wù)而設(shè)計(jì)的,這樣就符合設(shè)備的輸送限制,可以對(duì)工作人員的導(dǎo)航菜單起到限制的作用,同時(shí)與傳統(tǒng)應(yīng)用程序之間形成一條明顯的界限。
情境應(yīng)用模型
許多架構(gòu)師發(fā)現(xiàn),一款應(yīng)用程序的邏輯模型就是可以識(shí)別設(shè)備、識(shí)別情境的敏捷前端的邏輯模型,從現(xiàn)有應(yīng)用程序的組件中提取有價(jià)值的信息,但是,千萬(wàn)不要替換掉專門為組件構(gòu)建所設(shè)計(jì)的應(yīng)用程序。這樣,移動(dòng)情境服務(wù)就可以非常好的融合到現(xiàn)有的應(yīng)用程序中,其中包括ALM.
我們的目標(biāo)是,在不破壞現(xiàn)有應(yīng)用程序模型的前提下,增加應(yīng)用程序的敏捷性和靈活性。我們接下來(lái)要使用Web技術(shù)建立GUI和應(yīng)用程序門戶,將現(xiàn)有應(yīng)用程序和組件的變化隔離出來(lái)。
分層應(yīng)用程序很常見(jiàn),但是,移動(dòng)情境服務(wù)卻帶來(lái)了兩個(gè)問(wèn)題:應(yīng)用程序大規(guī)模的情境和性能。該情境可能部分來(lái)自于移動(dòng)服務(wù)(定位服務(wù)),但是同樣也需要工作人員輸入一些內(nèi)容。大規(guī)模性能意味著,要對(duì)可用性和延遲進(jìn)行明確的界定,即使是許多工作人員同時(shí)使用該應(yīng)用時(shí),也要確保滿足上述要求。后者是非常重要的,因?yàn)椋刖_地預(yù)測(cè)同一時(shí)刻具體的活動(dòng)數(shù)是非常困難的。
工作人員情境對(duì)于多步驟任務(wù)的階段進(jìn)展是非常重要的。實(shí)際上,所有移動(dòng)情境服務(wù)都會(huì)對(duì)期望任務(wù)進(jìn)行一種特定的序列界定,這樣就會(huì)滿足最小范圍的工作人員互動(dòng)。我們可以在服務(wù)或者應(yīng)用程序中維護(hù)擴(kuò)展后的狀態(tài)。對(duì)于任何一種機(jī)制來(lái)說(shuō)這種方法都是適用的,但是,這種狀態(tài)管理的信息量非常大。要注意的是,維護(hù)設(shè)備狀態(tài)可以改善移動(dòng)網(wǎng)絡(luò)流量和網(wǎng)絡(luò)延遲。
性能管理
同樣,應(yīng)用程序的狀態(tài)管理也存在缺陷。軟件組件中為用戶維護(hù)的狀態(tài)時(shí)難以復(fù)制的。要格外注意Web前端任務(wù)的擴(kuò)大和縮小設(shè)計(jì),確保狀態(tài)信息不會(huì)太復(fù)雜。這通常意味著,應(yīng)該在應(yīng)用程序的Web前端流程與遺留SOA應(yīng)用程序流之間的網(wǎng)關(guān)組件中適用狀態(tài)控制管理和情境控制管理。
當(dāng)我們正在使用后端狀態(tài)控制管理時(shí),最好是對(duì)負(fù)載均衡和縮放控制進(jìn)行可視化處理。首先,包括Web前端組件在內(nèi),都要是無(wú)狀態(tài)的,或者是要依賴移動(dòng)設(shè)備的狀態(tài)和情境。其次,要為實(shí)際的應(yīng)用程序組件設(shè)立一個(gè)信息入口,引入后端狀態(tài)控制。為了避免狀態(tài)數(shù)據(jù)庫(kù)在地理位置上過(guò)于分散,我們應(yīng)該在前端組件中設(shè)置一種特定的網(wǎng)關(guān)入口。
前端和網(wǎng)關(guān)組件的組合集成為虛擬用戶的現(xiàn)有應(yīng)用程序組件,就如通過(guò)SOA和REST使組件彼此相連一樣。移動(dòng)情境服務(wù)與正常的工作流程相比有較多的交叉性,因此,不能在轉(zhuǎn)向和測(cè)序中使用現(xiàn)有的服務(wù)總線邏輯模型。如果這樣做了,他們或許也必須適用于BPEL.在同一種邏輯模型中,同時(shí)要適應(yīng)無(wú)線移動(dòng)網(wǎng)絡(luò)或者情境輸入和正常的工作流程。
無(wú)論是建議改變現(xiàn)有組件計(jì)劃適應(yīng)移動(dòng)情境的使用,還是在組件數(shù)據(jù)包中加入新的信息元素,這種雙元性或許都會(huì)打破現(xiàn)有的界面模型。如果組件數(shù)據(jù)模型發(fā)生改變,我們也要對(duì)BPEL進(jìn)行修改,以此降低其對(duì)遺留工作流程系統(tǒng)的影響。
另一方面的影響就是ALM.因?yàn)橐苿?dòng)情境服務(wù)在工作流程中大多都是以事件為導(dǎo)向的,因此傳統(tǒng)的ALM也許會(huì)失去其相關(guān)性。我們很可能要在每一個(gè)應(yīng)用程序元素、獨(dú)立測(cè)試或者工作流程以及人員工作環(huán)境認(rèn)證的單元組件行為模型方面格外留心。如果我們能夠?qū)⒐ぷ魅藛T的活動(dòng)是為個(gè)人化工作流程,那么其對(duì)整個(gè)設(shè)計(jì)都會(huì)有促進(jìn)的效果。但是,我們也有可能對(duì)ALM中操作實(shí)踐的更改進(jìn)行適當(dāng)?shù)恼{(diào)整,從而確保能覆蓋所有情境。
如果移動(dòng)性成為賦予工作人員的一項(xiàng)權(quán)利,那么為了適應(yīng)移動(dòng)情境服務(wù)所付出的努力將會(huì)對(duì)應(yīng)用程序設(shè)計(jì)的修改產(chǎn)生主要影響。我們要記住的是,對(duì)移動(dòng)工作人員提供更多的支持就是為迎接未來(lái)的移動(dòng)世界做更好的準(zhǔn)備。