亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于移動代理的Struts 2框架

        2013-09-29 05:20:16陳利學趙永清廖浩德
        計算機工程 2013年1期
        關(guān)鍵詞:作業(yè)區(qū)視圖頁面

        楊 力,陳利學,趙永清,廖浩德

        (1.西南石油大學計算機科學學院,成都 610500;2.四川大學計算機學院,成都 610065)

        1 概述

        隨著Internet復雜程度的不斷提高和新型網(wǎng)絡(luò)分布式應(yīng)用的出現(xiàn),基于 DCOM/CORBA/EJB的傳統(tǒng)C/S分布式計算模型日益暴露出其缺點,已遠不能滿足當今快速多變的網(wǎng)絡(luò)應(yīng)用需求。移動Agent技術(shù)集智能Agent、分布式計算、通信于一體,提供了強大、統(tǒng)一、開放的計算模式,適合提供復雜的業(yè)務(wù)邏輯,并能夠遷移到遠程主機執(zhí)行,大幅降低了網(wǎng)絡(luò)帶寬,能有效克服網(wǎng)絡(luò)不穩(wěn)定、負載性能和效能等問題。

        但是目前大多數(shù)應(yīng)用都是基于Web的應(yīng)用開發(fā),由于 Web應(yīng)用的大型化、功能日益復雜,傳統(tǒng) Web頁面與業(yè)務(wù)邏輯混合開發(fā)的開發(fā)模式已不能適應(yīng)快速開發(fā)的需要,急需一種既能實現(xiàn)企業(yè) Web開發(fā)、縮短開發(fā)周期、節(jié)省開發(fā)成本,又易于修改、維護和擴展的開發(fā)框架。

        本文通過研究移動 Agent理論和 Web開發(fā)框架關(guān)鍵技術(shù),分析Agent與MVC模式的結(jié)合優(yōu)勢,提出基于移動代理的Aglet-Struts Web應(yīng)用集成框架,使Aglet在 Struts控制器 action統(tǒng)一調(diào)度下,完成 JSP、action和Aglet的交互,實現(xiàn)了顯示和邏輯的完全分離[1]。

        2 Aglet與Struts結(jié)合的優(yōu)勢

        Aglet是最早基于Java的移動Agent開發(fā)平臺之一,Aglet的名字來源于 Agent和 Applet,可以簡單地將其看成具有Agent行為的Applet對象。由于Aglet本身具有的主動性、能動性、社交能力、反應(yīng)能力,與傳統(tǒng)C/S模式、移動代碼技術(shù)、DCOM等技術(shù)相比,Aglet集中了它們的優(yōu)點。

        Aglet使得程序的執(zhí)行盡可能地靠近數(shù)據(jù)源,降低網(wǎng)絡(luò)的通信開銷,平均負載,提高完成任務(wù)的時效,在各Aglet間交互方面表現(xiàn)出了強大的優(yōu)勢和靈活性[2]。

        由于 Web應(yīng)用的逐漸普及,利用基于 MVC的Struts 2框架已經(jīng)成為構(gòu)建靈活、高效、易于部署、跨平臺的分布式應(yīng)用程序的主流技術(shù)。Struts框架成功實現(xiàn)服務(wù)端的模塊化,將 Web應(yīng)用劃分為控制器(action)、模型(javaBean)、視圖(JSP)。

        各組件間實現(xiàn)了松耦合,為大型項目開發(fā)提供優(yōu)勢,主要體現(xiàn)在:(1)組件化便于在開發(fā)中劃分職責,有利于代碼重用;(2)可以通過控制器action控制系統(tǒng)全局流程;(3)模塊化,通過 javaBean實現(xiàn)新業(yè)務(wù),無需修改整個應(yīng)用,便于后期維護和業(yè)務(wù)擴展[3-4]。

        Aglet間的交互比較容易,Aglet與 Web的交互卻很困難,這樣在Web應(yīng)用中就不能充分體現(xiàn)Aglet的優(yōu)勢。但是把Aglet看作是Struts框架中的模型,即業(yè)務(wù)邏輯,通過Struts 框架把Aglet、控制器(action)和 JSP頁面三者有機結(jié)合,實現(xiàn) Web前端與 Aglet的互操作。這樣就可以充分體現(xiàn)Aglet和Struts框架的優(yōu)勢,為構(gòu)建更加靈活、高效、異構(gòu)的 Web應(yīng)用框架提供新的手段,具有重要的意義。

        3 Aglet-Struts 2框架

        3.1 基于移動代理的Aglet-Struts 2框架模型

        如圖1所示,把Aglet引入到Struts 2框架中,將應(yīng)用程序分成 3個核心部件:模型(Aglet、Javabean),視圖(JSP),控制器(Action、AgletAction),實現(xiàn) Struts 2與Aglet的整合[5]。

        圖1 基于MVC的Aglet-Struts 2框架結(jié)構(gòu)

        該整合框架模型由6個層組成,分別是表示層、控制層、業(yè)務(wù)層、持久層、MA服務(wù)層和Aglet子系統(tǒng)層。這種框架使用軟件分層的思想,將軟件的表示層、控制層和邏輯層分開,各層完成自己的功能,避免了以前的軟件開發(fā)中各部分的功能集中在一起所帶來的維護和修改困難問題。

        (1)表示層即MVC模式中的視圖部分,此層主要由一組JSP文件組成,完成用戶界面展示,用戶通過瀏覽器訪問系統(tǒng)界面實現(xiàn)與服務(wù)器端控制器交互。該層不應(yīng)該存在模型信息,只有標簽,這些標簽可以是標準的JSP標簽,也可以是用戶自定義的標簽[6-7]。

        (2)控制層即MVC模式中的控制部分,此層繼承action類,扮演中央控制器的角色。利用 struts.xml配置信息,根據(jù)action名字與類名的映射關(guān)系,調(diào)用適當?shù)腶ction對象實現(xiàn)對模型的控制。action類負責調(diào)用模型的方法,更新模型的數(shù)據(jù)狀態(tài),并控制一個具體的應(yīng)用流程,它本身也可以完成一些實際的業(yè)務(wù)邏輯[8]。

        action控制器充當用戶請求和業(yè)務(wù)邏輯處理之間的適配器,將請求與業(yè)務(wù)邏輯分開。它側(cè)重于控制應(yīng)用程序的流程,應(yīng)用程序的邏輯放在單獨的 Java文件中,這樣可以提高應(yīng)用程序的靈活性和可重用性。

        在Aglet-Struts 2框架中有一個特殊的action,即AgletAction,它用來控制移動Aglet子系統(tǒng)中的業(yè)務(wù)流程,移動 Aglet子系統(tǒng)中主要由一個或多個AgletServer組件和Context內(nèi)創(chuàng)建的Aglet組件組成,它們之間的關(guān)系如圖2所示。

        圖2 AgletAction與AgletServer的關(guān)系

        (3)業(yè)務(wù)層即 MVC模型部分。主要以 JavaBean或 Aglet形式存在,主要處理表現(xiàn)層的請求并利用DAO(封裝了對底層數(shù)據(jù)庫的操作)組件進行持久層操作、Remoting與 MA服務(wù)層交互并將所得信息在業(yè)務(wù)層進行匯總并以 JSP頁面的形式將信息反饋給用戶[9]。

        (4)持久層主要利用持久層框架如Hibernate進行底層數(shù)據(jù)庫的持久操作,從而實現(xiàn)對數(shù)據(jù)庫訪問的透明化處理。數(shù)據(jù)庫的連接管理、事務(wù)處理由框架的容器處理,從而提高數(shù)據(jù)存儲與訪問效率。

        (5)MA服務(wù)層通過一個 Java類,實現(xiàn)自定義的AgletServer,該 Server具有創(chuàng)建 Aglet并為 Aglet的運行提供Aglet上下文環(huán)境(Aglet Context)和Aglet間通信的代理機制。創(chuàng)建好的Aglet能夠被派遣到子系統(tǒng)執(zhí)行相應(yīng)的任務(wù)。同時利用 Remoting將此層導出為RMI服務(wù)供業(yè)務(wù)層調(diào)用,從而實現(xiàn)業(yè)務(wù)層與Aglet子系統(tǒng)的整合。

        (6)Aglet子系統(tǒng)層直接由Aglet系統(tǒng)提供的Tahiti服務(wù)器作為MA的運行環(huán)境,接收從MA服務(wù)層派遣過來的 Aglet,并由此 Aglet執(zhí)行相應(yīng)的業(yè)務(wù)處理任務(wù)。MA服務(wù)層和子系統(tǒng)管理層,子系統(tǒng)管理層和子系統(tǒng)管理層間采用ATP(Aglet Transfer Protocol代理傳輸協(xié)議)進行通信,信息的傳遞通過獲取Aglet代理(AgletProxy)來實現(xiàn)。

        3.2 工作流程

        用戶(User)通過瀏覽器(Browser)訪問中心Web服務(wù)器,并提出HTTP請求。

        HTTP請求被運行在 Web服務(wù)器上的 Struts PrepareAndExecuteFilter(實際是一個 Servelet,被定義在 Web.xml文件中)所攔截,并轉(zhuǎn)交給相應(yīng)的控制器(action)處理。

        控制器分為頁面跳轉(zhuǎn)控制器、用戶控制器、業(yè)務(wù)邏輯控制器,并定義在 struts.xml文件中。頁面跳轉(zhuǎn)主要用于實現(xiàn)頁面間的跳轉(zhuǎn)。用戶登錄控制用于驗證用戶的操作權(quán)限。業(yè)務(wù)邏輯處理控制用于處理各個模塊之間的業(yè)務(wù)。當控制器處理完轉(zhuǎn)交給它的請求時,通過result屬性返回一個攜帶數(shù)據(jù)的視圖,并通過視圖解析器(View Resolver)解析JSP為HTML頁面并呈現(xiàn)給用戶。控制器通過數(shù)據(jù)訪問對象(DAO)與持久層框架交互實現(xiàn)底層分布式數(shù)據(jù)庫訪問。通過 RMI對MA服務(wù)(MA Server)的訪問,實現(xiàn)控制器與MA的交互,從而實現(xiàn)Web應(yīng)用與MA交互的整合。

        MA服務(wù)層(MA Server)處理從控制器傳來的請求,生成相應(yīng)的Aglet并派遣到MA子管理系統(tǒng)上執(zhí)行任務(wù)。比如生成靜態(tài)Aglet并派遣到子管理系統(tǒng)上,此靜態(tài)Aglet常駐在子管理系統(tǒng)上,并根據(jù)MA服務(wù)層所初始的 IP地址表,對派遣到的各子管理系統(tǒng)進行監(jiān)控。在執(zhí)行網(wǎng)絡(luò)任務(wù)時,靜態(tài)Aglet會對所收集的數(shù)據(jù)進行處理和過濾,并調(diào)用DAO與持久層交互并將實時數(shù)據(jù)存入分布式數(shù)據(jù)庫中。

        當中心 Web服務(wù)器要獲取各個子管理系統(tǒng)所管理的數(shù)據(jù)時,可以利用 MA服務(wù)層生成一個消息Aglet,此消息 Aglet攜帶各個子管理系統(tǒng)的 IP表,根據(jù)這個IP表,此消息Aglet就可以在各個子管理系統(tǒng)間遷移。當消息Aglet到達子管理系統(tǒng)時,它與常駐其上的靜態(tài)Aglet通信,獲得所管理的數(shù)據(jù)并遷移到下一個子管理系統(tǒng),直到遍歷完所有的子管理系統(tǒng)后返回 MA服務(wù)層。MA服務(wù)層接收返回的消息Aglet,提取其中的數(shù)據(jù),返回給相應(yīng)的控制器處理??刂破髟俜祷叵鄳?yīng)的視圖JSP,并調(diào)用視圖解析器解析JSP頁面并呈現(xiàn)給用戶,供用戶查詢和分析[10-11]。

        4 Aglet-Struts 2集成框架的應(yīng)用

        4.1 數(shù)字氣田生產(chǎn)管理現(xiàn)狀

        由于氣田的廣泛分布性,氣田各井站離管理中心一般相距較遠,形成了以作業(yè)區(qū)、氣礦(營銷部)、分公司3級管理體系。井站數(shù)據(jù)通過語音電話、手持移動設(shè)備或自動化采集等方式經(jīng)由無線網(wǎng)絡(luò)實時進入作業(yè)區(qū)數(shù)據(jù)庫。作業(yè)區(qū)數(shù)據(jù)庫存儲詳細的基礎(chǔ)數(shù)據(jù)。氣礦(營銷部)數(shù)據(jù)庫存儲本單位管轄區(qū)一定綜合數(shù)據(jù),同時在作業(yè)區(qū)和氣礦級實施遠程 Web監(jiān)控。分公司數(shù)據(jù)庫存儲本公司管轄的各礦區(qū)(營銷部)的綜合數(shù)據(jù)。作業(yè)區(qū)與氣礦(營銷部)之間網(wǎng)絡(luò)連接形式多樣,速率不等,導致其穩(wěn)定性較低,而客戶服務(wù)器模式要求實時在線,在數(shù)據(jù)量大的情況下,可靠性較差?;谝苿哟淼腟truts 2 MVC分布式集成框架,能有效解決系統(tǒng)運行的穩(wěn)定性和 Web瀏覽的及時性的矛盾,特別適合氣田遠程監(jiān)控分布式計算的需要。

        4.2 數(shù)字氣田遠程監(jiān)控移動代理平臺

        遠程監(jiān)控移動代理平臺負責與作業(yè)區(qū)移動代理平臺交互。采用無線網(wǎng)絡(luò)作為傳輸介質(zhì)。創(chuàng)建監(jiān)控代理、報警代理、配置代理,并派遣到各現(xiàn)場監(jiān)控網(wǎng)絡(luò)點完成相應(yīng)的執(zhí)行任務(wù)。作業(yè)區(qū)移動代理平臺獲取所需生產(chǎn)、安全、設(shè)備狀態(tài)等信息,通過Struts 2框架的agletaction完成代理平臺中相應(yīng) Aglet與數(shù)據(jù)持久層的交互,使得數(shù)據(jù)永久保存到Oracle數(shù)據(jù)庫中。設(shè)備狀態(tài)Bean、數(shù)據(jù)查詢Bean、報警Bean在控制中心的調(diào)度下,通過DAO與數(shù)據(jù)庫交互,完成與相應(yīng)視圖的綁定,中心 Web服務(wù)器解析 JSP視圖頁面,然后轉(zhuǎn)發(fā)解析后的HTML頁面,分別呈現(xiàn)給生產(chǎn)、安全、管理部門以及移動 Web用戶,最終實現(xiàn)現(xiàn)場數(shù)據(jù)的遠程監(jiān)控和現(xiàn)場設(shè)備的控制。該平臺體系結(jié)構(gòu)如圖3所示。

        圖3 Aglet-Struts 2移動代理平臺體系結(jié)構(gòu)

        4.3 系統(tǒng)實現(xiàn)

        系統(tǒng)基于 MVC Struts 2框架,采用 IBM Aglet Workbench作為Mobile Agent開發(fā)支撐平臺。開發(fā)工具選擇Eclipse,服務(wù)器操作系統(tǒng)為Linux,中心Web服務(wù)器為tomcat,數(shù)據(jù)庫為Oracle。采用Tahiti Server作為服務(wù)代理來管理Aglet的移動,并提供通信、安全等服務(wù)。

        由于要把Aglet整合到Struts 2框架中,因此必須在框架中開發(fā)一個服務(wù)代理agletaction,由它來控制移動 Aglet的運行。通過控制中心 action啟動agletaction服務(wù)代理對象,然后利用該服務(wù)代理對象調(diào)用移動代理 Aglet完成數(shù)據(jù)庫的查詢和更新操作。

        在Eclipse下無法運行Aglets程序,采用在Eclipse環(huán)境下編譯Java源程序,然后放到Tahiti下運行。由于氣礦移動代理平臺與作業(yè)區(qū)移動代理平臺屬于主從關(guān)系模式,因此氣礦移動平臺中的master Aglet把任務(wù)委派給作業(yè)區(qū)Slave Agent,Slave Agent移動到現(xiàn)場完成數(shù)據(jù)采集任務(wù)或控制任務(wù)后返回結(jié)果。

        創(chuàng)建作業(yè)區(qū)Slave Agent是在Aglet類中的run()方法中進行,主要代碼如下:

        String host=getAgletContext().getHostingURL().toString();

        URL dest=new URL(“atp://admin:4500”);

        AgletProxy thisProxy=getAgletContext().getAgletProxy(getAgletID());

        getAgletContext().createAglet(getCodeBase(),”mySlave”,null);

        首先使用 getHostingURL()方法獲得當前執(zhí)行環(huán)境的 URL;接著創(chuàng)建一個 URL對象,指定子 Agent將被派往的目標主機地址,通過在getAgletProxy()方法中指定當前Aglet,即主Agent的ID獲得其代理;方法 createAglet用于創(chuàng)建子 Agent。其中,getCodeBase()用來獲得包含Aglet類代碼所在位置。當子 Agent被創(chuàng)建時會首先調(diào)用方法:onCreation(Object args){},接著將自身派至目標主機 dispatch(destination)。

        5 結(jié)束語

        本文將Aglet引入到Struts 2框架中,提出了基于移動代理的 Aglet-Struts 2集成框架。該框架通過構(gòu)建一個服務(wù)代理 agletaction,把移動代理平臺和Struts 2緊密聯(lián)系起來,既發(fā)揮了移動Agent減少網(wǎng)絡(luò)開銷、平均負載和提高任務(wù)時效的優(yōu)點,又發(fā)揮了Web框架Struts 2結(jié)構(gòu)清晰、代碼簡潔、易于部署、操作簡單和跨平臺的優(yōu)勢。

        將該框架應(yīng)用到氣田生產(chǎn)數(shù)據(jù)遠程監(jiān)控系統(tǒng)中,較好地解決了移動Agent與Web互操作問題,提高了數(shù)據(jù)監(jiān)控的及時性和穩(wěn)定性。該框架的成功應(yīng)用為復雜分布式計算提供了新的模式和手段。

        [1]Hu Jian, Zhao Rui, Qiu Xiaomei.A Network Management Model Based on Mobile Agent System[C]//Proc.of International Conference on Apperceiving Computing and Intelligence Analysis.[S.l.]: IEEE Press, 2008: 279-283.

        [2]Oshima M, Karjoth G, Ono K.Aglets Specification 1.1 Draft[EB/OL]. (2009-05-02). http://www.trl.ibm.com/aglets/spec11.htm.

        [3]Chen Caixian, Li Li.The Analysis of Struts Framework and Its Improvement[J].Computer Applications and Software, 2010, 27(1): 26-28.

        [4]Papastavrou S, Samaras G, Pitoura E.Mobile Agents for World Wide Web Distributed Database Access[J].IEEE Transactions on Knowledge and Data Engineering, 2000,12(5): 802-820.

        [5]Jou Ahyh-Hong, Kao Shang-Juh.Agent-based Infrastructure and an Application to Internet Information Gathering[J].Knowledge and Information System, 2002,4(1): 80-95.

        [6]馬淑嬌, 葉春明, 楊堅爭.Mobile Agent在分布式數(shù)據(jù)庫信息查詢的應(yīng)用研究[J].計算機工程與科學, 2010,32(6): 103-108.

        [7]Xua Yingyue, Qi Hairong.Mobile Agent Migration Modeling and Design for Target Tracking in Wireless Sensor Networks[J].Ad Hoc Networks, 2008, 6(1): 1-16.

        [8]Zgaya H, Hammadi S, Gh’edira K.A Migration Strategy of Mobile Agents for the Transport Network Applications[J].Mathematics and Computers in Simulation, 2008, 76(5-6):345-362.

        [9]劉大有, 楊 博, 楊 鯤, 等.基于旅行圖的移動Agent遷移策略[J].計算機研究與發(fā)展, 2003, 40(6): 838-845.

        [10]張云勇, 劉錦德.移動 Agent技術(shù)[M].北京: 清華大學出版社, 2003.

        [11]Sayyaadi H, Moarref M.A Distributed Algorithm for Proportional Task Allocation in Networks of Mobile Agents[J].IEEE Transactions on Automatic Control, 2011,56(2): 405-410.

        猜你喜歡
        作業(yè)區(qū)視圖頁面
        大狗熊在睡覺
        刷新生活的頁面
        基于機器視覺的建筑作業(yè)區(qū)安全隱患監(jiān)測方法
        電子制作(2018年17期)2018-09-28 01:57:08
        5.3 視圖與投影
        視圖
        Y—20重型運輸機多視圖
        SA2型76毫米車載高炮多視圖
        煤礦錨噴作業(yè)區(qū)噴漿粉塵數(shù)值模擬與新型濕噴一體機研制
        高速公路作業(yè)區(qū)行車危險區(qū)域的界定
        施工期高速公路改擴建作業(yè)區(qū)分流組織研究
        五月激情四射开心久久久| 亚洲av中文字字幕乱码| 亚洲av无码av吞精久久| 无码AV高潮喷水无码专区线 | 囯产精品无码va一区二区| 日本久久精品免费播放| 最大色网男人的av天堂| 日本一区二区三区在线视频播放| 中文字幕人妻在线少妇| 小说区激情另类春色| av无码人妻中文字幕| 乱码午夜-极国产极内射 | 天天噜日日噜狠狠噜免费| 日韩精品无码免费专区网站| 青青青爽国产在线视频| 亚洲无码性爱视频在线观看| 二区三区视频在线观看| 亚洲精品一区二区在线免费观看| 精品人妻系列无码人妻漫画 | 免费精品一区二区三区第35| 国产成人午夜精品免费视频| 亚洲av伊人久久综合性色| 日本韩国三级在线观看| 黄片视频免费在线观看国产| 无码精品人妻一区二区三区av | 正在播放国产多p交换视频| 久久久久久久久久免免费精品| 亚洲av综合日韩精品久久| 亚洲成av人片女在线观看| 国产白嫩护士被弄高潮| 亚洲无毛片| av天堂一区二区三区精品| 久久av不卡人妻出轨一区二区| 亚洲乱码中文在线观看| 国产女主播喷水视频在线观看| 亚洲一区二区综合色精品| 亚洲av色香蕉一区二区蜜桃| 亚洲美女毛多水多免费视频| 人妻无码一区二区视频| 亚洲综合中文字幕乱码在线| 果冻蜜桃传媒在线观看|