公布和访问在通用终端上应用api的系统和方法

xiaoxiao2020-7-22  6

专利名称:公布和访问在通用终端上应用api的系统和方法
技术领域
本发明涉及使用应用程序接口的应用交互。
背景技术
现在所使用的终端数量正在持续不断的增加,诸如移动电话,具有无线通信功能的PDA,个人计算机,自助服务公用电话亭和双向寻呼机。在这些装置中运行的软件应用增加了它们的实用性。例如,移动电话可以包含检索城市范围天气条件的应用,或者PDA可以包含提供用户选购杂货的应用。这些软件应用利用与网络的连通性以便向用户提供及时和有效地服务。然而,由于某些装置受限的资源,为各种装置开发软件应用仍然是困难和费时的任务。
目前不存在定义和公布应用访问API的公用标准。当前,无线平台和设备提供一些定制交互作用解决方案,这些方案采用所有可用应用的显性知识(explicit knowledge)和安装在装置上的相应API。主机装置(device-hosted)无线应用进行交互的能力是由当前运行时间环境和该环境当前应用的内嵌知识(built-in knowledge)来预定。所有关于交互作用选项和可用外部API的决定都在设计和开发阶段期间完成,这些阶段没有运行时间调整或扩展的可能。使用本机编码平台能够当前实施在应用程序之间的交互作用,用于支持运行时间环境和交互应用。
当前的应用交互方法所具有的缺点包括在单一软件部分的配置或版本中的变化通常需要重新安装大量相关或有关的应用;先前安装的软件部分不能够与以后时间供应和安装的软件沟通;不能无缝的更新现有软件或改变在相互依懒的软件包中的组成部分。
为了定制应用交互公开了本发明的系统和方法,从而消除或减少至少上述提到的一些缺点。

发明内容
当前的应用交互方法所具有的缺点包括在单一软件部分的配置或版本中的变化通常需要重新安装大量相关或有关的应用;先前安装的软件部分不能与以后时间供应和安装的软件沟通;不能无缝的更新现有软件或改变在互相依懒的软件包中的组成部分。与当前的交互方法相反,所提供的系统和方法通过终端的平台无关(neutral)接口能够提供在一对应用程序之间的动态交互,这对应用包括希望访问目标应用的请求者应用。一种这样方法可以包括依据目标应用的请求访问信息来注册和/或自动分配,上述的访问信息包括公布的访问信息,该公布的访问信息可以通过平台无关接口在数据结构中进行检索获得。在此使用的术语注册可以涉及与/或目录或知识库(repository)以及与/或依据请求自动分配的特定通信。在这种方法中,通过终端的平台无关接口接收来自请求者应用的访问请求,上述的访问请求包括对应于目标应用公布的访问信息的请求内容。接口组件是通过使用请求内容检索该数据结构来获得,上述的接口组件配置用于采用目标应用所期望的访问格式实现在平台无关接口和目标访问之间的通信。通过平台无关接口使用所获得的接口组件,以满足与目标应用进行交互作用的请求者应用的访问请求。
还公开了一种通过终端的平台无关接口提供在一对应用程序之间动态交互的方法,这对应用包括希望访问目标应用的请求者应用,该方法包括步骤注册和/或分配目标应用的访问信息,该访问信息包括公布的访问信息,该公布的访问信息可以通过平台无关接口在数据结构中检索获得;通过平台无关接口接收来自请求者应用的访问请求,该访问请求包括相应于目标应用公布的访问信息的请求内容;使用请求内容检索该数据结构来获得接口组件,该接口组件被配置用于采用目标应用所期望的访问格式实现在平台无关接口和目标应用之间的通信;通过平台无关接口使用接口组件,以满足与目标应用进行交互作用的请求者应用的访问请求。
还提供一种用于提供在一对应用程序之间动态交互的终端,该应用程序处于由终端的运行时间环境提供的平台无关环境中,这对应用包括希望访问目标应用的请求者应用,该终端包括数据结构,用于注册目标应用的访问信息,该访问信息包括公布的访问信息;接口模块,用于提供平台无关环境,该接口模块配置用于接收来自请求者应用的访问请求,该访问请求配置用于包括与目标应用公布的访问信息相应的请求内容,该数据结构公布的访问信息可以由接口模块来检索;连接到接口模块的接口组件,通过使用请求内容搜索该数据结构可以检索接口模块,该接口模块配置用于采用目标应用所期望的访问格式实现在接口模块和目标应用之间的通信;其中通过接口模块使用接口部件满足在与目标应用交互作用中的请求者应用的访问请求。
还公开一种用于提供在一对应用程序之间动态交互的计算机程序产品,该应用程序处于由终端的运行时间环境提供的平台无关环境中,这对应用包括希望访问目标应用的请求者应用,该计算机程序产品包括计算机可读介质;存储在计算机可读介质上的数据结构模块,用于注册目标应用的访问信息,该访问信息包括公布的访问信息;连接到数据结构模块的接口模块,用于提供平台无关环境,该接口模块配置用于接收来自请求者应用的访问请求,该访问请求配置用于包括与目标应用公布的访问信息相应的请求内容,该数据结构公布的访问信息可以由接口模块来检索;以及连接到接口模块的接口组件,该接口模块配置用于包含接口组件,通过使用请求内容搜索数据结构模块可以检索接口模块,该接口模块配置用于采用目标应用所期望的访问格式实现在接口模块和目标应用之间的通信;其中通过接口模块使用接口组件满足在与目标应用交互中的请求者应用的访问请求。


这些特征和其它特征将在下面详述的说明书中变得更加清楚,说明书中附加的实例附图是作为参考,其中图1是网络系统的方框图;图2是图1的通用终端的方框图;
图3显示图2的终端的处理框架;图4显示了使用专用处理器用于图3框架的应用交互;图5是作为集成引擎的图3接口模块的替换实例;图6是图3集成引擎的运行时间流程的实例;以及图7显示在图1的两个应用之间交互的操作的实例。
具体实施例方式
网络系统参照图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的连接。
此外,系统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)。
系统10促进多个应用107之间的交互作用,例如,这些应用107被标记为“A”,“B”,“C”和“D”,将其分布在一个终端100上(即本地交互-例如在应用“A”和“C”之间)以及在终端100之间(即远程交互-例如在应用“B”和“D”之间)。应用107通过接口和数据结构模块312进行交互(见图2),接口和数据结构模块312是以平台无关结构化定义语言(诸如但并不局限于XML)的形式来表示和/或平台无关脚本语言(诸如但并不局限于ECMAScrip)的形式来表示。应用107通过应用程序接口(API)122和访问扩展124(下文称为访问处理器124)进行通信。APl122和处理器124可以从储存库或数据库120中检索。可以认识到数据库120可以供服务118使用或可以供独立的数据服务器126使用。系统还考虑到API声明操作(declared operation)的执行和API与应用请求的匹配。为了简明而不丧失一般性,用于表示接口模块312的语言在下文被称为XML;特别考虑的是在每个这样的实例中,可以根据设备选择和/或约束条件而使用不同的平台无关结构化定义语言或脚本语言。
通用终端参照图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之间的远程交互。
重新参照图2,终端100还可以具有用户接口202以促进与用户(未显示)的交互,该用户接口202通过连接222连接到终端的基础设施204。用户接口202可以包括一个或多个用户输入装置,诸如但并不局限于QWERTY键盘、键盘、导航键(trackwheel)、指示笔、鼠标、麦克风,还包括用户输出装置,诸如为LCD屏幕显示器和或扬声器。如果屏幕是可触摸感应的,那么该显示器可以作为由终端基础设施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可以被单独或结合的使用。
处理框架参考图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供应的所有其他通用限定模式业务的客户。
框架206的终端运行时间环境更适宜支持下面对于客户应用程序107(见图2)的常驻执行程序版本的基本功能,诸如但并不局限于提供平台无关接口模块312,用于促进程序107之间的本地和/或远程交互;提供通信能力经过网络104向服务器106发送消息105;通过用户在终端100的输入装置上提供的数据输入能力,向服务器106供应输出消息105的数据部分;提供对响应消息105(输入消息)或服务器106的不相关通知的数据表示或输出能力;提供数据存储服务来保持在存储模块210和/或终端100的计算机可读介质212(见图2)中的本地客户数据;和提供用于协调应用107操作的脚本语言的执行环境。
此外,客户运行时间环境的特定功能可以包括诸如但并不局限于对语言的服务支持,协调存储分配,连网,在I/O操作期间的数据管理,协调在终端100的输出装置上的图示以及提供对核心面向对象类的访问和支持文件/程序库。由终端100执行的运行时间环境的实例可以包括诸如但并不局限于Microsoft的Common LanguageRuntime(CLR)和Sun Microsystem的Java Runtime Environment(JRE)。
参照图3,处理框架206还可以具有其它模块,诸如但不局限于应用管理器206和供应管理器311。供应管理器311管理在终端100上软件应用207的供应。应用供应可以包括存储、检索、下载和去除应用107,还包括配置应用程序107,以便经过在链接终端100上协同操作的接口模块312来访问远程应用107。应用管理器306可以用于与用户接口202交互(见图2)、管理应用的使用寿命等。可以认识到如果需要,可以实施另外或除显示以外的各个管理器306,311的处理框架206的其它配置。
重新参照图3,接口模块312使用诸如API124的一系列接口组件来协调在请求应用400(见图4)与目标应用107之间的通信。接口模块312还可以使用诸如访问处理器122的其它接口组件来运行作为交互模块312内部的插件,并且作为在交互请求者400和目标应用107之间进行交互作用的中介,其中目标应用表示为除了模块312的平台无关语言以外的语言(例如,将来自模块312中基于XML标准接口的呼叫转换为适合与基于本机目标应用程序107进行通信的应用特定本机呼叫(native call))。可以认识到目标应用可以表示为运行时间环境的本机语言形式,或者另外表示为与接口模块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可以较验通过数据的有效性,还可以任选包含一些有关过滤和较验的访问等级安全性。
重新参照图3,接口模块312使用应用概况表300和应用API描述表302用于包含应用107、APT124和处理器122的访问信息。应用概况表300包含当供应/安装新应用107或另外在终端100中安装新应用107时所提供的应用107信息。概况包含为应用公布所需要的所有信息(诸如但不局限于应用URI,描述,版本等)。表300中应用概况的知识(公布)和/或表302中应用API的描述符提供其它应用通过交互模块312到指定应用107的外部访问。应用API描述符表302可以包括由指定应用107所支持的所有API的形式描述符。描述符可以表示为由诸如XML的执行运行时间或其它结构化语言所能理解的所有格式。这些描述符促进动态API发现机制,这将在下文进行叙述。可以认识到表格300,302可以结合为一个表或其它数据结构。
应用概况表300的应用概况可以表示为由诸如XML的执行运行时间或其它结构化语言所能理解的所有格式。概况包含应用标识,应用标识可以是URI的形式和为应用公布所需要的附加信息的形式(诸如但并不局限于版本,描述等)。因此,在应用107向接口模块312注册之后,应用107可以使用表320相关的公布的应用标识符由其它应用来寻址。可以认识到应用107公布信息应当支持本地应用107的寻址(在相同终端100上运行)以及在其它终端100上运行的远程应用107的寻址。远程访问使用能够管理远程访问的服务器106,116。例如,当应用107被发送到终端100时,应用开发商和/或服务提供商可以限定和提供对应于每个应用107的应用概况,发送以明确的或嵌入在应用107内容中的方式来实现。
下面DTD片断显示了使用XML声明(declared)的样本应用概况范例使用DTD的基于XML应用概况描述<!ELEMENT appplication(publish,…)>
…<!ELEMENT publish(#PCDATA)>
<!ATTLIST publishuri CDATA #REQUIREDversion CDATA #IMPLIEDdesc CDATA#IMPLIED>
…在上面对于地址簿(addressbook)应用的应用概况片断中使用的XML定义可以公开为<publishuri=”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。
应用API描述符表320的应用访问API可以表示为由诸如XML的执行运行时间或任何其它结构化语言所能理解的所有格式。应用API描述符可以使用表达项的标准化子集来限定。请求应用107将具有如何匹配其内部构造与API描述符的标准化表达项的知识。这个共享知识(sharedknowledge)帮助应用API描述符信息的使用,并促进与公布该API的应用107间的交互作用。例如,如果请求者应用107使用内部构造“集合(rendezvous)”,如果它出现在目标应用107公布的API描述符中,它将与类似“会议(meeting)”或“指定(appointment)”的标准化项(standardized term)相匹配。
应用API可以公布下面API类别的描述符■信息API124消息(即发送信息到目标应用107)数据(即访问由目标应用107管理的数据)■呼叫支持下面呼叫模型的API124-开始被呼叫应用107并终止呼叫者-开始被呼叫应用107并保持呼叫者运行-开始被呼叫应用107并暂停呼叫者,直到被呼叫终止下面的DTD片断显示了基于XML的API描述符的实例范例使用DTD定义的基于XML实例的API描述符<!ELEMENT action(op)>
<!--type can be to call a function,send a message or retrieveinformation data-->
<!ATTLIST actionapi CDATA #REQUIREDtype(call|send|execute)”execute”>
<!ELEMENT op(param?,result?)>
<!ATTLIST opname CDATA#REQUIRED>
<!ELEMENT param(#PCDATA)>
<!ELEMENT result EMPTY>
<!ATTLIST resulttype CDATA#REQUIRED>
应用API交互接口系统10根据诸如但不局限于两种模式来提供应用107之间的交互作用,即■实现模式1,以符合标准交互接口模块312。应用107的模式已经采用由接口模块312所支持的交互标准知识来设计,应用107的模式执行接口模块以转换对接口模块312平台无关环境的内部操作的请求应用400(见图4)呼叫;■实现模式2,无需标准交互接口模块312的知识。这个应用107的模式覆盖了宽范围的应用107(例如当前存在的应用),这些应用107不符合标准交互接口模块312。为了能够实现这些应用107的互用性(interoperability),交互接口模块312提供对访问处理器122的插入式(plugin)服务提供商接口(SPI)502(见图5)。对于特定应用107或API124,可以开发访问处理器122,访问处理器122可以支持协议转换(诸如道不局限于将基于XML标准接口呼叫转换为应用特定的本机呼叫)。
参照图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。
请求应用400使用由表300公布的定义标识符和/或由表302公布的访问API描述符,利用交互模块312来访问目标应用A,B(见图3)。交互模块312传递该请求404给目标应用(直接传递406或经过处理器408)。一旦完成或另外执行请求406,408,交互模块312采用平台无关环境402的语言形式将结果(如果合适)传送回的请求应用。可以认识到,如果请求者应用400表示为除了平台无关环境402之外的语言形式,那么处理器122会将响应406转换回应用B的表达语言,例如基于本机表达语言的形式。
参照图4,为了公布或注册它的API124,应用A、B或其处理器122可以在供应期间向交互模块312进行注册。应用API124的注册可以包括下述内容API公布;API实例注册。可以认识到注册逻辑可以优选的包括对应用107和/或相关API124的动态查询相关联的关键字。
例如,应用107可以采用共存在终端107中的其它应用107的内嵌知识来开发,应用107知道标识符和API描述符,它们是由可以将访问作为目标的所有应用107的表300,302来表示。在一般情况下,应用107开发模式是可塑造的,新供应的应用107不具有在终端100上已经配置(deploy)的应用107的知识。为了能够与其它应用107进行通信,请求应用400能够利用动态的API查询机制。例如,应用可以采用可选择能力来开发,以输出或输入关于外部API124的数据,发送消息,或通过搜索阈值使用所需API124的动态发现来呼叫外部应用107,搜索阈值诸如是但并不局限于关键字计分方法。
当向交互模块312注册时,应用107通过提交表示这些API124特征的预定集合关键字,来查询其它外部应用124(对远程和本地的应用107)所有需要的API124。交互模块312运行查询、匹配提交的关键字与其它应用107(或处理器122)的关键字集合,一旦使用交互模块312公布它们的访问API124,就提交这些其它应用107,并将它们放置在相应的表300,302中。交互模块312可以利用不同的匹配算法识别对所请求API124的最佳匹配。一个实例算法是关键字匹配计数,它会返回具有最高分数的API124。也可以使用更先进的算法,诸如加权关键字计分或组合匹配。下面实例显示使用简单关键字计分算法的API124查询。
范例参考图3,使用关键字计分算法的API查询。
1.应用A是日历应用107,日历应用107将它的API124注册在规定了API关键字“CALENDAR”,“APPOINTMENT”和“MEETING”的表302中。
2.应用B是假日浏览应用107,假日浏览应用107注册它的规定了API关键字“CALENDAR”和“HOLIDAY”的API124。
3.根据上面内容,应用C是服务呼叫规划应用107,它通过使用API124查询关键字“CALENDAR”和“APPOINTMENT”执行动态查询。相应的,交互模块312从表302中返回应用A的API描述符,作为它在关键字匹配中更多的得分。应用C可以证实(validate)检索的API描述符,如果满意它可以经过表300为返回的API实例查询相应的应用107(或处理器122)标识符。在该实例中,应用C接着使用如上参照图4中所述的交互模块312的标准交互协议来访问应用A(例如最佳匹配)。
集成引擎参照图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。
因此,通常,集成引擎500是装置执行环境组件的逻辑组,该装置执行环境组件处理主机装置(device-hosted)或远程应用107的交互。集成引擎500设计为支持平台无关交互模式、接口公布,以及动态应用107和/或插入式应用处理器122。
服务提供商接口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不同类型的插入。
查询和注册504查询和注册接口504支持在表300中应用概况的注册508和在表302中访问标识符的公布。对于呼叫者来说,它也支持对该表信息的查询访问510。查询界面510考虑为可选择功能。替换的,请求应用400可以知道目标应用位置和访问API描述符,可以不需要执行查询。
应用107或它的处理器122可以使用这个实例接口508公布表302中的API124publishAPI[stringapiID,XMLapiDesc,string[]keywords]。
应用107或它的处理器122注册作为这个API124的实例。URI参数是应用107的参数或它相关的处理器122的参数。
RegisterAPIInstance[stringURI,stringapiID]。
应用107可以使用下述内容从表302中动态的查询外部API124lookupAPI[string[]keywords]returns[XMLapiDescription]lookupInstance[stringapiID]returns[string[]URIs]执行API506执行API接口506可以定义为以下呼叫,该呼叫包括与包含在表300,302中的访问信息相关的请求内容
submit[XMLparams];或submit[stringURI,XMLparams]。
采用以上所示的第一呼叫,不指定应用URI。集成引擎500发出广播呼叫给作为该API124实例注册的所有应用107,以实现对所请求外部应用107的访问。在第二种情况下,请求应用400(见图4)通过该URI明确的指定目标应用107。因此,集成引擎500的API执行接口506根据请求应用400的需要来协调请求和所选择API124的供应(见图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的实例。
参照图5和7,通过添加处理器来支持应用107的交互,集成引擎500的操作700、API124注册步骤,和一旦应用107发出对API124的请求,就执行步骤。可以注意到这个实例不使用选择查询检索功能。终端100上的集成引擎500可以支持基于XML的交互作用协议,它作为平台无关环境402而使用,诸如在下面实例中的叙述。
在步骤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”来公布<!DOCTYPE action SYSTEM”api.dtd”>
<action api=”updateCalendar”>
<op name=”addMeeting”>
<param>Meeting</param>
<result type=”boolean”/>
</op>
</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”以便增加会议<action api=”//updateCalendar”>
<op name=”addMeeting”>
<param>
<Meeting>
<date>09/15/03 10:15:00</date>
<details>Conference call with John</details>
<note>To discuss the Idea of XML based interface</note>
</Meeting>
</param>
<result type=”boolean”/>
</op>
</action>
在步骤708,选项1(定向访问)提供了发送下面请求给集成引擎500的应用400submit[/”local/personalCalendarHandler”,”addMeetingRequest.xml”]。另外,在步骤710,选项2(广播)提供发送下面的请求给集成引擎500的应用400submit[“addMeetingRequest.xml”]。在步骤711,IE500将该请求传递给日历处理器122(和具有选项2的其它注册的“updateCalendar”API124实例),如在表302中的记录。日历处理器122检验712数据(例如日期)并且建立以日历应用107所期望的格式的输入(例如建立本机Date对象,构建本机Meeting对象等)。日历处理器122接着调用714日历应用107本机API124呼叫。一旦完成,日历处理器122传递716结果(如果合适)给集成引擎500用于传送给请求应用400。
可以认识到在不需要处理器122的情况下(即日历应用表示为平台无关环境402兼容语言的形式)为API124的注册和访问将遇到上面类似的步骤(没有处理器122)。而且,如果需要可以远程的实现步骤708中日历处理器的访问。
考虑到上述系统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。
而且,通过下面构造来促进应用107间的通信表300的应用概况;表302的应用API和处理器描述符;应用API交互接口涉及注册,查询和访问。
上面的叙述涉及一个示范性系统和方法。许多变化对本领域的技术人员来说是很明显的,这些变化都涵盖在本申请的范围内。例如,尽管在提供的实例中使用了XML和ECMAScript子集,但是也可以使用其它语言和语言变量。而且,可以意识到系统10可以采用硬件和/或软件组件的形式来实现,这包括数据结构模块,用于注册目标应用的访问信息,该访问信息包括公布访问信息;接口模块,用于提供平台无关环境,该接口模块配置用于接收来自请求者应用的访问请求;和接口组件模块,它被配置用于包含接口组件,通过使用请求内容可以检索该接口组件。
权利要求
1.一种通过终端的平台无关接口提供在一对应用程序之间的动态交互的方法,这对应用包括希望访问目标应用的请求者应用,该方法包括步骤注册目标应用的访问信息,该访问信息包括公布的访问信息,该公布的访问信息可以通过平台无关接口在数据结构中检索获得;通过平台无关接口接收来自请求者应用的访问请求,该访问请求包括与目标应用的公布访问信息相对应的请求内容;通过使用该请求内容对数据结构进行检索来获得接口组件,该接口组件配置用于采用目标应用所期望的访问格式来实现在平台无关接口和目标应用之间的通信;通过平台无关接口使用接口组件,以满足请求者应用的访问请求,用于与目标应用进行交互。
2.根据权利要求1的方法,其中从包含以下的组中选择目标应用配置用于采用平台无关接口可兼容语言的方式进行通信的目标应用;以及配置用于采用平台无关接口不兼容的方式进行通信的目标应用。
3.根据权利要求2的方法,其中不兼容语言是由终端的本机运行时间环境所使用的语言。
4.根据权利要求2的方法,其中接口组件是以兼容语言形式表示的应用程序接口(API)。
5.根据权利要求2的方法,其中接口组件是扩展元素,配置用于提供在平台无关接口和以不兼容语言形式表示的目标应用之间的中介。
6.根据权利要求5的方法,还包括步骤通过扩展接口向平台无关接口注册扩展元素,该扩展元素公布的访问信息被添加到数据结构中。
7.根据权利要求6的方法,还包括步骤使用扩展元素通过平台无关接口来访问目标应用,以呼叫按照目标应用的不兼容语言的形式表示的相应的应用程序接口(API)。
8.根据权利要求2的方法,还包括步骤使用具有请求内容的检索算法来识别由平台无关接口使用的匹配接口组件。
9.根据权利要求8的方法,其中从下面包含的组中选择用于表示平台无关接口的语言结构化定义语言和脚本。
10.根据权利要求9的方法,其中结构化定义语言是基于XML。
11.根据权利要求9的方法,其中用于表示脚本的语言是ECMAscript。
12.根据权利要求2的方法,还包括步骤装配的请求内容,以包括从以下组中选择的内容本地位置和远程位置。
13.根据权利要求12的方法,其中远程位置位于通过网络连接到所述终端的另一个终端上,其它终端具有这对应用中的一个应用,用于与这对应用中的其它应用进行网络交互。
14.根据权利要求13的方法,其中将所述终端配置为可以通过网络访问的定义模式服务的客户。
15.根据权利要求2的方法,其中数据结构是从包含应用概况概况表和应用API描述符表的组中进行选择。
16.根据权利要求15的方法,其中应用概况概况表包括多个目标应用的应用概况概况。
17.根据权利要求15的方法,其中应用API描述符表包括从下面包含的组中选择的描述符API描述符和扩展元素描述符。
18.根据权利要求15的方法,其中数据结构包括从下面包含的组中选择的访问信息应用URI,应用版本,应用描述,和匹配API结构对的预定集合。
19.根据权利要求2的方法,还包括步骤提供从下面包含的组中选择的平台无关接口的接口扩展接口,查询和注册接口,以及执行接口。
20.根据权利要求19的方法,其中扩展接口配置用于动态的扩展新的所述接口组件与平台无关接口的连接。
21.一种用于提供在一对应用程序之间的动态交互的终端,该应用程序处于由终端的运行时间环境提供的平台无关环境中,这对应用包括希望访问目标应用的请求者应用,该终端包括数据结构,用于注册目标应用的访问信息,该访问信息包括公布的访问信息;接口模块,用于提供平台无关环境,该接口模块配置用于接收来自请求者应用的访问请求,该访问请求配置用于包括与目标应用公布的访问信息相对应的请求内容,该数据结构公布的访问信息可以由接口模块来检索;和连接到接口模块的接口组件,使用请求内容搜索该数据结构可以检索接口模块,该接口模块配置用于采用目标应用所期望的访问格式实现在接口模块和目标应用之间的通信;其中通过接口模块使用接口组件满足在与目标应用交互中请求者应用的访问请求。
22.根据权利要求21的终端,其中目标应用是从下面包含的组中进行选择配置用于采用与接口模块可兼容语言的方式进行通信的目标应用;配置用于和采用与接口模块不兼容的方式进行通信的目标应用。
23.根据权利要求22的终端,其中不兼容语言是由终端的本机运行时间环境所使用的语言。
24.根据权利要求22的终端,其中接口组件是以兼容语言形式所表示的应用程序接口(API)。
25.根据权利要求22的终端,其中接口组件是扩展元素,被配置用于提供在接口模块和目标应用之间的中介,该目标应用表示为不兼容语言的形式。
26.根据权利要求25的终端,还包括扩展元素,它用于注册具有接口模块的扩展元素,该扩展元素公布的访问信息被添加到数据结构中。
27.根据权利要求26的终端,还包括相应的应用程序接口(API),它可以由扩展元素呼叫,用于通过接口模块来访问目标应用,该应用程序接口(API)表示为目标应用的不兼容语言形式。
28.根据权利要求22的终端,还包括检索算法,用于使用请求内容来识别为接口模块使用的匹配接口组件。
29.根据权利要求28的终端,其中从下面包含的组中选择用于表示接口模块的语言结构化定义语言和脚本。
30.根据权利要求29的终端,其中结构化定义语言是基于XML。
31.根据权利要求29的终端,其中用于表示脚本的语言是ECMAscript。
32.根据权利要求22的终端,其中请求内容配置用于从下面包含的组中进行选择本地位置和远程位置。
33.根据权利要求32的终端,其中远程位置位于通过网络连接到所述终端的另一个终端上,其它终端具有这对应用中的一个应用,用于与这对应用中的其它应用进行网络交互。
34.根据权利要求33的终端,其中将所述终端配置为可以通过网络访问的定义模式服务的客户。
35.根据权利要求22的终端,其中数据结构是从包含应用概况概况表和应用API描述符表的组中进行选择。
36.根据权利要求35的终端,其中应用概况概况表包括多个目标应用的应用概况概况。
37.根据权利要求35的终端,其中应用API描述符表包括从下面包含的组中选择的描述符API描述符和扩展元素描述符。
38.根据权利要求35的终端,其中数据结构包括从下面包含的组中选择的访问信息应用URI,应用版本,应用描述,和匹配API结构对的预定集合。
39.根据权利要求22的终端,还包括接口模块的接口,该接口是从下面包含的组中进行选择扩展接口,查询和注册接口,以及执行接口。
40.根据权利要求39的终端,其中扩展接口配置用于动态的扩展新的所述接口组件与接口模块的连接。
41.根据权利要求39的终端,其中查询和注册接口配置用于公布与接口组件相关的访问信息。
42.一种用于提供在一对应用程序之间动态交互的计算机程序产品,该应用程序处于由终端的运行时间环境所提供的平台无关环境中,这对应用包括希望访问目标应用的请求者应用,该计算机程序产品包括计算机可读介质;存储在计算机可读介质上的数据结构模块,用于注册目标应用的访问信息,该访问信息包括公布的访问信息;连接到数据结构模块的接口模块,用于提供平台无关环境,该接口模块配置用于接收来自请求者应用的访问请求,该访问请求配置用于包括与目标应用公布的访问信息相对应的请求内容,该数据结构模块公布的访问信息可以由接口模块来检索;和连接到接口模块的接口组件模块,该接口模块配置用于包含使用请求内容搜索数据结构模块可以检索的接口组件,该接口组件模块配置用于采用目标应用所期望的访问格式来实现在接口模块和目标应用之间的通信;其中通过接口模块使用接口组件满足在与目标应用交互中请求者应用的访问请求。
全文摘要
提供了一种通过终端的平台无关接口提供在一对应用程序之间进行动态交互的系统和方法,这对应用包括希望访问目标应用的请求者应用。一种方法包括注册目标应用的访问信息,上述访问信息包括公布的访问信息,公布的访问信息可以通过平台无关接口在数据结构中检索获得。该方法还包括通过平台无关接口接收来自请求者应用的访问请求,上述访问请求包括与目标应用公布的访问信息相对应的请求内容。该方法还包括通过使用请求内容搜索该数据结构来获得接口组件,上述接口组件配置用于采用目标应用所期望的访问格式实现在平台无关接口和目标应用之间的通信。该方法还包括通过平台无关接口使用接口组件来满足请求者应用的访问请求,用于与目标应用的交互。
文档编号G06F9/44GK1670694SQ20051006408
公开日2005年9月21日 申请日期2005年1月31日 优先权日2004年1月30日
发明者迈克尔·谢菲尔德, 菲拉·比布尔, 布赖恩·R·戈林 申请人:捷讯研究有限公司

最新回复(0)