• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Flex與J2EE的整合應用

      2010-06-13 02:11:00趙中樞
      科技傳播 2010年19期
      關鍵詞:表示層數(shù)據(jù)服務服務器端

      趙中樞

      遼寧對外經(jīng)貿(mào)學院 信息技術系,遼寧大連 116052

      基于Flex與J2EE的整合應用

      趙中樞

      遼寧對外經(jīng)貿(mào)學院 信息技術系,遼寧大連 116052

      Flex作為一種RIA技術,與企業(yè)級開發(fā)技術緊密聯(lián)系,開發(fā)完整的Flex系統(tǒng)可能會整合如Struts、Spring、Hibernate等技術。本文主要探討了Flex和J2ee技術整合的有效性和實用性,提出了企業(yè)應用的整合方案。

      RIA;Flex;j2ee

      0 引言

      傳統(tǒng)的Web開發(fā),在表示層受到非常大的約束?;赗IA的Flex技術不僅輕松解決了所有表示層的技術問題,讓客戶感受前所未有的Web應用體驗,更主要的是,基于純面向?qū)ο蠛徒M件的架構(gòu),讓B/S結(jié)構(gòu)表示層的開發(fā),層次分明、結(jié)構(gòu)完整協(xié)調(diào)。

      Flex技術并不需要替換掉現(xiàn)有的體系結(jié)構(gòu)模型[1],如JavaEE、.NET架構(gòu)等。通??梢院推髽I(yè)級應用體系結(jié)構(gòu)很好地進行整合。將原有的系統(tǒng)構(gòu)建成更易用、更直觀、更迅速的“網(wǎng)頁應用程序”。在不會影響到原有應用的前提下,對表現(xiàn)層進行了大幅度的增強,進一步提升界面的友好程度,并且減少了用戶與系統(tǒng)的遠程交互頻率,減少了帶寬需求。

      1 Flex技術

      1.1 Flex技術簡介

      Flex是排版打印軟件和圖形渲染軟件巨頭Adobe公司在其著名的Flash平臺(Flash Player)上,用ActionScript語言開發(fā)的一套RIA軟件開發(fā)套件(SDK)及其集成開發(fā)環(huán)境。

      Flex SDK由Flex框架類庫、Flex編譯器、調(diào)試器、MXML和ActionScript編程語言以及其他工具組成。Flash Builder則是其集成開發(fā)環(huán)境,F(xiàn)lash Builder構(gòu)建在開源集成開發(fā)環(huán)境Eclipse之上,目前版本是Flash Builder 4。利用Flash Builder,開發(fā)者可以通過拖拽的方式開發(fā)人機界面,用ActionScript 3語言編寫代碼,調(diào)用Flash及Flex SDK所提供的API進行RIA開發(fā),然后用Flash Builder編譯器進行編譯,編譯后的產(chǎn)品可以運行在Flash虛擬機中,同時Flash Builder集成了調(diào)試工具和性能查看工具,可以跟蹤ActionScript代碼的執(zhí)行和觀察內(nèi)存變化。

      1.2 Flex程序運行機制

      在設計階段,開發(fā)人員將通過開發(fā)工具(如Eclipse或Flex Builder)進行表現(xiàn)頁面MXML與ActionScript代碼的編寫,其中MXML主要負責頁面的顯示功能,ActionScript負責部分業(yè)務和數(shù)據(jù)服務的交互功能。在編譯階段,所有與Flex應用程序有關的組件,包括MXML,ActionScript,CSS樣式表[2],以及圖像資源,最終被編譯并合并成SWF文件,使之能運行于Flash Player中。在運行階段,F(xiàn)lex應用程序?qū)⒏鶕?jù)需要同外部的資源,服務及數(shù)據(jù)源進行交互。

      Flex應用程序以一種及時模型進行編譯,不會產(chǎn)生任何用戶體驗的中斷。Flex應用程序在首次引用時進行編譯,然后緩存起來供以后調(diào)用;如果任何有關文件進行了更新,F(xiàn)lex應用程序也會隨之自動重新編譯。

      標準的Flex應用程序并不要求服務器端的Flex服務,可以在本地編譯它們并直接部署在Web服務器的HMTL頁面上。Flex應用程序還可以部署在應用服務器,使用Adobe公司的LiveCycle ES2,ColdFusion Flash遠程服務或者是J2EE服務。

      2 J2EE框架技術

      在企業(yè)的應用中主要分為3個層次, Struts 用于展現(xiàn)層,Spring 用于領域?qū)樱?Hibernate 用于數(shù)據(jù)源層[3]。

      展現(xiàn)層(Struts)為應用設計業(yè)務邏輯處理程序。Struts框架中的控制器是一個ActionServlet實例,一般不需要開發(fā)者自己定義或修改控制器,但是必須設計業(yè)務處理邏輯,控制器會將相應的請求映射到這些處理程序中(Action),相應的配置也在Strutsconfig.xml中。

      領域?qū)樱⊿pring)負責處理應用程序的業(yè)務邏輯和業(yè)務校驗,管理事務,管理業(yè)務層級別的對象的依賴。Spring提供了管理業(yè)務對象的一致方法并且鼓勵了注入對接口編程而不是對類編程的良好習慣。Spring的架構(gòu)基礎是基于使用JavaBean屬性的Inversion of Control容器。然而,這僅僅是完整圖景中的一部分:Spring在使用IoC容器作為構(gòu)建完關注所有架構(gòu)層的完整解決方案方面是獨一無二的。 Spring提供了唯一的數(shù)據(jù)訪問抽象,包括簡單和有效率的JDBC框架,極大的改進了效率并且減少了可能的錯誤。Spring的數(shù)據(jù)訪問架構(gòu)還集成了Hibernate和其他O/R mapping解決方案[4]。

      數(shù)據(jù)源層(Hibernate)對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫。 Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程序?qū)嵱茫部梢栽赟ervlet/JSP的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的J2EE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任。

      3 Flex技術與J2EE的集成應用

      3.1 Flex技術與J2EE集成的架構(gòu)

      Flex在J2EE體系架構(gòu)中加入了新的功能,如圖顯示了應用Flex以后的J2EE層次結(jié)構(gòu)。在Flex應用程序中,客戶端程序和表示層的邏輯處理程序能夠同時運行在客戶機的由Flash Player提供的平臺上。Flex應用程序通過Flash Player處理用戶交互,數(shù)據(jù)的校驗,HTTP、SOAP和AMF的數(shù)據(jù)請求,以及其它一些原本在服務器上執(zhí)行的操作。因為Flash Player在各個主要的操作系統(tǒng)和瀏覽器上都始終如一地運行,開發(fā)者不必擔心Flex應用程序是否會在某個特定瀏覽器或操作系統(tǒng)上無法正常工作[5]。

      Flex技術與J2EE集成的架構(gòu)

      3.2 Flex的數(shù)據(jù)服務

      Flex技術同J2EE的集成時,使用了Adobe公司的產(chǎn)品——Flex數(shù)據(jù)服務(LiveCycle Data Services,簡稱LCDS),LCDS是Flex的服務器端組件,必須將其安裝在Java 2企業(yè)級版本(Java2 Enterprise Edition,J2EE)服務器中。LCDS由4個組件組成,包括:Flex消息服務(Flex Messaging Services,F(xiàn)MS)、發(fā)布-訂閱消息(Publish-Subscribe messaging)、數(shù)據(jù)推送(Data push)、RPC服務。利用LCDS中這些組件,能夠?qū)崿F(xiàn)一系列強大的服務器端數(shù)據(jù)管理功能,使開發(fā)人員能夠快速實現(xiàn)數(shù)據(jù)密集型Flex應用程序。

      將LCDS部署為標準Web J2EE應用程序,其基于強大的消息體系結(jié)構(gòu),與現(xiàn)有的基于標準的中間設備相集成,提供客戶和服務器之間的數(shù)據(jù)自動同步服務,增加對實時數(shù)據(jù)推送和發(fā)布/訂閱消息的支持,并實現(xiàn)應用程序的協(xié)作和偶爾連接。

      LCDS運行在J2EE平臺上或Servlet容器內(nèi),與Flex客戶端程序交互并從J2EE服務器獲得其它功能支持。在表示層上應用Flex技術不需要改動業(yè)務邏輯層和綜合層,可以重用原有網(wǎng)絡應用程序中的業(yè)務邏輯層和綜合層代碼。

      Flex提供了多種方法與其它J2EE組件進行交互,主要有HTTP通信、Web service通信,以及由AMF網(wǎng)關通信(Action Script Messaging Format)。AMF網(wǎng)關是一種類似與Flash Remoting的高性能二進制協(xié)議,遠程對象能夠通過AMF網(wǎng)關傳遞到客戶端的Flex應用程序上。

      3.2 .1 Flex與展現(xiàn)層的整合

      Flex的請求會先被發(fā)送到Struts框架,由Struts轉(zhuǎn)發(fā)Flex的請求到其它層。模型中Flex通過HttpService組件發(fā)送和接收HTTP請求,數(shù)據(jù)通常是XML格式的。

      這種模型的優(yōu)點是可以很快、很方便的將Flex整合到已有的J2EE框架中而不影響原有的框架結(jié)構(gòu),但Flex依賴與視圖層Struts,會造成系統(tǒng)維護和擴展的困難。Flex與視圖層Struts整合而不是替代視圖層Struts,適用于將Flex應用于已有的J2EE應用中,作為視圖層的組件。

      3.2 .2 Flex與領域?qū)拥恼?/p>

      在Spring反轉(zhuǎn)控制背后的想法是讓容器實例化組件(并且注入他們的依賴)。然而,默認的服務器端Flex destination實例化Flex客戶端遠程訪問的組件。Flex/Spring整合的關鍵之處是配置Flex destination來讓Spring容器負責實例化Spring beans。Flex數(shù)據(jù)服務(Data Services)支持工廠的概念,使之可以自定義組件的安裝類型。工廠的角色僅僅是為Flex destination提供即用的組件實例(而不是讓Flex destination實例它自己的組件)。

      3.2 .3 Flex與數(shù)據(jù)源層的整合

      通常J2EE應用中視圖層并不直接訪問持久層。在使用Flex時不應該改變這個體系結(jié)構(gòu),業(yè)務層將代替和持久層的通信。在AMF gateway環(huán)境下使用 Hibernate和遠程對象時,不能訪問一個不含有已初始化Hibernate會話對象的集合,訪問一個沒有被初始化的動態(tài)代理對象的集合會導致運行時錯誤。AMF網(wǎng)關不知道如何特定的去尋找Hibernate動態(tài)代理對象,可以用面向方面的編程(AOP)如 JBoss AOP,AspectJ,Spring AOP 等,將一個即將傳送AMF網(wǎng)關的對象作為委托對象,移除動態(tài)代理。

      4 結(jié)論

      用Flex技術在客戶端設計極具視覺體驗和動態(tài)人機交互的圖形用戶界面,用J2EE技術在服務器端實現(xiàn)復雜的事務邏輯,再通過Flex客戶端豐富的數(shù)據(jù)服務組件與J2EE服務器端應用進行數(shù)據(jù)交互和數(shù)據(jù)綁定,從而實現(xiàn)性能優(yōu)越的RIA應用系統(tǒng),使Flex在客戶端的優(yōu)勢與J2EE在服務器端的高效得到完美的結(jié)合。

      [1]蘭天,曲鵬東編著.Flex企業(yè)應用開發(fā)實戰(zhàn)[M],2010.

      [2]楊占波,揚銘,翁穎編著.Flex 3 RIA開發(fā)詳解與精深實 踐[M],2009.

      [3]秦京渝,編著.企業(yè)級Java開發(fā)與架構(gòu)[M],2008.

      [4]袁華強,王亞強,朱君.利用J2EE輕量級框架構(gòu)建Web應用 研究[J].計算機工程與設,2007,1(1),22-23.

      [5]拓守恒.基于Flex和J2EE多層架構(gòu)的RIA教學質(zhì)量評價系統(tǒng) 的研究與實現(xiàn)[D].電子科技大學,2008-10-01.

      Application of Flex and J2EE

      ZHAO Zhongshu

      Flex as a RIA technology,is closely connected to enterprise development technologies.A fully-developed Flex system can integrate technologies like Struts、Spring、Hibernate.The article mainly discusses the availability and practicality of the intergration of Flex,j2EE,and puts forward the integration scheme of applying it in the enterprises.

      RIA;Flex;j2ee

      TP393

      A

      1674-6708(2010)28-0118-02

      趙中樞,講師,工作單位:遼寧對外經(jīng)貿(mào)學院信息技術系,研究方向:多媒體技術、網(wǎng)站開發(fā)、動漫設計

      猜你喜歡
      表示層數(shù)據(jù)服務服務器端
      地理空間大數(shù)據(jù)服務自然資源調(diào)查監(jiān)測的方向分析
      基于Spring的企業(yè)級Web項目架構(gòu)設計研究
      軟件(2019年6期)2019-10-08 06:27:21
      淺析異步通信層的架構(gòu)在ASP.NET 程序中的應用
      成功(2018年10期)2018-03-26 02:56:14
      如何運用稅收大數(shù)據(jù)服務供給側(cè)結(jié)構(gòu)性改革
      中國商論(2016年34期)2017-01-15 14:24:18
      基于頻繁子圖挖掘的數(shù)據(jù)服務Mashup推薦
      ASP.NET三層構(gòu)架解析
      基于SSH框架科研管理系統(tǒng)的設計
      在Windows中安裝OpenVPN
      一種基于數(shù)據(jù)服務超鏈進行情景數(shù)據(jù)集成的方法*
      電信科學(2014年2期)2014-02-28 06:16:26
      ASP.NET三層架構(gòu)體系間數(shù)據(jù)傳遞
      電腦迷(2013年9期)2013-04-29 00:44:03
      泰和县| 晋宁县| 乐清市| 城步| 中卫市| 教育| 茶陵县| 偃师市| 晋城| 荥经县| 和平县| 宝丰县| 屏东市| 唐海县| 徐闻县| 揭阳市| 泗阳县| 遵义市| 海淀区| 景东| 东阳市| 浦城县| 区。| 衡南县| 株洲县| 吉木萨尔县| 剑川县| 呼图壁县| 略阳县| 荣昌县| 金溪县| 牟定县| 龙里县| 安福县| 嵊州市| 寿光市| 山丹县| 蓬溪县| 湖州市| 隆化县| 青河县|