用于基于HTTP的应用的网络浏览器策略的制作方法

文档序号:11160932阅读:304来源:国知局
用于基于HTTP的应用的网络浏览器策略的制造方法与工艺

能够由客户端计算机的网络浏览器的用户经由超文本传输协议(HTTP)或安全超文本传输协议(HTTPS)浏览的许多网站是在服务器计算机上主控的基于网络的应用。这些应用经由网络浏览器显露它们的用户界面,并且没有安装在客户端计算机上。应用依赖应用服务器而不是客户端来实现应用的特征,并且在把服务器上的数据传输到客户端之前管理对数据的访问。一旦特征已经被显露,并且数据通过连接被传输到客户端,客户端就没有访问点来控制特征或数据。对于客户端处的用户输入的数据也同样是如此。即使客户端计算机的管理员希望限制或约束对这些特征和数据中的某些的访问,用户也能够访问应用的所有显露的特征和所有数据。

附图说明

图1是根据本公开的示例的、包括具有网络浏览器的客户端计算机的系统的示意性框图,所述网络浏览器具有策略控制特征。

图2是根据本公开的示例的、包括具有网络浏览器的客户端计算机的系统的另一示意性框图,所述网络浏览器具有策略控制特征。

图3是根据本公开的示例的、图2的客户端计算机的架构的示意性框图。

图4是根据本公开的示例的、用于使用客户端计算机的网络浏览器实施用于在服务器计算机上执行的基于HTTP的应用的预定义管理策略的方法的流程图。

图5是根据本公开的示例的用于使用客户端计算机的网络浏览器实施用于在服务器计算机上执行的基于HTTP的应用的预定义管理策略的方法的另一流程图。

图6A至6C是根据本公开的示例的客户端计算机的窗口显示的示例,该客户端计算机执行使用客户端计算机的网络浏览器来实施用于在服务器计算机上执行的基于HTTP的应用的预定义管理策略的方法。

具体实施方式

基于网络的应用(也称为“应用”)的部署的显着增加已经为管理应用级策略(诸如像涉及防止敏感数据泄漏的那些策略)形成了重大障碍。基于网络的应用(也称为“基于浏览器”或“被主控”的应用)驻留在万维网上的一个或多个服务器计算机上,并且响应于从客户端计算机提供的输入由万维网上的一个或多个服务器执行,所述客户端计算机通过网络通信地耦合到所述应用。应用可以驻留在单个服务器计算机上并由其主控,或者部分可以在不同服务器上主控的多个网站/网页之间分割或共享,诸如像在其内容中包括从另一应用嵌入了地图的商业目录应用。基于网络的应用通过网络浏览器客户端显露它们的用户界面,并且没有安装在用户的客户端计算机上。客户端计算机通过将网络浏览器引导到应用的统一资源定位符(URL)来耦合到应用;示例包括facebook.com,linkedin.com,salesforce.com和许多其他。在这样的应用中,业务逻辑在服务器处而不是在客户端处运行。应用依赖应用服务器而不是客户端来在数据传输到客户端之前对数据施加策略控制的访问。基于网络的应用可以通过身份管理方案提供对它们的数据和/或功能的访问控制点。这种类型的访问能够基于用户、角色、位置、访问设备和/或网络连接。然而,这一方案从应用服务器而不是从客户端控制数据流动和功能访问。一旦通过HTTP/HTTPS连接使得功能能够被客户端访问和/或数据被发送到客户端,客户端就没有控制点来实施管理策略,所述管理策略旨在确保数据或功能不被以与这些策略相反的方式不适当地访问或操作。

本公开的一个核心概念是提供一种机构和框架,用于使用客户端的网络浏览器来实施用于在服务器上执行的基于网络的应用的预定义管理策略。在一个示例中,这些策略可以包括指定将能够如何打印数据、操纵数据、存储数据或复制数据到客户端上的其他应用。在一个示例中,所述策略可以替代地或附加地包括指定应用的功能或特征是否、何时、和/或如何可以被用户在客户端上交互。当用计算机实现时,结果是对计算机功能的显着增强,使得预定义的管理策略能够以有利和有益的方式在客户端上在它与这样的基于网络的应用的交互中实施。

现在参考附图,示出了系统、客户端计算机、方法和计算机可读存储介质的示例,这些示例响应于与基于网络的应用相关联的预定义事件的发生而在客户端计算机上执行预定义操作,以实现和实施预定义的管理策略。

现在考虑这样的系统,并且参考图1,系统100包括经由通信链路105通信地耦合到客户端计算机130的服务器计算机110。服务器110主控和执行基于网络的应用120。在一些示例中,基于网络的应用120是基于HTTP的应用。如本文和所附权利要求中所定义的,“基于HTTP的应用”可以被广泛地理解为包括基于网络的应用,其中执行应用的服务器和访问应用的客户端之间的通信通过超文本传输协议(HTTP)或超文本传输协议安全(HTTPS)执行。应用120产生至少一个网页125,所述网页125通过链路105传送到客户端130。网页125是标记语言(诸如HTML(超文本标记语言),XHTML(可扩展超文本标记语言)和/或XML(可扩展标记语言)的元素或对象的文档。不同的网页或特定网页的不同内容可以按照应用的执行所修改的或者响应于客户端130的用户与应用120的交互不时地从服务器110传送到客户端130。

客户端130包括接收网页125的网络浏览器140。接收的网页作为网页125的文档对象模型150存储在浏览器140中。如本文和所附权利要求中所定义的,“文档对象模型”(或“DOM”)可以被广泛地理解为意思指用于表示HTML,XHTML和XML文档(例如网页)的对象并与之交互的惯例(convention)。网络浏览器140再现所接收的网页的DOM 150以供客户端130的用户观看和交互。

网络浏览器140包括触发引擎160,用以检测DOM 150的元素152的改变事件162。如本文和所附权利要求中所定义的,“DOM元素”可以被广范地理解为意思指根据DOM模型表示的HTML或XHTML文档(例如网页)的元素或XML文档的节点。也如本文和所附权利要求中所定义的,DOM元素的“改变事件”(或“文档改变事件”)可以被广范地理解为意味着对元素的存在的改变,对元素的特性或属性的改变,或对元素的数据值的改变。对元素存在的改变包括元素被添加到DOM或从DOM移除。对元素的特性、属性或数据值的改变将改变现有元素的一个方面。文档加载事件可以是由触发引擎160检测到的多个不同类型的事件中的一个。

DOM元素152的特性可以包括定义元素将如何由网络浏览器140再现的一个或多个视觉特性157;在一个示例中,可以存在字体大小、颜色、背景外观等的视觉特性。DOM元素152的属性可以包括均定义元素的特性的一个或多个标签(或特性)。这样的标签可以特别包括标识元素的类型的类标签154;ID标签155,它可以帮助定位元素;以及动作标签156,它指定网络浏览器140响应于元素被选择而要采取的动作。选择可以以各种方式发生,包括但不限于改变焦点至,鼠标悬停,点击,右击或触摸。在一个示例中,元素的数据值158可以是元素的文本串或数值。

如本文和所附权利要求中所定义的,“修改”DOM元素可以被广泛地理解为意味着改变元素的存在、特性、属性和/或数据值中的至少一个。

网络浏览器140还包括策略引擎170。如本文和所附权利要求中所定义的,“策略引擎”(或“策略控制钩子”)可以被广义地理解为客户端计算机上用于在与基于网络的应用的交互期间实施预定义策略的机构。策略引擎170在网络浏览器140的上下文之内执行。策略引擎170耦合到触发引擎160,并对来自触发引擎160的针对事件162的检测信号164作出响应。检测信号164识别与改变事件162相关联的DOM元素,并且描述改变事件162。响应于检测信号164,策略引擎170执行对于与改变事件162相关联的DOM元素可能存在的任何预定义策略。在在一个示例中,如果检测信号164针对与DOM元素152相关联的事件162,则在对DOM元素152存在的任何策略中指定的操作将由策略引擎170执行。可以在策略中规定宽范围的操作,包括对DOM的一个或多个元素(其可以包括或者可以不包括发生了改变事件162的DOM元素152)的修改以及至少部分地在网络浏览器140之外执行的动作,诸如对与事件相关的信息进行日志记录,或者控制对与网络浏览器140外部的应用120相关的数据的复制、打印或保存。由策略引擎170执行的操作不同于浏览器140对DOM的再现也并且独立于浏览器140对DOM的再现。在不同的示例中,由策略引擎执行的操作可以与DOM的再现异步或与DOM的再现同步。注意,策略引擎170不是脚本(例如,java脚本(iavascript)),并且不是网页的一部分。

客户端计算机130还包括策略管理器190。策略管理器190接收预定义策略192,预定义策略192指定不同于再现DOM 150且与改变事件162相关联的操作和DOM元素152。在本文和所附权利要求中定义的,“策略”可以被广泛地理解为包括可用于实现对基于网络的应用的功能或数据的访问或使用的(在客户端计算机上实施的)限制的数据结构。策略管理器190又将策略192提供给策略引擎170,并且引擎170可以用策略192来初始化或配置。多个策略192可以编组在一起成为策略数据集。

服务器110和应用120可能不知道策略192以及策略引擎170执行的操作。因此,给定的应用120能够被多个客户端130上的多个浏览器140交互,多个浏览器140均实现不同的策略192。另外,在不打断应用120的情况下,对应用120的功能和数据的访问可以用策略192约束。换句话说,应用120的不受约束的功能和数据将继续在客户端130上正常地操作。

在一些示例中,客户端计算机可以是瘦客户端。如本文和所附权利要求中所定义的,“瘦客户端”可以被广泛地理解为包括具有预定义的一组应用程序并且不能向其添加或移除应用程序的客户端计算机。在瘦客户端中,在约束没有用策略实施的情况下,用户不能安装不同的网络浏览器应用以绕过网络浏览器140和策略引擎170并且访问应用120。

现在考虑包括具有网络浏览器的客户端计算机的另一系统,其中所述网络浏览器具有策略控制特征,并且参考图2,系统200包括经由网络205通信地耦合到客户端计算机230的服务器计算机210。在一个示例中,网络205是因特网。在其他示例中,网络205可以不同于因特网。服务器210类似于服务器110(图1)。

客户端230包括网络浏览器240。浏览器240的再现引擎242访问DOM 150并且生成再现的输出243到显示器245,在显示器245上,再现的输出243采用视觉形式247作为视为图形用户界面(GUI)可被用户202观看到。用户202通过GUI与客户端计算机230交互以向浏览器240提供用户输入248。用户输入248的示例特别包括用户选择DOM元素,选择一组多个页面视图(例如页面标签)中的一个,改变DOM元素的位置或方向,以及将数据输入到文本框中。

在应用120的操作期间,可以对一个或多个DOM元素(在一个示例中诸如元素152)做出改变。这些改变可以响应于用户输入248或独立于用户输入248而发生。应用120可以更新或替换网页125以反映改变,并且向客户端230发送更新或新页面。再现引擎242操作以在视觉上再现修订页面的DOM 150。触发引擎160还对修订的DOM150进行操作以检测对它的元素的改变(诸如对元素152的改变事件162),并将检测到的事件信号164发送到策略引擎270。

策略引擎270与策略引擎170(图1)类似地操作。在执行预定义策略(如果存在一个)中,对于与改变事件162(和检测到的事件164)相关联的DOM元素,策略引擎270可以修改272DOM 150的一个或多个元素。策略引擎270还可以传递浏览器240外部的外部操作274至诸如客户端230的操作系统(未示出)或另一个模块。接着所讨论的这种外部操作274的示例包括将与事件相关的信息日志记录到用于后续操作(诸如审计)的文件或者允许或不允许复制、打印或保存与网络浏览器140之外的应用120相关的数据。在一些示例中,可以组合多个外部操作;例如,日志记录可以与允许或不允许所日志记录的操作相结合。

在一些示例(诸如在图1中的示例)中,网络浏览器240包括插件接口288,插件接口288准许不是浏览器240的组成部分的软件模块访问浏览器240的功能和数据结构。在这些示例中,策略引擎270可以被实现为与插件接口288相配的浏览器插件模块。该架构允许策略引擎270被实现为单独的模块,所述单独的模块能够被附加到浏览器240但是却能够采用紧密集成的方式与浏览器240进行互操作。

策略管理器290与策略管理器190(图1)类似地操作。策略管理器290可以是网络浏览器240外部的客户端230的软件模块。在一些示例中,策略管理器290从外部策略服务器298获得策略192(通常作为具有多个策略192的数据集的一部分)并且使用所获得的策略192来配置策略引擎270。在其他示例中,策略管理器290可以将先前获取的策略192缓存在客户端230中,并且向策略引擎270提供缓存的策略192。在一个示例中,在策略服务器298不可访问时,可以使用所缓存的策略。策略管理器190可以从用户202接收用户ID 249,或者从用户202或从客户端230接收类似的标识信息。策略管理器190然后可以使用该信息来从策略服务器298或在缓存中识别和获得那些策略,那些策略与用户202和/或客户端230相关联。以这种方式,策略引擎270能够配置有适用于用户202和/或客户端230的适当策略。在不同的示例中,所有策略可以适用于所有用户202和/或客户端230,并且用户ID 249可以不被提供或使用。

更详细地考虑策略192,多个策略192可以被策略引擎270结合特定应用120使用。这些多个策略192可以形成策略数据集292。每个策略192通常被IT管理员或类似的人员预定义来实现用于一组客户端230(诸如属于特定组织的那些客户端)的管理策略。每个策略192包括各种字段。

应用字段294指定策略192施加到的应用120。这允许策略引擎270同时配置有针对多个应用120的策略192,使得随着用户从一个应用120冲浪到不同的应用120,适当的策略引擎能够被应用。在一些示例中,多个应用120可以在应用字段294中指定。在一些示例中,如果应用字段294不包含条目,则策略引擎270将策略192施加到所有应用120。

元素字段295指定策略192施加到的DOM元素152。在一个示例中,DOM元素152可以用DOM元素152的类标签154来标识。

条件字段296指定如果被满足则使由操作字段297指定的操作由策略引擎270执行的条件。该条件可以是用于DOM元素152整体,或用于元素152的元素数据158。可应用于元素152整体的条件的示例包括元素是否可见,或者元素是否已被用户选择。适用于元素数据158的条件的示例包括元素文本数据中是否存在特定的字符子串,或元素数值数据的值是否在指定的值范围之外。在一些示例中,条件字段296可以包括用逻辑运算符(例如与(AND),或(OR),非(NOT)等)连接的多个条件,所述多个条件条件被评估以确定所述条件是否被满足。策略引擎270可以基于这些条件产生组合断言或真命题。例如:如果条件1存在或条件2存在,则执行操作3。

当在元素字段295中指定的元素的条件字段196中指定的条件被满足时,操作字段297指定要由策略引擎270对应用字段294中指定的应用120执行的操作。如上所述,在一些示例中,操作可以修改DOM 150的至少一个元素152。在这种情况下,操作字段297指定要执行的操作和在上面执行操作的元素152。元素152可以是在元素字段295中指定的相同元素或是DOM 150的不同元素152。在一些示例中,操作字段297可以指定将对多个元素执行操作。在一些示例中,操作字段297可以指定多个操作,并且这些多个操作中的每一个可以对一个或多个元素执行。修改DOM元素152的操作的示例包括从DOM 150中移除指定的元素,向DOM 150添加元素,改变DOM元素的属性或特性或者改变元素数据的内容。

在其他示例中,操作可以是对浏览器240外部的程序或模块执行特定任务的请求。如上所述,这可以包括将与改变事件相关的数据日志记录到文件。在这种情况下,策略引擎270可以连同所述请求一起提供要日志记录的数据。策略管理器190可以接收这些请求和数据,并且执行操作本身或者将操作路由到客户端130的适当资源。

现在更详细地考虑客户端计算机230的一个示例架构,参考图3,客户端计算机230包括处理器310和存储器320。处理器310通过链路305通信地耦合到存储器320和显示器245。在一些示例中,诸如图3中所示的示例,存储器320和显示器245也经由链路305耦合,不过在其他示例中,它们可以不直接耦合到彼此。

除了诸如DOM 150的数据之外,能被处理器310执行的程序也可以存储在存储器320中。具有能被处理器310执行的单独指令的程序在层次结构中可以被按照概念组织。能够访问客户端计算机230的硬件资源的操作系统330处于最低级别。包括网络浏览器240,策略管理器290和其他程序(未示出)的本机程序在分层结构中处于下一个更高级别,并且能够直接访问操作系统的功能。策略引擎270在分层结构中处于再更高级别,因为它经由插件接口288插入到网络浏览器240中。这样,策略引擎270在网络浏览器240的上下文中执行。程序指令可以通过插件接口288将策略引擎270安装到网络浏览器240中。策略引擎270不具有对操作系统的功能的直接访问,而取而代之却有权访问网络浏览器240的经由插件接口270而显露给它的那些功能。为了执行未显露的操作(诸如数据日志记录)和访问客户端230的其他功能,策略引擎270可以向策略管理器290发送对这样的操作的请求。

参考图4,现在考虑一种用于使用客户端计算机的网络浏览器实施用于在服务器计算机上执行的基于HTTP的应用的预定义管理策略的方法。可替代地,图4可以被认为是客户端计算机的网络浏览器的流程图。如上所述,对HTTP的参考可以包括HTTPS和其他兼容协议。该方法开始于402:使用策略初始化浏览器。该策略包括至少一个操作。对于每个操作,策略还包括由应用呈现给客户端的网页的文档对象模型(DOM)的关联元素。在404,由浏览器检测DOM的元素的文档改变事件。在406,检查文档改变事件以确定事件是否是针对策略中的元素。如果不是(406的“否”分支),则该方法分支回到404。如果是(406的“是”分支),则在408执行策略的操作。在一些示例中,在410,如果元素可见,则执行操作。在一些示例中,在412,操作修改DOM的元素,并且该操作由策略引擎在浏览器上下文内执行。在414,当由浏览器在再现DOM时,操作可以允许或不允许元素的功能或者示出或隐藏元素的用户界面表示。在一些示例中,在416,操作修改DOM的元素的元素数据以重新定义被浏览器再现时它的内容和外观中的至少一个,并且该操作由策略引擎在浏览器上下文内执行。在一些示例中,在418,操作对浏览器之外的文档改变事件进行日志记录。这还可以包括日志记录与事件相关联的数据,包括相关联元素的数据。

参考图5,现在考虑另一种用于使用客户端计算机的网络浏览器来实施用于在服务器计算机上执行的基于HTTP的应用的预定义管理策略的方法。可替换地,图5可以被视为客户端计算机的网络浏览器的策略引擎(例如策略引擎170(图1),270(图2))的流程图。该方法在502开始:加载至少一个策略。在一些示例中,加载具有多个单独策略的策略数据集(诸如策略数据集292(图2))。可以从客户端计算机外部的策略服务器或者从客户端上已经存在的本地副本进行加载。在504,等待页面加载事件的发生。页面加载事件指示已经加载了新的网页,并且DOM现在表示该新网页的元素。页面加载事件可以响应于用户使用网络浏览器导航到新的URL而发生。页面加载事件还可以响应于应用向客户端发送新的网页而发生,这产生新的DOM。在506,确定策略数据集292中是否存在针对该应用的策略192(图1-2)。这可以通过将网页的URL的顶级域与策略数据集292中的策略192的应用字段294进行比较来进行。如果不是(506的“否”分支),则流程分支到504。如果是(560的“是”分支),则在508处等待文档改变事件。如果对DOM元素的改变发生了,则可以由触发引擎160(图1-2)为DOM元素生成文档改变事件。在510,一旦检测到文档改变事件,则识别与文档改变事件相关联的DOM元素。文档改变事件提供已经改变的DOM元素的指示。在512,在策略数据集292中搜索对应于改变的DOM元素的一个或多个策略。这可以通过将文档改变事件指示的DOM元素与策略数据集292中的每个策略192的元素字段295进行比较来进行。如果改变的DOM元素不在策略下(514的“否”分支),则流程分支到508。换句话说,在这种情况下,在数据集292中没有具有匹配元素字段295的策略192。如果改变的DOM元素在策略下(514的“是”分支)-换句话说,存在具有匹配元素字段295的至少一个策略192-则在516-518可以顺序测试这些元素匹配的策略192。在516,对于元素匹配的策略192之一确定是否满足在那个策略192中指定的条件(或多个条件)。这可以通过将每个元素匹配策略192的条件字段296与DOM元素的当前相关属性、特性和元素数据进行比较来确定。如果针对改变的DOM元素指定的条件不被满足(516的“否”分支),则流程分支到520。如果满足指定的条件(516的“是”分支),则在518执行在该策略的操作字段297中指定的操作,并且流程在520继续。在520,确定是否还有更多的元素匹配策略192要被测试。如果是(520的“是”分支),则选择下一个元素匹配策略192,并且流程分支到516。如果没有(520的“否”分支),则已经测试了所有元素匹配策略,并且分支到508以等待下一文档改变事件。

该方法具有它等待事件发生的几个点,例如在504,508,530和540处。为了使图5中的图示说明清楚,每个点被单独示出,但发生的事件类型决定了该方法在哪里继续。因此,如果在530触发引擎160检测到页面卸载事件,则流程分支到504。这指示它的加载触发了先前页面加载事件的网页已被卸载,并且不需要等待文档更改事件。

另外,如果在540触发引擎160检测到浏览器关闭事件,则这指示网络浏览器正在被关闭。结果,策略引擎的操作终止。

现在考虑使用客户端计算机的网络浏览器来实施用于在服务器计算机上执行的基于HTTP的应用的预定义管理策略的示例,并且参考图6A,示例应用位于URL“http:\\www.example.com”,并且用户将网络浏览器定向到该URL。为了简化说明,应用向浏览器提供第一和第二示例网页。在第一示例中,没有适用于该应用的策略。如果网络浏览器没有策略引擎,或者网络浏览器具有策略引擎,但没有为应用定义的策略,则可能会发生这种情况。第一示例网页在由网络浏览器的再现引擎在显示器上再现时导致窗口600A的图形界面,图形界面包括聊天按钮610。如果用户选择聊天按钮610,则基于HTTP的应用对该用户输入作出响应并将第二示例网页提供给网络浏览器。响应于接收到第二示例网页,网络浏览器在显示器上再现第二页面以产生窗口600A的图形界面。第二网页包括突显的聊天按钮620,用于进入消息的文本框630,用于外发消息的文本框640和发送按钮650。这是用户界面的简单图示,其中来自正在与其进行聊天会话的远程客户端的进入消息在本地客户端处接收时,被在进入消息文本框630中显示,并且随着来自本地客户端处的用户的外发消息被用户键入,在外发消息文本框640中出现所述外发消息。当用户选择发送按钮650时,在框640中的外发消息被发送到远程客户端。

表1示出了对应于第一示例网页的DOM的片段部分:

表1-第一示例网页(窗口600A)

为了简化图示说明,在图示说明DOM的表(诸如表1)中,应用了几个惯例。第一,为了清楚起见,省略了与本公开不相关的DOM的许多部分。这些部分在表中用省略号(“...”)示出。第二,所有注释以字符“//”开头。第三,括号(“[]”)表示元素数据,它也被称为“内部HTML”,并且元素数据被示出在DOM元素内以便清楚,即使它可能不出现在使用开发工具生成的DOM的表示中。

在表1中,聊天按钮610的外观由<样式(style)>部分中的聊天按钮(chat_button)DOM元素的特性定义。标识聊天按钮610并定义其功能的属性和标签在<主体(body)>部分中指定。这些包括类属性、id属性、角色属性、动作属性和href属性。属性和标签使应用能够使用服务器实现与DOM元素相关联的功能。元素数据也可以由应用在实现功能时使用。

表2示出了对应于第二示例网页的DOM的片段部分。

表2-第二示例网页(窗口600B)

在表2的第二网页的DOM中,聊天按钮620的样式特性反映它与聊天按钮610的“反转”外观。已经为进入消息文本框630、外发消息文本框640和发送按钮650添加了DOM元素。每个元素在DOM中都有定义的自己的特性、属性和元素数据。表2中的元素数据反映窗口600B的当前状态,窗口600B被出示有进入和外发消息。

考虑要为在服务器上执行的基于HTTP的应用在客户端上实施的第一示例预定义策略数据集。该数据集在表3中示出,并且为数据集中的每个策略定义应用字段294、元素字段295、条件字段296和操作字段297(图2):

表3-第一示例策略数据集

表3的数据集包括两个策略。第一个策略被应用于顶级域的应用example.com,而第二个策略被应用于顶级域的应用app2.com。

为了解释第一策略的操作,考虑网络浏览器已经在客户端上被调用并且第一策略被加载(图5,502)之后的时间。用户导航到URL“http:\\www.example.com”,并且基于HTTP的应用将第一示例网页(表1)发送到网络浏览器。页面加载事件504由触发引擎检测(图5,404),并且检查第一策略数据集。因为该数据集中的第一策略的应用字段294对应于该URL(图5,步骤506),所以策略引擎等待要从触发引擎接收的文档改变事件(图5,步骤508)。在网页被加载时,为网页的每个DOM元素生成文档改变事件。由于对这些不同于聊天按钮的其他DOM元素不存在策略,所以可以忽略针对这些DOM元素发生的文档改变事件(图5,510-514)。当生成对聊天按钮元素的文档改变事件时,确定是否满足条件(图5,516)。聊天按钮元素是可见的,这满足在第一策略的条件字段296中定义的条件。因此,通过执行在第一策略的操作字段297中定义的操作,将第一策略施加到聊天按钮的DOM元素,这从DOM中移除DOM元素。此时,在将表3的数据集的第一策略施加到DOM之后,表1的第一示例网页的修改版本如表4所示:

表4-应用策略后的第一个示例网页(窗口600C)

网络浏览器再现表4的修订的DOM,从而得到图6C的窗口600C,其中没有聊天按钮出现。策略的意图和效果是防止用户访问基于HTTP的应用的聊天功能。然而,除此之外,基于HTTP的应用在客户端上正常地操作,并且应用和服务器不知道客户端的网络浏览器中的策略的实现,并且也不受客户端的网络浏览器中的策略的实现的影响。

现在考虑要为在服务器上执行的基于HTTP的应用在客户端上实施的第二示例性预定义策略数据集。该数据集示于表5中:

表5-第二示例策略数据集

表5的数据集包括五个策略。第一个到第四个策略被应用于顶级域的应用example.com,而第五个策略被应用于顶级域的应用app2.com。

为了解释第二策略的操作,考虑在第二示例网页(表2)已经被加载到网络浏览器并且聊天会话正在进行之后的时间。已经从基于HTTP的应用接收了进入的聊天消息,并且随着进入消息DOM元素的元素数据被改变以反映进入的消息文本,检测到对进入消息DOM元素的文档改变事件。策略引擎在处理文档改变事件中确定表5的策略数据集的第一策略施加到进入消息元素(图5,508-512)。在元素数据(“我有一个关于您正在处理的机密项目的问题(″I have a question about the confidential project you are working on)”)中搜索文本子字符“机密(confidential)”,它被找到。结果,通过执行在策略的操作字段297中定义的操作来将表5的第一策略施加到进入消息元素的DOM元素,这通过添加标签来修改元素数据,所述标签被再现时使得子串以粗体字、下划线和红色显示。策略的意图和效果是突显“机密”一词,以通知客户端的用户在他的聊天会话中要相当慎重。

接下来,客户端的用户键入外发聊天消息:“是的,那是飞马项目,请叫我(Yes,that is the Pegasus project.Please call me)”。每个键入的字符对外发消息元素引起文档改变事件。表5的数据集的第二和第三策略施加到外发消息元素。对于这两个策略,根据它们的条件字段296,在元素数据中搜索文本子串“神马”。当用户已经完成键入该单词时,找到在条件字段296中指定的子串。结果,通过执行在第二策略的操作字段297中定义的操作,将表5的第二策略施加到外发消息元素的DOM元素,用星号(″*″)修订外发消息元素的元素数据中的子串的字符。第二个策略的目的和效果是向任何旁观者隐藏项目代码名称“神马”。然后,通过执行在第三策略的操作字段297中定义的操作,将表5的第三策略施加到外发消息元素的DOM元素,用以移除发送按钮元素的“动作”属性以便禁用它,并且改变发送按钮元素的样式特性以便为该元素赋予灰色外观。当在策略引擎针对第二和第三策略做出改变之后DOM被再现时,用户能够识别出他已经键入了禁止的代码名称,并且不能发送他的聊天消息,直到从消息中擦除了该代码名称。

在这一点上,在表4的数据集的第一,第二和第三策略已经被施加于DOM之后,第二示例网页的修改版本如表6所示:.

表6-应用策略后的第二个示例网页(窗口600D)

表6的修改的DOM在被再现时显示图6C的窗口600D的用户界面。在进入消息文本框630中的单词“机密”变为粗体,加下划线和红色。星号在外发消息文本框640中替换代码名称“神马”。发送按钮的锚(<a>)字段的“动作”标签已经被从动作“doSendMessage(发送消息)();”改变为动作=“”以禁用该按钮,并且发送按钮650的背景和颜色的样式特性被设置为#800000(灰色),以在视觉上向用户指示它的操作被禁用,并且如果选择该按钮,将什么都不发生。

参考表1-6和图6A-6C描述的示例网页和策略,虽然已经被大大简化了,但是仍然示出了本公开提供的一些能力。

从上述内容可以理解:本公开提供的客户端计算机、计算机可读存储介质和方法表示本领域中的显著进步。尽管已经描述和示出了若干特定示例,但本公开并不限于如此描述和示出的特定方法,形式或部件布置。本说明书应当被理解为包括本文描述的元素的所有新颖和非显而易见的组合,并且对于这些元素的任何新颖的和非显而易见的组合,在本申请或以后的申请中都可以提出权利要求。前述示例是说明性的,并且没有单个特征或元素对于可以在本申请或后续申请中要求主张的所有可能组合是必要的。除非另有指定,方法权利要求的步骤不需要以规定的次序执行。类似地,图块或数字(诸如(1),(2)等)不应被解释为必须以特定次序进行的步骤。附加的块/步骤可以被添加,一些块/步骤可以被移除,或者块/步骤的次序可以被改动,并且仍然可以在所公开的示例的范围内。此外,在不同附图中讨论的方法或步骤可以被添加到其他图中的方法或步骤或与其互换。此外,特定的数字数据值(诸如特定量,数,类别等)或其他特定信息应当被解释为是用于讨论示例的说明性的。提供这样的特定信息并不是用来限制示例的。本公开不限于上述实施方式,取而代之是由所附权利要求根据其等同物的全部范围来限定的。在权利要求记载其等同物的“一个”或“第一”元素的情况下,这样的权利要求应当被理解为包括一个或多个这样的元素的并入,既不要求也不排除两个或更多个这样的元素。在权利要求记载“具有”的情况下,该术语应当被理解为是指“包括”。

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