[go: up one dir, main page]

CN1954627B - Modular data assembly for wireless communication device - Google Patents

Modular data assembly for wireless communication device Download PDF

Info

Publication number
CN1954627B
CN1954627B CN2005800159445A CN200580015944A CN1954627B CN 1954627 B CN1954627 B CN 1954627B CN 2005800159445 A CN2005800159445 A CN 2005800159445A CN 200580015944 A CN200580015944 A CN 200580015944A CN 1954627 B CN1954627 B CN 1954627B
Authority
CN
China
Prior art keywords
wireless communication
handset
data
server
executable
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2005800159445A
Other languages
Chinese (zh)
Other versions
CN1954627A (en
Inventor
尤麦什·M·戴特
迈赫尔·B·帕特尔
高里·S·拉贾拉姆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kyocera Corp
Original Assignee
Kyocera Wireless Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US10/848,940 external-priority patent/US7184759B2/en
Priority claimed from US10/848,941 external-priority patent/US7200389B2/en
Priority claimed from US10/848,939 external-priority patent/US7197302B2/en
Application filed by Kyocera Wireless Corp filed Critical Kyocera Wireless Corp
Priority claimed from PCT/US2005/017451 external-priority patent/WO2005115036A1/en
Publication of CN1954627A publication Critical patent/CN1954627A/en
Application granted granted Critical
Publication of CN1954627B publication Critical patent/CN1954627B/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Mobile Radio Communication Systems (AREA)
  • Telephonic Communication Services (AREA)

Abstract

Systems and methods for dynamically installing modular software applications (140) and hardware drivers (130) are provided. The wireless communication device (20) sends a request to an update module server (60) that identifies the requesting new application or software module (140, 130). The update module server (60) responds with the instruction set for installing the software module and the software module itself. The handset (20) installs the software module upon receipt of the response and, if necessary, deletes the application or module in persistent storage (240) on the handset. Finally, the handset (20) may be reconfigured or restarted to complete the installation and configuration.

Description

用于无线通信设备的模块化的数据组件 Modular data components for wireless communication devices

技术领域technical field

本发明一般涉及无线通信领域,更具体地说,涉及可互换的软件应用程序、硬件驱动程序、通信接口以及无线通信设备中的操作系统组件。The present invention relates generally to the field of wireless communications, and more particularly to interchangeable software applications, hardware drivers, communications interfaces, and operating system components in wireless communications devices.

背景技术Background technique

传统的无线通信设备一旦被使用(即出售给消费者),通常便会成为孤立的计算平台。为了更新操作系统或任何必需的软件应用程序(例如电话簿),消费者通常需要将无线通信设备(在本文中也称作“无线设备”、“手持装置”以及“移动设备”)带到服务站。Once used (ie, sold to consumers), traditional wireless communication devices typically become isolated computing platforms. In order to update the operating system or any required software applications (such as a phone book), consumers typically need to bring a wireless communication device (also referred to herein as a "wireless device," "handheld," and "mobile device") to the service stand.

此外,如果消费者想要更换无线通信设备的硬件组件,也必须将无线通信设备带到服务站。通常,如果无线设备没有损坏并且在保修期内,硬件的更换也是非常昂贵的。即使这样,当无线设备在保修期内更换硬件组件时,新的组件仅仅是被更换的组件的可用版本。这样,当消费者购买无线通信设备时,在无线通信设备的寿命内,消费者便与所述无线设备的物理配置锁在一起。In addition, if a consumer wants to replace a hardware component of the wireless communication device, the wireless communication device must also be taken to a service station. Often, hardware replacement is also very expensive if the wireless device is not damaged and is under warranty. Even so, when a wireless device has a hardware component replaced during the warranty period, the new component is only a usable version of the component that was replaced. Thus, when a consumer purchases a wireless communication device, the consumer is locked into the physical configuration of the wireless communication device for the life of the wireless communication device.

传统无线通信设备的另一个缺点在于,新的外部设备(例如数字照相机)局限于手持装置的制造商所提供的特定外围设备。因此,消费者对升级无线通信设备的外部设备的选择受到严格的限制。因此,需要能够克服传统系统中的上述重要问题的系统和方法。Another disadvantage of conventional wireless communication devices is that new peripherals, such as digital cameras, are limited to specific peripherals provided by the manufacturer of the handheld device. Accordingly, consumers' options for upgrading the peripherals of the wireless communication device are severely limited. Therefore, there is a need for systems and methods that can overcome the above-mentioned important problems in conventional systems.

发明内容Contents of the invention

传统的无线通信设备是孤立的计算平台。一旦无线通信设备被使用,在对无线通信设备的软件进行更新时,需要将手持装置带到能够对软件组进行升级、和对手持装置进行重新配置的服务站。当涉及对操作系统或必需的应用程序(例如地址簿)进行更新时,尤其如此。此外,使用在手持装置上的软件组是静态的,不具有灵活性,并且不允许用户定制可以满足他或她的需要的各种应用程序。Traditional wireless communication devices are isolated computing platforms. Once the wireless communication device is in use, updating the software of the wireless communication device requires taking the handset to a service station where the software package can be updated and the handset reconfigured. This is especially true when it comes to making updates to the operating system or required applications such as the address book. Furthermore, the suite of software used on handheld devices is static, inflexible, and does not allow the user to customize various applications to suit his or her needs.

无线通信设备的用户为了获得物理设备中包含的技术进步带来的好处,必须购买新的设备。如果具有改进的显示器的新模型是由制造商发布的,那么用户便无法对手持装置进行升级。此外,如果硬件组件出现故障或损坏,那么整个手持装置都需要更换,或者在某些情况下可以将手持装置送回制造商以进行整修。不幸的是,这种整修不允许使用升级的、更新的组件。制造商必须采用相同组件的可用版本来替换同一组件。Users of wireless communication devices must purchase new devices in order to reap the benefits of technological advancements embodied in physical devices. If a new model with an improved display is released by the manufacturer, the user cannot upgrade the handheld. Additionally, if a hardware component fails or becomes damaged, the entire handheld needs to be replaced, or in some cases the handheld can be returned to the manufacturer for refurbishment. Unfortunately, this refurb does not allow for upgraded, newer components. Manufacturers must substitute available versions of the same component for the same component.

第一实施方案提供了用于动态安装模块化的软件应用程序和操作系统组件的系统和方法。当命令手持装置安装新的软件模块时,手持装置向更新模块服务器发送请求,其中所述更新模块服务器用于识别待安装的新应用程序或软件模块。所述更新模块服务器采用安装所述软件模块的指令集和软件模块本身来作出响应。所述手持装置在收到所述响应后安装所述软件模块,并必要地删除所述手持装置上的永久存储器中的应用程序或模块。最后,可以重新配置或重新启动所述手持装置,以完成安装和配置。A first embodiment provides a system and method for dynamically installing modular software applications and operating system components. When commanding a handset to install a new software module, the handset sends a request to an update module server identifying a new application or software module to install. The update module server responds with a set of instructions for installing the software module and the software module itself. The handheld device installs the software module upon receipt of the response and, if necessary, deletes the application or module in persistent storage on the handheld device. Finally, the handheld can be reconfigured or rebooted to complete the installation and configuration.

第二实施方案提供了用于无线通信设备上的可互换的模块化的硬件组件的系统和方法。当手持装置的组件过时或者存在新的、改进的元件时,新的组件可以与旧的组件交换。当手持装置在更换了硬件组件之后通电时,手持装置会识别出存在新的组件。手持装置在识别出新组件后会询问该组件以获得与该组件的特性有关的信息。手持装置一旦获得了该信息,便会通过无线通信网络向所述更新服务器询问优化的设备驱动程序,所述优化的设备驱动程序将允许手持装置利用所述新组件的改进的功能。此外,手持装置可以向所述更新服务器询问新的软件应用程序,所述新的软件应用程序也可以开发所述新组件的改进的功能。所述更新服务器利用用于安装所述设备驱动程序的指令集和所述设备驱动程序本身来作出响应。所述手持装置一收到所述响应便安装所述设备驱动程序并重新配置或重新启动,以完成安装和配置。A second embodiment provides systems and methods for interchangeable modular hardware components on a wireless communication device. When components of the handheld device become obsolete or new, improved elements exist, the new components can be exchanged for the old components. When the handheld is powered on after a hardware component has been replaced, the handheld will recognize the presence of the new component. After the handheld device recognizes a new component, it will interrogate the component to obtain information about the characteristics of the component. Once the handset has this information, it queries the update server over the wireless communication network for an optimized device driver that will allow the handset to take advantage of the improved functionality of the new component. Furthermore, the handheld device may query the update server for new software applications, which may also develop improved functionality of the new components. The update server responds with a set of instructions for installing the device driver and the device driver itself. Upon receipt of the response, the handheld device installs the device driver and reconfigures or reboots to complete the installation and configuration.

另一实施方案提供了动态更新无线通信设备上的通信接口以方便与外部设备通信的方法。在检测到外部设备的通过直接的物理链路、直接的无线链路或者远程无线链路的连接后,无线通信设备获取与所述外部设备有关的简要信息。如果所述无线通信设备不存在用于所述外部设备的通信接口,那么所述无线通信设备便将所述外部设备的简要信息的一部分发送到远程接口服务器,并请求适当的接口。所述无线通信设备一收到所述接口,便安装所述接口,然后继续建立与所述外部设备的通信。Another embodiment provides a method of dynamically updating a communication interface on a wireless communication device to facilitate communication with external devices. After detecting the connection of the external device through a direct physical link, a direct wireless link or a remote wireless link, the wireless communication device obtains brief information related to the external device. If the wireless communication device does not have a communication interface for the external device, the wireless communication device sends a part of the profile of the external device to a remote interface server and requests an appropriate interface. Upon receipt of the interface, the wireless communication device installs the interface and proceeds to establish communication with the external device.

附图说明Description of drawings

通过研究下面描述的附图,可以部分地发现关于本发明的结构和操作的细节,附图中相同的标号代表相同的部件。Details regarding the construction and operation of the present invention can be found, in part, by studying the drawings described below, in which like numerals represent like parts.

图1是图解说明示例性的无线通信网络的高层方框图;FIG. 1 is a high-level block diagram illustrating an exemplary wireless communication network;

图2是图解说明无线通信设备上的永久存储区中的数据的示例性表示的方框图;2 is a block diagram illustrating an exemplary representation of data in a persistent storage area on a wireless communication device;

图3A是图解说明用于模块化的软件接口组件的数据存储区的组件的方框图;3A is a block diagram illustrating components of a data storage area for a modular software interface component;

图3B是图解说明用于模块化的硬件检测器组件的数据存储区的组件的方框图;3B is a block diagram illustrating components of a data storage area for a modular hardware detector component;

图3C是图解说明用于模块化的外部设备检测器组件的数据存储区的组件的方框图;3C is a block diagram illustrating components of a data storage area for a modular external device detector component;

图3D是图解说明示例性的操作代码库和相应的运行时间指令集的方框图;Figure 3D is a block diagram illustrating an exemplary operational code library and corresponding runtime instruction set;

图3E是图解说明示例性的运行时间指令集的方框图;FIG. 3E is a block diagram illustrating an exemplary runtime instruction set;

图4是图解说明用户启动的软件模块下载的示例性过程的流程图;4 is a flowchart illustrating an exemplary process for user-initiated software module download;

图5是图解说明用于激活无线通信设备上的常驻软件模块的示例性过程的流程图;5 is a flowchart illustrating an exemplary process for activating a resident software module on a wireless communication device;

图6是图解说明网络启动的软件模块下载的示例性过程的流程图;6 is a flowchart illustrating an exemplary process for network-initiated software module download;

图7是图解说明用于在无线通信设备上安装软件模块的示例性过程的流程图;7 is a flowchart illustrating an exemplary process for installing a software module on a wireless communication device;

图8是图解说明用于使无线通信设备上的软件模块停止运行的示例性过程的流程图;8 is a flow diagram illustrating an exemplary process for disabling a software module on a wireless communication device;

图9是图解说明为使用无线通信设备上的软件模块而付款的示例性过程的流程图;9 is a flow diagram illustrating an exemplary process of paying for use of a software module on a wireless communication device;

图10是图解说明可以与本文所描述的各种实施方案一起使用的、示例性无线通信设备的方框图;Figure 10 is a block diagram illustrating an exemplary wireless communication device that may be used with various embodiments described herein;

图11是图解说明可以与本文中描述的各种实施方案一起使用的、示例性计算机系统的方框图;11 is a block diagram illustrating an exemplary computer system that may be used with various embodiments described herein;

图12是图解说明示例性的无线通信设备和模块化的硬件组件的方框图;12 is a block diagram illustrating an exemplary wireless communication device and modular hardware components;

图13是图解说明用于获得来自无线通信设备上的新硬件组件的简要信息的示例性过程的流程图;13 is a flow diagram illustrating an example process for obtaining brief information from new hardware components on a wireless communication device;

图14是用于向远程服务器请求用于新硬件组件的设备驱动程序的示例性过程的流程图;14 is a flowchart of an exemplary process for requesting a device driver for a new hardware component from a remote server;

图15是图解说明在无线通信设备上安装用于新硬件组件的设备驱动程序的示例性过程的流程图;15 is a flowchart illustrating an exemplary process of installing a device driver for a new hardware component on a wireless communication device;

图16是图解说明用于在无线通信设备上配置新硬件组件的示例性过程的流程图;16 is a flow diagram illustrating an example process for configuring a new hardware component on a wireless communication device;

图17A是图解说明无线通信设备与外部设备之间的示例性的直接物理连接的方框图;17A is a block diagram illustrating an exemplary direct physical connection between a wireless communication device and an external device;

图17B是图解说明无线通信设备与外部设备之间的示例性的直接的无线连接的方框图;17B is a block diagram illustrating an exemplary direct wireless connection between a wireless communication device and an external device;

图17C是图解说明无线通信设备与外部设备之间的示例性远程无线连接的方框图;17C is a block diagram illustrating an exemplary remote wireless connection between a wireless communication device and an external device;

图18是图解说明用于从外部设备获得简要信息的示例性过程的流程图;18 is a flowchart illustrating an exemplary process for obtaining brief information from an external device;

图19是图解说明用于向远程服务器请求接口软件的示例性过程的流程图;19 is a flowchart illustrating an exemplary process for requesting interface software from a remote server;

图20是图解说明用于在无线通信设备上安装接口软件的示例性过程的流程图;以及20 is a flow diagram illustrating an exemplary process for installing interface software on a wireless communication device; and

图21是图解说明用于对外部设备进行初始化的示例性过程的流程图。21 is a flow diagram illustrating an example process for initializing an external device.

具体实施方式Detailed ways

本文公开了一种用于通过空中链路动态更新无线通信设备上的软件模块和软件应用程序、以及设备驱动程序的系统和方法。例如,本文所公开的方法和系统允许无线通信设备向更新服务器请求新的软件模块或驱动程序模块,并接收无线通信数据包中的这些新模块。所述无线设备在收到所述数据包后便安装所请求的模块,并且在必要时删除其他模块以便为永久存储新模块留出空间。如果需要的话,所述无线设备还可为使用新模块而重新配置无线设备,并可重新启动(重新启动)所述设备。Disclosed herein is a system and method for dynamically updating software modules and software applications, and device drivers on a wireless communication device over an air link. For example, the methods and systems disclosed herein allow wireless communication devices to request new software modules or driver modules from an update server and receive these new modules in wireless communication data packets. Upon receipt of the data packet, the wireless device installs the requested modules and, if necessary, deletes other modules to make room for permanent storage of new modules. The wireless device can also be reconfigured for use with the new module, and the device can be restarted (rebooted), if desired.

本文公开的另一实施方案提供了一种用于动态识别外部设备并与之接口的无线通信设备及方法。例如,本文公开的一种方法允许无线设备通过有线或无线通信链路识别外部设备的存在。所述无线通信设备一旦识别了外部设备,便会询问外部设备以获得与该设备有关的简短概况信息(profile information)。然后,所述无线通信设备通过无线通信网络来询问服务器并接收包含接口以实现设备之间的通信的响应。Another embodiment disclosed herein provides a wireless communication device and method for dynamically identifying and interfacing with an external device. For example, one method disclosed herein allows a wireless device to recognize the presence of an external device through a wired or wireless communication link. Once the wireless communication device has identified the external device, it queries the external device for brief profile information about the device. The wireless communication device then queries the server over the wireless communication network and receives a response containing an interface to enable communication between the devices.

在阅读了这些描述之后,对于本领域的技术人员来说,如何以各种可选的实施方案和可选的应用程序来实施本发明将是显而易见的了。然而,虽然本文中将描述本发明的各种实施方案,但是应当理解,这些实施方案仅是作为实施例而提出的,而并不局限于此。因此,对于各种可选的实施方案的详细描述不应当被解释为限制所附权利要求所限定的本发明的范围或宽度。After reading these descriptions it will become apparent to a person skilled in the art how to practice the invention in various alternative embodiments and alternative applications. However, while various embodiments of the invention will be described herein, it is to be understood that these embodiments are presented by way of example only, and not limitation. Accordingly, this detailed description of various alternative embodiments should not be construed to limit the scope or breadth of the invention, which is defined by the appended claims.

图1是图解说明示例性的无线通信网络10的高层方框图。在示出的实施方案中,无线通信网络10包括多个无线通信设备20和30,无线通信设备20和30通过多个基站40和42与网络50通信耦合。还可向无线通信网络10使用附加的无线通信设备和基站作为其一部分。无线通信网络10还包括与数据存储区70耦合的更新模块服务器60。无线通信设备20和30与更新模块服务器60通过基站40和42以及网络50通信耦合。FIG. 1 is a high-level block diagram illustrating an exemplary wireless communication network 10 . In the illustrated embodiment, wireless communication network 10 includes a plurality of wireless communication devices 20 and 30 that are communicatively coupled to network 50 through a plurality of base stations 40 and 42 . Additional wireless communication devices and base stations may also be used to the wireless communication network 10 as part of it. Wireless communication network 10 also includes update module server 60 coupled to data store 70 . Wireless communication devices 20 and 30 are communicatively coupled to update module server 60 through base stations 40 and 42 and network 50 .

无线通信设备20可以是能够在无线通信网络10内通信并执行软件模块和/或具有替换的模块化硬件组件的任意设备。无线通信设备20优选还具有永久存储区。例如,无线通信设备20可以是蜂窝电话、个人数字助理(PDA)、膝上型计算机、手表或者配置用于无线通信的任何其他设备。在本文中,无线通信设备还可以被称作“手持装置”、“移动电话”或“移动设备”。Wireless communication device 20 may be any device capable of communicating within wireless communication network 10 and executing software modules and/or having alternative modular hardware components. The wireless communication device 20 preferably also has a permanent storage area. For example, wireless communication device 20 may be a cellular telephone, personal digital assistant (PDA), laptop computer, watch, or any other device configured for wireless communication. A wireless communication device may also be referred to herein as a "handset," a "mobile phone," or a "mobile device."

在示出的实施方案中,外部设备22与手持装置20之间的连接为直接的物理连接24。外部设备还可以通过无线链路与手持装置耦合,例如通过外部设备32与手持装置30之间的直接的无线链路34或远程无线链路36。在一个实施方案中,手持装置20与外部设备22之间的直接的物理连接24可以是硬连线物理连接,例如连续的电缆(serialcable)或有线网络连接。作为一种选择,直接的无线连接34可以采用局域网协议、蓝牙或红外线。外部设备32还可以通过经由基站(例如基站42)链接无线通信设备的远程无线连接36与手持装置30相连。此外,外部设备32还可以通过经由网络(例如互联网或网络50)链接无线通信设备的远程无线连接36与手持装置30相连。In the illustrated embodiment, the connection between the external device 22 and the handheld device 20 is a direct physical connection 24 . The external device may also be coupled to the handheld device via a wireless link, such as a direct wireless link 34 or a remote wireless link 36 between the external device 32 and the handheld device 30 . In one embodiment, the direct physical connection 24 between the handheld device 20 and the external device 22 may be a hardwired physical connection, such as a serial cable or a wired network connection. As an option, the direct wireless connection 34 may use LAN protocol, Bluetooth or infrared. External device 32 may also be connected to handheld device 30 via a long-range wireless connection 36 linking wireless communication devices via a base station (eg, base station 42). Additionally, the external device 32 may also be connected to the handheld device 30 via a remote wireless connection 36 linking wireless communication devices via a network, such as the Internet or network 50 .

基站40被配置成在空中与多个无线通信设备通信,并且基站40包括用于将空中通信转换成通过网络50传输的有线通信的收发器(未示出)。网络50优选为由提供用于在基站(例如基站40和42)之间进行移交(handoff)的基础设施的无线通信公司操纵的专用网。此外,网络50优选在各种应用程序、服务以及基于其他计算机的服务器(例如更新模块服务器60)之间提供通信链路。Base station 40 is configured to communicate over the air with a plurality of wireless communication devices, and base station 40 includes a transceiver (not shown) for converting over-the-air communications to wired communications for transmission over network 50 . Network 50 is preferably a private network operated by a wireless carrier that provides the infrastructure for handoff between base stations (eg, base stations 40 and 42). In addition, network 50 preferably provides communication links between various applications, services, and other computer-based servers such as update module server 60 .

网络50还可以用作连接到其他网络(未示出)的通道,例如综合服务数字网(“ISDN”)、公共开关电话网(“PSTN”)、公众陆地移动电话网(“PLMN”)、分组交换公共数据网(“PSPDN”)以及因特网,在此仅列举几个网络。Network 50 can also be used as a gateway to other networks (not shown), such as Integrated Services Digital Network ("ISDN"), Public Switched Telephone Network ("PSTN"), Public Land Mobile Telephone Network ("PLMN"), Packet Switched Public Data Network ("PSPDN") and the Internet, to name a few networks.

更新模块服务器60可以实施为单个计算机或多个服务器,并在逻辑上被设置成能够用来为移动设备提供动态指令集和软硬件模块,以及执行从移动设备接收的动态指令集。在示出的实施方案中,更新模块服务器60与数据存储区70耦合,数据存储区70优选容纳有多个可执行的接口、一组服务器操作代码、手持装置操作代码以及与服务器操作代码对应的可执行指令。稍后参照图11来描述可以实施更新模块服务器60的通用计算机的特征。更新模块服务器60的一项功能是从手持装置20、30接收请求,并对所接收的请求作出响应,以向所述手持装置提供可执行的软件模块、用于交换的手持装置硬件的设备驱动程序或者用于与外部设备通信的可执行接口。The update module server 60 can be implemented as a single computer or multiple servers, and is logically configured to provide dynamic instruction sets and software and hardware modules for mobile devices, and execute dynamic instruction sets received from mobile devices. In the illustrated embodiment, the update module server 60 is coupled to a data store 70, which preferably houses a plurality of executable interfaces, a set of server operation codes, handset operation codes, and corresponding Executable instructions. Features of a general-purpose computer that can implement the update module server 60 will be described later with reference to FIG. 11 . One function of the update module server 60 is to receive and respond to requests received from handhelds 20, 30 to provide executable software modules, device drivers for swapped handheld hardware, to said handhelds. Programs or executable interfaces for communicating with external devices.

图2是图解说明无线通信设备20上的永久存储区240中的数据的示例性表示的方框图。稍后参照图10描述无线通信设备20和30的允许其发挥作用的一般特征。在示出的实施方案中,操作系统100常驻于永久存储区240中。操作系统100优选包括基本的可执行程序或允许无线通信设备发挥作用的程序。除了操作系统100之外,应用数据110和用户接口120也常驻于永久存储区240中。应用数据110优选包括用户信息、以及应用程序需要发挥作用或应用程序用来提供其服务的应用信息。FIG. 2 is a block diagram illustrating an exemplary representation of data in persistent storage 240 on wireless communication device 20 . The general features of wireless communication devices 20 and 30 that allow them to function are described later with reference to FIG. 10 . In the illustrated embodiment, operating system 100 is resident in persistent storage 240 . Operating system 100 preferably includes basic executable programs or programs that allow the wireless communication device to function. In addition to operating system 100 , application data 110 and user interface 120 also reside in persistent storage 240 . Application data 110 preferably includes user information, and application information that the application needs to function or that the application uses to provide its services.

用户接口120可以包括可执行的用户接口应用程序和应用程序所使用的用户接口数据。在可选的实施方案中,用户接口应用程序部分可以作为操作系统的一部分,并且用户接口120可以包括辅助的用户数据、自定义的数据或者用户接口应用程序或用户可使用的其他数据。永久存储区240还包括一个或多个设备驱动程序,例如设备驱动程序130、设备驱动程序132、一直到设备驱动程序n。这些设备驱动程序优选为方便所述手持装置与另一设备之间、或核心手持装置与必备的设备(例如,显示器、键盘、扬声器、麦克风或耳机,仅列举几种设备)之间通信的可执行的应用程序。The user interface 120 may include an executable user interface application and user interface data used by the application. In alternative embodiments, the user interface application portion may be part of the operating system, and the user interface 120 may include auxiliary user data, custom data, or other data usable by the user interface application or the user. Persistent storage 240 also includes one or more device drivers, such as device driver 130, device driver 132, through device driver n. These device drivers are preferably those that facilitate communication between the handset and another device, or between the core handset and an requisite device such as a display, keyboard, speaker, microphone, or headset, to name a few. Executable application.

作为永久存储区240的一部分,附加地示出了一系列的软件应用程序或模块,例如应用程序140、142、144、146...n。如图所示,大量的应用程序可以常驻于永久存储区240的一部分中。对可存储于永久存储区240中的应用程序的数量的唯一限制是存储区240的物理限制。As part of the persistent storage area 240, a series of software applications or modules are additionally shown, such as applications 140, 142, 144, 146...n. As shown, a number of applications may reside in a portion of persistent storage 240 . The only limit to the number of applications that can be stored in persistent storage 240 is the physical limitations of storage 240 .

图3A是图解说明示例性无线通信设备20的数据240的元素的方框图。在示出的实施方案中,数据240具有包含模块化的软件接口200、软件许可管理器205以及运行时间引擎230的多个应用242。其他的数据元素244(可以包含在如图2所示的应用数据110中)包括服务器操作代码(opcode)库210、手持装置操作代码库220以及运行时间指令260。FIG. 3A is a block diagram illustrating elements of data 240 of an exemplary wireless communication device 20 . In the illustrated embodiment, data 240 has multiple applications 242 including modular software interface 200 , software license manager 205 , and runtime engine 230 . Other data elements 244 (which may be included in application data 110 as shown in FIG. 2 ) include server operation code (opcode) library 210 , handset operation code library 220 , and runtime instructions 260 .

模块化的软件接口200优选被配置成接收用户请求,以安装新的软件模块和应用程序。此外,模块化的软件接口200优选被配置成接收网络启动软件模块下载和软件应用程序下载。模块化的软件接口200可以包括适于从用户接受用于用户启动下载的指令的用户接口模块。此外,模块化的软件接口200可以包括适于从网络服务器接收用于网络启动下载通信的通信模块。The modular software interface 200 is preferably configured to receive user requests to install new software modules and applications. Additionally, the modular software interface 200 is preferably configured to receive network-initiated software module downloads and software application downloads. Modular software interface 200 may include a user interface module adapted to accept instructions from a user for user initiated downloading. Additionally, the modular software interface 200 may include a communications module adapted to receive communications for network-initiated downloads from a network server.

在一个实施方案中,模块化的软件接口200接收来自用户的指令,以下载特定的软件模块。模块化的软件接口200优选被配置成与运行时间引擎230通信,以生成用于要从网络服务器下载的软件模块的请求。在可选的实施方案中,模块化的软件接口200接收来源于网络服务器的指令。模块化的软件接口200优选被配置成对所述指令进行解析和解释,以确定网络服务器正在请求手持装置下载和安装怎样的软件模块。模块化的软件接口200在确认来自网络的请求后,便与运行时间引擎230通信以实现下载。In one embodiment, the modular software interface 200 receives instructions from a user to download a particular software module. The modular software interface 200 is preferably configured to communicate with the runtime engine 230 to generate requests for software modules to be downloaded from the web server. In an alternative embodiment, the modular software interface 200 receives instructions from a web server. The modular software interface 200 is preferably configured to parse and interpret the instructions to determine what software module the web server is requesting the handset to download and install. After confirming the request from the network, the modular software interface 200 communicates with the runtime engine 230 to implement the download.

此外,模块化的软件接口200可被配置以确定要安装软件模块的永久存储区240中的可用空间。例如,模块化的软件接口200在收到安装新软件模块的请求后,便确定手持装置上可用的磁盘空间(或其他永久存储空间)的量。在一个实施方案中,为了确定可用的存储空间,模块化的软件接口200可以像前面参照图2所讨论的那样,询问手持装置的操作系统100。如果有足够的可用空间,那么模块化的软件接口200便可以如前所述那样与运行时间引擎230通信。Additionally, modular software interface 200 may be configured to determine the available space in persistent storage 240 where software modules are to be installed. For example, the modular software interface 200 determines the amount of disk space (or other persistent storage space) available on the handheld device upon receiving a request to install a new software module. In one embodiment, to determine available storage space, the modular software interface 200 may query the handheld device's operating system 100 as previously discussed with reference to FIG. 2 . If sufficient space is available, the modular software interface 200 can communicate with the runtime engine 230 as previously described.

如果没有足够的永久存储空间来安装被请求的软件模块,模块化的软件接口200便询问用户或网络50(根据请求来自何处),以识别永久存储区中可删除的软件模块或其他数据。作为一种选择,模块化的软件接口200可以确定可以删除什么数据,例如,通过询问操作系统或识别较早版本的被请求的软件模块。If there is not enough persistent storage space to install the requested software module, modular software interface 200 queries the user or network 50 (depending on where the request came from) to identify software modules or other data in persistent storage that may be deleted. Alternatively, modular software interface 200 may determine what data may be deleted, for example, by querying the operating system or identifying an earlier version of the requested software module.

此外,模块化的软件接口200优选被配置以命令操作系统100删除永久存储区240中被识别的软件模块或其他数据,以为新的软件模块提供足够的可用空间。如果没有可用的永久存储空间,并且通过删除已经占据永久存储区中的空间的数据或软件模块也不能获得足够的永久存储空间,那么模块化的软件接口200可通知用户或网络没有可用的空间来安装被请求的软件模块。Furthermore, modular software interface 200 is preferably configured to instruct operating system 100 to delete identified software modules or other data in persistent storage area 240 to make sufficient free space for new software modules. If there is no persistent storage space available, and sufficient persistent storage space cannot be obtained by deleting data or software modules already occupying space in the persistent storage area, then the modular software interface 200 can notify the user or the network that there is no space available to Install the requested software module.

继续参照图3A,手持装置操作代码库220优选包括代表更新模块服务器(如图1所示)60命令手持装置执行操作的每个函数或可执行代码段的操作代码全域(universe)。有利地,手持装置操作代码库220包括作为用于实际可执行的机器代码函数或代码段的占位符(placeholder)的操作码。因此,手持装置操作代码库220优选包含对应于手持装置20、30可执行的每个函数的所有可用的操作代码的列表。With continued reference to FIG. 3A , the handset operation code library 220 preferably includes an operation code universe representing each function or executable code segment that the update module server (shown in FIG. 1 ) 60 commands the handset to perform an operation. Advantageously, the handheld device operating code library 220 includes opcodes as placeholders for actual executable machine code functions or code segments. Accordingly, the handheld operation code library 220 preferably contains a listing of all available operation codes for each function executable by the handheld device 20 , 30 .

类似地,服务器操作代码库210优选包括代表每个服务器一侧的函数(server side function)或可执行代码段的操作代码全域。有利地,服务器操作代码库210可以只包含用于实际可执行的机器代码函数或代码段的操作代码,而这些操作代码并不常驻于无线通信设备20中。因此,服务器操作代码库220包含可由更新模块服务器60代表手持装置20和30执行的、用于每个可用的服务器函数的所有操作代码的列表。在优选的实施方案中,可用的服务器函数的数量可以大大超过可用的手持装置函数的数量,因为更新模块服务器60不受移动设备(例如,蜂窝电话和PDA)上通常存在的最小资源的影响Similarly, the server operation code repository 210 preferably includes a universe of operation code representing each server side function or executable code segment. Advantageously, the server opcode library 210 may only contain opcodes for actual executable machine code functions or code segments that are not resident in the wireless communication device 20 . Thus, server opcode library 220 contains a listing of all opcodes for each available server function that can be executed by update module server 60 on behalf of handsets 20 and 30 . In a preferred embodiment, the number of server functions available can greatly exceed the number of handset functions available because the update module server 60 is not subject to the minimal resources typically found on mobile devices (e.g., cell phones and PDAs)

运行时间引擎230优选被配置以处理动态指令集。动态指令集的一个实施例是用于安装软件模块的指令集。动态指令集的另一个实施例是用于安装新的硬件组件的设备驱动程序的指令集。动态指令集的处理包括将操作代码翻译成可执行的指令集、以及执行这些指令集。例如,可以连同数据有效载荷一起从更新模块服务器60接收一组手持装置操作代码。然后,将操作代码翻译成用于手持装置的可执行的指令。动态指令集的处理还包括对发送到更新模块服务器60的操作代码和相应的数据有效载荷进行编译。在需要的基础上,运行时间引擎230优选可以由无线通信设备20、30启动,以便运行时间引擎230仅在必要时运行,从而消耗手持装置20、30上的最少量的系统资源(例如,存储器、CPU周期等)。The runtime engine 230 is preferably configured to process dynamic instruction sets. One embodiment of a dynamic instruction set is an instruction set for installing software modules. Another embodiment of a dynamic instruction set is the instruction set of a device driver for installing new hardware components. Processing of dynamic instruction sets includes translating opcodes into executable instruction sets, and executing these instruction sets. For example, a set of handset operation codes may be received from update module server 60 along with a data payload. The operational code is then translated into executable instructions for the handheld device. The processing of the dynamic instruction set also includes compiling the opcodes and corresponding data payloads sent to the update module server 60 . The runtime engine 230 can preferably be started by the wireless communication device 20, 30 on an as-needed basis, so that the runtime engine 230 runs only when necessary, thereby consuming a minimal amount of system resources (e.g., memory) on the handheld device 20, 30 , CPU cycles, etc.).

现在参照图12,图12的方框图图解说明了示例性的无线通信设备620和模块化的硬件组件。在所示的实施方案中,手持装置620包括多个硬件模块,所述硬件模块包括屏幕680和键盘682。附加的硬件模块通常也包含在例如手持装置620的手持装置中,所述附加的硬件模块例如可以包括射频芯片集。硬件模块是能够在手持装置620内电通信的手持装置的组件。例如外壳的不具备通信能力的惰性(inert)组件不被视为硬件模块。Referring now to FIG. 12, a block diagram of FIG. 12 illustrates an exemplary wireless communication device 620 and modular hardware components. In the illustrated embodiment, the handheld device 620 includes a number of hardware modules including a screen 680 and a keyboard 682 . Additional hardware modules, which may include, for example, radio frequency chipsets, are also typically included in handheld devices such as handheld device 620 . A hardware module is a component of the handheld device that is capable of electrical communication within the handheld device 620 . Inert components, such as housings, that do not have communication capabilities are not considered hardware modules.

在示出的实施方案中,显示屏680可与新的显示屏690互换。例如,显示屏680可以限于显示单色,而显示屏690则可以显示彩色。类似地,键盘682可与新的键盘692互换。例如,新的键盘692能够照亮按键,而键盘682则不能。In the illustrated embodiment, the display screen 680 is interchangeable with a new display screen 690 . For example, display screen 680 may be limited to displaying monochrome, while display screen 690 may display color. Similarly, keyboard 682 is interchangeable with new keyboard 692 . For example, the new keyboard 692 is capable of illuminating the keys, while the keyboard 682 is not.

图3B是图解说明另一示例性无线通信设备20的数据240的元素的方框图。在所示出的实施方案中,数据240具有多个应用程序242,应用程序242包括模块化的硬件探测器202和运行时间引擎230。其他的数据元素(可包含在如图3A所示的应用数据110中)244包括服务器操作代码(opcode)库210、手持装置操作代码库220以及运行时间指令260。FIG. 3B is a block diagram illustrating elements of data 240 of another exemplary wireless communication device 20 . In the illustrated embodiment, data 240 has a plurality of applications 242 including modular hardware probe 202 and runtime engine 230 . Other data elements (which may be included in application data 110 as shown in FIG. 3A ) 244 include server operation code (opcode) library 210 , handset operation code library 220 , and runtime instructions 260 .

模块化的硬件探测器202优选被配置成确定新的硬件模块已在何时与先前的硬件模块交换。在一个实施方案中,模块化的硬件探测器202在上电后检测新的硬件模块是否存在。作为一种选择,模块化的硬件探测器202可以在通电模式期间操作,以检测手持装置20通电时被“热”交换、或在装置20上电期间被替换的任何新的硬件。模块化的硬件探测器202可以实施为机电组件和软件组件的组合,以执行检测功能,并且优选与运行时间引擎230通信,以通知运行时间引擎最新检测到的硬件模块。Modular hardware detector 202 is preferably configured to determine when a new hardware module has been swapped with a previous hardware module. In one embodiment, the modular hardware detector 202 detects the presence of new hardware modules after power-up. As an option, modular hardware detector 202 may operate during power-on mode to detect any new hardware that is "hot" swapped while handheld device 20 is powered on, or replaced during device 20 power-up. Modular hardware detector 202 may be implemented as a combination of electromechanical and software components to perform detection functions, and preferably communicates with runtime engine 230 to notify the runtime engine of newly detected hardware modules.

此外,模块化的硬件探测器202可以被配置成确定永久存储区240中用来安装新设备驱动程序的可用空间。例如,模块化的硬件探测器202一检测到新的硬件模块,便确定当前设备驱动程序(例如,图2所示的设备驱动程序N)所使用的存储空间的量和新设备驱动程序所需的存储空间的量。在一个实施方案中,模块化的硬件探测器200可以询问操作系统100以确定当前设备驱动程序所使用的存储空间的量。此外,为了确定新设备驱动程序所需的存储空间的量,模块化的硬件探测器202可以通过运行时间引擎230来询问图1所示的更新服务器60以获得该信息。Additionally, modular hardware probe 202 may be configured to determine the available space in persistent storage 240 for installing new device drivers. For example, upon detecting a new hardware module, the modular hardware detector 202 determines the amount of storage space used by the current device driver (e.g., device driver N shown in FIG. 2 ) and the amount of storage space required by the new device driver. amount of storage space. In one embodiment, modular hardware probe 200 may query operating system 100 to determine the amount of storage space currently used by device drivers. Additionally, to determine the amount of storage space required for a new device driver, modular hardware probe 202 may, via runtime engine 230, query update server 60 shown in FIG. 1 for this information.

如果当前设备驱动程序和新设备驱动程序大小相同,或者如果新设备驱动程序所需的存储空间小于当前设备驱动程序,那么可以在永久存储区中当前设备驱动程序所在的相同位置安装新设备驱动程序。如果新设备驱动程序所需的存储空间大于当前设备驱动程序,那么模块化的硬件探测器202优选可以在永久存储区240中另一部分(由模块化的硬件探测器200新分配用于设备驱动程序存储)安装新设备驱动程序。作为一种选择,模块化的硬件探测器202还可以询问用户,以识别永久存储区中可删除的数据,以便为新设备驱动程序腾出空间。If the current device driver and the new device driver are the same size, or if the new device driver requires less storage space than the current device driver, the new device driver can be installed in the same location in permanent storage as the current device driver . If the storage space required by the new device driver is larger than the current device driver, then the modular hardware detector 202 preferably can be in another part of the persistent storage area 240 (newly allocated by the modular hardware detector 200 for the device driver). storage) to install new device drivers. As an option, modular hardware detector 202 may also query the user to identify data in persistent storage that may be deleted to make room for new device drivers.

模块化的硬件探测器202优选被配置成,命令操作系统100在成功安装了新设备驱动程序之后删除当前设备驱动程序。优选地,在新设备驱动程序的安装过程中,在永久或易失性存储区中将当前设备驱动程序备份。Modular hardware detector 202 is preferably configured to instruct operating system 100 to delete the current device driver after a new device driver has been successfully installed. Preferably, during installation of a new device driver, the current device driver is backed up in permanent or volatile storage.

图17A示出了用于图解说明无线通信设备80与外部设备82之间的示例性的直接的物理连接84的方框图。直接的物理连接84可以通过连接外部设备82和手持装置80的标准或私有的电缆而实现。作为一种选择,物理连接84可以通过将手持装置80与外部设备以以下方式耦合实现,即,不采用实际的电缆耦合,从而使最终得到的耦合设备为整体单元。FIG. 17A shows a block diagram illustrating an exemplary direct physical connection 84 between a wireless communication device 80 and an external device 82 . A direct physical connection 84 can be made through a standard or proprietary cable connecting the external device 82 to the handset 80 . As an option, physical connection 84 may be achieved by coupling handheld device 80 to an external device in a manner that does not employ an actual cable coupling, so that the resulting coupled device is an integral unit.

图17B是图解说明无线通信设备86与外部设备88之间的示例性的直接的无线连接85的方框图。直接的无线连接85可以通过各种无线链路实现,例如蓝牙、红外线或无线通信的802.11和802.15族。FIG. 17B is a block diagram illustrating an exemplary direct wireless connection 85 between a wireless communication device 86 and an external device 88 . The direct wireless connection 85 can be accomplished through various wireless links, such as Bluetooth, infrared, or the 802.11 and 802.15 families of wireless communications.

图17C是图解说明无线通信设备90与外部设备98之间的示例性远程无线连接的方框图。所述远程无线连接可以包括外部设备98与基站94之间的链路96、以及手持装置90与基站94之间的链路。也可以包含填隙式的网络(interstitial network)和基站(未示出)。可以采用传统的无线通信协议或例如无线通信的802.11和802.15族的远程无线网络协议来建立所述远程无线连接。FIG. 17C is a block diagram illustrating an exemplary remote wireless connection between the wireless communication device 90 and the external device 98 . The long-range wireless connection may include a link 96 between the external device 98 and the base station 94 , and a link between the handset 90 and the base station 94 . Interstitial networks and base stations (not shown) may also be included. The remote wireless connection may be established using conventional wireless communication protocols or long-range wireless network protocols such as the 802.11 and 802.15 families of wireless communications.

图3C是图解说明示例性的无线通信设备20、30的数据240的组成的方框图。在示出的实施方案中,数据240具有多个应用程序242,而应用程序242包括外部设备探测器204和运行时间引擎230。可以包含在如图2所示的应用数据110中的其他的数据元素244包括服务器操作代码(opcode)库210、手持装置操作代码库220以及运行时间指令260。FIG. 3C is a block diagram illustrating the composition of data 240 of an exemplary wireless communication device 20 , 30 . In the illustrated embodiment, data 240 has a plurality of applications 242 , and applications 242 include external device detector 204 and runtime engine 230 . Other data elements 244 that may be included in application data 110 as shown in FIG. 2 include server operation code (opcode) library 210 , handset operation code library 220 , and runtime instructions 260 .

外部设备探测器204优选被配置成确定外部设备何时与手持装置20、30进行了物理连接,或者外部设备何时尝试通过无线链路与手持装置20、30进行连接。此外,外部设备探测器204优选能够检测导频信号或其他广播无线信号,以确定外部设备是否在手持装置附近,以便可以实现连接。外部设备探测器204可以实施为用于实现所述检测功能的机电组件和软件组件的组合。The external device detector 204 is preferably configured to determine when an external device is physically connected to the handheld device 20, 30, or when an external device is attempting to connect to the handheld device 20, 30 via a wireless link. Additionally, the external device detector 204 is preferably capable of detecting a pilot signal or other broadcast wireless signal to determine if an external device is in the vicinity of the handheld so that a connection can be made. The external device detector 204 may be implemented as a combination of electromechanical and software components for implementing the detection functionality.

尽管图3A、3B以及3C图解说明了模块化的软件接口200、模块化的硬件探测器202以及外部设备探测器204的单独的实施例,但是应当理解,接口200、硬件探测器202以及外部设备探测器204可以按照任意的组合而常驻于通信设备20的永久存储区240中。Although Figures 3A, 3B, and 3C illustrate separate embodiments of the modular software interface 200, the modular hardware detector 202, and the external device detector 204, it should be understood that the interface 200, the hardware detector 202, and the external device The detectors 204 may be resident in the persistent storage area 240 of the communication device 20 in any combination.

图3D是图解说明示例性的操作代码库和相应的运行时间指令集260的方框图。手持装置操作代码库220和运行时间指令集260优选位于手持装置20、30的数据存储区240中。在一个实施方案中,运行时间指令集260中的可执行指令按照一对一的关系与手持装置操作代码库220中包含的操作代码对应。作为一种选择,手持装置操作代码库220中的单个操作代码可以与运行时间指令集260中的多个可执行指令的序列对应。FIG. 3D is a block diagram illustrating an exemplary operational code library and corresponding runtime instruction set 260 . The handheld device operating code library 220 and runtime instruction set 260 are preferably located in the data storage area 240 of the handheld device 20 , 30 . In one embodiment, executable instructions in runtime instruction set 260 correspond to operation codes contained in handset operation code library 220 in a one-to-one relationship. Alternatively, a single opcode in the handset opcode library 220 may correspond to a sequence of multiple executable instructions in the run-time instruction set 260 .

图3E是图解说明示例性的运行时间指令集260的方框图。在示出的实施方案中,运行时间指令集260可以包含任何数量的可执行指令,从指令1到指令n。可选地,在运行时间指令集260中存在大量的函数,然而这些函数消耗手持装置20、30非常少的资源(例如永久存储器)。FIG. 3E is a block diagram illustrating an exemplary run-time instruction set 260 . In the illustrated embodiment, run-time instruction set 260 may contain any number of executable instructions, instruction 1 through instruction n. Optionally, there are a large number of functions in the runtime instruction set 260, however these functions consume very few resources of the handset 20, 30 (eg persistent memory).

图4是图解说明用户启动软件模块下载的示例性过程的流程图。最初,在步骤300,手持装置接收来自用户的应用程序请求。所述请求例如可以通过模块化的软件接口200接收。接下来,在步骤302,启动运行时间引擎。运行时间引擎一旦运行,便会根据需要采取的行动来编译一组服务器操作代码,如步骤304所示。在这种情况下,要编译的服务器操作代码集优选用于下载请求的软件应用程序或模块。可以从无线设备上运行的后台处理(background process)获得服务器操作代码集。作为一种选择,可以在用户的指示下,从无线设备上运行的过程中获得服务器操作代码集。经编译的服务器操作代码集优选使服务器如前所述那样应答被请求的软件模块。4 is a flowchart illustrating an exemplary process for a user to initiate a download of a software module. Initially, at step 300, a handheld device receives an application request from a user. The request can be received, for example, via a modular software interface 200 . Next, at step 302, the runtime engine is started. Once running, the runtime engine compiles a set of server operation codes according to the required actions, as shown in step 304 . In this case, the set of server operation codes to be compiled is preferably used to download the requested software application or module. The set of server operation codes may be obtained from a background process running on the wireless device. Alternatively, the set of server operation codes may be obtained from a process running on the wireless device at the direction of the user. The compiled set of server operation codes preferably causes the server to respond to requested software modules as previously described.

例如,所述无线设备从用户接收指令,以下载电话簿应用程序的扩展模块,以便可以保持总数为500的联系,而不是先前的100个联系。用户提供将要下载的新软件模块的名称或标识符。然后,指示模块化软服务器为手持装置提供适当的软件模块从而使所述手持装置增加总联系数的服务器操作代码集被编译。在这种情况下,结果是由所述运行时间引擎生成服务器操作代码集,如步骤304所示。For example, the wireless device receives instructions from the user to download an extension module for the phonebook application so that a total of 500 contacts can be maintained instead of the previous 100 contacts. The user provides the name or identifier of the new software module to be downloaded. Then, a set of server opcodes is compiled that instructs the modular soft server to provide the appropriate software modules to the handset so that the handset increases the total number of contacts. In this case, the result is a set of server operation codes generated by the runtime engine, as shown in step 304 .

一旦生成了所述服务器操作代码集,所述运行时间引擎便会在将名称或标识符信息包含在与所述服务器操作代码集一起发送的数据有效载荷中。例如,运行时间引擎可以从永久存储器或易失性存储器中取出应用程序模块数据或软件模块数据,或者例如通过模块化的软件接口200执行用于返回所需数据的指令。一旦获得了所述数据,运行时间引擎230接下来便会将所述数据插入到服务器操作代码集中,如步骤306所示。实现该操作的一种简单的方法是,将数据有效载荷以单个数据包的形式添加到服务器操作代码集中。Once the server operation code set is generated, the runtime engine includes name or identifier information in a data payload sent with the server operation code set. For example, the runtime engine may fetch application module data or software module data from persistent or volatile memory, or execute instructions for returning required data, eg, through the modular software interface 200 . Once the data is obtained, the runtime engine 230 next inserts the data into the server operation code set, as shown in step 306 . A simple way to do this is to add the data payload as a single packet to the set of server operation codes.

一旦将数据有效载荷与服务器操作代码集合并,运行时间引擎便会将具有相应的数据有效载荷的服务器操作代码集发送到服务器,如步骤308所示。运行时间引擎在发送了具有数据有效载荷的服务器操作代码集之后便可以停止,以释放无线设备上的资源,如步骤310所示。Once the data payload is merged with the server operation code set, the runtime engine sends the server operation code set with the corresponding data payload to the server, as shown in step 308 . The runtime engine may stop after sending the set of server operation codes with the data payload to free up resources on the wireless device, as shown in step 310 .

图5是图解说明用于激活无线通信设备上的常驻软件模块的示例性过程的流程图。图5示出的过程可以通过使用操作代码集或通过使用某些其他的无线数据通信手段来实现。最初,在步骤320,所述手持装置向网络许可服务器请求许可。图3A中示出的软件许可管理器205优选启动该步骤。网络许可服务器可与更新模块服务器60为同一服务器,或者可以是与更新模块服务器60不同的单独的服务器。手持装置20、30一旦发送了请求,接下来便会从所述网络许可服务器接收付款请求,如步骤322所示。如步骤324所示,作为响应手持装置向网络许可服务器提供付款细节。5 is a flow diagram illustrating an example process for activating a resident software module on a wireless communication device. The process shown in Figure 5 may be implemented by using a set of operation codes or by using some other means of wireless data communication. Initially, at step 320, the handset requests a license from a network license server. The software license manager 205 shown in Figure 3A preferably initiates this step. The network license server may be the same server as the update module server 60 or may be a separate server from the update module server 60 . Once the handheld device 20 , 30 has sent the request, it then receives a payment request from the network licensing server, as shown in step 322 . As shown in step 324, in response the handset provides payment details to the network licensing server.

在一个实施方案中,手持装置可以被配置成自动提供付款细节。作为一种选择,手持装置可以被配置成向用户请求该信息,以确保用户愿意为被请求的许可付款。手持装置在发送了付款细节之后,在步骤326接收许可服务器对收到付款细节的确认。在一个实施方案中,该确认可以用作所述付款已被处理的确认。In one embodiment, the handheld device can be configured to automatically provide payment details. As an option, the handheld device may be configured to request this information from the user to ensure that the user is willing to pay for the requested license. After the handset has sent the payment details, at step 326, the license server receives acknowledgment of receipt of the payment details. In one embodiment, this confirmation may serve as confirmation that the payment has been processed.

手持装置一旦收到了所述确认,接下来在步骤328接收来自许可服务器的许可证或激活钥匙。激活钥匙优选被配置成允许在手持装置上使用应用程序。如步骤330所示,一旦收到激活钥匙,便可激活应用程序。Once the handset has received the acknowledgment, it next receives a license or activation key from the license server at step 328 . The activation key is preferably configured to allow use of the application on the handheld device. As shown in step 330, once the activation key is received, the application can be activated.

图6是图解说明网络启动软件模块下载的示例性过程的流程图。最初,在步骤336,无线设备接收手持装置操作代码集。可以通过空中通信链路(例如具有无线通信网的链路)来接收手持装置操作代码集。所述操作代码优选被优化成使空中发送的数据量最小。此外,数据有效载荷可以包含在手持装置接收的操作代码集中。在示出的实施方案中,从网络更新模块服务器60接收手持装置操作代码集。6 is a flow diagram illustrating an exemplary process for network-initiating a software module download. Initially, at step 336, the wireless device receives a handset operation code set. The set of handset operation codes may be received over an air communication link, such as a link with a wireless communication network. The opcode is preferably optimized to minimize the amount of data sent over the air. Additionally, data payloads may be included in the set of opcodes received by the handset. In the illustrated embodiment, the handset operation code set is received from the network update module server 60 .

在步骤338,无线设备启动其运行时间引擎来处理手持装置操作代码集。作为一种选择,手持装置可以首先验证发送手持装置操作代码集的网络服务器。如步骤340所示,运行时间引擎对手持装置操作代码集进行解析,然后在步骤342提取出数据有效载荷。如果不存在数据有效载荷,则跳过该步骤,但是,网络更新模块服务器60可以在最初发送中包含可执行的软件应用程序。作为一种选择,手持装置操作代码集可命令手持装置从服务器请求软件模块。如果存在数据有效载荷,则将最终得到的数据存储在易失性存储器的可用部分中,以便以后使用。In step 338, the wireless device starts its runtime engine to process the handset opcode set. As an option, the handset may first authenticate the web server that sent the handset opcode set. As indicated at step 340 , the runtime engine parses the handset opcode set and then at step 342 extracts the data payload. If no data payload is present, this step is skipped, however, the network update module server 60 may include an executable software application in the initial transmission. Alternatively, the handset operation code set may instruct the handset to request the software module from the server. If there is a data payload, the resulting data is stored in an available portion of volatile memory for later use.

接下来,在步骤344,运行时间引擎获得与手持装置操作代码集中的操作代码对应的可执行的指令。这些指令可以从在手持装置的数据存储区的永久存储区中存储的远程运行时间指令集中获得。Next, at step 344, the runtime engine obtains executable instructions corresponding to the opcodes in the handset opcode set. These instructions may be obtained from a remote run-time instruction set stored in persistent storage in the handheld's data storage area.

一旦获得了与在手持装置操作代码集中的操作代码对应的可执行的指令,运行时间引擎便会执行这些指令,如步骤346所示。在执行上述指令时,可以从存储数据有效载荷的易失性存储器中获得要被操作(或安装)的任何必需数据。可选地或附加地,要被操作的任何必需数据可以作为执行指令的结果而获得。Once the executable instructions corresponding to the opcodes in the handset opcode set are obtained, the runtime engine executes these instructions, as shown in step 346 . Any necessary data to be manipulated (or installed) may be obtained from the volatile memory storing the data payload upon execution of the above instructions. Alternatively or additionally, any necessary data to be manipulated may be obtained as a result of executing the instructions.

例如,数据有效载荷可以包含网络请求手持装置安装的软件应用程序。此外,手持装置操作代码集中的一个或多个操作代码优选地与用于将数据有效载荷存储在手持装置的永久存储区器中的一个或多个可执行的指令对应。在该实施例中,包含软件模块的数据有效载荷一旦存储到永久存储器中,手持装置之后便可允许用户使用应用程序,或者作为一种选择,通过远程网络命令来使用应用程序。作为一种选择,数据有效载荷可以替换永久存储器容纳过时软件应用程序、模块或被选择删除以为新软件模块腾出空间的程序的一部分。因此,手持装置操作代码集和数据有效载荷在无线设备上运行,以为手持装置安装新的软件模块。如果需要的话,还可以采用附加的操作代码和指令以在安装新的模块或应用程序后对其进行配置。For example, the data payload may contain a software application that the network requests the handset to install. Furthermore, the one or more operation codes in the handset operation code set preferably correspond to one or more executable instructions for storing the data payload in the handset's persistent storage. In this embodiment, once the data payload containing the software modules is stored in persistent storage, the handheld device can then allow the user to use the application, or alternatively, use the application through a remote network command. As an option, the data payload may replace persistent memory housing obsolete software applications, modules, or portions of programs that were chosen to be removed to make room for new software modules. Accordingly, the handset operation code set and data payload are run on the wireless device to install new software modules for the handset. Additional opcodes and instructions may also be employed to configure new modules or applications after they are installed, if desired.

一旦全部执行了上述指令集,运行时间引擎便会停止,然后执行应用程序,如步骤348所示。具体示意性的实施例将解释如何使用网络启动下载。如果手持装置处于丢失或被盗的交通工具中,那么可以通过网络来联系并命令手持装置下载GPS模块(假定该手持装置具有能够实现GPS的硬件)。一旦下载并安装了GPS模块,GPS模块便可向网络报告位置信息,而网络则将该位置信息提供到交通工具的所有者或当局(authority),以方便跟踪该交通工具。有利地,所有这一切可以在不让与手持装置相邻的人知道的情况下完成。Once the above set of instructions are all executed, the runtime engine stops and the application program is executed, as shown in step 348 . A specific illustrative embodiment will explain how to initiate a download using the network. If the handset is in a lost or stolen vehicle, the handset can be contacted over the network and ordered to download the GPS module (assuming the handset has GPS capable hardware). Once downloaded and installed, the GPS module can report location information to the network, which in turn provides the location information to the vehicle's owner or authority for easy tracking of the vehicle. Advantageously, all of this can be done without the knowledge of those adjacent to the handheld device.

图7是图解说明用于在无线通信设备上安装软件模块的示例性过程的流程图。最初,在步骤350,无线设备接收手持装置操作代码集。可以通过空中通信链路(例如具有无线通信网的链路)来接收手持装置操作代码集。操作代码优选被优化成使空中发送的数据量最小。此外,数据有效载荷可以包含在手持装置所接收的操作代码集中。在示出的实施方案中,从网络软件模块服务器接收手持装置操作代码集。7 is a flow diagram illustrating an example process for installing a software module on a wireless communication device. Initially, at step 350, the wireless device receives a handset operation code set. The set of handset operation codes may be received over an air communication link, such as a link with a wireless communication network. The opcode is preferably optimized to minimize the amount of data sent over the air. Additionally, data payloads may be included in the set of opcodes received by the handset. In the illustrated embodiment, the handset operation code set is received from a network software module server.

在步骤352,无线设备启动其运行时间引擎来处理手持装置操作代码集。作为一种选择,手持装置可以首先验证发送手持装置操作代码集的网络服务器。如步骤354所示,运行时间引擎对手持装置操作代码集进行解析,然后在步骤356提取出数据有效载荷。如果不存在数据有效载荷,则跳过该步骤,但是,所述网络软件模块服务器可在最初发送中包含可执行的软件应用程序。作为一种选择,手持装置操作代码集可命令手持装置从上述服务器请求软件模块。如果存在数据有效载荷,则将最终得到的数据存储在易失性存储器的可用部分中,以便以后使用。At step 352, the wireless device starts its runtime engine to process the handset opcode set. As an option, the handset may first authenticate the web server that sent the handset opcode set. As indicated at step 354 , the runtime engine parses the handset opcode set and then at step 356 extracts the data payload. If no data payload is present, this step is skipped, however, the network software module server may include an executable software application in the initial transmission. As an option, the handset operating code set may instruct the handset to request software modules from the aforementioned servers. If there is a data payload, the resulting data is stored in an available portion of volatile memory for later use.

接下来,在步骤358,运行时间引擎获得与手持装置操作代码集中的操作代码对应的可执行的指令。这些指令可以从在手持装置的数据存储区的永久存储区中存储的远程运行时间指令集中获得。运行时间引擎一旦获得了与手持装置操作代码集中的操作代码对应的可执行的指令,便会执行这些指令,如步骤360所示。在执行所述指令时,可以从存储数据有效载荷的易失性存储器中获得要被操作(或安装)的任何必需数据。可选地或附加地,要被操作的任何必需数据可以作为执行指令的结果。一旦全部执行了指令集,运行时间引擎在步骤362停止,然后得到可用的应用程序,如步骤364所示。Next, at step 358, the runtime engine obtains executable instructions corresponding to the opcodes in the handset opcode set. These instructions may be obtained from a remote run-time instruction set stored in persistent storage in the handheld's data storage area. Once the runtime engine obtains the executable instructions corresponding to the opcodes in the handset opcode set, it executes these instructions, as shown in step 360 . Upon execution of the instructions, any necessary data to be manipulated (or installed) may be obtained from volatile memory storing the data payload. Alternatively or additionally, any necessary data to be manipulated may be a result of executing the instructions. Once the set of instructions has been fully executed, the runtime engine stops at step 362 and the application is made available, as shown at step 364 .

图8是图解说明用于终止无线通信设备上的软件模块的示例性过程的流程图。最初,在步骤370,所述手持装置接收终止通知。该终止通知可以通过无线通信网络接收,并可源于通过网络与手持装置通信耦合的许可服务器。在一个实施方案中,可以将终止通知关联到软件模块的试验周期,或者关联到模块的年许可费用。8 is a flow diagram illustrating an example process for terminating a software module on a wireless communication device. Initially, at step 370, the handset receives a termination notification. The termination notification may be received over a wireless communication network and may originate from a license server communicatively coupled to the handheld device over the network. In one embodiment, the termination notice may be tied to the trial period of the software module, or to the annual license fee for the module.

手持装置一旦收到终止通知,便会在步骤372确定是否被指示自动更新许可证或者为模块支付最初的费用。如果手持装置确定出未被授权或被指示自动更新或付费,那么在步骤374,手持装置告知用户软件模块的终止通知。Once the handset receives the termination notice, it determines at step 372 whether it is instructed to automatically renew the license or pay the initial fee for the module. If the handset determines that it is not authorized or is instructed to automatically renew or pay, then at step 374 the handset notifies the user of the termination notification of the software module.

可以通过在手持装置的显示器上显示信息、或者通过生成文本信息以存储于手持装置的存储器中稍后再看的方式来进行通知。通知还可以是视觉的,例如显示器上的消息或闪烁的光,或可以是听觉的,例如预先录制的消息或声音。作为一种选择,闪烁的光或声音(或手持装置的振动)可表明用户能够获得消息,并且该消息可以提供终止通知的细节。此外,手持装置还可向网络发送消息(或者,网络可以启动该过程),以将预先录制的语音信息保存在用于告知用户终止通知的用户语音信箱中。可以采用各种其他的通知方法,这一点是本领域的技术人员可以理解的。Notification may be by displaying a message on the display of the handheld device, or by generating a text message to be stored in memory of the handheld device for later viewing. Notifications can also be visual, such as a message on a display or a flashing light, or can be audible, such as a pre-recorded message or sound. As an option, a flashing light or sound (or vibration of the handheld device) may indicate that a message is available to the user, and the message may provide details of the termination notification. In addition, the handset can also send a message to the network (or the network can initiate the process) to save a pre-recorded voice message in the user's voicemail for the termination notification. Various other notification methods can be used, which will be understood by those skilled in the art.

一旦用户被告知了终止通知,手持装置在步骤376接收用户的指示。在步骤378,手持装置对该指示进行检查以确定是否应当更新许可证(或者是否支付了最初的费用)。如果来自用户的指示是不进行更新(或未付款),那么在步骤380,手持装置使上述软件模块无效。在一个实施方案中,手持装置可以一直等待,直到无效前的许可周期或评价周期结束。此外,如果在步骤378中确定的结果是没有收到用户的指示,那么缺少指示可以解释成否定应答,并且在步骤380使上述软件模块无效。Once the user has been notified of the termination notification, the handset receives the user's indication at step 376 . In step 378, the handset checks this indication to determine if the license should be renewed (or if the original fee was paid). If the instruction from the user is not to update (or not pay for), then at step 380 the handset deactivates the aforementioned software modules. In one embodiment, the handset may wait until the end of the pre-invalidation permission period or evaluation period. Additionally, if it is determined at step 378 that no indication has been received from the user, then the absence of an indication may be interpreted as a negative response and at step 380 the aforementioned software module is deactivated.

在步骤378,如果所述手持装置确定的结果是,用户的指示是进行更新或付款,那么手持装置便向网络或许可服务器发送更新指令,如步骤382所示。此外,如果在步骤372,手持装置确定的结果是被授权自动进行更新或付款,那么在步骤382,手持装置也会发送适当的指令。(例如,所述许可服务器)在更新指令接收结束时,通过信用卡记帐或者通过在手持装置服务的消费者帐单上增加项目(line item)来使付款生效。At step 378, if the handheld determines that the user's instruction is to update or pay, then the handheld sends an update command to the network or license server, as shown at step 382. Additionally, if at step 372 the handheld device determines that it is authorized to automatically make an update or payment, then at step 382 the handheld device will also send the appropriate command. (eg, the license server) validates payment by credit card debit or by adding a line item to the customer's bill for handheld device services at the end of receipt of the update instruction.

如步骤384所示,响应于付款或进行更新的指示,手持装置可以接收用来命令软件继续运行或允许附加功能的许可证或钥匙。在步骤386,用许可证或钥匙激活应用程序,以便用户此后可以在新的许可周期内使用软件模块或应用程序。As shown in step 384, in response to payment or an instruction to perform an update, the handheld device may receive a license or key to instruct the software to continue running or to allow additional functionality. At step 386, the application is activated with a license or key so that the user can thereafter use the software module or application for a new license period.

图9是图解说明为使用无线通信设备上的软件模块而付款的示例性过程的流程图。最初,在步骤390,应用程序可以收集用于应用程序本身或手持装置上的其他应用程序的使用数据。这些数据可优选存储于手持装置的永久存储器中。接下来,在步骤392启动运行时间引擎。运行时间引擎一旦运行,便可以对服务器操作代码集进行编译,如步骤394所示。在步骤396,经编译的服务器操作代码集优选使服务器处理包含在相应的数据有效载荷中的使用数据,其中,所述使用数据被插入所述操作代码集中(或者添加到所述操作代码集中)。9 is a flow diagram illustrating an exemplary process of paying for use of a software module on a wireless communication device. Initially, at step 390, the application may collect usage data for the application itself or other applications on the handheld device. These data may preferably be stored in a persistent memory of the handheld device. Next, at step 392 the runtime engine is started. Once running, the runtime engine can compile the server operation code set, as shown in step 394 . In step 396, the compiled set of server operation codes preferably causes the server to process the usage data contained in the corresponding data payload, wherein the usage data is inserted into (or added to) the set of operation codes .

一旦将数据有效载荷与服务器操作代码集合并,运行时间引擎便将具有相应的数据有效载荷的服务器操作代码集发送到服务器,如步骤398所示。在服务器操作代码集与数据有效载荷被发送之后,手持装置优选接收来自服务器的记帐细节,如步骤399所示。记帐细节优选涉及设置了服务器操作代码集的使用数据。最后,终止运行时间引擎,以释放无线设备上的资源。Once the data payload is merged with the server operation code set, the runtime engine sends the server operation code set with the corresponding data payload to the server, as shown in step 398 . After the server opcode set and data payload are sent, the handset preferably receives billing details from the server, as shown in step 399 . The billing details preferably relate to usage data with the server operation code set set. Finally, the runtime engine is terminated to free resources on the wireless device.

图13是图解说明用于获得来自新硬件组件的简要信息的示例性过程的流程图。最初,在步骤700手持装置上电。优选地,手持装置在上电后检查其各种硬件组件,例如,通过与各个组件通信以确定其状态。作为一种选择,如果手持装置已经运行,则手持装置可主动(例如,由于预定的事件)或者通过外部指令(例如,从网络或用户接收的)来启动相同的检查过程,以确定各种硬件组件的状态。13 is a flowchart illustrating an example process for obtaining brief information from new hardware components. Initially, at step 700 the handset is powered on. Preferably, the handheld device checks its various hardware components after power-up, eg, by communicating with each component to determine its status. Alternatively, if the handset is already running, the handset can initiate the same inspection process either actively (e.g., due to a predetermined event) or through external command (e.g., received from the network or the user) to determine the various hardware The state of the component.

接下来,在步骤702,手持装置检测新的硬件组件。新的组件不需要是会有新功能的组件,而可以是先前的硬件模块替代物,例如新的显示屏。手持装置在检测到新的硬件组件后,在步骤704确定组件的类型,例如,屏幕、键盘、无线芯片集或类似的装置。手持装置然后在步骤706询问所述新组件,以获得与该新组件有关的信息。在步骤708,手持装置接收该新组件的信息,并且优选将其存储在永久或易失性存储器中。在一个实施方案中,新硬件模块的信息包括用来唯一地识别新硬件模块的标识符。Next, at step 702, the handheld device detects new hardware components. The new component need not be a component that will have a new function, but can be a replacement for the previous hardware module, such as a new display. After the handheld device detects a new hardware component, it determines the type of component at step 704, eg, screen, keyboard, wireless chipset, or similar device. The handset then interrogates the new component at step 706 for information related to the new component. At step 708, the handset receives the new component's information and preferably stores it in permanent or volatile memory. In one embodiment, the information of the new hardware module includes an identifier used to uniquely identify the new hardware module.

图14是用于向远程服务器请求用于新硬件组件的设备驱动程序的示例性过程的流程图。最初,在步骤720启动运行时间引擎。所述运行时间引擎一旦运行,便可以对服务器操作代码集进行编译,如步骤722所示。服务器操作代码集可以从运行在无线设备20、30上的后台处理中获得。作为一种选择,服务器操作代码集可以在用户的指示下,从运行在无线设备上的过程中获得。经编译的服务器操作代码集优选使服务器利用可执行的设备驱动程序来进行答复,以便允许手持装置与新硬件模块通信,并充分利用该新硬件模块的功能。14 is a flowchart of an example process for requesting a device driver for a new hardware component from a remote server. Initially, at step 720 the runtime engine is started. Once running, the runtime engine can compile the server operation code set, as shown in step 722 . The set of server operation codes may be obtained from a background process running on the wireless device 20,30. Alternatively, the set of server operation codes may be obtained from a process running on the wireless device at the direction of the user. The compiled set of server operation codes preferably causes the server to reply with an executable device driver to allow the handset to communicate with the new hardware module and take full advantage of the functionality of the new hardware module.

例如,无线设备检测到已经安装了新硬件模块。询问新硬件模块并获得简明的概况信息。对服务器操作代码集进行编译,以命令所述服务器为手持装置提供用于新硬件模块的可执行的设备驱动程序,以便手持装置可与新硬件模块通信。在这种情况下,结果是通过运行时间引擎生成的服务器操作代码集,如步骤722所示。For example, the wireless device detects that a new hardware module has been installed. Inquire about new hardware modules and get brief overview information. A server opcode set is compiled to instruct the server to provide the handheld with an executable device driver for the new hardware module so that the handheld can communicate with the new hardware module. In this case, the result is a set of server operation codes generated by the runtime engine, as shown in step 722 .

服务器操作代码集一旦生成,运行时间引擎便将与新硬件模块有关的信息包含在与服务器操作代码集对应的数据有效载荷中。例如,运行时间引擎可以从永久存储器或易失性存储器中取出硬件模块信息,或者执行用于返回所需数据的指令。一旦获得了所述数据,运行时间引擎接下来便将新硬件模块信息插入到服务器操作代码集,如步骤724所示。实现该操作的一种简单的方法是,将数据有效载荷以单个数据包的形式添加到所述服务器操作代码集中。Once the server opcode set is generated, the runtime engine includes information about the new hardware module in the data payload corresponding to the server opcode set. For example, the runtime engine may fetch hardware module information from persistent or volatile memory, or execute instructions for returning required data. Once the data is obtained, the runtime engine next inserts the new hardware module information into the server opcode set, as shown in step 724 . A simple way to do this is to add the data payload as a single packet to the set of server operation codes.

一旦将数据有效载荷与服务器操作代码集合并,运行时间引擎便会将具有相应的数据有效载荷的服务器操作代码集发送到服务器,如步骤726所示。运行时间引擎在发送了服务器操作代码集与数据有效载荷之后便可以停止,以释放无线设备上的资源,如步骤728所示。Once the data payload is merged with the server operation code set, the runtime engine sends the server operation code set with the corresponding data payload to the server, as shown in step 726 . The runtime engine may stop after sending the server opcode set and data payload to free up resources on the wireless device, as shown in step 728 .

图15是图解说明将用于新硬件组件的设备驱动程序安装在无线通信设备上的示例性过程的流程图。最初,在步骤730,无线设备接收手持装置操作代码集。可以通过空中通信链路来接收手持装置操作代码集,例如通过具有无线通信网的链路。操作代码优选被优化成使空中发送的数据量最小。此外,数据有效载荷可以包含在手持装置所接收的操作代码集中。15 is a flowchart illustrating an exemplary process of installing a device driver for a new hardware component on a wireless communication device. Initially, at step 730, the wireless device receives a handset operation code set. The handset operation code set may be received over an air communication link, for example via a link with a wireless communication network. The opcode is preferably optimized to minimize the amount of data sent over the air. Additionally, data payloads may be included in the set of opcodes received by the handset.

在步骤732,无线设备启动其运行时间引擎来处理手持装置操作代码集。如步骤734所示,运行时间引擎对手持装置操作代码集进行解析,然后在步骤736提取数据有效载荷。数据有效载荷优选存储在易失性存储器的可用部分以便以后使用。接下来,如步骤738所示,运行时间引擎获得与手持装置操作代码集中的操作代码对应的可执行的指令。这些指令可以从在手持装置的数据存储区的永久存储区中存储于的远程运行时间指令中获得。At step 732, the wireless device starts its runtime engine to process the handset opcode set. As indicated at step 734 , the runtime engine parses the handset opcode set and then at step 736 extracts the data payload. The data payload is preferably stored in an available portion of volatile memory for later use. Next, as shown in step 738, the runtime engine obtains executable instructions corresponding to the opcodes in the handheld device opcode set. These instructions may be obtained from remote runtime instructions stored in persistent storage in the handheld's data storage area.

一旦获得了与手持装置操作代码集中的操作代码对应的可执行的指令,运行时间引擎便会执行这些指令,如步骤740所示。在执行指令时,可以从存储数据有效载荷的易失性存储器中获得要被操作的任何必需数据。可选地或附加地,要被操作的任何必需数据可以作为执行指令的结果。优选地,指令集的执行使得用于新硬件模块的设备驱动程序安装在手持装置上。Once the executable instructions corresponding to the opcodes in the handset opcode set are obtained, the runtime engine executes these instructions, as shown in step 740 . Any necessary data to be manipulated upon execution of an instruction may be obtained from volatile memory storing the data payload. Alternatively or additionally, any necessary data to be manipulated may be a result of executing the instructions. Preferably, execution of the instruction set causes device drivers for new hardware modules to be installed on the handheld device.

例如,数据有效载荷包含手持装置需要用来与新硬件模块通信的设备驱动程序。此外,手持装置操作代码集中的一个或多个操作代码优选对应于,用于将数据有效载荷存储在手持装置的永久存储区器中的一个或多个可执行的指令。在该实施例中,包含设备驱动程序的数据有效载荷一旦存储到永久存储器中,手持装置此后便可以利用设备驱动程序(被配置成可以充分利用新硬件模块的功能)与新硬件模块进行通信。For example, the data payload contains the device drivers that the handset needs to communicate with the new hardware module. Furthermore, the one or more operation codes in the handset operation code set preferably correspond to one or more executable instructions for storing the data payload in the handset's persistent storage. In this embodiment, once the data payload containing the device driver is stored in persistent storage, the handheld device can thereafter communicate with the new hardware module using the device driver (configured to take advantage of the functionality of the new hardware module).

作为一种选择,数据有效载荷可以替换永久存储器的、包含用于被替换的硬件组件的过时设备驱动程序的一部分。因此,手持装置操作代码集和数据有效载荷在无线设备上运行,以为新硬件模块安装新的设备驱动程序。在安装新的设备驱动程序后,还可以采用附加的操作代码和指令来配置新的设备驱动程序或手持装置的其他方面。As an option, the data payload may replace a portion of persistent storage containing obsolete device drivers for the replaced hardware component. Thus, the handset opcode set and data payload are run on the wireless device to install new device drivers for new hardware modules. After the new device driver is installed, additional opcodes and instructions may also be employed to configure the new device driver or other aspects of the handheld.

如步骤742所示,运行时间引擎一旦全部执行了指令集便可以停止。有利地,可以启动和停止运行时间引擎,以便使其仅在必要时运行。这样便节省了无线设备上的系统资源,例如可以节省易失性存储空间、CPU周期、以及电池寿命。如步骤746所示,一旦安装了用于新硬件模块的设备驱动程序,并根据使用而对其进行了配置,那么手持装置便可以在正常操作过程中开始使用该新硬件模块。As shown in step 742, the runtime engine may stop once the instruction set has been fully executed. Advantageously, the runtime engine can be started and stopped so that it runs only when necessary. This saves system resources on the wireless device, such as volatile storage space, CPU cycles, and battery life can be saved. As shown in step 746, once the device driver for the new hardware module is installed and configured for use, the handheld device can begin using the new hardware module during normal operation.

图16图解说明了用于在无线通信设备上配置新硬件组件的示例性过程的流程图。最初,在步骤750,手持装置利用新的设备驱动程序向新硬件模块发送建立(setup)请求。接下来,在步骤752,手持装置从新硬件模块接收响应。在一个实施方案中,响应可包含有关硬件模块的更加全面的概况信息,这些信息可以由设备驱动程序来解释,以细调设备的操作。例如,响应可以为设备驱动程序提供与硬件组件或其通信能力有关的附加信息(例如硬件组件的接口版本),或者使设备驱动程序与新硬件模块之间的通信更有效的其他信息。16 illustrates a flow diagram of an example process for configuring new hardware components on a wireless communication device. Initially, at step 750, the handset sends a setup request to the new hardware module using the new device driver. Next, at step 752, the handset receives a response from the new hardware module. In one embodiment, the response may contain more comprehensive profile information about the hardware modules, which may be interpreted by the device driver to fine-tune the operation of the device. For example, the response may provide the device driver with additional information about the hardware component or its communication capabilities (such as the hardware component's interface version), or other information that makes communication between the device driver and the new hardware module more efficient.

作为一种选择,如步骤754中所确定的那样,响应可以表示与新硬件模块尝试的通信失败。如果建立请求收到表明建立失败的响应,那么手持装置返回到步骤750,并发送另一个建立请求。在一个实施方案中,手持装置可以循环发送预定数量(例如N个)的建立请求,直到为新硬件组件提供正确格式化的请求为止。例如,各种建立请求可以与用于设备驱动程序的不同版本的接口或不同的通信模式一致。Alternatively, as determined in step 754, the response may indicate that an attempted communication with the new hardware module failed. If the setup request receives a response indicating setup failure, the handset returns to step 750 and sends another setup request. In one embodiment, the handset may loop through a predetermined number (eg, N) of setup requests until a properly formatted request is provided for the new hardware component. For example, various setup requests may correspond to different versions of interfaces or different communication modes for a device driver.

对于设备驱动程序与新硬件模块的反复处理操作来说,还可能存在同步问题。因此,收到成功响应的特殊建立请求可有利地为设备驱动程序提供以下重要信息:安装在新硬件模块上的固件的版本、新硬件模块的容量、以及与新硬件模块有关的其他信息。在步骤754中确定的结果是,收到了来自新硬件模块的成功响应,手持装置便可以在正常操作过程中继续使用新硬件模块,如步骤756所示。如果在N个建立请求之后没有收到成功响应,则可以恢复旧的设备驱动程序。有利地,向后兼容的设备可以与旧的设备驱动程序一起运行,尽管在旧的设备驱动程序中,新的或改进的功能可能是不可用的。There may also be synchronization issues with the repeated processing of device drivers and new hardware modules. Thus, receiving a successful response to a special build request can advantageously provide the device driver with important information: the version of firmware installed on the new hardware module, the capacity of the new hardware module, and other information related to the new hardware module. The result determined in step 754 is that a successful response from the new hardware module has been received, and the handheld device can continue to use the new hardware module during normal operation, as shown in step 756 . If no success response is received after N setup requests, the old device driver can be restored. Advantageously, backward compatible devices can operate with older device drivers, even though new or improved functionality may not be available in the older device drivers.

图18示出了用于本发明的另一实施方案的、图解说明用于从外部设备中获得简要信息的示例性过程的流程图。最初,在步骤800手持装置检测来自外部设备的连接。可以通过有线或无线链路来检测连接。如步骤802所示,手持装置在检测到连接后,便确定该连接是否是由用户发起的。例如,用户可以按压一连串的按键或发出口头命令,以命令与新设备相连的手持装置。在一个实施方案中,如果连接是由用户发起的,则由用户直接向手持装置提供简要的设备信息。在这种实施方案中,手持装置接下来在步骤804存储简要的设备信息。Figure 18 shows a flowchart illustrating an exemplary process for obtaining brief information from an external device for another embodiment of the present invention. Initially, at step 800 the handset detects a connection from an external device. Connections can be detected over wired or wireless links. As shown in step 802, after the handheld device detects the connection, it determines whether the connection is initiated by the user. For example, a user may press a series of keys or issue a verbal command to command a handheld connected to a new device. In one embodiment, brief device information is provided directly to the handset by the user if the connection is initiated by the user. In such an embodiment, the handset then stores the brief device information at step 804 .

作为一种选择,如果检测并不是由用户发起的,那么手持装置接下来便制定用于外部设备的询问,如步骤806所示。询问可以有利地与标准协议一致,或者可以是专有协议。一旦制定了询问,手持装置便在步骤808向外部设备发送询问。在步骤810,手持装置确定是否已收到来自外部设备的有效响应。如果没有响应或者响应无效,那么手持装置返回到步骤806,重新制定询问并继续询问外部设备。有利地,手持装置可以循环通过各种已知的询问格式和协议,直到收到有效的响应为止。一旦收到优选包括与外部设备有关的简明概况信息的有效响应,手持装置便存储该简明概况信息,如步骤304所示。Alternatively, if the detection was not initiated by the user, the handset then formulates a query for the external device, as shown in step 806 . The query may advantageously conform to a standard protocol, or may be a proprietary protocol. Once the query is formulated, the handset sends the query at step 808 to the external device. At step 810, the handset determines whether a valid response has been received from the external device. If there is no response or the response is invalid, the handset returns to step 806 to reformulate the query and continue to query the external device. Advantageously, the handheld device can cycle through various known challenge formats and protocols until a valid response is received. Upon receipt of a valid response, preferably including brief profile information about the external device, the handset stores the brief profile information, as shown in step 304 .

图19是图解说明用于向远程服务器请求接口软件的示例性过程的流程图。最初,在步骤820启动运行时间引擎。运行时间引擎一旦运行,便可以对服务器操作代码集进行编译,如步骤822所示。服务器操作代码集可以从运行在无线设备上的后台处理中获得。作为一种选择,服务器操作代码集可以在用户的指示下,从运行在无线设备上的处理中获得。经编译的服务器操作代码集优选使服务器以用于连接于手持装置的特殊外部设备的可执行的接口来进行答复。19 is a flowchart illustrating an exemplary process for requesting interface software from a remote server. Initially, at step 820 the runtime engine is started. Once running, the runtime engine can compile the set of server operation codes, as shown in step 822 . The set of server operation codes may be obtained from a background process running on the wireless device. Alternatively, the set of server operation codes may be obtained from a process running on the wireless device at the direction of the user. The compiled set of server operation codes preferably causes the server to reply with an executable interface for the particular external device connected to the handheld.

例如,无线设备检测来自外部设备的连接。询问外部设备并获得简明的概况信息。对用于命令服务器为手持装置提供用于外部设备的可执行的接口,以便手持装置与外部设备通信的服务器操作代码集进行编译。在这种情况下,结果是由运行时间引擎生成服务器操作代码集,如步骤822所示。For example, a wireless device detects a connection from an external device. Ask about external devices and get concise overview information. A set of server opcodes is compiled for instructing the server to provide the handheld device with an executable interface for the external device so that the handheld device communicates with the external device. In this case, the result is a set of server operation codes generated by the runtime engine, as shown in step 822 .

服务器操作代码集一旦生成,运行时间引擎便将用于外部设备的信息包含在与服务器操作代码集对应的数据有效载荷中。例如,运行时间引擎可以从永久存储器或易失性存储器中取出简明的概况数据,或者执行用于返回所需数据的指令。一旦获得了数据,运行时间引擎接下来便将数据插入到服务器操作代码集,如步骤824所示。实现该操作的一种简单的方法是,将数据有效载荷以单个数据包的形式添加到服务器操作代码集中。Once the server operation code set is generated, the runtime engine includes information for the external device in the data payload corresponding to the server operation code set. For example, the runtime engine may fetch compact profile data from persistent or volatile memory, or execute instructions for returning the required data. Once the data is obtained, the runtime engine next inserts the data into the server operation code set, as shown in step 824 . A simple way to do this is to add the data payload as a single packet to the set of server operation codes.

一旦将数据有效载荷与服务器操作代码集合并,运行时间引擎便会将具有相应的数据有效载荷的服务器操作代码集发送到服务器,如步骤826所示。运行时间引擎在发送了服务器操作代码集与数据有效载荷之后便可以停止,以释放无线设备上的资源,如步骤828所示。Once the data payload is merged with the server operation code set, the runtime engine sends the server operation code set with the corresponding data payload to the server, as shown in step 826 . After sending the server opcode set and data payload, the runtime engine can be stopped to release resources on the wireless device, as shown in step 828.

图20是图解说明用于在无线通信设备上安装接口软件的示例性过程的流程图。最初,在步骤830,无线设备接收手持装置操作代码集。可以通过空中通信链路(例如具有无线通信网的链路)接收手持装置操作代码集。操作代码优选被优化成使空中发送的数据量最小。此外,数据有效载荷可以包含在手持装置所接收的操作代码集中。20 is a flow diagram illustrating an example process for installing interface software on a wireless communication device. Initially, at step 830, the wireless device receives a handset operation code set. The hand-held device operation code set may be received over an air communication link, such as a link with a wireless communication network. The opcode is preferably optimized to minimize the amount of data sent over the air. Additionally, data payloads may be included in the set of opcodes received by the handset.

在步骤832,无线设备启动其运行时间引擎来处理手持装置操作代码集。如步骤834所示,运行时间引擎对手持装置操作代码集进行解析,然后在步骤836提取数据有效载荷。如果不存在数据有效载荷,则可以跳过该步骤,如果存在数据有效载荷,则将最终得到的数据存储在易失性存储器的可用部分中,以便以后使用。接下来,如步骤838所示,运行时间引擎获得与手持装置操作代码集中的操作代码对应的可执行的指令。这些指令可以从存储于手持装置的数据存储区的永久存储区中的远程运行时间指令集中获得。At step 832, the wireless device starts its runtime engine to process the handset opcode set. As indicated at step 834 , the runtime engine parses the handset opcode set and then at step 836 extracts the data payload. If no data payload is present, this step can be skipped, and if present, the resulting data is stored in an available portion of the volatile memory for later use. Next, as shown in step 838, the runtime engine obtains executable instructions corresponding to the operation codes in the handset operation code set. These instructions may be obtained from a remote runtime instruction set stored in persistent storage in the data storage area of the handset.

一旦获得了与手持装置操作代码集中的操作代码对应的可执行的指令,运行时间引擎便执行这些指令,如步骤840所示。在执行指令时,可以从存储数据有效载荷的易失性存储器中获得将要被操作的任何必需数据。可选地或附加地,要被操作的任何必需数据可以作为执行指令的结果。Once the executable instructions corresponding to the opcodes in the handset opcode set are obtained, the runtime engine executes these instructions, as shown in step 840 . As instructions are executed, any necessary data to be manipulated is available from volatile memory which stores the data payload. Alternatively or additionally, any necessary data to be manipulated may be a result of executing the instructions.

例如,数据有效载荷可以包含手持装置需要用来与外部设备通信的接口。此外,手持装置操作代码集中的一个或多个操作代码优选与用于将数据有效载荷存储在手持装置的永久存储区器中的一个或多个可执行的指令相对应。在该实施例中,包含接口的数据有效载荷一旦存储到永久存储器中,手持装置之后便可以利用可执行的接口与设备进行通信。作为一种选择,数据有效载荷可以替换永久存储器的、包含有用于特殊外部设备的过时接口的一部分。因此,手持装置操作代码集和数据有效载荷在无线设备上运行,以便为外部设备安装新的接口。如果需要的话,一旦安装了新的接口,还可以采用附加的操作代码和指令来配置新的接口。For example, the data payload may contain the interface that the handheld needs to use to communicate with external devices. Furthermore, the one or more operation codes in the handset operation code set preferably correspond to one or more executable instructions for storing the data payload in the handset's persistent storage. In this embodiment, once the data payload containing the interface is stored in persistent storage, the handheld device can then communicate with the device using the executable interface. As an option, the data payload may replace a portion of persistent storage that contains an obsolete interface for a particular external device. Thus, the handset opcode set and data payload run on the wireless device to install the new interface for the external device. Additional opcodes and instructions can also be used to configure the new interface once it is installed, if desired.

如步骤842所示,运行时间引擎一旦全部执行了指令集便可以停止。有利地,可以启动和停止运行时间引擎,以便使其仅在必要时运行。这样便节省了无线设备上的系统资源,例如可以节省易失性存储空间和CPU周期。一旦安装了用于外部设备的接口,并根据使用对其进行了配置,那么手持装置便可以开始与外部设备进行通信,如步骤846所示。As shown in step 842, the runtime engine may stop once the instruction set has been fully executed. Advantageously, the runtime engine can be started and stopped so that it runs only when necessary. This saves system resources on the wireless device, such as saving volatile memory space and CPU cycles. Once the interface for the external device is installed and configured for use, the handset can begin communicating with the external device, as shown in step 846 .

图21是图解说明用于对外部设备进行初始化的示例性过程的流程图。最初,在步骤850,手持装置利用新的接口来向外部设备发送建立请求。接下来,在步骤852,手持装置接收来自外部设备的响应。在一个实施方案中,响应可以包含有关外部设备的更加全面的概况信息。例如,响应可以为手持装置提供与通信接口有关的附加信息(例如接口的版本),或者使设备之间的通信更有效的其他信息。21 is a flow diagram illustrating an example process for initializing an external device. Initially, at step 850, the handset utilizes the new interface to send a setup request to the external device. Next, at step 852, the handset receives a response from the external device. In one embodiment, the response may contain more comprehensive profile information about the external device. For example, the response may provide the handset with additional information related to the communication interface, such as the version of the interface, or other information to make communication between the devices more efficient.

作为一种选择,步骤854中确定的结果是,响应指示出对外部设备进行的初始化失败了。如果建立请求收到表明建立失败的响应,那么手持装置返回到步骤850,并发送另一个建立请求。在一个实施方案中,手持装置可以循环发送各种建立请求,直到为外部设备提供正确格式化的请求为止。例如,各种建立请求可以与不同版本的接口一致。因此,收到成功响应的特殊的建立请求可以有利地为手持装置提供以下重要信息:与安装在外部设备上的固件的版本有关的信息、外部设备的容量以及与外部设备有关的其他信息。如步骤854所示,一旦收到来自外部设备的成功响应,手持装置便可以与外部设备交换信息,如步骤856所示。Alternatively, as a result of the determination in step 854, the response indicates that initialization of the external device has failed. If the setup request receives a response indicating setup failure, the handset returns to step 850 and sends another setup request. In one embodiment, the handset may loop through the various setup requests until a properly formatted request is provided to the external device. For example, various build requests may correspond to different versions of the interface. Thus, receiving a successful response to a particular setup request may advantageously provide the handset with important information about the version of firmware installed on the external device, the capabilities of the external device, and other information about the external device. Once a successful response is received from the external device, as shown in step 854, the handset may exchange information with the external device, as shown in step 856.

图10是图解说明可以与本文所描述的各种实施方案一起使用的、示例性无线通信设备450的方框图。例如,无线通信设备450可以与手持装置或PDA网络设备一起使用,或者可以用作无线网状网络中的传感器节点(sensor node)的一部分。但是,也可以采用其他的无线通信设备和/或结构,这一点对于本领域的技术人员来说是很清楚的。Figure 10 is a block diagram illustrating an exemplary wireless communication device 450 that may be used with various embodiments described herein. For example, wireless communication device 450 may be used with a handheld device or PDA network device, or may be used as part of a sensor node in a wireless mesh network. However, it will be apparent to those skilled in the art that other wireless communication devices and/or configurations may be used.

在示出的实施方案中,无线通信设备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的解调部分。In the illustrated embodiment, the wireless communication device 450 includes an antenna 452, a multiplexer 454, a low noise amplifier (LNA) 456, a power amplifier (PA) 458, a modulation circuit 460, a baseband processor 462, a speaker 464, Microphone 466 , central processing unit (CPU) 468 , data storage 470 and hardware interface 472 . In wireless communication device 450 , radio frequency (RF) signals are transmitted and received by antenna 452 . Multiplexer 454 acts as a switch for coupling antenna 452 between transmit and receive signal paths. In the receive path, the received RF signal is coupled from multiplexer 454 to LNA 456. LNA 456 amplifies the received RF signal and couples the amplified signal to the demodulation section of modulation circuit 460.

通常,调制电路460会将解调器和调制器合并在一个集成电路(IC)中。解调器和调制器也可以是分立元件。解调器将RF载波信号去除,而留下基带接收信号,基带接收信号从解调器的输出端发送到基带处理器462。Typically, modulation circuit 460 will combine a demodulator and modulator in one integrated circuit (IC). The demodulator and modulator can also be discrete components. The demodulator removes the RF carrier signal, leaving the baseband receive signal, which is sent from the output of the demodulator to the baseband processor 462 .

如果基带接收音频信号包含音频信息,那么基带处理器462便对信号进行解码并将其转换成模拟信号。然后,信号被放大并被发送到扬声器464。基带处理器462还从麦克风466接收模拟音频信号。基带处理器462将这些模拟音频信号转换成数字信号,并对其进行编码。基带处理器462还对用于发送的数字信号进行编码,并生成路由到调制电路460的调制器部分的基带发送音频信号。调制器将基带发送音频信号与RF载波信号混合,以生成路由到功率放大器458的RF发送信号。功率放大器458对RF发送信号进行放大,并将其路由到多路复用器454,在多路复用器454,信号由天线452切换到用于发射的天线部分。If the baseband received audio signal contains audio information, the baseband processor 462 decodes and converts the signal to an analog signal. The signal is then amplified and sent to speaker 464 . The baseband processor 462 also receives analog audio signals from a microphone 466 . The baseband processor 462 converts these analog audio signals into digital signals and encodes them. The baseband processor 462 also encodes the digital signal for transmission and generates a baseband transmit audio signal that is routed to the modulator portion of the modulation circuit 460 . The modulator mixes the baseband transmit audio signal with the RF carrier signal to generate an RF transmit signal that is routed to power amplifier 458 . Power amplifier 458 amplifies the RF transmit signal and routes it to multiplexer 454 where the signal is switched from antenna 452 to the antenna section for transmission.

基带处理器462也与中央处理单元468通信耦合。中央处理单元468访问数据存储区470。中央处理单元468优选被配置成执行能够存储于数据存储区470中的指令(即,计算机程序或软件)。可以从基带处理器462接收计算机程序,并将其存储于数据存储区470中,或者在收到计算机程序后进行执行。这种计算机程序在执行时,能够使无线通信设备450执行本发明如前所述的各种功能。Baseband processor 462 is also communicatively coupled with central processing unit 468 . Central processing unit 468 accesses data storage area 470 . Central processing unit 468 is preferably configured to execute instructions (ie, computer programs or software) that can be stored in data storage area 470 . Computer programs may be received from baseband processor 462 and stored in data storage area 470, or executed upon receipt. Such a computer program, when executed, enables the wireless communication device 450 to perform various functions of the present invention as described above.

在本说明书中,术语“计算机可读介质”是指用于向无线通信设备450提供由中央处理单元468执行的可执行指令的任何介质。这些介质的实施例包括数据存储区470、麦克风466(通过基带处理器462)、天线452(也通过基带处理器462)以及硬件接口472。这些计算机可读介质是用于向无线通信设备450提供可执行代码、编程指令以及软件的装置。可执行代码、编程指令以及软件在由中央处理单元468执行时,优选使中央处理单元468实现本文中先前描述的本发明的特征和功能。In this specification, the term “computer-readable medium” refers to any medium used to provide executable instructions to wireless communication device 450 for execution by central processing unit 468 . Examples of these media include data storage area 470 , microphone 466 (via baseband processor 462 ), antenna 452 (also via baseband processor 462 ), and hardware interface 472 . These computer-readable media are means for providing executable codes, programming instructions, and software to wireless communication device 450 . The executable code, programming instructions, and software, when executed by the central processing unit 468, preferably cause the central processing unit 468 to implement the inventive features and functions previously described herein.

中央处理单元还优选被配置成当硬件接口472检测到新设备时,从硬件接口472接收通知。硬件接口472可以是机电探测器与控制软件组合,并能够与CPU 468通信并与新设备相互作用。The central processing unit is also preferably configured to receive a notification from the hardware interface 472 when the hardware interface 472 detects a new device. The hardware interface 472 may be a combination of electromechanical detectors and control software and is capable of communicating with the CPU 468 and interacting with new devices.

图11是图解说明可以与本文中描述的各种实施方案一起使用的、示例性计算机系统550的方框图。例如,计算机系统550可以与远程服务器一起使用,该远程服务器被配置用来处理服务器操作代码集、以及产生和发送手持装置操作代码集。但是,也可以采用其他的计算机系统和/或结构,这一点对于本领域的技术人员来说是很清楚的。FIG. 11 is a block diagram illustrating an exemplary computer system 550 that may be used with various embodiments described herein. For example, computer system 550 may be used with a remote server configured to process server operation code sets, and generate and transmit handset operation code sets. However, it will be apparent to those skilled in the art that other computer systems and/or architectures may be used.

计算机系统550优选包括一个或多个处理器,例如处理器552。可以设置附加的处理器,例如用于管理输入/输出的辅助处理器、用于执行浮点数学运算的辅助处理器、具有适于快速执行信号处理算法的结构的特殊用途的微处理器(例如数字信号处理器)、从属于主处理系统的从属处理器(例如后端处理器)、用于双处理器系统或多处理器系统的附加的微处理器或控制器、或协处理器。这种辅助处理器可以是分立的处理器,或者可以与处理器552集成。Computer system 550 preferably includes one or more processors, such as processor 552 . Additional processors may be provided, such as a secondary processor for managing input/output, a secondary processor for performing floating-point mathematical operations, a special-purpose microprocessor with an architecture suitable for fast execution of signal processing algorithms (such as digital signal processor), a slave processor (such as a back-end processor) subordinate to a main processing system, an additional microprocessor or controller for a dual-processor system or a multi-processor system, or a co-processor. Such a secondary processor may be a separate processor, or may be integrated with processor 552 .

处理器552优选连接到通信总线554。通信总线554可以包括方便计算机系统550的存储元件和其他外围元件之间传输信息的数据信道。通信总线554进一步可以提供用于与处理器552通信的一组信号,其中通信总线554包括数据总线、地址总线和控制总线(未示出)。通信总线554可以包括任何标准或非标准的总线结构,例如服从于工业标准结构(ISA)的总线结构、扩展工业标准结构(EISA)、微通道结构(MCA)、外设部件互连(PCI)本地总线、或电气和电子工程师协会(IEEE)发布的标准,其中包括IEEE 488通用接口总线(GPIB)、IEEE 696/S-100等。The processor 552 is preferably connected to a communication bus 554 . Communication bus 554 may include data channels that facilitate the transfer of information between memory elements and other peripheral elements of computer system 550 . Communication bus 554 may further provide a set of signals for communicating with processor 552, where communication bus 554 includes a data bus, an address bus, and a control bus (not shown). Communication bus 554 may comprise any standard or non-standard bus structure, such as a bus structure compliant with Industry Standard Architecture (ISA), Extended Industry Standard Architecture (EISA), Micro Channel Architecture (MCA), Peripheral Component Interconnect (PCI) Local buses, or standards published by the Institute of Electrical and Electronics Engineers (IEEE), which include IEEE 488 General Purpose Interface Bus (GPIB), IEEE 696/S-100, and others.

计算机系统550优选包括主存储器556,并还可包括辅助存储器558。主存储器556为在处理器552上执行的程序存储指令和数据。主存储器556通常是基于半导体的存储器,例如动态随机存储器(DRAM)和/或静态随机存储器(SRAM)。其他基于半导体的存储器类型例如包括同步动态随机存储器(SDRAM)、存储器总线式动态随机存储器(RDRAM)、铁电随机存储器(FRAM)等,其中也包括只读存储器(ROM)。The computer system 550 preferably includes a main memory 556 and may also include a secondary memory 558 . Main memory 556 stores instructions and data for programs executing on processor 552 . Main memory 556 is typically a semiconductor-based memory, such as dynamic random access memory (DRAM) and/or static random access memory (SRAM). Other semiconductor-based memory types include, for example, synchronous dynamic random access memory (SDRAM), memory bus dynamic random access memory (RDRAM), ferroelectric random access memory (FRAM), etc., which also includes read only memory (ROM).

辅助存储器558可选地包括硬盘驱动560和/或可移动的存储器驱动562,例如软盘驱动、磁带驱动、光盘(CD)驱动、数字化视频光盘(DVD)驱动等。可移动的存储器驱动562以公知的方式读写可移动的存储介质564。可移动的存储介质564例如可以是软盘、磁带、CD、DVD等。Secondary storage 558 optionally includes a hard disk drive 560 and/or a removable storage drive 562 such as a floppy disk drive, tape drive, compact disk (CD) drive, digital video disk (DVD) drive, or the like. Removable storage drive 562 reads and writes to removable storage medium 564 in a known manner. The removable storage medium 564 can be, for example, a floppy disk, magnetic tape, CD, DVD, and the like.

可移动的存储介质564优选为其上存储有计算机可执行代码(即软件)和/或数据的计算机可读介质。存储在可移动的存储介质564上的计算机软件或数据作为电通信信号578而被读入计算机系统550中。The removable storage medium 564 is preferably a computer-readable medium having computer-executable code (ie, software) and/or data stored thereon. Computer software or data stored on removable storage medium 564 is read into computer system 550 as electrical communication signal 578 .

在可选的实施方案中,辅助存储器558可以包括用于允许计算机程序、其他数据或指令装入计算机系统550中的其他类似的装置。这种装置例如可以包括外部存储介质572和接口570。外部存储介质572的实施例可以包括外部硬盘驱动器、外部光学驱动器、或外部磁光驱动器。In alternative embodiments, secondary storage 558 may include other similar means for allowing computer programs and other data or instructions to be loaded into computer system 550 . Such means may include, for example, an external storage medium 572 and an interface 570 . Examples of external storage media 572 may include an external hard drive, an external optical drive, or an external magneto-optical drive.

辅助存储器558的其他实施例可以包括基于半导体的存储器,例如可编程的只读存储器(PROM)、可擦可编程只读存储器(EEPROM)、或闪存(类似于EEPROM的面向块的存储器)。辅助存储器558的其他实施例还包括任何其他可移动的存储单元572和接口570,其中接口570允许软件和数据从可移动的存储单元572传输到计算机系统550。Other embodiments of secondary memory 558 may include semiconductor-based memory such as programmable read-only memory (PROM), erasable programmable read-only memory (EEPROM), or flash memory (block-oriented memory similar to EEPROM). Other embodiments of secondary storage 558 include any other removable storage unit 572 and an interface 570 that allows software and data to be transferred from removable storage unit 572 to computer system 550 .

计算机系统550还可以包括通信接口574。通信接口574允许在计算机系统550和外部设备(例如打印机)、网络或信息源之间传输软件和数据。例如,计算机软件或可执行的代码可以从网络服务器通过通信接口574传输到计算机系统550。通信接口574的实施例包括调制解调器、网络接口卡(NIC)、通信端口、PCMCIA插槽和卡、红外线接口以及IEEE 1394带电线(fire-wire),在此仅列举几个实施例。Computer system 550 may also include a communication interface 574 . Communication interface 574 allows software and data to be transferred between computer system 550 and external devices (eg, printers), networks or information sources. For example, computer software or executable code may be transferred from a web server to computer system 550 through communication interface 574 . Examples of communication interface 574 include a modem, network interface card (NIC), communication port, PCMCIA slot and card, infrared interface, and IEEE 1394 fire-wire, just to name a few.

通信接口574优选实施工业发布的协议标准,例如以太网IEEE802标准、光纤通道、数字用户线路(DSL)、非对称数字用户线路(ADSL)、帧中继、异步传输模式(ATM)、综合数字服务网(ISDN)、个人通信服务(PCS)、传输控制协议/网际协议(TCP/IP)、串行线路接口协议/点对点协议(SLIP/PPP)等等,但是通信接口574还可以实施定制的或非标准接口协议。The communication interface 574 preferably implements industry promulgated protocol standards such as Ethernet IEEE 802 standard, Fiber Channel, Digital Subscriber Line (DSL), Asymmetric Digital Subscriber Line (ADSL), Frame Relay, Asynchronous Transfer Mode (ATM), Integrated Digital Services Network (ISDN), Personal Communications Services (PCS), Transmission Control Protocol/Internet Protocol (TCP/IP), Serial Line Interface Protocol/Point-to-Point Protocol (SLIP/PPP), etc., but communication interface 574 can also implement custom or Non-standard interface protocol.

通过通信接口574传输的软件和数据通常是电通信信号578形式。信号578优选通过通信信道576提供给通信接口574。通信信道576携带信号578并且可以采用多种通信手段来实现,其中包括电线或电缆、光线、传统的电话线、便携式电话链路、射频(RF)链路或红外线链路,在此仅列举几种。Software and data transmitted over communication interface 574 is typically in the form of electrical communication signals 578 . Signal 578 is preferably provided to communication interface 574 via communication channel 576 . Communication channel 576 carries signal 578 and can be implemented using a variety of communication means including wire or cable, optical fiber, conventional telephone line, cellular phone link, radio frequency (RF) link, or infrared link, just to name a few. kind.

计算机可执行的代码(即计算机程序或软件)存储于主存储器556和辅助存储器558中。计算机程序也可以通过通信接口574接收,并且也可以存储于主存储器556和/或辅助存储器558中。这种计算机程序在执行时,使计算机系统550能够执行先前描述的本发明的各种功能。Computer-executable code (ie, computer programs or software) is stored in main memory 556 and secondary memory 558 . Computer programs may also be received through communication interface 574 and may also be stored in main memory 556 and/or secondary memory 558 . Such a computer program, when executed, enables the computer system 550 to perform the various functions of the invention as previously described.

在本说明书中,术语“计算机可读介质”是指用于向计算机系统550提供计算机可执行的代码(例如,软件和计算机程序)的任何介质。这些介质的实施例包括主存储器556、辅助存储器558(包括硬盘驱动器560、可移动的存储介质564以及外部存储介质572)以及与通信接口574通信耦合的任何外围设备(包括网络信息服务器或其他的网络设备)。这些计算机可读介质是用于向计算机系统550提供可执行的代码、编程指令和软件的装置。In this specification, the term “computer-readable medium” refers to any medium used to provide computer-executable code (eg, software and computer programs) to the computer system 550 . Examples of such media include main memory 556, secondary storage 558 (including hard drive 560, removable storage media 564, and external storage media 572), and any peripheral devices communicatively coupled to communication interface 574 (including network information servers or other Internet equipment). These computer-readable media are means for providing executable code, programming instructions and software to the computer system 550 .

在采用软件实现的实施方案中,软件可以存储在计算机可读介质上,并通过可移动的存储器驱动器562、接口570或通信接口574载入计算机系统550中。在这种实施方案中,软件以电通信信号578的形式载入计算机系统550中。软件在由处理器552执行时,优选使处理器552实现本文中先前描述的本发明的特征和功能。In an embodiment implemented in software, the software may be stored on a computer readable medium and loaded into computer system 550 via removable memory drive 562 , interface 570 or communication interface 574 . In such an embodiment, the software is loaded into computer system 550 in the form of electrical communication signal 578 . The software, when executed by the processor 552, preferably causes the processor 552 to implement the inventive features and functions previously described herein.

各种实施方案还可以主要采用硬件来实现,例如采用特定用途集成电路(ASIC)或现场可编程门阵列(FPGA)。能够实现本文中所描述的功能的硬件状态机的实施对于本领域的技术人员来说是显而易见的。还可以利用硬件与软件的结合来实施各种实施方案。Various embodiments may also be implemented primarily in hardware, such as an Application Specific Integrated Circuit (ASIC) or a Field Programmable Gate Array (FPGA). The implementation of a hardware state machine capable of implementing the functionality described herein will be apparent to those skilled in the art. Various embodiments may also be implemented using a combination of hardware and software.

尽管本文中示出并详细描述的用于无线通信设备的特定的模块化软件组件,完全能够达到本发明的上述目的,但是应当理解,本文中提出的说明书和附图代表本发明目前的优选实施方案,因而代表本发明所广泛预期的主题。进一步应当理解,本发明的范围完全包含对于本领域的技术人员来说是显而易见的其他实施方案,因此本发明的范围仅由所附的权利要求来限定。While the specific modular software components for a wireless communication device shown and described in detail herein are fully capable of accomplishing the above objects of the present invention, it should be understood that the specification and drawings presented herein represent presently preferred embodiments of the present invention. schemes, and thus represent broadly contemplated subject matter of the present invention. It is further to be understood that the scope of the present invention fully encompasses other embodiments which would be obvious to those skilled in the art, and therefore the scope of the present invention is limited only by the appended claims.

Claims (6)

1.一种在使用的无线通信设备(20,30)上动态安装数据组件(240)的方法,包括:1. A method of dynamically installing a data component (240) on a wireless communication device (20, 30) in use, comprising: 接收安装所述数据组件的请求,所述请求包括请求的所述数据组件的唯一标识符;receiving a request to install the data component, the request including a unique identifier of the requested data component; 启动运行时间引擎(230)以对要被发送到远程服务器的操作代码集进行编译,所述操作代码集具有包括所述唯一标识符的数据有效载荷;launching a runtime engine (230) to compile a set of opcodes to be sent to the remote server, the set of opcodes having a data payload including the unique identifier; 经由无线通信网络(50)将所述操作代码集发送到所述远程服务器(60);以及sending said set of operation codes to said remote server (60) via a wireless communication network (50); and 经由无线通信网络(50)从所述远程服务器(60)接收响应,其中所述响应包含请求的所述数据组件(240),receiving a response from said remote server (60) via a wireless communication network (50), wherein said response contains said data component (240) of the request, 其中,所述数据组件是用于新硬件组件的可执行的设备驱动程序和安装指令,所述方法进一步包括以下步骤:Wherein, the data components are executable device drivers and installation instructions for new hardware components, and the method further includes the following steps: 所述无线通信设备的模块化的硬件检测器(202)在所述无A modular hardware detector (202) of the wireless communication device in the wireless 线通信设备中检测新硬件组件的存在,所述新硬件组件用于代Detect the presence of new hardware components in the wireless communication device, the new hardware components are used to replace the 替先前的硬件组件,所述先前的硬件组件具有先前的设备硬件In place of a previous hardware component having a previous device hardware 驱动程序;以及drivers; and 所述模块化的硬件检测器(202)询问所述新硬件组件,以The modular hardware detector (202) interrogates the new hardware component to 获得所述新硬件组件的概况信息;obtaining profile information of said new hardware component; 其中所述唯一标识符包括所述概况信息的至少一部分。Wherein said unique identifier comprises at least a portion of said profile information. 2.如权利要求1所述的方法,其中从所述远程服务器接收响应的步骤进一步包括:2. The method of claim 1, wherein the step of receiving a response from the remote server further comprises: 接收具有相应的数据有效载荷的所述指令集;receiving said set of instructions with a corresponding data payload; 提取所述数据有效载荷,其中所述数据有效载荷包括请求的数据组件;extracting the data payload, wherein the data payload includes the requested data components; 从所述使用的无线通信设备(20,30)的手持装置操作代码库(220)获得与所述指令集对应的可执行的指令集;以及obtaining an executable set of instructions corresponding to said set of instructions from a handheld device operating code library (220) of said wireless communication device (20, 30) used; and 执行所述可执行的指令集。Executing the executable set of instructions. 3.如权利要求2所述的方法,其中,在所述使用的无线通信设备(20,30)上运行的所述运行时间引擎(230)内实施所述的执行可执行的指令集的步骤。3. The method of claim 2, wherein said step of executing an executable instruction set is implemented within said runtime engine (230) running on said wireless communication device (20, 30) of said use . 4.如权利要求2所述的方法,进一步包括以下步骤:4. The method of claim 2, further comprising the steps of: 安装所述可执行的设备驱动程序;以及install said executable device driver; and 对所述新硬件组件进行配置。The new hardware component is configured. 5.如权利要求2所述的方法,其中,所述指令集具有一系列操作代码,所述方法还包括:5. The method of claim 2, wherein the instruction set has a series of operation codes, the method further comprising: 将所述一系列的操作代码转换成包含所述安装指令的可执行的指令集;以及converting said series of operation codes into an executable instruction set comprising said installation instructions; and 提取所述可执行的指令集,以利用运行在所述无线通信设备上的所述运行时间引擎,安装所述可执行的设备驱动程序。The executable instruction set is extracted to install the executable device driver with the runtime engine running on the wireless communication device. 6.如权利要求2所述的方法,进一步包括:6. The method of claim 2, further comprising: 确定出先前的设备驱动程序的大小大于所述可执行的设备驱动程序的大小;determining that the size of the previous device driver is greater than the size of the executable device driver; 将所述先前的设备驱动程序复制到易失性存储器上;copying said previous device driver onto volatile memory; 从所述永久存储器上删除所述先前的设备驱动程序;以及deleting said previous device driver from said persistent storage; and 将用于所述新硬件组件的所述可执行的设备驱动程序,存储于所述永久存储器先前由所述先前设备驱动程序占据的至少一部分区域中。The executable device driver for the new hardware component is stored in at least a portion of the persistent memory previously occupied by the previous device driver.
CN2005800159445A 2004-05-18 2005-05-18 Modular data assembly for wireless communication device Expired - Fee Related CN1954627B (en)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US10/848,941 2004-05-18
US10/848,940 US7184759B2 (en) 2001-07-26 2004-05-18 Modular software components for wireless communication devices
US10/848,941 US7200389B2 (en) 2001-07-26 2004-05-18 Dynamic interface software for wireless communication devices
US10/848,939 US7197302B2 (en) 2001-07-26 2004-05-18 System and method for interchangeable modular hardware components for wireless communication devices
US10/848,940 2004-05-18
US10/848,939 2004-05-18
PCT/US2005/017451 WO2005115036A1 (en) 2004-05-18 2005-05-18 Modular data components for wireless communication devices

Publications (2)

Publication Number Publication Date
CN1954627A CN1954627A (en) 2007-04-25
CN1954627B true CN1954627B (en) 2010-10-13

Family

ID=38059778

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005800159445A Expired - Fee Related CN1954627B (en) 2004-05-18 2005-05-18 Modular data assembly for wireless communication device

Country Status (1)

Country Link
CN (1) CN1954627B (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101222371B (en) * 2008-01-24 2012-08-22 中国海洋大学 Client terminal component operation management system
US9606813B2 (en) * 2012-03-30 2017-03-28 Canon Kabushiki Kaisha Information processing apparatus, application activation method, and program
US20150095898A1 (en) * 2013-09-27 2015-04-02 Ford Global Technologies, Llc Method and Apparatus for Tailored Wireless Module Updating
CN106547583B (en) * 2015-09-22 2020-02-21 杭州华为数字技术有限公司 Operating system installation method and device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1344078A (en) * 2000-09-12 2002-04-10 索尼公司 Service device, distributing system, its method and terminal
CN1433185A (en) * 2002-01-18 2003-07-30 株式会社东芝 Communication system, system information downloading method, system unit and server unit
US6714992B1 (en) * 2000-02-25 2004-03-30 Navic Systems, Inc. Method and system for embedded network device installation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6714992B1 (en) * 2000-02-25 2004-03-30 Navic Systems, Inc. Method and system for embedded network device installation
CN1344078A (en) * 2000-09-12 2002-04-10 索尼公司 Service device, distributing system, its method and terminal
CN1433185A (en) * 2002-01-18 2003-07-30 株式会社东芝 Communication system, system information downloading method, system unit and server unit

Also Published As

Publication number Publication date
CN1954627A (en) 2007-04-25

Similar Documents

Publication Publication Date Title
US7184759B2 (en) Modular software components for wireless communication devices
JP3681293B2 (en) Firmware upgrade method for wireless communication device and firmware upgrade support method in base station
US8589908B2 (en) Method for remotely upgrading the firmware of a target device using wireless technology
US7904895B1 (en) Firmware update in electronic devices employing update agent in a flash memory card
CN100428816C (en) Over-the-air mobile station management method
KR101541112B1 (en) FOTA system and the method
CN111512655A (en) Method for providing communication service by using secure element and electronic device
JP2007503654A (en) Apparatus and method for generating upgraded software from initial software and software upgrade packages
WO2011127845A2 (en) Method, system and terminal for system update between mobile communication terminals
CN101729653A (en) System and method for Delta-based over-the-air software upgrades for a wireless mobile station
EP1757132B1 (en) Modular data components for wireless communication devices
WO2010145288A1 (en) Wireless access platform, system and method of equipment upgrade management
US7117494B2 (en) System and method for bi-directional communication and execution of dynamic instruction sets
US7197302B2 (en) System and method for interchangeable modular hardware components for wireless communication devices
US7200389B2 (en) Dynamic interface software for wireless communication devices
US20030140129A1 (en) Installing communication protocol in a handheld device
CN113741925B (en) Software upgrading method and device
CN1954627B (en) Modular data assembly for wireless communication device
WO2013004175A1 (en) Software upgrading method and apparatus for electronic devices
AU2008200175B2 (en) System and method for interchangeable modular hardware components for wireless communication devices
KR20030033396A (en) Method for upgrading of wireless terminal
WO2018086288A1 (en) Screen installation method, device body, and screen
KR20100033243A (en) Apparatus and method of upgrading peripheral firmware via wireless communication
JP2001337832A (en) Terminal device
JP2002196940A (en) Program update device for microcomputer application device, program update method for microcomputer application device, and recording medium

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: KYOCERA CORP.

Free format text: FORMER OWNER: KYOCERA WIRELESS CORP.

Effective date: 20110630

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: STATE OF CALIFORNIA, THE USA TO: KYOTO, JAPAN

TR01 Transfer of patent right

Effective date of registration: 20110630

Address after: Kyoto Japan

Patentee after: Kyocera Corp.

Address before: American California

Patentee before: Kyocera Wireless Corp.

C56 Change in the name or address of the patentee
CP01 Change in the name or title of a patent holder

Address after: Kyoto Japan

Patentee after: KYOCERA Corporation

Address before: Kyoto Japan

Patentee before: Kyocera Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20101013

Termination date: 20170518

CF01 Termination of patent right due to non-payment of annual fee