用于对等手机通信的系统及方法

文档序号:6425202阅读:320来源:国知局
专利名称:用于对等手机通信的系统及方法
技术领域
本发明一般涉及无线通讯领域,尤其涉及通过无线通讯网络而在无线通讯设备之间的对等通讯。
背景技术
在市场销售的常规无线通讯设备(在本文也被称为“无线设备”、“手机”和“移动设备”)通常是通过无线通信网络利用常规话音连接与其他无线通信设备连接。这种常规话音连接允许实时音频数据在两个或者多个地理上分散且参与话音连接的无线通信设备之间传送。
常规无线通信设备另一个有用的方面是具有可与无线通信网络建立数据连接的能力。这种常规数据连接允许移动设备与网络连接从而例如请求和接收软件更新。
然而,常规移动设备缺乏在移动设备之间通过无线通信网络来实现启动和参与数据通信的能力。因此,需要一种系统和方法,其可克服上述常规系统中所存在的明显问题。
发明概述投入市场的手机具有受限制的数据通信能力。特别是手机完全不具备在手机间对等数据通信的能力。这种不足限制了无线通信设备的应用,因此也限制了放送时间(air time)的应用。
本发明提供一种对等数据通信系统和方法,其允许手机通过无线通信网络参与数据通信。最初,发端手机创建服务器操作代码(“操作码”)集并将服务器操作码集和相应的数据有效载荷组合。然后,服务器操作码集和相应的数据有效载荷被发送到基于网络的服务器中,在服务器中提取数据并完成与操作码相应的可执行指令。该可执行指令使基于网络的服务器编译远程操作码集和相应的数据有效载荷。该远程操作码集和数据有效载荷被发送到在数据有效载荷中被发端手机识别的接收手机中。当该接收手机接收该远程操作码集和数据有效载荷时,该接收手机提取数据有效载荷并执行与远程操作码集中的操作码相对应的指令。指令的执行使接收手机完成在发端手机和接收手机间的数据通信活动。
使用用于无线通信设备之间对等数据通信的系统和方法可以实现多种应用。例如,可以增加或者更新移动设备中的电话薄条录,可以传送诸如图形或电子邮件等数据文件或其它文件,可以传送用户铃声并将其转移到发端手机上,可以请求和提供GPS和位置定位,甚至可以传递运动队预测(fantasy sports team)设计。
附图简要说明结合附图可部分地理解本发明结构和操作的细节,其中相同的标号指代相同的部分,及其中

图1是整个无线设备软件维护系统的示意性方框图;图2是软件维护系统的示意性方框图,重点说明通过无线链路(airlink)接口安装指令集;图3是本发明的用于在无线通信设备中执行动态指令集的系统的示意性方框图;图4是无线设备存储器的示意性方框图;图5是图3所示的代码段地址表;图6是图3中带有符号的符号库1的详细说明;图7是图3所示的符号偏移地址表;图8是对由运行时期引擎所访问的操作代码(操作码)的说明;图9是对图8的第一操作代码的更详细说明;图10是本发明的用于在无线通信设备中执行动态指令集的方法的流程图;图11是动态指令集操作的一个示例的流程图;图12是动态指令集操作的另一示例的流程图;图13是动态指令集操作的第三示例的流程图;图14是动态指令集操作的第四示例的流程图;
图15是动态指令集操作的第五示例的流程图;图16是无线通信网络的一个示例的高层网络图;图17A是无线通信设备的一个示例的方框图;图17B是远程实时指令代码段一个示例的方框图;图18A是PMRTI服务器的一个示例的方框图;图18B是服务器运行时期指令代码段的一个示例的方框图;图19是手机之间对等通信的一个示例的流程图;图20是在无线通信设备上执行动态指令集的过程的一个示例的流程图;图21是在无线通信设备上编译动态指令集的过程的一个示例的流程图;图22是在PMRTI服务器上执行动态指令集的过程的一个示例的流程图;图23是将数据信息发送到对等手机中的过程的一个示例的流程图;图24是可用于与本文所述的各种实施方案结合的计算机系统的一个示例的方框图。
详细说明本文公开的某些实施方案提供了用于在无线通信设备和无线通信网络之间双向交换动态指令集的系统和方法。例如,本文所公开的一种方法允许无线通信设备动态地创建指令集并将该指令集发送到网络上以进行执行和处理。
在理解了说明书之后,对于本领域所属技术人员来讲如何实施本发明的各种可选择的实施方案和可选择的应用是显而易见的。然而,虽然本文描述了本发明的各种实施方案,但是应该理解这些实施方案仅是作为例子而不是用来限制本发明。同样,各种可选择实施方案的详细说明也不意图限制如所附权利要求中阐明的本发明范围或者广度。
下面结合无线设备微处理器或存储器中数据位的操作流程、步骤、逻辑块、代码、方法和其它操作符号表示,列出详细说明的一部分。这些说明和表示可使数据处理领域的所属技术人员能更有效地将他们的工作内容转达给本领域所属的其他工作人员。此处的流程、微处理器执行步骤、应用、逻辑块、方法等通常被认为是指可引起所期望结果的前后一致的步骤序列或指令序列。步骤是指那些需要对物理量进行物理处理的步骤。通常尽管不是必须的,这些量表现为能够存储、传输、组合、比较或其它可在基于微处理器的无线设备中处理的电信号或磁信号的形式。主要是因为通用的原因,将这些信号称为位、值、单元、符号、字符、项、数字等被证实有时是方便的。当物理设备(如存储器)被提及时,它们是通过总线或其它的电连接与其它的物理设备连接的。这些物理设备可被认为是与逻辑处理或应用程序相互作用,因此与逻辑操作“连接”。例如,存储器可存储或存取代码以进行逻辑操作,或者应用程序能够调用源于存储器的代码段以执行程序。
然而应该记住,所有这些术语和相似的术语与相应的物理量相关,其仅是加到这些物理量上的方便标记。除非从下面的讨论中另有特别指明的,应该理解整个发明中使用术语“处理”、“连接”、“翻译”、“显示”、“提示”、“确定”、“显示”、“识别”等的讨论指的是无线设备微处理系统中的活动和过程,其可将计算机系统寄存器和存储器中被表示作物理(电子)量的数据处理并转换成在无线设备存储器或寄存器或其它此类信息存储、传输或显示设备中被表示作相似物理量的其它数据。
图1是整个无线设备软件维护系统100的示意性方框图。下面在对软件维护系统100做总的说明之后,详细说明本发明的系统软件结构。总系统100说明了一种用于传输系统软件更新和指令集(程序)并在无线设备中安装所传输的软件的方法。系统软件更新以及更经常被称为指令集或动态指令集的补丁管理器运行时期指令(PMRTI)是由手机制造商创建的。系统软件可被编制成符号库。符号库被排列进代码段。当欲更新符号库时,软件更新102按一个或多个代码段传输。将软件更新广播到无线通信设备104所代表的现场无线设备中,或使用公知的常规无线链路、数据或信息传输协议在分离的通信中从基站106开始传输。由于无线通信设备可容易地被改进以适于任何可用的基于无线(over-the-air)的传输协议从而达到接收系统软件和PMRTI更新程序的目的,所以本发明不限于任何特定的传输形式。
系统软件也可被认为是不同子系统的集合。代码对象可被紧密地连接进这些抽象子集中的一个,得到的集合可称为符号库。从而可对代码库(code base)提供逻辑分类,软件修补和改正与这些符号库中的一个相关。在大多数情况下,单独的更新程序与一个或至多两个符号库相关。代码库的其余部分、其它符号库保持不变。
符号库的概念为处理代码和常数提供了方法。另一方面读写(RW)数据被装入含有用于所有库的基于RAM的数据的唯一的独立的RW库。
一旦传输的代码段被无线设备104接受,那么其必须被处理。无线设备将重写非易失性存储器108的特定代码段。非易失性存储器108包括文件系统段(FSS)110和代码存储段112。为最小化代码段在FSS 110中的占用空间,在传输前通常压缩代码段。通常更新的代码段与其RW数据结合,RW数据是另一种含有RW数据的符号库,包括用于每个符号库的所有RW数据。尽管当执行系统软件时,RW数据可装入随机存取易失性读写存储器114中,但是RW数据总是需要被存储在非易失性存储器108中,以便每次无线设备被复位时,其能被装入随机存取易失性读写存储器114中。这一点包括第一次的RW数据被装入随机存取易失性读写存储器中。如下面更详细的说明中的那样,RW数据通常排列在补丁代码段中。
系统100包括虚拟表的概念。使用这种表,在一个代码段中的符号库可被修补(替换),而不会破坏(替换)系统软件(其它代码段)的其它部分。为更有效率,虚拟表在随机存取易失性读写存储器114中执行。代码段地址表和符号偏移地址表都是虚拟表。
更新的代码段被无线设备104接收并存储在FSS 110中。无线设备用户接口(UI)通常将通知用户新软件是可用的。用户确认该通知并发送补丁或更新信号以响应UI提示。可选择地,更新操作可自动进行。当进行更新操作时,无线设备不能进行标准通信任务。补丁管理器代码段包括也被装入随机存取易失性读写存储器114中的非易失性读写驱动器符号库。非易失性读写驱动器符号库将引起代码段被更新的代码段重写。补丁管理器代码段包括读写数据、代码段地址表、偏移地址表及符号存取器代码、符号存取器代码地址(下面讨论)。当传入了更新的代码段,并且更新的补丁管理器代码段包括对更新的代码段有效的读写数据、代码段地址表及偏移地址表时,该数据的一部分是无效的。一旦更新的代码段被装入代码存储段112中,无线设备就被复位。在复位操作之后,无线设备能执行更新的系统软件。应该理解,补丁管理器代码段可包括上面没有讨论的其它符号库。这些其它的符号库不需要被装入可读写易失性存储器114中。
图2是软件维护系统100的示意性方框图,突出表明通过无线链路接口安装指令集。除了更新系统的代码段外,维护系统100可下载并安装本文称为补丁管理器运行时期指令(PMRTI)的动态指令集、程序、或补丁管理器指令集(PMIS)。PMRTI代码段200按与上所述的系统软件代码段相同的方式传输到无线设备104。PMRTI代码段起初储存在FSS 110中。PMRTI代码段通常是二进制文件,并可形成针对手机的编译指令。对于基本数学操作性能和条件执行操作性能而言,PMRTI代码段是足够全面的。例如,RF校准PMRTI能执行下面的操作IF RF CAL ITEM IS LESS THAN X(如果RF CAL项小于X)EXECUTE INSTRUCTION(执行指令)ELSE(否则)EXECUTE INSTRUCTION(执行指令)PMRTI可支持基本数学运算,如加、减、乘、除。与系统软件代码段相同,可装入PMRTI代码段以响应UI提示,在PMRTI装入到代码存储段112后,无线设备必须复位。然后再执行PMRTI段。如果PMRTI代码段与任何虚拟表或读写数据相关,那么为在代码存储段112中安装,更新的补丁管理器代码段将和PMRTI一起被传输。可选择地,PMRTI也可被保持并在FSS 110中处理。在手机104已执行了所有PMRTI段的指令后,可从FSS 110删除PMRTI段。可选择地,为更进一步的操作可保留PMRTI。例如每次无线设备启动后,可执行PMRTI。
PMRTI是一种非常有效的运行时期指令引擎。通过PMRTI环境,手机可执行任何传到它的指令。这种方法可被用来支持RF校准。更一般而言,当制造商或服务供应商认识到软件问题时,这通常是用户报怨的结果,PMRTI可用于远程调试无线设备软件。PMRTI也可记录诊断软件问题所需要的数据。PMRTI可提供用于数据分析、调试及改正的最新下载系统应用程序。PMRTI可提供基于RW数据的更新程序用于分析,并短期内改正问题以代替更新的系统软件代码段。PMRTI可提供无线设备使用的存储器压缩算法。
在本发明的某些方面中,将系统软件编制成符号库中可影响执行所需要的易失性存储器114和非易失性存储器108的长度。这是由于通常代码段比排列在代码段中的符号库更大的原因。这些较大代码段用以容纳更新的代码段。将系统软件编制成库的集合对非易失性存储器长度需求有影响。对于同样代码长度而言,使用的非易失性存储器的容量较大是由于代码段比排列于其中的符号库更大的原因。
一旦软件更新被传输到无线设备,那么软件维护系统100就支持存储器压缩。存储器压缩与台式计算机中的磁盘碎片整理应用软件相似。这种压缩方法可确保存储器的最佳使用并有更多的节余以用于将来的代码段更新程序,而更新的代码段长度是不可预测的。当系统100被修补(更新)时,其可分析代码存储段。系统100尝试使更新的代码段进入由被代替的代码段所占据的存储空间。如果更新的代码段比被代替的代码段更大,那么系统100在存储器112中压缩代码段。可选择地,制造商或服务提供商可计算这种压缩,并且压缩指令可被传输到无线设备104。
由于算法的复杂性和大量的数据移动,所以压缩是耗费时间的过程。在其开始任何过程之前压缩算法可预测可能性。在试图压缩之前可用UI提示请求用户的许可。
在本发明的某些方面中,所有的系统软件代码段可被同时更新。然而,完整的系统软件升级需要较大的FSS 110。
图3是本发明的在无线通信设备中执行动态指令集的系统的示意性方框图。系统300包括在存储器108中的代码存储段112,其包括被区分成多个当前代码段的可执行无线设备系统软件。以代码段1(302)、代码段2(304)、代码段n(306)及补丁管理器代码段308表示,然而本发明不限于任何特定数量的代码段。系统300还包括排列进第二组代码段的第一组符号库。示出的是排列在代码段1(302)中的符号库1(310)、排列在代码段2(304)中的符号库2(312)及符号库3(314)及排列在代码段n(306)中的符号库m(316)。每个库包括具有相关功能的符号。例如,符号库1(310)可能与无线设备液晶显示器(LCD)的操作有关。那么这些符号与显示功能相关。如下面详细说明的,其它符号库被排列在补丁管理器代码段308中。
图4是无线设备存储器的示意性方框图。如图所示,存储器是图1中的代码存储段112。该存储器是可写非易失性存储器,如闪存。应该理解,代码段不必象FSS 110一样须存储在相同的存储器中。也应该理解,本发明的系统软件结构能使代码段存储在多个合作的存储器中。代码存储段112包括第二组连续寻址存储块,其中每个存储块存储来自于第二组代码段的相应代码段。因而,代码段1(302)存储在第一存储块400中,代码段2(304)存储在第二存储块402中,代码段n(306)存储在第n存储块404中,补丁管理器代码段(308)存储在第p存储块406中。
比较图3与图4,每个代码段的起始位置存储在存储器中相应的起始地址处,符号库从代码段的起始位置开始排列。也就是说,每个符号库开始在第一地址处并从第一地址起依次占用一段地址。例如,代码段1(302)在代码存储段存储器112中的第一起始地址408(用“S”标示)开始。在图3中,符号库1(310)在第一代码段的起始位置318开始。同样的,代码段2(304)在第二起始地址410(如图4)开始,符号库2在代码段2的起始位置320(图3)开始。代码段n(306)在代码存储段存储器112中的第三起始地址412(图4)开始,符号库m(316)在代码段n的起始位置322(图3)开始。补丁管理器代码段在代码存储段存储器112的第p起始地址(414)开始,在补丁管理器代码段308中的第一符号库在补丁管理器代码段的起始位置324开始。因而,符号库1(310)最终存储在第一存储块400中。如果代码段包括多个符号库,如代码段2(304),那么此多个符号库被存储在相应的存储块中,在这种情况下是第二存储块402。
在图3中,系统300还包括作为一种符号的代码段地址表326,其包括在排列在补丁管理器代码段308中的符号库内。代码段地址表在存储器中可用相应的代码段起始地址交叉引用代码段标识符。
图5是图3所示的代码段地址表326。访问代码段地址表326能够为符号库找到代码段起始地址。例如,当需要执行符号库1中的符号时,系统300将寻找代码段1。为找到代码段1的起始地址并且由此定位符号库1中的符号,需访问代码段地址表326。代码段内符号库的排列及用表跟踪代码段使得代码段可被移动或扩展。扩展或移动操作对于安装升级代码段(带有升级符号库)是需要的。
参照图3,应该注意到并非每个符号库必须在代码段的起始位置开始。如图所示,符号库3(314)排列在代码段2(304)中,但是不在代码段起始地址320处开始。因而,如果需要执行符号库3(314)中的符号,系统300需访问代码段地址表326以找到代码段2(304)的起始地址。如下所述的,符号偏移地址表使得符号库3(314)中的符号可被定位。符号跨越穿过多个符号库也没有关系,只要它们在相同的代码段中即可。
如上所述,每个符号库包括功能上相关的符号。符号是用于定位和使用例行程序(routine body)、变量或数据结构而由程序员定义的名称。因而,符号可以是地址或值。符号可以在内部或外部。内部符号在超出当前代码段的范围是不可见的。更具体而言,它们不能由其它代码段内的其它符号库寻找。可跨代码段利用及调用外部符号,并且可由不同代码段内的符号库来寻找。符号偏移地址表通常包括所有外部符号的列表。
例如,符号库1(310)可以在无线设备显示器上生成字符。在这个库中符号将依次生成电话号码、名字、时间或其它显示特征。每个特征例行产生,在这里被称为符号。例如,符号库1(310)中的一个符号可在显示器上生成电话号码。这个符号以“X”表示,且为外部符号。当无线设备接收电话呼叫并且呼叫方ID服务被激活时,系统必须执行符号“X”以在显示器上产生号码。因而,系统必须定位符号“X”的位置。
图6是图3中带有符号的符号库1的详细说明。从各自代码段起始地址排列被偏移的符号。在许多情况下,符号库的起始位置就是代码段的起始位置,但是如果代码段包括超过一个的符号库,这就不准确了。符号库1(310)在代码段1的起始位置开始(参见图3)。如图6所示,符号“X”定位在距符号库起始位置偏移量为(03)的位置处,符号“Y”定位在偏移量为(15)的位置处。符号偏移地址存储在补丁管理器代码段中的符号偏移地址表328中(参见图3)。
图7是图3所示的符号偏移地址表328。符号偏移地址表328可用存储器中的相应的偏移地址及相应的代码段标识符交叉引用符号标识符。因而,当系统寻找以执行符号库1中的符号“X”时,需访问符号偏移地址表328以定位该符号在其排列的代码段中的确切地址。
参照图3,通常第一组符号库都包括在这些符号库执行时必须访问或设置的读写数据。例如,符号库可以包括由条件语句决定的操作。访问读写数据段以确定完成条件语句所需要的状态。本发明将所有符号库中的读写数据组合成共享的读写段。在本发明的某些方面中,读写数据330排列在补丁管理器代码段308中。可选择地(图未示),读写数据可排列在不同的代码段中,例如代码段n(306)中。
第一组符号库也包括排列在代码段中的符号存取器代码用以计算所寻找符号的地址。符号存取器代码可被排列并存储在单独的代码段中的地址内,如代码段2(304)内。然而,如图所示,符号存取器代码332可被排列并存储在补丁管理器代码段308中的地址内。系统300还包括用于存储符号存取器代码地址的第一单元。第一单元可以是在代码存储段112中或是在无线设备的独立存储器段(图中未示出)内的代码段。第一单元也可被排列在与读写数据相同的代码段中。如图所示,该第一单元334与读写数据330、符号偏移地址表328、代码段地址表326、符号存取器代码332及补丁库(补丁符号库)336一起存储在补丁管理器代码段308中。
符号存取器代码使用代码段地址表和符号偏移地址表以在存储器内计算或找到所寻找符号的地址。也就是说,符号存取器代码利用相应的符号标识符和相应的代码段标识符计算所寻找符号的地址。例如,如果寻找符号库1中的符号“X”,那么需调用符号存取器以寻找相应于符号“X”的符号标识符(符号ID)“X_1”(参见图7)。符号存取器代码访问符号偏移地址以确定“X_1”符号标识符距代码段1起始位置的偏移量为(03)(参见图6)。调用符号存取器代码以寻找相应于代码段1的代码段标识符“CS_1”。符号存取器代码访问代码段地址表以确定与代码段标识符(代码段ID)“CS_1”相关的起始地址。以这种方式,符号存取器代码可确定符号标识符“X_1”距地址(00100)的偏移量为(03),或其被定位在地址(00103)处。
因为其是实际代码的一部分,所以符号“X”是保留名。换句话说,其包括与其相关的绝对数据。此数据可以是地址或值。符号标识符是为跟踪符号而创建的别名。符号偏移地址表和代码段地址表二者都用标识符工作以避免与保留的符号和代码段名混淆。许多符号库使用相同的符号名也是可能的。标识符的使用可防止这些符号间的混淆。
参照图1,系统300还包括可读写易失性存储器114,其一般为随机存取存储器(RAM)。读写数据330、代码段地址表326、符号偏移地址表328、符号存取器代码332及符号存取器代码地址334被从补丁管理器代码段装入可读写易失性存储器114中,用于在系统软件执行期间的存取。众所周知,存储在RAM中的代码的存取时间明显少于从非易失性存储器如闪存存取的时间。
参照图3,应该注意,符号库不需要填满它们所排列的代码段,尽管存储块的大小以恰好可容纳存储在其内的相应的代码段。可选择地,第二组代码段中每个代码段具有可容纳被排列的字符库的字节长度,每个连续寻址存储块具有可容纳相应代码段的字节长度。例如,代码段1(302)可以是100字节的段以容纳具有100字节长度的符号库。第一存储块将是100字节以匹配代码段1的字节长度。然而,装入到代码段1的符号库可以小于100字节。如图3所示,当符号库1(310)小于100字节时,代码段1(302)具有未用段340。因而,第二组代码段的每个代码段可以具有比容纳排列符号库所需长度更大的长度。通过“扩大”代码段,可以容纳更大长度的更新的符号库。
相连地址存储块是指将物理存储器空间分区成可变大小的逻辑块。当代码段被存储在存储器中时,代码段和存储块基本上是可互换的术语。代码段的概念被用于识别可能比符号库更大的一段代码,或用于识别当移动并处理代码段时代码段中的符号库集合。
如图3所示,系统300包括在本文也被称为补丁库336的补丁符号库,用以将当前代码段和代码存储段中的新代码段排列在一起。在代码存储库中新代码段和当前代码段的排列可形成更新的可执行系统软件。补丁管理器336不但可将新代码段和当前代码段排列在一起,而且可用更新的代码段代替代码段。
参照图4,存储器108的文件系统段110可接收新代码段,如新代码段450和更新的补丁管理器代码段452。文件系统段也可接收补丁管理器运行时期指令(PMRTI)454,其包含将当前代码段和代码存储段中的新代码段排列在一起的指令。如图1所示,无线链路接口150可接收新的或更新的代码段及第一PMRTI。尽管无线链路接口150是天线,但是应该理解无线链路接口也包括RF收发机、基带电路(baseband circuitry)及解调电路(图中未示出)。文件系统段110可存储通过无线链路接口150接收的代码段。在读写易失性存储器114中执行的补丁库336可用新的或更新的代码段450代替代码存储段中的首次代码段,例如代码段n(306),以响应PMRTI 454。通常用更新的补丁管理器代码段452代替补丁管理器代码段308。当代码段被代替时,补丁库336用文件系统段110中的更新的代码段(例如代码段450)重写代码存储段112中的首次代码段,例如代码段n(306)。在极端情况下,存储段112中的所有代码段都被更新的代码段所代替。即FSS 110接收第二组更新的代码段(图中未示出),并且补丁库336可用第二组更新的代码段代替代码存储段112中的第二组代码段。当然,FSS 110必须足够大以容纳通过无线链路接口接收的第二组更新的代码段。
如上所述接收的更新的代码段可包括读写数据代码段、代码段地址表代码段、符号库、符号偏移地址表代码段、符号存取器代码段或带有新补丁库的代码段。所有这些代码段和与它们相关的符号库及符号可被存储成不同和独立的代码段。然后这些代码段中的每一个被唯一的更新的代码段所代替。即更新的读写代码段将被接收并代替代码存储段中的读写代码段。更新的代码段地址表代码段将被接收并代替代码存储段中的代码段地址表代码段。更新的偏移地址表代码段将被接收并代替代码存储段中的偏移地址表代码段。更新的符号存取器代码段将被接收并代替代码存储段中的符号存取器代码段。同样地,更新的补丁管理器代码段(带有补丁库)将被接收并代替代码存储段中的补丁管理器代码段。
然而上述的代码段通常在补丁管理器代码段中被捆绑在一起。这样当补丁管理器代码段308被更新的补丁管理器代码段450所代替时,代码存储段中的读写代码段可被从文件系统段110中来的读写代码段代替。同样地,当安装更新的补丁管理器代码段450时,代码段地址表、偏移地址表、符号存取器代码段及补丁库将被代替。在代码存储段中,新读写数据、新代码段地址表、新偏移地址表、新符号存取器代码、作为更新的补丁管理器代码段450的新补丁库及当前代码段的排列可形成更新的可执行系统软件。
当文件系统段110接收更新的符号存取器代码地址时,补丁管理器用更新的符号存取器代码地址代替存储器中第一单元的符号存取器代码地址。如上所述,存储器中的第一单元334通常是在补丁管理器代码段中(参见图3)。
如图3所示,补丁库308还包括压缩器或压缩器符号库342。压缩器342也能被表示为不同和独立的代码段,然而如上所述,将该与系统软件升级相关的功能捆绑进单一的补丁管理器代码段是有用和有效的。通常压缩器342也被称为重设大小代码段,从而新段可与代码存储段112中的当前代码段排列。
目前说明了本发明的结构、下载和压缩方面,下面的讨论将集中于无线通信设备动态指令集执行系统300。系统300包括上面详细讨论的被区分成代码段的可执行系统软件和系统数据。此外,系统300包括用于操作系统数据和系统软件并控制系统软件执行的动态指令集。如图4所示,动态指令集470被编制进第一PMRTI 454。如图3所示,系统还包括用于处理动态指令集的运行时期引擎,被表示为运行时期库370。与如上所述的压缩器库342和补丁库336一样,运行时期库370通常位于补丁管理器代码段308中。然而,可选择地,运行时期库370可位于另一个代码段中,例如第一代码段304中。
动态指令集是单一指令集或含有条件操作代码并且通常包括数据项的多重指令集。运行时期引擎可读取操作代码并决定需要进行何种操作。操作代码可以是有条件的、数学的、程序上的或逻辑的代码。运行时期引擎或运行时期库370可处理动态指令集以执行诸如数学或逻辑操作。即运行时期引擎可读取动态指令集470并根据操作代码进行一系列操作。尽管动态指令集不限于任何特别的语言,但由于无线设备存储器空间受到限制并且执行速度是重要的,所以操作代码通常是机器代码的形式。操作代码被认为是有条件的是由于它可分析数据项并根据分析结果做出决定。运行时期引擎也可决定在数据被分析之前对其进行操作。
例如操作代码可指定将从无线设备存储器来的数据项与预定值做比较。如果数据项小于预定值,那么不用处理它,如果数据项大于预定值,那么就用预定值代替它。可选择地,在进行上述的比较操作前,操作代码可将第二预定值加到从无线设备存储器来的数据项上。
如上所述,文件系统段非易失性存储器110可通过接口如无线链路150接收动态指令集。如图1所示,接口也可以是射频(RF)硬线160。然后在没有系统软件被操作的情况下,如在工厂校准环境中,PMRTI可被FSS 110接收。PMRTI也可通过逻辑端口接口162或可安装的存储器模块164来接收。存储器模块164可在初始校准时安装在无线设备104中,或现场安装,或在工厂在校准时安装。尽管没有特别说明,但PMRTI可通过红外接口或蓝牙(Bluetooth)接口来接收。
图8是对由运行时期引擎370所存取的指令的说明。表明了第一条指令800、第二条指令802和第j条指令804,然而动态指令集不限于任何特定数量的指令。在每条指令中的操作代码的长度是固定的。运行时期引擎370可捕获按字节或位来计量的指令的长度,以检测指令是否包括数据项。减去操作代码后,指令的剩余长度中包括数据项。运行时期引擎可从指令中提取数据项。如图所示,测量第一指令800的长度806并提取808。应注意并不是所有的指令都必须包括将被提取的数据项。运行时期引擎370使用提取的数据808根据指令800中的操作代码810进行一系列操作。
图9是图8中的第一指令800的更详细说明。使用第一指令800为例子,指令包括操作代码810和数据808。指令,具体地是指数据项段808,包括符号标识符,其作为对无线设备代码段中的符号的连接。如上所详细说明的,符号标识符和代码段地址表326(参见图5)和符号偏移地址表328(参见图7)一起使用以定位相应于符号标识符的符号。如图所示,在第一指令800中符号标识符表示为“X_1”。符号偏移地址表328可定位标识符为“CS_1”的代码段中偏移量为“3”的相应符号。代码段地址表326可给出代码段1(302)的起始地址。以这种方式找到符号“X”(参见图6)。
在运行时期引擎使用代码段地址表和符号偏移地址表定位相应于所接收的符号标识符后,当定位的符号是数据项时它可提取数据。例如,如果符号库1(310)中的符号“X”是数据项时,运行时期引擎就可提取它。可选择地,符号“X”可以是操作代码,并且当其被定位时,运行时期引擎可执行符号“X”。
PMRTI也可被用于更新系统数据或系统数据项。在本发明的某些方面中,参见图4,系统数据存储在文件系统段110的代码段中,例如在代码段472中。运行时期引擎可存取来自于代码段472中的系统数据并分析系统数据。如上所述,运行时期引擎可处理动态指令集中的操作代码以对数据项执行数学上或逻辑上的操作。此操作后,运行时期引擎可处理指令以产生更新的系统数据。应注意到在某些情况下更新的系统数据可包括未改变的数据项。在第二代码段472中的系统数据可被更新的系统数据代替以响应操作代码。因而,通过运行时期引擎处理指令,可使用代码段472中的更新的系统数据控制系统软件的执行。以这种方式,系统软件中的特定目标符号可被更新,而不用代替全部的代码段。通过相同的处理,可以代替代码存储段112的代码段中的系统数据。例如系统数据可存储在第三代码段344中,运行时期引擎可用更新的系统数据代替第三代码段中的系统数据以响应操作代码。
在易失性存储器114中,PMRTI也可被用于更新的数据项。例如参见图1,易失性存储器114可接收读写数据330。读写数据可从代码存储段112和/或FSS 110中的一个或多个代码段得来。运行时期引擎可存取读写数据、分析读写数据330、产生更新的读写数据并用更新的读写数据代替易失性存储器114中的读写数据330以响应操作代码。然后使用易失性存储器114中的更新的读写数据来控制系统软件的执行。
在本发明的某些方面中,运行时期引擎可监测系统软件的执行。广泛定义的性能监测包括大量的无线设备活动。例如,可收集诸如信道参数、信道特性、系统栈、出错条件等数据或通过连续操作可导致特定失效条件或性能下降的RAM中数据项的记录。也可能使用动态指令集分析收集到的性能数据、提供更新的数据变量并再次捕获数据来研究针对问题的可能解决方案。使用PMRTI处理也可提供临时性的修正。
更具体而言,运行时期引擎可收集性能数据并将性能数据存储在文件系统段中以响应操作代码。然后,通过收集用来评估系统软件性能数据控制系统软件执行。评估可作为分析的一种形式由动态指令集操作代码进行,或在无线设备外部进行。在本发明的某些方面中,运行时期引擎可存取从文件系统段收集的性能数据并通过无线链路接口传输性能数据以响应操作代码。从现场的无线设备中收集的性能数据允许制造商全面地分析(在本地或者全球发生的)问题,而不用将设备回收。
在本发明的某些方面中,文件系统段110可接收包括新代码段的补丁管理器运行时期指令。例如图4中所示的新代码段474。可选择地,新代码段可以是与PMRTI无关的,如新代码段n(450)。例如,新代码段n(450)可在早期的无线链路通信中被接收或在工厂校准期间被安装。运行时期引擎可将代码段474(450)加到代码存储段中以响应操作代码。在本发明的某些方面中,新代码段代码存储段112中的未用块中。可选择地,压缩操作是需要的。然后,使用新代码段474(450)控制系统软件的执行。在本发明的其它方面中,PMRTI 454包括更新的代码段474。可选择地,新代码段450是与PMRTI无关的更新的代码段。运行时期引擎可用更新的代码段474(450)代替代码存储段中的代码段,例如代码段2(304)以响应操作代码。使用更新的代码段474(450)控制系统软件的执行。在本发明的某些方面中,需要压缩操作以容纳更新的代码段。可选择地,更新的代码段被加到代码存储段的未用段或空白段中。
如上所述,由于这些操作包括新的和/或变化的代码段起始地址,因而新代码段的加入或代码段的更新通常需要产生新代码段地址表。此外,压缩操作也需要新代码段地址表。压缩操作也可以是操作如上所述的压缩器342结果,或者是可提供怎样压缩的细节的PMRTI指令的结果。当PMRTI包括下载和压缩指令时,PMRTI通常也包括在下载和压缩操作完成后有效的新代码段地址表。
图10a和图10b是本发明的在无线通信设备中执行动态指令集的方法的流程图。尽管为清楚起见以连续编号的步骤描述,但是除非明确说明,不应从编号(下面列出本方法的编号)中得出先后顺序。本方法从步骤1000开始。步骤1001a使系统软件排列成符号库,每个符号库包括具有相关功能的符号。步骤1001b将符号库排列进代码段。步骤1002执行系统软件。步骤1003接收动态指令集。在步骤1003中接收动态指令集包括通过用选自无线链路、射频(RF)硬线、可安装的存储器模块和红外接口及逻辑端口接口的接口来接收动态指令集。在本发明的某些方面中,在步骤1003中接收动态指令集包括接收在文件系统段非易失性存储器中的补丁管理器运行时期指令(PMRTI)。
步骤1004启动运行时期引擎。通常启动运行时期引擎包括从第一代码段中调用运行时期库。可以从易失性或非易失性存储器中启动运行时期引擎。步骤1006处理动态指令集。处理动态指令集包括处理指令以响应数学和逻辑操作。在本发明的某些方面中,在处理动态指令集之后,步骤1007(图中未示出)删除动态指令集。步骤1008操作系统数据和系统软件。步骤1010控制系统软件的执行以响应数学和逻辑操作。
在步骤1003中接收补丁管理器运行时期指令通常包括接收条件操作代码和数据项。然后,在步骤1006中处理动态指令集包括子步骤。步骤1006a1使用运行时期引擎读取补丁管理器运行时期指令操作代码。步骤1006b进行连续操作以响应操作代码。
在某些方面,在步骤1001b中将符号库排列进代码段包括在代码段的起始位置开始符号库,并从各自代码段起始地址排列被偏移的符号。本方法还包括如下步骤。步骤1001c在相应的起始地址存储代码段的起始。步骤1001d通过相应的起始地址交叉引用代码段标识符来维护代码段地址表(CSAT)。步骤1001e通过相应的偏移地址及相应的代码段标识符交叉引用符号标识符来维护符号偏移地址表(SOAT)。
在本发明的某些方面中,在步骤1003中接收补丁管理器运行时期指令包括接收符号标识符。本方法还包括如下步骤。步骤1006a2通过使用代码段地址表和偏移地址表定位与接收的符号标识符相应的符号。在步骤1006b中根据操作代码进行的一系列操作包括子步骤。当定位的符号是数据项时,步骤1006b1提取数据。当定位的符号是指令时,步骤1006b2执行符号。
在本发明的某些方面中,在步骤1006b1中处理动态指令集包括其它子步骤。步骤1006b1a利用运行时期引擎捕获补丁管理器运行时期指令的长度。步骤1006b1b从补丁管理器运行时期指令中提取数据项以响应操作代码。步骤1006b1c使用提取的数据进行连续操作以响应操作代码。
图11是动态指令集操作的一个示例的流程图。图11中的几个步骤和图10中的相同,为了简捷这里就不再重复。在步骤1106中处理动态指令集包括子步骤。步骤1106a存取存储在文件系统段中第二代码段中的系统数据。步骤1106b分析该系统数据。步骤1106c创建更新的系统数据。在步骤1108中操作系统数据和系统软件包括用更新的系统数据代替第二段中的系统数据,在步骤1010中控制系统软件的执行包括在系统软件的执行中使用更新的系统数据。
图12是动态指令集操作的另一示例的流程图。图12中的几个步骤和图10中的相同,为了简洁这里就不再重复。步骤1201c在代码存储段非易失性存储器存储多个代码段。在步骤1206中处理动态指令集包括子步骤。步骤1206a存取存储在代码存储段(CSS)中第三代码段中的系统数据。步骤1206b分析该系统数据。步骤1206c创建更新的系统数据。在步骤1208中操作系统数据和系统软件包括用更新的系统数据代替第三代码段中的系统数据。在步骤1210中控制系统软件的执行包括在系统软件的执行中使用更新的系统数据。
图13是动态指令集操作的第三示例的流程图。图13中的几个步骤和图10中的相同,为了简洁这里就不再重复。步骤1301c在代码存储段非易失性存储器存储多个代码段。步骤1301d将读写数据装入易失性存储器。在步骤1306中处理动态指令集包括子步骤。步骤1306a访问易失性存储器中的读写数据。步骤1306b分析该读写数据。步骤1306c创建更新的读写数据。在步骤1308中操作系统数据和系统软件包括用更新的读写数据代替易失性存储器中的读写数据。控制系统软件的执行包括在系统软件的执行中使用更新的读写数据。
图14是动态指令集操作的第四示例的流程图。图14中的几个步骤和图10中的相同,为了简洁这里就不再重复。处理动态指令集包括子步骤。步骤1406a监测系统软件的执行以响应操作代码。步骤1406b收集性能数据。步骤1406c存储该性能数据。步骤1406d通过无线链路接口传输存储的数据。在步骤1408中操作系统数据和系统软件包括在系统软件的评估中使用此性能数据。
图15是动态指令集操作的第五示例的流程图。图15中的几个步骤和图10中的相同,为了简捷这里就不再重复。步骤1501c在代码存储段非易失性存储器中存储多个代码段。在步骤1503中接收补丁管理器运行时期指令包括接收新代码段。在步骤1508中对系统数据和系统软件操作包括将新代码段加入到代码存储段中,在步骤1510中控制系统软件的执行包括在系统软件的执行中使用新代码段。
可选择地,在步骤1503中接收新代码段包括接收更新的代码段。在步骤1508中操作系统数据和系统软件包括用更新的代码段代替代码存储段中的第四代码段。
已经提供了用于在无线通信设备中执行动态指令集的系统和方法,从而在更新软件并监测软件性能的过程中提供帮助。由于代码段中符号库的排列,以及用表来访问存储器中代码段的起始地址和符号库中符号的偏移地址,所以此系统非常容易更新。动态指令集的使用可按设备的特殊性质对每种设备进行常规修改。已经举出了几个常用实施例用以阐明动态指令集的可能应用。然而,本发明不仅限于这些实施例。本领域所属技术人员可以想到本发明的其它变化和实施方案。
图16是无线通信网络的一个示例的高层网络图。表明的无线通信网络包含多个通过网络40与PMRTI服务器30可通信连接的无线通信设备10、12和14。
无线通信设备10、12和14可以是在无线通信网络中具有通信能力的任何电子装置。例如,无线通信设备10可以是手机、个人数字助理机(“PDA”)、膝上型计算机、腕式手表或者被配置成无线通信设备的其他设备。本文中无线通信设备也被称为“手机”、“移动设备”或“无线设备”。
网络40优选地是由无线营运商操作的专用网络。网络40作为手机之间的无线通信基础设施是有优势的,其包含基站(图中未示出)和基站控制器(图中未示出)。网络40用于管理无线通信,包含基站之间的手机协议,以使手机在无线网络的各单元之间移动。此外,网络40优选地可在各种应用服务器和诸如PMRTI服务器30的其他基于计算机的服务器之间提供通信链路。
网络40也可以用作连接其他网络(图中未示出)的通道,例如综合服务数字网(“ISDN”)、公用交换电话网(“PSTN”)、公用陆地移动通信网(“PLMN”)、分组交换公共数据网(“PSPDN”)和互联网,这里仅列举一部分。
PMRTI服务器30能够被单独的计算机或多个在逻辑上安排的服务器实施,用于向移动设备提供动态指令集和执行从移动设备接收到的动态指令集。PMRTI服务器30可以具有单个处理器或者多个处理器。稍后结合图9说明可用作PMRTI服务器30的通用目的计算机。PMRTI服务器30也可被称为通信服务器。
图17A是无线通信设备10的一个示例的方框图。因为无线通信设备10的表现其功能的通用特征为本领域所属技术人员所熟知,所以这里不再进行说明。
无线通信设备10包含运行时期引擎50、远程操作代码(“操作码”)库60、服务器操作码库70和远程运行时期指令代码段80。运行时期引擎50优选地用于处理动态指令集。动态指令集的一个例子是PMRTI指令集。动态指令集的另一个例子是RPMRTI指令集。这两个指令集的区别是PMRTI集包含可由无线装置执行的功能,而RPMRTI指令集包含可由位于网络40中的PMRTI服务器30执行的功能。
对动态指令集的处理包含执行从PMRTI服务器30接收的PMRTI集,编译RPMRTI集和相应的数据从而传输给PMRTI服务器30。优选地,运行时期引擎50在需要时可由无线通信设备10启动,从而使其仅在需要时运行,这样可以消耗最少量的设备10的系统资源(例如存储器、CPU周期等)。
远程操作码库60优选地包含代表每个PMRTI操作或者可执行代码段的全部操作代码。有利的是,远程操作码库60包含作为针对实际可执行的机器代码功能的位置保持器(place holder)的操作代码或者代码段。同样,远程操作码库60包含所有可用操作代码的列表,这些操作代码与可由无线通信设备10执行的每个PMRTI功能相对应。
相似地,服务器操作码库70优选包含代表每个PMRTI操作的通用操作代码或者可执行代码段。有利的是,服务器操作码库70仅包含实际可执行机器代码功能的操作代码或者代码段,并且它们不驻留在无线通信设备10上。同样,服务器操作码库70包含针对每个有效的RPMRTI功能的所有操作代码,RPMRTI功能可由PMRTI服务器30代表无线通信设备10来执行。
在优选的实施方案中,因为PMRTI服务器30通常不受基于诸如手机和PDA等移动设备的最小资源的影响,所以有效的RPMRTI操作数量可完全超过有效的PMRTI操作数量。
另外,无线通信设备10包含远程运行时期指令代码段80。代码段80是指驻留在设备10的非易失性存储器中的实际机器代码或者可执行指令。这些可执行指令或者代码段优选以一对一的关系与远程操作码库60中的操作码相应。图17B是表明示例性的代码段80的方框图。如图所示,从指令01到指令n的任意数量的PMRTI操作都可以包含在代码段80中。最佳的是,在代码段80中大量的操作是可用的,并且仍消耗装置10的较少资源(例如永久性存储器)。
有利的是,在装置10的制造中和在投入市场之前(例如在销售给消费者之前),服务器操作码库70、远程操作码库60和相应的代码段80可被安装在无线通信设备10的永久性存储器中。通过实施稍后结合图22所述的过程,PMRTI服务器30可以对任何一个库中的操作码集或者代码段80中的可执行指令集进行未来更新。
最后,在此示例性的实施方案中,无线通信设备包含无线通信链路90。通信链路90的应用在本领域中是公知的,其可使无线通信设备10具有通过无线电或者其他无线连接在无线通信网络内通信的能力。有利的是,无线通信链路90提供了PMRTI服务器30更新远程操作码库60、服务器操作码库70和远程运行时期指令代码段80的方法。
图18A是PMRTI服务器30的一个示例的方框图。稍后将结合图24说明实现PMRTI服务器的通用目的计算机的特征。
在示例性的实施方案中,PMRTI服务器30包含控制模块95、远程操作码库60、服务器操作码库70和服务器运行时期指令代码段82。远程操作码库60和服务器操作码库70优选地包含与无线通信设备10中的库相同的操作码列。控制模块95优选用于处理动态指令集并且管理PMRTI通信网络,PMRTI通信是指通过无线通信网络在PMRTI服务器30和多个可用的无线通信设备之间的通信。
例如,控制模块95可以编译多种动态PMRTI集,并将这些指令集发送到多个分离的无线通信设备中。相似地,控制模块95也可以接收多个动态RPMRTI集并代表发送的无线通信设备执行这些指令集。
远程操作码库60优选地包含与每个可用的PMRTI操作或者可执行代码段相对应的通用操作代码。有利的是,远程操作码库60包含操作代码列表,该操作代码列表作为在远程运行时期指令代码段80(在无线通信设备中)中的实际可执行机器代码操作或者代码段的位置保持器。同样,远程操作码库60包含针对所有可用的PMRTI操作的所有可用操作码的列表,PMRTI操作可由无线通信设备执行。
相似地,服务器操作码库70优选地包含与每个RPMRTI操作或者可执行代码段相对应的通用操作代码。有利的是,服务器操作码库70仅包含可由PMRTI服务器30执行的实际可执行机器代码功能的操作代码或者代码段。在优选实施方案中,因为PMRTI服务器30不会面临通常基于诸如手机和PDA等移动设备的最小的资源问题,所以可用的RPMRTI操作数量可完全超过有效的PMRTI操作数量。
另外,PMRTI服务器30包含服务器运行时期指令代码段82。代码段82是指驻留在服务器30的永久存储器中的实际机器代码或者可执行指令。这些可执行指令或者代码段优选以一对一的关系与服务器操作码库70中的操作代码相应,服务器操作码库70驻留在服务器30和无线通信设备10中。图18B是服务器运行时期命令代码段的一个示例的方框图。
图19是手机之间对等通信的一个示例的流程图。在所示实施方案中,在手机10和手机12之间进行对等通信。然而可选择地,对等通信可以在单个手机和多个手机之间以一对多的关系或者多对一的关系进行。在所有的情况下,PMRTI服务器30在通信过程中起中介功能,代表手机操作和处理操作码和数据有效载荷。
在手机10和手机12之间的示例性通信可以是从手机10发出信息将新的电话簿条目加入到手机12的电话簿中。这种示例性通信可以由手机10编译服务器操作码集和相对应的数据有效载荷开始。在此实施例中,服务器操作码集包含用于将数据发送到手机12的操作码。相对应的数据有效载荷包含用于手机12的特有的标识符(例如电话号码)和将要发送到手机12中的电话簿条目。在其他实施例中,发送的数据可以是诸如图片、电子邮件、文本文件等的数据文件、GPS或者其他类型的定位、或者任何其他所需要的数据。
一旦PMRTI服务器30接收服务器操作码集和相对应的数据有效载荷,那么其就提取数据有效载荷并且优选地将其保存到临时存储器中。接下来将操作码翻译成可执行指令并且执行该指令。在这种情况下,操作码与将要发送数据到手机12中的指令相对应,该数据置于数据有效载荷中并且包含新的电话簿条目。然后PMRTI服务器30编译将要发送到手机12中的远程操作码集和相对应的数据有效载荷。
在此实施例中,远程操作码集包含用于加入新的电话簿条目的操作码,数据有效载荷包含将被加入的电话簿条目。当手机12接收远程操作码集和数据有效载荷时,其提取数据有效载荷并且优选地将其保存在临时存储器中。接下来手机12将操作码翻译成可执行指令并且执行该指令。在此实施例中,操作码与将新条目加入到电话簿中的指令相对应,该新条目置于在临时存储器中的数据有效载荷中。然后手机12通过执行该指令将新条目加入到电话簿中,从而在手机10和手机12之间完成对等数据通信。
图20是在无线通信设备上执行动态指令集的示意性过程的流程图。首先,在步骤500中无线设备接收一组远程操作码。这组远程操作码可以通过无线通信链路被接收,例如通过具有无线通信网络的链路被接收。优选地,该操作码被最优化以将无线发送的数据量最小化。另外,无线设备接收的操作码包含数据有效载荷。
在步骤5-2中,无线设备启动其运行时期引擎从而处理远程操作码集。如步骤504所示,运行时期引擎解析该远程操作码集,然后在步骤506中提取数据有效载荷。如果不存在数据有效载荷,那么跳过该步骤。如果确实存在数据有效载荷,那么可以将结果数据存储在易失性存储器的可用部分中以稍后使用。接下来,如步骤508所示,运行时期引擎获得与远程操作码集中的操作码相对应的可执行指令。这些指令可以从无线设备的远程运行时期指令代码段中获得。
一旦获得了与远程操作码集中的操作码相对应的可执行指令,则如步骤510所示运行时期引擎就执行该指令。当执行该指令时,任何操作所必须的数据都可以从存储有数据有效载荷的易失性存储器中获得。可选择地或者可附加地,任何操作所必须的数据都可作为已执行指令的结果被获得。
例如,数据有效载荷可以包含用于无线设备的可爱的软件游戏模块。另外,远程操作码集中的一个操作码可以与可执行指令相对应,用于在无线设备上安装新软件游戏模块。因此,在无线设备中操作该远程操作码集和数据有效载荷,从而可安装由对等无线设备发送的新软件游戏模块。
手机之间数据通信的其他实施例包含更新或加入新的电话簿条目、发送数据文件(例如图片、电子邮件、文件等)、安装客户铃声、提供或者请求GPS或者定位信息、甚至是运动队预测设计。
一旦指令集被运行时期引擎完全执行,则如步骤512所示可以终止运行时期引擎。有利的是,运行时期引擎可以被启动和终止,因此其可以仅在需要时运行。这样可节省无线设备的系统资源,例如,其可以节省易失性存储器空间和CPU周期。
图21是在无线通信设备上编译动态指令集的过程的一个示例的流程图。首先,如步骤520所示启动运行时期引擎。一旦运行时期引擎运行,则如步骤522所示,该引擎可以编译一组服务器操作码。这组服务器操作码可以从在无线设备中运行的后台程序中获得。可选择地,该服务器操作码集可以在使用者的操作下从无线设备中运行的程序中获得。
例如,该无线设备可以包含一组例行程序,其可被操作系统定期并且自动地运行,从而执行系统维护或者其他所需要的功能。作为执行的结果,这些程序可使运行时期引擎产生服务器操作码集。可选择地,用户可以启动一组只有在客户要求时才被执行的特殊例行程序。这组例行程序也可以使运行时期引擎产生服务器操作码集。在这两种情况下,如步骤522所示,结果是运行时期引擎产生了服务器操作码集。
一旦产生了服务器操作码集,则在步骤524中运行时期引擎确定数据有效载荷是否伴随该服务器操作码集。如果存在需要与服务器代码集相伴的数据,则在步骤526中运行时期引擎从永久性或者易失性存储器中取得该数据或者执行返回需要的数据的指令。一旦数据被获得,则如步骤528所示,接下来运行时期引擎将该数据插入到服务器操作码集中。实现这一点的简单方法是将该数据有效载荷以单个数据分组的形式附加到服务器操作码集中。
一旦该数据有效载荷与服务器操作码集结合,或者如果没有数据有效载荷被需求时,则如步骤530所示运行时期引擎将该服务器操作码集(带有或者不带有数据有效载荷)发送到服务器中。在发送服务器操作码集之后,如步骤532所示可以终止运行时期引擎从而释放无线设备的资源。
图22是在PMRTI服务器上执行动态指令集的过程的一个示例的流程图。首先,在步骤540中,服务器接收服务器操作码集。操作码集优选地是可代表一系列可执行指令的名字的列表,并且每个操作码代表分散的可执行指令或者一组分散的可执行指令。一旦接收到这组服务器操作码,则在步骤542中服务器解析服务器操作码集并且如步骤544所示提取包含在服务器操作码集内的数据有效载荷。当数据有效载荷被提取时,其可被临时存储到服务器的易失性存储器中以稍后使用。
接下来,如步骤546所示,服务器获得相对应的指令集。优选地,该相对应的指令集存储到服务器运行时期指令代码段中,该代码段驻留在PMRTI服务器的永久存储器中。一旦获得该指令集,那么如步骤548所示服务器执行该指令集。当该指令集被执行时,执行的例行程序程序可以利用与服务器操作码集一起来的数据有效载荷。为实现该目的,优选地该数据有效载荷存储到服务器的存储器中。可选择地,执行的例行程序可以包含产生所必需的数据的指令,以实现指令集功能。
图23是将电话簿条目(即数据信息)发送到对等手机中的示例性过程的流程图。首先,在步骤580中,手机从手机的存储器中获得电话簿条目。该电话簿条目可以被手机压缩是有利的,从而减小数据有效载荷的大小。接下来,在步骤582中,手机获得用于对等手机的独特标识符。在大多数情况下,手机的电话号码可用作该独特标识符。这种信息可以从电话簿获得或者通过用户输入获得。
一旦获得包含该电话簿条目和该独特标识符的数据有效载荷,则如步骤584所示手机编译服务器操作码集和相对应的数据有效载荷。优选地,存在可指示服务器发送数据信息到对等手机中的服务器操作码。在此实施例中,数据信息就是电话簿条目。一旦该服务器操作码集和相对应的数据有效载荷被结合,则在步骤586中手机将它们发送到PMRTI服务器中进行处理,并最终分发到对等手机中。
返回到图22,当在步骤540中PMRTI服务器接收服务器操作码集和相对应的数据有效载荷,其在步骤542中解析服务器操作码集,并在步骤544中提取数据有效载荷。该数据有效载荷可以被存储到PMRTI服务器的临时本地存储器中是有利的。接下来,在步骤546中该服务器将该操作码翻译成相对应的可执行指令集,并如步骤548所示执行那些指令。在此实施例中,这组指令使服务器编译远程操作码集并且将其与相对应的数据有效载荷结合,在这种情况下数据有效载荷是电话簿条录。然后,服务器将远程操作码集和数据有效载荷发送到由独特标识符识别出的对等手机中。
返回到图20,当在步骤500中对等手机接收到远程操作码集和相对应的数据有效载荷时,在步骤502中该手机启动运行时期引擎。然后在步骤504中该运行时期引擎解析该远程操作码集,并且在步骤506中提取包含电话簿条目的数据有效载荷。优选地,该数据有效载荷可以存储在临时存储器单元中。然后在步骤508中运行时期引擎将远程操作码集翻译成相对应的可执行指令集,然后如步骤510所示执行这组指令。在此实施例中,这组指令使手机将包含在数据有效载荷中的电话簿条目加入到手机本身的电话簿中。一旦执行了该指令集,则如步骤512所示手机就可以终止该运行时期引擎。
手机具有可创立服务器操作码集和相对应的数据有效载荷、并将它们发送到PMRTI服务器30中进行处理、再传送到对等(peer)手机中的能力,其它的应用包括向对等手机提供定位更新程序(例如GPS信息)、将声音留言发送到对等手机、向其他人发送包含移动图片、图像、文本和声音的文件。从一般意义来讲,发送文件到对等手机包括极为广泛的所需要的应用,例如将定制的铃声发送给朋友或者家庭成员、发送无线设备获取的照片或者数字图像、发送电子邮件、文件、软件应用程序或者可以与其他人或者对等手机共享的任何其他数据。
图24是可用于与本文所述的各种实施例结合的计算机系统550的一个示例的方框图。例如,该计算机系统550可以用作驻留在无线通信网络中的PMRTI服务器。计算机系统550也可以用作多种其他通用或者特殊目的的计算机系统,这种系统包含无线通信网络及系统组成部件。然而,也可以使用其他计算机系统和计算机结构,这一点对于本领域所属技术人员是众所周知的。
计算机系统550优选地包含一个或者多个处理器,例如处理器552。也可以设有附加处理器,例如管理输入和输出的辅助处理器、实现浮点数学运算的辅助处理器、具有适用于快速执行信号处理算法构造的特殊目的微处理器(例如数字信号处理器)、从属于主处理系统(例如后端处理器)的从属处理器程序、用于双处理器系统或者多处理器系统的附加微处理器或者控制器、或者协处理器。这些辅助处理器可以是分离的处理器或者可以与处理器552结为一体。
处理器552优选与通信总线554连接。通信总线554可以包含用于促进信息在计算机系统550的存储器和其他外设部件之间传输的数据信道。该通信总线554还可以提供一组用于与处理器552通信的信号,其包含数据总线、地址总线和控制总线(图中未示出)。该通信总线554可以包含任何标准的或者非标准的总线结构,例如,适合工业标准结构(“ISA”)、扩充型工业标准结构(“EISA”)、微通道结构(“MCA”)、外设部件互连(“PCI”)局部总线、或者是由电气和电子工程师协会(“IEEE”)公布的包含IEEE488通用接口总线(“GPIB”)、IEEE696/S-100等标准的总线结构。
计算机系统550优选地包含主存储器556,也可以包含次级存储器558。主存储器556可为在处理器552上执行的程序提供指令和数据存储。主存储器556通常是基于半导体的存储器,例如动态随机存取存储器(“DRAM”)和/或者静态随机存取存储器(“SRAM”)。其他基于半导体存储器类型包含,例如同步动态随机存取存储器(“SDRAM”)、内存总线式动态随机存取存储器(“RDRAM”)、铁电随机存取存储器(“FRAM”)等,还包含只读存储器(“ROM”)。
146次级存储器558可选择地可包含硬盘驱动器560和/或可移动的存储驱动器562,例如软盘驱动器、磁带驱动器、光盘(“CD”)驱动器、数字多用光盘(“DVD”)驱动器等。可移动存储驱动器562以一种公知的方式从可移动存储介质564读取或写入数据。可移动存储介质564例如可以是软盘、磁带、CD、DVD等。
可移动存储介质564优选是其上存储有计算机可执行代码(即软件)和/或数据的计算机可读介质。存储在可移动存储介质564上的计算机软件或者数据作为电通信信号578被读入计算机系统550中。
在可选择的实施方案中,次级存储器558可以包含用于使计算机程序或者其他数据或者指令装入到计算机系统550中的其他相似装置。这种装置例如可以包含外部存储介质572和接口570。外部存储介质572的例子可以包含外部硬盘驱动器或者外部光驱或者外部磁光驱动器。
次级存储器558的其他例子包含基于半导体的存储器,例如可编程只读存储器(“PROM”)、可擦可编程只读存储器(“EPROM”)、电可擦除只读存储器(“EEPROM”)或者闪存(类似EEPROM的面向块的存储器)。还可包含任何其他的可移动存储器单元572和接口570,它们都允许软件和数据从可移动存储单元572传输到计算机系统550。
计算机系统550还可以包含通信接口574。该通信接口574允许软件和数据在计算机系统550和外部设备(如打印机)、网络或者信息源之间传输。例如,计算机软件或者可执行代码可以通过信息接口574从网络服务器传输到计算机系统550中。通信接口574的例子包括调制解调器、网络接口卡(“NIC”)、通信端口、PCMCIA槽和卡、红外线接口、IEEE1394火线,这里仅列举几个。
通信接口574优选地可执行工业公布协议标准,例如以太网IEEE802标准、光纤信道、数字用户线(“DSL”)、异步数字用户线(“ADSL”)、帧中继、异步传输模式(“ATM”)、综合服务数字网(“ISDN”)、个人通信服务(“PCS”)、传输控制协议/互联网协议(“TCP/IP”)、串行线路互联网协议/点对点协议(“SLIP/PPP”)等,但是也可执行自定义或者非标准接口协议。
通过通信接口574传输的软件和数据通常以电通信信号578的形式存在。这些信号578优选通过通信信道576提供给通信端口574。通信信道576可传送信号578,并且可以使用多种通信方式进行,该通信方式包含电线或者电缆、光纤、常规电话线、手机链路、射频(RF)链路或者红外线链路,这里仅列举几个。
计算机可执行代码(即计算机程序或者软件)存储在主存储器556和/或次级存储器558中。计算机程序也可以通过通信接口574接收,并且存储在主存储器556和/或次级存储器558中。这些计算机程序在执行时,可以使计算机系统550完成如前所述的本发明的各种功能。
在本说明书中,术语“计算机可读介质”用于指向计算机系统550提供计算机可执行代码(例如软件和计算机程序)的任何介质。这些介质的例子包含主存储器556、次级存储器558(包含硬盘驱动器560、可移动存储介质564和外部存储介质572)、及与通信接口574通信连接的外设设备(包含网络信息服务器或者其他网络设备)。这些计算机可读介质是用于向计算机系统550提供可执行代码、程序指令和软件的工具。
在使用软件实现的实施方案中,该软件可以存储在计算机可读介质中,并可通过可移动存储驱动器562、接口570或者通信接口574装入到计算机系统550中。在这种实施方案中,软件以电通信信号578的形式装入到计算机系统550中。当该软件被处理器552执行时,优选地软件可使处理器552实现本文前述的发明的特征和功能。
使用硬件,例如使用诸如专用集成电路(“ASIC”)或者现场可编程门阵列(“FPGA”)等元件基本上也可以实现不同的实施方案。可执行本文所述功能的硬件状态机器的使用对于相关领域所属的技术人员是显而易见的。也可以使用软硬件的结合来实现各种实施方案。
虽然本文详细说明和描述的特定系统和方法可全面实现本发明的上述目的,但是应该理解,本文的说明书和附图表明了本发明当前的优选实施方案,因此说明书和附图也表明了本发明所广泛预期的主题内容。还应该理解的是,本发明范围还充分包含对于本领域所属技术人员显而易见的其他实施方案,由此本发明的范围仅被所附的权利要求限定。
权利要求
1.一种用于在第一手机和第二手机之间对等通信的方法,所述第一手机和第二手机通过无线通信网络与通信服务器可通信地连接,所述方法包括从第一手机接收服务器操作码集,所述服务器操作码集包括至少一个服务器操作码和第一数据有效载荷;处理所述的服务器操作码集以创建远程操作码集,所述的远程操作码集包括至少一个远程操作码和第二数据有效载荷;及将所述的远程操作码集发送到第二手机。
2.如权利要求1所述的方法,其中所述的第一数据有效载荷包括用于所述第二手机的独特标识符。
3.如权利要求1所述的方法,其中所述的第一数据有效载荷包括用于所述第二手机的数据信息。
4.如权利要求1所述的方法,其中所述的处理步骤还包括解析所述的服务器操作码集以得到所述至少一个服务器操作码和所述的第一数据有效载荷;将所述的至少一个服务器操作码翻译成一个或多个可执行指令;执行所述的一个或多个可执行指令以创建远程操作码集。
5.如权利要求4所述的方法,其中所述的执行步骤还包括从所述的第一数据有效载荷得到独特标识符;从远程操作码库得到一个或多个远程操作码;得到第二数据有效载荷,所述第二数据有效载荷至少一部分来源于所述的第一数据有效载荷;及将所述的一个或多个远程操作码与所述的第二数据有效载荷组合以创建所述的远程操作码集。
6.一种用于在第一手机和第二手机之间对等通信的方法,所述第一手机和第二手机通过无线通信网络与通信服务器可通信地连接,所述方法包括在第一手机中编译服务器操作码集,所述服务器操作码集包括至少一个服务器操作码和第一数据有效载荷;将所述服务器操作码集发送到通信服务器;处理所述的服务器操作码集以创建远程操作码集,所述的远程操作码集包括至少一个远程操作码和第二数据有效载荷;将所述的远程操作码集发送到第二手机;及在第二手机中处理所述的远程操作码集以接收数据信息。
7.如权利要求6所述的方法,其中所述的编译步骤还包括从服务器操作码库得到一个或多个服务器操作码;得到第一数据有效载荷,所述的第一数据有效载荷包括用于所述第二手机的数据信息和独特标识符;及将所述的一个或多个服务器操作码与所述的第一数据有效载荷组合以创建服务器操作码集。
8.如权利要求6所述的方法,其中所述的处理服务器操作码集还包括解析所述的服务器操作码集以得到所述的至少一个服务器操作码和所述的第一数据有效载荷;将所述的至少一个服务器操作码翻译成一个或多个可执行指令;执行所述的一个或多个可执行指令。
9.如权利要求8所述的方法,其中所述的执行步骤还包括从所述的第一数据有效载荷得到独特标识符;从远程操作码库得到一个或多个远程操作码;得到第二数据有效载荷,所述第二数据有效载荷至少一部分来源于所述的第一数据有效载荷;及将所述的一个或多个远程操作码与所述的第二数据有效载荷组合以创建远程操作码集。
10.如权利要求6所述的方法,其中所述的处理远程操作码集还包括解析所述的远程操作码集以得到所述的至少一个远程操作码和所述的第二数据有效载荷;将所述的至少一个远程操作码翻译成一个或多个可执行指令;执行所述的一个或多个可执行指令以从第二数据有效载荷得到数据信息。
11.一种计算机可读介质,其上存储有用于使一个或多个微处理器执行一列或多列指令以实现在无线通信设备之间实现对等通信的步骤,所述步骤包括在第一手机中编译服务器操作码集,所述服务器操作码集包括至少一个服务器操作码和第一数据有效载荷;将所述服务器操作码集发送到通信服务器;处理所述的服务器操作码集以创建远程操作码集,所述的远程操作码集包括至少一个远程操作码和第二数据有效载荷;将所述的远程操作码集发送到第二手机;及在第二手机中处理所述的远程操作码集以接收数据信息。
12.如权利要求11所述的计算机可读介质,其中所述的编译步骤还包括如下步骤从服务器操作码库得到一个或多个服务器操作码;得到第一数据有效载荷,所述的第一数据有效载荷包括用于所述第二手机的数据信息和独特标识符;及将所述的一个或多个服务器操作码与所述的第一数据有效载荷组合以创建服务器操作码集。
13.如权利要求11所述的计算机可读介质,其中所述的处理服务器操作码集的步骤还包括如下步骤解析所述的服务器操作码集以得到所述的至少一个服务器操作码和所述的第一数据有效载荷;将所述的至少一个服务器操作码翻译成一个或多个可执行指令;执行所述的一个或多个可执行指令。
14.如权利要求13所述的计算机可读介质,其中所述的执行步骤还包括如下步骤从所述的第一数据有效载荷得到独特标识符;从远程操作码库得到一个或多个远程操作码;得到第二数据有效载荷,所述第二数据有效载荷至少一部分来源于所述的第一数据有效载荷;及将所述的一个或多个远程操作码与所述的第二数据有效载荷组合以创建远程操作码集。
15.如权利要求11所述的计算机可读介质,其中所述的处理远程操作码集的步骤还包括如下步骤解析所述的远程操作码集以得到所述的至少一个远程操作码和所述的第二数据有效载荷;将所述的至少一个远程操作码翻译成一个或多个可执行指令;执行所述的一个或多个可执行指令以从第二数据有效载荷得到数据信息。
16.一种用于在无线通信设备之间对等通信的系统,所述系统包括带有服务器操作码库的第一手机,所述的服务器操作码库含有多个服务器操作码和数据存储区;带有远程操作码库的第二手机,所述的远程操作码库含有多个远程操作码;及带有服务器操作码库和远程操作码库的通信服务器,所述的服务器操作码库含有多个服务器操作码,所述的远程操作码库含有多个远程操作码,所述的通信服务器通过无线通信网络与第一手机和第二手机可通信地连接;其中所述的第一手机编译服务器操作码集,所述服务器操作码集包括至少一个服务器操作码和第一数据有效载荷,并将所述的服务器操作码集发送到处理所述服务器操作码集的通信服务器,至少所述数据有效载荷的一部分被编译成远程操作码集并被发送到所述的第二手机,所述的远程操作码集包括至少一个远程操作码和第二数据有效载荷,在所述的第二手机中处理所述的远程操作码集以接收第二数据有效载荷。
17.如权利要求16所述的系统,其中所述的第一数据有效载荷包括用于所述第二手机的独特标识符。
18.如权利要求16所述的系统,其中所述的第一数据有效载荷包括用于所述第二手机的数据通信。
19.如权利要求18所述的系统,其中所述的第二数据有效载荷包括用于所述第二手机的数据通信。
全文摘要
本发明提供一种对等数据通信系统和方法,其允许第一手机和第二手机通过无线通信网络参与数据通信。为实现通信,第一手机创建服务器操作码集并将服务器操作码集和相应的服务器数据有效载荷组合。然后,服务器操作码集和相应的数据有效载荷发送到服务器中,在服务器中提取数据并完成将操作码翻译成可执行指令。该可执行指令使服务器编译远程操作码集和相应的远程数据有效载荷。该远程操作码集和远程数据有效载荷被发送到被第一手机在服务器数据有效载荷中识别的第二手机中。当第二手机接收该远程操作码集和远程数据有效载荷时,第二手机提取远程数据有效载荷并执行与远程操作码集中的操作码相对应的指令。指令的执行使第二手机完成在第一手机和第二手机间的数据通信活动。
文档编号G06F9/445GK1535529SQ02814840
公开日2004年10月6日 申请日期2002年7月25日 优先权日2001年7月26日
发明者高里·拉贾拉姆, 高里 拉贾拉姆 申请人:基奥赛拉无线公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1