• 
    

    
    

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

      ?

      移動中間件SDK兩級重定位算法優(yōu)化

      2010-01-08 07:28:34賈德祥何加銘黃錦濤
      關(guān)鍵詞:中間件終端定位

      賈德祥,何加銘,陳 平,黃錦濤

      (寧波大學通信技術(shù)研究所,浙江寧波315211)

      移動中間件SDK兩級重定位算法優(yōu)化

      賈德祥,何加銘,陳 平,黃錦濤

      (寧波大學通信技術(shù)研究所,浙江寧波315211)

      移動中間件被越來越廣泛地應(yīng)用于手機平臺,但終端硬件限制復雜,對SDK運行效率要求高,給平臺應(yīng)用帶來很大困難。該文提出一種改進的重定位算法,將通常意義下的重定位算法擴展為兩級索引表結(jié)構(gòu),使用二級跳轉(zhuǎn)完成代碼重定位。在主頻≤110MHz移動終端環(huán)境下進行比較測試,結(jié)果表明,使用該算法,可以有效提高庫的執(zhí)行效率,實現(xiàn)代碼快速重定位,并降低了應(yīng)用解釋與執(zhí)行的系統(tǒng)消耗。

      中間件;重定位;開發(fā)包;應(yīng)用開發(fā)環(huán)境

      0 引 言

      IBM的CICS是最早具有中間件技術(shù)思想及功能的軟件,但由于其不是分布式環(huán)境的產(chǎn)物,人們一般把1984年由貝爾實驗室開發(fā)的Tuxedo作為第一個嚴格意義上的中間件產(chǎn)品,盡管中間件的概念很早就產(chǎn)生,但其廣泛應(yīng)用卻是在最近10年[1]。國內(nèi)在中間件起步于整個世界范圍內(nèi)中間件的初創(chuàng)時期。東方通信科技早在1992年就開始中間件的研究和開發(fā),1993年推出第一個產(chǎn)品TongLINK/Q,而且中科院軟件所、國防科技大學等研究機構(gòu)也對中間件技術(shù)進行了同步研究,可以說,在中間件領(lǐng)域,國內(nèi)的起步時間并不比國外晚多少。而隨著移動設(shè)備的普及,越來越多的機構(gòu)將中間件的思想應(yīng)用于移動通信領(lǐng)域,國內(nèi)的斯凱、沃勤等都是比較成功的典范[2]。本文提出的中間件開發(fā)SDK,側(cè)重研究基于移動中間件的應(yīng)用擴展方法,通過優(yōu)化的兩級重定位算法為移動設(shè)備提供了一個完整高效的開發(fā)平臺,使得終端制造商可以在跨芯片平臺上進行手機應(yīng)用研發(fā),同時也使得移動應(yīng)用商能夠得到開發(fā)工具和支持。

      1 移動中間件

      移動中間件的提出,最早是為了解決分布異構(gòu)問題。通俗來講,中間件是處于操作系統(tǒng)和應(yīng)用程序之間的軟件及通用服務(wù),也有人認為它應(yīng)該屬于操作系統(tǒng)的一部分。人們在使用中間件時,往往是一組中間件集成在一起,構(gòu)成一個平臺(包括開發(fā)平臺和運行平臺)。針對不同的操作系統(tǒng)和硬件平臺,它們可以有符合接口和協(xié)議規(guī)范的多種實現(xiàn)。中間件在系統(tǒng)中的位置如圖1所示:

      圖1 中間件示意圖

      而SDK作為中間件應(yīng)用開發(fā)的主要環(huán)境和工具,其設(shè)計的是否合理直接關(guān)系到應(yīng)用的執(zhí)行效果。當前大多數(shù)開發(fā)環(huán)境都能解決系統(tǒng)間接調(diào)用的問題,但其解釋代碼執(zhí)行的效率往往達不到終端硬件的限制要求,導致應(yīng)用的運行消耗資源大,表現(xiàn)為系統(tǒng)卡機等,由此設(shè)計出代碼效率高,定位迅速的SDK非常必要,本文通過研究中間件應(yīng)用開發(fā)中的重定位機制,并對其進行了兩級重定位的擴展,加快了代碼解釋執(zhí)行的效率,解決了應(yīng)用運行難的問題。

      2 SDK系統(tǒng)架構(gòu)設(shè)計

      在Windows中程序都是以文件形式存儲在文件系統(tǒng)中,然后通過操作系統(tǒng)控制這些程序的運行,也就是說,它的程序是分散式的。而在嵌入式系統(tǒng)中通常是將程序燒錄在Flash芯片中,CPU直接從Flash芯片中讀取指令運行,并不經(jīng)過文件系統(tǒng),稱這種程序是一體式的。因此為了使中間件開發(fā)環(huán)境SDK正在可用,必須建立類似Windows文件系統(tǒng)的分散式結(jié)構(gòu),實現(xiàn)應(yīng)用與系統(tǒng)的分離。

      一個分散式系統(tǒng)需要有3個部分組成:平臺、軟件開發(fā)工具包(SDK:Software Development Kit)和應(yīng)用程序。分散式應(yīng)用程序的運行需要平臺的支持,應(yīng)用程序則通過SDK進行開發(fā),開發(fā)出源程序經(jīng)過編譯之后可以運行在運行平臺之上。平臺分為開發(fā)平臺和運行平臺,開發(fā)平臺是SDK運行的平臺,用來開發(fā)可以在運行平臺上運行的應(yīng)用程序,對于一些系統(tǒng)還會提供模擬運行平臺的模擬器,以便于在沒有顯而易見的運行設(shè)備時可以看到開發(fā)的效果;運行平臺是應(yīng)用程序運行的平臺,它提供應(yīng)用程序運行的環(huán)境,并控制應(yīng)用的運行。它們之間的關(guān)系如圖2所示:

      圖2 SDK系統(tǒng)關(guān)系圖

      3 SDK重定位算法

      由圖1可知,應(yīng)用開發(fā)環(huán)境最核心的部分是SDK,其創(chuàng)造了應(yīng)用與終端系統(tǒng)之間的互動環(huán)境,應(yīng)用可通過SDK提供的接口訪問終端系統(tǒng)函數(shù),而程序的動態(tài)分發(fā),由SDK中最核心的開發(fā)庫實現(xiàn)。開發(fā)庫是供模塊調(diào)用者鏈接使用的專有庫,與相關(guān)模塊一一對應(yīng),將封裝的模塊接口供目標程序使用。除此之外,它還有一個運行時才確定的模塊重定位表地址指針和模塊動態(tài)查找定位的代碼[3]。

      當開發(fā)庫被使用時,庫初始化代碼會被執(zhí)行,它通過指定的系統(tǒng)調(diào)用來初始化庫中的模塊重定位表基地址指針。此后每次目標程序使用模塊提供的函數(shù)接口時,都通過以下公式得到該接口在系統(tǒng)中的實際地址:

      其數(shù)學表達式為YE=N+Ln×4,YE為接口實際地址,N為重定位表基地址,Ln為函數(shù)在表中的位置。

      在式1中,函數(shù)index是指對應(yīng)函數(shù)在模塊重定位表中的數(shù)組下標值。因為根據(jù)模塊聲明文件生成的開發(fā)庫中已經(jīng)包含了每個函數(shù)的索引信息(index),同時在32位系統(tǒng)中需要乘以4得到準確的偏移量,所以當開發(fā)庫中重定位表地址被初始化后,可以通過這個公式得到指定接口實際地址,完成函數(shù)調(diào)用。

      4 兩級重定位優(yōu)化

      在本文的設(shè)計中,為了降低性能開銷和增加確定性,在終端系統(tǒng)端不進行程序重定位的工作,而將其在主機端完成[4],即在應(yīng)用開發(fā)端完成。為了實現(xiàn)系統(tǒng)動態(tài)擴展,必須使各個模塊能夠單獨鏈接生成執(zhí)行程序,并且運行時不用關(guān)心彼此的定位。本文通過兩級重定位表機制來完成這一協(xié)調(diào)性工作。其示意圖如圖3所示:

      圖3 兩級重定位表示意圖

      其算法描述如下:

      (1)進入定位循環(huán),如果全部模塊已經(jīng)遍歷完畢,則停止循環(huán),說明要定位的模塊并不存在于定位表中;否則進行下一個模塊判斷;

      (2)將第i個表地址與待判斷模塊比較;若匹配,轉(zhuǎn)至(3);否則,轉(zhuǎn)至(1);

      (3)記錄i,并取出其對應(yīng)的模塊二級重定位表首地址;

      (4)記錄二級重定位表首地址為tad,并在該表中進入定位循環(huán),遍歷查找接口,若匹配,則取接口index,并以下面公式計算。

      tad為引用的外部接口所在模塊地址(即二級重定位表首地址),i為一級表模塊位置,ts為二級重定位表大小,pAdress為所要求的實際引用外部接口地址,index為其在表中的位置,得到pAdress后便可以使用下面的方法對該接口進行引用:((void(*)())pAdress)();這樣就可以做到函數(shù)運行地址的可浮動,也就是在主機端便創(chuàng)造了動態(tài)加載的條件。

      5 實驗結(jié)果

      為了測試算法的可用性及執(zhí)行效率,分別在使用一般的重定位算法和使用本文所提出的改進的重定位算法兩種情況下,在同一測試平臺BIRD D717上,對同一應(yīng)用進行了測試。測試平臺BIRD D717的詳細參數(shù)如表1所示:

      表1 測試環(huán)境BIRD D717參數(shù)

      為了比較兩種算法的代碼定位效率,在應(yīng)用中對入口函數(shù)sr_app_entry使用了RDTSC指令,以生成時間比對數(shù)據(jù)。函數(shù)定位測試數(shù)據(jù)如表2所示,表2中所記時間均為從加載完成后,到成功重定位到sr_app_entry函數(shù)所經(jīng)過的CPU執(zhí)行周期數(shù)(即時間片):

      表2 入口函數(shù)sr_app_entry代碼定位數(shù)據(jù)

      兩種算法下應(yīng)用的實際運行效果比對如表3所示,由數(shù)據(jù)可知,本文重定位算法對同一函數(shù)的定位時間比通常算法的實現(xiàn)平均小43個CPU時間片,這表明使用本文提出的兩級重定位算法,可以有效提高應(yīng)用的執(zhí)行效率,實現(xiàn)運行代碼的快速重定位,這樣就保證了應(yīng)用的流暢運行;因此采用包含本文所提算法的SDK進行應(yīng)用開發(fā),可以降低應(yīng)用的系統(tǒng)消耗,使得應(yīng)用開發(fā)更加具有可操作性。

      表3 實驗-兩種平臺下實際運行結(jié)果比較

      6 結(jié)束語

      一個實用、可靠的中間件平臺,必須要有穩(wěn)定的終端運行模塊及完整高效的應(yīng)用開發(fā)環(huán)境,本文針對典型的中間件平臺SDK在中低端手機上的不足,研究提出了一種基于C語言的移動終端應(yīng)用SDK,設(shè)計實現(xiàn)簡單,占用資源少,解決了第三方業(yè)務(wù)內(nèi)容在中低端手機上應(yīng)用推廣難的問題,降低了應(yīng)用開發(fā)成本,并成功應(yīng)用于MTKOS,實驗結(jié)果表明,由本文提供的開發(fā)環(huán)境制作的應(yīng)用程序體積精簡,加載速度快,運行效率高,實現(xiàn)了手機應(yīng)用的快速開發(fā)與推廣。

      本文所提出的中間件SDK,由于側(cè)重于研究環(huán)境使用的間接可操作性,在文件安全[5]方面并未做有效工作,下一步將考慮在應(yīng)用的開發(fā)過程中加入安全設(shè)計,由開發(fā)環(huán)境自主完成對應(yīng)用關(guān)鍵資源及代碼的安全加密及認證簽名,藉此保護應(yīng)用開發(fā)者的利益。

      [1]李娜,王維哲.基于CORBA的異構(gòu)數(shù)據(jù)庫訪問中間件的研究與實現(xiàn)[J].計算機應(yīng)用與軟件,2010,27(5):61-83.

      [2]徐照 .面向服務(wù)的普適計算中間件若干技術(shù)研究[D].杭州:浙江大學,2008.

      [3]范文彬.基于智能手機平臺的RFID中間件研究[D].廈門:廈門大學,2009.

      [4]段雪峰,王小鴿.基于反射的中間件設(shè)計[D].西安:西北工業(yè)大學,2004.

      [5]馮國瑞.基于中間件技術(shù)的異構(gòu)機器人網(wǎng)絡(luò)控制系統(tǒng)的研究[J].工業(yè)控制計算機,2010,23(2):101-123.

      The Two-level Relocation Algorithm Optimization of Mobile M iddleware SDK JIA De-xiang,HE Jia-m ing,CHEN Ping,HUANG Jin-tao

      (Instituteof Communication,Ningbo University,Ningbo Zhejiang315211,China)

      Themobilemiddleware platform has been applied inmobile terminalsmore and morewidely.But the mobile terminals havemany complex restrictions on the hardware part,which bring a lot of difficult to the platform’s commercial application.So this request themidd leware platform has an efficient SDK.For this point,wemade changes based on the general relocation algorithm,improve the algorithm to a two-level index structure,and use tow-stage jumpmethod to realize the code relocation.We tested the improved algorithm in amobile terminalenvironmentwith≤110MHz CPU.The results show that this algorithm can effectively improve the execution efficiency of the SDK,realize the quick code relocation,and reduce the system implementation of running application.

      middleware;relocation;SDK;application development environment

      TP301.6

      A

      1001-9146(2010)05-0069-04

      2010-07-20

      國家重大專項核高基資助項目(ZX01039-001-002-004、ZX03001-016、ZX03004-005);科技部公共服務(wù)平臺創(chuàng)新基金資助項目(C26243314159);浙江省科技計劃資助項目(C31107);國際科技合作資助項目(DFA12120)

      賈德祥(1986-),男,山東泰安人,在讀研究生,通信終端核心應(yīng)用軟件技術(shù).

      猜你喜歡
      中間件終端定位
      《導航定位與授時》征稿簡則
      X美術(shù)館首屆三年展:“終端〉_How Do We Begin?”
      Smartrail4.0定位和控制
      通信控制服務(wù)器(CCS)維護終端的設(shè)計與實現(xiàn)
      RFID中間件技術(shù)及其應(yīng)用研究
      電子制作(2018年14期)2018-08-21 01:38:10
      基于VanConnect中間件的設(shè)計與開發(fā)
      電子測試(2018年10期)2018-06-26 05:54:02
      找準定位 砥礪前行
      多功能北斗船載終端的開發(fā)應(yīng)用
      電子制作(2016年15期)2017-01-15 13:39:14
      青年擇業(yè)要有準確定位
      學習月刊(2015年1期)2015-07-11 01:51:12
      中間件在高速公路領(lǐng)域的應(yīng)用
      阳新县| 枞阳县| 格尔木市| 崇仁县| 高雄市| 兰坪| 柞水县| 崇明县| 冷水江市| 临安市| 平阴县| 喀什市| 汾西县| 桂平市| 喜德县| 大渡口区| 上思县| 大英县| 巩留县| 汉川市| 隆化县| 尉氏县| 寻甸| 馆陶县| 内黄县| 广河县| 内丘县| 那曲县| 永寿县| 怀来县| 华安县| 洛川县| 高清| 微博| 武邑县| 阳曲县| 榆中县| 莱阳市| 天柱县| 伊川县| 曲靖市|