CN100596139C - 使用元数据定义映射来构建组件应用程序的系统和方法 - Google Patents
使用元数据定义映射来构建组件应用程序的系统和方法 Download PDFInfo
- Publication number
- CN100596139C CN100596139C CN200510052451A CN200510052451A CN100596139C CN 100596139 C CN100596139 C CN 100596139C CN 200510052451 A CN200510052451 A CN 200510052451A CN 200510052451 A CN200510052451 A CN 200510052451A CN 100596139 C CN100596139 C CN 100596139C
- Authority
- CN
- China
- Prior art keywords
- message
- data
- definition
- field
- 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
Links
- 238000013507 mapping Methods 0.000 title claims description 167
- 238000000034 method Methods 0.000 title claims description 58
- 238000004891 communication Methods 0.000 claims abstract description 33
- 238000012545 processing Methods 0.000 claims description 19
- 230000003760 hair shine Effects 0.000 claims description 5
- 239000002131 composite material Substances 0.000 claims description 3
- 230000008569 process Effects 0.000 claims description 3
- 238000013468 resource allocation Methods 0.000 abstract description 2
- 238000013506 data mapping Methods 0.000 abstract 1
- 230000003993 interaction Effects 0.000 abstract 1
- 230000000875 corresponding effect Effects 0.000 description 30
- 238000013515 script Methods 0.000 description 27
- 230000000712 assembly Effects 0.000 description 13
- 238000000429 assembly Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 10
- 230000009471 action Effects 0.000 description 9
- 230000004044 response Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000003860 storage Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000006855 networking Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000000344 soap Substances 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000002224 dissection Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 230000033458 reproduction Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
- Mobile Radio Communication Systems (AREA)
- Telephonic Communication Services (AREA)
Abstract
需要的是,通过降低对任何外在编码的需求以及降低在提供时由应用程序所利用的设备资源,来降低开发无线应用程序中所涉及的复杂度。具有智能无线设备运行时刻环境(设备运行时刻)来提供基本服务组以便对无线应用程序进行管理,作为一系列应用程序组件及其交互,能够简化开发强度并降低资源分配。将无线应用程序描述为组件组。使用原子数据组件,定义此应用程序类的数据域。使用原子消息组件,定义设备和服务器之间的通信。使用如XML等结构定义语言,在元数据中描述消息和数据组件。以消息/数据映射的形式,将消息和数据组件之间的关系嵌入XML定义中。典型地,输出消息得自于一些底层数据组件,而输入消息影响应用程序的当前状态(或数据表示)。
Description
技术领域
本申请大体上涉及网络上的服务对设备的通信。
背景技术
今天,所使用的终端设备的数量持续增加,如移动电话、具有无线通信能力的PDA、个人计算机、自助信息站和双向寻呼机等。运行在这些设备上的软件应用程序增加了其功能性。例如,移动电话可以包括检索城市范围的天气的应用程序,或者PDA可以包括允许用户购买杂货的应用程序。这些软件应用程序利用对网络的连接性,以便向用户提供及时有用的服务。但是,由于一些设备的受限资源,以及向设备传递大量数据的复杂性,开发针对多种设备的软件应用程序仍然是困难而耗时的任务。
目前,将设备配置为通过基于因特网的浏览器和/或本地应用程序与网络服务进行通信。浏览器具有适用于针对多种不同的设备进行跨平台操作的优点,但具有请求来自网络服务的页面(HTML中的屏幕定义)的缺点,其妨碍了包含在屏幕中的数据的持续性。浏览器的另一缺点在于,在运行时呈现屏幕,而这是资源密集的。本地应用程序具有针对设备平台的类型专门研发的优点,从而针对每次运行时刻的环境,提供了相对优化的应用程序。但是,本地应用程序具有以下缺点:非平台无关,必需开发相同应用程序的多个版本,以及尺寸相对较大,从而给设备的存储器资源造成了严重的负担。此外,应用程序开发商需要使用如Java和C++等编程语言的经验,以便构建这些硬编码本地应用程序。存在对能够运行在客户端设备上的应用程序的需要,其具有广泛的运行时刻环境,以及具有对设备资源的减少的消耗。
这里所公开的系统和方法提供了一种基于组件的应用程序环境,以排除或消除上述缺点中的至少一些。
发明内容
需要的是,通过降低对任何外在编码的需求以及降低在提供时由应用程序所利用的设备资源,来降低开发无线应用程序中所涉及的复杂度。具有智能无线设备运行时刻环境(设备运行时刻)来提供基本服务组以便对无线应用程序进行管理,作为一系列应用程序组件及其交互,能够简化开发强度并降低资源分配。将无线应用程序描述为组件组。使用原子数据组件,定义此应用程序类的数据域。使用原子消息组件,定义设备和服务器之间的通信。使用如XML等结构定义语言,在元数据中描述消息和数据组件。以消息/数据映射的形式,将消息和数据组件之间的关系嵌入XML定义中。典型地,输出消息得自于一些底层数据组件,而输入消息影响应用程序的当前状态(或数据表示)。因此,应当清楚的是,元数据定义映射关系最好位于数据和消息组件的表达之间。
根据本发明,提出了一种用于根据数据实例产生通信消息实例以便与设备上所执行的应用程序交互的方法,所述应用程序包括具有至少一个数据字段定义的数据组件和具有至少一个消息字段定义的消息组件,以结构定义语言表达所述组件定义,所述方法包括以下步骤:选择与消息实例相对应的消息组件;识别出现在消息组件中的至少一个惟一映射,如表示所述映射的惟一标识符所定义,所述映射用于规定消息组件和数据组件之间的关系;根据惟一映射标识符,选择由所述映射所映射的数据组件;获得与所映射的数据组件的数据字段定义相对应的数据实例字段值;如所映射的数据组件中所定义,根据数据字段定义的格式,产生消息实例的消息字段值,以包括数据实例字段值。
根据本发明的另一方面,提出了一种用于根据与设备上所执行的应用程序相对应的消息实例产生数据实例的方法,所述应用程序包括具有至少一个数据字段定义的数据组件和具有至少一个消息字段定义的消息组件,以结构定义语言表达所述组件定义,所述方法包括以下步骤:选择与消息实例相对应的消息组件;识别出现在消息组件中的至少一个惟一映射,如表示所述映射的惟一标识符所定义,所述映射用于规定消息组件和数据组件之间的关系;根据惟一映射标识符,选择由所述映射所映射的数据组件;从与所映射的数据组件相对应的消息实例中,获得消息实例字段值;如所映射的数据组件中所定义,根据数据字段定义的格式,将消息实例字段值分配给数据实例的数据字段值。
根据本发明的另一方面,提出了一种用于根据数据实例产生通信消息实例以便与设备上所执行的应用程序交互的方法,所述应用程序包括具有至少一个数据字段定义的数据组件和具有至少一个消息字段定义的消息组件,以结构定义语言表达所述组件定义,所述方法包括以下步骤:选择与数据实例相对应的数据组件;识别出现在数据组件中的惟一映射,如表示所述映射的惟一标识符所定义,所述映射用于规定消息组件和数据组件之间的关系;根据惟一映射标识符,选择由所述映射所映射的消息组件;获得与所映射的消息组件的消息字段定义相对应的数据实例字段值;如所映射的消息组件中所定义,根据数据字段定义的格式,产生消息实例的消息字段值,以包括数据实例字段值。
根据本发明的另一方面,提出了一种用于根据与设备上所执行的应用程序相对应的消息实例产生数据实例的方法,所述应用程序包括具有至少一个数据字段定义的数据组件和具有至少一个消息字段定义的消息组件,以结构定义语言表达所述组件定义,所述方法包括以下步骤:选择与消息实例相对应的消息组件;识别出现在数据组件中的惟一映射,如表示所述映射的惟一标识符所定义,所述映射用于规定消息组件和数据组件之间的关系;根据惟一映射标识符,选择由所述映射所映射的消息组件;从与所映射的消息组件的数据字段定义相对应的消息实例中,获得消息实例字段值;如所映射的消息组件中所定义,根据数据字段定义的格式,将消息实例字段值分配给数据实例的数据字段值。
根据本发明的另一方面,提出了一种用于根据数据实例产生通信消息实例以便与设备上所执行的应用程序交互的设备,所述应用程序包括具有至少一个数据字段定义的数据组件和具有至少一个消息字段定义的消息组件,以结构定义语言表达所述组件定义,所述方法包括以下步骤:装置,用于选择与消息实例相对应的消息组件;装置,用于识别出现在消息组件中的至少一个惟一映射,如表示所述映射的惟一标识符所定义,所述映射用于规定消息组件和数据组件之间的关系;装置,用于根据惟一映射标识符,选择由所述映射所映射的数据组件;装置,用于获得与所映射的数据组件的数据字段定义相对应的数据实例字段值;装置,用于如所映射的数据组件中所定义,根据数据字段定义的格式,产生消息实例的消息字段值,以包括数据实例字段值。
附图说明
通过以下仅作为实例而参照附图做出的详细描述,这些和其他特征将变得更加清楚,其中:
图1是网络系统的方框图;
图2是图1所示的普通设备的方框图;
图3是图2所示的设备的组件框架的方框图;
图4是图2所示的组件应用程序的方框图;
图5示出了用于图1所示的系统的代表应用程序封装和主机模型;
图6示出了实现图4所示的组件应用程序的示例方法;
图7示出了实现图4所示的组件应用程序的另一示例方法;
图8a和8b是针对图4所示的应用程序的消息级映射的示例;
图9a和9b是针对图4所示的应用程序的字段级映射的示例;
图10a和10b是针对图4所示的应用程序的复杂映射的示例;
图11利用图8a、b、9a、b和10a、b的消息映射证明了用于产生输出消息的算法;以及
图12利用图8a、b、9a、b和10a、b的消息映射说明了用于处理输入消息的算法。
具体实施方式
网络系统
参照图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的用户提供实用性的系统的示例。
为了满足适当的请求/相应消息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(其为组件应用程序的形式——参见图4和以下的描述)。此外,客户端运行时刻环境的特定功能可以包括但并不局限于对语言的支持、协调存储器分配、联网、I/O操作期间的数据管理、协调设备100的输出设备上的图形以及提供对面向核心对象的类的存取以及支持文件/库。由设备100实现的运行时刻环境的示例可以包括如但并不局限于微软提出的公共语言运行时间(CLR)和Sun微系统公司提出的Java运行时刻环境(JRE)。
优选地,设备100的终端运行时刻环境支持客户端应用程序302(参见图2)的驻留可执行版本的以下基本功能,例如但并不局限于:
为设备100提供通信能力,以便向网络服务106发送消息105,或者向通过网络104相连的任何其他普通计划(schema)定义服务发送消息105;
在设备100的输入设备上提供用户的数据输入能力,以便提供网络服务106的输出消息105的数据部分(去往服务的消息);
提供在输出设备上对网络服务106的响应消息105(输入消息)或不相关通知的数据表示或输出能力;
提供数据存储服务,以便在设备100的存储模块210(参见图2)中保持本地客户端数据;以及
提供脚本语言的执行环境,以便协调客户端应用程序302的应用程序组件400、402、404、406(参见图4)的操作。
参照图2、4和5,客户端运行时刻(例如,由组件框架206提供)加载包含在组件400、402、404、406定义中的元数据,并在设备100上构建应用程序302的可执行版本,例如通过应用程序容器300。存在例如但并不局限于两种客户端运行时刻的操作模型:基于模板的本地执行和基于元数据的执行。利用基于模板的本地执行模型,运行时刻使用本地代码,主持预先构建在设备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的定义进行操作,而并非对本地组件实体进行操作。
因此,本地客户端运行时刻环境为客户端应用程序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可以或者单独使用或者组合使用。
设备的组件框架
再次参考图2,设备100的框架206通过连接220与设备基础设施204相连。客户运行时刻环境设备100由框架206提供,并且优选地,能够根据元数据定义,产生、主持和执行客户端应用程序302(为组件应用程序的形式-如下所示)。因此,组件框架206为客户端应用程序302提供本地客户运行时刻环境,并且是与处理器208的设备100功能的接口,并且是设备基础设施204的相关操作系统的接口。框架206通过优选地在设备100上提供受控、安全和稳定的环境来提供运行时刻环境,其中组件应用程序302在诸如应用程序容器或执行环境300中执行。应用程序容器300可以被称为客户端应用程序302的智能主机容器,并且可以负责分析消息元数据(消息105的-参见图1),并负责更新存储模块210中的元数据的表示。
参考图3,组件框架206可以用于在终端运行时刻环境内执行客户端应用程序302(诸如网络服务客户端应用程序)并且能够通过请求/响应消息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。
再次参考图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的任意服务。
框架服务304可以包括但并不局限于通信服务306、表示服务208、持续服务310、存取服务312、提供服务314和实用服务316。通信服务306管理组件应用程序302与外部系统10之间的连接性,如与网络服务有关地、代表组件应用程序302(由通信服务306)发送/接收的消息105和关联数据。如以下参照图8a、b、9a、b、10a、b进一步描述的那样,通信服务306可以用于实现一系列的映射800(参见图8a)。当在用户接口202(参见图2)的输出设备上输出其时,表示服务308对组件应用程序302的表示进行管理。持续服务310允许组件应用程序302将数据存储在设备基础设施204的存储模块210(参见图2)中。应当意识到,持续服务310可以用于协调通过映射800与消息组件404相链接的数据组件400的数据实例的修改/创建(参见图8a)。存取服务312向组件应用程序302提供对出现在通信设备100上的其他软件应用程序的存取。提供服务314管理通信设备100上的软件应用程序的提供。应用程序提供可以包括请求和接收新的和已更新的组件应用程序302、配置组件应用程序302以便对能够通过网络104进行存取的服务进行存取、修改组件应用程序302和服务的配置、以及移除组件应用程序302和服务。实用服务316用于完成多种公共任务,如在串到不同格式的转换中执行数据处理。
应当意识到,通信设备100的框架服务304可以向组件应用程序302提供功能,可以包括上述服务。此外,框架服务304可以与应用程序302的组件400、402、404、406进行集成,来代替提供单独的框架服务304。在任何情况下,组件应用程序302都能够通过集成和/或单独的框架服务304,来使用通信设备100的功能。
示例组件应用程序
参考图2,在框架206的终端运行时刻环境内执行网络服务(例如)客户端应用程序302,并且该应用程序支持对由服务106提供的网络服务操作的访问(见图1)。WSDL和SOAP协议定义清楚地包含消息/数据模式。在WSDL网络服务定义中,利用消息和数据部分的概念来定义这些操作,所述消息和数据部分用于将网络服务客户端应用程序302定义为相关数据400和消息404组件的集合(见图4)。
参考图4,组件应用程序302的方框图包括数据组件400、表示组件402和消息组件404,由工作流组件406通过与应用程序容器300的通信214来协调。可以使用结构定义语言将组件400、402、404构造为元数据记录串,由表示资源的指定属性的多个预定元素构成,从而每一个元素可以具有一个或多个值。典型地,每一个元数据计划具有定义的特征,诸如但并不局限于:有限数量的元素、每一个元素的名称和每一个元素的含义。示例元数据计划包括诸如但并不局限于都柏林内核(DC)、英美编录规则(AACR2)、政府信息定位符服务(GILS)、编码归档描述(EAD)、IMS全球学术协会(IMS)、以及澳大利亚政府定位符服务(AGLS)。编码语法允许由设备基础设施204(见图2)来处理组件400、402、404的元数据,并且编码计划包括诸如但并不局限于XML、HTML、XHTML、XSML、RDF、机器可读编录(MARC)和多用途因特网邮件扩展(MIME)。
再次参考图4,数据组件400定义了由组件应用程序302使用的数据实体,包括以诸如本地代码或XML表示的应用程序数据。数据组件400可以描述的数据实体的示例是订单、用户和金融交易。数据组件400定义了描述数据对象800需要什么信息、以及以什么格式来表达该信息。例如,数据组件400可以定义诸如但并不局限于格式为数字的由针对订单的唯一标识符构成的订单、格式为串的项目列表、具有日期时间格式的创建订单的时间、格式为串的订单状态、以及具有与数据组件400的另一个的定义相一致的格式的进行定购的用户。由于通常根据网络服务106的编排规则(choreography rule)将数据部分(元素)从消息105传递到消息105,因此优选地,存在数据组件400的持续性。可以根据网络服务106的编排定义(如果可用)来动态产生数据组件400,或者由应用程序设计者根据复杂类型的定义和/或消息相关信息来定义该数据组件400。应该意识到,可以通过映射800将消息组件404链接到数据组件400(见图8a),如以下所描述的。
再次参照图4,消息组件404定义了由组件应用程序302所使用的消息的格式,以便与如网络服务106等外部系统进行通信,并包括以如本地代码或XML表示的消息数据。例如,消息组件404之一可以描述但并不局限于用于设置包括订单(order)的惟一标识符、订单的状态和与订单相关联的注释的订单的消息。按照结构定义语言写成的消息组件404可以惟一地表示(和映射到)WSDL消息,并可以在运行时动态地产生。因此,可以针对用于客户端应用程序消息105的组件定义、以及关联数据内容,根据用于表达网络服务接口的定义语言(如但并不局限于WSDL和BPEL)中的标准网络服务元数据,进行动态产生。在操作的上下文中定义网络服务消息105,并定义组件应用程序302定义中的消息组件404之间的相关。应当使用预定消息参数和/或通过单独的工作流组件406进行此相关,如稍后进一步定义的那样。
再次参考图4,表示组件402定义了由用户接口202所显示的应用程序302的外观和行为。当用户使用用户接口202与组件应用程序302进行交互时,所述表示组件402可以指定GUI屏幕和和控制以及要执行的动作。例如,当用户对编辑框进行打字输入或按下按钮时,表示组件402可以定义屏幕、标签、编辑框、按钮和菜单、以及要采用的动作。大多数网络服务消费者使用网络服务操作结果的可视表示,因此在能够显示用户接口屏幕的其设备100上提供运行时刻环境。
再次参照图4,组件应用程序302的工作流组件406定义在执行动作时所发生的处理,如由上述表示组件402所规定的动作,或者在消息105(参见图1)从系统10到达时所要执行的动作。由工作流组件406定义表示工作流和消息105处理。将工作流组件406按照编程语言或脚本语言(如但并不局限于ECMA脚本)写成一系列指令,并可以编辑为本地代码,并由应用程序容器300执行,如上所述。工作流组件406的实例可以将数值分配给数据,操纵屏幕,或发送消息105。工作流组件406支持消息105之间的相关,并将应用程序流定义为与其他组件400、402、404有关的操作的一组规则。针对给定的应用程序302,可以定义多个工作流组件。
ECMA(欧洲计算机制造商协会)脚本是标准的脚本语言,其中脚本被称为由另一程序而非计算机处理器解释或执行的指令序列。脚本语言的一些其他示例是Perl、Rexx、VBScript、JavaScript和Tcl/Tk。通常,这些脚本语言是指示性语言,用于操作、定制和使现有系统的设施自动化,例如设备100。在这样的系统中,有用的功能已经通过用户接口202(见图2)变得可用,并且脚本语言是将功能暴露给程序控制的机制。按照该方式,设备100用于提供完成脚本语言能力的对象和设施的主机运行时刻环境。
因此,参照图4,可以将客户端应用程序302定义为一组平台中立组件定义,即针对数据400和消息404组件,以及使用XML(或任何其他适当的结构定义语言)的表示组件402。可以使用ECMA脚本(或任何其他适当的平台中立脚本语言)来定义工作流组件406。当在设备100上提供组件应用程序302的组件400、402、404、406时,组件框架206的客户端运行时刻环境(参见图2)可以产生基于元定义的组件模板,如稍后所述。利用多种终端运行时刻环境,如XML或ECMA脚本等跨平台标准可以用于定义应用程序组件元数据,而替代预先构建组件应用程序302。这种延迟构建可以允许在以多种不同的设备100表示的更为广泛的终端系统环境下运行组件应用程序302的普通应用程序定义。
使用XML或其派生事物来表达数据400、消息404和表示402组件,以及使用ECMA脚本语言或其子集来表达工作流组件406能够允许应用程序开发商从任何特定的平台或环境中提取出网络服务客户端,并在理论上实现“开发一次任何地方运行”的应用程序。以下示例示出了如何使用如但并不局限于XML等的结构定义语言以及如但并不局限于ECMA脚本等平台中立脚本/编程语言、已定义组件来表达网络服务客户端应用程序302:
示例XML数据组件400
<data name=″Order″>
<item name=″orderId″type=″Number″key=“true″/>
<item name=“items″type=″String″array=″true″/>
<item name=″user″comp=″true″compName=″User″/>
<item name=″orderStatus″type=″String″/>
</data>
…
示例XML消息组件404
<msg name=“ordConfirmation″type=”response”
action=“mhConfirmat ion″>
<part name=“orderId″type=″String“/>
<part name=“status″type=″String“/>
</msg>
…
示例XML表示组件402
<screen name=″scrConfirmation″title=“Order Confirmation″
param=″Order″>
<layout type=″vertical″>
<widget type=″label″value=″Order Confirmation Result:″/>
<widget type=″edit″value=″@Order.orderStatus″/>
</layout>
…
<menu>
<item label=″Continue″navigate=″@scrMain″/>20
…
</menu>
</screen>
…
示例ECMA脚本工作流组件406
<actions>
<function name=”mhConfirmation”>
key=ordConfirmation.orderId;
order=Order.get(key);
order.orderStatus=ordConfirmation.status;
scrConfirmation.display(order);
</function>
…
</actions>
参照图4,如上所给出,可以看到,消息组件404中继针对消息105的输入和输出的必需数据。相应的数据组件400针对表示组件402在用户接口202(参见图2)上的随后表示,协调数据在设备100的存储模块210(参见图2)中的存储。工作流组件406协调数据400、表示402和消息404组件之间的数据传送。
此外,与硬编码本地应用程序相比,组件应用程序体系结构可以提供相对较小的应用程序下载尺寸(只由组件定义构成),以及有效的数据存储和持续模型。与针对浏览器应用程序操纵如HTML页面等再现表示相比,客户端运行时刻能够直接存储和更新原子数据实体。
组件应用程序模型的示例操作
参照图1、3和6,例如,操作600示出了当设备100接收602包含消息数据的响应消息105时,适当的工作流组件406根据适当的消息组件404解释604消息105的数据内容。然后,工作流组件406处理606数据内容,并将数据插入910相应的数据组件400中,以便随后存储612在存储模块210(参见图2)中。此外,如果需要,工作流组件406还将数据插入608适当的表示组件402中,以便随后在用户接口202(参见图2)上的显示614。
参照图1、3和7,操作700示出了针对动作的数据输入702,如按下按钮或选择菜单项,由用户通过用户接口202(参见图2)在用户接口元素上执行703。有关的工作流组件406根据适当的表示组件404,解释704输入数据,并创建由适当的数据组件400所定义的数据实体。然后,工作流组件406利用用户所提供的输入数据,填充710数据组件400,以便随后存储712在存储模块210(参见图2)中。此外,工作流组件406还将输入数据插入708适当的消息组件404中,以便随后在消息105中向网络服务发送714输入数据,作为数据实体,如消息组件404所定义。
数据和消息组件之间的映射
如以上参照图4所述,将无线应用程序302表达为消息404、数据400和组件402、406的集合,包括规定了这些组件如何交互的信息。使用如XML等结构定义语言表达应用程序302。应当注意,将消息404和数据400都表达为组件具有一定的相似性:
·通过惟一的名称定义每个组件400、404;以及
·每个组件400、404规定了由名称和声明类型所构成的一个或多个子字段。
实际上,开发商对组件400、404的表达可以是几乎相同的,而应用程序302的每个组件400、404的行为不同。因此,通过意识到通常根据一些底层数据元素产生消息105(参见图1)内容的事实,并清楚这些组件400、404的表达之间的相似性,便于将特定的映射800(参见图8a)引入消息组件404的表达中,如下所述。这些映射800实质上是对消息105的表达的快捷方式,规定如何获得与消息组件404有关的消息定义,以及在执行应用程序302期间,在运行时刻,消息组件如何动作。映射800是消息组件404定义和数据组件400定义之间的规定关系。对于消息组件404的表达,使用映射800可以减少描述组件404所需的元数据量。因此,映射800的使用对于描述应用程序302所需的“代码”量具有直接的作用。对于组件404在运行时刻如何操作,映射800规定了消息状态如何解析和影响已链接数据元素(由数据组件400描述)。在这一点上,规定映射800可以减少开发商在应用程序302中提供额外的特定消息处理代码的需要。
映射解析约定
再次参照图1和8a,应用程序和相应的服务304依赖于具有惟一标识符802(参见图8a)的映射解析约定或映射规则。此映射规则声明了附加到数据组件400上的任何映射800将精确地映射到每个映射数据类型的一个关键字字段804。此映射规则提供了映射800所附的数据实例的惟一标识和修改。映射规则声明了映射800对相应的消息组件404的消息内容与之链接的数据组件400的实例进行隔离。通过惟一标识符802(即关键字)来解析数据组件400实例。应当注意,此标识符802的组成可以是但并不局限于简单的主要关键字或由多于一个字段产生的组合关键字。将数据组件400的数据定义中的单一字段804(如组件名称)识别为表示此标识符802。映射解析约定为每个已链接数据组件400提供了映射800中精确地涉及一个主要关键字字段804。映射800的这种一对一特性提供了输入消息数据所应用的数据实例的惟一解析,如下所述。将特定的数据实例表示为作为对每个字段名称808的分配数据值的选定数据组件400。将消息实例806表示为作为通过映射800对包含消息字段的分配数据值的选定消息组件404。
描述了两类映射800:字段级映射901和消息级映射801。以下详细阐述如何表达消息404到数据400组件的映射800,并规定了用于惟一确定要将消息内容应用于何处的运行时刻解析约定。
消息级映射801
再次参照图8a,消息级映射801是从消息组件404直接到标称数据组件404定义的映射800,从而使消息806字段特性(消息实例)等同于所映射的数据组件。消息级映射801声明了消息实例806从数据组件400的已链接数据元素中得出其完整的规范。已链接数据组件400中所描述的全部字段将出现在消息实例806中,可以观察字段名称808、类型声明810和字段顺序。例如,当输入或输出消息实例806精确地复制由数据组件404的数据实例所表示的信息时,此类消息级映射801是方便的。参照图8b,示出了Order数据组件400与submitOrder消息组件404之间的样本消息级映射801。通过orderId主要关键字字段802的暗示链接来满足映射801的映射解析约定。在图8b中提供了此关系的样本结构定义语言描述(如XML)。从XML表达所清楚的是,通过引入此映射801可以减小应用程序302定义(参见图4)的尺寸,由于在已链接消息组件404中并未重复列出数据组件400的参量812。
字段级映射901
字段级映射901(参见图9a、9b)提供了从消息组件404定义的特定字段904到标称数据组件400定义的标称字段808的映射800。在需要映射800的更为灵活的设置的情况下,可以采用字段级映射901。在这种配置下,每个字段映射901规定了消息实例906的每个选定字段904和与数据组件400相对应的数据实例的字段808之间的链接。可以存在任意数量的这种字段映射901。字段映射901可以只涉及一个目标数据组件400(一对一链接)或者可以通过分离的字段映射901将多个数据组件400链接到消息实例906(一对多链接)。为了满足映射解析约定,针对消息组件404与之链接的每个数据组件400,包括关键字字段802。
参照图9a,一对一映射901设置包括对单一数据组件400的链接。对表示数据组件400的主要关键字802的字段进行一个字段映射901,从而将消息实例906与数据组件400的数据实例相链接。在组件404的选定消息字段904和组件400的相应数据字段808之间进行其他映射901。图9a示出了典型字段级映射901关系,其中将Part字段808的子集链接到priceReduction消息字段904。通过使链接901到被表示为Part的关键字字段802的partNo字段来满足映射解析约定。在图9b中给出了对这些关系的样本XML表达,其中以粗体示出了关键字字段映射901。应当意识到,消息实例906可以具有多于一个的消息字段904,每个均映射901到相同关键字802下的各个数据字段808(即,可以使用相同的关键字802,将消息组件404链接到数据组件400的两个或更多数据字段808)。
复杂映射1001
参照图10a和10b,复杂映射1000配置由对两个或更多个数据组件400的字段级映射901构成。与图8a、b所示的一对一映射情况一样,针对通过字段映射901的集合进行链接的每个数据组件400,提供不同的惟一主要关键字字段802。图10b示出了orderUpdate消息404和Order与Inventory数据组件400之间的关系的XML表示。对于所链接的两个数据组件400中的每一个,与关键字802的各个主要字段映射901是适当的;orderId字段关键字802针对Order 400,以及partNo字段关键字802针对Inventory 400。这满足映射解析约定。以粗体示出了这些主要关键字字段映射901。
考虑到图8a、b、9a、b和10a、b所示的示例,其他映射800设置是可能的。其示例包括但并不局限于扩展定义、消息原型和到达事件处理,如以下所述。扩展定义是通过定义额外的未映射字段904来扩展消息801或字段映射901设置的消息组件404。此扩展消息实例906可以扩展其定义,在存在映射801、901的情况下,通过添加并未映射到相应的数据组件400的字段904,而不是在消息组件定义404内完成其自身的规范。可以将这些字段904添加到具有一个或多个字段映射801、901的消息906,或者被映射801、901到相应的数据组件400的消息906。扩展定义可以为已映射消息906的规范提供额外的灵活性手段。消息原型可以定义为扩展另一消息组件404的声明定义的能力。这种机制具有与面向对象的遗留的类似效果;父消息906的所有声明字段904均可用于扩展消息906。对于映射801、901关系,扩展消息映射801、901可以超越父消息906上所声明的任何映射规范。对于消息到达事件处理,可以通过允许额外的处理代码与消息接收相关联,进一步增强映射机制。可以通过应用程序XML、通过消息组件404的规范来识别处理代码体。处理代码可以是具体实现在应用程序302中的脚本(如ECMA脚本)(如工作流组件406),或者可以识别由组件框架206(参见图2)的设备运行时刻环境所提供的标准本地变换。稍后还将对消息到达时间处理的操作进行进一步的讨论。
消息产生1100
参照图8a、b、9a、b和11,对于消息实例906的发起,消息到数据映射801、901定义了消息实例906将要承载的内容的源和格式。消息格式可以等同地得自于已链接数据组件400(消息映射801),或者可以通过多个数据组件400关系(字段级映射901)的聚集效果来定义。最后,一些消息字段可以承载其自身的声明(扩展定义)。为了产生规定了映射的类型801、901的原始消息实例906,向产生处理1100的输入提供所有从属的数据组件400实例。此外,字段904的扩展声明的使用暗示了所提供的消息实例906提供了必需的字段值。
参照图9a、b和11,利用消息声明Ms(对应于消息组件404),进行消息实例M(对应于消息实例806、906)的最终产生1114。在直接消息映射801的情况下,与输入数据实例d一起使用已映射数据组件定义Ds(对应于数据组件400),已确定最终消息实例M。在步骤1102中,获得消息组件Ms,并在步骤1104中,由设备运行时刻环境(例如通信服务306——参见图3)通过检查组件Ms以确定消息级映射801是否存在来进行决定。在肯定的情况下,如映射801所定义,获得1106元数据声明Ds。服务306从持续服务310输入1108数据实例d值,并写入1112消息实例Ms的消息字段904中。然后,通信服务306分析1110数据组件Ds,以确定是否存在与由映射801所暗示的消息实例M相关的任意数据字段808。在肯定的情况下,重复步骤1106、1108和1112,直到消息实例M中包括所有字段808。然后,在步骤1114,产生消息实例M。
在字段映射901的情况下,由通信服务306通过询问消息字段级映射901来提取出数据组件定义Dsp和次级数据字段声明Ds.fn。将来自输入数据实例di的适当字段值808(d.fn)添加到输出消息实例M中。在步骤1104中的否定情况下,在步骤1116,通信服务306确定是否存在字段映射901,如果不存在,则在步骤1114产生消息实例M的当前内容,如上所述。否则,分析1118消息字段904描述,并且其中字段映射901是适当的1120,并获得1124已映射数据组件类型,并从数据组件Ds中获得1126已映射字段类型声明,并从持续服务310获得1128与声明相对应的数据实例的数据值。然后,利用数据组件Ds的格式,将数值写入相应的消息字段904中。如果不存在其他映射901,则在步骤1114产生消息实例M。最后,在扩展定义的情况下,直接从Ms中获取1122字段格式,并可以预期,可以通过输入消息实例M得到字段值。应当意识到,可以提供上述消息和字段映射801、901的组合,尤其是在消息实例M中提供多于一类的映射的情况下(即,对与消息组件Ms相链接的多个组件Ds的多个映射801、901)。
消息处理1200
在消息实例M(参见图1)到达时,映射800具有两种效果之一:
·导致字段d.fn更新已映射数据组件实例d;以及
·导致由进一步的映射关系800所确定的具有字段d.fn的新数据组件实例d的创建。
借助于消息到数据映射解析约定来确定对其应用了消息字段值M.fn的数据实例d。通过取被映射到数据主要关键字字段802(参见图8a)的消息字段值M.fn,来解析数据实例d。根据所采用的映射800的类型,到达了设备100或网络服务106的消息M可以影响一个(消息映射801)或者一个或多个(字段映射901)数据实例d。为了找出和更新数据,与消息字段904(参见图9a)相对应的、被映射到数据主要关键字字段的消息字段值M.fn不是惟一的。已映射类型的数据实例d已经与主要关键字值802一起存在。通过此主要关键字值802来解析数据实例d,以及对此数据类型的所有其他映射800更新此数据实例d上的字段d.fn。应当注意,在采用字段映射901时,可以存在多于一个受到此处理影响的数据实例d。为了创建新数据,与消息字段相对应的、被映射到数据主要关键字字段的消息字段值M.fn是惟一的。结果,以关联主要关键字值802创建数据的新实例d。对此数据类型的所有随后的映射更新新创建数据实例d上的字段d.fn。与“找出并更新”一样,当使用字段映射901是,可以创建多于一个的数据实例d。对于数据解析和更新处理,在图12中示出了对到达消息M的处理和对现有/新数据实例d的作用。在数据解析和更新处理中并不包括扩展定义(未映射)字段。为了简单,以下并未示出检测此字段类型的情况。图12示出了针对通过映射800与消息实例m相关联的数据组件400的解析和更新处理。
在步骤1202,从消息组件Ms获得消息实例m的元数据定义,其中在步骤1204,将消息实例m与消息组件404相关。在步骤1206处的直接消息映射801的情况下,从映射信息获得1208数据组件规范Ds。确定1210Ds的主要关键字字段,并从m的相应字段中获得1212应用于此字段(m.fpk)的数值。在步骤1214,在存储器210(参见图2)中搜索实例d的当前版本。利用此数值,或者可以找到1216或者可以创建1218Ds的实例,从而产生d。在步骤1220,确定数据组件Ds的更多字段。如果是,分析1222相应字段的数据组件定义,并将m的剩余字段值应用于1224所解析的相应字段中的每一个,从而产生1226已更新/已创建数据实例d。
在步骤1228,在字段映射901的情况下,确定每个字段映射901的主要关键字。从映射信息901获得1230数据组件规范Ds。解析处理依赖于从被映射到数据组件主要字段的Ms(Ms.fpki)中确定所有字段级映射901。可以从Ms.fpki中确定字段映射901的组件数据类型,作为Dsi。使用1232来自针对此字段(m.fpki)的输入消息m的关键字值802,可以找出1236或创建1234数据实例Dsi,从而产生与Dsi相对应的数据实例di。在顺序选择1238每个字段di.fn时,解析和更新数据实例di。获得1240已映射消息字段Ms.fp,并获得1242相应的已映射字段定义Dsi.fn。被映射到901Dsi的字段的Ms的剩余字段具有其自身取自于消息实例字段m.fp的值,并使用Dsi的相应字段格式Dsi.fn应用于1244di.fn。继续此处理,直到对全部映射数据实例进行了更新为止,从而在步骤1226产生d。
如前所述,参照图1,需要的是与脚本或其他可执行单元(例如,工作流组件406——参见图4)相关联,以便在消息105到达时,对应用程序302执行额外的处理或变换。为此,消息组件定义404可以规定定制处理单元的地址(框架206的一部分),在此类消息105到达时,将涉及所述定制处理单元。除了执行脚本之外,智能设备运行时刻使得消息105及其所有字段值可用于处理单元的范围。此外,使通过映射800加以影响的全部数据实例di可用于处理单元的范围。
尽管这里已经对一个或多个典型系统和方法进行了公开,多种变体对本领域的普通技术人员而言是显而易见的,而且这种变体在本申请的范围之内。例如,尽管在所提供的示例中使用XML和ECMA脚本的子集,其他语言和语言变体可以用于定义组件应用程序302。此外,应当意识到,作为上述映射800和操作1100、1200的替代,可以将数据字段808的定义(参见图8)包含在消息组件404(参见图4)中。因此,消息实例的产生将基于包括在消息组件404定义中的数据字段定义,而数据组件400将被映射到800包括数据字段定义的相应消息组件404。因此,数据实例的产生将依赖于包含在映射消息组件404中的数据字段定义。
Claims (35)
1、一种用于根据数据实例产生通信消息实例以便与设备上所执行的组件应用程序交互的方法,所述组件应用程序包括具有至少一个数据字段定义的至少一个数据组件和具有至少一个消息字段定义的至少一个消息组件,所述消息组件的一个或多个包括到所述至少一个数据字段定义的特定一个或多个的映射,所述映射根据对消息和数据组件定义进行操作的运行时刻环境在运行时刻处所解析的映射解析约定,将特定消息实例的定义链接到特定一个或多个数据字段实例的定义,以结构定义语言表达所述组件定义,所述方法包括以下步骤:
选择与消息实例相对应的消息组件;
识别出现在消息组件中的至少一个惟一映射,如表示所述映射的惟一标识符所定义,每一个惟一映射用于根据映射解析约定来规定消息组件和特定数据组件之间的关系;
根据惟一映射标识符,选择由所述映射所映射的特定数据组件;
获得与所映射的数据组件的数据字段定义相对应的数据实例字段值;
如所映射的数据组件中所定义,根据数据字段定义的格式,产生消息实例的消息字段值,以包括数据实例字段值。
2、根据权利要求1所述的方法,其特征在于如所述映射所表示,在消息组件和数据组件之间共享数据组件的多个数据字段定义。
3、根据权利要求2所述的方法,其特征在于还包括以下步骤:如所述惟一标识符所表示,将多个数据字段定义链接到消息组件的相应消息字段。
4、根据权利要求2所述的方法,其特征在于还包括以下步骤:识别与消息组件相关的额外处理代码,以便有助于消息实例的处理。
5、根据权利要求4所述的方法,其特征在于所述处理代码规定了用于处理所述处理代码的提供单元的地址。
6、根据权利要求3所述的方法,其特征在于还包括以下步骤:识别与所述惟一标识符相关的额外的未映射消息字段定义。
7、根据权利要求2所述的方法,其特征在于所述映射是字段级映射,将第一消息字段定义链接到第一数据字段定义,以及将第二消息字段定义链接到第二数据字段定义。
8、根据权利要求7所述的方法,其特征在于消息组件的消息字段定义的数量小于所映射的数据组件的数据字段定义的数量。
9、根据权利要求7所述的方法,其特征在于通过第一惟一标识符,将所述第一消息字段定义映射到第一数据组件,以及通过第二惟一标识符,将所述第二消息字段定义映射到不同于所述第一数据组件的第二数据组件。
10、根据权利要求8所述的方法,其特征在于使用所述惟一标识符,将所述第一消息字段定义和所述第二消息字段定义映射到相同的数据组件。
11、根据权利要求2所述的方法,其特征在于所述结构定义语言是基于XML的。
12、根据权利要求11所述的方法,其特征在于所述应用程序是无线应用程序,以及所述设备是无线设备。
13、根据权利要求2所述的方法,其特征在于所述惟一标识符是简单主要关键字。
14、根据权利要求2所述的方法,其特征在于所述惟一标识符是合成关键字。
15、根据权利要求2所述的方法,其特征在于所述消息组件定义了与从属消息组件相关的父消息组件。
16、根据权利要求15所述的方法,其特征在于还包括以下步骤:从属消息组件的各个映射超越父消息组件的映射。
17、一种用于根据与设备上所执行的组件应用程序相对应的消息实例产生数据实例的方法,所述组件应用程序包括具有至少一个数据字段定义的至少一个数据组件和具有至少一个消息字段定义的至少一个消息组件,所述消息组件的一个或多个包括到所述至少一个数据字段定义的特定一个或多个的映射,所述映射根据对消息和数据组件定义进行操作的运行时刻环境在运行时刻处所解析的映射解析约定,将特定消息实例的定义链接到特定一个或多个数据字段实例的定义,以结构定义语言表达所述组件定义,所述方法包括以下步骤:
选择与消息实例相对应的消息组件;
识别出现在消息组件中的至少一个惟一映射,如表示所述映射的惟一标识符所定义,每一个惟一映射用于根据映射解析约定来规定消息组件和特定数据组件之间的关系;
根据惟一映射标识符,选择由所述映射所映射的特定数据组件;
从与所映射的数据组件相对应的消息实例中,获得消息实例字段值;
如所映射的数据组件中所定义,根据数据字段定义的格式,将消息实例字段值分配给数据实例的数据字段值。
18、根据权利要求17所述的方法,其特征在于如所述映射所表示,在消息组件和数据组件之间共享数据组件的多个数据字段定义。
19、根据权利要求18所述的方法,其特征在于还包括以下步骤:如所述惟一标识符所表示,将多个数据字段定义链接到消息组件的相应消息字段。
20、根据权利要求18所述的方法,其特征在于还包括以下步骤:识别与消息组件相关的额外处理代码,以便有助于消息实例的处理。
21、根据权利要求20所述的方法,其特征在于所述处理代码规定了用于处理所述处理代码的提供单元的地址。
22、根据权利要求19所述的方法,其特征在于还包括以下步骤:识别与所述惟一标识符相关的额外的未映射消息字段定义。
23、根据权利要求18所述的方法,其特征在于所述映射是字段级映射,将第一消息字段定义链接到第一数据字段定义,以及将第二消息字段定义链接到第二数据字段定义。
24、根据权利要求23所述的方法,其特征在于消息组件的消息字段定义的数量小于所映射的数据组件的数据字段定义的数量。
25、根据权利要求23所述的方法,其特征在于通过第一惟一标识符,将所述第一消息字段定义映射到第一数据组件,以及通过第二惟一标识符,将所述第二消息字段定义映射到不同于所述第一数据组件的第二数据组件。
26、根据权利要求24所述的方法,其特征在于使用所述惟一标识符,将所述第一消息字段定义和所述第二消息字段定义映射到相同的数据组件。
27、根据权利要求18所述的方法,其特征在于所述结构定义语言是基于XML的。
28、根据权利要求27所述的方法,其特征在于所述应用程序是无线应用程序,以及所述设备是无线设备。
29、根据权利要求16所述的方法,其特征在于所述惟一标识符是简单主要关键字。
30、根据权利要求18所述的方法,其特征在于所述惟一标识符是合成关键字。
31、根据权利要求18所述的方法,其特征在于所述消息组件定义了与从属消息组件相关的父消息组件。
32、根据权利要求31所述的方法,其特征在于还包括以下步骤:从属消息组件的各个映射超越父消息组件的映射。
33、一种用于根据数据实例产生通信消息实例以便与设备上所执行的组件应用程序交互的方法,所述组件应用程序包括具有至少一个消息字段定义和至少一个数据字段定义的至少一个数据组件和至少一个消息组件,所述数据组件的一个或多个包括到所述至少一个数据字段定义的特定一个或多个的映射,所述映射根据对消息和数据组件定义进行操作的运行时刻环境在运行时刻处所解析的映射解析约定,将特定数据实例的定义链接到所述至少一个消息组件的特定一个或多个数据字段实例的定义,以结构定义语言表达所述组件定义,所述方法包括以下步骤:
选择与数据实例相对应的数据组件;
识别出现在数据组件中的惟一映射,如表示所述映射的惟一标识符所定义,每一个惟一映射用于根据映射解析约定来规定特定消息组件和数据组件之间的关系;
根据惟一映射标识符,选择由所述映射所映射的特定消息组件;
获得与所映射的消息组件的数据字段定义相对应的数据实例字段值;
如所映射的消息组件中所定义,根据数据字段定义的格式,产生消息实例的消息字段值,以包括数据实例字段值。
34、一种用于根据与设备上所执行的组件应用程序相对应的消息实例产生数据实例的方法,所述组件应用程序包括具有至少一个消息字段定义和至少一个数据字段定义的至少一个数据组件和至少一个消息组件,所述数据组件的一个或多个包括到所述至少一个数据字段定义的特定一个或多个的映射,所述映射根据对消息和数据组件定义进行操作的运行时刻环境在运行时刻处所解析的映射解析约定,将特定数据实例的定义链接到所述至少一个消息组件的特定一个或多个数据字段实例的定义,以结构定义语言表达所述组件定义,所述方法包括以下步骤:
选择与数据实例相对应的数据组件;
识别出现在数据组件中的惟一映射,如表示所述映射的惟一标识符所定义,每一个惟一映射用于规定特定消息组件和数据组件之间的关系;
根据惟一映射标识符,基于映射解析约定来选择由所述映射所映射的特定消息组件;
从与所映射的消息组件的数据字段定义相对应的消息实例中,获得消息实例字段值;
如所映射的消息组件中所定义,根据数据字段定义的格式,将消息实例字段值分配给数据实例的数据字段值。
35、一种用于根据数据实例产生通信消息实例以便与设备上所执行的组件应用程序交互的设备,所述组件应用程序包括具有至少一个数据字段定义的至少一个数据组件和具有至少一个消息字段定义的至少一个消息组件,所述消息组件的一个或多个包括到所述至少一个数据字段定义的特定一个或多个的映射,所述映射根据对消息和数据组件定义进行操作的运行时刻环境在运行时刻处所解析的映射解析约定,将特定消息实例的定义链接到特定一个或多个数据字段实例的定义,以结构定义语言表达所述组件定义,所述设备包括:
装置,用于选择与消息实例相对应的消息组件;
装置,用于识别出现在消息组件中的至少一个惟一映射,如表示所述映射的惟一标识符所定义,每一个惟一映射用于根据映射解析约定来规定消息组件和特定数据组件之间的关系;
装置,用于根据惟一映射标识符,选择由所述映射所映射的数据组件;
装置,用于获得与所映射的数据组件的数据字段定义相对应的数据实例字段值;
装置,用于如所映射的数据组件中所定义,根据数据字段定义的格式,产生消息实例的消息字段值,以包括数据实例字段值。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP04251155.0 | 2004-02-27 | ||
EP04251155A EP1569109A1 (en) | 2004-02-27 | 2004-02-27 | A system and method for mapping between message and data domains using a metadata defined mapping |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1662011A CN1662011A (zh) | 2005-08-31 |
CN100596139C true CN100596139C (zh) | 2010-03-24 |
Family
ID=34746123
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200510052451A Active CN100596139C (zh) | 2004-02-27 | 2005-02-28 | 使用元数据定义映射来构建组件应用程序的系统和方法 |
Country Status (9)
Country | Link |
---|---|
EP (1) | EP1569109A1 (zh) |
JP (2) | JP2005285105A (zh) |
KR (1) | KR100752564B1 (zh) |
CN (1) | CN100596139C (zh) |
AU (1) | AU2005200849B2 (zh) |
CA (1) | CA2498539C (zh) |
MX (1) | MXPA05002273A (zh) |
SG (2) | SG114767A1 (zh) |
TW (1) | TWI313819B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7698383B2 (en) * | 2004-02-27 | 2010-04-13 | Research In Motion Limited | System and method for building component applications using metadata defined mapping between message and data domains |
EP1818813A1 (en) * | 2006-02-02 | 2007-08-15 | Research In Motion Limited | System and method and apparatus for using UML tools for defining web service bound component applications |
US20070239504A1 (en) * | 2006-04-11 | 2007-10-11 | Austin Paul R | Forms for business case management |
CN101840230B (zh) * | 2010-06-04 | 2012-02-01 | 浙江中控技术股份有限公司 | 一种监控和管理数据的方法及系统 |
US20140129934A1 (en) * | 2012-11-08 | 2014-05-08 | Microsoft Corporation | Dynamic model-based management tooling |
US10216504B2 (en) * | 2015-06-05 | 2019-02-26 | Oracle International Corporation | System and method for insulating a web user interface application from underlying technologies in an integration cloud service |
CN109725901B (zh) * | 2018-05-31 | 2024-03-29 | 中国平安人寿保险股份有限公司 | 前端代码的开发方法、装置、设备和计算机存储介质 |
CN112380477B (zh) * | 2020-11-13 | 2024-04-30 | 广东巴金斯科技有限公司 | 表单组件结构 |
US11782701B2 (en) * | 2021-06-01 | 2023-10-10 | Stephen Davidson | Software updater |
CN114610725B (zh) * | 2022-05-11 | 2022-08-16 | 成都九洲电子信息系统股份有限公司 | 一种计算机设备及其应用方法、存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6101556A (en) * | 1997-01-07 | 2000-08-08 | New Era Of Networks, Inc. | Method for content-based dynamic formatting for interoperation of computing and EDI systems |
US6356933B2 (en) | 1999-09-07 | 2002-03-12 | Citrix Systems, Inc. | Methods and apparatus for efficiently transmitting interactive application data between a client and a server using markup language |
WO2003044654A2 (en) * | 2001-11-15 | 2003-05-30 | Softplumbers S.A. | Method for developing and managing large-scale web user interfaces |
ES2326073T3 (es) * | 2001-11-23 | 2009-09-30 | Research In Motion Limited | Sistema y metodo para tratar o procesar documentos en lenguaje de marcaje extensible (xml). |
KR100467005B1 (ko) * | 2002-03-15 | 2005-01-24 | 김영신 | 무선 어플리케이션 서비스 프로바이더 시스템 |
US7290215B2 (en) * | 2002-06-03 | 2007-10-30 | Microsoft Corporation | Dynamic wizard interface system and method |
-
2004
- 2004-02-27 EP EP04251155A patent/EP1569109A1/en not_active Ceased
-
2005
- 2005-02-25 AU AU2005200849A patent/AU2005200849B2/en active Active
- 2005-02-25 TW TW094105897A patent/TWI313819B/zh active
- 2005-02-25 MX MXPA05002273A patent/MXPA05002273A/es active IP Right Grant
- 2005-02-25 CA CA2498539A patent/CA2498539C/en active Active
- 2005-02-28 SG SG200501185A patent/SG114767A1/en unknown
- 2005-02-28 KR KR1020050016468A patent/KR100752564B1/ko active IP Right Grant
- 2005-02-28 SG SG200706204-5A patent/SG135200A1/en unknown
- 2005-02-28 CN CN200510052451A patent/CN100596139C/zh active Active
- 2005-02-28 JP JP2005053699A patent/JP2005285105A/ja active Pending
-
2008
- 2008-08-20 JP JP2008211437A patent/JP2009054151A/ja active Pending
Non-Patent Citations (2)
Title |
---|
generating EDI message translations from visual specifications. John,Grundy.,etc.2001 IEEE. 2001 |
generating EDI message translations from visual specifications. John,Grundy,etc.2001 IEEE. 2001 * |
Also Published As
Publication number | Publication date |
---|---|
KR20060043231A (ko) | 2006-05-15 |
TWI313819B (en) | 2009-08-21 |
EP1569109A1 (en) | 2005-08-31 |
CA2498539C (en) | 2010-09-07 |
JP2009054151A (ja) | 2009-03-12 |
CA2498539A1 (en) | 2005-08-27 |
KR100752564B1 (ko) | 2007-08-29 |
JP2005285105A (ja) | 2005-10-13 |
MXPA05002273A (es) | 2008-11-24 |
TW200602891A (en) | 2006-01-16 |
CN1662011A (zh) | 2005-08-31 |
SG135200A1 (en) | 2007-09-28 |
AU2005200849A1 (en) | 2005-09-15 |
AU2005200849B2 (en) | 2008-12-04 |
SG114767A1 (en) | 2005-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100424637C (zh) | 用于构建无线应用程序的系统和方法 | |
CN100596139C (zh) | 使用元数据定义映射来构建组件应用程序的系统和方法 | |
US7698383B2 (en) | System and method for building component applications using metadata defined mapping between message and data domains | |
US8108830B2 (en) | System and method for building wireless applications with intelligent mapping between user interface and data components | |
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' applications into component based applications for devices | |
US7676786B2 (en) | System and method and apparatus for using UML tools for defining web service bound component applications | |
US7035944B2 (en) | Programmatic management of software resources in a content framework environment | |
CN100429620C (zh) | 用于将开发模式应用于基于组件的应用程序的系统和方法 | |
CN100435094C (zh) | 为组件应用程序建立混合模式执行环境的系统和方法 | |
US20030055868A1 (en) | Building distributed software services as aggregations of other services | |
CN100444108C (zh) | 使用ui储存库的公共ui组件执行无线应用程序的系统和方法 | |
CN101185303A (zh) | 创建用于绑定应用程序与关联后端服务器之间的消息的映射文档的系统及方法 | |
CA2538561C (en) | System and method for conversion of web services applications into component based applications for devices | |
CA2538531C (en) | System and method for applying workflow of generic services to component based applications for devices | |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20240603 Address after: Ai Erlandubailin Patentee after: Maliki Innovation Co.,Ltd. Country or region after: Ireland Address before: Voight, Ontario, Canada Patentee before: RESEARCH IN MOTION Ltd. Country or region before: Canada |