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

        ?

        在Eclipse中使用RSE框架的探討

        2014-07-24 17:59:30賈璐張旻田丹麥先根
        現(xiàn)代電子技術(shù) 2014年14期

        賈璐+張旻+田丹+麥先根

        摘 要: 傳統(tǒng)C/S結(jié)構(gòu)的遠(yuǎn)程處理程序存在高度依賴客戶端,界面響應(yīng)速度慢,不能充分發(fā)揮客戶端性能等弱點(diǎn)。隨著Eclipse平臺(tái)和RSE框架的出現(xiàn),使遠(yuǎn)程處理應(yīng)用程序開(kāi)發(fā)重新成為了焦點(diǎn)。使用基于Eclipse平臺(tái)和RSE軟件框架構(gòu)建遠(yuǎn)程處理正在成為當(dāng)前越來(lái)越多的企業(yè)采用的一種方法,這種方法快速、高效、開(kāi)發(fā)團(tuán)隊(duì)只需要將關(guān)注點(diǎn)投射于領(lǐng)域業(yè)務(wù)邏輯即可。在此深入地分析RSE框架的體系結(jié)構(gòu),并結(jié)合實(shí)例介紹Eclipse下采用RSE開(kāi)發(fā)遠(yuǎn)程處理的實(shí)現(xiàn)方法。該方法使軟件架構(gòu)更加合理,可維護(hù)性強(qiáng),并且大幅縮短了開(kāi)發(fā)時(shí)間,取得了良好效果。

        關(guān)鍵詞: Eclipse; RSE; MVC; Plug?in

        中圖分類號(hào): TN911?34; TP311 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2014)14?0048?03

        Application of RSE framework in Eclipse

        JIA Lu, ZHANG Min, TIAN Dan, MAI Xian?gen

        (Xian Aeronautics Computing Technique Research Institute, AVIC, Xian 710065, China)

        Abstracts: The remote processing program of traditional C/S structure highly depends on the client?side, has slow interface responses, and can not make fully use of the performance of client?side. Along with the appearance of Eclipse platform and RSE structures, the remote processing application program development becomes a focus again. More and more companies are developing their own remote processing devices based on Eclipse and RSE. It is an efficient way that the development teams needs to focus on building their field logic only. The architecture of RSE framework is deeply analyzed in this paper. The method to develop and implement the remote processing device by using RSE in Eclipse is introduced with examples. The method makes the software architecture more reasonable and maintainability stronger, and can greatly reduce the development time.

        Keywords: Eclipse; RSE; MVC; Plug?in

        隨著Eclipse和RSE的出現(xiàn),使C/S結(jié)構(gòu)的遠(yuǎn)程處理應(yīng)用程序開(kāi)發(fā)重新進(jìn)入人們的視線。Eclipse[1]的最大優(yōu)點(diǎn)在于其插件機(jī)制,在Eclipse平臺(tái)上只需要下載一個(gè)RSE[2]插件,再通過(guò)簡(jiǎn)單地?cái)U(kuò)展和部署,就能實(shí)現(xiàn)專用的遠(yuǎn)程系統(tǒng),并能為該遠(yuǎn)程系統(tǒng)添加新功能[3],從而較好地解決了傳統(tǒng)客戶端應(yīng)用程序不易擴(kuò)展,難以適應(yīng)需求變化的問(wèn)題。

        1 RSE框架機(jī)制

        RSE是基于Eclipse 項(xiàng)目的一個(gè)開(kāi)發(fā)遠(yuǎn)程系統(tǒng)客戶端應(yīng)用程序的框架,旨在提供一種快速開(kāi)發(fā)的,功能強(qiáng)大的,可擴(kuò)展的應(yīng)用平臺(tái)。RSE不僅提供了遠(yuǎn)程系統(tǒng)的數(shù)據(jù)模型和應(yīng)用框架,還支持遠(yuǎn)程系統(tǒng)的訪問(wèn)命令和文件服務(wù)模型。

        RSE是一個(gè)插件體系結(jié)構(gòu)的完整的應(yīng)用平臺(tái),它既是一個(gè)插件,又是一些插件的集合。基于RSE的應(yīng)用程序的入口必須實(shí)現(xiàn)org.eclipse.core. runtime. applications擴(kuò)展點(diǎn)。在Eclipse 啟動(dòng)時(shí),只能指定一個(gè)被運(yùn)行的application,這個(gè)application 的主類必須實(shí)現(xiàn)IplatformRunnable 接口,由此接口所提供的run 方法接管Eclipse 平臺(tái)的控制權(quán),當(dāng)此application 結(jié)束時(shí),Eclipse 平臺(tái)也會(huì)退出。

        2 RSE框架體系結(jié)構(gòu)和設(shè)計(jì)方法分析

        2.1 RSE框架體系結(jié)構(gòu)

        RSE框架工作在Eclipse平臺(tái)的基礎(chǔ)上,RSE框架的體系結(jié)構(gòu)見(jiàn)圖1。

        DataModel模型是RSE框架的核心,負(fù)責(zé)封裝遠(yuǎn)程系統(tǒng)處理程序中的系統(tǒng)數(shù)據(jù)和業(yè)務(wù)邏輯,返回視圖對(duì)數(shù)據(jù)的查詢,將數(shù)據(jù)的變化通知給視圖,用不同的方式實(shí)現(xiàn)數(shù)據(jù)模型接口。

        圖1 RSE框架結(jié)構(gòu)圖

        RSE框架為DataModel模型提供了可選的Service服務(wù),包括Files,Processes,Shells服務(wù)。

        View視圖和Wizard向?qū)Ь褪沁h(yuǎn)程處理應(yīng)用中的用戶界面,負(fù)責(zé)展示DataModel模型中的數(shù)據(jù),通過(guò)向Eclipse平臺(tái)的事件處理代理發(fā)送使用者的動(dòng)作,完成RSE框架和使用者的交互,同時(shí)也允許控制器來(lái)選擇所要顯示的視圖。

        在遠(yuǎn)程處理的事件處理過(guò)程中,RSE框架使用Eclipse的事件處理器代理,來(lái)把使用者操作轉(zhuǎn)化成對(duì)DataModel模型的更新,并選擇需要顯示的View視圖。

        2.2 RSE框架設(shè)計(jì)方法

        RSE框架采用了MVC[4]設(shè)計(jì)模式來(lái)設(shè)計(jì)和實(shí)現(xiàn),分為模型、視圖、控制器三層。其中模型層采用RSE專用的 RSEModelObject來(lái)實(shí)現(xiàn)RemoteModel;視圖層采用的技術(shù)是SWT/JFace;而系統(tǒng)注冊(cè)器SystemRegistry作為控制器接收視圖層的請(qǐng)求,執(zhí)行業(yè)務(wù)邏輯、操作業(yè)務(wù)模型, 完成遠(yuǎn)程系統(tǒng)內(nèi)部資源的訪問(wèn)、操作和變更?;贛VC的RSE框架實(shí)現(xiàn)工作流程見(jiàn)圖2。

        圖2 MVC實(shí)現(xiàn)的RSE框架圖

        整個(gè)RSE框架的入口點(diǎn)是遠(yuǎn)程處理客戶端的請(qǐng)求事件。系統(tǒng)根據(jù)所造成影響的不同,將事件分為兩類:只影響前臺(tái)的Light Weight 事件和影響后臺(tái)數(shù)據(jù)的Heavy Weight 事件。

        事件由Eclipse平臺(tái)的Handler Proxy事件代理統(tǒng)一管理,再轉(zhuǎn)發(fā)給遠(yuǎn)程系統(tǒng)的SystemRegistry事件注冊(cè)器,對(duì)每個(gè)事件進(jìn)行處理.。

        3 RSE應(yīng)用實(shí)例

        下面通過(guò)一個(gè)應(yīng)用實(shí)例說(shuō)明如何使用RSE框架構(gòu)建遠(yuǎn)程處理應(yīng)用程序。該實(shí)例是一個(gè)基于SSH協(xié)議遠(yuǎn)程系統(tǒng)的事件日志記錄遠(yuǎn)程客戶端系統(tǒng),包括遠(yuǎn)程連接、屬性集合和事件處理與記錄。

        3.1 遠(yuǎn)程連接

        遠(yuǎn)程連接中包括遠(yuǎn)程系統(tǒng)模型、遠(yuǎn)程系統(tǒng)模型和控制器。遠(yuǎn)程系統(tǒng)模型的屬性有名稱、IP地址和連接協(xié)議類型,控制器在接收到來(lái)自視圖的創(chuàng)建遠(yuǎn)程連接的請(qǐng)求后,會(huì)通知注冊(cè)器檢查該遠(yuǎn)程連接目前是否已經(jīng)存在,如果還不存在,就新建并保存到注冊(cè)器中。遠(yuǎn)程連接的設(shè)計(jì)如圖3所示。

        圖3 遠(yuǎn)程連接設(shè)計(jì)示意圖

        創(chuàng)建遠(yuǎn)程連接的方法具體代碼如下:

        public void run() {

        String hostName = "build.eclipse.org";

        ISystemRegistry registry = RSECorePlugin.getDefault().getSystemRegistry();

        ISystemProfile profile = registry.getSystemProfileManager()

        .getDefaultPrivateSystemProfile();

        IHost host = registry.getHost(profile, hostName);

        if (host == null) {

        host = registry.createHost(

        "SSH Only", //System Type Name

        hostName, //Connection name

        hostName, //IP Address

        "Connection to Eclipse site"); //description

        } }

        3.2 屬性集合

        遠(yuǎn)程連接屬性集合負(fù)責(zé)記錄并維護(hù)遠(yuǎn)程系統(tǒng)的狀態(tài):已連接、已斷開(kāi)連接和密碼驗(yàn)證。當(dāng)一個(gè)遠(yuǎn)程系統(tǒng)包括多個(gè)子系統(tǒng)時(shí),例如同時(shí)包括文件子系統(tǒng)和shells子系統(tǒng),針對(duì)這些子系統(tǒng),不但允許各子系統(tǒng)使用不同協(xié)議類型的連接,而且一個(gè)遠(yuǎn)程連接還能夠被多個(gè)子系統(tǒng)共享。優(yōu)點(diǎn)是不但提高了遠(yuǎn)程系統(tǒng)的可擴(kuò)展性和靈活性,也實(shí)現(xiàn)了已有構(gòu)件的有效復(fù)用。創(chuàng)建遠(yuǎn)程連接的方法具體代碼如下:

        IConnectorService[]conServices=host.getConnectorServices();

        if (conServices != null && conServices.length > 0) {

        IPropertySet set = null;

        IPropertySet[] sets = conServices[0].getPropertySets();

        if (sets != null && sets.length > 0) {

        set = sets[0]; }

        else { set = new PropertySet("System Info"); conServices[0].addPropertySet(set); }

        set.addProperty("Arch", " PPC64"); }

        通過(guò)上述方法實(shí)現(xiàn)的遠(yuǎn)程系統(tǒng)屬性集合如圖4所示。應(yīng)用實(shí)例中的遠(yuǎn)程系統(tǒng)采用的是PPC64體系結(jié)構(gòu)。

        圖4 屬性集合圖

        3.3 事件處理和日志記錄

        3.3.1 事件處理

        本文中的事件特指在遠(yuǎn)程處理過(guò)程中遠(yuǎn)程系統(tǒng)內(nèi)部數(shù)據(jù)的操作,這些數(shù)據(jù)可以復(fù)用已有RSE模型對(duì)象RSEModelObject,也可以是自定義的。但必須實(shí)現(xiàn)IAdaptable[5]接口,為自身定義一個(gè)私有適配器。該適配器實(shí)現(xiàn)ISystemViewElementAdapter[6]接口,在Eclipse平臺(tái)的UI視圖中,為遠(yuǎn)程系統(tǒng)資源和針對(duì)這些資源的操作提供顯示功能。系統(tǒng)事件注冊(cè)器SystemRegistry負(fù)責(zé)具體RSE事件的處理,實(shí)現(xiàn)方法是通過(guò)實(shí)現(xiàn)ISystemResourceChangeListener、ISystemModelChangeListener和ISystemRemoteChangeListener接口的監(jiān)聽(tīng)器偵聽(tīng)遠(yuǎn)程處理事件,并進(jìn)行處理。

        3.3.2 記錄事件日志

        記錄事件日志實(shí)現(xiàn)方法是首先創(chuàng)建一個(gè)輸出到控制臺(tái)的RSE事件監(jiān)聽(tīng)器,然后將把該監(jiān)聽(tīng)器注冊(cè)到遠(yuǎn)程系統(tǒng)注冊(cè)器中。事件處理和日志記錄方法的具體實(shí)現(xiàn)代碼如下:

        Public Void systemResourceChanged(

        ISystemResourceChangeEvent event) {

        int type = event.getType();

        String eventStr = getResourceChangeEventType(type);

        if (resource instanceof IAdaptable) {

        ISystemViewElementAdapter adapter = (ISystemViewElementAdapter) ((IAdaptable)resource).getAdapter(ISystemViewElementAdapter.class);

        if (adapter != null) {

        String type = adapter.getType(resource);

        String name = dapter.getName(resource);

        String message = eventStr + ":\t(" + type + ")\t" + name;

        logEvent(message); //print into Console; could also do stdout

        } } }

        通過(guò)上述方法實(shí)現(xiàn)的日志記錄控制臺(tái)如圖5所示。

        圖5 日志記錄控制臺(tái)圖

        遠(yuǎn)程處理過(guò)程中發(fā)生的所有事件都會(huì)以文本方式輸出到控制臺(tái),這為遠(yuǎn)程系統(tǒng)處理的調(diào)試工作提供了故障診斷依據(jù)。

        4 結(jié) 語(yǔ)

        Eclipse是功能強(qiáng)大的開(kāi)發(fā)平臺(tái)。實(shí)例說(shuō)明, 在其中使用RSE框架開(kāi)發(fā)遠(yuǎn)程系統(tǒng)插件, 可以成功實(shí)現(xiàn)面向遠(yuǎn)程應(yīng)用的擴(kuò)展,并且使遠(yuǎn)程處理軟件的軟件架構(gòu)更加合理,可維護(hù)性強(qiáng),并且大幅縮短了開(kāi)發(fā)時(shí)間,取得了良好效果。

        參考文獻(xiàn)

        [1] Eclipse Org. Eclipse home [EB/OL]. [2013?03?11]. http://www.eclipse.org.

        [2] OBERHUBER Martin. TM?2.0?release review [M]. USA: Wind River Inc, 2007.

        [3] AJITH A R. RSE using Eclipse in Ubuntu [M] USA: Toobler Web Development Company, 2011.

        [4] 李海峰.MVC模式架構(gòu)的應(yīng)用研究[J].自動(dòng)化與儀器儀表,2013(1):4 ?7.

        [5] 谷鈺.Eclipse 插件體系結(jié)構(gòu)的研究[J].電腦知識(shí)與技術(shù),2009,31(5):8706?8711.

        [6] 克萊柏格.ECLIPSE 插件開(kāi)發(fā)[M].北京:機(jī)械工業(yè)出版社,2011.

        3.3.2 記錄事件日志

        記錄事件日志實(shí)現(xiàn)方法是首先創(chuàng)建一個(gè)輸出到控制臺(tái)的RSE事件監(jiān)聽(tīng)器,然后將把該監(jiān)聽(tīng)器注冊(cè)到遠(yuǎn)程系統(tǒng)注冊(cè)器中。事件處理和日志記錄方法的具體實(shí)現(xiàn)代碼如下:

        Public Void systemResourceChanged(

        ISystemResourceChangeEvent event) {

        int type = event.getType();

        String eventStr = getResourceChangeEventType(type);

        if (resource instanceof IAdaptable) {

        ISystemViewElementAdapter adapter = (ISystemViewElementAdapter) ((IAdaptable)resource).getAdapter(ISystemViewElementAdapter.class);

        if (adapter != null) {

        String type = adapter.getType(resource);

        String name = dapter.getName(resource);

        String message = eventStr + ":\t(" + type + ")\t" + name;

        logEvent(message); //print into Console; could also do stdout

        } } }

        通過(guò)上述方法實(shí)現(xiàn)的日志記錄控制臺(tái)如圖5所示。

        圖5 日志記錄控制臺(tái)圖

        遠(yuǎn)程處理過(guò)程中發(fā)生的所有事件都會(huì)以文本方式輸出到控制臺(tái),這為遠(yuǎn)程系統(tǒng)處理的調(diào)試工作提供了故障診斷依據(jù)。

        4 結(jié) 語(yǔ)

        Eclipse是功能強(qiáng)大的開(kāi)發(fā)平臺(tái)。實(shí)例說(shuō)明, 在其中使用RSE框架開(kāi)發(fā)遠(yuǎn)程系統(tǒng)插件, 可以成功實(shí)現(xiàn)面向遠(yuǎn)程應(yīng)用的擴(kuò)展,并且使遠(yuǎn)程處理軟件的軟件架構(gòu)更加合理,可維護(hù)性強(qiáng),并且大幅縮短了開(kāi)發(fā)時(shí)間,取得了良好效果。

        參考文獻(xiàn)

        [1] Eclipse Org. Eclipse home [EB/OL]. [2013?03?11]. http://www.eclipse.org.

        [2] OBERHUBER Martin. TM?2.0?release review [M]. USA: Wind River Inc, 2007.

        [3] AJITH A R. RSE using Eclipse in Ubuntu [M] USA: Toobler Web Development Company, 2011.

        [4] 李海峰.MVC模式架構(gòu)的應(yīng)用研究[J].自動(dòng)化與儀器儀表,2013(1):4 ?7.

        [5] 谷鈺.Eclipse 插件體系結(jié)構(gòu)的研究[J].電腦知識(shí)與技術(shù),2009,31(5):8706?8711.

        [6] 克萊柏格.ECLIPSE 插件開(kāi)發(fā)[M].北京:機(jī)械工業(yè)出版社,2011.

        3.3.2 記錄事件日志

        記錄事件日志實(shí)現(xiàn)方法是首先創(chuàng)建一個(gè)輸出到控制臺(tái)的RSE事件監(jiān)聽(tīng)器,然后將把該監(jiān)聽(tīng)器注冊(cè)到遠(yuǎn)程系統(tǒng)注冊(cè)器中。事件處理和日志記錄方法的具體實(shí)現(xiàn)代碼如下:

        Public Void systemResourceChanged(

        ISystemResourceChangeEvent event) {

        int type = event.getType();

        String eventStr = getResourceChangeEventType(type);

        if (resource instanceof IAdaptable) {

        ISystemViewElementAdapter adapter = (ISystemViewElementAdapter) ((IAdaptable)resource).getAdapter(ISystemViewElementAdapter.class);

        if (adapter != null) {

        String type = adapter.getType(resource);

        String name = dapter.getName(resource);

        String message = eventStr + ":\t(" + type + ")\t" + name;

        logEvent(message); //print into Console; could also do stdout

        } } }

        通過(guò)上述方法實(shí)現(xiàn)的日志記錄控制臺(tái)如圖5所示。

        圖5 日志記錄控制臺(tái)圖

        遠(yuǎn)程處理過(guò)程中發(fā)生的所有事件都會(huì)以文本方式輸出到控制臺(tái),這為遠(yuǎn)程系統(tǒng)處理的調(diào)試工作提供了故障診斷依據(jù)。

        4 結(jié) 語(yǔ)

        Eclipse是功能強(qiáng)大的開(kāi)發(fā)平臺(tái)。實(shí)例說(shuō)明, 在其中使用RSE框架開(kāi)發(fā)遠(yuǎn)程系統(tǒng)插件, 可以成功實(shí)現(xiàn)面向遠(yuǎn)程應(yīng)用的擴(kuò)展,并且使遠(yuǎn)程處理軟件的軟件架構(gòu)更加合理,可維護(hù)性強(qiáng),并且大幅縮短了開(kāi)發(fā)時(shí)間,取得了良好效果。

        參考文獻(xiàn)

        [1] Eclipse Org. Eclipse home [EB/OL]. [2013?03?11]. http://www.eclipse.org.

        [2] OBERHUBER Martin. TM?2.0?release review [M]. USA: Wind River Inc, 2007.

        [3] AJITH A R. RSE using Eclipse in Ubuntu [M] USA: Toobler Web Development Company, 2011.

        [4] 李海峰.MVC模式架構(gòu)的應(yīng)用研究[J].自動(dòng)化與儀器儀表,2013(1):4 ?7.

        [5] 谷鈺.Eclipse 插件體系結(jié)構(gòu)的研究[J].電腦知識(shí)與技術(shù),2009,31(5):8706?8711.

        [6] 克萊柏格.ECLIPSE 插件開(kāi)發(fā)[M].北京:機(jī)械工業(yè)出版社,2011.

        久久久精品456亚洲影院| 亚洲国产日韩精品综合| 亚洲综合精品一区二区三区| 美女被黑人巨大入侵的的视频 | 色婷婷久色国产成人免费| 久久99热只有频精品8国语| 国产成人综合美国十次| 欧美日韩色另类综合| 免费无码又爽又刺激高潮的视频网站| 男女在线免费视频网站| 韩国三级黄色一区二区| 国产精品久久久福利| 久久精品成人无码观看不卡| 久久91综合国产91久久精品| 熟女人妻中文字幕一区| 精品一区二区三区人妻久久福利| 欧洲乱码伦视频免费| 国产乱xxⅹxx国语对白| 亚洲AV成人无码久久精品四虎| 亚洲视频一区二区蜜桃| 美女视频一区二区三区在线 | 国产人成视频免费在线观看| 国产一级一片内射在线| 日本一区二区高清精品| 亚洲欧洲成人a∨在线观看| 免费精品一区二区三区第35| 精品久久综合一区二区| 北岛玲亚洲一区二区三区| 亚洲成人中文字幕在线视频| 成人综合网站| 日本视频中文字幕一区在线| 精品少妇人妻久久免费| 日韩av一区二区观看| av综合网男人的天堂| 76少妇精品导航| 男女在线免费视频网站| 国产av一区二区毛片| 亚洲精品久久久av无码专区| 亚洲丁香五月激情综合| 水蜜桃视频在线观看免费18| 午夜精品免费视频一区二区三区|