首页> 中国专利> 使用JavaScript对在网络浏览器中的分层URI解除引用的机制

使用JavaScript对在网络浏览器中的分层URI解除引用的机制

摘要

一种包括处理器的装置,所述处理器用于构成多个协议栈,并且使用所述多个协议栈中的至少一个对分层URI解除引用。并且,计算机程序产品包括存储在非暂时性媒体上的计算机可执行指令,所述指令在由处理器执行时使得所述处理器执行以下操作:接收分层URI,以及调用URI解除引用扩展,其中所述解除引用扩展用于构造协议栈,其中所述协议栈包括第一连接器、第二连接器以及绑定器,并且其中所述第一和第二连接器基于所述URI选自多个连接器。

著录项

  • 公开/公告号CN104981796A

    专利类型发明专利

  • 公开/公告日2015-10-14

    原文格式PDF

  • 申请/专利权人 华为技术有限公司;

    申请/专利号CN201480006365.3

  • 发明设计人 李栗;周芜;蔡涛;

    申请日2014-01-28

  • 分类号

  • 代理机构

  • 代理人

  • 地址 518129 广东省深圳市龙岗区坂田华为总部办公楼

  • 入库时间 2023-12-18 11:19:06

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-03-09

    授权

    授权

  • 2015-11-18

    实质审查的生效 IPC(主分类):G06F15/16 申请日:20140128

    实质审查的生效

  • 2015-10-14

    公开

    公开

说明书

相关申请案交叉申请

本发明要求2013年1月28日由李栗(Li Li)等人递交的发明名称 为“使用JavaScript对在网络浏览器中的分层URI解除引用的机制 (Mechanism to Dereference Layered URI in Web Browsers Using  JavaScript)”的第13/751,466号美国非临时申请案的在先申请优先权,该 在先申请的内容以引入的方式全文并入本文本中。

关于由联邦政府赞助研究或开发的声明

研究或开发

不适用。

参考缩微胶片附录

不适用。

技术领域

背景技术

网络浏览器在传统的电子文档且越来越多地在音频-视频通信中越 来越多地用作用于双向客户端-服务器和对等架构通信的平台。此类通信可 以使用采用多种协议栈的分层统一资源标识符(URI),所述协议栈例如, 传输控制协议(TCP)、用户数据协议(UDP)、超文本传输协议(HTTP) /流控制传输协议(SCTP)、网络套接字(WS)、数据报拥塞控制协议(DCCP) 等。

当点击包含常规URI的链接时,指示浏览器检索在URI处的资源的 表示。然而,分层URI对于某些网络应用程序可能是有问题的。例如,根 据以下代码,超文本标记语言(HTML)网页在链接中可能包含以下多层 URI:<a href=http://xmpp:bob@example.com/camera>This is mycamera</a>。 此URI的第一层是HTTP层且第二层是可扩展的信息和呈现协议(XMPP) 层。如果运行的浏览器本身不支持XMPP,那么当点击链接时,所述浏览 器可能不识别所引用的权限“xmpp:bob@example.com”,例如,因为 XMPP库用JavaScript定义。因此,浏览器可能不知道授权方与XMPP库 之间的关联。浏览器在不知道如何联系URI的授权方的情况下通常不能向 URI提交表单。因此,HTTP请求可能不可从浏览器中存在的内置HTML 交互中调用。确切地说,网络应用程序可能必须编写其自身代码以处理在 HTML页面中的所有此类URI,例如,以对URI解除引用且提交表单。这 由于使用协议绑定可能对开发者造成额外的负担。

各种通信协议栈大体上对网络应用程序隐藏,因为没有针对其定义 标准化的JavaScript应用编程接口(API)。对于网络浏览器而言,同时支 持所有此类组合在历史上是资源禁止的。因此,网络开发者大体上已经必 须或者(a)等待浏览器实施对此类协议的支持(这可能导致增加的网络 浏览器占用),或者(b)编写JavaScript以接管来自网络浏览器的超链接 交互(这可能增加JavaScript大小且由此降低性能)。使用分层URI的能 力可以例如通过准许创新同时避免互操作性问题而向网络开发者提供特 定的灵活性。

发明内容

在一个方面中,本发明包含包括处理器的装置,所述处理器用于构 成多个协议栈,且使用所述多个协议栈中的至少一个对分层URI解除引 用。

在另一方面中,本发明包含包括存储在非暂时性媒体上的计算机可 执行指令的计算机程序产品,所述指令在由处理器执行时使得所述处理器 接收分层URI,且调用URI解除引用扩展,其中所述解除引用扩展用于构 造协议栈,其中所述协议栈包括第一连接器、第二连接器以及绑定器,并 且其中所述第一和第二连接器基于所述URI选自多个连接器。

在又一方面中,本发明包含用于对分层URI解除引用的方法,其包 括在用户代理处接收分层URI;调用URI解除引用扩展;使用URI解除 引用扩展构造协议栈,其中所述协议栈包括第一连接器、第二连接器以及 绑定器,其中第一连接器和第二连接器基于URI而实例化,并且其中绑定 器基于第一连接器和第二连接器而实例化;用URI解除引用扩展对URI 解除引用;以及使用解除引用的URI改变用户代理的至少一个状态。

从结合附图以及权利要求书获得的以下详细描述中将更清楚地理 解这些和其它特征。

附图说明

为了更透彻地理解本发明,现参阅结合附图和具体实施方式而描述 的以下简要说明,其中相同参考标号表示相同部分。

图1图示用户设备的实施例。

图2描绘用于使用JavaScript对在网络浏览器中的分层URI解除引 用的复杂连接器的实施例。

图3是用于实例复杂连接器的实施矩阵。

图4描绘用于使用JavaScript对在网络浏览器中的分层URI解除引 用的复杂连接器的另一实施例。

图5是描述图4的实施例的对分层URI解除引用的过程的流程图。

图6描绘用于使用JavaScript对在网络浏览器中的分层URI解除引 用的复杂连接器的再另一个实施例。

图7图示典型的通用网络组件。

具体实施方式

首先应理解,尽管下文提供一项或多项实施例的说明性实施方案, 但所公开的系统和/或方法可使用任何数目的技术来实施,无论该技术是当 前已知还是现有的。本发明决不应限于下文所说明的说明性实施方案、附 图和技术,包括本文所说明并描述的示例性设计和实施方案,而是可在所 附权利要求书的范围以及其等效物的完整范围内修改。

本发明描述准许网络应用程序使用JavaScript动态地对在网络浏览 器中的分层URI解除引用而并不预构成协议栈的系统和方法,例如,通过 准许网络浏览器通过JavaScript动态地汇编协议栈以访问通过分层URI识 别的资源。使用所公开的系统和方法可以减少网络浏览器占用,因为仅核 心传输栈需要实施;可以减小JavaScript代码大小,因为仅需要消息格式 化;可以改进互操作性和性能,因为网络应用程序可以在运行时间混合且 匹配协议;以及可以准许网络应用程序使用JavaScript试验新协议和架构 而不改变浏览器。

图1图示用户设备100的实施例。用户设备100可以与服务器102 通信,例如,通过发送对包含URI的HTML文档的请求以及接收所述 HTML文档。用户设备可以经由网络104耦合到服务器102,所述网络例 如因特网协议(IP)网络、企业内部网、或局域网(LAN)等任何其它网 络。用户设备100可以是面向用户的固定或移动设备,例如,桌上型计算 机、笔记本或膝上型计算机、上网本、平板计算机、智能手机、个人数字 助理(PDA)或蜂窝式电话。用户设备100可以包括处理块110和浏览器 或搜索应用程序112。处理块110可以是允许用户配置或存取用户设备100 的不同特征且将其它软件或程序安装在用户设备100上且操作所述软件或 程序的任何软件(例如,操作系统)和/或硬件,例如,图7的通用网络组 件700和操作系统。处理块110可以包含操作系统MacTM OS 和AndroidTM。浏览器/搜索应用程序112可以是在处理块110上运行且允 许用户在用户设备100上发送搜索查询且接收搜索结果的软件或程序。浏 览器/搜索应用程序112可以使用相对应的代码、API、语言或接口经由第 一网络(例如,因特网)与服务器通信。浏览器/搜索应用程序112可以包 括可以用于例如经由因特网远程访问搜索应用程序的浏览器,或可以包括 整合的浏览器和搜索应用程序。浏览器/搜索应用程序112可以具有用于向 用户显示搜索查询和结果的可视用户界面。浏览器/搜索应用程序112的实 例可以包含Google ChromeTM、InternetMozilla以及界 面工具集。

图2描绘用于使用JavaScript对在网络浏览器中的分层URI解除引 用的复杂连接器200的实施例,所述网络浏览器例如,图1的浏览器/搜索 应用程序112。可以用浏览器实例化的复杂连接器200包含例如HTTP连 接器的简单连接器202、例如HTTP/XMPP绑定器的绑定器204以及例如 XMPP连接器的简单连接器206。简单连接器可以包括在两个数据结构之 间的指针或链接,或可以另外的方式被定义为实施特定协议栈的对象,例 如,HTTP连接器、SCTP连接器等。简单连接器,例如简单连接器202 和206,是所属领域中已知的,且可以用JavaScript或用网络浏览器或这 两者实施,如下文结合图3进一步说明。另外,用JavaScript实施的连接 器可以从远程网络服务器加载到网络浏览器中。绑定器,例如绑定器204, 可以是例如通过映射两个协议栈来组合简单连接器的对象。本文中结合图 4进一步论述绑定器。复杂连接器,例如,复杂连接器200,可以包括两 个简单连接器和一个绑定器。实例URI 208是两层URI,具有第一HTTP 层和第二XMPP层。在URI相关的事件后,例如,点击超链接或提交表 单,URI 208可以由浏览器接收。一旦识别为分层URI,浏览器(未描画) 就可以调用使用解除引用扩展来对分层URI 208解除引用的复杂连接器 200。复杂连接器200可以调用简单连接器202和206以及绑定器204的 拦截器链。拦截器链调用可以包括通过简单HTTP连接器202经由HTTP 请求将URI 208传递到HTTP/XMPP绑定器204。HTTP/XMPP绑定器204 可以将XMPP节传递到简单XMPP连接器206,所述简单XMPP连接器与 绑定器204一起可以经由HTTP响应获取传递回到简单HTTP连接器202 的HTTP信息。简单HTTP连接器202可以通过将例如HTML文档对象模 型(DOM)的有效负荷数据传递回到浏览器来完成URI的复杂连接器200 解除引用。

连接器和绑定器可以利用用户代理使用JavaScript来创建和寄存。 所属领域的技术人员可以明白用于创建和寄存连接器和绑定器的技术且 所述技术可以单独地或结合其它已知技术来使用。例如,一个JavaScript 片段可以包含用于从例如浏览器的用户代理获得例如图4的连接器408的 HTTP连接器的指令,例如var connector1=new HTTPConnector()。另一片 段可以包含用于实施例如图4的连接器414的第二连接器的指令,即,用 于通过用XMPP库创建例如通过远程网络服务器加载到浏览器中的新 XMPP客户端来实施所述连接器的指令,例如var xmpp=new  XMPP(“talk.google.com”)。另一片段可以包含用于用JavaScript创建用 于XMPP的连接器的指令,例如var connector2=new Connector(XMPP)。 又另一片段可以包含用于实施例如图4的连接器418的第三连接器的指 令,即,用于通过从用户代理创建WS来实施所述连接器的指令,例如var  socket=new websocket(…),以及用于通过用JavaScript创建用于WS的连 接器来实施所述连接器的指令,例如var connector3=new  Connector(socket)。再另一片段可以包含用于创建和实施例如图4的绑定 器416的用于绑定第二连接器和第三连接器的第一绑定器的指令,例如var  binder12=new Binder(connector2,connector3)。另一片段可以包含用于实施 例如图4的第二复杂连接器412的包括第一绑定器的第四连接器的指令, 例如var connector12=new Connector(binder12)。又另一片段可以包含用于 创建和实施例如图4的绑定器410的第二绑定器的指令,例如var  binder01=new Binder(connector0,connector12),以及用于创建和实施例如图 4的第一复杂连接器400的新连接器的指令,例如var connector01=new  Connector(binder01)。再另一片段可以包含用于将HTTP/XMPP连接器告 知用户代理的指令,例如,Connectors.register(“http/xmpp”,connector01)。 因为连接器对象在用户代理与用户JavaScript之间交换,所以连接器接口 应该由所有浏览器和所有网络应用程序协定。出于此原因,标准化可能是 所希望的。

图3是用于实例复杂连接器的实施矩阵300。如上文所陈述,简单 连接器可以或者用JavaScript或者用网络浏览器实施。此外,每一复杂连 接器可以包括用于对分层URI解除引用的两个或更多个简单连接器。矩阵 300示出用于实施例如图2的简单连接器202和206的简单连接器P1和 P2的组合和排列,所述简单连接器用于对例如图2的分层URI 208的分层 URI解除引用。如矩阵300中示出且如上文在图2下所陈述,简单连接器 可以或者用JavaScript实施或者用浏览器实施。因此,P1与JavaScript行 和浏览器行相关联,且P2还与JavaScript列和浏览器列相关联。矩阵300 的重叠方框示出针对给定行/列的P1/P2组合。当分层URI具有超过两层, 因此需要超过两个用于解除引用的简单连接器时,矩阵300可以扩张,从 而导致在图4下进一步说明的递归嵌套。当简单连接器用JavaScript实施 时,最终调用用浏览器实施的简单连接器可能必需对URI解除引用。

图4描绘用于使用JavaScript对在网络浏览器中的分层URI解除引 用的第一复杂连接器400的另一实施例。图4包含分层URI 402,所述分 层URI包含HTTP和XMPP层。图4假设所述浏览器不支持XMPP,并且 还假设WS是用于XMPP层的底层传输协议。因此,对URI解除引用需 要至少三个连接器。图4包含对URI 404解除引用的调用,例如在URI 事件后由网络浏览器进行的调用;URI解除引用扩展406;简单HTTP连 接器408,例如图2的连接器202;HTTP/XMPP绑定器410,例如图2的 绑定器204;以及第二复杂连接器412,使得第二复杂连接器412递归嵌 套在第一复杂连接器400内。第二复杂连接器412包括简单XMPP连接器 414、XMPP/WS绑定器416以及简单WS连接器418。图4假设所述浏览 器(未描画)支持HTTP和WS层栈,但不支持XMPP。因此,第一复杂 连接器400可以包括JavaScript XMPP连接器414、网络浏览器WS连接 器418以及HTTP连接器408。嵌套的复杂连接器因此可以形成被URI解 除引用扩展406用来对分层URI 402解除引用的递归嵌套式拦截器链。

图5是描述图4的实施例的对分层URI解除引用的过程500的流程 图。在图4的框中提及的组件与图4的相同组件相对应。图5的两列示出 为通过线501分隔开,其中第一列中的框在例如图1的用户设备100的发 送方设备处出现,且第二列中的框在例如图2的服务器102的接收方设备 处出现。过程400可以在402处以URI事件开始,例如,点击按钮、提交 表单等,所述事件使得在发送用户侧上的浏览器试图对分层 HTTP/XMPP/WS URI解除引用。因为图4假设浏览器不支持XMPP,所 以在框404处,可以调用URI解除引用扩展。URI解除引用扩展可以从例 如图2的连接器202的简单HTTP连接器、例如图2的绑定器204的 HTTP/XMPP绑定器以及第二复杂XMPP/WS连接器(包括两个简单连接 器和一个绑定器)动态地构成或实例化复杂HTTP/XMPP连接器,以基于 分层URI中所包含的层形成拦截器链。如所属领域的技术人员将理解,不 同的分层URI解除引用结构可以基于基于本发明的URI特定的协议栈以 不同方式动态地构造,如以下在图5中说明。URI解除引用扩展可以通过 框406将例如表单等原始数据传递到在框408处的HTTP连接器。HTTP 连接器可以通过框510向在框512处的HTTP/XMPP绑定器发出HTTP请 求,所述绑定器可以基于绑定器中所包含的映射对HTTP/XMPP节进行编 码。在框514处,通过HTTP/XMPP绑定器创建的HTTP/XMPP节可以传 递到框516的XMPP连接器,所述连接器可以基于绑定器中所包含的映射 对XMPP节进行编码。

如在图4下所陈述,XMPP大体上需要底层双向通信协议。因此, 尽管未明确地在URI中陈述,但XMPP可以使用WS建立所需的双向连 接;其它实施例可以采用替代协议。因此,在框518处,XMPP节可以通 过XMPP连接器传递到框520的XMPP/WS绑定器,所述绑定器在框522 处向框524的WS连接器发送WS消息。框524的WS连接器可以将在框 526处的WS消息传递到具有经相对应地构造的URI解除引用扩展的接收 用户。在接收WS消息后,框528的XMPP/WS绑定器可以从WS消息获 取框430的XMPP节且将其发送到框532的XMPP连接器。类似地,XMPP 连接器可以从框530的XMPP节获取框534的HTTP/XMPP节且可以将 HTTP/XMPP节传递到框536的HTTP/XMPP绑定器。HTTP/XMPP绑定 器可以将框538的HTTP响应发送到框540的HTTP连接器。HTTP连接 器可以处理HTTP响应且可以将框542的有效负荷数据发送到框544的 URI解除引用扩展。在框546处,DOM可以基于有效负荷数据进行更新。

图6描绘用于使用JavaScript对在网络浏览器中的分层URI解除引 用的第一复杂连接器500的再另一个实施例。图6图示用于基于URI特定 的协议栈以不同方式动态地构造不同的分层URI解除引用架构的系统和 方法的实施例。图6包含分层URI 602,例如图4的分层URI 402;对URI 604解除引用的调用;URI解除引用扩展606;简单连接器608,例如图4 的连接器408;第一绑定器610,例如图4的绑定器410;第二复杂连接器 612,例如图4的第二复杂连接器412。第二复杂连接器612包括简单连接 器614、第二绑定器616以及第三复杂连接器618,所述第三复杂连接器 618包括简单连接器620和624以及第三绑定器622。第三复杂连接器618 可能是所需的,例如,如果例如图4的浏览器的浏览器不支持WS的话。 因此,如上文所陈述,嵌套的复杂连接器可以形成由URI解除引用扩展 606用来对分层URI 602进行解除引用的递归嵌套式拦截器链。

上文所描述的组件可以在任何通用计算机组件上实施,例如,具有 足够处理能力、存储器资源以及用于处理放置在其上的必需的工作负荷的 网络吞吐能力的计算机或网络组件。图7图示适合于实施本文中所公开的 组件的一或多个实施例的典型的通用网络组件700。网络组件700包含处 理器702(所述处理器可以被称作中央处理器单元或CPU),其与包含辅 助存储器704的存储器设备、只读存储器(ROM)706、随机存取存储器 (RAM)708、输入/输出(I/O)设备710以及网络连接设备712通信,所 述输入/输出设备例如相机、麦克风、显示屏等。处理器702可以实施为一 或多个CPU芯片,或可以是一或多个专用集成电路(ASIC)和/或数字信 号处理器(DSP)的一部分。

辅助存储器704通常由一或多个磁盘驱动器或可擦除可编程ROM (EPROM)组成且用于数据的非易失性存储。当加载到RAM 708中的程 序经选定用于执行时,辅助存储器704可以用于存储此类程序。ROM 706 用于存储在程序执行期间被读取的指令和可能的数据。ROM 706是非易失 性存储器设备,其通常具有相对于辅助存储器704的较大存储器容量的小 的存储器容量。RAM 708用于存储易失性数据并且可能用于存储指令。对 ROM 706和RAM 708两者的存取通常比对辅助存储器704的存取更快。

本发明公开至少一项实施例,且所属领域的普通技术人员对所述实 施例和/或所述实施例的特征作出的变化、组合和/或修改均在本发明公开 的范围内。因组合、合并和/或省略所述实施例的特征而得到的替代性实施 例也在本发明的范围内。在明确说明数字范围或限制的情况下,此类表达 范围或限制应被理解成包括在明确说明的范围或限制内具有相同大小的 迭代范围或限制(例如,从约为1到约为10包括2、3、4等;大于0.10 包括0.11、0.12、0.13等)。例如,只要公开具有下限Rl和上限Ru的数字 范围,则明确公开了此范围内的任何数字。具体而言,在所述范围内的以 下数字是明确公开的:R=R1+k*(Ru-R1),其中k为从1%到100%范围内以 1%递增的变量,即,k为1%、2%、3%、4%、5%……50%、51%、52%……95%、 96%、97%、98%、99%或100%。此外,由上文所定义的两个数字R定义 的任何数字范围也是明确公开的。除非另有说明,否则术语“约”是指随 后数字的±10%。相对于权利要求的任一元素使用术语“选择性地”意味 着所述元素是需要的,或者所述元素是不需要的,两种替代方案均在所述 权利要求的范围内。使用如“包括”、“包含”和“具有”等较广术语应 被理解为提供对如“由……组成”、“基本上由……组成”以及“大体上 由……组成”等较窄术语的支持。本文所述的所有文档都以引入的方式并 入本文中。

虽然本发明中已提供若干实施例,但应理解,在不脱离本发明的精 神或范围的情况下,本发明所公开的系统和方法可以以许多其它特定形式 来体现。本发明的实例应被视为说明性而非限制性的,且本发明并不限于 本文本所给出的细节。例如,各种元件或组件可以在另一系统中组合或合 并,或者某些特征可以省略或不实施。

此外,在不脱离本发明的范围的情况下,各种实施例中描述和说明 为离散或单独的技术、系统、子系统和方法可以与其它系统、模块、技术 或方法进行组合或合并。展示或论述为彼此耦合或直接耦合或通信的其它 项也可以采用电方式、机械方式或其它方式通过某一接口、设备或中间组 件间接地耦合或通信。其它变化、替代和改变的示例可以由本领域的技术 人员在不脱离本文精神和所公开的范围的情况下确定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号