專利名稱:嵌入式遠(yuǎn)程調(diào)試代理的kdwp端通訊連接管理器的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及嵌入式移動設(shè)備相應(yīng)軟件開發(fā)的調(diào)試技術(shù)領(lǐng)域,是對KVM虛擬機 的遠(yuǎn)程調(diào)試支持方面的組件之一,特別涉及嵌入式軟件的遠(yuǎn)程調(diào)試代理的KDWP 端通訊連接管理器。
背景技術(shù):
技術(shù)創(chuàng)新是沒有盡頭的,不僅各種客戶產(chǎn)品蓬勃發(fā)展,而且各種易用的開發(fā) 工具也需要發(fā)展。隨著中國日漸成為世界最大的移動通訊與應(yīng)用市場,移動增 值應(yīng)用服務(wù)迅速崛起,這應(yīng)該就是繼互聯(lián)網(wǎng)之后最大的商機。智能手機在世界 及中國的市場份額不斷快速增長,各種創(chuàng)新手機軟件的開發(fā)和應(yīng)用正是推動移 動增值服務(wù)市場不斷發(fā)展前進的動力來源,手機軟件開發(fā)漸入成熟。目前,手 機游戲業(yè)務(wù),手機增值業(yè)務(wù),移動商務(wù)應(yīng)用等領(lǐng)域正處于迅猛發(fā)展的階段。各 大游戲公司,大型娛樂網(wǎng)站,門戶網(wǎng)站,電子商務(wù),甚至到企業(yè)應(yīng)用,報刊媒 體,電視廣播等機構(gòu)都大力推出自己的移動業(yè)務(wù)。而即將到來的下一代通訊技 術(shù)更是讓移動軟件開發(fā)成為市場上份額最大的產(chǎn)業(yè)之一。
J2ME是目前技術(shù)開發(fā)的主體,其他市場需要的技術(shù)還有SYMBIAN C++, WINDOWS MOBILE /CE C++。由于J2ME的技術(shù)先進,而且又能跨平臺運行,因此 受到了眾多手機廠家的支持,甚至成為現(xiàn)在用戶購買手機的一項比較重要的技 術(shù)指標(biāo)。所以到目前為止,手機的游戲應(yīng)用平臺中,以支持J2ME的最多,而且 J2ME軟件開發(fā)商也有越來越多的趨勢,J2ME已成為2002年下半年之后的行動 游戲平臺主流。尤其在進入04年之后,基于JSR184的Mobile 3D Graphics API for J2ME的3D游戲開始出現(xiàn),像索愛S700/K700/Z500以及西門子S65等新機 都開始支持在手機上運行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)代的手 機上便是自然而然的事。同時,以J2ME平臺開發(fā)的程序叫做MIDlet,可以直接 從在線下載后離線運行,或從PC通過數(shù)據(jù)線、紅外或者藍(lán)牙傳輸?shù)绞謾C上。由 于J2ME程序都很小,只有幾十K,所以又被稱為K-JAVA。由于K-JAVA (J2ME) 是開放平臺,因此任何程序設(shè)計師甚至程序編寫愛好者都能到Sun網(wǎng)站下載 J2ME開發(fā)工具,為手機寫JAVA程序。然而Sun網(wǎng)站上的開發(fā)工具或多或少存在 一些問題,如配置復(fù)雜,專用性不足以及平臺不能得到快速更新;尤其是對一 個需要推出新的手機、新的平臺的企業(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),因此他們之 間的通訊連接便是必不可少的組成部分。本通訊連接管理器就是基于這種背景 下實現(xiàn)的一個功能組件,是實現(xiàn)嵌入式遠(yuǎn)程調(diào)試工具的必備組件之一。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種嵌入式遠(yuǎn)程調(diào)試軟件中基于調(diào)試代理(Debug Agent)的KDWP通訊連接管理器(Connection Mgr)實現(xiàn)方法。 本發(fā)明解決其技術(shù)問題采用的技術(shù)方案如下
1) 建立KDWP連接
本連接管理器依附于debug agent,最根本的功能便是建立與虛擬機KVM端 的KDWP連接。
2) 連接丟失重新偵聽的能力
這個連接管理器一般與目標(biāo)虛擬機運行在兩個系統(tǒng)中,典型的為本連接管理 器與debug agent運行在普通PC之上,而虛擬機KVM則運行在手機上。如果因
為一些未知的原因而丟失連接,具有重新建立KDWP連接的能力,較強的出錯 恢復(fù)能力。
3) 采用socket通訊方式易于移植到多種操作系統(tǒng) 采用幾個常用操作系統(tǒng)(如windows,類UNIX等)系統(tǒng)調(diào)用的公共子集作
為本連接管理器的主要API,即采用了P O S I X標(biāo)準(zhǔn),幾個特殊調(diào)用作了主要 說明。在標(biāo)準(zhǔn)的socket通訊API之上,因此可以簡單地在多種操作系統(tǒng)之上運 行;
4) 糾錯能力,具有緩存和包丟失重發(fā)功能
作為網(wǎng)絡(luò)組件,具有緩存和包丟失重發(fā)功能,增強了系統(tǒng)的可靠性。 本發(fā)明與背景技術(shù)相結(jié)合,具有的有益的效果是-本發(fā)明是一種嵌入式遠(yuǎn)程調(diào)試軟件中調(diào)試代理(DebugAgent)的KDWP端 通訊連接管理器(Connection manager)的實現(xiàn)方法,其主要功能是對debug agent提供KDWP端通訊協(xié)議的實現(xiàn),是遠(yuǎn)程調(diào)試軟件的組件之一,共同完成對
虛擬機軟件的遠(yuǎn)程調(diào)試能力。
(1) 獨立性。本方法實現(xiàn)了在嵌入式軟件調(diào)試的debug agent端KDWP 通訊連接管理器(Connection mgr),即通訊格式標(biāo)準(zhǔn)化,與調(diào)試器只采用標(biāo)準(zhǔn) 化的KDWP通訊方式。因此具有架構(gòu)清晰,各組件相對獨立的優(yōu)點,也是實現(xiàn) 遠(yuǎn)程調(diào)試的基礎(chǔ)組件之一。因此,只要遵循KDWP協(xié)議的虛擬機都與本通訊連接 管理器兼容,典型的虛擬機是開源的phoneME。
(2) 可靠性和高效性。Debug Agent的引入本身就是為了解決嵌入式設(shè)備 中資源受限的情景,而本連接管理器就是用來連接debug Agent與虛擬機通訊 的組件。由于虛擬機KVM往往運行在各種嵌入式設(shè)備上如手機等,而調(diào)試器則 運行在普通開發(fā)平臺上如NT工作站。因此,作為網(wǎng)絡(luò)連接的管理器,可靠性和 高效性就尤為重要。
圖1是本發(fā)明在整個嵌入式軟件遠(yuǎn)程調(diào)試軟件中的關(guān)系圖, 圖2是本發(fā)明的實施流程圖。
具體實施例方式
本發(fā)明是一種嵌入式遠(yuǎn)程調(diào)試軟件中調(diào)試代理(DebugAgent)的KDWP端 通訊連接管理器(Connection manager)的實現(xiàn)方法。本連接管理器依附于debug agent,建立起與虛擬機KVM端的KDWP連接。因此,來自KVM端的數(shù)據(jù)包 和發(fā)至KVM端的數(shù)據(jù)包都有它來管理。 下面說明其具體實施過程。
1) 建立KDWP連接
本連接管理器依附于debug agent,最根本的功能便是建立與虛擬機KVM端 的KDWP連接。首先本連接管理器會嘗試連接目標(biāo)虛擬機,如果收到成功應(yīng)答 消息,便與和虛擬機KVM建立KDWP握手后,既能接收對方(KVM)發(fā)過來 的KDWP命令數(shù)據(jù)包,等待debug agent響應(yīng)后以應(yīng)答數(shù)據(jù)包的方式發(fā)回對方。 同時也能向?qū)Ψ?KVM)發(fā)送命令數(shù)據(jù)包,要求對方作出響應(yīng)的處理。 其次,如果測試連接目標(biāo)虛擬機不成功,本連接管理器則進入socket偵聽循環(huán) 代碼,等待目標(biāo)虛擬機進入連接,建立KDWP握手后,與前者進入相同的代碼。 這樣做的好處便是,無論先啟動虛擬機KVM,還是先啟動Debug Agent,都能 正常進行遠(yuǎn)程調(diào)試。
2) 連接丟失重新偵聽的能力
這個連接管理器一般與目標(biāo)虛擬機運行在兩個系統(tǒng)中,典型的為本連接管理 器與debug agent運行在普通工作站PC之上,而虛擬機KVM則運行在嵌入式如 手機上。如果因為一些未知的原因而丟失連接,具有重新建立KDWP連接的能 力,體現(xiàn)較強的出錯恢復(fù)能力。
這個技術(shù)是通過一個會話來實現(xiàn)一種通訊來回的方式來實現(xiàn)的,也就是一個會 話不與另一個會話的內(nèi)容相沖突。在會話未結(jié)束之前,會保留所有會話內(nèi)容。 如果在達(dá)到一個時間范圍內(nèi),或者有命令要求reset,本連接管理器便進行重新 嘗試連接或者測試偵聽。這樣就具備了一定的容錯能力和錯誤中恢復(fù)的能力。
3) 采用socket通訊方式易于移植到多種操作系統(tǒng)
采用幾個常用操作系統(tǒng)(如windows,類UNIX等)系統(tǒng)調(diào)用的公共子集作 為本連接管理器的主要API,即采用了POS I X標(biāo)準(zhǔn),幾個特殊調(diào)用作了主要 說明。在標(biāo)準(zhǔn)的socket通訊API之上,因此可以簡單地在多種操作系統(tǒng)之上運 行;
對于有一些特殊的嵌入式操作系統(tǒng),還是需要進行移植,因此需要添加一個 標(biāo)準(zhǔn)socket通訊接口層作為中間層。對一些嵌入式操作系統(tǒng)的移植都不是問題,
如在相關(guān)的wince/arm上添加了一層接口重新包裝層。; 4)具有緩存和包丟失重發(fā)功能
可以實現(xiàn)異步通信,增加通訊效率,都是緩存機制帶來的好處。另外由于通 訊上的原因,當(dāng)對方(如前述,debugger或者debug代理,或者如何一方)發(fā)生 丟包,或者重復(fù)發(fā)包的情況,能夠正確處理;作為網(wǎng)絡(luò)組件,具有緩存和包丟 失重發(fā)功能,增強了系統(tǒng)的可靠性。
在技術(shù)上,這是通過一個對數(shù)據(jù)包進行編號處理,然后對各個數(shù)據(jù)包進行緩 沖,在一定時間范圍內(nèi)分別進行檢查,超時便會重新傳遞。在一個會話范圍內(nèi), 不會刪除任何一條信息,相當(dāng)于一個事務(wù)處理。只有當(dāng)一個會話結(jié)束后,才會 清除所有與本會話相關(guān)的信息。如果在debug過程中,進行步進,并檢查本地
變量作為一個會話,斷點和本地變量信息都進行了保存,因此客戶端重復(fù)此個 命令會繼續(xù)回復(fù)該內(nèi)容而不需要對虛擬機通訊,只有當(dāng)客戶端顯示地進入下一 個會話,才重新與虛擬機KVM進行通訊。
權(quán)利要求
1、一種嵌入式遠(yuǎn)程調(diào)試代理的KDWP端通訊連接管理器的方法,其特征在于,包括1)建立KDWP連接依附于debug agent,并建立與虛擬機KVM的KDWP連接;2)連接丟失重新偵聽本連接管理器與debug agent運行在普通PC之上,而虛擬機KVM則運行在手機上;如果因為一些未知的原因而丟失連接,則重新建立KDWP連接;3)采用socket標(biāo)準(zhǔn)通訊方式,支持多種操作系統(tǒng);4)緩存和包丟失重發(fā),加強系統(tǒng)的可靠性。
全文摘要
本發(fā)明涉及嵌入式移動設(shè)備相應(yīng)軟件開發(fā)的調(diào)試技術(shù)領(lǐng)域,旨在提供一種嵌入式遠(yuǎn)程調(diào)試代理的KDWP端通訊連接管理器。該方法包括以下步驟建立KDWP連接、連接丟失重新偵聽、采用socket標(biāo)準(zhǔn)通訊方式支持多種操作系統(tǒng)、緩存和包丟失重發(fā)。本發(fā)明主要功能是對debug agent提供KDWP端通訊協(xié)議的實現(xiàn),是遠(yuǎn)程調(diào)試軟件的組件之一,共同完成對虛擬機軟件的遠(yuǎn)程調(diào)試能力,具有獨立性、可靠性和高效性。
文檔編號G06F11/36GK101387982SQ200810120948
公開日2009年3月18日 申請日期2008年9月18日 優(yōu)先權(quán)日2008年9月18日
發(fā)明者鑫 劉, 俊 吳, 施青松, 歐陽雷, 章鐵飛, 羅尚虎, 威 胡, 劍 陳, 度 陳, 陳天洲 申請人:浙江大學(xué)