[go: up one dir, main page]

CN1757015B - 用于建立和执行平台-中性的普通服务客户应用程序的系统和方法 - Google Patents

用于建立和执行平台-中性的普通服务客户应用程序的系统和方法 Download PDF

Info

Publication number
CN1757015B
CN1757015B CN200380109992.1A CN200380109992A CN1757015B CN 1757015 B CN1757015 B CN 1757015B CN 200380109992 A CN200380109992 A CN 200380109992A CN 1757015 B CN1757015 B CN 1757015B
Authority
CN
China
Prior art keywords
data
end device
message
component
service
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
CN200380109992.1A
Other languages
English (en)
Other versions
CN1757015A (zh
Inventor
迈克尔·申菲尔德
比埃拉·比布尔
布伦杜沙·L·弗里奇
布赖恩·R·戈林
罗伯特·克兰
卡缅·B·维塔诺夫
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
Priority claimed from PCT/CA2003/001976 external-priority patent/WO2004059938A2/en
Publication of CN1757015A publication Critical patent/CN1757015A/zh
Application granted granted Critical
Publication of CN1757015B publication Critical patent/CN1757015B/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

提供一种构建组件应用程序的系统和方法。在终端装置上执行组件应用程序,通过网络和互联网与一个基于规划的服务通信。该组件应用程序包括数据组件、显示组件,以及消息组件,这些组件以例如XML代码的结构化定义语言写成。该组件应用程序还包括工作流组件,能够被写成例如在ECMAScript的一个子集中的一系列指令,并且被嵌入在XML代码中。

Description

用于建立和执行平台-中性的普通服务客户应用程序的系统和方法
技术领域
本申请涉及经过网络对一个装置的服务通信。
背景技术
当今使用的终端设备的数目不断增加,例如移动电话、具有无线通信能力的PDA、个人计算机、自助式音乐台和双向寻呼机。运行在这些装置上的软件应用程序增加了它们的实用性。例如,一部移动电话可以包括检取用于一个城市范围的气候的应用程序,或一个PDA可以包括使得使用者购置杂货的应用程序。这些软件应用程序利用对于网络的连接来为使用者提供及时和有用的服务。但是,由于某些装置的局限资源以及对装置提供大量数据的复杂性,开发用于各种装置的软件应用程序依然是艰难和耗时的任务。
当前,装置被配置用于通过基于互联网的浏览器和/或本机应用程序与Web服务通信。浏览器具有能适于在跨平台基础上针对各种不同装置操作的优点,但缺点是从网络服务请求页面(HTML屏幕清晰度),这种缺点将妨碍包括在该屏幕中的数据的持续性。浏览器的另一缺点是该屏幕在运行时间呈现,这将会是资源的严重占用。本机应用程序具有针对装置平台的类型专门开发的优点,从而提供针对每一个运行环境的相对优化的应用程序。但是,本机应用程序具有的缺点是它不是独立的平台,因而需要开发同一个应用程序的多个版本,以及在规模上相对大,因而重耗了装置的存储器资源。而且,应用程序的开发人需要具有例如Java和C++的程序设计语言的经验来构建这些硬编码的本机应用程序。因此需要具有对于能运行在具有各种运行环境的客户机上、又具有降低的装置资源消耗的应用程序。
在此公开的系统和方法提供了一个基于组件的应用环境,以便克服或至少在一定程度上减轻上述的缺点。
发明内容
当前的应用程序不能适应于运行在具有各种运行环境的客户机上,并且会不希望地消耗太多的装置资源。浏览器是一个应用程序,具有从一Web服务请求页面(HTML的屏幕清晰度)的一个缺点,这种缺点妨碍了该屏幕中包括的数据的持续性。浏览器的另一缺点是该屏幕在运行时间呈现,这将会是资源的严重占用。本机应用程序是当前应用程序的另一实例,具有的缺点是它不是独立的操作平台,从而需要开发同一个应用程序的多个版本,以及在规模上相对大,从而重耗了装置的存储器资源。与当前应用程序相反,提供一个系统,通过组件应用程序建立并执行平台中性类属规划限定的服务。该系统包括在装置上执行的组件应用程序,这些组件应用程序通过例如互联网的网络与网络服务通信。该组件应用程序包括一个或多个数据组件、显示组件、和/或消息组件,这些组件应用程序以例如XML代码的结构化定义语言写成。该组件应用程序可以进一步包括工作流组件,该工作流组件包括一系列例如以ECMAScript子集写成的指令,并且在某些实施方案中可被嵌入在XML代码中。还提供了一种建造组件应用程序的方法。该方法包括步骤:生成数据组件、产生显示组件、以及创建消息组件。该数据组件、显示组件和消息组件可以用诸如XML的一种结构化定义语言写成。本方法还包括步骤:把该数据组件、显示组件和消息组件与工作流组件系在一起写成例如ECMAScript或ECMAScript的一个子集的脚本语言。
本发明提供了一种方法,借助终端装置而经过网络与规划限定的服务进行交互。该方法包括步骤:接收用于在服务和装置之间建立通信的一个请求网络消息;响应该请求网络消息发送包括多个组件的一个组件应用程序,第一组组件具有以结构化定义语言表示的描述符而第二组组件被表示成一系列指令,这些组件被配置用于借助装置的运行时环境进行提供,以便产生将该装置配置作为服务的客户机的该组件应用程序的一个可执行版本;其中该可执行版本的执行提供用于经过网络在服务和装置之间的随后的信息交换。
进一步公开了一种终端装置,被配置用于经过网络使用包括多个组件的一个组件应用程序的可执行版本与基于规划的服务进行交互。该装置包括:一个用于操作该装置的装置基础结构,该装置基础结构包括用于执行该可执行版本的一个处理器和相关存储器;耦合到该装置基础结构的一个用户接口,该用户接口具有被配置用于与该可执行版本通信的一个输入装置和一个输出装置、耦合到该装置基础结构并且被配置用于与该网络通信的一种网络连接接口;以及一个运行时环境,用于协调该可执行版本的执行,以便把该装置配置作为服务的客户机,该运行时环境被配置用于与具有以结构化定义语言表示的描述符的第一组组件以及表示成一系列指令的第二组组件交互;其中该可执行版本的执行提供用于经过网络在服务和装置之间的随后的信息交换。
还提供一种计算机程序产品,用于配置一个终端装置,以便使用包括多个组件的一个组件应用程序的可执行版本而经过网络与一个基于规划的服务进行交互。这种计算机程序产品包括:一个计算机可读介质;存储在该计算机可读介质上的运行时环境模块,用于协调该可执行版本的执行,以便把该装置配置作为服务的客户机,该运行时环境被配置用于与具有以结构化定义语言表示的描述符的第一组组件以及表示成一系列指令的第二组组件交互;其中该可执行版本的执行提供用于经过网络在服务和装置之间的随后的信息交换。
另外公开了一个服务器,被配置用于提供基于规划的服务,以便经过网络与一个终端装置进行交互。该服务器包括:一个网络接口,用于接收一个网络请求消息,以便在该服务和该装置之间建立通信;耦合到该网络接口用于响应该请求网络消息进行发送的一个组件应用程序,该组件应用程序包括多个组件,第一组组件具有以一种结构化定义语言表示的描述符,而第二组组件被表示成一系列指令,这些组件被配置用于借助该装置的运行时环境进行提供,以便产生把该装置配置作为服务的客户机的该组件应用程序的一个可执行版本;其中该可执行版本的执行提供用于经过网络在服务和装置之间的随后的信息交换。
还公开了一种终端装置,被配置用于经过网络使用包括多个组件的一个组件应用程序的可执行版本与基于规划的服务进行交互。该装置包括:一个基础结构装置,用于操作该装置来执行该可执行版本;一个用户接口装置,耦合到该基础结构装置而配置来用于与该可执行版本通信;一个网络接口,耦合到该装置基础结构并且被配置用于与该网络通信;以及一个运行时间装置,用于协调该可执行版本的执行,以便把该装置配置作为服务的客户机,该运行时间装置被配置用于与具有以结构化定义语言表示的描述符的第一组组件以及表示成一系列指令的第二组组件交互;其中该可执行版本的执行提供用于经过网络在服务和装置之间的随后的信息交换。
附图说明
在下面参考附图作出的详细描述中,这些和其它特点将变得显见,其中:
图1是一个网络系统的框图;
图2是图1的一个类属终端装置的方框图;
图3是图2装置的组件框架结构的框图;
图4是图2的一个组件应用程序的方框图;
图4a示出用于图1系统的代表性的应用程序包和主控模型的示意图;
图4b是图1装置的客户机运行时间的一模型;
图5是表示建立图4的无线组件应用程序的一个方法的流程图;
图6是用于在图1的装置和规划限定的服务之间进行通信的一个方法的流程图;
图7示出实现图4的组件应用程序的一个实例方法;
图8示出实现图4的组件应用程序的另外一个实例方法;和
图9是图1装置的另一示例的框图。
具体的实施方式
网络系统
参考图1,网络系统10包括多个类属的终端装置100,经由一个耦合的广域网(WAN)104,例如但不局限于互联网络与由网络服务器106提供的一个或者多个类属的规划限定的服务交互。这些类属的终端设备100可以是但不局限于例如个人计算机116、无线装置101、PDA、自助信息台等。由服务器106提供的普通服务可以是Web服务和/或其它服务,例如但不局限于SQL数据库、基于IDL的CORBA和RMI/IIOP系统、传统数据库、J2EE、SAP RFC和COM/DCOM组件。另外,该系统10还可以具有网关服务器112,用于将桌面终端116经由局域网(LAN)114连接到服务器106。而且,系统10还具有用于把无线装置101连接到WAN 104的一个无线网络102。可以认识到,其它装置和计算机(没示出)可以经过除图1所示以外的WAN 104和相关网络连接到Web服务器106。为了简化起见,下文中把类属的终端设备100、无线装置101和个人计算机116称作装置100。为了简单起见,选择Web服务用于系统10的下列描述。但是可以认识到,如果期望的话,其它类属规划限定的服务可以替代该Web服务。而且为了简化起见,系统10的网络102、104、112此后将称为网络104。
再参考图1,当与服务器106的Web服务通信时,装置100分别地发送与接收请求/响应消息105。通过使用消息标题信息形式的请求/响应消息105以及相关的数据内容,该装置100能操作为该Web服务的Web客户机,例如从在线商人请求和接收产品报价和有效性。Web服务是系统的一个实例,客户应用程序302(参见图2)利用该服务在通信装置100上通过无线网络104交互,以便提供工具给通信装置100的用户。在通信装置100和Web服务之间发送的消息105能够完成(traverse)一个消息映射服务(没示出),该消息映射服务在由装置100和Web服务使用的不同格式之间转换该信息105。
为了满足适当的请求/响应消息105,Web服务器106能够通过各种协议(例如但不局限于HTTP和组件API)与一个应用服务器110通信,以便向已经提供在装置100上的客户应用程序302(参见图2)表明相关的商业逻辑(方法)。该应用服务器110也可以包括Web服务器106软件,使得该Web服务器106能够被考虑是该应用服务器110的一个子集。类似于调用关于一个对象的一种方法(或一个功能),装置100的应用程序302能够使用应用服务器110的商业逻辑。应该认识到,能够通过该消息105而经由网络104把涉及应用服务器110的客户应用程序302直接下载/上载到装置100。应该进一步认识到,装置100可以通过网络104与一个或多个Web服务器106和相关的应用服务器110通信。也应该认识到,装置100能够直接耦合到应用服务器110,从而按照期望旁路该Web服务器106。
服务器环境
参考图1,Web服务器106提供信息消息105,该信息消息105在装置100上由该客户应用程序302(参见图2)使用。另外或作为一种选择,Web服务器106可以接收并且使用由在该装置100上执行的该客户应用程序302提供的信息消息105,或代表在装置100上执行的客户应用程序302来执行任务。Web服务可被定义为Web服务器106的一个软件服务,该Web服务可以实现例如使用注册在通用发现描述和集成(UDDI)中的Web服务描述语言(WSDL)表示的一个接口,并且能够通过消息105与通过例如简单对象访问协议(SOAP)的适当协议在互联网络104上表述的客户装置100通信。在某些实施方案中,SOAP是定义用于该消息105的XML格式的一个规范,包括以SOAP组件包装的一个良好形成的XML片段。SOAP的其它部分规定了如何把程序数据表示为XML以及如何使用SOAP实现远程处理过程调用(RPC)。这些可选的SOAP部分被用于实现RPC形式的应用程序,其中从该客户装置100发送包括一个可调用功能以及要传送到该功能的参数的SOAP请求消息105,并且该服务器106利用该执行的功能的结果应答该响应消息105。SOAP还支持文件形式应用程序,其中该SOAP信息105是围绕XML文件的一个封装函数。SOAP另一个可选部分定义HTTP约束(即标题),其中某些SOAP实施方案支持MSMQ、MQ系列、SMTP或TCP/IP转送协议。另外,该Web服务可以使用其它已知通信协议、消息105格式,并且该接口可以用不同于上述的web服务语言来表达。
通常,Web服务的出现是作为基于传统浏览器的一个替换和客户机-服务器TCP/IP连接的基础结构和应用程序。本来开始作为一种类属的机器-机器(M2M)通信协议,Web服务正在变成一种用于任何服务-服务(S2S)或服务-用户(S2C)通信的标准。根据一组标准协议(例如WSDL、SOAP、UDDI),Web服务能够提供例如基于XML的平台中性(platform neutral)通信渠道,能够支持同步和/或异步传递消息105。图1的系统10最好与该S2C模型相关,并且涉及从某些普通终端装置100操作Web服务的用户。因此,装置100的用户经过网络104利用由服务器106提供的服务。
客户机环境
参考图2,组件应用程序302通过网络104发送并且装入该装置100的装置基础结构204的存储器模块210。另外,组件应用程序302可以经由一个串行连接、USB连接、或例如IR、802.11(x)BluetoothTM的短程无线通信系统(没示出)加载。一旦加载到装置100,该组件应用程序302可由装置100上的组件框架结构206执行,组件框架结构206把组件应用程序302转换成本机代码,由该装置基础结构204中的处理器208执行该本机代码。另外,该组件应用程序302可被作为本机代码执行,或由装置100上的其它软件模块或操作系统编译。在任何情况下,该组件应用程序都在由装置100提供的终端运行时环境中运行。
再参考图1,由装置100提供的客户机运行时环境能够被配置来使装置100作为Web服务的Web客户机(Web服务器106的Web客户机)操作。应该认识到,客户机运行时环境还可以使得装置100作为由服务器106提供的任意其它普通规划限定服务的客户机。装置100的客户机运行时环境最好能够在装置100上生成、主控和执行该客户应用程序302(该组件应用程序是组件应用程序的形式,参见图4和下面的描述)。另外,该客户机运行时环境的具体功能可以包括但不局限于例如对于语言、协调存储分配、连网、在I/O操作过程中的数据管理、在装置100的输出装置上的坐标制图以及提供对定向分类和支援文件/库的核心对象的存取的支持。由装置100实现的运行时环境的实例可以包括例如但不局限于由微软(Microsoft)公司提供的公用语言运行时间(CLR)和Sun Microsystems公司提供的Java运行时环境(JRE)。
装置100的终端运行时环境最好支持用于驻留客户机应用302(参见图2)的可执行版本的下列基本功能,例如但不局限于:
提供把消息105发送到Web服务器106的Web服务的通信能力、或提供把消息105发送到经由网络104连接到该装置100的任何其它普通规划限定的服务的通信能力;
由在装置100的一个输入装置上的用户提供数据输入的能力,以便提供用于该Web服务器106的Web服务的出行消息105(到该服务的消息)的数据部分;
提供数据表示或提供用于Web服务的响应消息105(输入消息)或在输出装置上的Web服务器106的不相关提示的输出能力;
提供数据存储器服务,以便在装置100的存储器模块210(参见图2)中保持本机客户机数据;以及
提供用于一种脚本语言的执行环境,以便协调客户应用程序302的应用程序组件400、402、404、406(参见图4)的操作。
参考图2、4和4a,客户机运行时间(例如由组件结构框架结构206提供)加载包含在组件400、402、404、406定义中的元数据,并且经由一个应用程序容器300构建在该装置100上的应用程序302的可执行版本。例如,有两种用于客户机运行时间的操作模型:根据模板的本机执行,及基于元数据执行。利用基于模板的本机执行模型,运行时间主控该数据、消息、及使用本机代码预先建立在装置100上的屏幕模板500。当加载应用程序302定义时,由组件框架结构206提供的客户机环境以来自该组件400、402、404的元数据限定参数填充该模板500,并且以本机格式构建可执行客户应用程序302。工作流组件406的工作流脚本(例如ECMAScript)可以被转换成本机代码,或使用对于本机代码重定向器504适当的脚本编译器502(例如ECMAScript翻译程序)执行,其中该重定向器504把对于脚本语言的调用编译成通过一种本机运行时间引擎506对于本机组件的操作。随着基于元数据执行,组件框架结构206的运行时环境或是保持以在执行时间期间解析的XML(例如)中的组件400、402、404、406定义,或是使用XML(例如)节点的本机表达。在执行过程中,本机运行时间引擎506操作该组件400、402、404、406的定义,而不是操作本机组件实体。应该认识到,该基于模板的方案能有超过基于元数据执行的更高的能效,但要求更复杂的执行环境和更多的存储器资源。
因此,该本机客户机终端运行时环境为客户应用程序302提供了对装置100的装置基础结构204的处理器208和相关操作系统的功能的一个接口。该运行时环境最好在装置100上提供一个受控的、安全的和稳定的环境,在该环境中执行组件应用程序302。该运行时环境提供该组件400、402、404、406的定义,以便创建具体针对装置100的每一个分别装置基础结构204的实际Web客户机。应该认识到,为了简化下列描述,此后只将把由组件框架结构206提供的客户机运行时环境参考作为一个实例。
通信装置
再一次参考图2,装置100是例如但不局限于移动电话、PDA、双向寻呼机或双模式通信装置(参见图9)。装置100包括网络连接接口200,例如经连接218耦合到装置基础结构204的无线收发机或有线网接口卡或调制解调器。连接接口200可在装置100的操作过程中连接到网络104,例如可通过无线链路(例如RF、IR等)连接到无线网络102,这将使得设备100能够经网络104与外部系统(例如Web服务器106)彼此通信,并且协调在客户应用程序302和服务器106、110之间的请求/响应消息105(参见图1)。网络104支持在连接到网络104的装置和外部系统之间在请求/响应消息105中的数据发送。该网络104还可以支持对于在装置100和网络104外部的装置之间的电话呼叫的语音通信。无线网络102能使用一种无线数据传输协议,例如但不局限于Data TAC、GPRS或CDMA协议。
再参考图2,装置100还具有通过连接222耦合到装置基础结构204的一个用户接口202,以便与用户(没示出)交互。用户接口202包括一个或者多个用户输入装置,例如但不局限于QWERTY键盘、辅助键盘、轨迹轮、输入笔、鼠标器、话筒,以及用户输出装置,例如LCD屏幕显示器和/或扬声器。如果该屏幕是触摸敏感的,则该显示器还可以用作通过装置基础结构204控制的用户输入装置。当客户应用程序302采用该请求/响应消息105时,装置100的用户采用该用户接口202来经过系统10(参见图1)协调该请求/响应消息105,下面将进一步描述。
再参考图2,通过装置基础结构204发起装置100的操作。装置基础结构204包括计算机处理器208和相关存储器模块210。通过执行由操作系统以及放置在存储器模块210中的客户应用程序302提供的相关指令,计算机处理器208控制通信装置100的网络接口200、用户接口202和组件框架结构206的操作。应该进一步认识到,装置基础结构204可以包括耦合到处理器208的计算机可读存储介质212,用于把指令提供到处理器和/或将客户应用程序302加载/更新在存储器模块210中。计算机可读介质212可以包括硬件和/或软件,只举例来说比如有磁盘、磁带、光可读介质,例如CD/DVD、ROMS以及存储卡。在每种情况下,该计算机可读介质212都可以采取小盘、软盘、盒带、硬盘驱动器、固态存储卡、或提供在存储器模块210中的RAM的形式。应该指出,上述列出的实例计算机可读介质212能被单独或组合使用。
装置的组件框架结构
再参考图2,装置100的组件框架结构206由连接220被耦合到装置基础结构204。由该组件框架结构206给该装置100提供该客户机运行时环境,并且最好能够产生、主控及执行来自元数据定义的客户应用程序302(该客户应用程序是组件应用程序的形式--见下面描述)。因此,组件框架结构206提供用于该客户应用程序302的本机客户机运行时环境,并且是对于装置100的装置基础结构204的处理器208和相关操作系统的功能的一个接口。该组件框架结构206最好是通过在装置100上提供一个受控、安全和稳定的环境来提供该运行时环境,其中以一个应用程序容器300执行该组件应用程序302。该应用程序容器300可以称为用于该客户应用程序302的一个智能主机容器,并且能够负责用于分析消息元数据(消息105--参见图1)并且用于更新在存储器模块210中的元数据的表示。
参考图3,该组件框架结构206可用于执行在终端运行时环境之内的客户应用程序302(比如Web服务客户应用程序),并且能通过该请求/响应消息105支持对该Web服务器106的Web服务操作以及相关应用服务器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、116的分别装置基础结构204的每一个的实际Web客户机。该应用程序容器能够按照每一基于模板的本机执行和如上所述的基于元数据执行模型来提供组件应用程序302。
再参考图3,在某些服务不被包括作为400、402、404、406(参见图4)的一部分的情况下,或在被接收按照分离的组件(没示出)作为组件应用程序302一部分的情况下,该组件框架结构206还可以将框架结构服务304(一个普通服务的标准设置)提供到该客户应用程序302。应用程序302具有与应用程序容器300的通信214,按照需要协调与框架结构服务304的通信216。组件框架结构206的框架结构服务304协调通过该连接220与该装置基础结构204的通信。因此,由该组件框架结构206把对于装置基础结构204、用户接口202和网络接口200的接入提供到客户应用程序302。此外,该客户应用程序302可以是适当抗病毒的客户应用程序,因为该应用程序容器300能够控制并且使该组件框架结构206对于该客户应用程序302的往返通信214、216的全部接入生效。应该认识到,该装置基础结构204的操作系统的一部分(参见图2)能够表示该应用程序容器300。
再参考图3,下面描述的应用程序302的组件400、402、404、406(参见图4)一旦被提供在通信装置100、116上,就由该组件框架结构206的应用程序容器300给予对框架结构服务304的预定集合的接入。框架结构服务304例如而非限定地包括:通信服务306、显示服务308、持续服务310、接入服务312、提供服务314和实用工具服务316。通信服务306管理在组件应用程序302和外部系统10之间的连接性,例如涉及代表组件应用程序302的web服务(通过通信服务306)的消息105和相关数据的发送/接收。显示服务308管理当组件应用程序被输出在用户接口202的输出装置上时的显示(参见图2)。持续服务310使得组件应用程序302在该装置基础结构204的存储器模块210(参见图2)中存储数据。接入服务312提供该组件应用程序302对于出现在该通信装置100、116上的其它软件应用程序的接入。提供服务314管理在通信装置100、116上的软件应用程序的提供。应用程序提供可以包括:请求并接收新的及更新的组件应用程序302,配置用于接入到可通过网络104接入的服务的组件应用程序302,修改组件应用程序302和服务的配置,并且删除组件应用程序302和服务。工具服务316被用于实现各种常见任务,例如执行字串对不同格式的变换的数据处理。
应该认识到,通信装置100的框架结构服务304可以把包括上述服务的功能提供到组件应用程序302。结果是,组件应用程序302可以具有对于通信装置100的功能的接入而不必实现该功能。装置100的组件框架结构206(参见图2)最好只有实现存在于框架结构服务304中的这些服务的代码的一个拷贝,与出现的组件应用程序302的数量无关,从而最小化该框架结构服务304的代码复制。而且,不同于其中全部服务请求或服务API调用都由开发者以本机代码编程的普通应用程序,该组件定义400、402、404及工作流406将使用例如XML的一个结构化定义语言和例如ECMAScript的指令集来描述服务请求。该结构化定义语言提供该应用程序的用户接口202、持续的存储及与Web服务的通信的一种非过程的定义,同时该指令提供该程序上的组件连接。该客户机运行时环境把这些定义400、402、404解释成对于支持服务的本机调用。
组件应用程序
参考图2,例如该Web服务客户应用程序302被在该组件框架结构206的终端运行时环境中执行,并且支持对于由服务器106提供的Web服务操作的接入(参见图1)。WSDL和SOAP协议定义清楚地隐含一个消息/数据模式。在一个WSDLWeb服务定义中,使用消息及数据部分的概念定义该操作,该操作把该Web服务客户应用程序302限定作为一组相关数据组件400及消息组件404(参见图4)。
参考图4,组件应用程序302的框图包括数据组件400、显示组件402和消息组件404,通过工作流组件406与应用程序容器300的通信214协调这些组件。该结构化定义语言可用于把组件400、402、404构造为一系列元数据记录,该元数据记录包括表示一个资源的具体属性的若干预定义单元,使得每一单元能够具有一个或多个值。每一元数据规划通常具有定义的特征,例如但不局限于:一个受限的单元数,每一单元的名称,及针对每一单元的含意。示例的元数据规划包括例如但不局限于都柏林(Dublin)核心(DC)、英-美分类规则(AACR2)、政府信息定位服务(GES)、编码档案描述(EAD)、IMS全球学术协会(IMS)、及澳大利亚政府定位服务(AGLS)。编码句法使得装置基础结构204(参见图2)处理组件400、402、404的元数据,并且编码方案包括例如但不局限于XML、HTML、XHTML、XSML、RDF、机读目录(MARC)及多用途互联网络邮件扩展(MIME)。
再参考图4,数据组件400限定由组件应用程序302使用的数据实体。数据组件400可以描述的数据实体的示例有:用户及财务事务处理。数据组件400限定为描述该数据实体要求的信息以及表示的信息格式。举例而言,该数据组件400可以定义例如但不局限于包括如下内容的订单:针对订单的被格式化为数字的唯一标识符,被格式为字串的项目的一个列表,具有日期-时间格式的订单被创建的时间,被格式化为字符串的订单状态,以及发出该订单的一个用户,该订单被根据该数据组件400的另一定义而格式化。由于数据部分(单元)通常被根据Web服务舞台规则从消息105变换到消息105,因而最好有数据组件400的持续。数据组件400可根据Web服务舞台定义(如果可得到)而被动态地产生,或根据复合类型定义和/或消息相关信息由该应用程序设计人员定义。
再参考图4,该消息组件404定义由组件应用程序302使用的消息格式,以便与例如Web服务的外部系统通信。举例而言,该消息组件404之一可以描述例如但不局限于一个用于发出订单的消息,该订单包括用于该订单的唯一标识符、订单的状态以及与订单相关的注释。以该结构化定义语言写成的消息组件404定义能够唯一地表示(并且映射到)WSDL消息,并且能够在执行时间动态地产生。因此,从在用于表示该Web服务接口的定义语言中,例如但不局限于WSDL和BPEL中的标准Web服务元数据中,能够实现针对用于客户机应用消息105、及相关数据内容的组件定义的动态产生。在操作的环境中限定Web服务消息105,并且其中定义在该组件应用程序302定义中的该消息组件404之间的相关性。如下面进一步限定的那样,这种相关性可以使用预定义的消息参数和/或通过分离工作流组件406来实现。
再参考图4,该显示组件402限定了当组件应用程序302由用户接口202显示时该组件应用程序302的外观及行为。显示组件402能够规定GUI屏幕和控制,以及当用户使用用户接口202与该组件应用程序302交互时将被执行的动作。例如,该显示组件402可以限定屏幕、标号、编辑框、按钮和菜单,以及当用户键入一个编辑框或按下一个按钮时将要采取的动作。大多数Web服务消费者使用Web服务操作结果的可视显示,因此在能够显示用户接口屏幕的装置100上提供该运行时环境。
参考图1、4和4b,应该认识到在上述客户机组件应用程序302定义主控模型中,显示组件402可以根据客户机平台和装置100的环境改变。例如,某些情况下,Web服务用户不要求一个可见的显示。该组件应用程序302的组件400、402、404、406的应用定义可以被主控在元数据贮存700中的一个Web服务注册表中,作为平台-中性数据400、消息404、具有针对各种预定客户机运行时间的一组平台-专用显示组件402描述符的工作流406组件描述符的一个集束(即具体的组件框架结构206-参见图2)。当该发现或配置请求消息105被发出时,该客户机类型应该被规定作为这一请求消息105的一部分。为了在针对该装置100的不同客户机平台打包组件应用程序302的同时避免复制数据、消息及工作流元数据,应用程序的定义可在该应用服务器110(例如)上被主控作为与显示组件403a、403b、403c的不同集合链接的平台-中性组件定义的一个集束,表示不同支持的装置100的用户接口202。还应该认识到,一个标准显示组件402可在该专用设备100不被明确支持的情况下使用,从而至少提供显示特性的一个减少的集合。当用户作出发现或下载请求消息105时,装置100的客户机运行时间类型被确认并且配置适当的集束,由该Web服务器106经过网络104传递到装置100。针对那些Web服务消费者,该客户应用程序302能够包含通过工作流组件406与数据400及信息404链接的选择的显示组件403a、403b、403c,从而提供一个定制的组件应用程序302。
再参考图4,该组件应用程序302的工作流组件406限定了当将执行一个操作时发生的处理,例如由如上所述的显示组件402规定的一个操作、或当消息105(参见图1)从系统10到达时将被执行的一个动作。显示工作流及消息105的处理由工作流组件406限定。该工作流组件406被以程序设计语言或一种脚本语言,例如但不局限于ECMAScript脚本语言,写成一系列指令,并且如所述的那样能够被编译成本机代码以及由应用程序容器300执行。工作流组件406的一个示例可以是对于数据赋值、管理屏幕或发送该消息105。工作流组件406支持在该消息105之间的相关性并且按照关于其它组件400、402、404的操作的一组规则来定义应用程序流动。可以相对于一个给定的应用程序302定义多个工作流组件。这种附加的工作流组件与多个显示组件403a、403b、403c类似,可以根据不同的支持能力或具体装置100的特性来定义不同的工作流。
ECMA(欧洲计算机制造商联合会)脚本是一种标准的脚本语言,其中的脚本能够被称为由另一程序而不是由计算机处理器编译或执行的指令的序列。其它的脚本语言的示例有Perl、Rexx、VBScript、JavaScript以及Tcl/Tk。通常,脚本语言是指令的语言,用于管理、定制以及自动操作现有系统的设施,例如装置100。在这种系统中,已经可通过用户接口202(参见图2)得到有用的功能,并且该脚本语言是用于表明编制程序控制功能的一个机制。以此方式,装置100提供了完成该脚本语言能力的对象及设施的主控运行时环境。
具体地说,EMCAScript是一个面向对象的程序设计语言,用于在该主机运行时环境中执行计算和管理计算的对象。ECMAScript能被用作一个Web脚本语言,提供一种机制,执行服务器106、110的计算,作为系统10的基于Web的客户机-服务器结构的一部分(参见图1)。ECMAScript提供用于各种的主机运行时环境的核心脚本能力,并且因此该核心脚本语言能被认为是对于若干具体主机运行时环境是操作平台中性的。组件框架结构206(参见图2)能够提供用于装置100的客户机一侧的计算的ECMAScript主机运行时环境,例如但不局限于;表示窗口、选单、弹出、对话框、文字区、定位点、帧、历史、cookies和输入/输出的对象。另外,组件框架结构206的主机运行时环境提供把脚本代码附加到事件的一个装置,这些事件不局限地例如包括聚焦的改变、页面和图像加载、卸载、出错和异常中止、选择、形式提交、及鼠标动作。该脚本代码出现在该工作流组件406中,组合用户接口单元和固定的及计算的文本和图像,并且对于在用户接口202上的用户交互作出反应。Web服务器106(参见图1)提供用于服务器一侧的计算的不同的主机环境,包括表示请求、客户机和文件的对象,以及锁定和共享数据的机制。通过把客户机一侧和服务器一侧脚本一起使用,有可能在提供用于基于Web的组件应用程序302的一个定制用户接口202的同时,在客户机装置100和服务器106、110之间分配计算。
ECMAScript还定义一组内置的操作符,可以不是严格意义上的功能或方法。ECMAScript操作符例如但不局限地包括各种一元操作符、相乘操作符、加法算符、逐位移位操作符、关系操作符、相等操作符、二进制按位算符、二进制逻辑操作符、赋值算符和逗点算符。但是ECMAScript句法类似于Java句法,ECMAScript句法被解限(relaxed),以便使其能被开发人员用作一种容易使用的脚本语言。例如,一个ECMAScript中的变量不要求申明其类型,也不是与属性相关的类型,并且不要求定义的函数在调用之前出现文字声明。应该认识到,在基于类的面向对象的程序设计语言中,通常由实例表示状态、由类表示方法,并且继承的只是结构和行为。在ECMAScript中,由对象表示该状态和方法,并且结构、行为及状态全部都可继承。
组件应用程序示例
因此,参考图4,客户应用程序302能够被定义为一组平台中性的组件定义,即使用XML(或任何其它适当的结构化定义语言)的数据组件400和消息组件404以及显示组件402。工作流组件406能够使用ECMAScript(或任何其它适当的平台中性脚本语言)定义。当该组件应用程序302的组件400、402404、406组件被提供在装置100上时,框架结构206的客户机运行时环境(参见图2)能够基于元定义产生如下描述的组件模板。利用一大类的终端运行时环境,例如XML或ECMAScript的跨平台标准可用于定义应用程序组件元数据而不是预建该组件应用程序302。这种延迟的约束能够使得该组件应用程序302的普通应用程序的定义被运行于由各种不同装置100表示的各种终端系统环境上。
使用XML或其衍生物表示该数据组件400、消息组件404和显示组件402,以及使用该ECMAScript语言或其子集表示工作流组件406,能够使得一个应用程序开发者从任意专用平台或环境中提取该Web服务客户机,并且原则上执行″一次生成则各处运行″的应用程序。下面的示例示出了能够使用例如但不局限于XML的一个结构化定义语言以及例如但不局限于ECMAScript的操作平台中性脚本/程序设计语言定义组件来表示一个Web服务客户应用程序302的方式:
示例XML数据组件400
<dataname=″Order″>
      <item name=″orderld″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=″mhConfirmation″>
              <part name=″orderld″type=″String″/>
              <part name=″status″type=″String″/>
    </msg>
示例XML显示组件402
    <
screenname=″scrConfinnation″title=″OrderConfirmation″param=″Order″>
               <layouttype=″vertical″>
               <widget type=″label″value=″Order Confirmation Result:″/>
                 <widgettype=″edit″value=″@commat;Order.orderStatus″/
               >
    </layout>
               <menu>
                     <item label=″Continue″
         navigate=″&commat;scrMain″/>
             </menu>
    </screen>
示例ECMAScript工作流组件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协调在装置100的存储器模块210(参见图2)中的数据的存储,用于随后由该显示组件402在用户接口202(参见图2)上的显示。工作流组件406协调数据在数据组件400、显示组件402和消息组件404之间的变换。
对于如上所述组件应用程序模型来说,有若干潜在优点。例如,对在客户机运行时间和服务终点之间的服务协议中的仲裁器的要求被最小化。与要求一个Web服务器来主控附加组件(小服务程序、JSP、ASP等)以将HTML页面数据/请求与服务终点连接的基于浏览器的应用程序不同,该组件应用程序模型使用Web服务(在该服务器106上)的消息组件定义来实现在装置100的客户机运行时间之间的端对端直接连接。
而且,该组件应用程序模型把基于浏览器的应用程序的简化与本机应用程序执行的效率结合。不同于浏览器应用程序,由于优选地立即下载整个应用程序302定义,所以最小化了运行时间的提供屏幕,并且客户机运行时环境能够产生应用程序屏幕的一个本机显示。另外,由于该组件应用程序模型结构是以包含数据的消息组件404为基础,来自该服务器的请求页面(在HTML中的屏幕清晰度)被最小化。
而且,与硬编码的本机应用程序相比,该组件应用程序结构能够提供一个很小的应用程序下载规模(只包括组件定义)、以及有效的数据存储器和持续模型。与管理提供的例如用于浏览器应用程序的HTML页面的显示相比,客户机运行时间能够直接存储并更新原子数据实体。
而且,该组件应用程序结构能够提供一个平台中性模型。不同于专门针对具体客户机运行时间开发的本机应用程序,使用广泛采用的例如XML和ECMAScript标准构建的应用程序302能够在各种平台上重新使用,并且真正实现″一次生成则各处运行″的原理。而且该非过程及程序应用定义的组合能够大大降低编程时间和工作强度。
组件应用程序模型的操作
图5是表示一个方法的流程图,该方法建立该无线组件应用程序302,用于随后的经过网络104到装置100的通信。同时参考图3,该方法以创建该数据组件400的步骤600为起点,定义例如用户和订单的数据实体。该方法以创建显示组件402的步骤602继续,用于定义诸如屏幕、按键、菜单和图像的用户接口单元。该方法以创建消息组件402的步骤604继续,用于定义被发送到例如在服务器106(参见图1)上的Web服务的外部系统的消息格式。组件400、402、404被以结构化定义语言表示,例如但不局限于以基于XML的一个结构化定义语言。该方法以步骤606结束,尝试把数据组件400、显示组件402和消息组件404与工作流组件406合一起,以便定义应用程序302的运转情况。根据例如上述的ECMAScript的一个子集的一种脚本语言写出工作流组件406。构建一个无线组件应用程序302的方法可以包括比图5所示步骤更少或更多的步骤。
参见图1及图6,示出了装置100和Web服务器的Web服务之间的交互的操作800。Web服务接收该请求装置100开始与Web服务通信的请求消息105(802)。Web服务把要求的组件应用程序302的组件400、402、404、406(如果有任何一个)上载(804)到装置100,以便支持在Web服务和装置100之间的随后的信息交换。该装置接收该发送的组件应用程序302,并且开始由该运行时环境提供(806)该组件400、402、404、406,以便通过产生该组件应用程序302的一个可执行版本而把该装置配置为Web服务的一个Web客户机。装置100的用户把数据输入(808)到装置100的用户接口202(参见图2),用于随后发送(810)到Web服务,作为用于接收Web服务操作的一个请求消息105。该Web服务处理该请求消息105并发送(812)包括数据的适当的响应消息105,用于随后在用户接口202上输出。装置100接收(814)包含该数据的消息105,并且该组件应用程序302的可执行版本适当地把数据输出在用户接口202上。而且按照上述的那样,在装置100和Web服务之间执行数据交换(816),或结束(818)该交换,并且该组件应用程序302的可执行版本被按照期望或保存在存储器210(参见图2)或者从运行时环境中删除。
例如参见图1、3和7,操作过程(900)表示当该装置100接收(902)包含消息数据的响应消息时,该适当的工作流组件406根据适当的消息组件404编译(904)该消息105的数据内容的情况。工作流组件406随即处理(906)该数据内容,并且把该数据插入(910)到相应的数据组件400中,用于随后在存储器模块210(参见图2)中的存储(912)。而且如果需要的话,该工作流组件406还把数据插入(908)到该适当的显示组件402中,用于随后在用户接口202(参见图2)上的显示(914)。
参见图1、3和8,操作过程(1000)示出针对一个动作的数据输入(1002),例如按下一个按钮或选定一个菜单选项,用户通过该用户接口202(参见图2)在一个用户接口单元上执行这些动作(1003)。该相关的工作流组件406根据适当的显示组件404编译(1004)该输入数据,并且创建(1006)由适当数据组件400限定的数据实体。工作流组件406随即以由用户提供的输入数据填充(1010)该数据组件400,用于随后在该存储器模块210(参见图2)中的存储(1012)。而且,该工作流组件406还把该输入数据插入(1008)到该适当的消息组件404中,按照由该消息组件404的定义,用于随后以消息105把作为数据实体的该输入数据发送(1014)到Web服务。
应该认识到,由于该组件应用程序302不使用全部程序设计语言、而是相反地使用例如比较浅显易学的XML和ECMAScript的基于标准的技术,所以使用上述方法创建的组件应用程序302,将能需要比硬编码应用程序更少的时间来创建。该方法能实现其中把该用户接口202和数据的定义相分离的组件应用程序302。这种分离使得在该组件应用程序302中的任何组件400、402、404、406的修改不影响及要求在该组件应用程序302中的其它组件400、402、404、406的实质改变,并因此可以有助于该组件应用程序302的维护,包括在装置100上的该组件应用程序302的修改和更新。
图9是一个双模式移动通信装置710的框图,是图1和6的装置100的进一步的示例。该双模式移动通信装置710包括:收发机711、微处理器738、显示器722、闪速存储器724、RAM存储器726、辅助输入/输出(I/O)装置728、串行端口730、键盘732、扬声器734、话筒736、短程无线通信子系统740,并且还可包括其它装置子系统742。收发机711优选地包括:发送与接收天线716及718、接收器712、发射器714、一个或多个本机振荡器713及数字信号处理器720。在该闪速存储器724中,该双模式移动通信装置710最好包括能由微处理器738(和/或DSP 720)执行的多个软件模块724A-724N,包括语音通信模块724A、数据通信模块724B、和用于执行多个其它功能的多个其它操作模块724N。
该双模式移动通信装置710最好是具有语音及数据通信能力的一个双向通信装置。因此该双模式移动通信装置710可以例如经过例如模拟或数字蜂窝网络的任一个的语音网络进行通信,并且还可以经过数据网络进行通信。图9中以通信塔719示出语音及数据网络。这些语音和数据网络可以是分离的通信网络,使用分离的基础结构,例如基站、网络控制器等,或可被集成为单一无线网络。
该通信子系统711被用于与该语音和数据网络719通信,并且包括接收器712、发射器714、一个或多个本机振荡器713,并也可包括DSP 720。该DSP 720被用于对发射器714和接收器712的信号进行接收和发送,并且也用来从发射器714接收控制信息以及把控制信息提供到接收器712。如果该语音和数据通信以单一频率出现,或是紧密间隔的频率,则可以与发射器714和接收器712结合使用单一本机振荡器713。另外,如果实现语音通信与对应的数据通信利用的是不同频率,则可用多个本机振荡器713产生对应于该语音和数据网络719的多个频率。虽然图9中描述的是两个天线716、718,但是双模式移动通信装置710能被以单个天线结构使用。经由在DSP720和微处理器738之间的链路与通信模块711通信包括语音和数据信息的信息。通信子系统711的详细设计,例如频带、组件选择、功率电平等,取决于其中要操作双模式移动通信装置710的通信网络719。例如,想要操作在北美市场中的一个双模式移动通信装置710可以包括被设计来利用MobitexTM或DataIACTM移动数据通信网络的一个通信子系统711,并且也可以设计来利用例如AMPS、TDMA、CDMA、PCS等多种语音通信网络的任何之一操作;而想要使用在欧洲的装置710可以配置来利用通用无线分组服务(GPRS)数据通信网络和GSM语音通信网络来操作。其它类型的分离和集成的数据和语音网络也同样可以利用该双模式移动通信装置710。
根据单一或几个网络719的类型,对于该双模式移动通信装置710的接入要求也可能变化。例如,在Mobitex和DataTAC数据网络中,使用与每一个装置相关的唯一标识号码把移动装置注册在网络上。但是在GPRS数据网络中,网络接入与用户或移动装置的使用者相关。GPRS装置通常要求一个用户的标识模块(″SIM″),要求该模块来在一个GPRS网络上操作双模式移动通信装置。可以操作本地即非网络通信功能(如果有的话),无需该SIM,但除了任意法定要求的操作之外,例如911紧急呼叫,一个双模式移动通信装置将不能执行任何涉及经过数据网络719的通信功能。
在完成任何要求的网络注册或激活处理过程之后,该双模式移动通信装置710可以随即经过网络719(或几个网络)发送和接收通信信号,包括语音和数据信号二者。由天线716从通信网络719接收的信号被路由到该接收器712,该接收器712提供信号放大、降频变换、滤波、信道选择等,并且还可以提供模拟数字转换。接收信号的模拟数字转换实现更复杂的通信功能,例如使用DSP 720执行的数字解调和解码。以一个类似的方式处理将被发送到网络719的信号,该处理包括由DSP 720调制和编码,并且被随即提供到发射器714用于数模转换、上变频、滤波、放大,并且通过天线718发送到通信网络719(或几个网络)。虽然图9示出了单个收发机711既用于语音通信又用于数据通信,但是该双模式移动通信装置710有可能包括两个不同的收发机,第一收发机用于发送和接收语音信号,第二收发机用于发送和接收数据信号。
除了处理该通信信号之外,该DSP 720还提供接收器和发射器的控制。例如,加到该接收器712和发射器714的通信信号的增益等级可以通过该DSP 720中执行的自动增益控制算法自适应地控制。其它收发机控制算法还可以在DSP 720中执行,以便提供收发机711的更复杂的控制。
微处理器738最好管理和控制该双模式移动通信装置710的总体操作。许多类型的微处理器或微控制器能被使用于其中,或另外单一DSP 720可用于执行微处理器738的功能。在收发机711中通过DSP 720执行包括至少数据和语音通信的低级通信。另外,例如语音通信应用程序724A的高级通信应用以及数据通信应用程序724B可被存储在闪速存储器724中供微处理器738执行。例如,该语音通信模块724A可以提供一个高级用户接口,可操作来经由该网络719在双模式移动通信装置710和多个其它语音装置之间发送与接收语音呼叫。类似地,该数据通信模块724B可能提供可操作用于发送和接收数据的一个高级用户接口,例如经由网络719在该双模式移动通信装置710和多个其它数据装置之间发送和接收例如电子邮件消息、文件、管理器数据、短文本消息等数据。在该双模式移动通信装置710中,一个如上所述的组件框架结构206还可以被执行作为一个软件模块或应用程序,或结合到软件模块724A-724N之一中。
微处理器738还与其它双模式移动通信装置子系统交互,例如显示器722、闪速存储器724、随机存取存储器(RAM)726、辅助输入/输出(I/O)子系统728、串行端口730、键盘732、扬声器734、话筒736、短程通信子系统740以及任何其它通常被指定为742的双模式移动通信装置子系统。
图9所示的某些子系统执行通信相关的功能,而其它子系统可以提供执行驻留或在装置有关的功能。值得注意的是,例如键盘732和显示器722的某些子系统既可用于通信相关的功能,例如经过数据通信网输入用于发送的文本消息,又可用于装置驻留功能,例如计算机或任务列表或其他PDA类型的功能。
由微处理器738使用的操作系统软件最好被存储在诸如闪速存储器724的一个持久存储器中。除了控制双模式移动通信装置710的全部低级功能的该操作系统之外,闪速存储器724可能包括多个高级软件应用程序或模块,例如语音通信模块724A、数据通信模块724B、管理器模块(没示出)或任何其它类型的软件模块724N。闪速存储器724还可包括为存储数据的文件系统。这些模块由微处理器738执行,并且提供在双模式移动通信装置的用户和移动装置之间的一种高级接口。这种接口通常包括通过显示器722提供的图形组件,以及通过辅助I/O728、键盘732、扬声器734和话筒736提供的输入/输出组件。该操作系统,具体地说是双模式移动通信装置软件应用程序或模块、或其部分,可以临时装入到例如RAM 726的一个易失性存储器中,用于更快地操作。而且,在将接收的通信信号永久地写入到设置在持久存储器724之前,接收的通信信号也可以被暂存到RAM726。
可被加载到双模式移动通信装置710上的一个示例性应用模块724N是一种个人信息管理器(PIM)应用程序,提供例如日历事件、约定以及任务项的PDA功能。此模块724N也可以与管理电话呼叫、语音邮件等的语音通信模块724A交互,并且还可以与用于管理电子邮件通信以及其它数据传输的数据通信模块交互。另外,语音通信模块724A的和数据通信模块724B的全部功能都可被集成到该PIM模块中。
该闪速存储器724最好提供一种文件系统提供,以便促进在双模式移动通信装置710上的PIM数据项的存储。该PIM应用程序最好包括通过该无线网络719发送和接收数据项的能力,或是本身或结合该语音和数据通信模块724A、724B进行数据项的发送和接收。PIM数据项最好是通过无线网络719与存储的或主机系统相关的一个对应组的数据项无缝地集成、同步及更新,藉此创建与具体用户相关的用于数据项的镜像系统。
该双模式移动通信装置710还可以通过在一个接口框中放置该双模式移动通信装置710而手动地与一个主系统同步,该接口框把该双模式移动通信装置710的串行端口730耦合到该主系统的串行端口。该串行端口730还可以被用于使得一个用户能够通过一个外部装置或软件应用程序设置优选项,或下载用于安装的其它应用模块724N。此有线下载路径可被用于把一个加密密钥加载到双模式移动通信装置710上,这是比通过无线网络719交换加密信息更安全的方法。
另外,可通过网络719、辅助I/O子系统728、串行端口730、短程通信子系统740或任何其它适当的子系统742把应用模块724N加载到该双模式移动通信装置710上,并且由使用者安装在闪速存储器724或RAM 726中。在应用程序安装中的这种灵活性增加了双模式移动通信装置710的功能性,并且可以提供增强的在装置功能、通信相关功能或二者。例如,安全通信应用程序可以使得能够使用双模式移动通信装置710来执行电子商务功能和其它这种金融事务处理。
当按照数据通信模式操作该双模式装置时,例如文本消息或下载的网页的一个接收信号将由收发机711处理并且提供到微处理器738,最好进一步处理该接收信号以便输出到显示器722,或也可以输出到一个辅助I/O装置728。虽然例如已知的DVORAK形式的完整字母数字键盘的其它形式也可被使用,但是双模式移动通信装置710的用户还可以利用最好是以QWERTY形式排列的一个完成的字母数字键盘的键盘732组成例如电子邮件消息的数据项。利用多个辅助I/O装置728进一步增强对于双模式移动通信装置710的用户输入,该辅助I/O装置728可以包括指轮输入装置、触摸板、各种开关、摇动输入开关等。由该用户输入的组成数据项可被随后经过通信网络719由收发机711发送。
当该双模式移动通信装置710以语音通信模式操作时,该双模式移动通信装置710的整个操作基本上类似于该数据模式,只是该接收信号最好被输出到扬声器734,并且用于发送的语音信号是由话筒736产生。另外,例如语音消息记录子系统的语音或音频I/O子系统也可被在该双模式移动通信装置710上执行。虽然最好是主要通过扬声器734实现语音或音频信号的输出,但是也可用显示器722提供主叫方的标识、语音呼叫的持续时间或其它语音呼叫相关信息的指示。例如,该微处理器738与语音通信模块和操作系统软件结合,可以检测一个输入语音呼叫的呼叫者识别信息,并且将该语音呼叫显示在显示器722上。
双模式移动通信装置710还包括一个短程通信子系统740。例如,该短程通信子系统740可以包括一个红外装置和相关的电路与元件,或例如蓝牙模块或802.11模块的短程无线通信模块,以便提供与类似发起的系统和装置的通信。本领域的技术人员将理解到,″蓝牙″和802.11是指可从分别涉及无线个人域网和无线LAN的电气和电子工程师学会(IEEE)标准得到的多组规范。
虽然本说明书的公开在此描绘了一个或者多个示例系统和方法,但在本领域中的人员将显见可知许多变化,并且这种变化是在本申请的范围之内。例如,虽然XML和ECMAScript的子集被使用于该提供的示例中,但是可用其它语言和语言的变型来定义组件应用程序302。

Claims (40)

1.一种借助终端装置(100,101,116)经过网络(102,104,114)与规划限定的服务进行交互的方法,该方法包括步骤:
发送用于在服务和终端装置(100,101,116)之间建立通信的一个请求网络消息;
响应该请求网络消息接收包括多个组件(400-406)的一个组件应用程序(302),第一组组件具有以结构化定义语言表示的元数据描述符,用于定义组件应用程序(302)的配置信息,而第二组组件被表示成与元数据描述符相关联的一系列脚本指令,用于定义组件应用程序(302)的工作流,这些组件(400-406)被配置用于借助终端装置(100,101,116)的运行时环境进行提供,以便产生配置作为服务的客户机的终端装置的该组件应用程序的一个可执行版本,所述运行时环境使用基于模板的执行模型或者基于元数据的执行模型;
其中该可执行版本的执行便于经过网络(102,104,114)在服务和终端装置(100,101,116)之间的随后的数据交换。
2.根据权利要求1的方法,其中该运行时环境给该终端装置的基础结构(204)的处理器(208)及相关操作系统的功能提供该可执行版本的一个接口(220)。
3.根据权利要求2的方法,其中该运行时环境被配置用于实施包括下列任一个的能力:提供用于把一个网络消息发送到该服务的通信;提供由该终端装置(100,101,116)的用户输入的数据,以便提供用于与服务相关的一个网络消息的数据内容;响应与服务相关的一个网络消息提供数据显示;提供数据存储服务用于保持在该终端装置的一个存储器(210)中的本机客户机数据;以及/或者提供用于程序设计语言的一个执行环境,用于协调在该可执行版本中的组件(400-406)的操作。
4.根据权利要求2或3的方法,其中该运行时环境被配置为该操作系统的一部分。
5.根据权利要求2或3的方法,进一步包括步骤:从针对该服务定义的元数据中动态地产生用于客户机应用消息和相关数据的组件描述符。
6.根据权利要求5的方法,其中该服务是包括以下服务的普通规划限定的服务:网络服务、数据库服务以及基于IDL的CORBA服务。
7.根据权利要求2或3的方法,进一步包括步骤:把一个数据组件(400)包括在第一组组件定义中,该组件(400)用于描述由程序(302)使用的数据实体的格式。
8.根据权利要求7的方法,进一步包括步骤:把至少一个消息组件(404)包括在第一组组件定义中,每一个该消息组件(404)用于描述一个由该程序(302)使用的消息的格式,以便经过网络(102,104,114)与服务通信。
9.根据权利要求8的方法,其中该数据组件定义和消息组件定义是平台中性的,以便适应各种不同的运行时环境。
10.根据权利要求8的方法,进一步包括步骤:把一个显示组件(402)包括在第一组组件中,显示组件(402)用于定义当组件应用程序(302)出现在终端装置(100,101,116)的一个用户接口(202)上时的该组件应用程序(302)的外观和行为。
11.根据权利要求10的方法,进一步包括步骤:规定在该请求网络消息中的该终端装置(100,101,116)的客户机类型,用于提供对于一种预定义的运行时环境是平台专用的显示组件(402)。
12.根据权利要求10的方法,进一步包括步骤:把一个工作流组件(406)包括在第二组组件中,该工作流组件(406)用于定义在将要按照由第一组组件之一的规定而执行一个操作时出现的处理过程。
13.根据权利要求2或3的方法,进一步包括步骤:通过基于模板的执行模型来执行本机代码的可执行版本,该模型采用被配置用于以该组件(400-406)的元数据描述符进行填充的若干预定义的模板,其中该预定义的模板被提供用于包括以下组件的任意一个的多个组件:数据组件(400)、消息组件(404)和/或显示组件(402)。
14.根据权利要求13的方法,进一步包括步骤:利用与该元数据描述符相关的元数据定义的参数来填充该预定义的模板,并且使用该填充的模板来构建该本机代码的可执行版本。
15.根据权利要求2或3的方法,进一步包括步骤:由一个基于元数据执行模型来执行该可执行版本,该模型被配置用于把该元数据定义保持在该结构化定义语言中以便在执行过程中进行解析。
16.根据权利要求2或3的方法,进一步包括步骤:由一个基于元数据执行模型来执行该可执行版本,该模型被配置用于在执行过程中使用结构化定义语言节点的一个本机显示。
17.根据权利要求12的方法,进一步包括步骤:发送由该终端装置(100,101,116)的用户与用户接口单元的交互发起的一个网络消息,该网络消息包括由对应于该用户接口单元的工作流组件(406)创建的数据实体。
18.根据权利要求17的方法,其中根据该消息组件(406)配置该网络消息,以便包括基于该结构化定义语言的数据实体。
19.根据权利要求18的方法,进一步包括步骤:接收包括涉及本数据实体的消息数据的一个响应网络消息,该响应网络消息被配置用于在该终端装置(100,101,116)的一个用户接口上随后显示该消息数据,其中该消息数据是基于该结构化定义语言而格式化的。
20.根据权利要求19的方法,其中该终端装置(100,101,116)包括以下装置的任一个:个人计算机(116)、无线装置(100)、PDA(101)、自助信息台和/或桌面终端(116)。
21.一种终端装置(100,101,116),被配置用于经过网络(102,104,114),使用包括多个组件(400-406)的一个组件应用程序(302)的可执行版本,与基于规划的服务进行交互,该终端装置包括:
用于操作该终端装置的装置基础结构(204),该装置基础结构包括用于执行该可执行版本的一个处理器(208)和相关存储器(210);
耦合到该装置基础结构(204)的用户接口(202),该用户接口(202)具有被配置用于与该可执行版本通信的输入装置和输出装置;
网络连接接口,耦合到该装置基础结构(204)并且被配置用于与该网络通信;和
组件框架结构(206),提供运行时环境,以用于使用基于模板的执行模型或基于元数据的执行模型,处理组件应用程序(302)以产生该可执行版本,以便把该终端装置(100,101,116)配置为该服务的客户机,该运行时环境被配置用于处理具有以结构化定义语言表示的元数据描述符的第一组组件和被表示成与元数据描述符相关联的一系列脚本指令的第二组组件,所述第一组组件用于定义组件应用程序(302)的配置信息,而第二组组件用于定义组件应用程序(302)的工作流;
其中该可执行版本的执行便于用于经过网络在服务和终端装置(100,101,116)之间的随后的数据交换。
22.根据权利要求21的终端装置(100,101,116),其中该运行时环境把该终端装置(100,101,116)的装置基础结构(204)的一个处理器(208)及相关操作系统的功能提供给该可执行版本的一个接口(220)。
23.根据权利要求22的终端装置(100,101,116),其中该运行时环境被配置用于实现包括以下任一个的能力:提供用于把一个网络消息发送到该服务的通信;提供由该终端装置的用户输入的数据,以便提供用于与服务相关的一个网络消息的数据内容;响应与服务相关的一个网络消息提供数据显示;提供数据存储服务用于保持在该终端装置的一个存储器(210)中的本机客户机数据;以及/或者提供用于程序设计语言的一个执行环境,用于协调在该可执行版本中的组件(400-406)的操作。
24.根据权利要求22或23的终端装置(100,101,116),其中该运行时环境被配置作为该操作系统的一部分。
25.根据权利要求22或23的终端装置(100,101,116),其中从针对该服务定义的元数据中动态地产生用于客户机应用消息和相关数据的组件描述符。
26.根据权利要求25的终端装置(100,101,116),其中该服务是普通规划限定的服务,包括:网络服务、数据库服务以及基于IDL的CORBA服务。
27.根据权利要求22或23的终端装置(100,101,116),进一步包括:在第一组组件定义中的一个数据组件(400),该数据组件(400)用于描述由该程序(302)使用的数据实体的一个格式。
28.根据权利要求27的终端装置(100,101,116),进一步包括:在第一组组件定义中的至少一个消息组件(404),至少一个消息组件的每一个消息组件(404)用于描述由该程序(302)使用的消息的格式,以便经过网络(102,104,114)与该服务通信。
29.根据权利要求28的终端装置(100,101,116),其中该数据组件定义和消息组件定义是平台中性的,以便适应各种不同的运行时环境。
30.根据权利要求28的终端装置(100,101,116),进一步包括:在第一组组件中的显示组件(402),该显示组件(402)用于定义在组件应用程序(302)出现在终端装置(100,101,116)的一个用户接口(202)上时的该组件应用程序(302)的外观。
31.根据权利要求30的终端装置(100,101,116),其中在该请求网络消息中规定的该终端装置的客户机类型提供对于一个预定义的运行时环境是平台专用的显示组件(402)。
32.根据权利要求30的终端装置(100,101,116),进一步包括:在该第二组组件中的一个工作流组件(406),该工作流组件(406)用于定义在将要按照由第一组组件之一的规定而执行一个操作时出现的处理过程。
33.根据权利要求22或23的终端装置(100,101,116),其中基于模板的执行模型用于执行本机代码的可执行版本,该模型采用被配置用于以该组件的元数据描述符进行填充的若干预定义的模板,其中该预定义的模板被提供用于多个组件,所述多个组件包括:数据组件(400)、消息组件(404)和/或显示组件。
34.根据权利要求33的终端装置(100,101,116),其中利用与该元数据描述符相关的元数据定义的参数来填充该预定义的模板,使用该填充的模板来构建该本机代码中可执行版本。
35.根据权利要求22或23的终端装置(100,101,116),其中基于元数据的执行模型用于执行该可执行版本,该模型被配置用于把该元数据定义保持在该结构化定义语言中以便在执行过程中进行解析。
36.根据权利要求22或23的终端装置(100,101,116),其中基于元数据的执行模型用于执行该可执行版本,该模型被配置用于在执行过程中使用结构化定义语言节点的一个本机显示。
37.根据权利要求32的终端装置(100,101,116),其中该可执行版本被配置用于发送由终端装置(100,101,116)的用户与用户接口单元的交互发起的一个网络消息,该网络消息包括由对应于该用户接口单元的工作流组件(406)创建的数据实体。
38.根据权利要求37的终端装置(100,101,116),其中根据该消息组件(406)配置该网络消息,以便包括基于该结构化定义语言的数据实体。
39.根据权利要求38的终端装置(100,101,116),其中,该可执行版本被配置用于接收包括涉及该数据实体的消息数据的一个响应网络消息,该响应网络消息被配置用于在该终端装置的一个用户接口(202)上随后显示该消息数据,其中该消息数据是根据该结构化定义语言而格式化的。
40.根据权利要求39的终端装置(100,101,116),其中所述终端装置包括以下任一个:个人计算机(116)、无线装置(100)、PDA(101)、自助信息台和/或桌面终端(116)。
CN200380109992.1A 2002-12-26 2003-12-24 用于建立和执行平台-中性的普通服务客户应用程序的系统和方法 Expired - Lifetime CN1757015B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US43601102P 2002-12-26 2002-12-26
US60/436,011 2002-12-26
US50366503P 2003-09-17 2003-09-17
US60/503,665 2003-09-17
PCT/CA2003/001976 WO2004059938A2 (en) 2002-12-26 2003-12-24 System and method for building and execution of platform-neutral generic services' client applications

Publications (2)

Publication Number Publication Date
CN1757015A CN1757015A (zh) 2006-04-05
CN1757015B true CN1757015B (zh) 2010-11-10

Family

ID=36689399

Family Applications (3)

Application Number Title Priority Date Filing Date
CN2009100013373A Expired - Lifetime CN101453491B (zh) 2002-12-26 2003-12-24 建立组件应用程序的方法和设备
CN200380109992.1A Expired - Lifetime CN1757015B (zh) 2002-12-26 2003-12-24 用于建立和执行平台-中性的普通服务客户应用程序的系统和方法
CNB2003801099917A Expired - Lifetime CN100456247C (zh) 2002-12-26 2003-12-24 用于建立无线组件应用的方法、移动通信装置和服务器

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN2009100013373A Expired - Lifetime CN101453491B (zh) 2002-12-26 2003-12-24 建立组件应用程序的方法和设备

Family Applications After (1)

Application Number Title Priority Date Filing Date
CNB2003801099917A Expired - Lifetime CN100456247C (zh) 2002-12-26 2003-12-24 用于建立无线组件应用的方法、移动通信装置和服务器

Country Status (1)

Country Link
CN (3) CN101453491B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3913896B1 (en) 2014-09-19 2024-07-03 Convida Wireless, LLC Service layer session migration and sharing
EP3486772A1 (en) 2017-11-16 2019-05-22 Siemens Aktiengesellschaft Method for reciprocally integrating applications in an industrial program-control system
CN110020307B (zh) * 2017-11-30 2023-06-13 阿里巴巴集团控股有限公司 一种客户端视图的绘制方法和装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000036803A1 (en) * 1998-12-16 2000-06-22 Siemens Aktiengesellschaft Service system in a network

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6266666B1 (en) * 1997-09-08 2001-07-24 Sybase, Inc. Component transaction server for developing and deploying transaction- intensive business applications
AU3222600A (en) * 1999-02-03 2000-08-25 Onesoft Corporation Financial modeling in a modular system and method for processing transactions
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
JP2002099340A (ja) * 2000-09-21 2002-04-05 Ec-One Inc コンポーネント・サービス・ネットワークシステム
US7171661B1 (en) * 2000-10-19 2007-01-30 International Business Machines Corporation Realtime configuration updates and software distribution to active client positions
EP1379963A4 (en) * 2001-03-19 2009-03-11 Microsoft Corp SYSTEM AND METHOD FOR MANAGING COMMUNICATIONS AND DATA EXCHANGE
CN1271893C (zh) * 2001-11-27 2006-08-23 台达电子工业股份有限公司 具有功率与负载电流振幅因子修正功能的电子镇流器电路

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000036803A1 (en) * 1998-12-16 2000-06-22 Siemens Aktiengesellschaft Service system in a network

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
CANNATARO M ET AL.A component-based architecture for the development anddeployment of WAP-compliant transactional services.IEEE MICRO.2001,2753-2762. *
CRAMER T ET AL.COMPILING JAVA JUST IN TIME.IEEE MICRO,IEEE INC. NEW YORK,US17 3.1997,36-43.
CRAMER T ET AL.COMPILING JAVA JUST IN TIME.IEEE MICRO,IEEE INC. NEW YORK,US17 3.1997,36-43. *
同上.

Also Published As

Publication number Publication date
CN100456247C (zh) 2009-01-28
CN1757014A (zh) 2006-04-05
CN101453491B (zh) 2012-07-18
CN1757015A (zh) 2006-04-05
CN101453491A (zh) 2009-06-10

Similar Documents

Publication Publication Date Title
KR101011744B1 (ko) 플랫폼 중립 일반 서비스의 클라이언트 애플리케이션 구축시스템 및 방법
CN1757216B (zh) 创建基于无线应用程序的组件并与之通信的系统和方法
CA2556862C (en) System and method for communicating asynchronously with web services using message set definitions
KR100826147B1 (ko) 무선 컴포넌트 애플리케이션 구축 시스템 및 방법
CN1757015B (zh) 用于建立和执行平台-中性的普通服务客户应用程序的系统和方法
HK1082307B (zh) 建立和执行独立平台通用服务的客户应用软件的系统和方法
HK1082306B (zh) 构造无线组件应用的系统和方法
HK1097375B (zh) 使用信息组定义与网络服务进行异步通讯的系统和方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20101110