保证异步客户端服务器事务的制作方法

文档序号:7915079阅读:154来源:国知局
专利名称:保证异步客户端服务器事务的制作方法
技术领域
本发明总体上涉及改进的数据处理系统,并且特别地涉及用于提供数据安全性的计算机实现的方法。并且更具体地,本发明涉及用于保证异步客户端服务器事务的计算机实现的方法、系统和计算机可用程序产品。
背景技术
在使用一个或多个数据网络的各种数据处理系统之间频繁地交换数据。可以将一些数据处理系统视为客户端数据处理系统,这是因为它们是数据或服务的消费者。可以将其他数据处理系统视为服务器数据处理系统,这是因为它们提供所请求的数据或服务。作为客户端(即作为数据或服务的消费者)来执行的应用被称为客户端应用。作为服务器来 执行(即提供数据或服务)的应用被称为服务器应用。在数据通信中关注数据、该数据所驻留的系统以及该系统进行操作的网络的安全性。通常,通过一些安全机制来达成数据处理系统、数据处理系统的内容、该数据处理系统进行操作的网络的安全性。用户标识符(WD)和口令认证是实现数据处理环境中的安全性目标的常用方法。客户端数据处理系统和服务器数据处理系统可以使用多种协议彼此通信。发生在客户端数据处理系统和服务器数据处理系统之间的数据通信包括一系列请求和响应。彼此关联的请求和响应形成事务。目前用多种方式实现客户端服务器事务的安全性。特定协议(诸如超文本传输协议安全(HTTPS))通过使用加密和服务器数据处理系统的安全标识来达成客户端服务器事务的安全性。特定的其他事务安全机制包括使用会话标识符(会话ID)。会话ID是用于标识客户端数据处理系统和服务器数据处理系统之间的会话的标识符。典型的会话可以包括一系列事务。在一些情况中,客户端可以从服务器异步地请求数据。异步数据传输是不干扰正在进行的任务的行为而传输数据。例如,web浏览器应用可以是客户端应用。web浏览器可以从web服务器异步地请求数据,从而使得在web浏览器中正在显示的页面的行为或显示不受异步数据请求或响应的影响。异步请求也不等待对应的响应。换言之,对异步请求的响应可以在任意时间到达客户端并且被处理。客户端并不等待对异步请求的响应,而是继续从事于其他任务。异步请求是针对异步数据或服务的请求。异步客户端服务器事务是关于另一正在进行的任务而异步地发生的客户端服务器事务。异步JavaScrip和XML(AJAX)是当前用于创建并且执行异步客户端服务器事务的技术。异步客户端服务器事务在改进web应用的性能方面以及改善用户体验方面特别有用
发明内容
说明性的示例提供了一种用于保证异步客户端服务器事务的方法、系统和计算机可用程序产品。根据一个实施方式,在执行于在数据处理系统中的第一应用处接收请求。该请求包括与第二应用相关联的应用标识符和版本。如果与该第二应用的会话有效则生成服务标识符。在第一应用处生成注册表(registry)。该注册表包括关于允许该第二应用使用的服务和数据的集合的信息。基于该注册表生成目录。该目录包括该注册表的内容或者该内容的一些变形的子集。向该第二应用发送该服务标识符和该目录。根据另一实施方式,接收子请求。该子请求是异步客户端服务器事务的一部分并且包括该服务标识符。通过确定该服务标识符是否到期,该子请求是否请求根据该目录可允许的服务,该服务标识符是否与该第二应用结合使用或者通过确定它们的组合,来确定该子请求的有效性。如果该子请求有效,则响应于该子请求提供该服务。根据另一实施方式,该有效性的确定还可以将确定该目录是否过期结合到该组合中。根据另一实施方式,该服务标识符是否与该第二应用结合使用的该确定包括确定 该服务标识符是否与该第二应用的该应用标识符和该应用版本一起使用。根据一个实施方式,如果该子请求无效,则提供更新的服务标识符、更新的目录或者它们的组合。然后可以用该更新的服务标识符、更新的目录或者它们的组合来重试该子请求。根据另一实施方式,该更新的服务标识符可以是新服务标识符、包括修改的安全性特征的服务标识符、与该第一应用处的安全性特征确认(V a I i d a t i O n)标准的修改相对应的服务标识符或它们的组合。可以用该更新的服务标识符来重试子请求。该实施方式中的提供发生在结束该异步客户端服务器事务之前。根据另一实施方式,该更新的目录可以是新目录、对该目录的更新、对该目录的到期参数的修改或者它们的组合。可以用该更新的目录重试子请求。在该实施方式中,该提供发生在结束该异步客户端服务器事务之前。根据另一个实施方式,确定该服务是否需要附加认证。如果需要附加认证,则响应于对于附加认证信息的请求来接收该附加认证信息。该实施方式确定该附加认证信息是否有效。如果该附加认证信息为有效,则提供该服务。根据另一实施方式,通过使用该注册表来确定是否可允许该服务来执行根据该目录是否可允许该服务的该确定。根据另一实施方式,生成原始服务标识符。该服务标识符是该原始服务标识符的经变形版本。


现在将参考附图,仅通过示例的方式描述本发明的实施方式,其中图I描绘了可以在其中实现说明性实施方式的数据处理系统的网络的图形化表示;图2描绘了可以在其中实现说明性实施方式的数据处理系统的方框图;图3描绘了可以在其中实现说明性实施方式的数据处理环境的方框图;图4描绘了根据说明性实施方式的、用于保证异步客户端服务器事务的服务器数据处理系统配置的方框图;图5描绘了根据说明性实施方式的、用于保证异步客户端服务器事务的客户端数据处理系统的配置的方框图;图6描绘了根据说明性实施方式的、在异步客户端服务器事务内发生的事务的时序图;图7描绘了根据说明性实施方式的服务标识符和目录更新过程的方框图;图8描绘了根据说明性实施方式的、用于生成注册表、服 务标识符以及目录的过程的流程图;图9描绘了根据说明性实施方式的、用于保证异步客户端服务器事务的过程的流程图;以及图10描绘了根据说明性实施方式的、用于保证异步客户端服务器事务的另一过程的流程图。
具体实施例方式本发明认识到客户端可以在异步客户端服务器事务之下执行若干子请求。通过使用对于异步客户端服务器事务当前可用的技术,客户端可以认证服务器一次并且继而做出多个子请求,并且遍历服务器可以提供的各种服务。客户端可以获得对可能与该事务或该客户端的操作无关的服务的访问权。恶意应用可能影响合法客户端的异步客户端服务器事务,以在初始认证成功之后获得对服务器处的服务和数据的访问权。会话ID技术不足以防止这些类型的入侵。会话ID技术不尽如人意是因为在会话期间,会话ID—般保持不变,并且还易于基于其它会话参数而被猜中。其它当前可用的技术也不足以防止对无关服务和数据的访问,以及针对恶意使用而防止对异步客户端服务器事务的截取(hijack)。用于描述本发明的说明性实施方式总体上处理并且解决上述问题以及异步客户端服务器事务方面的安全相关的其它问题。说明性实施方式提供了一种用于保证异步客户端服务器事务的方法、计算机可用程序产品以及数据处理系统。关于仅作为示例的特定事务、数据、数据结构、请求以及响应来描述说明性实施方式。这种描述并非旨在限制本发明。例如,在本发明的范围内,关于AJAX事务所描述的说明性实施方式可以按照类似的方式被应用于使用另一类似技术、格式或标准的异步客户端服务器事务。此外,仅为了描述的清楚起见,关于具体的客户端数据处理系统和服务器数据处理系统和应用来描述说明性实施方式。在不脱离本发明的范围的前提下,可以关于可以充当客户端和服务器的任意类型的数据处理系统、数据、数据源或对数据源的访问来实现说明性实施方式。可以关于任意类型的应用(诸如任意类型的客户端应用、服务器应用、平台应用、独立应用或它们的组合)来实现本发明的实施方式。应用还可以包括数据对象、代码对象、封装指令、应用片段、服务以及在数据处理环境中可用的其它类型的资源。例如,Java 对象、企业Java Bean(EJB㊣)、小服务程序(servlet)或小应用程序(applet)可以是应用的表现形式,其中可以关于该应用、在该应用中或者使用该应用来实现本发明。(Java、EJB和其他Java相关术语是Oracle和/或其子公司的注册商标)。可以将说明性实施方式实现在硬件、软件或它们的组合中。本文所述的示例仅为了描述的清楚起见而使用,并且不限于该说明性实施方式。为了类似的目的将可以从本说明书想到附加的或不同的信息、数据、操作、动作、任务、活动和操纵,并且将它们构思于说明性实施方式的范围中。使用仅作为示例的具体的标识符、参数、属性、配置、代码、数据结构、文件系统、设计、架构、布局、方案和工具来描述说明性实施方式,并且实施方式不限于所述说明性实施方式。此外,在一些实例中仅为了描述的清楚起见,使用仅作为示例的特定软件工具和数据处理环境来描述说明性实施方式。可以结合其他类似或相似用途的结构、系统、应用或架构来使用说明性实施方式。本文列出的任意优点仅作为示例,并且并不旨在限于说明性实施方式。通过具体的说明性实施方式可以实现附加的或不同的优点。此外,具体的说明性实施方式可以具有某些、全部或者完全没有以上所列的优点。
参考附图,并且特别地参考图I和图2,这些附图是可以在其中实现说明性实施方式的数据处理环境的示例图。图I和图2仅是示例,并且并不旨在声称或暗示关于可以在其中实现不同实施方式的环境的任何限制。具体的实现可以基于以下的描述对所描绘的环境做出许多修改。图I描绘了可以在其中实现说明性实施方式的数据处理系统的网络的图形化表示。数据处理环境100是可以在其中实现说明性实施方式的计算机网络。数据处理环境100包括网络102。网络102是用于在数据处理环境100内的连接在一起的各种设备和计算机之间提供通信链路的介质。网络102可以包括诸如有线的、无线的通信链路或光纤线缆之类的连接。服务器104和服务器106与存储单元108 —起耦合到网络102。可以在数据处理环境100中的任意计算机上执行软件应用。此外,客户端110、112和114耦合到网络102。诸如服务器104或106,或客户端110、112或114之类的数据处理系统可以包括数据并且可以具有在其上执行的软件应用或软件工具。服务器104可以包括应用服务器105。应用服务器105可以是进行操作以对其它应用和服务进行服务的任意应用。服务器106可以包括服务107。服务107可以是函数、操作或可以操纵数据、对数据进行服务或者执行它们的组合的应用。客户端112可以包括客户端应用113。客户端应用113可以是能够根据本发明的实施方式执行异步客户端服务器事务的应用或应用的组件。可以使用有线连接、无线通信协议或其它合适的数据连接,将服务器104和106、存储单元108、以及客户端110、112和114耦合到网络102。客户端110、112和114可以是例如个人计算机或网络计算机。在所描绘的示例中,服务器104可以向客户端110、112和114提供数据,诸如引导文件、操作系统映像和应用。在该示例中,客尸端110、112和114可以是服务器104的客户端。客户端110、112和114或者它们的一些组合可以包括它们自己的数据、引导文件、操作系统映像和应用。数据处理环境100可以包括附加服务器、客户端以及未示出的其它设备。在所描绘的示例中,数据处理环境100可以是因特网。网络102可以表示使用传输控制协议/因特网协议(TCP/IP)和其它协议来彼此通信的网络和网关的汇集。在因特网的中心是主节点或主机计算机之间的数据通信链路的骨干,包括数千个用于路由数据和消息的面业、政府、教育以及其它计算机系统。当然,也可以将数据处理环境100实现为大量不同类型的网络,例如内联网、局域网(LAN)或广域网(WAN)。图I旨在作为示例,而不是作为对于不同的说明性实施方式的架构化限制。数据处理环境100可用于实现可以在其中实现说明性实施方式的客户端服务器环境以及其它用途。客户端服务器环境使得软件应用和数据能够跨网络分布,从而使得应用通过使用客户端数据处理系统与服务器数据处理系统之间的交互来运作。数据处理环境100还运用面向服务的架构,在该架构中可以将跨网络分布的、可互操作的软件组件包装在一起作为相干商业应用。参考图2,该图描绘了可以在其中实现说明性实施方式的数据处理系统的方框图。数据处理系统200是诸如图I中的服务器104或客户端110之类的如下计算机的示例,在其中可以针对说明性实施方式找到用于实现过程的计算机可用的程序代码或指令。
在所描绘的示例中,数据处理系统200运用包括北桥及存储器控制器集线器(NB/MCH) 202和南桥及输入/输出(I/O)控制器集线器(SB/ICH)204的集线器架构。将处理单元206、主存储器208以及图形处理器210耦合到北桥及存储器控制器集线器(NB/MCH)202。处理单元206可以包括一个或多个处理器,并且可以使用一个或多个异构处理器系统来实现处理单元206。在特定实现中,可以通过加速图形端口(AGP)将图形处理器210耦合到NB/MCH。在所描绘的示例中,将局域网(LAN)适配器212耦合到南桥及I/O控制器集线器(SB/ICH)204。通过总线238,将音频适配器216、键盘和鼠标适配器220、调制解调器222、只读存储器(ROM) 224、通用串行总线(USB)以及其它端口 232和PCI/PCIe设备234耦合到南桥及I/O控制器集线器204。通过总线240,将硬盘驱动器(HDD) 226和⑶-ROM 230耦合到南桥及I/O控制器集线器204。PCI/PCIe设备可以包括例如以太网适配器、插入卡和用于笔记本计算机的PC卡。PCI使用卡总线控制器,而PCIe不使用。ROM 224可以是例如闪速二进制输入/输出系统(BIOS)。硬盘驱动器226和⑶-ROM 230可以使用例如集成驱动电子(IDE)或串行高级技术附件(SATA)接口。可以将超I/0(SI0)设备236耦合到南桥及I/O控制器集线器(SB/ICH)204。操作系统运行在处理单元206上。该操作系统协调并且提供对图2中的数据处理系统200内的各种组件的控制。操作系统可以是可商购的操作系统,诸如Microsoft Windows⑧(Microsoft和Windows是微软公司在美国及其它国家的商标)、或Linux⑩(Linux是Linus Torvalds在美国及其它国家的商标)。面向对象的编程系统(诸如Java 编程系统)可以结合该操作系统来运行,并且提供从执行于数据处理系统200上的Java 程序或应用到该操作系统的调用。操作系统的指令、面向对象的编程系统以及应用或程序的指令位于诸如硬盘驱动器226之类的存储设备上,并且可以加载到主存储器208中以用于由处理单元206执行。可以由处理单元206使用计算机实现的指令来执行说明性实施方式的过程,其中该计算机实现的指令可以位于诸如主存储器208、只读存储器224之类的存储器中,或位于一个或多个外围设备中。
图I-图2中的硬件可以根据实现而变化。除了图I-图2中所描绘的硬件之外,或者替代图I-图2中所描绘的硬件,可以使用其它内部硬件或外围设备,诸如闪存、等效的非易失性存储器或光盘驱动器等等。另外,可以将说明性实施方式的过程应用于多处理器数据处理系统。在一些说明性示例中,数据处理系统200可以是个人数字助理(PDA),其一般被配置为用闪存以提供用于存储操作系统文件和/或用户生成的数据的非易失性存储器。总线系统可以包括一个或多个总线,诸如系统总线、I/O总线以及PCI总线。当然,可以使用任意类型的如下通信结构或架构来实现总线系统,其中该通信结构或架构提供附着到该结构或架构的不同组件或设备之间的数据的传输。通信单元可以包括一个或多个用于发射和接收数据的设备,诸如调制解调器或网络适配器。存储器可以是例如主存储器208或高速缓冲存储器,诸如在北桥及存储器控制器集线器202中找到的高速缓冲存储器。处理单元可以包括一个或多个处理器或CPU。图I-图2中所描绘的示例以及上述示例并不意味着暗示架构化限制。例如,除了 采取PDA形式之外,数据处理系统200还可以是平板计算机、膝上计算机或电话设备。参考图3,该附图描绘了可以在其中实现说明性实施方式的数据处理环境的方框图。客户端数据处理系统302可以类似于图I中的客户端112。客户端应用304可以类似于图I中的客户端应用113。服务器数据处理系统306可以类似于图I中的服务器104。应用服务器308可以类似于图I中的应用服务器105。正如当前使用的异步客户端服务器事务技术那样,客户端应用304可以向应用服务器308做出初始异步请求,该初始异步请求之后跟随一个或多个子请求。该子请求可以用于利用授权服务310、访问授权数据312或者这两者。作为示例,恶意应用314可以是在客户端数据处理系统302上的如下应用,该应用可能骗取客户端应用304与应用服务器308之间的事务信息并且做出可以允许恶意应用314访问受保护服务316、受保护数据318或者这两者的子请求。注意,恶意应用314可以是具有任意目的但是以该方式表现的任意应用。事实上,在特定环境下,客户端应用302自身可以作为恶意应用314表现并且以该方式访问受保护的资源。授权服务310和授权数据312可以是可以由在给定的异步客户端服务器事务之下的客户端应用302合法访问的任意服务或数据。受保护服务316和受保护数据318是在服务器数据处理系统306上可用的、可能超出给定异步客户端服务器事务的范围的服务或数据的示例。参考图4,该图描绘了根据说明性实施方式的、用于保证异步客户端服务器事务的服务器数据处理系统配置的方框图。可以使用图3中的服务器数据处理系统306实现服务器数据处理系统402。可以使用图3中的应用服务器308实现应用服务器404。应用服务器404利用认证引擎406结合异步客户端服务器事务来认证可能从客户端应用接收的初始请求。通常,初始请求包括与客户端应用相关联的应用标识符以及客户端应用的应用版本。该初始请求还可以包括任意用户认证凭证,诸如用户标识符和口令。根据说明性实施方式,认证引擎406认证客户端应用,如果存在任何用户则认证用户。在成功的认证之后,认证引擎406向应用服务器404提供使得应用服务器404能够创建注册表408的信息。注册表408是客户端应用被授权在服务器数据处理系统402上执行的一系列活动。例如,注册表408可以包括在服务器数据处理系统402上可用的、已认证客户端应用可以访问的服务集合的标识符或参数。服务集合是一个或多个服务。作为另一示例,注册表408可以包括指定该已认证的客户端应用可以查询的数据库的部分的参数。作为另一示例,注册表408可以包括否定参数或标识符,即禁止该已认证客户端应用使用的服务和数据的集合的参数或标识符。服务和数据的集合是一个或多个服务或数据。仅为了说明性实施方式的清楚起见描述了注册表408中的这些示例条目,而不是为了限制本发明。在本发明的范围内,可以将许多其它类型的类似用途的信息记录在注册表408中。在认证客户端应用之后,认证引擎406结合应用服务器404生成服务标识符(服务ID)410。服务标识符410是与异步客户端服务器事务或异步客户端服务器事务的一部分 相关联的唯一标识符。应用服务器404响应于客户端应用的初始请求,向已认证客户端应用返回服务标识符410和目录412。目录412包括注册表408的内容的子集。在一个实施方式中,目录412可以包括以与注册表408中的格式或数据结构不同的格式或数据结构的注册表408的某些或全部信息。换言之,目录412的内容可以类似于注册表408的某些或全部内容,或者是注册表408的某些或全部内容的变形,如由方框414所示。方框414表示注册表408的可用于构造目录412的某些或全部内容。在一个实施方式中,方框414的内容可以格式不变地出现在目录412中。在另一实施方式中,当方框414的内容出现在目录412中时,该内容可以通过诸如压缩、加密或重组而被变形。在一个实施方式中,服务标识符410可以与特定安全性特征相关联。例如,服务标识符410可以仅在异步客户端服务器事务期间的预定时期内是有效的,并且此后必须被更新。作为另一示例,服务标识符410可以仅对于在异步客户端服务器事务中的预定数量的子请求有效,并且此后必须被更新。在本发明的范围内,可以将任意其它安全性特征(诸如可能适用于特定实现的加密)应用于服务标识符410。关于图6和7来详细描述服务标识符410的操作和属性。在一个实施方式中,目录412可以本质上是动态的。换言之,在针对其创建目录412的异步客户端服务器事务期间,目录412的内容可以改变。例如,在一个实施方式中,目录412可以仅对于预定时期保持有效并且可以此后必须被刷新。作为另一示例,在另一实施方式中,目录412可以仅包括足以用于特定类型或数量的预期子请求的信息,并且可以此后必须用附加类型或数量的子请求的信息进行刷新或更新。目录412的这些示例配置并不旨在限制本发明。在本发明的范围内可以将可以适合于特定实现的任意其它安全性特征(诸如加密)应用于目录412。关于图6和图7来详细描述目录412的操作和属性。仅作为示例配置将应用服务器404、认证引擎406和注册表408示出为在服务器数据处理系统402内。本发明的实施方式的实现可以将这些组件以任意组合在本发明的范围内的数据处理环境中跨不同的数据处理系统分布。
参考图5,该图描绘了根据说明性实施方式的、用于保证异步客户端服务器事务的客户端数据处理系统的配置的方框图。可以使用图3中的客户端数据处理系统302来实现客户端数据处理系统502。可以使用图3中的客户端应用304来实现客户端应用504。恶意应用506可以类似于图3中的恶意应用314。可以使用图4中的服务标识符410来实现服务标识符508。可以使用图4中的目录412来实现目录510。正如关于图4所述的那样,客户端应用504可以向应用服务器发送对异步客户端服务器事务的初始请求。客户端应用504可以包括与该请求中的客户端应用504相关联的应用标识符512和应用版本514。可选地,如果存在用户,则客户端应用504还可以包括与用户相关联的认证信息。当在应用服务器处在使用该请求的认证信息成功地认证之后,响应于该请求,客户端应用504接收服务标识符508和目录510。在一个实施方式中,客户端应用504还可以接收当前使用的标识符和信息,诸如会话标识符。如上所述,恶意应用506可能能够猜到或骗取这种当前使用的标识符和信息。然而,有利的是,在继续异步客户端服务器事务中的服务标识符508和目录510的使用的结 构和方式不易于被恶意应用506以类似地方式使用。在一个实施方式中,在子请求中使用应用标识符512、应用版本514、服务标识符508和目录510的内容的组合。与本领域中的固定或预编码子请求相反,在根据实施方式动态创建子请求时使用该组合。子请求的动态构造,以及应用标识符512、应用版本514、服务标识符508和目录510的内容的组合允许本发明的实施方式实现异步客户端服务器事务以及其中的子请求的安全性,该安全性用当前可用的技术对于异步客户端服务器事务不可能实现。参考图6,该图描绘了根据说明性实施方式的、发生在异步客户端服务器事务内的事务的时序图。可以使用图5中的客户端应用502来实现客户端应用602。可以使用图4中的应用服务器404来实现应用服务器604。应用服务器组件606可以是由应用服务器604利用的应用、引擎或组件。例如,在一个实施方式中,应用服务器组件606可以是图4中的认证引擎406与当前可用的应用服务器应用的特定其它现有组件的组合。应用服务器组件606可以是提供不同功能的不止一个应用服务器组件。在一个示例实施方式中,应用服务器604可以向客户端应用602呈现登录对话框607。登录对话框607可以是可选的,并且客户端应用602可以主动地或者响应于登录对话框607,在请求608中提供认证凭证。认证凭证可以包括与客户端应用602相关联的应用标识符、与客户端应用602相关联的应用版本、与请求608相关联的标识符以及与用户或账户相关联的一个或多个认证凭证(如果有的话)的组合。应用服务器604使用请求608中的认证凭证来验证与客户端应用602的会话。在一个实施方式中,应用服务器604可以向应用服务器组件606发送认证会话消息610,并且接收返回的认证消息以完成该认证。应用服务器604可以使用应用服务器组件606来生成服务注册表612。在步骤612中生成的服务注册表可以被用作图4中的注册表408,并且可以包括服务的描述以及通过应用服务器604可用的数据或其它资源。应用服务器组件606生成服务标识符614。在步骤614中生成的服务标识符可以被用作图4中的服务标识符410和图5中的服务标识符508。应用服务器604向客户端应用602发送响应616。一个或多个消息可以形成响应616。响应616向客户端应用602传达服务标识符和目录。响应616中的目录可以是在步骤612中生成的服务注册表的子集。响应616中的目录可以被用作图4中的目录412和图5中的目录510。客户端应用602可以向应用服务器604发送一个或多个子请求。针对服务或数据的子请求618是一个这种子请求。客户端应用602使用在响应616中接收的服务标识符和目录来动态地构造子请求618。例如,在一个实施方式中,子请求618可以包括仅对于在响应616中所接收的目录中发生的该类服务的请求。在一个实施方式中,子请求618还可以包括客户端应用602的应 用标识符、客户端应用602的应用版本、在响应616中接收的服务标识符或者这种服务标识符的变形。因此,与当前对于异步客户端服务器事务所使用的技术不同,本发明的实施方式通过在需要时,使用来自目录和服务标识符(这两者可随时间而改变)的信息创建子请求来保证异步客户端服务器事务。以这种方式创建子请求使得子请求是动态的,并且抵抗恶意应用的骗取和试错攻击。应用服务器604诸如通过使用应用服务器组件606来执行服务标识符到期检查620。实施方式可以在每个子请求618之后执行检查620。另一实施方式可以根据选择的策略或算法,在若干子请求之后执行检查620。在该实施方式中仅作为示例使用基于时间的期满的服务标识符并且其并不限制本发明。在本发明的范围内,在步骤620中可以用适当方式检查与服务标识符相关的任意安全性特征。如果服务标识符尚未到期,则应用服务器可以向应用服务器组件606发送对于在子请求618中请求的服务或数据的请求622。应用服务器604可以向应用服务器组件606发送对于必须使用服务标识符、应用标识符以及应用版本的组合来执行的任意附加数据处理的其他请求624。例如,请求624可以用于登录子请求618。作为另一示例,请求624可以用于递增服务标识符的到期计数。应用服务器604收集626由客户端应用602请求的数据或服务。应用服务器604向客户端应用602发送628数据或服务。在由实施方式以此方式进行保证的异步客户端服务器事务中,可以多次发生图6的时序图的一些步骤。例如,如果检查620检测到子请求618中的服务标识符已到期,则应用服务器604可以发送包括更新的服务标识符、刷新的目录或这两者的另一响应616。仅为了描述的清楚起见作为示例而这样将活动描述为在应用服务器组件606处执行。在本发明的范围内,可以在应用服务器604处或一个或多个应用服务器组件606处执行这种活动。参考图7,该图描绘了根据说明性实施方式的服务标识符和目录更新过程的方框图。客户端应用702可以类似于图6中的客户端应用602。应用服务器704可以类似于图6中的应用服务器604。应用服务器组件706可以类似于图6中的应用服务器组件606。在根据图7的一个示例实施方式中,客户端应用702向应用服务器704发送初始请求708。应用服务器组件706生成注册表以及服务标识符。应用服务器704向客户端应用702返回基于该注册表的目录以及服务标识符。客户端应用702使用目录和服务标识符以及与客户端应用702和异步客户端服务器事务相关联的其它信息,动态地构造子请求。客户端应用702在进一步的异步客户端服务器事务中,发送一个或多个这种动态地构造的子请求。在一些时间点上,服务标识符在客户端应用702处到期或者变得无效。例如,服务标识符可以在异步客户端服务器事务完成之前到期,从而迫使使用多个服务标识符来完成异步客户端服务器事务。作为另一示例,服务标识符可以不管异步客户端服务器事务是否已完成,在特定时间处到期。应用服务器704可以按照适合于实现的任意方式来验证在任意组合中的服务标识符和其它凭证。例如,在一个实施方式中,应用服务器组件706可以验证在每个子请求中 的服务标识符。在另一实施方式中,可以每隔预设时间验证服务标识符。在另一实施方式中,可以与另一认证凭证一起验证服务标识符。服务标识符的验证可以包括适用于实现的任意类型的验证。例如,一个验证可以检查服务标识符的完整性以确定服务标识符是否被修改。另一示例验证可以简单地检查服务标识符的到期。另一示例验证可以检查以确定其它有效的服务标识符是否正在与如下相同应用标识符或不同应用标识符一起使用,所述相同应用标识符与该服务标识符在发布时相关。在一个实施方式中,客户端应用702用到期的服务请求发送动态构造的子请求。到期的服务标识符在应用服务器组件706处验证失败。如果更新有必要,则应用服务器704向客户端应用702发送新的或更新的服务标识符。例如,如果客户端应用702已经花费了比预设时间量更多的时间量来完成异步客户端服务器事务,则应用服务器704可以不发送更新的服务标识符。在客户端应用702处的目录可以类似地到期、变得过期或者变得无效。如果有必要,则应用服务器704可以类似地更新或刷新目录。客户端应用702使用更新的服务标识符、更新的目录或这两者,动态地构造后续的子请求。客户端应用702与应用服务器704之间的消息收发和通信可以按照该方式继续,直到结束被保证的异步客户端服务器事务为止。参考图8,该图描绘了根据说明性实施方式的、用于生成注册表、服务标识符以及目录的过程的流程图。可以在服务器应用中(诸如在图7中的应用服务器704和应用服务器组件706的组合中)实现过程800。过程800通过接收请求来开始(步骤802)。步骤802中的请求可以是简单地标识应用的初始请求,或者可以是对于服务或数据的请求。过程800检测来自步骤802的请求的应用标识符和应用版本(步骤804)。如果过程800确定与该请求的发送方的连接是可接受的(未示出)则过程800生成服务标识符(步骤806)。过程800还生成请求的发送方被允许使用的服务、数据或服务和数据的组合的注册表(步骤808)。过程800用服务标识符以及来自该请求的任意其他认证凭证来更新注册表(步骤810)。过程800基于注册表生成服务和数据的目录(步骤812)。过程800响应于步骤802的请求,发送服务标识符和目录(步骤814)。过程800此后结束。参考图9,该图描绘了根据说明性实施方式的、用于保证异步客户端服务器事务的过程的流程图。可以在服务器应用中(诸如在图7中的应用服务器704、应用服务器组件706或者它们的组合中)实现过程900。过程900通过接收包括了应用标识符、应用版本以及服务标识符的组合的请求来开始(步骤902)。步骤902的请求可以类似于图7的子请求。服务标识符可以类似于在图8中的步骤814中发送的服务标识符。过程900确定服务标识符是否到期或有效,是否必须更新请求的发送方处的目录,或者这两者(步骤904)。如果过程900确定服务标识符已到期,或者在发送方处的目录已过期(步骤904的“是”路径),则过程900确定是否更新服务标识符、目录或这两者(步骤 906)。
如果过程900确定不更新服务标识符、目录或这两者(步骤906的“否”路径),则过程900可以记录该请求(步骤908)。过程900还可以向该请求的发送方发送错误消息(步骤910)。过程900此后结束。如果过程900确定更新服务标识符、目录或这两者(步骤906的“是”路径),则过程900可以生成新服务标识符,或者延长现有服务标识符的到期时期(步骤912)。如果需要,过程900还可以生成新目录、生成对于现有目录的更新或者延长现有目录的有效性(步骤914)。过程900响应于步骤902的请求,根据需要发送新的或更新的服务标识符、新的或更新的目录或者这两者(步骤916)。此后过程900结束。如果在步骤904处,过程900确定服务标识符有效,并且目录是最新的(步骤904的“否”路径),则过程900确定与该请求的发送方的会话是否有效(步骤918)。如果过程900确定与该请求的发送方的会话无效,诸如当服务标识符或其使用无效时,或者当请求是针对不在该目录中的服务的请求时(步骤912的“否”路径),则过程900前进到步骤908。可以通过例如检查被包括在目录中的注册表的部分来确定所请求的服务在目录中。如果过程900确定与该请求的发送方的会话有效(步骤918的“是”路径),则过程900确定所请求的服务或数据是否需要附加认证(步骤920)。例如,特定服务可能需要它们自己的登录ID和口令。如果过程900确定需要附加认证(步骤920的“是”路径),则过程900通过诸如在显示器处呈现登录对话框来发送附加认证消息(步骤922)。过程900接收附加认证信息(步骤924)。过程900确定附加认证信息是否有效(步骤926)。如果附加认证信息无效(步骤926的“否”路径),则过程900前进到步骤908。如果附加认证信息有效(步骤926的“是”路径),或者如果所请求的服务不要求附加认证信息(步骤920的“否”路径),则过程900提供所请求的服务或数据(步骤928)。过程900发送根据该请求而执行的服务的结果或操纵的数据(步骤930)。此后过程900结束。可以向该请求的发送方或者向另一应用或设备发送结果,而不脱离本发明的范围。参考图10,该图描绘了根据说明性实施方式的、用于保证异步客户端服务器事务的另一过程的流程图。可以在客户端应用(诸如图7中的客户端应用702)中实现过程1000。
过程1000通过发送请求来开始(步骤1002)。该请求可以类似于在图8中的过程800的步骤802中接收的请求。如果根据请求的接收方(未显示),该请求有效,则过程1000接收服务标识符和目录(步骤1004)。过程1000使用服务标识符和目录,动态地构造针对服务或数据的一个或多个子请求(步骤1006)。过程1000还可以包括子请求中的附加认证凭证。过程1000发送动态创建的子请求(步骤1008)。响应于步骤1008的子请求,过程1000可以接收所请求的服务或数据(步骤1010)、更新的服务标识符或目录(步骤1012)以及错误消息(步骤1014)的组合。此后过程1000结束。仅作为示例描述了上述方框图中的组件和流程图中的步骤。已经为了描述的清楚起见选择了组件和步骤,并且该组件和步骤并不限制于本发明的说明性实施方式。例如,具体的实现可以组合、省略、进一步细分、修改、增大、减小或备选地实现任意组件或步骤,而不会脱离说明性实施方式的范围。此外,在本发明的范围内,可以按照不同的次序执行上述过程的步骤。 因此,在说明性实施方式中提供了一种用于保证异步客户端服务器事务的计算机实现的方法、装置和计算机程序产品。通过使用本发明的实施方式,可以用如下方式保证异步客户端服务器事务,该方式使得在异步客户端服务器事务期间不能访问无关服务。将异步客户端服务器事务的请求者限于提供商确定可允许的特定服务和数据。本发明还为请求者提供了异步客户端服务器事务能力,以使用提供商提供的信息来动态地构造异步客户端服务器事务内的请求。根据本发明的实施方式,请求者自己的信息、提供商供应的信息以及可能基于其来请求服务和数据的限制的组合保证异步客户端服务器事务。根据本发明的实施方式的服务标识符、服务标识符与其它标识符的组合以及服务标识符的到期和更新的性质使得异步客户端服务器事务能够抵抗骗取和试错攻击。本发明的实施方式提供了可以根据需要改变或更新的灵活的安全配置。本发明的实施方式还提供了不需要附加硬件并且可以工作在大部分现有数据处理系统的现有硬件-软件配置中的安全机制。本发明的实施方式可以与现有认证应用和组件协作。该实施方式还可以与在特定数据处理环境中可能使用的现有政策基础设施协作。本发明的可以采用全部软件实施方式或者包括硬件元件和软件元件这两者的实施方式的形式。在优选实施方式中,将本发明实现在软件或程序代码中,其中该软件或程序代码包括但不限于固件、常驻软件和微代码。此外,本发明可以采用可从计算机可用或计算机可读介质访问的计算机程序产品的形式,其中该计算机可用或计算机可读介质提供用于由计算机或任意指令执行系统使用或者与计算机或任意指令执行系统结合使用的程序代码。出于本描述的目的,计算机可用或计算机可读介质可以是可以包括、存储、传达、传播或传输用于由指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合使用的程序的任意有形装置。介质可以是电子、磁、光、电磁、红外或半导体系统(或装置或设备)或传播介质。计算机可读介质的示例包括半导体或固态存储器、磁带、可移除计算机盘片、随机访问存储器(RAM)、只读存储器(ROM)、硬磁盘以及光盘。光盘的当前示例包括紧致盘-只读存储器(CD-ROM)、紧致盘-读 / 写(CD-R/W)和 DVD。
另外,计算机存储介质可以包括或存储计算机可读程序代码,从而使得当计算机可读程序代码在计算机上被执行时,该计算机可读程序代码的执行使得该计算机通过通信链路发送另一计算机可读程序代码。该通信链路可以使用作为例如但不限于物理的或无线的介质。适用于存储和/或执行程序代码的数据处理系统将包括通过系统总线直接或间接耦合到存储器元件的至少一个处理器。该存储器元件可以包括在程序代码的实际执行期间使用的本地存储器、大容量存储介质、以及高速缓冲存储器,其用于提供至少一些程序代码的临时存储,以便减少在执行期间必须从大容量存储介质取回代码的次数。数据处理系统可以充当服务器数据处理系统或客户端数据处理系统。服务器数据处理系统和客户端数据处理系统可以包括计算机可用的(诸如计算机可读的)数据存储介质。与服务器数据处理系统相关联的数据存储介质可以包括计算机可用代码。客户端数据处理系统可以下载该计算机可用代码,诸如以用于存储在与客户端数据处理系统相关联的数据存储介质上,或者以用于在客户端数据处理系统中使用。服务器数据处理系统可以类似地从客户端数据处理系统上传计算机可用代码。可以按照该方式,使用服务器数据处理系统和客户端数据处理系统上传或下载从说明性实施方式的计算机可用程序产品所得到 的计算机可用代码。可以直接或通过中介I/O控制器,将输入/输出或I/O设备(包括但不限于键盘、显示器、指点设备等)耦合到该系统。还将网络适配器耦合到该系统以使得数据处理系统能够通过中介专用或公共网络耦合到其它数据处理系统或远程打印机或存储设备。调制解调器、线缆调制解调器和以太网卡仅为一些当前可用类型的网络适配器。出于说明和描述的目的而呈现了对本发明的描述,并且该描述并不旨在穷举或者将本发明限于本文公开的形式。对于本领域的普通技术人员而言,许多修改和变形是明显的。选择并且描述了实施方式以便解释本发明的原理、实际应用,并且以使得本领域的普通技术人员能够针对具有各种与所构思的特定用途相配的修改的各种实施方式来理解本发明。
权利要求
1.一种用于保证异步客户端服务器事务的计算机实现的方法,所述计算机实现的方法包括 在执行于数据处理系统中的第一应用处接收请求,所述请求包括与第二应用相关联的应用标识符和版本; 响应于与所述第二应用的会话有效,生成服务标识符; 在所述第一应用处生成注册表,所述注册表包括关于允许所述第二应用使用的服务和数据的集合的信息; 基于所述注册表生成目录,所述目录包括所述注册表的经变形的子集;以及 向所述第二应用发送所述服务标识符和所述目录。
2.如权利要求I所述的计算机实现的方法,还包括 接收子请求,所述子请求是异步客户端服务器事务的一部分,所述子请求包括所述服务标识符; 通过确定如下组合来确定所述子请求的有效性(i)所述服务标识符是否到期,(ii)所述子请求是否请求根据所述目录可允许的服务,以及(iii)所述服务标识符是否与所述第二应用结合使用;以及 响应于所述子请求有效,响应于所述子请求来提供所述服务。
3.如权利要求2所述的计算机实现的方法,其中,所述有效性的所述确定还在如下组合中使用(iv)确定所述目录是否过期。
4.如权利要求2所述的计算机实现的方法,其中,所述服务标识符是否与所述第二应用结合使用的所述确定包括确定所述服务标识符是否与所述第二应用的所述应用标识符和所述应用版本一起使用。
5.如权利要求2所述的计算机实现的方法,还包括 响应于所述子请求无效,提供以下之一 (i)更新的服务标识符,以及(ii)更新的目录。
6.如权利要求5所述的计算机实现的方法,其中,所述更新的服务标识符是以下之一(i)新服务标识符,( )包括修改的安全性特征的服务标识符,以及(iii)与所述第一应用处的安全性特征确认标准的修改相对应的服务标识,并且其中,所述提供发生在结束所述异步客户端服务器事务之前。
7.如权利要求5所述的计算机实现的方法,其中,所述更新的目录是以下之一(i)新目录,(ii)对所述目录的更新,以及(iii)对所述目录的到期参数的修改,并且其中,所述提供发生在结束所述异步客户端服务器事务之前。
8.如权利要求2所述的计算机实现的方法,还包括 确定所述服务是否需要附加认证,从而形成对附加认证的确定; 响应于附加认证的所述确定为真,接收附加认证信息;以及 确定所述附加认证信息是否有效,其中响应于所述附加认证信息为有效来提供所述服务。
9.如权利要求2所述的计算机实现的方法,其中,通过使用所述注册表来确定是否可允许所述服务来执行根据所述目录是否可允许所述服务的所述确定。
10.如权利要求I所述的计算机实现的方法,还包括生成原始服务标识符,其中所述服务标识符是所述原始服务标识符的经变形版本。
11.一种用于保证异步客户端服务器事务的计算机实现的方法,所述计算机实现的方法包括 响应于发送与第二应用相关联的应用标识符和应用版本,在执行于数据处理系统中的所述第二应用处,从第一应用接收安全性标识符和目录,所述目录包括与所述第一应用相关联的注册表的经变形的子集; 动态地构造子请求,所述子请求是异步客户端服务器事务的一部分,所述子请求包括所述服务标识符,并且所述子请求还包括对于来自所述目录的服务的请求; 响应于所述子请求根据所述第一应用有效,接收与所述服务相关联的数据。
12.如权利要求11所述的计算机实现的方法,其中,所述子请求还包括与所述第二应用相关联的所述应用标识符和所述应用版本。
13.如权利要求11或12所述的计算机实现的方法,还包括 响应于所述子请求无效,接收以下之一 (i)更新的服务标识符,以及(ii)更新的目录,其中,由于确定以下之一,所述子请求无效(i)所述服务标识符无效,( )所述服务不在所述目录内,以及(iii)所述目录过期;以及 使用如下之一,动态地构造第二子请求(i)所述更新的服务标识符,以及(ii)所述更新的目录。
14.一种包括计算机可用存储介质的计算机可用程序产品,所述计算机可用存储介质包括用于保证异步客户端服务器事务的计算机可用代码,所述计算机可用代码包括 用于在执行于数据处理系统中的第一应用处接收请求的计算机可用代码,所述请求包括与第二应用相关联的应用标识符和版本; 用于响应于与所述第二应用的会话有效,生成服务标识符的计算机可用代码; 用于在所述第一应用处生成注册表的计算机可用代码,所述注册表包括关于允许所述第二应用使用的服务和数据的集合的信息; 用于基于所述注册表生成目录的计算机可用代码,所述目录包括所述注册表的经变形的子集;以及 用于向所述第二应用发送所述服务标识符和所述目录的计算机可用代码。
15.如权利要求14所述的计算机可用程序产品,还包括 用于接收子请求的计算机可用代码,所述子请求是异步客户端服务器事务的一部分,所述子请求包括所述服务标识符; 用于通过确定如下组合来确定所述子请求的有效性的计算机可用代码(i)所述服务标识符是否到期,(ii)所述子请求是否请求根据所述目录可允许的服务,以及(iii)所述服务标识符是否与所述第二应用结合使用;以及 用于响应于所述子请求有效,响应于所述子请求来提供所述服务的计算机可用代码。
16.如权利要求15所述的计算机可用程序产品,其中,所述有效性的所述确定还在如下组合中使用(iv)确定所述目录是否过期。
17.如权利要求15所述的计算机可用程序产品,其中,所述服务标识符是否与所述第二应用结合使用的所述确定包括确定所述服务标识符是否与所述第二应用的所述应用标识符和所述应用版本一起使用。
18.如权利要求15所述的计算机可用程序产品,还包括 用于响应于所述子请求无效,提供以下之一的计算机可用代码(i)更新的服务标识符,以及(ii)更新的目录。
19.如权利要求18所述的计算机可用程序产品,其中,所述更新的服务标识符是以下之一 (i)新服务标识符,( )包括修改的安全性特征的服务标识符,以及(iii)与所述第一应用处的安全性特征确认标准的修改相对应的服务标识,并且其中,所述提供发生在结束所述异步客户端服务器事务之前。
20.如权利要求18所述的计算机可用程序产品,其中,所述更新的目录是以下之一(i)新目录,( )对所述目录的更新,以及(iii)对所述目录的到期参数的修改,并且其中,所述提供发生在结束所述异步客户端服务器事务之前。
21.如权利要求15所述的计算机可用程序产品,还包括 用于确定所述服务是否需要附加认证,从而形成对附加认证的确定的计算机可用代码; 用于响应于附加认证的所述确定为真,接收附加认证信息的计算机可用代码;以及用于确定所述附加认证信息是否有效的计算机可用代码,其中响应于所述附加认证信息为有效来提供所述服务。
22.如权利要求15所述的计算机可用程序产品,其中,通过使用所述注册表来确定是否可允许所述服务来执行根据所述目录是否可允许所述服务的所述确定。
23.如权利要求14所述的计算机可用程序产品,还包括 用于生成原始服务标识符的计算机可用代码,其中所述服务标识符是所述原始服务标识符的经变形版本。
24.如权利要求14所述的计算机可用程序产品,其中,将所述计算机可用代码存储在数据处理系统中的计算机可读存储介质中,并且其中,从远程数据处理系统通过网络传输所述计算机可用代码。
25.如权利要求14所述的计算机可用程序产品,其中,将所述计算机可用代码存储在服务器数据处理系统中的计算机可读存储介质中,并且其中,通过网络将所述计算机可用代码下载到远程数据处理系统,以供在与所述远程数据处理系统相关联的计算机可读存储介质中使用。
26.一种用于保证异步客户端服务器事务的数据处理系统,所述数据处理系统包括 包括存储介质的存储设备,其中,所述存储设备存储计算机可用程序代码;以及 处理器,其中,所述处理器执行所述计算机可用程序代码,并且其中,所述计算机可用程序代码包括 用于响应于发送与第二应用相关联的应用标识符和应用版本,在执行于数据处理系统中的所述第二应用处,从第一应用接收安全性标识符和目录的计算机可用代码,所述目录包括与所述第一应用相关联的注册表的经变形的子集; 用于动态地构造子请求的计算机可用代码,所述子请求是异步客户端服务器事务的一部分,所述子请求包括所述服务标识符,并且所述子请求还包括对于来自所述目录的服务的请求;以及 用于响应于所述子请求根据所述第一应用有效,接收与所述服务相关联的数据的计算机可用代码。
27.如权利要求26所述的数据处理系统,其中,所述子请求还包括与所述第二应用相关联的所述应用标识符和所述应用版本
28.如权利要求26所述的数据处理系统,还包括 用于响应于所述子请求无效,接收以下之一的计算机可用代码(i)更新的服务标识符,以及(ii)更新的目录,其中,由于确定以下之一,所述子请求无效(i)所述服务标识符无效,( )所述服务不在所述目录内,以及(iii)所述目录过期;以及 用于使用以下之一,动态地构造第二子请求的计算机可用代码(i)所述更新的服务标识符,以及(ii)所述更新的目录。
29.一种用于保证异步客户端服务器事务的数据处理系统,所述数据处理系统包括 用于在执行于数据处理系统中的第一应用处接收请求的装置,所述请求包括与第二应用相关联的应用标识符和版本; 用于响应于与所述第二应用的会话有效,生成服务标识符的装置; 用于在所述第一应用处生成注册表的装置,所述注册表包括关于允许所述第二应用使用的服务和数据的集合的信息; 用于基于所述注册表生成目录的装置,所述目录包括所述注册表的经变形的子集;以及 用于向所述第二应用发送所述服务标识符和所述目录的装置。
30.如权利要求29所述的数据处理系统,还包括 用于接收子请求的装置,所述子请求是异步客户端服务器事务的一部分,所述子请求包括所述服务标识符; 用于通过确定如下组合来确定所述子请求的有效性的装置(i)所述服务标识符是否到期,(ii)所述子请求是否请求根据所述目录可允许的服务,以及(iii)所述服务标识符是否与所述第二应用结合使用; 用于响应于所述子请求有效,响应于所述子请求来提供所述服务的装置。
31.一种包括当在计算机上运行时适用于执行根据权利要求I至13中的全部步骤的程序代码装置的计算机程序。
全文摘要
在说明性实施方式中提供了一种用于保证异步客户端服务器事务的方法、系统和计算机可用程序产品。在第一应用处接收包括第二应用的应用标识符和版本的请求。如果与该第二应用的会话有效,则生成服务标识符。在第一应用处生成注册表。基于该注册表和该服务标识符生成目录,并且向该第二应用发送该目录。接收包括该服务标识符的子请求以作为异步客户端服务器事务的一部分。通过确定该服务标识符是否到期,该子请求是否请求根据该目录可允许的服务,该服务标识符是否与该第二应用结合使用或者通过确定它们的组合,来确定该子请求的有效性。如果该子请求有效则提供该服务。
文档编号H04L29/06GK102771101SQ201080056916
公开日2012年11月7日 申请日期2010年12月13日 优先权日2009年12月15日
发明者H·莫斯, M·E·祖尔科, S·贝德 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1