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





