使用层次路由的类属数据交换方法

文档序号:6495089阅读:146来源:国知局
使用层次路由的类属数据交换方法
【专利摘要】一种方法包含检索起始对象可使用标准命令语言与其通信的一个或一个以上候选对象的列表,其中所述一个或一个以上候选对象中的至少一者使用不同于所述标准命令语言的命令语言。所述方法查询从所述一个或一个以上候选对象当中选择的一个或一个以上目标对象的模式并使用所述标准命令语言将与所述目标对象的所述模式一致的命令及/或数据发射到所述一个或一个以上目标对象。
【专利说明】使用层次路由的类属数据交换方法
【技术领域】
[0001]本发明大体来说涉及数据通信,且特定来说(但非排他性地)涉及一种使用层次路由的类属数据交换方法。
【背景技术】
[0002]许多现代系统(例如机器视觉系统)由以一方式耦合在一起使得其可彼此通信及交互的多个不同组件组成。所述组件的耦合通常使用硬件与软件的组合来实现-硬件提供组件之间的有形物理链接,而软件控制硬件且可执行其它功能。
[0003]尽管这些系统提供许多优点,但其所具有的一个缺点为系统中的不同组件可能在不同协议下操作及/或理解不同命令语言。如此,想要与特定组件通信的系统用户必须知晓达及所述组件所需的通信协议及所述组件所理解的命令两者。在具有许多不同组件的系统中,此意味着用户必须知晓多种不同协议及命令语言或结构才能够与系统中的所有不同组件交互。

【发明内容】
【专利附图】

【附图说明】
[0004]参考以下各图描述本发明的非限制性及非详尽实施例,其中在所有各视图中相似参考编号指代相似部件,除非另有规定。
[0005]图1是机器视觉系统的实施例的框图。
[0006]图2是用于对象之间的数据交换的系统或框架的实施例的框图。
[0007]图3A到3C是图解说明对象之间的数据交换的不同实施例的框图。
[0008]图4是图解说明起始对象处的进程的实施例的流程图。
[0009]图5A到5B是图解说明请求信息包的不同实施例的结构的列表。
[0010]图6是本地服务对象的进程的实施例的流程图。
[0011]图7是通信对象的进程的实施例的流程图。
[0012]图8是通信对象的进程的实施例的流程图。
[0013]图9是远程服务对象的进程的实施例的流程图。
[0014]图10是目标对象的进程的实施例的流程图。
[0015]图1lA到IlC是图解说明响应信息包的不同实施例的结构的列表。
[0016]图12是目标对象的实施例的框图。
【具体实施方式】
[0017]描述用于使用层次路由的类属数据交换方法的系统及方法的实施例。描述众多特定细节以提供对本发明的实施例的透彻理解,但相关领域的技术人员将认识到,可在无所述特定细节中的一者或一者以上的情况下或借助其它方法、组件、材料等实践本发明。在一些实例中,未详细展示或描述众所周知的结构、材料或操作,但尽管如此其仍涵盖在本发明的范围内。
[0018]在本说明书通篇中对“一个实施例”或“一实施例”的提及意指结合所述实施例所描述的特定特征、结构或特性包含于至少一个所描述的实施例中。因此,在本说明书中短语“在一个实施例中”或“在一实施例中”的出现未必全部指代同一实施例。此外,特定特征、结构或特性可以任一适合方式组合于一个或一个以上实施例中。
[0019]图1图解说明机器视觉系统100的实施例。系统100包含以菊链配置耦合到计算机A (例如个人计算机)的机器视觉相机Al到A3及以总线配置耦合到计算机B的机器视觉相机BI到B3。计算机A通过通信链路(例如以太网、TCP、HTTP或其它此类连接)耦合到计算机B。在不同实施例中,系统100中的组件之间的通信链路可为硬连线的、无线的或
两者的某一组合。
[0020]在机器视觉系统100内,相机Al到A3不需要全部为相同类型的相机,且类似地,相机BI到B3不需要全部为相同类型的相机,其也不需要通过相同种类的通信链路耦合。如果所述相机为不同的,那么可能发生所述相机使用不同软件、不同命令语言及不同通信协议进行操作。在此布置中,操作来自计算机A的相机Al到A3的用户必须知晓所有不同命令语言及通信协议才能够与所述相机通信及操作所述相机。操作来自计算机B的相机BI到B3的用户面临类似的困境。当计算机B上的用户想要通过计算机B与计算机A之间的网络连接来操作相机Al到A3时,添加了一额外复杂层,因为所述网络连接可添加其自身的命令语目及协议。
[0021]图2图解说明用于不同组件当中的类属数据交换的框架200的实施例。框架200包含通过通信路径201通信地耦合的两个装置:装置I及装置2。在一个实施例中,装置I及2可为例如系统100的机器视觉系统内的任何两个装置。举例来说,装置I可为例如PCA的计算机,而装置2可为例如相机B2的机器视觉相机,但在其它实施例中,装置I及装置2可为其它种类的装置。
[0022]装置I可包含硬件组件,例如处理器、存储器、存储装置、硬件通信接口等等。例如进程I的一个或一个以上进程可在所述处理器上运行。在进程I内的是起始对象202及本地服务对象204的实例。如本文中所使用,术语“对象”既定具有与面向对象的程序设计中的术语相关联的含义;也就是说,对象是离散软件实体,其可包含例程及数据两者、可调用其它对象且可被其它对象调用,且包含关于其自身或与其它对象类别有关的某些性质,例如派生、继承等。在一个实施例中,起始对象202可为用户接口,但在其它实施例中,起始对象202可执行某一其它功能。
[0023]本地服务对象204也在进程I中运行且可与起始对象202以及与可在进程I内或在其它进程中的其它对象通信。在所图解说明的实施例中,则本地服务对象204 —股用于在进程I内部及外部的对象之间传送命令及数据。在所展示的实施例中,本地服务对象204可在进程I之外发射从起始对象202接收的请求信息包且可从进程I外部接收响应信息包并将其发射到起始对象202。如下文进一步描述,所述请求信息包及响应信息包使用本地服务对象204所理解的标准命令语言。
[0024]通信对象206也在装置I上运行。在所图解说明的实施例中,通信对象206的实例在进程I外部的某一其它进程中运行,但在其它实施例中,其可在进程I内运行。通信对象206起作用以经由通信路径201在装置I与装置2之间交换信息。在一个实施例中,通信对象206可为视窗通信基础(WCF)对象,但在其它实施例中,可使用其它类型的通信对象,此取决于装置I的性质及需要支持何种通信协议。除其可交换的数据类型以外,在所图解说明的实施例中,通信对象206可从本地服务对象204接收请求信息包并在装置I外部发射所述请求信息包,且类似地,可从装置I外部接收响应信息包并将其发射到本地服务对象 204。
[0025]通信路径201提供可通过其在装置I与装置2之间交换数据的路由。在一个实施例中,通信路径201可为硬连线连接,但在其它实施例中,其可为无线连接,且在又一些实施例中,其可为硬连线与无线连接的组合。在不同实施例中,通信路径201可使用不同通信协议,此通常取决于在通信路径的任一端上的通信对象206及208所支持的协议。可使用的通信协议的实例包含以太网、TCP / IP、HTTP、HTTPS、Web服务接口(例如SOAP等等)。在所图解说明的实施例中,装置2具有IP地址10.20.1.17,此指示TCP / IP为正使用的通
协议。
[0026]像装置I 一样,装置2可包含硬件组件,例如处理器、存储器、存储装置、硬件接口等等。例如进程2的一个或一个以上进程可在所述处理器上运行。在进程2内运行的是一个或一个以上目标对象(例如目标对象212(命名为“xscape”)及目标对象214(命名为“vscape”))的实例以及可与目标对象及与通信对象208通信的远程服务对象210的实例。虽然在所图解说明的实施例中展示了仅两个目标对象,但装置2 —股将包含在一个或一个以上进程内运行的一个或一个以上候选对象,起始对象202可使用所图解说明的框架与所述候选对象通信,且候选对象中的任一者为可挑选为目标对象的对象。如下文进一步论述,通过发出必要命令(例如,参见图5A到5B),起始对象202可从候选对象当中选择其想要与之通信的一个或一个以上目标对象。
[0027]远程服务对象210也在进程2中运行且可与通信对象208及与目标对象212及214以及与可在进程2内或在装置2上的其它进程中的其它候选对象通信。在所图解说明的实施例中,则远程服务对象204 —股用于在进程2内部及外部的对象之间传送命令及数据。在所展示的实施例中,远程服务对象210可从通信对象208接收请求信息包且可将来自目标对象212及214的响应信息包发射到通信对象208。所述请求信息包及响应信息包使用远程服务对象210所理解的标准命令语言。
[0028]通信对象208也在装置2上运行。在所图解说明的实施例中,通信对象206的实例在进程2外部运行,但在其它实施例中,其可在进程2内运行。与通信对象206 —样,通信对象208起作用以经由通信路径201在装置I与装置2之间交换信息。在一个实施例中,通信对象208可为与通信对象206相同的类型,例如视窗通信基础(WCF)对象,但在其它实施例中,可使用其它类型的通信对象208,前提是通信对象208支持与通信对象206通信所需的协议。除其可交换的数据类型以外,在所图解说明的实施例中,通信对象208可从远程服务对象210接收响应信息包并在装置2外部发射所述响应信息包,且类似地可从装置2外部接收请求信息包并将其发射到远程服务对象210。
[0029]在一个实施例中,框架200的操作以起始对象202开始。最初,起始对象202想要与装置2上的对象通信,但并不知晓装置2上的哪些对象为通信的候选者,因此其以标准命令语言汇编包含命令的第一请求信息包。所述标准命令语言可包含将向远程服务对象210路由第一请求信息包的路由命令以及查询远程服务对象的名称空间以确定远程服务对象及因此起始对象202可与其通信的候选对象的列表的命令。所述命令还可包含查询每一候选对象的模式的命令。接着将第一请求信息包路由到本地服务对象204,本地服务对象204处理所述请求信息包、调用通信对象206并将所述请求信息包传递到通信对象206以用于在通信路径201上传送。通信路径201将请求信息包发射到通信对象208,通信对象208接着将其发射到远程服务对象210。远程服务对象210处理名称空间查询及模式查询并将结果汇编到第一响应信息包中且将所述第一响应信息包发射到通信对象208,通信对象208接着经由通信路径201、通信对象206及本地服务对象204将第一响应信息包发射到起始对象 202。
[0030]在已接收到第一响应信息包后,起始对象202 (或更准确地,对象202的用户)可从由远程服务对象(即,远程服务对象210的名称空间)识别的候选对象当中挑选将与其通信的一个或一个以上目标对象,且在已查询候选对象的模式后可用正确路由信息及待由所述一个或一个以上目标对象执行的命令以及与目标对象的相应模式一致的数据汇编第二请求信息包。接着以与路由第一请求信息包相同的方式将第二请求信息包路由到目标对象。响应于第二请求信息包,远程服务对象210基于来自目标对象的响应而汇编第二响应信息包。所述响应信息包可包含标头及有效负载。接着以与路由第一响应信息包相同的方式将所述第二响应信息包路由回到起始对象。
[0031]在一些情况中,第二响应信息包的有效负载可包含呈无法由通信路径201以及通信对象206及208所使用的通信协议处置的格式的数据。在此类情况中,通信对象208可需要在发射之前编码有效负载,且通信对象206可需要在将第二响应信息包发射到起始对象202之前解编码有效负载。当然,在框架200的操作的其它实施例中,目标对象及其模式可能为预先知晓的。在此类情况中,用户可简单地使用第二请求信息包,且上文针对第一请求信息包及第一响应信息包所描述的进程将为不必要的。下文参考图4到11来提供框架200的操作的其它细节。
[0032]框架200提供多个优点。除其它之外,框架200为极轻量的(此意味着其实施容易叠加于其它现有模式上的极小模式,举例来说,如图12中所展示)且另外使用最小的支持代码,例如可在本地服务对象204的实施例中找到的剖析程序。最小模式与最小支持代码的此组合允许框架200为实质上独立的,此意味着其需要甚少或不需要到其它现有通信框架、对象框架或广泛的外部库的链接。框架200的最小、实质上独立的性质允许以最小代码改变将服务、对象等的现有实施方案调适为在所述框架内起作用,且还允许按任何种类的处理硬件、操作系统等容易地调适所述框架而不会不利地影响操作。
[0033]图3A到3C图解说明可使用例如框架200的框架通信的替代实施例配置。框架200图解说明应用于多个装置的通信框架的实施例,但在其它实施例中,其它通信为可能的。图3A图解说明其中通信在于相同装置上的相同进程内运行的起始对象及目标对象的实例当中进行的实施例。在此实施例中,通过从一个对象到另一对象的直接调用建立通信路径,且例如本地及远程服务对象以及通信对象的中间对象的实例为不必要的。图3B图解说明其中两个进程在相同装置上运行且通信在一个进程中的起始对象与另一进程中的目标对象当中进行的实施例。在此实施例中,可使用命名管道或在其中不同进程在不同(不对称)CPU核心上运行的实施例中使用共享存储器建立通信路径。图3C图解说明图2的扩展,其中起始对象与目标对象之间的通信可涉及多个跳跃,例如当起始对象可经由中间装置2与目标对象2通信时。
[0034]图4图解说明例如起始对象202 (参见图2)的起始对象的进程400的实施例。所述进程在框402处开始。在框404处,所述进程检查起始对象是否知晓其想要与之通信的目标对象。如果起始对象不知晓,那么所述进程继续进行到框406,其中起始对象以标准命令语言汇编包含命令的请求信息包。所述命令可包含将请求信息包引导到正确远程服务对象的路由命令及确定特定远程服务对象的名称空间(即,远程服务对象可与其通信的对象的列表及因此起始对象可与其通信的候选对象的列表)的查询命令。在一个实施例中,请求信息包还可包含确定每一候选对象的模式的模式查询命令。
[0035]一旦请求信息包就绪,在框408处,起始对象便将请求信息包发射到远程服务对象,举例来说,如图2中所展示。在框410处,所述进程从远程服务对象接收响应信息包。所述响应信息包包含标头及有效负载;在此情况中,有效负载可包含远程服务对象的名称空间,其将为起始对象可与其通信的候选对象的列表。所述进程接着返回到框404,其中所述进程检查在返回响应信息包之后是否知晓起始对象想要与其通信的一个或一个以上目标对象。如果知晓目标对象,那么进程移到框412。
[0036]在框412处,所述进程检查是否知晓目标对象的名称空间及模式。如果不知晓所述名称空间及模式,那么进程继续进行到框414,其中起始对象以标准命令语言汇编包含命令的请求信息包。所述命令可包含将请求信息包引导到正确目标对象的路由命令、确定特定目标对象的名称空间的查询命令及确定每一目标对象的模式的模式查询命令。一旦请求信息包就绪,在框416处,起始对象便将请求信息包发射到目标对象。在框418处,所述进程从目标对象接收响应信息包。所述响应信息包可包含目标对象的名称空间以及在使用模式查询的情况下目标对象的模式。所述进程接着返回到框412,其中所述进程检查在返回响应信息包之后是否知晓目标对象的名称空间及/或模式。
[0037]如果在框412处知晓目标对象的名称空间及模式,那么进程移到框420,其中起始对象以标准命令语言汇编包含针对一个或一个以上目标对象的命令的请求信息包。所述命令可包含将请求信息包引导到正确目标对象的路由命令及致使目标对象采取某一行动(例如返回数据)的命令。一旦请求信息包就绪,在框422处,起始对象便将请求信息包发射到目标对象。在框424处,所述进程从目标对象接收响应信息包。来自目标对象的响应信息包的有效负载可包含来自目标对象的对命令已执行的确认或可包含向目标对象请求的数据(例如,参见图1lB到11C)。
[0038]当然,在不同实施例中,可能绕过或省略来自进程400的一个或一个以上框。举例来说,如果提前知晓所有所要目标对象的位置、名称空间及模式,那么可在框420而非框402处开始进程400。
[0039]图5A到5B图解说明请求信息包的实施例。参考框架200,图5A展示包含用以从名称为“vscape”的目标对象214得到树(步骤及数据的列表)的呈可扩展标记语言(XML)格式的嵌套标签的请求信息包。所述请求信息包以指定为到达目标对象请求信息包应采取的路由的路由标签开始。在此情况中,通过提供装置2的IP地址(其为10.20.1.17)且通过提供远程服务对象的名称(在所图解说明的实施例中,其为“mixl”)来指定所述路由。层次中的下一命令为指定在信息包抵达远程服务对象之后应如何路由所述信息包的另一路由标签;在此情况中,第二路由标签指定应将请求信息包路由到目标对象“vscape”。最后的嵌套标签为命令标签,其被路由到对象“vscape”,使得可执行标签中的命令。图5B展示一次含有针对多个目标对象的命令的请求信息包的替代实施例。图5B图解说明将命令提供到两个对象“vscape”及“xscape”的请求信息包。请求信息包的其它实施例可包含除图5A到5B中所展示的那些以外的其它标签。可使用的标签的非详尽列表包含:
[0040]〈route〉-如果理解目的地名称,那么将其解析成对象参考。接着,针对对象中的子节点中的每一者,调用对象的虚拟方法。
[0041]<cmd>-进行在“动作”属性中指定的行动。动作属性中的命令为目标对象特有的。
[0042]<queryschema>-通过使用由w3.组织定义的标准〈schema〉标签返回详细数据类型信息。对象可表示任意复杂的数据类型。可个别地读取或写入的每一项目称为字段。
[0043]〈get〉及〈set〉-得到或设定来自先前已查询其模式的目标对象的字段值。一次可处置多个字段。
[0044]〈subscribe〉及〈unsubscribe〉-每当存在更新时,对象希望将数据“推送”到其。
[0045]〈response〉-对请求的响应。此可在同步请求中直接返回或在异步的情况下稍后返回。
[0046]图6图解说明可由例如对象204(参见图2)的本地服务对象执行的进程600的实施例。所述进程在框602处开始。在框604处,本地服务对象从起始对象接收请求信息包,且在框606处,进程继续进行以剖析请求信息包中的命令语言(S卩,标签)。在一个实施例中,可将标签剖析成文档对象模型(DOM)树,但在其它实施例中,其它类型的剖析为可能的。
[0047]在框608处,本地服务对象调用通信对象,且在框610处,其将请求信息包发射到通信对象。在框610之后,本地服务对象完成处理请求信息包,因此在框612处,其等待接收对请求信息包中的命令做出响应的响应信息包。本地服务对象不必进入其中其直到接收到响应才可进行别的操作的等待状态;对于本地服务对象来说,可能能够在等待对先前请求信息包的响应时处理其它请求信息包。在框614处,本地服务对象检查是否已接收到响应。如果尚未接收到响应,那么进程返回到框614,但如果已接收到响应,那么其继续进行到其中其将响应发射到起始对象的框616。
[0048]图7图解说明例如通信对象206 (参见图2)的通信对象的进程700的实施例。所述进程在框702处开始。在框704处,通信对象从本地服务对象接收请求信息包,在框706处,其读取命令层次中的第一路由标签,且在框708处,其从请求剥离第一路由标签,使得层次中的下一路由标签将为由在先如路由标签中指定的对象看到的弟一标签。在框710处,通信对象将请求信息包发射到在第一路由标签中指定的目的地。
[0049]在框710之后,通信对象完成处理当前请求信息包,因此在框712处,其等待接收对请求信息包中的命令做出响应的响应信息包。通信对象不必进入其中其直到接收到响应才可进行别的操作的等待状态;对于通信对象来说,可能能够在等待对先前请求信息包的响应时处理其它请求信息包。在框714处,本地服务对象检查是否已接收到响应。如果尚未接收到响应,那么进程返回到框712。
[0050]如果在框714处已接收到响应,那么进程转到其中其检查响应信息包是否需要任何解码的框716。在其中通信对象及通信路径所支持的通信协议无法以其本机格式传送响应信息包的有效负载的实施例中,可能有必要在发射之前编码有效负载且在接收之后对其进行解码。举例来说,如果响应信息包有效负载包含二进制数据且通信路径及通信对象并不支持二进制,那么可有必要将二进制编码成通信元件可支持的形式。在一个实施例中,可使用UNIX间编码(uuencode)来编码及解码二进制数据,但在其它实施例中,可使用其它方法。
[0051]如果在框716处响应信息包不需要解码,那么进程转到其中其将响应信息包发射到本地服务对象的框720。否则,如果响应信息包有效负载为发射而被编码且现在需要解码,那么进程继续进行到其中其解码有效负载的框718,且接着继续进行到其中其将经解码响应信息包发射到本地服务对象的框720。
[0052]图8图解说明例如通信对象208 (参见图2)的通信对象的进程的实施例。所述进程在框802处开始。在框804处,通信对象从发射通信对象接收请求信息包,在框806处,其读取命令层次中的第一路由标签,且在框808处,其从请求剥离第一路由标签,使得层次中的下一路由标签将为由在先前路由标签中指定的对象看到的第一标签。在框810处,通信对象将请求信息包发射到在第一路由标签中指定的目的地,其通常为远程服务对象。
[0053]在框810之后,通信对象完成处理当前请求信息包,因此在框812处,其等待接收对请求信息包中的命令做出响应的响应信息包。通信对象不必进入其中其直到接收到响应才可进行别的操作的等待状态;对于通信对象来说,完全可能能够在等待对先前请求信息包的响应时处理其它请求信息包。在框814处,本地服务对象检查是否已接收到响应。如果尚未接收到响应,那么进程返回到框812。
[0054]如果在框814处已接收到响应,那么进程转到其中其检查响应信息包的有效负载是否需要任何解码的框816。在其中通信对象及通信路径所支持的通信协议无法以其本机格式传送有效负载的实施例中,可有必要在发射之前编码有效负载且在接收之后对其进行解码。举例来说,如果响应信息包有效负载包含二进制数据且通信路径及通信对象并不支持二进制,那么可有必要将二进制编码成通信元件可支持的形式。在一个实施例中,可使用UNIX间编码来编码及解码二进制数据,但在其它实施例中,可使用其它方法。
[0055]如果在框816处响应信息包不需要解码,那么进程转到其中其将响应信息包发射到本地服务对象的框820。否则,如果响应信息包有效负载确实需要编码以用于发射,那么进程继续进行到其中其编码有效负载的框818,且接着继续进行到其中其将经编码响应信息包发射到其通过通信路径与之耦合的通信对象的框820。
[0056]图9图解说明例如对象210 (参见图2)的远程服务对象的进程的实施例。所述进程在框902处开始。在框904处,从例如对象208的通信对象接收请求信息包。在框906处,远程服务对象读取请求信息包中的第一标签,且在框908处,其确定标签是否指代在其名称空间中(即,其可与之通信)的目标对象。如果所述目标对象不在其名称空间中,那么在框910处,其返回错误,但如果目标对象在其名称空间中,那么进程继续进行到其中远程服务对象将命令发射到目标对象的框912。
[0057]在框912之后,远程服务对象完成处理第一命令,因此在框914处,其等待接收对第一命令的响应。远程服务对象不必进入其中其直到接收到响应才可进行别的操作的等待状态;对于远程服务对象来说,完全可能能够在等待对先前命令的响应时处理来自其它目标对象信息包的响应。在框916处,本地服务对象检查是否已接收到响应。如果尚未接收到响应,那么进程返回到框914,但如果已接收到响应,那么其继续进行到其中其将来自目标对象的响应写入到响应信息包中的框918。
[0058]在框920处,进程检查请求信息包是否具有针对同一目标对象或针对另一目标对象的任何其它标签。如果请求信息包具有更多标签,那么进程返回到框908且以下一标签再次经历所述进程。如果请求信息包不具有其它标签,那么在框922处关闭响应信息包,且在框924处,将响应信息包发射到通信对象。
[0059]图10图解说明例如目标对象212及/或214(参见图2)的目标对象的进程1000的实施例。所述进程在框1002处开始。在框1004处,目标对象从远程服务对象接收标签,且在框1006处,其读取标签中的命令。在步骤1008处,目标对象执行所述命令,且在框1010处,其将结果发送到远程服务对象,使得所述结果可包含于响应信息包中。在框1012处,进程检查是否存在具有待执行命令的任何更多标签。如果不存在,那么进程在框1018处结束。如果存在具有待执行命令的更多标签,那么在框1014处,读取下一命令,且在框1016处,执行所述命令,且在框1010处,将结果发送到远程服务对象。
[0060]图1lA到IlC图解说明可由目标对象(在此情况中,命名为“vscape”(例如,参见图2)的目标对象)产生的响应信息包的不同实施例。图1lA图解说明对从起始对象接收的“gettree”命令做出响应的响应信息包。响应信息包包含标头(在此情况中,“mixl”及“response”标签)连同显示树(即,对象vscape内的步骤及数据)的有效负载。在此响应信息包中,标头及有效负载两者呈XML格式,因此此响应信息包将不需要为了发射而进行编码或解码。
[0061]图1lB图解说明具有包含二进制数据的有效负载的响应信息包的实施例。可使用对象的BinaryTag帮助程序类别在不进行UNIX间编码的情况下将二进制数据写入到响应信息包。此处的假设为已在命名为“mybin”的二进制字段上进行〈get〉。此非常类似于处置正常〈get〉的逻辑,但使用BinaryTag来代替Tag。BinaryTag构造程序的第二参数应为GUID(全局唯一识别符)以确保二进制信息的无歧义解释。
[0062]图1lC图解说明在有效负载中包含图形的响应信息包的实施例。图形可由符合SVG的标签表示,SVG为用于以XML描述二维图形及图形应用程序的语言。规范由《3.组织在 http: / / www.w3.0rg / Graphics / SVG 处维持。
[0063]图12图解说明对象1200的实施例。在其中对象不使用在请求信息包中使用的标准命令语言作为其本机语言的情况中,可有必要修改所述对象。对象1200图解说明已用额外代码1204 “包裹”而使得其命令结构与标准命令语言兼容的对象1202。可通过在对象1202的代码的开头处并入标头将额外代码1204添加到对象1202。事实上,额外代码1204使得对象1202从理解标准命令语言且可在标准命令语言与对象1202的本机命令语言之间“转译”的基类对象进行派生。在一个实施例中,额外代码1204可为包裹对象1202的现有模式的轻量模式,但在其它实施例中,额外代码1204可执行其它或额外功能。在操作中,接着,对象1200接收来自请求信息包的标签,且对象1202与额外代码1204 —起工作以处理标签并提供响应。在其中对象1202已理解标准命令语言的情况中,不需要用额外代码1204包裹对象1202。
[0064]包含发明摘要中所描述内容的本发明的所图解说明实施例的以上描述并非打算为穷尽性或将本发明限制于所揭示的精确形式。尽管出于说明性目的而在本文中描述本发明的特定实施例及实例,但如所属领域的技术人员将认识到,可在本发明的范围内做出各种等效修改。可根据以上详细描述对本发明做出这些修改。
[0065] 所附权利要求书中所使用的术语不应理解为将本发明限制于说明书及权利要求书中所揭示的特定实施例。相反,本发明的范围将完全由所附权利要求书来确定,所述权利要求书将根据所创建的权利要求解释原则来加以理解。
【权利要求】
1.一种方法,其包括: 检索起始对象可使用标准命令语言与其通信的一个或一个以上候选对象的列表,其中所述一个或一个以上候选对象中的至少一者使用不同于所述标准命令语言的命令语言;查询从所述一个或一个以上候选对象当中选择的一个或一个以上目标对象的模式;及使用所述标准命令语言将与所述目标对象的所述模式一致的命令及/或数据发射到所述一个或一个以上目标对象。
2.根据权利要求1所述的方法,其中检索所述列表包括: 在起始对象处,以所述标准命令语言汇编包含路由命令及针对远程服务对象的命令的请求信息包;及 将所述请求信息包从所述起始对象发射到所述远程服务对象。
3.根据权利要求2所述的方法,其中发射所述请求信息包包括: 将所述请求信息包从所述起始对象发射到本地服务对象; 通过所述本地服务对象与所述远程服务对象之间的通信路径中的一个或一个以上通信对象发射所述请求信息包;及 将所述请求信息包从所述通信路径中的最后一个通信对象递送到所述远程服务对象。
4.根据权利要求1所述的方法,其中查询特定目标对象的所述模式包括: 在所述起始对象处,以所述标准命令语言汇编包含路由命令及模式查询命令的请求信息包;` 将所述请求信息包从所述起始对象发射到所述一个或一个以上目标对象;及 接收阐明所述一个或一个以上目标对象的所述模式的响应信息包。
5.根据权利要求4所述的方法,其中发射所述请求信息包包括: 将所述请求信息包发射到本地服务对象; 通过所述本地服务对象与所述远程服务对象之间的通信路由中的一个或一个以上通信对象发射所述请求信息包; 将所述请求信息包从所述通信路径中的所述最后一个通信对象递送到所述远程服务对象;及 将所述请求信息包从所述远程服务对象递送到所述一个或一个以上目标对象。
6.根据权利要求5所述的方法,其进一步包括: 汇编包含来自所述一个或一个以上目标对象中的每一者的对在所述请求信息包中引导了哪些命令的响应的响应信息包,所述响应信息包包含标头及有效负载;及将所述响应信息包发射到所述起始对象。
7.根据权利要求6所述的方法,其中将所述响应信息包发射到所述起始对象包括: 将所述响应信息包发射到所述远程服务对象; 通过所述远程服务对象与所述本地服务对象之间的通信路径中的一个或一个以上通信对象发射所述响应信息包; 将所述响应信息包从所述通信路径中的所述最后一个通信对象递送到所述本地服务对象;及 将所述响应信息包从所述本地服务对象递送到所述起始对象。
8.根据权利要求7所述的方法,其中发射所述响应信息包包括:在所述远程服务对象之后编码所述有效负载;及 在所述本地服务对象之前解码所述有效负载。
9.根据权利要求6所述的方法,其中所述标头为可扩展标记语言XML数据,且所述有效负载为XML数据、二进制数据或可缩放向量图形SVG数据。
10.一种设备,其包括: 处理器; 起始对象,其在所述处理器上运行,所述起始对象包含在由所述处理器执行时致使所述处理器进行以下操作的指令: 检索所述起始对象可使用标准命令语言与其通信的一个或一个以上候选对象的列表,其中所述一个或一个以上候选对象中的至少一者使用不同于所述标准命令语言的命令语言; 查询从所述一个或一个以上候选对象当中选择的一个或一个以上目标对象的模式;及使用所述标准命令语言将与所述目标对象的所述模式一致的命令及/或数据发射到所述一个或一个以上目标对象。
11.根据权利要求10所述的设备,其中所述起始对象进一步包括用以进行以下操作的指令: 以所述标准命令语言汇编包含路由命令及针对远程服务对象的命令的请求信息包;及 将所述请求信息包从所述起始 对象发射到在额外处理器上运行的远程服务对象。
12.根据权利要求11所述的设备,其中所述用以发射所述请求信息包的指令包括用以进行以下操作的指令: 将所述请求信息包从所述起始对象发射到在所述处理器上运行的本地服务对象;通过所述本地服务对象与所述远程服务对象之间的通信路径中的一个或一个以上通信对象发射所述请求信息包;及 将所述请求信息包从所述通信路径中的最后一个通信对象递送到所述远程服务对象。
13.根据权利要求10所述的设备,其中所述用于查询特定目标对象的所述模式的指令包括用以进行以下操作的指令: 以所述标准命令语言汇编包含路由命令及模式查询命令的请求信息包; 将所述请求信息包从所述起始对象发射到所述一个或一个以上目标对象;及 接收阐明所述一个或一个以上目标对象的所述模式的响应信息包。
14.根据权利要求13所述的设备,其中所述用以发射所述请求信息包的指令包括用以进行以下操作的指令: 将所述请求信息包发射到在所述处理器上运行的本地服务对象; 通过所述本地服务对象与在额外处理器上运行的远程服务对象之间的通信路由中的一个或一个以上通信对象发射所述请求信息包; 将所述请求信息包从所述通信路径中的所述最后一个通信对象递送到所述远程服务对象;及 将所述请求信息包从所述远程服务对象递送到所述一个或一个以上目标对象。
15.根据权利要求14所述的设备,其中所述远程服务对象包含用以致使所述额外处理器进行以下操作的指令:汇编包含来自所述一个或一个以上目标对象中的每一者的对在所述请求信息包中引导了哪些命令的响应的响应信息包,所述响应信息包包含标头及有效负载;及 将所述响应信息包发射到所述起始对象。
16.根据权利要求15所述的设备,其中所述用以将所述响应信息包发射到所述起始对象的指令包括用以致使所述额外处理器进行以下操作的指令: 将所述响应信息包发射到所述远程服务对象; 通过所述远程服务对象与所述本地服务对象之间的通信路径中的一个或一个以上通信对象发射所述请求信息包; 将所述请求信息包从所述通信路径中的所述最后一个通信对象递送到所述本地服务对象;及 将所述请求信息包从所述本地服务对象递送到所述起始对象。
17.根据权利要求16所述的设备,其中所述用以发射所述请求信息包的指令包括用以进行以下操作的指令: 在所述远程服务对象之后编码所述有效负载;及 在所述本地服务对象之前解码所述有效负载。
18.根据权利要求16所述的设备,其中所述标头为可扩展标记语言XML数据,且所述有效负载为XML数据、二进制数据或可缩`放向量图形SVG数据。
【文档编号】G06F15/16GK103502968SQ201280020835
【公开日】2014年1月8日 申请日期:2012年2月29日 优先权日:2011年3月15日
【发明者】约瑟夫·J·德齐扎诺夫斯基 申请人:迈思肯系统公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1