一种远程对象的标识方法及远程对象的标识系统的制作方法

文档序号:9249264阅读:495来源:国知局
一种远程对象的标识方法及远程对象的标识系统的制作方法
【技术领域】
[0001]本发明涉及计算机通信技术领域,尤其涉及一种远程对象的标识方法及远程对象的标识系统。
【背景技术】
[0002]通过远程对象标识和远程方法调用,客户装置可以直观、方便地跨进程、跨平台使用远程对象功能,从而实现分布式计算、自动化测试等功能。具体地,当一个对象在另外一个进程或者系统上提供软件功能时,称这个对象为“远程对象”。在客户装置中标识该远程对象的方式称为“远程对象标识”。远程对象提供的功能通常封装成一个个方法,称为“远程对象方法”。使用这些方法称为“远程方法调用”。
[0003]其中,“自动化测试”是指通过测试程序来测试目标产品。自动化测试把待测的“目标产品”的每个窗口分解为一个个用户接口(User Interface,UI)元素,每个窗口中的UI元素(包括窗口本身)对于测试程序而言都是一个远程对象。对象之间存在父子关系,整个窗口的所有对象共同构成一个对象树。对这些远程对象的操作不仅包括获取和设置属性,还包括遍历这些远程对象。“遍历”指的是从一个对象出发,通过父子关系获取到同一个对象树上的其它对象。
[0004]现有技术中,标识和使用远程对象有不同的实现方式,例如远程方法调用(RemoteMethod Invocat1n, RMI)、组件对象模型(Component Object Model, COM)等。其中,COM与RMI类似,均是通过先定义、后实现、再注册,最后使用的方式实现。但,这两种方案必须预定义远程对象并注册该远程对象后才能使用该对象,不方便访问与之关联的其它远程对象(比如该对象的父对象,或者子对象);其次,它不支持跨平台访问,因为不是所有的平台都支持COM和RMI机制。
[0005]此外,标识和使用远程对象还可以通过以下的实现方式实现:使用套接字(Socket)建立远程对象所在的进程和客户进程间的通信连接,并通过类似于可扩展标记路径语言(XML Path Language,XPath)的查询路径(Query Path,QPath)字符串描述一个远程对象。
[0006]通过QPath所包含的信息在目标产品的对象树中找到该对象,然后,再传入远程方法所需要的参数进行远程方法调用。此方案在客户装置和远程对象所在的进程之间的通信传输的都是字符串数据,对通信实现不需要特殊的要求,因此,它支持跨平台访问远程对象,实现机制也允许使用多种语言实现。但是,它也有局限之处,每次使用对象前都需要重新通过查询路径查找出该对象后才能操作该对象,而且查询路径不具备直观标识其它关联的远程对象(比如它的兄弟对象)的能力。

【发明内容】

[0007]有鉴于此,本发明提供一种可支持跨平台访问远程对象,且用于通信的数据量少,可被操作的远程对象的数量多的远程对象的标识方法。
[0008]本发明提供一种远程对象的标识方法,应用于客户装置,所述远程对象的标识方法包括定义远程对象;与远端装置建立通信连接;发送获取远程对象的方法名称和查询路径至所述远端装置,以使得所述远端装置利用获取远程对象的方法根据所述查询路径获取远程对象,并使得所述远端装置利用唯一身份标识号标识所述远程对象;以及接收所述远端装置发送的所述远程对象的唯一身份标识号。
[0009]本发明还提供一种远程对象的标识方法,应用于远端装置,所述远程对象的标识方法包括定义远程对象;与客户装置建立通信连接;响应所述客户装置发送的获取远程对象的方法名称和查询路径,利用所述获取远程对象方法根据所述查询路径获取远程对象;利用唯一身份标识号标识所述远程对象;以及发送所述远程对象的唯一身份标识号至所述客户装置。
[0010]本发明还提供一种远程对象的标识系统,所述远程对象的标识系统包括客户装置以及远端装置;所述客户装置用于与所述远端装置建立通信连接,并发送获取远程对象的方法名称和查询路径至所述远端装置;所述远端装置利用获取远程对象的方法根据所述查询路径获取远程对象,并利用唯一身份标识号标识所述远程对象,且将所述远程对象的唯一身份标识号发送至所述客户装置。
[0011]本发明提供的远程对象的标识方法及远程对象的标识系统在客户装置和远程对象所在的进程之间的通信传输的都是字符串数据,对通信实现不需要特殊的要求,因此,它可支持跨平台访问远程对象,实现机制也允许使用多种语言实现,且利用唯一身份标识号标识远程对象,每次使用远程对象前都不需要重新通过查询路径查找,减少了用于通信的数据量,而且具备通过远程对象间的关系很方便的获取和标识与之相关联的其它对象(例如兄弟对象)的能力,从而增加了可被操作的远程对象的数量。
[0012]为让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。
【附图说明】
[0013]图1为第一实施例提供的远程对象的标识方法的流程图。
[0014]图2为第二实施例提供的远程对象的标识方法的流程图。
[0015]图3为第三实施例提供的远程对象的标识方法的流程图。
[0016]图4为第四实施例提供的远程对象的标识方法的流程图。
[0017]图5为第五实施例提供的远程对象的标识方法的流程图。
[0018]图6为第六实施例提供的远程对象的标识方法的流程图。
[0019]图7为第七实施例提供的远程对象的标识方法的流程图。
[0020]图8为第八实施例提供的远程对象的标识方法的流程图。
[0021]图9为第五实施例提供的客户装置的结构图。
[0022]图10为第六实施例提供的远端装置的结构图。
[0023]图11为第七实施例提供的远程对象的标识系统的结构图。
【具体实施方式】
[0024]为更进一步阐述本发明为实现预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明的【具体实施方式】、结构、特征及其功效,详细说明如后。
[0025]第一实施例
[0026]图1为第一实施例提供的远程对象的标识方法的流程图。如图1所示,远程对象的标识方法包括以下步骤:
[0027]步骤Sll:定义远程对象。
[0028]具体地,定义远程对象是指与提供方法的远程对象进行协议约定。例如,将“getControl”定义为“获取对象”,将“getProperty”定义为“获取对象属性”,将“getParent”定义为“获取父对象”,将“click”定义为“点击操作”等等。
[0029]步骤S12:与远端装置建立通信连接。
[0030]具体地,可以但不限于利用套接字(Socket)的方式实现与远端装置建立通信连接。可以理解的是,也可以利用支持跨平台、跨语言的其它方式例如网络套接字(websocket)实现与远端装置建立通信连接。
[0031]步骤S13:发送获取远程对象的方法名称和查询路径至所述远端装置,以使得所述远端装置利用获取远程对象的方法根据所述查询路径获取远程对象,并使得所述远端装置利用唯一身份标识号标识所述远程对象。
[0032]具体地,所述客户装置和所述远端装置之间的通信的数据格式可以但不限于使用加卩圭脚本对象标识(Javascript object Notat1n, JS0N)数据格式实现,例如使用“{ ‘method’: ‘getControl’,‘cjpath’:qpath} 可以理解的是,所述客户装置和所述远端装置之间的通信的数据格式也可以使用支持多种数据类型表示和传输的其它数据格式例如可扩展标记语言(XML)等。
[0033]具体地,利用获取远程对象的方法根据所述查询路径获取远程对象是指将所述查询路径作为所述获取远程对象的方法的参数调用,以获取远程对象。
[0034]具体地,可以但不限于根据所述查询路径遍历所述远端装置的所有远程对象,最终找到符合所述查询路径的远程对象。遍历是指从一个远程对象出发,根据远程对象间的关系获取其它远程对象。
[0035]具体地,所述唯一身份标识号可根据远程对象的数量决定使用多少字节。
[0036]具体地,所述唯一身份标识号可以但不限于使用散列算法(又称哈希算法)产生,可以理解的是,也可以使用其它方式例如由程序设计者自己设定的方式产生,只要每个远程对象的唯一身份标识号互不相同即可。
[0037]步骤S14:接收所述远端装置发送的所述远程对象的唯一身份标识号。
[0038]本发明提供的远程对象的标识方法在客户装置的客户进程和远程对象所在的进程之间的通信传输的都是字符串数据,对通信实现不需要特殊的要求,因此,它可支持跨平台访问远程对象,实现机制也允许使用多种语言实现,且利用唯一身份标识号标识远程对象,每次使用远程对象前都不需要重新通过查询路径查找,减少了用于通信的数据量,而且具备通过远程对象间的关系很方便的获取和标识与之相关联的其它对象(例如兄弟对象)的能力,从而增加了可被操作的远程对象的数量。
[0039]第二实施例
[0040]图2为第二实施例提供的远程对象的标识方法的流程图。如图2所示,远程对象的
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1