用于无线通信设备的模块化的数据组件的制作方法

文档序号:7946960阅读:180来源:国知局
专利名称:用于无线通信设备的模块化的数据组件的制作方法
技术领域
本发明一般涉及无线通信领域,更具体地说,涉及可互换的软件应用程序、硬件驱动程序、通信接口以及无线通信设备中的操作系统组件。
背景技术
传统的无线通信设备一旦被使用(即出售给消费者),通常便会成为孤立的计算平台。为了更新操作系统或任何必需的软件应用程序(例如电话簿),消费者通常需要将无线通信设备(在本文中也称作“无线设备”、“手持装置”以及“移动设备”)带到服务站。
此外,如果消费者想要更换无线通信设备的硬件组件,也必须将无线通信设备带到服务站。通常,如果无线设备没有损坏并且在保修期内,硬件的更换也是非常昂贵的。即使这样,当无线设备在保修期内更换硬件组件时,新的组件仅仅是被更换的组件的可用版本。这样,当消费者购买无线通信设备时,在无线通信设备的寿命内,消费者便与所述无线设备的物理配置锁在一起。
传统无线通信设备的另一个缺点在于,新的外部设备(例如数字照相机)局限于手持装置的制造商所提供的特定外围设备。因此,消费者对升级无线通信设备的外部设备的选择受到严格的限制。因此,需要能够克服传统系统中的上述重要问题的系统和方法。

发明内容
传统的无线通信设备是孤立的计算平台。一旦无线通信设备被使用,在对无线通信设备的软件进行更新时,需要将手持装置带到能够对软件组进行升级、和对手持装置进行重新配置的服务站。当涉及对操作系统或必需的应用程序(例如地址簿)进行更新时,尤其如此。此外,使用在手持装置上的软件组是静态的,不具有灵活性,并且不允许用户定制可以满足他或她的需要的各种应用程序。
无线通信设备的用户为了获得物理设备中包含的技术进步带来的好处,必须购买新的设备。如果具有改进的显示器的新模型是由制造商发布的,那么用户便无法对手持装置进行升级。此外,如果硬件组件出现故障或损坏,那么整个手持装置都需要更换,或者在某些情况下可以将手持装置送回制造商以进行整修。不幸的是,这种整修不允许使用升级的、更新的组件。制造商必须采用相同组件的可用版本来替换同一组件。
第一实施方案提供了用于动态安装模块化的软件应用程序和操作系统组件的系统和方法。当命令手持装置安装新的软件模块时,手持装置向更新模块服务器发送请求,其中所述更新模块服务器用于识别待安装的新应用程序或软件模块。所述更新模块服务器采用安装所述软件模块的指令集和软件模块本身来作出响应。所述手持装置在收到所述响应后安装所述软件模块,并必要地删除所述手持装置上的永久存储器中的应用程序或模块。最后,可以重新配置或重新启动所述手持装置,以完成安装和配置。
第二实施方案提供了用于无线通信设备上的可互换的模块化的硬件组件的系统和方法。当手持装置的组件过时或者存在新的、改进的元件时,新的组件可以与旧的组件交换。当手持装置在更换了硬件组件之后通电时,手持装置会识别出存在新的组件。手持装置在识别出新组件后会询问该组件以获得与该组件的特性有关的信息。手持装置一旦获得了该信息,便会通过无线通信网络向所述更新服务器询问优化的设备驱动程序,所述优化的设备驱动程序将允许手持装置利用所述新组件的改进的功能。此外,手持装置可以向所述更新服务器询问新的软件应用程序,所述新的软件应用程序也可以开发所述新组件的改进的功能。所述更新服务器利用用于安装所述设备驱动程序的指令集和所述设备驱动程序本身来作出响应。所述手持装置一收到所述响应便安装所述设备驱动程序并重新配置或重新启动,以完成安装和配置。
另一实施方案提供了动态更新无线通信设备上的通信接口以方便与外部设备通信的方法。在检测到外部设备的通过直接的物理链路、直接的无线链路或者远程无线链路的连接后,无线通信设备获取与所述外部设备有关的简要信息。如果所述无线通信设备不存在用于所述外部设备的通信接口,那么所述无线通信设备便将所述外部设备的简要信息的一部分发送到远程接口服务器,并请求适当的接口。所述无线通信设备一收到所述接口,便安装所述接口,然后继续建立与所述外部设备的通信。


通过研究下面描述的附图,可以部分地发现关于本发明的结构和操作的细节,附图中相同的标号代表相同的部件。
图1是图解说明示例性的无线通信网络的高层方框图;图2是图解说明无线通信设备上的永久存储区中的数据的示例性表示的方框图;图3A是图解说明用于模块化的软件接口组件的数据存储区的组件的方框图;图3B是图解说明用于模块化的硬件检测器组件的数据存储区的组件的方框图;图3C是图解说明用于模块化的外部设备检测器组件的数据存储区的组件的方框图;图3D是图解说明示例性的操作代码库和相应的运行时间指令集的方框图;图3E是图解说明示例性的运行时间指令集的方框图;图4是图解说明用户启动的软件模块下载的示例性过程的流程图;图5是图解说明用于激活无线通信设备上的常驻软件模块的示例性过程的流程图;图6是图解说明网络启动的软件模块下载的示例性过程的流程图;
图7是图解说明用于在无线通信设备上安装软件模块的示例性过程的流程图;图8是图解说明用于使无线通信设备上的软件模块停止运行的示例性过程的流程图;图9是图解说明为使用无线通信设备上的软件模块而付款的示例性过程的流程图;图10是图解说明可以与本文所描述的各种实施方案一起使用的、示例性无线通信设备的方框图;图11是图解说明可以与本文中描述的各种实施方案一起使用的、示例性计算机系统的方框图;图12是图解说明示例性的无线通信设备和模块化的硬件组件的方框图;图13是图解说明用于获得来自无线通信设备上的新硬件组件的简要信息的示例性过程的流程图;图14是用于向远程服务器请求用于新硬件组件的设备驱动程序的示例性过程的流程图;图15是图解说明在无线通信设备上安装用于新硬件组件的设备驱动程序的示例性过程的流程图;图16是图解说明用于在无线通信设备上配置新硬件组件的示例性过程的流程图;图17A是图解说明无线通信设备与外部设备之间的示例性的直接物理连接的方框图;图17B是图解说明无线通信设备与外部设备之间的示例性的直接的无线连接的方框图;图17C是图解说明无线通信设备与外部设备之间的示例性远程无线连接的方框图;图18是图解说明用于从外部设备获得简要信息的示例性过程的流程图;图19是图解说明用于向远程服务器请求接口软件的示例性过程的流程图;
图20是图解说明用于在无线通信设备上安装接口软件的示例性过程的流程图;以及图21是图解说明用于对外部设备进行初始化的示例性过程的流程图。
具体实施例方式
本文公开了一种用于通过空中链路动态更新无线通信设备上的软件模块和软件应用程序、以及设备驱动程序的系统和方法。例如,本文所公开的方法和系统允许无线通信设备向更新服务器请求新的软件模块或驱动程序模块,并接收无线通信数据包中的这些新模块。所述无线设备在收到所述数据包后便安装所请求的模块,并且在必要时删除其他模块以便为永久存储新模块留出空间。如果需要的话,所述无线设备还可为使用新模块而重新配置无线设备,并可重新启动(重新启动)所述设备。
本文公开的另一实施方案提供了一种用于动态识别外部设备并与之接口的无线通信设备及方法。例如,本文公开的一种方法允许无线设备通过有线或无线通信链路识别外部设备的存在。所述无线通信设备一旦识别了外部设备,便会询问外部设备以获得与该设备有关的简短概况信息(profile information)。然后,所述无线通信设备通过无线通信网络来询问服务器并接收包含接口以实现设备之间的通信的响应。
在阅读了这些描述之后,对于本领域的技术人员来说,如何以各种可选的实施方案和可选的应用程序来实施本发明将是显而易见的了。然而,虽然本文中将描述本发明的各种实施方案,但是应当理解,这些实施方案仅是作为实施例而提出的,而并不局限于此。因此,对于各种可选的实施方案的详细描述不应当被解释为限制所附权利要求所限定的本发明的范围或宽度。
图1是图解说明示例性的无线通信网络10的高层方框图。在示出的实施方案中,无线通信网络10包括多个无线通信设备20和30,无线通信设备20和30通过多个基站40和42与网络50通信耦合。还可向无线通信网络10使用附加的无线通信设备和基站作为其一部分。无线通信网络10还包括与数据存储区70耦合的更新模块服务器60。无线通信设备20和30与更新模块服务器60通过基站40和42以及网络50通信耦合。
无线通信设备20可以是能够在无线通信网络10内通信并执行软件模块和/或具有替换的模块化硬件组件的任意设备。无线通信设备20优选还具有永久存储区。例如,无线通信设备20可以是蜂窝电话、个人数字助理(PDA)、膝上型计算机、手表或者配置用于无线通信的任何其他设备。在本文中,无线通信设备还可以被称作“手持装置”、“移动电话”或“移动设备”。
在示出的实施方案中,外部设备22与手持装置20之间的连接为直接的物理连接24。外部设备还可以通过无线链路与手持装置耦合,例如通过外部设备32与手持装置30之间的直接的无线链路34或远程无线链路36。在一个实施方案中,手持装置20与外部设备22之间的直接的物理连接24可以是硬连线物理连接,例如连续的电缆(serialcable)或有线网络连接。作为一种选择,直接的无线连接34可以采用局域网协议、蓝牙或红外线。外部设备32还可以通过经由基站(例如基站42)链接无线通信设备的远程无线连接36与手持装置30相连。此外,外部设备32还可以通过经由网络(例如互联网或网络50)链接无线通信设备的远程无线连接36与手持装置30相连。
基站40被配置成在空中与多个无线通信设备通信,并且基站40包括用于将空中通信转换成通过网络50传输的有线通信的收发器(未示出)。网络50优选为由提供用于在基站(例如基站40和42)之间进行移交(handoff)的基础设施的无线通信公司操纵的专用网。此外,网络50优选在各种应用程序、服务以及基于其他计算机的服务器(例如更新模块服务器60)之间提供通信链路。
网络50还可以用作连接到其他网络(未示出)的通道,例如综合服务数字网(“ISDN”)、公共开关电话网(“PSTN”)、公众陆地移动电话网(“PLMN”)、分组交换公共数据网(“PSPDN”)以及因特网,在此仅列举几个网络。
更新模块服务器60可以实施为单个计算机或多个服务器,并在逻辑上被设置成能够用来为移动设备提供动态指令集和软硬件模块,以及执行从移动设备接收的动态指令集。在示出的实施方案中,更新模块服务器60与数据存储区70耦合,数据存储区70优选容纳有多个可执行的接口、一组服务器操作代码、手持装置操作代码以及与服务器操作代码对应的可执行指令。稍后参照图11来描述可以实施更新模块服务器60的通用计算机的特征。更新模块服务器60的一项功能是从手持装置20、30接收请求,并对所接收的请求作出响应,以向所述手持装置提供可执行的软件模块、用于交换的手持装置硬件的设备驱动程序或者用于与外部设备通信的可执行接口。
图2是图解说明无线通信设备20上的永久存储区240中的数据的示例性表示的方框图。稍后参照图10描述无线通信设备20和30的允许其发挥作用的一般特征。在示出的实施方案中,操作系统100常驻于永久存储区240中。操作系统100优选包括基本的可执行程序或允许无线通信设备发挥作用的程序。除了操作系统100之外,应用数据110和用户接口120也常驻于永久存储区240中。应用数据110优选包括用户信息、以及应用程序需要发挥作用或应用程序用来提供其服务的应用信息。
用户接口120可以包括可执行的用户接口应用程序和应用程序所使用的用户接口数据。在可选的实施方案中,用户接口应用程序部分可以作为操作系统的一部分,并且用户接口120可以包括辅助的用户数据、自定义的数据或者用户接口应用程序或用户可使用的其他数据。永久存储区240还包括一个或多个设备驱动程序,例如设备驱动程序130、设备驱动程序132、一直到设备驱动程序n。这些设备驱动程序优选为方便所述手持装置与另一设备之间、或核心手持装置与必备的设备(例如,显示器、键盘、扬声器、麦克风或耳机,仅列举几种设备)之间通信的可执行的应用程序。
作为永久存储区240的一部分,附加地示出了一系列的软件应用程序或模块,例如应用程序140、142、144、146...n。如图所示,大量的应用程序可以常驻于永久存储区240的一部分中。对可存储于永久存储区240中的应用程序的数量的唯一限制是存储区240的物理限制。
图3A是图解说明示例性无线通信设备20的数据240的元素的方框图。在示出的实施方案中,数据240具有包含模块化的软件接口200、软件许可管理器205以及运行时间引擎230的多个应用242。其他的数据元素244(可以包含在如图2所示的应用数据110中)包括服务器操作代码(opcode)库210、手持装置操作代码库220以及运行时间指令260。
模块化的软件接口200优选被配置成接收用户请求,以安装新的软件模块和应用程序。此外,模块化的软件接口200优选被配置成接收网络启动软件模块下载和软件应用程序下载。模块化的软件接口200可以包括适于从用户接受用于用户启动下载的指令的用户接口模块。此外,模块化的软件接口200可以包括适于从网络服务器接收用于网络启动下载通信的通信模块。
在一个实施方案中,模块化的软件接口200接收来自用户的指令,以下载特定的软件模块。模块化的软件接口200优选被配置成与运行时间引擎230通信,以生成用于要从网络服务器下载的软件模块的请求。在可选的实施方案中,模块化的软件接口200接收来源于网络服务器的指令。模块化的软件接口200优选被配置成对所述指令进行解析和解释,以确定网络服务器正在请求手持装置下载和安装怎样的软件模块。模块化的软件接口200在确认来自网络的请求后,便与运行时间引擎230通信以实现下载。
此外,模块化的软件接口200可被配置以确定要安装软件模块的永久存储区240中的可用空间。例如,模块化的软件接口200在收到安装新软件模块的请求后,便确定手持装置上可用的磁盘空间(或其他永久存储空间)的量。在一个实施方案中,为了确定可用的存储空间,模块化的软件接口200可以像前面参照图2所讨论的那样,询问手持装置的操作系统100。如果有足够的可用空间,那么模块化的软件接口200便可以如前所述那样与运行时间引擎230通信。
如果没有足够的永久存储空间来安装被请求的软件模块,模块化的软件接口200便询问用户或网络50(根据请求来自何处),以识别永久存储区中可删除的软件模块或其他数据。作为一种选择,模块化的软件接口200可以确定可以删除什么数据,例如,通过询问操作系统或识别较早版本的被请求的软件模块。
此外,模块化的软件接口200优选被配置以命令操作系统100删除永久存储区240中被识别的软件模块或其他数据,以为新的软件模块提供足够的可用空间。如果没有可用的永久存储空间,并且通过删除已经占据永久存储区中的空间的数据或软件模块也不能获得足够的永久存储空间,那么模块化的软件接口200可通知用户或网络没有可用的空间来安装被请求的软件模块。
继续参照图3A,手持装置操作代码库220优选包括代表更新模块服务器(如图1所示)60命令手持装置执行操作的每个函数或可执行代码段的操作代码全域(universe)。有利地,手持装置操作代码库220包括作为用于实际可执行的机器代码函数或代码段的占位符(placeholder)的操作码。因此,手持装置操作代码库220优选包含对应于手持装置20、30可执行的每个函数的所有可用的操作代码的列表。
类似地,服务器操作代码库210优选包括代表每个服务器一侧的函数(server side function)或可执行代码段的操作代码全域。有利地,服务器操作代码库210可以只包含用于实际可执行的机器代码函数或代码段的操作代码,而这些操作代码并不常驻于无线通信设备20中。因此,服务器操作代码库220包含可由更新模块服务器60代表手持装置20和30执行的、用于每个可用的服务器函数的所有操作代码的列表。在优选的实施方案中,可用的服务器函数的数量可以大大超过可用的手持装置函数的数量,因为更新模块服务器60不受移动设备(例如,蜂窝电话和PDA)上通常存在的最小资源的影响运行时间引擎230优选被配置以处理动态指令集。动态指令集的一个实施例是用于安装软件模块的指令集。动态指令集的另一个实施例是用于安装新的硬件组件的设备驱动程序的指令集。动态指令集的处理包括将操作代码翻译成可执行的指令集、以及执行这些指令集。例如,可以连同数据有效载荷一起从更新模块服务器60接收一组手持装置操作代码。然后,将操作代码翻译成用于手持装置的可执行的指令。动态指令集的处理还包括对发送到更新模块服务器60的操作代码和相应的数据有效载荷进行编译。在需要的基础上,运行时间引擎230优选可以由无线通信设备20、30启动,以便运行时间引擎230仅在必要时运行,从而消耗手持装置20、30上的最少量的系统资源(例如,存储器、CPU周期等)。
现在参照图12,图12的方框解说明了示例性的无线通信设备620和模块化的硬件组件。在所示的实施方案中,手持装置620包括多个硬件模块,所述硬件模块包括屏幕680和键盘682。附加的硬件模块通常也包含在例如手持装置620的手持装置中,所述附加的硬件模块例如可以包括射频芯片集。硬件模块是能够在手持装置620内电通信的手持装置的组件。例如外壳的不具备通信能力的惰性(inert)组件不被视为硬件模块。
在示出的实施方案中,显示屏680可与新的显示屏690互换。例如,显示屏680可以限于显示单色,而显示屏690则可以显示彩色。类似地,键盘682可与新的键盘692互换。例如,新的键盘692能够照亮按键,而键盘682则不能。
图3B是图解说明另一示例性无线通信设备20的数据240的元素的方框图。在所示出的实施方案中,数据240具有多个应用程序242,应用程序242包括模块化的硬件探测器202和运行时间引擎230。其他的数据元素(可包含在如图3A所示的应用数据110中)244包括服务器操作代码(opcode)库210、手持装置操作代码库220以及运行时间指令260。
模块化的硬件探测器202优选被配置成确定新的硬件模块已在何时与先前的硬件模块交换。在一个实施方案中,模块化的硬件探测器202在上电后检测新的硬件模块是否存在。作为一种选择,模块化的硬件探测器202可以在通电模式期间操作,以检测手持装置20通电时被“热”交换、或在装置20上电期间被替换的任何新的硬件。模块化的硬件探测器202可以实施为机电组件和软件组件的组合,以执行检测功能,并且优选与运行时间引擎230通信,以通知运行时间引擎最新检测到的硬件模块。
此外,模块化的硬件探测器202可以被配置成确定永久存储区240中用来安装新设备驱动程序的可用空间。例如,模块化的硬件探测器202一检测到新的硬件模块,便确定当前设备驱动程序(例如,图2所示的设备驱动程序N)所使用的存储空间的量和新设备驱动程序所需的存储空间的量。在一个实施方案中,模块化的硬件探测器200可以询问操作系统100以确定当前设备驱动程序所使用的存储空间的量。此外,为了确定新设备驱动程序所需的存储空间的量,模块化的硬件探测器202可以通过运行时间引擎230来询问图1所示的更新服务器60以获得该信息。
如果当前设备驱动程序和新设备驱动程序大小相同,或者如果新设备驱动程序所需的存储空间小于当前设备驱动程序,那么可以在永久存储区中当前设备驱动程序所在的相同位置安装新设备驱动程序。如果新设备驱动程序所需的存储空间大于当前设备驱动程序,那么模块化的硬件探测器202优选可以在永久存储区240中另一部分(由模块化的硬件探测器200新分配用于设备驱动程序存储)安装新设备驱动程序。作为一种选择,模块化的硬件探测器202还可以询问用户,以识别永久存储区中可删除的数据,以便为新设备驱动程序腾出空间。
模块化的硬件探测器202优选被配置成,命令操作系统100在成功安装了新设备驱动程序之后删除当前设备驱动程序。优选地,在新设备驱动程序的安装过程中,在永久或易失性存储区中将当前设备驱动程序备份。
图17A示出了用于图解说明无线通信设备80与外部设备82之间的示例性的直接的物理连接84的方框图。直接的物理连接84可以通过连接外部设备82和手持装置80的标准或私有的电缆而实现。作为一种选择,物理连接84可以通过将手持装置80与外部设备以以下方式耦合实现,即,不采用实际的电缆耦合,从而使最终得到的耦合设备为整体单元。
图17B是图解说明无线通信设备86与外部设备88之间的示例性的直接的无线连接85的方框图。直接的无线连接85可以通过各种无线链路实现,例如蓝牙、红外线或无线通信的802.11和802.15族。
图17C是图解说明无线通信设备90与外部设备98之间的示例性远程无线连接的方框图。所述远程无线连接可以包括外部设备98与基站94之间的链路96、以及手持装置90与基站94之间的链路。也可以包含填隙式的网络(interstitial network)和基站(未示出)。可以采用传统的无线通信协议或例如无线通信的802.11和802.15族的远程无线网络协议来建立所述远程无线连接。
图3C是图解说明示例性的无线通信设备20、30的数据240的组成的方框图。在示出的实施方案中,数据240具有多个应用程序242,而应用程序242包括外部设备探测器204和运行时间引擎230。可以包含在如图2所示的应用数据110中的其他的数据元素244包括服务器操作代码(opcode)库210、手持装置操作代码库220以及运行时间指令260。
外部设备探测器204优选被配置成确定外部设备何时与手持装置20、30进行了物理连接,或者外部设备何时尝试通过无线链路与手持装置20、30进行连接。此外,外部设备探测器204优选能够检测导频信号或其他广播无线信号,以确定外部设备是否在手持装置附近,以便可以实现连接。外部设备探测器204可以实施为用于实现所述检测功能的机电组件和软件组件的组合。
尽管图3A、3B以及3C图解说明了模块化的软件接口200、模块化的硬件探测器202以及外部设备探测器204的单独的实施例,但是应当理解,接口200、硬件探测器202以及外部设备探测器204可以按照任意的组合而常驻于通信设备20的永久存储区240中。
图3D是图解说明示例性的操作代码库和相应的运行时间指令集260的方框图。手持装置操作代码库220和运行时间指令集260优选位于手持装置20、30的数据存储区240中。在一个实施方案中,运行时间指令集260中的可执行指令按照一对一的关系与手持装置操作代码库220中包含的操作代码对应。作为一种选择,手持装置操作代码库220中的单个操作代码可以与运行时间指令集260中的多个可执行指令的序列对应。
图3E是图解说明示例性的运行时间指令集260的方框图。在示出的实施方案中,运行时间指令集260可以包含任何数量的可执行指令,从指令1到指令n。可选地,在运行时间指令集260中存在大量的函数,然而这些函数消耗手持装置20、30非常少的资源(例如永久存储器)。
图4是图解说明用户启动软件模块下载的示例性过程的流程图。最初,在步骤300,手持装置接收来自用户的应用程序请求。所述请求例如可以通过模块化的软件接口200接收。接下来,在步骤302,启动运行时间引擎。运行时间引擎一旦运行,便会根据需要采取的行动来编译一组服务器操作代码,如步骤304所示。在这种情况下,要编译的服务器操作代码集优选用于下载请求的软件应用程序或模块。可以从无线设备上运行的后台处理(background process)获得服务器操作代码集。作为一种选择,可以在用户的指示下,从无线设备上运行的过程中获得服务器操作代码集。经编译的服务器操作代码集优选使服务器如前所述那样应答被请求的软件模块。
例如,所述无线设备从用户接收指令,以下载电话簿应用程序的扩展模块,以便可以保持总数为500的联系,而不是先前的100个联系。用户提供将要下载的新软件模块的名称或标识符。然后,指示模块化软服务器为手持装置提供适当的软件模块从而使所述手持装置增加总联系数的服务器操作代码集被编译。在这种情况下,结果是由所述运行时间引擎生成服务器操作代码集,如步骤304所示。
一旦生成了所述服务器操作代码集,所述运行时间引擎便会在将名称或标识符信息包含在与所述服务器操作代码集一起发送的数据有效载荷中。例如,运行时间引擎可以从永久存储器或易失性存储器中取出应用程序模块数据或软件模块数据,或者例如通过模块化的软件接口200执行用于返回所需数据的指令。一旦获得了所述数据,运行时间引擎230接下来便会将所述数据插入到服务器操作代码集中,如步骤306所示。实现该操作的一种简单的方法是,将数据有效载荷以单个数据包的形式添加到服务器操作代码集中。
一旦将数据有效载荷与服务器操作代码集合并,运行时间引擎便会将具有相应的数据有效载荷的服务器操作代码集发送到服务器,如步骤308所示。运行时间引擎在发送了具有数据有效载荷的服务器操作代码集之后便可以停止,以释放无线设备上的资源,如步骤310所示。
图5是图解说明用于激活无线通信设备上的常驻软件模块的示例性过程的流程图。图5示出的过程可以通过使用操作代码集或通过使用某些其他的无线数据通信手段来实现。最初,在步骤320,所述手持装置向网络许可服务器请求许可。图3A中示出的软件许可管理器205优选启动该步骤。网络许可服务器可与更新模块服务器60为同一服务器,或者可以是与更新模块服务器60不同的单独的服务器。手持装置20、30一旦发送了请求,接下来便会从所述网络许可服务器接收付款请求,如步骤322所示。如步骤324所示,作为响应手持装置向网络许可服务器提供付款细节。
在一个实施方案中,手持装置可以被配置成自动提供付款细节。作为一种选择,手持装置可以被配置成向用户请求该信息,以确保用户愿意为被请求的许可付款。手持装置在发送了付款细节之后,在步骤326接收许可服务器对收到付款细节的确认。在一个实施方案中,该确认可以用作所述付款已被处理的确认。
手持装置一旦收到了所述确认,接下来在步骤328接收来自许可服务器的许可证或激活钥匙。激活钥匙优选被配置成允许在手持装置上使用应用程序。如步骤330所示,一旦收到激活钥匙,便可激活应用程序。
图6是图解说明网络启动软件模块下载的示例性过程的流程图。最初,在步骤336,无线设备接收手持装置操作代码集。可以通过空中通信链路(例如具有无线通信网的链路)来接收手持装置操作代码集。所述操作代码优选被优化成使空中发送的数据量最小。此外,数据有效载荷可以包含在手持装置接收的操作代码集中。在示出的实施方案中,从网络更新模块服务器60接收手持装置操作代码集。
在步骤338,无线设备启动其运行时间引擎来处理手持装置操作代码集。作为一种选择,手持装置可以首先验证发送手持装置操作代码集的网络服务器。如步骤340所示,运行时间引擎对手持装置操作代码集进行解析,然后在步骤342提取出数据有效载荷。如果不存在数据有效载荷,则跳过该步骤,但是,网络更新模块服务器60可以在最初发送中包含可执行的软件应用程序。作为一种选择,手持装置操作代码集可命令手持装置从服务器请求软件模块。如果存在数据有效载荷,则将最终得到的数据存储在易失性存储器的可用部分中,以便以后使用。
接下来,在步骤344,运行时间引擎获得与手持装置操作代码集中的操作代码对应的可执行的指令。这些指令可以从在手持装置的数据存储区的永久存储区中存储的远程运行时间指令集中获得。
一旦获得了与在手持装置操作代码集中的操作代码对应的可执行的指令,运行时间引擎便会执行这些指令,如步骤346所示。在执行上述指令时,可以从存储数据有效载荷的易失性存储器中获得要被操作(或安装)的任何必需数据。可选地或附加地,要被操作的任何必需数据可以作为执行指令的结果而获得。
例如,数据有效载荷可以包含网络请求手持装置安装的软件应用程序。此外,手持装置操作代码集中的一个或多个操作代码优选地与用于将数据有效载荷存储在手持装置的永久存储区器中的一个或多个可执行的指令对应。在该实施例中,包含软件模块的数据有效载荷一旦存储到永久存储器中,手持装置之后便可允许用户使用应用程序,或者作为一种选择,通过远程网络命令来使用应用程序。作为一种选择,数据有效载荷可以替换永久存储器容纳过时软件应用程序、模块或被选择删除以为新软件模块腾出空间的程序的一部分。因此,手持装置操作代码集和数据有效载荷在无线设备上运行,以为手持装置安装新的软件模块。如果需要的话,还可以采用附加的操作代码和指令以在安装新的模块或应用程序后对其进行配置。
一旦全部执行了上述指令集,运行时间引擎便会停止,然后执行应用程序,如步骤348所示。具体示意性的实施例将解释如何使用网络启动下载。如果手持装置处于丢失或被盗的交通工具中,那么可以通过网络来联系并命令手持装置下载GPS模块(假定该手持装置具有能够实现GPS的硬件)。一旦下载并安装了GPS模块,GPS模块便可向网络报告位置信息,而网络则将该位置信息提供到交通工具的所有者或当局(authority),以方便跟踪该交通工具。有利地,所有这一切可以在不让与手持装置相邻的人知道的情况下完成。
图7是图解说明用于在无线通信设备上安装软件模块的示例性过程的流程图。最初,在步骤350,无线设备接收手持装置操作代码集。可以通过空中通信链路(例如具有无线通信网的链路)来接收手持装置操作代码集。操作代码优选被优化成使空中发送的数据量最小。此外,数据有效载荷可以包含在手持装置所接收的操作代码集中。在示出的实施方案中,从网络软件模块服务器接收手持装置操作代码集。
在步骤352,无线设备启动其运行时间引擎来处理手持装置操作代码集。作为一种选择,手持装置可以首先验证发送手持装置操作代码集的网络服务器。如步骤354所示,运行时间引擎对手持装置操作代码集进行解析,然后在步骤356提取出数据有效载荷。如果不存在数据有效载荷,则跳过该步骤,但是,所述网络软件模块服务器可在最初发送中包含可执行的软件应用程序。作为一种选择,手持装置操作代码集可命令手持装置从上述服务器请求软件模块。如果存在数据有效载荷,则将最终得到的数据存储在易失性存储器的可用部分中,以便以后使用。
接下来,在步骤358,运行时间引擎获得与手持装置操作代码集中的操作代码对应的可执行的指令。这些指令可以从在手持装置的数据存储区的永久存储区中存储的远程运行时间指令集中获得。运行时间引擎一旦获得了与手持装置操作代码集中的操作代码对应的可执行的指令,便会执行这些指令,如步骤360所示。在执行所述指令时,可以从存储数据有效载荷的易失性存储器中获得要被操作(或安装)的任何必需数据。可选地或附加地,要被操作的任何必需数据可以作为执行指令的结果。一旦全部执行了指令集,运行时间引擎在步骤362停止,然后得到可用的应用程序,如步骤364所示。
图8是图解说明用于终止无线通信设备上的软件模块的示例性过程的流程图。最初,在步骤370,所述手持装置接收终止通知。该终止通知可以通过无线通信网络接收,并可源于通过网络与手持装置通信耦合的许可服务器。在一个实施方案中,可以将终止通知关联到软件模块的试验周期,或者关联到模块的年许可费用。
手持装置一旦收到终止通知,便会在步骤372确定是否被指示自动更新许可证或者为模块支付最初的费用。如果手持装置确定出未被授权或被指示自动更新或付费,那么在步骤374,手持装置告知用户软件模块的终止通知。
可以通过在手持装置的显示器上显示信息、或者通过生成文本信息以存储于手持装置的存储器中稍后再看的方式来进行通知。通知还可以是视觉的,例如显示器上的消息或闪烁的光,或可以是听觉的,例如预先录制的消息或声音。作为一种选择,闪烁的光或声音(或手持装置的振动)可表明用户能够获得消息,并且该消息可以提供终止通知的细节。此外,手持装置还可向网络发送消息(或者,网络可以启动该过程),以将预先录制的语音信息保存在用于告知用户终止通知的用户语音信箱中。可以采用各种其他的通知方法,这一点是本领域的技术人员可以理解的。
一旦用户被告知了终止通知,手持装置在步骤376接收用户的指示。在步骤378,手持装置对该指示进行检查以确定是否应当更新许可证(或者是否支付了最初的费用)。如果来自用户的指示是不进行更新(或未付款),那么在步骤380,手持装置使上述软件模块无效。在一个实施方案中,手持装置可以一直等待,直到无效前的许可周期或评价周期结束。此外,如果在步骤378中确定的结果是没有收到用户的指示,那么缺少指示可以解释成否定应答,并且在步骤380使上述软件模块无效。
在步骤378,如果所述手持装置确定的结果是,用户的指示是进行更新或付款,那么手持装置便向网络或许可服务器发送更新指令,如步骤382所示。此外,如果在步骤372,手持装置确定的结果是被授权自动进行更新或付款,那么在步骤382,手持装置也会发送适当的指令。(例如,所述许可服务器)在更新指令接收结束时,通过信用卡记帐或者通过在手持装置服务的消费者帐单上增加项目(lineitem)来使付款生效。
如步骤384所示,响应于付款或进行更新的指示,手持装置可以接收用来命令软件继续运行或允许附加功能的许可证或钥匙。在步骤386,用许可证或钥匙激活应用程序,以便用户此后可以在新的许可周期内使用软件模块或应用程序。
图9是图解说明为使用无线通信设备上的软件模块而付款的示例性过程的流程图。最初,在步骤390,应用程序可以收集用于应用程序本身或手持装置上的其他应用程序的使用数据。这些数据可优选存储于手持装置的永久存储器中。接下来,在步骤392启动运行时间引擎。运行时间引擎一旦运行,便可以对服务器操作代码集进行编译,如步骤394所示。在步骤396,经编译的服务器操作代码集优选使服务器处理包含在相应的数据有效载荷中的使用数据,其中,所述使用数据被插入所述操作代码集中(或者添加到所述操作代码集中)。
一旦将数据有效载荷与服务器操作代码集合并,运行时间引擎便将具有相应的数据有效载荷的服务器操作代码集发送到服务器,如步骤398所示。在服务器操作代码集与数据有效载荷被发送之后,手持装置优选接收来自服务器的记帐细节,如步骤399所示。记帐细节优选涉及设置了服务器操作代码集的使用数据。最后,终止运行时间引擎,以释放无线设备上的资源。
图13是图解说明用于获得来自新硬件组件的简要信息的示例性过程的流程图。最初,在步骤700手持装置上电。优选地,手持装置在上电后检查其各种硬件组件,例如,通过与各个组件通信以确定其状态。作为一种选择,如果手持装置已经运行,则手持装置可主动(例如,由于预定的事件)或者通过外部指令(例如,从网络或用户接收的)来启动相同的检查过程,以确定各种硬件组件的状态。
接下来,在步骤702,手持装置检测新的硬件组件。新的组件不需要是会有新功能的组件,而可以是先前的硬件模块替代物,例如新的显示屏。手持装置在检测到新的硬件组件后,在步骤704确定组件的类型,例如,屏幕、键盘、无线芯片集或类似的装置。手持装置然后在步骤706询问所述新组件,以获得与该新组件有关的信息。在步骤708,手持装置接收该新组件的信息,并且优选将其存储在永久或易失性存储器中。在一个实施方案中,新硬件模块的信息包括用来唯一地识别新硬件模块的标识符。
图14是用于向远程服务器请求用于新硬件组件的设备驱动程序的示例性过程的流程图。最初,在步骤720启动运行时间引擎。所述运行时间引擎一旦运行,便可以对服务器操作代码集进行编译,如步骤722所示。服务器操作代码集可以从运行在无线设备20、30上的后台处理中获得。作为一种选择,服务器操作代码集可以在用户的指示下,从运行在无线设备上的过程中获得。经编译的服务器操作代码集优选使服务器利用可执行的设备驱动程序来进行答复,以便允许手持装置与新硬件模块通信,并充分利用该新硬件模块的功能。
例如,无线设备检测到已经安装了新硬件模块。询问新硬件模块并获得简明的概况信息。对服务器操作代码集进行编译,以命令所述服务器为手持装置提供用于新硬件模块的可执行的设备驱动程序,以便手持装置可与新硬件模块通信。在这种情况下,结果是通过运行时间引擎生成的服务器操作代码集,如步骤722所示。
服务器操作代码集一旦生成,运行时间引擎便将与新硬件模块有关的信息包含在与服务器操作代码集对应的数据有效载荷中。例如,运行时间引擎可以从永久存储器或易失性存储器中取出硬件模块信息,或者执行用于返回所需数据的指令。一旦获得了所述数据,运行时间引擎接下来便将新硬件模块信息插入到服务器操作代码集,如步骤724所示。实现该操作的一种简单的方法是,将数据有效载荷以单个数据包的形式添加到所述服务器操作代码集中。
一旦将数据有效载荷与服务器操作代码集合并,运行时间引擎便会将具有相应的数据有效载荷的服务器操作代码集发送到服务器,如步骤726所示。运行时间引擎在发送了服务器操作代码集与数据有效载荷之后便可以停止,以释放无线设备上的资源,如步骤728所示。
图15是图解说明将用于新硬件组件的设备驱动程序安装在无线通信设备上的示例性过程的流程图。最初,在步骤730,无线设备接收手持装置操作代码集。可以通过空中通信链路来接收手持装置操作代码集,例如通过具有无线通信网的链路。操作代码优选被优化成使空中发送的数据量最小。此外,数据有效载荷可以包含在手持装置所接收的操作代码集中。
在步骤732,无线设备启动其运行时间引擎来处理手持装置操作代码集。如步骤734所示,运行时间引擎对手持装置操作代码集进行解析,然后在步骤736提取数据有效载荷。数据有效载荷优选存储在易失性存储器的可用部分以便以后使用。接下来,如步骤738所示,运行时间引擎获得与手持装置操作代码集中的操作代码对应的可执行的指令。这些指令可以从在手持装置的数据存储区的永久存储区中存储于的远程运行时间指令中获得。
一旦获得了与手持装置操作代码集中的操作代码对应的可执行的指令,运行时间引擎便会执行这些指令,如步骤740所示。在执行指令时,可以从存储数据有效载荷的易失性存储器中获得要被操作的任何必需数据。可选地或附加地,要被操作的任何必需数据可以作为执行指令的结果。优选地,指令集的执行使得用于新硬件模块的设备驱动程序安装在手持装置上。
例如,数据有效载荷包含手持装置需要用来与新硬件模块通信的设备驱动程序。此外,手持装置操作代码集中的一个或多个操作代码优选对应于,用于将数据有效载荷存储在手持装置的永久存储区器中的一个或多个可执行的指令。在该实施例中,包含设备驱动程序的数据有效载荷一旦存储到永久存储器中,手持装置此后便可以利用设备驱动程序(被配置成可以充分利用新硬件模块的功能)与新硬件模块进行通信。
作为一种选择,数据有效载荷可以替换永久存储器的、包含用于被替换的硬件组件的过时设备驱动程序的一部分。因此,手持装置操作代码集和数据有效载荷在无线设备上运行,以为新硬件模块安装新的设备驱动程序。在安装新的设备驱动程序后,还可以采用附加的操作代码和指令来配置新的设备驱动程序或手持装置的其他方面。
如步骤742所示,运行时间引擎一旦全部执行了指令集便可以停止。有利地,可以启动和停止运行时间引擎,以便使其仅在必要时运行。这样使节省了无线设备上的系统资源,例如可以节省易失性存储空间、CPU周期、以及电池寿命。如步骤746所示,一旦安装了用于新硬件模块的设备驱动程序,并根据使用而对其进行了配置,那么手持装置便可以在正常操作过程中开始使用该新硬件模块。
图16图解说明了用于在无线通信设备上配置新硬件组件的示例性过程的流程图。最初,在步骤750,手持装置利用新的设备驱动程序向新硬件模块发送建立(setup)请求。接下来,在步骤752,手持装置从新硬件模块接收响应。在一个实施方案中,响应可包含有关硬件模块的更加全面的概况信息,这些信息可以由设备驱动程序来解释,以细调设备的操作。例如,响应可以为设备驱动程序提供与硬件组件或其通信能力有关的附加信息(例如硬件组件的接口版本),或者使设备驱动程序与新硬件模块之间的通信更有效的其他信息。
作为一种选择,如步骤754中所确定的那样,响应可以表示与新硬件模块尝试的通信失败。如果建立请求收到表明建立失败的响应,那么手持装置返回到步骤750,并发送另一个建立请求。在一个实施方案中,手持装置可以循环发送预定数量(例如N个)的建立请求,直到为新硬件组件提供正确格式化的请求为止。例如,各种建立请求可以与用于设备驱动程序的不同版本的接口或不同的通信模式一致。
对于设备驱动程序与新硬件模块的反复处理操作来说,还可能存在同步问题。因此,收到成功响应的特殊建立请求可有利地为设备驱动程序提供以下重要信息安装在新硬件模块上的固件的版本、新硬件模块的容量、以及与新硬件模块有关的其他信息。在步骤754中确定的结果是,收到了来自新硬件模块的成功响应,手持装置便可以在正常操作过程中继续使用新硬件模块,如步骤756所示。如果在N个建立请求之后没有收到成功响应,则可以恢复旧的设备驱动程序。有利地,向后兼容的设备可以与旧的设备驱动程序一起运行,尽管在旧的设备驱动程序中,新的或改进的功能可能是不可用的。
图18示出了用于本发明的另一实施方案的、图解说明用于从外部设备中获得简要信息的示例性过程的流程图。最初,在步骤800手持装置检测来自外部设备的连接。可以通过有线或无线链路来检测连接。如步骤802所示,手持装置在检测到连接后,便确定该连接是否是由用户发起的。例如,用户可以按压一连串的按键或发出口头命令,以命令与新设备相连的手持装置。在一个实施方案中,如果连接是由用户发起的,则由用户直接向手持装置提供简要的设备信息。在这种实施方案中,手持装置接下来在步骤804存储简要的设备信息。
作为一种选择,如果检测并不是由用户发起的,那么手持装置接下来便制定用于外部设备的询问,如步骤806所示。询问可以有利地与标准协议一致,或者可以是专有协议。一旦制定了询问,手持装置便在步骤808向外部设备发送询问。在步骤810,手持装置确定是否已收到来自外部设备的有效响应。如果没有响应或者响应无效,那么手持装置返回到步骤806,重新制定询问并继续询问外部设备。有利地,手持装置可以循环通过各种已知的询问格式和协议,直到收到有效的响应为止。一旦收到优选包括与外部设备有关的简明概况信息的有效响应,手持装置便存储该简明概况信息,如步骤304所示。
图19是图解说明用于向远程服务器请求接口软件的示例性过程的流程图。最初,在步骤820启动运行时间引擎。运行时间引擎一旦运行,便可以对服务器操作代码集进行编译,如步骤822所示。服务器操作代码集可以从运行在无线设备上的后台处理中获得。作为一种选择,服务器操作代码集可以在用户的指示下,从运行在无线设备上的处理中获得。经编译的服务器操作代码集优选使服务器以用于连接于手持装置的特殊外部设备的可执行的接口来进行答复。
例如,无线设备检测来自外部设备的连接。询问外部设备并获得简明的概况信息。对用于命令服务器为手持装置提供用于外部设备的可执行的接口,以便手持装置与外部设备通信的服务器操作代码集进行编译。在这种情况下,结果是由运行时间引擎生成服务器操作代码集,如步骤822所示。
服务器操作代码集一旦生成,运行时间引擎便将用于外部设备的信息包含在与服务器操作代码集对应的数据有效载荷中。例如,运行时间引擎可以从永久存储器或易失性存储器中取出简明的概况数据,或者执行用于返回所需数据的指令。一旦获得了数据,运行时间引擎接下来便将数据插入到服务器操作代码集,如步骤824所示。实现该操作的一种简单的方法是,将数据有效载荷以单个数据包的形式添加到服务器操作代码集中。
一旦将数据有效载荷与服务器操作代码集合并,运行时间引擎便会将具有相应的数据有效载荷的服务器操作代码集发送到服务器,如步骤826所示。运行时间引擎在发送了服务器操作代码集与数据有效载荷之后便可以停止,以释放无线设备上的资源,如步骤828所示。
图20是图解说明用于在无线通信设备上安装接口软件的示例性过程的流程图。最初,在步骤830,无线设备接收手持装置操作代码集。可以通过空中通信链路(例如具有无线通信网的链路)接收手持装置操作代码集。操作代码优选被优化成使空中发送的数据量最小。此外,数据有效载荷可以包含在手持装置所接收的操作代码集中。
在步骤832,无线设备启动其运行时间引擎来处理手持装置操作代码集。如步骤834所示,运行时间引擎对手持装置操作代码集进行解析,然后在步骤836提取数据有效载荷。如果不存在数据有效载荷,则可以跳过该步骤,如果存在数据有效载荷,则将最终得到的数据存储在易失性存储器的可用部分中,以便以后使用。接下来,如步骤838所示,运行时间引擎获得与手持装置操作代码集中的操作代码对应的可执行的指令。这些指令可以从存储于手持装置的数据存储区的永久存储区中的远程运行时间指令集中获得。
一旦获得了与手持装置操作代码集中的操作代码对应的可执行的指令,运行时间引擎便执行这些指令,如步骤840所示。在执行指令时,可以从存储数据有效载荷的易失性存储器中获得将要被操作的任何必需数据。可选地或附加地,要被操作的任何必需数据可以作为执行指令的结果。
例如,数据有效载荷可以包含手持装置需要用来与外部设备通信的接口。此外,手持装置操作代码集中的一个或多个操作代码优选与用于将数据有效载荷存储在手持装置的永久存储区器中的一个或多个可执行的指令相对应。在该实施例中,包含接口的数据有效载荷一旦存储到永久存储器中,手持装置之后便可以利用可执行的接口与设备进行通信。作为一种选择,数据有效载荷可以替换永久存储器的、包含有用于特殊外部设备的过时接口的一部分。因此,手持装置操作代码集和数据有效载荷在无线设备上运行,以便为外部设备安装新的接口。如果需要的话,一旦安装了新的接口,还可以采用附加的操作代码和指令来配置新的接口。
如步骤842所示,运行时间引擎一旦全部执行了指令集便可以停止。有利地,可以启动和停止运行时间引擎,以便使其仅在必要时运行。这样便节省了无线设备上的系统资源,例如可以节省易失性存储空间和CPU周期。一旦安装了用于外部设备的接口,并根据使用对其进行了配置,那么手持装置便可以开始与外部设备进行通信,如步骤846所示。
图21是图解说明用于对外部设备进行初始化的示例性过程的流程图。最初,在步骤850,手持装置利用新的接口来向外部设备发送建立请求。接下来,在步骤852,手持装置接收来自外部设备的响应。在一个实施方案中,响应可以包含有关外部设备的更加全面的概况信息。例如,响应可以为手持装置提供与通信接口有关的附加信息(例如接口的版本),或者使设备之间的通信更有效的其他信息。
作为一种选择,步骤854中确定的结果是,响应指示出对外部设备进行的初始化失败了。如果建立请求收到表明建立失败的响应,那么手持装置返回到步骤850,并发送另一个建立请求。在一个实施方案中,手持装置可以循环发送各种建立请求,直到为外部设备提供正确格式化的请求为止。例如,各种建立请求可以与不同版本的接口一致。因此,收到成功响应的特殊的建立请求可以有利地为手持装置提供以下重要信息与安装在外部设备上的固件的版本有关的信息、外部设备的容量以及与外部设备有关的其他信息。如步骤854所示,一旦收到来自外部设备的成功响应,手持装置便可以与外部设备交换信息,如步骤856所示。
图10是图解说明可以与本文所描述的各种实施方案一起使用的、示例性无线通信设备450的方框图。例如,无线通信设备450可以与手持装置或PDA网络设备一起使用,或者可以用作无线网状网络中的传感器节点(sensor node)的一部分。但是,也可以采用其他的无线通信设备和/或结构,这一点对于本领域的技术人员来说是很清楚的。
在示出的实施方案中,无线通信设备450包括天线452、多路复用器454、低噪声放大器(LNA)456、功率放大器(PA)458、调制电路460、基带处理器462、扬声器464、麦克风466、中央处理器(CPU)468、数据存储器470以及硬件接口472。在无线通信设备450中,射频(RF)信号由天线452发送和接收。多路复用器454用作开关,用于在发送和接收信号路径之间耦合天线452。在接收路径中,收到的RF信号从多路复用器454耦合到LNA 456。LNA 456对收到的RF信号进行放大,并将经放大的信号耦合到调制电路460的解调部分。
通常,调制电路460会将解调器和调制器合并在一个集成电路(IC)中。解调器和调制器也可以是分立元件。解调器将RF载波信号去除,而留下基带接收信号,基带接收信号从解调器的输出端发送到基带处理器462。
如果基带接收音频信号包含音频信息,那么基带处理器462便对信号进行解码并将其转换成模拟信号。然后,信号被放大并被发送到扬声器464。基带处理器462还从麦克风466接收模拟音频信号。基带处理器462将这些模拟音频信号转换成数字信号,并对其进行编码。基带处理器462还对用于发送的数字信号进行编码,并生成路由到调制电路460的调制器部分的基带发送音频信号。调制器将基带发送音频信号与RF载波信号混合,以生成路由到功率放大器458的RF发送信号。功率放大器458对RF发送信号进行放大,并将其路由到多路复用器454,在多路复用器454,信号由天线452切换到用于发射的天线部分。
基带处理器462也与中央处理单元468通信耦合。中央处理单元468访问数据存储区470。中央处理单元468优选被配置成执行能够存储于数据存储区470中的指令(即,计算机程序或软件)。可以从基带处理器462接收计算机程序,并将其存储于数据存储区470中,或者在收到计算机程序后进行执行。这种计算机程序在执行时,能够使无线通信设备450执行本发明如前所述的各种功能。
在本说明书中,术语“计算机可读介质”是指用于向无线通信设备450提供由中央处理单元468执行的可执行指令的任何介质。这些介质的实施例包括数据存储区470、麦克风466(通过基带处理器462)、天线452(也通过基带处理器462)以及硬件接口472。这些计算机可读介质是用于向无线通信设备450提供可执行代码、编程指令以及软件的装置。可执行代码、编程指令以及软件在由中央处理单元468执行时,优选使中央处理单元468实现本文中先前描述的本发明的特征和功能。
中央处理单元还优选被配置成当硬件接口472检测到新设备时,从硬件接口472接收通知。硬件接口472可以是机电探测器与控制软件组合,并能够与CPU 468通信并与新设备相互作用。
图11是图解说明可以与本文中描述的各种实施方案一起使用的、示例性计算机系统550的方框图。例如,计算机系统550可以与远程服务器一起使用,该远程服务器被配置用来处理服务器操作代码集、以及产生和发送手持装置操作代码集。但是,也可以采用其他的计算机系统和/或结构,这一点对于本领域的技术人员来说是很清楚的。
计算机系统550优选包括一个或多个处理器,例如处理器552。可以设置附加的处理器,例如用于管理输入/输出的辅助处理器、用于执行浮点数学运算的辅助处理器、具有适于快速执行信号处理算法的结构的特殊用途的微处理器(例如数字信号处理器)、从属于主处理系统的从属处理器(例如后端处理器)、用于双处理器系统或多处理器系统的附加的微处理器或控制器、或协处理器。这种辅助处理器可以是分立的处理器,或者可以与处理器552集成。
处理器552优选连接到通信总线554。通信总线554可以包括方便计算机系统550的存储元件和其他外围元件之间传输信息的数据信道。通信总线554进一步可以提供用于与处理器552通信的一组信号,其中通信总线554包括数据总线、地址总线和控制总线(未示出)。通信总线554可以包括任何标准或非标准的总线结构,例如服从于工业标准结构(ISA)的总线结构、扩展工业标准结构(EISA)、微通道结构(MCA)、外设部件互连(PCI)本地总线、或电气和电子工程师协会(IEEE)发布的标准,其中包括IEEE 488通用接口总线(GPIB)、IEEE 696/S-100等。
计算机系统550优选包括主存储器556,并还可包括辅助存储器558。主存储器556为在处理器552上执行的程序存储指令和数据。主存储器556通常是基于半导体的存储器,例如动态随机存储器(DRAM)和/或静态随机存储器(SRAM)。其他基于半导体的存储器类型例如包括同步动态随机存储器(SDRAM)、存储器总线式动态随机存储器(RDRAM)、铁电随机存储器(FRAM)等,其中也包括只读存储器(ROM)。
辅助存储器558可选地包括硬盘驱动560和/或可移动的存储器驱动562,例如软盘驱动、磁带驱动、光盘(CD)驱动、数字化视频光盘(DVD)驱动等。可移动的存储器驱动562以公知的方式读写可移动的存储介质564。可移动的存储介质564例如可以是软盘、磁带、CD、DVD等。
可移动的存储介质564优选为其上存储有计算机可执行代码(即软件)和/或数据的计算机可读介质。存储在可移动的存储介质564上的计算机软件或数据作为电通信信号578而被读入计算机系统550中。
在可选的实施方案中,辅助存储器558可以包括用于允许计算机程序、其他数据或指令装入计算机系统550中的其他类似的装置。这种装置例如可以包括外部存储介质572和接口570。外部存储介质572的实施例可以包括外部硬盘驱动器、外部光学驱动器、或外部磁光驱动器。
辅助存储器558的其他实施例可以包括基于半导体的存储器,例如可编程的只读存储器(PROM)、可擦可编程只读存储器(EEPROM)、或闪存(类似于EEPROM的面向块的存储器)。辅助存储器558的其他实施例还包括任何其他可移动的存储单元572和接口570,其中接口570允许软件和数据从可移动的存储单元572传输到计算机系统550。
计算机系统550还可以包括通信接口574。通信接口574允许在计算机系统550和外部设备(例如打印机)、网络或信息源之间传输软件和数据。例如,计算机软件或可执行的代码可以从网络服务器通过通信接口574传输到计算机系统550。通信接口574的实施例包括调制解调器、网络接口卡(NIC)、通信端口、PCMCIA插槽和卡、红外线接口以及IEEE 1394带电线(fire-wire),在此仅列举几个实施例。
通信接口574优选实施工业发布的协议标准,例如以太网IEEE802标准、光纤通道、数字用户线路(DSL)、非对称数字用户线路(ADSL)、帧中继、异步传输模式(ATM)、综合数字服务网(ISDN)、个人通信服务(PCS)、传输控制协议/网际协议(TCP/IP)、串行线路接口协议/点对点协议(SLIP/PPP)等等,但是通信接口574还可以实施定制的或非标准接口协议。
通过通信接口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.一种在使用的无线通信设备(20,30)上动态安装数据组件(240)的方法,包括接收安装所述数据组件的请求,所述请求包括被请求的所述数据组件的唯一标识符;对服务器询问进行编译,所述服务器询问包括所述唯一标识符;经由无线通信网络(50)将所述服务器询问发送到远程服务器(60);以及经由无线通信网络(50)从所述远程服务器(60)接收响应,其中所述响应包含所述数据组件(240)。
2.如权利要求1所述的方法,其中所述数据组件为软件模块。
3.如权利要求2所述的方法,其中,所述请求进一步包括要从所述使用的无线通信设备上删除的现有软件模块的唯一标识符,所述方法进一步包括删除所述要被删除的现有软件模块,其中所述请求进一步包括所述软件模块的大小,以及确定所述使用的无线通信设备的可用永久存储区是否适合所述软件模块的大小。
4.如权利要求3所述的方法,进一步包括以下步骤识别要删除的现有软件模块;以及从所述使用的无线通信设备上删除经识别要删除的所述现有软件模块,以便为所述软件模块释放存储空间。
5.如权利要求2所述的方法,其中从通信公司的网络接收所述请求。
6.如权利要求2所述的方法,其中从所述远程服务器接收响应的步骤进一步包括接收具有相应的数据有效载荷的手持装置指令集;提取所述数据有效载荷,其中所述数据有效载荷包括所述软件模块;获得与所述手持装置指令集对应的可执行的指令集;以及执行所述可执行的指令集,以安装所述软件模块。
7.如权利要求6所述的方法,其中,在所述无线通信设备上运行的运行时间引擎内实施所述的执行可执行的指令集的步骤。
8.如权利要求1所述的方法,其中,所述数据组件是用于新硬件组件的可执行的设备驱动程序和安装指令,所述方法进一步包括以下步骤在所述无线通信设备中检测新硬件组件的存在,所述新硬件组件用于代替先前的硬件组件,所述先前的硬件组件具有先前的设备硬件驱动程序;以及询问所述新硬件组件,以获得所述新硬件组件的概况信息;其中所述唯一标识符包括所述概况信息的至少一部分。
9.如权利要求8所述的方法,进一步包括以下步骤安装所述可执行的设备驱动程序;以及对所述新硬件组件进行配置。
10.如权利要求8所述的方法,其中,接收所述数据组件的步骤进一步包括接收具有一系列操作代码和相应的数据有效载荷的手持装置指令集;提取所述相应的数据有效载荷,其中所述相应的数据有效载荷包括所述可执行的设备驱动程序;将所述一系列的操作代码转换成包含所述安装指令的可执行的指令集;以及提取所述可执行的指令集,以利用运行在所述无线通信设备上的运行时间引擎,安装所述可执行的设备驱动程序。
11.如权利要求8所述的方法,进一步包括确定出所述先前的设备驱动程序的大小大于所述可执行的设备驱动程序的大小;将所述先前的设备驱动程序复制到易失性存储器上;从所述永久存储器上删除所述先前的设备驱动程序;以及将用于所述新硬件组件的所述可执行的设备驱动程序,存储于所述永久存储器先前由所述先前设备驱动程序占据的至少一部分区域中。
12.如权利要求1所述的方法,其中,所述数据组件是用于外部设备的外部设备接口,所述方法进一步包括检测来自所述外部设备的连接;询问所述外部设备;以及响应所述询问接收概况信息;其中所述唯一标识符包括所述概况信息的至少一部分。
13.一种无线通信设备,包括数据存储区(240),包括所述无线通信设备可执行的指令;模块化的软件接口(200)、模块化的硬件检测器(202)以及外部设备检测器(204)中的至少一个,所述模块化的软件接口(200)、模块化的硬件检测器(202)以及所述外部设备检测器(204)被配置用来接收安装新数据组件的请求,并被配置用来确定用于所述新数据组件的唯一标识符;服务器操作代码库(210),位于所述数据存储区(240)中,并包括与可由远程服务器(60)执行的指令对应的操作代码;手持装置操作代码库(220),位于所述数据存储区中,并包括与无线通信设备(20,30)可执行的指令对应的操作代码;以及运行时间引擎(230),其被配置用来编译和发送服务器操作代码集,以及接收和处理手持装置操作代码集,其中所述模块化的软件接口(200)、所述模块化的硬件检测器(202)以及所述外部设备检测器(204)中至少之一接收安装所述新数据组件的请求、确定用于所述新数据组件的唯一标识符、以及向所述运行时间引擎提供所述唯一标识符,其中所述运行时间引擎对请求所述软件模块的服务器操作代码集进行编译,所述服务器操作代码集具有包含所述唯一标识符的数据有效载荷。
全文摘要
提供了用于动态安装模块化的软件应用程序(140)和硬件驱动(130)的系统和方法。无线通信设备(20)向更新模块服务器(60)发送请求,其中所述更新模块服务器用于识别请求的新应用程序或软件模块(140,130)。更新模块服务器(60)采用安装所述软件模块的指令集和软件模块本身来作出响应。手持装置(20)在收到所述响应后安装所述软件模块,并必要地删除所述手持装置上的永久存储器(240)中的应用程序或模块。最后,可以重新配置或重新启动手持装置(20),以完成安装和配置。
文档编号H04W88/02GK1954627SQ200580015944
公开日2007年4月25日 申请日期2005年5月18日 优先权日2004年5月18日
发明者尤麦什·M·戴特, 迈赫尔·B·帕特尔, 高里·S·拉贾拉姆 申请人:基奥赛拉无线公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1