凌盛 王余旺
(1.安徽理工大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,安徽 淮南 232001;2.現(xiàn)代教育技術(shù)中心 安徽理工大學(xué)網(wǎng)絡(luò)中心,安徽 淮南 232001)
FLEX的開發(fā)環(huán)境就是FlexBuilder,利用FlexBuilder,開發(fā)者可以通過拖拽方式開發(fā)人機(jī)界面。FLEX是排版打印軟件和圖形渲染軟件巨頭Adobe公司在其著名的FLASH平臺(Flash Player)上,用ActionScript語言開發(fā)的一套RIA軟件開發(fā)套件(SDK)及其集成開發(fā)環(huán)境。
FLEXSDK由Flex框架類庫,F(xiàn)LEX編譯器,調(diào)試器,MXML和ActionScript編程語言以及其他工具組成。
在基于HTML的網(wǎng)頁開發(fā)中,我們用HTML標(biāo)記語言進(jìn)行布局,用javascript語言操作HTML組件。FLEX中也混合使用兩種類似的語言來進(jìn)行應(yīng)用開發(fā),它們是MXML和ActionScript。與HTML類似,MXML是一種XML標(biāo)記語言,使用它能方便快捷地完成人機(jī)界面組件的布局。與javascript類似,ActionScript是一種腳本語言,用來操作MXML組件。MXML與HTML的不同的是:MXML擁有更豐富,表現(xiàn)力更強(qiáng)的標(biāo)記集合。MXML還包括了一些人機(jī)交互無關(guān)的不可忽視組件的標(biāo)記??梢詳U(kuò)展已有的MXML標(biāo)記形成新的自定義MXML標(biāo)記,而應(yīng)用中的MXML代碼最終會被編譯到SWF文件中,然后在FlashPlayer中運(yùn)行。
FLEX 應(yīng)用程序運(yùn)行在客戶端環(huán)境中,若干個這樣的應(yīng)用程序連同服務(wù)器共同組成了一個完整的應(yīng)用。這些程序需要服務(wù)器提供數(shù)據(jù)或其他服務(wù),BlazeDS為這種通信方式提供了穩(wěn)定,高效的支持。
BlazeDS的消息服務(wù)支持建立在HTTP協(xié)議之上的消息發(fā)布及訂閱。Adobe Flex或者AJAX客戶端通過訂閱一個或多個主題以接受服務(wù)器推送來的數(shù)據(jù)。使用此服務(wù),開發(fā)者能夠創(chuàng)建實(shí)時協(xié)作或者數(shù)據(jù)推送應(yīng)用程序。BlazeDS在應(yīng)用系統(tǒng)中所處的地位如:圖1所示
文中介紹的企業(yè)應(yīng)用可以運(yùn)行在以下環(huán)境中:1)服務(wù)器端:操作系統(tǒng):windows/linux 數(shù)據(jù)庫:mysql。2)客戶端:操作系統(tǒng):windows/linux瀏覽器:IE/Firefox
展現(xiàn)層主要負(fù)責(zé)信息展示以及用戶與軟件之間的交互邏輯,“展現(xiàn)層”接受用戶輸入并將用戶的意圖轉(zhuǎn)換為對“領(lǐng)域?qū)印被颉皵?shù)據(jù)源層”邏輯的調(diào)用。領(lǐng)域?qū)右脖环Q為“業(yè)務(wù)邏輯層”,主要解決應(yīng)用針對業(yè)務(wù)領(lǐng)域的問題,該層負(fù)責(zé)校驗(yàn)來自“展現(xiàn)層”的輸入數(shù)據(jù),根據(jù)“展現(xiàn)層”用戶指令進(jìn)行業(yè)務(wù)邏輯處理,調(diào)用“數(shù)據(jù)源層”的邏輯實(shí)現(xiàn)數(shù)據(jù)的訪問和持久化。數(shù)據(jù)源層主要負(fù)責(zé)數(shù)據(jù)訪問和持久化,數(shù)據(jù)可能來自于數(shù)據(jù)庫或者其他文件。
表1
Flex+JAVA開發(fā)的應(yīng)用中,“展現(xiàn)層”邏輯完全運(yùn)行在客戶端的FLASH虛擬機(jī)中,而“領(lǐng)域?qū)印焙汀皵?shù)據(jù)源層”邏輯則運(yùn)行在服務(wù)器端的java虛擬機(jī)中,如圖2所示
圖2 Flex+java企業(yè)應(yīng)用層次邏輯分布圖
開發(fā)異構(gòu)異構(gòu)系統(tǒng)的時候,如何進(jìn)行通信和傳遞數(shù)據(jù),使用FLEX+JAVA開發(fā)基于B/S結(jié)構(gòu)企業(yè)應(yīng)用,客戶端和服務(wù)器端的通信協(xié)議是HTTP協(xié)議。在FLEX中,基于HTTP協(xié)議訪問服務(wù)器的通信組件有三個:
HttpService
WebService
RemoteObject
在企業(yè)應(yīng)用開發(fā)中大部分都使用RemoteObject完成的,RemoteObject組件在BlazeDS的配合下能夠調(diào)用后臺服務(wù)器對象上的方法,從而實(shí)現(xiàn)客戶端與服務(wù)器端的通信。下面給出一段代碼展示RemoteObject對象的使用:
上面代碼中,首先使用語句:
將RemoteObject對象的destionation屬性賦值為“SalaryManager”,destionation屬性表示遠(yuǎn)程對象調(diào)用的“目的地”,請求發(fā)送到服務(wù)器端后,服務(wù)器端的“第三方軟件”接收到請求后會檢查配置文件,找到destionation值所映射的“服務(wù)器端組件”,從而可以調(diào)用該組件上的方法。接下來使用語句:
設(shè)置遠(yuǎn)程服務(wù)調(diào)用成功時的處理方法,使用語句:
設(shè)置遠(yuǎn)程服務(wù)調(diào)用失敗時的處理方法。最后使用語句:
以deptComboBox,selectedItem,data為參數(shù),調(diào)用destionation屬性所映射的“服務(wù)器端組件”的getList方法。這里“服務(wù)器組件”必須有一個名為getList的公開方法,調(diào)用“服務(wù)器端組件”的getList方法是異步調(diào)用的,因此它不會阻塞線程來等待調(diào)用結(jié)果的返回。
文中提出的FLEX+JAVA的開發(fā)模式,主要目的就是解決當(dāng)前WEB應(yīng)用中人機(jī)界面單調(diào),交互性弱,開發(fā)效率低下,用戶體驗(yàn)差等一系列問題,旨在開發(fā)出瀏覽器能夠運(yùn)行同C/S應(yīng)用一樣甚至遠(yuǎn)超C/S應(yīng)用交互能力的Web應(yīng)用。
[1]曲鵬東、孫高飛、姜健衛(wèi).Flex企業(yè)應(yīng)用開發(fā)實(shí)戰(zhàn).2010.4.
[2]曾皓.多語種軟件構(gòu)件庫的分類與檢索[D].北京:中國科學(xué)院研究生院;2008.
[3]徐明、黃云森、陳可期.教學(xué)資源庫建設(shè)策研究[J].中山大學(xué)學(xué)報(bào).自然科學(xué)版;2002,41:114-117.
[4]整合Sirras+Hibernate+Spring應(yīng)用開發(fā)詳解.北京:清華大學(xué)出版社;2007.
[5]朱莉娟、張潔.基于w出平臺的信息管理系統(tǒng)的研究[J].微計(jì)算機(jī)信息;2008.
[6]劉金曉.web應(yīng)用系統(tǒng)中權(quán)限控制的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì);2008.
[7]蔡長安.基于B/S模式的學(xué)生信息管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì).2006,27(14):2585-2587.