Web服务中介体的制作方法

文档序号:7690779阅读:130来源:国知局
专利名称:Web服务中介体的制作方法
技术领域
本发明一般涉及web service (web服务),更具体地,涉及使用代理作为 web服务和终端用户应用程序之间的中介体。
背景技术
近来,诸如SOAP (简单对象访问协议)、WSDL (网页服务描述语言)、 XML-RPC (可扩展标识语言一远程方法调用)等新web服务工具的可用性已 经使得复杂的web服务功能性迅速发展和进步。在这类工具可用之前,花费 大量时间、大量编程团队和巨大的金融投资来幵发诸如在线备份、中心排队、 在线产品定价、图像存储和恢复以及在线搜索的大量web服务方案。今天, 由于由这些新工具使得能够简化开发,因此终端用户可获得更多的web服务。通常期望软件应用程序的发行商能够在他们的应用程序内提供这些web 服务。由诸如Amazon和Google公司提供的这些web服务一般要求客户具有 唯一的标识符("ID")和包括其中或用于标记服务调用的保密密钥。对于软件 发行商要求使用他们产品的上百万顾客的每一个获得对于提供商他们自己的 web服务账户是不切实际的。从商业的观点也是不理想的,由于为了市场的目 的,软件应用程序提供商可能希望他们的顾客认为web服务是应用程序的部 分。一种解决方案是软件发行商获得特定web服务的单个密钥,并且使用该 密钥从每个顾客的计算机上的应用程序的每个示例调用该服务。遗憾的是,在 应用程序的每个拷贝中包括该密钥将使得不可能以保持机密的方式来保证该 密钥的安全。由于对web服务的每个调用通常产生费用,发行商当然不希望 他们的密钥被公众所获得。如果这种情况发生,不诚实的多方将使用发行商的 密钥,用发行商的花费,从发行商的软件的外部环境调用该web服务。此外,使用来自应用程序内的web服务包括在应用程序和web服务之间 交换数据。由于发行商对该应用程序负责,发行商会期望能够过滤这类数据,以确保其是安全的或者在需要时增加服务。需要允许软件发行商调用来自他们的应用功能程序内的web服务的方法、计算机可读介质和计算机系统,而不会危及他们的密钥的安全性。如果发行商可以过滤他们的应用程序和web服务之间交换的内容也是期望的。 发明内容代理作为应用程序和web服务之间的接口 。每个应用程序使用由发行商分 配给与代理的接口的唯一的ID和密钥。代理本身使用单个的、真实的ID/密 钥对,用于调用实际的web服务。因为只有代理具有真实的web服务密钥, 因此该密钥保持安全和机密。代理接收由运行在终端用户的计算机上的应用程序做出的web服务请求。 代理被配置为使用真实的web服务使用的相同的定义良好的应用程序编程接 口 ("API")来处理这些web服务请求。由应用程序使用顾客唯一的软件发行 商产生的ID/密钥进行对web服务的调用。然后代理使用软件发行商自己真实 的ID/密钥对,进行对真实的web服务对应的调用,并且将结果返回应用程序。代理的使用还允许过滤API输入和输出(参数和/或数据),例如,保证终 端用户可以只访问授权他们可以看的信息。此外,代理可以提供增值服务,比 如扫描数据的恶意代码、附加认证或数据的认可,和/或按要求的其它过滤操 作。这些机制可以用于过滤任何web服务的输入和输出。发明内容和下面的详细说明中描述的特征和优势不是所有都包括的,尤其 是,考虑到附图、说明书及其权利要求书,对于相关领域的普通技术人员来说, 很多附加的特征和优势是显而易见的。此外,应该指出,说明书中使用的语言 已经主要地为了可读性和指导的目的而进行选择,并且没有选择描绘或限制本 发明主题,采用必要的权利要求书来确定发明主题。


图1是表示根据本发明一些实施方式的web服务代理的操作的方框图; 图2是表示根据本发明一些实施方式的密钥对产生工具的操作的方框图; 图3是表示根据本发明一些实施方式web服务输入和输出的过滤的方框图。附图只是为了举例的目的描述本发明的实施方式。本领域的技术人员从 下面的讨论中容易理解,在不脱离在此描述的本发明的原理的情况下,可以采 用在此所示的结构和方法的可供选择的实施方式。
具体实施方式
图1示出了根据本发明的一些实施方式的web服务代理101,其作为web 服务103和应用程序105之间的接口。应该理解,虽然图l所示的web服务 代理101为单独的实体,在此使用的术语"web服务代理"101指可以作为软 件、硬件、固件或任何这些组合实现的功能的集合。在组件作为软件实现的情 况下,可以作为单机程序实现,并且还可以以其它方式实现,例如作为大程序 的一部分、作为多个单独的程序、作为核可加载模块、作为一个或多个设备驱 动程序或作为一个或多个静态或动态链接库。如图1所示,代理从终端用户应用程序105为web服务103接收请求107。 每个应用程序105具有唯一的ID/密钥对109,其或者包括在请求107中,或 者用于适当的标记该请求。下面结合图2更详细的讨论这些应用程序ID/密钥 对109的分配。web服务代理101检査接收的请求107。代理判断是否每个接收的请求107 来源于被授权进行该特定web服务请求107的合法的终端用户应用程序。典 型地,代理在它的权限下保持终端用户应用程序105的列表等,他们的分配的 ID/密钥对109,和允许他们访问的web服务103。如果请求107是有效的, web服务代理101用适当的真实的web服务ID/密钥对113向目标web服务 103转发重新打包(或重新标记)的请求lll。web服务代理101从向其发送重新打包的请求111的web服务103接收 对应的响应115。然后web服务代理101向进行初始请求107的适当的终端用 户应用程序105发送接收的响应115。如下结合图3所详细解释,web服务代 理101还可以按要求过滤、重新打包和/或重新标记响应115。如图1所示, web服务代理101起到真实的web服务ID/密钥对113的保持者和由终端用户 应用程序105进行的请求107的验证者二者的作用。应该理解,web服务代理101可以是集中式或分布式,并且可以运行在一 个或多个服务器、客户端或任何其他类型的计算设备上。进一歩应该理解,讨论中的web服务103具有定义良好的应用程序接口 (API),因此应用程序105 可以容易地产生到此的请求107,并且代理可以产生对应的重新打包或重新标 记的请求111。例如,使用WSDL、 SOAP、或XML-RPC的web服务103 (例 如,Amazon和Google web服务)具有定义良好的API。现在转向图2,示出了根据本发明的一些实施方式的ID/密钥对产生工具 201。应该理解,虽然ID/密钥对产生工具201表示为在代理101内例示的单个 实体,ID/密钥对产生工具201像web服务代理101—样,表示功能的集合。 产生工具201产生唯一的ID/密钥对109由终端用户应用程序103使用。终端 用户应用程序ID/密钥对109可以属于终端用户对应用程序发行商现有的账 户,或者可以是,例如,在安装或第一次使用时随机产生或分配。在一些实施方式中,对于所有web服务103,给每个终端用户应用程序 105分配单个ID/密钥对109。在其他实施方式中,对于每个web服务103, 给应用程序105分配不同的ID/密钥对109。两种方法,这些ID/密钥对109只 是在web服务代理101和终端用户105之间使用。根据web服务所期望的请 求107的形式,终端用户ID/密钥对109可以或者包括在请求107本身之中, 或者用于在适当的时候标记请求107。应该理解,在此使用的术语"ID/密钥对"指由单独的web服务103要求 的无论什么类型的识别和/或检验数据。同样地,即使在web服务103要求这 类数据为除了标识符和密钥字面配对之外的形式的情况下(例如,只有密钥、 用户名和密码、 一对密钥等),在此使用的术语"ID/密钥对"仍然包含这类方案。如图3所示,web服务代理101可以按要求过滤来自应用程序105的重新 打包和/重新标记请求107以及来自web服务103的响应115。具体要执行的 过程取决于讨论中的web服务103,并且取决于提供什么增值服务,如果存 在的话。例如,代理101接收的请求107被重新打包和/或重新标记,从而他 们成为目标web服务103期望的格式。可以按要求对从web服务103接收回 来的响应数据115扫描恶意代码、压縮、加密、屏蔽内容、或者过滤。然后过 滤的响应301被发送到适当的应用程序105。重新打包、重新标记和过滤数据 的实现机制对于相关领域的普通技术人员是公知的,并且他们在本发明上下文 内的应用程序对于按照本说明书的技术水平的那些技术人员是显而易见的。例如,扩展样式单标记语言(XSL)或配置文件可以用于按要求转换和过滤每个web服务103的输入和输出。为了阐明本发明的实施方式的操作,描述了使用web服务代理101作为 在线备份终端用户应用程序105和Amazon的简单存储服务(S3) (web服务 103的一个示例)之间的中介体。在线备份应用程序105的发行商建立S3账户,并且获得真实的API ID 和保密密钥113。密钥对产生工具201设计为使用S3-ID/密钥对113来产生终 端用户ID/密钥对109。在线备份程序105在终端用户站点的安装过程中,连 接代理101,并且产生工具201为安装的应用程序105发布ID/密钥对109 (例 如,ID=123、密钥二ABC)。在其操作的过程中,安装的终端用户应用程序105用它分配的ID/密钥对 109向代理101发布请求107。由代理101过滤和重新打包请求107。然后代 理向Amazon web服务103发送过滤的请求111。由代理101接收来自web服 务103的响应115,在返回到终端用户应用程序105之前过滤和重新打包。为了更好的说明可能的过滤活动,提供了 S3的上下文内一些具体的示例。 在一个实施方式中,当存储文件被发送到或从用户应用功能程序105接收,代 理101可以修改文件名为,例如"123-<原始文件名>"。然后代理101可以基 于分配给各种终端用户105的存储限额,为所有名为123-*的文件执行大小限 制。作为对上述示例的扩展,当终端用户105浏览文件时,代理101可以过 滤提供的查看以只包括由"123-"开始的文件。为了可读性,代理可以从可由 终端用户105查看的数据剥离123-标示。此外,当恢复或删除文件时,终端用 户105只能访问名为123-*的那些文件。当然,这些只是可能的过滤操作的示 例。其它示例对于根据本说明书的相关领域的普通技术人员是显而易见的。发行商还可以对于想要使用服务103的第三方每次交易时收取少量费用, 使发行商在web服务103中成为可信的中介体通信。熟悉本领域的技术人员应该理解,在没有脱离本发明的精神或本质特征 的情况下,可以以其它特定形式实现本发明。同样,部分、模块、代理、管理 员、组件、属性、方法学和其它方面的特定的命名和区分不是强制的或有意义 的,并且实现本发明或其特征的机制可以具有不同的名称、区分和/或格式。此外,对于一个相关领域的普通技术人员显而易见的是,本发明的部分、模块、 代理、管理员、组件、属性、方法学和其它方面可以作为软件、硬件、固件或 这三者的任意组合实现。当然,在本发明的组件作为软件实现的情况下,该组 件可以作为脚本、作为单机程序、作为大程序的一部分、作为多个单独的脚本 和/或程序、作为静态或动态链接库、作为核可加载模块、作为设备驱动程序 和/或以每一种和任何其它目前或将来对计算机编程领域的技术人员公知的方 法。此外,本发明绝不限制于以任何具体编程语言、或对于任何具体操作系统 或环境中实现。此外,对于相关领域的普通技术人员显而易见的是,本发明整 体或部分以软件实现的情况下,其软件组件可以作为计算机程序产品存储在计 算机可读介质上。任何形式的计算机可读介质可以用于这种环境,比如磁或光 存储介质。此外,本发明的软件部分可以在任何可编程计算设备的内存内例示 (例如作为目标代码或可执行映像)。因此,本发明的公开目的在于举例说明, 而不是限制本发明的范围,该范围在下面的权利要求书中阐明。
权利要求
1、一种用于向应用程序提供web服务的计算机实现的方法,所述方法包括以下步骤从至少一个应用程序接收至少一个对于至少一个web服务的请求,每个接收的请求与应用程序标识符/密钥对相关;使至少一个接收的请求与它的应用程序标识符/密钥对无关,并且使其与合适的、真实的、web服务标识符/密钥对关联;向至少一个web服务发送至少一个请求;从至少一个web服务接收至少一个响应;以及向合适的应用程序发送至少一个接收的响应。
2、 根据权利要求1所述的方法,其特征在于,还包括.-对于至少一个接收的请求,判断是否接收的请求来源于被授权进行所述请求的合法的应用程序;以及执行由以下构成的一组歩骤中的至少一个步骤响应于判断发端应用程序被授权进行所述请求,配置对应的请求和将其发 送到web服务,并且接收响应并将其发送到应用程序;响应判断发端应用程序没有被授权进行所述请求,不向web服务发送对 应的请求;响应判断发端应用程序没有被授权进行所述请求,配置和修改对应的请求 和将其发送到web服务,并且接收响应并将其发送到应用程序;响应判断发端应用程序没有被授权进行所述请求,配置和修改对应的请求 和将其发送到web服务,接收响应,并且修改所述响应并将其发送到应用程 序;以及响应判断发端应用程序没有被授权进行所述请求,配置对应的请求和将其 发送到web服务,接收响应,并且修改所述响应并将其发送到应用程序。
3、 根据权利要求1所述的方法,其特征在于,还包括 产生至少一个应用程序标识符/密钥对;以及向至少一个应用程序分配至少一个产生的应用程序标识符/密钥对。
4、 根据权利要求3所述的方法,其特征在于,还包括执行由以下构成的一组步骤中的至少一个步骤每个应用程序产生和分配一个应用程序标识符/密钥对;以及每个web服务的每个应用程序产生和分配一个应用程序标识符/密钥对。
5、 根据权利要求1所述的方法,其特征在于,还包括 过滤至少一个接收的请求。
6、 根据权利要求5所述的方法,其特征在于,过滤至少一个接收的请求,还包括执行由以下构成的一组步骤中的至少一个歩骤 重新打包接收的请求; 重新标记接收的请求; 重新格式化接收的请求; 加密接收的请求; 压縮接收的请求; 编辑接收的请求; 向接收的请求添加数据; 扫描接收的请求的恶意代码;以及 屏蔽接收的请求的内容。
7、 根据权利要求1所述的方法,其特征在于,还包括 过滤至少一个接收的响应。
8、 根据权利要求8所述的方法,其特征在于,过滤至少一个接收的响应, 还包括执行由以下构成的一组步骤中的至少一个步骤重新打包接收的响应;重新标记接收的响应;重新格式化接收的响应;加密接收的响应;压縮接收的响应;编辑接收的响应;向接收的响应添加数据;扫描接收的响应的恶意代码;以及屏蔽接收的响应的内容。
9、 至少一种计算机可读介质,其包含用于向应用程序提供web服务的计算机程序产品,所述计算机程序产品包括用于从至少一个应用程序接收至少一个对于至少一个web服务的请求的 程序代码,每个接收的请求与应用程序标识符/密钥对相关;用于使至少一个接收的请求与它的应用程序标识符/密钥对无关,并且使 其与合适的、真实的、web服务标识符/密钥对关联的程序代码; 用于向至少一个web服务发送至少一个请求的程序代码; 用于从至少一个web服务接收至少一个响应的程序代码;以及 用于向合适的应用程序发送至少一个接收的响应的程序代码。
10、 根据权利要求9所述的计算机程序产品,其特征在于,还包括 用于对于至少一个接收的请求,判断是否接收的请求来源于被授权进行所述请求的合法的应用程序的程序代码;以及用于执行由以下构成的一组步骤中的至少一个步骤的程序代码 响应判断发端应用程序被授权进行所述请求,配置对应的请求和将其发送到web服务,并且接收响应并将其发送到应用程序;响应判断发端应用程序没有被授权进行所述请求,不向web服务发送对应的请求;响应判断发端应用程序没有被授权进行所述请求,配置和修改对应的请求 和将其发送到web服务,并且接收响应并将其发送到应用程序;响应判断发端应用程序没有被授权进行所述请求,配置和修改对应的请求 和将其发送到web服务,接收响应,并且修改所述响应并将其发送到应用程 序;以及响应判断发端应用程序没有被授权进行所述请求,配置对应的请求和将其 发送到web服务,接收响应,并且修改所述响应并将其发送到应用程序。
11、 根据权利要求9所述的计算机程序产品,其特征在于,还包括 用于产生至少一个应用程序标识符/密钥对的程序代码;以及 用于向至少一个应用程序分配至少一个产生的应用程序标识符/密钥对的程序代码。
12、 根据权利要求11所述的计算机程序产品,其特征在于,还包括用于 执行由以下构成的一组步骤中的至少一个步骤的程序代码每个应用程序产生和分配一个应用程序标识符/密钥对;以及每个web服务的每个应用程序产生和分配一个应用程序标识符/密钥对。
13、 根据权利要求9所述的计算机程序产品,其特征在于,还包括 用于过滤至少一个接收的请求的程序代码。
14、 根据权利要求13所述的计算机程序产品,其特征在于,所述用于过 滤至少一个接收的请求的程序代码还包括用于执行由以下构成的一组步骤中的至少一个歩骤的的程序代码重新打包接收的请求;重新标记接收的请求;重新格式化接收的请求;加密接收的请求;压縮接收的请求;编辑接收的请求;向接收的请求添加数据;扫描接收的请求的恶意代码;以及屏蔽接收的请求的内容。
15、 根据权利要求9所述的计算机程序产品,其特征在于,还包括 用于过滤至少 一个接收的响应的程序代码。
16、 根据权利要求15所述的计算机程序产品,其特征在于,所述用于过滤至少一个接收的响应的程序代码还包括用于执行由以F构成的一组步骤中 的至少一个歩骤的程序代码重新打包接收的响应;重新标记接收的响应;重新格式化接收的响应;加密接收的响应;压縮接收的响应;编辑接收的响应;向接收的响应添加数据;扫描接收的响应的恶意代码;以及屏蔽接收的响应的内容。
17、 一种用于向应用程序提供web服务的计算机系统,所述计算机系统包括用于从至少一个应用程序接收至少一个对于至少一个web服务的请求的 装置,每个接收的请求与应用程序标识符/密钥对相关;用于使至少一个接收的请求与它的应用程序标识符/密钥对无关,并且使其与合适的、真实的、web服务标识符/密钥对关联的装置;用于向至少一个web服务发送至少一个请求的装置; 用于从至少一个web服务接收至少一个响应的装置;以及用于向合适的应用程序发送至少一个接收的响应的装置。
18、 根据权利要求17所述的计算机系统,其特征在于,还包括 用于对于至少一个接收的请求,判断是否接收的请求来源于被授权进行所述请求的合法的应用程序的装置;以及用于执行由以下构成的一组步骤中的至少一个步骤的装置响应判断发端应用程序被授权进行所述请求,配置对应的请求和将其发送到web服务,并且接收响应并将其发送到应用程序;响应判断发端应用程序没有被授权进行所述请求,不向web服务发送对 应的请求;响应判断发端应用程序没有被授权进行所述请求,配置和修改对应的请求 和将其发送到web服务,并且接收响应并将其发送到应用程序;响应判断发端应用程序没有被授权进行所述请求,配置和修改对应的请求 和将其发送到web服务,接收响应,并且修改所述响应并将其发送到应用程 序;以及响应判断发端应用程序没有被授权进行所述请求,配置对应的请求和将其 发送到web服务,接收响应,并且修改所述响应并将其发送到应用程序。
19、 根据权利要求17所述的计算机系统,其特征在于,还包括 用于产生至少一个应用程序标识符/密钥对的装置;以及 用于向至少一个应用程序分配至少一个产生的应用程序标识符/密钥对的装置。
20、 根据权利要求17所述的计算机系统,其特征在于,还包括 用于过滤至少一个接收的请求的装置;和 用于过滤至少一个接收的响应的装置。
全文摘要
本发明描述一种web服务中介体。代理作为应用程序和web服务之间的接口。每个应用程序使用给与代理的接口分配的ID密钥对。代理本身使用真实的ID/密钥对,用于调用实际的web服务。因为只有代理具有真实的web服务密钥,因此该密钥保持安全和机密。代理可以按要求过滤web服务输入和/或输出。
文档编号H04L29/06GK101277180SQ200810089710
公开日2008年10月1日 申请日期2008年3月26日 优先权日2007年3月26日
发明者彼得·维尔容, 肖恩·库利 申请人:赛门铁克公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1