一種遠程對象的標識方法及遠程對象的標識系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機通信技術(shù)領(lǐng)域,尤其涉及一種遠程對象的標識方法及遠程對象的標識系統(tǒng)。
【背景技術(shù)】
[0002]通過遠程對象標識和遠程方法調(diào)用,客戶裝置可以直觀、方便地跨進程、跨平臺使用遠程對象功能,從而實現(xiàn)分布式計算、自動化測試等功能。具體地,當一個對象在另外一個進程或者系統(tǒng)上提供軟件功能時,稱這個對象為“遠程對象”。在客戶裝置中標識該遠程對象的方式稱為“遠程對象標識”。遠程對象提供的功能通常封裝成一個個方法,稱為“遠程對象方法”。使用這些方法稱為“遠程方法調(diào)用”。
[0003]其中,“自動化測試”是指通過測試程序來測試目標產(chǎn)品。自動化測試把待測的“目標產(chǎn)品”的每個窗口分解為一個個用戶接口(User Interface,UI)元素,每個窗口中的UI元素(包括窗口本身)對于測試程序而言都是一個遠程對象。對象之間存在父子關(guān)系,整個窗口的所有對象共同構(gòu)成一個對象樹。對這些遠程對象的操作不僅包括獲取和設(shè)置屬性,還包括遍歷這些遠程對象?!氨闅v”指的是從一個對象出發(fā),通過父子關(guān)系獲取到同一個對象樹上的其它對象。
[0004]現(xiàn)有技術(shù)中,標識和使用遠程對象有不同的實現(xiàn)方式,例如遠程方法調(diào)用(RemoteMethod Invocat1n, RMI)、組件對象模型(Component Object Model, COM)等。其中,COM與RMI類似,均是通過先定義、后實現(xiàn)、再注冊,最后使用的方式實現(xiàn)。但,這兩種方案必須預定義遠程對象并注冊該遠程對象后才能使用該對象,不方便訪問與之關(guān)聯(lián)的其它遠程對象(比如該對象的父對象,或者子對象);其次,它不支持跨平臺訪問,因為不是所有的平臺都支持COM和RMI機制。
[0005]此外,標識和使用遠程對象還可以通過以下的實現(xiàn)方式實現(xiàn):使用套接字(Socket)建立遠程對象所在的進程和客戶進程間的通信連接,并通過類似于可擴展標記路徑語言(XML Path Language,XPath)的查詢路徑(Query Path,QPath)字符串描述一個遠程對象。
[0006]通過QPath所包含的信息在目標產(chǎn)品的對象樹中找到該對象,然后,再傳入遠程方法所需要的參數(shù)進行遠程方法調(diào)用。此方案在客戶裝置和遠程對象所在的進程之間的通信傳輸?shù)亩际亲址當?shù)據(jù),對通信實現(xiàn)不需要特殊的要求,因此,它支持跨平臺訪問遠程對象,實現(xiàn)機制也允許使用多種語言實現(xiàn)。但是,它也有局限之處,每次使用對象前都需要重新通過查詢路徑查找出該對象后才能操作該對象,而且查詢路徑不具備直觀標識其它關(guān)聯(lián)的遠程對象(比如它的兄弟對象)的能力。
【發(fā)明內(nèi)容】
[0007]有鑒于此,本發(fā)明提供一種可支持跨平臺訪問遠程對象,且用于通信的數(shù)據(jù)量少,可被操作的遠程對象的數(shù)量多的遠程對象的標識方法。
[0008]本發(fā)明提供一種遠程對象的標識方法,應用于客戶裝置,所述遠程對象的標識方法包括定義遠程對象;與遠端裝置建立通信連接;發(fā)送獲取遠程對象的方法名稱和查詢路徑至所述遠端裝置,以使得所述遠端裝置利用獲取遠程對象的方法根據(jù)所述查詢路徑獲取遠程對象,并使得所述遠端裝置利用唯一身份標識號標識所述遠程對象;以及接收所述遠端裝置發(fā)送的所述遠程對象的唯一身份標識號。
[0009]本發(fā)明還提供一種遠程對象的標識方法,應用于遠端裝置,所述遠程對象的標識方法包括定義遠程對象;與客戶裝置建立通信連接;響應所述客戶裝置發(fā)送的獲取遠程對象的方法名稱和查詢路徑,利用所述獲取遠程對象方法根據(jù)所述查詢路徑獲取遠程對象;利用唯一身份標識號標識所述遠程對象;以及發(fā)送所述遠程對象的唯一身份標識號至所述客戶裝置。
[0010]本發(fā)明還提供一種遠程對象的標識系統(tǒng),所述遠程對象的標識系統(tǒng)包括客戶裝置以及遠端裝置;所述客戶裝置用于與所述遠端裝置建立通信連接,并發(fā)送獲取遠程對象的方法名稱和查詢路徑至所述遠端裝置;所述遠端裝置利用獲取遠程對象的方法根據(jù)所述查詢路徑獲取遠程對象,并利用唯一身份標識號標識所述遠程對象,且將所述遠程對象的唯一身份標識號發(fā)送至所述客戶裝置。
[0011]本發(fā)明提供的遠程對象的標識方法及遠程對象的標識系統(tǒng)在客戶裝置和遠程對象所在的進程之間的通信傳輸?shù)亩际亲址當?shù)據(jù),對通信實現(xiàn)不需要特殊的要求,因此,它可支持跨平臺訪問遠程對象,實現(xiàn)機制也允許使用多種語言實現(xiàn),且利用唯一身份標識號標識遠程對象,每次使用遠程對象前都不需要重新通過查詢路徑查找,減少了用于通信的數(shù)據(jù)量,而且具備通過遠程對象間的關(guān)系很方便的獲取和標識與之相關(guān)聯(lián)的其它對象(例如兄弟對象)的能力,從而增加了可被操作的遠程對象的數(shù)量。
[0012]為讓本發(fā)明的上述和其他目的、特征和優(yōu)點能更明顯易懂,下文特舉較佳實施例,并配合所附圖式,作詳細說明如下。
【附圖說明】
[0013]圖1為第一實施例提供的遠程對象的標識方法的流程圖。
[0014]圖2為第二實施例提供的遠程對象的標識方法的流程圖。
[0015]圖3為第三實施例提供的遠程對象的標識方法的流程圖。
[0016]圖4為第四實施例提供的遠程對象的標識方法的流程圖。
[0017]圖5為第五實施例提供的遠程對象的標識方法的流程圖。
[0018]圖6為第六實施例提供的遠程對象的標識方法的流程圖。
[0019]圖7為第七實施例提供的遠程對象的標識方法的流程圖。
[0020]圖8為第八實施例提供的遠程對象的標識方法的流程圖。
[0021]圖9為第五實施例提供的客戶裝置的結(jié)構(gòu)圖。
[0022]圖10為第六實施例提供的遠端裝置的結(jié)構(gòu)圖。
[0023]圖11為第七實施例提供的遠程對象的標識系統(tǒng)的結(jié)構(gòu)圖。
【具體實施方式】
[0024]為更進一步闡述本發(fā)明為實現(xiàn)預定發(fā)明目的所采取的技術(shù)手段及功效,以下結(jié)合附圖及較佳實施例,對依據(jù)本發(fā)明的【具體實施方式】、結(jié)構(gòu)、特征及其功效,詳細說明如后。
[0025]第一實施例
[0026]圖1為第一實施例提供的遠程對象的標識方法的流程圖。如圖1所示,遠程對象的標識方法包括以下步驟:
[0027]步驟Sll:定義遠程對象。
[0028]具體地,定義遠程對象是指與提供方法的遠程對象進行協(xié)議約定。例如,將“getControl”定義為“獲取對象”,將“getProperty”定義為“獲取對象屬性”,將“getParent”定義為“獲取父對象”,將“click”定義為“點擊操作”等等。
[0029]步驟S12:與遠端裝置建立通信連接。
[0030]具體地,可以但不限于利用套接字(Socket)的方式實現(xiàn)與遠端裝置建立通信連接。可以理解的是,也可以利用支持跨平臺、跨語言的其它方式例如網(wǎng)絡套接字(websocket)實現(xiàn)與遠端裝置建立通信連接。
[0031]步驟S13:發(fā)送獲取遠程對象的方法名稱和查詢路徑至所述遠端裝置,以使得所述遠端裝置利用獲取遠程對象的方法根據(jù)所述查詢路徑獲取遠程對象,并使得所述遠端裝置利用唯一身份標識號標識所述遠程對象。
[0032]具體地,所述客戶裝置和所述遠端裝置之間的通信的數(shù)據(jù)格式可以但不限于使用加卩圭腳本對象標識(Javascript object Notat1n, JS0N)數(shù)據(jù)格式實現(xiàn),例如使用“{ ‘method’: ‘getControl’,‘cjpath’:qpath} 可以理解的是,所述客戶裝置和所述遠端裝置之間的通信的數(shù)據(jù)格式也可以使用支持多種數(shù)據(jù)類型表示和傳輸?shù)钠渌鼣?shù)據(jù)格式例如可擴展標記語言(XML)等。
[0033]具體地,利用獲取遠程對象的方法根據(jù)所述查詢路徑獲取遠程對象是指將所述查詢路徑作為所述獲取遠程對象的方法的參數(shù)調(diào)用,以獲取遠程對象。
[0034]具體地,可以但不限于根據(jù)所述查詢路徑遍歷所述遠端裝置的所有遠程對象,最終找到符合所述查詢路徑的遠程對象。遍歷是指從一個遠程對象出發(fā),根據(jù)遠程對象間的關(guān)系獲取其它遠程對象。
[0035]具體地,所述唯一身份標識號可根據(jù)遠程對象的數(shù)量決定使用多少字節(jié)。
[0036]具體地,所述唯一身份標識號可以但不限于使用散列算法(又稱哈希算法)產(chǎn)生,可以理解的是,也可以使用其它方式例如由程序設(shè)計者自己設(shè)定的方式產(chǎn)生,只要每個遠程對象的唯一身份標識號互不相同即可。
[0037]步驟S14:接收所述遠端裝置發(fā)送的所述遠程對象的唯一身份標識號。
[0038]本發(fā)明提供的遠程對象的標識方法在客戶裝置的客戶進程和遠程對象所在的進程之間的通信傳輸?shù)亩际亲址當?shù)據(jù),對通信實現(xiàn)不需要特殊的要求,因此,它可支持跨平臺訪問遠程對象,實現(xiàn)機制也允許使用多種語言實現(xiàn),且利用唯一身份標識號標識遠程對象,每次使用遠程對象前都不需要重新通過查詢路徑查找,減少了用于通信的數(shù)據(jù)量,而且具備通過遠程對象間的關(guān)系很方便的獲取和標識與之相關(guān)聯(lián)的其它對象(例如兄弟對象)的能力,從而增加了可被操作的遠程對象的數(shù)量。
[0039]第二實施例
[0040]圖2為第二實施例提供的遠程對象的標識方法的流程圖。如圖2所示,遠程對象的