在面向服务架构总线上的互联网协议连接的制作方法

文档序号:7791626阅读:289来源:国知局
在面向服务架构总线上的互联网协议连接的制作方法
【专利摘要】公开了用于在由对等网络实现的面向服务架构(SOA)总线上实现互联网协议(IP)连接的方法、系统和设备。在第一设备处,在SOA总线上通告第一IP服务,以及发现由第二设备在SOA总线上通告的第二IP服务。第一设备可以通过在SOA总线上,远程地调用第二设备的第二IP服务,来向第二设备发送至少第一IP分组。第一设备可以通过由第二设备对第一IP服务的调用,在SOA总线上从第二设备接收至少第二IP分组。
【专利说明】在面向服务架构总线上的互联网协议连接

【技术领域】
[0001]概括地说,以下内容涉及面向服务架构(SOA),具体地说,以下内容涉及在SOA总线上对网络通信的实现。

【背景技术】
[0002]在面向服务架构中,一个或多个节点可以彼此之间通信,以彼此提供互操作的服务。在该背景下,可以将服务视作为由自含式软件实现的自主功能单元。面向服务架构功能的典型实现方式可以包括由计算机网络互连的多个计算机节点。每一个节点可以与其它节点进行通信,以识别由其它节点提供的服务。此外,每一个节点还可以向其它节点通告一个或多个服务。
[0003]对于第一节点在面向服务架构中调用由第二节点提供的服务而言,第一节点可以向第二节点发送远程过程调入,所述远程过程调入由所选择的服务来支持。远程过程调入可以包括一个或多个自变量或者由第一节点提供的其它参数。第二节点可以通过基于调入的类型和/或提供的参数,执行一个或多个软件功能,来响应远程过程调入。在一些例子中,第二节点可以向第一节点提供远程过程调入的结果。
[0004]最近,对面向服务架构总线(其还称为服务总线)的使用日益增加。面向服务架构总线有助于在相互交互的软件应用之间实现通信,以允许应用调用彼此的服务。随着对面向服务架构总线的使用的增加,持续地开发出了这些总线的新用途。


【发明内容】

[0005]与SOA总线通信耦合。第一设备可以在SOA总线上通告第一 IP服务,以及第二设备可以在SOA总线上通告第二 IP服务。设备可以发现彼此的服务,以及通过在SOA总线上远程地调用彼此的通告的IP服务来交换IP分组。
[0006]一些实施例可以包括实现IP连接的方法。该方法可以包括:在第一设备处,在SOA总线上通告第一 IP服务;以及在所述SOA总线上发现由第二设备通告的第二 IP服务。可以通过在所述SOA总线上远程地调用所述第二设备的所述第二 IP服务,向所述第二设备发送至少第一 IP分组。可以通过第一通告的服务,在所述SOA总线上从所述第二设备接收至少第二 IP分组。
[0007]在一些实施例中,在所述SOA总线上通告所述第一 IP服务可以包括:使用与所述第一 IP服务相关联的服务名称,在所述SOA总线上通告所述第一 IP服务,与所述第一 IP服务相关联的服务名称包括:与所述SOA总线处的IP服务统一地关联的服务描述符。与所述第一 IP服务相关联的服务名称可以包括:被分配给所述第一设备的唯一的IP地址。
[0008]在一些实施例中,可以动态地生成针对所述第一设备的第一 IP地址,以及做出关于在所述SOA总线上的任何其它设备是否与所述动态地生成的IP地址相关联的判断。如果确定在所述SOA总线上没有其它设备与所述动态地生成的IP地址相关联,则可以将所述动态地生成的IP地址分配成所述第一设备的唯一的IP地址。在一些例子中,确定所述SOA总线上没有其它设备与所述动态地生成的IP地址相关联可以包括:确定在所述SOA总线上的不同的服务与所述动态地生成的IP地址相关联;确定所述不同的服务具有被分配给所述第一设备的唯一的标识符;以及基于所述唯一的标识符,来确定所述不同的服务属于所述第一设备。在一些例子中,响应于确定在所述SOA总线上的另一个设备与所述动态地生成的IP地址相关联,可以放弃所述动态地生成的IP地址,以及可以为所述第一设备动态地生成新的IP地址。
[0009]在一些实施例中,在所述SOA总线上发现由所述第二设备通告的所述第二 IP服务可以包括:在所述SOA总线上发现与所述第二 IP服务相关联的服务名称,与所述第二 IP服务相关联的服务名称具有:与所述SOA总线处的IP服务统一地关联的服务描述符。与所述第一 IP服务相关联的服务名称和与所述第二 IP服务相关联的服务名称可以被通告在由所述SOA总线实现的连续命名空间中。
[0010]在一些实施例中,与所述第二 IP服务相关联的服务名称还包括:被分配给所述第二设备的唯一的IP地址。所述第一 IP分组可以去往被分配给所述第二设备的唯一的IP地址。所述第二 IP分组可以去往与所述第一设备相关联的唯一的IP地址。
[0011]在一些实施例中,与所述第一 IP服务相关联的服务名称还包括与所述第一设备相关联的主机名。与所述第一 IP服务相关联的服务名称还可以包括与所述主机名相关联的子域。与所述第一 IP服务相关联的服务名称还可以包括与所述第一 IP服务相关联的子网。
[0012]在一些实施例中,向所述第二设备发送IP分组包括:在所述SOA总线上调用所述第二 IP服务;以及将所述第一 IP分组作为与远程地调用所述第二 IP服务相关联的参数,发送给所述第二 IP服务。从所述第二设备接收所述第二 IP分组可以包括:确定所述第二设备在所述SOA总线上调用了所述第一 IP服务;以及接收作为与远程地调用所述第一 IP服务相关联的参数的所述第二IP分组。在虚拟网络接口处,可以发生向所述第二设备发送所述第一 IP分组和/或从所述第二设备接收所述第二 IP分组。
[0013]在一些实施例中,所述第一设备和所述第二设备可以使用不同的接入协议连接到所述SOA总线。所述SOA总线可以是通过由异构无线技术互连的多个设备来实现的。所述SOA总线可以是通过对等网络来实现的。
[0014]一些实施例可以包括用于实现IP连接的设备,设备包括通告模块、发现模块、发射机和接收机。所述通告模块可以被配置为在SOA总线上通告第一 IP服务。所述发现模块可以被配置为在所述SOA总线上发现由第二设备通告的第二 IP服务。所述发射机可以被配置为通过在所述SOA总线上远程地调用所述第二设备的所述第二 IP服务,向所述第二设备发送至少第一 IP分组。所述接收机可以被配置为通过第一通告的服务,在所述SOA总线上从所述第二设备接收至少第二 IP分组。
[0015]一些实施例可以包括用于实现IP连接的装置。该装置可以包括:用于在第一设备处在面向服务架构(SOA)总线上通告第一 IP服务的单元;用于在所述SOA总线上发现由第二设备通告的第二 IP服务的单元;用于通过在所述SOA总线上远程地调用所述第二设备的所述第二 IP服务,向所述第二设备发送至少第一 IP分组的单元;以及用于通过第一通告的服务,从所述第二设备接收至少第二 IP分组的单元。
[0016]一些实施例可以包括被配置为实现互联网协议(IP)连接的计算机程序产品,该产品包括非暂时性计算机可读介质。所述介质可以包括:用于在第一设备处在面向服务架构(SOA)总线上通告第一 IP服务的代码;用于在所述SOA总线上发现由第二设备通告的第二 IP服务的代码;用于通过在所述SOA总线上远程地调用所述第二设备的所述第二 IP服务,向所述第二设备发送至少第一 IP分组的代码;以及用于通过第一通告的服务,从所述第二设备接收至少第二 IP分组的代码。
[0017]一些实施例可以包括用于实现IP连接的系统。该系统可以包括:S0A总线,其被配置为使用多种不同的接入技术,通信地耦合到多个不同的设备;第一设备,其被配置为在所述SOA总线上通告第一 IP服务;以及第二设备,其被配置为在所述SOA总线上通告第二IP服务。所述SOA总线可以使所述第一设备和所述第二设备能够通过由所述第二设备对所述第一 IP服务的远程调用,以及由所述第一设备对所述第二 IP服务的远程服务调用,来交换IP分组。

【专利附图】

【附图说明】
[0018]通过参照下面的附图,可以认识到对本发明的本质和优点的进一步理解。在附图中,类似的组件或特征具有相同的参考标记。此外,相同类型的各个组件可以通过在参考标记之后加上虚线以及用于区分相似组件的第二标记来进行区分。如果在说明书中仅使用了第一参考标记,则该描述可适用于具有相同的第一参考标记的任何一个类似组件,而不管第二参考标记。
[0019]图1示出了用于在面向服务架构(SOA)总线上实现互联网协议(IP)连接的示例性系统的框图;
[0020]图2示出了无线通信系统的框图;
[0021]图3示出了用于在SOA总线上实现IP连接的示例性系统的框图;
[0022]图4示出了 SOA总线上在第一设备的第一 IP服务和第二设备的第二 IP服务之间的示例性通信信号的框图;
[0023]图5示出了被配置为在SOA总线上发送和接收IP分组的示例性设备的框图;
[0024]图6示出了被配置为在SOA总线上发送和接收IP分组的示例性设备的框图;
[0025]图7示出了用于在SOA总线上实现IP连接的示例性方法的流程图;
[0026]图8示出了用于在SOA总线上实现IP连接的示例性方法的流程图;
[0027]图9示出了用于在SOA总线上实现IP连接的示例性方法的流程图;
[0028]图10示出了用于在SOA总线上实现IP连接的示例性方法的流程图;
[0029]图11示出了用于生成IP地址,用于在SOA总线上的IP通信中使用的示例性方法的流程图;
[0030]图12示出了用于发现IP服务,用于在SOA总线上实现IP连接的示例性方法的流程图。

【具体实施方式】
[0031]描述了在SOA总线上的IP通信的实现方式。与SOA总线相耦合的设备可以通告和实现IP服务的分别的实例。每一个IP服务可以具有在与SOA总线相关联的IP子网中的IP地址。通告的每一个IP服务可以具有:包括与IP连接统一地关联的服务描述符的名称。额外地,每一个IP服务的名称可以包括针对所述特定服务的IP地址。第一设备可以通过远程地调用由第二设备通告的IP服务,以及将IP分组作为调用的参数传递给第二设备的IP服务,来在SOA总线上向第二设备发送IP分组。
[0032]因此,下面的描述提供了例子,以及不是对权利要求中阐述的范围、适用性或者配置的限制。在不脱离本发明的精神和范围的情况下,可以对讨论的元素的功能和排列进行改变。各个实施例可以根据需要来省略、替代或者增加各种过程或组件。例如,可以按照与所描述的不同的顺序来执行描述的方法,以及可以对各个步骤进行增加、省略或者组合。此夕卜,相对于某些实施例所描述的特征可以组合到其它实施例中。
[0033]图1示出了在其中各种设备115 (例如,个人计算机115-a、智能电话115_b、平板计算机115-c和打印机115-d)在对等层彼此之间通信的示例性系统100。
[0034]如图1中所示,设备115可以通过不同的接入技术彼此之间进行通信。在所给出的例子中,个人计算机115-a通过无线局域网(WLAN)连接(例如,作为自组织WLAN连接和/或通过WLAN开关、接入点或者路由器)与智能电话115-b进行通信。个人计算机115-a还通过通用串行总线(USB)连接与打印机115-d进行通信。智能电话115-b还通过蓝牙无线连接与平板计算机115-c进行通信。
[0035]虽然所给出的例子中没有单个设备115与系统中的设备115中的每个设备直接相通信,但设备115可以彼此之间协作,以通过对等网络来实现SOA总线105。如本说明书和所附的权利要求中所使用的,术语“S0A总线”广义地指代:为分布式节点提供逻辑基础设施以向彼此通告服务以及远程地调用彼此的通告的服务的任何通信架构。额外地,术语“服务”广义地指代:可以由与实现服务的设备或者应用分开的设备或者应用来远程地调用(invoke)或者调入(call)的自主的软件功能单元。
[0036]出于清楚说明的目的,在图2中以及遍及说明书对SOA总线105的描述,在实现开源AllJoyn总线功能的AllJoyn总线的背景下给出。但是,本说明书的原理可以广泛地应用于其它类型的SOA总线,其包括但不限于:企业服务总线(ESB)、视窗“Windows”服务总线、简单服务总线(SSB)、D-总线和/或其它服务总线。
[0037]在图1的系统中,为了实现SOA总线105,设备115中的每一个设备可以运行SOA总线端口监督程序的分别的实例。在系统300的每个设备115上运行的SOA总线端口监督程序,可以与在系统300的其它设备115上运行的SOA总线端口监督程序进行通信,以在对等网络上建立逻辑SOA总线105,使得设备115中的每一个设备可以在逻辑SOA总线105上与系统100中的其它设备115中的任何一个设备进行通信,而不管由设备115与它们的对等体进行通信所使用的接入技术。
[0038]设备115中的每一个设备可以被配置为在SOA总线105上提供多个服务。例如,个人计算机115-a可以提供聊天服务、流媒体服务和互联网协议(IP)服务。智能电话115-b可以提供聊天服务、全球定位系统(GPS)服务和IP服务。平板计算机115-c可以提供字典服务和IP服务。打印机115-d可以提供聊天服务、流媒体服务和IP服务。可以向在每一个设备115处提供的每一个服务分配SOA总线105上的逻辑位置或者地址。例如,向个人计算机115-a的聊天服务给予在SOA总线105上的地址:1.1,向个人计算机115_a的流媒体服务给予在SOA总线105上的地址:1.2,以及向个人计算机115-a的IP服务给予在SOA总线105上的地址:1.3。出于本说明书和所附权利要求的目的,术语“互联网协议”或“IP”指代互联网协议的任何版本,包括IPv4、IPv6和/或任何其它过去的或者未来的版本。
[0039]在SOA总线105上的每一个设备115可以具有到由其它设备115通告的服务的列表的接入。在设备115中的一个设备上的委托进程(client process)可以远程地调用由另一个设备115提供的通告的服务,所述调用通过以下方式来进行:在SOA总线105上建立与所通告的服务在SOA总线上的地址的会话。例如,如果智能电话115-b的委托进程期望接入打印机115-d的流媒体服务,则委托进程可以建立与在SOA总线105上的地址:1.9的会话,以及通过该会话来远程地调用与流媒体服务相关联的方法或者过程。在某些例子中,委托进程可以是在SOA总线上通告的另一个服务。额外地或者替代地,委托进程可以是具有在SOA总线105上的分别的地址的应用或者其它软件功能单元,其不在SOA总线105上提供公开地通告的服务。
[0040]如图1中所示,系统100中的每一个设备115可以在SOA总线105上提供IP服务。在替代的例子中,系统100中的设备115的仅仅子集可以在SOA总线上提供IP服务。IP服务可以彼此之间协作,以在SOA总线105上实现一个或多个IP子网。这种IP子网可以是分开的,以及独立于SOA总线之外的任何其它IP子网。因此,即使个人计算机115-a和智能电话115-b是依靠它们的WLAN连接的第一 IP子网的一部分,第一 IP子网也可以与在SOA总线105上实现的第二 IP子网分开和不相同。
[0041]如图1中所进一步示出的,每一个IP服务都可以具有在SOA总线105上通告的唯一名称。每一个唯一名称可以包括服务描述符和IP地址的附加指示符,所述服务描述符统一地与IP服务关联(例如,“org.all joyn.1pservice”),以及所述IP地址的附加指示符被分配给在由SOA总线105实现的IP子网之中的所述设备(例如,“sl92_168_0_4”指示192.168.0.4的IP地址)。利用统一的服务描述符,每一个IP服务可以像这样由在SOA总线105上的其它设备快速地识别。额外地,通过在SOA总线105上通告的IP服务的名称中指示IP地址,不需要额外的发现步骤来确定设备115在SOA总线105上实现的IP子网中的IP地址。
[0042]由于SOA总线105的对等架构,没有分开的路由器或者交换机可用于(或者被需要)在连接到SOA总线105的设备115之间对IP分组进行路由。相反地,在SOA总线105上提供IP服务的每个设备115,可以维持彼此知道在SOA总线105上提供IP服务的设备115的IP地址的列表。可以通过通告的IP服务的远程调用,在SOA总线105上在设备115之间交换IP分组。例如,个人计算机115-a(IP地址192.168.0.4)可以通过以下操作来发送去往192.168.0.21 (与智能电话115_b相关联的IP地址)的IP分组:建立在SOA总线105上的地址:1.3和地址:1.6之间的会话,远程地调用与智能电话115-b相关联的IP服务(即,“org.all joyn.1pservice.sl92_168_0_21”)相关联的方法或者函数,以及在SOA总线105上将IP分组传递给与智能电话115-b相关联的IP服务。可以将IP分组作为远程地调用的方法或者函数的语法中的自变量或者其它参数,传递给与智能电话115-b相关联的IP服务。在某些例子中,IP服务可以将IP分组视作为对象,而不是分组。
[0043]在某些例子中,可以在SOA总线105上实现多个IP子网。在这样的例子中,IP服务可以实施允许仅在与同一 IP子网相关联的IP地址之间传送分组的规则。在一些例子中,可以将IP服务的IP子网包括在所述IP服务的名称中。例如,“org.all joyn.1pservice.weather.sl92_168_0_21”的IP服务名称可以指代与在第一子网上的IP地址192.168.0.21相关联的 IP 服务,而 “org.all joyn.1pservice.sports.sl92_168_0_21 ” 可以指代在完全分开的、独立的子网上的相同IP地址。设备115可以具有针对由SOA总线105实现的多个IP子网的多个IP地址。在这种情况下,设备115可以运行多个IP服务,每一个IP服务与分开的子网相关联,和/或允许单一 IP服务处理多个子网。如果单一 IP服务处理多个子网,则IP服务的名称可以反映与设备115相关联的每一个IP地址和子网。在某些例子中,可以发现多个子网。例如,用户可能期望寻找与天气预报有关的自组织子网。在该例子中,用户可以针对名称以“org.all joyn.1pservice.weather”开始的服务,对SOA总线105进行搜索。用户可以使用具有唯一 IP地址的相同前导码,在子网中的一个或多个子网上通告针对他的或者她的设备115的IP地址。
[0044]额外地,在某些例子中,IP服务中的一个或多个IP服务可以包括域名服务(DNS)功能。例如,在个人计算机115_a上运行的应用可以尝试从域主机名“magellan.1on.local”存取文件。在个人计算机115_a上运行的IP服务可以被配置为:将所提供的域转换成在连接到SOA总线105的其它设备115中的一个设备之上运行的IP服务。
[0045]在某些例子中,一个或多个IP服务的名称可以包括与所述IP服务相关联的任何域主机名的指示符。例如,由设备115通告的IP服务的名称可以是“org.all joyn.1pservice.sl92_168_0_21_2356_magellan”。在该例子中,服务名称的“Magellan”分量指代与所述IP地址“192.168.0.21”相关联的域主机名。可以向服务名称的主机名分量附加预定的域名(诸如“.1n.local”)或者另一个后缀(例如,以获得“magellan.1on.local”的主机名)。额外地或者替代地,可以将全部的域名包括成通告的服务名称的一部分。还预期的是,可以将与解析的主机名称相关联的服务使用成在主机名之下的子域。例如,如果在SOA总线上的名称为“weather”的服务与在SOA总线上的“voyager”主机名相关联,则在设备115中的一个设备上的DNS功能可以允许对“weather”服务的DNS查找作为“weather.voyager, 1n.local,,。
[0046]用此方式,其它IP服务可以通过发现给予在SOA总线105上的其它IP服务的名称,来发现和跟踪与在SOA总线105上的每一个其它IP服务相关联的域主机名称。这种DNS功能可以允许个人计算机115_a或者另一个设备115在不联系DNS服务器的情况下,向其应用和用户提供有效的DNS解决方案。一旦将针对在SOA总线上的相邻服务的主机名解析为在设备115处的IP地址,就可以将主机名和解析的IP地址增加到设备115的操作系统的主机文件中(例如,在UNIX或者类UNIX系统中在“/etc/hosts”处)。用此方式,操作系统可以自动地将来自应用对已知的主机名的任何DNS查询解析为与SOA总线相关联的IP子网上的正确地址。不需要对设备115的操作系统解析器进行修改,以适应与在SOA总线上通告的服务相关联的主机名。
[0047]还预期的是,在某些例子中,IP服务中的一个或多个IP服务可以被配置为实现各种额外的路由协议(例如,多径路由)和服务质量(QoS)功能,以在IP服务之间获得高效的和有效的IP分组路由。
[0048]返回参见名称为“ org.all joyn.1pservice.sl92—168—O—21—2356—magellan,,的服务的例子,在所通告的服务名称中的“2356”对应于由设备115生成的唯一的ID,以区分通告相同的服务的不同设备115。因此,通过判断具有相同IP地址的另一个服务或者设备是否具有相同或者不同的唯一的ID,可以检测在通告的服务之间的IP地址冲突。如果IP地址具有相同的唯一的ID,则不存在冲突。否则,可以检测到要被解决的IP地址冲突。
[0049]接着参见图2,框图示出了无线通信系统200的一个例子,其中在无线通信系统200中可以在如上面在图1中所描述的SOA总线上实现IP服务。系统200包括基站205 (或者小区)、设备115、基站控制器220和核心网225 (控制器220可以被集成到核心网225中)。系统200可以支持在多个载波上的操作(不同频率的波形信号)。
[0050]在图2的例子中,各个设备115可以通过一个或多个基站205,与核心网225进行通信。额外地,某些设备115可以彼此之间建立对等通信。这样的设备115的群组可以彼此之间进行协作,以建立对等网络。例如,设备115_e、设备115-f和设备115-g可以利用在设备115-e和设备115-f之间的对等连接,以及设备115-f和设备115-g之间的对等连接,来在三个设备115之间建立对等网络。
[0051]设备115还可以进行协作以在对等网络上实现SOA总线(例如,图1的SOA总线105),以及在SOA总线上实现IP通信,如上面相对于图1所描述的。用此方式,可以在不依赖基站205或者核心网225的情况下,在设备115-e、115-f之间建立独立的IP子网。但是,在某些例子中,设备115中的一个或多个设备可以在SOA总线上通告服务,其中SOA总线可以利用通过基站205到核心网225的连接。例如,设备115-e可以从核心网225下载文件,以及通过在设备115-e、设备115-f和设备115-g之间的SOA总线上实现的IP子网,将文件流式地传输给设备115-g。
[0052]设备为了加入在SOA总线上提供IP服务的对等网络,不需要与基站205相通信。如图2中所示,设备115-1和设备115-j均可以在不与基站205进行通信的情况下,实现与其它设备115的对等连接。使用这些对等连接,可以在设备115-h、设备115-1、设备115-j和设备115-k之间实现SOA总线。如上所述,SOA总线可以用于在连接到SOA总线的四个设备115之间实现专用的IP子网。
[0053]基站205可以经由基站天线(没有示出)与设备115进行无线通信。基站205可以经由多个载波在基站控制器220的控制之下,与设备115进行通信。基站205站点中的每一个可以为各自的地理区域提供通信覆盖。在此处,将针对每一个基站205的覆盖区域标识成210-a、210-b或者210-c。可以将针对基站的覆盖区域划分成扇区(没有示出,但其仅仅构成覆盖区域的一部分)。系统200可以包括不同类型的基站205 (例如,宏基站、微基站和/或微微基站)。针对不同的技术可以存在重叠的覆盖区域。
[0054]设备115可以分散于整个覆盖区域210之中。设备115可以被称为移动站、移动设备、接入终端(AT)、用户设备(UE)、用户站(SS)、用户单元,除了固定设备之外。设备115可以包括,但不限于:蜂窝电话和无线通信设备,但还可以包括:桌面型计算机、打印机、月艮务器、机顶盒、电视机和其它媒体播放器、个人数字助理(PDA)、其它手持型设备、上网本、笔记本计算机等等。在一些例子中,设备中的某些设备可以是
[0055]如图1中所示,某些设备115可以不直接与基站进行通信。例如,在小区210-c中,示出了各种设备115,所述各种设备115不具有建立的到基站205的无线连接。如图1中所进一步示出的,某些设备115可以在不通过基站205来路由消息的情况下,彼此之间直接地进行通信。通过彼此之间进行通信(或者直接地或者间接地),设备可以进行协作以建立面向服务架构(SOA)总线,其中设备115能够在总线上向其它设备通告软件服务,以及在总线上发现和调用彼此的服务。在某些例子中,通过所实现的SOA总线在设备115之间的通信,可以独立于基站205或者它们的相关联的核心网225来发生。替代地,在SOA总线上的一个或多个通信可以通过基站205来发生。
[0056]图3是用于在SOA总线上实现IP连接的示例性系统300的框图。系统300包括第一设备115-1和第二设备115-m。第一设备115-1和第二设备115_m彼此在逻辑SOA总线105-a上进行通信。第一设备115-1和第二设备115_m可以是上面参照图1或者图2所描述的设备115的例子。SOA总线105-a可以是上面参照图1所描述的SOA总线105的例子。
[0057]所给出的例子中的每一个设备115包括:一个或多个处理器305、主存储器310、本地存贮设备315和一个或多个输入/输出(I/O)设备320的硬件平台。每一个设备115的处理器305可以执行从本地存贮设备315装载到主存储器310的代码,以执行在操作系统的内核空间和用户空间中的各种功能单元。
[0058]在内核空间中,在图3的例子中所示出的每一个设备115包括:用于发送和接收蓝牙通信的蓝牙接口 325、用于发送和接收WLAN通信的WLAN接口 330、以及虚拟网络接口335。虚拟网络接口可以在网络栈中的IP层处理340和在用户空间中执行的IP服务355之间对分组进行路由,以在SOA总线105-a上实现IP通信。在某些例子中,虚拟网络接口335可以根据已知的规范,来实现TUN/TAP程序或者模块。虚拟网络接口 335可以模拟网络层设备。IP层处理340和UDP/TCP层处理345可以执行与网络栈的层3和层4中的分组处理相关联的传统功能。
[0059]在用户空间中,在图3的例子中所示出的每一个设备115包括:被配置为在IP网络上发送和接收数据的IP应用350、被配置为在SOA总线105-a上实现IP连接的IP服务355、以及被配置为实现SOA总线105-a的SOA总线端口监督程序360。IP服务355和SOA总线端口监督程序360可以是上面参照图1的SOA总线105所描述的IP服务和SOA总线端口监督程序的例子。
[0060]为了示出在SOA总线105-a上在设备115之间的IP通信,考虑第一设备115-1的IP应用350-a向第二设备115-m发送IP分组的例子。在该例子中,IP应用350_a生成数据,其中由UDP/TCP层处理345-a和IP层处理340_a将所述数据组装到IP应用中。组装后的IP分组可以将与第二设备155-f的IP服务355-b相关联的IP地址作为目的地址。如上面参照图2所描述的,第一设备115-1的IP服务355-a可以基于第二设备155-f的IP服务355-b的通告的名称,来确定与第二设备155-f的IP服务355-b相关联的IP地址。
[0061]虚拟网络接口 335-a可以接收或者解释所构造的IP分组,以及将IP分组转发给第一设备的IP服务335-a。随后,第一设备的IP服务355_a可以远程地调用与第二设备115-m的IP服务355-b相关联的方法或者过程,以在SOA总线105_a上将IP分组传递给第二设备115-m的IP服务355-b。例如,可以将IP分组作为与所调用的方法或者过程的语法相关联的自变量或者其它参数,来传送给第二设备115-m的IP服务355-b。IP服务355可以将IP分组视作为软件对象,而不是分组。
[0062]随后,将在第二设备115-m的IP服务355_b处接收的IP分组转发给第二设备的虚拟网络接口 335-b,所述虚拟网络接口 335-b将IP分组放置到网络栈的IP层处理340_b和UDP/TCP层处理345-b中。一旦UDP/TCP层处理345关于IP分组完成了操作,就可以将来自IP分组的数据提供给第二设备115-m的IP应用350-b。
[0063]图4是在由第一设备实现的第一 IP服务355-c和由第二设备实现的第二 IP服务355-d之间在SOA总线上的示例性通信信号的框图。IP服务355可以是上面参照图3所描述的IP服务355的例子。第一设备和第二设备可以是上面参照图1、图2或图3所描述的设备115的例子。SOA总线105-b可以是上面参照图1或者图3所描述的SOA总线105的例子。
[0064]IP服务355中的每一个IP服务可以具有在SOA总线105_b上唯一的地址。在本例子中,第一 IP服务355-C具有在SOA总线105-b上的地址:1.3,以及第二 IP服务355-d具有在SOA总线105-b上的地址:1.6。额外地,每一个IP服务355具有在SOA总线上通告的以及对于其它服务来说可发现的名称。本例子中的每一个IP服务355的名称包括:在SOA总线105-b的连续命名空间中与IP服务355统一地关联的服务描述符(即,“org.all joyn.1pservice”)。每一个名称额外地具有与在SOA总线105_b上实现的IP子网相关联的IP地址的指示符。因此,第一 IP服务355-c具有“org.all joyn.1pservice.sl92_168_0_4”的名称,其指示IP服务355具有IP地址192.168.0.4,以及第二 IP服务355-d 具有“org.all joyn.1pservice.sl92_168_0_21”的名称,其指示 IP 服务 355 具有 IP地址 192.168.0.21。
[0065]为了第一 IP服务355和第二 IP服务355交换IP分组,第一 IP服务355_c首先在SOA总线105-b上在:1.3和:1.6之间发起(405)会话。第二 IP服务355_d对在:1.3和:1.6之间的会话进行确认(410)。随后,第一 IP服务355-c可以通过在SOA总线105_b上远程地调用(415)在第二 IP 服务 355-d 处名称为 “org.all joyn.1pservice.sl92_168_0_21.transmit”的方法,来发送去往第二 IP服务355_d的IP地址的第一 IP分组。第一 IP服务将第一 IP分组作为针对函数的自变量或者其它参数,传递给所调用的方法。函数可以是由所有IP服务为了实现IP通信所实现的已知函数集中的一个。可以将IP分组视作为在两个IP服务355之间的对象参数。第二 IP服务355-d可以通过以下操作向第一 IP服务355-c发送第二分组:在SOA总线105-b上远程地调用(420)在第一 IP服务355_c处名称为“org.all joyn.1pservice.sl92_168_0_4.transmit”的方法,将第二 IP 分组作为自变量或者其它参数传递给所调用的方法。
[0066]图5示出了示例性设备115-n的框图。设备115_n可以是上面参照图1、图2或图3所描述的设备115的例子。例如,设备115-n可以完全在硬件中实现,或者实现成硬件和软件的组合。设备115-n包括IP服务模块505、IP服务通告模块510、IP服务发现模块515、发射机模块520和接收机模块525。
[0067]IP服务模块505可以被配置为:在由对等网络实现的SOA总线(例如,图1、图3或图4的SOA总线105)上实现IP服务(例如,图3或图4的IP服务355)。由IP服务模块505实现的IP服务可以与在SOA总线上实现的IP子网内的IP地址相关联。IP服务可以被配置为:与其它IP服务进行通信,所述其它IP服务与在SOA总线上的子网中的不同IP地址相关联。
[0068]IP服务通告模块510可以在SOA总线上向其它设备和服务通告由IP服务模块505实现的IP服务。IP服务通告模块510可以通告IP服务的名称、与IP服务相关联的IP地址、介质访问控制(MAC)地址、全球唯一标识符(⑶ID)、通用唯一标识符(UUID)和/或关于可以适合于这些原理的特定实现方式的IP服务的任何其它信息。在某些例子中,IP服务通告模块510还可以通告与第一 IP服务相关联的子网和/或DNS解析数据。
[0069]IP服务发现模块515可以发现在SOA总线上由第二设备通告的第二 IP服务。如本描述中在其它地方所更详细描述的,可以基于在第二 IP服务的通告的名称中所包含的统一的IP服务描述符,来发现第二 IP服务。IP服务发现模块515还可以根据通告的名称或者通过某种其它的方法,发现与第二 IP服务相关联的IP地址。在某些例子中,IP发现模块515还可以发现MAC地址、⑶ID、UUID和/或关于可以适合于这些原理的特定实现方式的第二 IP服务的任何其它信息。在额外的或者替代的例子中,IP服务发现模块与第二IP服务相关联的子网和/或DNS解析数据。
[0070]发射机模块520可以被配置为通过以下方式向第二设备发送至少第一 IP分组:使IP服务模块505在SOA总线上远程地调用第二 IP服务,将第一 IP分组作为与调用第二 IP服务相关联的自变量或者其它参数,传递给第二 IP服务。
[0071]接收机模块525可以被配置为:通过由设备115-n的IP服务模块505实现的IP服务,在SOA总线上从第二设备接收至少第二 IP分组。第二设备可以通过以下方式向IP服务发送第二 IP分组:通过在SOA总线上远程地调用IP服务,以及将第二 IP分组作为与调用IP服务相关联的自变量或者参数传递给IP服务。
[0072]图6示出了示例性设备115-0的框图。设备115-0可以是上面参照图1、图2、图3或图5所描述的设备115的例子。例如,设备115-0可以完全在硬件中实现,或者实现成硬件和软件的组合。类似于图5的设备115-n,图6的设备115-0包括IP服务模块505_a、IP服务通告模块510-a、IP服务发现模块515-a、发射机模块520_a和接收机模块525_a。额外地,图6的设备115-0包括SOA总线端口监督程序模块605、IP应用615和IP地址分配模块620。
[0073]SOA总线端口监督程序模块605可以实现用于建立与相邻的设备的对等连接的SOA总线端口监督程序。用此方式,多个设备可以建立实现SOA总线的对等网络,如上所述。由于SOA总线端口监督程序模块605在设备115-0上逻辑地实现SOA总线功能,因此IP服务模块505-a可以通过SOA总线端口监督程序模块605与SOA总线进行通信。SOA总线端口监督程序模块605可以包括会话管理子模块610,所述会话管理子模块610被配置为建立、维持和终止与在SOA总线上提供的服务的会话。
[0074]IP应用615可以包括在用户空间中执行的应用,其中该应用产生和接收通过在SOA总线上实现的IP子网所发送的数据。因此,由发射机模块520-a发送的IP分组中的数据可以源自于IP应用615,以及由接收机模块525-a接收的IP分组中的数据可以最终被转发给IP应用615。
[0075]IP地址分配模块620可以被配置为生成与IP服务模块505_a相关联的IP地址。如上面关于前面的附图所描述的,IP地址分配模块620可以随机地生成处于与SOA总线的IP子网相关联的可允许范围内的IP地址,针对冲突检查SOA总线,以及如果没有发现冲突,则向IP服务模块505-a分配IP地址。
[0076]图7根据本发明的原理示出了用于在由对等网络实现的SOA总线上使能IP连接的方法700的例子。例如,图7的方法700可以由上面参照图1-6所描述的设备115中的一个或多个设备来执行。
[0077]在方框705,在由对等网络实现的SOA总线上通告在第一设备处的第一 IP服务。如上所述,SOA总线可以包括ALLJOYN服务总线、企业服务总线(ESB) ,MICROSOFT WINDOWS (微软视窗)服务总线、简单服务总线(SSB)和/或任何其它可适用类型的服务总线。可以使用与第一 IP服务相关联的服务名称来通告第一 IP服务,与第一服务相关联的服务名称包括与在SOA总线处的IP服务统一地关联的服务描述符(例如,“org.all joyn.1pservice”)。
[0078]在方框710,发现在SOA总线上由第二设备通告的第二 IP服务。可以基于与第二IP服务相关联的服务名称,来发现第二 IP服务。与第二 IP服务相关联的服务名称可以包括与第一 IP服务相关联的服务名称相同的针对IP服务的服务描述符。IP服务名称中的每一个IP服务名称还可以包括:与在由SOA总线实现的IP子网内实现IP服务的各自的设备相关联的唯一的IP地址的指示。针对第一 IP服务和第二 IP服务的服务名称还可以在由SOA总线实现的连续命名空间内实现。
[0079]在方框715,第一设备通过在SOA总线上远程地调用第二 IP服务,向第二设备发送至少第一 IP分组。例如,第一设备可以在SOA总线上远程地调入与第二 IP服务相关联的函数,将第一 IP分组作为函数的自变量或者参数传递给第二 IP服务。第一 IP分组可以去往由SOA总线实现的IP子网内的第二设备相关联的唯一的IP地址。
[0080]在方框720,第一设备通过第一通告的服务在SOA总线上从第二设备接收至少第二 IP分组。例如,第二设备可以在SOA总线上远程地调入与第一 IP服务相关联的函数,将第二 IP分组作为函数的自变量或者参数传递给第一 IP服务。第二 IP分组可以去往由SOA总线实现的IP子网内的第一设备相关联的唯一的IP地址。
[0081]图8是根据本发明的原理示出用于在由对等网络实现的SOA总线上使能IP连接的方法800的另一个例子的流程图。例如,图8的方法800可以由上面参照图1-6所描述的设备115中的一个或多个设备来执行。
[0082]在方框805,在第一设备的虚拟网络接口处从IP应用接收IP分组,IP分组去往第二设备。虚拟网络接口可以接收去往与由SOA总线实现的IP子网相关联的IP地址的IP分组。在某些例子中,可以将去往在SOA总线上的IP地址的IP分组,直接地从IP应用转发给虚拟网络接口。额外地或替代地,虚拟网络接口可以解释去往在SOA总线上的IP地址的IP分组。
[0083]在方框810,将在虚拟网络接口处接收的IP分组转发给在第一设备处执行的第一IP服务。第一 IP服务可以是在SOA总线上向其它设备通告的服务。第一 IP服务可以被配置为:发送和接收作为在SOA总线上进行的远程函数或过程调入的对象的IP分组。
[0084]在方框815,可以根据IP分组的目的地址识别在第二设备处执行的第二 IP服务。例如,第二 IP服务可以具有在SOA总线上通告的名称,所述名称包括与第二 IP服务相关联的IP地址。因此,可以针对包括IP分组的目的IP地址的IP服务,通过对在SOA总线上通告的服务的名称列表进行搜索,来识别第二 IP服务。
[0085]在方框820,做出关于当前在SOA总线上在第一 IP服务和第二 IP服务之间是否存在会话的判断。可以使用一个或多个表格或者其它数据结构来进行该判断,其中所述一个或多个表格或者其它数据结构跟踪在SOA总线上在第一设备的服务或应用和外部设备的服务或应用之间的会话的进程。
[0086]如果当前在SOA总线上在第一 IP服务和第二 IP服务之间不存在服务(方框820,否),则在方框825处,在SOA总线上在第一 IP服务和第二 IP服务之间生成新的会话。当在SOA总线上在第一 IP服务和第二 IP服务之间存在会话时,则在方框830处,第一 IP服务可以在SOA总线上远程地调用第二 IP服务,将IP分组作为第二 IP服务的函数或者过程的参数或者自变量来传递给第二 IP服务。在某些例子中,第一 IP服务和第二 IP服务可以将IP分组视作为对象,而不是可路由的分组。
[0087]图9根据本发明的原理示出了用于在由对等网络实现的SOA总线上使能IP连接的方法900的另一个例子。例如,图9的方法900可以由上面参照图1-6所描述的设备115中的一个或多个设备来执行。
[0088]在方框905,做出关于是否在SOA总线上由在第二设备处的第二 IP服务远程地调用了在第一设备处的第一 IP服务的判断。例如,可以在第一设备处确定的是,第二IP服务在SOA总线上远程地调入了与第一 IP服务相关联的函数。
[0089]在方框910,接收到作为与调用第一 IP服务相关联的参数的、去往与第一 IP服务相关联的IP地址的IP分组。例如,第一 IP服务可以接收IP分组,所述IP分组作为由第二 IP服务远程地调入的函数的语法内的对象参数或者自变量。
[0090]在方框915,将接收的IP分组从第一 IP服务转发给在第一设备处实现的虚拟网络接口。虚拟网络接口可以将IP分组视作为好像IP分组是作为在传统的网络连接上的传统分组被接收的一样。在方框920,虚拟网络接口可以在IP层发起对接收的IP分组的处理。在某些例子中,可以在IP层处理期间,从IP分组中提取TCP或者UDP数据报。可以基于TCP或UDP处理的结果,将来自于TCP或UDP数据报的数据转发给应用层。额外地或者替代地,可以使用来自于TCP或UDP数据报的数据来更新TCP或UDP套接字的状态。
[0091]图10是根据本发明的原理示出用于在由对等网络实现的SOA总线上使能IP连接的方法1000的另一个例子的流程图。例如,图10的方法1000可以由上面参照图1-6所描述的设备115中的一个或多个设备来执行。
[0092]在方框1005,第一设备连接到SOA总线。例如,SOA总线可以包括ALLJ0YN服务总线、ESB、MICROSOFT WINDOWS服务总线、SSB和/或任何其它适当的SOA总线。
[0093]在方框1010,向第一设备分配用于IP通信的IP地址。可以通过以下方式将IP地址分配给第一设备:随机地生成在由SOA总线实现的子网内的IP地址,以及检查在SOA总线上的IP地址冲突。
[0094]在方框1015,生成针对与第一设备相关联的第一 IP服务的名称。名称可以包括:与在SOA总线处的IP服务统一地关联的服务描述符、以及所分配的IP地址。例如,如果与IP服务统一地关联的服务描述符是“org.all joyn.1pservice”,以及分配给第一设备用于在SOA上进行IP通信的IP地址是192.168.0.4,则可以通过将所分配的IP地址附加到服务描述符上,生成针对第一 IP服务的“org.all joyn.1pservice.sl92_168_0_4”的名称,来产生针对第一 IP服务的名称。
[0095]在方框1020,第一设备使用由SOA总线实现的连续命名空间来通告第一 IP服务的名称。例如,在第一设备上运行的SOA总线端口监督程序,可以向在连接到SOA总线的其它设备上运行的其它SOA总线端口监督程序通告第一 IP服务的名称。
[0096]在方框1025,可以发现与连接到SOA总线的第二设备相关联的第二 IP服务。例如,在第一设备上运行的SOA总线端口监督程序,可以接收来自于在第二设备上运行的SOA总线端口监督程序的广播(其包括第二 IP服务的名称)。在第一设备上运行的SOA总线端口监督程序可以根据第二 IP服务的名称,确定第二 IP服务用于IP通信,以及将第二 IP服务的名称转发给第一 IP服务。
[0097]在方框1030,基于第二 IP服务的名称,确定与第二 IP服务相关联的IP地址。例如,如果第二 IP 服务的名称是“org.all joyn.1pservice.sl92_168_0_22”,则第一 IP 服务可以确定与第二 IP服务相关联的IP地址是192.168.0.22。
[0098]在方框1035,在第一设备处,生成去往与第二 IP服务相关联的IP地址的IP分组。可以通过在第一设备处的IP应用来生成IP分组。
[0099]在方框1040,通过在SOA总线上远程地调用第二 IP服务,以及将IP分组作为调用第二 IP服务的参数传递给第二 IP服务,来向第二设备发送IP分组。在某些例子中,IP分组可以是与第二 IP服务相关联、以及由第一 IP服务远程地调入的过程或者其它函数的语法相关联的对象。
[0100]图11是根据本发明的原理示出生成用于在SOA总线上的IP通信中使用的IP地址的方法1100的例子的流程图。例如,图11的方法1100可以由上面参照图1-6所描述的设备115中的一个或多个设备来执行。
[0101]在方框1105,确定在由SOA总线实现的当前IP子网中的IP地址的可允许范围。在某些例子中,连接到SOA总线的一个或多个应用可以通告IP地址的可允许范围。额外地或者替代地,可以基于SOA总线的属性来确定性地识别IP地址的可允许范围。
[0102]在方框1110,在第一设备处,生成在针对子网的IP地址的可允许范围之内的IP地址。在某些例子中,可以使用随机发生器,以及保持所生成的IP地址在针对子网的可允许范围之内的掩码,来生成IP地址。
[0103]在方框1115,生成针对第一设备的IP服务名称,用于在SOA总线上使用。通过将所生成的IP地址附加到与在SOA总线上的IP服务相关联的已知服务描述符,来生成IP服务名称。所生成的IP服务名称可以遵循由SOA总线实现的连续命名空间的语法。
[0104]在方框1120,针对IP服务名称冲突,对SOA总线进行查询。例如,可以将所生成的IP服务名称从在第一设备上运行的SOA总线端口监督程序,发送给在连接到SOA总线的其它设备上运行的SOA总线端口监督程序。如果连接到SOA总线的另一个设备已经在使用针对第一设备所生成的IP服务名称(方框1125,是),则流程返回到方框1110,其中在该方框处,在第一设备处生成新的IP地址。否则(方框1125,否),在方框1130处,将在第一设备处生成的IP服务名称和IP地址分配给第一设备。
[0105]图12是根据本发明的原理示出在SOA总线上发现IP服务的方法1200的例子的流程图。例如,图12的方法1200可以由上面参照图1-6所描述的设备115中的一个或多个设备来执行。
[0106]在方框1205,在连接到SOA总线的设备上运行的SOA总线端口监督程序,接收用于向在设备上运行的第一 IP服务通知连接到SOA总线的新的IP服务的指令。在某些例子中,在SOA总线端口监督程序处可以接收来自于第一 IP服务的表达指令。额外地或者替代地,可以将指令作为SOA总线端口监督程序的下层代码的一部分,固有地提供给SOA总线端口监督程序。
[0107]在方框1210,第一 IP服务接收到在SOA总线上的新的第二 IP服务的通知。第一IP服务接收第二 IP服务的名称,以及第二 IP服务在SOA总线上的位置或地址。
[0108]在方框1215,基于与第二 IP服务相关联的名称,识别第二 IP服务的IP地址。第二 IP服务的IP地址可以与第二 IP服务在SOA总线上的位置或者地址不相同。例如,第二IP服务的IP地址可以是“192.168.0.12”,以及第二 IP服务在SOA总线上的位置“:1.3”。
[0109]在方框1220,在由第一 IP服务所维持的映射表或者其它数据结构中,将第二 IP服务的IP地址与第二 IP服务在SOA总线上的位置进行关联。
[0110]上面结合附图阐述的【具体实施方式】描述了示例性实施例,以及并不表示可以实现的或者在权利要求的范围内的唯一的实施例。遍及本描述使用的术语“示例性”意味着“用作例子、例证或说明”,以及并不意味“优选的”或者“比其它实施例更有优势的”。出于提供对所描述的技术的理解,【具体实施方式】包括具体细节。但是,在没有这些具体细节的情况下,可以实施这些技术。在一些实例中,为了避免对所描述的实施例的概念造成模糊,以框图形式示出了公知的结构和设备。
[0111]本文中所描述的技术可以用于各种无线通信系统,诸如CDMA、TDMA, FDMA, OFDMA,SC-FDMA和其它系统。术语“系统”和“网络”经常互换使用。CDMA系统可以实现诸如CDMA2000、通用陆地无线接入(UTRA)等等之类的无线技术。CDMA2000覆盖IS-2000、IS-95和IS-856 标准。IS-2000 版本 O 和 A 通常被称为 CDMA 20001X、1X 等等。IS-856 (TIA-856)通常被称为CDMA 20001xEV-D0、高速分组数据(HRPD)等等。UTRA包括宽带CDMA(WCDMA)和CDMA的其它变形。TDMA系统可以实现诸如全球移动通信系统(GSM)之类的无线技术。OFDMA系统可以实现诸如超移动宽带(UMB)、演进型UTRA(E-UTRA)、IEEE 802.11 (W1-Fi)、IEEE 802.16 (WiMAX)、IEEE 802.20、闪速 OFDM(Flash-OFDM)等等之类的无线技术。UTRA 和E-UTRA是通用移动电信系统(UMTS)的一部分。3GPP长期演进(LTE)和改进的LTE (LTE-A)是UMTS的采用E-UTRA的版本。在来自名称为“第三代合作伙伴计划”(3GPP)的组织的文档中描述了 UTRA、E-UTRA, UMTS, LTE、LTE-A和GSM。在来自名称为“第三代合作伙伴计划2”(3GPP2)的组织的文档中描述了 CDMA2000和UMB。本文中描述的技术可以用于上面所提及的系统和无线技术,以及其它系统和无线技术。
[0112]信息和信号可以使用多种不同的工艺和技术中的任何一种来表示。例如,遍及以上描述所提及的数据、指令、命令、信息、信号、比特、符号和码片可以由电压、电流、电磁波、磁场或粒子、光场或粒子或者其任意组合来表示。
[0113]结合本文公开内容描述的各种说明性的逻辑方框和模块可以利用被设计为执行本文描述的功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件或者其任意组合来实现或执行。通用处理器可以是微处理器,但是在替代的方式中,处理器可以是任何常规的处理器、控制器、微控制器或者状态机。处理器也可以被实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器与DSP内核的结合,或者任何其它这样的配置。
[0114]本文中所描述的功能可以在硬件、由处理器执行的软件、固件或其任意组合中实现。如果在由处理器执行的软件中实现,则功能可以作为一个或多个指令或代码存储在计算机可读介质中或者通过其进行传输。其它例子和实现方式在本公开内容及所附权利要求的范围和精神之内。例如,由于软件的本质,上文所描述的功能可以使用由处理器执行的软件、硬件、固件、硬件连线或者这些的任意组合来实现。用于实现功能的特征还可以物理地分布在多个位置,包括被分布为使得在不同的物理位置处实现功能的一部分。此外,如本文(其包括在权利要求中)所使用的,以“中的至少一个”为结束的项目列表中所使用的“或”指示分离性的列表,以使得例如“A、B或C中的至少一个”的列表意味着:A或B或C或AB或AC或BC或ABC(即,A和B和C)。
[0115]计算机可读介质包括计算机存储介质和通信介质二者,所述通信介质包括促进计算机程序从一个地方传送到另一个地方的任何介质。存储介质可以是可由通用或专用计算机存取的任何可用的介质。通过举例而非限制性的方式,计算机可读介质可以包括RAM、R0M、EEPR0M、⑶-ROM或其它光盘存储、磁盘存储或其它磁存储设备、或者可以用于以指令或数据结构的形式携带或存储期望的程序代码单元以及可以由通用或专用计算机或通用或专用处理器来存取的任何其它的介质。此外,任何连接适当地称为计算机可读介质。例如,如果使用同轴电缆、光纤光缆、双绞线、数字用户线(DSL)或无线技术(诸如红外线、无线电和微波)从网站、服务器或其它远程源发送软件,则同轴电缆、光纤光缆、双绞线、DSL或无线技术(诸如红外线、无线电和微波)包括在介质的定义中。如本文所使用的,磁盘和光盘包括压缩光盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中磁盘通常磁性地复制数据,而光盘则通常利用激光来光学地复制数据。上述的组合也包括在计算机可读介质的范围内。
[0116]提供本公开内容的前述描述,以使本领域的技术人员能够实现或使用本公开内容。对本公开内容的各种修改对于本领域的技术人员将是显而易见的,以及在不脱离本公开内容的精神或范围的情况下,本文所定义的通用原则可以应用到其它变形中。遍及本公开内容,术语“例子”或者“示例性”指示例子或者实例,而不是隐含或者需要针对所述的例子的任何优选性。因此,本公开内容不旨在受限于本文描述的例子和设计,而是要符合与本文所公开的原则和新颖性特征相一致的最宽的范围。
【权利要求】
1.一种实现互联网协议(IP)连接的方法,所述方法包括: 在第一设备处在面向服务架构(SOA)总线上通告第一 IP服务; 在所述SOA总线上发现由第二设备通告的第二 IP服务; 通过在所述SOA总线上远程地调用所述第二设备的所述第二 IP服务,向所述第二设备发送至少第一 IP分组;以及 通过第一通告的服务,在所述SOA总线上从所述第二设备接收至少第二 IP分组。
2.根据权利要求1所述的方法,其中,在所述SOA总线上通告所述第一IP服务包括: 使用与所述第一 IP服务相关联的服务名称,在所述SOA总线上通告所述第一 IP服务,与所述第一 IP服务相关联的服务名称包括:与所述SOA总线处的IP服务统一地关联的服务描述符。
3.根据权利要求2所述的方法,其中,与所述第一IP服务相关联的服务名称还包括:被分配给所述第一设备的唯一的IP地址。
4.根据权利要求3所述的方法,还包括: 动态地生成针对所述第一设备的IP地址; 判断在所述SOA总线上的任何其它设备是否与所述动态地生成的IP地址相关联;以及响应于确定在所述SOA总线上没有其它设备与所述动态地生成的IP地址相关联,将所述动态地生成的IP地址作为所述唯一的IP地址分配给所述第一设备。
5.根据权利要求4所述的方法,还包括: 响应于确定在所述SOA总线上的另一个设备与所述动态地生成的IP地址相关联,放弃所述动态地生成的IP地址;以及 动态地生成针对所述第一设备的新的IP地址。
6.根据权利要求4所述的方法,其中,判断在所述SOA总线上的任何其它设备是否与所述动态地生成的IP地址相关联包括: 确定在所述SOA总线上的不同的服务与所述动态地生成的IP地址相关联; 确定所述不同的服务包括被分配给所述第一设备的唯一的标识符; 基于所述唯一的标识符,确定所述不同的服务属于所述第一设备。
7.根据权利要求3所述的方法,其中,在所述SOA总线上发现由所述第二设备通告的所述第二 IP服务包括: 在所述SOA总线上发现与所述第二 IP服务相关联的服务名称,与所述第二 IP服务相关联的服务名称包括:与所述SOA总线处的IP服务统一地关联的服务描述符。
8.根据权利要求7所述的方法,其中,与所述第一IP服务相关联的服务名称和与所述第二 IP服务相关联的服务名称被通告在由所述SOA总线实现的连续命名空间中。
9.根据权利要求3所述的方法,其中,与所述第二IP服务相关联的服务名称还包括:被分配给所述第二设备的唯一的IP地址。
10.根据权利要求9所述的方法,其中,所述第一IP分组去往被分配给所述第二设备的唯一的IP地址。
11.根据权利要求3所述的方法,其中,所述第二IP分组去往与所述第一设备相关联的唯一的IP地址。
12.根据权利要求2所述的方法,其中,与所述第一IP服务相关联的服务名称还包括:与所述第一设备相关联的主机名。
13.根据权利要求12所述的方法,其中,与所述第一IP服务相关联的服务名称还包括:与所述主机名相关联的子域。
14.根据权利要求2所述的方法,其中,与所述第一IP服务相关联的服务名称还包括:与所述第一 IP服务相关联的子网的指示。
15.根据权利要求1所述的方法,其中,向所述第二设备发送所述第一IP分组还包括: 在所述SOA总线上调用所述第二 IP服务;以及 将所述第一 IP分组作为与远程地调用所述第二 IP服务相关联的参数,发送给所述第二 IP服务。
16.根据权利要求1所述的方法,其中,在虚拟网络接口处,发生向所述第二设备发送所述第一 IP分组。
17.根据权利要求1所述的方法,其中,从所述第二设备接收所述第二IP分组,还包括: 确定所述第二设备在所述SOA总线上调用了所述第一 IP服务;以及 接收作为与远程地调用所述第一 IP服务相关联的参数的所述第二 IP分组。
18.根据权利要求1所述的方法,其中,在虚拟网络接口处,发生从所述第二设备接收所述第二 IP分组。
19.根据权利要求1所述的方法,其中,所述第一设备和所述第二设备使用不同的接入协议连接到所述SOA总线。
20.根据权利要求19所述的方法,其中,所述SOA总线是通过由异构无线技术互连的多个设备来实现的。
21.根据权利要求1所述的方法,其中,所述SOA总线是通过对等网络来实现的。
22.一种用于实现互联网协议(IP)连接的设备,所述设备包括: 通告模块,其被配置为在面向服务架构(SOA)总线上通告第一 IP服务; 发现模块,其被配置为在所述SOA总线上发现由第二设备通告的第二 IP服务; 发射机,其被配置为通过在所述SOA总线上远程地调用所述第二设备的所述第二 IP服务,向所述第二设备发送至少第一 IP分组;以及 接收机,其被配置为通过第一通告的服务,在所述SOA总线上从所述第二设备接收至少第二 IP分组。
23.根据权利要求22所述的设备,其中,所述通告模块还被配置为: 使用与所述第一 IP服务相关联的服务名称,在所述SOA总线上通告所述第一 IP服务,与所述第一 IP服务相关联的服务名称包括:与所述SOA总线处的IP服务统一地关联的服务描述符。
24.根据权利要求23所述的设备,其中,与所述第一IP服务相关联的服务名称还包括:被分配给所述第一设备的唯一的IP地址。
25.根据权利要求23所述的设备,其中,所述发现模块被配置为通过以下方式,在所述SOA总线上发现由所述第二设备通告的所述第二 IP服务: 在所述SOA总线上发现与所述第二 IP服务相关联的服务名称,与所述第二 IP服务相关联的服务名称包括:与所述SOA总线处的IP服务统一地关联的服务描述符。
26.根据权利要求25所述的设备,其中,与所述第一IP服务相关联的服务名称和与所述第二 IP服务相关联的服务名称被通告在由所述SOA总线实现的连续命名空间中。
27.根据权利要求23所述的设备,其中,与所述第二IP服务相关联的服务名称还包括:被分配给所述第二设备的唯一的IP地址。
28.根据权利要求22所述的设备,其中,所述发射机被配置为通过以下操作向所述第二设备发送所述第一 IP分组: 在所述SOA总线上调用所述第二 IP服务;以及 将所述第一 IP分组作为与远程地调用所述第二 IP服务相关联的参数,发送给所述第二 IP服务。
29.根据权利要求22所述的设备,其中,所述接收机被配置为通过以下操作,从所述第二设备接收所述第二 IP分组: 确定所述第二设备在所述SOA总线上调用了所述第一 IP服务;以及 接收作为与远程地调用所述第一 IP服务相关联的参数的所述第二 IP分组。
30.根据权利要求22所述的设备,其中,所述发射机包括: 虚拟网络接口,其被配置为: 从由所述第一设备实现的IP应用接收所述第一 IP分组; 将所述第一 IP分组转发给所述第一 IP服务; 从所述第一 IP服务接收所述第二 IP分组;以及 将所述第二 IP分组转发给由所述第一设备实现的所述IP应用。
31.一种用于实现互联网协议(IP)连接的装置,所述装置包括: 用于在第一设备处在面向服务架构(SOA)总线上通告第一 IP服务的单元; 用于在所述SOA总线上发现由第二设备通告的第二 IP服务的单元; 用于通过在所述SOA总线上远程地调用所述第二设备的所述第二 IP服务,向所述第二设备发送至少第一 IP分组的单元;以及 用于通过第一通告的服务,从所述第二设备接收至少第二 IP分组的单元。
32.根据权利要求31所述的装置,其中,所述用于在所述SOA总线上通告所述第一IP服务的单元包括: 用于使用与所述第一 IP服务相关联的服务名称,在所述SOA总线上通告所述第一 IP服务的单元,与所述第一 IP服务相关联的服务名称包括:与所述SOA总线处的IP服务统一地关联的服务描述符。
33.根据权利要求32所述的装置,其中,与所述第一IP服务相关联的服务名称还包括:被分配给所述第一设备的唯一的IP地址。
34.根据权利要求33所述的装置,还包括: 用于动态地生成针对所述第一设备的IP地址的单元; 用于判断在所述SOA总线上的任何其它设备是否与所述动态地生成的IP地址相关联的单元;以及 用于响应于确定在所述SOA总线上没有其它设备与所述动态地生成的IP地址相关联,将所述动态地生成的IP地址作为所述唯一的IP地址分配给所述第一设备的单元。
35.根据权利要求34所述的装置,还包括: 用于响应于确定在所述SOA总线上的另一个设备与所述动态地生成的IP地址相关联,放弃所述动态地生成的IP地址的单元;以及 用于动态地生成针对所述第一设备的新的IP地址的单元。
36.根据权利要求33所述的装置,其中,所述用于在所述SOA总线上发现由所述第二设备通告的所述第二 IP服务的单元包括: 用于在所述SOA总线上发现与所述第二 IP服务相关联的服务名称的单元,与所述第二IP服务相关联的服务名称包括:与所述SOA总线处的IP服务统一地关联的服务描述符。
37.根据权利要求36所述的装置,其中,与所述第一IP服务相关联的服务名称和与所述第二 IP服务相关联的服务名称被通告在由所述SOA总线实现的连续命名空间中。
38.根据权利要求33所述的装置,其中,与所述第二IP服务相关联的服务名称还包括:被分配给所述第二设备的唯一的IP地址。
39.根据权利要求38所述的装置,其中,所述第一IP分组去往被分配给所述第二设备的唯一的IP地址。
40.根据权利要求33所述的装置,其中,所述第二IP分组去往与所述第一设备相关联的唯一的IP地址。
41.根据权利要求31所述的装置,其中,所述用于向所述第二设备发送所述第一IP分组的单元还包括: 用于在所述SOA总线上调用所述第二 IP服务的单元;以及 用于将所述第一 IP分组作为与远程地调用所述第二 IP服务相关联的参数,发送给所述第二 IP服务的单元。
42.根据权利要求31所述的装置,其中,所述用于向所述第二设备发送所述第一IP分组的单元包括虚拟网络接口。
43.根据权利要求31所述的装置,其中,所述用于从所述第二设备接收所述第二IP分组的单元还包括: 用于确定所述第二设备在所述SOA总线上调用了所述第一 IP服务的单元;以及 用于接收作为与远程地调用所述第一 IP服务相关联的参数的所述第二 IP分组的单J Li ο
44.根据权利要求31所述的装置,其中,所述用于从所述第二设备接收所述第二IP分组的单元包括虚拟网络接口。
45.根据权利要求31所述的装置,其中,所述第一设备和所述第二设备使用不同的接入协议连接到所述SOA总线。
46.一种被配置为实现互联网协议(IP)连接的计算机程序产品,所述产品包括非暂时性计算机可读介质,所述介质包括: 用于在第一设备处在面向服务架构(SOA)总线上通告第一 IP服务的代码; 用于在所述SOA总线上发现由第二设备通告的第二 IP服务的代码; 用于通过在所述SOA总线上远程地调用所述第二设备的所述第二 IP服务,向所述第二设备发送至少第一 IP分组的代码;以及 用于通过第一通告的服务,从所述第二设备接收至少第二 IP分组的代码。
47.一种用于实现互联网协议(IP)连接的系统,所述系统包括: 面向服务架构(SOA)总线,其被配置为使用多种不同的接入技术,通信地耦合到多个不同的设备; 第一设备,其被配置为在所述SOA总线上通告第一 IP服务;以及 第二设备,其被配置为在所述SOA总线上通告第二 IP服务; 其中,所述SOA总线使所述第一设备和所述第二设备能够通过由所述第二设备对所述第一 IP服务的远程调用,以及由所述第一设备对所述第二 IP服务的远程调用,来交换IP分组。
48.根据权利要求47所述的系统,其中: 所述第一设备被配置为:使用与所述第一 IP服务相关联的第一服务名称,在所述SOA总线上通告所述第一 IP服务; 所述第二设备被配置为:使用与所述第二 IP服务相关联的第二服务名称,在所述SOA总线上通告所述第二 IP服务;以及 所述第一服务名称和所述第二服务名称中的每一个的至少一部分包括:与所述SOA总线处的IP服务统一地关联的服务描述符。
49.根据权利要求48所述的系统,其中: 所述SOA总线被配置为实现连续的命名空间;以及 所述第一服务名称和所述第二服务名称均被通告在所述连续的命名空间中。
50.根据权利要求48所述的系统,其中: 由所述第一设备通告的所述第一服务名称包括与所述第一设备相关联的IP地址;以及 由所述第二设备通告的所述第二服务名称包括与所述第二设备相关联的IP地址。
【文档编号】H04L29/12GK104137518SQ201380010385
【公开日】2014年11月5日 申请日期:2013年2月15日 优先权日:2012年2月21日
【发明者】A·C·马亨德兰, N·K·肖贝, X·罗 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1