[go: up one dir, main page]

CN100570553C - Terminal and method for providing dynamic interaction between a pair of applications - Google Patents

Terminal and method for providing dynamic interaction between a pair of applications Download PDF

Info

Publication number
CN100570553C
CN100570553C CNB2005100640846A CN200510064084A CN100570553C CN 100570553 C CN100570553 C CN 100570553C CN B2005100640846 A CNB2005100640846 A CN B2005100640846A CN 200510064084 A CN200510064084 A CN 200510064084A CN 100570553 C CN100570553 C CN 100570553C
Authority
CN
China
Prior art keywords
application
interface
terminal
access
platform independence
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
CNB2005100640846A
Other languages
Chinese (zh)
Other versions
CN1670694A (en
Inventor
迈克尔·谢菲尔德
菲拉·比布尔
布赖恩·R·戈林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Maliki Innovation Co 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
Priority claimed from US10/767,728 external-priority patent/US20050172282A1/en
Application filed by Research in Motion Ltd filed Critical Research in Motion Ltd
Publication of CN1670694A publication Critical patent/CN1670694A/en
Application granted granted Critical
Publication of CN100570553C publication Critical patent/CN100570553C/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

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

Abstract

提供了一种通过终端的平台无关接口提供在一对应用程序之间进行动态交互的系统和方法,这对应用包括希望访问目标应用的请求者应用。一种方法包括注册目标应用的访问信息,上述访问信息包括公布的访问信息,公布的访问信息可以通过平台无关接口在数据结构中检索获得。该方法还包括通过平台无关接口接收来自请求者应用的访问请求,上述访问请求包括与目标应用公布的访问信息相对应的请求内容。该方法还包括通过使用请求内容搜索该数据结构来获得接口组件,上述接口组件配置用于采用目标应用所期望的访问格式实现在平台无关接口和目标应用之间的通信。该方法还包括通过平台无关接口使用接口组件来满足请求者应用的访问请求,用于与目标应用的交互。

Figure 200510064084

A system and method are provided for providing dynamic interaction between a pair of application programs including a requester application wishing to access a target application through a platform-independent interface of a terminal. A method includes registering access information of a target application, the access information includes published access information, and the published access information can be retrieved from a data structure through a platform-independent interface. The method further includes receiving an access request from the requester application through a platform-independent interface, where the access request includes request content corresponding to the access information published by the target application. The method also includes searching the data structure using the request content to obtain an interface component configured to implement communication between the platform-independent interface and the target application in an access format expected by the target application. The method also includes using the interface component to satisfy the requester application's access request through the platform independent interface for interaction with the target application.

Figure 200510064084

Description

用于提供在一对应用程序之间的动态交互的终端和方法 Terminal and method for providing dynamic interaction between a pair of applications

技术领域 technical field

本发明涉及使用应用程序接口的应用交互。The present invention relates to application interaction using application programming interfaces.

背景技术 Background technique

现在所使用的终端数量正在持续不断的增加,诸如移动电话,具有无线通信功能的PDA,个人计算机,自助服务公用电话亭和双向寻呼机。在这些装置中运行的软件应用增加了它们的实用性。例如,移动电话可以包含检索城市范围天气条件的应用,或者PDA可以包含提供用户选购杂货的应用。这些软件应用利用与网络的连通性以便向用户提供及时和有效地服务。然而,由于某些装置受限的资源,为各种装置开发软件应用仍然是困难和费时的任务。The number of terminals in use today is continuously increasing, such as mobile phones, PDAs with wireless communication functions, personal computers, self-service kiosks and two-way pagers. Software applications running in these devices increase their usefulness. For example, a mobile phone may contain an application that retrieves city-wide weather conditions, or a PDA may contain an application that allows the user to shop for groceries. These software applications utilize connectivity to the network in order to provide timely and efficient services to users. However, developing software applications for various devices remains a difficult and time-consuming task due to the limited resources of certain devices.

目前不存在定义和公布应用访问API的公用标准。当前,无线平台和设备提供一些定制交互作用解决方案,这些方案采用所有可用应用的显性知识(explicit knowledge)和安装在装置上的相应API。主机装置(device-hosted)无线应用进行交互的能力是由当前运行时间环境和该环境当前应用的内嵌知识(built-in knowledge)来预定。所有关于交互作用选项和可用外部API的决定都在设计和开发阶段期间完成,这些阶段没有运行时间调整或扩展的可能。使用本机编码平台能够当前实施在应用程序之间的交互作用,用于支持运行时间环境和交互应用。Currently there is no public standard for defining and publishing application access APIs. Currently, wireless platforms and devices provide some custom interaction solutions that use explicit knowledge of all available applications and corresponding APIs installed on the device. The ability of a device-hosted wireless application to interact is predetermined by the current runtime environment and the built-in knowledge of current applications in that environment. All decisions about interaction options and available external APIs are made during the design and development phases, where there is no possibility for runtime adjustments or extensions. Interaction between applications can currently be implemented using a native coding platform for supporting runtime environments and interactive applications.

当前的应用交互方法所具有的缺点包括:在单一软件部分的配置或版本中的变化通常需要重新安装大量相关或有关的应用;先前安装的软件部分不能够与以后时间供应和安装的软件沟通;不能无缝的更新现有软件或改变在相互依懒的软件包中的组成部分。Disadvantages with current application interaction methods include: a change in configuration or version of a single software part typically requires reinstallation of numerous related or related applications; previously installed software parts cannot communicate with software provisioned and installed at a later time; Inability to seamlessly update existing software or change components in interdependent software packages.

为了定制应用交互公开了本发明的系统和方法,从而消除或减少至少上述提到的一些缺点。The systems and methods of the present invention are disclosed for customizing application interactions such that at least some of the above-mentioned disadvantages are eliminated or reduced.

发明内容 Contents of the invention

当前的应用交互方法所具有的缺点包括:在单一软件部分的配置或版本中的变化通常需要重新安装大量相关或有关的应用;先前安装的软件部分不能与以后时间供应和安装的软件沟通;不能无缝的更新现有软件或改变在互相依懒的软件包中的组成部分。与当前的交互方法相反,所提供的系统和方法通过终端的平台无关(neutral)接口能够提供在一对应用程序之间的动态交互,这对应用包括希望访问目标应用的请求者应用。一种这样方法可以包括依据目标应用的请求访问信息来注册和/或自动分配,上述的访问信息包括公布的访问信息,该公布的访问信息可以通过平台无关接口在数据结构中进行检索获得。在此使用的术语注册可以涉及与/或目录或知识库(repository)以及与/或依据请求自动分配的特定通信。在这种方法中,通过终端的平台无关接口接收来自请求者应用的访问请求,上述的访问请求包括对应于目标应用公布的访问信息的请求内容。接口组件是通过使用请求内容检索该数据结构来获得,上述的接口组件配置用于采用目标应用所期望的访问格式实现在平台无关接口和目标访问之间的通信。通过平台无关接口使用所获得的接口组件,以满足与目标应用进行交互作用的请求者应用的访问请求。Disadvantages with current application interaction methods include: a change in configuration or version of a single piece of software typically requires reinstallation of numerous related or related applications; previously installed software pieces cannot communicate with software provisioned and installed at a later time; Seamlessly update existing software or change components in interdependent software packages. In contrast to current interaction methods, the provided systems and methods are capable of providing dynamic interaction between a pair of applications including a requester application wishing to access a target application through a platform neutral interface of the terminal. One such method may include registering and/or automatically assigning access information upon request by the target application, said access information including published access information retrieved from a data structure via a platform independent interface. The term registration as used herein may refer to specific communications with/or a directory or repository and/or with automatic assignment upon request. In this method, an access request from a requester application is received through a platform-independent interface of the terminal, and the above access request includes request content corresponding to the access information published by the target application. The interface component is obtained by retrieving the data structure using the request content, the above-mentioned interface component is configured to implement the communication between the platform independent interface and the target access in the access format expected by the target application. The obtained interface components are used through the platform independent interface to satisfy the access request of the requester application interacting with the target application.

还公开了一种通过终端的平台无关接口提供在一对应用程序之间动态交互的方法,这对应用包括希望访问目标应用的请求者应用,该方法包括步骤:注册和/或分配目标应用的访问信息,该访问信息包括公布的访问信息,该公布的访问信息可以通过平台无关接口在数据结构中检索获得;通过平台无关接口接收来自请求者应用的访问请求,该访问请求包括相应于目标应用公布的访问信息的请求内容;使用请求内容检索该数据结构来获得接口组件,该接口组件被配置用于采用目标应用所期望的访问格式实现在平台无关接口和目标应用之间的通信;通过平台无关接口使用接口组件,以满足与目标应用进行交互作用的请求者应用的访问请求。Also disclosed is a method of providing dynamic interaction between a pair of applications comprising a requester application wishing to access a target application via a platform-independent interface of a terminal, the method comprising the steps of: registering and/or assigning the target application's Access information, the access information includes the published access information, the published access information can be retrieved from the data structure through the platform-independent interface; the access request from the requester application is received through the platform-independent interface, and the access request includes the information corresponding to the target application The request content of the published access information; the data structure is retrieved using the request content to obtain an interface component configured to enable communication between the platform-independent interface and the target application in an access format expected by the target application; via the platform The independent interface uses the interface components to satisfy the access request of the requester application interacting with the target application.

还提供一种用于提供在一对应用程序之间动态交互的终端,该应用程序处于由终端的运行时间环境提供的平台无关环境中,这对应用包括希望访问目标应用的请求者应用,该终端包括:数据结构,用于注册目标应用的访问信息,该访问信息包括公布的访问信息;接口模块,用于提供平台无关环境,该接口模块配置用于接收来自请求者应用的访问请求,该访问请求配置用于包括与目标应用公布的访问信息相应的请求内容,该数据结构公布的访问信息可以由接口模块来检索;连接到接口模块的接口组件,通过使用请求内容搜索该数据结构可以检索接口模块,该接口模块配置用于采用目标应用所期望的访问格式实现在接口模块和目标应用之间的通信;其中通过接口模块使用接口部件满足在与目标应用交互作用中的请求者应用的访问请求。There is also provided a terminal for providing dynamic interaction between a pair of applications comprising a requester application wishing to access a target application in a platform-independent environment provided by a runtime environment of the terminal, the application The terminal includes: a data structure for registering the access information of the target application, the access information including published access information; an interface module for providing a platform-independent environment, the interface module is configured to receive an access request from the requester application, the The access request is configured to include request content corresponding to the access information published by the target application, and the access information published by the data structure can be retrieved by the interface module; the interface component connected to the interface module can be retrieved by searching the data structure using the request content an interface module configured to implement communication between the interface module and the target application using an access format expected by the target application; wherein the interface component is used by the interface module to satisfy the access of the requester application in the interaction with the target application ask.

还公开一种用于提供在一对应用程序之间动态交互的计算机程序产品,该应用程序处于由终端的运行时间环境提供的平台无关环境中,这对应用包括希望访问目标应用的请求者应用,该计算机程序产品包括:计算机可读介质;存储在计算机可读介质上的数据结构模块,用于注册目标应用的访问信息,该访问信息包括公布的访问信息;连接到数据结构模块的接口模块,用于提供平台无关环境,该接口模块配置用于接收来自请求者应用的访问请求,该访问请求配置用于包括与目标应用公布的访问信息相应的请求内容,该数据结构公布的访问信息可以由接口模块来检索;以及连接到接口模块的接口组件,该接口模块配置用于包含接口组件,通过使用请求内容搜索数据结构模块可以检索接口模块,该接口模块配置用于采用目标应用所期望的访问格式实现在接口模块和目标应用之间的通信;其中通过接口模块使用接口组件满足在与目标应用交互中的请求者应用的访问请求。Also disclosed is a computer program product for providing dynamic interaction between a pair of applications including a requester application wishing to access a target application in a platform-independent environment provided by a runtime environment of a terminal , the computer program product includes: a computer-readable medium; a data structure module stored on the computer-readable medium for registering access information of a target application, the access information including published access information; an interface module connected to the data structure module , used to provide a platform-independent environment, the interface module is configured to receive an access request from the requester application, the access request is configured to include request content corresponding to the access information published by the target application, and the access information published by the data structure can be retrieved by the interface module; and an interface component connected to the interface module configured to contain the interface component retrievable by using the request content search data structure module configured to employ the desired The access format realizes the communication between the interface module and the target application; wherein the access request of the requester application in the interaction with the target application is satisfied by using the interface component through the interface module.

附图说明 Description of drawings

这些特征和其它特征将在下面详述的说明书中变得更加清楚,说明书中附加的实例附图是作为参考,其中:These and other features will become more apparent from the following detailed description to which reference is made in the appended example drawings in which:

图1是网络系统的方框图;Fig. 1 is the block diagram of network system;

图2是图1的通用终端的方框图;Fig. 2 is a block diagram of the universal terminal of Fig. 1;

图3显示图2的终端的处理框架;Fig. 3 shows the processing frame of the terminal of Fig. 2;

图4显示了使用专用处理器用于图3框架的应用交互;Figure 4 shows application interaction for the framework of Figure 3 using a dedicated processor;

图5是作为集成引擎的图3接口模块的替换实例;Fig. 5 is the replacement example of Fig. 3 interface module as integration engine;

图6是图3集成引擎的运行时间流程的实例;以及Figure 6 is an example of a run-time flow for the integration engine of Figure 3; and

图7显示在图1的两个应用之间交互的操作的实例。FIG. 7 shows an example of operations for interaction between the two applications of FIG. 1 .

具体实施方式 Detailed ways

网络系统Network Systems

参照图1,网络系统10包括多个终端100,它们经过连接的广域网(WAN)104与一个或多个应用服务器110进行交互作用,应用服务器110是通过管理服务器106来访问,广域网(WAN)104是诸如但并不限于因特网。终端100经过网络104,经由服务器106接收来自应用服务器110的应用程序107。通用终端100可以是诸如但并不局限于例如为台式终端116的有线装置、无线装置101、PDA、自助服务公用电话亭等。而且,系统10还可以具有网关服务器112,用于经过局域网(LAN)114实现台式终端116(或其他有线装置)与服务器106的连接。Referring to FIG. 1 , a network system 10 includes a plurality of terminals 100 interacting with one or more application servers 110 via a connected wide area network (WAN) 104. The application servers 110 are accessed through a management server 106, and the wide area network (WAN) 104 Such as but not limited to the Internet. Terminal 100 receives application program 107 from application server 110 via server 106 via network 104 . Universal terminal 100 may be a wired device such as, but not limited to, eg, desk terminal 116, wireless device 101, a PDA, a kiosk, or the like. Moreover, the system 10 may also have a gateway server 112 for connecting a desktop terminal 116 (or other wired device) to the server 106 via a local area network (LAN) 114 .

此外,系统10可以具有无线网络102,用于连接无线终端101到WAN104。可以认识到其它终端和计算机(未显示)能够经过WAN104连接到服务器106和除图1中所示之外的相关网络。为了简单起见,通用终端100、无线装置101和个人计算机116在下文中被称为终端100。此外,为了简单起见,系统10的网络102、104、112在下文中被称为网络104。可以认识到如果需要,还可以具有多个服务器106、110和/或可以组合服务器106、110的功能。还将认识到可以由提供定义模式服务(schema-defined service)的服务提供商118来实施服务器106,110,定义模式服务诸如为web服务。而且,当获得和执行应用107时,终端100还可以作为独立的装置操作。例如,如以下定义,应用可以经过计算机可读介质212加载到终端上(见图2)。Additionally, system 10 may have a wireless network 102 for connecting wireless terminals 101 to WAN 104 . It will be appreciated that other terminals and computers (not shown) can connect via WAN 104 to server 106 and associated networks other than those shown in FIG. 1 . For simplicity, the general-purpose terminal 100 , the wireless device 101 and the personal computer 116 are referred to as the terminal 100 hereinafter. Furthermore, the networks 102 , 104 , 112 of the system 10 are hereinafter referred to as the network 104 for simplicity. It will be appreciated that there may also be multiple servers 106, 110 and/or the functionality of the servers 106, 110 may be combined if desired. It will also be appreciated that the servers 106, 110 may be implemented by a service provider 118 that provides a schema-defined service, such as a web service. Also, when acquiring and executing the application 107, the terminal 100 can also operate as a stand-alone device. For example, an application may be loaded onto a terminal via a computer readable medium 212 (see FIG. 2 ), as defined below.

系统10促进多个应用107之间的交互作用,例如,这些应用107被标记为“A”,“B”,“C”和“D”,将其分布在一个终端100上(即本地交互-例如在应用“A”和“C”之间)以及在终端100之间(即远程交互-例如在应用“B”和“D”之间)。应用107通过接口和数据结构模块312进行交互(见图2),接口和数据结构模块312是以平台无关结构化定义语言(诸如但并不局限于XML)的形式来表示和/或平台无关脚本语言(诸如但并不局限于ECMAScrip)的形式来表示。应用107通过应用程序接口(API)122和访问扩展124(下文称为访问处理器124)进行通信。API122和处理器124可以从储存库或数据库120中检索。可以认识到数据库120可以供服务118使用或可以供独立的数据服务器126使用。系统还考虑到API声明操作(declared operation)的执行和API与应用请求的匹配。为了简明而不丧失一般性,用于表示接口模块312的语言在下文被称为XML;特别考虑的是在每个这样的实例中,可以根据设备选择和/或约束条件而使用不同的平台无关结构化定义语言或脚本语言。The system 10 facilitates the interaction between a plurality of applications 107, for example, labeled "A", "B", "C" and "D", which are distributed on one terminal 100 (i.e. local interaction- eg between applications "A" and "C") and between terminals 100 (ie remote interaction - eg between applications "B" and "D"). The application 107 interacts through an interface and data structure module 312 (see FIG. 2 ) that is expressed in a platform-independent structured definition language such as but not limited to XML and/or a platform-independent script Language (such as but not limited to ECMAScript) to represent. Applications 107 communicate through an application program interface (API) 122 with access extensions 124 (hereinafter referred to as access handlers 124). API 122 and processor 124 may retrieve from repository or database 120 . It can be appreciated that the database 120 can be used by the service 118 or can be used by a stand-alone data server 126 . The system also takes into account the execution of API declared operations and the matching of APIs with application requests. For brevity and without loss of generality, the language used to represent the interface module 312 is hereinafter referred to as XML; it is specifically considered that in each such instance different platform-independent Structured definition language or scripting language.

通用终端universal terminal

参照图2,终端100是诸如但不局限于移动电话(或其他无线装置),PDA,双向寻呼机或双模式通信终端。终端100包括网络连接接口200,诸如为无线收发信机或有线网络接口卡或调制解调器,该网络连接接口200通过连接218连接到终端基础设施204。连接接口200在终端100的操作期间可以连接到网络104,例如通过RF链接连接到诸如无线网络102(见图1),RF链接能够使终端100进行相互通信以及经过网络104与外部系统(诸如服务器106-见图1)进行通信,并且能够使终端100协调在终端100和服务器106,110,126之间的请求/响应消息105。网络104支持在终端100和外部系统之间以请求/响应消息105形式的应用程序107的传输,终端100和外部系统都连接到网络104。网络104还可以支持在终端100和网络104外部的终端之间用于电话呼叫的语音通信。无线网络102可以使用无线数据传输协议,该无线网络是诸如但并不局限于DataTAC,GPRS或CDMA。可以认识到在终端100之间的交互还可以称为在应用107之间的远程交互。Referring to FIG. 2, the terminal 100 is such as but not limited to a mobile phone (or other wireless device), a PDA, a two-way pager or a dual-mode communication terminal. Terminal 100 includes a network connection interface 200 , such as a wireless transceiver or a wired network interface card or a modem, connected to terminal infrastructure 204 via connection 218 . The connection interface 200 may be connected to the network 104 during operation of the terminal 100, for example, to a wireless network 102 (see FIG. 1 ) via an RF link, which enables the terminal 100 to communicate with each other and via the network 104 with external systems such as servers 106 - see FIG. 1 ) communicates and enables the terminal 100 to coordinate request/response messages 105 between the terminal 100 and the servers 106 , 110 , 126 . The network 104 supports the transfer of applications 107 in the form of request/response messages 105 between the terminal 100 and external systems, both of which are connected to the network 104 . The network 104 may also support voice communication for telephone calls between the terminal 100 and terminals outside the network 104 . Wireless network 102 may use a wireless data transmission protocol such as, but not limited to, DataTAC, GPRS or CDMA. It can be appreciated that the interaction between terminals 100 may also be referred to as remote interaction between applications 107 .

重新参照图2,终端100还可以具有用户接口202以促进与用户(未显示)的交互,该用户接口202通过连接222连接到终端的基础设施204。用户接口202可以包括一个或多个用户输入装置,诸如但并不局限于QWERTY键盘、键盘、导航键(trackwheel)、指示笔、鼠标、麦克风,还包括用户输出装置,诸如为LCD屏幕显示器和或扬声器。如果屏幕是可触摸感应的,那么该显示器可以作为由终端基础设施204控制的用户输入装置来使用。Referring back to FIG. 2 , the terminal 100 may also have a user interface 202 connected by a connection 222 to the infrastructure 204 of the terminal to facilitate interaction with a user (not shown). User interface 202 may include one or more user input devices, such as, but not limited to, a QWERTY keyboard, keyboard, trackwheel, stylus, mouse, microphone, and user output devices, such as an LCD screen display and or speaker. If the screen is touch sensitive, the display can be used as a user input device controlled by the terminal infrastructure 204 .

重新参照图2,终端基础设施204启用对终端100的操作。终端基础设施204包括计算机处理器208和相联系的存储模块210。通过执行相关指令,计算机处理器208操纵网络接口200、通信终端100的用户接口202和基础设施206(见图3)的操作,这些指令是由操作系统和设置在存储模块210中的客户应用程序107来提供;计算机处理器208可以包括一个或多个处理组件,这些处理组件可能包括一个或多个通用处理器和/或专用处理器(例如,ASIC,FPGA,DSP等)。而且,可以认识到终端基础设施204可以包括一个连接到处理器208的计算机可读存储介质212,用于向处理器提供加载和执行客户应用程序107的指令。计算机可读介质212可以包括硬件和/或软件,仅仅作为举例而言,计算机可读介质是诸如磁盘、磁带、诸如CD/DVD ROM的光可读介质和存储卡。在每种情况下,计算机可读介质212可以表现为小磁盘、软盘、磁带盒、硬盘驱动器、固态存储卡或在存储模块210中提供的RAM的形式。应当注意到上面列出实例的计算机可读介质212可以被单独或结合的使用。Referring back to FIG. 2 , terminal infrastructure 204 enables operation of terminal 100 . Terminal infrastructure 204 includes a computer processor 208 and an associated memory module 210 . Computer processor 208 handles the operation of network interface 200, user interface 202 of communication terminal 100, and infrastructure 206 (see FIG. 107; computer processor 208 may include one or more processing components, which may include one or more general-purpose processors and/or special-purpose processors (eg, ASICs, FPGAs, DSPs, etc.). Furthermore, it will be appreciated that terminal infrastructure 204 may include a computer readable storage medium 212 coupled to processor 208 for providing instructions to the processor to load and execute client application 107 . Computer readable media 212 may include hardware and/or software, and are, by way of example only, such as magnetic disks, tapes, optically readable media such as CD/DVD ROMs, and memory cards. In each case, computer readable medium 212 may take the form of a minidisk, floppy disk, magnetic tape cartridge, hard drive, solid state memory card, or RAM provided in storage module 210 . It should be noted that the computer readable media 212 of the examples listed above may be used alone or in combination.

处理框架processing frame

参考图2,客户运行时间环境是由处理框架206提供。多种这样的运行时间环境可以有可能(potentially)供特定终端100的处理框架206使用。终端100的框架206通过连接220连接到基础设施204,它是对处理器208的终端100功能性接口和对基础设施204的相关操作系统的接口。终端100的客户运行时间环境更适宜能够产生、主持(hosting)和执行在终端100中的客户应用程序107;如果可以使用多种运行时间环境,为了具有特定应用程序107的应用,可以选择特定的一个运行时间环境。重新参照图1,由终端100提供的客户运行时间环境可以配置用于使终端100作为web服务(web服务118)的web客户来操作。可以认识到客户运行时间环境还可以使终端100客户作为由服务118供应的所有其他通用限定模式业务的客户。Referring to FIG. 2 , the client runtime environment is provided by the processing framework 206 . A variety of such runtime environments may potentially be used by the processing framework 206 of a particular terminal 100 . The frame 206 of the terminal 100 is connected to the infrastructure 204 by a connection 220 , which is the functional interface of the terminal 100 to the processor 208 and to the associated operating system of the infrastructure 204 . The client runtime environment of the terminal 100 is preferably capable of generating, hosting and executing the client application 107 in the terminal 100; if multiple runtime environments are available, for applications with a particular application 107, a specific A runtime environment. Referring back to FIG. 1 , the client runtime environment provided by terminal 100 may be configured to enable terminal 100 to operate as a web client for a web service (web service 118 ). It will be appreciated that the client runtime environment may also have the terminal 100 client as a client of all other generic defined-mode services offered by the service 118 .

框架206的终端运行时间环境更适宜支持下面对于客户应用程序107(见图2)的常驻执行程序版本的基本功能,诸如但并不局限于:The terminal runtime environment of the framework 206 preferably supports the following basic functions for the resident executable version of the client application 107 (see FIG. 2 ), such as but not limited to:

提供平台无关接口模块312,用于促进程序107之间的本地和/或远程交互;providing a platform-independent interface module 312 for facilitating local and/or remote interaction between programs 107;

提供通信能力经过网络104向服务器106发送消息105;providing communication capability to send message 105 to server 106 via network 104;

通过用户在终端100的输入装置上提供的数据输入能力,向服务器106供应输出消息105的数据部分;supplying the server 106 with the data portion of the output message 105 through data input capabilities provided by the user on the input means of the terminal 100;

提供对响应消息105(输入消息)或服务器106的不相关通知的数据表示或输出能力;Provides data representation or output capabilities to response messages 105 (input messages) or irrelevant notifications from server 106;

提供数据存储服务来保持在存储模块210和/或终端100的计算机可读介质212(见图2)中的本地客户数据;和providing data storage services to maintain local customer data in the storage module 210 and/or the computer-readable medium 212 (see FIG. 2 ) of the terminal 100; and

提供用于协调应用107操作的脚本语言的执行环境。An execution environment for scripting languages is provided for coordinating the operation of the application 107 .

此外,客户运行时间环境的特定功能可以包括诸如但并不局限于对语言的服务支持,协调存储分配,连网,在I/O操作期间的数据管理,协调在终端100的输出装置上的图示以及提供对核心面向对象类的访问和支持文件/程序库。由终端100执行的运行时间环境的实例可以包括诸如但并不局限于Microsoft的Common LanguageRuntime(CLR)和Sun Microsystem的Java Runtime Environment(JRE)。Additionally, specific functions of the client runtime environment may include services such as, but not limited to, language support, coordinating storage allocation, networking, data management during I/O operations, coordinating graphics on output devices of the terminal 100 display as well as provide access to core object-oriented classes and supporting files/libraries. Examples of runtime environments executed by terminal 100 may include such as, but not limited to, Microsoft's Common Language Runtime (CLR) and Sun Microsystem's Java Runtime Environment (JRE).

参照图3,处理框架206还可以具有其它模块,诸如但不局限于应用管理器206和供应管理器311。供应管理器311管理在终端100上软件应用207的供应。应用供应可以包括存储、检索、下载和去除应用107,还包括配置应用程序107,以便经过在链接终端100上协同操作的接口模块312来访问远程应用107。应用管理器306可以用于与用户接口202交互(见图2)、管理应用的使用寿命等。可以认识到如果需要,可以实施另外或除显示以外的各个管理器306,311的处理框架206的其它配置。Referring to FIG. 3 , the processing framework 206 may also have other modules such as, but not limited to, an application manager 206 and a provisioning manager 311 . Provisioning manager 311 manages the provisioning of software applications 207 on terminal 100 . Application provisioning may include storing, retrieving, downloading, and removing applications 107 , as well as configuring applications 107 to access remote applications 107 via an interface module 312 cooperating on linking terminal 100 . Application manager 306 may be used to interact with user interface 202 (see FIG. 2 ), manage the lifespan of applications, and the like. It will be appreciated that other configurations of the processing framework 206 of the respective managers 306, 311 in addition to or in addition to display may be implemented if desired.

重新参照图3,接口模块312使用诸如API124的一系列接口组件来协调在请求应用400(见图4)与目标应用107之间的通信。接口模块312还可以使用诸如访问处理器122的其它接口组件来运行作为交互模块312内部的插件,并且作为在交互请求者400和目标应用107之间进行交互作用的中介,其中目标应用表示为除了模块312的平台无关语言以外的语言(例如,将来自模块312中基于XML标准接口的呼叫转换为适合与基于本机目标应用程序107进行通信的应用特定本机呼叫(native call))。可以认识到目标应用可以表示为运行时间环境的本机语言形式,或者另外表示为与接口模块312的结构化平台无关语言不同的语言形式。Referring back to FIG. 3 , interface module 312 coordinates communications between requesting application 400 (see FIG. 4 ) and target application 107 using a series of interface components, such as API 124 . The interface module 312 may also run as a plug-in inside the interaction module 312 using other interface components such as the access handler 122, and act as an intermediary for the interaction between the interaction requester 400 and the target application 107, where the target application is represented as except Languages other than the platform-independent language of module 312 (e.g., converting a call from an XML-based standard interface in module 312 to an application-specific native call suitable for communicating with a native-based target application 107). It will be appreciated that the target application may be expressed in the native language of the runtime environment, or otherwise in a language other than the structured platform-independent language of the interface module 312 .

可以开发访问处理器122运行作为接口模块312内部的插件,访问处理器122可以作为在充当交互请求者的应用107与目标应用107之间进行交互作用的中介。处理器122根据目标应用107的内部构造提供API支持,处理器122是在其配置中特定的目标应用。处理器122允许接口模块312访问相关应用107公布的API124,相关应用107并不表示为接口模块312的平台无关语言的形式。接口模块312提供联系新处理器122到应用URI的功能,或提供联系新处理器122经过注册接口504(见图5)到表302(见图3)的其它合适标识符的功能。处理器122可以较验通过数据的有效性,还可以任选包含一些有关过滤和较验的访问等级安全性。The access handler 122 can be developed to run as a plug-in inside the interface module 312 , the access handler 122 can act as an intermediary for the interaction between the application 107 acting as the interaction requester and the target application 107 . The processor 122 provides API support according to the internal configuration of the target application 107, which processor 122 is specific to the target application in its configuration. The processor 122 allows the interface module 312 to access the API 124 published by the associated application 107 , which is not expressed in the form of a platform-independent language of the interface module 312 . Interface module 312 provides the functionality to link new handler 122 to the application URI, or other suitable identifier to table 302 (see FIG. 3 ) via registry interface 504 (see FIG. 5 ). Processor 122 may verify the validity of the passed data and may optionally include some access level security regarding filtering and verification.

重新参照图3,接口模块312使用应用概况表300和应用API描述表302用于包含应用107、API124和处理器122的访问信息。应用概况表300包含当供应/安装新应用107或另外在终端100中安装新应用107时所提供的应用107信息。概况包含为应用公布所需要的所有信息(诸如但不局限于应用URI,描述,版本等)。表300中应用概况的知识(公布)和/或表302中应用API的描述符提供其它应用通过交互模块312到指定应用107的外部访问。应用API描述符表302可以包括由指定应用107所支持的所有API的形式描述符。描述符可以表示为由诸如XML的执行运行时间或其它结构化语言所能理解的所有格式。这些描述符促进动态API发现机制,这将在下文进行叙述。可以认识到表格300,302可以结合为一个表或其它数据结构。Referring back to FIG. 3 , the interface module 312 uses the application profile table 300 and the application API description table 302 for containing the access information of the application 107 , the API 124 and the processor 122 . The application profile table 300 contains application 107 information provided when a new application 107 is provisioned/installed or otherwise installed in the terminal 100 . The profile contains all the information needed for application publishing (such as but not limited to application URI, description, version, etc.). The knowledge (publication) of the application profile in table 300 and/or the descriptor of the application API in table 302 provides external access by other applications to the given application 107 through the interaction module 312 . The application API descriptor table 302 may include style descriptors for all APIs supported by a given application 107 . Descriptors can be expressed in any format understood by the execution runtime such as XML or other structured languages. These descriptors facilitate a dynamic API discovery mechanism, described below. It will be appreciated that tables 300, 302 may be combined into one table or other data structure.

应用概况Application Overview

表300的应用概况可以表示为由诸如XML的执行运行时间或其它结构化语言所能理解的所有格式。概况包含应用标识,应用标识可以是URI的形式和为应用公布所需要的附加信息的形式(诸如但并不局限于版本,描述等)。因此,在应用107向接口模块312注册之后,应用107可以使用表320相关的公布的应用标识符由其它应用来寻址。可以认识到应用107公布信息应当支持本地应用107的寻址(在相同终端100上运行)以及在其它终端100上运行的远程应用107的寻址。远程访问使用能够管理远程访问的服务器106,116。例如,当应用107被发送到终端100时,应用开发商和/或服务提供商可以限定和提供对应于每个应用107的应用概况,发送以明确的或嵌入在应用107内容中的方式来实现。The application profile of table 300 may be represented in any format understood by the execution runtime such as XML or other structured language. A profile contains an application identification, which may be in the form of a URI and additional information required for application publication (such as but not limited to version, description, etc.). Thus, after application 107 is registered with interface module 312 , application 107 can be addressed by other applications using the published application identifier associated with table 320 . It can be appreciated that application 107 publishing information should support addressing of local applications 107 (running on the same terminal 100 ) as well as addressing of remote applications 107 running on other terminals 100 . Remote access uses a server 106, 116 capable of managing remote access. For example, when the applications 107 are sent to the terminal 100, the application developer and/or the service provider may define and provide an application profile corresponding to each application 107, and the sending is realized in a manner explicitly or embedded in the content of the application 107 .

下面DTD片断显示了使用XML声明(declared)的样本应用概况:The following DTD fragment shows a sample application profile declared using XML:

范例:使用DTD的基于XML应用概况描述 Example: XML-based Application Profile Description Using DTD

<!ELEMENT appplication(publish,…)><! ELEMENT appplication(publish,...)>

<!ELEMENT publish(#PCDATA)><! ELEMENT publish(#PCDATA)>

<!ATTLIST publish<! ATTLIST publish

uri  CDATA#REQUIREDuri CDATA#REQUIRED

version  CDATA#IMPLIEDversion CDATA#IMPLIED

desc  CDATA#IMPLIED>desc CDATA#IMPLIED>

在上面对于地址簿(addressbook)应用的应用概况片断中使用的XML定义可以公开为:The XML definition used in the application profile snippet above for the addressbook application can be exposed as:

<publish<publish

uri=”AddressBook”version=”3.1”desc=”Contacts manager fordevice user”/>uri="AddressBook"version="3.1"desc="Contacts manager fordevice user"/>

试图访问在终端100上的本地地址簿应用107的应用107可以使用“local(本地)”URL:“//local/AddressBook”,其中试图访问在其它终端100上的地址簿应用107的应用107(例如,插入终端用户作为远程用户的新联系人),可以使用“remote(远程)”访问://remote/123987/AddressBook,其中123987是远程终端100的唯一ID。An application 107 attempting to access a local address book application 107 on a terminal 100 may use a "local (local)" URL: "//local/AddressBook", wherein an application 107 attempting to access an address book application 107 on another terminal 100 ( For example, to insert the terminal user as the new contact of the remote user), you can use "remote (remote)" to access: //remote/123987/AddressBook, where 123987 is the unique ID of the remote terminal 100.

应用API描述符Application API Descriptor

表320的应用访问API可以表示为由诸如XML的执行运行时间或任何其它结构化语言所能理解的所有格式。应用API描述符可以使用表达项的标准化子集来限定。请求应用107将具有如何匹配其内部构造与API描述符的标准化表达项的知识。这个共享知识(sharedknowledge)帮助应用API描述符信息的使用,并促进与公布该API的应用107间的交互作用。例如,如果请求者应用107使用内部构造“集合(rendezvous)”,如果它出现在目标应用107公布的API描述符中,它将与类似“会议(meeting)”或“指定(appointment)”的标准化项(standardized term)相匹配。The application access API of table 320 may be expressed in any format understood by the execution runtime such as XML or any other structured language. Application API descriptors may be defined using a standardized subset of expressions. The requesting application 107 will have knowledge of how to match its internal structure with the standardized representation of the API descriptor. This shared knowledge facilitates the use of application API descriptor information and facilitates interactions with applications 107 that publish the API. For example, if the requester application 107 uses an internal construct "rendezvous", if it appears in the API descriptor published by the target application 107, it will be the same as a normalization like "meeting" or "appointment". term (standardized term).

应用API可以公布下面API类别的描述符:Application APIs can publish descriptors for the following API categories:

■信息API124■Information API124

消息(即发送信息到目标应用107)Message (i.e. send information to target application 107)

数据(即访问由目标应用107管理的数据)Data (i.e. access to data managed by the target application 107)

■呼叫支持下面呼叫模型的API124■ Call API124 that supports the following call models

-开始被呼叫应用107并终止呼叫者- Start called application 107 and terminate caller

-开始被呼叫应用107并保持呼叫者运行- Start the called application 107 and keep the caller running

-开始被呼叫应用107并暂停呼叫者,直到被呼叫终止- Start the called application 107 and suspend the caller until terminated by the called

下面的DTD片断显示了基于XML的API描述符的实例:The following DTD fragment shows an example of an XML-based API descriptor:

范例:使用DTD定义的基于XML实例的API描述符 Example: An XML instance-based API descriptor defined using a DTD

    <!ELEMENT action(op)><! ELEMENT action(op)>

    <!--type can be to call a function,send a message or retrieve<! --type can be to call a function,send a message or retrieve

information data-->information data-->

    <!ATTLIST action<! ATTLIST action

    api CDATA#REQUIREDapi CDATA#REQUIRED

    type(call|send|execute)”execute”type(call|send|execute) "execute"

    >>

    <!ELEMENT op(param?,result?)><! ELEMENT op(param?, result?)>

<!ATTLIST op<! ATTLIST op

name CDATA#REQUIREDname CDATA#REQUIRED

>>

<!ELEMENT param(#PCDATA)><! ELEMENT param(#PCDATA)>

<!ELEMENT result EMPTY><! ELEMENT result EMPTY>

<!ATTLIST result<! ATTLIST result

type CDATA#REQUIREDtype CDATA#REQUIRED

>>

应用API交互接口Application API interaction interface

系统10根据诸如但不局限于两种模式来提供应用107之间的交互作用,即:System 10 provides interaction between applications 107 according to two modes such as but not limited to, namely:

■实现模式1,以符合标准交互接口模块312。应用107的模式已经采用由接口模块312所支持的交互标准知识来设计,应用107的模式执行接口模块以转换对接口模块312平台无关环境的内部操作的请求应用400(见图4)呼叫;■ Mode 1 is implemented to conform to the standard interactive interface module 312 . The schema of the application 107 has been designed with knowledge of the interaction standards supported by the interface module 312, the schema of the application 107 executes the interface module to translate the request application 400 (see FIG. 4 ) calls to the internal operations of the platform independent environment of the interface module 312;

■实现模式2,无需标准交互接口模块312的知识。这个应用107的模式覆盖了宽范围的应用107(例如当前存在的应用),这些应用107不符合标准交互接口模块312。为了能够实现这些应用107的互用性(interoperability),交互接口模块312提供对访问处理器122的插入式(plugin)服务提供商接口(SPI)502(见图5)。对于特定应用107或API124,可以开发访问处理器122,访问处理器122可以支持协议转换(诸如道不局限于将基于XML标准接口呼叫转换为应用特定的本机呼叫)。■ Mode 2 is implemented without knowledge of the standard interactive interface module 312 . This pattern of applications 107 covers a wide range of applications 107 (eg, currently existing applications) that do not conform to the standard interactive interface module 312 . In order to enable the interoperability of these applications 107, the interaction interface module 312 provides a plug-in service provider interface (SPI) 502 to the access processor 122 (see FIG. 5). For a specific application 107 or API 124, an access processor 122 can be developed that can support protocol conversion (such as not limited to converting an XML-based standard interface call to an application-specific native call).

参照图4,应用A属于模式1。应用B属于模式2。开发专用处理器122来支持API公布和对应用B的访问。请求应用400将基于XML的请求404提交给接口模块312,该接口模块312通过在平台无关环境402(例如XML)中完全相对应的API-A124,由XML呼叫406呼叫应用A,正如由处理框架206的交互模块312所提供的。可选地,应用B不表示为XML形式的交互,而是使用不同的语言,例如本机运行时间环境的语言。相应的,交互模块312使用对应用B合适的处理器122将基于XML的请求404转换为本机呼叫408。Referring to FIG. 4 , application A belongs to pattern 1 . Application B belongs to pattern 2. A dedicated processor 122 is developed to support API publication and access to Application B. The requesting application 400 submits an XML-based request 404 to the interface module 312, which calls application A from an XML call 406 through an API-A 124 that corresponds exactly in a platform-independent environment 402 (e.g., XML), just as it does from the processing framework 206 provided by the interaction module 312. Optionally, application B is not expressed as an interaction in XML, but uses a different language, such as the language of the native runtime environment. Accordingly, the interaction module 312 converts the XML-based request 404 into a native call 408 using the appropriate processor 122 for application B.

请求应用400使用由表300公布的定义标识符和/或由表302公布的访问API描述符,利用交互模块312来访问目标应用A,B(见图3)。交互模块312传递该请求404给目标应用(直接传递406或经过处理器408)。一旦完成或另外执行请求406,408,交互模块312采用平台无关环境402的语言形式将结果(如果合适)传送回的请求应用。可以认识到,如果请求者应用400表示为除了平台无关环境402之外的语言形式,那么处理器122会将响应406转换回应用B的表达语言,例如基于本机表达语言的形式。The requesting application 400 utilizes the interaction module 312 to access the target application A, B (see FIG. 3 ) using the definition identifier published by the table 300 and/or the access API descriptor published by the table 302 . Interaction module 312 passes 404 the request to the target application (either directly 406 or via processor 408). Once the request 406, 408 is completed or otherwise executed, the interaction module 312 communicates the results (if appropriate) back to the requesting application in the language of the platform independent environment 402 . It can be appreciated that if the requester application 400 is expressed in a language other than the platform independent environment 402, the processor 122 will convert the response 406 back to the expression language of application B, eg, based on the native expression language.

参照图4,为了公布或注册它的API124,应用A、B或其处理器122可以在供应期间向交互模块312进行注册。应用API124的注册可以包括下述内容:API公布API实例注册。可以认识到注册逻辑可以优选的包括对应用107和/或相关API124的动态查询相关联的关键字。Referring to FIG. 4 , an application A, B or its processor 122 may register with the interaction module 312 during provisioning in order to publish or register its API 124 . The registration of the application API 124 may include the following: API publication API instance registration. It will be appreciated that registration logic may preferably include keywords associated with dynamic queries to applications 107 and/or related APIs 124 .

例如,应用107可以采用共存在终端107中的其它应用107的内嵌知识来开发,应用107知道标识符和API描述符,它们是由可以将访问作为目标的所有应用107的表300,302来表示。在一般情况下,应用107开发模式是可塑造的,新供应的应用107不具有在终端100上已经配置(deploy)的应用107的知识。为了能够与其它应用107进行通信,请求应用400能够利用动态的API查询机制。例如,应用可以采用可选择能力来开发,以输出或输入关于外部API124的数据,发送消息,或通过搜索阈值使用所需API124的动态发现来呼叫外部应用107,搜索阈值诸如是但并不局限于关键字计分方法。For example, an application 107 can be developed with built-in knowledge of other applications 107 co-existing in the terminal 107, the application 107 knows the identifier and the API descriptor, which are identified by the tables 300, 302 of all applications 107 that can target access. express. In general, the application 107 development model is malleable, and a newly provisioned application 107 has no knowledge of the already deployed applications 107 on the terminal 100 . To enable communication with other applications 107, requesting application 400 can utilize a dynamic API query mechanism. For example, applications can be developed with optional capabilities to export or import data about external APIs 124, send messages, or call external applications 107 using dynamic discovery of required APIs 124 through search thresholds such as but not limited to Keyword scoring method.

当向交互模块312注册时,应用107通过提交表示这些API124特征的预定集合关键字,来查询其它外部应用124(对远程和本地的应用107)所有需要的API124。交互模块312运行查询、匹配提交的关键字与其它应用107(或处理器122)的关键字集合,一旦使用交互模块312公布它们的访问API124,就提交这些其它应用107,并将它们放置在相应的表300,302中。交互模块312可以利用不同的匹配算法识别对所请求API124的最佳匹配。一个实例算法是关键字匹配计数,它会返回具有最高分数的API124。也可以使用更先进的算法,诸如加权关键字计分或组合匹配。下面实例显示使用简单关键字计分算法的API124查询。When registering with the interaction module 312, the application 107 queries other external applications 124 (for both remote and local applications 107) for all required APIs 124 by submitting a predetermined set of keywords characterizing those APIs 124 . The interaction module 312 runs the query, matches the submitted keywords with the keyword sets of other applications 107 (or processors 122), submits these other applications 107 once their access API 124 is published using the interaction module 312, and places them in the corresponding of tables 300, 302. The interaction module 312 can utilize different matching algorithms to identify the best match for the requested API 124 . An example algorithm is Keyword Match Count, which returns the API 124 with the highest score. More advanced algorithms may also be used, such as weighted keyword scoring or combined matching. The example below shows an API124 query using a simple keyword scoring algorithm.

范例:参考图3,使用关键字计分算法的API查询。 Example: Referring to Figure 3, an API query using the Keyword Scoring Algorithm.

1.应用A是日历应用107,日历应用107将它的API124注册在规定了API关键字“CALENDAR”,“APPOINTMENT”和“MEETING”的表302中。1. Application A is the calendar application 107, and the calendar application 107 registers its API 124 in the table 302 specifying the API keywords "CALENDAR", "APPOINTMENT" and "MEETING".

2.应用B是假日浏览应用107,假日浏览应用107注册它的规定了API关键字“CALENDAR”和“HOLIDAY”的API124。2. Application B is the holiday browsing application 107, and the holiday browsing application 107 registers its API 124 that specifies the API keywords "CALENDAR" and "HOLIDAY".

3.根据上面内容,应用C是服务呼叫规划应用107,它通过使用API124查询关键字“CALENDAR”和“APPOINTMENT”执行动态查询。相应的,交互模块312从表302中返回应用A的API描述符,作为它在关键字匹配中更多的得分。应用C可以证实(validate)检索的API描述符,如果满意它可以经过表300为返回的API实例查询相应的应用107(或处理器122)标识符。在该实例中,应用C接着使用如上参照图4中所述的交互模块312的标准交互协议来访问应用A(例如最佳匹配)。3. According to the above content, the application C is the service call planning application 107, which performs a dynamic query by using the API 124 query keywords "CALENDAR" and "APPOINTMENT". Correspondingly, the interaction module 312 returns the API descriptor of application A from the table 302 as its higher score in keyword matching. Application C can validate the retrieved API descriptor, and if satisfied it can query the corresponding application 107 (or processor 122) identifier via table 300 for the returned API instance. In this example, application C then accesses application A (eg, best match) using the standard interaction protocol as described above with respect to interaction module 312 in FIG. 4 .

集成引擎integration engine

参照图5,接口模块312的另一个实例是集成引擎(IE)500,它作为框架206的终端执行环境的部分。集成引擎(IE)500可以动态的扩展公布的API,并处理在应用107和API处理器122之间的交互作用(见图4)。IE500是由服务提供商接口(SPI)组件或扩展接口502、API查询和注册组件504和执行API逻辑组件506组成。集成引擎500可以被称为一组软件/硬件组件,它被设计为:允许终端100主持的应用107通过表302访问所有公布的API124来支持使用标准接口(例如XML到本机呼叫转移)的交互作用;提供动态API124公布,查询和发现;提供内嵌处理器122的注册服务提供商扩展接口502和新API处理器122或应用107供应的应用107;通过表300,302暴露公布和注册的应用概况和API描述符的接口组件504。Referring to FIG. 5 , another example of an interface module 312 is an integration engine (IE) 500 that is part of the framework 206's terminal execution environment. Integration Engine (IE) 500 can dynamically extend published APIs and handle interactions between applications 107 and API handlers 122 (see FIG. 4 ). The IE 500 is composed of a service provider interface (SPI) component or extension interface 502 , an API query and registration component 504 and an execution API logic component 506 . The integration engine 500 may be referred to as a set of software/hardware components designed to: allow the application 107 hosted by the terminal 100 to access all published APIs 124 through the table 302 to support interactions using standard interfaces (e.g. XML to native call forwarding) Role; provide dynamic API 124 publication, query and discovery; provide registration service provider extension interface 502 of embedded processor 122 and application 107 provided by new API processor 122 or application 107; expose published and registered applications through tables 300, 302 Interface component 504 for Profiles and API Descriptors.

因此,通常,集成引擎500是装置执行环境组件的逻辑组,该装置执行环境组件处理主机装置(device-hosted)或远程应用107的交互。集成引擎500设计为支持平台无关交互模式、接口公布,以及动态应用107和/或插入式应用处理器122。In general, therefore, an integration engine 500 is a logical grouping of device execution environment components that handle the interaction of a device-hosted or remote application 107 . The integration engine 500 is designed to support platform-independent interaction patterns, interface publishing, and dynamic applications 107 and/or plug-in application processors 122 .

服务提供商接口502Service Provider Interface 502

参照图3和5,在公布API124之后,应用107或相关的访问处理器122向集成引擎500注册作为API实例。API124,处理器122和应用107公布信息都注册在合适的表300,302中。服务提供商扩展接口502支持访问处理器122和应用107的动态插入,即集成引擎500请求应用管理器306检索合适请求的应用107和/或处理器122的表300,302。如果在本地终端100上没有发现,那么终端100可以彻底探究(canvas)所需处理器122,API124和/或应用107的知识库126(见图1)。可以认识到扩展接口502根据外部应用107的特定语言环境,允许访问处理器122不同类型的插入。3 and 5, after publishing the API 124, the application 107 or associated access handler 122 registers with the integration engine 500 as an API instance. API 124, processor 122 and application 107 publications are all registered in appropriate tables 300,302. The service provider extension interface 502 supports dynamic insertion of access processors 122 and applications 107, ie the integration engine 500 requests the application manager 306 to retrieve the tables 300, 302 of the appropriate requested applications 107 and/or processors 122. If not found on the local terminal 100, the terminal 100 can canvass the required processor 122, API 124 and/or knowledge base 126 of the application 107 (see FIG. 1). It will be appreciated that the extension interface 502 allows different types of plug-in of the access processor 122 depending on the specific locale of the external application 107 .

查询和注册504Query and Register 504

查询和注册接口504支持在表300中应用概况的注册508和在表302中访问标识符的公布。对于呼叫者来说,它也支持对该表信息的查询访问510。查询界面510考虑为可选择功能。替换的,请求应用400可以知道目标应用位置和访问API描述符,可以不需要执行查询。The query and registration interface 504 supports registration 508 of application profiles in table 300 and publication of access identifiers in table 302 . It also supports query access 510 to the table information for the caller. Query interface 510 is considered an optional function. Alternatively, the requesting application 400 may know the target application location and access API descriptor, and may not need to perform a query.

应用107或它的处理器122可以使用这个实例接口508公布表302中的API124:Application 107 or its processor 122 may publish API 124 in table 302 using this instance interface 508:

publishAPI[string:apiID,XML:apiDesc,string[]:keywords].publishAPI[string:apiID, XML:apiDesc, string[]:keywords].

应用107或它的处理器122注册作为这个API124的实例。URI参数是应用107的参数或它相关的处理器122的参数。The application 107 or its processor 122 registers as an instance of this API 124 . The URI parameter is a parameter of the application 107 or its associated processor 122 .

RegisterAPIInstance[string:URI,string:apiID].RegisterAPIInstance[string: URI, string: apiID].

应用107可以使用下述内容从表302中动态的查询外部API124:Application 107 can dynamically query external API 124 from table 302 using the following:

lookupAPI[string[]:keywords]returns[XML:apiDescription]lookupAPI[string[]:keywords]returns[XML:apiDescription]

lookupInstance[string:apiID]returns[string[]URIs]lookupInstance[string:apiID]returns[string[]URIs]

执行API 506Implement API 506

执行API接口506可以定义为以下呼叫,该呼叫包括与包含在表300,302中的访问信息相关的请求内容:Executing the API interface 506 can be defined as the following call, which includes request content related to the access information contained in the tables 300, 302:

submit[XML:params];或submit[XML:params]; or

submit[string:URI,XML:params].submit[string:URI,XML:params].

采用以上所示的第一呼叫,不指定应用URI。集成引擎500发出广播呼叫给作为该API124实例注册的所有应用107,以实现对所请求外部应用107的访问。在第二种情况下,请求应用400(见图4)通过该URI明确的指定目标应用107。因此,集成引擎500的API执行接口506根据请求应用400的需要来协调请求和所选择API124的供应(见图4)。With the first call shown above, no application URI is specified. The integration engine 500 issues a broadcast call to all applications 107 registered as instances of the API 124 to enable access to the requested external application 107 . In the second case, the requesting application 400 (see FIG. 4 ) explicitly specifies the target application 107 through the URI. Accordingly, the API execution interface 506 of the integration engine 500 coordinates the request and provisioning of the selected API 124 according to the needs of the requesting application 400 (see FIG. 4 ).

参照图6,显示了在应用A和B之间的交互实例,说明了集成引擎500的运行时间逻辑流程。应用B请求经过执行接口506访问应用A的API124。执行接口506查询该查询和注册接口504以查询处理器122和/或应用107,处理器122和/或应用107都已经经过表302向请求的API124进行注册。根据在表302中记录的应用A没有以平台无关环境402的形式来表示的内容,接口504为请求的应用A检索合适的处理器122,因此处理器122需要在环境402中操作。经过对应用A适合的API124的呼叫,集成引擎500接着使用注册的处理器122来促进应用B到应用A的访问。可以认识到处理器122和相应的API124先前已经通过接口504注册作为应用A的实例。Referring to FIG. 6 , an example interaction between applications A and B is shown illustrating the run-time logic flow of the integration engine 500 . Application B requests access to application A's API 124 via the execution interface 506 . Execution interface 506 queries the query and registration interface 504 to query processors 122 and/or applications 107 that have registered via table 302 with the requesting API 124 . Interface 504 retrieves a suitable processor 122 for the requesting application A based on the fact that application A is not represented in platform independent environment 402 as recorded in table 302 , and therefore processor 122 needs to operate in environment 402 . Integration engine 500 then uses registered handler 122 to facilitate application B's access to application A via a call to application A's appropriate API 124 . It can be appreciated that processor 122 and corresponding API 124 have previously registered as an instance of application A via interface 504 .

参照图5和7,通过添加处理器来支持应用107的交互,集成引擎500的操作700、API124注册步骤,和一旦应用107发出对API124的请求,就执行步骤。可以注意到这个实例不使用选择查询检索功能。终端100上的集成引擎500可以支持基于XML的交互作用协议,它作为平台无关环境402而使用,诸如在下面实例中的叙述。5 and 7, by adding processors to support the interaction of the application 107, operation 700 of the integration engine 500, API 124 registration steps, and steps are performed once the application 107 makes a request to the API 124. Note that this example does not use the select query retrieval functionality. The integration engine 500 on the terminal 100 may support an XML-based interaction protocol used as a platform independent environment 402, such as described in the examples below.

在步骤701,向终端100供应日历应用107“PersonalCalendar”,日历应用107“PersonalCalendar”不具有集成引擎500交互标准的内嵌知识。在步骤702,日历处理器122通过扩展接口502被插入到IE500中作为“Personal Calendar”API的实例,该日历处理器122设计为能够使日历应用107实现IE500标准访问(由环境402所表示)。例如,相应于插入式处理器122的API描述符可以是如下内容:更新日历应用107的API124支持实现添加会议的操作“addMeeting”。它在表302中采用下面的描述符“updateCalendarDesc.xml”来公布:In step 701 , the terminal 100 is provisioned with a calendar application 107 "PersonalCalendar" which does not have built-in knowledge of the integration engine 500 interaction criteria. In step 702, the calendar handler 122 is inserted into IE 500 through the extension interface 502 as an instance of the "Personal Calendar" API, and the calendar handler 122 is designed to enable the calendar application 107 to implement IE 500 standard access (represented by the environment 402). For example, the API descriptor corresponding to the plug-in handler 122 may be as follows: The API 124 of the update calendar application 107 supports an operation "addMeeting" that implements adding a meeting. It is published in table 302 with the following descriptor "updateCalendarDesc.xml":

<!DOCTYPE action SYSTEM”api.dtd”><! DOCTYPE action SYSTEM”api.dtd”>

<action api=”updateCalendar”><action api="updateCalendar">

<op name=”addMeeting”><op name="addMeeting">

<param>Meeting</param><param>Meeting</param>

<result type=”boolean”/><result type="boolean"/>

</op></op>

</action></action>

在步骤703,日历处理器122通过具有API-ID“updateCalendar”的API124接口504公布为:publishAPI(“updateCalendar”,”updateCalendarDesc.xml”)。接着在步骤704中日历处理器122通过作为具有IE500的“personalCalendarHandler”的接口504注册为updateCalendar API124的实例,它表示如下内容:registerAPIInstance(“personalCalendarHandler”,”updateCalendar”)。可以认识到表302包括API124和处理器122,它们注册作为终端100上供应的应用的实例。在步骤706,请求应用400(见图4)建立请求信息“addMeeetingRequest.xml”以便增加会议:At step 703, the Calendar Handler 122 publishes through the API 124 interface 504 with API-ID "updateCalendar" as: publishAPI("updateCalendar", "updateCalendarDesc.xml"). Then in step 704, the calendar processor 122 is registered as an instance of the updateCalendar API 124 through the interface 504 as the "personalCalendarHandler" of the IE 500, which represents the following content: registerAPIInstance("personalCalendarHandler", "updateCalendar"). It can be appreciated that table 302 includes API 124 and processor 122 registered as instances of applications provisioned on terminal 100 . In step 706, the requesting application 400 (see FIG. 4 ) builds the request information "addMeeetingRequest.xml" so as to increase the meeting:

<action api=”//updateCalendar”><action api="//updateCalendar">

<op name=”addMeeting”><op name="addMeeting">

<param><param>

<Meeting><Meeting>

<date>09/15/03 10:15:00</date><date>09/15/03 10:15:00</date>

<details>Conference call with John</details><details>Conference call with John</details>

<note>To discuss the Idea of XML based interface</note><note>To discuss the Idea of XML based interface</note>

</Meeting></Meeting>

</param></param>

<result type=”boolean”/><result type="boolean"/>

</op></op>

</action></action>

在步骤708,选项1(定向访问)提供了发送下面请求给集成引擎500的应用400:At step 708, option 1 (directed access) provides for the application 400 to send the following request to the integration engine 500:

submit[/”local/personalCalendarHandler”,”addMeetingRequest.xml”]。另外,在步骤710,选项2(广播)提供发送下面的请求给集成引擎500的应用400:submit[“addMeetingRequest.xml”]。在步骤711,IE500将该请求传递给日历处理器122(和具有选项2的其它注册的“updateCalendar”API124实例),如在表302中的记录。日历处理器122检验712数据(例如日期)并且建立以日历应用107所期望的格式的输入(例如建立本机Date对象,构建本机Meeting对象等)。日历处理器122接着调用714日历应用107本机API124呼叫。一旦完成,日历处理器122传递716结果(如果合适)给集成引擎500用于传送给请求应用400。submit[/"local/personalCalendarHandler", "addMeetingRequest.xml"]. Additionally, at step 710, option 2 (broadcast) provides for sending the following request to the application 400 of the integration engine 500: submit["addMeetingRequest.xml"]. At step 711 , IE 500 passes the request to Calendar Handler 122 (and other registered "updateCalendar" API 124 instances with option 2), as recorded in table 302 . Calendar handler 122 examines 712 the data (eg, date) and builds input in the format expected by calendar application 107 (eg, builds native Date object, builds native Meeting object, etc.). The calendar handler 122 then calls 714 the calendar application 107 native API 124 call. Once complete, the calendar processor 122 passes 716 the results (if appropriate) to the integration engine 500 for delivery to the requesting application 400 .

可以认识到在不需要处理器122的情况下(即日历应用表示为平台无关环境402兼容语言的形式)为API124的注册和访问将遇到上面类似的步骤(没有处理器122)。而且,如果需要可以远程的实现步骤708中日历处理器的访问。It will be appreciated that registration and access for the API 124 would encounter similar steps as above (without the processor 122 ) without the need for the processor 122 (ie, the calendar application is expressed in a platform-independent environment 402 compatible language). Moreover, access to the calendar processor in step 708 can be implemented remotely if desired.

考虑到上述系统10,通过接口模块312(或表示为引擎500)使用应用API124的公布和访问提供了通用和可扩展的应用107间的交互作用,并支持对应用107交互作用的动态环境。应用107能够使用诸如但不局限于结构化语言(例如XML)和/或平台无关脚本(例如ECMAScript)以平台无关的方式实现交互。应用107使用可选择的查询界面510就可以动态的发现可用的API124和处理器122,查询界面510诸如是但不局限于使用关键字匹配模式。而且,系统10使用通过扩展接口502访问处理器122的动态插入,就可以提供动态扩展应用107环境和提供API124集合的能力。还可以认识到接口模块312可以具有与集成引擎500相似的接口502,504,506,508,510。Considering the system 10 described above, publishing and accessing using the application API 124 through the interface module 312 (or denoted engine 500 ) provides general and extensible interaction between applications 107 and supports a dynamic environment for interaction with applications 107 . Application 107 is capable of interacting in a platform-independent manner using such as, but not limited to, structured languages (eg, XML) and/or platform-independent scripting (eg, ECMAScript). The application 107 can dynamically discover available APIs 124 and processors 122 using an optional query interface 510 such as but not limited to using a keyword matching scheme. Furthermore, the system 10 can provide the ability to dynamically extend the application 107 environment and provide API 124 collections using dynamic insertion through the extension interface 502 to access the processor 122 . It can also be appreciated that the interface module 312 can have similar interfaces 502 , 504 , 506 , 508 , 510 as the integration engine 500 .

而且,通过下面构造来促进应用107间的通信:表300的应用概况;表302的应用API和处理器描述符;应用API交互接口涉及注册,查询和访问。Moreover, the communication between applications 107 is facilitated by the following constructs: application profile of table 300; application API and processor descriptor of table 302; application API interaction interface involves registration, query and access.

上面的叙述涉及一个示范性系统和方法。许多变化对本领域的技术人员来说是很明显的,这些变化都涵盖在本申请的范围内。例如,尽管在提供的实例中使用了XML和ECMAScript子集,但是也可以使用其它语言和语言变量。而且,可以意识到系统10可以采用硬件和/或软件组件的形式来实现,这包括:数据结构模块,用于注册目标应用的访问信息,该访问信息包括公布访问信息;接口模块,用于提供平台无关环境,该接口模块配置用于接收来自请求者应用的访问请求;和接口组件模块,它被配置用于包含接口组件,通过使用请求内容可以检索该接口组件。The foregoing description relates to an exemplary system and method. Many variations will be apparent to those skilled in the art, and such variations are encompassed within the scope of this application. For example, although XML and a subset of ECMAScript are used in the examples provided, other languages and language variants can be used as well. Moreover, it can be appreciated that the system 10 can be implemented in the form of hardware and/or software components, which includes: a data structure module, used to register the access information of the target application, and the access information includes publishing access information; an interface module, used to provide A platform independent environment, the interface module configured to receive the access request from the requester application; and the interface component module configured to contain the interface component retrievable by using the request content.

Claims (42)

1, a kind ofly be provided at the method for the dynamic interaction between a pair of application by the platform independence interface of terminal, this comprises the requestor application of wishing that access destination is used to application, and the method comprising the steps of:
Utilize the visit information of described platform independence interface registration intended application, this visit information comprises the visit information of announcement, and the visit information of this announcement is available in data structure;
In the request of access of platform independence interface reception from requestor application, this request of access comprises the corresponding request content of announcement visit information with intended application;
The platform independence interface obtains interface module by using this request content that the data structure is retrieved, and the configuration of this interface module is used to adopt the desired access stencil of intended application to be implemented in communication between platform independence interface and the intended application;
Use interface module by the platform independence interface, to satisfy the request of access of requestor application, so that carry out alternately with intended application.
2,, be arranged to the incompatible language of employing and platform independence interface and communicate according to the process of claim 1 wherein that interface module comprises application programming interfaces.
3, according to the method for claim 2, wherein incompatible language is the employed language of this machine environment working time by terminal.
4, according to the process of claim 1 wherein that interface module comprises application programming interfaces, described application programming interfaces are arranged to the language with the platform independence interface compatibility and communicate.
5, according to the method for claim 2, wherein interface module also comprises access processor, and described access processor is arranged to and is provided at translating between platform independence interface and the application programming interfaces.
6, according to the method for claim 5, also comprise step: to platform independence interface registration access processor, the visit information that this access processor is announced is added in the data structure by expansion interface.
7, according to the method for claim 6, also comprise step: use access processor to visit intended application, to call out the corresponding application interface by the platform independence interface.
8, according to the method for claim 7, also comprise step: use searching algorithm to discern the coupling access processor that uses by the platform independence interface with request content.
9, method according to Claim 8, selection is used to represent the language of platform independence interface in the group that wherein comprises from below: structured definition language and script.
10, according to the method for claim 9, wherein structured definition language is based on XML.
11,, be used to wherein represent that the language of script is ECMAscript according to the method for claim 9.
12, according to the method for claim 7, also comprise step: the assembling request content, so that it comprises the content of selecting from following group: local position and remote location.
13, according to the method for claim 12, wherein remote location is positioned at by network and is connected on another terminal of described terminal, and described another terminal has this to an application in using, and is used for this network interaction being carried out in other application of using.
14,, wherein be the client of defining mode service that can be by access to netwoks with described another terminal configuration according to the method for claim 13.
15, according to the method for claim 7, wherein data structure is to select from the group that comprises application scenario table and application programming interfaces descriptor table.
16, according to the method for claim 15, wherein the application scenario table comprises the application scenario of a plurality of intended application.
17, according to the method for claim 15, wherein the application programming interfaces descriptor table comprises the descriptor of selecting in the group that comprises from below: application programming interfaces descriptor and access processor descriptor.
18, according to the method for claim 15, wherein data structure comprises the visit information of selecting in the group that comprises from below: use URI, application version is used and is described and the right predetermined set of coupling application programming interfaces structure.
19, according to the method for claim 7, also comprise step: the interface that the platform independence interface of selecting in the group that comprises from below is provided: expansion interface, inquiry and registration interface, and executive's interface.
20, according to the method for claim 19, wherein the expansion interface configuration is used for being connected of the new described interface module of dynamic expansion and platform independence interface.
21, according to the terminal of claim 19, wherein configuration is used to announce the visit information relevant with interface module with registration interface in inquiry.
22, a kind ofly be provided at the terminal of the dynamic interaction between a pair of application by the platform independence interface of terminal, this comprises the requestor application of wishing that access destination is used to application, and this terminal comprises:
Register device is used to utilize described platform independence interface to register the visit information of intended application, and this visit information comprises the visit information of announcement, and the visit information of this announcement is available in data structure;
Receiving trap is used in the request of access of platform independence interface reception from requestor application, and this request of access comprises the corresponding request content of announcement visit information with intended application;
Obtain device, be used for obtaining interface module by using this request content that the data structure is retrieved, this interface module configuration is used to adopt the desired access stencil of intended application to be implemented in communication between platform independence interface and the intended application; With
Operative installations is used for using interface module by the platform independence interface, to satisfy the request of access of requestor application, so that carry out alternately with intended application.
23. according to the terminal of claim 22, wherein interface module comprises application programming interfaces, described application programming interfaces are arranged to adopt with the incompatible language of platform independence interface and communicate.
24, according to the terminal of claim 23, wherein said incompatible language is the employed language of this machine environment working time by terminal.
25, according to the terminal of claim 22, wherein interface module comprises application programming interfaces, and described application programming interfaces are arranged to the language with the platform independence interface compatibility and communicate.
26, according to the terminal of claim 23, wherein interface module also comprises access processor, and described access processor is arranged to and is provided at translating between platform independence interface and the application programming interfaces.
27, according to the terminal of claim 26, also comprise expansion interface, to platform independence interface registration access processor, the visit information that this access processor is announced is added in the data structure by described expansion interface.
28, according to the terminal of claim 27, also comprise the corresponding application interface, use access processor to visit intended application, to call out corresponding application programming interfaces by the platform independence interface.
29,, comprise that also the searching algorithm of using request content discerns the device of the coupling access processor that is used by the platform independence interface according to the terminal of claim 28.
30,, select to be used to represent the language of platform independence interface in the group that wherein comprises: structured definition language and script from below according to the terminal of claim 29.
31, according to the terminal of claim 30, wherein structured definition language is based on XML.
32,, be used to wherein represent that the language of script is ECMAscript according to the terminal of claim 30.
33, according to the terminal of claim 28, wherein assemble request content, so that it comprises the content of selecting from following group: local position and remote location.
34, according to the terminal of claim 33, wherein remote location is positioned at by network and is connected on another terminal of described terminal, and described another terminal has this to an application in using, and is used for this network interaction being carried out in other application of using.
35,, wherein be the client of defining mode service that can be by access to netwoks with described another terminal configuration according to the terminal of claim 34.
36, according to the terminal of claim 28, wherein data structure is to select from the group that comprises application scenario table and application programming interfaces descriptor table.
37, according to the terminal of claim 36, wherein the application scenario table comprises the application scenario of a plurality of intended application.
38, according to the terminal of claim 36, wherein the application programming interfaces descriptor table comprises the descriptor of selecting in the group that comprises from below: application programming interfaces descriptor and access processor descriptor.
39, according to the terminal of claim 36, wherein data structure comprises the visit information of selecting in the group that comprises from below: use URI, application version is used and is described and the right predetermined set of coupling application programming interfaces structure.
40, according to the terminal of claim 23, also comprise the interface of platform independence interface, the interface of described platform independence interface is to select in the group that comprises from below: expansion interface, inquiry and registration interface, and executive's interface.
41, according to the terminal of claim 40, wherein the expansion interface configuration is used for being connected of the new described interface module of dynamic expansion and platform independence interface.
42, according to the terminal of claim 40, wherein configuration is used to announce the visit information relevant with interface module with registration interface in inquiry.
CNB2005100640846A 2004-01-30 2005-01-31 Terminal and method for providing dynamic interaction between a pair of applications Expired - Lifetime CN100570553C (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/767,728 2004-01-30
US10/767,728 US20050172282A1 (en) 2004-01-30 2004-01-30 System and method for publishing and accessing application APIs on a generic terminal

Publications (2)

Publication Number Publication Date
CN1670694A CN1670694A (en) 2005-09-21
CN100570553C true CN100570553C (en) 2009-12-16

Family

ID=35041968

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100640846A Expired - Lifetime CN100570553C (en) 2004-01-30 2005-01-31 Terminal and method for providing dynamic interaction between a pair of applications

Country Status (2)

Country Link
CN (1) CN100570553C (en)
SG (2) SG135199A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012131727A1 (en) * 2011-03-31 2012-10-04 Lukup Media Pvt Ltd System and method for creating and delivering platform independent interactive applications on user devices
CN111752726B (en) * 2020-06-25 2023-07-14 武汉众邦银行股份有限公司 Method for quickly cross sharing data among multiple systems

Also Published As

Publication number Publication date
CN1670694A (en) 2005-09-21
SG135199A1 (en) 2007-09-28
SG113609A1 (en) 2005-08-29

Similar Documents

Publication Publication Date Title
US20050172282A1 (en) System and method for publishing and accessing application APIs on a generic terminal
US7836439B2 (en) System and method for extending a component-based application platform with custom services
US7900214B2 (en) System and method for adaptable provisioning of generic application content
US7937500B2 (en) Dynamic, real-time integration of software resources through services of a content framework
US7266600B2 (en) Programmatic management of software resources in a content framework environment
US8219970B2 (en) XML push and remote execution of a wireless applications
EP1818820A1 (en) System and method for installing custom services on a component-based application platform
US6985939B2 (en) Building distributed software services as aggregations of other services
JP2006512694A (en) System and method for building and running a platform neutral generic service client application
US8387039B2 (en) System and method for customized provisioning of application content
CN101888396A (en) Method for calling equipment capability, micro-technical equipment and server
CN100570553C (en) Terminal and method for providing dynamic interaction between a pair of applications
EP1845446A2 (en) System and method for publishing and accessing application APIS on a generic terminal
EP1560114A1 (en) Computer system and method for customized provisioning of application content
EP1560115A1 (en) Computer system and method for adaptable provisioning of generic application content
JP2004356735A (en) Method, program, server and system for accessing network

Legal Events

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

Effective date of registration: 20240603

Address after: Ai Erlandubailin

Patentee after: Maliki Innovation Co.,Ltd.

Country or region after: Ireland

Address before: Voight, Ontario, Canada

Patentee before: RESEARCH IN MOTION Ltd.

Country or region before: Canada

TR01 Transfer of patent right
CX01 Expiry of patent term

Granted publication date: 20091216

CX01 Expiry of patent term