CN101185062B - 用于数据语言中变量的自动更新的方法和装置 - Google Patents

用于数据语言中变量的自动更新的方法和装置 Download PDF

Info

Publication number
CN101185062B
CN101185062B CN2006800189958A CN200680018995A CN101185062B CN 101185062 B CN101185062 B CN 101185062B CN 2006800189958 A CN2006800189958 A CN 2006800189958A CN 200680018995 A CN200680018995 A CN 200680018995A CN 101185062 B CN101185062 B CN 101185062B
Authority
CN
China
Prior art keywords
dynamic variable
value
dynamic
variable
equipment
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
CN2006800189958A
Other languages
English (en)
Other versions
CN101185062A (zh
Inventor
S·G·布特林
N·C·布鲁克
N·克莱瑞
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN101185062A publication Critical patent/CN101185062A/zh
Application granted granted Critical
Publication of CN101185062B publication Critical patent/CN101185062B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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/451Execution arrangements for user interfaces
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/543Local
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/544Remote

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

所描述的是自动更新数据语言中的变量的各种方法和装置。通过以下步骤来更新动态变量:解析用数据语言编写的包含该动态变量的指令,在存储器中建立该动态变量,为该动态变量赋值,以及在不解析此用数据语言描述并包含该动态变量的指令的情况下更新该动态变量的值。也可通过创建与该动态值相关联的对象来更新动态变量,其中该对象决定该动态变量的值。进一步地,可以将函数值的观测与该动态变量相关联,并在函数值发生变化时给予该对象通知。

Description

用于数据语言中变量的自动更新的方法和装置
对相关申请的交叉参考 
本申请要求于2005年5月31日提交的美国临时申请S/N 60/686,271的权益,其全部内容被援引包含于此。 
发明背景 
发明领域
本发明一般涉及应用软件的变量处理。本发明尤其涉及处理数据语言中的动态变量。 
相关技术说明 
数据语言正在成为一种越来越盛行的编程方法。数据语言包括标记语言,诸如基于XML的语言,包括HTML和 
Figure DEST_PATH_GSB00000753275800011
(由高通公司所有)。数据语言广泛应用于编写基于web的应用程序,但并不仅限与此。使用基于XML的语言实现的功能的示例包括记帐和交易处理程序等。 
数据语言本质上是解释性的。通过数据语言程序进行一通,并且例如利用该程序中定义的元素来显示网页。该程序可以定义所用的元素,以及关于元件如何被显示的元件特性。这些语言也可用于用户界面的生成。 
在数据语言的使用中出现了一些困难,诸如变量的处理就是这样。因为XML本质上是解释性的,所以动态的变量一旦设定便不能更改。对解决这一问题所作的一些尝试包括通过使用Java脚本。然而,Java脚本在代码被重新执行之前并不修改变量,并且还要有某种机制来触发Java脚本使之重新运行。并不存在自动机制。换句话说,包含Java脚本的程序代码必须被再次运行才能确定新的变量值。如果变量是动态且变化的,则在代码被重新执行之前,Java脚本中使用的变量不会得到更新。 
使用数据语言的另一困难在于,它们不允许访问底层的计算机或处理器平台函数。例如,如果你想使用数据语言来显示指示电池水平的电池图标,则数据语言中没有这样的机制来访问平台所知道的电池水平。Java脚本也同样存在没有访问计算机/平台函数的能力这一问题。 
因此,业界需要提供允许对包含动态变量的表达式求值的方法和设备。此外,还需要有方法和设备来提供对计算机/平台级函数的访问。 
发明概要
通过创建可以对动态变量求值并访问计算机平台的底层函数的系统、方法和设备,与本发明一致的系统和方法克服了现有系统的不足。 
在本发明的一种实施方式中,通过以下步骤来对具有用数据语言编写的动态变量的表达式进行求值:接收该动态变量,确定该动态变量的第一值,使用该第一值对该表达式求值,以及检测与该动态变量相关联的变化。在接收到与该动态变量相关联的第二值并使用与该动态变量相关联的第二值对该表达式求值之后;在不重新解释其他包含该表达式的程序代码的情况下使用第二值对该表达式进行求值。 
在另一种实施方式中,通过以下步骤来更新动态变量:解析用数据语言编写的包含该动态变量的指令,在存储器中建立该动态变量,为该动态变量赋值,以及在不解析此用数据语言编写的包含该动态变量的指令的情况下更新该动态变量的值。也可通过创建与该动态值相关联的对象来更新动态变量,其中该对象决定动态变量的值。进一步地,可将对函数值的观测与动态变量相关联,并在该函数值改变时给予该对象通知。 
在又一种实施方式中,一种用于更新数据语言中的动态变量的设备包括:为动态变量分配的存储器位置,其中,是响应于解析数据语言中的指令而为该动态变量分配该存储器位置;以及处理器,用来对动态变量的更新求值。 
在再一种实施方式中,一种用于更新用数据语言编写的动态变量的计算机可执行的指令的计算机可读介质,这些计算机可执行指令在被执行时运行以下步骤:解析用数据语言编写的包含该动态变量的指令,在存储器中建立该动态变量,为该动态变量赋值,以及在不解析此用数据语言编写的包含该动态变量的指令的情况下更新该动态变量的值。 
本发明的其他目的、优势和特性在阅读下述附图简要说明、发明具体说明和权利要求书后将变得显而易见。 
附图简要说明 
参考以下各图,贯穿始终相同的附图标记代表相同的要素: 
图1是在本发明的一个实施方式中设备可以工作的一种通信环境的功能图; 
图2是一般性地示出本发明的一个实施方式中样本移动设备的组件的功能性框图; 
图3是一般性地示出本发明的一种实施方式中样本计算设备的组件的功能性框图; 
图4是示出本发明的一种实施方式中的计算机平台的应用架构的框图; 
图5是示出本发明的一种实施方式中更新用户界面组件的系统以及描绘trig播放器,actor(逻辑部分)和trig(UI要素)的架构的框图; 
图6是示出本发明的一种实施方式中TrigML代码、对象和actor的框图;以及 
图7是描绘本发明的一种实施方式中对动态表达式求值的过程的流程图。 
具体说明 
现在将详细参考附图中示出的本发明目前的示例性和优选实施方式,贯穿各图,相同的附图标记标示相同或相应的部件。对本领域技术人员而言,在结合附图考虑以下具体说明后,本发明的本质、目的和优势更为显而易见。 
对于本说明中的术语使用,术语“无线设备”、“无线电话”和“移动设备”被可互换地使用。本文使用的术语“应用程序”旨在涵盖可执行的和不可执行的软件文件、原始数据、聚合数据、补丁、内容、用户界面和用户界面组件以及具他代码片段。进一步地,贯穿各图,除非在此说明中特别指出,否则相同的附图标记指代相同的要素,并且冠词“一”和“该”包括复数形式。 
TrigML是一种在开发用户界面中很有用处的数据驱动语言。TrigML是QUALCOMM公司所有的产品。与在XML下定义的数据语言类似,TrigML代码包括了标签的使用。虽然将在用于无线设备上的用户界面的TrigML的背景中描述各实施方式,但是应认识到这仅是用于说明目的,而不是对发明的限定。本文中所描述的设备和方法也可以在非用户界面环境、以及在如前所述的使用不同数据语言的使用环境中应用。 
图1是在本发明的一个实施方式中设备可工作的通信环境100的功能图。在本例中,通信环境100包括无线网络122。无线网络122可以是由无线服务供应 商运营来为移动设备提供数据或电信连接的通信网络。进一步地,无线网络122还可包括有线网络、因特网、广域网,公共电话交换网(PSTN)和其他公共和/或专用网络,从而使设备可以使用连接到这些网络的其他设备来直接或间接地通信。 
在一个示例中,无线网络122可包括蜂窝电话网。若干移动设备与无线网络122通信,诸如有蜂窝电话112、膝上型计算机116、PDA 118和移动消息接发设备120。这些设备只是作为可以在无线网络122上通信的许多类型的设备的示例而示出。 
图1所述的是应用程序服务器124和用户界面服务器126。用户界面服务器126是供应用户界面组件130(下文中详述)的计算设备。这些用户界面组件130可以被下载到连接于无线网络122的其他设备。用户界面组件包括用以呈示用户界面的代码和/或数据(诸如函数调用、菜单、内容调用的代码、皮肤等)。注意,还可使用包括内容服务器在内的许多其他服务器来连接到该网络来传递信息。可用的信息类型是无限的,并且对于本领域技术人员来说,许多不同的示例应属显而易见。用户界面服务器126包括配置成通过无线网络122向作出请求的设备提供用户界面组件130的服务器软件。 
应用程序服务器124是耦合到无线网络122的使软件应用程序128可供移动设备下载的计算设备或系统。一般来说,应用程序128可供诸如蜂窝电话112等的连接到无线网络122的发备下载,以在那些设备上执行。在这个特定的实现方式中,由应用程序下载服务器124供应的至少一个应用程序128是配置成可供在这些移动设备中的至少一个上执行的基于内容的应用程序。该基于内容的应用程序(客户端)被设置为从内容服务器(未示出)检索可供经由用户界面在移动设备上呈现的内容。 
图2是一般性地示出本发明的一种实施方式中样本移动设备201组件的功能性框图。移动设备201可以是具有计算功能集的任何设备,诸如蜂窝电话、个人数字助理、于持式“掌上”设备、膝上型电脑、便携式音乐播放器、全球定位卫星(GPS)设备或类似设备。 
移动设备201具有可以接收并执行软件程序以及显示数据的计算机平台250。计算机平台250包括处理器252,诸如专用集成电路″ASIC″、数字信号处理器(″DSP″)、微处理器、微控制器、逻辑电路、状态机或其他数据处理设备。处理器 252执行应用程序编程接口(″API″)层254,其可以与移动设备的存储器256中任何驻留的程序接口。存储器256可以包括随机存取或只读存储器(RAM或ROM)、EPROM、EEPROM、快闪存储器、或各种计算机平台通用的任何存储器。计算机平台250还包括本地存储258,它可以保持不在存储器256中活动地使用的软件应用程序、文件、或数据,诸如从用户界面服务器126(图1)下载的软件应用程序或用户界面组件。本地存储258典型地包含一个或多个快闪存储器单元,但也可以是业界所知的任何二级或三级存储发备,诸如磁介质、EPROM、EEPROM、光介质、磁带、或者软盘或硬盘。 
计算机平台250还包括可由软件应用程序用来经由用户界面(未示出)显示数据的显示器260。 
图2中所述的组件在很多类型的移动设备中都很常见,但也应意识到,可以向移动设备201添加其他组件,并且在某些情形中,图2中所述的某些组件可以从移动设备201中省去。 
图3是一般性地示出了本发明的一种实施方式中的样本计算设备301的核心组件的功能性框图。计算设备301可以是任何固定的计算设备,诸如台式计算机或服务器。 
在本例中,计算设备301包括处理器单元304、存储器306、存储介质313和音频单元331。处理器单元304优选地包括微处理器或诸如数字信号处理器(DSP)等的专用处理器,但在替换方案中也可以是任何常规形式的处理器、控制器、微控制器或状态机。处理器单元304被耦合到存储器306,后者优选被实现为保持由处理器单元304执行的软件指令RAM存储器。在一替换实施方式中,存储器306可由固件或快闪存储器构成。在此种实施方式中,存储器306中存储的软件指令包括操作系统310以及一个或多个其他应用程序312,诸如采用用户界面的应用程序(未示出)。 
移动设备301还包括启用计算设备301与诸如移动设备等的一个或多个其他计算设备之间的双向通信的通信模块321。通信模块321可包括用来启用射频或诸如蜂窝电话网络、蓝牙连接、无线局域网、或可能无线广域网等的其他无线通信的组件。替换地,通信模块321可包括启用诸如以太网连接、RJ-11连接、通用串行总线连接,IEEE 1394(火线)连接、或其他类似连接等的陆线或硬线连接网络通 信的组件。这些意在作为非穷举性的列表,并且许多其他替换方案是可能的。音频单元331是移动设备301的配置为将信号在模拟与数字格式之间转换的组件。移动设备301使用音频单元331来经由扬声器332输出声音,并从麦克风333接收输入信号。 
图3仅示出了在许多常规计算设备中一般能找到的某些组件。在特定实现中还能例行地找到许多其他组件,并且在某些情形中,图3中所述的一些组件可以被省去。然而,图3所述的计算设备301在今天常见的计算设备中是很典型的。 
图4示出了本发明的一种实施方式中一种设备的应用程序架构。该设备将包括“计算机平台”。计算机平台可以指设备中包括硬件、软件或两者兼有的组件。例如,它可能包括操作系统、包括芯片在内的底层硬件组件、用户界面硬件(例如,显示器、输入和输出设备)、库、支持API、操作系统的附加扩展等。 
在一种实施方式中,无线设备的应用程序架构400包括设备API 405、BREWAPI 410、BREW扩展415、Trig播放器420、Actors(逻辑部分)425和Trig(UI要素)430。设备API 405可包括由软件平台用来寻址诸如特定处理器或ASIC函数、特定设备硬件功能集等的专门与该设备相关联的函数的那些API。 
BREW API 410是由QUALCOMM公司开发的软件平台。BREW API 410为应用程序提供了无需专门为该设备编写也能调用设备API 405和其他函数的能力。换句话说,它从应用程序抽象出硬件的特定方面,由此允许为许多设备编写应用程序,而无需为应用程序在其上执行的每个特定设备改编应用程序或仅需略微改编。 
BREW扩展415提供了向BREW平台添加附加功能的能力,诸如提供MP3播放器、Java虚拟机等。 
Trig播放器420、Trig 430和Actors 425是QUALCOMM公司开发的uiOneTM 架构的组件。这些组件典型是指设备400的用户界面方面。在一种实施方式中,Trig 430是应用程序为在设备400上呈示用户界面所用的编译好的TrigML
Figure 2006800189958_1
代码及其他资源(可包括元数据、文本文件和图像)。称为Triglet(未示出)的多个Trig430和Trig的更新可用于用户界面。 
由QUALCOMM公司所有的TrigML代码是一种基于XML的数据语言,并且用户界面呈现语言可用其来创作Trig 430,TrigML代码还包括针对移动的功能集、交互式用户界面事件模型、和像素定位及其他优势。 
Actor 425包括了将Trig连接到底层设备APIs 405和/或BREWAPI 410的底层C代码。Actor 425还可以用作输入/输出的可执行件。并且由于Actor连接到底层设备和BREW API,因此它们也可以访问计算机平台函数。 
Trig播放器420可被实现为BREW扩展415,虽然在图4中它被分立出来。Trig播放器用来通过使用Trig和Actor来呈示用户界面。 
应当认识到,虽然对图4的讨论是基于QUALCOMM公司的uiOne架构(包括编译好的TrigML、Trig播放器、BREW API等),但这仅是出于示例目的,并且本发明包括其他数据语言、计算机和软件平台以及设备架构。 
图5是示出本发明的一种实施方式中更新用户界面组件的系统以及描述Trig播放器420,Actor 425和Trig 430的架构的框图。设备500包括Trig播放器420,Actor 425,和Trig 430。Trig可包括TrigML代码505、文本串510、图像5 15和更新通道520(更新通道可定义取回Triglet 530的URL和定时方案)。可以无线地更新Trig,由此允许用户界面在设备离开制造商后仍能被更新。可以使用服务器525来下载新的Trig和/或Trig的更新的组件(例如,Triglet 530),由此允许为设备定制用户界面。 
图6是示出本发明的一种实施方式中TrigML代码、对象和Actor的关联的框图。TrigML代码可以使用一系列标签(605-625)来编写。这些标签可以定义要执行的动作,并定义与程序代码的目的相关的特定参数。在一种实施方式中,此TrigML代码在其于无线设备上被解析并执行之前已被编译好。 
在本发明的一种实施方式中,当TrigML程序代码被解析以供执行时,将对象(630-650)与TrigML代码中的元素(605-625)相关联。这些对象可包含元素的表示。例如,元素620表示一个长度为3的框。当对这一元素求值时,就创建了一个框长度值=3(645)的对象。 
在程序代码中的表达式中包含动态变量可能是合乎需要的。例如,如果需要一代表无线设备的电池水平的图标,则在假定框的宽度随电池水平变化的情况下,更新此框的宽度来显示随电池充放电而变化的当前电池水平是合乎需要的。 
在这种情形中,元素″<box width=″batterylife/10″>″(645)包含了具有会根据电池中余留的电量而变化的动态变量″batterylife(电池寿命)″的表达式(″batterylife/10″)。该对象进一步对其进行操作,将batterylife值除以10。应注意, 该表达式可包含简单或复合的操作,包括随动态变量使用数字、串、算子等。 
在一种实施方式中,创建对象640来确定包含动态变量的元素中表达式的值。此外,创建actor 655并使用其来接收batterylife值。对象640在对该表达式求值时将使用actor中表示的值作为该动态变量。 
在该设备中,由一函数,例如API来监视并确定当前batterylife(660)。该函数可包括那些相对于计算设备而言处于计算机层或平台层的函数(例如,设备和/或BREW API),或可以是本地或远程执行的、并与本地计算机或远程计算机相关的其他API、功能或任务的具他函数。本领域技术人员应当认识到,″batterylifc″函数仅用于描述目的,并且任何函数/API部可使用。 
可以使用很多范例来向actor 655告知batterylife函数660的值的变化。例如,可实现观测/通知模式,其中向batterylife函数660告知actor 655存在,且当值发生变化时,通知actor 655。采用这种范例,actor 655待命并等待来自batterylife函数660的关于发生改变的指示。一旦actor 655收到了发生改变的指示,它就通知对象640,以使对象640可以从batterylife函数660取回值。该对象随后使用新的函数值对包含动态变量的表达式求值。 
另一范例包括轮询,其中actor 655定期轮询batterylife函数660以期获得发生了变化的指示。处理如前文所述地进行,其中对象取回函数值并对表达式求值。尚有其他范例存在,并为本领域技术人员所知,且其仍应包含在本发明的范围中。 
当代表了表达式的对象被重新求值时,就可将新的值就用于编写TrigML代码的目的。还应注意到,该动态变量可能经常改变,并且在每次改变时,只有与表达式相关联的对象需要被重新求值以确定新的值。TrigML代码无需被重新解析。 
图7是描述本发明的一种实施方式中对动态表达式求值的过程的流程图。首先,该方法从接收具有动态变量的表达式开始(步骤705)。应注意,表达式典型为数据语言格式,诸如是基于XML的格式。然而,其他的数据语言也可使用。 
并且,动态变量是可能会改变的变量,并且在该数据语言程序代码的初始解析之后,可能需要该变量的任何改变。它还可能和与计算机平台相关联的函数有关。 
接下来,创建一个对象来对表达式求值(步骤710)。对象的使用并不是必须的,并且可能只对某些元素来说是必要的。对象可以包含值,不一定是数字或标量值,而可以是该元素的目的的表示。 
随后创建协助提供动态变量的值的actor(步骤715)。替换地,actor可能已经存在,且该存在的actor被用来通知对象函数值已改变。该actor被链接到与该动态变量相关联的函数。该actor可提供两个函数(并不要求这些函数被分派给该actor,并且它还可执行更多的函数)。首先,它可以允许查询/取回/读取一个值;第二,它可用作向对象指示函数的改变的机制(采用本文讨论的范例之一)。 
该对象随后从函数中取回函数值(步骤720)。该对象接下来对表达式求值(步骤725)。随后,确定函数值是否发生改变(步骤730)。这可以如本文所描述地经由向actor指示发生了改变、而actor指示对象发生了改变的函数来执行。 
如果在步骤730中函数值发生改变,则走″是”路径,且对象从函数重新取回函数值(步骤735),并使用该新的函数值(与该动态变量相关联)对表达式求值(步骤745)。 
如果在步骤730中函数值没有发生改变,则走″否”路径,并且使用本文所描述的范例或是本领域技术人员所知的其他范例之一来监视变化。 
另一种实施方式包括更新依赖于布尔表达式的″动作″标签,例如, 
<animatc while=″valueof(/res/width)>120″..../> 
在此,当所给出的布尔表达式为真时,′animate′动画标签即被激活。如果在未来任何点,该表达式解析为’假’,则动画将被停用。 
通过坚持在每次表达式解析为真时,即在表达式的任何子元素发生改变,并且整个表达式值解析为真时,使标签被(立即)激活,就可将布尔表达式用于一次性‘action’标签。,例如, 
<doload when=″valueof(/res/errormsg)=′Downloaded′″.../> 
这里,每次VFS节点/res/errormsg被更新,且表达式求值为真时,就会执行′doload′操作。 
表达式还可以作为资源路径元素被嵌入,例如, 
<image res=″res/{valueof(/var/restype)}/{valueof(/var/num)*10}″.../> 
在这一实施方式中,三个要素的资源路径是对第一个元素使用串字面值并对最后各元素使用两个表达式来构造成的。该资源路径指示了要呈示图像的位置。若这些子表达式中有任何一个发生变化,该资源路径就会被自动重新求值,并可能导致一不同的图像被显示。 
通过在XML属性中直接嵌入任意复合的表达式,就可能用简洁而优雅的标记来创建可动态更新的UI,而无需事件或嵌入的脚本语言。 
上述方法和软件设计说明还可在作为指令存储在RAM或其他存储器存储设备中的装置中实现。虽然本文中所给出的过程是按特定次序顺序示出并说明,但是在其他的实施方式中,这些过程步骤可按不同的次序执行,重复执行多次,和/或并行进行。进一步地,在一些实施方式中,在这几个过程中描述的一个或多个步骤可以作为独立步骤执行,合并为更少的步骤,或可能被整体省略。 
虽然以上公开示出了本发明示例性的实施方式,但是应当注意到,可对所描述的实施方式进行各种变动和更改而不会脱离所附权利要求定义的本发明的精神和范围。进一步地,虽然发明中的要素在说明书或权利要求书中可能是单数形式,但是除非明确陈述为单数形式,否则也构想了复数形式。 

Claims (5)

1.一种更新标记语言中的动态变量的方法,包括:
解析用所述标记语言编写的包含所述动态变量的指令;
在存储器中创建所述动态变量;
为所述动态变量赋值;
创建与所述动态变量的值相关联的对象,其中所述对象决定所述动态变量的值;
观测与所述动态变量相关联的函数值;
在所述函数值发生变化时,通知所述对象;以及
在不解析所述用标记语言编写的包含所述动态变量的指令的情况下更新所述动态变量的值。
2.根据权利要求1所述的方法,其特征在于,所述为动态变量赋值的步骤包括对与软件平台相关联的函数求值。
3.根据权利要求1所述的方法,其特征在于,所述动态变量被包含在复合等式中,并且所述方法进一步包括用更新后的动态变量的值对所述复合等式求值。
4.一种用于更新标记语言中的动态变量的装置,包括:
用于解析用所述标记语言编写的包含所述动态变量的指令的装置;
用于在存储器中创建所述动态变量的装置;
用于为所述动态变量赋值的装置;
用于创建与所述动态变量的值相关联的对象的装置,其中所述对象决定所述动态变量的值;
用于观测与所述动态变量相关联的函数值的装置;
用于在所述函数值发生变化时通知所述对象的装置;以及
用于在不解析所述用标记语言编写的包含所述动态变量的指令的情况下更新所述动态变量的值的装置。
5.根据权利要求4所述的装置,其特征在于,所述用于为所述动态变量赋值的装置包括用于对与软件平台相关联的函数求值的装置。 
CN2006800189958A 2005-05-31 2006-05-31 用于数据语言中变量的自动更新的方法和装置 Expired - Fee Related CN101185062B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US68627105P 2005-05-31 2005-05-31
US60/686,271 2005-05-31
PCT/US2006/020703 WO2006130537A1 (en) 2005-05-31 2006-05-31 Automatic updating of variables in a data language

Publications (2)

Publication Number Publication Date
CN101185062A CN101185062A (zh) 2008-05-21
CN101185062B true CN101185062B (zh) 2012-10-03

Family

ID=36821523

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800189958A Expired - Fee Related CN101185062B (zh) 2005-05-31 2006-05-31 用于数据语言中变量的自动更新的方法和装置

Country Status (7)

Country Link
US (1) US7908595B2 (zh)
EP (1) EP1889157A1 (zh)
JP (1) JP4927830B2 (zh)
KR (1) KR100948472B1 (zh)
CN (1) CN101185062B (zh)
BR (1) BRPI0611320A2 (zh)
WO (1) WO2006130537A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9313245B2 (en) * 2007-12-24 2016-04-12 Qualcomm Incorporated Adaptive streaming for on demand wireless services
US20130290851A1 (en) * 2012-04-30 2013-10-31 Microsoft Corporation User interface web services
CN105159679A (zh) * 2015-09-15 2015-12-16 北京国科世纪激光技术有限公司 视窗类软件的消息响应和处理方法及系统

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5917730A (en) * 1995-08-17 1999-06-29 Gse Process Solutions, Inc. Computer implemented object oriented visualization system and method
US6961929B1 (en) * 1999-06-25 2005-11-01 Sun Microsystems, Inc. Mechanism for automatic synchronization of scripting variables
US7165243B1 (en) * 1999-06-25 2007-01-16 Sun Microsystems, Inc. Multi-lingual tag extension mechanism
JP2002108600A (ja) * 2000-10-02 2002-04-12 Digital Electronics Corp 制御システムの端末装置、記録媒体、および、制御システム
US20030189593A1 (en) * 2001-01-05 2003-10-09 Yarvin Curtis G. Method and apparatus for dynamically updating a markup language based user interface
JP2003150440A (ja) * 2001-11-13 2003-05-23 Matsushita Electric Ind Co Ltd 複数ユーザインタフェースの同期方法とそのシステム及びプログラム
US7096456B2 (en) * 2001-11-30 2006-08-22 Microsoft Corporation Method and apparatus for providing dynamically scoped variables within a statically scoped computer programming language
JP2004178303A (ja) * 2002-11-27 2004-06-24 Digital Electronics Corp 表示装置、画面データ生成装置、および、そのプログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Reeves W T et al..The Menv modelling and animation envirnment.Journal of Visualization and Computer Animation1 1.1990,1(1),第34页右栏第21行至第51行,第35页左栏第11行至第54行,右栏第20行至第34行,第36页第4.4节,第36页右栏第1行至第5行.
Reeves W T et al..The Menv modelling and animation envirnment.Journal of Visualization and Computer Animation1 1.1990,1(1),第34页右栏第21行至第51行,第35页左栏第11行至第54行,右栏第20行至第34行,第36页第4.4节,第36页右栏第1行至第5行. *

Also Published As

Publication number Publication date
JP2008546095A (ja) 2008-12-18
EP1889157A1 (en) 2008-02-20
KR20080017420A (ko) 2008-02-26
CN101185062A (zh) 2008-05-21
US20060271845A1 (en) 2006-11-30
US7908595B2 (en) 2011-03-15
KR100948472B1 (ko) 2010-03-17
WO2006130537A1 (en) 2006-12-07
BRPI0611320A2 (pt) 2010-08-31
WO2006130537B1 (en) 2007-02-01
JP4927830B2 (ja) 2012-05-09

Similar Documents

Publication Publication Date Title
US10635728B2 (en) Manifest-driven loader for web pages
CN111639287A (zh) 一种页面处理方法、装置、终端设备及可读存储介质
US9258357B2 (en) Method for accessing plural cloud storages, electronic apparatus and non-transitory computer readable medium
KR20160014629A (ko) 업데이트에 대한 기지의 의존관계를 관리하는 기법
US8266419B2 (en) Fast restart on a virtual machine
US20080154776A1 (en) System and method of automatically maintaining and recycling software components
US8499294B2 (en) Persisting the changes for managed components in an application server
KR20070018042A (ko) 사용자 인터페이스 컨텐츠 데이터용 데이터 컨테이너
JP5336965B2 (ja) 情報処理装置、情報処理装置の制御方法、及びプログラム
CN102362261A (zh) 通过网络浏览器输入内容至应用程序
US11321080B2 (en) Patch package generation method and device
CN101944032A (zh) 一种微件更新的方法及客户端、服务器及系统
KR20140113685A (ko) 병행가능하고 신뢰성 있는 설치를 위한 설치 엔진 및 패키지 포맷
US20130067432A1 (en) Application development toolkit
KR100670605B1 (ko) 멀티미디어 콘텐츠 서비스 시스템과 방법 및 그 기록매체
CN112835568A (zh) 一种项目构建方法和装置
CN101185062B (zh) 用于数据语言中变量的自动更新的方法和装置
US20180032329A1 (en) Customized runtime environment
US20190196794A1 (en) Visual programming method, system and terminal device
JP2012089110A (ja) 情報提供装置および情報処理装置および制御方法およびプログラム
CN104217021B (zh) 阅读服务器、终端设备及其显示阅读内容的方法
CN103309677A (zh) 内置资源管理方法、装置及终端
CN101213516B (zh) 在数据语言中管理多种语言
CN113296762B (zh) 页面嵌入方法、装置、存储介质及电子设备
CN102859512A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1118113

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1118113

Country of ref document: HK

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

Granted publication date: 20121003

Termination date: 20190531

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