利用安全性、定制化和可扩展性向变化的用户分发内容文档.pdf

上传人:Y948****062 文档编号:1034201 上传时间:2018-03-27 格式:PDF 页数:72 大小:2.81MB
返回 下载 相关 举报
摘要
申请专利号:

CN200780037141.9

申请日:

2007.08.07

公开号:

CN101523341A

公开日:

2009.09.02

当前法律状态:

授权

有效性:

有权

法律详情:

专利权人的姓名或者名称、地址的变更IPC(主分类):G06F 7/00变更事项:专利权人变更前:谷歌公司变更后:谷歌有限责任公司变更事项:地址变更前:美国加利福尼亚州变更后:美国加利福尼亚州|||授权|||实质审查的生效|||公开

IPC分类号:

G06F7/00; G06F17/30; G06F15/16

主分类号:

G06F7/00

申请人:

谷歌公司

发明人:

肖门·萨哈; 乔恩·斯尼托; 杰西·谢

地址:

美国加利福尼亚州

优先权:

2006.8.7 US 60/835,861; 2006.10.31 US 60/863,600; 2007.6.1 US 11/756,926

专利代理机构:

中原信达知识产权代理有限责任公司

代理人:

张焕生;安 翔

PDF下载: PDF下载
内容摘要

一种系统和方法,用于:接收对容器文档的请求、确定该请求是否是对与用户群组相关联的容器文档、确定该请求的请求者是否与在用户群组内的多个状态级别之中的用户群组内的一状态级别相关联、基于请求者是与用户群组内的一状态级别相关联的确定来确定请求者的状态级别、基于容器文档是与用户群组相关联的确定以及状态级别来请求配置信息、接收配置信息、并且使用该配置信息来派发容器文档。

权利要求书

1.  一种方法,包括:
接收对容器文档的请求;
确定所述请求是否是对与用户群组相关联的容器文档的请求;
确定所述请求的请求者是否与在所述用户群组内的多个状态级别中的所述用户群组内的一状态级别相关联;
基于所述请求者是与所述用户群组内的一状态级别相关联的确定来确定所述请求者的状态级别;
基于所述容器文档是与用户群组相关联的确定以及所述状态级别来请求配置信息;
接收所述配置信息;以及
使用所述配置信息来派发所述容器文档。

2.
  如权利要求1所述的方法,其中所述容器文档的内容基于所述多个状态级别变化。

3.
  如权利要求1所述的方法,其中所述多个状态级别中的每个与各自的容器文档相关联,并且所述容器文档中的每个的内容基于所述状态级别变化。

4.
  如权利要求3所述的方法,其中所有的所述各自的容器文档包括通用模板,并且在所述各自的容器文档的每个的一部分内的内容基于所述状态级别变化。

5.
  如权利要求1所述的方法,其中所述状态级别基于用户订购。

6.
  一种方法,包括:
接收对容器文档的请求;
确定所述请求是否是对与用户群组相关联的容器文档的请求;
确定与所述请求相关联的位置;
基于所述容器文档是与用户群组相关联的确定以及所述位置来请求配置信息;
接收所述配置信息;以及
使用所述配置信息来派发所述容器文档。

7.
  如权利要求6所述的方法,其中所述容器文档的内容基于所述位置。

8.
  如权利要求6所述的方法,其中多个位置中的每个位置与各自的容器文档相关联,并且所述容器文档中的每个的内容基于所述位置变化。

9.
  如权利要求8所述的方法,其中所有的所述各自的容器文档包括通用模板,并且在所述各自的容器文档的每个的一部分内的内容基于所述位置变化。

10.
  如权利要求6所述的方法,其中所述容器文档的语言基于所述位置。

11.
  如权利要求6所述的方法,其中所述位置是使用与网络设备相关联的信息自动确定的。

12.
  一种派发容器文档中的内容的系统,包括:
第一服务器,用于:接收对容器文档的请求;确定所述请求是否是对与用户群组相关联的容器文档的请求;确定所述请求的请求者是否与在所述用户群组内的多个状态级别中的所述用户群组内的一状态级别相关联;基于所述请求者是与所述用户群组内的一状态级别相关联的确定来确定所述请求者的状态级别;基于所述请求是对与用户群组相关联的容器文档的请求的确定以及所述状态级别来从配置服务器请求配置信息;从所述配置服务器接收所述配置信息;以及使用所述配置信息来派发所请求的容器文档,
其中所述配置服务器使得能够对容器文档的至少一部分进行配置,以及
其中所述容器文档与用户群组相关联。

13.
  一种派发容器文档中的内容的系统,包括:
第一服务器,用于:接收对容器文档的请求;确定所述请求是否是对与用户群组相关联的容器文档的请求;确定与所述请求相关联的位置;基于所述请求是对与用户群组相关联的容器文档的请求的确定以及所述位置来从配置服务器请求配置信息;从所述配置服务器接收所述配置信息;以及使用所述配置信息来派发所请求的容器文档,
其中所述配置服务器使得能够对容器文档的至少一部分进行配置,以及
其中所述容器文档与用户群组相关联。

14.
  一种编码有计算机程序代码的计算机可访问介质,所述计算机程序代码用于执行以下步骤:
接收对容器文档的请求;
确定所述请求是否是对与用户群组相关联的容器文档的请求;
确定所述请求的请求者是否与在所述用户群组内的多个状态级别中的所述用户群组内的一状态级别相关联;
基于所述请求者是与所述用户群组内的一状态级别相关联的确定来确定所述请求者的状态级别;
基于所述容器文档是与用户群组相关联的确定以及所述状态级别来请求配置信息;
接收所述配置信息;以及
使用所述配置信息来派发所述容器文档。

15.
  一种编码有计算机程序代码的计算机可访问介质,所述计算机程序代码用于执行以下步骤:
接收对容器文档的请求;
确定所述请求是否是对与用户群组相关联的容器文档的请求;
确定与所述请求相关联的位置;
基于所述容器文档是与用户群组相关联的确定以及所述位置来请求配置信息;
接收所述配置信息;以及
使用所述配置信息来派发所述容器文档。

16.
  如权利要求1所述的方法,其中对所述请求是否是对与用户群组相关联的容器文档的请求的所述确定包括检索与域名相关联的信息,其中所述域名可由所述用户群组来选择,并且与所述域名相关联的所述信息存储在动态表中。

17.
  如权利要求6所述的方法,其中对所述请求是否是对与用户群组相关联的容器文档的请求的所述确定包括检索与域名相关联的信息,其中所述域名可由所述用户群组来选择,并且与所述域名相关联的所述信息存储在动态表中。

说明书

利用安全性、定制化和可扩展性向变化的用户分发内容文档
本申请要求2006年8月7日递交的美国临时申请No.60/835,861、2006年10月31日递交的美国临时申请No.60/863,600以及2007年6月1日递交的美国专利申请No.11/756,926的优先权。
技术领域
本发明的实施例涉及用于通过网络来派发内容的数字数据处理。
背景技术
门户网站使得用户可以对门户网站上的内容进行个性化。门户网站是从门户网站开发者直接提供给最终用户的,并且不为第三方提供增值的手段。对于很大数量的门户网站提供者,不能轻易地用定制方式大批量生成门户网站。另外,门户网站允许最终用户并入的内容通常由门户网站提供者所限制和规定。
当前系统存在这些或其他缺点。
发明内容
本说明书公开了用于在可扩展基础上将任意可选择的和动态的内容安全地派发给用户的第三方服务的技术的各种实施例。实施例展示了包括计算机程序产品装置的方法、系统、装置的特点。
因此,本发明的各种示例性实施例可以指向一种方法,包括:提供与第一实体相关联的可定制内容文档、使得第二实体能够为与实体相关联的用户来规定要包括在可定制内容文档中的内容、并用安全的方式将并入特定内容的定制内容文档传送给与第二实体相关联的用户。
各种示例性实施例也可以指向一种方法,包括:接收与用户群组相关联的一个或多个选择、并将容器文档派发给用户。在这些实施例中,一个或多个选择识别对于一个或多个容器文档将要派发给与用户群组相关联的用户的内容,并且容器文档包括由一个或多个选择所识别的用于用户与其相关联的用户群组的内容。而且,将内容安全地并入容器文档。
各种示例性实施例还可以指向一种方法,包括:接收与用户群组相关联的一个或多个选择,并且将选择发送给容器服务器系统,该容器服务器系统基于对内容的请求,将容器文档派发给用户群组的用户。在这些实施例中,一个或多个选择识别对于一个或多个容器文档将要派发给与用户群组相关联的用户的内容。
各种示例性实施例还可以指向派发容器文档中的内容的系统。系统包括服务器,用于:接收对容器文档的请求;确定该请求是否是对与用户群组相关联的容器文档的请求;基于该请求是对与用户群组相关联的容器文档的请求的确定从配置服务器请求配置信息;从配置服务器接收配置信息;并且使用该配置信息来派发所请求的容器文档。在这些实施例中,配置服务器使得能够对容器文档的至少一部分进行配置,并且该容器文档与用户群组相关联。
各种示例性实施例还可以指向一种方法,包括:接收对容器文档的请求;确定该请求是否是对与用户群组相关联的容器文档的请求;基于该请求是对与用户群组相关联的容器文档的请求的确定来请求配置信息;接收配置信息;并且使用该配置信息来派发容器文档。在这些实施例中,配置信息定义与用户群组相关联的容器文档的至少一部分。
各种示例性实施例还可以指向一种方法,包括:接收对容器文档的请求;确定该请求是否是对与用户群组相关联的容器文档的请求、确定该请求的请求者是否与在用户群组内的多个状态级别之中的用户群组内的一状态级别相关联、基于请求者是与用户群组内的一状态级别相关联的确定来确定请求者的状态级别、基于容器文档是与用户群组相关联的确定以及状态级别来请求配置信息、接收配置信息、并且使用该配置信息来派发容器文档。
各种示例性实施例还可以指向一种方法,包括:接收对容器文档的请求;确定该请求是否是对与用户群组相关联的容器文档的请求;确定与请求相关联的位置;基于容器文档是与用户群组相关联的确定以及位置来请求配置信息、接收配置信息;并且使用该配置信息来派发容器文档。
各种示例性实施例还可以指向派发容器文档中的内容的系统。该系统包括服务器,用于:接收对容器文档的请求;确定该请求是否是对与用户群组相关联的容器文档的请求、确定该请求的请求者是否与在用户群组内的多个状态级别之中的用户群组内的一状态级别相关联;基于请求者是与用户群组内的一状态级别相关联的确定来确定请求者的状态级别;基于请求是对与用户群组相关联的容器文档的确定以及状态级别来从配置服务器请求配置信息;从配置服务器接收配置信息;并且使用该配置信息来派发所请求的容器文档。在这些实施例中,配置服务器使得能够对容器文档的至少一部分进行配置,并且该容器文档与用户群组相关联。
各种示例性实施例还可以指向派发容器文档中的内容的系统。该系统包括服务器,用于:接收对容器文档的请求;确定该请求是否是对与用户群组相关联的容器文档的请求;确定与该请求相关联的位置;基于该请求是对与用户群组相关联的容器文档的请求的确定以及位置从配置服务器请求配置信息;从配置服务器接收配置信息;并且使用该配置信息来派发所请求的容器文档。在这些实施例中,配置服务器使得能够对容器文档的至少一部分进行配置,并且该容器文档与用户群组相关联。
各种示例性实施例还可以指向编码有计算机程序代码的计算机可访问的介质。计算机程序代码用于:接收对容器文档的请求;确定该请求是否是对与用户群组相关联的容器文档的请求;确定该请求的请求者是否与在用户群组内的多个状态级别之中的用户群组内的一状态级别相关联;基于请求者是与用户群组内的一状态级别相关联的确定来确定请求者的状态级别;基于容器文档是与用户群组相关联的确定以及状态级别来请求配置信息;接收配置信息;并且使用该配置信息来派发容器文档。
各种示例性实施例还可以指向编码有计算机程序代码的计算机可访问的介质。计算机程序代码用于:接收对容器文档的请求;确定该请求是否是对与用户群组相关联的容器文档的请求;确定与请求相关联的位置;基于容器文档与用户群组相关联的确定以及位置来请求配置信息;接收配置信息;并且使用该配置信息来派发容器文档。
各种示例性实施例还可以指向一种方法,包括:基于用户与用户群组的关联对用户进行鉴权;向用户提供应用;从用户接收关于配置与用户群组相关联的容器文档的输入;基于接收的输入将容器文档的实际表示提供给用户;并且发布该容器文档。在这些实施例中,应用使得用户能够配置与用户群组相关联的容器文档。
各种示例性实施例还可以指向一种方法,包括:注册用户接口的组件;注册关于容器文档的配置的事件、将已注册组件与已注册事件相关联;接收已经对一个已注册组件发生的已注册事件相关联的信息;并且将与已注册事件相关联的信息提供给所有其它相关联的组件。在这些示例中,用户接口与对代表用户群组的容器文档进行配置相关联。
各种示例性实施例还可以指向一种系统,其包括设备,用于:注册用户接口的组件;注册关于容器文档的配置的事件、将已注册组件与已注册事件相关联;从用户接口接收已经对一个已注册组件发生的已注册事件相关联的信息;并且将与已注册事件相关联的信息提供给所有其它相关联的组件。
可以考虑其他实施例。
附图说明
图1(a)描述根据本发明各种实施例的在所提供的系统以及方法中的参与实体的概略图。
图1(b)描述根据本发明各种实施例的从用户和用户群组获取定制的说明性过程。
图1(c)描述根据本发明各种实施例的整体系统架构。
图2描述根据本发明各种实施例的说明性容器文档。
图3描述根据本发明各种实施例的说明性配置服务器。
图4描述根据本发明各种实施例的用于确定验证器的说明性过程。
图5描述根据本发明各种实施例的用于配置个性化容器文档的说明性过程。
图6描述根据本发明各种实施例的说明性应用接口。
图7描述根据本发明各种实施例的说明性应用接口。
图8描述根据本发明各种实施例的说明性应用接口。
图9描述根据本发明各种实施例的说明性应用接口。
图10描述根据本发明各种实施例的说明性应用接口。
图11描述根据本发明各种实施例的说明性应用接口。
图12描述根据本发明各种实施例的说明性应用接口。
图13描述根据本发明各种实施例的说明性应用接口。
图14描述根据本发明各种实施例的说明性应用接口。
图15描述根据本发明各种实施例的说明性应用接口。
图16描述根据本发明各种实施例的用于派发个性化容器文档的说明性过程。
图17描述根据本发明各种实施例的说明性应用接口。
图18描述根据本发明各种实施例的说明性应用接口。
图19描述根据本发明各种实施例的说明性应用接口。
图20描述根据本发明各种实施例的说明性应用接口。
图21描述根据本发明各种实施例的说明性应用接口。
图22描述根据本发明各种实施例的用于派发个性化容器文档的说明性过程。
具体实施方式
第三方服务的概述
本发明的一个实施例涉及基于可扩展向用户安全地派发任意可选择和动态的内容的第三方服务。例如,一个实施例涉及四种实体:(1)托管服务器系统(例如,Google的个性化主页服务器),其将高度可配置、动态和安全的容器文档(例如,诸如Google的个性化网页的门户页面)分发给合作伙伴或其他用户群组;(2)合作伙伴,其中每个合作伙伴通过选择其希望其用户在容器文档中看见的任意和动态的内容并使得其最终用户能够进一步定制内容来提供配置;(3)与合作伙伴相关联的最终用户,其可以选择包括附加任意和动态的内容的进一步定制;以及(4)内容提供者。这些方以安全和可扩展的方式与托管服务器系统相交互。然后,最终用户从可扩展的托管服务器系统接收容器文档,该容器文档已经根据多级别的配置进行配置并包括以安全方式并入的任意选择的内容(包括动态和静态内容两者)。
服务的特征
该服务和系统的一些特征包括:第三方服务、安全性、任意可选择性、动态内容、可扩展性、多级别的可配置性和容器文档的动态规定。
第三方服务:因为托管服务器系统(例如,Google)作用为相对于以下的第三方:(i)正被派发内容的最终用户(ii)规定对最终用户可用的内容的实体,以及(iii)内容提供者,所以可以将该服务认为是“第三方服务”。规定内容的实体典型地是用户群组,诸如合作伙伴。作为一个示例,当本说明中使用术语合作伙伴时,应当理解也同样适用于其他用户群组,并且当使用术语用户群组时,应当理解也适用于合作伙伴。公司及其客户分别是合作伙伴实体和最终用户的示例。大学及其学生也是合作伙伴实体及其最终用户的示例。因此,公司可以为其用户提供经配置的主页体验,并选择公司希望其用户在该经配置的主页上看见的内容。其通过利用容器文档的托管服务器系统的服务来做到这点。换言之,合作伙伴可以在不提供输出由托管服务器系统所提供的经配置的主页的技术的情况下来提供该服务。如在本说明中所用的,术语内容提供者是指信息的源。内容提供者的示例包括但不限于以下的提供者:模块、新闻供稿、交通信息源、金融信息源、和/或娱乐信息源。
安全性:容器文档可以是安全的但是任意可选择和动态的内容(即托管服务器系统不限制由第三方或用户所进行的最初选择)。例如,合作伙伴可以选择由对于托管服务器系统是未知的实体所创建的模块。托管服务器系统可以通过实施安全特征以避免必须在选择每个实体之前必须对其进行批准,来呈递包括未知实体的模块的容器文档。可以通过划分、封装(例如通过使用如以下进一步详细描述的IFRAME技术)和/或输入过滤(例如,内容的黑名单、白名单等)来实施安全性。在本上下文中,划分涉及限制由恶意或易受攻击(例如,不安全)的合作伙伴或最终用户对与合作伙伴或最终用户相关联的定制容器文档的攻击的影响,并且没有从与用于访问定制的容器文档的相同登录或身份相关联的系统可用的其它划分或账户。
划分是安全性的关键组件,因为尽管内容是任意可选和动态的的事实,但是不危及第三方的安全性。如果例如恶意合作伙伴或由于合作伙伴的易受攻击性(XSS等)使危及了用户的鉴权,则仅危及用户的个性化网页。即使在成功攻击之后,攻击者也不能获得访问用户的搜索历史或电子邮件消息或其他“划分”。实施的安全性特征使得合作伙伴及其用户能够在利用托管服务器系统平台的同时配置其体验。
任意可选择性:上述的安全性特征使得系统能够允许对内容的任意选择。合作伙伴实体和相关联的用户可以从任何内容提供者(例如,包括托管服务器系统的源、第三方和/或其他内容源)选择要使其可用于向与合作伙伴实体相关联的用户派发的内容。合作伙伴可以选择限制或不限制对其最终用户可用的选择。系统可以用这种方式避免使用预先批准的内容提供者列表。如下所述,内容也可以是广泛的各种输入类型。
动态内容:所选的内容可以是动态内容、静态内容或其两者。内容也可以是节目。
可扩展性:托管服务器系统从例如通过对与非关系数据库服务器一起使用的数据进行分割而获得的可扩展平台来提供该服务。该方案平衡了数据一致的规模和方便性。某些类型的非关系数据存储系统允许极为可扩展的写操作。例如,将不对条目提供事务或锁定支持而存储时间序列数据的数据库不认为是关系数据库,因为用于关系(列1值、列2值...)的条目不是唯一的而是时间序列的。通过使用这类非关系数据库,系统可以变得极为可扩展。大部分对共享数据的写操作是从用户的一个很小的组(一个或几个合作伙伴管理员)所启动的,而读操作被广泛地(例如,每次最终用户请求页面,可能加载用于关联容器文档的模板)启动。使用传统的关系数据库也可以实现可扩展性,对于可扩展的读操作高度复制,具有主机故障转移(master failover),以使能高度可扩展性使用这种方法可能增加开销,并增加系统的复杂性和延迟。
然而,如上所述的简单非关系存储系统使得用于分发可配置容器文档的系统和服务能够在大规模上执行良好。这类系统和服务涉及集中式写和分散式读、高吞吐量(可扩展性和简单性)以及高可用性(支持故障转移)。上述数据库结构使得相比诸如高度复制的关系数据库的其他替选可以低许多的费用(在给定规模上需要更少的服务器)来实施。
多级别可配置性:可以通过合作伙伴/用户群组来配置派发的内容,该配置可以规定与实体相关联的最终用户在其下可以进一步对内容进行配置的约束。
对容器文档的动态提供:合作伙伴/用户群组可以选择唯一索引的合作伙伴域,该合作伙伴域可以由托管服务器系统来存储在动态表中。通过存储该唯一索引的合作伙伴域,托管服务器系统可以用高度可扩展的方式来动态提供与合作伙伴/用户群组相关联的容器文档。
以下详细讨论本发明的示范性实施例。尽管讨论了特定示范性实施例,但是应当理解这仅用于解释的目的。相关领域的技术人员将意识到在不偏离本发明精神和范围的前提下,可以使用其他组件和配置。
服务的优点
该服务提供的一些优点包括:诸如公司、大学、俱乐部、商人、服务提供者等的实体(例如,合作伙伴或用户群组)可以使用服务而不必派发内容来实现其品牌方案。其在将什么内容派发给与实体相关联的用户上提供了极大的灵活性。该服务还为实体提供了一种机制来将提供的唯一内容提供给其与实体相关联的用户。
而且,使用该服务的实体将费用中心转换为利润中心。诸如公司的实体经常付费来将内容派发给其客户。使用上述服务,公司通过包括产生收入的内容,诸如派发广告的内容,来取得利润,该利润在各种付费基础上对派发广告的人进行付费。
而且,经由直觉的和易于使用的接口,该服务是易于使用的,通过该接口,与合作伙伴实体相关的人类操作员(例如代表)在实体层或最终用户层上对内容进行配置。
系统及其运行的概述
图1(a)描述了在该系统和服务中涉及的各种实体的概述。可以使用与一个或多个内容提供者31合作经由网络26(例如因特网)向合作伙伴系统40提供服务的托管服务器系统10来实施该服务和系统。合作伙伴系统40可以通过使用合作伙伴管理员用户17来向托管服务器系统10提供选择和配置,该选择和配置指示:与合作伙伴系统相关联的域、对一个或多个合作伙伴最终用户的鉴权方法、以及要在由托管服务器系统10派发给一个或多个合作伙伴最终用户11的容器文档中所提供的内容。
托管服务器系统10可以与分发服务器13一起运转,以将服务分发给一个或多个合作伙伴系统。可以提供存储容器数据、用户数据和合作伙伴数据的数据存储系统200。该数据可以被托管服务器系统10用来基于由合作伙伴以及每个合作伙伴最终用户11(如果提供)所设置的配置来对用户配置容器文档。通常说来,合作伙伴管理员用户17具有管理权限,而合作伙伴最终用户11没有管理权限。合作伙伴管理员用户17可以例如控制:用于对合作伙伴最终用户11进行鉴权的鉴权方法;以及哪个内容提供者将对合作伙伴最终用户11的选择可用;以及进一步,可配置性的程度。
图1(b)提供了说明在该服务中可能涉及的动作的图。在框102中,合作伙伴或用户群组与托管服务器系统建立关系。合作伙伴可以是公司、大学、俱乐部或希望对其用户提供定制体验的其它组织。在框104中,合作伙伴管理员用户然后可以用将均在下面详述的多种方式配置容器文档,诸如因特网门户页面或个性化主页。定制可以包括例如其最终用户中的一个为选择内容和/或为配置个性网页所要服从的合作伙伴的约束规定。注意,合作伙伴可以对不同的最终用户规定不同的约束。系统然后可以使得经配置的容器文档对与该合作伙伴相关联的用户可用。
在框106中,合作伙伴可以用某种方式将合作伙伴最终用户向主机系统识别。合作伙伴最终用户可以包括公司的雇员、大学或其它学校的学生、俱乐部的成员、服务的订户等。在框108中,可以将默认的合作伙伴配置的容器文档派发给合作伙伴最终用户。该默认的合作伙伴配置的容器文档包括由合作伙伴选择来派发给其用户的第一级别内容和/或配置。在框110中,最终用户可以提供用于经配置的容器文档的配置。该经配置的容器文档包括附加级别的基于最终用户期望的内容选择和/或配置。
具体实施特征
在记住了整体一般框架的情况下,在该系统和服务中可以包括多种实施特征,包括:多级别配置、内容冻结、并入多种类型的模块、访问经配置的容器文档的多条通道、使用偏好和用户标识来改变内容模块和在模块中的内容、并入搜索或其它收入产生模块、模块的国际化、数据驱动容器文档实施、使用基于订购的模块、根据合作伙伴配置不断修改默认的容器文档、定制的实时预览以及对产生的经配置的容器文档的实时更新。下面描述了每种实施特征,并且在该文档的随后做进一步具体解释。
多级别配置控制用户体验:合作伙伴可以设置一个级别的配置和/或偏好,包括在默认的合作伙伴配置的容器文档中要包括什么模块(例如,合作伙伴想要天气模块、交通模块、股票模块和计算器模块)、到模块的任意输入值(对天气和交通提供邮编,或对股票模块提供股票列表)、颜色、皮肤类型、模块以及如以下说明页面中所示的很多其他项的定位,以及如果有的话,可以冻结什么模块。如果合作伙伴对其配置做出任何改变,则它们可以自动应用于用于该合作伙伴相关联的所有最终用户的所有经配置的容器文档。下面详述合作伙伴提供配置/定制信息的方式。在这样的最终用户配置和合作伙伴配置应用到用于该最终用户的合作伙伴配置的容器文档的情况下,最终用户然后可以规定第二级别的配置/定制。
内容冻结:合作伙伴配置的一种特定类型可以是内容冻结。服务提供合作伙伴可以使用来使派发给最终用户的所有或仅一部分的内容的可配置性失效的技术。被选择失效的内容本质上是被冻结,因为该内容不能由合作伙伴最终用户做进一步配置。注意,内容冻结可以但是不必要冻结动态内容,例如,其可以仍然在个性化网页的冻结部分中实施。(也就是,冻结页面的一部分防止对该部分的进一步配置,但是允许该部分包括动态内容)。例如,可以因而冻结个性化网页的否则是可配置的内容的列。然而,当合作伙伴在配置容器文档的过程中时,该失效的内容对于合作伙伴管理员用户实体可能不是被冻结的。可以通过CGI参数和鉴权技术来实施该特征。例如,用于指定用户是合作伙伴管理员用户的页面要求可以通过cookie来提供鉴权值、使能特定的查询参数,从而托管服务器系统提供非冻结的页面,而与该合作伙伴相关联的最终用户可以接收具有冻结内容的版本。
该服务还允许合作伙伴管理员如同该管理员是非特权用户那样查看页面。如上所述,合作伙伴管理员用户可以在非冻结上下文中查看冻结内容。然而,如果合作伙伴预览页面来确定其是否被适当配置了,则合作伙伴也可以能够在冻结上下文中查看页面。服务使用鉴权令牌来使能正确的依赖上下文的行为,该鉴权令牌不仅用于对页面的访问进行鉴权,也对用于使能依赖上下文的行为的查询参数的访问进行鉴权。
并入多种类型的模块:该系统使得合作伙伴和最终用户能够指定广泛的各种模块用于合并,包括:RSS模块、远程模块、用于个性化主页的基于API的模块,诸如Google Gadget API模块等。在所附专利申请中更详细地描述了合并这些模块的能力。
进入系统的多入口点:最终用户可以与合作伙伴和托管服务器系统都具有关系。因此,托管服务器系统可以通过使用与由托管服务器系统所提供的账户和/或由合作伙伴所提供的账户相关联的鉴权值来使得用户能够访问合作伙伴容器文档。例如,如果托管服务器系统是Google,则用户可以能够通过使用Google登录和密码来访问特定于合作伙伴的个性化主网。而且,用户可以能够通过使用与合作伙伴相关联的登录和密码来访问特定于合作伙伴的个性化主网。也可以使用用户标识来接收特定于合作伙伴的容器文档。而且,在配置合作伙伴容器文档期间,合作伙伴管理员用户可以从系统可以采用的预定鉴权方法列表中选择用于对最终用户进行鉴权的鉴权方法。例如,在一个实施中,如果系统允许三种鉴权方法,则合作伙伴管理员可以仅选择三种中的一种。替代地,合作伙伴管理员可以允许一种以上的鉴权方法。然后,系统基于由管理员用户所选择的方法来进行鉴权。例如,合作伙伴管理员用户可以选择经由托管服务器系统所提供的账户来对所有的合作伙伴最终用户进行鉴权。即使该用户还具有与合作伙伴的账户,也能使用该鉴权。在另一示例中,合作伙伴管理员用户可以选择经由合作伙伴所提供的账户来对所有的合作伙伴最终用户进行鉴权。可以使用该鉴权来代替由托管服务器系统所提供的账户。可以选择其他鉴权方案,诸如例如仅基于cookie的匿名鉴权方法。
基于注册的受控体验:可以基于注册或其它形式的鉴权来修改某些模块。例如,作为计算机制造者的合作伙伴可以将帮助模块并入到其合作伙伴定制主网上。在帮助模块中的内容可以根据用户的注册级别而变化(例如,用户是否签约了目前的客户支持,他们要求什么级别的支持等)。
模块中的商业:受控体验可以使得合作伙伴能够将合作伙伴容器文档货币化。合作伙伴可以对用户访问某些模块或在该模块中的内容来收取订购费用。例如,合作伙伴可以提供音乐模块。对合作伙伴的音乐模块的订购可以使得用户能够基于订购来选择收听某些音乐选集。而且,在音乐模块中,合作伙伴可以提供不同的订购。例如,一个订购可以允许最终用户收听音乐,而另一个可以允许用户收听并下载音乐。
搜索框模块:合作伙伴可以选择的模块之一可以是搜索模块,其引导至托管的派发广告的搜索页(例如,链接到现有的用于搜索的AdSense)。与搜索模块相关联来显示广告,为合作伙伴提供了将合作伙伴容器文档货币化的另一种方式。在一个示例中,搜索框模块可以是请求的容器文档的模块。
选择性的和自动的国际化:容器文档可以基于由合作伙伴或其用户所提供的配置/定制来将容器文档国际化。
数据驱动的容器文档:可以将用于合作伙伴的容器文档设计为基于输入到系统的数据来产生具有不同内容的通用模板(例如,使用WiFi检测来基于位置对合作伙伴容器文档进行修改)。系统还提供了不同的本地化合作伙伴容器文档。
默认容器文档的修改:系统可以提供合作伙伴随后配置的默认容器文档。容器文档服务器和/或托管服务器系统然后与提供的接口协作,以确保提供的内容以安全方式满足合作伙伴配置选择。
全功能预览:与配置接口相交互的合作伙伴管理员用户可以查看基于输入的配置信息的容器文档的实况版本,并且用户看到的内容是包括来自托管服务器系统的实际内容和模块的容器文档(例如,不仅是模型)。系统可以进一步允许对来自预览页面内的模块进行编辑。
对容器文档的实时更新和实时预览:使用与感兴趣方相关联的事件的中央库使得系统能够基于与这些项相关的变化来更新实时预览和实时容器文档。库可以跟踪要向哪些用户接口或模块通知改变其性能的事件,并且然后立即通知它们。作为示例,如果合作伙伴管理员用户请求改变合作伙伴定制容器文档的背景色,则一旦合作伙伴管理员用户选择了颜色样本,背景色就自动改变(而不是要求用户例如表示“应用”)以用于真实的、实时的预览。
在以下讨论的随后系统、方法和示例页面的上下文中,将会更加详细地理解这些特征中每一个。
多级别可配置性和内容冻结
用于该服务和系统的一个实施特征涉及容器文档的内容的多级别可配置性。接下来,与示例系统一起描述示例容器文档,该示例系统可以用于使得合作伙伴和最终用户能够提供配置信息。
容器文档的一个示例是与合作伙伴或其他用户群组的用户相关联的个性化门户页面。可以由合作伙伴/用户群组来预先定义个性化门户页面上的一部分内容,并且可以由最终用户来配置和定制一部分个性化门户页面。
容器文档“包含”一个或多个模块。可以由用户群组的代表来预先定义“包含”在容器文档内的任意数量的模块或其它内容。如此处所用,应当将术语“容器文档”或“容器”理解为包括:网站的个性化主页、与用户群组相关联的门户页面、侧边栏、合并一个或多个这类模块的工具条、站点托管的页面、能够用模块的格式(例如,XML)来呈现模块的文档(例如任何能够呈现HTML代码或XML代码的文档)。而且,容器文档可以是并入从联合系统提供给网站的模块的另一实体的网站。
如此处所用,可以将术语“模块”理解为指呈现用于在容器文档中使用的数据的一部分软件和/或硬件。例如,可以将模块个性化为用户偏好、容器的偏好、环境或其它输入的偏好,包括由用户群组所定义的偏好。可以将模块规范理解为包括用于使用已预先定义的元件来呈现用于容器文档的数据的一组指令。
应当理解,可以存在各种形式的容器文档,但是在图2中描述了一种这类说明性示例。图2描述了具有已经使用IFRAME和内嵌HTML技术并入到容器文档的多个模块的容器页面200。这些IFRAME可以使得托管服务器系统能够对由用户群组所定义的任意选择内容进行封装。在一个示例中,也可以在有或没有封装层的情况下,在容器文档中派发模块。封装层可以在多种类型的系统中提供有用的功能(例如,在HTML文档中的IFRAME内派发模块提供了安全性增强屏障)。其它应用可能更倾向于在没有这类封装层的情况下派发模块内容(例如,为了提高性能或易于布局或内容管理)。
图2描述了在容器文档200中的多个模块和其他内容,包括:页头201、标志202、搜索框203、用户群组内容204、“添加内容”元件205、用户选择的模块206、远程模块207、远程模块208、以及远程模块209。用于各种模块的不同格式可以根据例如模块的创建人的规定和/或由用户群组的代表对模块的定义而存在。按照描述,一些模块可以提供滚动条,而其它不能。一些模块相对其它模块可能具有不同的大小或形状。另外,一些模块可以为用户提供机会来编辑显示偏好和/或与模块相关联的每次使用的数据。(例如,参见提供编辑链接的模块206、208和209)。例如,如果模块与天气模块相关,则可以对用户提供机会来编辑在该模块中对其显示天气的城市或邮编。
可以由用户群组和/或用户群组的代表来创建和/或预先定义在容器页面200上的一部分内容。例如,页头201可以包括与该用户群组相关联的链接201a。标志202也可以是与该用户群组相关联的标志。用户群组内容204可以由用户群组来创建和/或定义并且被可选地锁定或冻结(如下所述),使得个性化容器文档的用户不能去除、编辑或增加用户群组内容。
页头201可以包括HTML和/或XML代码,以例如在容器页面200上创建标题。页头201可以包括可以与该用户群组相关联的链接201a。例如,在用户群组与计算机硬件提供者相关联的情况下,链接201a可以包括到由计算机硬件提供者所提供的特定服务(例如,服务和支持)的链接,以及到由计算机硬件提供者所提供的特定商品(例如,台式机、笔记本电脑、外设、和/或打印机)的链接。在用户群组与因特网服务提供商(ISP)相关联的情况下,链接201a可以包括到电子邮件、ISP所提供的内容驱动页面(例如,体育、金融、购物等)、顾客服务等的链接。
搜索框203可以包括文本区203a和搜索按钮203b,其中用户可以将文本输入到文本区203a,并激活(例如,点击)搜索按钮203b,其启动可能与容器页面200相关联的搜索引擎以搜索输入到文本区203a之中的文本。如以下更详细所述,当返回搜索结果时,与容器文档相关联的搜索引擎可以跟踪用户所执行的任何继续动作。
容器页面200可以包括用户群组内容204。用户群组内容204可以包括用户群组模块204a-204c。可以由用户群组来创建和/或定义用户群组内容和用户群组模块204a-204c。模块204a-204c可以是与用户群组特定相关联的模块,和/或可以选择来包括在用户群组内容204之中的任何其它不相关的模块。可以给予与用户群组相关联的代表以管理特权,以创建和/或定义用户群组内容204。
该示例容器文档200提供的功能之一是用户有机会通过选择“添加内容”元件205来将内容添加到容器页面。可以由用户群组来定义和/或限制可用于添加到容器页面200的内容(例如,分类)。例如,用户群组可以限制用户添加竞争者的模块或可能认为是用户群组不期望的任何其它模块。
例如,一旦选择“添加内容”元件,则系统可以基于用户群组所定义的分类,提供给最终用户机会来交互式地指示将要包括在容器页面之中的附加模块。可以提供接收该输入的各种形式的接口。
用户选择的模块206和远程模块207-209可以是添加内容的结果。
内容冻结:
可以将用户添加的内容根据用户的偏好放置在容器页面200之中。然而,可以限制或防止用户放置、移动、或修改由用户群组所定义的某些内容。换言之,合作伙伴/用户群组定义容器文档的某些部分可以对用户冻结。于是,结果容器页面200可以包括根据用户群组所建立的偏好由用户群组所定义的一部分容器页面,以及根据用户的偏好由用户所定义的一部分容器页面。例如,可以冻结一列模块或一行模块,使得用户不能消除、移动、改变、或变更其位置和/或内容。另外,可以冻结在合作伙伴容器页面上的某些空白空间,以防止用户将模块添加到该空白空间上。
与容器服务器系统的交互
如上所述,托管服务器系统10可以基于特定于合作伙伴的配置和特定于最终用户的配置,将容器文档派发给合作伙伴的最终用户。为了实际产生具有内容的容器文档,可以使用各种平台。
一种这类平台可以是远程模块系统和相关联的个性化Google主页系统,其在2005年12月12日提交的共同待决美国专利申请No.11/298,930,名称为“Remote Module Incorporation Into A ContainerDocument”中被详细描述,将其内容附在这里作为附录A。(注意,在本公开和附录A之间不一致的情况下,本公开对于每个实施例单独地具有权威性。在本公开和附录A相一致的情况下,但是范围不同,则更宽范围的本公开对于每个实施例单独地具有权威性。该申请详细描述了示例托管服务器系统10。图1(c)描述了提供与托管服务器系统10共同运行的多个系统的整体系统图。取自‘930申请的示例主机系统的详情在本文档中后面提供。
为了便于合作伙伴可以利用服务的优点,合作伙伴/用户群组可以使得一个或多个合作伙伴管理员用户能够与配置服务器系统相交互,该配置服务器系统与托管服务器系统10通信或者是它的一部分。这类系统的一个示例如图1(c)中的元件40所示。配置服务器系统40可以具有:配置服务器41、授权/鉴权单元42、和数据服务器43。另外,一个或多个用户群组数据库系统44可以与配置服务器系统40的各种单元相结合来运行。配置服务器系统40可以经由网络26(例如因特网)连接到托管服务器系统10。在一个示例中,配置服务器40可以被托管。
关于配置服务器系统40,可以提供配置服务器41以允许用户群组的代表来创建和/或定义容器文档、或要与用户群组相关联的一部分容器文档(例如一组模块),并使得合作伙伴最终用户能够选择/识别要应用于容器文档的鉴权方法。配置服务器41还可以与托管服务器系统10进行通信,以将容器文档派发给用户群组的用户。
可以提供授权/鉴权单元42来对用户群组的代表进行鉴权,可以就创建和/或定义与用户群组相关联的容器文档向该用户群组的代表计费。
可以提供数据服务器43来派发可以显示在容器文档之上的数据。数据服务器43可以存储并派发例如可以在容器文档中使用的图像和/或任何其它数据。例如,数据服务器43还可以存储用于可能专门为用户群组的用户所设计的模块的HTML代码。
尽管在图1(c)中示出了一种配置,但是本领域的普通技术人员应当理解,这些各种单元的其它配置也会是可能的。例如,可以将所描述的在托管服务器系统10中的各种单元放置在网络26附近的多个位置或是在数个网络之上的多个点。类似地,所描述的在配置服务器系统40中的各种单元也可以放置在网络26附近的多个位置附近,包括在例如托管服务器系统10之内。另外,尽管描述了单个托管服务器系统10和单个配置服务器系统40,应当理解,图1上描述的任意数量的每个单元都可以在网络26内提供。
说明性配置服务器
图3描述了配置服务器300的示例性实施例。配置服务器300可以是用于用户群组的代表来创建和/或定义用于用户群组的用户的一个或多个容器文档和建立用于用户群组的用户的鉴权方法的工具。如图3所述,配置服务器300可以包括servlet层301、验证层302、动作层303、以及后端层304。
配置服务器300可以将web应用派发给用户群组的代表(例如合作伙伴管理员用户17)的用户系统以使得这些代表能创建和/或定义用于用户群组的用户的一个或多个个性化容器文档。配置服务器300也可以是由用户所运行的本地应用。出于安全性的原因或是为了限制访问应用的用户数,例如,合作伙伴可以将本地、独立应用提供给代表,以安装在其用户系统上。代表可以被识别为具有对该用户群组的管理特权。这些特权可以使得代表能够接收web应用(或安装本地应用)以创建和/或定义用于用户群组的用户的一个或多个个性化容器文档。例如,代表所接收的web应用(或安装的本地应用)可以包括HTML编辑器,以使得代表能够对容器文档进行编辑。
配置服务器300允许代表和/或特权用户来定义例如跨越容器文档的顶部的可选标题和/或页头,可选地锁定包含在容器文档内的一列或多列模块,配置出现在容器文档上的默认的模块组,配置可以包括在用户的个性化容器文档上的一组可用模块(例如分类),配置用于出现在用户的个性化容器文档上的模块的默认选项,和/或用任何其它可能的方式来定义和/或配置容器文档。配置服务器300还允许代表和/或特权用户来选择可以用于将容器文档动态提供给用户的唯一索引的合作伙伴域,并选择用来对用户进行鉴权的鉴权方案。
例如,servlet层301可以与在代表的用户系统上执行的应用相协作来执行三个示例性servlet。如将要理解的,在这样的实施例中,servlet可以包括任何程序,诸如web服务器、servlet引擎、CGI脚本、或非基于web的远程配置程序。例如,可以执行第一servlet来将用户接口派发给配置服务器的授权用户。例如,第一servlet可以接受无参数的HTTPGET请求,并且可以将初始的HTML接口和JavaScript客户端派发给授权用户,诸如用户群组的代表。而且,第一servlet可以从后端接口接收数据(例如,可用于由授权用户来更新的页面列表),并将该数据呈现给用户。
例如,可以执行第二servlet以接收对一个容器文档的更新。可以通过该servlet以JavaScript对象符号(JSON)格式来分别接收和发送输入和输出。可以将输入参数与“动作”相关联,并且值可以是一批“动作”对象的JSON表达。该servlet可以将JSON表达反序列化(例如,将“动作”对象转换为JAVA文件),并将反序列化的参数传递给在配置服务器内的其它层。而且,该servlet可以一般将配置信息从其用户输入格式(例如,JSON)转换为HTML、XML、微软word宏等。
可以执行第三servlet以例如处理数据上载。可以将包括但不限于图像的数据接收为“多部分/形式的数据”,并且可能需要用不同于提取GET/POST参数的方式来提取。一旦提取出,可以将上载数据的请求传递给配置服务器内的其它层。
上述的servlet可以仅对经授权的用户群组的那些代表才可访问。为了接收web应用,用户可以初始地将请求发布给第一servlet,由鉴权/授权单元来授权、被用户接口派发,并且随后经由用户接口将其它请求间接地发布给其它servlet。而且,为了接收本地独立应用,合作伙伴/用户群组可以在盘片上提供应用或使其可供用户下载。然后,用户可以安装应用并运行应用,以经由用户接口将其它请求间接地发布给其它servlet。
验证层302可以验证由servlet所接收的数据,并将数据进行转换,以供配置服务器的其它层使用。例如,servlet层301可以接受外部请求,并且由于该数据是外部的,所以可能需要将其验证为安全的。另外,servlet层301可以将参数作为字符串接收。当将参数作为字符串接收时,可能需要将这些参数转换为诸如键入的参数。
验证层302可以从servlet层301接受“动作”对象。“动作”对象可以提供请求的“动作”,以及执行该“动作”所需要的参数的字符串-字符串的名称-值映射。给出“动作”后,验证层302可以从配置服务器的另一层来确定需要什么类型的参数来执行该“动作”。基于该确定,验证层302可以验证输入的字符串,并将输入的字符串转换为合适类型的参数。
可以将参数的类型表示为“动作参数类型”。通过将参数的类型表示为“动作参数类型”,可以取代标准的Java类型。例如,统一资源定位符(URL)以及HTML块在Java中可以表示为字符串。不同的验证规则可以应用于这些不同的参数(例如,URL可以用已识别的方案来完善形式并且仅包含有效字符,而可以洗刷(scrub)HTML,使得其可以不包含可以打开安全漏洞的JavaScript)。为了将不同的验证规则应用于不同类型的参数,验证层302可以通过不同的验证器来运行不同的“动作参数类型”。
将每个“动作”映射到“动作参数类型”的列表也可以允许验证层302来自动选择对每个“动作”需要哪个验证器。图4描述了流程图400的示例性实施例,用于自动选择哪个验证器可以解决特定的“动作”。在框401中,可以从“动作”输入来确定“动作”。在框402之中,可以确定执行“动作”所需要的参数类型。可以通过在配置服务器之中的另一层来完成该确定。
对于执行“动作”所需要的每种参数类型,在框403中,可以接收“动作参数类型”。在框404中,可以确定用于“动作参数类型”的验证器。在框405中,可以确定来自“动作”输入的参数的字符串-值。在框406中,字符串-值可以通过验证器传递。在框407中,对于对应的字符串-值,验证器可以输出有效的Java-类型值。在框408中,可以保存Java-类型值。
可以使用一个或多个用于验证的方法。例如,简单参数(例如,布尔表达式)可以使用布尔过滤器来进行解析,而复杂参数(例如,对象)可以反序列化为Java对象。验证层302可以将验证的参数传送给用于动作的动作层303。
动作层303可以执行“动作”。动作层303可以从验证层302接收请求,并与后端层304相交互以执行“动作”。
可以将“动作”注册到“动作管理器”,使得可以执行“动作”。在这样的实施例中,为了将“动作”注册到“动作管理器”,可以规定指示例如java类的“动作信息”对象,以及包含执行“动作”所需要的逻辑和参数的公共方法。当注册“动作”时,可以对“动作管理器”查询执行“动作”所需要的参数,并且接着动作层303可以请求执行“动作”并传递这些参数。
如上所述,动作层303可以与后端层304相交互以执行“动作”。在这样的实施例中,当与后端层304交互时,动作层303可以缓冲从后端层304接收到的数据。类似地,动作层可以例如在将更新传递给后端层304之前,存储多个更新。
后端层304可以提供与在系统中的后端单元的接口。在系统中的后端单元可以存储并提供对与用户群组相关联的数据以及用于用户群组的容器文档的访问。这类数据可以包括例如:用户群组的偏好(例如,用于容器文档的默认偏好)、将用户群组映射到用户群组的各自偏好的数据、登录鉴权和授权数据(包括关于用户群组的授权代表的数据)、图像、可以由用户群组来定义和/或个性化的一部分页面的内容、和/或与用户群组相关的任何其它数据、用户群组的代表、或用户群组的用户。
用于配置容器文档的说明性过程
可以通过用户群组的代表来对容器文档(例如,门户页面或个性化门户页面)进行初始配置。并且,可以将容器文档初始配置为群组投票的结果或元群组要求(例如,在群组之中的群组)。也可以将内容初始地确定为协作过滤的结果。如上所述,个性化容器文档可以包括可以为用户群组来创建和/或设计和/或配置的一部分内容,以及可以由用户群组的用户来配置的一部分内容。可以由用户群组所呈现的配置和/或设计来限制用户群组的用户所做的配置。
图5描述了说明用于设计和配置容器文档的示例性方法的示例性流程图500。在框501中,可以建立与用户群组的关系。例如,用户群组可以与容器文档的主机建立关系。为了与主机建立关系,用户群组可以识别自身和一个或多个代表,可以授权所述代表来代表用户群组设计和/或配置容器文档。在一个示例中,用户群组也可以建立到主机的账户。账户可以是Google AdSense账户,或可用于存储关于用户群组的任何数据的任何其它账户。
在用户群组具有到主机的预先存在的账户的情况下,用户群组可以对此进行指示,并且系统可以将用户群组与预先存在的账户相关联。当已经识别用户群组时,可以将与用户群组相关联的标识符存储在与配置服务器相关联的数据库系统之中。也可以将域名包括在映射文件中,例如,映射文件可以将用户群组映射到与用于用户群组的容器文档相关联的数据。
在一个示例中,可以由用户群组来选择域名。例如,用户群组可以选择例如“start.usergroup.net”的域名。然后,可以将该用户群组选择的域名映射到例如更加明确的路径,诸如“partnerpage.host.com/usergroup.net”,并且可以由托管服务器系统将该化名/别名信息存储在唯一索引的合作伙伴域的动态表之中。
为了开始配置过程,在框502中,用户群组的代表可以登录进配置服务器系统。例如,代表可以包括:用户群组的法人代表、用户群组的web主人、由用户群组所选择的用户群组的代理人、或为了配置容器文档而选出代表用户群组的任何其它人或一组人。授权/鉴权单元可以接收包括例如与代表相关联的用户名和密码的登录请求,确定代表是否有用于用户群组的管理特权,并且基于确定代表具有用于用户群组的管理特权来批准对配置服务器系统的访问。
在框503中,配置服务器系统可以将web应用派发给代表。代表可以运行能够将输入提供给web应用(或独立应用)的客户端设备和/或用户系统,以配置容器文档或个性化容器文档。与配置服务器相关联的servlet可以将web应用派发给客户端设备和/或用户系统。客户端设备可以接收web应用并执行在客户端设备上的web应用。在应用是独立应用的情况下,可以在客户端设备上安装并执行该独立应用。Web应用(或独立应用)可以包括例如:用于编辑容器文档的页头和/或其他部分的编辑器以及用于配置和/或设计个性化容器文档的其它工具。这样的其它工具可以包括例如:动作条,用于接收待执行的动作;标签组,包括布局标签、颜色标签、颜色代码编辑器、和其他模块;创建客户模块和/或定义模块分类的可用内容标签;实时预览板;模块拾取器;页头和页脚标签;和URL编辑器标签。
动作条可以包括例如图标或按钮,当被激活时,可以触发动作的执行。这类动作可以包括:保存、删除、编辑、打开文件、打开空白容器文档、改变容器文档的格式、显示实时预览、插入对象或模块、以及任何其他类似动作。布局标签可以包括对例如使得用户可以冻结(或锁定)容器文档的某些部分或允许用户控制容器文档上的所有内容的预定布局的选择。图6描述了根据示例性实施例的包括布局标签601的示例性应用程序接口600。如图6所示,应用600也可以包括具有“现在保存”按钮602a和“预览”元件602b的动作条602。如图6所示,应用600也可以包括允许代表来选择是否冻结(或锁定)一部分容器文档的锁定部分。为了选择冻结(或锁定)选项,代表可以激活与冻结(或锁定)内容相关联的单选按钮604。为了允许用户来完全定制容器文档,代表可以选择与解锁内容相关联的单选按钮605。
一旦接收了应用,代表可以选择在框504中将要配置哪个容器文档。如果用户群组先前没有配置容器文档,则代表可以初始化要配置的容器文档。如果用户群组已经配置了一个或多个容器文档的实例,则可以将使得代表能够从容器文档中选择来进行配置的接口呈现给代表。
在框506中,可以选择布局。代表可以选择是否可选地冻结(或锁定)在容器文档上的一个或多个列,或允许用户来控制页面上的所有内容。例如,图6示出布局标签601,用于使得代表能够选择用于容器文档的布局。
在框506中,可以选择用于容器文档的颜色。图7描述了包括颜色标签701的应用接口700的示例性实施例,以使得代表例如能够对容器文档的各种部分来选择颜色。如图7所示,颜色标签701可以包括:元件选择部分702、调色板703、文本框704、预览板705、以及复位按钮706。元件选择部分702可以使得代表能够选择正发生改变的容器文档的部分。例如,如描述的那样,用户可以选择改变容器文档的页头、背景、标题等。调色板703可以使得用户能够从板上呈现的那些颜色中为容器文档的选定部分选择颜色。文本框704可以使得代表能够将已知的颜色代码直接输入文本框704,用来为容器文档的选定部分选择颜色。预览板705可以显示为容器文档所选择的颜色的模型。图8描述了应用接口800的另一实施例,用于说明为容器文档所选择的颜色。例如,复位按钮706可以允许代表将所有的颜色恢复为灰色。如图8所示,识别了容器文档的每个部分,并且可以将指示为该部分所选择的颜色的颜色方块放置在该已识别部分的附近。例如,如图8所示,具有冻结(或锁定)列的“标题条”包括靠近“标题条”文本的白色方块。
在框507中,可以定制用于该容器文档的页头和页脚。图9描述了应用接口900的示例性实施例,应用接口900包括页头和页脚标签901,以使得代表能够定制容器文档的页头和页脚。如图9所示,页头和页脚标签901可以包括页头部分902,其可以使得代表能够定义在容器文档的顶部出现的页头。如图9所示,页头部分902可以包括工具条908,其使得代表能够将图像添加到页头、将链接添加到页头、定制用于页头的字符、和/或编辑包含页头的HTML代码。如所描述的,页头部分902可以显示可能出现在容器文档上的页头的模型。图17和18还说明了示例性应用接口,其可以使得代表能够定制容器文档的页头和页脚。
例如,页头和页脚标签901还可以包括页脚部分903,其可以使得代表能够定义在容器文档的底部出现的页脚。页脚可以包括与隐私页面相关联的链接904、与服务条款页面相关联的链接905、与联系我们页面相关联的链接906、以及与服务协议页面相关联的链接907。例如,页头和页脚标签还可以包括“向页脚添加链接”的元件909,其可以使得代表能够将客户链接添加到容器文档的页脚。如图9所示,页脚部分903可以显示可能出现容器文档上的页头的模型。
在框508中,可以选择用于容器文档的内容。在示例性实施例中,代表可以从例如远程模块或可以包括在容器文档之中的其他模块(例如,RSS,基于API的模块等)中进行选择,或创建要包括在容器文档之中的客户模块。图10-14描述了使用远程模块和/或客户模块来定义用于容器文档的内容的各种示例应用接口。图19-21还描述了使用远程模块和/或客户模块来定义用于容器文档的内容的各种示例应用接口。
在框509中,可以发布容器文档。如此处所指,发布容器文档可以包括使得容器文档对用户可用的任何方式,包括但不限于,保存容器文档,并向托管服务器系统指示容器文档要对其用户可用。图15描述了应用接口1500的示例性实施例,包括发布标签1501,以使得代表能够发布容器文档。代表可以选择发布按钮1503来发布页面。在这样的实施例中,可以显示容器文档的URL 1502。发布标签1501还可以包括取消发布按钮1504,其可以使得代表能够移除已发布的容器文档。
用于访问个性化容器文档的说明性过程
在示例性实施例中,例如,用户群组的用户可以访问已经由用户群组进行配置的容器文档。如图5所示,用于容器文档的示例性URL可以是例如“http://www.host.com/ig/p/usergroupname/instancename”,其中“www.host.com”可以表示托管服务器系统的域,“usergroupname”可以表示用户群组,以及“instancename”可以表示特定的容器文档。用户也可以使用例如“主机”的目的地IP地址来访问容器文档。如以下将要详细描述的,用户群组可以具有用于用户群组的用户的容器文档的多个实例。在示例性实施例之中,URL之中的“/p/”例如可以指示该特定的URL关联到与用户群组相关联的容器文档。
图16描述了流程图1600的示例性实施例,其说明根据示例性实施例的用于将容器文档和/或个性化容器文档派发给用户群组的用户的方法。在框1601中,可以接收对页面的请求。如上所述,请求可以是URL请求,或是使用容器文档的目的地IP地址(如果为用户所知)的请求。例如,可以由托管服务器系统来接收请求。
在框1602中,托管服务器系统可以确定请求是否是对容器文档的。如上所述,用于容器文档的URL可以是例如“http://www.host.com/ig/p/usergroupname/instancename”,并且“/p/”可以指示该URL关联到与合作伙伴/用户群组相关联的容器文档。在一个示例中,用户群组可以通过例如将其自己的域(例如www.usergroupname.com)设定为经由CNAME指向该URL来选择对用户隐藏该URL。托管服务器系统可以解析URL,以确定“/p/”是否出现在URL之中。如果出现“/p/”,则托管服务器系统可以继续派发服务容器文档。如果没有出现“/p/”,则托管服务器系统可以派发与URL请求相关联的另一页面。应当理解,可以使用用于识别URL请求是对与合作伙伴/用户群组相关联的容器文档的其它指示符和技术。例如,在一个示例中,用于容器文档的URL可以是例如“http://www.host.com/ig/usergroupname/instancename”,并且“/usergroupname/instancename”可以指示该URL是关联到与合作伙伴/用户群组相关联的容器文档。
在另一示例中,用户可以请求由用户群组所选择的URL,例如“start.usergroup.net”。一旦接收到该请求,托管服务器系统可以确定与该请求相关联的实际路经(例如“partnerpage.host.com/usergroup.net”),并将该实际路经进行解码以确定域名。例如,托管服务器系统然后可以在通过合作伙伴域来唯一索引的动态表或其他动态存储模块之中查找域名,以确定如何起作用。
在框1603中,可以从URL提取信息。可以从URL提取用户群组的标识和容器文档的特定实例。例如,如果URL具有如上所述的格式,则托管服务器系统可以解析URL,以从URL提取“usergroupname”和“instancename”字符串。如以下将要详细解释的,然后可以使用该信息来查找用户群组偏好和/或个性化容器文档。
多入口点
在框1604中,托管服务器系统可以确定是否识别了用户。提供的系统可以提供多入口点,意谓着可以使用多个不同的账户来使得用户能够访问个性化容器文档。用户群组(例如,设置用户群组容器文档的管理员用户)可以选择可以将哪种(些)鉴权方法(即,入口点)用于对用户群组的用户进行鉴权。也可以由托管服务器系统将该鉴权方法存储在由合作伙伴域所唯一索引的动态表或其它存储模块中。当用户请求容器文档并且在该表之中查找域名时,也可以确定鉴权方法。所以,基于域名和与域名相关联的鉴权方法,系统可以确定是否识别了用户。
例如,用户可以具有对托管服务器系统(例如,Google)的账户,其用于该托管服务器系统上的各种活动(例如,电子邮件、数据存储、个性化主页等)。而且,同一用户可以拥有对用户正请求其容器文档合作伙伴的账户(例如,用户可以是合作伙伴的客户)。所以,如果待使用的鉴权方法是与特定账户相关联的,则托管服务器系统可以检查来确定其是否具有与特定账户相关联的用户记录。其中,例如,可以使用对托管服务器系统的账户来将用户对一个以上的用户群组进行鉴权,托管服务器系统可以通过使用与托管服务器系统账户相关联的域名和信息来将托管服务器系统账户对特定域名进行鉴权,从而确定用户是否被特定的用户群组识别。如果在由合作伙伴域所唯一索引的动态表之中指示了匿名/基于cookie的鉴权方法,则托管服务器系统还可以检查例如在用户系统上的一个或多个cookie,以确定是否将用户识别为具有对托管服务器系统的账户。如果根据用户群组为容器文档所选择的鉴权方法,用户没有被识别或登录,则例如,流程图1600可以前进到框1605。如果用户被识别或登录,则流程图1600可以前进到框1607。
在框1605中,托管服务器系统可以将请求发布给配置服务器,以例如检索用户群组容器文档的偏好。在示例性实施例中,请求可以包括:用户群组的标识、关于用户群组的其它信息、以及已被请求的容器文档的实例名称。为了确定用户群组的标识,托管服务器系统可以将“usergroupname”转换为可以与用户群组的账户相关联的唯一标识符。为了转换“usergroupname”,例如,托管服务器系统可以在本地映射文件中查找用户群组的标识符。可以使用类似的查找技术来检索与用户群组相关联的其它信息。配置服务器可以检索该请求,并然后查找其它用户群组信息。
在框1606中,托管服务器系统可以派发默认的容器文档。例如,托管服务器系统可以将关于默认容器文档的信息接收进用户群组数据分组中,并显示偏好数据分组。例如,用户群组数据分组可以规定:布局(例如,页头或无页头、固定列或无固定列等)、皮肤偏好(例如,颜色)、以及分类。例如,显示偏好数据分组可以规定用于每个容器文档的默认设置。然后,托管服务器系统可以使用该信息来将默认容器文档派发给用户。结果容器文档对于可以由用户来配置的任何内容,可以包含由用户群组所配置的内容以及由用户群组所配置的默认设置。
在框1607之中,托管服务器系统可以确定用户是否已经根据用户的个性偏好,将容器文档进行个性化。为了这样做,可以经由上述的用户群组选择的鉴权方法来识别用户。具体而言,可以使得用户能够使用合作伙伴账户信息、托管服务器系统账户信息或由用户群组所选择的一些其他信息来进行登录。为了使此进行,可以将用户对接收合作伙伴容器文档有效的账户登录与合作伙伴容器文档数据相关联存储在托管服务器系统之中。所以,例如,如果合作伙伴是计算机公司Computers4Sale,并且其拥有为基于合作伙伴的Google个性化主页的合作伙伴容器文档,则用户应当能够通过使用Google账户登录进Google(如果选定的鉴权方法经由对托管服务器系统的账户来对用户进行鉴权),或通过使用Google已经存储在其用于Computers4Sale Google个性化主页的用户列表之中的Computers4Sale账户来登录进Computers4Sale(如果选定的鉴权方法经由对合作伙伴的账户来对用户进行鉴权),来访问Computers4Sale Google个性化主页。
如上所述,基于用户群组所定义的分类,用户可以对与用户群组相关联的容器文档进行个性化(例如,选择哪些模块可以包括在个性化容器文档之中、将个性偏好应用到这些模块、确定这些模块在容器页面内的位置等)。在一个示例中,例如,用户可以对容器文档进行个性化而不用登录进Google。在该示例中,用户可以在“离线”环境(例如用户不登录)中定制容器文档。例如,可以将定制存储在cookie中,使得当用户是第一次登录时(或在做出“离线”定制之后第一次),可以将基于cookie的偏好传送给服务器。
如果用户已经将合作伙伴容器文档进行个性化,则在框1607中,代替应用到合作伙伴容器文档的默认设置,可以将用户的个性设置应用于容器文档。托管服务器系统可以确定用户是否被识别以及用户是否已经同时对容器文档进行个性化。如果用户还没有对容器文档进行个性化,则流程图1600可以前进到框1605。
在框1608中,托管服务器系统可以请求用户的个性偏好。可以将这些个性偏好存储在与托管服务器系统相关联的数据库系统之中。
在框1609中,托管服务器系统可以派发个性化的合作伙伴容器文档。例如,托管服务器系统可以将关于容器文档的信息接收进用户群组数据分组中,并显示偏好数据分组。例如,用户群组数据分组可以规定:布局(例如,页头或无页头、固定列或无固定列等)、皮肤偏好(例如,颜色)、以及分类。用户还可以添加附加的非群组内容,如果用户群组已经用允许用户这么做的方式对容器文档进行了配置。例如,显示偏好数据分组可以规定用于每个容器文档的用户个性设置。然后,托管服务器系统可以使用该信息来将个性化容器文档派发给用户。例如,结果个性化容器文档可以包括由用户群组所配置的内容,以及由用户所配置的个性化设置。
图22还描述了流程图2200的示例性实施例,其说明了用于将容器文档和/或个性化容器文档派发给用户群组的用户的方法,框2201-2203如以上对框1601-1603所描述的那样操作。
在图22所示的示例中,框2204和2205可以并行操作。在框2204中,可以检索用户信息。用户群组可以选择对用户群组的用户进行鉴权的鉴权方法。所以,为了检索用户信息,例如,托管服务器系统可以检查由鉴权方法所识别的账户的信息。例如,用户可以具有对托管服务器系统(例如,Google)的账户,其用于该托管服务器系统上的各种活动(例如,电子邮件、数据存储、个性化主页等)。而且,同一用户可以拥有用户正请求其容器文档的合作伙伴的账户(例如,用户可以是合作伙伴的客户)。所以,基于鉴权方法,托管服务器系统可以用由鉴权方法所识别的账户来检查确定其是否有正登录的用户的记录。如果用户群组已经选择了匿名/基于cookie的鉴权方法,则托管服务器系统可以检查例如在用户系统上的一个或多个cookie,以确定用户是否被识别。
在框2205中,可以请求默认的门户网站数据。为了请求门户网站数据,托管服务器系统可以将请求发布给配置服务器,以例如检索用户群组容器文档的偏好。
在框2206中,托管服务器系统可以确定用户是否被识别以及用户是否具有个性化容器文档。为了做到这点,可以通过上述的多入口点中的一个或多个来识别用户。具体而言,可以使得用户能够使用合作伙伴账户信息、托管服务器系统账户信息或某种其他信息来进行登录。托管服务器系统可以例如检查用户cookie,以确定用户是否已经对容器文档进行个性化。托管服务器系统可以确定用户是否被识别以及用户是否已经同时对容器文档进行个性化。如果用户已经对容器文档进行个性化,则流程图2200可以前进到框2207。如果用户还没有对容器文档进行个性化,则流程图2200可以前进到框2208。
在框2207中,可以将用户信息覆盖在容器文档上。为了将信息覆盖在容器文档上,可以将由合作伙伴/用户群组所选择的内容与例如用户的定制相结合以形成容器文档。
在框2208中,可以呈现用于容器文档的数据并且可以将容器文档派发给用户。
数据驱动设计
用户群组可以具有与用户群组相关联的多个容器文档。在该情形中,每个门户页面可以是单独的实例。其中,例如,如上所述,用于每个个性化容器文档的URL是“http://www.host.com/ig/p/usergroupname/instancename”,每个实例可以由不同的“instancename”来唯一的标识。在其中URL请求是start.mydomain.net/instancename的示例中,也可以用不同的“instancename”来识别每个实例。例如,用户可以具体请求实例,或者托管服务器系统和/或配置服务器系统可以通过检查在用户系统上的cookie或关于用户的其它消息来确定将哪个实例派发给用户。而且,托管服务器系统可以基于IP地址、地理编码信息、或诸如对用户群组已知但对托管服务器系统不知道的信息的其他外部信息来确定派发哪个实例。例如,以这种方式选择实例使得合作伙伴能够使用其对最终用户的了解来确定默认将几个页面中的哪个派发给最终用户。
基于地理位置来改变内容
一个或多个实例可以是基于改变呈现给不同用户的内容。例如,用户群组可以基于各种数据输入来改变呈现给其用户的内容,所述数据输入包括:地理位置、用户人口统计、一天中的时间、一年中的时间等。在地理位置的示例中,在美国东海岸的用户可以接收与美国东海岸相关联的实例,而在美国西海岸的用户可以接收与美国西海岸相关联的不同实例。在另一示例中,可以基于用户所处的特定城市来改变内容。在这样的示例中,托管服务器系统可以通过确定用户是否已经访问无线接入点(例如,WIFI或一些其它无线协议)来确定用户的位置。从该确定,托管服务器系统可以确定无线接入点所处的城市,并将与该城市相关联的实例派发给用户。在该实例中的内容可以包括例如旅行模块,其显示从最靠近该城市的机场可用的班机。内容还可以包括例如天气模块,其显示该城市的当前天气。
基于服务级别来改变内容
可以基于例如用户服务的级别来改变内容。例如,在用户群组可以具有变化状态(例如,白银、黄金、白金)的用户的情况下,用户群组可以基于这些状态级别改变呈现给其用户的内容。在这样的示例中,托管服务器系统和/或配置服务器系统可以通过例如检查在用户系统上的cookie或关于用户的其它信息来确定将哪个实例派发给用户。在一个示例性实施例中,例如,用户群组可以与航空公司相关联。在这样的实施例中,航空公司可以具有常客项目,并且用户可以加入该项目。如果用户具有在该项目内的状态,则托管服务器系统可以将与该状态级别相关联的容器文档派发给用户。例如,如果用户具有白银状态,则与白银状态相关联的实例可以包括具有关于如何获取更高状态级别的信息的模块。例如,如果用户具有白金状态,则与白金状态相关联的实例可以包括允许用户自动升级到即将起飞航班的头等舱的模块。
服务提供者可以拥有具有各种服务协议级别的用户。例如,用户群组内的某些用户可能具有“在家”服务协议,而用户群组内的其他用户可能具有需要用户将项目送来维修的“基本”服务协议。在这样的示例中,与“在家”服务协议相关联的实例可以包括用于设置在家服务呼叫的模块。与“基本”服务协议相关联的实例可以包括例如基于用户的地理区提供关于将项目发送到哪里来进行维修的指令的模块。
基于订购的内容
合作伙伴/用户群组也可以基于订购来改变内容。例如,一些用户可以订购“优质”内容。可以将包含包括“优质”内容的模块的实例派发给订购“优质”内容的那些用户。而且,用户可以订购基于内容的模块。例如,合作伙伴可以提供音乐模块,对该合作伙伴的音乐模块的订购可以使得用户能够基于订购来选择要收听的某些音乐选集。而且,在音乐模块中,合作伙伴可以提供不同的订购。例如,一个订购可以允许最终用户收听音乐,而另一个可以允许用户收听并下载音乐。在这些示例中,合作伙伴可以对用户就订购收取费用,由此使得合作伙伴能够将容器文档内的模块货币化。
选择性国际化
合作伙伴容器文档的实例可以与不同的语言相关联。在这样的实施例中,托管服务器系统和/或配置服务器系统可以例如如上所述确定用户的位置,并派发以与该用户的位置相关联的语言的容器文档的实例。例如,可以对在美国的用户派发以美式英语的容器文档的实例,可以对在英国的用户派发以英式英语的容器文档的实例,而可以对在法国的用户派发以法语的容器文档的实例。而且,合作伙伴或用户简档可以识别语言偏好,并且可以使用这样的偏好,基于这样的内容来将容器文档进行国际化。对于不同的语言也可以提供不同版本的容器文档。
用于用户群组的多个实例可以基于公共模板。例如,在上述关于航空公司模块的示例中,容器文档的每个实例可以包括显示航班的模块,在该模块内的内容基于地理位置而变化。在另一实施例中,多个实例可以不是基于公共模板,每个实例是唯一的。
说明性配置用户接口
如上所述,与用户群组相关联的代表可以经由web应用来为用户群组的用户配置容器文档。这样的应用可以包括用于可以交互地配置和/或定义容器文档的用户接口。这类接口将允许代表来查看尚未发布的实际内容全功能预览。接口还可以允许代表来在全功能预览中编辑内容。
实时容器文档预览
也可以存在用户接口的很多互连组件。当使用组件之一来进行改变时,可能需要同步其他组件。为了同步用户接口的组件,组件可以相互观察以识别变化并相应地进行更新。改变的源(例如,页面内容标签)可以将改变“推”给所有的观察者。例如,如果用于模块的复选框在可用内容标签之上的模块分类选择部分中没有选中,则模块应当在选定的模块标签上的模块分类选择部分中消失。在这样的示例中,复选框可以将改变“推”给选定的模块标签。
观察者也可以对改变的源主动地进行轮询用于对接口进行改变。例如,用户接口的组件可以定期轮询后端层,以确定与用户群组相关联的任何文件是否已经改变。如果改变,则可以在接口的其它组件之中立即更新该改变。可以考虑以下示例。在一个示例中,当用户使用上述的颜色标签编辑容器文档的颜色时,颜色标签的所有组件可以向中央方(即,事件注册者)注册对“同步颜色”的事件感兴趣。当在颜色标签中的一个组件反映改变时,组件可以通知事件注册者,事件注册者可以进而通知对“同步颜色”事件注册的所有组件。
在容器文档内的搜索框
如上参照图2所述,在各种示例性实施例之中,容器文档可以包括搜索框。在这样的实施例中,搜索框可以与容器文档的主机相关联。当容器文档的用户将文本输入文本区并执行搜索时,搜素结果可以返回给用户。在一些实例中,搜索结果可以包括与广告相关联的链接。如果用户后来点击了与广告相关联的一个链接,则容器文档的主机可以补偿该用户群组。例如,主机可以贷记该用户群组的账户。在主机和用户群组之间共享收入的方式可以包括:收入的百分比、固定费用安排(例如,每点击的特定量)、或在该领域之中已知的其他安排。
用于派发容器文档的示例托管服务器系统
托管服务器系统的操作可以涉及在所附专利申请中描述的多个任务和单元。对于背景,相对图1(c)提供了对可以用于派发容器文档的单元的简要描述。这里,托管服务器系统10包括多个单元,其可以包括:容器服务器12、模块服务器14、规范服务器16、后端服务器18、分析单元28、模块创建服务器32、联合服务器34、广告服务器36、地理代码服务器37和/或地图服务器39。
连接到网络26的其它系统可以包括:一个或多个用户系统22、一个或多个远程源系统24、一个或多个模块开发系统30、一个或多个内容提供者、以及一个或多个联合接收服务器38。另外,一个或多个数据库系统20可以与托管服务器系统10的各种单元相结合来运行。
容器服务器12(例如,web服务器)可以通过网络26将容器文档派发给用户系统22。容器服务器12可以取数据和/或指令,并可以形成用于经由网络传输给用户系统22的容器。
模块服务器14可以将来自模块的数据提供给容器服务器12,用于合并进入容器文档。应当理解,在一个实施例中,容器服务器12以及模块服务器14可以包括执行两个功能的单个单元。模块服务器14可以通过解释和/或解析与模块相关联的模块规范中的指令来提供用于容器文档的数据。根据一个实施例,模块服务器14可以通过使用浏览器IFRAME将模块内容派发给容器文档。一般可以将IFRAME理解为在容器文档内独立运转的浏览器窗口实例。IFRAME的一个优点是其将容器文档对IFRAME的内容进行保护,反之亦然,例如,可能不允许在容器文档上的JavaScript访问在内部IFRAME中的任何JavaScript代码(对CSS、DOM、或cookie对象也一样)。
模块格式的多种选择
为了加速容器文档的显示,可以在容器文档内内嵌显示模块。可以将内嵌显示理解为指具有其他文档元件的显示。一个示例是根据HTML标准在主体中从HTML代码生成的显示。在一个实施例中,由于内嵌模块可能产生的各种安全性问题的风险,模块服务器14或一些其它组件可以在将模块内嵌包括在容器文档中之前,确定该模块是否被视为可信。根据一个实施例,如下具体所述,模块可以并入由容器模块或与该容器模块相关联的实体所发布的批准标记(例如数字证书)。如果存在批准标记,则模块服务器14可以将用于内嵌呈现的来自模块的数据呈现在容器文档中。
规范服务器16向模块服务器14提供模块规范文件。如随后具体所述,模块规范可以在可由模块服务器14和/或规范服务器16访问的数据库中进行缓存和存储,或可以从与规范相关联的位置检索。例如,规范服务器16可以驻留在远程源系统24上。另外,规范服务器16可以通过网络来连接到模块服务器,处于网络上的另一位置的模块规范可被规范服务器16访问。
可以提供后端服务器18用于与一个或多个数据库(例如,信息的大型或动态数据库)进行交互。例如,对于获取频繁更新和要求数据流(例如从RSS输入)的新闻模块,后端服务器18可以将数据格式化为用于容器的HTML。
在一个具体示例中,某人可以创建模块(例如,地图模块),诸如使用到现有地图程序的应用程序接口(API)来创建模块,以显示加利福尼亚州市区山景城的地图。模块可以包括存储在规范服务器之上的XML规范文件或模块规范文件。规范服务器可以包括任何服务器,包括在托管容器页面的站点或任何其它站点之上的服务器。然后,该用户或其它人可以将该新模块包括在个性化主页(容器文档)上。派发容器文档的服务器可以运行为模块服务器,而可以将通过来自其API的查询产生映射数据的服务器认为是后端服务器。
根据本发明的一个实施例,分析单元28可以在各种时间(例如,当用户第一次选择模块时,每次模块被容器调用来包含,或在确定是有利于安全和安全性的任何其他时间以及其它时间)分析模块。分析单元28可以执行多个动作,包括将模块与未批准或危险模块的列表或批准模块的列表相比较。比较可能涉及匹配名称或位置(例如URL)的准确或子字符串(例如,前缀、后缀和正则表达式)、规范的内容、规范所在的位置的内容、或对模块可以确定的信息。响应于确定模块是未批准的或危险的,分析单元28可以采取一个或多个动作,包括例如:静默地阻隔请求(即,提供一般错误)、用解释请求被阻隔的原因或将请求重定向到已经确定为安全并涉及未批准模块(例如,如果第一个是未批准的地图网站,是涉及地图的另一模块,或者如果未批准模块是篮球模块,是包括关键词“篮球”的模块)的不同模块规范的错误来阻隔请求。例如,通过重定向,可以将最初模块的URL传递给“安全”模块。如下所述,安全模块然后可以使用代理服务器来检索最初URL的内容。然后,为了能够显示最初模块的内容,开发者可以替换错误处理器,以修改最初模块中的小缺陷。在另一实施例中,分析单元28可以解析模块内容,以确定其是否是安全的,诸如通过编译JavaScript或包含在模块中的其他脚本,以尝试识别模块可以执行的不安全或不期望的动作。
可以提供一个或多个内容提供者31。内容提供者31可以提供待在模块中派发的内容和/或可以向最终用户提供待派发的模块。内容提供者的示例包括但不限于以下内容的提供者:模块、新闻供稿、交通信息源、金融信息源、娱乐信息源。
可以提供一个或多个模块创建服务器32。该服务器可以运行为“向导”,以使得模块创建者可以通过由模块创建服务器32所控制的交互过程来创建模块。例如,模块创建服务器32可以提供一系列用户接口,其使得模块创建者可以提供输入,然后,模块创建者使用该输入来自动产生模块规范。例如,可以将各种模块规范模板与对应的输入一起提供。然后,模块创建服务器32可以取得模块创建者所提供的输入,并将它们插入到模板,并随后产生用于该模块的模块规范。也可以将预览、测试和调试功能作为该“向导”的一部分来提供。该web工具和/或可下载应用也可以被下载,这样可以将其安装并运行在网络上的任意节点。在本发明的各种实施例中,模块创建者可以是与用户群组相关联的代表。而且,模块创建者可以是内容提供者的示例。
联合服务器34可以准备用于传输到与模块相关的一个或多个联合收件服务器38的数据。联合服务器34可以接收对模块和/或模块内容的请求,并将该模块或内容通过网络26传递给联合收件服务器38。联合服务器34可以驻留在托管服务器系统10之上或网络上的其它位置。例如,如果体育网站(联合接收系统38的示例)的运营者期望包括由远程源系统24所创建的地图模块,它可以通过到联合服务器34的请求来进行。然后,联合服务器34可以与模块服务器14协作,以产生用于容器文档(此处是联合接收系统38的体育网站页面)的数据。其可以涉及从远程源系统24检索模块规范,提供从联合收件服务器38接收到的偏好(例如,用于正显示的页面的体育队的城市信息)和/或产生用于容器的数据。也可以用IFRAME或内嵌将数据在联合收件服务器38上呈现在其容器文档之中。由此,联合服务器34可以使得联合模块对其可访问。其可以基于对特定模块的请求或其确定的其他标准(例如,内容匹配、关键词匹配、与模块和/或联合请求者相关联的货币值)来进行。
广告服务器36可以将与模块相关联的广告提供给容器。例如,当将数据传递给容器文档时,可以将广告与模块数据合并在一起。广告服务器36可以与联合服务器34一起运行,以基于对模块的联合请求,将广告传递给联合收件服务器38。可以基于很广范围的标准来通过广告服务器36选择广告,所述标准包括但不限于:在容器、模块、在容器内的其他模块的内容或关于它们的信息之间的关系、联合收件服务器信息、关于上述任何一个的货币元件/关系和/或其组合。根据本发明的一个实施例,广告服务器36可以包括Google AdSense系统。广告服务器36可以按以下专利申请中的一个或多个所描述的那样运行。
可以提供地理代码服务器37,以如本领域所知从位置描述中产生地理代码信息。地理代码服务器37可以从地理位置产生纬度和经度数值。
地图服务器39可以产生地图输出。可以使用诸如Google地图和Google Earth的地图系统来产生该数据。
可以提供一个或多个数据库系统20,其可以用任何数量的方式来存储:容器信息、模块规范和/或相关信息、格式化信息、每用户和每模块偏好数据、远程模块ID数据、远程模块位置参考数据、广告数据、广告者数据、内容/货币数据、联合接收数据、用于模块的模板、用于模块的输入、受信任和不受信任的模块的列表、批准标准和相关信息和/或由模块来使用按这里描述运行的任何其他信息。尽管对数据库系统20示出了单个数据库结构,但是应当理解,可以将数据存储在多个位置以及在一个或多个系统之中。
另外,示出为用户系统22的系统也可以运行为远程源系统24和/或模块开发系统30。换言之,一个计算机系统可以用不同的能力来运行:作为用户系统、作为远程源系统、作为联合服务器、作为目标内容服务器、和/或模块开发系统。另外,按以下更加详细的解释,也可以将所描述的在托管服务器系统10中的每个模块放置在用户系统22、远程源系统24、或模块开发系统30上。类似地,根据期望的配置,数据库20可以与图1(c)中描述的每个模块相关联。
本公开不受限于这里描述的具体实施例的范围。实际上,除了这里已描述的以外,从以上描述和附图,本公开的其他各种实施例和修改,对于本领域的普通技术人员来说是显而易见的。所以,这样的其它实施例和修改旨在本公开的范围之内。另外,尽管出于特定目的,已经在特定环境中的特定实现的上下文中描述了本公开,但是本领域的普通技术人员将意识到其效用并非只限于此,并且可以出于任意数量的目的,在任意数量的环境中有益地实施本公开。因此,应当考虑如这里所述的本公开的全部范围和精神来解释所附的权利要求。

利用安全性、定制化和可扩展性向变化的用户分发内容文档.pdf_第1页
第1页 / 共72页
利用安全性、定制化和可扩展性向变化的用户分发内容文档.pdf_第2页
第2页 / 共72页
利用安全性、定制化和可扩展性向变化的用户分发内容文档.pdf_第3页
第3页 / 共72页
点击查看更多>>
资源描述

《利用安全性、定制化和可扩展性向变化的用户分发内容文档.pdf》由会员分享,可在线阅读,更多相关《利用安全性、定制化和可扩展性向变化的用户分发内容文档.pdf(72页珍藏版)》请在专利查询网上搜索。

一种系统和方法,用于:接收对容器文档的请求、确定该请求是否是对与用户群组相关联的容器文档、确定该请求的请求者是否与在用户群组内的多个状态级别之中的用户群组内的一状态级别相关联、基于请求者是与用户群组内的一状态级别相关联的确定来确定请求者的状态级别、基于容器文档是与用户群组相关联的确定以及状态级别来请求配置信息、接收配置信息、并且使用该配置信息来派发容器文档。 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1