用于基于动态域的隔离的技术的制作方法

文档序号:11432517阅读:139来源:国知局
用于基于动态域的隔离的技术的制造方法与工艺

本申请是申请日为2012年11月01日,题为“用于基于动态域的隔离的技术”,申请号为201210431499.2的专利申请的分案申请。

本发明涉及基于动态域的隔离。



背景技术:

万维网(www)已从其中所有用户接收相同的静态内容的平台继续转变成其中每一用户都有机会定制他们对网站的体验以创建他们专用的页面的平台。对于web门户,如社交网络站点,这一转变中的大部分是由以下能力来授权的:使用户能通过将第三方web应用嵌入该较大门户页面内来定制他们对该门户的视图。然而,允许嵌入第三方web应用可导致以下安全风险:该web应用会干扰该门户、用户、或另一第三方web应用的操作或访问该门户、用户、或另一第三方web应用的数据。尽管存在着用于解决这些安全问题的一些受限技术,但对web应用开发者而言,它们通常是麻烦的,从而限制了第三方web应用的流水线化的创建和使用。本发明的改进正是针对这些和其他考虑事项而需要的。



技术实现要素:

下面提供了简化的发明内容,以便提供对此处所描述的一些新颖实施例的基本理解。本发明内容不是广泛的概览,并且它不旨在标识关键/重要元素或描绘本发明的范围。其唯一目的是以简化形式呈现一些概念,作为稍后呈现的更具体实施例的序言。

各实施例一般涉及用于基于动态域的隔离的技术。具体而言,一些实施例涉及用于嵌入在网页中的web应用的自动的和基于动态域的隔离的技术。基于域的隔离可降低或消除与web应用相关联的安全问题。

在一个实施例中,例如,一种装置可包括隔离应用,该隔离应用具有接收对处于以统一资源定位符处的web应用的请求的接收组件,该统一资源定位符是被动态地分配给该web应用的。该隔离应用还可包括用于在统一资源定位符的基础上确定多个所主存的web应用中的哪一所主存的web应用与所请求的web应用相对应的应用标识组件。对其他实施例也予以描述并要求保护。

为了实现上述及相关目的,本文结合下面的描述和附图来描述某些说明性方面。这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。结合附图阅读下面的详细描述,其他优点和新颖特征将变得显而易见。

附图说明

图1a示出用于基于动态域的隔离的系统的实施例。

图1b示出用于基于动态域的隔离的操作环境的实施例。

图2a示出用于基于动态域的隔离的逻辑流程的实施例。

图2b示出用于基于动态域的隔离的逻辑流程的实施例。

图3示出用于基于动态域的隔离的集中式系统的实施例。

图4示出用于基于动态域的隔离的分布式系统的实施例。

图5示出适用于基于动态域的隔离的计算架构的实施例。

图6示出适用于基于动态域的隔离的通信架构的实施例。

具体实施方式

各实施例一般涉及用于基于动态域的隔离的技术。具体而言,一些实施例涉及为由网站所主存的各web应用自动创建域以将该web应用与该网站所主存的其他web应用或私有数据相隔离的技术。这减轻了web应用开发者创建域来主存web应用的负担。如此,减轻了用于开发并安装web应用(尤其是第三方应用)的成本和复杂度。此外,通过消除由第三方来创建主存域的需求,对web应用的主存可完全由主存网页的实体来执行。这将主存负担集中到处于扩展主存系统的高级位置的实体。结果,各实施例可改进web应用开发的可承受性和可伸缩性,同时增强网站的模块性和可扩展性。

现在将参考附图,全部附图中相同的附图标记用于指代相同的元素。在下面的描述中,为了进行说明,阐述了很多具体细节以便提供对本发明的全面理解。然而,显而易见,可以没有这些具体细节的情况下实施各新颖实施例。在其他情况下,以框图形式示出了各个公知的结构和设备以便于描述本发明。本发明将涵盖落入所要求保护的主题的精神和范围内的所有修改、等效方案和替换方案。

图1a示出隔离系统100的框图。在一个实施例中,隔离系统100可包括具有一个或多个软件应用和/或组件的计算机实现的系统。尽管图1a中示出的隔离系统100具有按照某种拓扑结构的有限数量的元素,但可以理解,隔离系统100可以视给定实现的需要而包括按照替代拓扑结构的更多或更少元素。

隔离系统100可以实现用于基于动态域的隔离的各种技术。更具体地,隔离系统100可以隔离一个或多个web应用104-a,其中a表示任何正整数。例如,隔离系统100可以通过为由一网站实现的web应用104-1和由同一网站实现的web应用104-2自动生成分开的域来将web应用104-1、104-2相隔离。基于域的隔离减少或阻止web应用104-1、104-2彼此访问或破坏。基于域的隔离还减少或阻止web应用104-1或web应用104-2访问或破坏同一网站所主存的其他数据,如私有或公共用户数据、web部分(webpart)、帧数据、或其他所主存的内容。

web应用104-a一般可包括使用web浏览器来访问和呈现的应用。一些web应用104-a可以是经由浏览器访问的标准的或大部分标准的软件应用程序,如java应用或java小应用程序。这些类型的web应用104-a,由于是仅仅主存在浏览器内的具有完全特征的应用,可主要根据用于适用于标准计算机应用的数据访问的安全模型来操作。然而,一些web应用104-a是使用脚本语言或脚本语言与标记语言的组合来实现的,如结合超文本标记语言(html)来使用javascript。这些脚本应用程序可被呈现在较大网页的帧内,如超文本标记语言(html)或可扩展标记语言(xml)的iframe,使得它们显得是与除该web应用104-a所提供的内容之外的其他内容一起嵌入在该网页内。web应用104-a的这后一类的脚本版本,由于是用web浏览器所直接支持的语言(例如,客户机侧脚本语言)来编写的,可造成安全问题。对嵌入在网页内的web应用104-a的脚本版本的安全许可进行的管理直接落在主存该web应用104-a和呈现该web应用104-a的web浏览器的服务器系统上。利用几个常用web浏览器中存在的安全特征的安全解决方案尤其有价值,这些常用web浏览器诸如internet以及

具体而言,将www用于先前由个人计算机本机的应用来处理的任务的使用日益增长增加了用户对访问更多种多样的web应用104-a的需求和对这些web应用104-a严格符合安全约束的需求。可通过允许第三方web应用嵌入到网站并通过减轻开发第三方web应用的人员的负担来满足增加的用户需求。第三方web应用可以是由与负责主存网页的主存实体不同的实体所开发的应用。从另一观点来看,第三方web应用是负责主存网页的主存实体不想要延伸足够信任的、不需要安全预防措施的一种类型的web应用104-a。在一些情况下,由主存实体开发的web应用104-a可被当作第三方web应用,以增加对不正常工作或不正确编码的应用可造成多少损害的约束。在其他情况下,主存实体所开发的web应用104-a可被当作第三方web应用来为各web应用开发者创建平等市场,其中内部web应用104-a以与第三方web应用104-a相同的方式来实现。在第三方web应用是商务市场(如web应用104-a的付费市场)的一部分时,这尤其合乎需要。

然而,web应用104-a可对包含各用户希望保护的用户数据的网站(如,社交网络门户)引起安全风险。例如,用户在访问社交网络门户时可能希望查看股票报价,并且可能希望允许第三方股票报价应用访问由该门户所维护的持有股票的列表,但还可能希望阻止该股票报价应用访问联系人信息、朋友的电子邮件地址、或与显示股票报价的任务无关的任何其他个人信息。这一问题的一种解决方案是需要所有第三方web应用被主存在与主存网页分开的域中。许多现代浏览器实现相同来源策略(sop),该策略阻止第一域中的网页访问来自第二域的数据。这一sop功能被应用于主存在各帧(如iframe)内的web应用104-a,使得嵌入在给定域中的帧中的web应用104-a不能访问来自任何其他域的数据。如此,各第三方web应用通常是使用与主存网页不同且彼此不同的域名来实现的,以有效地隔离每一第三方web应用访问主存的网页的数据或其他嵌入的web应用104-a的数据。

然而,使第三方应用主存在分开的域上可将创建并维护它们自己的域的负担置于开发者身上。这增加了web应用104-a的开发成本,从而导致商用web应用的更高价格并减少了免费web应用的开发。然而,如果主存实体能够自己为第三方应用动态地创建域,则就从开发者移除了这一负担,从而为商用web应用的消费者降低了价格并扩展了能承受创建免费web应用的开发者的数量。此外,通过消除对由第三方来创建主存域的需求,对web应用104-a的主存可完全由控制主网页的主存实体来执行,从而将主存负担集中在可处于扩展主存系统的高级位置的实体上。

隔离系统100利用基于动态域的隔离技术解决了这些和其他问题。如在图1a中示出的实施例中所示,隔离系统100包括通信耦合到数据存储160的隔离应用102。隔离应用102可包括域生成器组件104、域名组件110、接收组件120、应用标识组件130、安全组件140、以及应用主存组件150、以及其他软件元件。

一般而言,域生成器组件104被安排成为web应用104-a自动生成域。例如,在用户将web应用104-a安装在主存网站期间,域生成器组件104可为web应用104-a生成域。域名组件110被安排成接收对网络资源的引用的域名请求105,如统一资源定位符(url)。域名组件110可基于域名表112中的通配符条目来解析域名请求105,并发送响应于域名请求105的域名响应115。接收组件120被安排成接收对该url处的web应用104-a的请求125,该url是被动态地分配给web应用104-a的。应用标识组件130被安排成在该url的基础上来确定多个所主存的web应用104-a中的哪一个所主存的web应用104-a与被请求的web应用104-a相对应。安全组件140被配置成确定web应用104-a的一组安全许可,安全组件140将这些安全许可应用于接收到的请求125。应用主存组件150被安排成使用web应用104-a来返回对请求125的响应135。

在各实施例中,域生成器组件104被安排成为web应用104-a自动生成域。如上所述,出于安全的目的,在将由web门户的主存实体或第三方开发者开发的web应用104-a安装在该web门户上时,web应用104-a需要分开的域。这一域通常是由web应用104-a的用户或开发者来生成的,从而增加了开发web应用104-a的成本和复杂度。为降低或消除相关联的成本和复杂度,作为用于将web应用104-a安装在web服务器上的一组安装操作的一部分,域生成器组件104可为web应用104-a自动生成域。除了降低用户或开发者的成本和复杂度之外,这一动态域生成为web服务器提供了一些独特的优点,如具有对为web应用104-a和/或用户生成每一个域的方式的精细控制。例如,域生成器组件104可以使用降低域名组件110执行并解析域名系统(dns)搜索所需的时间的算法来生成域。这在其中域名系统的响应性是一种对性能的限制因素的大规模主存场景中特别有价值。

在各实施例中,域名组件110通常被安排成接收对url的域名请求105。作为该url的一部分,该url包括域名。这一域名会被域生成器组件104动态地分配给web应用104-a。在一些实施例中,url会在安装时被动态地分配给web应用104-a。在一些实施例中,这一动态分配可包括在将web应用104-a安装到用户网页中时为它生成唯一域名。这可以是其中用户从web应用中枢(如web应用商店)选择web应用104-a以安装到网页(如web门户处的用户网页)中的过程的一部分。在安装后,在用户请求该用户网页的情况下,所安装的web应用104-a将被包括,如通过将所安装的web应用104-a嵌入在用户网页的帧中。在一些实施例中,所安装的web应用104-a将被安装到多个用户访问的网页中。在这些情况下,在多个用户请求共同网页的情况下,所安装的web应用104-a将被包括,如通过将所安装的web应用104-a嵌入在该共同网页的帧中。或者,在共同网页被各单独用户单独地定制的情况下,用于每一安装的应用的唯一的统一资源定位符不仅允许标识哪一web应用104-a发起了请求还允许标识所安装的web应用104-a与哪一用户相关联。如此,为web应用104-a生成的对请求125的响应135可对特定用户进行定制,如通过从所存储的该用户专用的信息中提取,即使在web应用104-a被安装成共同网页的用户特定版本。

在一些实施例中,url可包括包含用户专用标识符和应用标识符的域名。经组合的应用标识符和用户专用标识符可造成web应用104-a的特定安装的唯一的域名。

可在安装期间为web应用104-a生成应用标识符。应用标识符可以是通过以下过程来生成的固定长度(如6位)的数字:该过程被设计成确保应用标识符将在用于特定用户的各应用标识符之间是唯一的。在一些实施例中,可通过在创建用户账户时生成随机数来创建应用标识符,其中向第一安装的web应用104-1分配该随机数,并且向每一随后安装的web应用104-2、104-3……104-a顺序地分配该随机数后续的数字。例如,如果该随机数是123456,则第一应用标识符可包括123457,第二应用标识符可包括123458,以此类推。或者,可以使用确保每一应用标识符的唯一性的随机数生成机制来为每一所安装的web应用104-a随机生成应用标识符。

用户专用标识符可以是web门户的特定用户所专用的。用户专用标识符可对应于已注册用户名或可被用于唯一地标识用户的任何其他字符序列。在一个实施例中,例如,用户专用标识符可包括该用户的全局唯一标识符(guid)。

将用户专用标识符与应用标识符进行组合可创建主存实体的主存域的唯一子域。例如,如果先前为具有用户专用标识符johnyoung的用户安装的web应用104-1具有应用标识符123456,则经组合的应用标识符可以是johnyoung-123457,其中“123457”是“123456”后的下一数字。如果web应用104-1被主存在主存域globalappshare.net上,则web应用104-1的这一安装的完整url将如下所示:

johnyoung-123457.globalappshare.net

将明白,可以预见用于将用户专用标识符域应用标识符组合成经组合的应用标识符的多种技术。各实施例不限于该上下文。

在各实施例中,域名组件110可解析域名请求105来产生包括所安装的web应用104-a的网络地址(如因特网协议(ip)地址)的域名响应115。域名组件110可在数据存储160中维护域名表112,其中由域名组件110管理每一域名的条目。然而,具有大量条目的域名表112可能需要相当大量的存储器或高速缓存空间来存储这些域名条目,这可增加成本并降低域名组件110的性能。如果对每一所安装的应用作出唯一的域名条目,则这一问题恶化。为了减轻这一问题,可对每一用户专用标识符使用通配符条目,其中(对应于该用户的所安装的web应用104-a的)该用户专用标识符的全部所安装的web应用104-a是根据该单个通配符条目来解析的。这一过程可包括在创建每一用户专用标识符时,为每一用户专用标识符创建通配符条目。域名组件110因而可被安排成检查每一接收到的域名请求105来确定接收到的域名请求105是否与所安装的web应用104-a的域名的已建立模式相匹配,并且如果是,则通过执行对用户专用标识符的通配符条目的搜索来解析域名请求105。

为继续以上示例,对具有urljohnyoung-123457.globalappshare.net的web应用104-1的域名请求105可由通配符条目johnyoung-*globalappshare.net来解析。如此,域名表112中的通配符条目可包括针对用户的多个web应用104-a的单个条目,其中唯一url是在安装时动态地分配给该多个web应用104-a中的每一个的。将明白,可以使用其他通配符条目,如将所有用户的所有所安装的web应用104-a解析成单个域的通配符条目。

在各实施例中,通配符条目可包括具有标识符部分和通配符部分的通配符子域。标识符部分可以是用户专用标识符、与所定义的一个或多个分隔符(如以上示例中使用的短划线)串接的用户专用标识符,或者一般可包括用户专用标识符。通配符部分可包括星号(如以上示例中)或指示可用于通配符匹配的子域的一部分的任何其他符号或方法。如果所请求的子域包含通配符子域的标识符部分,并且如果所请求的子域内的除与标识符部分相匹配的字符之外的任何字符被包含在可用于通配符匹配(如通配符部分所指示的)的通配符子域的部分中,则所请求的子域与通配符子域相匹配。如果这些条件中的任一个没有满足,则所请求的子域与通配符子域不匹配。如果所请求的域名与包括通配符子域的通配符条目相匹配(如上所述地匹配),则域名请求105将与通配符条目相匹配。

在一些实施例中,通配符部分可包括特定所需数量的字符,其中所请求的子域只有在所请求的子域内的除与标识符部分相匹配的字符之外的字符的数量是该特定所需数量的字符的情况下才与通配符子域相匹配。在这些实施例中,应用标识符将被分配成具有这一特定所需数量的字符。或者,通配符部分可允许任何数量的字符,或者可允许多个特定数量的字符,如所允许的范围。

在各实施例中,接收组件120一般被安排成接收并处理对url处的web应用104-a的请求125,该url是被动态地分配给web应用104-a的。如上所述,每一所安装的web应用104-a具有对于该web应用104-a在特定用户处的安装的唯一域名。如上所述,这一唯一域名是由隔离应用102在web应用104-a的安装期间自动地且动态地生成和分配给web应用104-a的。接收组件120可以将请求125中的一些或全部转发给应用标识组件130。在一些实施例中,接收组件120可只将与所安装的web应用104-a的域名的已建立模式相匹配(如上所述)的那些请求转发给应用标识组件130,并且制止将与该已建立模式不匹配的那些请求转发给应用标识组件130。以此方式,接收组件120可用于从适于正常域名搜索技术的那些请求过滤适于执行对用户专用标识符的通配符的搜索的请求125。

在各实施例中,应用标识组件130一般被安排成在url的基础上来确定多个所主存的web应用104-a中的哪一所主存的web应用104-a与所请求的web应用104-a相对应。每一所安装的web应用104-a具有对于该web应用104-a在特定用户处的安装的唯一的域名。应用组件130可以从url中提取用户专用标识符和应用标识符,并使用这一信息来标识哪一web应用104-a对应于所提取的用户专用标识符和应用标识符。继续以上示例,接收到的urljohnyoung-123457.globalappshare.net将使得用户专用标识符“johnyoung”和应用标识符“123457”被提取,它们一起唯一地标识所安装的web应用104-a。将明白,如上所述,在一些实施例中,应用标识符只有在结合用户专用标识符一起使用时才标识web应用104-a,因为可为不同用户的特定web应用104-a的各安装生成不同的应用标识符。如此,在由两个独立的用户来安装的情况下,同一web应用104-a可能不具有相同的应用标识符。

在各实施例中,安全组件140一般被安排成确定web应用104-a的一组安全许可,安全组件140将这些安全许可应用于接收到的请求125。安全组件140可以基于用户专用标识符和应用标识符通过执行存储在数据存储160中(或者在一些实施例中,存储在分开的数据存储中)的查找表(lut)中的查找以确定所安装的web应用104-a的特定一组许可,来确定该组安全许可。在一些实施例中,这可允许同一web应用104-a的不同用户为他们的该web应用104-a的特定安装指定不同的安全许可。例如,第一用户可允许所安装的web应用104-1访问联系人列表,而第二用户拒绝访问联系人列表。在一些实施例中,每一web应用104-a可具有跨该web应用104-a的所有安装所共有的一组许可。在这些实施例中,web应用104-1可以指定使用该应用所需的一组许可,其中web应用104-1的每一附加安装都具有该相同的一组许可。例如,web应用104-1可包括生日提醒应用并指定它利用用户的联系人列表,在该示例中,这要拉取生日日期来向用户提醒生日。可在使web应用104-1可供用户安装之前将这组许可传送给主存实体。安全组件140可允许所安装的web应用104-1只能访问该web应用104-1的该组安全许可所允许的那些数据部分,如私有用户数据。例如,web应用104-2可能没有用户的联系人列表的访问权。将明白,存在着用于对于安装在各帧内的web应用104-a对数据的访问进行管理的多种已知技术。各实施例不限于该上下文。

应用主存组件150一般被安排成使用web应用104-a来返回对请求125的响应135。如上所述,将在与web应用104-a的特定安装相关联的唯一域名的基础上标识该web应用104-a。将明白,存在着用于对针对嵌入在页面的帧内的web应用104-a的请求进行响应的多种已知技术。将明白,该隔离系统的唯一地标识web应用104-a的能力可帮助应用主存组件150执行多租赁主存功能。在一些实施例中,多个开发者的web应用将由共享的(但可能是分布式的)主存环境来主存。在这样的共享主存环境中,唯一地标识web应用104-a的能力可帮助对数据或主存配置的虚拟分区,如通过使用web应用104-a的唯一标识来唯一地标识什么开发者、发起者、或主存客户机为web应用104-a负责。在各实施例中,在主存web应用104-a时,应用主存组件150可用于修改、定制、或以其他方式利用为web应用104-a标识的主存客户机。例如,web应用104-a的开发者或分发者可以与主存配置设置相关,这些主存配置设置与记账、合同执行保证、或其他所达成一致或以其他方式预定的关于特定开发者或分发者的设置有关。各实施例不限于该上下文。

图1b示出了适于隔离系统100的操作环境170的框图。在操作环境170中,服务器172可以实现用于主存网站174的各种web技术。网站174可包括一个或多个网页176-b,其中b表示任何正整数。网页176-b(如网页176-1)可包括各种组成片段,包括web应用104-1、web应用104-2、web应用104-3、以及用户数据178。web应用104-1、104-2、以及104-3中的每一个可被实现在由隔离系统100生成的不同域中。web应用104-1、104-2、以及104-3中的每一个可具有不同的来源,并且可源自不同的开发者。不同的域提供基于域的隔离,以阻止web应用104-1、104-2、以及104-3访问、修改、或破坏彼此和/或用户数据178。

此处所包括的是一组表示用于执行所公开的体系结构的新颖方面的示例性方法的流程图。尽管出于解释简明的目的,此处例如以流程图形式示出的一个或多个方法被示出并且描述为一系列动作,但是可以理解,各方法不受动作的次序的限制,因为根据本发明,某些动作可以按与此处所示并描述的不同的次序和/或与其他动作同时发生。例如,本领域的技术人员将明白并理解,方法可被替换地表示为一系列相互相关联的状态或事件,诸如以状态图的形式。此外,并非方法中所示出的所有动作都是新颖实现所必需的。

图2a示出逻辑流程200的一个实施例。逻辑流程200可表示由在此所描述的一个或多个实施例所执行的操作中的部分或全部。例如,逻辑流程200可表示隔离系统100的操作。

在框210,启动逻辑流程200的操作。

在框220,逻辑流程200接收对url的域名请求105。作为该url的一部分,该url包括域名。这一域名会被域生成器组件104动态地分配给web应用104-a,如web应用104-1。在一些实施例中,例如,在web应用104-1被安装成网站174的网页176-1的一部分时,该url将被隔离系统100动态地分配给web应用104-1。在一些实施例中,这一动态分配技术可包括在为用户将web应用104-1安装到网页176-1中时为它生成唯一域名。这可以是其中用户从web应用中枢(如在线web应用商店)选择web应用104-1以安装到网页176-1(如web门户处的用户网页)中的过程的一部分。在安装后,在用户请求125该网页176-1的情况下,所安装的web应用104-1将被包括,如通过将该web应用104-1嵌入在网页176-1的帧中。

在一些实施例中,url可包括包含用户专用标识符和应用标识符的域名,应用标识符是在安装时为web应用104-1生成的,并且用户专用标识符专用于该web门户的特定用户。经组合的应用标识符和用户专用标识符可形成web应用104-1的这一特定安装的唯一域名。用户专用标识符可对应于已注册用户名或可被用于唯一地标识用户的任何其他字符序列。应用标识符可以是通过以下过程来生成的固定长度(如6位或14位)的数字:该过程确保应用标识符将在用于特定用户的各应用标识符之间是唯一的。在一些实施例中,在安装时为web应用104-1生成应用标识符。

在框230,逻辑流程200基于域名表中的通配符条目来解析域名请求105。可维护域名表112,其中由域名组件110来管理每一域名的条目。域名组件110可对每一用户专用标识符使用通配符条目,其中(对应于该用户的所安装的web应用104-a的)该用户专用标识符的全部所安装的web应用104-a是根据该单个通配符条目来解析的。这一技术可包括在创建每一用户专用标识符时,为每一用户专用标识符创建通配符条目。因此,可检查每一接收到的域名请求105来确定接收到的域名请求105是否与所安装的web应用104-a的域名的已建立模式相匹配,并且如果是,则通过执行对用户专用标识符的通配符条目的搜索来解析域名请求105。

在框240,逻辑流程200可接收对url处的web应用104-1的请求125,该url是被动态地分配给web应用104-1的。如上所述,所安装的web应用104-1具有对于该web应用104-1在特定用户处的安装的唯一的域名。如上所述,这一唯一的域名是动态地生成的并动态地分配给web应用104-1。请求125中的一些或全部可被转发以用于应用标识。在一些实施例中,如上所述,只有域所安装的web应用104-a的域名的已建立模式相匹配的那些请求125可被转发以用于应用标识,而与已建立模式不匹配的那些请求不被转发用于应用标识。

图2b示出逻辑流程200的始自图2a所示的控制点a的继续。控制点a仅仅表示图2a、2b之间的在框240和框250之间的转移,并且不必是与逻辑流程200分开的逻辑流程。

在框250,逻辑流程200在url的基础上确定多个所主存的web应用104-a中的哪一所主存的web应用104-1对应于所请求的web应用104-1。所安装的web应用104-1具有对于该web应用104-1在特定用户处的安装的唯一的域名。可以从该url中提取用户专用标识符和应用标识符以标识哪一web应用104-1对应于所提取的用户专用标识符和应用标识符。

在框260,逻辑流程200可以确定web应用104-1的一组安全许可。可通过基于用户专用标识符和应用标识符执行查找以确定所安装的web应用104-1的特定一组许可,来确定该组安全许可。在一些实施例中,这可允许同一web应用104-1的不同用户为他们的web应用104-1的特定安装指定不同的安全许可。例如,第一用户可允许所安装的web应用104-a访问联系人列表,而第二用户拒绝访问联系人列表。在一些实施例中,每一web应用104-1可具有跨该web应用104-1的所有安装所共有的一组许可。在这些实施例中,web应用104-1可以指定使用该web应用104-1所需的一组许可,其中web应用104-1的每一安装具有该相同的一组许可。

在框270,逻辑流程200可以将这些安全许可应用于接收到的请求125。可允许所安装的web应用104-1只能访问该web应用104-1的该组安全许可所允许的那些数据部分,如私有用户数据178。可将安全许可存储在由数据存储160管理的lut中。

在框280,逻辑流程200可使用web应用104-1返回对请求125的响应135。如上所述,将在与web应用104-1的特定安装相关联的唯一域名的基础上从多个web应用104-a中标识该web应用104-1。

图3示出了集中式系统300的框图。集中式系统300可在单个计算实体(诸如完全在单个计算设备320内)中实现隔离系统100的结构和/或操作的一些或全部。参考图5描述了计算设备320的示例性计算架构。

计算设备320可使用处理组件330执行隔离系统100的处理操作或逻辑。处理组件330可包括各种硬件元素、软件元素或两者的组合。硬件元件的示例可以包括设备、逻辑设备、组件、处理器、处理器电路、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(asic)、可编程逻辑器件(pld)、数字信号处理器(dsp)、现场可编程门阵列(fpga)、存储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等。软件元件的示例可以包括软件组件、程序、应用软件、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(api)、指令集、计算代码、计算机代码、代码段、计算机代码段、文字、值、符号、或其任意组合。确定一实施例是否使用硬件元件和/或软件元件来实现可视给定实现所需根据任何数量的因素而变化,这些因素如所需计算速率、功率级、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度以及其他设计或性能约束。

计算设备320可使用通信组件340来执行隔离系统100的通信操作或逻辑。通信组件340可以实现任何公知的通信技术和协议,如适用于与分组交换网络(例如,诸如因特网等公共网络、诸如企业内联网等专有网络,等等)、电路交换网络(例如,公共交换电话网)、或分组交换网络和电路交换网络的组合(使用合适的网关和转换器)一起使用的技术。通信组件340可以包括各种类型的标准通信元件,如一个或多个通信接口、网络接口、网络接口卡(nic)、无线电、无线发射机/接收机(收发机)、有线和/或无线通信介质、物理连接器等。作为示例而非限定,通信介质320包括有线通信介质和无线通信介质。有线通信介质的示例可以包括导线、电缆、金属线、印刷电路板(pcb)、背板、交换光纤、半导体材料、双绞线、同轴电缆、光纤、所传播的信号等。无线通信介质的示例可以包括声学、射频(rf)频谱、红外和其他无线介质320。

计算设备320可经由通信组件340使用通信信号322通过通信介质320与其他设备310、350通信。

在一些实施例中,并且具体参考图1a、1b,处理组件330可包括隔离应用102、域名组件110、接收组件120、应用标识组件130、安全组件140、以及应用主存组件150中的一些或全部。在一些实施例中,域名组件110、接收组件120、以及主存组件150可以使用通信组件340来接收域名请求105和请求125并发送域名响应115和响应135。在一些实施例中,设备310和350可对应于向隔离系统100发送域名请求105或请求125并从隔离系统100接收域名响应115或响应135的客户机设备。设备310和350一般对应于由包含一个或多个嵌入的web应用104-a的网页的用户所使用的客户机设备。在这一使用场景中,计算设备320可包括可由主存网站174的服务器172访问的服务器阵列的服务器或服务器刀锋,其中各种所安装的web应用104-1、104-2、104-3能访问由隔离系统100提供的隔离服务。

图4示出了分布式系统400的框图。分布式系统400可使系统100、300的结构和/或操作的各部分跨多个计算实体分布。分布式系统400的示例可包括但不限于,客户机-服务器架构、3层架构、n层架构、紧耦合或群集的架构、对等架构、主-从架构、共享数据库架构、以及其他类型的分布式系统。各实施例不限于该上下文。

域名系统410和服务器系统415可使用处理组件430处理信息,处理组件430类似于参考图3描述的处理组件330。域名系统410和服务器系统415可经由通信组件440使用通信信号422通过通信介质420彼此通信,通信组件440类似于参考图3描述的通信组件340。

域名系统410可包括或实现隔离系统100的域名组件110。服务器系统415可以将隔离系统100的其他部分实现为服务器组件450,这可包括接收组件120、应用标识组件130、安全组件140、以及应用主存组件150中的全部或一些。将明白,在替换实施例中,接收组件120、应用标识组件130、安全组件140、以及应用主存组件150中的全部或一些可被实现在不同的计算设备上。应当明白,在许多实施例中,在域名系统410也可执行传统的域名解析任务时,域名组件110可以作为隔离系统100的集成部分来执行任务,其中它在分配并解析web应用的统一资源定位符的过程中提供帮助,并且具体而言,在对常规域名系统所支持的那些条目之外的通配符条目进行解析的过程中提供帮助。各实施例不限于该上下文。

通过介质420发送的信号422可对应于实现域名系统410与服务器系统415之间的协调的信号。例如,一旦用户向主存实体进行了注册,域名系统410和服务器系统415两者就将利用分配给该用户的用户专用标识符。

在各实施例中,域名系统410可包括或使用用于执行根据所描述的各实施例的各种方法的一个或多个计算设备和/或程序。将明白,存在着用于实现根据以上描述的各实施例的域名系统410的多种不同的方法。

在各实施例中,服务器系统415可包括或使用用于执行根据所描述的实施例的各种方法的一个或多个服务器计算设备和/或服务器程序。例如,当被安装和/或部署时,服务器程序可以支持用于提供特定服务和特征的服务器计算设备的一个或多个服务器角色。示例性服务器系统45可包括例如操作诸如操作系统、操作系统、操作系统或其他合适的基于服务器的操作系统等服务器操作系统的独立和企业级服务器计算机。例如,示例性服务器程序可包括社交网络系统(sns)程序,web技术程序,web应用104-a,web服务,web主存服务器程序,诸如officecommunicationsserver(办公室通信服务器,ocs)等用于管理传入和传出消息的通信服务器程序,诸如exchangeserver(交换服务器)等用于提供对电子邮件、语音邮件、voip、即时消息收发(im)、群im、增强的在场、以及音频-视频会议的统一消息收发(um)的消息收发服务器程序,和/或根据所描述的实施例的其他类型的程序、应用、或服务。

图5示出适用于实现上述各实施例的示例性计算架构500的实施例。如在本申请中所使用的,术语“系统”和“组件”旨在表示计算机相关的实体,其可以是硬件、硬件和软件的组合、软件、或者执行中的软件,其示例由示例性计算架构500提供。例如,组件可以是但不限于,在处理器上运行的进程、处理器、硬盘驱动器、多个(光和/或磁存储介质的)存储驱动器、对象、可执行代码、执行的线程、程序、和/或计算机。作为说明,在服务器上运行的应用和服务器两者都可以是组件。一个或多个组件可以驻留在进程和/或执行的线程内,且组件可以位于一个计算机上和/或分布在两个或更多的计算机之间。此外,组件可以通过各种类型的通信介质可通信地彼此耦合以协调操作。该协调可以涉及单向或双向信息交换。例如,组件可以传递通过通信介质传递的信号形式的信息。该信息可被实现成分配给各条信号线的信号。在这些分配中,每一消息都是信号。然而,其他实施例可另选地采用数据消息。这些数据消息可以跨各个连接发送。示例性连接包括并行接口、串行接口和总线接口。

在一个实施例中,计算架构500可包括计算设备的一部分或作为计算设备的一部分实现。电子设备的示例可包括但不限于,移动设备、个人数字助理、移动计算设备、智能电话、蜂窝电话、手机、单向寻呼机、双向寻呼机、消息收发设备、计算机、个人计算机(pc)、台式计算机、膝上型计算机、笔记本计算机、手持式计算机、平板计算机、服务器、服务器阵列或服务器场、web服务器、网络服务器、因特网服务器、工作站、小型计算机、大型计算机、超级计算机、网络设备、web设备、分布式计算系统、多处理器系统、基于处理器的系统、消费电子产品、可编程消费电子产品、电视机、数字电视机、机顶盒、无线接入点、基站、用户站、移动用户中心、无线电网络控制器、路由器、集线器、网关、网桥、交换机、机器、或其组合。各实施例不限于该上下文。

计算体系结构500包括各种常见计算元件,如一个或多个处理器、协同处理器、存储器单元、芯片组、控制器、外围设备、接口、振荡器、定时设备、视频卡、音频卡、多媒体输入/输出(i/o)组件,等等。然而,各实施例不限于由计算体系结构500来实现。

如图5所示,计算体系结构500包括处理单元504、系统存储器506以及系统总线508。处理单元504可以是可购得的各种处理器中的任一种。双微处理器和其他多处理器体系结构也可用作处理单元504。系统总线508向包括但不限于系统存储器506的各系统组件提供到处理单元504的接口。系统总线508可以是若干种总线结构中的任一种,这些总线结构还可互连到存储器总线(带有或没有存储器控制器)、外围总线、以及使用各类市场上可购买到的总线体系结构中的任一种的局部总线。

计算架构500可包括或实现各种制品。制品可包括存储逻辑的计算机可读的存储介质。计算机可读存储介质的示例可包括能够存储电子数据的任何有形介质,包括易失性存储器或非易失性存储器、可移动或不可移动存储器、可擦除或不可擦除存储器、可写或可重写存储器等。逻辑的示例可包括使用任何合适类型的代码(诸如源代码、已编译代码、已解释代码、可执行代码、静态代码、动态代码、面向对象代码、可视代码等)实现的可执行计算机程序指令。

系统存储器506可以包括一个或多个更高速的存储器单元的形式的各种类型的计算机可读存储介质,如只读存储器(rom)、随机存取存储器(ram)、动态ram(dram)、双倍数据率dram(ddram)、同步dram(sdram)、静态ram(sram)、可编程rom(prom)、可擦除可编程rom(eprom)、电可擦除可编程rom(eeprom)、闪存、诸如铁电聚合物存储器等聚合物存储器、奥氏存储器、相变或铁电存储器、硅-氧化物-氮化物-氧化物-硅(sonos)存储器、磁卡或光卡、或适于存储信息的任何其他类型的介质。在图5示出的所示实施例中,系统存储器506可包括非易失性存储器510和/或易失性存储器512。基本输入/输出系统(bios)可以存储在非易失性存储器510中。

计算机502可包括一个或多个较低速的存储器单元的形式的各种类型的计算机可读存储介质,包括内置硬盘驱动器(hdd)514、用于读写可移动磁盘518的磁软盘驱动器(fdd)516、以及用于读写可移动光盘522(例如,cd-rom或dvd)的光盘驱动器520。hdd514、fdd516、以及光盘驱动器520可分别由hdd接口524、fdd接口526和光盘驱动器接口528连接到系统总线508。用于外置驱动器实现的hdd接口524可包括通用串行总线(usb)和ieee1394接口技术中的至少一种或两者。

驱动器及相关联的计算机可读介质提供了对数据、数据结构、计算机可执行指令等的易失性和/或非易失性存储。例如,多个程序模块可存储在驱动器和存储器单元510、512中,包括操作系统530、一个或多个应用程序532、其他程序模块534和程序数据536。

一个或多个应用程序532、其他程序模块534、以及程序数据536可包括,例如,隔离应用102、域名组件110、接收组件120、应用标识组件130、安全组件140、以及应用主存组件150。

用户可以通过一个或多个有线/无线输入设备,例如键盘538和诸如鼠标540等定点设备将命令和信息输入到计算机502中。其他输入设备可包括话筒、红外(ir)遥控器、操纵杆、游戏垫、指示笔、触摸屏等等。这些和其他输入设备通常通过耦合到系统总线508的输入设备接口542连接到处理单元504,但也可通过诸如并行端口、ieee1394串行端口、游戏端口、usb端口、ir接口等其他接口连接。

监视器544或其他类型的显示设备也经由诸如视频适配器546等接口连接到系统总线508。除了监视器544之外,计算机通常包括诸如扬声器、打印机等其他外围输出设备。

计算机502可使用经由有线和/或无线通信至一个或多个远程计算机(诸如远程计算机548)的逻辑连接在联网环境中操作。远程计算机548可以是工作站、服务器计算机、路由器、个人计算机、便携式计算机、基于微处理器的娱乐设备、对等设备或其他常见的网络节点,并且通常包括相对于计算机502描述的许多或所有元件,但为简明起见仅示出了存储器/存储设备550。所描绘的逻辑连接包括到局域网(lan)552和/或例如广域网(wan)554等更大网络的有线/无线连接。这种lan和wan联网环境常见于办公室和公司,并且方便了诸如内联网等企业范围计算机网络,所有这些都可连接到例如因特网等全球通信网络。

当在lan联网环境中使用时,计算机502通过有线和/或无线通信网络接口或适配器556连接到lan552。适配器556可以方便到lan552的有线和/或无线通信,并且还可包括其上设置的用于使用适配器556的无线功能进行通信的无线接入点。

当在wan联网环境中使用时,计算机502可包括调制解调器558,或连接到wan554上的通信服务器,或具有用于诸如通过因特网等通过wan554建立通信的其他装置。或为内置或为外置以及有线和/或无线设备的调制解调器558经由输入设备接口542连接到系统总线508。在联网环境中,相对于计算机502所描绘的程序模块或其部分可以存储在远程存储器/存储设备550中。应该理解,所示网络连接是示例性的,并且可以使用在计算机之间建立通信链路的其他手段。

计算机502可操作来使用ieee802标准系列来与有线和无线设备或实体进行通信,这些实体例如是在操作上安置成与例如打印机、扫描仪、台式和/或便携式计算机、个人数字助理(pda)、通信卫星、任何一件与无线可检测标签相关联的设备或位置(例如,电话亭、报亭、休息室)以及电话进行无线通信(例如,ieee802.11空中调制技术)的无线设备。这至少包括wi-fi(即无线保真)、wimax和蓝牙tm无线技术。由此,通信可以如对于常规网络那样是预定义结构,或者仅仅是至少两个设备之间的自组织(adhoc)通信。wi-fi网络使用称为ieee802.11x(a、b、n、g等等)的无线电技术来提供安全、可靠、快速的无线连接。wi-fi网络可用于将计算机彼此连接、连接到因特网以及连接到有线网络(使用ieee802.3相关的介质和功能)。

图6示出适用于实现上述各实施例的示例性通信架构600的框图。通信架构600包括各种常见通信元件,如发射机、接收机、收发机、无线电装置、网络接口、基带处理器、天线、放大器、滤波器,等等。然而,各实施例不限于由通信架构600来实现。

如图6所示,通信架构600包括一个或多个客户机602和服务器604。客户机602可实现客户机系统310和350。服务器604可以实现隔离系统100、服务器系统415、或域名系统410。客户机602和服务器604可操作地连接到可被用来存储相应客户机602和服务器604本地的信息(如cookie和/或相关联的上下文信息)的一个或多个相应客户机数据存储608和服务器数据存储610。

客户机602和服务器604可以使用通信框架606在彼此之间传递信息。通信框架606可实现任何公知通信技术和协议,诸如参考系统100、300以及400所描述的那些。通信框架606可以被实现为分组交换网络(例如,诸如因特网等公共网络、诸如企业内联网等专有网络,等等)、电路交换网络(例如,公共交换电话网)、或分组交换网络和电路交换网络的组合(使用合适的网关和转换器)。

一些实施例可使用表述“一个实施例”和“一实施例”及其派生词来描述。这些术语意味着结合该实施例描述的特定特征、结构、或特性包括在至少一个实施例中。出现在说明书中各个地方的短语“在一个实施例中”并不必全都指的是同一实施例。此外,一些实施例可使用表述“耦合的”和“连接的”及其派生词来描述。这些术语不必旨在互为同义词。例如,一些实施例可使用术语“连接的”和/或“耦合的”来描述以指示两个或更多元件彼此有直接的物理或电接触。然而,术语“耦合的”还可以意味着两个或更多元件彼此不直接接触,而仍彼此合作或交互。

要强调,本公开的摘要是为了允许读者快速确定本技术公开的性质而提供的。提交摘要的同时要明白,将不用它来解释或限制权利要求的范围或含义。另外,在前面的详细描述中,可以看到,出于将本公开连成一个整体的目的而将各种特征组合在一起放在单个实施例中。此公开方法将不被解释为反映所要求保护的实施例要求比每个权利要求中明确陈述的更多特征的意图。相反,如所附权利要求书所反映,发明性的主题存在于比单个已公开实施例的所有特征少的特征中。从而,据此将所附权利要求结合进详细描述中,其中每个权利要求独立地代表一个单独的实施例。在所附权利要求书中,术语“包括”和“其中”分别用作术语“包含”和“其特征在于”的易懂的英文等价词。而且,术语“第一”、“第二”、“第三”等等只用作标记,而不旨在将数字要求强加于其对象上。

上面描述的包括所公开的体系结构的各示例。当然,描述每一个可以想到的组件和/或方法的组合是不可能的,但本领域内的普通技术人员应该认识到,许多其他组合和排列都是可能的。因此,该新颖体系结构旨在涵盖所有这些落入所附权利要求书的精神和范围内的更改、修改和变化。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1