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 PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 38
- 230000008846 dynamic interplay Effects 0.000 title claims abstract description 8
- 230000003993 interaction Effects 0.000 claims abstract description 57
- 238000004891 communication Methods 0.000 claims abstract description 16
- 238000004422 calculation algorithm Methods 0.000 claims description 7
- 230000008878 coupling Effects 0.000 claims 4
- 238000010168 coupling process Methods 0.000 claims 4
- 238000005859 coupling reaction Methods 0.000 claims 4
- 238000009434 installation Methods 0.000 claims 1
- 230000010354 integration Effects 0.000 description 21
- 239000008186 active pharmaceutical agent Substances 0.000 description 14
- 238000012545 processing Methods 0.000 description 8
- 230000009471 action Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000002452 interceptive effect Effects 0.000 description 4
- 229920001690 polydopamine Polymers 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000014509 gene expression Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 101000993976 Sagittaria sagittifolia Proteinase inhibitor A Proteins 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 208000018747 cerebellar ataxia with neuropathy and bilateral vestibular areflexia syndrome Diseases 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000007935 neutral effect Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 238000013077 scoring method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
提供了一种通过终端的平台无关接口提供在一对应用程序之间进行动态交互的系统和方法,这对应用包括希望访问目标应用的请求者应用。一种方法包括注册目标应用的访问信息,上述访问信息包括公布的访问信息,公布的访问信息可以通过平台无关接口在数据结构中检索获得。该方法还包括通过平台无关接口接收来自请求者应用的访问请求,上述访问请求包括与目标应用公布的访问信息相对应的请求内容。该方法还包括通过使用请求内容搜索该数据结构来获得接口组件,上述接口组件配置用于采用目标应用所期望的访问格式实现在平台无关接口和目标应用之间的通信。该方法还包括通过平台无关接口使用接口组件来满足请求者应用的访问请求,用于与目标应用的交互。
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.
Description
技术领域 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
此外,系统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-
系统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
通用终端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
重新参照图2,终端100还可以具有用户接口202以促进与用户(未显示)的交互,该用户接口202通过连接222连接到终端的基础设施204。用户接口202可以包括一个或多个用户输入装置,诸如但并不局限于QWERTY键盘、键盘、导航键(trackwheel)、指示笔、鼠标、麦克风,还包括用户输出装置,诸如为LCD屏幕显示器和或扬声器。如果屏幕是可触摸感应的,那么该显示器可以作为由终端基础设施204控制的用户输入装置来使用。Referring back to FIG. 2 , the terminal 100 may also have a
重新参照图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 ,
处理框架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
框架206的终端运行时间环境更适宜支持下面对于客户应用程序107(见图2)的常驻执行程序版本的基本功能,诸如但并不局限于:The terminal runtime environment of the
提供平台无关接口模块312,用于促进程序107之间的本地和/或远程交互;providing a platform-
提供通信能力经过网络104向服务器106发送消息105;providing communication capability to send message 105 to server 106 via
通过用户在终端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
提供用于协调应用107操作的脚本语言的执行环境。An execution environment for scripting languages is provided for coordinating the operation of the
此外,客户运行时间环境的特定功能可以包括诸如但并不局限于对语言的服务支持,协调存储分配,连网,在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
参照图3,处理框架206还可以具有其它模块,诸如但不局限于应用管理器206和供应管理器311。供应管理器311管理在终端100上软件应用207的供应。应用供应可以包括存储、检索、下载和去除应用107,还包括配置应用程序107,以便经过在链接终端100上协同操作的接口模块312来访问远程应用107。应用管理器306可以用于与用户接口202交互(见图2)、管理应用的使用寿命等。可以认识到如果需要,可以实施另外或除显示以外的各个管理器306,311的处理框架206的其它配置。Referring to FIG. 3 , the
重新参照图3,接口模块312使用诸如API124的一系列接口组件来协调在请求应用400(见图4)与目标应用107之间的通信。接口模块312还可以使用诸如访问处理器122的其它接口组件来运行作为交互模块312内部的插件,并且作为在交互请求者400和目标应用107之间进行交互作用的中介,其中目标应用表示为除了模块312的平台无关语言以外的语言(例如,将来自模块312中基于XML标准接口的呼叫转换为适合与基于本机目标应用程序107进行通信的应用特定本机呼叫(native call))。可以认识到目标应用可以表示为运行时间环境的本机语言形式,或者另外表示为与接口模块312的结构化平台无关语言不同的语言形式。Referring back to FIG. 3 ,
可以开发访问处理器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
重新参照图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
应用概况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
下面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
应用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
应用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
-开始被呼叫应用107并保持呼叫者运行- Start the called
-开始被呼叫应用107并暂停呼叫者,直到被呼叫终止- Start 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
■实现模式1,以符合标准交互接口模块312。应用107的模式已经采用由接口模块312所支持的交互标准知识来设计,应用107的模式执行接口模块以转换对接口模块312平台无关环境的内部操作的请求应用400(见图4)呼叫;■ Mode 1 is implemented to conform to the standard
■实现模式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
参照图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
请求应用400使用由表300公布的定义标识符和/或由表302公布的访问API描述符,利用交互模块312来访问目标应用A,B(见图3)。交互模块312传递该请求404给目标应用(直接传递406或经过处理器408)。一旦完成或另外执行请求406,408,交互模块312采用平台无关环境402的语言形式将结果(如果合适)传送回的请求应用。可以认识到,如果请求者应用400表示为除了平台无关环境402之外的语言形式,那么处理器122会将响应406转换回应用B的表达语言,例如基于本机表达语言的形式。The requesting
参照图4,为了公布或注册它的API124,应用A、B或其处理器122可以在供应期间向交互模块312进行注册。应用API124的注册可以包括下述内容:API公布API实例注册。可以认识到注册逻辑可以优选的包括对应用107和/或相关API124的动态查询相关联的关键字。Referring to FIG. 4 , an application A, B or its
例如,应用107可以采用共存在终端107中的其它应用107的内嵌知识来开发,应用107知道标识符和API描述符,它们是由可以将访问作为目标的所有应用107的表300,302来表示。在一般情况下,应用107开发模式是可塑造的,新供应的应用107不具有在终端100上已经配置(deploy)的应用107的知识。为了能够与其它应用107进行通信,请求应用400能够利用动态的API查询机制。例如,应用可以采用可选择能力来开发,以输出或输入关于外部API124的数据,发送消息,或通过搜索阈值使用所需API124的动态发现来呼叫外部应用107,搜索阈值诸如是但并不局限于关键字计分方法。For example, an
当向交互模块312注册时,应用107通过提交表示这些API124特征的预定集合关键字,来查询其它外部应用124(对远程和本地的应用107)所有需要的API124。交互模块312运行查询、匹配提交的关键字与其它应用107(或处理器122)的关键字集合,一旦使用交互模块312公布它们的访问API124,就提交这些其它应用107,并将它们放置在相应的表300,302中。交互模块312可以利用不同的匹配算法识别对所请求API124的最佳匹配。一个实例算法是关键字匹配计数,它会返回具有最高分数的API124。也可以使用更先进的算法,诸如加权关键字计分或组合匹配。下面实例显示使用简单关键字计分算法的API124查询。When registering with the
范例:参考图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
2.应用B是假日浏览应用107,假日浏览应用107注册它的规定了API关键字“CALENDAR”和“HOLIDAY”的API124。2. Application B is the
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
集成引擎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
因此,通常,集成引擎500是装置执行环境组件的逻辑组,该装置执行环境组件处理主机装置(device-hosted)或远程应用107的交互。集成引擎500设计为支持平台无关交互模式、接口公布,以及动态应用107和/或插入式应用处理器122。In general, therefore, an
服务提供商接口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
查询和注册504Query and
查询和注册接口504支持在表300中应用概况的注册508和在表302中访问标识符的公布。对于呼叫者来说,它也支持对该表信息的查询访问510。查询界面510考虑为可选择功能。替换的,请求应用400可以知道目标应用位置和访问API描述符,可以不需要执行查询。The query and
应用107或它的处理器122可以使用这个实例接口508公布表302中的API124:
publishAPI[string:apiID,XML:apiDesc,string[]:keywords].publishAPI[string:apiID, XML:apiDesc, string[]:keywords].
应用107或它的处理器122注册作为这个API124的实例。URI参数是应用107的参数或它相关的处理器122的参数。The
RegisterAPIInstance[string:URI,string:apiID].RegisterAPIInstance[string: URI, string: apiID].
应用107可以使用下述内容从表302中动态的查询外部API124:
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可以定义为以下呼叫,该呼叫包括与包含在表300,302中的访问信息相关的请求内容:Executing the
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
参照图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
参照图5和7,通过添加处理器来支持应用107的交互,集成引擎500的操作700、API124注册步骤,和一旦应用107发出对API124的请求,就执行步骤。可以注意到这个实例不使用选择查询检索功能。终端100上的集成引擎500可以支持基于XML的交互作用协议,它作为平台无关环境402而使用,诸如在下面实例中的叙述。5 and 7, by adding processors to support the interaction of the
在步骤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
<!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
<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
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
可以认识到在不需要处理器122的情况下(即日历应用表示为平台无关环境402兼容语言的形式)为API124的注册和访问将遇到上面类似的步骤(没有处理器122)。而且,如果需要可以远程的实现步骤708中日历处理器的访问。It will be appreciated that registration and access for the
考虑到上述系统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
而且,通过下面构造来促进应用107间的通信:表300的应用概况;表302的应用API和处理器描述符;应用API交互接口涉及注册,查询和访问。Moreover, the communication between
上面的叙述涉及一个示范性系统和方法。许多变化对本领域的技术人员来说是很明显的,这些变化都涵盖在本申请的范围内。例如,尽管在提供的实例中使用了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)
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)
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 |
-
2005
- 2005-01-31 CN CNB2005100640846A patent/CN100570553C/en not_active Expired - Lifetime
- 2005-01-31 SG SG200706180-7A patent/SG135199A1/en unknown
- 2005-01-31 SG SG200500630A patent/SG113609A1/en unknown
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 |