创建和使用用户定制的统一资源定位符的设备和方法

阅读: 评论:0

著录项
  • CN200810008872.7
  • 20080130
  • CN101499071
  • 20090805
  • 国际商业机器公司
  • 肖文鹏;杨敏;付荣耀;迟长燕
  • G06F17/30
  • H04L29/06 G06F17/30

  • 美国纽约阿芒克
  • 美国,US
  • 北京市柳沈律师事务所
  • 胡琪
摘要
公开了创建和使用用户定制的统一资源定位符CURL的设备和方法。所述创建方法包括:接收为通过普通URL访问的网络资源中的选定内容分配用户申请的CURL的请求;获取普通URL、申请的CURL及选定内容的描述信息;获取与选定内容相关的上下文信息,并将其与对应的普通URL、申请的CURL及选定内容的描述信息存储到CURL贮存库中。所述使用CURL的方法包括步骤:接受来自用户的CURL访问地址;从CURL贮存库中取出与该CURL对应的上下文信息、选定内容的描述信息和原始的普通URL;利用所取出的上下文信息恢复浏览器上下文、应用上下文和系统上下文;在恢复的上下文环境中重构所请求的网络资源并发送至客户端。
权利要求

1.一种创建用户定制的统一资源定位符CURL的设备,包括:

请求接收部件,接收为通过普通URL访问的网络资源中的选定内容分配 一用户申请的CURL的请求;

信息获取部件,获取所述普通URL、所申请的CURL以及选定内容的描 述信息;和

CURL注册部件,获取与所述选定内容相关的浏览器上下文以及应用上 下文和系统上下文,并将所获取的上下文与对应的普通URL、申请的CURL 及选定内容的描述信息作为整体存储到CURL贮存库中。

2.如权利要求1所述的设备,其中所述选定内容是通过普通URL访问 的网络资源的一部分或该网络资源本身。

3.如权利要求2所述的设备,其中所述信息获取部件在获取申请的CURL 后确定该CURL是否可接受并将确定结果通知CURL注册部件,当确定所述 CURL可接受时,CURL注册部件响应于该确定结果、经由一客户端浏览器 插件获取浏览器上下文以及经由上下文提取器获取系统上下文和应用上下 文。

4.如权利要求3所述的设备,其中CURL注册部件在获取了浏览器上 下文及系统上下文和应用上下文后,向客户端浏览器显示已获取的这些上下 文信息,并且仅将用户选择的、希望保留的上下文信息及对应的普通URL、 申请的CURL及选定内容的描述信息存储在CURL贮存库中。

5.如权利要求1所述的设备,所述浏览器上下文是用户通过原始的普通 URL访问网络资源时,由网站存放在Cookie和JavaScript中的相应变量的值; 所述应用上下文是用户通过原始的普通URL访问网络资源时在服务器上形 成的Session信息;所述系统上下文是操作系统运行时的环境状态值。

6.一种响应于用户的访问请求来提供与用户定制的统一资源定位符 CURL对应的网络资源的设备,包括:

访问请求处理部件,响应于来自用户的CURL访问地址,从CURL贮存 库中取出与该CURL对应的上下文、选定内容的描述信息和原始的普通URL 并发送至上下文恢复器和内容再现器;

上下文恢复器,根据从访问请求处理部件接收的上下文,恢复浏览器上 下文、应用上下文和系统上下文,并将其发送至内容再现器;和

内容再现器,根据从访问请求处理部件接收的普通URL和选定内容的描 述信息、在恢复的上下文环境中重构请求访问的网络资源,并发送至客户端 浏览器。

7.如权利要求6所述的设备,还包括:CURL过滤器,其接收用户在客 户端浏览器中输入的访问地址,将该访问地址与CURL贮存库中存储的CURL 进行比较,以确定输入的是否是CURL,并且当输入的是CURL时,接受用 户输入的CURL访问地址并将其传送至访问请求处理部件。

8.如权利要求7所述的设备,其中所述内容再现器进一步包括:

完整资源再现部件,根据从访问请求处理部件接收的普通URL、在恢复 的特定的上下文环境中重构与用户输入的CURL对应的完整的网络资源;和

请求资源提供部件,根据从访问请求处理部件接收的选定内容的描述信 息确定在请求分配CURL时用户选择的内容是完整的资源还是资源中的片 段,其中当所选择的是完整的网络资源时,将所重构的完整的网络资源发送 至客户端,当所选择的是网络资源中的片段时,根据选定内容的描述信息、 从所重构的完整的网络资源提取相应的片段并发送至客户端浏览器。

9.如权利要求6中所述的设备,其中所述浏览器上下文是用户通过原始 的普通URL访问网络资源时,由网站存放在Cookie和JavaScript中的相应变 量的值;所述应用上下文是用户通过原始的普通URL访问网络资源时在服务 器上形成的Session信息;所述系统上下文是操作系统运行时的环境状态值。

10.一种创建用户定制的统一资源定位符CURL的方法,包括步骤:

接收为通过普通URL访问的网络资源中的选定内容分配一用户申请的 CURL的请求;

获取所述普通URL、所申请的CURL以及选定内容的描述信息;和

获取与所述选定内容相关的浏览器上下文以及应用上下文和系统上下 文,并将所获取的上下文与对应的普通URL、申请的CURL及选定内容的描 述信息作为整体存储到CURL贮存库中。

11.如权利要求10所述的方法,其中所述接收为选定内容分配一用户申 请的CURL的请求进一步包括:向用户的客户端浏览器提供一浏览器插件, 以使得用户可以使用该插件在通过普通URL访问的网络资源中选定期望的 内容。

12.如权利要求11所述的方法,其中所述选定内容是通过普通URL访 问的网络资源的一部分或该网络资源本身。

13.如权利要求10所述的方法,所述浏览器上下文是用户通过原始的普 通URL访问网络资源时,由网站存放在Cookie和JavaScript中的相应变量的 值;所述应用上下文是用户通过原始的普通URL访问网络资源时在服务器上 形成的Session信息;所述系统上下文是操作系统运行时的环境状态值。

14.如权利要求10所述的方法,其中在所述获取上下文并存储到CURL 贮存库的步骤中,获取与所访问的网络资源有关的所有浏览器上下文、系统 上下文和应用上下文。

15.如权利要求10所述的方法,其中在所述获取上下文并存储到CURL 贮存库的步骤中,基于一配置文件获取浏览器上下文、系统上下文和应用上 下文,所述配置文件中指定了请求分配所述CURL时需要获取的上下文信息。

16.如权利要求10所述的方法,其中所述获取上下文并存储到CURL 贮存库中的步骤进一步包括:

在获取浏览器上下文、系统上下文和应用上下文后,向客户端浏览器显 示已获取的上下文信息,并提示用户选择其希望保留的上下文信息;和

响应于用户的选择,将所选择的上下文信息及对应的原始的普通URL、 申请的CURL及选定内容的描述信息保存在CURL贮存库中。

17.一种响应于用户的访问请求来提供与用户定制的统一资源定位符 CURL对应的网络资源的方法,包括步骤:

接受来自用户的CURL访问地址;

从CURL贮存库中取出与该CURL对应的上下文、选定内容的描述信息 和原始的普通URL;

利用所取出的上下文恢复浏览器上下文、应用上下文和系统上下文;

在恢复的上下文环境中重构所请求的网络资源并发送至客户端。

18.如权利要求17所述的方法,其中接受来自用户的CURL访问地址 进一步包括:

接收用户在客户端浏览器中输入的访问地址,

将接收到的访问地址与CURL贮存库中存储的CURL进行比较,以确定 输入的是否是CURL,和

当输入的是CURL时,接受用户输入的访问地址。

19.如权利要求17所述的方法,其中重构所请求的网络资源并发送至客 户端进一步包括:

在恢复的上下文环境中重构完整的网络资源;

根据选定内容的描述信息判断在请求分配CURL时用户选择的内容是完 整的资源还是资源中的片段;

当所选择的是完整的资源时,将所重构的完整网络资源发送至客户端浏 览器;和

当所选择的是资源中的片段时,根据选定内容的描述信息从所述完整的 网络资源中提取相应的片段并发送至客户端浏览器。

说明书
技术领域

技术领域

本发明一般涉及创建用户定制的统一资源定位符(Customized Uniform Resource Locator,CURL)并利用创建的CURL访问网络资源的方法和系统, 具体涉及为用户感兴趣的因特网资源分配CURL,并在需要时利用该CURL 再次直接访问该因特网资源的方法和系统。

背景技术

众所周知,统一资源定位符(URL)被用于定义到因特网服务器中的特 定资源的路径。在现有技术中,因特网中任何可以存取的资源都被分配了唯 一的URL,并且诸如HTML浏览器的客户端软件可以使用URL来存取相应 的资源。

然而,当前的URL在动态网络资源的重现和细粒度访问方面无法很好地 满足用户的需求。

具体的,当前越来越多的网络资源是通过服务器以动态方式创建的,从 而可能导致不同的用户通过相同的URL访问时所显示的内容是不同的,或者 同一用户在不同的场景(如时间)下通过相同的URL访问时显示不同的内容。 也就是说,动态创建的资源将无法重现,从而给用户带来许多不便。

举例来说,图4中示出了一个股票价格统计HTML页面,该页面中的曲 线图用于表示股票交易的价格变化。容易想到,该曲线图必然是随着时间的 改变而变化的。例如,用户A在第一天通过http://finance.ibm/stock/ company/sh60008/nc.shtml看到的曲线图与第二天通过相同的URL看到的曲 线图是不同的。也就是说,在第二天及以后的时间,用户A将无法再通过上 述URL看到第一天的曲线图。因此,如果用户A希望在以后能够参考过去 某一时间段内的股票走势,他只能手动地将这一时间段内每一天的曲线图和 相关页面保存在其客户机上。这不仅会在客户机中占用大量存储空间,并且 也是非常烦琐的。而且,由于用户A将曲线图和相关页面保存在其本地,因 此网络中的其它用户无法通过访问网络服务器获取这一资源。如果用户A希 望与网络中的其它用户共享这一资源,他必须将所存储的曲线图资源分发给 每一个其它用户,这显然是烦琐和费时的。

另一方面,当前我们在使用URL时,其常常被对应为因特网上的一个文 件,也就是说用户不能为资源的任何更低的粒度,例如网络应用程序中的一 个功能或HTML文档中的一个片段,来指定URL。

随着Web 2.0的出现和发展,人们越来越多地提出了将不同网络应用程 序的部分功能简单地整合在一起的需求。一个典型的场景是:当用户在IBM 网站看到日历widget时,他想要将该日历widget混合到他个人的博客站点中, 而不是自己开发这一日历widget。在这一趋势下,当前在构建新的网站时已 经开始考虑采用REST架构,通过提供RESTful API为特定的资源指定URL (例如,为网络应用程序的各个功能指定URL),并利用混合(mash-up)技 术将不同资源的片段整合在一起。然而,对于大多数现有的传统应用程序来 计,其并不提供RESTful API来实现mash-up,因而在进行不同网络应用程序 功能整合时,仍需要进行大量的编码工作。因此,人们希望能够按照各自需 要为现有的传统网络应用程序中的部分功能(HTML文档中的一个片段)定 制URL,从而不需进行复杂的编程工作就可容易地将不同应用程序的功能整 合在一起。

发明内容

本发明提出了一种创建用户定制的统一资源定位符(CURL)的设备和方 法,以及响应于用户的访问请求来提供与CURL对应的网络资源的设备方法。 通过所述方法和设备,客户端用户可以为感兴趣的因特网资源,例如网络应 用程序中的部分功能(HTML文档的某一片断),或某一特定场景下的网页内 容,分配一个CURL,并且在需要时通过在浏览器中输入该CURL可以直接 访问到所述感兴趣的网络资源。

根据本发明的一个方面提供了一种创建CURL的设备,包括:请求接收 部件,接收为通过普通URL访问的网络资源中的选定内容分配一用户申请的 CURL的请求;信息获取部件,获取所述普通URL、所申请的CURL以及选 定内容的描述信息;和CURL注册部件,获取与所述选定内容相关的浏览器 上下文以及应用上下文和系统上下文,并将所获取的上下文与对应的普通 URL、申请的CURL及选定内容的描述信息作为整体存储到CURL贮存库中 根据本发明的另一方面提供了一种创建用户定制的统一资源定位符 CURL的方法,包括步骤:接收为通过普通URL访问的网络资源中的选定内 容分配一用户申请的CURL的请求;获取所述普通URL、所申请的CURL以 及选定内容的描述信息;获取与所述选定内容相关的浏览器上下文以及应用 上下文和系统上下文,并将所获取的上下文与对应的普通URL、申请的CURL 及选定内容的描述信息作为整体存储到CURL贮存库中。

根据本发明的又一方面提供了一种响应于用户的访问请求来提供与用户 定制的统一资源定位符CURL对应的网络资源的设备,包括:访问请求处理 部件,响应于来自用户的CURL访问地址,从CURL贮存库中取出与该CURL 对应的上下文、选定内容的描述信息和原始的普通URL并发送至上下文恢复 器和内容再现器;上下文恢复器,根据从访问请求处理部件接收的上下文, 恢复浏览器上下文、应用上下文和系统上下文,并将其发送至内容再现器; 内容再现器,根据从访问请求处理部件接收的普通URL和选定内容的描述信 息、在恢复的上下文环境中重构请求访问的网络资源,并发送至客户端浏览 器。

根据本发明的又一方面提供了一种响应于用户的访问请求来提供与用户 定制的统一资源定位符CURL对应的网络资源的方法,包括步骤:接受来自 用户的CURL访问地址;从CURL贮存库中取出与该CURL对应的上下文信 息、选定内容的描述信息和原始的普通URL;利用所取出的上下文信息恢复 浏览器上下文、应用上下文和系统上下文;在恢复的上下文环境中重构所请 求的网络资源并发送至客户端。

采用本发明所述的创建CURL以及在用户请求访问时提供与CURL对应 的网络资源的方法和设备能够以更细的粒度存取因特网中的资源,从而能够 在协作环境中与他人共享部分HTML文档,以及可以通过简单地引用CURL 来快速和容易地整合网络功能。另外,所述方法和设备能将动态创建的资源 固化到一个CURL,从而使得可以在以后再现这一资源。

附图说明

结合附图,从下面对实施例的描述中,本发明的这些和/或其他方面、 特征和优点将变得清楚和更加容易理解,其中:

图1示出了根据本发明实施例创建CURL的创建系统,以及在用户利用 创建的CURL访问网络资源时向该用户提供所请求的网络资源的提供系统的 整体视图;

图2示出了根据本发明实施例在服务器中创建CURL的流程图;

图3示出了根据本发明实施例利用CURL访问网络资源的流程图;和

图4-图7分别示出了应用本发明的几个示例。

具体实施方式

现在将参考本发明的示例性实施例进行详细的描述,在附图中图解说明 了所述实施例的示例,其中相同的参考数字始终指示相同的元件。但是,本 发明可以以许多不同的形式来具体化,并且不应当被解释为限定于此处所阐 述的实施例。相反,提供这些实施例以使得该公开彻底和完整,并且全面地 向本领域的技术人员传递本发明的概念。下面通过参考附图来描述示例性实 施例,以解释本发明。

图1示出了根据本发明实施例创建CURL的创建系统,以及在用户利用 创建的CURL访问网络资源时向该用户提供所请求的网络资源的提供系统的 整体视图。具体的,图1上半部分示出了根据本发明实施例创建CURL的创 建系统。通过该系统,客户端用户可以为感兴趣的因特网资源,例如HTML 文档的某一片断,或某一特定时刻的网页内容,分配一个用户定制的URL(称 为CURL)。图1下半部分示出了在用户利用创建的CURL访问网络资源时向 该用户提供所请求的网络资源的提供系统。通过该系统,任意用户可以通过 直接在浏览器中输入已创建的CURL来访问所感兴趣的网络资源。

首先对上述创建系统的结构进行详细的描述。如图1所示,该系统具有 客户端/服务器架构。客户端包含有一浏览器,其接收用户的CURL分配请求, 并请求服务器分配该CURL。服务器响应于来自用户的请求而分配所述 CURL。

具体的,客户端浏览器110包含有一插件(plug-in)120。当用户通过普 通的URL经由浏览器访问网络资源时,其可以激活该插件,以选择网络资源 中感兴趣的内容,并为该内容申请一个CURL。举例来说,如果对某一特定 时刻的HTML页面内容感兴趣,则用户可使用插件120为这一时刻的页面申 请一个CURL;如果对HTML页面的一个或多个片断感兴趣,则用户可以使 用插件120在该HTML页面中框选所述片段,并为该片段申请一个CURL。 当用户选择感兴趣的内容并输入其希望为该内容所分配的CURL时,插件120 创建用来确定所选择的内容的选定内容的描述信息,并将其与原始的普通 URL、申请的CURL发送至服务器以请求服务器分配所申请的CURL。当服 务器接受了用户的分配请求时,插件120还根据来自服务器的指令提取浏览 器上下文(context)并发送至服务器。

本说明书中提到的浏览器上下文指的是当用户访问某个网站时,该网站 通过浏览器存放在用户计算机上的一些信息,例如Cookie以及JavaScript中 相应变量的当前值。

插件120可以根据预定的准则来提取浏览器上下文。例如,对于与普通 URL所对应的浏览器上下文,可以通过一个配置文件显式地指定当用户针对 该应用程序或者应用程序的某些功能申请CURL时,需要从浏览器提取的上 下文信息;或者,并不显式地指定需要提取的浏览器上下文,而是默认应当 提取与所述应用程序有关的所有浏览器上下文信息(例如所有Cookie和 JavaScript变量的值)。

插件120可以通过多种方式来实现。一方面,可以通过浏览器提供的扩 展接口,如FireFox提供的扩展(extension)机制、或是Internet Explorer所 支持的ActiveX机制,对浏览器进行编程来实现。另一方面,可以由服务器 提供这一插件,从而用户可以在经由服务器访问网络资源时,从服务器下载 这一插件并嵌入浏览器中。作为浏览器110的一部分,该插件能够获得浏览 器保存在磁盘上的Cookie值,也能够通过浏览器的文档对象模块(Document Object Model,DOM)动态获得所需要的JavaScript对象的值,并在需要的时 候传送至服务器。浏览器插件与服务器之间可以通过HTTP协议实现通信。 根据以上的说明,本领域的技术人员可以容易地实现该浏览器插件120,因 而在本说明书中不再对其具体实现进行详细的描述。

本说明书中提到的选定内容的描述信息是用于确定用户所选择的感兴趣 的内容的描述信息。例如,描述信息可以包含有一个标志位,用于标识用户 选定的内容是通过普通URL访问的完整的资源(例如完整的HTML页面), 还是该资源的一个或多个片段(例如一个或多个页面片段)。特别地,当选定 内容是资源片段时,该描述信息可以包含当前浏览器中文档对象模型上的相 应内容的路径信息。例如,对于下面的文档:

  

    

     

    

  

Text

 

可以用/html/body/tr/td来表示用户选中的片段内容。在实际应用中,可 能有更加复杂的表示路径的方式,但都可以用起始路径和结束路径的方式来 确定用户当前选中的一个或多个区域,即页面片段。容易想到,以上仅仅给 出了选定内容的描述信息的一个示例,选定内容的描述信息显然还可以采用 其它各种表示方式,比如采用正则表达式对选定内容进行匹配。

另一方面,以上描述的仅仅是客户端的一种示例性结构,而根据本发明 的客户端显然也可以采用其它不同的结构。例如,尽管在上文中将客户端的 功能和操作描述为由浏览器中的单个插件120实现,但是所述功能和操作也 可以由多个模块来共同实现。具体的,客户端浏览器110可以包含有:内容 选择模块,用于框选用户感兴趣的内容;选定内容描述信息的创建模块,用 于创建所选择的内容的描述信息,通过该信息可以确定用户所选择的内容; CURL申请模块,用于接收用户为所选择的内容申请的CURL;上下文提取 模块,用于提取浏览器上下文;上下文选取模块,用于让用户确定创建CURL 时需要保存的上下文;CURL传送模块,用于将原始的普通URL、用户输入 的CURL、选定内容的描述信息以及客户端上下文发送至服务器。

再次参见图1,如图所示,服务器包括:CURL注册器210,用于处理来 自客户端的CURL分配请求;上下文提取器220,用于提取应用上下文和系 统上下文;CURL贮存库270,用于存储来自客户端的原始的普通URL、申 请的CURL、浏览器上下文、选定内容的描述信息、以及所获取的应用上下 文和系统上下文。以下,将对上述各部件进行详细的描述。

CURL注册器210接收来自客户端的CURL分配请求,从该请求中获取 相关的普通URL、申请的CURL和选定内容的描述信息,并判断所申请的 CURL是否已被使用,即是否与CURL贮存库中存储的现有CURL重复。当 确定这一CURL尚未被使用过时,CURL注册器210接受这一请求,并指示 浏览器插件120和上下文提取器220分别提取浏览器上下文、应用上下文和 系统上下文,并将其与获得的对应的普通URL、申请的CURL以及选定内容 的描述信息作为整体保存在CURL贮存库270中。而当CURL注册器210确 定所申请的CURL不可接受时,则向客户端返回拒绝信息。

顺便说一下,尽管在上文中将CURL注册器210描述为根据所申请的 CURL是否已被使用过来确定该CURL是否可以接受,然而实际上可以根据 具体需要设定任意的确定原则用于进行所述确定。例如,可以设定为只有对 原始的普通URL有相关权限的用户才可以基于原始URL申请CURL,那么 CURL注册器210在接收到所申请的CURL时首先判断该CURL是否是由有 权限的人申请的,随后再进一步判断该CURL是否已被使用过。或者,服务 器可以设定命名规则,从而只有符合命名规则的CURL才能被接受。

本说明书中提到的应用上下文指的是在服务器上同当前用户相关的会话 (Session)信息,这些信息是同具体的应用相关的。每当用户访问一个运行 在HTTP服务器上的应用时,在服务器上就会形成一个同该用户相关的会话, 该会话由用户当前正在使用的浏览器唯一标识,一旦用户退出该浏览器,相 关的会话就会失效。特别地,用户也可以显式地向服务器提交让当前会话失 效的请求;服务器也可以设定会话失效的时间,如果在规定的时间内没有接 到任何用户访问该应用的请求,对应的会话就会自动失效。在会话有效的时 间段内,该会话中保留了当前用户在访问相应应用时的所有信息,这些信息 一般以关键字/值对的方式保留,如:USER_NAME=“GARY”。

本说明书中提到的系统上下文指的是操作系统或者当前HTTP服务器运 行时的环境状态,如系统时间或IP地址等。这些信息一般也以关键字/值对的 方式保存,如:SYSTEM_TIME=“2007-10-10 11:32:26”。

上下文提取器220用于按照CURL注册器的指示、根据预定的准则来提 取应用上下文和系统上下文。例如,对于与普通URL所对应的应用上下文和 系统上下文,可以通过一个配置文件显式地指定当用户针对该应用程序或者 应用程序的某些功能申请CURL时,需要从应用中提取的上下文信息(即会 话中某些特定的关键字/值对)和需要从系统中提取的上下文信息;或者,并 不显式地指定需要提取的应用上下文和系统上下文,而是默认应当提取与所 述应用程序有关的所有应用上下文(即会话中所有关键字/值对)和系统上下 文信息。上下文提取器220可以作为现有HTTP服务器的扩展来实现,目前 通用的HTTP服务器都提供有相应的扩展机制,如Microsoft IIS和Apache等。

另一方面,以上描述的仅仅是服务器的一种示例性结构,而根据本发明 的服务器显然也可以采用其它不同的结构。举例来说,尽管在上文中将CURL 注册器210描述为单个部件,但是其功能和操作也可以由多个部件来共同实 现。例如,注册器210可以包含有:请求接收部件,接收来自客户端的CURL 分配请求;信息获取部件,从所述分配请求中获取相关的普通URL、申请的 CURL以及选定内容的描述信息,并判断所申请的CURL是否是可接收的, 随后将判断结果通知CURL注册部件;和CURL注册部件,当判断结果为 CURL可接收时,获取浏览器上下文、应用上下文和系统上下文,并将其与 已获得的对应的普通URL、申请的CURL及选定内容的描述信息作为整体存 储到CURL贮存库270中。另外,虽然在以上的描述将CURL贮存库270描 述为服务器的内部部件,然而容易想到,该CURL贮存库显然也可以实现为 一外部存储器,即服务器中并不包含CURL存储部件,而是将CURL及相关 信息存储至外接的存储器。

如上文中所述,当创建了CURL后,利用如图1下半部分示出的提供系 统,网络中的任何用户都可以通过在客户端浏览器输入该CURL地址来请求 服务器上的相应内容。

如图1所示,所述提供系统具有客户端/服务器架构。客户端包含有一浏 览器,其接收到用户输入的CURL访问请求时,将用户请求发送至服务器并 返回与输入的CURL对应的网络资源。由于该浏览器具有与前述创建系统中 的浏览器类似的结构,因而此处不再对其进行详细的描述。

当用户经由客户端浏览器输入CURL访问地址以请求访问对应的网络资 源时,服务器将响应于该访问请求,重构与输入的CURL对应的网络资源并 输出至客户端。参见图1,服务器包括:访问请求处理部件230,响应于来自 用户的CURL访问地址,从CURL贮存库中取出与该CURL对应的上下文、 选定内容的描述信息和原始的普通URL并发送至上下文恢复器和内容再现 器;上下文恢复器240,用于恢复浏览器上下文、应用上下文和系统上下文; 内容再现器250,基于原始的普通URL和选定内容的描述信息、在恢复的上 下文环境中重构所请求的内容,并发送至客户端;CURL贮存库270,用于存 储原始的普通URL、申请的CURL、选定内容的描述信息以及浏览器上下文、 应用上下文和系统上下文。以下,将对上述各部件进行详细的描述。

当访问请求处理部件230接收到来自用户的CURL访问地址时,其从 CURL贮存库中获取与该CURL对应的原始的普通URL、上下文信息以及选 定内容的描述信息,并将上下文信息发送至上下文恢复器240,以及将原始 的普通URL和选定内容的描述信息发送至内容再现器250。

顺便说一下,由于用户不仅可以在客户端浏览器中输入CURL访问地址, 同样也可以输入普通的URL地址以请求访问普通的网络资源,因此,根据本 发明的另一实施例,在前述访问请求处理部件230之前可以配备有一个CURL 过滤器(未示出)。当接收到用户输入的地址时,CURL过滤器将其与CURL 贮存库中已保存的各CURL进行比较,以确定用户当前请求的是普通的URL 还是CURL。当确定用户当前输入的为CURL时,CURL过滤器将该CURL 传送至访问请求处理部件230。而对于普通的URL,服务器将按照正常的 HTTP服务器处理流程对用户请求进行处理,并返回相应的HTTP响应消息, 其具体实现在此不再赘述。

上下文恢复器240根据接收到的上下文信息恢复浏览器上下文、系统上 下文和应用上下文,并将其发送至内容再现器。

恢复应用上下文是指根据保留在CURL库中的应用上下文信息,在HTTP 服务器上构建一个新的服务器端代码执行环境,并将相应的会话信息恢复到 创建CURL时的状态,即将服务器端代表用户会话的数据结构用事先保存的 值进行填充。构建执行环境和维护会话是现有HTTP服务器都提供的功能, 上下文恢复器240可通过访问这些功能来实现应用上下文的恢复。

系统上下文只有当服务器端的代码在执行的过程中才会被用到。例如, 对于系统上下文中的系统时间来说,在恢复系统上下文时,将返回创建CURL 时对应的系统时间。上下文恢复器240可以通过调用专门用来保存和恢复系 统上下文状态的软件包中的相应函数来实现系统上下文恢复。

恢复浏览器上下文是指将存放在用户计算机上的例如Cookie以及 JavaScript中相应变量的值置为在创建CURL时的值。在恢复浏览器上下文 时,上下文恢复器240根据要返回给客户端的输出结果在服务器上构建一个 文档对象模型(DOM)树,并在该树上应用保存的浏览器上下文。DOM树 在实现的时候是一组保存在内存中的数据结构,而浏览器端上下文的恢复则 是根据保存的上下文信息修改相应数据结构上的当前内容。容易想到,利用 DOM树来恢复浏览器上下文仅仅是一种示例而已,上下文恢复器240显然还 可以采用其他方式来恢复浏览器上下文,比如采用直接保存和恢复浏览器中所 有状态和变量。

内容再现器250根据接收到的原始的普通URL,出与之相对应的服务 器端代码(例如对于用Java开发的应用来讲,就是相应的Servlet,而对于用 PHP开发的应用来讲则是某个PHP脚本),并在由上下文恢复器240恢复的 特定的上下文环境中执行到的服务器端代码,由此重构对应的完整的网络 资源。随后,内容再现器250根据接收到的选定内容的描述信息确定用户要 访问的是完整的网络资源还是网络资源中的一部分,即确定在请求分配 CURL时用户选择的内容是完整的资源(例如完整的HTML页面)还是该资 源的一个或多个片段(即一个或多个页面片段)。如果确定要访问的是完整的 网络资源,则内容再现器250直接将在恢复的上下文环境中执行服务器端代 码获得的结果发送至客户端浏览器。如果确定要访问的是网络资源的片段, 内容再现器250根据选定内容的描述信息(例如,起始路径和结束路径)获 取相应的片段并发送至客户端浏览器。

容易想到,以上描述的仅仅是服务器的一种示例性结构,而根据本发明 的服务器显然也可以采用其它不同的结构。举例来说,尽管在上文中将内容 再现器250描述为单个部件,但是其功能和操作也可以由若干个部件来共同 实现。例如,内容再现器250可以包含有:完整资源再现部件,用于在由上 下文恢复器240恢复的特定的上下文环境中执行服务器端代码,以重构对应 的完整的网络资源;请求资源提供部件,用于根据接收的选定内容的描述信 息确定在请求分配CURL时用户选择的内容是完整的资源还是资源中的片 段,其中当所选择的是完整的网络资源时,将完整资源再现部件重构的完整 的网络资源发送至客户端,当所选择的是网络资源中的片段时,根据选定内 容的描述信息、从所重构的完整的网络资源中获取相应的片段并发送至客户 端浏览器。另外,类似的,虽然在以上的描述将CURL贮存库270描述为服 务器的内部部件,然而容易想到,该CURL贮存库显然也可以实现为一外部 存储器,即服务器中并不包含CURL存储部件,而是从外接的存储器中获取 所需的信息。

以上已经参照图1对根据本发明实施例的CURL创建系统和网络资源提 供系统进行了描述,下面将参照图2和3对根据本发明实施例的CURL创建 和访问方法进行描述。

图2示出了根据本发明实施例在服务器中创建CURL的流程图。

如前文所述,在通过普通的URL经由浏览器访问网络资源时,用户可以 激活浏览器中的插件120来选择网络资源中感兴趣的内容,并为该内容申请 一个CURL。插件120将生成用于确定所选择的内容的选定内容的描述信息, 并将其与原始的普通URL、申请的CURL一同发送至服务器以请求服务器分 配所申请的CURL。如图2所示,在步骤S20中,CURL注册器210接收来 自客户端的CURL分配请求,并获取相关的选定内容的描述信息、原始的普 通URL以及申请的CURL。随后,在步骤S21,CURL注册器210根据设定 的判断原则判断所申请的CURL是否可接收。当CURL可接收时,在步骤S22, CURL注册器确定需要获取的浏览器上下文,并指示客户端的浏览器插件120 提取所述浏览器上下文;在步骤S23,确定需要获取的应用上下文,并指示 服务器中的上下文提取器220提取所述应用上下文;在步骤S24,确定需要 获取的系统上下文,并指示上下文提取器220提取所述系统上下文。如上文 中所述,CURL注册器210可以根据多种预定的准则来确定所需获取的上下 文信息。(例如,根据配置文件,或默认获取与所述应用程序有关的所有上下 文信息)。在经由浏览器插件和上下文提取器获取到浏览器上下文、应用上下 文和系统上下文后,在步骤S25,CURL注册器将这些上下文信息与所接收 的对应的普通URL、申请的CURL以及选定内容的描述信息作为整体保存在 CURL贮存库270中。如果在步骤S21中,CURL注册器210判断所申请的 CURL不可接受,则向客户端返回拒绝信息,如步骤S26所示。

优选的,在根据本发明实施例的创建CURL的方法中,在获取了由浏览 器插件和上下文提取器提取的上下文信息后,CURL注册器并不立即将其保 存在CURL贮存库270中,而是向客户端显示当前已获取的上下文信息,并 提示用户选择其希望保存的上下文信息。用户可以根据其需求,利用浏览器 插件选择希望保存的上下文信息,并通知服务器。服务器将响应于用户的选 择,仅将用户选择的上下文信息与相应的普通URL、申请的CURL以及选定 内容的描述信息进行保存。由此,可以更加灵活地满足用户的需求。

根据本发明,当服务器响应于用户的请求创建了用户申请的CURL后, 该用户或网络中的其他用户可以通过在浏览器中输入该CURL来访问服务器 上的相应内容。图3示出了根据本发明实施例的、在接收到用户的CURL访 问请求时提供其所希望的网络资源的流程图。

如图3所示,当接收到用户在客户端浏览器中输入的访问地址时,服务 器中的CURL过滤器将其与CURL贮存库中已保存的各CURL进行比较,以 确定用户当前请求的是普通的URL还是CURL,如步骤S30所示。对于普通 的URL,在步骤S31,服务器将按照目前正常的HTTP服务器处理流程对用 户请求进行处理,并返回相应的HTTP响应消息(其具体实现在此不再赘述)。 当CURL过滤器确定用户请求的是CURL时,其将该CURL传送至访问请求 处理部件230。在步骤S32,访问请求处理部件从CURL贮存库中获取与该 CURL对应的原始的普通URL、上下文信息以及选定内容的描述信息,并将 上下文信息发送至上下文恢复器240,以及将原始的普通URL和选定内容的 描述信息发送至内容再现器250。在步骤S33,上下文恢复器240根据接收到 的上下文信息分别恢复浏览器上下文、系统上下文和应用上下文。随后,在 步骤S34,内容再现器250根据接收到的原始的普通URL出与之相对应的 服务器端代码,并在恢复的特定的上下文环境中执行该服务器端代码,由此 重构对应的网络资源。在步骤S35,内容再现器250进一步根据接收到的选 定内容的描述信息确定在请求分配CURL时用户选择的内容的是完整的网络 资源还是网络资源中的一部分,即确定所分配的CURL对应于完整的网络资 源(例如完整的HTML页面)还是该资源的一个或多个片段(即一个或多个 页面片段)。如果确定所选择的是完整的网络资源,则直接将在步骤S34获得 的结果发送至客户端浏览器,如步骤S36所示。如果在步骤S35确定所选择 的是网络资源的片段,则在步骤S37,内容再现器240将根据选定内容的描 述信息(例如,起始路径和结束路径),从在步骤S34得到的完整的网络资源 中获取相应的片段,并在步骤S38中将所述片段发送至客户端浏览器。

图4-图7分别示出了应用本发明的方法的几个典型示例。以下将结合 这些示例对本发明进行进一步的描述。

首先,结合图4来描述应用本发明的方法将动态资源固化至一个CURL 的示例(前文中已对图4所示的内容及存在的问题进行了说明,在此不在赘 述)。根据本发明所述的方法,如果用户在例如2007年6月15日13点42分 通过http://finance.ibm/stock/company/sh60008/nc.shtml观看了股票曲线, 并且希望日后还能通过访问服务器再次观看这一曲线图,则用户可以使用客 户端浏览器中的插件输入一个希望为该曲线图页面分配的CURL,例如 http://finance.ibm/stock/company/sh60008/nc.shtml/20070615_1342,以请求 服务器分配这一CURL。浏览器插件生成指示所选内容为完整的HTML页面 的选定内容描述信息,并将其与请求的CURL、原始的普通URL http://finance.ibm/stock/company/sh60008/nc.shtml发送至服务器,以请求 服务器分配这一CURL。服务器在收到请求之后判断请求的CURL是否已被 使用,即与现有的CURL重复。当确定这一CURL尚未被使用时,服务器接 受这一请求,指示客户端的浏览器插件和服务器中的上下文提取器分别提取 浏览器上下文(具体的,客户端的Cookie变量)、应用上下文(具体的,服务 器中的Session信息)和系统上下文(具体的,系统时间),并将其与相应的普 通URL、申请的CURL以及选定内容的描述信息作为整体保存在服务器贮存 库中。

此后,当用户希望观看2007年6月15日13点42分的股票曲线图时, 其可以直接在浏览器中输入创建的CURL http://finance.ibm/stock/company/sh60008/nc.shtml/20070615_1342进行 访问。当从客户端浏览器接收到这一输入时,服务器将其与CURL贮存库中 已保存的各个CURL进行比较,从而确定用户输入的是CURL而非普通的 URL。在此情况下,服务器从CURL贮存库中获取与该CURL对应的上下文 信息发送至上下文恢复器,并获取选定内容的描述信息和原始的普通URL发 送至内容再现器。上下文恢复器根据接收到的上下文信息分别恢复浏览器上 下文、系统上下文和应用上下文,内容再现器在恢复的上下文中运行与原始 的普通URL相对应的服务器端代码,从而重构出如图4中所示的HTML页 面。随后,内容再现器根据选定内容的描述信息确定出用户所请求的就是完 整的HTML页面,因此其将已经重构出的HTML页面发送至客户端浏览器。 至此,用户可以在浏览器中看到如图4所示的股票曲线图。另外,不仅是设 定CURL的用户本人,其它任何网络用户都可以通过在浏览器中输入上述 CURL而观看到2007年6月15日13点42分的股票曲线图。

以下结合图5来描述应用本发明的方法为与用户相关的资源分配一个 CURL的示例。具体的,图5中示出了一个网上购书过程的页面。不妨假设 这样一种情境:用户A是一个学生,他在网上订购了一些图书,但是由于该 用户A不具有网络支付能力,所以他没有完成这一订购过程,而是在进行到 路径为http://store.ibm/cart.shtml的支付页面时结束了其订购操作,并退 出浏览器。随后,用户A可能会要求其父母用户B为他所选择的图书进行支 付。在这样的情形中,当用户A进行订购操作时,在服务器上形成了一个同 该用户A相关的会话(Session)(该Session由用户当前正在使用的浏览器唯 一标识),而当用户A退出该浏览器时,相关的Session就失效了。因此,用 户B再次运行浏览器,并输入上述URL时,所访问到的页面并非是如图5 所示的支付页面。也就是说,用户B无法直接浏览支付页面并进行支付,而 是需要再次进行之前的登录网站,浏览图书,选择图书等操作才能到达支付 页面,而这显然是费时和不便的。

通过应用本发明所述的方法,用户A可以利用浏览器插件输入希望为所 述支付页面分配的CURL,例如http://store.ibm/cart.shtml/gary_java,并 请求服务器创建并分配这一CURL。服务器在根据设定的判断原则判定该 CURL可接受时,将该申请的CURL、原始的普通URL http://store.ibm/cart.shtml,以及浏览器上下文、应用上下文(Session信息)、 系统上下文保存在服务器贮存库中。由于保存了与图5所示的HTML页面相 关的Session信息,因此当以后用户B在浏览器中输入上述CURL时,服务 器可以恢复相应的上下文信息,并在恢复后的上下文环境中执行对应的服务 器端代码,从而重构出如图5所述的支付页面。由此,用户B可以在图5所 示的支付页面中进行后续的支付操作。

以下结合图6来描述应用本发明的方法为与权限相关的资源分配一个 CURL的示例。众所周知,是用户的私人资源,通常不希望未经授 权的人私自访问用户的邮箱。因此,要想登陆,需要经过身份验证 处理。让我们假设这样一种情形,用户A在某一网站拥有一个(例 如,http://mail.ibm/webmail),该中的地址簿中存储了用户 B,C,D,E等人的。随后,用户B通知用户A其发生了变化。 通常情况下用户B未被授权进入用户A的邮箱,因此用户B无法对邮箱的地 址簿中的进行修改,因此只能由用户A进入其自己的邮箱来进行修 改;如果将用户B授权成可以访问用户A的邮箱,则用户B不仅可以访问显 示其的页面(如图6所示)并对进行修改,而且还可以访 问邮箱中的其他页面来浏览用户A的信件,并进行用户A有权进行的任何操 作。这两种情况都不能令人满意。因此,用户A可能希望用户B仅对显示其 联系信息的页面具有访问和修改的权利,而无权对其他页面进行访问和操作。

通过应用本发明所述的方法,对于如图6所示显示用户B(chicy)的联系 信息的页面,用户A可以通过浏览器插件输入一个希望服务器分配的CURL, 例如http://mail.ibm/webmail/xiaowp@cn.ibm/contacts/chicy,并请求 服务器创建并分配这一CURL。并且为了使得用户B能够对联系信息进行修 改,进一步将如图6所示的页面设定为可读和可写。在接收到分配请求后, 服务器确定该CURL是否可接受。具体的,服务器首先确定该请求是否是由 对如图6所示的页面有读写权限的用户A提出的,随后再进一步确定该CURL 是否已被使用过。在本示例中,当确定所述CURL可接受时,服务器将其与 原始的普通URL http://mail.ibm/webmail、浏览器上下文、应用上下文和 系统上下文保存在服务器贮存库中。这样,用户B通过在浏览器中输入上述 CURL就可以显示如图6所示的页面,并且可以对其中的信息进行 修改。同时,由于用户B对于其它HTML页面并不具有访问权限,因此其不 能对用户A的的其它应用进行访问和操作。

以下结合图7来描述应用本发明的方法为网络资源中的片断分配一个 CURL的示例。随着Web2.0的出现和发展,人们越来越多地提出了将不同 网络应用程序的部分功能简单地整合在一起的需求。不妨假设这样一种情形: 用户A正在创建一个旅游网站,他希望将URL地址http://trip.ibm/xian指 向的网站页面上介绍西安的一段文字内容和另一URL地址 http://video.ibm/xian指向的网站页面上提供的视频介绍中的一段内容混 合至其创建的旅游网站(如图7所示)。然而,上述两个网站都没有提供 Mash-up和RESTful API,因此,用户A无法容易地提取出其感兴趣的文字片 断和视频片断并混合到创建的网站中。

通过应用本发明所述的方法,用户A可以利用浏览器中的插件来框选其 感兴趣的内容,例如图7上部的图中的粗线框框选的内容,并为所框选的内 容申请一个CURL,例如http://trip.ibm/xian/intro。浏览器插件生成选定 内容的描述信息,其指示所选内容为HTML文档中的片段,并通过起始路径 和结束路径标明了用户当前选中的区域。随后,浏览器插件将选定内容的描 述信息与申请的CURL、原始的普通URL http://trip.ibm/xian发送至服务 器,以请求服务器分配这一CURL。服务器在根据设定的判断原则判定该 CURL可接受时,指示客户端的浏览器插件和服务器中的上下文提取器分别 提取浏览器上下文、应用上下文和系统上下文,并将获取的上下文信息与相 应的普通URL、申请的CURL以及选定内容的描述信息作为整体保存在服务 器贮存库中。

随后,当用户A希望获取所框选的HTML文档片段时,其可以直接在浏 览器中输入分配的CURL http://trip.ibm/xian/intro进行访问。当确定从客 户端浏览器接收到CURL时,服务器从CURL贮存库中获取与该CURL对应 的上下文信息发送至上下文恢复器,并获取选定内容的描述信息和原始的普 通URL发送至内容再现器。随后,上下文恢复器和内容再现器执行根据本发 明的方法,从而重构出如图7上半部中所示的完整的HTML页面。此时,内 容再现器根据选定内容的描述信息确定出用户所请求的是完整的HTML页面 中的一部分(即,在请求分配CURL时用户选择的内容是完整的HTML页面 中的片段),因此其根据选定内容描述信息中的起始路径和结束路径从重构出 的完整HTML页面中获取用户所框选的片段内容,并将该片段内容(而不是 整个HTML文档)发送至客户端浏览器。进而,用户A可以利用Mesh up将 获取的内容片断整合到其自己的旅游网站中。类似的,用户A同样可以利用 本发明来框选如图7下半部所示的视频资源中的一段,并请求服务器为该视 频片断分配例如http://video.ibm/xian/1:30-2:30的CURL,从而可以在以 后需要时通过该CURL来访问所选择的分离出来的视频片段(而不是整个视 频),并利用Mash up将其整合到自己的旅游网站中。

通过根据本发明实施例的方法可以具体化成计算机可读代码/指令/程序, 和可以在利用例如计算机可读记录介质执行代码/指令/程序的通用数字计算 机中实现。计算机可读记录介质的例子包括磁存储介质(例如,ROM(只读 存储器)、软件、硬盘等)、光记录介质(例如,CD-ROM(只读光盘存储器)、 或DVD(数字多功能盘)、和像载波(例如,通过因特网传输)那样的存储 介质。并且,根据本发明实施例的方法可以具体化成包括计算机可读代码的 介质,因此,计算机可读记录介质分布在网络耦合计算机系统上和被分布式 执行。此外,熟悉本发明相关技术的编程人员可以容易地构造出执行根据本 发明实施例的方法的功能程序、代码和代码片段。

尽管已经示出和描述了本发明的一些示例性实施例,本领域的技术人员 应当理解,在不背离权利要求及它们的等价物中限定的本发明的原则和精神 的情况下,可以对这些示例性实施例做出变化。

本文发布于:2023-04-14 07:02:42,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/4/86362.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图