CN101382889A - 使用ui储存库的公共ui组件执行无线应用程序的系统和方法 - Google Patents

使用ui储存库的公共ui组件执行无线应用程序的系统和方法 Download PDF

Info

Publication number
CN101382889A
CN101382889A CNA2008101708939A CN200810170893A CN101382889A CN 101382889 A CN101382889 A CN 101382889A CN A2008101708939 A CNA2008101708939 A CN A2008101708939A CN 200810170893 A CN200810170893 A CN 200810170893A CN 101382889 A CN101382889 A CN 101382889A
Authority
CN
China
Prior art keywords
user interface
screen
definition
application program
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
CNA2008101708939A
Other languages
English (en)
Other versions
CN101382889B (zh
Inventor
卡门·B·维塔诺夫
迈克尔·申菲尔德
布伦杜沙·L·弗里奇
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 CN101382889A publication Critical patent/CN101382889A/zh
Application granted granted Critical
Publication of CN101382889B publication Critical patent/CN101382889B/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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供了产生用于显示在无线设备的用户接口上的屏幕表示的方法,将屏幕表示定义为以结构定义语言来表达的用户接口定义集合,结构定义语言被配置为由被配置为在无线设备上运行的多个应用程序所引用,包括以下步骤:接收来自多个应用程序中的第一应用程序的对屏幕表示的请求;从无线设备上的存储器中检索与屏幕表示相对应的用户接口定义集合;解析用户接口定义的结构定义语言,以确定用户接口元素;将显示特征应用于用户接口元素,以产生屏幕模型;以及将屏幕模型提供给第一应用程序,以便以显示条件和屏幕值进行填充,以产生屏幕表示;其中将屏幕表示配置用于随后对用户接口的显示,以便通过用户事件与用户进行交互。本发明还提供了相应系统。

Description

使用UI储存库的公共UI组件执行无线应用程序的系统和方法
本申请是2005年2月28提交的题为“使用UI储存库的公共UI组件执行无线应用程序的系统和方法”的发明专利申请200510052450.6的分案申请。
技术领域
本申请大体上涉及应用程序在无线设备的用户接口上的表示。
背景技术
今天,所使用的终端设备的数量持续增加,如移动电话、具有无线通信能力的PDA和双向寻呼机等。运行在这些设备上的软件应用程序增加了其功能性。例如,移动电话可以包括检索城市范围的天气的应用程序,或者PDA可以包括允许用户购买杂货的应用程序。这些软件应用程序利用对网络的连接性,以便向用户提供及时有用的服务。但是,由于一些设备的受限资源,以及向设备传递大量数据的复杂性,开发针对多种设备的软件应用程序仍然是困难而耗时的任务。
目前,将设备配置为通过基于因特网的浏览器和/或本地应用程序与网络服务进行通信。本地应用程序具有针对设备平台的类型专门研发的优点,从而针对每次运行时刻的环境,提供了相对优化的应用程序。但是,本地应用程序具有以下缺点:非平台无关,必需开发相同应用程序的多个版本,以及尺寸相对较大,从而给设备的存储器资源造成了严重的负担。此外,应用程序开发商需要使用如Java和C++等编程语言的经验,以便构建这些硬编码本地应用程序。存在对能够运行在客户端设备上的应用程序的需要,其具有广泛的运行时刻环境,以及具有对设备资源的减少的消耗。
需要使用动态且交互式的用户接口(UI),在定义用于管理设备(如无线等)上的应用程序表示的应用程序组件屏幕时,提供最大程度的灵活性和效率。由于无线设备资源的限制,重要的是具有一种使用减少的可执行代码的有效应用程序数据表示方法。
这里所公开的系统和方法提供了一种用于产生用户接口元素的执行环境,以排除或消除上述缺点中的至少一些。
发明内容
需要的是利用动态、交互式用户接口(UI),在定义用于管理设备上的应用程序表示的无线应用程序的组件屏幕时,提供最大的自由度和效率。由于无线设备资源的限制,重要的是具有一种使用减少的可执行代码来进行有效应用程序数据表示的方法。与目前的用户接口可视化系统和方法相反,提供了一种系统和方法,具有智能运行时刻设备框架的执行环境,用于在设备上声明的用户接口(UI)上产生用户接口元素。所提出的方法通过XML元数据UI定义(或其他结构定义语言计划(schema))实现了用户接口定义,代替了需要在应用程序的执行代码中实现屏幕元素。将UI定义存储在公共UI储存库中,作为设备上的应用程序的公共资源,并在运行时执行。UI定义与设备的目标平台无关。可以根据需要,定制和标记设备上的所有应用程序的“感观”。与应用程序逻辑分离地定义UI元素的布局和次序提供了应用程序的模块化。这种模块化允许重新使用已经定义的UI屏幕,并在不同的应用程序之间进行共享。所述系统具有主题和标记储存库、UI储存库、可视化引擎、执行环境和UI服务。所述方法包括以下步骤:解析XML定义、应用主题和标记特征、向执行环境提供屏幕模型、对用户接口进行可视化以及事件处理。
根据本发明,提出了一种产生用于显示在无线设备的用户接口上的屏幕表示的方法,将屏幕表示定义为以结构定义语言来表达的用户接口定义集合,结构定义语言被配置为由被配置为在无线设备上运行的多个应用程序所引用,所述方法的特征在于包括以下步骤:接收来自多个应用程序中的第一应用程序的对屏幕表示的请求;从无线设备上的存储器中检索与屏幕表示相对应的用户接口定义集合;解析用户接口定义的结构定义语言,以确定用户接口元素;将显示特征应用于用户接口元素,以产生屏幕模型;以及将屏幕模型提供给第一应用程序,以便以显示条件和屏幕值进行填充,以产生屏幕表示;其中将屏幕表示配置用于随后对用户接口的显示,以便通过用户事件与用户进行交互。
本发明还提供了一种用于产生用于显示在无线设备的用户接口上的屏幕表示的系统,将屏幕表示定义为以结构定义语言来表达的用户接口定义集合,结构定义语言被配置为由被配置为在无线设备上运行的多个应用程序所引用,所述系统的特征在于包括:存储器,用于存储由多个应用程序进行引用的多个用户接口定义集合;可视化引擎,用于接受多个应用程序中的第一应用程序的屏幕表示请求,以及用于解析从存储器中检索出的选定用户接口定义集合的结构定义语言,以确定屏幕表示的用户接口元素,选定的用户接口定义对应于所请求的屏幕表示;与可视化引擎相连的屏幕模块,用于将显示特征应用于用户接口元素,以产生定义了屏幕表示的屏幕模型;执行环境,用于向第一应用程序提供屏幕模型,以便以显示条件和屏幕值进行填充;以及用户接口服务,用于再现屏幕模型,以便向用户接口提供屏幕表示;其中无线设备的用户与用户接口上的屏幕表示进行交互。
本发明还提供了一种计算机程序产品,用于产生用于显示在无线设备的用户接口上的屏幕表示,将屏幕表示定义为以配置用于由无线设备上提供的多个应用程序所引用的结构定义语言来表达的用户接口定义集合,所述计算机程序产品包括:计算机可读介质;存储在所述计算机可读介质上的存储器模块,用于存储由多个应用程序进行引用的多个用户接口定义集合;存储在所述计算机可读介质上的可视化引擎,用于接受多个应用程序中的第一应用程序的屏幕表示请求,以及用于解析从存储器中检索出的选定用户接口定义集合的结构定义语言,以确定屏幕表示的用户接口元素,选定的用户接口定义对应于所请求的屏幕表示;与可视化引擎模块相连的屏幕模块,用于将显示特征应用于用户接口元素,以产生定义了屏幕表示的屏幕模型;执行环境,用于将屏幕模型提供给第一应用程序,以便填充显示环境和屏幕值;以及存储在所述计算机可读介质上的再现模块,用于再现屏幕模型,以便向用户接口提供屏幕表示;其中无线设备的用户与用户接口上的屏幕表示进行交互。
附图说明
通过以下仅作为实例而参照附图做出的详细描述,这些和其他特征将变得更加清楚,其中:
图1是网络系统的方框图;
图2是图1所示的普通设备的方框图;
图3示出了与图2所示的设备的UI储存库交互的多个应用程序;
图4是使UI定义在图2所示的用户接口上可视化的系统;
图5示出了图4所示的UI存储库的UI定义层次;以及
图6是图4所示的系统的示例操作的流程图。
具体实施方式
网络系统
参照图1,网络系统10包括多个普通终端设备100,用于通过如但不局限于因特网的相连广域网(WAN)104与一个或多个网络服务106交互。这些普通终端设备100可以是但并不局限于个人计算机116、无线设备101、PDA、自助信息站等。由服务106提供的普通服务可以是其他服务,如但并不局限于SQL数据库、基于IDL的CORBA和RMI/IIOP系统、遗留数据库、J2EE、SAP RFC和COM/DCOM组件。此外,系统10还可以具有网关服务器112,用于通过局域网(LAN)14将桌面终端116与服务106相连。此外,系统10还可以具有无线网络102,用于将无线设备101与WAN 104相连。应当意识到,其他设备和计算机(未示出)可以通过WAN 104和除图1所示的其他关联网络与网络服务106相连。此后,为了简单,将普通终端设备100、无线设备102和个人计算机称为设备100。为了简单,针对系统10的以下描述选择网络服务106。但是,应当意识到,如果需要,可以用其他服务替换网络服务106。此外,为了简单,此后将系统10的网络102、104、112称为网络104。
再次参照图1,设备100在与网络服务106进行通信时,分别发送和接收请求/相应消息105。设备100可以通过使用消息报头信息和关联数据内容形式的的请求/响应消息105,作为网络服务106的网络客户端进行操作,例如,从在线贸易商那里请求和接收产品价格和可用性。网络服务106是通信设备100上的客户端应用程序302(参见图2)通过无线网络104与之交互、以便向通信设备100的用户提供实用性的系统的示例。
再次参照图1,为了满足适当的请求/相应消息105,网络服务106可以通过多种协议(如但并不局限于HTTP和组件API)与应用程序服务器110进行通信,以便在设备100上提供其时,向客户端应用程序302(参见图2)展示相关的商业逻辑(方法)。应用程序服务器110还可以包含网络服务106软件,从而网络服务106可以被认为是应用程序服务器110的子集。设备100的应用程序302可以使用应用程序服务器110的商业逻辑,类似于调用与对象有关的方法(或函数)。应当意识到,可以通过消息105,经由网络104,将客户端应用程序302与应用程序服务器110相关地直接下载/上载到设备100。还应当意识到,设备100可以通过网络104与一个或多个网络服务106和关联应用程序服务器110进行通信。
服务器环境
参照图1,网络服务106提供由设备100上的客户端应用程序302(参见图2)使用的信息消息105。可选地,或此外,网络服务106可以接收和使用由设备100上所执行的客户端应用程序302所提供的信息消息105,或者以设备100上所执行的客户端应用程序302的名义执行任务。可以将网络服务106定义为软件服务,其可以实现如利用登记在网络服务登记中的通用发现描述和集成(UDDI)中的网络服务描述语言(WSDL)所表达的接口,并能够通过如简单对象存取协议(SOAP)等适当的协议暴露在网络104上,通过消息105与客户端设备100进行通信。可选地,网络服务106可以使用其他已知的通信协议、消息105格式,以及可以按照除上述之外的其他网络服务语言来表达接口。
客户端环境
参照图2,通过网络104传输组件应用程序302,并加载到设备100的设备基础设施204的存储模块210。可选地,可以通过串行连接、USB连接、或如IR、802.11(x)、蓝牙TM等短距离无线通信系统(未示出)来加载组件应用程序302。一旦被加载到设备100中,则可以由设备100上的执行环境312执行组件应用程序302,如果需要,其可以将组件应用程序302转换为本地代码,并通过设备基础设施204中的处理器208。可选地,可以通过设备100上的其他软件模块(未示出)或操作系统来解释应用程序302。在任何情况下,在由设备100提供的执行环境312下运行组件应用程序302。执行环境312可以由智能软件框架206提供,所述智能软件框架206还能够提供用于管理和执行典型应用程序302行为(如持续性、消息发送、屏幕导航和表示等)的基本服务集合。
参照图3,应用程序302可以是但并不局限于浏览器应用程序302a、本地语言应用程序302b和/或基于容器的脚本/结构定义语言(如XML)应用程序302c,在适当的执行环境312下执行。设备100上所提供的每个应用程序302a、b、c可以使用用户接口(UI)储存库310,从而使UI储存库310包含以结构定义语言(如但并不局限于XML)描述的UI定义600(参见图5)。每个应用程序302a、b、c在UI储存库310中具有其自己的条目,其中存储了针对此应用程序302a、b、c的UI定义600。UI定义600由应用程序302a、b、c使用,以提供对用户接口202的输出,以便与设备100的用户进行交互。浏览器应用程序302a可以是在浏览器执行环境312下在设备100上执行的应用程序302。浏览器应用程序302a的特征在于在设备100上较小的覆盖区(footprint),由于大多数应用程序逻辑均位于应用程序服务器上(即网络服务106——参见图1)。浏览器环境312提供了“沙箱”安全环境来执行浏览器应用程序302a,并从而能够确保适当的访问控制。本地语言应用程序302b是以特定的语言实现的应用程序302,所述语言是设备100的本地环境312所固有的——例如,C++、Java等。本地应用程序302b可以使用设备100特征的扩展集合,但其很少可以在不同的设备100环境312(例如,平台)之间移动。基于容器的脚本/XML应用程序302c是使用脚本语言和以XML或其他结构定义语言所定义的元数据而定义的应用程序302。可以在基于容器的运行时刻环境312下执行这些应用程序302c。为了简单,此后将应用程序302abc称为应用程序302。
再次参照图1,可以对由设备100提供的客户端运行时刻环境进行配置,从而使设备100作为网络服务106的网络客户端进行操作。应当意识到,客户端运行时刻环境也可以使设备100成为网络104上的任何其他普通服务的客户端,如但并不局限于普通计划定义服务。此外,框架206的特定功能可以包括但并不局限于对语言的支持、协调存储器分配、联网、I/O操作期间的数据管理、协调设备100的输出设备上的图形以及提供对面向核心对象的类的存取以及支持文件/库。由设备100实现的运行时刻环境的示例可以包括如但并不局限于微软提出的公共语言运行时间(CLR)和Sun微系统公司提出的Java运行时刻环境(JRE)。
通信设备
再次参考图2,设备100是诸如但并不局限于移动电话、PDA、双向寻呼机或双模式通信设备的设备。所述设备100包括网络连接接口200,例如无线收发机或有线网络接口卡或调制解调器,通过连接218与设备基础设施204相连。在设备100的操作期间,连接接口200可通过无线链路(例如RF、IR等)与诸如无线网络102等网络104相连,这使设备100能够彼此通信且通过网络104与外部系统(诸如网络服务106)进行通信,并且协调客户端应用程序302和服务106之间的请求/响应消息105(见图1)。网络104支持设备和外部系统之间的请求/响应消息105的数据传输,所述外部系统与网络104相连。网络104还可以支持设备100和网络104外部的设备之间的电话呼叫的语音通信。无线网络102可以使用无线数据传输协议,例如但并不局限于DataTAC、GPRS或CDMA。
再次参考图2,设备100还具有通过连接222与设备基础设施204相连的用户接口202以便与用户(未示出)进行交互。用户接口202包括一个或多个用户输入设备,诸如但并不局限于QWERTY键盘、小键盘、跟踪轮、铁笔、鼠标、麦克风和用户输出设备(例如LCD屏幕显示器)和/或扬声器。如果屏幕是对触摸敏感的,则还可以将所述显示器用作由设备基础设施204控制的用户输入设备。由设备100的用户采用用户接口202来协调系统10(见图1)上的请求/响应消息105,如由框架206的客户端应用程序302所采用的那样。
再次参考图2,由设备基础设施204启动设备100的操作。所述设备基础设施204包括计算机处理器208和相关存储模块210。计算机处理器208通过执行由操作系统和位于存储模块210中的客户端应用程序302提供的相关指令,控制通信设备100的网络接口200、用户接口202和框架206的操作。所述存储模块还可以包括UI储存库310和主题和标记储存库410,如以下将详细描述的。应该意识到,设备基础设施204可以与处理器208相连的计算机可读存储介质212,用于向处理器提供指令和/或加载/更新存储模块210的客户端应用程序302。所述计算机可读存储介质212可以包括硬件和/或软件,仅作为示例,例如磁盘、磁带、可光学读取的介质(例如CD/DVD ROM)和存储卡。在每一种情况下,计算机可读介质212可以采用小型盘、软盘、盒式磁带、硬盘驱动器、固态存储卡或RAM的形式,设置在存储模块210中。应该注意,以上所列出的计算机可读介质212可以或者单独使用或者组合使用。
设备的框架
再次参考图2,设备100的框架206通过连接220与设备基础设施204相连。设备100的框架206具有优选地能够产生、主持和执行客户端应用程序302的执行环境312。框架206可以被认为是提供基本服务集合304以管理和执行典型应用程序302行为(例如但并不局限于持续性、提供、消息传递、屏幕导航和用户接口/屏幕服务)的智能软件框架206。因此,框架206为客户应用程序302提供适当的执行环境,并且是与处理器208的设备100功能的接口,并且是设备基础设施204的相关操作系统。框架206通过优选地在设备100上提供受控、安全和稳定的环境来提供执行环境312,其中应用程序302在所述环境下执行。
再次参考图2,在特定的服务并未被包括作为客户端应用程序302的一部分或未被接收为作为应用程序302的一部分的单独组件(未示出)的情况下,框架206可以向客户端应用程序302提供服务(标准普通服务集合)。如果需要,应用程序302具有与服务304之间的通信。应当意识到,设备基础设施204(参见图2)的操作系统的一部分可以表示任何服务304。应当意识到,通信设备100的服务304可以向应用程序302提供功能性,其可以包括上述服务。此外,可以将服务304与应用程序302进行集成,而不是作为单独的框架来提供。在任何情况下,组件应用程序302可以通过集成的和/或单独的服务304来使用通信设备100的功能,如以下所讨论的那样。服务304包括当在用户接口202的输出设备上输出其时管理应用程序302的表示的UI服务308(参见图4),如可视化引擎306(参见图4)所提供的那样。服务304的提供服务可以管理通信设备100上的软件应用程序302的提供。服务304的持续服务可以允许应用程序302将数据存储在存储模块210中,以及访问UI储存库310和主题/标记储存库410。
用于产生UI屏幕表示的UI系统
参照图4,用于对UI定义进行可视化的系统300包括5个基本模块,即:
·主题和标记储存库410;
·UI储存库310;
·可视化引擎306;
·执行环境312;以及
·UI服务308。
可以将UI服务308定义为负责再现用户接口202的UI控制并解释来自那里的用户输入的服务304。UI服务308典型地专用于不同的设备100平台(即本地)。可以将执行环境312定义为执行所有相应应用程序302的环境。在一些实现中,其可以是Java虚拟机、基于组件的框架或简单地用于运行设备的本地应用程序的环境。可视化引擎306可以定义为用于根据在环境312下所执行的应用程序302的请求,解析存储在UI储存库310中的UIXML定义600并解释其的引擎。UI定义600提供显示在用户接口202上的屏幕元素的功能特征。可视化引擎306构建针对用户接口202的UI屏幕表示602(参见图5)的本地屏幕模型307,然后,UI服务可以代表所涉及的应用程序302呈现给用户。UI储存库310可以定义为包括设备100上的所有应用程序302的UI定义600(参见图5)的储存库。主题和标记储存库410可以定义为再现UI定义600的信息和规则的储存库,专用于优选地由设备100的用户所指定(至少部分指定)的当前主题和优选地由设备100的通信公司所选择的标记。主题的示例包括如自然和技术喜好等背景主题。标记示例包括颜色、布置和标志图细节。来自主题和标记储存库410的信息和再现规则影响到可视化引擎306如何从UI储存库310中,针对选定UI定义600,通过屏幕模型307,来产生UI屏幕表示602。储存库410的再现信息和规则提供了显示在用户接口202上的屏幕元素的外观特征。
UI定义600
以XML或任何其他结构定义语言来定义储存库310中的UI定义600,并由可视化引擎306在应用程序302的提供阶段和/或执行阶段期间进行解析(参见图4)。定义600提供显示在用户接口202上的屏幕元素的功能特征,并可以包括以下项目,例如但并不局限于:屏幕布局、屏幕内的控制、控制布局、事件处理和多种可视化属性。参照图5,定义600包括UI屏幕表示602,可以将其定义为定义了用户接口202(参见图2)的UI元素集合,在给定的时刻向用户展示。UI屏幕表示602可以具有不同的属性,例如但并不局限于:逻辑名称;标题;全屏或对角线模式;前景和背景色;以及缺省字体。定义600还可以具有事件处理定义604,可以将其定义为规定了当UI屏幕表示602在用户接口202上有效时,应用程序302应当如何处理来自用户的事件的屏幕元素。定义604包括将应用程序302插入处理中的事件的列表。这些事件可以触发要发送给应用程序302的消息处理器(例如)的消息,或调用具有特定命名约定的方法。对于基于容器的脚本/XML应用程序302,事件处理定义可以规定要执行或导航到接口202的另一屏幕的脚本块。定义600还包括屏幕菜单606,可以将其定义为规定了当屏幕表示602在用户接口202上有效时,可访问的菜单项集合的屏幕元素。在菜单中对菜单项进行排列,并具有关联动作。菜单项动作是由事件处理定义使用的UI事件。定义600还包括UI布局608,其定义了UI控制610在屏幕表示602上的订单和定位。UI布局608影响其所包含的UI控制610。定义600还包括能够定义为用于构建屏幕显示602的用户接口元素的UI控制610。公共UI控制610是但并不局限于:编辑框、按钮、选项控制、图像控制、滚动条和静态文本。
在应用程序之间共享UI定义
参照图4和5,可以在执行环境312的不同应用程序302之间共享UI定义600。这意味着一个应用程序302可以根据存储在另一应用程序302的UI储存库310条目中的UI定义600来实例化屏幕表示602。这有助于节约开发劳动,以实现应用程序302之间的一致“感观”,并提供更为容易的维护。
一个应用程序302可以通过引用以拥有定义600的应用程序302的应用程序302名称为前缀的UI定义600,来实例化来自属于另一应用程序302的UI定义600的屏幕表示602。例如,可以使用单个的斜线来作为应用程序302的名称与由定义600所产生的引用屏幕表示602的名称之间的分界符。例如,如果应用程序“A”需要引用应用程序“B”的UI储存库310条目中所定义的屏幕表示602“OrderStatus”,则应当在应用代码中通过“B\OrderStatus”来查阅屏幕表示602,以便链接到定义600,产生“OrderStatus”屏幕表示602。按照这种方式,不同的应用程序302可以共享和执行UI定义600。应当意识到,有效的应用程序302可以负责处理针对由共享UI定义600所构建的屏幕表示602的任何用户事件。在上述示例中,应用程序“A”还可以提供如应用程序“B”所实现的“OrderStatus”屏幕表示602所需的事件处理。
可视化引擎306可以支持和实现能够由设备100上的所有应用程序302重新使用的预定义全局UI定义600。通用全局UI定义600的示例是但并不局限于:
1、1)对话:
·URL条目对话
·登录对话
·确认对话
·搜索对话
·等等;
2、2)样式、主题;以及
3、3)公共布局、控制、动画等。
根据无线设备目标的区域,频繁使用的UI定义600的集合可能会发生波动。例如,对于邮件中心设备100,用于写作新电子邮件的形式将是频繁使用的UI定义600,因而适合于将其包括在UI定义600的全局集合中。
平台无关
参照图4,系统300是平台无关的,由于可以按照平台无关的方式定义应用程序的用户接口202。可视化引擎306是负责根据每个UI定义600来构建平台相关屏幕的模块。为了在不同的平台上重新使用UI定义600,可以针对目标平台专门提供可视化引擎306。应当意识到,如果需要,可以调整可视化引擎306以适应于两个或更多个设备100平台。
主题和标记
参照图4和5,系统300和相关方法可以允许设备100上的所有应用程序302的无缝标记(branding)。设备100,例如无线的,通常是针对特定的提供商而进行标记的对象,所述提供商或者为无线服务的无线通信公司或其他提供商。通过标记设备100,无线提供商可以将所提供的特征集合与用户接口202的提供商专用“感观”相关联。与竞争对手所具有的产品相比,通过标记其产品,提供商还可以试图创建更容易吸引用户的用户接口202。系统300和相关方法从UI定义600分离出储存库410中的标记信息。可以根据应用程序开发,单独创建标记信息,以及可以针对不同的提供商进行定制。由于在可视化引擎306级考虑标记信息,应用特定的标记简档表可以影响无线设备100上的所有应用程序302。额外安装的任何应用程序302也将考虑设备100上的标记信息。
设备100的另一特征在于使用户能够根据特定的个人喜好来定制用户接口202的“感观”的能力。由于以下事实而特别关注此特征:与桌面计算机100不同,无线设备100可能被认为是更加私人化。无线设备100可以由用户携带,并很少在几个用户之间共享。使用相同的解决方案作为标记,系统300和相关方法通过支持UI主题,提供了用于定制安装在设备100上的所有应用程序302的用户接口202的机制。可以将所述主题定义为定制设置的集合。可以将多个主题存储在储存库410中,并根据用户的请求加以应用。储存库410的规则和信息提供了显示在用户接口202上的屏幕元素的外观特征,如但并不局限于针对如一天的不同时间、一周的不同日子或用户的不同心情和视觉偏好而定制的主题和布局。
用于处理UI XML储存库的操作
下面,参照图4、5和6,对操作700进行描述。
步骤701:解析XML定义
在应用程序302启动时,可视化引擎306从UI储存库310中检索应用程序的UI定义600。当进行屏幕激活请求时,可视化引擎306找出屏幕的XML UI定义600,并对其进行解析。如果对UI定义的引用属于另一应用程序302,可视化引擎306从UI储存库310中检索所请求的定义600。对于UI定义600中的每一项,创建相应的平台专用UI元素,并将其添加为屏幕的本地模型307。例如,当遇到编辑控制的定义600时,实例化编辑框的平台专用类,并添加为屏幕的模型307。本地屏幕模型307是平台专用的,并在屏幕上提供UI定义600的有效再现。可以将额外的UI元素添加为模型307,以便改善用户在特定平台上的体验。应当意识到,也可以将屏幕模型307产生为平台无关模型,然后根据需要,转换到设备100平台。
步骤702:应用主题和标记特性
在构建屏幕模型307期间,可视化引擎306使用主题和标记存储库410中可用的信息/规则集合,以便将定制的“感观”赋予UI元素。主题和标记储存库410包含针对需要定制外观的所有UI元素的再现信息。
步骤703:为执行环境312提供屏幕模型307
一旦已经构建了屏幕模型307,可视化引擎306就将其传递给执行环境312。通过执行环境312,使屏幕模型307可用于针对额外定制的请求应用程序302,如果可应用的话,并产生针对用户接口202的动态屏幕表示602。应用程序302与屏幕表示602的这种交互作用可以包括表示用户接口202上的当前显示条件的当前值的填充。由于应用程序302可以自由地操纵屏幕模型307,系统300和操作700可以允许构建丰富且动态的屏幕表示602。还应当意识到,可视化引擎可以负责以当前屏幕值全部或部分填充屏幕表示602。
步骤704:对用户接口进行可视化
在此阶段,应用程序302向UI服务308提交屏幕模型307。UI服务308再现模307中的UI元素,并登记应用程序302,以便任何事件处理。
步骤705:事件处理
UI服务308将接口202上的任何用户事件传播回应用程序302,作为对应用程序逻辑的输入。应用程序302应当对事件进行处理,并将控制返回给UI服务308。对事件进行处理可以涉及对新屏幕的导航或向用户发送可视反馈。此处理可以涉及从UI储存库310中检索新UI定义600,以及创建适当的新屏幕模型307,如上所述,或者可以简单地涉及通过UI服务308,对用户接口上的当前屏幕表示602的控制的更新。
样本UI定义
以下是向用户提示用户名和密码的屏幕表示602的样本UI定义600。在UI定义600中定义了两个导航按钮610——btnRegister和btnLogin。这些按钮610可以分别导航到新用户注册屏幕或尝试登录所输入的用户。
<xmlScreen name=″scrLogin″title=″Login″dialog=″true″
bgImage=″backg.jpg″>
    <xmlLayout type=″vertical″>
        <xmlLabel name=″lblUserName″value=″User Name:″/>
        <xmlEdit name=″edUserName″type=″char″/>
        <xmlLabel name=″lblPassword″value=″Password:″/>
        <xmlEdit name=″edPassword″type=″pwd″/>5
        <xmlButton name=″btnLogin″value=″Login″>
           <event type=″onClick″handler=″hLogin″/>
        </xmlButton>
        <xmlButton name=″btnRegister″value=″Register″>
           <event type=″onClick″screen=″scrRegisterUser″/>
        </xmlButton>
    </xmlLayout>
</xmlScreen>
以下是对上述屏幕表示602的解释:
■<xmlScreen-定义UI屏幕
o name=″scrLogin″-定义屏幕的逻辑名称。之后,可以通过其逻辑名称引用所述屏幕
o title=″Login″-定义屏幕的标题
o dialog=″true″-将屏幕定义为与全屏相对的对话
o bgImage=″backg″-定义屏幕的背景图像
■<xmlLayout type=″vertical″>-定义UI控制610的垂直次序
■<xmlLabel name=″lblUserName″value=″User Name:″/>-以逻辑名称“lblUserName”和数值“User Name:”定义屏幕上的静态标签
■<xmlEdit name=″edUserName″-以逻辑名称“edUserName”定义编辑框
o type=″char″-规定编辑框应当接受任何字符和数字
■<xmlButton name=″btnLogin″value=″Login″>-以逻辑名称“btnLogin”和标签“Login”定义按钮
o <event type=″onClick″handler=″hLogin″/>-定义在点击按钮时应当用于处理用户事件的句柄。“hLogin”为事件句柄的名称
o <event type=″onClick″screen=″scrRegisterUser″/>-以逻辑名称“scrRegisterUser”定义到另一UI定义600的转换
尽管这里已经对一个或多个典型系统和方法进行了公开,多种变体对本领域的普通技术人员而言是显而易见的,而且这种变体在本申请的范围之内。例如,尽管在所提供的示例中使用XML,也可以使用其他语言和语言变体来定义应用程序302。

Claims (37)

1、一种用于产生用于显示在无线设备(101)的用户接口(202)上的屏幕表示(602)的方法,将屏幕表示(602)定义为以结构定义语言来表达的用户接口定义集合(600),结构定义语言被配置为由被配置为在无线设备(101)上运行的多个应用程序(302)所引用,所述方法的特征在于包括以下步骤:
接收来自多个应用程序(302)中的第一应用程序的对屏幕表示(602)的请求;
从无线设备(101)上的存储器中检索与屏幕表示(602)相对应的用户接口定义(600)集合;
解析用户接口定义(600)的结构定义语言,以确定用户接口元素;
将显示特征应用于用户接口元素,以产生屏幕模型(307);以及
将屏幕模型(307)提供给第一应用程序,以便以显示条件和屏幕值进行填充,以产生屏幕表示(602);
其中将屏幕表示(602)配置用于随后对用户接口(202)的显示,以便通过用户事件与用户进行交互。
2、根据权利要求1所述的方法,其特征在于将屏幕模型设置在由设备的应用程序执行环境所采用的平台相关或无关配置中。
3、根据权利要求2所述的方法,其特征在于第一应用程序是配置用于按照执行环境的浏览器适用形式执行的浏览器应用程序、配置用于按照执行环境的本地形式执行的本地应用程序,和配置用于按照执行环境的应用程序容器形式执行的、基于定义计划的组件应用程序中的任意一个。
4、根据权利要求2所述的方法,其特征在于还包括以下步骤:从存储器的外观储存库中检索外观特征,所述储存库包括外观特征的外观再现规则。
5、根据权利要求4所述的方法,其特征在于从包括背景主题、标记颜色方案和标记布置的组中来选择规则。
6、根据权利要求2所述的方法,其特征在于还包括:从存储器的用户接口定义储存库中检索用户接口定义,所述用户接口定义储存库包括针对功能特性的用户接口定义。
7、根据权利要求6所述的方法,其特征在于还包括以下步骤:包括针对由用户接口定义解析而来的屏幕表示的属性的用户接口元素。
8、根据权利要求7所述的方法,其特征在于从包括逻辑名称、标题和缺省字体的组中来选择属性。
9、根据权利要求8所述的方法,其特征在于还包括以下步骤:包括针对规定了用户事件的处理的事件处理定义的用户接口元素,由用户接口定义解析出所述事件处理定义。
10、根据权利要求6—9中任意一项所述的方法,其特征在于还包括以下步骤:包括针对规定了由用户接口定义解析而来的菜单项集合的屏幕菜单的用户接口元素。
11、根据权利要求6—10中任意一项所述的方法,其特征在于还包括以下步骤:包括针对用于适应用户事件的用户接口控制的用户接口元素,由用户接口定义解析出所述用户接口控制。
12、根据权利要求1所述的方法,其特征在于还包括以下步骤:包括针对用于定义用户接口控制的次序和位置的用户接口布局的用户接口元素,由用户接口定义解析出所述用户接口布局。
13、根据权利要求2所述的方法,其特征在于还包括以下步骤:用户接口服务解释用户事件,并将其转发给第一应用程序,应用程序处理用户事件,并返回对用户接口服务的控制。
14、根据权利要求1所述的方法,其特征在于还包括以下步骤:通过修改相应的屏幕模型,响应用户事件,更新屏幕表示。
15、根据权利要求12所述的方法,其特征在于由从包括可视化引擎、第一应用程序、用户接口服务的组中所选择的实体来执行屏幕模型的填充。
16、根据权利要求2—15中任意一项所述的方法,其特征在于第一应用程序实例化属于多个应用程序中的第二应用程序的用户接口定义集合,即作为存储器中的条目而被引用的用户接口定义集合。
17、根据权利要求16所述的方法,其特征在于通过与多个应用程序之一相对应的惟一应用程序标识符来链接存储器中的每个用户接口定义集合。
18、根据权利要求16或17所述的方法,其特征在于第二应用程序提供与用户接口定义相关的用户事件的事件处理。
19、一种用于产生用于显示在无线设备(101)的用户接口上的屏幕表示(602)的系统(300),将屏幕表示(602)定义为以结构定义语言来表达的用户接口定义集合(600),结构定义语言被配置为由被配置为在无线设备(101)上运行的多个应用程序所引用,所述系统的特征在于包括:
存储器,用于存储由多个应用程序(302)进行引用的多个用户接口定义集合(600);
可视化引擎(306),用于接受多个应用程序(302)中的第一应用程序的屏幕表示(602)请求,以及用于解析从存储器中检索出的选定用户接口定义(600)集合的结构定义语言,以确定屏幕表示(602)的用户接口元素,选定的用户接口定义(600)对应于所请求的屏幕表示(602);
与可视化引擎(306)相连的屏幕模块,用于将显示特征应用于用户接口元素,以产生定义了屏幕表示(602)的屏幕模型(307);
执行环境(312),用于向第一应用程序提供屏幕模型(307),以便以显示条件和屏幕值进行填充;以及
用户接口服务(308),用于再现屏幕模型(307),以便向用户接口(202)提供屏幕表示(602);
其中无线设备(101)的用户与用户接口(202)上的屏幕表示(602)进行交互。
20、根据权利要求19所述的系统,其特征在于将屏幕模型设置在由设备的应用程序执行环境所采用的平台相关或无关配置中。
21、根据权利要求20所述的系统,其特征在于第一应用程序是配置用于按照执行环境的浏览器适用形式执行的浏览器应用程序、配置用于按照执行环境的本地形式执行的本地应用程序,和配置用于按照执行环境的应用程序容器形式执行的、基于定义计划的组件应用程序中的任意一种。
22、根据权利要求20或21所述的系统,其特征在于还包括存储器的外观储存库,所述储存库包括外观特征的外观再现规则。
23、根据权利要求22所述的系统,其特征在于从包括背景主题、标记颜色方案和标记布置的组中选择规则。
24、根据权利要求22所述的系统,其特征在于还包括存储器的用户接口定义储存库,所述用户接口定义储存库包括针对功能特性的用户接口定义。
25、根据权利要求24所述的系统,其特征在于包括针对由用户接口定义解析而来的屏幕表示的属性的用户接口元素。
26、根据权利要求25所述的系统,其特征在于从包括逻辑名称、标题和缺省字体的组中选择属性。
27、根据权利要求26所述的系统,其特征在于包括针对规定了用户事件的处理的事件处理定义的用户接口元素,由用户接口定义解析出所述事件处理定义。
28、根据权利要求24—27中任意一项所述的系统,其特征在于包括针对规定了由用户接口定义解析而来的菜单项集合的屏幕菜单的用户接口元素。
29、根据权利要求24—28中任意一项所述的系统,其特征在于包括针对用于适应用户事件的用户接口控制的用户接口元素,由用户接口定义解析出所述用户接口控制。
30、根据权利要求29所述的系统,其特征在于包括针对用于定义用户接口控制的次序和位置的用户接口布局的用户接口元素,由用户接口定义解析出所述用户接口布局。
31、根据权利要求28—30中任意一项所述的系统,其特征在于还包括用户接口服务,用于解释用户事件,并将其转发给第一应用程序,应用程序处理用户事件,并返回对用户接口服务的控制。
32、根据权利要求31所述的系统,其特征在于通过修改相应的屏幕模型,响应用户事件,更新屏幕表示。
33、根据权利要求28—32中任意一项所述的系统,其特征在于由从包括可视化引擎、第一应用程序、用户接口服务的组中所选择的实体来执行屏幕模型的填充。
34、根据权利要求20—33中任意一项所述的系统,其特征在于第一应用程序实例化属于多个应用程序中的第二应用程序的用户接口定义集合,即作为存储器中的条目而被引用的用户接口定义集合。
35、根据权利要求34所述的系统,其特征在于通过与多个应用程序之一相对应的惟一应用程序标识符来链接存储器中的每个用户接口定义集合。
36、根据权利要求34或35所述的系统,其特征在于第二应用程序提供与用户接口定义相关的用户事件的事件处理。
37、一种计算机程序产品,用于产生用于显示在无线设备(101)的用户接口上的屏幕表示(602),将屏幕表示(602)定义为以配置用于由无线设备(101)上提供的多个应用程序(302)所引用的结构定义语言来表达的用户接口定义集合(600),所述计算机程序产品包括:
计算机可读介质;
存储在所述计算机可读介质上的存储器模块,用于存储由多个应用程序(302)进行引用的多个用户接口定义集合(600);
存储在所述计算机可读介质上的可视化引擎(306),用于接受多个应用程序(302)中的第一应用程序的屏幕表示(602)请求,以及用于解析从存储器中检索出的选定用户接口定义集合(600)的结构定义语言,以确定屏幕表示(602)的用户接口元素,选定的用户接口定义(600)对应于所请求的屏幕表示(602);
与可视化引擎模块(306)相连的屏幕模块,用于将显示特征应用于用户接口元素,以产生定义了屏幕表示(602)的屏幕模型(307);
执行环境(312),用于将屏幕模型(307)提供给第一应用程序,以便填充显示环境和屏幕值;以及
存储在所述计算机可读介质上的再现模块,用于再现屏幕模型(307),以便向用户接口提供屏幕表示(602);
其中无线设备(101)的用户与用户接口(202)上的屏幕表示(602)进行交互。
CN2008101708939A 2004-02-27 2005-02-28 使用ui储存库的公共ui组件执行无线应用程序的系统和方法 Expired - Fee Related CN101382889B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP04251158.4 2004-02-27
EP04251158A EP1569096A1 (en) 2004-02-27 2004-02-27 System and method for executing wireless applications using common UI components from a UI repository

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100524506A Division CN100444108C (zh) 2004-02-27 2005-02-28 使用ui储存库的公共ui组件执行无线应用程序的系统和方法

Publications (2)

Publication Number Publication Date
CN101382889A true CN101382889A (zh) 2009-03-11
CN101382889B CN101382889B (zh) 2012-06-20

Family

ID=34746126

Family Applications (2)

Application Number Title Priority Date Filing Date
CNB2005100524506A Expired - Fee Related CN100444108C (zh) 2004-02-27 2005-02-28 使用ui储存库的公共ui组件执行无线应用程序的系统和方法
CN2008101708939A Expired - Fee Related CN101382889B (zh) 2004-02-27 2005-02-28 使用ui储存库的公共ui组件执行无线应用程序的系统和方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CNB2005100524506A Expired - Fee Related CN100444108C (zh) 2004-02-27 2005-02-28 使用ui储存库的公共ui组件执行无线应用程序的系统和方法

Country Status (4)

Country Link
EP (1) EP1569096A1 (zh)
CN (2) CN100444108C (zh)
CA (1) CA2498542A1 (zh)
SG (2) SG114768A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112083923A (zh) * 2019-06-15 2020-12-15 国际商业机器公司 人工智能辅助的用户体验设计评价

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1569096A1 (en) * 2004-02-27 2005-08-31 Research In Motion Limited System and method for executing wireless applications using common UI components from a UI repository
EP2223208A2 (en) * 2007-11-15 2010-09-01 Desknet SA Method enabling a computer apparatus run by an operating system to execute software modules
CA2722483A1 (en) * 2008-10-19 2010-04-22 Research In Motion Limited Dynamic use of device theme parameters for rendering markup content
US10248438B2 (en) 2009-09-17 2019-04-02 Fluffy Spider Technologies Pty. Ltd. System and methods for a run time configurable user interface controller
CN101876906B (zh) * 2010-03-31 2013-08-21 北京播思软件技术有限公司 一种利用Linux应用在Android系统中运行的方法及装置
CN101887370B (zh) * 2010-07-23 2013-08-21 北京数码大方科技股份有限公司 创建系统用户界面的方法及装置
EP2587371A1 (en) * 2011-10-28 2013-05-01 Doro AB Improved configuration of a user interface for a mobile communications terminal
WO2014014879A2 (en) * 2012-07-17 2014-01-23 Good Technology Corporation Systems and methods for facilitating service provision between applications
US9436958B2 (en) 2013-03-15 2016-09-06 Monscierge, Inc. Receiving and queuing requests from hospitality customers
US8676663B1 (en) 2013-03-15 2014-03-18 Monscierge, Inc. Providing recommendations to hospitality customers
CN106778193B (zh) * 2016-11-14 2023-02-03 北京握奇智能科技有限公司 一种客户端和ui交互方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5596702A (en) * 1993-04-16 1997-01-21 International Business Machines Corporation Method and system for dynamically sharing user interface displays among a plurality of application program
US5991762A (en) * 1997-06-30 1999-11-23 Sun Microsystems, Inc. Method and apparatus for creating a table object constructed from reusable column objects
US6448981B1 (en) * 1997-12-09 2002-09-10 International Business Machines Corporation Intermediate user-interface definition method and system
EP1569096A1 (en) * 2004-02-27 2005-08-31 Research In Motion Limited System and method for executing wireless applications using common UI components from a UI repository

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112083923A (zh) * 2019-06-15 2020-12-15 国际商业机器公司 人工智能辅助的用户体验设计评价

Also Published As

Publication number Publication date
SG114768A1 (en) 2005-09-28
CN100444108C (zh) 2008-12-17
CN1661555A (zh) 2005-08-31
CA2498542A1 (en) 2005-08-27
CN101382889B (zh) 2012-06-20
SG135201A1 (en) 2007-09-28
EP1569096A1 (en) 2005-08-31

Similar Documents

Publication Publication Date Title
CN101382889B (zh) 使用ui储存库的公共ui组件执行无线应用程序的系统和方法
US7756905B2 (en) System and method for building mixed mode execution environment for component applications
CN100424637C (zh) 用于构建无线应用程序的系统和方法
AU2003291909B2 (en) System and method of creating and communicating with component based wireless applications
US20050193380A1 (en) System and method for executing wireless applications using common UI components from a UI repository
US7814404B2 (en) System and method for applying workflow of generic services to component based applications for devices
US7509649B2 (en) System and method for conversion of generic services&#39; applications into component based applications for devices
US7555538B2 (en) System and method for building and execution of platform-neutral generic services&#39; client applications
US8499282B2 (en) System and method for extending capabilities and execution efficiency of script based applications
US20110143741A1 (en) System and method for cross-platform applications on a wireless phone
CN100547545C (zh) 用于网络边缘计算的应用拆分的方法和系统
CN100596139C (zh) 使用元数据定义映射来构建组件应用程序的系统和方法
CA2538561C (en) System and method for conversion of web services applications into component based applications for devices
US20130059613A1 (en) System and method for providing end to end interactive mobile applications using sms
CN1757015B (zh) 用于建立和执行平台-中性的普通服务客户应用程序的系统和方法
CA2538531C (en) System and method for applying workflow of generic services to component based applications for devices
AU2008202421A1 (en) System and method for building wireless applications with intelligent mapping between user interface and data components

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120620

Termination date: 20150228

EXPY Termination of patent right or utility model