用于安全调整的智能高速缓存转让专利

申请号 : CN201210427808.9

文献号 : CN102982082B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : R·洛姆B·维尔德M·塔维斯A·叶夫多基莫夫S·R·沙哈P·纳鲁拉

申请人 : 微软技术许可有限责任公司

摘要 :

本发明涉及用于安全调整的智能高速缓存。此处公开的安全调整系统使用对从安全数据存储接收的安全调整信息的智能高速缓存。安全调整系统使用访问高速缓存来存储从访问数据存储接收的安全调整信息以及与该安全调整信息相关联的其他参数。随后,响应于对安全调整信息的请求,安全调整系统使用安全调整信息的已高速缓存的值以及其他相关联的参数来确定对来自内容提供方的请求的响应。在一个实现中,如果与特定的安全调整信息相关联的其他参数暗示了高速缓存中的安全调整信息仍然是有效的,则在请求响应中使用经高速缓存的安全调整信息。否则,向安全数据存储发送新的请求,以获得安全调整信息的已更新的值。

权利要求 :

1.一种方法,包括:

在服务器处接收来自用户的访问所述服务器上的内容的第一请求;

响应于所接收的第一请求,从安全数据存储中检索所述用户对所请求的内容的访问的访问特权的值;

在所述服务器上的高速缓存中,存储对检索到的所述用户对所请求的内容的访问的访问特权的值以及与接收所述用户对所述内容的访问的访问特权的值的时间相关联的一个或多个参数,所述参数中的一个是对所述内容的访问的访问特权的值的存活时间TTL;

基于所接收的所述内容的访问的访问特权的值在预定先前时段内是肯定值的次数来调整所述TTL的值;

在所述服务器处,接收来自用户的访问所述服务器上的所述内容的第二请求;

响应于接收所述第二请求,在所述服务器处评估所述用户对所述内容的访问的访问特权的值的TTL的值,以确定对所述内容的所述访问特权的已存储的值的有效性;以及一旦确定所述用户对所述内容的访问的访问特权的已存储的值为有效,就允许所述用户访问所述服务器上的所述内容。

2.如权利要求1所述的方法,其特征在于,还包括:

一旦确定对所述内容的所述访问特权的已存储的值为无效,就向安全数据存储发送对所述内容的所述访问特权的已更新的值的请求;

接收对所述内容的所述访问特权的已更新的值;以及

响应于所述请求,传递对所述内容的所述访问特权的已更新的值。

3.如权利要求2所述的方法,其特征在于,还包括:

用对所述内容的所述访问特权的已更新的值来更新对所述内容的所述访问特权的已存储的值;以及更新与接收对所述内容的所述访问特权的所述值的所述时间相关联的所述一个或多个参数。

4.如权利要求1所述的方法,其特征在于,所述一个或多个参数包括最后接收到对所述内容的所述访问特权的所述值时间。

5.如权利要求2所述的方法,其特征在于,向所述安全数据存储发送请求还包括向多个安全数据存储发送请求。

6.一种系统,包括:

用于在服务器处接收来自用户的访问所述服务器上的内容的第一请求的装置;

用于响应于所接收的第一请求,从安全数据存储中检索所述用户对所请求的内容的访问的访问特权的值的装置;

用于在所述服务器上的高速缓存中,存储对检索到的所述用户对所请求的内容的访问的访问特权的值以及与接收所述用户对所述内容的访问的访问特权的值的时间相关联的一个或多个参数的装置,所述参数中的一个是对所述内容的访问的访问特权的值的存活时间TTL;

用于基于所接收的所述内容的访问的访问特权的值在预定先前时段内是肯定值的次数来调整所述TTL的值的装置;

用于在所述服务器处,接收来自用户的访问所述服务器上的所述内容的第二请求的装置;

用于响应于接收所述第二请求,在所述服务器处评估所述用户对所述内容的访问的访问特权的值的TTL的值,以确定对所述内容的所述访问特权的已存储的值的有效性的装置;

以及

用于一旦确定所述用户对所述内容的访问的访问特权的已存储的值为有效,就允许所述用户访问所述服务器上的所述内容的装置。

7.如权利要求6所述的系统,其特征在于,与对所述内容的所述访问特权的所述值相关联的所述一个或多个参数包括与接收对所述内容的所述访问特权的所述值的时间相关联的一个或多个参数。

8.如权利要求6所述的系统,其特征在于,所述一个或多个参数包括最后接收到对内容的访问特权的所述值的时间。

说明书 :

用于安全调整的智能高速缓存

技术领域

[0001] 本发明涉及高速缓存,尤其是用于安全调整的智能高速缓存。

背景技术

[0002] 因特网和web使得内容提供方有可能与他们的客户、合作方或其他用户共享大量的信息。例如,保健提供方与他们的客户共享关于该保健提供方所提供的服务的信息、关于各种疾病的通用信息、患者预约的日程安排信息等。通常,这些保健信息被存储在单个数据存储或在服务器上托管的数据存储集合中。用户可使用各种应用、web浏览器等来访问这些信息。例如,用户可登录到保健提供方所提供的网站来查看这些信息。然而,当用户正在访问包括具有各种访问特权级别的信息的文档或内容时,有必要确定仅向该用户提供该用户有访问特权的内容。例如,当患者正在访问来自保健提供方的保健信息时,应当只向该患者示出该患者的预约和预约的理由、或对该患者的预约的引用。考虑到被提供给诸如保健信息提供方的患者的终端用户的大量的信息、以及存储这些信息及其特权的大量的源,确保仅向用户公开特权信息是有挑战性的。

发明内容

[0003] 此处描述和要求保护的实现通过提供安全调整系统来解决上述问题,该安全调整系统使用对安全调整信息的智能高速缓存,该安全调整信息是从安全数据存储接收的。一个访问高速缓存存储从访问数据存储接收的安全调整信息以及与该安全调整信息相关联的其他参数,诸如安全调整信息的存活时间(TTL)、对安全调整信息的请求数量等。随后,响应于对安全调整信息的请求,该访问高速缓存使用安全调整信息的已高速缓存的值以及其他相关联的参数来确定对来自内容提供方的请求的响应。例如,如果与安全调整信息相关联的TTL是有效的,则在对该请求的响应中使用该安全调整信息。否则,向安全数据存储发送新的请求,以获得安全调整信息的已更新的值。
[0004] 在一些实现中,作为计算机程序产品提供了制品。计算机程序产品的一个实现提供了可由计算机系统读取的并且对处理器可执行程序进行编码的有形计算机程序存储介质。此处还描述和列举了其他实现。
[0005] 提供本发明内容以便以简化形式介绍将在以下具体实施方式中进一步描述的一些概念。本发明内容并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。
[0006] 此处还描述和列举了其他实现。

附图说明

[0007] 图1示出了安全调整系统的示例数据源和数据流。
[0008] 图2示出了安全调整系统的替换的示例数据源和数据流。
[0009] 图3示出了此处公开的安全调整系统的示例操作。
[0010] 图4示出了此处公开的安全调整系统的替换的示例操作。
[0011] 图5示出了此处公开的安全调整系统的示例使用。
[0012] 图6示出了可以对实现所描述的技术有用的示例系统。

具体实施方式

[0013] 此处公开的安全调整系统允许诸如保健服务提供方的内容提供方确保仅向具有内容的访问特权的用户提供该内容。内容提供方通常利用安全调整提供方,该安全调整提供方提供对安全调整信息的访问,该安全调整信息可用于确定用户对内容的访问特权。在这种情形中,安全调整提供方在向用户示出内容或对内容的引用之前确定该用户对该内容的访问特权。在保健提供方向患者显示保健信息的情形中,该患者不具有访问特权的任何保健信息对该患者完全隐藏、或者从向该患者显示的文档/内容中“删除”。为了实现这一点,当患者向web服务器发送对保健信息的请求时,该web服务器在向该患者提供任何内容之前调用安全调整提供方来确定该用户对所请求的内容的组成的访问特权。随后,web服务器可删除用户无法访问的特权信息。
[0014] 然而,每次需要确定访问特权时向安全调整提供方发送请求可能变得昂贵,因为大量的这种请求消耗了大量的通信带宽以及处理器时间。为了避免不得不过度地向安全调整提供方发送请求,此处公开的安全调整系统提供了对安全调整信息的智能高速缓存。具体而言,安全调整系统包括用于存储从安全调整提供方接收的安全调整信息的高速缓存,使得对安全调整信息的每个请求不必被发送到安全调整提供方。另外,安全调整系统向高速缓存中安全调整信息的存储和处理添加智能。例如,安全调整系统将诸如内容安全信息的存活时间(TTL)的各种其他参数关联到在高速缓存中存储的安全调整信息,以生成该安全调整信息的代理或表示。
[0015] 因此,如果保健提供方对确定一个患者是否能够访问任何特定的内容感兴趣,则该保健提供方的web服务器向安全调整系统发送请求以确定该患者的访问特权。安全调整系统首先向高速缓存请求该安全调整信息、或该信息的任何代理。如果未在高速缓存中发现该信息,或者高速缓存中存储的信息是过时的信息,则安全调整系统向安全调整提供方发送请求。此外,安全调整系统每次访问和/或接收来自安全调整提供方的信息时,它还将诸如请求的时间、对特定安全调整信息的请求被发送了多少次等其他信息存储在高速缓存中。因此,如果保健提供方的web服务器在上一周已经询问了特定患者查看日程安排信息的访问特权,并且如果前一请求生成了允许该特定患者访问该日程安排信息的响应,则安全调整系统使用该被保存在高速缓存中的之前的响应来应答保健提供方,而不需要向安全调整提供方发送昂贵的请求。
[0016] 通过提供智能高速缓存系统,此处公开的安全调整系统减少了被发送的请求的数量、以及由此的安全调整提供方上的负载。此外,通过利用这样的智能高速缓存,安全调整系统还减少了需要响应来自诸如保健服务提供方等用户的请求的时间。这进而允许用户更易响应于终端用户,诸如保健服务提供方的患者。
[0017] 图1示出了安全调整系统100的示例数据源和数据流。具体而言,安全调整系统100用于提供关于诸如保健提供方的患者C 102、患者D 104等各个用户的安全特权信息。患者102、104使用网站110来访问来自保健提供方的信息,该网站110提供保健提供方日程表
112,该日程表112提供关于特定医生的日程表、实验室的日程表等的信息。例如,可通过链接来示出日程表112的每个组成,用户可以选择该链接以获得与该组成有关的附加信息。
[0018] 在一个实现中,保健提供方将网站110托管在web服务器120上。当患者102、104访问网站110时,标识该患者102、104的各种信息也被发送到web服务器120。例如,患者C 102使用的计算机的浏览器将标识该患者C 102的信息发送到web服务器120。或者,web服务器120要求患者C 102使用登录名和口令或其他认证手段来对日程表112进行认证。
[0019] 一旦web服务器120对患者C 102进行了认证,则该web服务器120确定可向该患者C 102提供什么信息。例如,当患者C 102访问保健提供方日程表112时,web服务器120确定究竟是否应向患者C 102提供对日程表112的访问。在确定如此时,web服务器120对患者C 102的身份进行验证。例如,保健信息数据存储122存储关于各个患者的身份及其他们对包括日程表112的保健信息的访问特权。另外,web服务器120还确定应当向患者C 102示出日程表
112的哪个部分。例如,日程表112列出一个医生给定一天的全部预约,包括患者的姓名和预约的理由。然而,由于各种隐私和法律原因,没有必要将一个患者的姓名和预约理由示出给另一患者。因此,当下午1点有预约的患者C 102访问日程表112时,仅在日程表112上示出姓名John B.和预约理由“检查”。
[0020] web服务器120在确定患者C 102对日程表112的各个组成内容的访问权限之后作出关于它向患者C 102示出的信息的这种判定。Web服务器120使用安全调整过程来确定向患者C 102显示的信息。安全调整是在向用户示出对内容片段的任何引用之前确定该用户对该信息的访问的过程。例如,仅当患者能够访问底层内容时才向该患者示出日程表112中的任何链接。在一个实现中,与日程表112的内容有关的这种安全调整信息由诸如安全调整提供方130的安全数据存储来提供。仅当安全调整提供方130验证了患者对底层内容的访问权项时,web服务器120才显示日程表112上的链接。
[0021] 例如,当患者C 102访问日程表112时,从web服务器120到安全调整提供方130的请求标识了该患者C 102具有仅针对下午1点时隙的患者姓名和预约理由的访问特权。在此情形中,向患者C 102呈现日程表116的经修改的版本。另一方面,如果患者D 104访问日程表112,则向该患者D 104呈现下午2点时隙的经修改的日程表118。另一方面,如果诸如医院的管理者、医生等保健提供方访问日程表112,则该保健提供方被给予关于整个日程表112的信息,包括日程表112上全部时隙的患者姓名和预约理由。
[0022] 在安全调整系统100的一个实现中,web服务器120每次向安全调整提供方130发送请求时,由安全调整提供方130生成的结果被存储在高速缓存140中。另外,在一个替换实施例中,web服务器120向高速缓存140发送对安全调整信息的请求,来代替向安全调整提供方130发送对安全调整的请求。因此,例如,当患者C 102发送访问日程表112的请求时,web服务器120首先向高速缓存140发送请求以确定该患者对日程表112的各个组成的访问特权。
[0023] 高速缓存140确定它是否具有向web服务器120提供响应所需要的安全调整信息。例如,高速缓存140请求经高速缓存的安全调整数据存储142来确定被发送到web服务器的响应。安全调整数据存储140被配置成基于对安全调整提供方130的过去请求来存储安全调整信息。例如,如果响应于对患者C 102对保健提供方日程表112的组成的访问特权的之前请求,安全调整提供方130返回“访问”的值,则经高速缓存的安全调整数据存储142存储“访问”作为该患者C 102对保健提供方日程表112的该组成的访问特权的值。从安全调整提供方130返回的其他潜在的值包括“禁止访问”、“不确定”、“失败”等。又或者,返回用于提供对内容的可变化的访问级别的访问特权值。因此,向医生提供对保健提供方日程表112上特定内容的“编辑访问”,而向患者提供对该特定内容的“查看访问”。
[0024] 在一个实现中,当诸如web服务器120的内容提供方请求内容的位置以及用户对该内容的访问特权时,向该内容提供方提供明确的“访问”或“禁止访问”结果。在一个替换实现中,安全调整提供方130是搜索结果提供方,如果用户能够访问内容片段,则安全调整提供方130返回“访问”的值。然而,在此情形中,如果用户不能访问,如果安全调整提供方130不知道该内容,或者该内容已被移走或删除,则安全调整提供方130返回“不确定”值。类似地,也有可能对安全调整提供方130的请求失败了,其中返回“失败”值。导致对安全调整提供方130的请求失败的事件示例包括查询失败、由于临时联网问题的失败、安全调整提供方130接收到的请求过载等。
[0025] 在一个实现中,如果安全调整提供方130返回“访问”或“禁止访问”作为安全调整信息的值,则高速缓存140将这个值写到经高速缓存的安全调整数据存储142。安全调整信息的这个值用于响应来自web服务器120的随后的请求。然而,如果安全调整提供方130不返回明确的“访问”或“禁止访问”值,则高速缓存140采取对接收到的值的附加解释,以确定用户是否能够访问一内容片段。
[0026] 高速缓存140还包括安全调整推断引擎144,该安全调整推断引擎144使用存储在经高速缓存的安全调整数据存储142中的安全调整信息的值以及与该安全调整信息相关联的各种其他相关联的参数,来确定对来自web服务器120的请求的响应。具体而言,当安全调整提供方130不返回明确的“访问”或“禁止访问”值时,安全调整推断引擎144确定用户是否能够访问一内容片段。
[0027] 例如,如果安全调整提供方130返回“不确定”或“失败”作为关于内容片段的安全调整信息的值,则高速缓存140存储附加信息,诸如要被发送到安全调整提供方130的对关于该内容片段的安全调整信息的值的下一个请求的定时、高速缓存140已向安全调整提供方130发送这种请求的次数等。在一个实现中,到下一个请求的时间计数器和多个请求计数器用于存储该定时信息。存储这种信息允许高速缓存140确保在较短的时间段内不会有过多的对同一安全调整信息的请求被发送到安全调整提供方130。这种信息还允许高速缓存140作出关于安全调整信息的值的推断。例如,对安全调整提供方130的最后三个请求的每个都返回“不确定”值用于用户对一内容片段的访问特权,则高速缓存140确定该用户不能访问该内容片段,并因此将该内容片段的安全调整信息的值在一时间段内设置为“禁止访问”。在此情形中,在该时间段已期满后,高速缓存140响应于来自web服务器120的对关于该内容片段的信息的新请求,向安全调整提供方130发送新的请求。
[0028] 在一个替换实现中,安全调整推断引擎144使用与被存储在经高速缓存的安全调整数据存储142中的安全调整信息相关联的各种参数来生成被发送到web服务器120的这种安全调整信息的代表值。安全调整推断引擎144还基于其他这样的参数的值来设置这样的参数的值。例如,安全调整推断引擎144存储信息,该信息关于从安全调整提供方130接收特定的安全调整信息的最后时间、安全调整提供方130在预定先前时段内发送肯定值的次数等。随后,安全调整推断引擎144使用这些信息来设置与安全调整信息相关联的TTL。
[0029] 作为示例,如果高速缓存140在上一周已经发送了对与日程表112的特定内容相关联的安全调整信息的三个请求,并且安全调整提供方130每次都生成肯定值,则安全调整推断引擎144将与该特定的安全调整信息相关联的TTL设置为“长”时间值。随后,当从web服务器120接收到对安全调整信息的请求时,安全调整推断引擎144评估附连到经高速缓存的安全调整数据存储140中的安全调整信息的TTL,以确定要被发送到web服务器120的响应。例如,如果该安全调整信息的TTL大于预定阈值,则安全调整推断引擎144确定该安全调整信息的代表值与存储在经高速缓存的安全调整数据存储142中的值相同。然而,如果该安全调整信息的TTL小于预定阈值,则安全调整推断引擎144指示高速缓存140向安全调整提供方130发送对安全调整信息的当前值的新的请求。
[0030] 高速缓存140向web服务器120返回从安全调整提供方130接收的安全调整信息的实际值或该安全调整信息的代表值。在一个实现中,高速缓存140还向web服务器120传递该值是所请求的安全调整信息的实际值还是代表值。在一替换实现中,安全调整推断引擎144还生成一置信度值,该置信度值指定了安全调整信息的代表值与安全调整信息的实际值相同的可能性。在该实现中,该置信度值连同安全调整信息的代表值一起被传递给web服务器120。随后,web服务器120确定是否使用安全调整信息的代表值。
[0031] 如果高速缓存140确定它无法响应来自web服务器120的安全调整请求是:因为经高速缓存的安全调整数据存储142不具有所请求的安全调整信息的有效值,并且因为安全调整推断引擎144不能生成所请求的安全调整信息的有效代表值,则高速缓存140向安全调整提供方130发送请求以获得已更新的安全调整信息。在一替换实现中,高速缓存140分析与经高速缓存的安全调整数据存储142中的安全调整信息相关联的其他参数,以确定何时向安全调整提供方130发送对更新的请求。
[0032] 或者,高速缓存140被配置成向安全调整提供方130发送对各种安全调整信息的周期性请求。例如,当通信网络连接到高速缓存140并且安全调整提供方130不那么拥塞时,当安全调整提供方130不那么忙于为大量的安全调整请求服务时等,高速缓存140每天在这天中的一时刻发送这种请求。一旦web服务器120从高速缓存140接收安全调整信息或该安全调整信息的代表值,web服务器120就使用该安全调整信息来确定向用户示出日程表112的哪个部分。
[0033] 在一个实现中,安全调整信息100的各个组成通过诸如因特网、虚拟专用网(VPN)、移动通信网络等通信网络彼此可通信地连接。在一替换实现中,高速缓存140位于web服务器120容易访问的服务器上,诸如在向web服务器120提供虚拟存储器的云服务器上。或者,在多个web服务器的虚拟存储器上自动地镜像高速缓存140上的内容,使得这些web服务器中的每个可向高速缓存140发送请求,而不必通过公共通信网络来通信。
[0034] 图2示出了安全调整系统200的示例数据源和数据流。安全调整系统200包括访问高速缓存210,该访问高速缓存210为多个安全调整提供方提供智能高速缓存。在一个实现中,web服务器220、222使用访问高速缓存210来获得对安全调整提供方230、232所提供的安全调整信息的访问。例如,web服务器I 220是用于保健服务提供方的web服务器,该保健服务提供方需要用于在网站上公开的内容的安全调整信息。在一个实现中,web服务器I 220上的内容需要来自安全调整提供方230、232这二者的安全调整信息。类似地,web服务器II 222也需要来自安全调整提供方230、232这二者的安全调整信息。在安全调整系统200的一个实现中,安全调整提供方I 230被指定为主安全调整提供方,而安全调整提供方II 232被指定为次安全调整提供方。在该实现中,当向主安全调整提供方的请求给出“不确定”响应时,向次安全调整提供方发送请求。在一替换实现中,基于对主安全调整提供方上的调整请求负载的观察,向次安全调整提供方发送请求。
[0035] 虽然web服务器220、222可直接访问安全调整提供方230、232(如虚线所示)以获得必要的安全调整信息,但安全调整系统200示出了web服务器220、222使用访问高速缓存210来获得必要的安全调整信息。例如,当web服务器I 220需要确定用于在保健日程表上显示的内容的安全调整信息时,web服务器I 220使用访问高速缓存210来获得该安全调整信息。
[0036] 访问高速缓存210包括安全调整数据存储212,该安全调整数据存储212存储从安全调整提供方230、232接收的安全调整信息。这些安全调整信息可被收集作为被发送到安全调整提供方230、232的先前的安全调整请求的结果。一旦从web服务器I 220接收到请求,就访问高速缓存智能引擎214确定安全调整数据存储212是否包括响应来自web服务器I 220的请求的必要信息。若是,则访问高速缓存210检查与数据存储212中的安全调整信息相关联的各个参数,以确定该安全调整信息的可用性。
[0037] 这种相关联的参数的一个示例是附连到安全调整信息的TTL,该TTL提供关于存储在安全调整数据存储212中的安全调整信息的陈旧性的信息。如果该TTL已期满,即安全调整信息是相当地陈旧,则访问高速缓存智能引擎214确定该安全调整信息不能被使用。在此情形中,访问高速缓存210在必要时向安全调整提供方230、232发送新的请求或安排新的请求。
[0038] 图3示出了此处公开的安全调整系统的示例操作300。例如,操作300用于向患者提供保健日程安排信息的保健信息系统。接收操作302在网站或服务器提供的其他资源处接收对内容的请求。例如,接收操作302从保健信息提供方的患者接收对该患者与特定医生的预约的请求。当患者使用web浏览器来访问保健信息日程表时,托管该保健信息日程表的服务器首先确定可向该患者示出保健信息日程表的哪部分以及日程表页面上的哪些其他内容。
[0039] 请求评估操作304确定显示患者所请求的内容是否需要任何种类的安全调整信息。如果医生的日程表具有该天的二十个预约,则访问日程表的各个患者中的每一个只能够查看医生的日程表的各部分。类似地,如果医生使该天的一部分被阻隔用来研究,则医生可确保患者不能看到医生的日程表上的这个研究时间。在来自患者的请求查看日程表的情形中,请求评估操作304确定是否应向该患者提供对日程表上特定内容的访问。在一个实现中,如果存在对给定医生的多个患者预约,则请求评估操作304确定内容在各个时隙的每个中的安全调整要求,以确定应向患者显示这些内容中的哪个。
[0040] 如果请求评估操作304确定患者所请求的特定内容不需要任何安全调整信息,则显示操作306向患者显示该内容。例如,如果预约日程表包括有关医生的专业、医生办公室的地图等不需要任何安全调整信息的一些通用内容,则显示操作306向患者显示这种通用内容。另一方面,如果请求评估操作304确定所请求的内容需要安全调整信息,则请求操作308发送对用于该内容的安全调整信息的请求。
[0041] 在一个实现中,请求操作308向访问高速缓存发送对安全调整信息的请求,该访问高速缓存被配置成存储多个安全调整提供方的安全调整信息。然而,在一替换实现中,请求操作308将该请求直接发送到安全调整提供方。又或者,请求操作308将该请求发送到高速缓存和安全调整提供方这两者。例如,当时间在响应来自用户的请求中重要时,请求操作308将该请求发送到高速缓存和安全调整提供方二者以确保快速的响应。
[0042] 随后,确定操作310确定访问高速缓存中是否存在所请求的安全调整信息的条目。如果未在访问高速缓存中发现安全调整信息,则声明操作312声明访问高速缓存未命中。在一替换实现中,声明操作312还为该特定的安全调整信息指派其他参数,诸如对安全调整信息的请求的时间等。或者,声明操作312还调整多个请求计数器,该计数器跟踪在给定时间段内已经接收到多少次对该特定的安全调整信息的请求。该计数器信息由访问高速缓存用来确定是否将对该特定的安全调整信息的请求包括在从访问高速缓存发送到安全调整提供方的自动安全调整信息请求中。
[0043] 然而,如果确定操作310确定访问高速缓存中存在所请求的安全调整信息的条目,则另一确定操作314评估各种参数,诸如与访问高速缓存中的安全调整信息相关联的TTL。具体而言,确定操作314评估该TTL的值,以确定高速缓存中安全调整信息的已存储的值的有效性。例如,如果在高速缓存中发现的特定安全调整信息是很久以前从安全调整提供方接收的,则附连到该特定安全调整信息的TTL在由确定操作314评估时将已期满。在此情形中,声明操作316将高速缓存中的该特定安全调整信息条目声明为期满或无效。
[0044] 另一方面,如果该安全调整操作的TTL尚未期满,则评估操作318为该安全调整信息评估该访问高速缓存条目。例如,如果尝试访问保健日程表上特定内容的患者不能访问该内容,则访问高速缓存中的安全调整条目将具有“禁止访问”的值。在此情形中,控制被传递到操作320,该操作320通知请求安全调整信息的服务器该患者不能访问该内容。因此,服务器不向患者显示此内容。然而,如果尝试访问日程表上特定内容的患者能够访问该内容,则访问高速缓存中的安全调整条目将具有“访问”的值。在此情形中,控制被传递到操作322,该操作322通知请求安全调整信息的服务器该患者能够访问该内容。因此,服务器向患者显示此内容。
[0045] 在一些情况下,访问高速缓存中的安全调整信息的值可能是“不确定”或“失败”。例如,如果从访问高速缓存到安全调整提供方的、对安全调整信息的每个先前请求导致“不确定”响应,即安全调整提供方不知道患者是否能够访问内容,则访问高速缓存将“不确定”的值指派给安全调整信息。类似地,如果访问高速缓存每次尝试获得安全调整信息时都没有来自安全调整提供方的响应,这可能由于安全调整提供方的通信网络失败等而发生,则访问高速缓存将“失败”的值指派给安全调整信息。在安全调整信息具有“不确定”或“失败”的值的情形中,操作324标记该安全调整信息以重试。
[0046] 如果操作300导致访问高速缓存中的特定安全调整信息的未命中、该特定安全调整信息的期满TTL、或该特定安全调整信息的值是“失败”或“不确定”,则请求操作326请求安全调整提供方以获得该特定安全调整信息的已更新的值或当前值。在一个实现中,一发现安全调整信息的值未命中、已期满、失败或不确定,就实时地发送这种请求。然而,在一替换实现中,访问高速缓存将这种安全调整信息请求添加到向安全调整提供方的一批其他待决请求。在该实现中,以预定的时间间隔向安全调整提供方发送这批请求。然而,在一替换实现中,被发送到安全调整提供方的这批请求是基于访问高速缓存所接收的各种请求。例如,如果患者想要在保健提供方的网页上一次查看全部的日程表、检查结果和诊断,则高速缓存将对用于日程表、检查结果和诊断中每个的安全调整信息的请求一起批处理成一批,并将这批请求发送到安全调整提供方。这允许安全调整系统300节省宝贵的网络带宽。
[0047] 映射操作328将对安全调整提供方的请求的结果映射到访问高速缓存中。在一个实现中,如果在请求被发送到安全调整提供方之前安全调整信息的值是“访问”,并且请求的结果示出该安全调整信息的值也是“访问”,则与该安全调整信息相关联的TTL被指派为“长”值。在此情形中,访问高速缓存确定给定安全调整信息值是“访问”的重新肯定,访问高速缓存可使用具有较高置信度级别的该值较长时间段。类似地,如果访问高速缓存中安全调整信息的当前值是“失败”,并且请求的结果示出安全调整信息的值也是“失败”,则访问高速缓存将TTL的值设置为“短”。在此情形中,高速缓存在较短的时间段内或者更积极地向安全调整提供方发送请求以获得关于该安全调整信息的值的更明确的答案。
[0048] 另一方面,如果在请求被发送到安全调整提供方之前安全调整信息的值是“不确定”,且已经有大量的请求被发送到安全调整提供方,以及如果请求的结果示出安全调整的值是“禁止访问”,则与该安全调整信息相关联的TTL被指派为“长”值。在此情形中,给定确定安全调整信息的值的全部先前尝试都导致“不确定”且请求导致值在较长未来时间段内都是“禁止访问”,访问高速缓存将为安全调整信息使用“禁止访问”的值。将值较长时间段地设置为“禁止访问”导致不太频繁的请求被发送到安全调整提供方,以及由此到安全调整提供方的用于用户最不可能访问的内容片段的昂贵的流量的减少。类似地,如果在请求被发送到安全调整提供方之前安全调整信息的当前值是“不确定”且相对少量的请求已被发送到安全调整提供方,以及如果请求的结果示出安全调整的值是“禁止访问”,则与该安全调整信息相关联的TTL被指派为“短”值。在此情形中,访问高速缓存还提高被发送到安全调整提供方的对安全调整信息的尝试次数的值。在将对安全调整提供方的请求的结果映射到访问高速缓存中之后,存储操作330将安全调整信息的已接收的值存储在访问高速缓存中。
[0049] 图4示出了此处公开的安全调整系统的替换示例操作400。具体而言,操作400示出了当特定的安全调整信息具有“不确定”的值时,访问高速缓存请求安全调整提供方。例如,如果患者正在第一次尝试访问医生的预约,存储安全调整信息的访问高速缓存不具有关于该患者对预约日程表上内容的访问权限的信息,则导致安全调整信息的“不确定”的值。在此情形中,请求操作402向安全调整提供方请求关于与该内容相关联的安全调整信息。请求的结果由评估操作404来评估。
[0050] 如果安全调整提供方将安全调整的值返回成“失败”,则操作406将访问高速缓存中的安全调整信息的值设置为“失败”并将与该安全调整信息相关联的TTL设置为“短”。在此情形中,访问高速缓存假设导致结果为“失败”的问题将在较短时间段内被纠正,并且因此,在较短时间段内被发送到安全调整提供方的另一个请求将导致接收安全调整信息的值。然而,如果安全调整提供方将安全调整的值返回成“访问”,则操作408将访问高速缓存中的安全调整信息的值设置为“访问”并将与该安全调整信息相关联的TTL设置为“长”。在此情形中,由于患者能够访问内容,因此显示操作410向该患者显示内容。
[0051] 然而,如果安全调整提供方将安全调整信息的值返回成“不确定”,则评估操作412评估访问高速缓存为了从安全调整提供方获得安全调整信息的值而作出的尝试或请求的次数。如果这种尝试的次数超出阈值,指示了即使在大量尝试之后仍不能获得安全调整信息的值,则操作414推断用户不能访问该内容,并且因此将访问高速缓存中的安全调整信息的值设置为“禁止访问”并将与该安全调整信息相关联的TTL设置为“长”。在此情形中,由于患者不能访问内容,因此显示操作416显示预约日历而没有患者不能访问的内容。
[0052] 另一方面,如果访问高速缓存为了从安全调整提供方获得安全调整的值而作出的尝试或请求的次数低于阈值,则操作418将访问高速缓存中的安全调整信息的值设置为“不确定”并将与该安全调整相关联的TTL设置为“中等”。在此情形中,操作418还增加了计数,该计数指示访问高速缓存为了从安全调整提供方获得安全调整信息的值而作出的尝试或请求的次数。
[0053] 图5示出了此处公开的安全调整系统的示例使用。具体而言,图5示出了在使用此处公开的安全调整系统期间用于web服务器502、访问高速缓存504和安全调整提供方506的各个阶段。在阶段1,诸如保健提供方的患者的用户导航至一特定的文档,诸如来自web服务器502的显示患者预约的网页。在所示的示例中,该文档包括5个潜在的统一资源定位符(URL)URL1-URL5,该统一资源定位符URL1-URL5可作为预约日程表的一部分被显示给患者。或者,URL1-URL5表示用户所请求的5个不同的信息片段,诸如患者日程安排信息、患者诊断、患者检查结果等。在阶段1,如在512所示,web服务器502需要确定5个URL中的哪个可被显示给患者。在该阶段,如在514所示,访问高速缓存504具有URL1-URL4的安全调整信息。具体而言,访问高速缓存504示出患者可访问URL1、URL2和URL4,但患者不能访问URL3。在此阶段,访问高速缓存504不具有URL5的任何安全调整信息。
[0054] 在阶段2,对URL1-URL5的安全调整信息的请求516被发送到访问高速缓存504。随后,在阶段3,访问高速缓存504将具有URL1、URL2和URL4的安全调整信息的结果518返回到web服务器502。因此,在520,web服务器502为所请求的URL更新安全调整信息。随后,在阶段4,web服务器502向患者显示URL1、URL2和URL4,如在522所示。虽然web服务器502正使用访问高速缓存504提供的安全调整信息来向患者显示内容,但访问高速缓存504在后台向安全调整提供方506发送对URL5的安全调整信息的请求524。如在526所示,安全调整提供方506示出患者能够访问URL5。
[0055] 在阶段5,安全调整提供方506将具有URL5的安全调整信息的结果528发送到访问高速缓存504。访问高速缓存504基于来自安全调整提供方506的结果来更新URL5的安全调整信息。结果,如在530所示,访问高速缓存504现在示出患者能够访问URL1、URL2、URL4和URL5。
[0056] 随后,在阶段6,用户刷新显示诸如预约日程表的文档的web浏览器。响应于用户刷新预约日程表,web服务器502为用户重置全部的安全调整信息。因此,如在532所示,web服务器502需要确定URL1-URL5中每个的安全调整信息。因此,web服务器502将对URL1–URL5的安全调整信息的新的请求534发送到访问高速缓存504。
[0057] 在阶段7,访问高速缓存504将已更新的安全调整信息536发送到web服务器502。注意由于访问高速缓存504具有URL1–URL5中每个的安全调整信息,因此在此阶段不向安全调整提供方506发送请求。这导致向安全调整提供方506发送的昂贵的请求的减少。web服务器502更新其安全调整信息,使得如在538所示,向用户提供对URL1、URL2、URL4和URL5的访问。
在一替换实现中,访问高速缓存504被配置成即使未从web服务器502接收对已更新的安全调整信息的新的请求,也周期性地向web服务器502发送已更新的安全调整信息。
[0058] 图6示出了可以对实现所描述的技术有用的示例系统。图6的用于实现所述技术的示例硬件和操作环境包括游戏控制台或计算机20形式的一般用途计算设备之类的计算设备、移动电话、个人数据助理(PDA)、机顶盒或其他类型的计算设备。例如,在图6的实现中,计算机20包括处理单元21、系统存储器22,以及将包括系统存储器的各种系统组件连接到处理单元21的系统总线23。可以有只有一个或可以有一个以上的处理单元21,以便计算机20的处理器包括单一中央处理单元(CPU),或常常被称为并行处理环境的多个处理单元。计算机20可以是常规计算机、分布式计算机、或者任何其它类型的计算机,本发明不限于此。
[0059] 系统总线23可以是若干类型的总线结构中的任何一种,包括使用各种总线体系结构中的任何一种的存储器总线或存储器控制器、外围总线,开关互连、点到点连接,以及局部总线。系统存储器也可以简称为存储器,并包括只读存储器(ROM)24和随机存取存储器(RAM)25。基本输入/输出系统(BIOS)26通常存储在ROM 24中,包含了诸如在启动过程中帮助在计算机20内的元件之间传输信息的基本例程。计算机20还包括用于对硬盘(未示出)进行读写的硬盘驱动器27、用于对可移动磁盘29进行读写的磁盘驱动器28、以及用于对可移动光盘31,如CD-ROM、DVD或其它光介质进行读写的光盘驱动器30。
[0060] 硬盘驱动器27、磁盘驱动器28,以及光盘驱动器30分别通过硬盘驱动器接口32、磁盘驱动器接口33,以及光盘驱动器接口34连接到系统总线23。驱动器以及它们相关联的计算机可读介质为计算机20提供了计算机可读指令、数据结构、程序模块,及其他数据的非易失存储器。本领域的技术人员应该理解,诸如磁带盒、闪存卡、数字视盘、随机访问存储器(RAM)、只读存储器(ROM)等等之类的可以存储可被计算机访问的数据的任何类型的计算机可读介质,也可以用于示例操作环境中。
[0061] 可以有若干个程序模块存储在硬盘、磁盘29、光盘31、ROM 24,和/或RAM 25上,包括操作系统35、一个或多个应用程序36、其他程序模块37、以及程序数据38。用户可以通过诸如键盘40和定向设备42之类的输入设备向个人计算机20中输入命令和信息。其他输入设备(未示出)可包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪等。这些及其他输入设备常常通过耦合到系统总线的串行端口接口46连接到处理单元21,但是,也可以通过其他接口,如并行端口、游戏端口、通用串行总线(USB)端口、来进行连接。监视器47或其他类型的显示设备也可以通过诸如视频适配器48之类的接口来连接到系统总线23。除了监视器之外,计算机还通常包括其他外围输出设备(未示出),如扬声器和打印机。
[0062] 计算机20可以使用到一个或多个远程计算机(如远程计算机49)的逻辑连接,在联网环境中操作。这些逻辑连接由耦合至或者作为计算机20一部分的通信设备来实现;本发明不限于特定类型的通信设备。远程计算机49可以另一计算机、服务器、路由器、网络PC、客户机、对等设备或其他公共网络节点,并通常包括上文参考计算机20所描述的许多或全部元件,虽然在图6中只示出了存储器存储设备50。图6中所描绘的逻辑连接包括局域网(LAN)51和广域网(WAN)52。这样的网络环境在办公室网络、企业范围的计算机网络、内部网和因特网(它们都是各种网络)中是普遍现象。
[0063] 当用于LAN网络环境中时,计算机20通过网络接口或适配器53(这是一种通信设备)连接到局域网51。当用于WAN网络环境中时,计算机20通常包括调制解调器54、网络适配器(一种通信设备),或用于通过广域网52建立通信的任何其他类型的通信设备。或为内置或为外置的调制解调器54经由串行端口接口46连接到系统总线23。在联网环境中,参考个人计算机20所描述的程序引擎,或其某些部分,可以存储在远程存储器存储设备中。可以理解,所示出的网络连接只是示例,也可以使用用于在计算机之间建立通信链路的其他装置和通信设备。
[0064] 在示例实现中,安全调整系统的各个模块可由存储在存储器22和/或存储设备29或31中并由处理单元21处理的指令来具体化。内容安全信息、安全调整数据存储和其他数据可被存储在存储器22内和/或作为永久性数据存储的存储设备29或31内。此外,安全调整系统表示被配置成为连接到网络的系统提供服务功能的硬件和/或软件。这些服务可使用通用计算机和专用软件(诸如执行服务软件的服务器)、专用计算系统和专用软件(诸如执行服务软件的移动设备或网络装置)、或其他计算配置来实现。在一替换实现中,安全调整系统及其各个模块还可被存储在移动数据存储、云等上。
[0065] 一些实施例可包括制品。制品可包括用于存储逻辑的存储介质。存储介质的示例可包括能够存储电子数据的一种或多种类型的计算机可读存储介质,包括易失性存储器或非易失性存储器、可移动或不可移动存储器、可擦除或不可擦除存储器、可写或可重写存储器等。逻辑的示例可包括各种软件元素,诸如软件组件、程序、应用软件、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、文字、值、符号、或其任意组合。例如,在一个实施例中,制品可以存储可执行计算机程序指令,该指令在由计算机执行时使得该计算机执行根据所描述的各实施例的一种方法和/或操作。可执行计算机程序指令可包括任何合适类型的代码,诸如源代码、已编译代码、已解释代码、可执行代码、静态代码、动态代码等。可执行的计算机程序指令可根据用于指示计算机执行特定功能的预定义的计算机语言、方式或句法来实现。这些指令可以使用任何合适的高级、低级、面向对象、可视、编译、和/或解释编程语言来实现。
[0066] 在此所述的本发明的实施例可以实现为一个或多个计算机系统中的逻辑步骤。本发明的逻辑操作可被实现为:(1)在一个或多个计算机系统中执行的处理器实现的步骤的序列;以及(2)一个或多个计算机系统内的互连机器或电路模块。该实现是取决于实现本发明的计算系统的性能要求的选择问题。因此,构成此处所描述的本发明的实施例的逻辑操作被不同地称为操作、步骤、对象或模块。此外,还应该理解,逻辑操作也可以以任何顺序执行,除非明确地声明,或者由权利要求语言固有地要求特定的顺序。
[0067] 上面的说明、示例和数据提供了对本发明的示例性实施例的结构和使用的完整的描述。因为可以在不背离本发明的精神和范围的情况下做出本发明的许多实施例,所以本发明落在所附权利要求的范围内。此外,不同实施例的结构特征可以与另一实施例相组合而不偏离所记载的权利要求书。