專利名稱:嵌入式調(diào)試代理與連接管理器的協(xié)同設(shè)計實現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及嵌入式移動設(shè)備相應(yīng)軟件開發(fā)的調(diào)試技術(shù)領(lǐng)域,是對KVM虛擬 機(jī)的遠(yuǎn)程調(diào)試支持方面的組件之一,特別涉及嵌入式遠(yuǎn)程調(diào)試軟件中調(diào)試代理 與連接管理器的協(xié)同設(shè)計實現(xiàn)方法。
背景技術(shù):
技術(shù)創(chuàng)新是沒有盡頭的,不僅各種客戶產(chǎn)品蓬勃發(fā)展,而且各種易用的開 發(fā)工具也需要發(fā)展。隨著中國日漸成為世界最大的移動通訊與應(yīng)用市場,移動 增值應(yīng)用服務(wù)迅速崛起,這應(yīng)該就是繼互聯(lián)網(wǎng)之后最大的商機(jī)。智能手機(jī)在世 界及中國的市場份額不斷快速增長,各種創(chuàng)新手機(jī)軟件的開發(fā)和應(yīng)用正是推動 移動增值服務(wù)市場不斷發(fā)展前進(jìn)的動力來源,手機(jī)軟件開發(fā)漸入成熟。目前, 手機(jī)游戲業(yè)務(wù),手機(jī)增值業(yè)務(wù),移動商務(wù)應(yīng)用等領(lǐng)域正處于迅猛發(fā)展的階段。 各大游戲公司,大型娛樂網(wǎng)站,門戶網(wǎng)站,電子商務(wù),甚至到企業(yè)應(yīng)用,報刊 媒體,電視廣播等機(jī)構(gòu)都大力推出自己的移動業(yè)務(wù)。而即將到來的下一代通訊 技術(shù)更是讓移動軟件開發(fā)成為市場上份額最大的產(chǎn)業(yè)之一。
J2ME是目前技術(shù)開發(fā)的主體,其他市場需要的技術(shù)還有SYMBIAN C++, WINDOWS MOBILE /CE C++。由于J2ME的技術(shù)先進(jìn),而且又能跨平臺運行,因此 受到了眾多手機(jī)廠家的支持,甚至成為現(xiàn)在用戶購買手機(jī)的一項比較重要的技 術(shù)指標(biāo)。所以到目前為止,手機(jī)的游戲應(yīng)用平臺中,以支持J2ME的最多,而且 J2ME軟件開發(fā)商也有越來越多的趨勢,J2ME已成為2002年下半年之后的行動 游戲平臺主流。尤其在進(jìn)入04年之后,基于JSR184的Mobile 3D Graphics API for J2ME的3D游戲開始出現(xiàn),像索愛S700/K700/Z500以及西門子S65等新機(jī) 都開始支持在手機(jī)上運行3D JAVA游戲。
phoneME是SUN Open Source Java中的一個重要項目,包含了 CLDC和CDC
的HotSpot實現(xiàn)以及多個JSR。相比起以前能下載到的RI, phoneME是一個真正 經(jīng)歷過眾多實際產(chǎn)品驗證的,商業(yè)級的JavaME實現(xiàn)。運行phoneME到當(dāng)代的手 機(jī)上便是自然而然的事。同時,以J2ME平臺開發(fā)的程序叫做MIDlet,可以直接 從在線下載后離線運行,或從PC通過數(shù)據(jù)線、紅外或者藍(lán)牙傳輸?shù)绞謾C(jī)上。由 于J2ME程序都很小,只有幾十K,所以又被稱為K-JAVA。由于K-JAVA (J2ME) 是開放平臺,因此任何程序設(shè)計師甚至程序編寫愛好者都能到Sun網(wǎng)站下載 J2ME開發(fā)工具,為手機(jī)寫JAVA程序。然而Sun網(wǎng)站上的開發(fā)工具或多或少存在 一些問題,如配置復(fù)雜,專用性不足以及平臺不能得到快速更新;尤其是對一 個需要推出新的手機(jī)、新的平臺的企業(yè)來說,就要開發(fā)自己版本的開發(fā)平臺。
調(diào)試工具是開發(fā)平臺中的不可缺少的一部分。每個開發(fā)人員都應(yīng)該使用調(diào) 試器或調(diào)試工具。調(diào)試器可以讓您單步調(diào)試代碼、凍結(jié)輸出并檢査變量。調(diào)試 工具可以幫助有經(jīng)驗的開發(fā)人員更迅速地找到發(fā)生問題的位置。本軟件集就是 基于以上背景和技術(shù)條件下開發(fā)的MIDlet調(diào)試軟件。Debugger是MIDlet開發(fā) 平臺中的一個必不可或缺的開發(fā)工具,因此開發(fā)這樣的調(diào)試工具是必要的。嵌 入式遠(yuǎn)程調(diào)試工具一般采用debugger——debug agent——KVM架構(gòu),因此他們
之間的通訊連接便是必不可少的組成部分。本嵌入式遠(yuǎn)程調(diào)試軟件中調(diào)試代理 (Debugger Agent)與連接管理器(Connection mgr)的協(xié)同設(shè)計就是基于這 種背景下實現(xiàn)的一個功能組件,是實現(xiàn)嵌入式遠(yuǎn)程調(diào)試工具的必備組件之一。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種嵌入式遠(yuǎn)程調(diào)試軟件中調(diào)試代理(Debugger Agent)與連接管理器(Connection mgr)的協(xié)同設(shè)計的實現(xiàn)方法。 本發(fā)明解決其技術(shù)問題采用的技術(shù)方案如下
1) 建立雙向連接
使debug agent與debugger建立JDWP連接,與虛擬機(jī)KVM建立KDWP連接,
即通訊雙向連接的主管理器。
2) 主客同化
首先試著連接目標(biāo)虛擬機(jī)KVM,這為連接的客戶端,如果不成功,進(jìn)行socket 偵聽,化身主機(jī)端的功能,以使各個debug組件的啟動順序無關(guān),即,先啟動
4
debug agent還是先啟動虛擬機(jī)KVM,都能正常建立連接。 3)包旁路能力
對一些命令包,直接轉(zhuǎn)發(fā)至目的地,而不是經(jīng)于debug agent轉(zhuǎn)手,能減少通 訊的代價和debug agent的負(fù)載;
本發(fā)明與背景技術(shù)相結(jié)合,具有的有益的效果是
本發(fā)明是一種嵌入式遠(yuǎn)程調(diào)試軟件中調(diào)試代理(Debugger Agent)與連接 管理器(Connection mgr)的協(xié)同設(shè)計的實現(xiàn)方法,其主要功能是給debug agent 提供與虛擬機(jī)端的KDWP通訊協(xié)議連接,與debugger端的JDWP通訊協(xié)議連接, 是遠(yuǎn)程調(diào)試軟件的組件之一,共同完成對虛擬機(jī)軟件MIDlet的遠(yuǎn)程調(diào)試能力。
(1) 獨立性。本方法實現(xiàn)了在嵌入式遠(yuǎn)程調(diào)試軟件中調(diào)試代理(Debugger Agent)與連接管理器(Connection mgr)的協(xié)同設(shè)計的實現(xiàn)方法,依附于debug agent,即管理KDWP連接與JDWP連接兩大管理器的管理器。與調(diào)試器只采用標(biāo) 準(zhǔn)化的JDWP通訊方式,與虛擬機(jī)只采用標(biāo)準(zhǔn)化的KDWP通訊方式。因此具有架 構(gòu)清晰,各組件相對獨立的優(yōu)點,也是實現(xiàn)遠(yuǎn)程調(diào)試的基礎(chǔ)組件之一。
(2) 可靠性和高效性。Debug Agent的引入本身就是為了解決嵌入式設(shè)備 中資源受限的情景,而本連接管理器就是用來管理KDWP和JDWP兩大組件的管 理器,協(xié)同他們的工作。由于虛擬機(jī)KVM往往運行在各種嵌入式設(shè)備上如手機(jī) 等,而調(diào)試器則運行在普通開發(fā)平臺上如NT工作站。因此,作為網(wǎng)絡(luò)連接的管 理器,可靠性和高效性就尤為重要。
(3) 主客同化。使不同調(diào)試組件啟動順序無關(guān),方便使用。
圖1是本發(fā)明在整個嵌入式遠(yuǎn)程調(diào)試軟件中的關(guān)系圖, 圖2是本發(fā)明實施的邏輯過程圖。
具體實施例方式
本發(fā)明是一種嵌入式遠(yuǎn)程調(diào)試軟件中調(diào)試代理(Debugger Agent)與連接 管理器(Connection mgr)的協(xié)同設(shè)計的實現(xiàn)方法。本連接管理器依附于debug agent,建立起與虛擬機(jī)KVM端的KDWP連接,與debugger端的JDWP連接。
因此,他是管理KDWP連接管理器與JDWP連接管理器的管理器,只要職責(zé)就是 協(xié)調(diào)這兩大管理器的工作,使debug agent順利實現(xiàn)正確而高效的連接。 下面說明其具體實施過程。
1) 建立雙向連接
使debug agent與debugger建立JDWP連接,與虛擬機(jī)KVM建立KDWP連接, 即通訊雙向連接的主管理器;
本連接管理器協(xié)同設(shè)計直接受debug agent的控制,是對兩個通訊出口的抽象。 而本連接管理器協(xié)同設(shè)計通過調(diào)用兩大連接管理器實現(xiàn),即依附于debug agent 端的KDWP通訊管理器和JDWP通訊管理器。
首先通知KDWP通訊連接管理器,要求建立連接,進(jìn)行一次KDWP連接握手,如 果未成功,進(jìn)行等待。因為KDWP通訊連接管理器會自動進(jìn)行錯誤重新偵聽。 其次通知JDWP通訊連接管理器,要求建立連接,進(jìn)行一次JDWP連接握手。當(dāng) 兩邊都成功連接后,debug agent能夠通過本管理器進(jìn)行正常的工作。
2) 主客同化
首先試著連接目標(biāo)虛擬機(jī)KVM,這為連接的客戶端,如果不成功,進(jìn)行socket 偵聽,化身主機(jī)端的功能,以使各個debug組件的啟動順序無關(guān),g卩,先啟動 debug agent還是先啟動虛擬機(jī)KVM,都能正常建立連接。尤其對debug agent 這一較為復(fù)雜的組件來說,他不負(fù)責(zé)連接等其他任何無關(guān)事宜,使debug agent 專心于他的事,對他來說,通訊總是成功的。
3) 包旁路能力
對一些命令包,直接轉(zhuǎn)發(fā)至目的地,而不是經(jīng)于debug agent轉(zhuǎn)手,能減少 通訊的代價。該技術(shù)手段是通過簡單地檢查包的格式,相當(dāng)于網(wǎng)絡(luò)的路由功能。
權(quán)利要求
1、嵌入式調(diào)試代理與連接管理器的協(xié)同設(shè)計實現(xiàn)方法,其特征在于包括1)建立雙向連接使debug agent與debugger建立JDWP連接,與虛擬機(jī)KVM建立KDWP連接,即通訊雙向連接的主管理器;2)主客同化首先試著連接目標(biāo)虛擬機(jī)KVM,這為連接的客戶端,如果不成功,進(jìn)行socket偵聽,化身主機(jī)端的功能,以使各個debug組件的啟動順序無關(guān),即無論先啟動debug agent還是先啟動虛擬機(jī)KVM,都能正常建立連接;3)包旁路對部分命令包,直接轉(zhuǎn)發(fā)至目的地,而不是經(jīng)于debug agent轉(zhuǎn)手,能減少通訊的代價。
全文摘要
本發(fā)明涉及嵌入式移動設(shè)備相應(yīng)軟件開發(fā)的調(diào)試技術(shù)領(lǐng)域,旨在提供一種嵌入式調(diào)試代理與連接管理器的協(xié)同設(shè)計實現(xiàn)方法。該方法包括建立雙向連接、主客同化、包旁路。本發(fā)明主要功能是給debug agent提供與虛擬機(jī)端的KDWP通訊協(xié)議連接,與debugger端的JDWP通訊協(xié)議連接,是遠(yuǎn)程調(diào)試軟件的組件之一,共同完成對虛擬機(jī)軟件MIDlet的遠(yuǎn)程調(diào)試能力,具有獨立性、可靠性和高效性。
文檔編號G06F11/36GK101349991SQ200810120949
公開日2009年1月21日 申請日期2008年9月18日 優(yōu)先權(quán)日2008年9月18日
發(fā)明者馮德貴, 鑫 劉, 俊 吳, 施青松, 歐陽雷, 繆良華, 羅尚虎, 威 胡, 劍 陳, 陳天洲 申請人:浙江大學(xué)