CN1871584A - 在无线设备上灵活主持应用程序的系统和方法 - Google Patents

在无线设备上灵活主持应用程序的系统和方法 Download PDF

Info

Publication number
CN1871584A
CN1871584A CNA2004800310638A CN200480031063A CN1871584A CN 1871584 A CN1871584 A CN 1871584A CN A2004800310638 A CNA2004800310638 A CN A2004800310638A CN 200480031063 A CN200480031063 A CN 200480031063A CN 1871584 A CN1871584 A CN 1871584A
Authority
CN
China
Prior art keywords
state
module
envelope
group
application
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.)
Granted
Application number
CNA2004800310638A
Other languages
English (en)
Other versions
CN1871584B (zh
Inventor
布赖恩·R·戈林
迈克尔·申菲尔德
菲拉·比布尔
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.)
BlackBerry Ltd
Original Assignee
Research in Motion Ltd
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
Application filed by Research in Motion Ltd filed Critical Research in Motion Ltd
Publication of CN1871584A publication Critical patent/CN1871584A/zh
Application granted granted Critical
Publication of CN1871584B publication Critical patent/CN1871584B/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)
  • Selective Calling Equipment (AREA)
  • Telephone Function (AREA)
  • Reduction Or Emphasis Of Bandwidth Of Signals (AREA)

Abstract

通常以适合评价它们的环境的不同形式表示应用程序。一个缺点在于执行应用程序的设备的处理器不能够辨别人类可读形式并因此产生遵照机器可读格式。为了允许由机器进行评价,原始应用程序内容必须经过转换处理,通过该处理,应用程序内容的表示的大小变大。在这种状态下,内容需要存储空间方面的额外开销,但是提供更好的执行性能。提供了一种在无线设备上动态地主持应用程序的系统和方法。该应用程序内容被划分为多个模块包络,每一个模块包络具有构成了应用程序的模块的一部分。该方法包括:初始化应用程序的加载,包括引用应用程序信息结构,使得结构包括模块包络的关系信息。该方法根据关系信息从多个模块包络中选择一个模块包络。该方法还根据预定包络状态,配置选定模块包络的状态,包络状态是从包括原始状态、离线状态和可执行状态中的至少两个的包络状态组中选出的。该方法还将配置模块包络提供给应用程序管理器,用于根据配置模块包络,改变应用程序在设备上的配置。

Description

在无线设备上灵活主持应用程序的系统和方法
技术领域
本发明涉及在资源有限设备上主持应用程序。
背景技术
今天,使用越来越多的终端设备,例如移动电话、具有无线通信能力的PDA、个人计算机、自助服务亭和双向寻呼机。在这些设备上运行的软件应用程序增加了它们的实用性。例如,移动电话可以包括针对城市范围检索天气的应用程序,或者PDA可以包括允许用户购买杂货的应用程序。这些软件应用程序利用与网络的连接给用户提供及时和有用的服务。然而,由于一些设备的有限资源,开发用于多种设备的软件应用程序仍然是困难并且耗时的工作。
通常以适合评价它们的环境的不同形式表示应用程序。例如,当包含读者熟悉的符号和描述性内容时,人们可以更容易地评价应用程序。由于表达的语言,应用程序的这种描述的大小可以较小。一个缺点在于执行应用程序的设备的处理器不能够辨别人类可读形式并因此产生遵照机器可读格式。典型地,处理器以本地(native)格式评价应用程序。为了允许由机器进行评价,原始应用程序内容必须经过转换处理。在该处理期间,应用程序内容的表示的大小变大。在这种状态下,内容需要存储空间方面的额外开销,但是提供更好的执行性能。
提供了主持灵活应用程序的系统和方法,以消除或缓和至少一部分上述缺点。
发明内容
通常以适合评价它们的环境的不同形式表示应用程序。例如,当包含读者熟悉的符号和描述性内容时,人们可以更容易地评价应用程序。由于表达的语言,应用程序的描述的大小可以较小。一个缺点在于执行应用程序的设备的处理器不能够辨别人类可读形式并因此产生遵照机器可读格式。典型地,处理器以本地格式评价应用程序。为了允许由机器进行评价,原始应用程序内容必须经过转换处理。在该处理期间,应用程序内容的表示的大小变大。在这种状态下,内容需要存储空间方面的额外开销,但是提供更好的执行性能。与当前应用程序的主持模式相反,提供了在无线设备上动态地主持应用程序的系统和方法。该应用程序内容被划分为多个模块包络(envelope),每一个模块包络具有构成了应用程序的模块的一部分。一种这样的方法包括:初始化应用程序的加载,包括引用应用程序信息结构,使得结构包括模块包络的关系信息。该方法还根据关系信息从多个模块包络中选择一个模块包络。该方法还根据预定包络状态,配置选定模块包络的状态,包络状态是从包括原始状态、离线状态和可执行状态中的至少两个的包络状态组中选出的。最后,该方法还将配置模块包络提供给应用程序管理器,用于根据配置模块包络,改变应用程序在设备上的配置。
公开了一种在无线设备上动态地主持应用程序的方法,应用程序内容被划分为多个模块包络,每一个模块包络具有构成了应用程序的模块的一部分,该方法包括步骤:初始化应用程序的加载,包括引用应用程序信息结构,所述结构包括模块包络的关系信息;根据关系信息,从多个模块包络中选择一个模块包络;根据预定包络状态,配置选定模块包络的状态,包络状态是从包括原始状态、离线状态和/或可执行状态的包络状态组中选出的;以及将配置模块包络提供给应用程序管理器,用于根据配置模块包络,改变应用程序在设备上的配置。
还公开了一种用于动态地主持应用程序的无线设备,应用程序内容被划分为多个模块包络,每一个模块包络具有构成了应用程序的模块的一部分,该设备包括:框架,用于加载应用程序,包括引用应用程序信息结构,所述结构包括模块包络的关系信息;框架的模块管理器,用于根据关系信息,从多个模块包络中选择一个模块包络;配置模块,用于根据预定包络状态,配置选定模块包络的状态,包络状态是从包括原始状态、离线状态和/或可执行状态的包络状态组中选出的;以及框架的应用程序管理器,用于根据配置模块包络,改变应用程序在设备上的配置。
还公开了一种用于在无线设备上动态地主持应用程序的计算机程序产品,应用程序内容被划分为多个模块包络,每一个模块包络具有构成了应用程序的模块的一部分,该计算机程序产品包括:计算机可读介质;框架模块,存储在计算机可读介质上,用于加载应用程序,包括引用应用程序信息结构,结构包括模块包络的关系信息;包络管理模块,与框架模块相连,用于根据关系信息,从多个模块包络中选择一个模块包络;配置模块,与框架模块相连,用于根据预定包络状态,配置选定模块包络的状态,包络状态是从包括原始状态、离线状态和/或可执行状态的包络状态组中选出的;以及应用程序管理器,与框架模块相连,用于根据配置模块包络,改变应用程序在设备上的配置。
附图说明
在下面参考附图的详细描述中,这些及其他特征将变得显而易见,图中:
图1是网络系统的方框图;
图2是图1所示的设备的方框图;
图3示出了图2所示的设备的处理框架;
图4是示出了图1所示的模块包络的各种状态;
图5是图1所示的系统的示例应用程序;
图6示出了图5所示的示例应用程序的模块包络的从属树;
图7示出了图3所示的框架的应用程序启动;
图8示出了图3所示的框架的应用程序模块包络转变;以及
图9示出了图3所示的框架的应用程序离线模块包络转变。
具体实施方式
网络系统
参考图1,通信系统10包括移动通信设备100,用于经由连接的无线网络102和在一些情况下诸如因特网之类的广域网(WAN)104与一个或多个移动服务器106进行交互。当与服务器106进行通信时,移动设备100分别发送和接收请求/响应消息105。移动设备100作为应用程序服务器110或者其他供应知识库(provisioning repository)的客户端工作,例如请求并接收包含多个模块包络109的应用程序107,下面会进一步描述。可以认识到,可以由提供诸如网络服务之类的方案定义服务的服务提供商实现服务器106、110,并且可以将服务器106和/或110的功能组合为单个服务器或分布在额外服务器(未示出)中。
移动设备100可以经由无线网络102和/或WAN 104与一个或多个服务器106以及相关应用程序服务器110进行通信。可以认识到,移动设备100可以经由适当的有线或无线设备(例如USB、蓝牙等)直接与应用程序服务器110相连。在执行应用程序107期间,设备100使用移动服务器106来存储或与选定的模块包络109进行交互。移动服务器106具有可供使用的、由设备100的用户专用的用户高速缓冲存储器111。当设备100已经从应用程序服务器110下载了应用程序107时,服务器106可以接收应用程序107的每一个包络109的副本。移动服务器106可以离线地以原始状态存储包络109(下面会进一步描述),用于随后根据需要供用户使用。因此,设备100可以使用移动服务器106来离线地存储一些或所有包络109。可以认识到,在执行应用程序107期间,在设备运行时间中,设备100可以动态地以原始状态向高速缓冲存储器111请求选定包络109。
移动设备
参考图2,移动通信设备100是例如但不局限于移动电话、PDA、双向寻呼机、笔记本和/或桌面计算机或双模通信设备的设备。移动设备100包括经由连接218与设备基础设施204相连的无线收发机200。在移动设备100的工作期间,无线收发机200可以通过无线链接(例如IR、RF等)与无线网络102相连,使移动设备100能够经由无线网络102互相进行通信并且/或者与外部系统(例如服务器106)进行通信,并且协调设备100和服务器106之间的请求/响应消息105。无线网络102还可以支持终端100和网络102外部的设备之间的电话呼叫的语音通信。无线网络102可以使用无线数据传输协议,例如但不局限于DataTAC、GPRS或CDMA。
再次参考图2,移动设备100还具有通过连接222与设备基础设施204相连的用户接口202,以与用户(未示出)进行交互。用户接口202包括例如但不局限于QWERTY键盘、小键盘、轨迹球、手写笔、鼠标、麦克风的一个或多个输入设备以及例如LCD屏幕显示器和/或扬声器的一个或多个用户输出设备。如果屏幕是触摸敏感的,则还可以将显示器用作由设备基础设施204控制的用户输入设备。移动设备100的用户使用用户接口202在框架206中协调客户端应用程序107的执行,下面会进一步描述。用户接口202还提供定制程序107的各种状态等级的机会。
再次参考图2,由设备基础设施204启用移动通信设备100的操作。设备基础设施204包括计算机处理器208和相关存储模块210。计算机处理器208通过执行由操作系统和位于存储模块210中的客户端应用程序107提供的相关指令,操纵移动通信设备100的无线收发机200、用户接口202以及框架206的操作;计算机处理器208可以包括一个或多个处理单元,处理单元可以包括一个或多个通用处理器和/或专用处理器(例如ASIC、FPGA、DSP等)。此外,可以认识到,设备基础设施204可以包括与处理器208相连的计算机可读存储介质212,用于向处理器提供指令并且/或者在存储模块210中加载/更新客户端应用程序107。计算机可读介质212可以包括硬件和/或软件,例如(仅作为示例)磁盘、磁带、例如CD/DVD ROM的光可读介质、和存储卡。在每一种情况中,计算机可读介质212可以采用小盘、软盘、磁带、硬盘驱动器、固态存储卡或者设置在存储模块210中的RAM的形式。应该注意,可以单独或组合地使用上面列出的示例计算机可读介质212。
处理框架
参考图2,移动设备100的框架206通过连接220与设备基础设施204相连。框架206为客户端应用程序107提供本地运行时间环境,并且是与设备基础设施204的处理器208和相关操作系统的移动设备100功能的接口。框架206在移动设备100上提供至少提供受控、安全和稳定环境的最小需求的运行时间环境,其中,作为包络109执行应用程序107。可以认识到,运行时间环境可以使设备100成为服务提供商所提供的任意其他通用方案定义服务的客户端。可以将框架206看作在应用程序107的可执行状态中评价应用程序107并且管理应用程序107的部分(即模块包络109)的状态之间的转变的软件和/或硬件。在一些情况下,框架206可以具有可供应用程序107和/或其模块包络109使用的多个可用运行时间环境;则框架可以针对给定应用程序107或者其模块包络109采用适当的运行时间。
此外,客户端运行时间环境的特定功能可以包括例如但不局限于服务304支持语言、协调存储分配、联网、I/O操作期间的数据管理、在设备100的输出设备上协调图形、以及提供对面向核心对象类合支持文件/库的访问。由设备100实施的运行时间环境的示例可以包括但不局限于微软的公共语言运行时(CLR)和Sun微系统的Java运行时间环境(JRE)。可以认识到,可以在运行时间环境和/或在框架206中实现服务304。
框架206还可以提供框架服务304(对客户端应用程序107的通用服务的标准组,例如但不局限于通信、屏幕、数据持续、安全)。应用程序107与框架服务304进行通信。框架206的框架服务304经由与设备基础设施204的连接来协调通信。因此,由框架206向客户端应用程序107提供对设备基础设施204、用户接口202和无线收发机200的访问。可以认识到,设备基础设施204(参见图2)的操作系统的一部分可以表示应用程序运行时间环境和/或框架206。可以认识到,可以提供一些或所有框架服务304,作为每一个应用程序107的组成部分。此外,或者代替地,可以认识到,可以由多个应用程序107共享分离的公共框架服务304功能。
再次参考图3,处理框架206使用转换窗318和从属表或其他关系结构320(即树、图、数据库实体/表等)来实现管理应用程序107的相关模块109的状态的能力。包络109的状态管理协调在设备100上主持的灵活应用程序107的任务。处理框架206可以提供公用服务框架304功能,作为应用程序107的一部分或与之分离,应用程序107包括功能例如但不局限于:应用程序管理器306、模块从属管理器314、状态编译器308或其他包络配置管理器、通信管理器316、解释模块312以及持续模块310。其他服务(未示出)可以包括呈现服务、访问服务、供应服务和实用服务。
通信管理器316管理组件应用程序107和外部系统10之间经由网络102和/或104的连接性,包括请求或上载离线包络109的能力。持续管理器310在存储模块210中存储设备100上本地的模块包络109内容。持续管理器310还与应用程序107一起存储包括各个模块和模块包络109之间的关系的相关应用程序信息表320。
状态编译器308可以管理终端100上软件应用程序107的供应,或者定向分离的供应服务。应用程序供应可以包括存储包络109的修改状态。此外,状态编译器308将模块包络109从原始状态转换为可执行状态。这可以包括按照例如ECMAScript的脚本或编程语言的定义来编译模块包络109的可执行部分、表示描述性单元作为内部元数据或者安装全局对象。
应用程序管理器306可以用于与用户接口202(参见图2)进行交互、管理应用程序的存在时间等。应用程序管理器306负责评价模块包络109。模块包络109的可执行脚本部分被定向到解释模块312。模块从属管理器314从本地或离线存储器定位请求的模块包络109并且协调包络109针对评价的准备。模块从属管理器314使用描述单独包络109处于的状态的应用程序信息表320,并且可以对要在离线处理中使用的特定包络109的引用的数目进行计数;可选地,可以收集其他离线(缓存)代替策略的数据。解释模块312可以被用于运行包络109的内容或者评价模块包络109的可执行部分。在一些情况中,模块包络的内容可以包括可以在例如XML的结构化定义语言中定义的表示例如数据、呈现和/或消息内容的描述性单元,和/或可以作为例如ECMAScript的编译脚本/代码指定的可执行内容。可以认识到,按照希望,除了示出的,具有用于实现自适应应用程序107主持的各个服务306、308、310、312、314、316的处理框架206和应用程序107的其他配置也是可以的。此外,按照希望,除了示出的,在模块304中的功能的配置和划分也是可以的;这种可选配置可以包括可选的功能分布在服务中和/或与其他服务(未示出)中功能的组合。
内容状态
考虑状态,可以认识到应用程序107内容由希望的模块包络109组成,模块包络109包括代码或脚本(例如但不局限于ECMAScript)以及非可执行描述性单元,非可执行描述性语言可以由例如应用程序框架206表示,包括例如但不局限于数据、呈现以及消息实体,在一些情况下可以以结构化定义语言(例如XML)表达。模块包络109可以被称为可以保持其状态的相关描述性及可执行内容的微包(atomicparcel)。参考图4,包络109的状态是例如但不局限于可执行400、原始402以及离线404。可以认识到,可以根据包络109,将状态应用于模块包络109,其中,每一个包络109可以包含一个或多个相关模块。
再次参考图4,可执行状态400是应用程序107的内容准备由终端100的运行时间评价或执行的形式,即编译为可由运行时间读取的形式。可执行状态400可以具有下面的特性:已编译形式的可执行代码或脚本(例如ECMAScript);表示描述性单元的运行时间特定元数据;以及产生时的全局对象。
再次参考图4,原始状态402是写出应用程序107的内容的形式,例如由程序开发者使用的特定语言句法(即人类可阅读)。由于与可执行状态400相比其缩减的尺寸,该形式更方便于传送和存储。典型地,原始状态402不适用于由设备上可用的运行时间直接评价。在该状态中,为了将应用程序转换到可执行状态400,需要额外处理。在原始状态402中,应用程序107具有诸如资源(图像等)之类所有需要的从属内容(dependency)可供使用。此外,应用程序107的原始状态402可以意味着与评价它的设备运行时间协同定位(本地)。
再次参考图4,离线状态404在特性上类似于原始状态402。离线状态404的额外特征在于内容不可供终端100立即(即本地)使用,以转换到可执行状态400。在离线状态404中,进行从移动服务器106获取内容的额外步骤。离线状态404允许偶尔暂时地将应用程序包络109卸载到例如移动服务器106的远程位置。可以认识到,离线状态404可以包括处于可执行状态400和/或原始状态402、但存储在远程的内容。此外,可以认识到,在任意情况下应用程序107的不同模块包络109可以处于状态400、402、404的任意一个中,从而设置应用程序107具有至少两个包络109,每个包络109在设备100上处于不同的状态。此外,可以认识到,特定包络109可以同时存在于多于一个状态和/或位置中,例如既在设备100上同时还离线。因此,处于离线状态404中的应用程序107的一部分可以以原始状态402或者可执行状态400表示,但是不可供设备运行时间立即访问(协同定位)。表1示出了三种状态400、402、404的每一个的特性和可能优点。
表1:模块包络状态特性
  状态   启动时间   设备上的存储器   可用性
  可执行   最小   最大   一直
  原始   包括准备/编译时间   最小   一直
离线   包括下载并且可能包括准备/编译时间   仅当与高速缓冲存储器111或其他远程知识库相连时
应用程序混合状态
参考图3和4,注意,各个模块包络109可以处于上述三种状态之一,使得出现应用程序107整体处于混合状态中的可能性。在该情况下,模块包络109为了节省资源而处于原始状态402、由于不活动而处于离线状态404并且/或者由于方便和性能原因而处于可执行状态400。在动态混合状态主持模式中,设备运行时间可以根据关于应用程序107的规定性能/存储特性而做出的内部决定,确定每一个模块包络109的适当状态。可以认识到,可以由设备100的用户、服务器106、设备100或其组合确定主持模式。以智能设备运行时间示例示出了动态状态混合的示范,如下面所示。在静态混合状态主持模式中,应用程序107可以提供各个模块包络109的状态的预定视图。当应用程序开发者决定每一个包络109的优先级时该方法是方便的,可以从表320和/或窗318引用优先级。在该模型中,设备运行时间在运行时间处、在实施预定模块包络109状态时,遵循应用程序107施加的静态规则。
参考图3,处理框架206的智能设备运行时间根据模块包络109在应用程序107可执行及描述性内容上操作,其中,应用程序107被划分为一个或多个模块包络109。每一个模块包络109包含优选地处于各自模块的形式的可执行和/或描述性内容的相关包络。此外,模块包络109可以对包括应用程序107的其他模块包络109指定从属。在任意给定时刻设备运行时间与适合由运行时间评价的格式(即可执行状态400)表示的至少一个模块包络109进行交互。并不直接需要任意其他应用程序模块包络109应该处于该准备状态中。实际上,有利的是,针对资源限制,以提供最佳特性的状态(原始402或离线状态404)表示这些额外包络109。此外,可以结合转换窗318使用应用程序模块包络从属表320,以允许智能设备运行时间根据设备用户需要预测随着应用程序107处理的执行应该将哪一个额外模块包络109转换到可执行状态400。
模块包络从属
模块包络109表示在应用程序107的执行中使用的相关可执行及描述性单元的最小不可分割单位。模块包络109与模块从属信息连接,允许设备运行时间确定在设备100上执行用户会话期间对于评价可能需要应用程序107中的哪些(如果有的话)额外包络109。模块从属信息可以被显式地包含在各个包络109中或位于与包络109分离的位置。在任意给定时刻,仅当前模块包络109典型地处于可执行状态400中。然而为了提高处理效率,使用指定准备设备运行时间以评价这些从属的准备程度的转换窗318是方便的。
参考图3和5,转换窗318是确定由运行时间从单个模块包络109转换到可执行状400的从属500的等级的可配置参数。该参数(转换窗)318允许设备运行时间管理可执行400和原始状态402之间的权衡(即足迹(footprint)对可执行准备就绪)。示例应用程序107的本地视图示出了一些可能的包含整个应用程序的包络109。在模块包络A和D的情况下,还示出了从属列表500。需要注意,认为模块A和D处于可执行状态400中,这取决于选定的主持模式的配置所采用的应用程序107的执行设置。列表500表示描述性模块包络109依赖于它来执行的额外模块包络109的表达。
E和F处于离线状态404中,根据选定的主持模式,包络A和直接子从属模块D被认为是执行应用程序107所需的。例如,在应用程序107的当前执行路径期间从属D优先于从属C和G。取决于转换窗318的尺寸和主持模式的参数,基于包络A的从属列表500,应用程序107可以使所有包络A、C、D、G处于可执行状态400。
参考图3和6,从属表320可以包括关于模块从属树600(或图)的信息。在任意给定时刻,可以由从属树600表示模块内的从属500(参见图5)。树600的顶端节点M1表示当前执行的模块包络109。可以认识到,设备运行时间可以根据包含在应用程序107中的模块包络109(例如通过引用各个包络107的从属列表)来构造或修改从属树600。此外,服务器106还可以构造或可供应用程序107的从属树600使用。对应于图6的树600,作为表2中给出的表320的一部分,示出了包络109名称和节点数目之间的映射。
表2:从属节点映射表的包络
  模块包络   节点数目
  A   M1
  B   M111
  C   M12
  D   M11
  E   M112
  F   M113
  G   M13
参考图3和6,例如,可以由结合模块包络从属树600使用转换窗318的处理框架206采用预测状态转换方案。设备运行时间可以通过将树的从属节点激发(wake)到由转换窗31限制的深度,预准备用于评价的从属模块包络109。该方法可以提高模块包络109状态转换中的性能,并且同时限制在设备100上表示为资源密集可执行状态400(参见图4)的模块包络109的数目。预测方案可以陈述如下:
1)加载顶端节点(M1)的模块包络109并且准备执行。这可以是响应于应用程序107启动或者模块包络109转变的,如下面进一步给出的。认为顶端节点为深度0。
2)使用当前深度模块包络109所提供的从属列表500分析子节点(M11、M12、M13)的从属(参见图5);
3)将所有子节点转换为可执行状态400;以及
4)在可执行包络109的深度小于或等于指定的转换窗318时,重复步骤2和3。
例如,预测方案意味着激活值=0的转换窗318,即仅准备当前请求的模块包络109用于评价。值=1的转换窗318查看准备用于执行的模块M1、M11、M12和M13等。
状态转变
参考图4,示出了三种状态400、402、404及其转变方法。在可执行状态400中,使应用程序107的各个包络109还原(flatten)为其原始402表示。还原包括将设备运行时间内部的应用程序107的表示返回为其原始下载格式。还可以认识到,当形成可执行状态400时可以保留原始402表示,随后当完成时删除以便实现还原。在原始状态402中,可以准备包络109用于评价或上载。准备408包括将应用程序107的各个包络109转换为设备运行时间所需的内部表示,即可执行状态400。上载410包括删除原始402状态中的各个包络109的本地复制并且将它们发送到存储空间不是非常珍贵的远程位置(例如高速缓冲存储器111,参见图1)。从离线状态404中,可以将各个包络109下载412并且本地安装到设备100上。可以认识到,离线状态404可以包含各个包络109的原始402和可执行400形式。
可以由多个行动者(即用户、服务器106、设备100的智能设备运行时间或其组合)操作应用程序107的各个包络109的状态。设备100的用户可以根据例如但不局限于个人偏好、预期使用等的用户标准,选择以三种状态400、402、404之一的各个包络109表示应用程序100。在用户驱动模型中,用户可以定制/选择各个包络109的集合(即应用程序107)的主持模式。例如,当用户已经从应用程序服务器110下载了各个包络109时,用户可以根据要针对执行效率而优化的各个包络109的组,配置选定包络109的主持模式。
在用户驱动模型中,应用程序107的执行效率可以是例如但不局限于:在可执行状态400中可执行的所有各个包络109;在所有各个包络109处于可执行400、原始402和离线404的组合混合状态中的情况下当设备100处于(网络102的)覆盖范围中时的存储/空间效率;或者在所有各个包络109处于可执行400和原始402的组合混合状态中的情况下当设备100不处于(网络102的)覆盖范围中时的存储/空间效率。可以认识到,用户可以优化执行效率、存储效率或其组合,作为混合主持模式。用户可以根据每一个包络109配置包络109状态、可以在多个包络109组中选择类似包络109的配置,或者可以选择包络109的预定主持配置。
在服务器驱动模型中,服务器106可以根据例如但不局限于下载频率、收发消息行为等的观察标准,指示设备运行时间操作状态。在设备驱动模型中,智能运行时间可以根据但不局限于使用的频率或适当的预测模型,确定包络109的状态。可以认识到,服务器和设备模型可以按照上面针对用户驱动模型所述的,来选择应用程序107的执行效率。
系统的操作
设备100的系统10和相关处理框架206(参见图1)允许将应用程序107划分为分离模块包络109。可以以多种状态之一表示模块包络109。设备运行时间操作包络109状态以提供资源限制和可执行准备之间的最佳折衷。为了利于该系统10,采用三种应用程序模块包络状态,例如但不局限于:可执行状态400、原始状态402以及离线状态404。可以将不立即需要的应用程序模块包络109保持在原始状态402和离线状态404中。在这些状态中,利用非活动的模式以减少设备100资源的消耗。应用程序107的主持模式可以包括按照用户、服务器106、设备100运行时间或其组合所选择的任意希望的可执行/原始/离线内容的组合。
应用程序启动
关于应用程序启动,执行下面的步骤(参考图3和7)。
1)应用程序管理器306请求701模块从属管理器314加载应用程序107。
2)模块从属管理器314向持续管理器请求702应用程序信息表320。
3)模块从属管理器314根据应用程序信息表320确定703应用程序107启动点。
4)模块从属管理器314根据图8中概述的过程,加载704以请求启动模块包络109。
5)模块从属管理器314将处于可执行状态的启动模块包络109提供705给应用程序管理器306,用于评价。
模块转变
由于来自应用程序管理器306的对于特定模块包络109的请求,该处理开始。请求可以是响应于模块包络从属500或在应用程序启动(上述)期间。参考图3和8,结合下面一段,示出了设备运行时间怎样行动以满足该从属。
1)应用程序管理器306向模块从属管理器314请求801所需的模块包络109。
2)模块从属管理器314检查802内部应用程序信息表320以确定所需的模块包络109处于何种状态。如果模块包络109处于原始状态402,则跳过步骤803、804和805。如果根据步骤7预先准备了模块包络109(转换到可执行形式),跳过步骤803、804、805和806。
3)所需模块包络109处于离线状态404。模块从属管理器314请求803通信管理器316下载所需的包络109。
4)模块从属管理器314维持804刚刚获得的模块包络109。
5)模块从属管理器314更新805应用程序信息表320以指示已经获得丢失的包络109并且在原始状态402中可供本地使用。
6)模块从属管理器314将模块包络109提供806给状态编译器308。状态编译器308执行将包络109转换为可执行状态400所需的操作。
7)针对直到由转换窗318指定的深度的从属模块包络109,模块从属管理器314现在重复步骤802-806的动作。
8)更新808应用程序信息表320以反映模块包络109的可执行状态400。
9)将转换后的模块包络109返回809到应用程序管理器306,用于评价。应用程序管理器306评价描述性内容,以及
10)当需要时,将执行传送810到解释模块312。
模块离线
由下面的步骤,结合图3和9,示出了通过其可以由智能设备运行时间使模块包络109离线的处理。
1)在一些空闲周期期间,应用程序管理器306将处理定向901到模块从属管理器314。
2)模块从属管理器314检查902当前运行应用程序107的应用程序信息表320并确定哪些模块包络109不经常被引用。
3)由持续管理器310加载903模块包络109。
4)通信管理器316将原始模块包络109发送904到某个离线存储区域。
5)模块从属管理器314从持续存储器210中移除905本地表示。
6)模块从属管理器314更新906应用程序信息表320以指示选定的模块包络109现在处于离线状态404。
7)按照需要,针对其他包络109,重复步骤902-906。
考虑到以上内容,可以认识到,表320(参见图3)可以包含关于执行路径历史和投影执行路径的各种信息,包括例如但不局限于互相从属的包络109、当前状态400、402、404以及远程或本地的位置。
因此,设备运行时间可以表示应用程序107的选择子集或混合状态形式的应用程序107。可以无缝地更新处于原始400状态或离线404状态的模块包络109,而不需要用户必须执行复杂的更新任务。包络109的状态是例如但不局限于可执行400、原始402和离线404。可以认识到,可以根据包络109将这些状态应用于模块包络109,其中每个包络109可以包含一个或多个相关模块。处理框架206使用转换窗318和从属表或其他关系结构320(即树、图等),实现管理应用程序107的相关模块109的状态的能力。包络109的状态管理协调主持在设备100上的灵活应用程序107的任务。
上述描述涉及一个或多个示例系统和/或方法。多种变化对于本领域的技术人员是显而易见的,并且这些变化处于本申请的范围内。例如,可以认识到,系统的实施可以包括:框架模块,用于加载应用程序107,包括引用应用程序信息结构320,所述结构包括模块包络109的关系信息;包络管理模块,用于根据关系信息选择模块包络109之一;配置模块,用于根据预定包络状态400、402、404,配置选定模块包络109的状态;以及应用程序管理模块,用于根据配置的模块包络109,改变应用程序107在设备100上的配置。可以作为软件、硬件或其组合使这些模块在设备100上可用。

Claims (41)

1.一种在无线设备上动态地主持应用程序的方法,应用程序内容被划分为多个模块包络,每一个模块包络具有构成了应用程序的模块的一部分,该方法包括步骤:
初始化应用程序的加载,包括引用应用程序信息结构,所述结构包括模块包络的关系信息;
根据关系信息,从多个模块包络中选择一个模块包络;
根据预定包络状态,配置选定模块包络的状态,包络状态是从包络状态组中选出的,所述包络状态组包括从由原始状态、离线状态和可执行状态组成的组中选出的至少两个状态;以及
将配置模块包络提供给应用程序管理器,用于根据配置模块包络,改变应用程序在设备上的配置。
2.根据权利要求1所述的方法,还包括步骤:从包括远程存储器和本地存储器的组中选出的位置检索选定的模块包络。
3.根据权利要求2所述的方法,其中,离线状态表示模块包络位于远离设备的存储器中。
4.根据权利要求3所述的方法,还包括步骤:采用远程移动服务器上的用户高速缓冲存储器,在离线状态下,存储模块包络,高速缓冲存储器属于设备。
5.根据权利要求4所述的方法,其中,离线状态是从包括以下形式的组中选出的形式:类似于原始状态的原始形式;以及类似于可执行状态的可执行形式。
6.根据权利要求4所述的方法,还包括步骤:在移动服务器上存储由多个模块包络表示的完整应用程序内容。
7.根据权利要求2所述的方法,其中,原始状态表示以应用程序语言表达时应用程序的格式。
8.根据权利要求7所述的方法,其中,所述语言是从包括编程语言和机构化定义语言的组中选出的。
9.根据权利要求8所述的方法,其中,所述结构化定义语言是基于XML的。
10.根据权利要求7所述的方法,其中,由包括应用程序内容的各个模块表示部分,所述应用程序内容是从包括指令单元和非可执行描述性单元的组中选出的。
11.根据权利要求10所述的方法,其中,指令单元是从包括脚本和编程代码的组中选出的。
12.根据权利要求10所述的方法,其中,非可执行描述性单元是从包括数据实体、呈现实体和消息实体的组中选出的。
13.根据权利要求2所述的方法,其中,可执行状态表示应用程序内容准备好由设备的运行时间环境执行的形式。
14.根据权利要求2所述的方法,还包括步骤:以混合状态配置应用程序内容,混合状态包括多个选定模块包络,至少两个选定包络处于不同的状态。
15.根据权利要求14所述的方法,还包括步骤:在从包络状态组中选出的状态对之间转换选定的模块包络,从包括以下状态对的组中选出状态对:原始状态和可执行状态、原始状态和离线状态、以及离线状态和可执行状态。
16.根据权利要求15所述的方法,其中,关系信息包括从包括以下信息的组中选出的信息:应用程序内容的每一个模块包络的状态、模块包络之间的从属信息、以及每一个模块包络的位置。
17.根据权利要求16所述的方法,其中,从属信息包含在每一个模块包络中。
18.根据权利要求2所述的方法,还包括步骤:由设备上的运行时间环境针对应用程序采用主持模式,主持模式是从包括以下模式的组中选出的:动态模式,允许运行时间环境根据标准组来配置每一个模块包络的状态;以及静态主持模式,使用每一个模块包络的预定状态,用于定向运行时间环境。
19.根据权利要求18所述的方法,其中,标准组是从包括性能标准和存储标准的组中选出的。
20.根据权利要求18所述的方法,其中,由从包括以下实体的组中选出的实体确定主持模式:设备的用户;设备的运行时间环境;以及与设备相连的远程服务器。
21.一种用于动态地主持应用程序的无线设备,应用程序内容被划分为多个模块包络,每一个模块包络具有构成了应用程序的模块的一部分,该设备包括:
框架,用于加载应用程序,包括引用应用程序信息结构,所述结构包括模块包络的关系信息;
框架的模块管理器,用于根据关系信息,从多个模块包络中选择一个模块包络;
配置模块,用于根据预定包络状态,配置选定模块包络的状态,包络状态是从包络状态组中选出的,所述包络状态组包括从由原始状态、离线状态和可执行状态组成的组中选出的至少两个状态;以及
框架的应用程序管理器,用于根据配置模块包络,改变应用程序在设备上的配置。
22.根据权利要求21所述的设备,其中,选定模块包络被配置用于从包括远程存储器和本地存储器的组中选出的位置进行检索。
23.根据权利要求22所述的设备,其中,离线状态表示模块包络位于远离设备的存储器中。
24.根据权利要求23所述的设备,还包括:位于远程移动服务器上的用户高速缓冲存储器,用于在离线状态下,存储模块包络,高速缓冲存储器属于设备。
25.根据权利要求24所述的设备,其中,离线状态是从包括以下形式的组中选出的形式:类似于原始状态的原始形式;以及类似于可执行状态的可执行形式。
26.根据权利要求24所述的设备,其中,由多个模块包络表示的完整的应用程序内容被配置用于存储在移动服务器上。
27.根据权利要求22所述的设备,其中,原始状态表示以应用程序语言表达时应用程序的格式。
28.根据权利要求27所述的设备,其中,所述语言是从包括编程语言和机构化定义语言的组中选出的。
29.根据权利要求28所述的设备,其中,所述结构化定义语言是基于XML的。
30.根据权利要求27所述的设备,其中,由包括应用程序内容的各个模块表示部分,所述应用程序内容是从包括指令单元和非可执行描述性单元的组中选出的。
31.根据权利要求30所述的设备,其中,指令单元是从包括脚本和编程代码的组中选出的。
32.根据权利要求30所述的设备,其中,非可执行描述性单元是从包括数据实体、呈现实体和消息实体的组中选出的。
33.根据权利要求22所述的设备,其中,可执行状态表示应用程序内容准备好由设备的运行时间环境执行的形式。
34.根据权利要求22所述的设备,其中,以混合状态配置应用程序内容,混合状态包括多个选定模块包络,至少两个选定包络处于不同的状态。
35.根据权利要求34所述的设备,其中,选定的模块包络可在从包络状态组中选出的状态对之间进行转换,从包括以下状态对的组中选出状态对:原始状态和可执行状态、原始状态和离线状态、以及离线状态和可执行状态。
36.根据权利要求35所述的设备,其中,关系信息包括从包括以下信息的组中选出的信息:应用程序内容的每一个模块包络的状态、模块包络之间的从属信息、以及每一个模块包络的位置。
37.根据权利要求36所述的设备,其中,从属信息包含在每一个模块包络中。
38.根据权利要求22所述的设备,还包括由设备上的运行时间环境针对应用程序采用的主持模式,主持模式是从包括以下模式的组中选出的:动态模式,允许运行时间环境根据标准组来配置每一个模块包络的状态;以及静态主持模式,使用每一个模块包络的预定状态,用于定向运行时间环境。
39.根据权利要求38所述的设备,其中,标准组是从包括性能标准和存储标准的组中选出的。
40.根据权利要求38所述的设备,其中,由从包括以下实体的组中选出的实体确定主持模式:设备的用户;设备的运行时间环境;以及与设备相连的远程服务器。
41.一种用于在无线设备上动态地主持应用程序的计算机程序产品,应用程序内容被划分为多个模块包络,每一个模块包络具有构成了应用程序的模块的一部分,该计算机程序产品包括:
计算机可读介质;
框架模块,存储在计算机可读介质上,用于加载应用程序,包括引用应用程序信息结构,所述结构包括模块包络的关系信息;
包络管理模块,与框架模块相连,用于根据关系信息,从多个模块包络中选择一个模块包络;
配置模块,与框架模块相连,用于根据预定包络状态,配置选定模块包络的状态,包络状态是从包络状态组中选出的,所述包络状态组包括从由原始状态、离线状态和可执行状态组成的组中选出的至少两个状态;以及
应用程序管理器,与框架模块相连,用于根据配置模块包络,改变应用程序在设备上的配置。
CN2004800310638A 2003-10-02 2004-02-13 在无线设备上灵活主持应用程序的系统和方法 Expired - Lifetime CN1871584B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US50811103P 2003-10-02 2003-10-02
US60/508,111 2003-10-02
PCT/CA2004/000194 WO2005031574A2 (en) 2003-10-02 2004-02-13 Selective loading and configuring of an application on a wireless device, using relational information

Publications (2)

Publication Number Publication Date
CN1871584A true CN1871584A (zh) 2006-11-29
CN1871584B CN1871584B (zh) 2010-05-05

Family

ID=34393246

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2004800310638A Expired - Lifetime CN1871584B (zh) 2003-10-02 2004-02-13 在无线设备上灵活主持应用程序的系统和方法

Country Status (8)

Country Link
US (2) US7707574B2 (zh)
EP (1) EP1678614B1 (zh)
CN (1) CN1871584B (zh)
AT (1) ATE428142T1 (zh)
CA (1) CA2540519C (zh)
DE (1) DE602004020492D1 (zh)
HK (1) HK1086365A1 (zh)
WO (1) WO2005031574A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101360291B (zh) * 2007-07-31 2011-08-24 华为技术有限公司 一种多待机终端及其固件更新方法及装置

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2006225078B2 (en) 2005-03-16 2008-11-06 Airscape Technology Pty. Limited Method for distributing computing between server and client
US20070142036A1 (en) * 2005-12-16 2007-06-21 Nokia Corporation Provision of content in mobile environments
US8099735B2 (en) * 2007-12-21 2012-01-17 Oracle America, Inc. Method and system for module initialization
US8072926B1 (en) * 2009-06-19 2011-12-06 United Services Automobile Association (Usaa) Systems and methods for device emulation on mobile channel
EP2625816B1 (en) * 2010-10-08 2017-11-29 Lumi Technologies Limited Scalable synchronization of events among server and clients with varying lag-times
CN103677948B (zh) * 2014-01-08 2017-03-01 瑞典爱立信有限公司 一种启动器和启动方法
CN105373405B (zh) * 2015-11-26 2019-05-10 努比亚技术有限公司 动态加载应用程序的装置及方法
US9817648B2 (en) 2016-01-15 2017-11-14 Google Inc. Application containers with dynamic sub-package loading
KR102431773B1 (ko) 2016-01-15 2022-08-11 구글 엘엘씨 애플리케이션 컨테이너를 사용한 코드 및 종속 데이터의 전달 관리
CN106095424B (zh) * 2016-06-07 2019-05-24 中国建设银行股份有限公司 应用组件中交易调用的处理方法和装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5859982A (en) * 1996-06-05 1999-01-12 Sun Microsystems, Inc. Computer system and method for executing methods of downloaded programs with reduced run-time memory space requirements
US6363436B1 (en) * 1997-01-27 2002-03-26 International Business Machines Corporation Method and system for loading libraries into embedded systems

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101360291B (zh) * 2007-07-31 2011-08-24 华为技术有限公司 一种多待机终端及其固件更新方法及装置

Also Published As

Publication number Publication date
WO2005031574A3 (en) 2005-10-06
CN1871584B (zh) 2010-05-05
EP1678614B1 (en) 2009-04-08
US20050075068A1 (en) 2005-04-07
CA2540519A1 (en) 2005-04-07
US8065679B2 (en) 2011-11-22
CA2540519C (en) 2011-04-19
DE602004020492D1 (de) 2009-05-20
HK1086365A1 (en) 2006-09-15
US7707574B2 (en) 2010-04-27
EP1678614A2 (en) 2006-07-12
WO2005031574A2 (en) 2005-04-07
ATE428142T1 (de) 2009-04-15
US20100161767A1 (en) 2010-06-24

Similar Documents

Publication Publication Date Title
US8065679B2 (en) System and method for flexible application hosting on a wireless device
US11762634B2 (en) Systems and methods for seamlessly integrating multiple products by using a common visual modeler
CN1867897A (zh) 扩展基于脚本的应用程序的能力和执行效率的系统和方法
CN1906580A (zh) 对于具有可移动对象的启用网格的虚拟机的方法和系统
CA2859500C (en) Cloud-edge topologies
CN1142482C (zh) 控制普及计算设备应用程序/优选的方法和系统
CN1645330A (zh) 用于应用程序分布式管理的启用网格的虚拟机的方法和系统
CN1658608A (zh) 用于提供可修改通用应用内容的系统和方法
US20060031509A1 (en) Resource management method
CN110489126B (zh) 编译任务的执行方法和装置、存储介质及电子装置
CN1684034A (zh) 用以执行命令绑定的数据绑定机制的应用
CN1432913A (zh) 在计算系统中管理驱动器的系统和方法
CN1757216A (zh) 创建基于无线应用程序的组件并与之通信的系统和方法
CN101039331A (zh) 在移动应用程序环境中使用的产品
CN1922572A (zh) 为组件应用程序建立混合模式执行环境的系统和方法
CN1920781A (zh) 任务执行装置及方法
US11809428B2 (en) Scalable query processing
CN101038545A (zh) 操作系统内核构件跨域运行的方法
CN1741532A (zh) 智能网框架装置
CN1765101A (zh) 用于为移动终端提供多媒体和交互业务的客户机-服务器系统及其方法
US20230028008A1 (en) Checkpoints in batch file processing
CN1677932A (zh) 网络管理配置方法及其装置
Kurowski et al. User preference driven multiobjective resource management in grid environments
CN100340978C (zh) 组件处理系统和组件处理方法
CN1710542A (zh) 基于自由市场模型的海量空间信息分布式处理方法

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
CX01 Expiry of patent term

Granted publication date: 20100505

CX01 Expiry of patent term