首页> 中国专利> 撤消现有功能的方法和用于修改现有协议功能的系统

撤消现有功能的方法和用于修改现有协议功能的系统

摘要

提供用于撤消在用于本地协议实现的应用程序编程接口(API)中所提供的现有功能的方法、系统和程序产品。该方法包括:提供API给本地协议实现,该API具有能够被客户端应用程序调用来撤消在API中提供的现有功能的原始接口函数。该方法还包括:为原始接口函数定义预先形成的有效负荷元素的数组,该数组要被包括来创建从使用与本地协议实现不同的远程协议实现的服务器应用程序请求协议服务的定制的协议请求消息;为在所定义的数组中的每个元素导入数据;和调用原始接口函数,该函数将所定义的数组作为输入,并且在协议请求消息的协议消息报头之后顺序地插入它们,并且将定制的协议请求消息发送到服务器应用程序。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2010-11-03

    授权

    授权

  • 2008-08-20

    实质审查的生效

    实质审查的生效

  • 2008-06-25

    公开

    公开

说明书

技术领域

本发明涉及用于适配于基于演进标准的协议实现中的变化的方法、系统和计算机程序。具体地说,本发明涉及用于撤消(override)用于本地协议实现的应用程序编程接口中所提供的现有功能(functionality)、以与使用提供与该本地协议实现不同的功能的远程协议实现的应用程序进行相互操作的方法、系统和计算机程序产品。

背景技术

当对多媒体环境中的演进协议进行后台(back-end)规范变化时,意味着实施应用程序编程接口(API)的服务器代码必须进行改变,以提供在后台中可用的任何新函数(function)。然而,当协议持续变化时,试图通过客户端应用程序来预测API的函数和用法是不可能的。必须频繁地提供新版本(release)使得客户端能够利用新的函数,否则客户端不能利用新的函数。因此,需要当后台规范改变时提供经济和有效的方法来对API进行改变,而不必太频繁地发布新的和综合的版本,并且使得客户端能够利用已经被添加的任何新函数。而且,需要提供机制用于克服与解释演进协议的其他供货商的设备的任何不兼容问题。

发明内容

在本发明的第一方面中,提供一种撤消在用于本地协议实现的应用程序编程接口中所提供的现有功能的方法。该方法包括:提供用于实施协议的本地协议实现的应用程序编程接口,该应用程序编程接口具有原始接口函数,该原始接口函数能够由客户端应用程序调用,以撤消在应用程序编程接口中所提供的现有功能,以便与实施该协议的远程协议实现进行相互操作,该远程协议实现支持与本地协议实现不同的功能。该方法还包括:为原始接口函数定义预先形成的有效负荷元素的数组(array),其要被包括来为从使用远程协议实现的服务器应用程序请求协议服务而创建定制的协议请求消息,并且针对为创建定制的协议请求消息所定义的预先形成的有效负荷元素的数组中的每个元素导入(populate)数据。而且,该方法包括:调用原始接口函数来撤消现有功能,其中原始接口函数将所定义的预先形成的并且预先导入的有效负荷元素的数组作为输入,并且通过在协议请求消息的协议消息报头之后顺序地插入预先形成的有效负荷元素的数组来创建定制的协议请求消息,并且将定制的协议请求消息发送到远程协议实现。该方法还包括将来自服务器应用程序的协议响应消息返回给客户端应用程序,该协议响应消息包含格式化为另一个预先形成的有效负荷元素的数组的有效负荷数据。在实施方式中,提供给本地协议实现的应用程序编程接口具有能够被客户端应用程序调用以发送请求协议服务的标准协议请求消息的一个或多个预先定义的协议函数。该方法还包括:调用一个或多个预先定义的协议函数的预先定义的协议函数,该预先定义的协议函数具有要被传递给被调用来创建标准协议请求消息的预先定义的协议函数的预先定义的参数的列表。在实施方式中,调用预先定义的协议函数的步骤还包括:将与预先定义的参数的列表对应的数据加载到标准协议请求消息的预先定义的有效负荷元素中,该预先定义的有效负荷元素与被传递到预先定义的协议函数的预先定义的参数的列表对应。在实施方式中,在所创建的预先形成的有效负荷元素的数组中的每个元素至少包括下列之一:TLV(类型、长度、值)、AVP(Attribute ValuePair,属性值对)和定界文本串。在实施方式中,协议包括使用离散有效负荷元素的任何协议。在实施方式中,协议包括直径协议(Diameter protocol)。

在本发明的另一个方面中,提供用于修改用于客户端一侧协议实现的应用程序编程接口中所提供的现有协议功能的系统。该系统包括:实施协议的服务器一侧远程协议实现,将其配置为响应于接收到的协议请求消息提供协议服务;和实施协议的客户端一侧协议实现,其具有应用程序编程接口,该应用程序编程接口具有被配置来撤消在应用程序编程接口中所提供的现有协议功能的原始接口函数,其中使用客户端一侧协议实现的用户端应用程序为原始接口函数定义预先现成的有效负荷元素的数组,其要被包括来在服务器一侧远程协议实现支持与客户端一侧协议实现不同的功能的情况下,创建用于从使用服务器一侧远程协议实现的服务器一侧应用程序请求协议服务的定制的协议请求消息。在实施方式中,客户端应用程序为所定义的预先形成的有效负荷元素的数组中的每个元素导入数据,而且客户端应用程序调用原始接口函数,以修改在客户端一侧协议实现的应用程序编程接口中所提供的现有协议功能。在实施方式中,将原始接口函数进一步配置为:将所定义的预先形成的并且预先导入的有效负荷元素的数组作为输入,并且通过在定制的协议请求消息的协议消息报头之后顺序地插入预先形成的有效负荷元素的数组来创建定制的协议请求消息,并且将定制的协议请求消息发送到使用服务器一侧远程协议实现的服务器一侧应用程序。在实施方式中,将具有应用程序编程接口的客户端一侧协议实现配置为接收调用在应用程序编程接口中所提供的预先定义的协议函数的函数引用(function call),该应用程序编程接口用于将标准协议请求消息发送到请求协议服务的服务器一侧应用程序,而且其中将服务器一侧远程协议实现配置为将包含被格式化为另一个预先形成的有效负荷元素的数组的有效负荷数据的协议响应消息返回给客户端应用程序。在实施方式中,将应用程序编程接口配置为:将与预先定义的参数的列表对应的数据加载到标准协议请求消息的预先定义的有效负荷元素中,该预先定义的有效负荷元素与传递到预先定义的协议函数的预先定义的参数的列表对应。在实施方式中,在所创建的预先形成的有效负荷元素的数组中的每个元素至少包括下列之一:TLV(类型、长度、值)、AVP(属性值对)和定界文本串。在实施方式中,协议包括使用离散有效负荷元素的任何协议。

在本发明的再一个方面中,提供一种用于修改在用于本地协议X实现的应用程序编程接口中所提供的功能的计算机程序产品。该计算机程序产品包括:计算机可读介质;提供用于实施协议X的本地协议X实现的应用程序接口的第一程序指令,该应用程序编程接口具有原始接口函数,所述原始接口函数可以由客户端应用程序调用来撤消在应用程序编程接口中所提供的现有功能,以与实施协议X的远程协议X实现进行相互操作,该远程协议X实现支持与本地协议X实现不同的功能。在实施方式中,第一程序指令还包括指令,该指令用于将应用程序编程接口提供给具有可以由用户端应用程序调用来发送请求协议X服务的标准协议X请求消息的一个或多个预先定义的协议X函数的本地协议X实现,并且用于调用所提供的一个或多个预先定义的协议X函数的预先定义的协议X函数,所述预先定义的协议X函数具有要被传递到被调用来创建标准协议X请求消息的预先定义的协议X函数的预先定义的参数的列表。在实施方式中,第一程序指令还包括用于将与预先定义的参数的列表对应的数据加载到标准协议X请求消息的预先定义的有效负荷元素的指令,该预先定义的有效负荷元素与传递到预先定义的协议X函数的预先定义的参数的列表对应。该计算机程序产品还包括第二程序指令,该指令用于为原始接口函数定义预先形成的有效负荷元素的数组,该预先形成的有效负荷元素的数组要被包括来创建定制的协议X请求消息,以从使用远程协议X实现的服务器应用程序请求协议X服务,该第二指令包括用于为所定义的预先形成的有效负荷元素的数组中的每个元素导入数据的指令。而且,该计算机程序产品还包括用于调用原始接口函数的第三程序指令,其中该原始接口函数将所定义的预先形成并且预先导入的有效负荷元素的数组作为输入,并且通过在协议X请求消息的协议X消息报头之后顺序地插入预先形成的有效负荷元素的数组来创建定义的协议X请求消息,并且将定制的协议X请求消息发送到远程协议X实现。该计算机程序产品还包括用于将来自服务器应用程序的协议X响应消息返回给客户端应用程序的第四程序指令,该协议X响应消息包含被格式化为预先形成的有效负荷元素的另一个数组的有效负荷数据,将该第四程序指令存储在计算机可读介质上。在实施方式中,在所创建的预先形成的有效负荷元素的数组中的每个元素至少包括下列之一:TLV(类型、长度、值)、AVP(属性值对)和定界文本串。在实施方式中,协议X包括使用离散有效负荷元素的任何协议。最好,第一、第二、第三和第四程序指令的每一个都被存储在计算机可读介质上。

附图说明

合并其中并且形成本说明书一部分的附图示出了本发明的实施方式,并且和下面的描述一同用于解释本发明的原理。

图1示出了根据本发明实施方式的撤消或者修改在用于协议X实现的应用程序编程接口(API)中所提供的功能的流程图;

图2示出了根据本发明实施方式的撤消或者修改在用于协议X实现的应用程序编程接口(API)中所提供的功能的流程图;

图3A是示出根据本发明实施方式,客户端应用程序使用为本地协议X实现提供的应用程序编程接口(API)来访问使用远程协议X实现的协议X服务的示意系统框图,其中本地协议X实现和远程协议X实现使用协议X进行通信;

图3B是示出根据本发明实施方式,调用用于协议X实现的应用程序编程接口中所提供的函数的协议消息的创建的示意系统框图;和

图4是示出根据本发明实施方式,用于修改在用于协议X实现的应用程序编程接口(API)中所提供的功能的计算机基础设施的实施方式的示意系统框图。

具体实施方式

在整个说明书中,“一种实施方式”、“实施方式”或类似语言的参照表示在本发明的至少一种实施方式中包括结合实施方式描述的具体特点、结构或者特征。因此,虽然不是必须的,但是在整个说明书中出现的“在一种实施方式中”、“在实施方式中”和类似语言都是指相同的实施方式。

而且,可以在一种或多种实施方式中以适当的方式组合所描述的本发明的特点、结构、或者特征。对本领域的技术人员很清楚,在不偏离本发明的精神和范围的情况下,可以对本发明的进行各种修改和变型。因此,只要对本发明的修改和变型在所附权利要求及其等效物的范围内,本发明就包括它们。现在将详细参照本发明的优选实施方式。

在一种实施方式中,本发明提供用于撤消或者修改在用于协议实现(而且,这里也称为本地协议实现、本地协议X实现或者协议X实现)的应用程序编程接口(API)中所提供的现有功能的方法,其中所实现的协议或者协议X是任何基于标准的协议或者协议规范。将协议的功能内容提炼为API。将用于协议实现的API实施为内部类(参数或者变量的集合)和方法或者函数的组,这些内部类和方法或者函数可以由引用应用程序(calling application)或者客户端一侧应用程序或者客户端应用程序调用来创建分组或者消息格式和内容,如下面要参照图3A和3B所解释的那样。协议实现导出(export)API,以便其他客户端应用程序或者引用应用程序可以使用协议实现。现在参照图1和图2,它们示出了撤消或者修改用于协议实现的应用程序编程接口中所提供的现有功能的方法的各个方面。转到图1,附图标记100概述了由最终用户执行的方法或者过程,例如,客户端应用程序或者客户端应用程序客户端一侧应用程序或者引用应用程序的程序员在步骤101中,使用提供给本地协议实现来访问或者引用一个或多个应用程序(即,提供服务给请求的服务器一侧应用程序)的应用程序编程接口,其中该应用程序编程接口具有原始接口函数。具体地说,客户端应用程序引用服务器应用程序或者服务器一侧应用程序来请求协议服务,其中服务器一侧或者服务器应用程序使用安装在服务器(远程服务器或者本地服务器)上的远程服务器协议实现(这里也被称为远程协议X实现、远程协议实现或者远程服务器协议实现)。如在这里所使用的那样,“协议实现”或者“本地协议实现”或者“协议X实现”指的是通过引用或者客户端或者客户端一侧应用程序而实施的协议实现的使用,而“远程协议实现”或者“远程服务器协议实现”或者“远程协议X实现”指的是由服务器或者服务器一侧应用程序实施的协议实现,比如正在提供协议服务的另一方或者服务提供商(服务器一侧应用程序),其中术语“远程”仅仅表示可以位于相同机器或者不同机器上的分离的程序或者过程。由于在由引用应用程序所使用的本地协议实现和由服务器应用程序(或者服务器一侧应用程序)所使用的远程服务器协议实现(或者远程协议实现)之间可能存在差异,所以这可能在调用协议函数时导致由于不一致性或者不兼容性问题引起的错误。因此,流程图100概述了用于克服由服务器或者服务器一侧应用使用来向利用本地协议实现的客户端应用程序提供协议服务的远程协议实现所导致的任何这种不一致性或者不兼容性的步骤。该过程以步骤102开始,其中准备要由客户端应用程序或者引用应用程序发送来请求协议服务的数据。具体地说,客户端应用程序(经由API引用)进行请求,并且使用安装在客户端一侧上的本地协议实现来发送数据。在步骤104中,进行关于用于远程服务器协议实现的协议规范版本是否与用于该协议的本地协议实现的协议规范版本匹配的确定。例如,用于远程服务器协议实现的协议规范版本可能是3.2,而用于本地协议实现的协议规范版本可能是3.1,其中协议规范版本3.2比3.1新。如果在步骤104中用于远程协议实现的协议规范版本与用于本地协议实现的协议规范版本匹配,则在步骤106中进行关于远程服务器协议实现是否与本地协议实现匹配的确定。具体地说,进行关于在能够被引用应用程序调用的实际协议函数之外在是否存任何功能不一致性的确定。功能不一致性可以是非常细微的,比如使得本地和远程协议实施不兼容的协议规范要求的不同解释。或者,它可以是超出仅仅被实施在远程协议实现中的协议规范的扩展。或者,它可以是本地或者远程协议实现中的错误。如果在步骤106中用于远程服务器协议实现的协议规范版本与用于本地协议实现的协议规范版本匹配,则在步骤108中进行关于远程服务器协议实现是否具有与由用于本地协议实现的API所配备的功能匹配的功能的确定。在步骤108,如果确定在远程服务器协议实现中所提供的协议功能与由用于本地协议实现的API所配备的功能匹配,则客户端应用程序或者引用应用程序在步骤116中使用在用于本地协议实现的应用程序编程接口(API)中所提供的协议函数或者函数来请求协议服务,并且在步骤120中调用协议函数或者函数。在实施方式中,为本地协议实现提供的API在能够在步骤116中被客户端应用程序使用进行调用的原始接口函数之外还具有一个或多个预先定义的协议函数,在步骤120中,调用一个或多个预先定义的协议函数来发送请求协议服务的标准协议请求消息。而且,每个预先定义的协议函数具有要被传递给被调用来创建标准协议请求消息的预先定义的协议函数的预先定义的参数的列表。因此,调用预先定义的协议函数,将与预先定义的参数的列表对应的数据(步骤102)载入到预先定义的有效负荷元素中,以创建标准协议请求消息。

将用于协议实现的API实施为能够由引用应用程序或者客户端一侧应用程序或者客户端应用程序调用的内部类和方法或者函数的组。用于协议实现的API包括将由引用应用程序通过函数或者API引用而调用的带有参数的预先定义的协议函数的列表。这些预先定义的协议函数被设计来基于协议规范创建分组或者消息格式和内容。每个预先定义的协议函数(基于协议规范)转换为承载预先定义的参数信息作为它们有效负荷(分组的主体部分)的一部分的一个或多个分组或者消息。当由引用应用程序调用或者引用预先定义的函数或者API的方法之一时,执行该代码并且将数据作为参数传递给所引用的预先定义的函数或者方法。使用预先定义的参数来建造标准协议消息或者分组的有效负荷元素(组成有效负荷或者主体部分的元素),其中每个有效负荷元素承载实际的值或者数据。构建标准协议消息或者分组并且将它们发送到接收或者远程协议实现。因此,当调用在用于协议实现的API中所提供的预先定义的函数时,将有效负荷格式化以便将参数1的值放入到有效负荷元素1的值区域中,将参数2的值放入到有效负荷元素2的值区域中等等,如关于图3B进一步描述的那样。因此,当引用应用程序调用API中的预先定义的函数时,引用应用程序穿过该API传递该数据,并且将该数据插入到与预先定义的参数对应的有效负荷元素中,以创建被发送到在提供协议服务的服务器上的远程或者接收协议实现的标准协议消息。

然而,返回到步骤104,如果确定用于远程服务器协议实现的协议规范版本与用于协议的本地协议实现的协议规范版本不匹配,则在步骤110中,使用用于本地协议实现的应用程序编程接口(API)中所提供的原始接口函数或者方法来克服本地协议实现和远程服务器协议实现之间的任何版本不匹配。进一步,返回到步骤106,如果确定在远程服务器协议实现和本地协议实现之间存在(除了协议函数之外的)功能不一致性,则在步骤112中,使用用于本地协议实现的应用程序编程接口中所提供的原始接口函数或者方法,来克服本地协议实现和远程服务器协议实现之间的任何不一致性。而且,返回到步骤108,如果确定由远程服务器协议实现所提供的协议功能与用于本地协议实现的API所配备的功能不匹配,例如,已经将新函数添加到远程协议实现中,则在步骤112中,在步骤114中使用用于本地协议实现的应用程序编程接口中所提供的原始接口函数或者方法,来撤消或者修改或者添加新协议功能,其可以由客户端应用程序在步骤120中进行调用,以发送定制的协议请求消息,也就是说,如下面在图2中进一步描述的那样,为客户端应用程序来设计或者创建用于请求协议服务的请求消息,结束该过程。

转到图2,附图标记200该述了撤消或者修改在用于协议实现的应用程序编程接口(API)中所提供的现有功能(例如,在图1的步骤114中),以请求使用远程协议实现的服务器一侧应用程序所提供的协议服务的方法。如图2所示,撤消或者修改在API中所提供的现有功能的方法开始于步骤202,提供具有包括原始接口函数的API的协议实现,该原始接口函数可以由客户端或者引用应用程序来调用,以撤消在API中所提供的现有功能,从而与远程协议实现进行相互操作,该远程协议实现支持与本地协议实现不同的功能。该方法还包括:在步骤204中,为原始接口函数定义预先形成的有效负荷元素的数组,该预先形成的有效负荷元素的数组要被包括来创建用于从使用远程协议实现的服务器一侧应用程序请求协议服务的定制的协议请求消息。而且,该方法包括:在步骤206中,导入为创建定制的协议请求消息而定义的预先形成的有效负荷元素的数组中的每个元素的数据,如将在下面参照图3B描述的那样。而且,该方法还包括:在步骤208,调用将所定义的预先形成并且预先导入的有效负荷元素的数组作为输入的原始接口函数,并且在步骤210中,通过在协议请求消息的协议消息报头之后顺序地插入预先形成的有效负荷元素的数组,来创建定制的协议请求消息。而且,该方法还包括:在步骤212中,将定制的协议请求消息发送给使用远程协议实现的服务器一侧应用程序。该方法还包括:在步骤214中,从服务器一侧应用程序接收协议响应消息,该协议响应消息包含被格式化为预先形成的有效负荷元素的另一个数组的有效负荷数据,结束该过程。在实施方式中,在所创建的预先形成的有效负荷元素的数组中的每个元素包括下面类型中的任何一个:TLV(类型、长度、值)、AVP(属性值对)和定界文本串。在实施方式中,协议包括使用离散有效负荷元素的任何协议。在实施方式中,协议或者协议X包括被配置来将验证、授权和计费(accounting)的协议服务提供给引用或者客户端应用程序的直径(Diameter)协议。然而,能够与使用离散有效负荷元素来提供其他协议服务的其他协议一起来使用本方法。

因此,当改变协议规范以添加新的功能时,例如,添加附加有效负荷元素,一般地,升级远程协议实现以支持新的有效负荷元素。具体地说,由远程协议X实现来检查针对新功能而需要的新的或者不同的有效负荷元素,并且依照其进行动作。因此,使用用于本地协议实现的API的引用应用程序在没有API协议实施所提供的原始接口函数的情况下,不能使用新功能。然而,使用原始接口函数,如果引用应用程序想要利用新功能,该引用应用程序的程序员可以继续进行并且撤消在API中提供的现有功能,如上面参照图2所描述并且下面参照图3B进一步描述的那样。

在另一个实施方式中,如图3A和3B所示,本发明提供用于修改在用于协议实现或者协议X实现(或者本地协议或者协议X实现)的应用程序编程接口(API)中所提供的现有协议功能的系统300A,其中协议或者协议X包括使用离散有效负荷或者数据元素的任何协议。该系统包括远程协议X实现310(也称为服务器一侧远程协议X实现),其被配置来响应于从客户端或者引用应用程序302接收的协议X请求消息(将在下面参照图3B进行描述),提供协议服务(由双箭头308表示)。进一步,系统300A包括本地协议X实现306(也称为客户端一侧协议或者协议X实现),其提供具有被配置来撤消在应用程序编程接口304中所提供的现有协议功能的原始接口函数的应用程序编程接口(由双箭头304表示)。所以,如果例如远程协议X实现310支持与本地协议X实现306不同的功能,例如,提供更新的功能,则在API 304中提供的原始接口函数可以被客户端一侧的程序员用来修改现有函数和/或创建可以被引用应用程序302调用的新函数。具体地说,客户端或者引用应用程序302使用本地协议X实现306来请求协议服务308,从而为原始接口函数定义预先形成的有效负荷元素的数组,该预先形成的有效负荷元素的数组要被包括来创建从使用远程协议X实现或者服务器一侧远程协议实现310的服务器一侧应用程序请求协议服务308的定制的协议请求消息。在实施方式中,客户端或者引用应用程序302为所定义的预先形成的有效负荷元素的数组中的每个元素导入数据,而且客户端应用程序302调用原始接口函数来修改在本地协议X实现或者客户端一侧协议实现306的应用程序编程接口304中所提供的现有协议功能。在实施方式中,将原始接口函数进一步配置来将所定义的预先形成并且预先导入的有效负荷元素的数组作为输入,并且通过在定制的协议请求消息的协议消息报头312(在图3B中的有效负荷部分320中)之后顺序地插入预先形成的有效负荷元素的数组来创建定制的协议请求消息300B,并且将该定制的协议请求消息发送到使用服务器一侧远程协议实现或者远程协议X实现310的服务器一侧应用程序。

在实施方式中,将提供应用程序编程接口304的客户端一侧协议实现或者本地协议X实现306配置为接收函数引用或者API引用,该函数引用或者API引用调用用于将标准协议请求消息发送到请求协议X服务的服务器一侧应用程序的应用程序编程接口中所提供的预先定义的协议函数。必须将执行函数所需要的所有关键信息包括在该函数或者API引用中。而且,将服务器一侧远程协议实现或者远程协议X实现310配置为将协议响应消息308返回给客户端应用程序302,该协议响应消息308包含被格式化为预先形成的有效负荷元素的另一个数组的有效负荷数据。在实施方式中,将应用程序编程接口304进一步配置为将与预先定义的参数的列表对应的数据加载到标准协议请求消息的预先定义的有效负荷元素中,其中预先定义的有效负荷元素与被传递到预先定义的协议函数的预先定义的参数的列表对应。在实施方式中,在所创建的预先形成的有效负荷元素的数组中的每个元素至少包括下面之一:TLV(类型、长度、值)、AVP(属性值对)和定界文本串。在实施方式中,协议X包括使用离散负荷元素的任何协议。在实施方式中,协议或者协议X包括被配置来将验证、授权和计费的协议服务提供给引用或者客户端应用程序的直径协议。

转到图3B,附图标记300B表示当调用在用于协议实现的API中所提供的函数时创建的协议分组或消息。例如,引用应用程序使用API中所谓getUserCredit(获得用户信用)的预先定义的函数,其中预先定义的getUserCredit函数具有两个预先定义的参数,User-Name(用户名)和User-Realm。因此,当引用应用程序调用API实现的getUserCredit函数时,getUserCredit函数创建具有包括两个有效负荷元素(即,User-Name元素和User-Realm元素)的有效负荷格式的协议请求分组或者消息。具体地说,getUserCredit函数为预先定义的参数User-Name取值或者数据,并将其放入到有效负荷的预先定义的有效负荷元素User-Name中,并且为预先定义的参数User-Realm取值或者数据(realm_xyz.com),并将其放入到预先定义的元素User-Realm中,然后将该消息发送到服务器上的远程协议实现。远程协议实现接收该消息,并且将结果或者响应数据(例如,$10)作为来自服务器应用程序的响应分组的有效负荷中的元素(例如,在Account-Value(帐户值)元素中)返回给引用应用程序。如图3B所示,协议请求或者消息300B包含消息报头部分312和有效负荷部分320,根据针对给定函数定义了多少参数,有效负荷部分320包括分别以附图标记314、316到318表示的一个或多个预先定义的有效负荷元素1、2到N。在上面的例子中,由于函数getUserCredit具有两个参数,所创建的消息将具有两个预先定义的有效负荷元素,User-Name和User-Realm,而且因此,将与User-Name参数对应的值或者数据插入到有效负荷部分320的由附图标记314表示的有效负荷元素1中。类似地,将用于User-Realm参数的值或者数据插入到有效负荷部分320的由附图标记316表示的有效负荷元素2中。而且,如果已经改变了远程协议实现,例如,getUserCredit函数现在包括附加的有效负荷元素,Account-ID元素,也就是说,getUserCredit函数现在具有三个参数,User-Name、User-Realm和Account-ID,则远程协议实现现在期待带有与这三个元素(即,User-Name元素、User-Realm元素和Account-ID元素)对应的有效负荷或者数据格式的分组或者消息格式,替代于只接收带有与User-Name元素和User-Realm元素对应的数据的分组。因此,使用用于协议实现(而没有原始接口函数)的API的引用应用程序将不能与服务器的应用程序进行通信。然而,使用具有原始接口函数的API,程序员能够撤消或者修改在本地协议实现中的现有getUserCredit函数,以发送定制的请求,但是需要知道已经将附加的参数添加到了远程协议实现中的函数getUserCredit中,和远程协议实现正在期待与三个有效负荷元素(即,User-Name元素、User-Realm元素和Account-ID元素)对应的数据的协议分组的格式。因此,如果引用应用程序想要调用现在具有Account-ID元素的getUserCredit,则程序员需要创建User-Name元素(Joe)、User-Realm元素(realm_xyz.com)和Account-ID元素(00123),并且需要插入对应数据(分别是Joe、realm_xyz.com和00123),以预先导入所创建的每个元素。进一步,程序员还需要知道在远程协议实现所期待的协议消息中的每个有效负荷元素的确切格式(例如,TLV、AVP格式或者定界文本串等)。因此,程序员会定义将会被用来创建定制的协议请求消息的有效负荷320(在图3B中)的这三个预先形成的有效负荷或者数据元素的数组。例如,如果用于远程协议实现中的元素的格式使用TLV(类型、长度、值)格式,则程序员会在调用原始接口函数之前定义预先形成的有效负荷元素的可变长度数组如下:[User-Name,length,“Joe”][User-Realm,length,“realm_xyz.com”][Account-ID,length,“00123”]。因此,在元素(User-Name)和在由引用应用程序调用时被传递给原始接口函数的数据或者值(Joe)之间有预先存在或者预先形成的匹配。具体地说,将预先形成的有效负荷元素的数组传递给函数rawProtocolXRequest而不是函数getUserCredit,从而,将预先形成的有效负荷元素的数组插入到被发送到远程协议实现的定制的协议请求消息的有效负荷中。所以,在API具有原始接口函数的情况下,应用程序开发者不仅提供要被传递到函数的数据,而且还定义组成分组格式的元素。

在另一个实施方式中,本发明提供计算机程序产品,其用于修改或者撤消在用于协议X实现的应用程序编程接口中所提供的功能。最好,计算机程序产品是能够从计算机可用或者计算机可读介质存取的形式,该介质提供程序代码或者指令由计算机或者任何指令执行系统使用或者与它们结合。为了本说明书的目的,计算机可用或者计算机可读介质可以是能够包含、存储、通信、传播或者传输由指令执行系统、设备或者装置使用或者与其结合的代码或者指令的任何设备。最好,介质包括电子、磁、光、电磁、红外或者半导体系统(或者设备或者装置)或者传播介质。更优选地,计算机可读介质可以包括半导体或者固态存储器、磁带、可拆卸计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。进一步,光盘的例子包括致密盘-只读存储器(CD-ROM)、致密盘-读/写(CD-R/W)和数字多功能/视频盘(DVD)。本发明可以采用完全硬件实施方式、完全软件实施方式或者包含硬件和软件元件两者的实施方式的形式。在优选实施方式中,本发明以软件实施,其包括单不限于固件、驻留软件、微代码等。

计算机程序产品还包括:用于提供用于实施协议X的本地协议X实现的应用程序编程接口的第一程序指令;具有原始接口函数的应用程序编程接口,所述原始接口函数可以由客户端应用程序调用来撤消在应用程序编程接口中所提供的现有功能,以与实施协议X的远程协议X实现进行相互操作;远程协议X实现支持与本地协议X实现不同的功能。在实施方式中,第一程序指令还包括指令,该指令用于将应用程序编程接口提供给具有可以由用户端应用程序调用来发送请求协议X服务的标准协议X请求消息的一个或多个预先定义的协议X函数的本地协议X实现,并且用于调用所提供的一个或多个预先定义的协议X函数的预先定义的协议X函数,所述预先定义的协议X函数具有要被传递到被调用来创建标准协议X请求消息的预先定义的协议X函数的预先定义的参数的列表。在实施方式中,第一程序指令还包括用于将与预先定义的参数的列表对应的数据加载到标准协议X请求消息的预先定义的有效负荷元素的指令,该预先定义的有效负荷元素与传递到预先定义的协议X函数的预先定义的参数的列表对应。该计算机程序产品还包括第二程序指令,该指令用于为原始接口函数定义预先形成的有效负荷元素的数组,该预先形成的有效负荷元素的数组要被包括来创建定制的协议X请求消息,以从使用远程协议X实现的服务器应用程序请求协议X,该第二指令包括用于为所定义的预先形成的有效负荷元素的数组中的每个元素导入数据的指令。而且,该计算机产品还包括用于调用原始接口函数的第三程序指令,其中该原始接口函数将所定义的预先形成并且预先导入的有效负荷元素的数组作为输入,并且通过在协议X请求消息的协议X消息报头之后顺序地插入预先形成的有效负荷元素的数组,来创建定义的协议X请求消息,并且将定制的协议X请求消息发送到远程协议X实现。该计算机产品还包括用于将来自服务器应用程序的协议X响应消息返回给客户端应用程序的第四程序指令,该协议X响应消息包含被格式化为预先形成的有效负荷元素的另一个数组的有效负荷数据,将该第四程序指令存储在计算机可读介质上。在实施方式中,在所创建的预先形成的有效负荷元素的数组中的每个元素至少包括下列之一:TLV(类型、长度、值)、AVP(属性值对)和定界文本串。在实施方式中,协议X包括使用离散有效负荷元素的任何协议。最好,第一、第二、第三和第四程序指令的每一个都被存储在计算机可读介质上。

现在参照图4,其中示出了用于修改在用于本地协议X实现的应用程序编程接口中所提供的功能的系统400。如所示的那样,系统400包括计算机基础设施402,其试图代表被维护在安全环境(即,针对其加强访问控制)中的任何类型的计算机架构。如所示的那样,基础设施402包括通常表示服务器等的计算机系统404。然而应该理解,虽然没有示出,但是在基础设施402中可以包括其他硬件和软件部件(例如,诸如应用程序服务器、管理服务器、路由器、防火墙之类的附加计算机系统)。

通常,客户端,即客户端或者引用应用程序(例如,附图标记430表示的客户端1到附图标记432表示的客户端N),可以与基础设施402接口,以访问在计算机系统404上安装的本地协议X实现414的应用程序编程接口(API)416中所提供的功能。具体地说,当已经修改和/或升级了远程协议X实现440时,用于本地协议X实现414的API 416提供用于修改或者撤消现有功能的原始接口函数。因此,针对任何客户端1(由附图标记430表示)到客户端N(432)的程序员可以与基础设施402接口,以存取和/或修改在用于本地协议X实现414的API 416中所提供的现有功能,使得客户端或者客户端应用程序可以获得由使用用于远程协议X实现440的API的另一个应用程序提供的服务,该远程协议X实现440可能与本地协议X实现414不同。类似地,管理员442可以与基础设施402接口,以支持和/或配置基础设施402,因此,在添加功能等的时候升级远程协议X实现440。通常,各方可以直接或者经由被加载于计算机化的设备(例如,个人计算机、膝上计算机、手持设备等)的接口(例如,客户端网络浏览器)、通过网络来访问基础设施402。在后一种情况中,网络可以是诸如因特网之类的任何类型的网络,或者可以是诸如局域网(LAN)、广域网(WAN)、虚拟私用网络(VPN)之类的任何其他网络。在任何情况中,可以经由直接的硬件连接(例如,串行端口),或者经由能够利用有线线路和/或无线传输方法的任何组合的可寻址连接,发生与基础设施402的通信。而且,可以使用诸如TokenRing、以太网、WiFi或其他传统通信标准之类的传统网络连接。而且,可以由传统基于TCP/IP套接字的协议提供连接。在这样的例子中,各方可以利用因特网服务提供商来建立到基础设施402的连接。应该理解,在本发明的情况下,基础设施402可以由诸如提供商444之类的一方或者由独立实体拥有和/或运营。无论如何,可以基于定购或者交费,将基础设施402的使用和这里所描述的教导提供给各方。如上面所描述的那样,在任何的情况下,管理员436都可以支持和配置基础设施402。

计算机系统或者服务器404被示出为包括CPU(下面称为“处理单元406”)、存储器412、总线410和输入/输出(I/O)接口408。进一步,计算机系统400被示出为与外部I/O设备/资源424和存储系统422通信。在所示实施方式中,存储系统422包括用于带有为本地协议X实现414提供的原始接口函数的API416的协议X文档426,以便程序员450在需要的情况下可以访问协议X文档,以修改或者撤消现有功能。通常,处理单元406执行诸如带有为本地协议X实现414提供的原始接口函数416的API之类的计算机程序代码。在执行用于本地X实现414的API 416的同时,处理单元406可以从/向存储器412、存储系统422和/或I/O接口408读取和/或写入数据。总线410提供计算机系统400中的每个部件之间的通信链路。外部设备424可以包括使得用户能够与计算机系统400交互的任何设备(例如,键盘、定点设备、显示器等),和/或者能够使得计算机系统400与一个或多个其他计算设备进行通信的任何设备(例如,网卡、调制解调器等)。

计算机基础设施40仅仅是用于实现本发明的计算机基础设施的各种类型的示例。例如,在一种实施方式中,计算机基础设施402可以包括通过网络进行通信以执行本发明的各种过程步骤的两个或者更多的计算机设备(例如,服务器集群)。而且,计算机系统400仅仅是可以包括大量硬件组合的各种可能的计算机系统的代表。就这方面来说,在其他实施方式中,计算机系统400可以包括具有用于执行特定功能的硬件和/或计算机程序代码的特殊目的计算产品、包括特殊目的和通用目的硬件/软件的组合的任何计算产品等。在每种情况中,可以分别使用标准编程和工程技术来创建程序代码和硬件。而且,处理单元406可以包括单个处理单元,或者在一个或多个位置上(例如在客户端和服务器上)跨越一个或多个处理单元分布。类似地,存储器412和/或存储系统422可以包括位于一个或多个物理位置上的各种类型的数据存储和/或传输介质的任何组合。进一步,I/O接口408可以包括用于与一个或多个外部设备424交换信息的任何系统。再进一步,应该理解,在计算机系统400中可以包括一个或多个附加的构件(例如,没有在图4中示出的系统软件、算术协处理器单元等)。类似地,应该理解,一个或多个外部设备424(例如,显示器)和/或存储系统422可以被包含在计算机系统404内,而不是如图所示的那样位于外部。

存储系统422可以是能够存储诸如提供用于修改或者撤消由本地协议X实现414所提供的现有功能的附加指南的协议X文档426之类的信息或者数据的任何类型的系统(例如,数据库)。就这方面来说,存储系统422可以包括诸如磁盘驱动器或者光盘驱动器之类的一个或多个存储设备。在另一种实施方式种,存储系统422包括跨越例如局域网(LAN)、广域网(WAN)或者存储域网络(SAN)(未示出)分布的数据。虽然没有示出,但是,可以将诸如高速缓冲存储器、通信系统、系统软件之类的附加构件合并到计算机系统400中。

已经为了图示和描述的目的呈现了本发明的特定实施方式的上面描述。它们不试图将本发明穷尽或者限制到所公开的具体形式,而且很明显,根据上面的教导,许多修改和变型都是可以的。选择并且描述了这些实施方式以最好地解释本发明的原理及其实际应用,从而使得本领域的技术人员能够最好地利用本发明和带有适合于所考虑的具体使用的各种改进的各种实施方式。应该由所附权利要求及其等效物来限定本发明的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号