CN100424637C - 用于构建无线应用程序的系统和方法 - Google Patents

用于构建无线应用程序的系统和方法 Download PDF

Info

Publication number
CN100424637C
CN100424637C CNB2005100524493A CN200510052449A CN100424637C CN 100424637 C CN100424637 C CN 100424637C CN B2005100524493 A CNB2005100524493 A CN B2005100524493A CN 200510052449 A CN200510052449 A CN 200510052449A CN 100424637 C CN100424637 C CN 100424637C
Authority
CN
China
Prior art keywords
data
screen
assembly
definition
mapping
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.)
Active
Application number
CNB2005100524493A
Other languages
English (en)
Other versions
CN1661554A (zh
Inventor
菲拉·比布尔
迈克尔·申菲尔德
卡门·B·维塔诺夫
布莱恩·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.)
Google Technology Holdings LLC
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 CN1661554A publication Critical patent/CN1661554A/zh
Application granted granted Critical
Publication of CN100424637C publication Critical patent/CN100424637C/zh
Active 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces

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)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

一种通过在应用程序数据域和UI屏幕和控制之间实现直接映射来有效管理用户接口(UI)的系统和方法。所述设备具有智能无线设备运行时刻环境(设备运行时刻),提供基本服务集合来管理无线应用程序,包括一系列链接屏幕和数据组件定义,并且其交互可以简化开发劳动和减少资源分配。利用原子数据组件定义来定义针对该类应用程序的数据域。利用原子屏幕组件定义来定义设备用户接口和数据组件之间的通信。利用如XML等结构定义语言在元数据中描述屏幕和数据组件定义。将屏幕和数据组件定义之间的关系以屏幕/数据映射的形式嵌入在XML定义中。将对应用程序域数据的改变自动地与用户接口同步,并且将用户输入数据自动反映在应用程序域数据中。

Description

用于构建无线应用程序的系统和方法
技术领域
本申请大体上涉及无线应用程序在无线设备的用户接口上的显示。
背景技术
今天,所使用的终端设备的数量持续增加,如移动电话、具有无线通信能力的PDA和双向寻呼机等。运行在这些设备上的软件应用程序增加了其功能性。例如,移动电话可以包括检索城市范围的天气的应用程序,或者PDA可以包括允许用户购买杂货的应用程序。这些软件应用程序利用对网络的连接性,以便向用户提供及时有用的服务。但是,由于一些设备的受限资源,以及向设备传递大量数据的复杂性,开发针对多种设备的软件应用程序仍然是困难而耗时的任务。
目前,将设备配置为通过基于因特网的浏览器和/或本地应用程序与网络服务进行通信。浏览器具有适用于针对多种不同的设备进行跨平台操作的优点,但具有请求来自网络服务的页面(HTML中的屏幕定义)的缺点,其妨碍了包含在屏幕中的数据的持续性。本地应用程序具有针对设备平台的类型专门研发的优点,从而针对每次运行时刻的环境,提供了相对优化的应用程序。但是,本地应用程序具有以下缺点:非平台无关,必需开发相同应用程序的多个版本,以及尺寸相对较大,从而给设备的存储器资源造成了严重的负担。此外,应用程序开发商需要使用如Java和C++等编程语言的经验,以便构建这些硬编码本地应用程序,包括屏幕元素与数据元素的硬编码静态交互。存在对能够运行在客户端设备上的应用程序的需要,其具有利用数据和屏幕元素之间的动态交互的广泛的运行时刻环境,以及具有对设备资源的减少的消耗。
这里所公开的系统和方法提供了一种链接屏幕和数据组件定义,以排除或消除上述缺点中的至少一些。
发明内容
需要的是,通过降低对任何外在编码的需求以及降低在提供时由应用程序所利用的设备资源,来降低开发无线应用程序中所涉及的复杂度。描述了一种通过在应用程序数据域和UI屏幕和控制之间实现直接映射来有效管理用户接口(UI)的系统和方法。所述设备具有智能无线设备运行时刻环境(设备运行时刻),提供基本服务集合来管理无线应用程序,包括一系列链接屏幕和数据组件定义,并且其交互可以简化开发劳动和减少资源分配。利用原子数据组件定义来定义针对该类应用程序的数据域。利用原子屏幕组件定义来定义设备用户接口和数据组件之间的通信。利用如XML等结构定义语言在元数据中描述屏幕和数据组件定义。将屏幕和数据组件定义之间的关系以屏幕/数据映射的形式嵌入在XML定义中。典型地,从一些下层数据组件中获得用于显示的再现屏幕,并且受到用户事件影响的屏幕控制会影响应用程序的当前状态(或数据表示)。将对应用程序域数据的改变自动地与用户接口同步,并且将用户输入数据自动反映在应用程序域数据中。在该同步之后的主要机制是屏幕和数据的映射。该机制能够创建动态和交互屏幕。可以将对数据组件的所有变化立即反映在屏幕上,反之亦然。该模型允许根据服务器到设备通知来创建有效无线应用程序。将从服务器异步推送的数据更新即时地反映在UI屏幕处。
根据本发明,提出了一种根据数据对象来产生在无线设备上执行的组件应用程序的屏幕元素以在无线设备的用户接口上显示的方法,所述应用程序包括具有至少一个数据字段定义的数据组件和具有至少一个屏幕元素定义的屏幕组件,所述组件以结构定义语言进行定义,其特征在于,所述方法包括以下步骤:选择与为了显示而选择的屏幕元素相对应的屏幕组件;识别屏幕组件中所存在的至少一个映射,所述映射用于指定由表示所述映射的标识符所定义的屏幕组件和数据组件之间的关系;根据映射标识符来选择由所述映射所映射的数据组件;获取与映射的数据组件的数据字段定义相对应的数据对象字段值;根据屏幕元素定义产生屏幕元素,以便根据映射数据组件中所定义的数据字段定义的格式来包括数据对象字段值。
根据本发明的另一方面,一种根据数据对象来产生在无线设备上执行的组件应用程序的屏幕元素以在无线设备的用户接口上显示的系统,所述组件应用程序包括具有至少一个数据字段定义的数据组件和具有至少一个屏幕元素定义的屏幕组件,所述组件以结构定义语言进行定义,其特征在于,所述系统包括:用于选择与选择用于显示的屏幕元素相对应的屏幕组件的装置;用于识别屏幕组件中所存在的至少一个映射的装置,所述映射用于指定由表示所述映射的标识符所定义的屏幕组件和数据组件之间的关系;用于根据所述标识符来选择由所述映射所映射的数据组件的装置;用于获取与映射的数据组件的数据字段定义相对应的数据对象字段值的装置;以及用于根据屏幕元素定义产生屏幕元素以便根据映射数据组件中所定义的数据字段定义的格式来包括数据对象字段值的装置。
根据本发明的另一方面,提出了一种根据显示在无线设备的用户接口上的屏幕元素的变化来产生在无线设备上执行的组件应用程序的数据对象的方法,所述组件应用程序包括具有至少一个数据字段定义的数据组件和具有至少一个屏幕元素定义的屏幕组件,所述组件以结构定义语言进行定义,其特征在于,所述方法包括以下步骤:选择与所述屏幕元素相对应的屏幕组件;识别屏幕组件中所存在的至少一个映射,所述映射用于指定屏幕组件和数据组件之间的关系;选择由所述映射所映射的数据组件;根据与所映射的数据组件相对应的屏幕元素来获取变化值;根据映射数据组件中所定义的数据字段定义的格式,将所述变化值分配给数据对象的数据字段值。
附图说明
参考仅作为实例的附图,在以下详细描述中,这些和其他特征将变得更加明显,其中,
图1是网络系统的方框图;
图2是图1所示的无线设备的方框图;
图3是图2所示的设备的智能框架的方框图;
图4是图2所示的组件应用程序的方框图;
图5示出了用于图4所示的示例组件应用程序的典型应用程序打包和主持模型;
图6示出了实现图5所示的组件应用程序的示例方法;
图7示出了实现图5所示的组件应用程序的另一示例方法;
图8示出了针对图2所示的应用程序的数据和屏幕组件之间的映射;
图9示出了针对图8所示的映射的初始屏幕显示的操作;
图10示出了针对图8所示的映射的根据用户事件对数据对象的更新;以及
图11示出了针对图8所示的映射的根据异步消息对数据对象的更新。
具体实施方式
网络系统
参照图1,网络系统10包括多个终端设备100,用于通过如但不局限于因特网的广域网(WAN)104与一个或多个普通服务106进行交互。这些设备100可以是但并不局限于PDA、寻呼机、蜂窝电话等。由服务106提供的普通服务可以是网络服务和/或其他服务,如但并不局限于SQL数据库、基于IDL的CORBA和RMI/IIOP系统、遗留数据库、J2EE、SAP RFC和COM/DCOM组件。此外,系统10还可以具有无线网络102,用于将无线设备100与WAN 104相连。应当意识到,其他设备和计算机(未示出)可以通过WAN 104和除图1所示的其他关联网络与网络服务106相连。为了简单,为了在下面描述系统10,选择根据计划(schema)定义的网络服务106。然而,应当意识到,如果需要,可以由其他服务来替换该网络服务106。此外,为了简单,此后将系统10的网络102、104称为网络104。
再次参照图1,设备100在与网络服务106进行通信时,分别发送和接收请求/相应消息105。设备100可以通过使用消息报头信息和关联数据内容形式的的请求/响应消息105,作为网络服务106的网络客户端进行操作,例如,从在线贸易商那里请求和接收产品价格和可用性。网络服务106是通信设备100上的客户端应用程序302(参见图2)通过无线网络104与之相互作用、以便向通信设备100的用户提供实用性的系统的示例。
为了满足适当的请求/相应消息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进行通信。在一些实现中,SOAP是定义了消息105的XML格式的规范,包括SOAP中所包括的公知形式的XML段。SOAP还支持其中SOAP消息105作为回绕XML文档的回绕符(wrapper)的文档样式应用程序。SOAP的另一可选部分定义了HTTP绑定(即,报头),而一些SOAP实现支持MSMQ、MQ系列、SMTP或TCP/IP传送协议。可选地,网络服务106可以使用其他已知的通信协议、消息105格式,以及可以按照除上述之外的其他网络服务语言来表达接口。
客户端环境
参照图2,通过网络104传输组件应用程序302,并加载到设备100的设备基础设施204的存储模块210。可选地,可以通过串行连接、USB连接、或如IR、802.11(x)、蓝牙TM等短距离无线通信系统(未示出)来加载组件应用程序302。一旦被加载到设备100中,则可以由设备100上的组件框架206执行组件应用程序302,其可以将组件应用程序302转换为本地代码,并由设备基础设施204中的处理器208执行。可选地,可以通过设备100上的其他软件模块或操作系统来解释组件应用程序302。在任何情况下,在由设备100提供的终端运行时刻环境下运行组件应用程序302,从而所述运行时刻环境是提供用于管理和执行典型应用程序302行为(如持续性、消息发送、屏幕导航和显示等)的基本服务集合的智能软件框架。
再次参照图1,可以对由设备100提供的客户端运行时刻环境进行配置,从而使设备100作为网络服务106的网络客户端进行操作。应当意识到,客户端运行时刻环境也可以使设备100成为网络104上的任何其他普通计划定义服务的客户端。设备100的客户端运行时刻环境最好能够产生、成为其主机和执行设备100上的客户端应用程序302(其包括数据400和屏幕402组件定义——参见图4和以下的描述)。此外,客户端运行时刻环境的特定功能可以包括但并不局限于对语言的支持、协调存储器分配、联网、I/O操作期间的数据管理、协调设备100的输出设备上的图形以及提供对面向核心对象的类的存取以及支持文件/库。由设备100实现的运行时刻环境的示例可以包括如但并不局限于微软提出的公共语言运行时间(CLR)和Sun微系统公司提出的Java运行时刻环境(JRE)。
优选地,设备100的终端运行时刻环境支持客户端应用程序302(参见图2)的驻留可执行版本的以下基本功能,例如但并不局限于:
为设备100提供通信能力,以便向网络服务106发送消息105,或者向通过网络104相连的任何其他普通计划定义服务发送消息105;
在设备100的输入设备上提供用户的数据输入能力,以便提供网络服务106的输出消息105的数据部分(去往服务的消息);
提供在输出设备上对网络服务106的响应消息105(输入消息)或不相关通知的数据表示或输出能力;
提供数据存储服务,以便在设备100的存储模块210(参见图2)中保持本地客户端数据;以及
提供脚本语言的执行环境,以便协调客户端应用程序302的应用程序组件400、402(参见图4)的操作。
参照图2、4和5,客户端运行时刻(例如,由组件框架206提供)加载包含在组件400、402、404、406定义中的元数据,并在设备100上构建应用程序302的可执行版本,例如通过应用程序容器300。存在但并不局限于两种客户端运行时刻的操作模型:基于模板的本地执行和基于元数据的执行。在基于完全定义组件的应用程序302(具有数据400、屏幕402、消息404和工作流组件406-见图4)的情况下,框架206可以利用本地代码,实现基于模板的本地执行模型,用于主持在设备100上预先构造的数据、消息和屏幕模板500。当加载应用程序302定义时,由组件框架206提供的客户端环境以来自组件400、402、404的元数据定义参数填充模板500,并按照本地格式构建可执行客户端应用程序302。可以将工作流组件406的工作流脚本(例如ECMA脚本)转换为本地代码,或者使用适当的脚本解释器502(例如,ECMA脚本解释器)执行到本地代码重定向器504,其中重定向器504通过本地运行时刻引擎506,将对脚本语言的调用解释为对本地组件的操作。利用基于元数据的执行,组件框架206的运行时刻环境或者将组件400、402、404、406定义保持为XML(例如),其在执行时进行解析,或者使用XML(例如)节点的本地表示。在执行期间,本地运行时刻引擎506对组件400、402、404、406的定义进行操作,而并非对本地组件实体进行操作。应当意识到,另一类执行模型将包括具有针对数据和屏幕的组件定义400、402的应用程序,同时具有针对应用程序302的剩余消息和工作流元素的更硬编码(morehard-coded)405的方法。
因此,本地客户端运行时刻环境为客户端应用程序302提供了对设备100、处理器208的功能性以及设备基础设施204的关联操作系统的接口。优选地,运行时刻环境在设备100上提供受控、安全和稳定的环境,在其中执行组件应用程序302。运行时刻环境提供了组件400、402定义(以及如果使用,定义404、406),以创建专用于设备100的各个设备基础设施204的实际网络客户端。应当意识到,为了简单,以下描述将涉及由组件框架206提供的客户端运行时刻环境,仅作为示例。
通信设备
再次参考图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的操作。此外,应当意识到,设备基础设施204可以包括与处理器208相连的计算机可读存储介质212,用于向处理器提供指令和/或加载/更新存储模块210的客户端应用程序302。所述计算机可读存储介质212可以包括硬件和/或软件,仅作为示例,例如磁盘、磁带、可光学读取的介质(例如CD/DVD ROM)和存储卡。在每一种情况下,计算机可读介质212可以采用小型盘、软盘、盒式磁带、硬盘驱动器、固态存储卡或RAM的形式,设置在存储模块210中。应当注意,以上所列出的计算机可读介质212可以或者单独使用或者组合使用。
组件之间的映射关系
实际上,由开发者对组件400、402的表达典型地可以具有重叠内容,而应用程序302的每一个组件400、402的行为是截然不同的。因此,通过识别通常由以下下层数据元素来产生用户接口202(见图2)的内容的事实并且根据这些组件400、402的表达之间的类似性,便于将特定的映射804(见图8)引入到屏幕组件402的表达中,下面将进一步描述。参考图4和8,这些映射804实质上是到与屏幕组件402相关的屏幕元素802的表达(屏幕元素定义)、以及在执行应用程序302期间屏幕组件402在运行时刻如何动作的快捷方式。映射804是在屏幕组件402的屏幕元素定义和数据组件400定义之间的已声明关系。关于屏幕组件402的表达,使用映射804可以减少描述组件402所需的元数据量。因此,使用映射804可以对描述应用程序302所需的“码”量具有直接影响。关于组件402在运行时刻如何动作,映射804指定了如何由屏幕元素802声明来解析和影响已链接的数据元素(由数据组件400来描述)。在这一点上,指定映射804可以减少开发者在应用程序302中提供附加专用屏幕处理码的需要。
参考图8,屏幕组件402的屏幕表示(见图4)由屏幕元素802构成,例如但并不局限于在用户接口202上显示且与相应数据对象800的数据字段示例相关的UI控制。因此,将每一个屏幕元素802绑定和映射(804)到各个数据对象800上。应用程序302的用户可以在用户接口202上选择屏幕元素802(见图2)并在传播到映射到屏幕元素802上的数据对象800。类似地,可以将对数据对象800的所有修改(由应用程序302逻辑或输入服务器消息105驱动)反映在映射到这些数据对象800上的屏幕元素802中。通过映射管理器312来监视对用户事件的跟踪和对数据对象800的任何直接修改,如下所述。所述映射804用于标识和修改由映射804所影响的数据对象800。映射804隔离相应屏幕组件402的屏幕元素802与其链接的数据组件400的数据对象800。
应当意识到,屏幕组件402或数据组件400定义包含映射804,定义了数据对象800和屏幕元素802之间的关系或数据对象800的各个数据字段(或数据字段组)与屏幕元素802之间的关系。应当意识到,可以将数据对象800传递到用户接口202,作为参数。在这种情况下,将从传递的参数中提取映射到屏幕元素802上的数据对象800的数据字段值。例如,可以将屏幕组件402的屏幕字段定义中所定义的编辑控制(屏幕元素802)映射到链接的数据组件400的数据字段定义(即一对一映射804),或者可以将屏幕组件402的屏幕字段中定义的选择控制(屏幕元素802)映射到数据组件400集合的特定数据字段中(即一对多映射804)。
参考图4和8,如所描述的,除了其他属性之外,可以将屏幕组件元数据映射到链接的数据组件400的数据字段定义。例如,可以将单一屏幕元素802映射到:
·数据组件400的数据字段定义之一,或者
·通过主要关键字(或映射标识符)对数据组件400的所有数据字段定义-在这种情况下,将映射804解析为主要关键字字段。
可以将选择/列表屏幕元素802映射到:
·数据组件400的所有示例的集合,或者
·作为集合的数据组件400的数据字段定义之一
请参考以下的示例组件应用程序302,映射到“User”数据组件400的特定数据对象800的“name”字段上的编辑屏幕元素802“ebName”的示例和映射到“User”数据组件400的所有数据对象800的“name”字段上的选择屏幕元素802“cbName”的示例。
设备框架
再次参考图2,设备100的框架206通过连接220与设备基础设施204相连。客户运行时刻环境设备100由框架206提供,并且优选地,能够根据元数据定义,产生、主持和执行客户端应用程序302(其中包括组件定义-如下所示)。设备运行时刻(Device Runtime)可以被认为是提供基本服务集合304以管理和执行典型应用程序302行为(例如但并不局限于持续、提供、消息传递、屏幕导航和用户接口/屏幕服务)的智能软件框架206。因此,框架206为客户端应用程序302提供本地客户运行时刻环境,并且是与处理器208的设备100功能的接口,并且是设备基础设施204的相关操作系统。框架206通过优选地在设备100上提供受控、安全和稳定的环境来提供运行时刻环境,其中组件应用程序302在如应用程序容器或执行环境300中执行。
参考图3,框架206可以用于在终端运行时刻环境内执行客户端应用程序302(如网络服务客户端应用程序)并且通过网络104上的请求/响应消息105,能够支持对网络服务106和相关应用程序服务器110的访问(见图1)。组件应用程序302包括由框架206执行的软件应用程序。每一次当执行应用程序302时,框架206为应用程序302的每一个组件400、402(以及如果使用,则定义404、406-见图4)创建执行环境300。执行环境300加载应用程序302的组件400、402(如果使用,则定义404、406),并且能够创建由设备基础设施204中的处理器208执行的本地代码。因此,框架206提供主机执行环境300,用于规定组件400、402(如果使用,定义404、406)的定义以创建专用于为通信设备100的每一个相应设备基础设施204的实际网络客户。仅作为示例,执行环境300可以根据如上所述的基于模板的本地执行和基于元数据的执行模型来规定应用程序302。所述执行环境300可以被称为客户端应用程序302的智能主机容器,并且可以负责分析屏幕值(屏幕元素802,见图8)和更新存储模块210中的数值表示(数据对象800)。
再次参考图3,在特定服务并未被包括作为组件400、402(如果使用,定义404、406-见图4)或者被接收为作为组件应用程序302的一部分的单独组件(未示出)的情况下,框架206还向客户端应用程序302提供框架服务304(标准普通服务集合)。应用程序302具有与执行环境300的通信,如果需要,能够协调与框架服务304的通信216。框架206的框架服务304通过与设备基础设施204的连接220来协调通信。因此,由框架206和相关服务304向客户端应用程序302提供对设备基础设施204、用户接口202和网络接口200的访问。应当意识到,设备基础设施204的操作系统的一部分(见图2)可以表示执行环境300和所选的框架服务304的服务/管理器。
参考图3和8,框架服务304包括如但并不局限于通信管理器306、表示管理器308、数据管理器310,并且可以包括访问服务、提供服务和实用服务。访问服务(未示出)提供对通信设备100上存在的其他软件应用程序的应用程序302访问。提供服务(未示出)管理在通信设备100上的软件应用程序302的提供。应用程序提供可以包括请求和接收新的和更新的应用程序302;配置用于访问可通过网络104访问的服务的应用程序302;修改应用程序302和服务的配置;以及删除应用程序302和服务。实用服务(未示出)用于实现各种通用任务,例如执行在串到各种格式的转换中的数据操作。
参考图3、8和9,通信管理器306管理应用程序302和外部系统10之间的连接性,例如代表应用程序302针对网络服务106(通过通信管理器306)发送/接收的消息105和相关数据。如下所述,可以使用通信管理器306来实现一串映射804。当在用户接口202的输出设备上输出其时,表示管理器308管理应用程序302的表示(见图2)。数据管理器310允许组件应用程序302将数据存储在设备基础设施204的存储模块210中(见图2)、应当意识到,管理器310可以用于通过映射804来协调与屏幕组件402链接的数据组件400的数据实例的修改/创建。框架206还具有映射管理器312,用于跟踪各个数据对象800和屏幕元素802之间的各个关系(映射)804。将映射存储在与映射管理器312相连的映射表中。一旦在用户接口202上初始化了屏幕元素802,则表示管理器308使用映射管理器312来保持被显示的屏幕元素802和相应数据对象800之间的动态完整性。当由用户通过用户接口202来修改屏幕元素802之一时,映射管理器312负责将该变化通过数据管理器310传播到存储器210中的适当数据对象800。当修改存储器210中的数据对象800之一时,映射管理器312查看对象800当前是否显示在用户接口202上,如果是这样,则负责通过表示管理器308来更新相应屏幕元素802,通过查阅该表中的相应映射804,将该变化反映在数据对象800中。应当意识到,通信设备100的框架服务304向组件应用程序302提供功能,所述应用程序302包括上述管理器。
因此,框架206允许在用户接口202上显示交互应用程序302,典型地,表示来自应用程序302域的信息并允许用户输入和修改相关数据对象800和屏幕元素802。所述框架206通过在应用程序数据域(数据对象800)和UI屏幕元素802(例如UI控制)之间实现直接映射804,提供了一种对用户接口202进行有效管理的系统。将对应用程序域数据对象800的改变动态地与用户接口202同步,并且将用户输入数据自动地反映在应用程序域数据对象800中。在该同步之后的主要机制在于成对的屏幕元素802和数据对象800之间的映射804。所述映射系统涉及利用以如XML等结构语言表达的元数据定义的无线应用程序302。映射804机制能够在用户接口202上创建动态和交互屏幕。可以将对数据对象800的所有改变同步地反映在用户接口上,反之亦然。映射804的实现便于根据服务器到设备通知来构造无线应用程序302。由链接的UI屏幕元素802将从服务器异步推送的数据对象800同步地反映在用户接口202上。这些映射800可以适合于各种无线应用程序302,例如股票交易、新更新、警告、天气更新。
应用程序组件
参考图2,在框架206的终端运行时刻环境内执行客户端应用程序302,并且该应用程序支持对由服务106提供的网络服务操作的访问(见图1)。WSDL和SOAP协议定义清楚地包含消息/数据模式。在WSDL网络服务定义中,利用消息和数据部分的概念来定义这些操作,所述消息和数据部分用于将网络服务客户端应用程序302定义为相关数据400和消息404组件的集合(见图4)。
参考图4,组件应用程序302的方框图包括数据组件400、表示组件402。应用程序302的剩余消息/工作流部分405可以由消息组件404来提供,所述消息组件404由工作流组件406通过与执行环境300的通信214来协调,或者可以将其设置为应用程序302的硬编码元素405(如由用用程序开发者所定义的)。可以使用结构定义语言将组件400、404(以及如果使用了404)构造为元数据记录串,由表示资源的指定属性的多个预定元素构成,从而每一个元素可以具有一个或多个值。典型地,每一个元数据计划具有定义的特征,如但并不局限于:有限数量的元素、每一个元素的名称和每一个元素的含义。示例元数据计划包括如但并不局限于都柏林内核(DC)、英美编录规则(AACR2)、政府信息定位符服务(GILS)、编码归档描述(EAD)、IMS全球学术协会(IMS)、以及澳大利亚政府定位符服务(AGLS)。编码语法允许由设备基础设施204(见图2)来处理组件400、402(以及如果使用,404)的元数据,并且编码计划包括如但并不局限于XML、HTML、XHTML、XSML、RDF、机器可读编录(MARC)和多用途因特网邮件扩展(MIME)。
再次参考图4和8,数据组件400定义了由组件应用程序302使用的数据对象800,包括以如本地代码或XML表示的应用程序数据。数据组件400可以描述的数据对象800的示例是订单、用户和金融交易。数据组件400描述了描述数据对象800需要什么信息、以及以什么格式来表达该信息。例如,数据组件400可以定义如但并不局限于格式为数字的由针对订单的惟一标识符构成的订单、格式为串的项目列表、具有日期时间格式的创建订单的时间、格式为串的订单状态、以及具有与数据组件400的另一个的定义相一致的格式的进行定购的用户。由于通常根据网络服务106的编排规则(choreography rule)将数据部分(元素)从消息105传递到消息105,因此优选地,存在数据对象800的持续性。可以根据网络服务106的编排定义(如果可用)来动态产生数据对象800,或者由应用程序设计者根据复杂类型的定义和/或消息相关信息来定义数据对象800。应当意识到,可以通过映射804将屏幕组件402映射到数据组件400(见图9),如以下所描述的。
此外,所述数据组件400可以由如但并不局限于HTML、XHTML和XML和其他结构定义语言书写的一串数据字段定义构成,其中数据对象800(见图9)是根据数据字段定义的数据实例。应当注意,数据对象定义提供了数据字段的结构和其相应数据类型的定义,从而数据对象800是特定数据对象定义的实例。数据字段包括数据对象定义且每一个数据字段具有相关数据类型。此外,复杂数据字段包含子数据字段的结构。将数据对象800的定义包括在应用程序302的数据组件400计划中。这些数据定义提供用于定义由应用程序302所使用的数据对象800的数据模型。因此,数据组件400是组合在一起的一个和多个数据字段定义的集合,以便当将其实例化为数据对象800时定义相应数据字段值的格式。所述数据组件400定义可以经由主要或合成关键字或可选定无需关键字对其进行定义。这些关键字可以与映射804一起使用以提供成对的映射数据400和屏幕402组件之间的惟一链接。
再次参考图4,表示/屏幕组件402定义了由用户接口202所显示的应用程序302的外观和行为。当用户使用用户接口202与组件应用程序302进行交互时,所述表示组件402可以指定GUI屏幕和和控制以及要执行的动作。例如,当用户对编辑框进行打字输入或按下按钮时,表示组件402可以定义屏幕、标签、编辑框、按钮和菜单、以及要采用的动作。大多数网络服务消费者使用网络服务操作结果的可视表示,因此在能够显示用户接口屏幕的其设备100上提供运行时刻环境。
下面将示出向屏幕组件402以及用于接受传递参数的屏幕组件402传递参数的示例应用程序302。考虑该应用程序具有:
·数据组件400“User”;
·列出了所有用户名的选择框的屏幕组件402“srcALLUSERs”,具有显示所选用户细节的按钮/菜单项;
·显示作为参数传递的用户细节的屏幕组件402“srcUSERInfo”。
示例XML数据组件400
可以使用以下元数据来定义具有主要关键字字段“name”的数据组件400“User”:
<cData name=″User″pkey=″name″><dfield name=″name″type=″String″/>
        <dfield name=″street″type=″String″/>
        <dfield name=″city″type=″String″/>
        <dfield name=″postal″type=″String″/>
        <dfield name=″phone″type=″String″/>
</cData>
示例XML表示组件402
“srcALLUSERs”屏幕定义映射到“用户”数据组件400的所有示例的“名称”字段的选择控制“cbNames”。屏幕元数据定义包含按钮或菜单项,具有以作为参数传递到用户接口202的所选参数“用户”来显示屏幕“srcUSERInfo”。
<cScr name=″scrAllUsers″>
    …
    <choice name=″cbNames″mapping=″User[].name″/>
    …
    <action screen=″scrUserInfo″param=″cbNames.selected″/>
    …
</cScr>
屏幕“srcUSERInfo”定义了映射到作为参数传递的“User”数据组件400的特定实例的“name”字段上的编辑控制“ebName”:
<cScr name=″scrUserInfo″param=″User″>
    …
    <edit name=″ebName″mapping=″User.name″/>
    …
</cScr>
再次参考图4,可以通过硬编码应用程序302元素来设置应用程序302的剩余消息和其他工作流部分105,和/或可以将其设置为以结构定义语言和代码/脚本分别描述的另外组件404、406。在使用原子消息组件(atomic message component)404的情况下,这些定义了由组件应用程序302使用来与如网络服务106等外部系统进行通信的消息105的格式,并且包括以如本地代码或XML表示的消息数据。例如,消息组件404之一可以描述如但并不局限于定购包括订单的惟一标识符的订单的消息、订单的状态和与订单有关的注释。以结构定义语言书写的消息组件404定义能够惟一地表示(和映射到)WSDL消息,并且可以在运行时刻动态地产生。因此,根据用于表达网络服务接口的定义语言的标准网络服务元数据,如但并不局限于WSDL和BPEL,针对客户端应用程序消息105的组件定义和相关数据内容实现动态产生。在操作环境内定义网络服务消息105,并且在组件应用程序302的定义中的消息组件404之间定义了相关性。可以使用预定的消息参数和/或通过单独的工作流组件406来实现该相关性,如以下进一步定义的。
再次参考图4,在使用组件应用程序302的原子工作流组件406的情况下,这些定义了当要执行动作(例如,上述由表示组件402指定的动作)时出现的处理、或当消息105从系统10中到达(见图1)时要执行的动作。可以由工作流组件406来定义表示工作流和消息105处理。将工作流组件406以编程语言或脚本语言写作指令串,如但并不局限于ECMA脚本,并且可以编辑为本地代码并由执行环境300来执行,如上所述。工作流组件406的示例可以给数据赋值、操作屏幕或发送消息105。工作流组件406支持消息105之间的相关性并定义了应用程序流,作为在其他组件400、402、404上操作的一组规则。将针对给出的应用程序302来定义多工作流组件。
通常,ECMA(欧洲计算机制造者协会)脚本是标准的脚本语言,其中脚本被称为由另一程序而非计算机处理器解释或执行的指令序列。脚本语言的一些其他示例是Perl、Rexx、VBScript、JavaScript和Tcl/Tk。通常,这些脚本语言是指示性语言,用于操作、定制和使现有系统的设施自动化,例如设备100。在这样的系统中,有用的功能已经通过用户接口202(见图2)变得可用,并且脚本语言是将功能暴露给程序控制的机制。按照该方式,设备100用于提供完成脚本语言能力的对象和设施的主机运行时刻环境。
基于组件的应用程序302的示例组件404、406可以是:
示例XML消息组件404
<msg name=“ordConfirmation″type=”response”
action=“mhConfirmation″>
       <part name=“orderId″type=″String“/>
       <part name=“status″type=″String“/>
</msg>
示例ECMAScript工作流组件406
<actions>
    <function name=”mhConfirmation”>
            key=ordConfirmation.orderId;
            order=Order.get(key);
            order.orderStatus=ordConfirmation.status;
            scrConfirmation.display(order);
    </function>
    …
</actions>
使用XML或派生来表达数据400、消息404和表示402组件、以及使用ECMA脚本语言或其子集的工作流组件406能够允许应用程序开发商从任何特定的平台或环境中提取出网络服务客户端,并在理论上实现“开发一次任何地方运行”的应用程序。以下示例示出了如何能够利用结构定义语言(例如但并不局限于XML)和平台中立脚本/编程语言(例如但并不局限于ECMA脚本)、已定义组件来表达网络服务客户端应用程序302。
此外,参考图4,如以上所给出的,可以看到,消息组件404可以中继所需数据,以便输入和输出消息105。相应数据组件400协调设备100的存储模块210(见图2)中的数据的存储,以便由表示组件402随后在用户接口202(见图2)上表示。工作流组件406可以协调数据400、表示402、消息404组件之间的数据传输。客户运行时刻能够直接存储和更新原子数据对象800。
基于组件的应用程序模型的示例基本操作
应当注意,参考以下图9、10和11来描述详细说明处理映射804的操作。
参考图1、3和6,例如,操作900示出了当设备100接收到包含消息数据的响应消息105时(902),适当工作流组件406根据适当的消息组件404来解释消息105的数据内容(904)。然后,工作流406处理数据流(906)并将数据插入到相应数据组件400(910),以便随后存储在存储模块210(见图2)中(912)。此外,如果需要,工作流组件406还将数据插入到适当的表示组件402(908),以便随后在用户接口202(见图2)上显示(914)。
参考图1、3和7,操作1000示出了针对如按下按钮或选择菜单项的动作的数据输入1002,用户通过用户接口202在用户接口元素上执行这些动作(1003)。相关工作流组件406根据适当的表示组件404来解释输入数据(1004)并创建由适当的数据组件400定义的数据实体(1006)。然后,所述工作流组件406向数据组件400填充由用户提供的输入数据(1010),以便随后存储在存储模块210(见图2)中(1012)。此外,工作流组件406还将输入数据插入到适当消息组件404中(1008),以便随后将输入数据作为数据实体发送到消息105中的网络服务(1014),如由消息组件404所定义的。
在上述操作中,应当意识到,如果被包括作为应用程序302的硬编码部分405,则工作流406和消息404组件的操作将相应地为其他操作。
预定和动态屏幕产生
无线应用程序302可以具有屏幕元素802和数据对象800的预定集合,在应用程序设计阶段,在数据组件400和屏幕组件404的字段定义中识别这些集合之间的关系(映射800)。该模型可以被称为预定屏幕和数据关系模型,从而可以使用如XML等结构语言在组件字段定义中以元数据来表达向用户表示的屏幕元素802和数据对象800之间的映射804。
还可以根据与屏幕元素802相关的数据对象800的结构动态地产生用户接口202的屏幕。在一些情形中,不能够提前预测通过消息105(见图1)作为来自服务器(网络服务106)的输入接收到的数据流的格式(例如返回任意XML的网络服务106操作)。在以结构格式来表示接收到的数据流的情况下(例如XML),设备100可以由框架206使用定义的解释规则,对屏幕格式(例如UI控制、布局等)进行智能预测,以便表示由数据流表示的数据对象800。这可以通过以下方式来实现:操作数据流中的XML(例如)节点以构建相应的数据组件400,然后,相应的数据组件400由所述映射管理器312(见图8)解释以通过由框架206最佳确定的映射屏幕组件402来分配相应的屏幕元素802,从而处理变换后的数据流的数据内容。在开发无线应用程序302和用于将基于计划的数据流转换为由映射管理器312和转换规则的开发者较好理解的组件定义格式的规则期间,XML内容的计划将是预定的。该转换规则将作为映射管理器312的一部分并设计用于转换最通常遇到的XML(例如)结构数据流内容。而且,用户可以具有在将其已经存储到设备100或发送回服务器之前更新UI字段和修改数据的机会。
以下示例示出了XML计划的任意XML数据流片断:
<dataNode1 attr1=’val1’attr2=’val2’>
    <subDataNode1>abcdefg</subDataNode1>
    <subDataNode2>222</subDataNode2>
    <subDataNode3>333</subDataNode3>
</dataNode1>
<dataNode1 attr1=’val1’attr2=’val2’>
    <subDataNode1>hijklmnop</subDataNode1>
    <subDataNode2>555</subDataNode2>
    <subDataNode3>666</subDataNode3>
</dataNode1>
映射管理器312使用包含数据字段定义的、由应用程序开发者所提供的计划定义,
<dataEntity name=’dataNode1’>
    <dfield name=’subDataNode1’type=’String’/>
    <dfield name=’subDataNode2’type=’int’/>
    <dfield name=’subDataNode3’type=’int’/>
</dataEntity>
并且动态地应用转换规则以便将XML数据流转换为应用程序可接受的格式(按照提供的计划)并产生合适的XML数据对象800:
<dataEntity name=’dataNode1’key=’0’>
    <dfield name=’subDataNode1’>abcdefg</>
    <dfield name=’subDataNode2’>222</>
</dataEntity>
<dataEntity name=’dataNode1’key=’1’>
    <dfield name=’subDataNode1’>hijklmnop</>
    <dfield name=’subDataNode2’type=’int’>555</>
</dataEntity>
数据对象在用户接口上的表示
当获得用户接口202的屏幕时,需要对为映射屏幕元素802所显示的数据对象800进行解析。解析要用于初始值的特定数据对象800的不同选项如下:
基于屏幕参数的初始化
典型地,将具有映射屏幕元素802的值的数据组件400的数据对象800作为参数,传递到用户接口202的屏幕。在以上所给出的示例屏幕组件404中,屏幕“srcUSERInfo”接收用户的数据对象800,作为所述参数。在映射到用户数据组件400的数据字段定义上的该屏幕上的屏幕元素802将显示来自该参数中的数据值。
未解析的初始值
如果针对屏幕定义了映射804但是还没有解析相关数据组件400的初始数据对象800,则不将显示针对映射的屏幕元素802的初始数据值。一个示例将是定义来输入针对新用户的数据值的屏幕。初始用户数据组件400将并非相关的。在用户将新值输入到屏幕元素802的数据字段之后,使用映射定义来创建该数据组件400的新数据对象800,如以下将针对用户数据更新所描述的那样。
所有数据对象的列表
对于屏幕元素802的选择控制/列表类型,映射804可以指定将要使用所有创建的数据对象800,如以上所给出的示例屏幕组件404所示。
屏幕表示
参考图3、8和9,该场景850描述了当在用户接口202上绘制新屏幕时针对屏幕元素802所执行的步骤。在步骤852,所述映射管理器312检测映射到数据组件400字段上的屏幕元素802。在步骤854,映射管理器312检查该类型的数据对象800是否被附加到屏幕上-即作为参数传递。如果是这样,则映射管理器在步骤858处检索数据对象800的数据字段值并将其传递到表示管理器308以便在屏幕上显示其。如果不是这样,则在步骤856,在屏幕202上显示针对该字段类型的默认值(例如屏幕空白、数字0等)。
对数据更新的控制
参考图3和8,根据映射804元数据,将用户输入的值反映在存储器210中的相关数据对象800的字段值中。
所述处理可以涉及以下功能:
·输入验证;
·数据创建;
·数据更新。
输入验证
用户输入数据的验证可以自动基于数据cmp(例如电话号码)。
数据创建
根据输入值,如果遇到了新数据关键字值,则可以创建新数据对象800。在以上所给出的示例数据组件400中,如果输入先前未定义的名称,则创建新用户数据对象800。
数据更新
作为在用户接口202上的用户输入的结果,可以更新针对现有数据组件400的数据对象800的字段值。
更新操作
两种方式更新模式可以按照以下两种方式来操作:
·自动提交
当用户离开屏幕时提交数据。
·管理的转换模式
映射指定菜单动作(屏幕元素802)以处理数据。例如,对于多订单屏幕,在最后屏幕上的“提交”菜单项将更新/创建结果数据对象800。另一菜单项(例如“取消”)可能会导致输入数据的丢弃。
参考图3、8和10,以下场景870描述了将用户接口202上的用户输入数据(用户事件)映射到数据对象800上的流程。在步骤872,当用户在屏幕元素802上输入/更新数据时,UI管理器308将所述数值传递到映射管理器312。在步骤874,如果这是映射的屏幕元素802,映射管理器312解析适当的数据组件400并从数据管理器310中请求数据对象800。在步骤876,数据管理器312验证针对屏幕元素802输入的数值与该屏幕元素802映射到其上的数据组件400字段类型匹配。在步骤878,数据管理器310将修改的数据值保存在临时存储器中,而不提交-“脏(dirty)”数据。数据管理器310还解析这是现有数据对象800的更新还是新数据对象800的创建。在步骤880,将用户事件确定为被提交(选项A)或被中止(选项B)。对于提交的确定:选项A:提交,
1)用户选择映射到提交动作上的按钮或菜单项(屏幕元素802);
2)UI管理器308向映射管理器312通知该动作;
3)映射管理器312请求数据管理器310提交变化;
4)数据管理器310提交该变化并将数据对象800存储在存储器210中。
对于中止的确定:选项B:回退,
1)用户通过选择未映射到提交动作是的按钮或菜单项(屏幕元素802)来离开屏幕;
2)UI管理器308向映射管理器312通知该动作;
3)映射管理器312请求数据管理器310回退该变化;
4)数据管理器312丢弃该变化-这可以表示:如果作为屏幕组件402到数据组件400映射804的结果创建了新的映射,则仅丢弃对各个字段的变化或删除整个数据对象800。
控制更新的数据
如果设备100可以从外部源(例如网络服务106)异步地接收数据更新,则对与屏幕元素802相关的数据值的改变将会导致利用新信息的屏幕刷新。参考图3、8和11,在从服务器106中接收消息105时(952),消息管理器312确定消息105是否被映射到框架206中的当前执行应用程序302的数据组件400上(954)。如果情况如此,则执行以下的进一步步骤:在步骤956,设备框架206从服务器106中接收与数据变化有关的通知;在步骤958,消息管理器306通知数据管理器310对数据对象800执行任何相关的数据更新;在步骤960,消息管理器306还向映射管理器312通知该数据变化;在步骤962,利用映射804元数据,映射管理器312验证数据变化是否与当前屏幕相关;在步骤964,如果变化与当前显示的信息相关,则映射管理器312请求UI管理器308刷新屏幕;以及在步骤966,刷新该屏幕以显示更新的数据对象800。否则,在步骤968,消息105不会影响在用户接口202上显示的屏幕元素802的当前值。
尽管已经针对一个或多个基本系统和方法进行了公开,但是许多变体对本领域的技术人员是显而易见的,并且这样的变体在本申请的范围内。例如,尽管在所提供的示例中使用了XML和ECMA脚本的子集,但是还可以使用其他语言和语言变体来定义组件应用程序302。此外,应当意识到,作为上述映射804的一种选择,可以将数据字段的定义包含在屏幕组件402(见图4)中。因此,屏幕元素802的产生将基于包括在屏幕组件402定义中的数据字段定义,并且可以将数据组件400映射到具有所包括的数据字段定义的相应屏幕组件402上(804)。因此,数据对象800的产生将依赖于映射屏幕组件402中所包含的数据字段定义。

Claims (35)

1. 一种根据数据对象来产生在无线设备上执行的组件应用程序的屏幕元素以在无线设备的用户接口上显示的方法,所述应用程序包括具有至少一个数据字段定义的数据组件和具有至少一个屏幕元素定义的屏幕组件,所述组件以结构定义语言进行定义,其特征在于,所述方法包括以下步骤:
选择与为了显示而选择的屏幕元素相对应的屏幕组件;
识别屏幕组件中所存在的至少一个映射,所述映射用于指定由表示所述映射的标识符所定义的屏幕组件和数据组件之间的关系;
根据映射标识符来选择由所述映射所映射的数据组件;
获取与映射的数据组件的数据字段定义相对应的数据对象字段值;
根据屏幕元素定义产生屏幕元素,以便根据映射数据组件中所定义的数据字段定义的格式来包括数据对象字段值。
2. 根据权利要求1所述的方法,其特征在于在由映射所表示的屏幕组件和数据组件之间共享数据组件的多个数据字段定义。
3. 根据权利要求2所述的方法,其特征在于还包括将多个数据字段定义与标识符所表示的屏幕组件的屏幕元素定义中的相应一个链接的步骤。
4. 根据权利要求2所述的方法,其特征在于还包括检测与屏幕元素相关的用户接口的用户事件的步骤。
5. 根据权利要求4所述的方法,其特征在于还包括识别与受影响的屏幕元素的链接数据组件相对应的屏幕组件中的映射的步骤。
6. 根据权利要求5所述的方法,其特征在于还包括利用链接数据组件的数据字段定义来更新存储器中的数据对象的步骤。
7. 根据权利要求5所述的方法,其特征在于还包括利用链接数据组件的数据字段定义在存储器中创建新数据对象的步骤。
8. 根据权利要求2所述的方法,其特征在于通过将所述数据对象字段值作为参数传递到用户接口,来获取所述数据对象字段值。
9. 根据权利要求2所述的方法,其特征在于通过第一标识符将第一屏幕元素定义映射到第一数据组件;以及通过第二标识符将第二屏幕元素定义映射到与第一数据组件不同的第二数据组件。
10. 根据权利要求2所述的方法,其特征在于利用第一标识符将第一屏幕元素定义和第二屏幕元素定义映射到相同的数据组件上。
11. 根据权利要求2所述的方法,其特征在于所述结构定义语言是基于XML的。
12. 根据权利要求2所述的方法,其特征在于所述标识符是简单主要关键字。
13. 根据权利要求2所述的方法,其特征在于所述标识符是合成关键字。
14. 根据权利要求2所述的方法,其特征在于还包括由所述设备通过与所述设备相连的网络接收异步通信消息的步骤,所述消息包括消息数据对象。
15. 根据权利要求2所述的方法,其特征在于还包括检查与所述设备上提供的应用程序的数据组件相对应的、针对映射的消息的步骤。
16. 根据权利要求15所述的方法,其特征在于还包括根据所述消息来更新数据组件、然后将所述更新反映在同所述数据组件链接的屏幕元素中的步骤。
17. 根据权利要求15所述的方法,其特征在于还包括利用链接数据组件的数据字段定义在存储器中创建消息数据对象的步骤。
18. 一种根据数据对象来产生在无线设备上执行的组件应用程序的屏幕元素以在无线设备的用户接口上显示的系统,所述组件应用程序包括具有至少一个数据字段定义的数据组件和具有至少一个屏幕元素定义的屏幕组件,所述组件以结构定义语言进行定义,其特征在于,所述系统包括:
用于选择与选择用于显示的屏幕元素相对应的屏幕组件的装置;
用于识别屏幕组件中所存在的至少一个映射的装置,所述映射用于指定由表示所述映射的标识符所定义的屏幕组件和数据组件之间的关系;
用于根据所述标识符来选择由所述映射所映射的数据组件的装置;
用于获取与映射的数据组件的数据字段定义相对应的数据对象字段值的装置;以及
用于根据屏幕元素定义产生屏幕元素以便根据映射数据组件中所定义的数据字段定义的格式来包括数据对象字段值的装置。
19. 根据权利要求18所述的系统,其特征在于在由映射所表示的屏幕组件和数据组件之间共享数据组件的多个数据字段定义。
20. 根据权利要求19所述的系统,其特征在于将多个数据字段定义与标识符所表示的屏幕组件的相应屏幕元素定义相关联。
21. 根据权利要求19所述的系统,其特征在于还包括用于检测与屏幕元素相关的用户接口的用户事件的装置。
22. 根据权利要求21所述的系统,其特征在于还包括用于识别与受影响的屏幕元素的链接数据组件相对应的屏幕组件中的映射的装置。
23. 根据权利要求22所述的系统,其特征在于还包括用于利用链接数据组件的数据字段定义来更新存储器中的数据对象的装置。
24. 根据权利要求22所述的系统,其特征在于还包括配置用于利用链接数据组件的数据字段定义在存储器中创建新数据对象的装置。
25. 根据权利要求19所述的系统,其特征在于通过将所述数据对象字段值作为参数传递到用户接口,来获取所述数据对象字段值。
26. 根据权利要求19所述的系统,其特征在于通过第一标识符将第一屏幕元素定义映射到第一数据组件;以及通过第二标识符将第二屏幕元素定义映射到与第一数据组件不同的第二数据组件。
27. 根据权利要求19所述的系统,其特征在于利用第一标识符将第一屏幕元素定义和第二屏幕元素定义映射到相同的数据组件上。
28. 根据权利要求19所述的系统,其特征在于所述结构定义语言是基于XML的。
29. 根据权利要求19所述的系统,其特征在于所述标识符是简单主要关键字。
30. 根据权利要求19所述的系统,其特征在于所述标识符是合成关键字。
31. 根据权利要求19所述的系统,其特征在于还包括用于由所述设备通过与所述设备相连的网络接收异步通信消息的装置,所述消息包括消息数据对象。
32. 根据权利要求19所述的系统,其特征在于还包括用于检查与所述设备上提供的应用程序的数据组件相对应的、针对映射的消息的装置。
33. 根据权利要求32所述的系统,其特征在于还包括用于根据所述消息来更新数据组件、然后将所述更新反映在同所述数据组件链接的屏幕元素中的装置。
34. 根据权利要求32所述的系统,其特征在于还包括用于利用链接数据组件的数据字段定义在存储器中创建消息数据对象的装置。
35. 一种根据显示在无线设备的用户接口上的屏幕元素的变化来产生在无线设备上执行的组件应用程序的数据对象的方法,所述组件应用程序包括具有至少一个数据字段定义的数据组件和具有至少一个屏幕元素定义的屏幕组件,所述组件以结构定义语言进行定义,其特征在于,所述方法包括以下步骤:
选择与所述屏幕元素相对应的屏幕组件;
识别屏幕组件中所存在的至少一个映射,所述映射用于指定屏幕组件和数据组件之间的关系;
选择由所述映射所映射的数据组件;
根据与所映射的数据组件相对应的屏幕元素来获取变化值;
根据映射数据组件中所定义的数据字段定义的格式,将所述变化值分配给数据对象的数据字段值。
CNB2005100524493A 2004-02-27 2005-02-28 用于构建无线应用程序的系统和方法 Active CN100424637C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP04251160A EP1571547A1 (en) 2004-02-27 2004-02-27 System and method for building wireless applications with intelligent mapping between user interface and data components
EP04251160.0 2004-02-27

Publications (2)

Publication Number Publication Date
CN1661554A CN1661554A (zh) 2005-08-31
CN100424637C true CN100424637C (zh) 2008-10-08

Family

ID=34746128

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100524493A Active CN100424637C (zh) 2004-02-27 2005-02-28 用于构建无线应用程序的系统和方法

Country Status (9)

Country Link
EP (1) EP1571547A1 (zh)
JP (3) JP2005259131A (zh)
KR (1) KR100795765B1 (zh)
CN (1) CN100424637C (zh)
AU (1) AU2005200852A1 (zh)
CA (1) CA2498540C (zh)
MX (1) MXPA05002276A (zh)
SG (3) SG114770A1 (zh)
TW (1) TWI314415B (zh)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100808662B1 (ko) 2005-12-08 2008-02-29 한국전자통신연구원 Sca 기반 애플리케이션 시스템 및 이의 운용 중컴포넌트 교체방법
US7836439B2 (en) * 2006-02-03 2010-11-16 Research In Motion Limited System and method for extending a component-based application platform with custom services
EP1835397A1 (en) * 2006-02-27 2007-09-19 Software Ag Application framework
US20080301236A1 (en) * 2007-05-31 2008-12-04 Microsoft Corporation Contextual social language
US8478245B2 (en) 2007-08-01 2013-07-02 Phunware, Inc. Method and system for rendering content on a wireless device
US8103865B2 (en) 2007-08-01 2012-01-24 Phunware, Inc. Server method and system for rendering content on a wireless device
US8667412B2 (en) * 2007-09-06 2014-03-04 Google Inc. Dynamic virtual input device configuration
US7979350B1 (en) 2007-10-23 2011-07-12 Gotv Networks, Inc. Method and system for accessing wireless account information
US8009619B1 (en) 2007-10-23 2011-08-30 Phunware, Inc. Server-side wireless communications link support for mobile handheld devices
US8060594B1 (en) 2007-10-23 2011-11-15 Phunware, Inc. Client-side wireless communications link support for mobile handheld devices
US9015692B1 (en) 2007-10-23 2015-04-21 Phunware, Inc. Method and system for customizing content on a server for rendering on a wireless device
KR100973543B1 (ko) * 2008-01-15 2010-08-02 포항공과대학교 산학협력단 모바일 응용 애플리케이션의 동적 아키텍처를 모델링하기위한 방법 및 그 장치
US8271579B2 (en) 2008-04-07 2012-09-18 Phunware, Inc. Server method and system for executing applications on a wireless device
US20090251488A1 (en) * 2008-04-07 2009-10-08 Hands-On Mobile, Inc. Method and system for executing applications on a wireless device
US8209355B2 (en) * 2008-07-28 2012-06-26 Microsoft Corporation Automatic user interface generation for entity interaction
TWI393047B (zh) * 2009-06-30 2013-04-11 Accton Technology Corp 一種智慧型顯示裝置
US10387140B2 (en) 2009-07-23 2019-08-20 S3G Technology Llc Modification of terminal and service provider machines using an update server machine
KR101117165B1 (ko) * 2010-05-28 2012-03-07 단국대학교 산학협력단 이기종 운영체제 계층 모듈에서 동작하는 웹기반어플리케이션의 연동이 가능한 모바일 단말기용 웹 플랫폼 유닛
KR101878488B1 (ko) 2011-12-20 2018-08-20 한국전자통신연구원 대화 연관 컨텐츠 제공 방법 및 장치
US10296562B2 (en) 2013-02-12 2019-05-21 Oath Inc. Dynamic generation of mobile web experience
US9342300B2 (en) 2014-03-11 2016-05-17 Blue Wolf Group, LLC Analyzing components related to a software application in a software development environment
CN110012040B (zh) * 2018-01-04 2022-06-21 武汉斗鱼网络科技有限公司 一种移动终端中多状态的挂件更新方法及系统
CN108920133B (zh) * 2018-06-14 2021-06-18 北京三快在线科技有限公司 跨语言编程方法、装置、电子设备及存储介质
CN111414410B (zh) * 2019-01-07 2023-07-14 阿里巴巴集团控股有限公司 数据处理方法、装置、设备和存储介质
US20220100900A1 (en) * 2019-06-14 2022-03-31 Hewlett-Packard Development Company, L.P. Modifying data items
CN114564176B (zh) * 2022-01-27 2023-08-22 阿里云计算有限公司 一种代码开发方法、服务器及存储介质
KR20230151676A (ko) * 2022-04-26 2023-11-02 쿠팡 주식회사 전자 장치 및 그의 동작 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010045963A1 (en) * 1997-04-14 2001-11-29 Apple Computer, Inc. Method and apparatus for binding user interface objects to application objects
US20030060896A9 (en) * 2001-01-09 2003-03-27 Hulai Steven J. Software, devices and methods facilitating execution of server-side applications at mobile devices
WO2003044654A2 (en) * 2001-11-15 2003-05-30 Softplumbers S.A. Method for developing and managing large-scale web user interfaces

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003140893A (ja) 2001-11-02 2003-05-16 Nippon Telegr & Teleph Corp <Ntt> ユーザインタフェースプログラム自動生成装置、自動生成方法およびプログラムと記録媒体
JP4490026B2 (ja) * 2002-01-28 2010-06-23 日立オムロンターミナルソリューションズ株式会社 カスタマイズ可能な情報処理装置
KR100475432B1 (ko) * 2002-02-26 2005-03-10 삼성전자주식회사 그래픽 사용자 인터페이스의 디자인 변경 방법 및 이를 위한 기록매체
KR20050057822A (ko) * 2003-12-11 2005-06-16 에스케이씨앤씨 주식회사 Xml을 이용한 gui 구현방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010045963A1 (en) * 1997-04-14 2001-11-29 Apple Computer, Inc. Method and apparatus for binding user interface objects to application objects
US20030060896A9 (en) * 2001-01-09 2003-03-27 Hulai Steven J. Software, devices and methods facilitating execution of server-side applications at mobile devices
WO2003044654A2 (en) * 2001-11-15 2003-05-30 Softplumbers S.A. Method for developing and managing large-scale web user interfaces

Also Published As

Publication number Publication date
SG135202A1 (en) 2007-09-28
SG172622A1 (en) 2011-07-28
TWI314415B (en) 2009-09-01
CA2498540A1 (en) 2005-08-27
TW200605588A (en) 2006-02-01
CN1661554A (zh) 2005-08-31
KR100795765B1 (ko) 2008-01-21
KR20060042393A (ko) 2006-05-12
EP1571547A1 (en) 2005-09-07
JP2012142017A (ja) 2012-07-26
JP5248964B2 (ja) 2013-07-31
CA2498540C (en) 2013-07-30
JP2009087340A (ja) 2009-04-23
SG114770A1 (en) 2005-09-28
AU2005200852A1 (en) 2005-09-15
JP2005259131A (ja) 2005-09-22
MXPA05002276A (es) 2008-11-24

Similar Documents

Publication Publication Date Title
CN100424637C (zh) 用于构建无线应用程序的系统和方法
US8108830B2 (en) System and method for building wireless applications with intelligent mapping between user interface and data components
CN100429620C (zh) 用于将开发模式应用于基于组件的应用程序的系统和方法
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
CN100435094C (zh) 为组件应用程序建立混合模式执行环境的系统和方法
CN100596139C (zh) 使用元数据定义映射来构建组件应用程序的系统和方法
CN101849228B (zh) 用于创建面向IT的基于服务器的Web应用的方法和系统
CN101699393B (zh) 一种面向网络的智能化软件界面动态生成方法
CN100444108C (zh) 使用ui储存库的公共ui组件执行无线应用程序的系统和方法
US20050193361A1 (en) System and method for presentation of wireless application data using repetitive UI layouts
US20100142406A1 (en) System and method for building component applications using metadata defined mapping between message and data domains
CN101356494A (zh) 对主题进行换肤的系统和方法
CN100437478C (zh) 交互式无线应用程序系统和方法
CN101185303A (zh) 创建用于绑定应用程序与关联后端服务器之间的消息的映射文档的系统及方法
CA2538561C (en) System and method for conversion of web services applications into component based applications for devices
US20060041623A1 (en) Method and system to trigger an activity associated with a user interface element on a web page
CA2538531C (en) System and method for applying workflow of generic services to component based applications for devices
EP1569095A1 (en) System and method for presentation of wireless application data using repetitive UI layouts
CN1757015B (zh) 用于建立和执行平台-中性的普通服务客户应用程序的系统和方法
AU2008202421B2 (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
ASS Succession or assignment of patent right

Owner name: MOTOROLA MOBILITY LLC

Free format text: FORMER OWNER: RESEARCH IN MOTION LTD.

Effective date: 20130117

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20130117

Address after: Illinois State

Patentee after: Motorola Mobility, Inc.

Address before: Voight, Ontario, Canada

Patentee before: Research In Motion Ltd.

TR01 Transfer of patent right

Effective date of registration: 20190123

Address after: American California

Patentee after: Technology Holdings Co., Ltd of Google

Address before: Illinois State

Patentee before: Motorola Mobility, Inc.

TR01 Transfer of patent right