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

        ?

        基于LC-WS的遺留代碼重用

        2016-08-25 05:38:53趙媛周立軍宦婧
        電子設(shè)計工程 2016年14期
        關(guān)鍵詞:遺留調(diào)用代碼

        趙媛,周立軍,宦婧

        (海軍航空工程學(xué)院 基礎(chǔ)實(shí)驗(yàn)部,山東 煙臺 264001)

        基于LC-WS的遺留代碼重用

        趙媛,周立軍,宦婧

        (海軍航空工程學(xué)院 基礎(chǔ)實(shí)驗(yàn)部,山東 煙臺264001)

        針對目前存在的大量遺留代碼,提出基于LC-WS將遺留代碼進(jìn)行包裝、部署并且重用。通過Web Services的方式提供給訪問者調(diào)用。采用LC-WS的方法,只需要付出低廉的代價就可以實(shí)現(xiàn)大量遺留代碼在信息集成平臺中的重新利用,既可以縮短開發(fā)周期,還可以降低開發(fā)風(fēng)險。通過在已搭建信息集成平臺中的實(shí)際應(yīng)用,證明這一方法是可行的。

        遺留代碼;Web Service;JNI;重用

        目前各領(lǐng)域仍存在著大量的應(yīng)用程序是采用傳統(tǒng)語言編寫的,它們不能直接在新系統(tǒng)中應(yīng)用,但是仍然有很大的利用價值,這些應(yīng)用程序代碼就被稱為LC(遺留代碼,Legacy Code)[1]。在已搭建并投入使用的信息集成平臺中,將這些LC 以 WS(Web Services)的方式進(jìn)行重用,正是本文的研究重點(diǎn)。

        1 關(guān)鍵技術(shù)

        1.1基于WebService的系統(tǒng)架構(gòu)

        Web Service是一種開放的分布式應(yīng)用程序模型,使用它可以獨(dú)立于平臺,通過標(biāo)準(zhǔn)的Web協(xié)議,建立可以由應(yīng)用程序通過網(wǎng)絡(luò)訪問的應(yīng)用程序邏輯單元[2]。有關(guān)組織已經(jīng)發(fā)布了一些實(shí)現(xiàn) Web Service所需要的協(xié)議和標(biāo)準(zhǔn),如 Soap,WSDL,UDDI等。Web Service的目的是將信息和服務(wù)在Internet上實(shí)現(xiàn)提供和訪問,實(shí)現(xiàn)跨平臺的互操作性[3]。

        Web Service的基本結(jié)構(gòu)是基于服務(wù)提供者、服務(wù)請求者和中介者3個角色,以及服務(wù)的發(fā)布、發(fā)現(xiàn)和服務(wù)請求者與服務(wù)提供者之間的綁定3個動作而定義的,而Web Services就是部署在提供者服務(wù)器上的具體服務(wù)。Web Services建立后,任何語言,任何平臺上的用戶都可以閱讀其WSDL文檔,以調(diào)用這個Services[4]。

        文中基于Web Services所構(gòu)建的系統(tǒng),由信息注冊中心、信息提供方、信息請求方三者組成,如圖1所示。信息提供方首先要在信息注冊中心發(fā)布信息,并將要發(fā)布的信息的元信息寫入本地注冊表;信息請求方在信息注冊中心查找自己需要的信息,得到感興趣的具體信息(例如具體的url等細(xì)節(jié)信息);信息請求方根據(jù)在信息注冊中心獲得的信息細(xì)節(jié)填寫基于JSP技術(shù)的信息查詢系統(tǒng)頁面,訪問信息提供方的信息共享服務(wù);信息提供方接收到信息請求方的信息請求時,從遠(yuǎn)程的底層異構(gòu)數(shù)據(jù)庫中,抽取信息進(jìn)行包裝,包裝成XML信息格式;信息提供方將包裝后的XML標(biāo)準(zhǔn)格式的信息返回給信息請求方;信息請求方將訪問得到的信息保存為本地XML文檔文件,命名為后綴為.xml的文件,最后基于瀏覽器采用JDOM進(jìn)行解析。

        圖1 系統(tǒng)架構(gòu)圖

        1.2JNI技術(shù)

        JNI,即Java Native Interface屬于JDK的一部分,已經(jīng)被集成到標(biāo)準(zhǔn)Java平臺之中,通過使用JNI編寫程序,可以讓代碼方便地實(shí)現(xiàn)跨平臺特性。JNI允許運(yùn)行在Java虛擬機(jī)上的Java代碼操作其他語言編寫的應(yīng)用程序和庫[5]。使用JNI提供的方法,Java代碼能夠直接與特定操作系統(tǒng)和硬件平臺中的二進(jìn)制庫進(jìn)行交互。這個交互過程發(fā)生在相同的Java虛擬機(jī)進(jìn)程之中,使得來自Java類并被標(biāo)志為“本地”的Java方法的調(diào)用能夠被映射到共享二進(jìn)制庫中的相應(yīng)函數(shù)上,并且將這兩者加載到相同的進(jìn)程中[6]。

        JNI使得本地方法使用Java對象的方式就和Java代碼使用這些對象一樣,能夠調(diào)用現(xiàn)有的Java方法,傳遞該方法所需的參數(shù)[7],得到返回的結(jié)果。

        JNI技術(shù)中基本類型與本地類型的對應(yīng)關(guān)系如圖2所示。

        圖2 類型對應(yīng)關(guān)系

        2 LC-WS方法原理

        基于LC-WS的遺留代碼服務(wù)化,整個過程包括:遺留代碼的預(yù)處理、Wrapper包裝、動態(tài)鏈接庫的生成,legcode服務(wù)調(diào)用。

        LC-WS方法將分析后的 legcode通過JNI技術(shù)進(jìn)行包裝,生成.dll文件,然后部署成服務(wù)等待調(diào)用,工作原理如圖3所示。其中a.dll和b.dll是采用JNI對遺留代碼包裝后生成的。

        圖3 LC-WS工作原理

        采用Java class來編寫legcode services,通過調(diào)用一個中間介質(zhì)類(如a.java)來實(shí)現(xiàn)對于動態(tài)鏈接庫的調(diào)用。關(guān)鍵代碼如下:

        3 LC-WS方法步驟

        將遺留代碼通過JNI包裝成Web服務(wù)的LC-WS方法包括以下幾個步驟:

        1)編寫legcode類,部署成Web服務(wù),如圖4所示。

        在各種services的調(diào)用過程中,Legcode是主類,每當(dāng)一種遺留代碼被包裝和發(fā)布以后,才對增加其相對應(yīng)的方法。

        圖4 遺留代碼部署為服務(wù)

        2)進(jìn)行代碼分析以及預(yù)處理,編寫對應(yīng)的Java類,要求在編寫的類中必須要包含具體的本地方法的調(diào)用細(xì)節(jié)。

        分析遺留代碼是編寫本地代碼的前提,在遺留代碼預(yù)處理階段,通過程序切片技術(shù),對遺留代碼進(jìn)行簡化,使其結(jié)構(gòu)清晰。而且本地方法的編寫和一般的Java方法不同,本地方法的聲明必須包含標(biāo)識符native,以表示此方法是用另一種語言實(shí)現(xiàn)的。

        3)JNI包裝遺留代碼,具體包括:

        ①通過javac命令編譯步驟2)中生成的Java類。

        ②生成.h的頭文件,而且頭文件中必須要包括所部署方法的函數(shù)聲明。

        ③編寫本地方法的C語言實(shí)現(xiàn)。

        ④編譯本地C函數(shù),生成本地鏈接庫。

        4)在legacode類中編寫方法,調(diào)用步驟2)中生成的java類。

        4 結(jié) 論

        LC-WS方法將面向集中式系統(tǒng)的、無法集成到現(xiàn)有平臺中的遺留代碼成功的集成到基于Web服務(wù)的網(wǎng)絡(luò)系統(tǒng)中。在已經(jīng)發(fā)布的legcode service中,增加更新動態(tài)鏈接庫的功能,這樣就可以避免多次發(fā)布的繁瑣[8]。使用LC-WS方法轉(zhuǎn)化遺留代碼成為Web服務(wù),本地注冊者只需要對C語言有初級了解即可。但是本文所研究的LC-WS方法只適合有返回值的C代碼,對于遺留代碼沒有返回值的C函數(shù),需要進(jìn)一步的研究。

        [1]Kacsuk P,Goyeneche A,Delaitre T,et al.High-level grid application environment to use legacy codes as OGSA grid services[C]//Proceedings of Fifth IEEE/ACM International Workshop on Grid Computing(GRID’04),Hawaii:IEEE,2004:179-180.

        [2]臧文科,楊杰,韓秀萍.基于Web Service的繼續(xù)教育管理系統(tǒng)設(shè)計與實(shí)現(xiàn) [J].計算機(jī)應(yīng)用與軟件,2010,27(11): 102-104.

        [3]代田田,陳洪亮,張峰.跨平臺分布式Web服務(wù)的自動路由[J].實(shí)驗(yàn)室研究與探索,2007,26(7):64-66.

        [4]Shantanu Bhattacharya.將遺留系統(tǒng)集成到您的SOA中[EB/ OL].(2008-03)http://www.ibm.com/developerworks/cn/web services/ws-soa-legacyapps/index.html,.

        [5]SHENG Liang.The JAva native interface programmer’s guide and specification[S].Sun Microsystems,1999.

        [6]Huang Y,Taylor I,Walkep D,et al.Wrapping codes for grid-based applications[J].Fromce,2003,17(5):139-145.

        [7]鄒燕飛,趙媛.分布式環(huán)境下遺留代碼重用研究 [J].自動化技術(shù)與應(yīng)用,2009,28(10):49-51.

        [8]鄒燕飛.遺留代碼在企業(yè)信息網(wǎng)格中重用的研究 [D].甘肅:西北師范大學(xué),2007.

        Reusing the legacy code based on the method of LC-WS

        ZHAO Yuan,ZHOU Li-jun,HUAN Jing
        (Department of Basic Experiment,Naval Aeronautical and Astronautical University,Yantai 264001,China)

        There are lots of legacy code in the old system,a new method LC-WS to reuse the legacy code is presented in this paper.The legacy code is wrapped and published into services which can be accessed by service invoker.By the method of LC-WS,a lot of legacy code can be reused at lower cost.The obtained result not only can shorten the research period,but also can lower exploitation risk.Experiments have proven the method is feasible.

        legacy code;Web Service;JNI;reusage

        TN919

        A

        1674-6236(2016)14-0012-02

        2015-08-04稿件編號:201508014

        海軍航空工程學(xué)院基礎(chǔ)研究基金(HYJC201322)

        趙 媛(1983—),女,山東沂水人,碩士,工程師。研究方向:計算機(jī)教學(xué)、分布式計算。

        猜你喜歡
        遺留調(diào)用代碼
        許林濤作品
        核電項(xiàng)目物項(xiàng)調(diào)用管理的應(yīng)用研究
        LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
        創(chuàng)世代碼
        動漫星空(2018年11期)2018-10-26 02:24:02
        創(chuàng)世代碼
        動漫星空(2018年2期)2018-10-26 02:11:00
        創(chuàng)世代碼
        動漫星空(2018年9期)2018-10-26 01:16:48
        創(chuàng)世代碼
        動漫星空(2018年5期)2018-10-26 01:15:02
        基于單片機(jī)控制的小孩遺留小汽車內(nèi)智能安全裝置
        電子制作(2018年11期)2018-08-04 03:25:46
        基于系統(tǒng)調(diào)用的惡意軟件檢測技術(shù)研究
        靜寂的故宮博物館
        歲月(2016年5期)2016-08-13 00:32:59
        中文字幕aⅴ人妻一区二区| 长腿丝袜在线观看国产| 青青草手机在线观看视频在线观看| 人人妻人人澡人人爽欧美一区双 | 亚洲国产精品第一区二区| 无码专区中文字幕DVD| 91国产自拍视频在线| 国产WW久久久久久久久久 | 亚洲精品中文字幕乱码| 亚洲人精品午夜射精日韩| 亚洲av无码日韩精品影片| 高h视频在线免费观看| 中文字幕乱码一区在线观看| 成年免费a级毛片免费看| 伊人色综合九久久天天蜜桃| AV无码专区亚洲AVL在线观看| 国产精品一区二区三区av在线| 天堂а在线中文在线新版| 成人免费ā片在线观看| 精品久久久亚洲中文字幕| av中国av一区二区三区av| 中文字幕av免费专区| 五月天国产精品| 成人综合激情自拍视频在线观看| av一区二区三区在线| 国产性生交xxxxx免费| 国产精品一区二区 尿失禁| 女人被躁到高潮嗷嗷叫| 99在线视频这里只有精品伊人| 丁香六月久久婷婷开心| 最近中文字幕在线mv视频在线| 亚洲国产精品综合久久20| 女优av一区二区在线观看| 久久人妻少妇嫩草av无码专区| 四虎影视亚洲精品| 国产一区二区一级黄色片| 无码中文字幕人妻在线一区| 在线观看国产精品日韩av| 国产在线白浆一区二区三区在线| 亚洲精品第一页在线观看| a级国产乱理伦片在线播放|