CN1812383A - 供应组件应用程序的系统和方法 - Google Patents

供应组件应用程序的系统和方法 Download PDF

Info

Publication number
CN1812383A
CN1812383A CN200610006226.8A CN200610006226A CN1812383A CN 1812383 A CN1812383 A CN 1812383A CN 200610006226 A CN200610006226 A CN 200610006226A CN 1812383 A CN1812383 A CN 1812383A
Authority
CN
China
Prior art keywords
component applications
message
equipment
application
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN200610006226.8A
Other languages
English (en)
Other versions
CN100566311C (zh
Inventor
迈克尔·谢菲尔德
布伦杜沙·弗里奇
肖恩·泰勒
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.)
Maliki Innovation Co ltd
BlackBerry Ltd
Original Assignee
Research in Motion Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Research in Motion Ltd filed Critical Research in Motion Ltd
Publication of CN1812383A publication Critical patent/CN1812383A/zh
Application granted granted Critical
Publication of CN100566311C publication Critical patent/CN100566311C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4541Directories for service discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

提出了一种用于供应由设备检索的组件应用程序的系统和方法。所述系统包括应用程序网关服务器,包括用于系统和设备之间的通信的消息代理器。所述应用程序网关服务器配置用于与供应服务器、发现服务器和打包应用程序进行通信。供应服务器包括配置用于服务于供应请求的供应服务和配置用于存储已打包组件应用程序的供应仓库。发现服务器配置用于存储和管理组件应用程序包。打包应用程序配置用于检索组件应用程序包,根据向其供应组件应用程序的设备从组件应用程序包中选择元素,利用所选择的元素创建组件应用程序分组,以及使已打包组件应用程序在设备上可用,以便检索。

Description

供应组件应用程序的系统和方法
技术领域
本发明总体上涉及一种用于向多个设备提供通信的通信系统,具体地,涉及一种用于在这种设备上供应组件应用程序的系统和方法。
背景技术
由于无线网络的发展,现在使用的无线设备的数量连续增长。这些设备包括移动电话、具有无线通信能力的个人数字助理(PDA)、双向寻呼机等。目前,随着可用无线设备的增多,在这种设备上运行的软件应用程序增大了其实用性。例如,无线设备包括针对希望城市的列表检索天气预报的应用程序,或使用户能够购买杂货的应用程序(application)。这些软件应用程序的优点在于,除了语音通信以外,还具有发送无线网络的数据以便向用户定时地提供有用服务的能力。然而,由于过多的不同类型设备、一些设备的受限资源以及将大量数据传送到设备的复杂性,开发软件应用程序仍然是困难且耗时的任务。
当前,设备被配置成用于通过基于因特网的浏览器和/或本机应用程序与网络服务进行通信。浏览器具有能够针对各种不同设备在交叉平台基础上进行操作的优点,但其缺点在于请求来自网络服务的页面(HTML格式的屏幕定义),这阻碍了包含在屏幕上的数据的持续性。浏览器的另一个缺点在于在运行时间处绘制(render)屏幕,这是资源密集的。用于浏览器的应用程序是用于设计平台无关应用程序的有效工具。因此,与平台无关的不同运行时间环境执行相同的应用程序。然而,由于不同无线设备具有不同能力和形式因素,可能不能随意地执行应用程序。此外,基于浏览器的应用程序经常需要足够的传输带宽来有效地进行操作,这可能成本较高,甚至对于一些无线设备是不可用的。
另一方面,针对特定无线设备平台开发了本机应用程序,由此向在该平台上运行的运行时间(runtime)环境提供相对优化的应用程序。然而,平台相关应用程序引入了多个缺点,包括开发相同应用程序的多个版本,以及尺寸相对较大,从而对无线设备的存储器资源造成负担。此外,应用程序开发员需要精通例如Java和C++的编程语言,以构造这种本机应用程序。
这里公开的系统和方法提供了一种用于在设备上供应基于组件的应用程序的通信系统,以便缓解或减轻至少部分上述缺点。
发明内容
根据本发明的一个方案,提供了一种系统,用于供应由设备检索(retrieval)的组件应用程序,所述系统包括:应用程序网关服务器,包括用于系统和设备之间的通信的消息代理器,所述应用程序网关服务器配置成用于与供应服务器和发现服务器进行通信,供应服务器包括用于服务于供应请求的供应服务和用于存储已打包组件应用程序的供应仓库,发现服务器用于存储和管理组件应用程序包;以及与应用程序网关进行通信的打包应用程序,用于检索组件应用程序包、根据向其供应组件应用程序的设备从组件应用程序包中选择元素、利用所选择的元素创建组件应用程序分组、以及使已打包组件应用程序在设备上可用。
根据本发明的另一个方案,提供了一种方法,用于由网关应用程序服务器向设备供应组件应用程序,所述方法包括步骤:在网关应用程序服务器处,接收供应组件应用程序的请求;确定是否打包所述组件应用程序,如果是,使其在设备上可用;从用于打包的组件应用程序仓库中,定位并检索与组件应用程序相关的组件应用程序包;通过以下操作对组件应用程序进行打包:根据向其供应组件应用程序的设备从组件应用程序包中选择元素、利用所选择的元素创建组件应用程序分组、以及使已打包组件应用程序在设备上可用。
附图说明
现在参考附图来描述仅作为示例的本发明的实施例。
图1是利于无线组件应用程序的网络的方框图;
图2是图1所示应用程序网关的详细方框图;
图3是消息接听应用程序(message listening application)的方框图;
图4是生命周期子系统的方框图;
图5是管理子系统的方框图;
图6是消息收发子系统的方框图;
图7是变换子系统的方框图;
图8是连接器子系统的方框图;
图9是安全子系统的方框图;
图10是日志子系统的方框图;
图11是配置子系统的方框图;
图12是实用性子系统的方框图;
图13是发现服务器的方框图;
图14是供应服务器的方框图;
图15是示出了运行时间初始化的流程图;
图16是示出了响应用程序户请求的发现的流程图;
图17是示出了响应来自管理员的推送的发现的流程图;
图18是示出了响应来自服务提供者的推送的发现的流程图;
图19是示出了组件应用程序的供应的流程图;
图20是示出了组件应用程序安装的确认的流程图;
图21是示出了处理来自组件应用程序的消息的流程图;
图22是示出了通知订阅的流程图;
图23是示出了通知的传送的流程图;
图24是示出了组件应用程序升级通知的传送的流程图;
图25是示出了运行时间环境升级通知的传送的流程图;
图26是示出了调度任务传送的流程图;以及
图27是示出了组件应用程序的方框图。
具体实施方式
为了方便,说明书中类似的数字表示在附图中的类似结构。参考图1,通常由数字100来表示通信基础设施。通信基础设施100包括:多个无线设备102、通信网络104、应用程序网关106和多个后端服务108。
无线设备102通常是个人数字助理(PDA),例如捷讯研究公司的BlackberryTM,还可以包括其它设备。每一个无线设备102包括能够主持多个组件应用程序的运行时间环境。
组件应用程序包括一个或多个数据组件、呈现组件(presentationcomponent)和/或以例如可扩展标记语言(XML)代码的结构化定义语言编写的消息组件。组件应用程序还可以包括工作流组件,所述工作流组件包含例如以ECMA脚本的子集编写、并且在一些实施例中能够嵌入在XML代码中的一系列指令。因此,由于对应用程序进行了划分,可以通过提供对应的呈现组件来编写针对多个设备的公共应用程序,而无需不得不重写其它组件。此外,将典型应用程序的大部分职责转移到组件应用程序的运行时间环境。在本说明书的最后来描述组件应用程序的细节。
无线设备102通过通信网络104与应用程序网关106进行通信。因此,通信网络104可以包括用于在无线设备102和应用程序网关106之间中继数据的多个组件,例如无线网络110、中继器112、协作服务器114和/或移动数据服务器116。
应用程序网关106包括网关服务器118、供应服务器120和发现服务器122。网关服务器118用作无线设备102上的运行时间环境和后端服务器108之间的消息代理。网关服务器118同时与供应服务器120和发现服务器122进行通信。网关服务器110通过适当链路与多个后端服务器108进行通信,例如网络服务108a、数据库服务108b以及其它企业服务108c。例如,网关服务器110分别通过简单对象访问协议(SOAP)和Java数据库连通性(JDBC)与网络服务108a和数据库服务108b相连。其它类型的后端服务器108及其对应链路对于本领域的普通技术人员是显而易见的。
首先,向每一个无线设备102供应建立各种协议和设置的维修手册,包括协作服务器114的连通性信息和/或移动数据服务器116。这些参数可以包括用于应用程序网关服务器118的统一资源定位符(URL)及其加密密钥。可选地,如果最初没有向无线设备102供应URL和加密密钥,则将其通过移动数据服务器116推送到无线设备102。然后,移动设备102能够通过应用程序网关服务器118的URL与应用程序网关106相连。
参考图2,示出了应用程序网关106的更详细图示。应用程序网关服务器118包括三层服务:基本服务层202、应用程序网关服务层204和应用程序服务层206。应用程序网关服务器118还包括管理服务208。
分别由供应服务器120和发现服务器120来提供供应服务210和发现服务212。
在最底层处,基本服务层202向其它高层的组件提供与系统无关的基本域服务。因此,例如,应用程序网关服务层204和应用程序服务层206中的所有子系统都能够使用基本服务层202中的子系统并与其进行协作。在本实施例中,基本服务层202包括实用性子系统210、安全子系统212、配置子系统214和日志子系统216。
应用程序网关服务层204提供无线组件应用程序域特定服务。这些服务提供了有效消息变换以及到后端系统108的传送,并提供无线设备102和组件应用程序生命周期管理。在本实施例中,应用程序网关服务层204包括生命周期子系统220、连接器子系统222、消息收发子系统224以及变换子系统226。
应用程序服务层206位于架构的顶部处并利用较低层提供的子系统来提供外部程序接口和用户接口。例如,由于其主要与外部系统上的应用程序进行通信,例如服务提供者生命周期应用程序、打包应用程序和消息接听应用程序的各种应用程序提供了外部程序接口。类似地,管理应用程序通过向用户提供访问并可能修改应用程序网关数据和/或参数的能力来提供用户接口。
管理服务208负责管理系统消息、无线设备102的管理、应用程序网关子系统的运行时间管理、支持和显示系统诊断、以及供应和发现服务的缺省实现的管理。
下面将详细描述应用程序网关106的组件。
消息接听应用程序
消息接听应用程序提供了接口,用于从无线设备102以及外部源接收消息并将其转发到消息收发子系统。此外,消息接听应用程序通常对消息源的有效性进行认证。
参考图3,更详细地示出了消息接听应用程序。消息接听应用程序包括三个接听器:通知接听器302、压缩消息接听器304以及移动数据服务确认接听器306。通知接听器302通过通知接口303接收通知并响应来自事件源108c的消息。
例如,可以利用网络服务(WS)事件来实现通知接口303。当在其它服务中发生事件时,网络服务经常希望接收消息,例如事件源和应用程序。在该领域中通过WS订阅提供注册兴趣的机制。WS订阅定义了针对一个网络服务(被称作订户)的协议,以便向另一个网络服务(被称作事件源)注册兴趣,以便接收有关事件的消息(被称作通知)。当事件源向订户通知事件时,将其称作WS事件。
压缩消息接听器304通过压缩消息接口305接收来自移动设备102的消息。移动数据服务确认接听器306通过移动数据服务接口307接收来自移动数据服务116的确认通知。三个接听器302、304和306中的每一个均通过接听器管理接口309来接收来自管理服务208的管理消息。
在本实施例中,利用超文本传输协议/基于安全套接字层的超文本传输协议(HTTP/HTTPS)来配置接听器接口303、305、307和309。然而,本领域的技术人员应当理解,已经将这些协议选为设计选择,当希望时可以使用其它协议。相应地,外部系统发送由适当接听器接收的HTTP/HTTPS请求。接听器得到消息、进行最小限度的变换并将其转发到消息收发子系统224。变换包括将HTTP报头信息复制到消息对象字段。例如,HTTP报头信息可以标识作为消息来源的移动数据服务116和无线设备102。
如前所述,消息接听应用程序认证作为消息源的移动数据服务116、无线设备102或事件源108是有效的。此外,如果需要可靠的消息,确保服务可用性并且接听器处理可用性攻击方案。为了利于此操作,消息收发子系统定义了针对在给定时间段内来自任意后端服务器108、组件应用程序或无线设备的消息以及连接的最大数目的阈值。管理员能够随意地修改该阈值,并通过管理服务208使特定例外可用。
此外,由于可以进行消息截取和应答攻击,接听器利用识别应答消息的机制来检测并禁止该攻击。这些机制通常包括使用现时(nonce)。将现时定义为随时间变化的参数。现时可以是时戳或易于限制或防止未授权应答或消息再现的其它特定标记。由于现时随时间变化,其可以用于确定消息是否是原始的,或原始消息的应答或再现。将现时用于防止截取和应答攻击是本领域公知的,当使用标准实现方案时,不再进行详细描述。
此外,除了或代替时间时戳技术,例如序列化的其它技术也可以用于防止应用程序消息的应答。通常,这种技术是本领域公知的,当使用标准实现方案时,不再进行详细描述。
生命周期子系统
参考图4,更详细地示出了生命周期子系统220。生命周期子系统包括生命周期服务402和设备仓库404。
生命周期服务402处理与无线设备104、运行时间环境生命周期和组件应用程序生命周期相关的设备发起消息。例如,这种消息可以涉及无线设备注册或暂停、无线设备更换、无线设备可用性、组件应用程序安装、升级或删除、以及运行时间环境升级。通过设备系统消息处理接口403向连接器子系统通信这些消息或者接收消息。
生命周期服务402还利用各种过滤器向无线设备和组件应用程序提供了查询能力。为了利于此特征,生命周期服务402通过设备信息查询/更新接口405与消息收发子系统224和管理子系统208进行通信。在本实施例中,利用用于查询和更新设备信息的Java应用程序接口(API)的集合来实现设备信息查询/更新接口405。典型的接口包括用于管理无线设备安全性和客户机管理策略的那些接口。
生命周期子系统220管理用于设备仓库404中向应用程序网关106注册的每一个无线设备104的安全性简档。每一个安全性简档包括用于每一个设备的安全对称密钥。该密钥用于无线设备104和应用程序网关106之间的安全通信。
客户机管理策略包括检索无线设备状态、搜索具有特定可编程准则的组件应用程序以及搜索具有特定可编程准则的设备。例如,可以确定在所有无线设备中安装了哪一个组件应用程序,或哪一个无线设备安装了特定的组件应用程序。
此外,管理子系统208向生命周期管理接口407提供了利于寿命子系统402和设备仓库404的管理。例如,管理子系统可以指示组件应用程序或运行时间环境的新版本的可用性。
因此,生命周期服务402管理所分配多个无线设备102中每一个的状态,包括存储于其中的运行时间环境和组件应用程序。将例如运行时间环境、组件应用程序状态和无线设备安全性设置的信息存储在生命周期仓库中。例如,安全性设置可以包括客户机管理策略和无线设备的加密密钥。
应用程序网关服务器118还允许使用被称作生命周期服务提供者的第三方生命周期组件,该组件通常在应用程序网关106的外部。为了利于生命周期服务提供者,在应用程序服务层设置生命周期服务提供者。生命周期服务提供者接听器负责接收来自生命周期服务提供者的、有关所有生命周期系统消息的通知,并将其发送到管理子系统208用于处理。此外,生命周期服务提供者还访问管理服务,以便配置应用程序网关服务器188或发送系统消息。
管理子系统
管理子系统208管理系统消息、系统设备、应用程序网关子系统、系统诊断和供应与发现服务的缺省实现。参考图5,示出了管理子系统208的更详细图示。管理子系统208包括管理服务502、管理控制台504和管理应用程序506。管理应用程序506包括Java管理扩展(JMX)应用程序508和网络服务应用程序510。
浏览器接口505将管理员与用于管理应用程序网关106的管理员控制台502相连。管理员接口503将管理服务502与用于传送管理系统消息的消息收发子系统224相连。管理应用程序506通过适当接口与其各自的第三方管理应用程序相连。例如,通过JMX接口509连接JMX应用程序508,并通过网络服务接口511连接网络服务应用程序510。
管理服务502处理组件应用程序和管理员或生命周期服务提供者通过生命周期管理接口发起的运行时间环境生命周期事件。这种事件的示例包括:利用推送供应安装组件应用程序、刷新加密密钥、升级组件应用程序或运行时间组件、去除组件应用程序、隔离组件应用程序和从隔离物上去除组件应用程序、应用程序组件应用程序清除脚本、向运行时间环境查询状态更新以及更新客户机管理策略。
管理服务502还负责无线设备104的管理。因此,管理服务502能够响应无线设备注册系统消息并保持无线设备设置,例如安全性密钥、移动数据服务URL、运行时间版本和状态。管理服务502还支持根据预定过滤器特性对设备进行列表的能力,例如查询设备的组件应用程序和运行时间环境设置,以及查询特定设备上的组件应用程序。
如果可应用,管理服务502还向管理员提供访问每个簇节点的应用程序网关子系统运行时间信息和设置以及执行系统相关任务的能力。这种任务包括查看消息收发子系统224运行时间信息,这种信息包括每个无线设备12和每个组件应用程序的消息信息以及队列中消息的数目,以及特定类型的汇合对象的数目的简短描述(snapshot)。管理员能够在运行时间处修改特定设置并删除或重新安排到期的消息。
由管理服务502提供的其它信息和设置包括以下内容。应用程序网关子系统参数用于修改。因此,例如管理员在运行时间处可以启用和禁用各种特征。数据库设置可以配置用于集中的应用程序网关数据库。该数据库可以包括所有子系统仓库。应用程序网关URL可以配置成对于外部系统是可访问的。例如,可以将URL分配给管理应用程序506以允许第三方的访问。此外,可以将URL分配给打包应用程序,以便允许供应服务的访问。
管理服务502还存储发现服务凭证、服务提供者凭证、移动数据服务参数和安全性参数。当接收到组件应用程序可用的通知消息时,发现服务凭证可用于认证发现服务。类似地,当接收到组件应用程序或运行时间环境生命周期消息时,包括其URL的服务提供者凭证可以用于认证服务提供者。移动数据服务参数可以用于将管理员与移动数据服务相连,并包括其IP地址、用户标识和口令。例如应用程序网关公共和私有密钥以及密钥刷新策略的应用程序网关安全性参数和设置用于对应用程序网关和外部应用程序之间的通信进行加密。
管理服务502还用于注册额外的子系统,例如定制连接器和生命周期接听器。
如果需要,网络服务应用程序510使用用于将服务提供者发起的系统消息定向到管理服务502的网络服务,以便进行处理并将其传送到设备。
类似地,如果需要,JMX应用程序508将服务提供者发起的系统消息定向到管理服务502,以便进行处理并将其传送到设备。然而,JMX接口509是任意管理系统卖方都能够作用的开放式接口。管理基础设施基于作为系统管理和监控的开放式技术的JMX技术。每一个管理系统实现了Mbean对象的集合以便可配置。根据JMX规范,必须将这些对象注册到在对象的处理空间中运行的Mbean服务器。
由于应用程序网关106可能在分布式环境中运行,即,一些子系统可能在不同的应用程序服务器上运行,则每一个应用程序服务器需要具有Mbean服务器的自身实现。此外,需要利用由对应应用程序服务器提供的分离管理控制台或利用已知如何访问由Mbean服务器提供的功能性的第三方控制台来配置每一个子系统。
消息收发子系统
消息收发子系统224处理作为特定系统或组件应用程序的消息。消息收发子系统224还负责集成并维护要由应用程序网关106传送的所有消息。当接收到消息时,消息收发子系统224进行排队,可选地进行存储(针对去往和来自应用程序网关106的可靠性),并准备进一步将其传送到其目的地。
参考图6,更详细地示出了消息收发子系统224。消息收发子系统224包括消息代理器602和消息仓库604。消息处理器接口606将消息代理器602与消息接听器232、连接器子系统222、变换子系统226和其它应用程序网关子系统相连。消息处理器管理接口608将消息仓库604与管理子系统208相连,并提供接口以便管理和配置消息收发子系统224。
消息代理器602负责验证、处理适当格式的消息并将其转发到连接器子系统中的适当连接器。消息代理器602与生命周期子系统220进行通信以检索有关无线设备102和组件应用程序的信息。如果消息映射的针对的是多无线设备,消息代理器602针对每一个无线设备创建消息。消息代理器604还执行预先安排的消息维护工作。这主要导致去除到期的消息。管理员能够通过管理子系统来调度这些维护工作的时间和频率。
消息代理器602还管理订阅信息并当得到通知时将消息广播到所有订户。
消息仓库604用于存储有关消息的信息,涉及可靠映射、消息收发、订阅以及相关信息的任意信息。
变换子系统
变换子系统226将无线设备102和应用程序网关106之间的消息流变换为内部消息格式或压缩消息格式。内部消息格式利于内部子系统。压缩消息格式用于在空间传输到无线设备102,以便使所使用的带宽最小化。
参考图7,更详细地示出了变换子系统226。变换子系统226包括压缩变换器702和解压缩变换器704,每一个变换器分别通过压缩接口706和解压缩接口708与消息收发子系统224进行通信。当消息收发子系统224接收到来自内部子系统的、目的地是无线设备102的消息时,消息很可能是内部消息格式。因此,消息收发子系统224利用压缩变换器702将消息变换为压缩消息格式。当消息收发子系统224接收到来自内部子系统目的地的无线设备102的消息时,消息很可能是压缩消息格式。因此,消息收发子系统224利用解压缩变换器704将消息变换为内部消息格式。本领域普通技术人员显而易见的是,可以将定制变换器添加到变换子系统226中,以利于定制消息格式。
为了利于变换,提供了变换器映射,以便识别需要针对给定消息目的地发生何种变换。应用程序注意,恶意变换器映射会引起要执行的任意变换,这对于安全性具有负面影响,例如执行无限循环并耗尽系统资源。因此,当部署时,对变换器映射进行验证。
连接器子系统
连接器子系统222利用所需的传输协议提供了应用程序网关106和外部目的地系统之间的传输服务。此外,连接器子系统222接收来自目的地系统的同步响应,并将其送往消息收发子系统224进行处理。
参考图8,示出了连接器子系统222的更详细图示。连接器子系统222包括MDS连接器802、系统连接器804以及后端连接器806的集合。MDS连接器802通过MDS连接器接口803与消息收发子系统224相连。系统连接器804和后端连接器806通过连接器接口805与消息收发子系统224相连。
MDS连接器接口803是一种JavaAPI,用于将压缩消息格式的消息传送到无线设备102。连接器接口805是一种Java API,用于将消息传送到内部子系统或后端系统。消息是内部消息格式。
MDS连接器802将压缩消息通过MDS 116传送到无线设备。MDS连接器802充当推送发起器,以便将消息推送到无线设备102。在本实施例中,尽管随着发展可以使用其它标准,MDS连接器802通过无线应用程序协议(WAP)到推送(PAP)标准协议支持到MDS的基本推送以及可靠推送。
系统连接器802将系统消息传送到生命周期子系统220、管理子系统208或消息收发子系统224。由直接API调用来执行将系统消息传送到任意指定子系统。系统连接器接收内部消息格式的消息并执行到适当子系统的Java API调用。
后端连接器806包括多个标准连接器,包括数据库连接器808、SOAP连接器810以及WS事件连接器812。此外,发布了连接器接口805和内部消息格式,因此,第三方集成器可以根据需要来实现定制后端连接器。
数据库连接器808接收内部消息格式的消息并将其变换为结构化查询语言(SQL)声明。然后,数据库连接器808通过JDBC相对于目的地数据库服务器执行SQL声明。利用针对每一个消息定义的映射信息,数据库连接器808创建JDBC连接并准备和/或执行SQL声明。数据库连接器808接收来自目的地数据库服务器108b的查询结果,并将其以内部消息格式送回到消息收发子系统。
SOAP连接器810接收内部消息格式的消息,将其变换为SOAP格式,并利用基于HTTP协议的网络服务SOAP绑定将SOAP请求消息传送到后端网络服务108。同时支持远程过程调用(RFC)风格和文档风格网络服务。SOAP连接器810还接收对于来自后端服务的每一个请求的同步SOAP响应消息,将消息变换为内部消息格式,并将其送到消息收发子系统224。
SOAP连接器810还通过标准HTTPS协议支持SOAP消息到网络服务后端目的地的加密。应当注意,如果在相同防火墙之后部署应用程序网关和安全网络服务,或支持WS安全性协议,则能够实现端到端的安全性。
将WS事件连接器812指定为支持用于处理WS事件订阅请求的WS事件协议的SOAP连接器。
安全性子系统
安全性子系统212向由其它子系统使用的服务提供与无线设备102的安全通信。为了利于安全通信,安全性子系统212加密并解密消息、认证签名以及签名消息。
参考图9,更详细地示出了安全性子系统212。安全性子系统212包括与应用程序网关106的子系统相接的密码学接口902、密钥存储接口904和签名接口906。密码学接口902提供了允许加密或解密从设备接收或向设备发送的消息的功能性。实现加密/解密算法,以便能够利用新算法来更换缺省算法,从而改变用于整个应用程序网关106的加密标准。
密钥存储接口904利于产生加密密钥并根据需要存储和检索密钥。
签名接口906利于验证接收的消息签名以及要发送的签名消息。与加密算法相似,如果希望,可以利用不同的算法来代替验证和签名算法。
日志子系统
参考图10,更详细地示出了日志子系统。日志子系统216以系统日志消息来代表各种日志提供者1002,所述日志提供者1002包括控制台日志提供者、文件日志提供者、数据库日志提供者以及电子邮件(email)日志提供者。日志提供者可以位于网关服务器的内部或外部。日志子系统216还允许通过log4J接口1004进行系统广泛的日志记录。此外,如本领域普通技术所理解的,可以根据需要添加额外的定制日志提供者。
配置子系统
配置子系统214向应用程序网关子系统提供了用于引导程序和应用程序网关系统初始化的访问只读配置参数。参考图11,配置子系统214包括配置接口1102,用于向应用程序网关子系统提供单个访问配置点。
实用性子系统
实用性子系统210提供了基于标准的库和接口的集合,用于按照统一方式来执行基本层服务。有责任提供代码的无状态重用集合,以便在所有子系统中一致地使用。参考图12,实用性子系统210包括用于将实用性子系统210与其它应用程序网关子系统相连的JDBC接口1202、Base64接口1204、通用唯一标识符(UUID)接口1206、场所接口1208以及公共接口1210。JDBC接口1202提供了用于从公共配置数据源建立连接的实用性。Base64接口1204提供了用于编码二进纸编码数据的实用性。UUID接口1206提供了用于创建系统唯一标识符的实用性。公共接口1210提供了所需的其它任意公共功能库。如本领域的普通技术人员所理解的,可以根据需要添加其它接口或库。
打包应用程序
作为应用程序230的一部分来提供打包应用程序,用于利于无线设备102上组件应用程序的供应。在组件应用程序分组的第一请求期间,打包应用程序处理也被称作组件应用程序包的原始组件应用程序,并将其准备用于无线传输。打包应用程序从指定位置(通常是预定URL)载入组件应用程序包,确定需要执行何种安全性动作和处理,并将已打包组件应用程序返回到供应服务用于存储。
例如,需要发生的安全性动作包括组件应用程序包发布者的认证。通过验证发布者证书的有效性以及利用应用程序网关签名来签名已打包组件应用程序,可以实现所述认证。此外,验证工作室工具产生的IDE标记证书。
组件应用程序包通常包括用于本地支持的模块,例如XML定义、映射、应用程序资源和资源包。XML定义包括应用程序数据、消息、屏幕组件和工作流的XML编码。将XML用作可应用程序于组件应用程序编码的任意结构化定义语言的示例。
映射定义了组件应用程序和一个或多个后端服务器108之间的关系。在本发明中,利用网络服务描述语言(WSDL)来定义映射。在标准中将WSDL定义为XML格式,用于将网络服务描述为对于包含面向文档或面向过程信息的消息的端点操作的集合。抽象地描述操作和消息,然后将其限制到具体网络协议和消息格式,以便定义端点。将相关具体端点结合到抽象的端点(服务)中。WSDL可扩展用于端点及其消息的描述,与使用何种消息格式或网络协议来进行通信无关,然而,仅有在该文档中所述的绑定描述了如何结合SOAP、HTTP和多用途因特网邮件扩展(MIME)来使用WSDL。
因此,当接收到来自无线设备102的消息时,所述消息包括指示了源于其的组件应用程序的标识符。该信息用于识别对应映射,所述映射确定了如何解译消息以及将其发向何处。在本实施例中,每一个无线设备102是唯一寻址的。因此,通过移动数据服务器116将返回消息推送到设备中。在可选的实施例中,如本领域普通技术人员所理解的,可以通过其它已知运营商/设备特定推送协议来实现推送。例如,在短消息系统(SMS)上执行无线区域协议(WAP)。
应用程序资源包括利用应用程序被打包为静态相关的一个或多个资源,例如图像、声音、视频等。资源包通常包括用于组件应用程序的本地信息。本地信息的示例包括语言支持、文本方向、滚动方向、字典和辞典服务等。
相应地,对组件应用程序包的处理包括利用所提供的资源包进行本地化、二进制编码、利用安全标志来标记组件应用程序以及在所提供的目的地知识库(通常由URL定义)中上载已打包组件应用程序。在本实施例中,执行二进制编码,用于减小向无线设备102发送组件应用程序所需的带宽。利用无线区域协议二进制XML(WBXML)标准来实现二进制编码,尽管还可以使用其它编码方案。此外,可以根本无需执行二进制编码。此外,将映射发送到消息代理器602,以便利于执行组件应用程序的运行时间环境和相关的一个或多个后端服务器108之间的通信。
作为网络服务,打包应用程序可用于外部子系统。在本实施例中,通过供应服务120可访问打包应用程序,还可以通过第三方定制供应服务来访问。
发现服务器
参考图13,更详细地示出了发现服务器122。发现服务器122包括发现服务1302和通用描述、发现及集成(UDDI)注册库1304。发现服务1302通过UDDI搜索接口1312和UDDI订阅通知接口1314与UDDI注册库进行通信。发现服务1302还通过订阅通知接口1306与管理子系统服务器108进行通信,并通过搜索接口1308与应用程序网关服务器118和供应服务器120进行通信。UDDI注册库1304通过UDDI发布接口1310与集成的开发企业1316进行通信。
UDDI发布接口1310是一种提供发布能力的、基于SOAP的UDDI接口。由利于组件应用程序发布的任意实用性来使用该接口。因此,一旦开发者已经创建了组件应用程序,可以通过遵循组件应用程序发布规则的集合将其提交到UDDI注册库1304。
发现服务1302能够请求注册到UDDI注册库1304的新或更新组件应用程序的通知。UDDI订阅通知接口1314是由UDDI注册库提供的、基于SOAP的UDDI接口,以便订阅注册库通知。通知的支持基于UDDI v3.0规范。
UDDI搜索接口1312提供了用于搜索UDDI注册库的、基于SOAP的UDDI接口。
发现服务1302的缺省实现是通过发现服务器122部署为应用程序网关106一部分的单机网络服务。发现服务1302将组件应用程序发现服务提供给无线设备102上运行时间环境中的发现组件应用程序。从应用程序网关服务器118看来,发现服务1302是典型的组件应用程序,并被同样地部署和管理。因此,发现消息的处理是一般性的并且对于应用程序网关服务器是透明的。因此,应用程序网关服务器118用作运行时间环境和发现服务1302之间的消息代理器,
典型地,运行时间环境通过搜索接口1308与发现服务1302进行通信。可以利用其它接口来代替当前的搜索接口1308,只要无线设备上的发现组件应用程序和发现服务1302支持。
此外,可以将发现服务1302的缺省实现用于增强安全无线组件供应策略。由于发现服务1302只能访问预定地点或信任的UDDI注册库,实现了安全性。
类似于UDDI订阅通知接口1314,订阅通知接口1306是由发现服务提供者122实现的、基于SOAP的接口。这允许管理系统108能够订阅发现通知。例如,这种通知包括“新组件应用程序版本可用”和“新组件应用程序可用”。
供应服务器
参考图14,更详细地示出了供应服务器120。供应服务器120包括供应服务1402、组件应用程序仓库1404、供应接口1406和打包接口1408。
供应服务1402能够创建、检索、更新并删除组件应用程序分组。供应服务1402服务于通过供应接口1406在移动设备102上发起的组件应用程序供应请求。如果已经打包了组件应用程序,供应服务返回已打包组件应用程序的位置。
如果还没有打包组件应用程序,供应服务102与发现服务1302进行通信,以便定位所请求的组件应用程序。将组件应用程序的位置返回供应服务1402,所述供应服务1402通过打包接口1408将打包请求送往打包应用程序。将已打包组件应用程序返回到供应服务1402,以便存储在组件应用程序仓库1404中。然后,供应服务1402返回已打包组件应用程序的位置。
系统操作
下面将描述应用程序网关106的操作。首先,将描述通用消息处理操作,随后描述组件应用程序供应和应用程序网关106的其它特定功能。
参考图15,由数字x00总体上示出了运行时间初始化的示例。在步骤1502,将服务手册载入到无线设备。如前所述,可以通过MDS 116或企业服务器将服务手册推送到无线设备,或利用本地有线连接器由管理员将其载入。在步骤1504,无线设备102向运行时间环境通知其已经接收到服务手册。运行时间环境确认到无线设备102的通知,无线设备102随后确认对于最初推送服务手册的服务的响应。
在步骤1506,运行时间环境将注册消息发送到服务手册中指定的URL,以便将其自身注册到应用程序网关106。注册消息包括无线设备标识信息和系统信息,例如运行时间环境版本等。应用程序网关106通过记录生命周期子系统220和管理服务208中的相关信息来注册设备,并确认注册消息。
在步骤1508,应用程序网关206将用户管理简档和缺省组件应用程序管理简档发送到运行时间环境,并且在步骤1510,由运行时间环境存储简档。用户管理简档定义了端用户特权以及无线设备102的域相关设置。其包含信息,例如是否允许无线设备102上的非信任组件应用程序、是否允许“无记载(silent)”推送供应以及是否允许用户发起供应。无记载推送供应指由管理员推送到无线设备的组件,无需用户的知识。
组件应用程序管理简档描述了组件应用程序运行时间参数,例如组件应用程序访问无线设备102上其它应用程序的权利、分配的存储限制以及查询阈值。通常由管理员来定义组件应用程序管理简档,并由运行时间环境来使用和增强。通常,存储用于信任和非信任组件应用程序的不同缺省简档。
一旦将无线设备102注册到应用程序网关106,无线设备102开始请求组件应用程序的供应。即,无线设备102请求安装特定组件应用程序。通常,存在用于确定要供应何种组件应用程序的三种方法:从用户请求、从管理员推送以及从第三方或服务提供者推送。
在本实施例中,这些方法之间的主要区别在于如何得到部署描述符。部署描述符包括例如组件应用程序名称、版本、描述和位置的信息。可选地,描述可以包括应用程序支持的语言。一旦已经得到了部署描述符,用于三种方法的实际供应处理非常相似。
参考图16,示出了供应组件应用程序的用户请求的示例。在步骤1602,设备运行时间向应用程序网关服务器118发送压缩消息。参考图21来描述消息流的细节。对于该示例,应当理解消息收发子系统224接收压缩消息,并在步骤1604,将内部消息传送到连接器子系统222。在步骤1606,SOAP连接器810将搜索请求传送到发现服务1302。在步骤1608,发现服务1302在UDDI注册库1304中搜索所需的组件应用程序并返回结果。
在本实施例中,所述结果是部署描述符,不过结果还可以是URL,以便部署描述符或其它方式进行寻址。在步骤1610,将结果已内部消息格式从SOAP连接器810返回消息收发子系统224。在步骤1612,消息收发子系统224将结果返回设备运行时间。
参考图17,示出了从管理服务208向无线设备102推送供应组件应用程序的示例。在步骤1702,管理员准备用于推送供应的无线设备参数列表,并利用管理控制台504将其输入。在步骤1704,管理控制台504将列表送到管理服务502。在步骤1706,管理服务502查询生命周期子系统220,以便得到符合管理员的参数的无线设备的列表。将结果返回到管理员。
在步骤1708,管理员使用无线设备的列表用于推送部署描述符。将设备的列表和部署描述符输入到管理控制台504中。在步骤1710,管理控制台504将列表和部署描述符送往管理服务502。在步骤1712,从生命周期子系统220中检索用于列表中每一个设备的运行时间环境。在步骤1714,利用要供应的组件应用程序所需的运行时间环境版本来检查设备运行时间环境版本。可以按照多种方式来通信组件应用程序所需的运行时间环境版本。在本实施例中,将其包括在部署描述符中。在可选的实施例中,当需要时从组件应用程序包中检索。如果确定运行时间环境和组件应用程序彼此不兼容,产生故障消息。在步骤1716,将故障消息发送到管理控制台504。
在步骤1718,对于确定具有兼容运行时间环境的所有设备,构造包括部署描述符的“需要升级”或“新应用程序可用”消息,在步骤1720,将其传送到相关的无线设备102。图26详细描述了传送任务。
参考图18,示出了从服务提供者向无线设备102推送供应组件应用程序的示例。在步骤1802,服务提供者的管理员生命周期服务提供者发起组件应用程序推送的请求。该请求包括用于多个无线设备的参数和组件应用程序的部署描述。在步骤1804,生命周期服务提供者检索无线设备信息,例如无线设备标识符和运行时间版本,并将其同部署描述符一起发送到管理应用程序。
在步骤1806,管理应用程序认证生命周期服务提供者。如果认证失败,则在步骤1808,管理服务502将故障报告给生命周期服务提供者。否则,在步骤1810,管理应用程序将接收到的信息发送到管理服务502。在步骤1812,管理服务502验证设备的运行时间环境版本与组件应用程序相兼容。在步骤1814,对于具有与组件应用程序相兼容运行时间环境的所有设备,构造“需要升级”或“新应用程序可用”系统消息。在步骤1816,将系统消息传送到无线设备102。
一旦无线设备102已经接收到用于要供应的组件应用程序的部署描述符(deployment descriptor),无线设备102能够进行检索组件应用程序。参考图19,示出了向无线设备供应组件应用程序的示例。如果无线设备102上的用户管理简档允许无记载供应,则运行时间环境自动地进行到步骤1902。然而,如果无线设备102上的用户管理简档不允许无记载供应,运行时间环境不进行1902,直到用户指示为止。
在步骤1902,运行时间环境将消息发送到应用程序网关106。消息包括部署描述符和希望检索组件应用程序的指示。在应用程序网关106处由应用程序网关服务器118来接收消息,并将其发送到消息收发子系统224。
在步骤1904,消息收发子系统224将消息发送到SOAP连接器810。在步骤1906,SOAP连接器将请求发送到供应服务器120。在步骤1908,供应服务器120检查是否已经按照希望的格式将组件应用程序打包。在步骤1910,供应服务器120验证组件应用程序证书是有效的。在步骤1912,供应服务器120查询发现服务器122,以确定其是否是已打包组件应用程序。
如果已经打包了组件应用程序,处理跳到步骤1928。在步骤1914,确定还没有打包组件应用程序,并将请求发送到打包应用程序。在步骤1916,打包应用程序从部署描述符提供的URL中检索原始组件应用程序。在步骤1918,利用所提供的资源包来本地化原始组件应用程序。在步骤1920,根据包中的文件形式定义(DTD)对本地化的组件应用程序进行二进制编码。在步骤1921,打包应用程序尝试利用对由开发者分配的、具有时戳的标识符进行散列,对应用程序提供唯一标识符。将散列的结果与已知应用程序标识符的列表进行比较,以便验证其是唯一的。如果不是,利用不同散列算法或不同时戳对组合进行重新散列。重复处理,直到已经得到唯一标识符或已经耗尽了尝试的最大数目。在步骤1922,打包应用程序确定组件应用程序是否需要专用服务器。如果不需要专用服务器或专用服务器是应用程序网关服务器106,打包应用程序将映射载入消息代理器206。如果专用服务器是外部服务器,将映射输出到外部服务器,或假设外部服务器具有所需的映射。可选地,如参考图20所述,当运行时间环境确认了应用程序的安装时,可以使用映射。在步骤1923,利用应用程序网关的加密密钥来签名编码组件应用程序,以及在步骤1924,将签名的组件应用程序上载到由供应服务器120提供的目的地URL。在步骤1926,打包应用程序在其对于供应系统120的响应中设置信任标志,指示已经打包并签名了组件应用程序。
在步骤1928,由供应服务120检索已打包组件应用程序的位置。在步骤1930,通过SOAP连接器810将组件应用程序位置和信任标志返回到消息处理器224。在步骤1932,消息处理器将指示了已经供应组件应用程序的消息返回到无线设备。
在上述示例中,从无线设备102发送组件应用程序供应的请求。然而,这不是在所有情况下均必须的。例如,对于推送供应,可以得到部署描述符并请求供应,无需与无线设备102进行通信。对于这种实施例,应用程序网关106不得不具有无线设备102是否允许无记载推送供应的知识。如果允许推送供应,应用程序网关能够进行供应组件应用程序。如果不允许无记载推送供应,需要在供应组件应用程序之前来通知无线设备102,以便从用户得到指示。
一旦无线设备接收到消息,通过运行时间环境可以检索并编译组件应用程序。此外,运行时间环境确认组件应用程序到应用程序网关106的安装。参考图20,示出了响应确认消息出现情况的示例。在步骤2002,无线设备102将确认消息发送到应用程序网关106。确认消息包括组件应用程序URL、已打包组件应用程序URL以及指示了已经成功安装组件应用程序的标志。
在步骤2004,压缩消息接听器接收到确认消息,并将信息转发到消息收发子系统224。在步骤2006,确定是否已经部署了映射。如果已经部署了映射,处理继续到步骤2022。在步骤2008,还没有部署映射,因子消息收发子系统224如下完成组件应用程序供应。在步骤2010,消息收发子系统224检索已打包组件应用程序。在步骤2012,检索WSDL部分,在步骤2014,消息收发子系统224确定已打包组件应用程序的WSDL部分是否仍然有效。
如果WSDL部分无效,处理继续到步骤2020,其中将消息发送到生命周期子系统220,以便隔离组件应用程序。
如果WSDL部分有效,处理继续到步骤2016,其中从WSDL部分中检索组件应用程序映射并对其进行部署。在步骤2018,部署java类文件以便利于映射所需的SOAP连接。这种文件的一个示例是AXISjava类文件。AXIS(Apache可扩展交互系统)向Java程序员提供了到网络服务的透明访问。AXIS是本领域公知的,无需进行详细说明。
在步骤2022,根据确认消息中的组件应用程序信息来创建生命周期消息。变换子系统226将生命周期消息变换为内部消息。在步骤2024,将处于其内部格式的生命周期消息传送到系统连接器804。在步骤2026,系统连接804将供应状态信息传送到生命周期子系统220。在步骤2028,生命周期子系统220更新存储在其中的设备信息,并且在步骤2030创建供应状态消息。供应状态消息可以用于更新向生命周期子系统220注册以便通知的外部接听器。作为示例。当消费者下载应用程序时,运营商记账系统可以注册到应用程序网关服务器116,以便被通知。然后,运营商记账系统可以根据下载的应用程序对消费者的账户进行记账。
在步骤2032,消息收发子系统224联系管理服务器208,以便检索注册服务提供者生命周期接听器的列表。在步骤2034,对于每一个注册服务提供者生命周期接听器,通过WS事件连接器810发送生命周期消息。
因此,向生命周期子系统220和适当的服务提供者生命周期系统通知安装在每一个无线设备上的组件应用程序。按照这种方式,生命周期系统220能够保证需要时对适当的设备进行升级。
参考图21,示出了无线设备102和应用程序网关106之间的消息处理的示例。在步骤2102,设备运行时间将压缩消息发送到应用程序网关106。在步骤2104,压缩消息接收者304接收并对消息进行排队。在步骤2106,压缩消息接听器预处理消息并将其传送到消息代理器602。
在步骤2108,如果需要,消息代理器602解密并验证消息签名。在步骤2110,消息代理器602检查生命周期服务402以便验证将与消息相关的组件应用程序安装到无线设备102上。如果没有将组件应用程序安装到无线设备102上,则返回错误消息。
在步骤2112,检查消息仓库604以确定是否存在用于组件应用程序的映射。在步骤2114,如果不存在映射,隔离组件应用程序并将错误消息返回到无线设备102。在步骤2116,如果存在映射,根据消息和映射的来源确定目的地后端服务器108。将消息存储在消息仓库404中。在步骤2118,消息代理器602将消息发送到变换子系统226,其中由解压缩变换器704将其转换为内部消息格式并将其返回到消息代理器602。在步骤2120,消息处理器将消息传送到连接器子系统222中适当的后端连接器806。在该示例中,使用了SOAP连接器810。在步骤2122,后端连接器806尝试利用需要的协议向后端系统108发送消息。在本实施例中,应用程序网关服务器118和后端系统108之间的通信是同步的。因此,当后端服务器返回响应时,应用程序网关知道目的地应用程序和无线设备102。后端系统108对向消息代理器602发送响应的后端连接器806进行响应。
在步骤2124,如果响应指示了尝试通信失败且响应满足隔离(quarantine)的特定准则,针对生命周期服务402中的隔离标记组件应用程序。隔离准则的一个示例包括改变网络服务,这使在应用程序网关118中部署的映射无效。由于不能使用应用程序,直到网络服务扭转了改变或变为后端兼容为止,应当隔离相关的应用程序。
否则,在步骤2126,消息处理器将响应发送到变换子系统226,在其中由压缩变换器702将其转换为压缩消息格式,并将其返回到消息代理器602。在步骤2128,将响应设置在队列中,以便发送到无线设备102。在步骤2126,将消息设置在消息响应队列中。在步骤2130,依次从队列中检索消息并通过将其与将要传送到相同无线设备102的其它消息绑定来进行预处理。在步骤2132,将消息发送到压缩变换器702,以便变换为压缩消息格式,在步骤2134,如果需要对消息进行加密。
在步骤2136,消息处理器将响应发送到MDS 116,MDS 116在步骤2138将响应发送到无线设备102。在步骤2140,MDS 116将消息发送到消息代理器602,确认已经发送了响应。
参考图22,示出了订阅通知的示例。该示例示出了当接收到来自组件应用程序的消息时,应用程序网关106如何能够订阅来自实现WS事件协议的事件源的通知。在该示例中,进行两个假设。第一假设在于应用程序网关106根据组件应用程序映射已知消息是订阅消息。第二假设在于同样根据映射,应用程序网关106已知如何根据从组件应用程序接收的消息内容来构造订阅过滤器。
在步骤2202,运行时间环境将包含无线设备标识符、组件应用程序标识符和订阅标识符的订阅消息发送到消息代理器602。
在步骤2204,消息代理器602使用组件应用程序的映射信息来创建内部订阅信息。在步骤2206,消息处理器将订阅信息发送到变换子系统226。在步骤2208,变换子系统将订阅过滤器和消息均变换为内部消息格式并将其返回到消息代理器602。
在步骤2210,消息代理器602将订阅发送到后端连接器806,在该示例中,所述后端连接器806是SOAP连接器810。在步骤2212,SOAP连接器810将订阅请求发送到后端108,后端108利用外部相关器标识符或错误消息进行响应。SOAP连接器810将响应返回到消息代理器602。
在步骤2214,消息代理器602将响应发送到变换子系统226,以便变换为压缩消息格式。在步骤2216,将外部相关器标识符存储在消息仓库中,并且在步骤2218,将指示了订阅请求是否成功的消息返回到运行时间环境。
参考图23,示出了通知的传送的示例。该示例示出了通过应用程序网关通知接听器302接收、处理通知消息并将其传送到正确的设备(或多个设备)。在该示例中,进行两个假设。第一假设在于事件源是WS事件的事件源。第二假设在于应用程序网关106根据所存储的订阅信息和组件应用程序映射已知如何将通知消息与订阅进行相关以及如何将其传送到适当的目的地。
在步骤2302,事件源将通知发送到消息接听器232的通知接听器。在步骤2304,通知接听器将消息发送到消息代理器602。在步骤2306,消息处理器将消息发送到变换子系统226,变换子系统226将消息转换为内部消息格式并将其返回到消息代理器602。
在步骤2308,消息代理器602利用与消息一起发送的外部相关器标识符,在消息仓库中定位相关信息。在步骤2310,消息代理器602验证生命周期子系统220中的相关组件应用程序。如果组件应用程序不可用,在步骤2312,消息代理器602通过MDS 116将消息发送到运行时间环境,以便不订阅这些消息。如果组件应用程序可用,在步骤2314,消息代理器602通过MDS 116将消息从通知转发到订户。
参考图24,示出了向设备运行时间信号通知组件应用程序升级可用的示例。在该示例中,发现服务的管理员或其它外部系统发起“升级可用”消息。“升级可用”消息向无线设备102通知在本地或信任UDDI注册库1304中升级组件应用程序的可用性。
在该示例中,进行三个假设。第一假设在于信任外部系统并且已经由生命周期子系统220成功地认证了所述外部系统。第二假设在于外部系统已知如何通过发布的服务提供者生命周期应用程序与应用程序进行通信。第三假设在于外部系统具有提供有效组件应用程序部署描述符的能力。
在步骤2402,管理员将组件应用程序升级的通知发送到发现服务1302。在步骤2404,发现服务1302将通知发送到生命周期子系统220。在步骤2406,生命周期子系统220将通知发送到管理子系统208。
在步骤2408,管理子系统208更新组件应用程序的版本信息。在步骤2410,确定是否已经激活了自动通知。如果自动通知关闭,不必对于通知无线设备102进行任何操作。如果自动通知开启,处理进行到步骤2412,其中检索要通知的设备的列表。在步骤2414,针对多个无线设备102构造通知的压缩消息,在步骤2416,发送消息。一旦无线设备102接收到升级通知,可以按照类似的方式来升级组件应用程序,以得到新的组件应用程序。然而,由于升级通知包括与包括在部署描述符中的类似的信息,无需使用部署描述符。
参考图25,示出了向设备运行时间信号通知运行时间环境升级可用的示例。该示例示出了管理员发起用于运行时间环境更新的事件,包括一个或多个运行时间环境组件。
在步骤2502,管理员准备无线设备参数的列表并将其提交到管理子系统108。在步骤2504,管理子系统108查询生命周期子系统120,并且在步骤2504,将满足参数的设备列表返回给管理员。在本示例中,参数很可能是运行时间环境版本,因此,列表包括具有指定运行时间环境版本的所有设备。
在步骤2506,管理员将列表与运行时间环境升级请求一起提交给管理控制台504。在步骤2508,管理控制台504将请求发送到管理服务502。在步骤2510,管理服务502针对多个无线设备102构造升级的压缩消息,并且在步骤2512发送所述消息。一旦无线设备102接收到升级通知,其能够按照类似的方式升级运行时间环境,以得到新的运行时间环境。然而,在升级运行时间环境之前,将运行时间环境中的所有应用程序和应用程序数据转换为XML/脚本形式。升级运行时间环境,并从新运行时间环境的XML/脚本形式中恢复应用程序和应用程序数据。
在上述多种情况下,需要将公共压缩消息发送到多个无线设备。将该处理称作调度任务传送并随后进行描述。参考图26,示出了调度任务传送的示例。在步骤2602,管理服务502准备要发送到多个无线设备102的消息。在步骤2604,将消息发送到消息代理器602。
在步骤2606,消息代理器602调度任务以便按照定时或分组的形式推送消息。在步骤2608,消息代理器602运行调度的任务。在步骤2610,对于分组中的每一个设备,消息代理器602创建系统消息,并且在步骤2612,将消息通过MDS 116传送到无线设备102。
因此,可以看出应用程序网关服务器118允许一般性无线应用程序与基于一般性模式的后端服务器108进行通信,无需在应用程序网关服务器118自身中部署应用程序特定代码。相反,网关载入应用程序映射并将输入和输出应用程序消息转换为专用于所选择数据源的格式和协议。
贯穿整个说明书,为了便于说明一致地使用了多个术语。然而,本领域的普通技术人员可以理解这些术语不意味着要限制申请。例如,尽管参考了无线设备,也可以使用例如台式计算机的其它有线计算设备。相应地,术语设备通常用于指任意有线或无线设备,例如台式计算机、膝上或移动计算机、智能电话、个人数字助理等。
作为另一个示例,当用于应用程序网关106和设备102之间的通信时,尽管已经描述了压缩消息格式,不一定必须如此。使用压缩消息格式的一个原因在于节约带宽。因此,对于无需考虑带宽的系统,不必使用压缩消息格式。
在这里所述的所有示例中,一旦已经供应,设备运行时间负责检索已打包应用程序。通常这是优选的,这是因为向运行时间环境提供根据下载内容的控制防止了将垃圾应用程序推送到设备102中。然而,这不是必要情况,如果希望可以推送已打包应用程序。
尽管没有明确描述,系统使用的加密方案如下。利用对称密钥密码加密在设备102和应用程序网关106之间发送的消息。使用对称密钥密码,这是因为这相对便于安全地将对称密钥发送到设备。公共/私有密钥对密码用于在网关服务器和外部系统之间安全地发送消息,以便便于任何系统安全地将消息发送到网关服务器。如本领域技术人员所理解的,加密方案的选择是一种设计选择,可以使用各种加密方案及其组合。
组件应用程序
参考图27,组件应用程序的方框图包括数据组件2700、呈现组件2702和消息组件2704,通过与应用程序容器300的通信,由工作流组件2706来协调上述组件。可以将结构化定义语言用于将组件2700、2702、2704构造为一系列元数据记录,所述记录包括预定数目的、表示资源的特定属性的预定义元素,以便每一个元素具有一个或多个数值。每一个元数据模式通常定义了特性,例如但不局限于:元素的有限数目、每一个元素的名称以及每一个元素的意义。示例元数据模式包括,例如但不局限于:Dublin内核(DC)、Anglo-American编目规则(AACR2)、政府信息定位符服务(GILS)、编码存档描述(EAD)、IMS全球学习联盟(IMS)以及澳大利亚定位符服务(AGLS)。编码语法使设备基础设施204(参见图2)能够处理组件2700、2702、2704的元数据,编码方案包括,例如但不局限于:XML、HTML、XHTML、XSML、RDF、机器可读编目(MARC)以及多用途因特网邮件扩展(MIME)。
数据组件2700定义了由组件应用程序使用的数据实体。数据组件2700可以描述的数据实体的示例包括定单、用户和金融交易。数据组件2700定义了需要何种信息来描述数据实体,以及按照何种形式来表达信息。例如,数据组件2700可以定义,例如但不局限于:包括唯一标识符的定单,用于将其格式化为数目的定单;项目的列表,将所述项目格式化为串;创建定单的时间,所述时间为日期时间格式;定单的状态,将其格式化为串;以及发出定单的用户,根据另一个数据组件2700的定义对其进行格式化。由于通常根据网络服务设计(choregraphy)规则将数据部分(元素)从消息传送到消息,优选地持续存在数据组件2700。可以根据网络服务设计定义(如果可用)来动态地产生数据组件2700,或由应用程序设计者根据复杂类型定义和/或消息相关信息来定义。
消息组件2704定义了由组件应用程序302使用的消息的格式,以便与例如网络服务的外部系统进行通信。例如,消息组件之一2704可能描述了,例如但不局限于:用于发出定单的消息,包括定单的唯一标识符;定单的状态;以及与定单相关的注意事项。以结构化定义语言编写的消息组件2704定义能够唯一地表示(并映射为)WSDL消息,并且能够在运行时间处动态地产生。因此,对于客户机应用程序消息的组件定义,根据用于表达网络服务接口(例如但不局限于WSDL和BPEL)的定义语言的标准网络服务元数据,能够实现动态产生以及相关的数据内容。在操作的上下文中定义网络服务消息,在组件应用程序定义的消息组件2704之间定义了相关。如下所述,利用预定义的消息参数和/或通过分离的工作流组件2706,能够实现该相关。
当显示在用户界面上时,呈现组件2702定义了组件应用程序的外观和行为。呈现组件2702能够指定图形用户接口(GUI)屏幕和控制、以及当用户利用用户接口与组件应用程序进行交互时执行的动作。例如,呈现组件2702能够定义屏幕、标记、编辑框、按钮和菜单、以及当用于在编辑框中键入内容或按下按钮时要采取的动作。多数网络服务消费者使用网络服务操作结果的可视呈现,因此在其能够现时用户接口屏幕的设备上提供了运行时间环境。
应该认识到在上述客户机组件应用程序定义主模型中,呈现组件2702可以根据客户机平台和设备的环境来变化。例如,在某种情况下,网络服务消费者不需要可视呈现。能够在元数据知识库700的网络服务注册库中主持组件应用程序302的组件2700、2702、2704、2706的应用程序定义,作为平台中立数据(platform-neutral)2700、消息2704、工作流2706组件描述符以及针对各种预定义客户机运行时间的平台特定呈现组件2702描述符的集合的包。当发出发现或部署请求消息时,应当将客户机类型指定为该请求消息的一部分。为了不在针对设备的不同客户机平台打包组件应用程序的同时复制数据、消息和工作流元数据,可以在应用程序服务器上主持应用程序定义,例如,作为与呈现组件2703a、2703b、2703c相链接的平台中立组件定义的包,表示设备的不同支持用户接口。还认为可以在特定设备不明确支持的事件中使用标准呈现组件2702,由此至少提供呈现特征的缩减集合。当用户构造发现或下载请求消息时,验证设备的客户机运行时间类型,并构造适当的包,以便在网络104上由网络服务器106传送到设备100。对于那些网络服务消费者,客户机应用程序302可以包含通过工作流组件2706与数据2700和消息2704组件相链接的所选择呈现组件2703,由此提供了定制组件应用程序302。
组件应用程序的工作流组件2706定义了当要执行动作时发生的处理,例如由如上所述的呈现组件702指定的动作,或当来自系统的消息到达时执行的动作。由工作流组件2706来定义呈现工作流和消息处理。按照编程语言或(例如但不局限于ECMAS脚本)脚本语言,将工作流组件2706写为一系列指令,如上所述,可以将其编译为本机代码并由应用程序容器执行。工作流组件2706的示例可以向数据分配数值、操纵屏幕或发送消息。工作流组件2706支持消息之间的相关,并将应用程序流定位规则的集合,以便在其它组件2700、2702、2704上进行操作。
设备运行时间环境
设备运行时间环境载入包含在组件2700、2702、2704、2706定义中的元数据,并通过应用程序容器300在设备100上建立应用程序302的可执行版本。例如,存在两种客户机运行时间操作模型:基于模板的本机执行和基于元数据的执行。利用基于模板的本机执行模型,运行时间利用本机代码主持在设备上预建立的数据、消息和屏幕模板。当载入应用程序定义时,由组件框架提供的客户机环境利用来自组件2700、2702、2704的元数据定义参数来填充模板,并建立本机格式的可执行客户机应用程序。可以将工作流组件2706的工作流脚本(例如ECMA脚本)转换为本机代码,或利用到本机代码重定向器的ECMA脚本解译器对其进行执行,其中重定向器通过本机运行时间引擎,将到脚本语言的调用解译为本机组件上的操作。利用基于元数据的执行,组件框架的运行时间环境将组件2700、2702、2704、2706定义保持为在执行时间期间剖析的XML(例如),或使用XML节点的本机表述。在执行期间,本机运行时间引擎506基于组件2700、2702、2704、2706的定义进行操作而不是基于本机组件实体。认为基于模板的方法比基于元数据的执行更加性能优越,但是需要更复杂的执行环境和更多的存储器资源。
尽管这里已经描述了本发明的优选实施例,本领域的技术人员可以理解,在不脱离本发明的精神或所附权利要求的范围的前提下,可以对其进行各种修改。

Claims (19)

1.一种用于供应由设备(102)检索的组件应用程序的系统(106),所述系统包括应用程序网关服务器(118),该应用程序网关服务器包括用于系统和设备之间的通信的消息代理器(602),其中:
应用程序网关服务器配置成用于与供应服务器(120)、发现服务器(122)和打包应用程序进行通信;
供应服务器包括配置成用于服务于供应请求的供应服务(1402)和配置用于存储已打包组件应用程序的供应仓库;
发现服务器(122)配置成用于存储和管理组件应用程序包;以及
打包应用程序配置成用于检索组件应用程序包,根据向其供应组件应用程序的设备从组件应用程序包中选择元素,利用所选择的元素创建组件应用程序分组,以及使已打包组件应用程序在设备上可用,以便检索。
2.根据权利要求1所述的系统(106),其中打包应用程序配置成用于通过存储已打包组件应用程序并将其存储位置发送到设备(102),来使所述已打包组件应用程序在所述设备上可用。
3.根据权利要求2所述的系统(106),其中已打包组件应用程序的存储位置包括统一资源定位符(URL)。
4.根据权利要求2或3所述的系统(106),其中设置已打包组件应用程序,以便由设备(102)上的运行时间环境进行检索。
5.根据权利要求2或3所述的系统(106),其中设置已打包组件应用程序,以便被推送到设备(102)上的运行时间环境。
6.根据权利要求1~5之一所述的系统(106),其中设置打包应用程序,以便根据设备的能力从多个可用呈现组件中选择呈现组件(2701)。
7.根据权利要求1~6之一所述的系统(106),其中设置打包应用程序,以便根据设备(102)优选项从组件应用程序包中选择定位信息。
8.根据权利要求1~7之一所述的系统(106),其中设置打包应用程序,以便根据设备的能力从组件应用程序包中选择应用程序资源。
9.根据权利要求1~8之一所述的系统(106),其中设置打包应用程序,以便通过网关应用程序服务器(118)、供应服务器(120)或第三方应用程序服务器的任意一个来提供。
10.根据权利要求1所述的系统(106),其中组件应用程序包还包括映射信息,用于将设备(102)映射到组件应用程序所需的后端服务器(108),设置打包应用程序,以便向消息代理器(602)提供映射信息,以便利于设备(102)和组件应用程序所需的后端服务器(108)之间的消息收发。
11.根据权利要求1所述的系统(106),其中应用程序网关服务器(118)还包括生命周期子系统,用于管理设备(102)并跟踪向多个设备(102)中的每一个供应了多个组件应用程序中的哪些。
12.一种用于由网关应用程序服务器(118)向设备(102)供应组件应用程序的方法,所述方法包括步骤:
在网关应用程序服务器(118)处,接收供应组件应用程序的请求;
确定是否打包所述组件应用程序,如果是,使其在设备(102)上可用;
从用于打包的组件应用程序仓库(1404)中,定位并检索与组件应用程序相关的组件应用程序包;
通过以下操作对请求的组件应用程序进行打包:根据向其供应组件应用程序的设备(102)从组件应用程序包中选择元素,利用所选择的元素创建组件应用程序分组;以及
使已打包组件应用程序在设备(102)上可用。
13.根据权利要求12所述的方法,其中通过存储已打包组件应用程序并将其存储位置发送到设备(102),来使所述已打包组件应用程序在所述设备上可用。
14.根据权利要求13所述的方法,其中由统一资源定位符(URL)来识别已打包组件应用程序的存储位置。
15.根据权利要求13或14所述的方法,其中由设备(102)上的运行时间环境检索已打包组件应用程序。
16.根据权利要求13或14所述的方法,其中将已打包组件应用程序推送到设备(102)上的运行时间环境。
17.根据权利要求14所述的方法,其中由设备的用户、管理员(208)或第三方的任意一个来发起组件应用程序请求。
18.一种无线通信系统(100),包括根据权利要求1到11之一所述的系统(106)。
19.一种机器可读介质,包括计算机代码装置,用于使根据权利要求1到11之一所述的系统(106)实现根据权利要求12到17之一所述的方法。
CN200610006226.8A 2005-01-24 2006-01-24 供应组件应用程序的系统和方法 Active CN100566311C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP05100434A EP1684169A1 (en) 2005-01-24 2005-01-24 System and Method for Provisioning Component Applications
EP05100434.9 2005-01-24

Publications (2)

Publication Number Publication Date
CN1812383A true CN1812383A (zh) 2006-08-02
CN100566311C CN100566311C (zh) 2009-12-02

Family

ID=34938562

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200610006226.8A Active CN100566311C (zh) 2005-01-24 2006-01-24 供应组件应用程序的系统和方法

Country Status (4)

Country Link
EP (1) EP1684169A1 (zh)
CN (1) CN100566311C (zh)
CA (1) CA2533608C (zh)
SG (1) SG124388A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101524298A (zh) * 2008-03-06 2009-09-09 伊西康内外科公司 与可植入的天线通信的系统和方法
CN102971707A (zh) * 2010-07-02 2013-03-13 国际商业机器公司 为软件包安装配置计算机系统
CN111385304A (zh) * 2020-03-16 2020-07-07 深信服科技股份有限公司 系统部署方法、设备、计算机存储介质及融合系统

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8856288B2 (en) 2006-09-07 2014-10-07 Omnitracs, Llc Method and apparatus for the distribution of configuration data
WO2010087748A1 (en) * 2009-01-30 2010-08-05 Telefonaktiebolaget Lm Ericsson (Publ) Method and arrangement for multi device provisioning and configuration
KR20120050367A (ko) * 2010-11-10 2012-05-18 삼성전자주식회사 개인 네트워크를 이용한 서비스 제공 방법 및 장치
WO2013106539A1 (en) * 2012-01-10 2013-07-18 Packetvideo Corporation System and method for providing an inter-application communication framework
US9800567B2 (en) 2014-03-31 2017-10-24 Sap Se Authentication of network nodes
US9756030B2 (en) 2014-08-08 2017-09-05 Eurotech S.P.A. Secure cloud based multi-tier provisioning
US9762392B2 (en) 2015-03-26 2017-09-12 Eurotech S.P.A. System and method for trusted provisioning and authentication for networked devices in cloud-based IoT/M2M platforms
CN112631797B (zh) * 2020-12-18 2024-09-20 京东科技控股股份有限公司 配置业务系统的方法和装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5845090A (en) * 1994-02-14 1998-12-01 Platinium Technology, Inc. System for software distribution in a digital computer network
ES2318907T3 (es) * 1998-12-16 2009-05-01 NOKIA SIEMENS NETWORKS GMBH & CO. KG Sistema de servicios en una red.
US6643690B2 (en) * 1998-12-29 2003-11-04 Citrix Systems, Inc. Apparatus and method for determining a program neighborhood for a client node in a client-server network
US20020026474A1 (en) * 2000-08-28 2002-02-28 Wang Lawrence C. Thin client for wireless device using java interface
WO2002084975A2 (en) * 2001-04-12 2002-10-24 Research In Motion Limited System and method for dynamically pushing information on wireless data communication devices
US8001259B2 (en) * 2001-06-01 2011-08-16 International Business Machines Corporation Pervasive, distributed provision of services such as product brokerage
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

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101524298A (zh) * 2008-03-06 2009-09-09 伊西康内外科公司 与可植入的天线通信的系统和方法
CN102971707A (zh) * 2010-07-02 2013-03-13 国际商业机器公司 为软件包安装配置计算机系统
CN102971707B (zh) * 2010-07-02 2016-07-06 国际商业机器公司 为软件包安装配置计算机系统的方法和装置
CN111385304A (zh) * 2020-03-16 2020-07-07 深信服科技股份有限公司 系统部署方法、设备、计算机存储介质及融合系统
CN111385304B (zh) * 2020-03-16 2022-09-30 深信服科技股份有限公司 系统部署方法、设备、计算机存储介质及融合系统

Also Published As

Publication number Publication date
SG124388A1 (en) 2006-08-30
CN100566311C (zh) 2009-12-02
EP1684169A1 (en) 2006-07-26
CA2533608C (en) 2012-02-14
CA2533608A1 (en) 2006-07-24

Similar Documents

Publication Publication Date Title
CN1812383A (zh) 供应组件应用程序的系统和方法
CN1812382A (zh) 管理组件应用程序的通信的系统和方法
US20060168355A1 (en) System and method for provisioning component applications
CN1287305C (zh) 网络系统
CA2777647C (en) Mobile provisioning tool system
US7747724B2 (en) System and method of device-to-server registration
CN1231028C (zh) 在不同网络的匿名用户之间智能建立会话的分布式系统
US20060165105A1 (en) System and method for managing communication for component applications
US7716276B1 (en) Network that supports user-initiated device management
CN1695139A (zh) 用于定义对象以允许为移动通信设备建立设备管理树的方法和设备
CN101052167A (zh) 一种通信号码自动更新系统及其实现方法
CN1751442A (zh) 用于压缩以结构化定义语言表达的无线应用程序的系统和方法
CN1703048A (zh) 网络服务应用协议和soap处理模型
CN1661554A (zh) 用于构建无线应用程序的系统和方法
CN101043512A (zh) 一种电子邮件系统
CN1751492A (zh) 在网络通信中压缩报文的系统和方法
CN101044490A (zh) 将光盘用作智能密钥装置的方法和系统
CN1471008A (zh) 用于移动设备的应用程序分发和配置管理的系统和方法
CN1681264A (zh) 服务提供系统及其提供方法
CN1992724A (zh) 管理服务器和终端单元
CN1625865A (zh) 用于管理树状数据交换的方法和设备
CN1968283A (zh) 一种网络管理的系统和方法
CN1708000A (zh) 信息处理装置、信息处理方法、及其程序
CN101043519A (zh) 网络存储系统
CN1878092A (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
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: Ontario, Canada

Patentee after: BlackBerry Ltd.

Country or region after: Canada

Address before: Ontario, Canada

Patentee before: RESEARCH IN MOTION Ltd.

Country or region before: Canada

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240520

Address after: Ai Erlandubailin

Patentee after: Maliki Innovation Co.,Ltd.

Country or region after: Ireland

Address before: Ontario, Canada

Patentee before: BlackBerry Ltd.

Country or region before: Canada