专利名称:能力可访问网络中的装置之间的连接授权方法
本申请涉及共同悬而未决的、1996年10月15日申请的申请系列号No.08/729,207,共同悬而未决的、1996年12月9日申请的申请系列号No.08/762,127;共同悬而未决的、1996年12月16日申请的申请系列号No.08/766,652;共同悬而未决的、1996年12月26日申请的申请系列号No.08/774,997;和共同悬而未决的、1997年2月3日申请的申请系列号No.08/794,312,它们均被转让给与本申请受让人相同的受让人。
本发明一般涉及数据通信网络。更特别地,本发明涉及一个端对端的网络(peer to peer network),其中可以动态配置节点访问。更特别地,本发明涉及在能力可访问网络(apability addressablenetwork)中装置之间的连接和/或者访问这些装置上的服务的授权方法。
当能力可访问网络装置以一个端对端的方式进行有意义的通信时,就形成了一个个人区域网络。当这些装置互相靠近时,这个网络自发地产生,不需要用户任何明显地动作。这个网络在不可以预测的装置之间产生,即,对任何给定装置,不可能预测在时间上一给定点哪一个装置将与它发生网络连接。能力可访问网络的功能可以增加到许多电子装置中,其中一些电子装置可以由个人携带,并且一个个人可以在一天的当中进行漫游。因为例如这个个人可以携带连接到一个个人区域网络的第一装置进入到一第二未连接装置的区域中,这个第二装置变为与这单独的个人区域网络相连,并且当这个个人离开这个第二装置的区域时,这个第二装置又变为没有连接的状态。这些非常流动的网络连接在一天中被建立和拆除很多次。
能力可访问网络装置对安全问题有很宽的需求。在某些情形下,必须限制只有被授权方能使用一个装置。在其它的情形下,一个装置可以提供的资源可以被相邻的任何装置自由地共享。例如,一个办公室典型地有可能被几乎所有工作人员所共享的一个打印机;该打印机或者其它装置将接受共享而只需用户有很少甚至不需要用户有明显动作。另一方面,一个个人可以从一个数字钱包执行金融交易,所以对这个资源的访问必须是私下的和被授权的。这个连接机制必须在频谱的一端完全包括安全系统,并且在频谱的另一端包括可以容易共享的系统;需要克服的问题是为这个频谱中的任何一点规定一个低交互作用的定位机制。因为一个个人区域网络的结构不是静态的;当装置进入或者移出范围时,它动态地改变,所以这个问题变得更复杂。
在能力可访问网络装置变为连接以前,提供能力的装置将进行检查,以确保这个连接是被授权的。通过允许装置之间的连接被授权的密钥,可以实现结合(bond)。在装置之间建立一个被授权的连接的过程被称作结合,并且已经经历了这个过程的装置被称作已经结合了;相互连接的这些装置是结合的。一个结合是一个装置所记忆的连接的一个预授权规则。
一个装置可能请求来自其它装置的服务;这样一个装置被称作一个请求者。一个装置可以向其它装置提供服务;这样一个装置被称作一个提供者。提供者在接收到一个请求者的命令后提供服务。请求者使用驻留在提供者上的服务。
一个装置可以同时是服务的一个请求者和一个提供者。但是,对某些装置来说,它们仅是提供者,而其它装置仅是请求者,这也是可能的。
作为在一个请求者和一个提供者之间建立一个结合的一个结果,这个提供者上的特定能力被解锁。请求者被限制为使用提供者上的、被结合密钥所解锁的那些服务。
根据被成功解码的结合密钥的一个比较,来确认请求者和提供者之间的连接授权。虽然逻辑上作为一单个实体来讨论,但是在某些实施方式中,一个结合密钥可以有多方,例如RSA公用密钥加密系统。可以采用计算机加密领域的技术人员所熟知的许多不同技术来表示和解码结合密钥。
在制造的时候,每一个能力可访问网络可以访问的装置被用一个唯一的标识编码,这个唯一的标识称作装置标识或者装置ID。实际上,这个名字仅是具有一个预规定长度的唯一比特串。一个装置名字可以是这个制造商的唯一标识加上这个装置的唯一序列号。这就是对以太网卡进行命名的方式,尽管它被称作一个以太网地址。
通过联系图,参考详细的描述和权利要求书,就可以更完全地理解本发明。在这些图中,类似的标号表示这些图中类似的部件
图1是描述根据本发明的教导来构造的一个无线端对端数据通信网络中的各个通信端(peer)之间的示例性关系的一个布局图;图2是包括在一个通信端中的硬件的一个框图;图3显示了被包括在图2所显示的这个硬件中的一个应用电路列表;图4显示了被包括在图2所显示的这个硬件中的一个网关列表;图5显示了被包括在图2所显示的这个硬件中的一个I/O装置列表;图6是包括在被一个通信端所执行的、一个能力可访问连接过程中的示例性任务的一个流图;图7是从一个通信端发出的、以激发一个建立连接的一个示例性需要/能力的一个数据格式图;图8是表示在一个通信端中可能会发生的可能网络服务需求的一个示例性需求表;图9显示了表示一个通信端可能提供的可能网络能力的一个示例性能力表;图10显示了一个通信端所执行的、一个过程服务连接过程的一个示例性流图;图11是显示一个个人区域网络,一个通信装置和一个外部基础设施之间关系的一个框图;图12是一个示例性通信端通信和控制装置的一个框图;图13是显示图11的这些装置之间所交换的一系列数据交换消息的一个图;图14是概述图11的这些装置所执行的、图13的这个数据通信序列中的步骤的一个流图;图15是显示另一个组装置之间所交换的一系列数据交换消息的一个图;图16是概述图15中这个数据交换序列中的步骤的一个流图;图17是概述另一个组装置之间的一个数据交换序列中的步骤的一个流图;图18是概括将一个新设备引入到一个已经建立的个人区域网络中的一个过程的一个流图;图19是概括一个个人区域网络中所使用的一个轮询/告警过程的一个流图;图20是根据本发明的这个教义,一个视频盒式录像机的一个远程控制器的一个简化示例性计划图;图21是显示在一个控制器与一个被控制的物体之间的一系列数据交换消息的一个图;图22是显示用于选择一个地址的一个过程中的一系列步骤的一个流图;图23是显示用于下载一个命令集的一个过程中的一系列步骤的一个流图;图24是显示用于对一个菜单中的选择进行个性化的一个过程中的一系列步骤的一个流图;图25是显示用于影响来自一个远程控制器的一个命令的一个过程中的一系列步骤的一个流图26-29是用于保存数据和影响交易的、一个便携式手持数字装置的一系列轮廓图;图30是显示在一个金融交易中所涉及的各方之间所交换的一系列数据交换消息的一个图;图31是一个金融交易所涉及的各方之间进行通信的一个示例性框图;图32是一个金融交易所涉及的各方之间进行通信的另一个示例性框图;图33是在这个个人保存和交易装置的一侧的一个条形码阅读笔和这个电话功能的一个示例性结构;图34是显示所隐含的动作条形码所涉及的示例性消息格式的一个图;图35是显示用于使用一个条形码阅读笔和一个个人保存和交易装置来从一个产品阅读条形码信息的一个过程中的一系列步骤的一个流图;图36是显示用于在一个个人保存和交易装置与一个商业使用装置/终端之间交换金融交易信息的一个过程中的一系列步骤的一个流图;图37是显示用于检查在一个个人保存和交易装置与另一方装置之间所发送的访问电平的一个过程中的一系列步骤的一个流图;图38是显示用于检查在一个个人保存和交易装置与另一方装置之间所发送的访问电平的一个过程中的一系列步骤的另一个流图;图39是描述一个结合密钥的示例性部件的一个图;图40是概述这个结合过程的一个图;图41显示了在一个优选实施方式中,在装置之间被交换的示例性消息;图42显示了在一个优选实施方式中,在装置之间被交换的其它示例性消息;图43显示了涉及一个优选实施方式可以采用的需求和能力的示例性数据结构描述;图44包括涉及一个优选实施方式可以采用的请求者装置和提供者装置的示例性数据结构描述;图45包括关于这个请求者数据结构的元件如何相关的描述;图46包括关于这个提供者数据结构的元件如何相关的描述;图47包括涉及一个优选实施方式可以采用的连接跟踪的示例性数据结构描述;图48包括更多的、涉及一个优选实施方式可以采用的连接跟踪的示例性数据结构描述;图49包括关于这个交谈数据结构的元件如何相关的描述;图50是描述各种前同步和后同步指令的执行位置的一个图;图51是描述在建立一个连接的两个装置之间所交换的消息和一系列消息的一个消息序列图;图52是一个矩阵枚举结合密钥类型,并且解释它们在一个优选实施方式中的使用;图53是概述一个装置的这个主控制环的一个示例性流图;图54是概述一个装置中处理一个告知能力消息的一个示例性流图;图55是概述一个装置中处理一个PING消息的一个示例性流图;图56是概述一个装置中处理一个ZING消息的一个示例性流图;图57是概述一个装置中处理一个制造结合状态消息的一个示例性流图;图58是概述一个装置中处理一个执行能力消息的一个示例性流图;图59是概述一个装置中处理一个制造结合消息的一个示例性流图;图60是概述一个装置中处理一个询问能力消息的一个示例性流图;图61是概述一个装置中处理一个信标消息的一个示例性流图;图62是概述一个装置中处理何时这个内部定时器超时的一个示例性流图;图63是概述一个装置中处理何时一个装置没有从某些其它已经连接的装置接收消息并且选择拆除连接的一个示例性流图;图64是概述一个装置中处理何时一个提供者装置拆除与一个请求者装置的连接的一个示例性流图;图65是概述一个装置中处理何时一个请求者装置拆除与一个提供者装置的连接的的一个示例性流图;图1是描述根据本发明的教导来构造的能力可访问,无线,端对端数据通信网络22中的各种通信端(P)20,20’,20”,...之间的关系的一个布局图。虽然图1仅显示了几个通信端20,实际上,世界上任何计算机控制的或者微处理器控制的电子装置均可以用作一个通信端20。所以,网络22在通信端20之间可以提供数目不限制的可能连接。
如这里所使用的,术语“端对端”被定义为意味着至少具有通信协议和/或者能力的共同部分,并且不要求物理尺寸相同,功能能力相同,数据处理容量相同或者发送器/接收器范围或者功率相同。通信网络22的每一个通信端或者通信节点20可以建立个人区域网络22。例如,一第一和一第二节点20首先发现或者决定相互是一个可以兼容的节点。然后,作为一个自激发过程的结果,第一和第二节点20形成这个个人区域网络。第一和第二节点20必须检测到它们之间是特别地近,并且因此而建立一个通信链路。这个通信链路可以是熟知的RF,IR,光学的或者声学技术,或者通过一个生物体的传导。当建立了一个链路时,第一和第二节点20交换需求和能力。当需求和能力没有被满足或者匹配时,第一和第二节点20中的一个节点可能会替代地将这个通信链路路由到一第三通信节点20。另一方面,包括至少两个具有重叠通信区域的一个通信平台也可能包括用于在这至少两个节点之间交换需求和能力信息的装置,以形成通信网络22。
理想地,网络22被构造为一个端对端通信的结构,以使仅使用最小数目的网络专用部件并且不需要固定的通信基础设施。在这个优选的实施方式中,每一个通信端20可以激发与另一个通信端20的一个连接,而不需要服务器来管理这个连接。另外,通信端20可以自由地移动,而不会影响这个网络结构或者不需要重新配置、建立或者激发过程等性能。
通过在网络22中使用无线通信链路26作为一个物理传送层,可以进一步支持通信端20的自由移动。在这个优选实施方式中,这个无线通信链路26是工作在微波频带的高频区域的RF链路,以可以使用体积小,重量轻,价格便宜,全方向的天线。但是,还可以使用该领域技术人员所熟知的其它RF频率,光学链路,或者其它无线通信链路。实现无线通信链路26时所使用的特定协议对本发明来说是不重要的。可以使用该领域技术人员所熟知的各种TDMA,FDMA,和/或者CDMA。但是,理想地,网络22中所有通信端20应具有使用这个协议进行通信的能力,而这个能力最好是与这些通信端20的能力和需求无关。
图1描述了围绕每一个通信端20的检测区域28。在这个优选实施方式中,对大多数通信端20来说,无线通信链路26的工作功率是足够的低,以使对一个给定通信端20来说,其无线通信范围优选比5米少,尽管对这个典型的通信端20来说,其通信范围可以更长。使用这么低的发送功率可以限制在不同的位置共享这个无线频谱的不同连接之间的串扰。另外,使用这么低的发送功率与将大部分通信端20构造为便携式装置是相一致的。
该领域的技术人员很清楚,手持式电子装置的共同特点是物理体积小,重量轻,并且包括一个自带的功率源,例如一个电池。很低的发送功率不会严重地耗尽便携式装置典型所使用的小电池的存储能量。
虽然通信端20可能通过网络22与大部分通信端20相连,但是,使用低功率的无线通信链路26限制了在一个给定时刻,它与物理上相互靠近的其它通信端20之间可能连接的数目。换句话说,仅当一第一通信端20位于一第二通信端20的这个检测区域28中,并且这个第二通信端20位于这个第一通信端20的检测区域28中时,才可能产生通过网络22的连接。
不是通过指定一个网络唯一地址来发起一个连接,网络22使用物理相邻性和需求与能力评价(下面讨论)来寻找希望与其形成连接的一个通信端20。通过不是指定一个网络唯一地址来发起连接,减少了用户对形成连接的干预,并且网络寻址可以被动态构造。这样的一个寻址机制对用户每天都要携带并接触的装置之间的数据交换来说是有用的。另外,也可以在没有进行直接通信的通信端之间传递信息。例如,通信端20”可以经过通信端20与通信端20建立一个通信链路。在这个情形下,通信端20就被作为其它两个通信端之间的中继接口。
并不需要所有的通信端20都是便携式装置。图1显示了将一个通信端20’连接到公用交换电话网络(PSTN)32的通信链路30,通信链路30包括或者不包括一个无线链路。通过PSTN 32,通信端20’能够与很多类型的远程装置34进行通信,图1仅显示了一个远程装置34。可以从一个公共电力网络(没有显示)来对通信端20进行供电,以使使功率消耗最小不是设计中一个很重要的问题。虽然图1仅描述了将通信端20连接到远程装置34的PSTN32,但是可以使用其它局域网(LAN),广域网(WAN)或者该领域技术人员所熟知的通信链路来将通信端20连接到远程装置34。远程装置34本身可能是或者可能不是通信端20。虽然网络22使用相邻性作为来寻找将与其形成连接的通信端20的一个因素,但是使用路由,网关,或者中继通信端20’允许可以使用其它网络将连接扩展到更远的距离。
图2是包括在通信端20中的硬件21的一个框图。通信端20包括被构造来支持无线通信链路26的天线36。天线36与发送和接收部分38相连。发送和接收部分38与通信端20用来在相互之间进行通信的这些协议兼容。发送和接收部分38连接到处理器40。处理器40连接到存储器42,可选的网关44,通信链路30,可选的I/O部分46,发送和接收单元38和可选设备电路48。
处理器40执行被保存在存储器42中的计算机程序50。计算机程序50定义了处理器40和通信端20所执行的处理。另外,存储器42保存了个性化数据52和应用数据54。个性化数据52表示一个用户或者通信端20的所有者的特征,并且对每一个用户或者在不同的时刻是不同的。ID码,口令,PIN,预选择的收音机或者TV频道,优选语言和快速拨号电话号码等是个性化数据的示例。通过执行通信端应用来提供应用数据54,应用数据54在每一时刻是不同的。一个传真,经过一个寻呼机而接收的一个电话号码,使用一个条形码阅读器扫描的数据和从一个麦克风或者其它音频源所接收的一个声音片段是应用数据的示例。
在一个实施方式中,本发明是用于交互地将一个公共网络中的一个或者多个节点连接在一起的一个集成电路。这个集成电路组合地包括用于接收输入数据的一个接收器,用于发送输出数据的一个发送器和一个处理器。这个处理器连接到这个接收器和这个发送器,以交互地将一第一公共节点连接到一第二公共节点。这个处理器包括装置,当这个第一和第二公共节点相互位于一个预定的距离内,并且当这个第一和第二公共节点的需求和能力重叠时,这个装置在这个第一和第二公共节点之间激发一个通信链路。
图3显示了可以被包括在一个通信端20中的设备电路48的一个不完全列表示例。参考图2和3,设备电路48可以被构造为很多每天经常碰到的、电子控制的固定或者便携式装置中的任何一个类型。这样,除了成为一个通信端20,一个通信端20可以是一个个人数字助理(PDA),电视,收音机,CD播放器,磁带播放器,复印机,传真机,电话,蜂窝电话,无绳电话,寻呼机,手表,计算机,销售点(POS)终端, 自动通知器或者其它电子装置。
图4显示了可以被包括在一个通信端20中的网关44的一个不完全列表。参考图2和4,网关44可以被构造为本领域技术人员所熟知的许多类型的中继,路由或者协议转换装置中的任何一个。例如,除了是一个通信端20,通信端20可以是将通信端20连接到PSTN32(图1)的一个调制解调器。其它网关44可以将一个通信端20连接到LAN或者WAN。另外,其它网关44可以将一个通信端20调制解调器连接到一个卫星,将一个通信端20蜂窝电话连接到PSTN32,将一个普通电话(POT)通信端20连接到PSTN32,例如。
图5显示了可以被包括在一个通信端20中的I/O装置46的一个不完全列表。参考图2和5,I/O装置46可以被分类成输入装置和输出装置。输入装置可以包括键盘,点装置,光学扫描器,麦克风和其它熟知的输入装置。输出装置可以包括打印机,显示器,扬声器和其它熟知的输出装置。这样,除了是一个通信端20,一个通信端20可以是一个I/O装置46。
该领域的技术人员很清楚,网关44,I/O部分46和设备电路48不是互相排斥的类型。例如,许多装置属于多个类型。例如,被认为是一个设备的一个计算机可以包括一个I/O部分和一个网关。类似地,一个网关可以用作一个I/O的角色。
图6是包括在被一个通信端20所执行的一个能力可访问连接过程中的任务的一个流图。处理56以本领域的技术人员所熟知的方式由保存在通信端20(图2)的存储器42中的一个计算机程序50所定义。在这些优选实施方式中,所有通信端20执行与处理56类似的一个处理。
处理56包括一个查询任务58,在这个查询任务58中,通信端20判断是否尝试一个连接建立。一般,任务58允许一第一通信端20判断一第二通信端20是否在物理上与这个第一通信端20相邻。任务58促使发送和接收部分38(图2)监视无线通信链路26(图1),以判断是否可以接收与被网络22所使用的一个协议兼容的一个信号。因为大多数通信端20使用上述低发送功率电平,所以当检测到一个信号时,发送这个信号的这个通信端20就位于接收这个信号的通信端20的附近。
当任务58没有判断出一个建立连接正在被尝试时,一个查询任务60判断是否出现了一个连接寻找事件。一个连接寻找事件促使一个通信端20寻找与另一个通信端20的一个连接。可以使用一个周期的时刻表来激发连接寻找事件。例如,可以每几秒就寻找连接。在这个示例中,这个时刻表可能从用一个公共电力网络供电的通信端20产生更频繁的周期性连接尝试,而从用一个电池供电的通信端20产生不频繁的周期性连接尝试。也可以在一个固定的或者随机的内部定时器超时以后,或者在接收到其它外部信息时,激发连接寻找事件。这个其它外部信息可能包括通过设备电路48,网关44,或者包括用户输入的I/O部分46(图2)来获得的信息。
当任务60没有判断出已经发生了一个连接寻找事件时,程序控制返回到任务58。当任务60判断已经发生了一个连接寻找事件时,处理56执行一个任务62。任务62激发一个主动请求的建立连接。这个建立连接不是指向网络22中的任何特定通信端20。相反,它从产生这个尝试的通信端20进行广播并且将被所有处于进行广播的通信端20的检测区域28(图1)内的通信端20所接收。如下面将要讨论的,这个广播信号不需要被另一个通信端20应答,即使另一个通信端20位于检测区域28中。在这点上,这个进行广播的通信端20不需要了解任何其它的通信端20何时能够接收这个广播信号,并且这个进行广播的通信端20可能或者不可能了解其它通信端20的需求或者能力,即使其它通信端20是足够的近,以致于可能形成一个连接。
任务62通过广播一个需求/能力消息64来激发一个建立连接,这个需求/能力消息64的格式的一个例子被描述在图7中。参考图7,消息64包括广播消息64的这个通信端20的通信端ID66,一个授权密钥68,一个需求说明70,一个能力说明72,并且能够包括其它数据部分。通信端ID66在网络22的域内最好是能够足够地唯一,以使它可以用于一个访问服务连接中,假如这个建立连接被证明是成功的话。授权密钥68包括一个或者多个数据码,它们可能被一个接收通信端20在执行一个授权处理中所使用。需求说明70是这个进行广播的通信端20目前所经历的网络需求的一个列表。能力说明72是这个进行广播的通信端20能够向网络22的其它通信端20提供的网络能力的一个列表。
需求说明70可以通过查询需求表74来决定,这个需求表74的一个示例性的、不完全的框图如图8所描述。如图8所显示的,数据码可以与一个服务请求通信端20所经历的很多网络服务需求相关。
一个示例性的需求是设备个性化的需求。在这个设备个性化需求的示例中,一个PDA可能需要对附近的设备进行个性化。为了满足这个需求,个性化数据52(图2)应该被编程到特定的附近设备,而不需要用户的干预。结果,无论何时只要该用户位于附近的地方,这个特定的设备将总是用一个特定的用户个性化数据来被编程,而不需要这个用户方采取动作,并且与已经使用这个设备的前一个用户无关。
其它示例性需求可能包括打印应用数据54(图2),显示应用数据54,用一个扬声器来通告应用数据54,将连通性路由到互联网或者其它网络资源,POS交易,通过安全区域的关口或者长途电话亭和类似的需求。
能力说明72(图7)可以通过查询一个能力表76来决定,这个能力表76的一个示例性的、不完全的框图如图9所描述。如图9所显示的,数据码可以与一个服务提供通信端20所提供的各种网络能力相关。例如,一个服务提供通信端20能力可以是设备个性化的能力。这样,一个通信端20可以通过个性化数据52(图2)来被个性化。其它示例包括打印能力,显示能力,通过一个扬声器进行通告的能力,通过这个互联网或者其它网络或者POS终端来中继一个连接的能力,和解锁一条安全通道,这里仅举出一些示例。一般,可能的能力与可能的需求兼容。
现在再参考图7,需求/能力消息64包括来自当前所使用的表74和76(图8-9)的这些码。虽然一个通信端20在一个给定的时刻可以有比一个需求70或者能力75多的一个需求70或者能力75,但是没有什么需要一个通信端20具有多个需求或者能力。另外,没有什么需要一个通信端20同时具有一个网络需求和一个网络能力。当通信端需求70被规定,不管通信端能力75是否被规定,消息64用作一个需求消息,当通信端能力75被规定,不管通信端需求70是否被规定,消息64用作一个能力消息。
现在再参考图6,在任务62广播消息64(图7)时,程序控制返回到58。当任务58最后通过接收到一个消息64检测到一个建立连接正在被尝试时,任务78执行一个授权处理。任务78使用来自消息64的授权密钥68(图7)来判断正在尝试建立一个连接的这个通信端20何时被授权连接到这个接收通信端20。任务78允许通信端20的所有者限制通过网络22访问它的通信端20。例如,任务78的这个授权处理可以被用于将一个设备的个性化能力限制到一个小的家庭组。替代地,具有一个POS能力的一个通信端20在允许发生一个交易以前,可能执行一个扩展的授权处理。具有一个需求的一个通信端20可能还根据任务78所提供的这个授权处理来限定对所提供服务的接收。
在任务78以后,一个查询任务80判断这个授权处理78是否授权这个被尝试的建立连接。当授权被否认时,程序控制返回到任务60。这个接收通信端20不需要答复或者说确认这个被尝试的建立连接。
当接受了授权时,一个任务82使用通信端能力来评价通信端需求。换句话说,任务82促使这个消息接收通信端将其可用能力与列在一个被接收的主动请求需求/能力消息64(图7)中的任何需求相比,促使这个消息接收通信端将自己的需求(如果有)与列在这个消息64中的任何能力相比。在任务82以后,一个查询84在接收了任务82的评价结果后进行动作。当没有任何内部能力与一个主动请求消息64中的需求匹配,并且没有任何内部需求与一个主动请求消息64中的能力匹配时,没有任何一个通信端20向其它通信端20提供服务。程序控制返回到任务60,并且这个接收通信端20不需要答复或者确认这个被尝试的建立连接。
在这点上,一个通信端20在网络22内部可能形成的大多数潜在连接在范围上已经被大大减少,而不使用在网络中是唯一的地址。这个低发送功率原理禁止网络22中大多数通信端20在目前形成连接,这是因为大多数通信端20不互相相邻。在可能位于互相的检测区域28(图1)中的少数通信端20中,通过这个任务78(图6)的授权处理和任务82的需求和能力评价,已经进一步限制了可能连接的范围。通过在一个服务请求通信端20和一个服务提供通信端20之间承载的一个协商处理,进行剩余潜在连接的其它排除。
当任务84判断这些能力和需求是兼容的,一个查询任务86判断这个协商处理是否被完成。当这个协商处理没有被完成时,通过向其通信端ID66(图7)被包括在一个刚接收的需求/能力消息64中的这个通信端20发送一个寻址协商消息(addressed negotiationmessage)(没有显示),一个任务88在继续这个协商处理时创建或者说继续这个建立连接。这个协商消息的格式可以与需求/能力消息64的格式类似,但是其地址都被具体指向到另一个通信端20。
任务88以后,程序控制返回到任务60。可以接收随后的协商消息,但是并不必要。当这样的随后协商消息表示形成期望连接的两个通信端20均完成了协商时,查询任务90判断这个协商是否成功/完成。当这个协商没有成功时,程序控制返回到任务58,并且不产生任何服务连接。但是,当这个协商是成功的,就执行处理服务连接过程92。在过程92期间,在通信端20之间建立一个一对一的、寻址连接(addressed coupling),以执行网络服务。在完成了这个服务连接后,程序流返回到任务58。
虽然在这个建立连接过程期间,没有什么可以禁止能力可访问连接处理56依靠用户的干预,但是用户干预是不必要的。是否需要用户干预决定于安全,先验知识和与所涉及的这些通信端20相关的其它考虑。例如,金融交易所涉及的通信端20可以从用户的干预中获益,以确保安全性。但是,用户所拥有设备的个性化和许多其它连接情形不需要依靠用户的干预。
图10是图6的处理服务连接过程92的一个流图。过程92显示了服务提供通信端20可以执行的任务集,以支持一个服务连接。不是所有通信端20需要能够执行图10所描述的所有任务。类似地,许多通信端20可能包括那些适合自身特点的其它任务。
过程92执行一个任务94,来通过一个已经被建立的服务连接,向网络22的一个服务接收通信端20提供一个网络中继,路由或者网关能力。在任务94期间,一个服务提供通信端20在这个被连接的通信端20和一个远程装置34(图1)之间传递数据通信。在任务94以后,程序流返回到处理56(图6)。任务94可以被用于扩展连接到这个互联网或者其它网络的服务。
过程92执行任务96和98,来通过一个已经被建立的服务连接,向网络22的一个服务接收通信端20提供一个用户输入能力。在任务96期间,这个服务提供通信端20从其I/O部分46(图2)收集用户输入。在任务98期间这个服务提供通信端20向这个被连接的服务接收通信端20发送这个被收集的用户输入数据。在任务98以后,程序流返回。任务96和98可以被用于控制或者对来自一个PDA或者其它装置的设备进行编程,这可能已经改善了用户输入能力。
过程92执行任务100,来通过一个已经被建立的服务连接,向网络22的任何服务接收通信端20提供用户输出能力。在任务100期间,这个服务提供通信端20经过这个服务连接接收从这个服务接收通信端20所产生的数据,并且在其I/O部分46(图2)中的一个输出装置上通告这个数据。这个数据可以使用可听的形式和/或者视觉上可感知的形式或者任何人类触觉可感知的其它形式来通告。在任务100以后,程序流返回。任务100可以用于在一个非便携式通告装置上通告在一个便携式通信端20中所收集的数据。替代地,任务100可以用于在一个便携式通告装置上通告具有一个有限I/O能力的一个静态设备所产生的数据。
过程92执行控制设备处理102来支持对设备的控制。执行处理102的任务104,106和108来用个性化数据52(图2)对一个设备通信端20进行编程。在任务104期间,一个服务提供通信端20使用这个服务连接从这个被连接的、服务接收通信端20获得个性化数据52。下面,任务106将这个网络兼容的个性化数据52翻译成适合于这个特定设备的一个格式,以使用个性化数据52来对这个特定设备进行编程。那些该领域的技术人员将清楚,不是一个服务接收通信端20的所有个性化数据52均需要应用于所有设备。这样,任务106可以使用应用到这个特定设备的所有个性化数据52。任务106以后,任务108促使这个设备被用这个被翻译的个性化数据52编程。任务108以后,程序流返回。
任务110,112,114,116被执行来允许一个用户能够轻易地控制一个设备。这些任务可以在例如一个PDA上被执行,这个PDA具有一个显示器和用户输入能力,它们通常超过设备上的用户I/O能力。在这个情形下,设备是一个服务接收通信端20,而PDA是一个服务提供通信端20。在任务110期间,这个服务接收通信端20使用这个服务连接向这个被连接的服务提供通信端上载一个设备控制计算机程序。下面,在任务112期间,服务提供通信端20执行这个刚上载的计算机程序。任务112促使这个服务提供通信端20被特殊配置,以向正在被控制的这个特定设备提供一个所希望的用户接口。下面,在任务114期间,经过这个服务连接,在这个服务接收通信端20接收控制数据。来自用户输入的控制数据通过正在被这个服务提供通信端20所执行的这个控制计算机程序来提供。任务114以后,任务116根据在任务114中所接收的这个控制数据来控制这个受控制的设备。任务116以后,程序流返回。
示例1图11是显示个人区域网络120,通信装置127和外部基础设施131之间的关系的一个框图。个人区域网络120包括经过例如RF互连(由链路123所表示),而互连在一起的个人装置121。个人区域网络120经过RF链路125被连接到通信装置127,并且接着又经过链路129被连接到外部基础设施131,在这个示例中,外部基础设施131包括描述一个个人用户的优选项,位置和/或者统计数据(IUPLS134)或者描述一个漫游用户的优选项,位置,本地电话号码和/或者统计数据(RUPLS133)的个人记录。每一个个人装置121和电话127配备有一个双向RF连接装置,例如图12的RF连接装置135。
图12是示例性通信端和控制装置135的一个框图,类似图2,包括与T/R模块139连接的天线137,处理器143,存储器147,可选I/O装置159和可选设备电路155,分别类似于图2的天线36,发送和接收部分38,处理器40,存储器42,可选I/O部分46和可选设备电路48。如图2所示,图2的可选网关接口44可以是一个单独的部件,或者如图12的系统所示,属于可选I/O装置159的范围内。当出现时,可选I/O装置159经过链路157被连接到处理器143,而可选设备电路155经过链路153被连接到处理器143。处理器143经过链路141连接到T/R模块139,并且经过链路145连接到存储器147。存储器147包括计算机程序148,包括IUPLS133,RUPLS134的个人数据149和应用数据151。应用数据151包括装置配置优选项,网络拓扑和类似的数据。
设备电路155或者48(图2)适合于与一给定设备相关的控制系统接口。当制造时,这些可以包括在设备内,或者设备电路155或者48被调节成来改进不具有一个个人网络能力的一个设备。在任何一个情形下,存储器147包括与对这个设备进行控制相关的数据,例如内部命令,能力,接口协议和/或者接口命令以及信息,这些信息允许设备电路155或者48通过由处理器143响应经过天线36或者137接收的信息而产生的命令,编程和宣称(assert)控制这个设备的至少一个方法。
存储器147被配置成允许其中的数据在环境改变时被重写或者被更新。联系图13和相关的文本来描述发生这样的改变的一个交易的示例。
T/R模块139(与图2的发送和接收模块38类似)可以是位于3810Almar Road,Grants Pass OR 97527-4550的Radio Design Group公司的一个DTR-9000,而处理器143,存储器147和可选I/O装置159可以是Phoenix AZ,Austin TX和Schaumburg IL的摩托罗拉公司的MPC821微处理器。
图13是显示在图11的这些装置之间所交换的数据交换消息的序列160的一个图。图11的个人装置121(类似于图1的装置20)用一个指向到例如电话127的交互请求161发起数据交换。电话127使用消息162来确认交互请求161并且使用消息162来轮询个人装置121的优选(preference)。个人装置然后向电话127提供优选响应164。电话127然后根据包括在优选响应164中的数据特点,向包括位置信息和/或者IUPLS133和/或者RUPLS134的网络或者基础设施131发送消息166。当一个个人进入到一个区域并且这个个人的个人通信装置开始与在某些环境下相对固定的一个设备网络进行通信时,就发生这类型的交互。例如,走进一个医生办公室的客户可能具有一个个人数字助理,它与医生办公室中的设备进行交互来告知基础设施这个人所位于的地方,并让基础设施将所有到这个人家庭中的呼叫和/或者办公室的电话路由到这个医生办公室的电话。下面参考图14和相关的文本来描述这类型的交易。
图14是概述装置121,127(图11)的数据通信序列160(图13)中的步骤的过程170的一个流图。在过程170的开始,从电话系统与电话127(图11)进行交互通信171。当过程170判断个人装置121位于电话127(模块172)的范围中时,电话127确认个人装置121位于范围中(模块173)。反过来,个人装置121发送用户优选(模块174)。
当个人装置121表示连接到电话127的这条线不用于发送数据,或者当个人装置121判断(模块172)出不在电话127的范围中时,控制返回到模块172。当个人装置121表示(模块175)连接到电话127的这条线被用于发送或者接收数据时,电话127向基础设施131发送位置信息(模块176)。这个位置信息描述了电话127的位置和电话号码,这包括用户的位置,因为这个用户位于电话127的范围内。当电话127不是这个用户的电话,或者不在用户通常到的地方时,这个信息被用于更新RUPLS134,当这个用户返回到家中或者返回到办公室时,这个信息被用于更新RUPLS134和IUPLS133。当没有使用这个电话线路时,无论是什么原因,程序控制返回到模块172。另外,当这个个人装置121的物理移动或者当另一个个人装置121(个人装置121通过它建立到网络的连接)的移出范围时,这个程序通过判断模块180来将优选项更新到缺省设置(模块182)或者将它们设置成位于这个电视范围内的另一个个人装置121的选项。
当向这个用户的家或者办公室电话打一个电话(模块178),如果这个系统判断这个用户仍然位于电话127的范围内(模块180),这个电话呼叫被路由到这个用户的当前位置(模块181)。当判断这个用户不再位于电话127的范围内时(模块180),电话127将这条电话线路的优选项更新到缺省设置(加上从电话127与其它用户可能进行的通信中获得的信息)。过程170然后结束(模块183)。
示例2图15是显示另一组装置121,191之间所交换的数据交换消息的序列190的一个图。在这个示例中,个人装置121被正在例如接近出租车191的一个用户所携带,这个出租车191配备一个与个人装置121(图11),135(图12)或者通信端20(图1)类似的通信端并且被这个通信端控制。个人装置121发送交互式请求192。出租车191经过硬件135,21向个人装置121发送回确认194。个人装置121向出租车191中的硬件135和21发送车密钥(对出租车191是唯一的电子码)(车密钥是在安排出租车191的过程中就预先安装到个人装置121中的)。出租车191然后经过硬件135,21证实这个车密钥,打开门并且又经过硬件135,21确认接收了这个车密钥(模块197)。
从出租车191的硬件135,21到个人装置121的确认消息198与用户打开车门完全一致。个人装置121在消息200中向出租车191的硬件135,21发送车配置优选项。然后,车191通过设置座位位置和高度,镜像调节,照明程度和个人装置调节(即,将一个收音机设置到一个希望的频道上等等)来尽可能多地容纳这些优选项。参考图16和相关描述来更详细地描述这些操作。
图16是概述图15中数据交换序列190中步骤的过程210的一个流图。在过程210的开始,个人装置121经过硬件135,21与车191宣称(assert)一个个人网络(模块211)。当步骤212判断个人装置121位于硬件135,21的门范围内时,就从车191的硬件135,21发送一个确认信号(模块213),并且个人装置121发送车密钥(模块214)。车191/硬件135,21然后判断何时这个车密钥是有效的(模块215)。
当个人装置121没有位于车191的硬件135,21的范围内时,或者当判断这些车密钥对这个车191无效时(模块215),程序控制返回到模块212。当判断这些车密钥有效时(模块215),车191解锁并且打开车门,并且经过硬件135,21向个人装置121发送一个确认(模块216)。然后,个人装置121向车191的硬件135,21发送配置优选项(模块217)。车191然后容纳这些优选项,如上面联系图15的文本所描述的,并且然后过程210结束(模块219)。
示例3图17是概述另一组装置之间所交换的一个数据交换序列中的步骤的过程220的一个流图。当判断(模块222)个人装置121进入到一个电视的范围内时(例如,通过其它地方所描述的周期性的“PING”过程),过程220就开始。这个电视确认个人装置121的出现(模块223)。个人装置121发送(模块224)优选项,例如信道或者网络,音量,对比度和类似的。当这些选项或者优选项不是这个电视的有效选项时,或者当个人装置121没有位于这个电视的范围内时,控制返回到模块222。否则,这个电视接受这些优选项(模块226),并且设置被发送的(模块227)任何电缆网络变化。
对与模块227的任务一起被发送的消息作出响应,这个系统将所希望的台路由到这个电视接收器(模块228)。另外,当这个个人装置121的物理运动使它移动到这个电视的范围外时,或者当通过它个人装置121建立到这个网络的连接的另一个个人装置121移动到这个网络/电视的范围外时,这个程序通过判断模块230来将TV优选项更新到系统缺省设置(模块232)或者将它们设置成来自位于这个电视的范围内的另一个个人装置121的选项。当这个没有发生时,被选择的TV信号被路由到这个TV(模块231)并且被显示。过程220然后结束(模块233)。
示例4图18是概述建立装置A的安全准则的过程250的一个流图。过程250假定(i)这个个人编程装置A有权力这样做(根据一个所有者码,口令和类似的)和(ii)对每一个成员装置进行编码的个人有权可以这样做(根据一个所有者码,口令和类似的)。一个成员是装置A期望处于相邻位置的一个装置;当这个成员装置没有处于相邻的位置时,装置A可能会丢失。控制相邻关系的规则由有权这样做的人决定。
例如,这个相邻关系可以被用于限制通信中继的数目或者装置A与这些成员装置之间的物理距离,或者同时用于限制这两个。一个如何完成这个的示例是每一个通信中继均带一个中继计数器,即一个每一次一个消息从一个装置121传递到另一个装置121就增加1的计数器。
当装置121相互靠近时,它们就互相被检测到(见图1及其相关描述)。在这点上,它们有可能在一起形成网络,但是它们还没有这样做。在一个短的协商后,每一个装置121判断它是否希望与其它装置121一起形成网络。当两个装置121同意参加一个对话时,装置121连接在一起(“结合”),即处于数据通信状态。注意,决不会出现越过这个初始协商而形成的两个装置121之间的一个对话,但是因为它们互相知道对方的存在,所以它们被认为是连接在一起,它们有一个被建立来用于进行通信的机制,并且它们同意它们能够参加一个对话。
相反地,相互靠近的装置121可能选择不参加在相互之间进行的一个对话,并且即使它们能够互相检测到对方的存在,它们没有形成网络或者没有被结合。因为这两个装置121被两个不同的个人所拥有,并且这两个装置中的每一个装置121已经被命令仅与属于相同个人的其它装置121进行一个对话,所以可能会出现这个情形。通过这个方式,通信端装置121能够选择性地忽视其它装置121的存在,即使它们是相邻的。这可以使用唯一的拥有标识码,或者该领域的技术人员所熟知的某些其它技术来实现。
这个技术用于这样的一个情形一第一个人在一个公寓中有装置121,并且这些装置121与另一个公寓中的另一个个人的装置121相邻。即使这些装置121可以相互检测到对方的存在,但是如果它们已经被编程为仅与被相同个人所拥有的其它装置121一起形成网络,它们就不可能一起形成网络。当然,可以有其它授权技术,并且该领域的技术人员可以采用这样的技术,例如装置121可以一起形成网络并且被分隔成称作安全子组的不相交集合。
当将一个特定装置121(“装置A”)的这个安全准则编程到装置A中时,过程250就开始了。在装置121没有内在的输入能力的情形下,这个编程可以经过一个RF链路,实线链路或者光学链路来实现;在这个被选择链路的另一端,有一个接口装置,例如一个键盘,语音识别系统或者类似的装置,以对装置A进行编程。这第一步骤判断(模块253)一个特定安全组的所有装置121何时处于相邻的状态或者处于与装置A进行数据通信的状态。当没有出现这样的情形时,这个程序或者继续影响与可能的网络之间所进行的通信(虚线)或者等待直到这个丢失的成员装置121进入相邻的位置/与这个网络进行数据通信(模块255)。
在任何一个情形下,连接步骤(模块257)都先于信息编程装置的步骤(模块259-265),信息最好是包括关于装置A的安全组的安全需求。
具体地,选择一个成员装置(模块259),与这个成员装置121相关的安全信息被编程到装置A中(模块261),并且与装置A相关的安全信息被编程到成员装置121中(模块263)。另外,装置A可能被编程为可以用下面中的一个或者多个来识别一个安全组单元序列号,一个标识这个拥有者的唯一的安全组标识,这个使用位置的一个物理地址和/或者一个电话号码和类似的数据。
成员装置121的安全准则可能同时包括包含的和排斥的规定。例如,一个包含规则可以是“当我不再看见装置B时,然后我就丢失了”。一个排斥规则可以是“当我看见装置D时,然后我就丢失了”。
最理想的是,当这个安全组中所有这样的成员装置121均已经被编程为拥有相互的数据时,与装置A相关的安全信息被提炼来包括多个交互作用(模块267)并且程序250结束(模块269)。例如,假如装置A的安全组包括名字为B,C和D的三个装置。在模块267中,包括在装置A中的这个安全准则可以用包含性语句来提炼,例如“当装置B,C,D中的任何两个装置没有出现的时间为两个小时或者更多时,然后我就丢失了”。这个安全准则还可以用排斥性语句来提炼,例如“当我曾经在三分钟内相互看见装置C和D时,然后我就丢失了”。
当不是所有成员装置121均已经被编程为保存有相互的数据时,控制返回到模块259,另一个成员装置121就被选择并且重复模块259-266的步骤,直到已经对所有标称包括这个安全组的成员装置121进行了编程。
注意,当为装置A建立一个安全组时,这个安全仅对装置A才存在。例如,假如装置A在其安全组中有一个成员装置B。另一方面,装置B可以定义其成员装置是装置C的一个安全组。但是,这并没有意味着隐含地建立了从B到A的关系,也没有建立装置A和装置C之间的关系。这是因为B是A的安全组的一个成员装置并不意味着A是B的安全组的一个成员,也不意味着装置C是A的安全组的一个成员装置。这个原理在实现本发明时产生了很大的灵活性。
图19是概述用于一个安全组的轮询/告警过程270的一个流图。通过装置A等待一个预规定的轮询间隔(模块273),过程270就开始了(模块271)。这个轮询间隔可以是针对装置A的具体特点而特殊规定的,并且这个轮询间隔可以从在某些情形下一个很短的(例如,5分钟)轮询间隔变化到其它类型装置的相对较长的轮询间隔(例如,一天)。
在这个轮询间隔等待的后面,装置A就轮询这个安全组中的所有成员装置121(模块275),来判断它们是否位于相邻的位置。当已经完成这个时,装置A判断(模块277)任何成员装置何时从这个安全组中丢失了并且判断何时不希望的任何装置出现了。当没有成员装置121从这个安全组中丢失并且没有任何不希望的装置121出现时,程序控制返回到模块271/273,并且以一个合适的间隔重复模块273-277中所概述的步骤。
当它判断(模块277)一个成员装置121从其安全组中丢失时,或者一个不希望的装置121出现时,装置A等待(模块279)一个特定的间隔以等待这个丢失的装置返回,或者以删除这个不希望出现的装置,然后轮询(模块281)这个丢失的或者不希望出现的成员装置。当这个成员装置121被判断(模块283)实际上没有丢失时,控制返回到模块271/273,并且重复模块273-277所概述的步骤。当判断这个成员装置121(模块283)实际上是丢失时或者是意外出现时,就采取一个积极动作,例如采取措施来关闭这个装置(模块285)和/或者产生一个告警(模块287),这是在结束过程270(模块289)以前发生的。
这个告警条件可能包括让装置A(i)关闭(模块285),(ii)尝试向警察打一个电话以寻求帮助(模块287),(iii)尝试向一个中心设备授权机构打一个电话以寻求帮助或者以获得一个忽略码(override code)(模块287),或者(iv)与相邻的装置进行交互式通信,以尝试经根据(ii)或者(iii)打一个电话。然后结束过程270。当使用一根普通的电话线来进行这个电话呼叫时,通常可以很轻易地从拨打这个电话的这根电话线的标识来判断这个物理地址。
示例V图20到25显示的是前面所讨论的、关于一个设备的一个远程控制器设置的概念的应用。
图20是根据本发明的教导,适合用于一个视频盒式录像机的远程控制器300的一第一优选实施方式的一个简化示例性平面图。控制器300包括三个显示器303,307,309,显示器303是用于显示地址通知的,显示器307是用于显示将要被发送到由这个控制器300所控制的这个装置的那些命令,显示器309是用于显示与可以使用的命令相应的图标311。箭头312表示选择了哪一个图标311,并且显示器307提供这个被选择命令的文字描述或者标识。跟踪球301允许一个操作员在不同的图标311之间进行移动箭头312,来选择一个特定的图标311。按钮305允许切换显示在显示器303中的地址。
图21是显示在控制器300和被控制的物体324之间所交换的数据交换消息的序列320的一个图。当经过(例如通信端的通信和控制装置135(图12)或者控制器300和被控制的物体324中的每一个中的硬件21(图2)的)装置发起从控制器300到被控制物体324的地址搜寻请求326时,过程320就开始了。地址确认328告知控制器300被控制的物体324已经与控制器300进行数据通信。然后,控制器300发送将要下载被控制物体324的一个命令集合的请求330。
然后,被控制物体324将一这样的命令集合下载(下载“控制命令集合”332)给控制器324。在这点上,被控制物体324已经发送了一组命令/动作,在接收了控制器300的命令以后,可以执行它。那些被这个控制器300的用户所选择的命令(被选择的控制命令334)被发送到被控制物体324,并且被控制物体324提供反馈命令336,反馈命令336包括至少已经接收了这个命令或者这些命令的一个确认。当用户设置从前面在下载“控制命令集合”332中被发送的列表中选择的优选项时,被控制者324和控制器300两者均发送和接收命令和反馈338,并且这个过程持续到一最后的,或者第i个命令(命令i340)和反馈(命令i反馈342)。
图22是显示用于选择一个地址的过程350中的一系列步骤的一个流图。当这个用户激发对一个设备的地址搜寻时,过程350就开始了(模块325)。控制器300(图20,21)在允许控制器300与一个个人区域网络进行交互式通信(模块354)的一个区域中被激活时,控制器300“ping”这个个人区域网络中的被控制物体324或者向被控制物体324发送询问消息(模块356)。当这个响应表示(模块358)对这个控制器300来说是未知的一个被控制物体324是这个个人区域网络的部分,或者与这个个人区域网络进行通信时,控制器300将这个新被控制的物体324增加(模块360)到一个内部列表中(即,将数据保存在图2的存储器42中,或者图12的存储器147中)。控制器300还在显示器303(图20)上显示(模块362)与这个新被控制的物体324相应的一个地址,然后逐步进行步骤358-362,直到在这个个人区域网络中没有遇到新被控制的物体时。
当控制器300判断(模块364)这个用户已经按下或者已经选择一个地址按钮,控制器将一个内部地址列表增加1(模块366)(即,显示依次列表的地址);否则,过程350结束(370)。在增加了依次列表的地址(模块366)后,控制器300在显示器303(图20)上显示(模块368)一个地址。重复模块364-368中所概述的这些步骤,直到这个用户停止增加和显示地址为止。
图23是显示用于下载一个命令集合的过程375中一系列步骤的一个流图。当控制器300(图20,21)被稳定在对被控制物体324进行寻址(模块378)时,例如,当这个用户停止在过程350(图22)的步骤364-368中增加地址时,过程375开始(模块376)。然后,控制器300向被控制物体324发送一个下载请求(模块380)(还见图21的下载“控制命令集合”332及其相关文字)。被控制物体324将一个控制命令集合3下载到控制器300(模块382)。当控制器300(例如,从一个文件命令的末尾或者从一个定时器的溢出)判断出这个命令集合已经被下载时,就结束过程375(模块384)。
图24是显示用于给控制被控制物体324的一个命令菜单提供个性化选择的一个过程中的步骤序列385的一个流图。当控制器300激活命令选择(模块389)(即已经完成了图21的项目332-342,图23的过程375以后),过程385就开始了(模块387)。控制器300判断(模块391)何时已经处理了所有命令;如果这样,控制返回到模块399;否则,控制器300下面在显示器309上显示(模块393)一个合适的图标311(图20)和在显示器307上显示命令文字,并且允许删除来自这个用户的命令集合的一个命令。
当控制器300判断(模块395)这个用户希望删除一个命令时,控制器300更新其内部命令列表(模块397),并且重复步骤391-397直到判断出已经处理了所有控制命令为止(模块391)。当控制器300判断(模块395)这个用户不希望删除一个命令时,控制返回到模块391并且重复步骤391-397直到判断出已经处理了所有控制命令为止(模块391)。
当控制器300判断已经处理了所有控制命令(模块391)时,控制器300在显示器307/309上显示一个被更新的命令列表(模块399)并且在内部(例如在图2的存储器42中,或者在图12的存储器147中)保存用户优选项(模块401)。然后,激活控制器300来进行命令处理(模块403),并且结束过程385(模块405),此时,这个内部被保存的命令集合已经被用这个用户的优选项进行了个性化。
图25的流图示出了当被控制物体324的一个命令是从远程控制器300(图20,21)提供时,被控制物体324实施这个命令的过程420的一系列步骤。过程420的开始(模块422),用户激发(模块424)将一个命令从控制器300发送(模块426)到被控制物体324。被控制物体324处理这个命令(模块428),优选是立即处理。当这个控制和命令处理被判断为已经被完成时(模块430),过程420就结束(模块432),当判断这个控制和命令处理没有被完成时(模块430),过程420返回到模块424并且重复模块424-430中所概述的步骤。
示例6个人数据,例如个人在其钱包或者钱夹中携带的信息,可以被数字化(或者用一个数字格式来表示与它们等效的功能)并且被这个人携带在形状与一个钱夹类似的一个装置中。可以有各种形状,但是这个装置是替代传统的钱夹用于携带的,不管什么样的形状都是有用的或者是所希望的。这意味着它最好是能够被装到一个男人的口袋中或者一个女人的手提包中。这个装置能够与其它附近的、遵循相同协议的短距离无线装置进行交互式通信,由此进行商业交易。例如,在一个交易期间,这个装置的对方可能是一个“与网络兼容的数字无线现金寄存器”。这个装置是一个个人数据保存和交易装置的一个示例,是个人可以作为一个个人区域网络焦点携带的个人数据库,并且这个装置执行那些让他们完全屈从于这个绰号为“电子钱包”的功能。
本发明包括至少下述部件中的某些部件1)如图2和12及其相关的文字所详细描述的基本端对端通信模块。一个端对端通信节点中、对个人交易和保存装置407(图26-29)来说是唯一的某些可选部分在下面被列表显示出来。
2)允许(i)数据输入和(ii)数据显示的用户接口。数据输入可以使用一些众所周知的技术,包括一个物理键盘,手写体识别,字符识别,语音和/或者词识别和/或者一个带一个点击鼠标类型接口的一个虚拟键盘,来实现。可以使用一些众所周知的技术,包括一个虚拟显示器,或者一个图象显示单元来实现这个数据显示。
3)数据库能力存储器。
除了上面所列表显示的硬件能力外,下述功能能力对个人交易和保存装置407来说是有用的1)一般的数据库能力,包括保存数据,放置数据,检索数据和浏览数据。这样的能力可以涉及被保存在本地的个人交易和保存装置407中的数据,还可以涉及被保存在远程的、当可以经过个人交易和保存装置407访问的另一个装置上的数据。
2)从这个数据库选择特定数据的能力和将这个特定数据经过一个无线链路发送到一个或者多个第三方的能力。
3)接收正在被一个第三方发送的数据的能力和将这个数据保存在个人交易和保存装置407的数据库中的能力。
4)保存和广播这个个人的出现或者这个个人相对于这个数据交易的位置的一个标识或者指示的能力,例如用于保存和广播表示这个装置的拥有者目前正携带这个装置的信息的能力。
5)经过这个无线链路(例如图1的链路26)接收命令码的能力,和执行这个单元(例如,324,车390等等)上的本地程序/命令的能力。
6)从另一个端对端通信装置135/121/21(图12,11,2)接收控制码的能力,和使用这个被下载的控制码来远程控制这个装置的能力。
在一个实施方式中,本发明的部分实现是交互地连接一个公共网络中的一个或者多个通信节点的一个集成电路。这个集成电路组合地包括用于接收输入数据的一个接收器,用于发送输出数据的一个发送器(一起被称作图2的38)和处理器40。处理器40连接到接收器/发送器38,以交互地将一第一公共节点135/121/21连接到一第二公共节点135/121/21(见图12,11,2及其相关文字)。处理器40包括用于当这个第一和第二公共节点135/121/21相互之间位于一个预定的距离内时并且当这个第一和第二公共节点135/121/21的需求和能力重叠时,在这个第一和第二公共节点135/121/21之间激活通信链路26的装置。
使用这个方式,个人交易和保存装置407可以与条形码阅读笔490(图33)或者与帮助进行通信或者交易的其它设备进行通信。例如,可以经过这个通信链路类型,在购买者452(图30)和商人456之间进行通信。
本发明对信息进行数字化并且将它保存在其形状是一个钱包的一个装置中。它还包括经过这个端对端无线短距离链路(例如图1的链路26)、轻易地将这个信息从一个这样的装置移动到另一个这样的装置的能力。本发明可以接收使其行为适合于这个环境的命令码。例如,当与一个ATM(自动取款机)进行交互通信时,印刷在个人交易和保存装置407上的这个显示可以成为到这个ATM的一个用户接口。这是在制造或者销售个人交易和保存装置407时,不将其行为硬编码到个人交易和保存装置407中的一个能力,而是可以根据设备环境将其行为动态地装到个人交易和保存装置407中,并且当个人交易和保存装置407正在使用的应用已经被停止或者已经完成时,可以从个人交易和保存装置407中删除这个行为。
图26-29是用于保存数据和影响交易的便携式,手持数字装置407的一系列透视图。
图26和27是描述在个人交易和保存装置407的两端的核心功能的原理图。个人交易和保存装置407可选地包括几个可以折叠的或者可以绕枢轴旋转的显示/输出单元面板层408,409,和几个触摸键盘输入单元面板410,411,412,413,414。使用这个方式,可以从多个方向打开个人交易和保存装置407,并且每一组显示/输出单元面板408,409和触摸键盘输入单元面板410,411,412,413,414在一个域内提供功能。图28和29显示了两个域折叠页的示例。
图26中,顶面板或者折叠页408用于输出显示器或者硬件输出单元,例如扬声器。底部面板418用于触摸式屏幕显示器或者硬件输入单元,例如按钮410,跟踪球或者麦克风(后两个没有画出来)。在底部面板418的下面是一排用于控制一侧装置功能域的设置的可选按钮410。例如,物理按钮410可以位于底部来激活或者选择不同的触摸键盘输入单元被显示在下面板418上。上面板408与下面板418的区别只是一个简单的示例,特别是用于具有将一个上部部分和下部部分分隔开的折叠页的个人交易和保存装置407时。某些实施方式没有上下部分,而是具有左右部分,或者这两个类型全有。
上面板408还包括可以被延伸来帮助产生在一个被选择功能域内工作的第三面板416的可选滑页单元416。例如,可以延伸这第三面板416允许使用另一个输入盘来输入一个会话或者通知,例如经过手写识别。
在一个优选实施方式中,面板408,409,410,412,413,414,415,416,417,418是触摸式的,以允许按钮选择和/或者手写输入。个人交易和保存装置407包括端对端通信节点21,121和/或者135(见图2,11,12和其相关文字),端对端通信节点21,121和/或者135经过无线通信链路26(图1,2)与条形码阅读笔490(见图33和相关文字,以下)相连,条形码阅读笔490另外还用作一个点击和触摸式面板写入部件,并且还包括端对端通信节点135/121/21。这个连接能够允许经过个人交易和保存装置407进行快速的和自动的金融/数据交易。下面详细描述这些条形码阅读笔490与个人交易和保存装置407所进行的交互式通信示例。
图26-29提供了个人交易和保存装置407的一个优选实施方式的不同视图。这个示例性结构包括两个功能域,这两个功能域用作一个个人数字组织器和一个电话。图26原理性地显示了在两侧中的一侧具有可翻转的显示器408的个人交易和保存装置407,其中这侧用作一个个人数字组织器。个人交易和保存装置407的这个个人数字组织器包括含面板408上的输出显示417的上面板408,含触摸式软键盘输入面板418的下面板415,一排控制/配置按钮410,和滑出面板416。这个滑出面板416的功能是用作能够阅读条形码的一个会话盘和笔490(见图33,以下),并且用作一个触摸式面板写部件。
图27原理性地显示了这个优选实施方式的另一侧,这一侧覆盖了另一个功能域,并且用作一个电话。这一侧具有包括扬声器419的可翻转的面板409。下面板413包括用作电话按钮的软键盘输入421。在下触摸式面板413下面的最低一排按钮414包括设置/控制按钮和能够接收语音和其它可听输入的一个麦克风。
图28原理性地显示了一个上侧视图,这个图强调个人交易和保存装置407的这个再现有两个侧面和两个功能域。图28基本上显示了具有这个电话功能的侧面,并且突出地显示可翻转的部分408,409位于不同的侧面。图29所提供的侧面与图28所提供的侧面相对,并且图29主要显示了带个人数字组织器的这个侧面。
示例VII图30是显示在一个金融交易中所涉及的通信方452-460之间,例如在个人交易和保存装置407(图26-29)与涉及一个金融交易的几个物体之间所交换的示例性数据交换消息462-476的一个序列450,和与一个特定的金融交易相关的一个数据传送的一个图。因为个人交易和保存装置407具有全方向的、远距离的、无线连接能力,所以用户可以与一个零售商店内的所有装置进行通信。通过使用这些增强的通信能力,一个购买者能够进行金融交易,并且协商安全信息的交换。
下述方法学描述了一个商人自助、自闭合的交易系统。使用三方(1)一个购买者,(2)一个商人和(3)一个或者多个金融组织的隐含动作来购买零售商品。可以使用(i)一个电子三方交易,涉及购买者,商人和银行系统或者(ii)使用在这个购买者和这个商人之间进行的电子现金,可以轻易地实现自闭合的交易。
这个系统是基于在购买者和商人之间的一个简化交易,以进行任何一个电子金融交易模式,即(i)三方交易或者(iii)现金交换交易。目前的系统要求一个简化定义的并且被承认的金融系统用于一个给定的购买过程。例如,目前的信用卡用户在一个信用卡机构和这个商人之间有一个隐含的约定从这个信用卡中读取信息并且进行购买商品的交易。甚至当代的发明还继续使用这个隐含定义的基础设施访问,例如具有安全电子交易的寻呼系统。
图30中所显示的下述步骤说明了三方电子购买中所使用的示例性金融交易。当购买者452使用条形码阅读器490(图33)在这个产品上扫描(模块462)这个条形码时,过程450就开始了。这可以是磁信息或者通用的UPC条形码。在这个购买者执行了这个扫描步骤(模块462)以后,就激活(模块464)了这个金融交易。
金融交易包括涉及这个购买者,这个商人和一组银行资源(在这个情形下,仅是这个商人的银行和这个购买者的银行)的一个三方机制。用户452需要提供一个银行帐号或者信用卡号码并且还需要传递产品信息,这个产品信息帮助银行资源458,460决定这个价格并且允许商人456控制库存和安全性。
在商人456分析出这个价格和产品信息,以及这个购买者的银行信息后,商人456向商人的银行458发送一个银行请求(模块466)。商人的银行458然后与购买者的银行460进行合适的金融交易(模块468),最可能的是将包括被请求购买的费用请求进行简单地传送。一旦商人的银行458接收了来自购买者银行460对这个金融交易的确认(模块470),这个信息就可以被用于处理这个商人的帐号。商人的银行458向商人456发送确认(模块472)。商人456接收了这个金融传送的确认(模块472)并且将制作的信息(模块474)发送给这个购买者452。通过这个确认,最好地是这个产品代码,接收和与这个购买交易相关的一般产品标签被发送到购买者452。购买者452然后可以记录金融交易信息和关于这个产品的一般产品标签(模块476)。
过程450将这个金融交易系统修改成允许购买者452能够直接将信息传送到商人456,这使信息传送的控制完全在于购买者452的手上,并且必要时有助于银行的交易。替代地,可以进行电子现金交易,而不需要在购买的时刻与一个银行系统进行通信,这是使用一个一般称作“储存电子现金交易”的一个形式。
本发明修改了这个安全电子交易的当前方法,将其从隐含的金融系统和基础设施移动到有助于在购买者452和商人456之间建立连接的、一个灵活的金融系统结构。
图31显示了当前方法480,其中购买者452和商人456使用隐含定义的金融机构459作为监督或者确保这个交易进行的一第三方。图32显示了新方法482,其中购买者452通过来自商人456和金融机构458,460的合作,发起,控制和完成这些交易。注意,在购买者452没有将一个电子现金直接转移到商人456的情形下(例如,如图31所显示的),购买者452有一个可选的、向金融机构459,包括金融机构458,460(由曲线箭头表示)进行求助的选择。
图33和图34显示了一个修改的或者增强的交易过程的示例。本发明被描述为有两个主要方面,(i)这些服务和它们的通信(图33),和(ii)这些条形码(图34)。
图33是被放置在个人交易和保存装置407(图27和28,上面)的一侧面409/413条形码阅读笔490和电话功能492的一个示例性结构,笔490和电话功能492中的每一个包括如图2,11,12和其相关文字所显示的能力,即包括装置21/121/135。在图33中,条形码阅读器490被画成具有一个普通笔的形状,这以后简单地称作“笔490”。在电话492和笔490之间存在低功率的、短距离的RF链路491。假定任何被笔490所阅读的信息被立即广播到电话(或者其它装置)492。电话492能够理解从笔490所接收的这个信息,并且对这个信息采取动作。
图34是显示示例性消息格式495的一个图,其中某些涉及隐含动作的条形码。条形码信息最通用的形式是UPC(通用产品代码)。这个UPC通过给予产品一个唯一的标识,如模块496所显示的,标识了所讨论的这个产品。但是,没有任何动词或者动作信息被正常编码到一个UPC中。本发明的这个系统需要额外的信息被增加到这个条形码中,特别是一个动作命令,如模块497(“拨号”)和498(“拨号”和“等待答复”)所显示的。在模块497-498中变为条形码的这个信息现在是一个动词-对象对的串,称作一个“隐含的动作条形码”。
示例VIII如何隐含动作条形码,例如497,498的示例可以被构造为包括说明的一个条形码(i)“发起购买交易”,它包括对特定信息的特定请求;(ii)“请求引用”,包括对“关于我们产品的哪一个产品的引用”,“你的名字,信用卡号码,邮件地址”和类似的隐含引用;(iii)“将描述产品或者服务的信息与标识请求者和付款方法的信息组合在一起”;或者(iv)“增加到组织者列表”,即在你的数据库中包括描述其它活动,服务或者产品的这个信息(例如,保存在图2,12的存储器42,147中)。
例如,这个用户可能会看到减少飞机费用的一个广告,这个广告包括一个隐含的动作条形码。这个用户将这个信息扫描到一个个人交易和保存装置407(图26-29)中。这个条形码包括关于几个不同的航班,可用日期和类似的信息,并且包括将这些数据显示给这个用户的一个提示和做的一个或者多个选择以及与其它数据一起被发送的请求,并且还包括请求使用名字,相片等等来标识这个用户的信息,请求描述一个付款方式(例如,信用卡号码,银行帐号信息,邮件地址等等)信息的一个请求。这个条形码还包括足够允许个人交易和保存装置407与这个旅行代理机构进行通信的信息,例如电话或者传真号码,email地址和/或者类似的信息。
个人交易和保存装置407显示航班信息并且提示给这个用户以进行选择,并且还将描述这个旅行代理机构,这个用户和付款方法的这个信息组合为一个消息。当个人交易和保存装置407然后或者在较后一段时间建立与一个电话或者其它通信媒质(例如,图1的34;图11的21;图12的159)的通信时,被制作来使用这个媒质的一个消息被发送到这个旅行代理机构,这个消息包括描述被选择的航班或者多个航班的信息,将要旅行的人数,他们的身份和付款方法和/或者计费信息。当被接收时,和当进行了航班预订和付款安排时,由这个旅行代理机构处理这些数据。也可以经过金融机构或者经过这个旅行社或者通过这两个来进行确认。
示例IX表I是与个人交易和保存装置407内部的数据结构相应的示例性访问级别的一个表。本发明能够执行几个类型的交易,金融交易是这样一个交易类型中的一个。通过这个改善的各种交易可能性,数据结构变得更复杂了。需要以各种程度来规定和检查个人信息的保护。尽管装置和单元可能“相互交谈”,但总是需要或者希望仅交换或者修改特定的信息。表I访问级别和意义
因为这些原因,至少有6个数据保护的级别(I)级别0-匿名的,这个用户仅可以交换留下匿名身份的信息;(ii)级别1-临时交易,这个数据交换是与商业有关的并且不是关于个人信息的,例如交换商业卡信息;(iii)级别2-社会的,可以交换更多的信息(以一个“社会”的级别),例如社会活动安排表;(iv)级别3-亲密的,信息是更亲密的,例如衣服的尺寸或者家庭时间日期;
(v)级别4-敏感的,数据被使用一个“限制数据”的形式来保护,其中信息可以被读取但是不能被写入,所以一个人可以携带被一第三方授权的信息,例如被鉴别的并且被严格保护的金融记录;和(vi)级别5-信使,另一组“限制数据”,所建立的信息是例如医疗文件或者被鉴别的和被严格保护的推荐信,虽然这个用户不能操作这个数据值或者阅读这个信息,但是这个用户可以携带这个信息。
图35是显示用于使用条形码阅读笔490(图33)和个人交易和保存装置407(图26-29),从一个产品454(图30)阅读条形码信息(图34)的过程500中一系列示例性步骤的一个流图。当用户452(图30)用条形码阅读笔490阅读产品454上的一个条形码(模块503)时,这个过程就开始了(模块501)。这个条形码是一个隐含的动作条形码(见图34及其相关文字),使用隐含的动作来产生购买者452做的一个购买。个人交易和保存装置407提取动作代码(模块505)和产品信息(模块507)。
当判断(模块509)这个条形码信息没有被这个个人交易和保存装置407正确地接收时,一个信号被发送(模块503)到这个用户,以警告应尝试另一个扫描并且这个过程停止(模块521),直到被另一个条形码扫描(模块503)激活。当判断(模块509)这个条形码信息被正确接收时,个人交易和保存装置407需要证实这个动作代码(模块515),检验来确保这个动作代码将位于一个可理解的词汇表中。
当这些动作代码是有效的时,个人交易和保存装置407建立与一个商人装置(模块517)之间的一个连接,并且发送所有必需的产品和金融信息(模块519)。然后过程500结束(模块521)。当这些动作代码被判断(模块515)是无效时,过程500也结束(模块521)。
图36是显示用于在个人交易和保存装置407(图26-29)与商人456(图30)或者一个商人装置/终端之间交换金融交易信息的过程525的一系列步骤的一个流图。这个算法显示了通过一个商人,如图32所显示的,交换金融交易的被修改方法。
当个人交易和保存装置407连接(模块529)到商人终端456(图30),并且发送产品和金融信息时(模块531),如上面用与图31-35相关的文字所描述的,过程525就开始了(模块527)。商人终端456附加金融信息(模块533),即商人银行帐号,商人计费地址,商人邮件地址等等。包括这个购买的帐号信息,产品代码和商人帐号信息的这堆信息被从这个商人终端456发送(模块535)到属于一第三方金融机构的一个终端458,460。商人终端456等待,直到它从这个金融机构458,460接收了一个确认。当判断接收了一个确认(模块537)时,商人456提取关于被承认的购买的金融信息(模块539)。当判断这个购买被金融机构458,460承认(模块541)时,商人456向进行这个购买的这个用户452发送一个接收和产品代码(模块543),并且过程525结束(模块545)。
当判断没有接收一个确认时(模块537),或者判断这个购买没有被这个金融机构承认时(模块541),这个金融交易被停止,并且结束这个过程525(模块545)。商人456然后决定处理替代的金融交易。
图37是显示用于检验在个人交易和保存装置407(图26-29)和另一方的装置之间进行传送的访问级别的过程550的一系列步骤的一个流图。如表I和其相关文字(上面)所显示的,在个人交易和保存装置407中有许多访问级别,这能够有助于建立更复杂的数据结构。这些各种访问级别被用于控制对一个相应数据交易的释放。例如,虽然交换商业卡,但是个人交易和保存装置407的一个持有者需要被检查其访问级别。
当发起一个交易(模块554)和到另一个装置的连接(模块556)时,过程550就开始了(模块552)。过程550包括将信息组合为发送块(模块558)和检查访问级别(模块560)。当判断是合适的时候,信息就被发送到这个被连接的装置(模块564),并且当这个数据访问级别不是级别1时-临时交易,就从这个发送中删除这个被影响的数据(模块562)。当判断需要进一步的传送时(模块566),控制返回到模块558并且否则结束过程550(模块568)。
图38是显示用于检验在个人交易和保存装置407(图26-29)和另一方的装置之间进行传送的访问级别的过程2600的一系列示例性步骤的另一个流图。作为一第一示例,个人交易和保存装置407中的各种访问级别(见表I,上面)被用于控制对一个相应数据交易的释放。作为一第二示例,虽然交换一个推荐信,但是个人交易和保存装置407的一个持有者需要被检查其访问级别。
当发起一个交易(模块572)时,过程2600就开始了(模块570),并且执行步骤,包括连接到另一个装置(模块574),将信息组合为发送块(模块576)和检查访问级别(模块578),当判断数据访问级别是合适的时候,信息就被发送到这个被连接的装置901/901(模块582)。当这个数据访问级别不是级别5时-信使,就跳过这个发送(模块580)。当判断需要进一步的传送时(模块584),过程2600跳回到模块576并且组合另一个数据块,使用模块578到584中所概述的步骤。当判断不需要进一步的传送时,就结束过程2600(模块585)。
个人交易和保存装置407是一个很丰富的、能够进行许多网络通信,特别是与具有能够访问网络能力的其它部件进行通信的工具。具有一个能够访问网络能力的其它装置的示例性I-IX上面特征实施方式可以被描述为与个人交易和保存装置407进行通信的能力。
个人交易和保存装置407可以维持示例I中所描述的、关于电话或者数据访问服务的个性化数据。这允许描述或者一个个人的爱好,位置和/或者统计数据(IUPLS 134,图11-13)或者一个漫游用户的爱好,位置,本地电话号码和/或者统计数据(RUPLS134)的个性化记录被使用一个方便的方式来维持和保存。
如示例II,例如,被一个正在靠近出租车191(图15,16)的用户所携带的个人交易和保存装置407允许向车191发送个性化信息。或者,如示例III所显示的,保存在这个个人交易和保存装置中的、与娱乐媒体相关的个人信息,例如看电视节目的爱好,可以被发送到一个附近的电视机或者系统(图17)。
示例IV描述了一个更复杂的情形。个人交易和保存装置407可以或者是一个客户或者位于这里所描述的一个安全系统内部的服务装置。例如,作为示例IV的这个安全系统的一个客户,个人交易和保存装置407可以被监视并且可以避免被偷,或者避免被错误放置或者被偷以后的错误使用或者错误放置。作为示例IV中这个安全系统的一个服务器,个人交易和保存装置407可以被用于将安全信息设置为这个安全家庭的其它装置(图18,19)。
示例V显示了一个交互式远程控制器应用(图20-24),这是可以使用个人交易和保存装置407来实现的一个功能域。个人交易和保存装置407包括多个功能域(图26-29),其中示例VI中显示了一个个人组织者和电话,但是在个人交易和保存装置407中,这个远程控制器的功能可以被增加或者被替代。
图39是描述结合2480的示例性部分的一个图。尽管结合密钥2480被认为是一个逻辑实体,但是其部件对一个没有被培训的观察者来说是不可区分,它实际上包括许多部分。装置ID2481是结合密钥2480所进入的请求者装置901(图40)的代码。最好,在日期2482前是一个编码日期字段,在这个字段的后面,这个结合密钥2480不再有效。密钥类型2483是描述结合密钥2480的特殊用途的一个字段;参考图52,来获得对密钥用途的更详细说明。结合密钥2480中其它加密信息被保存在密码机2484中。
图40是描述结合过程900的一个简化视图的一个图。这个图描述了请求者装置901(寻找一个能力的一个装置)和提供者装置902(提供在接收了一个请求者的命令后被执行的一个能力的一个装置)。当请求者装置901和提供者装置902相互靠近时,请求者装置901了解提供者装置902的出现;联系下面其它的图来讨论这个过程。请求者装置901向提供者装置902发送一个或者多个结合密钥903,2480。提供者装置902然后将被这个请求者装置901所发送的结合密钥903,2480与被保存在提供者装置902中的一个或者多个结合密钥904,2480相比。当被这个请求者装置901所发送的结合密钥903,2480与被保存在提供者装置902中的结合密钥904,2480相互匹配时905,与提供者装置902的结合密钥915,2480相关的能力911对请求者装置901来说是解锁的。在提供者装置902中可以保存一个或者多个与结合密钥915,2480相关的能力911。
在成功地尝试结合905后,请求者装置901将解锁能力911并且试图满足与请求者装置901中的结合密钥903,2489相关907的需求906。可以有一个或者多个需求906(例如,908,909,910)与任何特定的结合密钥903,2480相关907。对请求者装置901中、与提供者装置902中的能力911匹配的每一个需求906来说,请求者装置901将激发对提供者装置902上的能力911的调用。
图41包括在一个优选实施方式中的装置901,902之间进行通信的示例性消息2499。信标消息2500是一个周期性地被装置901,901发送的消息,以对在检测区域28(图1)内部的任何其它装置901,902通告其出现。实际上,发送信标消息2500的任何装置901,902在说“我在这里!”。在一个优选实施方式中,装置901,902发送信标消息2500的动机根据许多因素而变化,取决于装置901,902是否是请求者装置901或者提供者装置902(图38)或者既是请求者装置又是提供者装置,装置901,902是由一个电池进行供电还是从一个消耗能量较少的源,例如一个公共电力网络来供电的,装置901,902是便携式的还是静止的,其它消息业务的频率,装置901,902从设备电路155(图12)所接收的反馈,装置901,902的特定应用,和装置901,902已经实现的任何策略。
信标消息2500包括操作码2501,一个固定的、但是唯一地标识这个消息是信标消息2500的任意模式。ID2502标识发送信标消息2500的装置901,902。希望与这个装置901,902进行通信的装置901,902应使用这个ID2502。
ID类型2503是标识发送信标消息2500的装置901,902的某些特征的一个模板。ID地址2504是分配在信标消息2500中的空间,以描述一个可选装置地址。当装置901,902在经过网关或者经过中继(见,例如图2,12的网关44及其相关文字)进行通信时,这是很有用的。
共同消息头2510不是一个消息,相反,它是其它消息的一个部件,也就是说,它也是包括在下面其它消息中的某些内容。共同消息头2510包括操作码2511,这个操作码2511包括一个固定的、但是唯一地标识共同消息头2510的任意模板。这个模板将随所引入的这个共同消息头2510的不同而不同。
发送者2512的ID标识引入这个消息头2510的这个信标消息2500的发送者。发送者2513的地址在消息中被分隔开以描述一个可选装置地址。当装置901,902在经过网关或者经过中继(见,例如图2,12的网关44及其相关文字)进行通信时,这是很有用的。发送者2514的装置类型是标识发送信标消息2500的装置901,902的某些特征的一个模板。
目标2515的ID标识这个消息所要发送达到的目的装置901,902。目标2516的地址在信标消息2500中被分隔开,以描述这个消息所要发送达到的目的装置901,902的一个可选装置地址。当装置901,902在经过网关或者经过中继(见,例如图2,12的网关44及其相关文字)进行通信时,这是很有用的。
PING消息2520是任何装置901,902在一个给定的时间(见例如图18,19和相关文字)内,没有从它正在与其进行通信的某些其它装置901,902接收消息后,这个任何装置901,902所发送的一个消息。在一个优选实施方式中,这个给定时间对每一个装置901,902来说是不同的,并且与许多因素有关。实际上,向另一个装置901,902发送这个消息的装置901,902在说“你还在这里吗?”。
PING消息2520包括共同消息头2521(类似于消息头2510),这个共同消息头2521在操作字段2511中包括一个固定的、但是唯一地标识这个消息是PING消息2520的任意模板。ZING消息2525是在装置901,902接收到PING消息2520以后所发送的一个消息。换句话说,ZING消息2525对PING消息2520作出答复。实际上,向另一个装置901,902发送这个消息的任何装置901,902在说“对,我还在这里?”。ZING消息2525包括共同消息头2526(类似于消息头2510),这个共同消息头2526在操作字段2511中包括一个固定的、但是唯一地标识这个消息是ZING消息2525的任意模板。
图42显示了在一个优选实施方式中,装置901,902之间所进行通信的更多示例消息。建立结合消息2530是当请求者装置901(图38)试图与潜在的提供者装置902建立结合时,请求者装置901所发送的一个消息。
建立结合消息2530的第一部分2531包括共同消息头2510,这个共同消息头2510在操作字段2511中包括一个固定的、但是唯一地标识这个消息是建立结合消息2530的任意模板。请求者的密钥2532是请求者装置901提供给提供者装置902的结合密钥903。建立结合状态消息2540是提供者装置902发送给请求者装置901的一个消息,以表示经过建立结合消息2530来激发的一个结合尝试的状态。建立结合状态消息2540的第一部分2541包括共同消息头2510,这个共同消息头2510在操作字段2511中包括一个固定的、但是唯一地标识这个消息是建立结合状态消息2540的任意模板。
请求者的密钥2532是请求者装置901提供给提供者装置902的、现在这个提供者装置902报告回来的结合密钥903。结果码2543表示这个结合尝试的状态。这个状态包括这个结合尝试是否成功。
查询能力消息2550是请求者装置901发送给提供者装置902的一个消息,以查询能力911。查询能力消息2550的第一部分2551包括共同消息头2510,这个共同消息头2510在操作字段2511中包括一个固定的、但是唯一地标识这个消息是查询能力消息2550的任意模板。请求者的密钥2552是在其下建立这个结合的结合密钥904。能力号码2553包括一个固定的、但是唯一地标识这个能力911的任意模板。
告知能力消息2560是提供者装置902发送给请求者装置901的一个消息,以对查询能力消息2550作出响应。告知能力消息2560的第一部分2561包括共同消息头2510,这个共同消息头2510在操作字段2511中包括一个固定的、但是唯一地标识这个消息是告知能力消息2560的任意模板。
请求者的密钥2562是在其下建立这个结合905的结合密钥903。能力号码2563包括一个固定的、但是唯一地标识这个能力911的任意模板。结果码2564表示需求906是否与能力911(和/或者目前在提供者装置902上可用)相应。能力描述2565是一个可选的能力911描述。执行能力消息2570是请求者装置901发送给提供者装置902的一个消息,以调用提供者装置902上的能力911。
执行能力消息2570的第一部分2571包括共同消息头2510,这个共同消息头2510在操作字段2511中包括一个固定的、但是唯一地标识这个消息是执行能力消息2570的任意模板。
请求者的密钥2572是在其下建立这个结合905的结合密钥903。能力号码2573包括一个固定的、但是唯一地标识这个能力911的任意模板,并且能力参数2574包括给予这些能力911的运行参数。
能力前同步码(preamble)2575包括在调用任何能力911以前,将要被执行的指令。这用于在这个能力开始运行以前,将某些设备电路(例如图2的48;图12的155等等)的状态设置到某些已知的状态。关于这个能力前同步码特征的进一步说明,参考图50的详细说明。
能力后同步码2576包括在能力911结束以后将要被执行的指令。这用于在这个能力结束运行以后,将某些设备电路的状态设置到某些已知的状态。关于这个能力后同步码特征的进一步说明,参考图50的详细说明。
图43是描述示例性数据结构部件的一个图。需求表元素2580包括保存关于请求者装置901的一个需求906的信息的数据项,需求表元素2580被保存在请求者装置901中。能力码2582包括一个固定的、但是唯一地标识这个需求906的任意模板。能力名字2582包括需求906的文本名字。使能/非使能标记2583表示这个装置901的这个用户已经在这个时刻使能或者非使能需求906。被动/主动标记2584描述需求906是否是主动的还是被动的,被动/主动标记2584是主动的,意味着需求906将自动地寻找和进行动作,而不需要任何用户的干预;被动/主动标记2584是被动的,意味着这个用户必须自己明显地调用能力911。请求者前同步码2585包括在经过执行能力消息848(图51)满足需求906以前,将要在请求者装置901上被执行的指令;关于这个字段的额外信息参考图50的详细描述。
请求者后同步码(postamble)2586包括在请求者装置901已经拆除与提供者装置902的连接的以后,在请求者装置901上将要被执行的指令;关于这个字段的额外信息参考图50的详细描述。提供者前同步码2587包括在提供者装置902调用能力911以前,在提供者装置902上将要被执行的指令;关于这个字段的额外信息参考图50的详细描述。提供者后同步码2588包括在提供者装置902拆除与请求者装置901的连接以后,在提供者装置902上将要被执行的指令;关于这个字段的额外信息参考图50的详细描述。
能力表元素2590包括在提供者装置902上保存关于一个能力911的信息的数据项。能力代码2591包括一个固定的、但是唯一地标识这个能力911的任意模板。能力名字2583是能力911的文本名字。使能/非使能标记2584表示这个能力911在这个时刻被使能或者被非使能。物理限制2594是描述为了使用能力911,请求者装置901的硬件限制的一个字段。
逻辑限制2595是规定这个能力911的这个用户的逻辑限制的一个字段。例如,可能特定的文件或者功能是出界的(见例如图37,38,表I和相关文字)。能力前同步码2596包括在调用这个能力以前,将要在提供者装置902上被执行的指令;关于这个字段的额外信息参考图50的详细描述。
能力后同步码2597包括在提供者装置902拆除与请求者装置901的连接以后,在提供者装置902上将要被执行的指令;关于这个字段的额外信息参考图50的详细描述。提供者前同步码2598包括在提供者装置902调用这个能力911以前,将要在提供者装置902上被执行的指令;关于这个字段的额外信息参考图50的详细描述。提供者后同步码2599包括在提供者装置902拆除与请求者装置901的连接以后,在提供者装置902上将要被执行的指令;关于这个字段的额外信息参考图50的详细描述。能力指令2600是能力911的指令或者指向能力911的指令。
需求表610包括保存需求表元素(element)2580的一个数据结构。在这个情形下,需求表610被描述为一个线性阵列需求表元素2580,但是,其它表技术,例如树,hash,链表和该软件工程领域的技术人员所熟知的其它数据结构可以被采用。
能力表620包括保存能力表元素2590的一个数据结构。在这个情形下,能力表620被描述为一个线性阵列能力表元素2590,但是,其它表技术,例如树,hash,链表和该软件工程领域的技术人员所熟知的其它数据结构可以被采用。
图44是描述示例性数据结构部件的一个图。请求者表元素630包括保存与一个结合密钥903,2480相关的信息的数据项。这个数据结构被保存在请求者装置901中。结合密钥630是一个结合密钥903,2480。使能/非使能标记632表示在这个时刻,这个装置901的这个用户是否已经使能或者非使能结合密钥631。指向需求表633的这个指针引用需求表610。
提供者表元素640包括保存与一个结合密钥904相关的信息的数据项。这个数据结构被保存在提供者装置901中。结合密钥641是一个结合密钥904。使能/非使能标记642表示在这个时刻,这个装置的这个用户是否已经使能或者非使能结合密钥641。指向需求表643的这个指针引用需求表620。
提供者表650包括将提供者表元素640作为被保存的提供者表元素651,…,655中的一个保存的一个数据结构。请求者表660包括将请求者表元素630作为被保存的请求者表元素651,…,655中的一个保存的一个数据结构。在这个情形下,提供者表650被描述为一个线性阵列提供者表元素651,…,655,请求者表660被描述为一个线性阵列请求者表元素651,…,655,但是,其它表技术,例如树,hash,链表和该软件工程领域的技术人员所熟知的其它数据结构可以被采用。
图45描述了请求者表671和需求表672,673之间的关系。如前面所讨论的,请求者表671包括与661…665相应的请求者表元素676…680,需求表672包括与611…615相应的需求表元素681…685。另外,还显示了需求表673,需求表673包括与611…615相应的需求表元素686…690。请求者表元素676包括到需求表672的索引;这是经过到需求表633的指针来完成的。另外还显示了从请求者表元素680到需求表673的索引675。没有显示的是其它请求者表元素677…680也指向需求表674/5。
图46是描述了提供者表701(与提供者表650类似,图44)和能力表702,703(与能力表620类似,图43)之间的关系。如前面所讨论的,提供者表701包括提供者表元素706…710,能力表702包括能力表元素711…715。另外,还显示了能力表703,能力表703包括能力表元素716…720。提供者表元素706包括到能力表702的索引;这是经过到能力表643的指针来完成的。另外还显示了从提供者表元素710到能力表703的索引705。没有显示的是其它提供者表元素707…710也指向能力表。
图47是描述示例性数据结构的一个图。对话表元素730包括在这个对话空间中保存与一个装置901,902相关的信息的数据项。这个对话空间被定义为所有那些相邻的装置901,902和所有那些能够经过网关(44,图1;159,图12)或者中继(46,图1;159,图12)进行通信的装置901,902,而不管装置901,902目前是否在进行有意义的通信。这个数据结构被保存在装置901,902中,装置901,902是否包括请求者装置901,提供者装置902,或者这两个。
装置ID731是对话空间中装置901,902的标识。对话状态732定义了与装置901,902进行通信的状态;某些有效的对话状态是(i)忽视和(ii)结合。指向结合表733的指针是指向结合表770(图48,下面讨论)的一个索引。结合734的数目描述了目前与这个装置处于活动的结合数目。时间戳735是最后一次从这个装置901,902接收信息的时钟时间。剩余的PING数目736保存了一个整数,这个整数规定当没有从这个装置901,902接收任何ZING消息2525(图44)时,我们尝试唤醒这个装置901,902的次数。
结合表元素740包括保存与带一个装置901,902的一个结合905的信息的数据项。密钥741是在其下建立结合905的这个结合密钥。装置ID742是结合905所涉及的装置901,902的这个装置标识。结合状态743定义了结合905的状态;某些有效的结合状态是(i)请求者,(ii)提供者和(iii)挂起。指向配对表744的指针是指向配对表780(下面讨论)的一个索引。配对745的数目是一个整数,这个整数定义了在这个结合905下,需求906与能力911匹配的数目(图51,53,57)。
配对表元素750包括保存与请求者指针901的需求和提供者902的能力的一个匹配相关的信息的数据项。指向提供者/请求者表元素751的指针参考提供者表元素640,651(图44),706(图46)或者请求者表元素630,661(图44),676(图48)。指向需求/能力表元素752的指针是到需求表元素2580,611(图43),681(图45)或者能力表元素2590,621(图43),711(图46)的一个索引,这与结合状态743有关。
图48是描述作为表元素761…765,771…775和781〕785中的一个表的、三个数据结构,(i)对话表760,(ii)结合表770和(iii)配对表780(图47)的一个图。对话表760包括保存对话表元素730的一个数据结构。在这个情形下,对话表760被描述为一个线性阵列对话表元素761,…,765,但是,其它表技术,例如树,hash,链表和该软件工程领域的技术人员所熟知的其它数据结构可以被采用。
结合表770包括将结合表元素740(图47)作为结合表元素771…775之一保存的一个数据结构。在这个情形下,结合表770被描述为一个线性阵列结合表元素771,…,775,但是,其它表技术,例如树,hash,链表和该软件工程领域的技术人员所熟知的其它数据结构可以被采用。
配对表780包括将配对表元素750(图47)作为配对表元素781…785之一保存的一个数据结构。在这个情形下,配对表780被描述为一个线性阵列配对表元素781,…,785,但是,其它表技术,例如树,hash,链表和该软件工程领域的技术人员所熟知的其它数据结构可以被采用。
图49描述了对话表791,结合表792和配对表793之间的关系。对话表791包括对话表元素796...801(与对话表元素730类似,图47),并且结合表792包括结合表元素802…806(与结合表元素740类似)。另外还显示的是包括配对表元素807…811(与配对表元素750类似)的配对表793。对话表元素796包括经过指向结合表733(图47)的指针的、到结合表792的索引794。对话表元素806包括到配对表793的索引795;这个索引是经过指向结合表744的指针来完成的。
图50是描述一个前同步码和后同步码指令820的整体视图的一个图。图50描述了请求者装置901的需求823(与需求906类似,图40)和提供者装置902上的能力824(与能力911类似,图40)的配对825。在请求者装置901通过发送执行能力消息2570(图42)满足需求823以前,请求者装置901首先执行包括在请求者前同步码827中的指令。请求者装置901发送执行能力消息2570到提供者装置902。包括在执行能力消息2570中的是两组指令,称作提供者前同步码829和提供者后同步码830。
当提供者装置902接收执行能力消息2570时,它首先执行包括在能力前同步码831中的指令。第二,提供者装置902执行包括在提供者前同步码829中的指令。第三,提供者装置902调用其能力824。
当提供者装置902注意到在请求者装置901和提供者装置902之间的结合905被打破时,提供者装置902首先结束能力911/824。第二,提供者装置902执行提供者后同步码830中的指令。第三,提供者装置902执行能力后同步码832中的指令。当请求者装置901注意到在请求者装置901和提供者装置902之间的结合905被打破时,请求者装置901执行请求者后同步码828中的指令。
图51是描述在建立结合905(图40)期间,在请求者装置901和提供者装置902之间所交换的消息序列的消息序列图840。当请求者装置901通过提供者装置902的信标消息2501(图41)知道提供者装置902时,就激发了这个序列。一旦知道了提供者装置902的存在时,请求者装置901通过向提供者装置902发送建立结合消息844(make bond message)来尝试建立结合905。
提供者装置902然后用建立结合状态消息845来进行响应,描述是否已经经过这个结合密钥2480建立了结合905(见图39)。不管这个结合尝试是成功或者失败,请求者装置901重复向提供者装置902发送建立结合消息844,并且对被请求者装置901所使用的每一个使能结合密钥2480,请求者装置901进行上述动作一次(即,每一个活动结合905进行一次)。提供者装置902用与被请求者装置901所发送的每一个建立结合消息844相应的建立结合状态消息845进行响应。
一旦在请求者装置901和提供者装置902之间建立了一个或者多个结合905,请求者装置901就判断提供者装置902是否具有满足任何请求者装置901的需求906的能力911(见图40)。对每一个使能的并且被结合的、正在被寻找的需求906,请求者装置901向提供者装置902发送查询能力消息846。提供者装置902用描述正在被寻找的需求906是否被这个提供者装置902所接受的告知能力消息847/2560来进行响应。换句话说,每一个查询能力消息846和告知能力消息847形成一个组合,并且这个组合对每一个活动结合905内部的、请求者装置901上的每一个活动需求906,依次重复一次。
然后,请求者装置901对请求者装置901上的、可以被提供者装置902上的能力911满足的每一个需求906,向提供者装置902发送执行能力消息848。对请求者装置901上的需求906和提供者装置902上的能力911之间的每一个活动配对905,执行能力消息命令848被发送一次。
图52包括给出示例性结合密钥类型和说明它们在一个优选实施方式中的用途的矩阵850。矩阵850的第一行(模块851)给出了列的题目。列密钥类型(模块852)标识特定的结合密钥2480和用途。提供者(模块853)的列数目描述了多少提供者装置902将使用这类结合密钥2480。请求者(模块854)的列数目描述了多少请求者装置901使用这类结合密钥2480(见图39)。列的意义(模块855)给出了结合密钥2480用途的文字解释。
矩阵850的行2(模块860)描述了用于仅结合905到一个(模块871)提供者装置902的这类装置密钥870的结合密钥2480。装置密钥870可以被许多(模块872)请求者装置901所携带,但是所有请求者装置901使用它来结合到一个并且仅结合到一个(模块871)提供者装置902。
矩阵850的行3(模块861)描述了这类个人密钥874的结合密钥2480,这类个人密钥874可以被许多(模块875)提供者装置902所携带,但是仅被一个(模块876)请求者装置901所携带。个人密钥874被用于标识一个单独的用户。
矩阵850的行4(模块862)描述了这类拥有者密钥878的结合密钥2480,这类拥有者密钥878可以被许多(模块879)提供者装置902所携带,其中每一个装置是被相同的拥有者所拥有,不管这个拥有者是一个个人或者一个实体(例如,一个公司,犹太教堂等等)。可以携带拥有者密钥878的请求者装置901的数目是一个或者几个(模块880)。典型地,管理特权与拥有者密钥878相关,所以拥有者密钥878的数目应保持到一个最小值。
矩阵850的行5(模块863)描述了组密钥882类型的结合密钥2480,这类组密钥882可以被许多(模块883)提供者装置902所携带,并且它还可以被许多(模块884)请求者装置901所携带。组密钥882是用于共享装置的。
矩阵850的行6(模块864)描述了帽密钥886类型的结合密钥2480,这类帽密钥886可以被许多(模块887)提供者装置902所携带,但是,帽密钥886可以被一个并且仅可以被一个(模块888)请求者装置901所携带,并且它表示这个装置表示一个个人的(类似于个人密钥874)。使用帽密钥886,一个个人可以根据它们所执行的不同角色将它们的访问权利分成许多类别。
矩阵850的行7(模块865)描述了角色密钥890类型的结合密钥2480,这类角色密钥890可以被许多(模块891)提供者装置902所携带,并且还可以被许多(模块892)请求者装置901所携带。角色密钥890被分配到一起同时或者根据一个轮流的顺序充当一个角色的很多个人中。它类似于组密钥882,但是在应用上,它们两个有不同点。角色密钥890与帽密钥886的不同点在于帽密钥886被一个并且仅被一个个人所使用来划分角色,而角色密钥890包括了许多共享一个角色的个人。
矩阵850的行8(模块866)描述了系统密钥894类型的结合密钥2480。系统密钥894可以被许多(模块895)提供者装置902所携带,并且还可以被许多(模块896)请求者装置901所携带。系统密钥894被用于逻辑地将一组装置901,902组合成一个系统,这个系统也称作一个逻辑系统。系统密钥894与组密钥882类似,除了在应用中,所有均使用相同系统密钥894的提供者装置902可以有一个特殊的最佳合作。
图53是装置901,902的主控制环的过程999的一个示例性流图。在这个优选实施方式中,所有通信端装置901,902执行与过程999类似的一个过程,通过启动装置901,902的内部定时器(模块1001)来开始这个过程。然后,控制进入到一个不结束的环(模块1002)。环1002对过程轮询事件(见图42,43),并且依次处理每一个事件,并且然后重复。
控制判断(模块1003)何时信标消息2500被挂起,并且当信标消息2500被挂起时,经过分支1004,控制被转到处理这个消息(模块1006,见图61)。然后,控制经过分支点1007返回到这个环的顶部。当没有信标消息2500被挂起时,然后就经过分支1005继续处理,以判断(模块1008)何时建立结合状态消息2540被挂起。
控制判断(模块1008)何时建立结合状态消息2540被挂起,并且当建立结合状态消息2540被挂起时,经过分支1009,控制被转到处理这个消息(模块1011,见图57)。然后,控制经过分支点1012返回到这个环的顶部。当它判断(模块1008)没有建立结合状态消息2540被挂起时,然后就经过分支1010继续处理,以判断(模块1013)何时告知能力消息2560被挂起。
然后,控制判断(模块1013)何时告知能力消息2560被挂起,并且当告知能力消息2560被挂起时,经过分支1014,控制被转到处理这个告知能力消息2560(模块1016,见图54)。然后,控制经过分支点1017返回到这个环的顶部。当它判断(模块1013)没有告知能力消息2560被挂起时,然后就经过分支1015继续处理,以判断(模块1018)何时内部定时器溢出。
控制判断(模块1018)何时内部定时器溢出,并且当内部定时器溢出时,经过分支1019,控制被转到处理这个事件(模块1021,见图62)。然后,控制经过分支点1022返回到这个环的顶部。当控制判断(模块1018)内部定时器没有溢出时,然后就经过分支1020继续处理,以判断(模块1023)何时PING消息2520被挂起。
控制判断(模块1023)何时PING消息2520被挂起,并且当PING消息2520被挂起时,经过分支1024,控制被转到处理这个PING消息2520(模块1026,见图56)。然后,控制经过分支点1027返回到这个环的顶部。当控制判断(模块1023)没有PING消息2520被挂起时,然后就经过分支1025继续处理,以判断(模块1028)何时ZING消息2525被挂起。
控制判断(模块1028)何时ZING消息2525被挂起,并且当ZING消息2525被挂起时,经过分支1029,控制被转到处理这个ZING消息2525(模块1031,见图56)。然后,控制经过分支点1032返回到这个环的顶部。当控制判断(模块1028)没有ZING消息2525被挂起时,然后就经过分支1030继续处理,以判断(模块1033)何时建立结合消息2530被挂起。
控制判断(模块1033)何时建立结合消息2530被挂起,并且当建立结合消息2530被挂起时,经过分支1034,控制被转到处理这个建立结合消息2530(模块1036,见图59)。然后,控制经过分支点1037返回到这个环的顶部。当控制判断(模块1033)没有建立结合消息2530被挂起时,然后就经过分支1035继续处理,以判断(模块1038)何时查询能力消息2550被挂起。
控制判断(模块1038)何时查询能力消息2550被挂起,并且当查询能力消息2550被挂起时,经过分支1039,控制被转到处理这个查询能力消息2550(模块1041,见图60)。然后,控制经过分支点1042返回到这个环的顶部。当控制判断(模块1038)没有查询能力消息2550被挂起时,然后就经过分支1040继续处理,以判断(模块1043)何时执行能力消息2570被挂起。
控制判断(模块1043)何时查执行能力消息2570被挂起,并且当执行能力消息2570被挂起时,经过分支1044,控制被转到处理这个执行能力消息2570(模块1046,见图58)。然后,控制经过分支点1047返回到这个环的顶部。当控制判断(模块1043)没有执行能力消息2570被挂起时,然后就经过分支1045返回到这个环的顶部。
图54是描述告知能力消息2560的处理1048的一个示例性流图,这个告知能力消息2560在请求者装置901已经向某些提供者装置902发送了查询能力消息2550,并且提供者装置902已经进行响应以后才到达的。
处理1048从告知能力消息2560中开始(模块1100),阅读(模块1102)结果码2564,并且判断(模块1102)何时提供者装置902可以提供能力911。也从需求表元素2580中检测这个需求906,并且处理1048还判断(模块1102)何时需求906是一个活动的需求。当这些条件均满足时,控制经过分支1103转到执行(模块1104)请求者前同步码827。然后,执行能力消息2570被发送(模块1105)到提供者装置902。处理1048然后返回(模块1106)。
图55是描述处理PING消息2520的过程1049的一个示例性流图,其中这个PING消息2520是当在某一时间内没有从一个目标装置901/902接收到消息时,某些其它已经被连接的装置901/902发送到这个目标装置901/902的。当目标装置901/902接收到PING消息2520时,它应该使用ZING消息2525进行答复。
在这个过程的开始(模块1200),在对话表760中搜寻PING消息2520的发送者901/902(模块1201)。然后查询搜寻结果(模块1202)。当在对话表760(模块1202)中发现发送者901/902时,表明装置901/902以前就已经知道发送者901/902的存在了,在这个对话表760中更新该装置901/902的时间戳735,并且剩余的PING数目736被设置为2(模块1207),但是在这个优选实施方式中,可以使用其它任何固定的数目。剩余PING的数目736决定在一个目标装置901/902被认为已经拆除连接以前,内部时钟需要溢出的次数。注意,不仅是PING消息2520的数目可以决定拆除连接前的总时间间隔,而且设置在这个内部定时器上的时间阈值也可以决定拆除连接前的总时间间隔。
当在这个对话表760(模块1202)中没有发现这个发送者901/902时,这就是从发送者901/902接收的第一次通信,或者换句话说,这个消息被认为是(模块1206)信标消息2500,并且调用(模块1800)与一个信标消息相关的处理。在任何一个情形下,ZING消息2525被发送到发送者901/902,以对PING消息2520(模块1208)作出响应。然后,过程1049返回(模块1209)。
图56是描述ZING消息2525的处理1050的一个示例性流图,ZING消息2525是对PING2520作出响应,被发送到一个目标装置901/902的。
在过程1050的开始(模块1300),在对话表760中搜寻PING消息2520的发送者901/902。这个搜寻的结果被查询(模块1302),并且当在对话表760中(模块1302)发现发送者901/902时,表明该装置901/902以前就知道了发送者901/902,所以控制经过分支1303转到模块1305。在对话表760(模块1305)中更新这个装置901/902的时间戳735。
剩余的PING数目736被设置为2(模块1207),但是在这个优选实施方式中,可以使用其它任何固定的数目。剩余PING的数目736决定在一个目标装置901/902被认为已经拆除连接以前,内部时钟需要溢出的次数。注意,不仅是PING消息2520的数目可以决定拆除连接前的总时间间隔,而且设置在这个内部定时器上的时间阈值也可以决定拆除连接前的总时间间隔。当在这个对话表760中没有发现(模块1302)这个发送者时,这就是从发送者901/902接收的第一次通信,或者换句话说,这个消息被认为是(模块1306)信标消息2500。然后,过程1050返回(模块1308)。
图57是描述与接收建立结合状态消息2540相关的过程1051的一个示例性流图,这个建立结合状态消息2540通常是提供者装置902对来自请求者装置901的建立结合消息2530作出响应而发送的消息。在过程1051的开始(模块1400),在结合表740中搜寻(模块1401)在建立结合状态消息2540中所描述的结合905。这个搜寻的结果被查询(模块1402),并且,当在结合表740(模块140)中发现结合905并且建立结合状态消息2530表示结合905是成功的时候,然后请求者装置901现在就与提供者装置901建立了连接。当所规定的任何一个条件(模块1402)没有被满足时,控制经过分支1401并且过程1051返回(模块1415)。对请求者装置901来说,结合表740中的结合状态743被改变(模块1405),意味着结合905是活动的并且这个装置901正在与请求者装置901进行连接。通过开始选择第一需求908,建立(模块1406)了一个环来处理目前活动密钥2480下的每一个需求906。当没有需求906需要被处理时,经过分支1408来转移控制(模块1407),其中这个过程返回(模块1415),否则模块1407传送控制来测试当前需求是否被使能(模块1410)。当当前需求没有被使能时,选择下一个需求909,…(模块1414)。当当前需求906被使能时(模块1410),经过分支1412,控制被传递到向提供者装置902发送(模块1413)查询能力消息2550。然后,选择下一个需求909…(模块1414)并且然后控制转到环的顶部(模块1407)。
图58是描述与执行能力消息2570相关的过程1052的一个示例性流图,执行能力消息2570是在结合905下,对请求者装置901上的需求906和提供者装置902上的能力911的每一个匹配,被请求者装置901向提供者装置902发送的一个消息。当在对话表760和结合表770中搜寻(模块1501)发送者装置901/902和执行能力消息2570中所描述的结合905时,过程1052就优选的在提供者装置902中发生并且开始(模块1500)。这个搜寻结果被查询(模块1502),当这是与请求者装置901的一个有效的结合905,控制经过分支1503传递到解码请求者装置901的结合密钥903并且将它与被提供者装置902所使用的相应密钥904相比(模块1505)。当任何条件没有被满足(模块1502)时,控制经过1504并且过程1052返回(模块1516)。当判断没有成功地解码结合密钥903(模块1506)时,忽视执行能力消息2570并且过程1052返回(模块1516)。当判断(模块1510)能力911出现了并且被使能时,能力911就可以被调用。调用(模块1513)能力前同步码2596,调用(模块1514)提供者前同步码2587。最后,调用(模块1515)能力911本身。当没有满足这些条件时,或者调用能力922以后,过程1052返回(模块1516)。
图59是描述与建立结合消息2530相关的过程1053的一个示例性流图,建立结合消息2530是对被请求者装置901所使用的每一个被使能结合密钥905,被请求者装置901发送到提供者装置902的一个消息。过程1053优选地在提供者装置902中发生并且当在对话表760中搜寻(模块1601)发送者901/902时,就开始(模块1600)这个过程1503。这个搜寻的结果被查询(模块1602),并且当这个搜寻是成功时,这是一个已知的装置901/902。当搜寻不成功时,这个状态被设置为“ID没有发现”(模块1611)并且被放置在建立结合状态消息2540的结果码中(模块1613)。然后,建立结合状态消息2540被发送到请求者装置901,并且过程1053返回(模块1614)。当这个搜寻成功时(模块1602),请求者装置901的结合密钥903就被解码(模块1605)并且被与由提供者装置902所使用的相应密钥904进行比较。
当结合密钥903的解码被判断为是成功时(模块1606),就为这个新结合905,在结合表770中产生(模块1609)结合表元素740,并且将过程1053的状态设置为(模块1610)“成功的结合”。当结合密钥903的解码被判断为不成功时(模块1606),过程1053的状态就被设置为“密钥没有被解码”(模块1612)。在任何一个情形下,然后过程1053向请求者装置901发送(模块1613)建立结合状态消息2540并且然后返回(模块1614)。
图60是描述与查询能力消息2550相关的过程1054的一个示例性流图,查询能力消息2550是对被请求者装置901所搜寻的每一个被使能需求,被请求者装置901发送到提供者装置902的一个消息。这里所描述的过程发生在提供者装置902中。
过程1054开始(模块1700),并且发送者901/902被在对话表760中搜寻(模块1701)。这个搜寻结果被查询(模块1702),并且当这个搜寻成功时,这是提供者装置902前面与其进行通信的装置901/902,所以过程1054进行到解码结合密钥903(模块1705)。
当判断这个搜寻不成功时(模块1702),经过分支1704,控制转到将这个状态设置为“ID没有被发现”(模块1714)。这个状态被放置在告知能力消息2560的结果码中(模块1716)。告知能力消息2560被发送(模块1716)到请求者装置901。然后,过程1054返回(模块1717)。
当判断(模块1702)这个搜寻成功时,经过分支1703,控制转到解码(模块1705)请求者装置901的结合密钥903。当判断(模块1706)结合密钥903的解码不成功时,过程1054的状态被设置为“密钥没有被解码”(模块1715),并且在发送(模块1716)告知能力消息2560后,过程1054就返回(模块1717)。
当判断结合密钥903的解码成功时,控制经过分支1708并且然后搜寻这个特定能力911(模块1709)。这个搜寻的结果被测试(模块1718)并且当这个搜寻是不成功时,这个状态被设置为“没有发现能力”(模块1712),或者当搜寻成功时(模块1713),这个状态被设置为“有效的匹配”。告知能力消息2560被发送(模块1716)回到请求者装置901。过程1054然后返回(模块1614)。
图61是描述与信标消息2500相关的过程1055的一个示例性流图,信标消息2500是被装置901/902周期性地发送、以通告其出现的一个消息。当请求者装置901从某些潜在的提供者装置902接收信标消息2500时,过程1055优选地在请求者装置901中发生。
过程1055开始(模块1800),在对话表760中搜寻(模块1801)发送者(提供者装置902)。查询这个搜寻的结果(模块1802),并且当搜寻成功时,表示这是提供者装置902已经知道的一个装置901/902,所以经过分支1804,控制被转到允许在对话表760中更新这个装置的时间戳(模块1807),并且剩余PING的数目被设置为2(模块1808)。在这个流图中,PING的数目被设置为2,但是在一个优选实施方式中,可以设置任何固定的整数。然后,过程1055返回(模块1821)。
当这个搜寻没有提供前面与这个装置902进行通信的记录(模块1803)时,它意味着装置901前面不知道这个装置。控制经过分支1803,并且在对话表760中,为这个装置902产生(模块1805)新对话表元素730。设置(模块1806)装置901,902的时间戳。
然后剩余PING的数目被设置为2(模块1808)。在这个示例中,PING的数目被设置为2,但是在一个优选实施方式中,可以设置任何固定的整数。被这个请求者装置901所使用的这个第一结合密钥903被选择(模块1810),以准备扫描被请求者装置901所使用的每一个结合密钥903。然后判断(模块1811)何时有更多的请求者结合密钥903需要被处理。当没有请求者结合密钥903需被处理时,控制经过分支1812转移并且过程1055返回(模块1821)。否则,继续结合密钥903的处理(模块1814)。当这个当前的请求者结合密钥903没有被使能时,分支1815就选择(模块1817)下一个请求者结合密钥903并且控制转到环的顶部(模块1811)。当使能这个当前请求者结合密钥903(模块1814)时,控制经过分支1816转移并且产生(模块1818)新结合表元素740。这个结合状态被设置为“挂起”(模块1819)并且然后这个“建立结合”消息被发送到提供者装置902(模块1820)。然后选择(模块1817)下一个请求者结合密钥。
图62是描述当这个内部定时器溢出时发生的过程1056的一个示例性流图。当这发生时,我们进行检查,来看我们已经连接到的任何装置901,902是否现在需要被拆除连接。
在过程的开始(模块1900),选择(模块1901)对话表760中的这个第一被使用表目。它判断是否有其它更多的剩余对话表表目需要被处理(模块1903)。当没有剩余的的对话表表目需要被处理时,就转到分支1904,以复位这个内部定时器(模块1909),并且处理1506返回(模块1918)。当判断有更多的剩余对话表表目需要被处理(模块1903)时,控制经过分支1905转到判断这个当前的对话表表目的时间戳何时比这个阈值(模块1906)早。这个阈值在优选实施方式中,是一个固定的但是任意的值。
当这个阈值被超过时,需要采取措施来重新恢复这个连接/结合905。当这个阈值没有被超过时,控制经过分支1908返回,并且选择下一个对话表表目740以进行处理(模块1902)。判断我们是否超过了这个装置901/902的PING尝试数目(模块1910)。当没有剩余的PING时,就执行(模块1917,见图3)一个拆除连接的处理。当有剩余的PING时(模块1910),控制经过分支1911转移到来判断何时我们与这个被控制的装置901/902进行一个对话,或者它是否简单地位于这个对话空间中(模块1912)。
当我们没有与这个被控制的装置901/902进行一个对话时,就执行分支1913并且选择下一个对话表元素730(模块1902)。否则,我们正在与这个被控制的装置901/902进行一个有意义的对话,所以控制经过分支1914转移并且PING消息2520被发送到这个被控制的装置(模块1915)。剩余的PING数目被减1(模块1916)并且然后,选择下一个对话表表目(模块1902)。
图63是描述用于拆除连接的过程1917的一个示例性流图。在过程1917的开始(模块2000),选择(模块2001)这个装置901/902的结合表760中的这个第一结合表元素740。判断(模块2003)是否有更多的剩余结合表元素740需要被处理。当没有更多的剩余结合表元素740需要被处理时,就执行分支2004,并且过程1917返回(模块2012)。当判断(模块2003)有更多的剩余结合表元素740需要被处理时,控制经过分支2005转移到判断(模块2006)何时结合905中的这个关系是提供者装置902或者请求者装置901中的一个。
当它是提供者装置902时,就执行分支2007,并且执行(模块2011)提供者拆除连接的处理(图64)。当它是请求者装置901时,就执行分支2008,并且执行(模块2011)请求者拆除连接的处理(图65)。它们执行的结果是,两个过程均转移到释放结合表元素740(模块2009)的分支并且然后选择(模块2002)下一个结合表元素740。
图64是描述与拆除提供者装置902的连接相关的过程1058的一个示例性流图。在过程1058的开始(模块2100),选择(模块2101)这个结合905的这个第一配对表元素705。判断是否有剩余的配对表元素750需要被处理(模块2103)。当没有更多的剩余配对表元素750需要被处理时,就执行分支2104,并且过程1058返回(模块2110)。当判断(模块2103)有更多的剩余配对表元素750需要被处理时,控制经过分支2105转移到执行提供者后同步码2588(模块2106),并且执行(模块2107)能力后同步码2576。释放(模块2108)这个配对表元素750,并且然后选择(模块2109)下一个配对表表目。当判断(2103)没有更多的剩余配对表元素750需要被处理时,过程1058返回(模块2110)。
图65是描述与拆除请求者装置901的连接相关的过程1059的一个示例性流图。在过程1059的开始(模块2200),选择(模块2201)这个结合的这个第一配对表中的第一个表目。判断是否有剩余的配对表元素750需要被处理(模块2203)。当没有更多的剩余配对表元素750需要被处理时,就执行分支2204,并且过程1059返回(模块2208)。当判断(模块2203)有更多的剩余配对表元素750需要被处理时,控制经过分支2205转移到执行请求者后同步码2586(模块2206)。释放(模块2207)这个配对表元素750,并且然后选择(模块2202)下一个配对表元素750。当判断(2203)没有更多的剩余配对表元素750需要被处理时,过程1059返回(模块2208)。
总之,本发明提供了一个能够与其它数据保存和交易装置形成一个网络、并且能够经过这个网络与这个其它数据保存和交易装置进行交互式通信的、改善的个人数据保存和交易装置,及其一个相应的方法。这个网络能够适合于将多个日常使用电子装置,包括能够提供大量、多种类型服务的移动式和便携式装置互连起来。这个网络不需要一个先验的激活和建立过程,因为没有网络所使用的设备需要网络地址来进行连接。
尽管在建立连接时不需要装置地址,但是在能够建立有意义的通信并且交换信息以前,被连接的通信端必须知道装置的名字。在本文中,一个装置或者一个通信端的名字简单地是允许将一个装置或者一个通信端20与其它的装置或者通信端20区分开的一个唯一的标识。所以,用户在建立一个端到端通信时所需要作的一个最小的工作是作为一个例程建立到新通信端的连接。
这样装置之间的连接允许进行电子交易,而不需要交换物理意义上的钱,收费卡或者类似的。根据用户的优选,可以交换或者不交换被包括在商业卡中的信息。
网络节点地址是可以动态配置的,因为是根据相邻性,是根据一个需求和能力评价而不是根据唯一的网络地址编码来形成网络连接的。
尽管已经详细显示和描述了本发明的这个优选实施方式,但是该领域的技术人员很清楚,可以对它进行许多修改而不会偏离本发明的精神或者偏离后附权利要求书的范围。
权利要求
1.用于结合到一个装置的一个方法,所述方法包括发送一个信标消息(2500)的步骤。
2.如权利要求1的一个方法,进一步包括步骤选择一个信标操作码(2501);选择一个标识(2512);选择一个标识类型(2516);选择一个标识地址(2516);和将所述信标操作码,所述标识,所述标识类型,所述标识地址组合到所述信标消息(2500)中。
3.根据权利要求1的一个方法,进一步包括步骤对所述发送步骤作出响应,接收一个建立结合消息(2530)。
4.根据权利要求3的一个方法,进一步包括步骤从所述建立结合消息中解码一个请求者密钥(2532);将所述请求者密钥(2532)与一个被保存的密钥列表进行比较;和判断何时所述请求者密钥(2532)与所述被保存的密钥列表中的密钥相应。
5.根据权利要求4的一个方法,进一步包括步骤对所述建立结合消息(2530)作出响应,发送一个建立结合状态消息(2540)。
6.根据权利要求5的一个方法,进一步包括步骤对所述建立结合状态消息(2540)作出响应,接收一个查询能力消息(2550)。
7.根据权利要求6的一个方法,进一步包括步骤对所述建立结合状态消息(2540)作出响应,发送一个告知能力消息(2560)。
8.根据权利要求7的一个方法,进一步包括步骤对所述告知能力消息(2560)作出响应,接收一个执行能力消息(2570)。
9.用于从一个请求者装置拆除与其结合的一个提供者装置的连接的方法,所述方法包括步骤在一个配对表(780)中选择一第一表目;判断何时有进一步需要被处理的配对表元素(781-785);和当没有进一步需要被处理的配对表元素(781-785)时,返回;和,当有进一步需要被处理的配对表元素时,执行一个包括下述步骤的子方法执行一个提供者后同步码(830);执行一个能力后同步码(832);释放一个当前的配对表元素(781-785);选择下一个配对表元素;和重复所述判断和随后的步骤。
10.用于从一个提供者装置拆除与其结合的请求者装置的连接的方法,所述方法包括步骤在一个配对表(780)中选择一第一表目;判断何时有进一步需要被处理的配对表元素(781-785);和当没有进一步需要被处理的配对表元素(781-785)时,返回;和,当有进一步需要被处理的配对表元素时,执行一个包括下述步骤的子方法执行一个能力后同步码(832);释放一个当前的配对表元素;选择下一个配对表元素;和重复所述判断和随后的步骤。
全文摘要
用于结合(905)到一个装置(901,902)的一个方法。这个方法包括发送一个信标消息(2500)的一个步骤。这个方法还包括步骤:(i)选择一个信标操作码(2501),(ii)选择一个标识(2512),(iii)选择一个标识类型(2514),(iii)选择一个标识地址(2516),将这个信标操作码(2501),这个标识(2512),这个标识类型(2514),和这个标识地址(2516)组合到这个信标消息(2500)中。这个方法还包括一个步骤:对这个发送步骤作出响应,接收一个建立结合消息(2530)。
文档编号H04L29/06GK1259249SQ98805756
公开日2000年7月5日 申请日期1998年6月2日 优先权日1997年6月2日
发明者杰弗里·马丁·哈里斯, 阿尔尼·伍德沃德, 罗纳德·伯斯塔尔 申请人:摩托罗拉公司