CN101420787B - 使用多模式应用以多种模式进行通信的设备 - Google Patents
使用多模式应用以多种模式进行通信的设备 Download PDFInfo
- Publication number
- CN101420787B CN101420787B CN200810179996.1A CN200810179996A CN101420787B CN 101420787 B CN101420787 B CN 101420787B CN 200810179996 A CN200810179996 A CN 200810179996A CN 101420787 B CN101420787 B CN 101420787B
- Authority
- CN
- China
- Prior art keywords
- message
- communication
- pattern
- mode
- application
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W88/00—Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
- H04W88/02—Terminal devices
- H04W88/06—Terminal devices adapted for operation in multiple networks or having at least two operational modes, e.g. multi-mode terminals
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/567—Integrating service provisioning from a plurality of service providers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W84/00—Network topologies
- H04W84/02—Hierarchically pre-organised networks, e.g. paging networks, cellular networks, WLAN [Wireless Local Area Network] or WLL [Wireless Local Loop]
- H04W84/10—Small scale networks; Flat hierarchical networks
- H04W84/12—WLAN [Wireless Local Area Networks]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W88/00—Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
- H04W88/16—Gateway arrangements
Abstract
能够支持wLAN和WAN无线网络通信模式和/或有线模式的多模式通信设备可以被配置为通过网关进行通信以获得后端服务(例如Web服务、数据库、事件),以响应于可用模式来进行操作。例如,对于一些活动(例如通知消息),所述设备可以被配置为以任何可用的模式(WAN或wLAN)进行通信,而对于其他活动(例如高带宽通信),所述设备被限制为仅使用一种模式(例如wLAN)。由设备执行的组件应用可以指定消息传送属性,以指示可以用于特定消息的模式。为了确定模式的可用性,通信子系统接口自动提供和维护运行时间模式信息。本发明也描述了编程工具和网关。
Description
技术领域
本发明一般地涉及能够在无线和/或有线通信的多种模式下进行通信的设备及其应用。
背景技术
由于无线网络的快速扩大,现今使用的无线设备数目持续增加。这些设备包括移动电话、具有无线通信能力的个人数字助理(PDA)、双向寻呼机等等。随着无线设备的增加,运行在这些设备上的软件应用也增加了其实用性。例如,无线设备可能包括为所需城市列表检索天气报告的应用或允许用户购买杂货的应用。
通常,除了提供语音通信之外,这些软件应用利用在无线网络上传送数据的能力,向用户提供及时和有用的服务。然而,由于过多不同的设备类型和无线通信模式、一些设备和/或通信模式受限的资源以及向设备传送大量数据的复杂度,开发软件应用仍然是困难和耗时的任务。
随着多模式设备(例如,结合了无线局域网(例如Wi-Fi或WiMAX标记下的技术)和无线广域网(例如蜂窝技术,如GSM/GPRS/EDGE)的设备)的出现,应用能够根据所选择的无线操作模式来提供不同的使用模型。当开发针对多模式设备的应用时,应用开发者可能希望考虑在开发针对单模式设备的应用时不会考虑的两个问题:(i)无论哪种无线操作模式,应用行为可能需要保持恒定,以及(ii)可能基于当前操作模式来定制应用行为。建议第一个问题可以由较低层次接口来解决,因此该问题对应用层是透明的。因此,需要一种解决方案,帮助无线应用的开发者定义响应于当前操作模式来定制行为的多模式操作的应用。
为了开发用于在计算设备(通常是无线通信设备)上执行的基于组件的应用,已经创建了系统和方法。关于组件应用的更多细节可以以下文献中找到:专利合作条约申请号PCT/CA2003/001976,其名称为“Systemand Method for Building and Execution of Platform-Neutral Generic ServiceClient Applications”,其公开号为WO2004059938;PCT/CA2003/001980,其名称为“System and Method of Building Wireless ComponentApplications”,其公开号为WO2004059957;以及PCT/CA2003/001981,其名称为“System and Method of Creating and Communication withComponent Based Wireless Applications”其公开号为WO2004059939,上述申请都被转让给本申请的所有者并且在此一并作为参考。
一般而言,提供集成开发环境(IDE)来帮助开发者有效地开发这样的基于组件的应用。因此,进一步需要提供一种解决方法,以帮助无线应用的开发者定义利用现有编程工具的优点的针对多模式操作的应用。
发明内容
能够至少支持两种通信模式(无线模式,如wLAN及WAN无线网络通信模式、短距离无线模式,如BluetoothTM(BluetoothTM是BluetoothSIG,Inc.的注册商标)以及有线模式,如LAN和WAN网络通信模式)的多模式通信设备可以被配置为通过网关进行通信以获得后端服务(例如,Web服务、数据库、事件),以响应于可用模式来进行操作。例如,对于一些活动(例如通知消息),该设备可以被配置为以任何可用的有线或无线模式(WAN或wLAN)来进行通信,而对于其他活动(例如高带宽通信),该设备可以被限制为仅使用特定模式(例如wLAN或有线模式)。由设备执行的组件应用可以指定消息传送属性,以指示可能用于特定消息的模式。为了确定模式的可用性,通信子系统接口自动提供和维护运行时间(Runtime)模式信息。也描述了编程工具和网关。
一方面,本发明提供了一种多模式通信设备,包括:
至少一个通信子系统,被配置为在包括第一通信模式和第二通信模式的至少两种通信模式中进行通信;
运行时间环境,响应于每种通信模式的通信特性,在运行时间提供模式信息;以及
应用,被编程为使用第一和第二模式中的至少一种来进行通信以获得后端服务,其中,应用的操作响应于运行时间的模式信息。
优选地,所述应用包括由用于消息、数据、工作流程和用户界面操作的组件来定义的组件应用,以及,所述运行时间环境提供了对组件应用的产生、容纳和执行的支持。在一个实施例中,所述组件应用包括工作流程组件,所述工作流程组件定义了消息事件和用户界面动作的操作,以及,所述工作流程组件响应于模式信息。
优选地,所述组件应用包括消息组件,所述消息组件定义了用于进行通信以获得后端服务的消息,所述消息组件包括传送模式属性,所述传送模式属性指定了所述模式中的至少一种,以用于通信所述消息中的至少一些。优选地,对每个消息提供所述传送模式属性。此外,在运行时间期间,向通信网关服务器提供所述传送模式属性,所述通信网关服务器被配置为代表所述多模式通信设备与后端服务器进行通信以获得后端服务。
所述通信模式包括从无线和有线通信模式中选择的多种不同模式。在一个实施例中,所述第一模式根据第一无线通信标准来操作,所述第二模式根据第二无线通信标准来操作。
在一个实施例中,通过应用编程接口来提供所述模式信息,所述应用编程接口根据发布/订阅/通知范例来操作。
所述多模式通信设备可以包括至少一个队列以及队列管理器,用于根据通信模式和运行时间的模式信息来管理通信。
根据第二方面,本发明提供了一种用于多模式通信设备的多模式通信方法。所述方法包括以下步骤:
提供在包括第一通信模式和第二通信模式的至少两种通信模式中的通信能力;
提供运行时间环境,用于执行被配置为使用所述通信模式中的至少一种来进行通信的的应用,所述运行时间环境响应于每种通信模式的通信特性,在运行时间提供模式信息;以及
提供应用,所述应用被配置为使用第一和第二模式中的至少一种来进行通信以获得后端服务,其中,应用的操作响应于运行时间的模式信息。
本发明另外提供的方面的目的是计算机可读介质和通信网络。
附图说明
现在,仅以示例的方式,参考以下附图来描述本发明的实施例,附图中:
图1是通信网络基础结构的框图;
图2是用于图1的通信网络基础结构的多模式操作及代表性多模式消息的框图;
图3是示意了用于对多模式应用进行编程的设计工具架构的框图;
图4是示意了设计工具插件的框图;
图5是可以配置有所述的多模式应用的代表性移动设备的框图。
具体实施方式
为了方便,在附图中,说明书中相似的标号涉及相似的结构。参考图1,通信基础结构整体上由标号100表示。通信基础结构100包括移动无线通信设备102(或简称为移动设备102)、多个无线通信网络101和103、无线设备网络基础结构104、应用网关106,应用开发环境107及多个后端服务器108。为了简明,附图和说明书涉及单一移动无线通信设备102,而本领域普通技术人员可以理解,实际上在基础结构100中典型地存在多个这种设备。
特定移动设备102可以包括各种计算设备,如台式计算机,笔记本电脑或其他便携式计算机、智能电话、个人数字助理(PDA)等。在图1中,设备102与应用网关106通过第一和第二无线通信网络101和103(每个被耦合以与无线设备网络基础结构104进行通信)中的至少一个进行通信。尽管仅示出了通过无线通信网络进行耦合,但是设备102可能能够通过有线网络进行耦合,如通过本领域普通技术人员公知的具有WAN网关的LAN。例如,作为移动设备的设备102可能通过串行连接(例如USB)与耦合到LAN的PC或笔记本电脑(未示出)进行耦合。
在本实施例中,第一无线通信网络101包括蜂窝电话网络(由塔110表示),用于设备102和无线设备网络基础结构104之间通过因特网109的数据通信。第二无线通信网络103包括Wi-Fi或WiMAX通信网络(由无线接入点107表示),用于设备102和无线设备网络基础结构104之间通过因特网109的数据通信。由此,设备102可以以两种不同无线模式来通信。如上所述,设备102也可以在有线模式下通信。
无线设备网络基础结构104可以包括若干组件,如中继器112、公司服务器114和/或移动数据服务器(MDS)116,其用途之一是在设备102和应用网关106之间中继数据。如将进一步描述的,移动设备102和MDS116可以被配置为响应于设备102上应用正在使用的无线通信(即网络101和103中的一个)的模式来进行确定和操作。
应用网关106包括网关服务器118、供应(provisioning)服务器120、发现服务器122和存储库124。网关服务器118与供应服务器120和发现服务器122通信。通过适当的链路(例如公共网络,如因特网109,或私有网络),网关服务器118还与多个后端服务器(整体上标记为108)通信,如Web服务108a,数据库服务108b,还有其他事件源服务108c。例如,网关服务器110分别通过简单对象访问协议(SOAP)和Java数据库连接(JDBC)与Web服务108a和数据库服务108b连接。其他类型的后端服务器108及其相对应的连接器和链路对本领域普通技术人员而言是显而易见的。相应地,可以看到,网关服务器118在设备102和后端服务器108之间担当消息代理(message broker)。通过示例,Web服务可以提供媒体内容(例如音乐或其他音频、视频等)来下载到移动设备102上。服务器可以提供新内容的通知和获得新内容的接口。通知在其通信要求方面可以相对较低,而内容下载则相对较高(更高的带宽和费用)。当与设备102交换大量数据时,数据库服务可以具有相似的要求。
尽管基础结构104和应用网关106被示意为具有分立组成服务器的不同的组件,但是,本领域普通技术人员能够理解其他布置。例如,MDS116和网关服务器118可以被提供在一个服务器上。
MDS 116的服务可以包括:
监管(administrative)和管理服务:处理策略,如那些指定对用户允许的应用,对应用可用的服务及更多;
供应服务:控制和管理哪个应用用户可以下载到移动设备;
数据优化服务:转换数据,用于有效的无线传送和在移动设备上使用;
连接服务:在设备和其他应用(例如浏览器)之间提供基于TCP/IP和基于HTTP的连接;
应用集成服务:支持如下面进一步描述的设备应用和后端服务器108之间的数据传送的集成;以及
MDS应用存储库:集中管理下面描述的已发布设备和MDS应用。
初始时,向无线设备102提供建立各种协议和设置的服务簿,包括公司服务器114和/或移动数据服务器116的连接信息。这些参数可以包括针对MDS 116和/或应用网关服务器118的统一资源定位符(URL)及其加密密钥。可选地,如果初始时没有向无线设备102提供URL和加密密钥,则可能通过移动数据服务器116将其推送给无线设备102。然后移动设备102可以通过应用网关服务器118的URL与应用网关106连接。
用于通过网关106与后端服务器108通信的移动设备侧应用被提供以由设备执行。该应用作为一系列包或束被存储在存储库124中。典型地,应用开发者使用应用开发环境107提供的设计工具来创建包。设计工具(图3和4)为用于应用组件的可视设计的拖放(drag and drop)图形方法提供了支持。如下面进一步描述的,组件可能包括屏幕、数据单元、消息和应用工作流程逻辑。
应用包被表示为结构化数据(例如可扩展标记语言(XML)文档),可以由设计工具通过自动代码产生过程来自动地产生所述结构化数据。设计工具还使自动产生的编码能够包括(或者增加)工业标准脚本语言,如JavaScript或另一种本领域已知的脚本/编程语言。
通过发现服务器122所提供的发现服务,将存储库124中应用包的可用性发布在登记单元中。可以认识到,网关服务器118可以使用多于一个存储器124和相关联的登记单元。
随着双模式和多模式设备结合的通信技术的出现,可以开发和操作应用以提供可以根据运行时间可用的操作的模式而改变的不同使用模型。根据其实施例,图2示意了多模式无线应用的操作视图200,其中包括与图1的基础结构100一起使用的代表性消息。
操作视图200示出了具有运行时间环境202的移动设备(例如102),运行时间环境202向设备侧多模式应用210(下文称为“设备应用210”)提供执行环境。设备应用210被配置为与MDS/应用网关204通信。根据要提供的后端服务206的类型,通过适当的连接器232(如针对数据库服务的JDBC连接器、针对Web服务的基于SOAP的连接器等),MDS/应用网关204耦合设备应用210来接收服务器(例如108a、108b或108c)的包括消息和数据239的后端服务206。为了清楚,MDS116和应用网关118被示意为网关204。
优选地,运行时间环境202能够产生、容纳(hosting)并执行采取下面进一步描述的组件应用形式的设备应用,如设备应用210。运行时间环境202的其它功能可以包括,例如但并不限于,语言支持,协调存储器分配,联网,I/O操作期间数据的管理,协调设备102的输出设备上的图形以及提供对核心面向对象类的访问并且支持文件/文库(library)。运行时间环境202的示例可以包括Microsoft的通用语言运行时间(CLR)和Sun Microsystem的Java运行时间环境(JRE)。
优选地,运行时间环境202支持用于设备应用(例如210)的驻留执行版本的以下功能,例如但不限于:针对后端服务206来通信消息(例如211A)的通信能力;用于设备102的用户的例如提供用于输出消息的数据部分的数据输入能力;针对设备102的输出设备(未示出)上的后端服务206的响应消息(输入消息)或通知的呈现或输出能力;维持设备102的存储器模块(未示出)中的本地客户数据的数据存储服务;以及针对用于协调设备应用210的应用组件211、213、215、217的操作的脚本语言的执行环境能力。
设备应用210可以被定义为拥有描述以下内容的组件的组件应用消息211、数据213、呈现或用户界面(UI)(例如屏幕)215和应用工作流程215。因此,消息组件211定义各应用与外部系统通信(如设备和MDS之间的通信)所采用的消息格式。数据组件213描述由应用的消息和其它组件所使用的数据实体。呈现或UI组件215定义由设备输出界面(例如显示屏幕,音频输出等)所显示的设备应用210的外观和行为。UI组件215可以指定GUI屏幕和控件,以及当用户与组件应用210交互时要执行的动作。例如,UI组件215可以定义屏幕、标签、编辑框、按钮和菜单,以及当用户在编辑框键入或按下按钮时要执行的动作。
组件应用的工作流程组件217定义要执行动作(如:如上所述由UI组件215指定的动作,或当来自MDS的消息211A到达或可应用时设备发送消息211A时要执行的动作)时发生的处理。可以使用程序语言或脚本语言(例如但不限于ECMAScript)将工作流程组件217写成一系列指令,并且可以将其编译为本机代码(native code)中并且由容纳应用210的运行时间环境202所提供的应用容器(未示出)将其执行。工作流程组件217的示例可以是对数据赋值、操作屏幕或发送消息。工作流程组件217支持消息222之间的相关性,并将应用流定义为针对其它组件211、213和215上的操作的规则集。对于给定的应用210,可以定义多个工作流程组件。这些附加的工作流程组件,与多个呈现组件(未示出)类似,可以基于特定设备102的不同的所支持的能力或特征来定义不同工作流程。可以针对单模式设备和多模式设备来定义可选的工作流程组件,以利用这些能力。
代表性消息组件211A被示意为包括消息参数240,该消息参数240包括数据242(消息中包括该数据,该数据的定义与数据组件定义213相关)和消息的属性244。这样的属性可以包括传送模式246来提供对哪个或哪些模式可以用于传送消息的指示。可以以多种方式来指定传送模式246。当可以使用多于一种模式时,可以对这些模式进行优先级排列或排次序来指示优先顺序。一些消息可能被限制为仅用于指定模式(例如为了降低带宽消耗)。作为示例,消息211A指定传送模式246可以为Wi-Fi246A和蜂窝246B之一或两者,指示了无线通信网络101和103中的哪一个可以被用于通信该消息。其它消息属性244可能包括传送可靠性等级(未示出),该传送可靠性等级设置消息传送等级,如尽力而为(besteffort)、标准和可靠,指示了消息的排序、处理和处理保证的等级。
应用210和网关204的操作可能根据其间的通信模式而变化。例如,当在相对低带宽、高费用的操作模式下(例如GPRS蜂窝101)操作时,该操作模式下设备应用210和网关204之间传送的消息和数据可能对模式做出响应,以降低费用并且提高终端用户体验。例如,当采用该操作模式时,在服务器116和设备102之间仅发送指定的操作和通知。可选地,当设备102正在使用相对高带宽、低费用的通信模式(Wi-Fi或WiMAX103)时,更多依赖于带宽的消息和数据可以在设备102和服务器116之间传送(例如数据库数据的同步、音频或视频文件的下载等)。
特别地,呈现屏幕、工作流程以及消息可以对模式的特性和可用性做出响应。例如,当在高带宽模式下操作时,可以使用屏幕来向用户呈现,以允许他们上载或下载大量数据。屏幕呈现组件可以对当前通信模式做出响应。在一些模式或产生告警的情况下,特定操作可能被禁止。在其它情况下,屏幕呈现对模式可以是透明的,但工作流程和消息组件可以被配置为基于该模式有区别地处理用户指令。例如,当优选的模式变为可用时,可以对消息进行排队以待随后传送。根据模式,工作流程可能在不同屏幕之间转移,以呈现或不呈现特定功能给用户。数据组件213可以包括对如下所述而确定的模式信息的定义。
为了实现多模式功能,设备应用210可以确定哪一个或更多个通信模式对设备102是可用的。根据本实施例,应用可以从模式选择器组件208接收模式信息209,例如,模式选择器组件208利用运行时间环境202提供给通信子系统接口212的发布/订阅风格的API214。在运行时间的操作期间模式信息改变时,API214允许设备应用210通过模式选择器来自动询问模式信息或订阅更新。通信子系统接口212可以接收各种无线或有线通信特性(共同标记为218)作为输入,通过该输入来确定模式信息。通信子系统接口212和模式选择器208可以被配置为提供各种模式信息,如特定模式是否可用,或者当两个或更多模式是可用时使用这样的输入218来确定和提供优选模式。然而,确定优选模式可以留给应用210来完成。输入218可以包括(但不限于)以下信号:如覆盖外的蜂窝218A,Wi-Fi可用218B,信号或如费用218C、带宽218D和信号强度218E之类的相关度量。这些输入218可能为存储在设备中的静态参数,或在运行时间由设备102上的通信接口212、操作系统或另外的应用或服务(都未示出)来确定的动态参数。
应用210可以通信消息,该消息具有通过管理输入队列220A和输出队列220B的队列管理器220所指示的消息属性(传送模式)。队列管理器可以根据消息的传送模式属性和来自模式选择器的可用模式来通信消息。可以对输出队列220B进行管理来考虑模式的改变,例如当一个模式不(或不再)可用时根据超时或其它传送机制来移除不能传送的消息。例如,通过模式选择器220或从运行时间环境,可以使传送通知(例如失败信息)对应用210可用。尽管被示为直接地通信消息,但是对于可应用的传送模式,队列220A和220B通过适当的通信子系统进行通信。
类似地,在网关204上,可以通过所管理的队列236A和236B以及队列管理器236来通信消息。可以以消息形式从设备接收模式属性,以由模式器234来使用。简要地并且以简化形式,网关204在相应通信模式下维护与设备102的连接,并且接收输入队列236A中的应用消息(其中典型地请求后端服务)。消息处理器230处理消息,根据协议以及后端服务206的要求对其进行映射,并且通过连接器232发送消息239。网关204也从后端服务206接收消息239,如通知或请求响应。消息处理器230处理这些消息,根据设备应用的消息组件定义211将其映射至用于接收的设备102的要求。设备102和网关204之间的附加的消息通信可能包括如用于维护应用210的监管消息、用于发现和下载组件应用的请求等等。根据从设备102接收模式属性的模式选择器234,针对设备102对消息进行格式化并且相应地准备通过输出队列238B将其输出。
队列,特别是输出队列238B可以包括指针,该指针指向要与设备通信的消息内容/数据,以避免在等待通信时在网关204存储该内容,从而降低网关204中的存储开销。另外,管理器238可以根据超时和其它传送机制来管理队列。可以将监管限制,如服务器上的大小和时间(即消息寿命)施加于队列上来降低资源消耗。
可以对应用(如应用210)进行编程,以利用设备102的多模式能力。参考图3和4,应用开发环境107可以被配置为帮助编程者/开发者开发响应于模式信息的工作流程行为217、消息211、数据213、屏幕215等。此外,使用应用开发环境107开发的应用可以被配置为支持单模式和多模式设备上的操作。
从图1可以注意到,在计算机上执行的应用开放环境中操作编程者/开发者的设计工具。设计工具的开发方法可以基于建立应用模型的可视“拖放”系统。设计工具可以结构化为对一般集成设计环境(IDE)框架(例如,EclipseTM框架)的插件集合。可选地,该工具可以被配置为不使用插件架构的完整设计框架。仅为了示例性目的,现在将该工具描述为使用EclipseTM框架的插件设计环境。
参照图3,总体上使用标号200来示意用于设计组件应用的整体设计工具结构。在本实施例中,使用EclipseTM来实现设计工具。EclipseTM被设计为支持用于应用开发的各种工具的构造。此外,EclipseTM支持未受限制的工具提供者集合,包括独立软件供应商(ISVs)和用于操作任意内容类型(例如,HTML、Java、C、JSP、EJB、XML以及GIF)的工具。EclipseTM支持基于GUI和基于非GUI的应用开发环境。
EclipseTM的主要任务是为工具提供者提供要使用的机制以及要遵守的规则,使之成为无缝集成的工具。通过很好定义的应用编程接口(API)接口、类和方法来暴露出这些机制。EclipseTM还提供实现开发新工具的有用的构件块和框架。
EclipseTM包括插件架构,其中插件是可以分离地开发和传送的最小单元。通常,将小的工具编写作单个插件,而将复杂工具的功能划分到若干插件中。使用Java来编写插件代码,并且典型的插件由Java存档(JAR)库中的Java代码、一些只读文件以及如图像、Web模版、消息目录,本机代码库等等的其它资源构成。
每个插件具有用于声明其与其它插件互相连接的清单文件(manifestfile)。为了定义互相连接,插件声明了任意数目的命名扩展点,和任意数目的至其它插件中的一个或更多扩展点的扩展。EclipseTM是公知的环境,www.Eclipse.org中全面描述了这些和其它特征。
在本实施例中,使用EclipseTM来使开发者能够设计组件应用。组件应用是一般由结构化的组件集合来定义的应用,所述组件集合包括上述数据组件、消息组件,呈现组件和工作流程组件。这些组件使用结构化语言来定义,并且由智能运行时间容器在客户端设备上执行。
设计工具300包括用户界面(UI)层306,模型层312和服务层314。UI层306主要包括用户模型301的集合,包括图形和文本编辑器、查看器和向导。由于开发者使用拖放编辑及向导驱动交互的系统,大部分外部交互是通过一个或更多这些模块来完成的。次要的、非面向用户的系统接口是后端连接器的接口,通过该接口,设计工具300可以与各种后端服务器108通信,例如Web服务提供者和相关数据库。如上所述,设计工具300可以被建立在EclipseTM平台上。相应地,用户模块301是扩展EclipseTM类和利用EclipseTM框架的插件模块301。
UI层306能够访问作为EclipseTM的标准窗口小部件工具包(SWT)而为人所知的扩展的窗口小部件集和图形库。此外,用户模块301可以利用被称为Jface的更高层级工具包,Jface中包括如列表、树和表格的标准查看器类及用于添加命令到菜单和工具条的动作框架。设计工具300也可以使用图形编辑框架(GEF)来执行图表编辑器。用户模块301典型地遵循模型-视图-控制器设计模式,其中每个用户模块301都是视图和控制器。
模型层312包括设计时间模型308和运行时间模型310,并表示应用的永久状态。UI层306和模型层312的层的分离将专用于呈现的信息保持在不同视图中,并允许多个用户模块301来响应数据模型的改变。
在本实施例中,数据模型308、310是基于EclipseTM模型框架(EMF)。EMF是一种框架和代码产生设施。该框架提供模型改变通知、永久支持和有效API用于一般地操作EMF对象。代码产生设施用于产生模型实现和创建适配器来连接模型层312与UI层306。
服务层314为UI层306提供服务,如验证服务,本地化服务,产生器服务,建立服务和部署(deployment)服务。
本地化服务负责支持用户可视字符串的建立时间本地化、支持附加的本地化设置(如缺省时间和日期显示格式、缺省数字显示格式,显示货币格式等)以及创建可以在可部署应用的准备期间使用的资源束文件(在JAR文件中)。例如,本地化服务可以被实现为资源模块,用于收集位于设计时间模型308中的资源以将其包括在可部署应用中。JAR文件可以是包括针对应用的类、图像和声音文件的文件,这些类、图像和声音文件被聚集入单个文件并进行压缩以有效地将其下载至无线设备。
产生器服务采用本地化服务来产生用户定制的的资源束,例如语言专用束。建立服务实现资源束的转变并将其与可部署应用封包在一起。本地化服务与工具编辑器和查看器进行交互,以设置或操作应用的语言字符串和本地设置。
产生器服务按需要从定义的组件中产生应用XML,产生映射文档,优化组件描述符的字段顺序,并且产生依赖性和脚本转换。为了实现上述功能,产生器服务与设计时间模型308合作来获得包括应用的已开发组件的内容。产生器服务使用验证服务来检查应用定义和映射文档均是可行的。
然后,产生器服务产生应用XML,其中包括和/或增加了工作流程组件和来自设计时间模型308中保存的关系的映射文档的脚本。产生器服务使用本地化服务,以通过资源束接口来产生语言资源束。
设计工具300采用EclipseTM扩展点来为两种类型的服务加载附加的插件:后端连接器316和设备皮肤318。后端连接器316定义了用于实现与不同后端服务器108进行通信的扩展点。设备皮肤318定义了允许设计工具300模仿不同设备102的扩展点。
后端连接器316负责连接到后端服务器中所选择的一个(或更多个),提供用于访问后端数据源的描述的接口,和/或提供将通知推送到无线设备102的通知服务的标识。后端连接器316提供了至后端服务器108的接口,用于访问数据源描述,并且能够提供后端消息的实现专用的细节与由设计时间模型308维护的一般消息描述之间的抽象层次。例如,后端连接器316用于为应用产生适合的消息和数字组件集合,并且被模型验证器用于验证开发中的应用中现有消息映射关系的有效性。例如,后端连接器316可以被实现为接口,该接口使用API调用作为访问下层的后端数据源108的协议,例如使用针对Web服务的Web服务定义语言(WSDL)接口。
UI层306采用模型-视图-控制器(MVC)模式,其中,每个用户模块301可以为查看器和控制器。作为控制器,用户模块301采用由MVC模式定义的一些相关的控制逻辑来与模型层312交互。在本实施例中,编辑器和查看器是在实现后立即进行模型改变的用户模块301的示例。向导是由一系列的一个或更多对话接口逐步驱动的用户模块301,其中,每个对话接口从设计工具300的用户收集指定信息。向导304直到收到确认(如选择结束按钮)后才对模型加以改变。
作为查看器,用户模块301是模型观察器,并且用于交互或测试及修改应用的模型。当模型数据改变时,通过更新应用的呈现来通知和响应该模型。设计时间模型308是开发中的应用的当前版本,采用用户模块301的用户能够对其进行访问,以与设计时间模型308的相关联数据进行交互。模块301还能够触发在设计时间模型308上的验证动作。用户模块301还能够致使从设计时间模型308中产生一些或全部应用。一般而言,设计时间模型308接收影响模型308状态的命令集合,并且相应地可能产生事件集合,每个用户模块301包括影响模块301和数据模型308对的命令和事件集合。
设计时间模型308表示了应用开发项目的状态,并且当设计时间模型308的状态已经改变时,通过通知用户模块301来与用户模块301交互。设计时间模型308的主要任务是定义应用,并且,相应地,可能包括:数据组件定义;全局变量定义;消息组件定义;资源定义;屏幕组件定义;脚本;风格定义。设计时间模块308响应编辑器和/或查看器的每个命令。响应于设计时间模型308中的改变,设计时间模型308也向用户模块301发送事件,当设计时间模型308已经改变时还与其它模块301通信。
参考图4,示出了如EclipseTM插件的用户模块301的分布。用户模块301一般地分成两类:文本编辑器400,实现标准的基于行的编辑功能;以及图形编辑框架(GEF)编辑器401,提供在其中可以绘制对象的编辑空间。如本领域所公知的,在设计工具300的环境中,GEF编辑器401可以包括调色板和画布。用户可以将节点(实体)从调色板放到画布上,并且增加连接来定义其间的关系,以定义应用组件的内容和相互关系。可以认识到,用户模块301用于创建和修改组件中包含的定义,还创建和修改其间的相互依赖关系。此外,可以认识到,根据需要,用户模块301可以是基于文本和/或基于图形的用户模块301的组合。
用户模块
如之前所述,用户模块301不直接知道设计时间模型308。一般而言,用户模块301创建命令来改变设计时间模型308,使得可以通过撤销(undo)API(未示出)来撤销改变。用户模块301可以配置有维护命令栈的称为编辑域的EMF核心对象。编辑域使用适配器工厂所来查找可以创建命令的适配器。所产生的适配器类(ItemProvider)创建命令。用户模块301通过采用命令栈来执行命令。此外,由于ItemProvider是通知观察器,当设计时间模型308改变时对其进行通知。ItemProvider反过来通知相应的提供器。在改变通知后,提供器指令用户模块301进行更新。
脚本编辑器
脚本编辑器406是受约束的文本编辑器,用于提供应用组件间的关系。典型地,该信息作为工作流程组件的部分来提供。可以对一些命令(例如创建函数)进行限制,使得在组件应用中它们不是用户可定义的。相应地,当创建函数时,由脚本编辑器406产生的事件是固定的。其它命令(例如SaveSript)可以由脚本编辑器406来编辑。当用户保存应用的脚本时使用SaveSript。在本实施例中,如果成功,则SaveSript触发设计时间模型308的事件:NavigationChanged、LocalizedStringChanged和ExitCodeChanged。
此外,脚本编辑器406可以对事件做出反应。例如,ComponentRemoved指示所移除的组件是否影响到脚本的输入参数或由脚本使用的全局变量。如果所移除的组件影响该脚本,则脚本编辑器406提示设计工具300的用户该脚本无效。
脚本编辑器的样本接口通过实现org.Eclipse.ui.editors.texteditor类的子类来扩展EclipseTM框架的org.Eclipse.ui.editors的扩展点。设计工具300协调组件中脚本的创建和/或修改,以及影响应用的其它相关组件的脚本的相互关系。
屏幕编辑器
屏幕编辑器408实现了与设备102上数据显示相关的屏幕组件中结构化定义语言代码的创建和修改。屏幕组件中包含的UI控件可以放到编辑器中表格画布上。屏幕编辑器408可以编辑包括时间句柄的控件属性。
屏幕编辑器408可以编辑的样本命令包括下列命令。当开发者改变按钮控件时,将ButtonChange发送给设计时间模型308。如果成功,该命令触发设计时间模型308的NavigationControlChanged。当开发者改变菜单项时,发送MenuItemChange。如果成功,该命令触发设计时间模型308的NavigationControlChanged。当开发者改变脚本时,发送ChangeScript。如果成功,该命令触发设计时间模型308的NavigationControlChanged。当开发者需要应用的屏幕可能发送或更新的可用消息列表,并返回可用消息列表时,发送QueryMessages。当开发者需要可用数据对象列表来绑定控件并返回可用数据列表时,发送QueryData。当不影响导航的控件已经被修改时,发送NonNavigationControlChange。当数据绑定已经改变时,发送DataBindingChange。如果成功,该命令触发数据模型308的DataBindingChanged和ScreenParameterListChanged。
对屏幕编辑器408的样本输入事件包括如下事件。事件ComponentRemoved通知屏幕编辑器屏幕组件所引用的组件已经被移除。事件ComponentRenamed类似于ComponentRemoved。如果所使用的参数已经被修改,则事件ScreenParameterListChanged修改屏幕组件。屏幕组件或调整该参数或警告开发者这些依赖性不再有效并且必须改变。事件MessageFieldChanged检查以确定所针对的字段是否由屏幕组件使用。事件DataFieldChanged检查以确定被绑定至字段的任何控件是否已经改变,并且相应地警告开发者。
屏幕编辑器408的样本接口采用GEF GraphicalEditor和/或VE编辑器来扩展Eclipse框架的org.Eclipse.ui.editors。设计工具300协调屏幕组件中屏幕定义的创建和/或修改,以及影响应用的其它相关组件的屏幕定义的相互关系。
因此,与编程者/开发者的偏好,可以创建屏幕组件来考虑不同的模式信息,如根据当前通信模式在运行时间所选择的可选屏幕。
数据编辑器
通过为开发者提供编辑数据组件字段和属性的能力,数据编辑器410实现应用的数据组件中结构化定义语言代码的创建和修改。通过以现有数据对象为原型(prototyping)或基于对消息组件中消息对象的数据定义映射,可以从零开始创建新的数据对象。预定义的或内建的数据组件可以由工具200提供。例如,可以提供内建的数据组件411用于模式信息。此数据组件411可以用于向应用210提供模式信息209。可以定义工作流程217(例如,如下面所述)来响应模式信息和改变为模式信息。例如,工作流程可以使用包括传送失败通知的模式信息来触发对动作失败的处理(例如重新发送以能够使用不同的传送模式)或提示用户来指定动作。
数据编辑器410可编辑的样本命令包括如下命令。当开发者在数据对象定义中增加或移除字段时,发送AddRemoveFields。如果成功,该命令触发数据模型308的DataFieldChanged。当开发者将数据对象定义链接到外部数据对象(如Calendar或Contact数据对象)时,发送LinkToExternalData。如果成功,该命令触发数据模型308的DataFieldChanged。
对数据编辑器410的样本输入事件包括事件ComponentRemoved,检查以确定所移除的对象是否通过以其为原型或包含关系而与消息相关。然后,开发者可以调整受影响的数据对象中包含的字段。事件ComponentRenamed类似于ComponentRemoved。
采用GEF GraphicalEditor,屏幕编辑器408的样本接口扩展了org.Eclipse.ui.editor。设计工具300协调数据组件中数据定义的创建和/或修改,以及影响应用的其它相关组件的相关屏幕/消息定义和数据定义的相互关系。
消息编辑器
消息编辑器412实现了应用的消息组件中结构化定义语言代码的创建和修改。消息设计器允许开发者创建和编辑消息组件,用于向后端服务器108发送消息或从后端服务器108接收消息。这些消息可以包括请求/响应对,以及订阅/通知/未订阅通知消息。通过以现有消息为原型或通过基于后端服务器108的后端服务的模版,可以创建消息定义。
此外,消息编辑器提供定义消息属性的能力,如通过定义传送模式246或消息的可靠性等级。如上所述,可靠性等级定义了在设备102和应用网关106中如何处理消息,包括传送,确认和持续(persistence)。可以使用如下拉菜单或无线按钮选择的适合的UI输入机制来设置消息可靠性。可以在每一消息或每一应用层次上设置消息可靠性。相似地,可以使用如无线按钮或选择来指示传送模式。可以为传送模式分配优先级。在运行时间,提供消息支持的MDS运行时间环境202能够根据消息的属性和从通信接口移动设备212确定的信息来处理消息。
消息编辑器412能够编辑的样本命令包括AddRemoveFields,当在消息组件中的消息中增加或移除字段时发送该命令。
对消息编辑器412的样本输入事件包括如下事件。事件ComponentRemoved检查以确定引用消息定义的组件是否已经被移除。事件ComponentRenamed与ComponentRemoved类似。事件FieldMappingChanged检查以确定字段映射是否影响正在被编辑的消息定义。
屏幕编辑器408的样本接口采用GEF GraphicalEditor来扩展Eclipse框架的org.Eclipse.ui.editors。设计工具300协调消息组件中消息定义的创建和/或修改,以及影响应用的其它相关组件的已创建/修改的消息的相互关系。
工作流程编辑器
工作流程编辑器402实现了创建和修改应用的工作流程组件402中的命令代码。工作流程比较器402定义形成组件应用的可视部分的核心的屏幕到屏幕的转移。可视地呈现由用户/脚本事件导致的屏幕和屏幕间的转移。
工作流程217可以被定义为响应模式消息209来改变应用的特定行为(例如所使用的UI屏幕)。例如,一旦确定特定消息传送失败,工作流程可以协调弹出屏幕或其它屏幕来通知用户,并且提供界面来请求重发。作为另一个示例,响应于模式信息,可以使不同的用户动作选择可用。当低费用的通信模式可用时,工作流程可以使特定UI单元可用,以启动在仅高费用模式可用的情况下可能不期望的动作。可选地,工作流程可以使动作可用,但是对消息进行排队,直到低费用模式可用或向用户建议:继续将导致采用高费用模式通信,向用户提供取消调用的选项。
可由工作流程编辑器402编辑的样本命令包括如下命令。当开发者需要屏幕列表以从中选择时,如当增加新屏幕到工作流程时,发送QueryScreens。当开发者需要脚本列表来调用屏幕导航事件时,发送QueryScripts。当开发者需要响应消息列表(包括通知)以在其上进行关键屏幕转移时,发送QueryArrivingMessages。当开发者想要向工作流程添加工作流程中尚不存在的新屏幕、消息或脚本时,发送AddComponent。如果成功,该命令触发数据模型308的ComponentAdded。当开发者添加新的导航节点到工作流程时,发送ChangeNavigation。如果成功,该命令触发设计时间模型308的NavigationChanged。
对工作流程编辑器402的样本输入事件包括如下事件。事件ComponentRemoved检查以确定移除的组件是否是工作流程对象。工作流程通过删除与该对象定义的所有关系来更新自身。事件ComponentRenamed检查以确定重命名的组件是否是工作流程对象。工作流程采用该组件的新名称来更新其可视内容。事件NavigationControlChanged检查以确定工作流程是否需要基于控制改变来更新其导航视图。例如,如果已经将按钮添加到工作流程中的屏幕,则更新视图来显示在该屏幕上新导航节点的可用性。事件ScreenParameterListChanged检查以确定屏幕的参数列表是否已经改变以及屏幕是否在工作流程中。对涉及该屏幕的任何导航的视图进行更新。事件NavigationChanged检查以确定是否已经发生可能的导航改变。对改变进行解析,并对视图进行任何必要的更新。事件ExitCodeChanged检查以确定退出点是否已经被添加/移除。更新编辑器视图来可视地反映这一点。
屏幕编辑器408的样本接口采用GEF GraphicalEditor来扩展Eclipse框架的org.Eclipse.ui.editors。
消息-数据关系编辑器
消息-数据关系编辑器404实现了创建和修改应用中互相关联的消息和数据组件中的结构化定义语言代码。消息/数据关系编辑器创建和编辑消息组件和数据组件之间的关系。这些映射实现了当运行应用时如何将数据组件填充至到达设备102的消息上。例如,数据和消息组件之间公共的数据对象定义可以存在,使得数据对象定义驻留于数据组件中,而将消息组件链接到数据组件中数据对象定义的数据映射定义驻留于消息组件中,或反之。对于屏幕和数据组件之间公共的数据对象定义,可以采用相似的配置,由此,数据对象定义驻留于组件之一中,并且数据映射定义驻留于另一个相关联的组件中。
编辑器404能够编辑的样本命令包括如下命令。当新数据或消息被添加到关系图表(其也具有将该组件添加到正在开发的应用中的效果)时,发送AddComponent。如果成功,该命令触发设计时间模型308的ComponentAdded。当开发者需要消息列表来进行映射时,发送QueryMessages。当开发者需要数据列表来进行映射时,发送QueryData。当开发者改变消息-层次映射时,发送ChangeMessageLevelMapping。如果成功,该命令触发数据模型308的FieldMappingChanged。当开发者改变字段-层次映射时,发送ChangeFieldLevelMapping。如果成功,该命令触发数据模型308的FieldMappingChanged。当开发者改变数据对象间的原型关系时,发送ChangePrototype。如果成功,该命令触发数据模型308的FieldMappingChanged。当开发者改变数据对象间的包含关系时,发送ChangeContainment。如果成功,该命令触发数据模型308的MessageContainmentChanged。
对编辑器404的样本输入事件包括如下事件。事件ComponentRemoved检查以确定移除的对象是否为消息或数据。关系映射器删除涉及被移除对象的任何关系。事件ComponentRenamed检查以确定任何映射关系是否涉及重命名的对象。使用新名称来更新所映射对象的可视表示。事件MessageFieldChanged检查以确定所涉及的消息是否出现在关系编辑器中。然后在消息的可视表示中反映字段的改变。如果映射涉及所针对的字段,则反映改变,并且如果可应用则可能需要向开发者警告存在已破坏的映射。事件DataFieldChanged类似于MessageFieldChanged,只是用数据代替消息。
编辑器404的样本接口采用GEF GraphicalEditor来扩展org.Eclipse.ui.editors。设计工具300协调消息/数据组件中消息/数据定义的创建和/或修改,以及影响应用的其它相关组件的已创建/修改的消息/数据定义的相互关系。
本地化编辑器
本地化编辑器414允许开发者收集对应用终端用户(设备100的用户)可见的所有字符串,并且将其一起进行编辑。编辑器414还允许开发者为每个字符串创建多个资源映射,以映射到不同语言。编辑器414能够编辑的样本命令包括当开发者添加、删除或改变本地化字符串时发送的ChangeLocalizeString。对编辑器414的样本输入事件包括LocalizedStringChanged,用于确定脚本编辑器中何时改变了字符串文字或屏幕编辑器408中何时改变了标签。通过扩展EditorPart,本地化编辑器414能够扩展org.Eclipse.ui.editor接口。
后端可视化器编辑器
后端可视化器编辑器416向开发者展示消息组件和驱动该组件的后端服务器之间的关系,后端可视化器编辑器416还允许开发者将新的后端服务器添加到由开发中应用所支持的后端服务器列表。除了与设计时间数据模型308交互之外,如针对采用接收的命令和事件的其它模块301所描述的,后端可视化器编辑器416与后端连接器合作。后端连接器316允许可视化器从已知服务类型的登记单元中请求ServicesInterface。返回此类型的服务列表,使其能够通过名字或通过迭代操作来查询。
编辑器416能够编辑的样本命令包括如下命令。当开发者添加新的消息时,发送AddComponent。如果成功,该命令触发数据模型308的ComponentAdded。当开发者将消息连接到所选择的后端服务器108时,发送SpecifyMapping。
对编辑器416的样本输入事件包括如下事件。事件ComponentRemoved检查以确定组件是否为消息。后端可视化器调整对该消息的映射。事件ComponentRenamed与ComponentRemoved相似。相对于后端服务器108上所存在的,事件MessageFieldChanged验证消息字段,并且将任何已破坏的映射可视地通知给开发者。通过进行对服务层的调用来访问后端服务器108。可选地,后端处理可以用于防止网络处理对UI线程的阻挡。编辑器416能够使用GEF GraphicalEditor来扩展org.Eclipse.ui.editors。
建立服务
设计工具300还包括用于建立可部署形式应用的建立服务,并且例如以JAR格式来产生可部署应用束文件。建立服务接收/检索应用单元,如可用应用XML、映射文档、资源束和如上所述的资源。产生器服务通过设计工具300来提供这些应用单元。建立服务包括用于产生可部署应用束的建立引擎。应用束对部署服务可用。
可以认识到,建立服务可以被封包为应用开发环境107的部分或与其分离。后者的情况将使开发者能够绕过使用设计工具300来开发组件应用。因此,开发者仍然能够通过外部接口访问建立服务,以建立应用束。
部署服务
部署服务连接到存储库124来存放和/或发布针对给定应用所产生的部署描述符。部署服务还提供部署时间中的可用应用JAR文件。尽管部署服务不安装应用JAR文件,但是部署服务检查JAR文件来确定支持何种本地化组件(如何种语言)。可以将该信息添加到描述符文件。与建立服务相似,部署服务可以被封包为应用开发环境107的部分或与其分离。
数据源更新模块
用户界面层306还可以包括数据-源(DS)更新模块420。DS更新模块420是一种机制,通过该机制,现有基于组件的应用通过将基于组件的应用及其相应的映射文档适配到新的数据-源描述文档,以允许有条件地和部分地重用其当前组件结构。在本实施例中,映射文档是将应用中部分和单元映射到DS描述文档中相应部分和单元的XML文档,在WSDL中定义了该文档。
通过重新指向其旧的位置或指向新的位置,DS更新模块420提供重新发现DS描述文档的能力。根据需要,在编程者控制下,如果DS描述文档已经被改变,则DS更新模块420对改变进行分析,并且能够针对该改变来自动更新组件应用定义。
图5是可以被配置为如所述移动设备102的手持无线通信设备500的实施例的详细框图。手持设备500优选为具有至少语音和高级数据通信能力(包括与其它计算机系统通信的能力)的双向通信设备。根据手持设备500提供的功能,它可以被称为数字消息设备、双向寻呼机、具有数据消息能力的蜂窝电话、无线因特网装置或数据通信设备(有或没有电话能力)。在本实施例中,手持设备500具有Wi-Fi收发器和蜂窝收发器能力。这样的设备500可以在各模式下与其地理覆盖区域中多个接入点和基站收发器系统(未示出)中的任何一个进行通信。
手持设备500可以使用蜂窝收发器(通信子系统)511,该收发器包括接收机512、发射机514和相关的部件,如一个或更多个(优选嵌入式或内部)天线元件516和518、本地振荡器(LO)513以及如数字信号处理器(DSP)520之类的的处理模块。如对于通信领域的技术人员显而易见的,通信子系统511的具体设计取决于期望手持设备500在其中操作的通信网络。
在请求的网络注册和激活程序完成后,手持设备500可以在网络上发送和接收通信信号。由天线516通过网络接收的信号被输入到接收机512,接收机512可以执行普通接收机功能,如信号放大,频率下转换,滤波,信道选择和模数(A/D)转换。接收信号的A/D转换允许更复杂的通信功能,如要在DSP 520中执行的解调和解码。以相似的方式,对要发送的信号进行处理,包括由例如DSP 520进行的调制和编码。这些DSP处理的信号被输入到发射机514进行数模(D/A)转换,频率上转换,滤波,放大并通过天线518在通信网络上发送。DSP 520不仅处理通信信号,还为接收机和发射机提供控制。例如,通过DSP 520中实现的自动增益控制算法,可以自适应地控制应用到接收机512和发射机514中通信信号的增益。
网络访问与手持设备500的订户或用户相关联,因此,手持设备500包括存储器模块572(存储器模块卡或可移除用户身份模块(R-UIM)),将其插入或连接到接口574以在网络中操作。可选地,存储器模块572可以是由服务提供者使用配置数据来进行编程的非易失性存储器,使得移动台500可以在网络中操作。因为手持设备500是一种移动的电池供电的设备,因此它也包括用于接收一个或多个可充电电池556的电池接口554。这样的电池556向手持设备500中的大部分(如果不是所有)电路提供电能,电池接口554为电池556提供机械和电连接。电池接口554耦合至向所有电路提供电能V+的调节器(图5中未示出)。
手持设备500可以包括Wi-Fi收发机521,Wi-Fi收发机521包括与适配于一个或更多Wi-Fi协议的子系统511相似的组件/芯片集,。
手持设备500包括控制移动台500的总体操作的微处理器538。通过通信子系统511来执行包括至少数据和语音通信的通信功能。微处理器538也与附加的设备子系统进行交互,如显示器522、闪存存储器524,随机存取存储器(RAM)526、辅助输入/输出(I/O)子系统528、串行端口530、键盘532、扬声器534、麦克风536、短距离通信子系统540和整体上由542来标记的任何其它设备子系统。图5所示的一些子系统执行通信相关功能,而其它子系统可以提供“常驻(resident)”或设备上的功能。显然,例如键盘532和显示器522的一些子系统可以用于通信相关功能(如输入用于在通信网络上发送的文本消息)以及设备常驻功能(如计算器或任务列表)。微处理器538使用的操作系统软件优选存储在例如闪存存储器524的永久存储器中,可选地,该永久存储器可以是只读存储器(ROM)或相似的存储元件(未示出)。本领域的技术人员可以理解,操作系统、指定设备应用(例如运行时间202和设备“组件”应用210)或其部分,可以被临时加载到如RAM526的易失性存储器中。
除了其操作系统功能之外,优选地,微处理器538能够在手持设备500上执行软件应用。控制基本设备操作的预定应用集合(至少包括数据和语音通信应用),通常在手持设备500的生产期间被安装在手持设备500上。可能加载到手持设备500上的优选应用可以是具有组织和管理与用户相关的数据项(例如但不限于:电子邮件、日历事件、语音邮件、约会和任务项)的能力的个人信息管理器(PIM)应用。自然地,在手持设备500上可用一个或多个存储器,存储器模块572实现了PIM数据项和其它信息的存储。
优选地,PIM应用有能力通过无线网络发送和接收的数据项。在优选实施例中,通过无线网络,PIM数据项与存储于主计算机系统和/或与主计算机系统相关联的移动台用户的相应数据项进行无缝集成、同步和更新,从而关于这些数据项在手持设备500上创建了镜像的主计算机。这在主计算机系统是移动台用户的办公室或企业计算机系统的情况下特别有利。通过网络,附加的应用也可以被加载到手持设备500上,用户能够将辅助I/O子系统528、串行端口530、短距离通信子系统540或任何其它适合的子系统542安装到RAM526中或优选地安装到非易失性存储器(未示出)中以由微处理器538执行。应用安装中的这样的灵活性增加了手持设备500的功能,并且可以提供增强的设备上的功能、通信相关功能,或者两者。例如,安全通信应用可以使电子商务功能和其它这些金融交易能够使用手持设备500来执行。
在数据通信模式中,接收信号(如文本消息、电子邮件消息或网页下载,或根据应用210的消息)由可应用的通信子系统511或512来处理,并输入到微处理器538。优选地,根据相关的应用,微处理器538进一步处理该信号,以将其输出到显示器522或可选地输出到辅助I/O设备528。手持设备500的用户还可以根据相关的应用来制作数据项,例如采用键盘532结合显示器522并可能地结合辅助I/O设备528来编写电子邮件消息。键盘532优选是完整的字母数字的键盘和/或电话类型的小键盘。通过通信子系统511或521,可以在通信网络上发送这些所制作的项目。
对于语音通信,手持设备500的总体操作基本相似,除了接收的信号将被输出到扬声器534以及用于传送的信号将由麦克风536产生。也可以实现可选的语音或音频I/O子系统(如语音消息记录子系统)。尽管语音或音频信号输出优选主要通过扬声器534来完成,然而作为一些示例,显示器522也可以用于提供呼叫方身份、语音呼叫持续时间或其它与语音呼叫相关的信息的指示。
图5中的串行端口530通常在个人数字助理(PDA)类型的通信设备中实现,对于该设备,需要与用户的台式计算机同步是期望的(虽然是可选的)组件。串行端口530使用户能够通过外部设备或软件应用设置偏好,并通过不通过无线通信网络来向手持设备500提供信息或软件下载以扩展手持设备500的能力。例如,可选下载路径可以用于将加载密钥通过直接并从而可靠和可信的连接到手持设备500上,从而提供安全设备通信。同样地,它也可以如上面描述的作为应用210的一种传送模式。
短距离通信子系统540是为手持设备500和不同系统或设备(不需要为相似设备)之间提供通信的附加的可选组件。例如,子系统540可以包括红外设备和相关电路或组件,或BluetoothTM通信模块,以提供与相似能力的系统和设备的通信。BluetoothTM可以如上面描述的作为应用210的一种传送模式。
尽管描述主要与无线模式操作相关,但是本领域普通技术人员能够理解,根据网络基础结构的适当改变,设备102可以被配置为从不同无线模式和有线模式中选择的多模式操作。应用210可以被配置为根据多种无线模式、有线模式和无线及有线模式来操作。操作还可以被配置为选择同一类型的不同模式。例如,在可用Wi-Fi网络中进行选择,或从不同蜂窝服务提供者中选择可用蜂窝网络。
尽管这里已经描述了本发明的具体实施例,但是本领域技术人员可以理解,在不脱离本发明精神或所附权利要求的范围的前提下,可以对其做出变型。
Claims (21)
1.一种多模式通信设备,具有计算机可读存储器,所述计算机可读存储器上存储有用于在至少两种网络通信模式中进行通信的指令,所述多模式通信设备包括:
至少一个通信子系统,被配置为在包括第一无线或有线网络通信模式和第二无线或有线网络通信模式的至少两种网络通信模式中进行通信,模式信息包括关于每一个通信模式是否可用的信息;以及
处理器,被配置为执行运行时间环境,所述运行时间环境响应于每种网络通信模式的通信特性,在运行时间提供模式信息;
所述处理器被配置为执行应用,所述应用通过包括传送模式属性的消息,使用第一和第二通信模式中的至少一种来进行通信以获得后端服务,所述传送模式属性指示了使用第一模式、第二模式还是两者来通信所述消息,其中,所述应用的操作响应于运行时间的模式信息,从而根据所述消息的传送模式属性和模式信息来通信所述消息。
2.根据权利要求1所述的多模式通信设备,其中,所述应用包括由用于消息、数据、工作流程和用户界面操作的组件来定义的组件应用,以及,所述运行时间环境提供了对组件应用的产生、容纳和执行的支持。
3.根据权利要求2所述的多模式通信设备,其中,所述组件应用包括工作流程组件,所述工作流程组件定义了消息事件和用户界面动作的操作,以及,所述工作流程组件响应于模式信息。
4.根据权利要求2所述的多模式通信设备,其中,所述组件应用包括消息组件,所述消息组件定义了用于进行通信以获得后端服务的消息,所述消息组件包括所述消息的消息定义,所述定义包括传送模式属性,所述传送模式属性指定了所述模式中的至少一种,以用于通信所述消息中的至少一些。
5.根据权利要求4所述的多模式通信设备,其中,所述消息定义对每个消息指定所述传送模式属性。
6.根据权利要求5所述的多模式通信设备,其中,在运行时间期间向通信网关服务器提供所述传送模式属性,所述通信网关服务器被配置为代表所述多模式通信设备与后端服务器进行通信以获得后端服务。
7.根据权利要求1至6中任一项所述的多模式通信设备,其中,所述通信模式包括从无线和有线通信模式中选择的多种不同模式。
8.根据权利要求1至7中任一项所述的多模式通信设备,其中,所述第一模式根据第一无线通信标准来操作,所述第二模式根据第二无线通信标准来操作。
9.根据权利要求1至8中任一项所述的多模式通信设备,其中,通过应用编程接口来提供所述模式信息,所述应用编程接口根据发布/订阅/通知范例来操作。
10.根据权利要求1至9中任一项所述的多模式通信设备,包括至少一个队列以及队列管理器,用于根据通信模式和运行时间的模式信息来管理通信。
11.一种用于多模式通信设备的多模式通信方法,所述多模式通信设备被配置用于通过至少一个通信子系统在至少两种网络通信模式中进行通信,所述至少两种网络通信模式包括第一无线或有线网络通信模式和第二无线或有线网络通信模式,所述方法包括以下步骤:
执行应用,所述应用被配置为使用运行时间环境所支持的所述通信模式中的至少一种来进行通信,所述运行时间环境响应于每种通信模式的通信特性,在运行时间提供模式信息;以及
使用第一和第二模式中的至少一种来与后端服务器进行通信以接收后端服务,其中,所述应用的操作响应于运行时间的模式信息,并且,所述通信步骤包括:使用消息,所述消息包括消息传送属性以指示使用第一模式、第二模式还是两者来通信所述消息;以及根据传送模式属性来发送所述消息。
12.根据权利要求11所述的方法,其中,所述应用包括由用于消息、数据、工作流程和用户界面操作的组件来定义的组件应用,以及,所述运行时间环境提供了对组件应用的产生、容纳和执行的支持。
13.根据权利要求12所述的方法,其中,所述组件应用包括工作流程组件,所述工作流程组件定义了消息事件和用户界面动作的操作,以及,在执行所述操作时,所述工作流程组件响应于所述模式信息。
14.根据权利要求12所述的方法,其中,所述组件应用包括消息组件,所述消息组件定义了用于进行通信以接收后端服务的消息,所述消息组件包括所述消息的消息定义,所述定义包括传送模式属性,所述传送模式属性指定了所述模式中的至少一种,以用于通信所述消息中的至少一些。
15.根据权利要求14所述的方法,其中,所述消息定义对每个消息指定所述传送模式属性,使得所述方法对每个消息通信所述传送模式属性。
16.根据权利要求15所述的方法,包括在运行时间期间向通信网关服务器通信所述传送模式属性,所述通信网关服务器被配置为代表所述应用与后端服务器进行通信以获得后端服务。
17.根据权利要求11至16中任一项所述的方法,其中,所述通信模式包括从无线和有线通信模式中选择的多个不同模式。
18.根据权利要求11至17中任一项所述的方法,其中,所述第一模式根据第一无线通信标准来操作,所述第二模式根据第二无线通信标准来操作。
19.根据权利要求11至18中任一项所述的方法,其中,通过应用编程接口来提供所述模式信息,所述应用编程接口根据发布/订阅/通知范例来操作。
20.根据权利要求11至19中任一项所述的方法,包括:根据通信模式和运行时间的模式信息,使用至少一个队列和队列管理器来管理通信。
21.一种通信网络系统,用于与后端服务器进行通信以获得后端服务,包括:
根据权利要求1到10中任一项的多模式通信设备,以及
通信网关服务器,包括:
至少一个服务器通信子系统,耦合用于根据所述通信模式中的至少一种来与所述多模式通信设备通信;
消息处理器,用于处理与所述多模式通信设备通信的消息;以及
模式选择器,用于响应于从所述多模式通信设备接收的传送模式属性来选择用于发送特定消息的模式。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP07110421.0 | 2007-06-15 | ||
EP07110421A EP2003843B1 (en) | 2007-06-15 | 2007-06-15 | Device for communicating in multiple modes using multi-mode applications |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101420787A CN101420787A (zh) | 2009-04-29 |
CN101420787B true CN101420787B (zh) | 2012-04-04 |
Family
ID=38847027
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810179996.1A Active CN101420787B (zh) | 2007-06-15 | 2008-06-16 | 使用多模式应用以多种模式进行通信的设备 |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP2003843B1 (zh) |
CN (1) | CN101420787B (zh) |
AT (1) | ATE505016T1 (zh) |
CA (1) | CA2635172C (zh) |
DE (1) | DE602007013731D1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103154940A (zh) * | 2010-10-04 | 2013-06-12 | 瑞典爱立信有限公司 | 数据收集系统中的数据模型模式更新 |
US9614914B2 (en) | 2011-11-18 | 2017-04-04 | Thomson Licensing | System comprising a publish/subscribe broker for a remote management of end-user devices, and respective end-user device |
WO2014143028A1 (en) | 2013-03-15 | 2014-09-18 | Intel Corporation | Budgeting and quota management system for data consumption |
CN108260184B (zh) * | 2016-12-28 | 2021-05-07 | 上海掌门科技有限公司 | 一种执行WiFi模式任务的方法与设备 |
CN109766075B (zh) * | 2018-11-29 | 2022-09-09 | 北京予能丰智技术有限公司 | 一种基于微服务的企业级软件构建方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1538782A (zh) * | 2003-02-12 | 2004-10-20 | ���ǵ�����ʽ���� | 利用有线和无线通信系统的综合无线服务设备及其方法 |
CN1713667A (zh) * | 2004-06-25 | 2005-12-28 | 联想(北京)有限公司 | 一种使移动终端实现多模通信的系统和方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6801777B2 (en) * | 2001-11-27 | 2004-10-05 | Intel Corporation | Device and method for intelligent wireless communication selection |
US20040220998A1 (en) | 2002-12-26 | 2004-11-04 | Michael Shenfield | System and method of building wireless component applications |
US7409674B2 (en) | 2002-12-26 | 2008-08-05 | Research In Motion Limited | System and method of creating and communicating with component based wireless applications |
US7555538B2 (en) | 2002-12-26 | 2009-06-30 | Research In Motion Limited | System and method for building and execution of platform-neutral generic services' client applications |
US20040131078A1 (en) * | 2003-01-03 | 2004-07-08 | Gupta Vivek G. | Apparatus and method for supporting multiple wireless technologies within a device |
US20070130333A1 (en) * | 2005-12-02 | 2007-06-07 | Sanjeev Bhalla | Wireless application connection auto-detection mechanism |
-
2007
- 2007-06-15 AT AT07110421T patent/ATE505016T1/de not_active IP Right Cessation
- 2007-06-15 EP EP07110421A patent/EP2003843B1/en active Active
- 2007-06-15 DE DE602007013731T patent/DE602007013731D1/de active Active
-
2008
- 2008-06-16 CA CA2635172A patent/CA2635172C/en active Active
- 2008-06-16 CN CN200810179996.1A patent/CN101420787B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1538782A (zh) * | 2003-02-12 | 2004-10-20 | ���ǵ�����ʽ���� | 利用有线和无线通信系统的综合无线服务设备及其方法 |
CN1713667A (zh) * | 2004-06-25 | 2005-12-28 | 联想(北京)有限公司 | 一种使移动终端实现多模通信的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
DE602007013731D1 (de) | 2011-05-19 |
EP2003843A1 (en) | 2008-12-17 |
ATE505016T1 (de) | 2011-04-15 |
EP2003843B1 (en) | 2011-04-06 |
CA2635172A1 (en) | 2008-12-15 |
CA2635172C (en) | 2012-02-07 |
CN101420787A (zh) | 2009-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102223736B (zh) | 与使用多模式应用的多模式设备进行通信的服务器 | |
CN100435094C (zh) | 为组件应用程序建立混合模式执行环境的系统和方法 | |
RU2363039C2 (ru) | Контейнер данных для данных контента пользовательского интерфейса | |
US8732652B2 (en) | System and method for creating multi-mode applications | |
US9277033B2 (en) | Server for communicating with multi-mode devices using multi-mode applications | |
US7720953B2 (en) | System and method of data source detection | |
US20060235928A1 (en) | System and method for creating a mapping document for binding messages between an application and an associated backend server | |
CN101420787B (zh) | 使用多模式应用以多种模式进行通信的设备 | |
US20080229274A1 (en) | Automating Construction of a Data-Source Interface For Component Applications | |
CN101414260B (zh) | 用于创建多模式应用的系统和方法 | |
US9425988B2 (en) | Device for communicating in multiple modes using multi-mode applications | |
US20080088877A1 (en) | System and Method for Updating Reference to a Data-Source In a Component-Based Application | |
EP1978441A1 (en) | System and method for updating reference to a data-source in a component-based application |
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 |