针对web兼容性和互操作性的代码顾问的制作方法

文档序号:6363659阅读:121来源:国知局
专利名称:针对web兼容性和互操作性的代码顾问的制作方法
针对web兼容性和互操作性的代码顾问
背景技术
以前,当改变web平台时,开发者不易于识别在其网站上的网页在利用新web平台时是否会遇到问题。因此,开发者不得不读取关于新平台的文档并手动地跟踪代码变化以评估兼容性和互操作性问题。可替换地,开发者不得不运行针对源代码的表达以执行源代码分析。现有工具通常为静态的且常常并不提供对于兼容性问题所需的冲突解决方案。

发明内容
提供此发明内容以便以简化形式介绍概念的选择,这些概念将在下面在具体实施方式
中进一步描述。此发明内容不预期标识所要求保护的主题的关键特征或必要特征,也不预期用于限制所要求保护的主题的范围。各种实施例提供调查工具以使得网页内容能够得以分析。在至少一些实施例中, 以下被称作“代码顾问”的调查工具允许跟踪应用编程接口(API)的使用。通过在网页脚本执行时跟踪API使用,代码顾问能确定关于网页内容是否存在兼容性和/或互操作性问题。如果确实存在问题,那么在至少一些实施例中,代码顾问能选择与该问题相关联的一个或多个消息且能提供指南以使得该问题能得以解决。


在所有附图中使用相同的附图标记来表示同样的特征。图I图示了其中本文所述的各种原理可以根据一个或多个实施例采用的操作环境。图2图示了可以根据一个或多个实施例采用的系统架构。图3图示了根据一个或多个实施例的web浏览器调查工具用户接口。图4图示了根据一个或多个实施例的web浏览器调查工具用户接口的各方面。图5图示了根据一个或多个实施例的web浏览器调查工具用户接口的问题解决方案方面。图6图示了根据一个或多个实施例的web浏览器调查工具用户接口和仿真网页。图7是描述根据一个或多个实施例的方法中的步骤的流程图。图8图示了能用于实施一个或多个实施例的实例系统。
具体实施例方式概述
各种实施例提供调查工具,被称作“代码顾问”,以使得网页内容能得以分析。在至少一些实施例中,代码顾问允许跟踪应用编程接口(API)的使用。通过在网页脚本执行时跟踪API使用,代码顾问能确定关于网页内容是否存在任何兼容性和/或互操作性问题。如果确实存在问题,则在至少一些实施例中,代码顾问能选择与该问题相关联的一个或多个消息且能提供指南以使得该问题能得以解决。如本文所使用的,术语“问题”将被理解为以实例而非限制的方式包括与网页与web浏览器交互的方式相关联的兼容性和/或互操作性问题。在至少一些实施例中,如果识别出问题,则可以为用户或开发者显示消息。消息能提供问题的描述使得开发者被告知该问题。作为替代或作为补充,消息能提供旨在减轻问题的可选的修复(fix)选项。该修复选项当被选择时能动态地提供针对该问题的修复。在一些情况下,动态修复能仿真网页预期的行为,因此提 供关于该问题的立即反馈以及在至少一些情况下提供其解决方案。在下文的讨论中,提供标题为“操作环境”的部分且其描述了其中能采用一个或多个实施例的一个环境。之后,标题为“实例实施例”的部分描述了其中可采用代码顾问的实例实施例。接下来,标题为“实例方法”的部分描述了根据一个或多个实施例的方法。最后,标题为“实例系统”的部分描述了能用于实施一个或多个实施例的系统。现考虑其中能实施一个或多个实施例的实例操作环境。操作环境
图I大体上以100图示出根据一个或多个实施例的操作环境。环境100包括计算设备102,计算设备102具有一个或多个处理器104,一个或多个计算机可读存储介质106和驻留在计算机可读存储介质上且可由处理器(一个或多个)执行的一个或多个应用108。计算机可读存储介质可以实例而非限制的方式包括通常与计算设备相关联的所有形式的易失性和非易失性存储器和/或存储介质。这样的介质能包括ROM、RAM、闪存、硬盘、可移动的介质等等。计算设备的一个具体实例在下面在图8中示出和描述。此外,计算设备102包括呈web浏览器110形式的软件应用。可使用任何合适的web浏览器,其实例可从本文件的受让人和其它途径获得。此外,计算机可读存储介质106可包括代码顾问111,代码顾问111如上下文所述那样操作。代码顾问111能实施为独立组件,其可由应用108和浏览器110利用。作为替代或作为补充,代码顾问111能实施为应用108或浏览器110的部分,例如浏览器开发工具。在一个或多个实施例中,代码顾问111能访问或另外地利用位于计算设备102上的模块,例如本地模块112。本地模块112可为与代码顾问和其功能相关联的库模块。作为补充或替代,本地模块112可为被创建以供浏览器110使用的定制模块。模块实例在下文中描述。在操作中,代码顾问模块111结合从网站接收的网页内容执行。代码顾问111能在构成浏览器平台的API上注册一个或多个超驰(override)。这允许代码顾问111有效地“缠绕”API并监视与API及其由特定网页的使用相关联的输入、状态和输出值。因此,当由网页调用特定API时,代码顾问111拦截该调用且将该调用重导向至相关联的模块,例如本地模块112之一。该模块可以知道所述API、它的操作以及它在操作情形下应如何执行。因此,设计模块以检查与API调用相关联的参数和值并评估是否存在兼容性或互操作性问题。API参数和值的检查以及因此是否存在与API相关联的特定问题的确定,使得代码顾问111能够在适合时选择可显示的消息,可以显示该可显示的消息以提供关于该问题的信息并在至少一些实施例中提供其解决方案。此外,环境100包括诸如因特网的网络116和一个或多个网站118,可从这些网站接收内容或向这些网站发送内容。这样的内容可包括网页内容,诸如HTML、脚本等等,其可由代码顾问111如上下文中所述的那样操作。网络116也可表示内联网,计算设备102可通过内联网与一个或多个网络设备120通信。网络设备120可实施为任何网络设备,诸如(以实例而非限制的方式)网络服务器;台式计算机;便携式计算机;手持计算机(例如个人数字助理(PDA))、蜂窝电话等等。网络设备120也可包含可由代码顾问111访问和加载的模块。这些模块可以包括远程模块122和共用模块124。能由第三方开发者创建和共用这些共用模块124。计算设备102可实施为任何合适的计算设备,诸如(以实例而非限制的方式)台式计算机;便携式计算机;手持计算机(例如个人数字助理(PDA))、蜂窝电话等等。已描述了实例操作环境,现考虑如何根据一个或多个实施例执行问题检测的讨论。实例实施例 图2大体上以200图示出根据一个或多个实施例的实例架构。在此实施例中,由代理204接收网页HTML 202。代理204包括注入器206,注入器206被配置成在网页HTML 202开始处插入一个或多个脚本元素,其组合由脚本元素/网页HTML 208图解地表示。插入的脚本元素可为任何合适类型的脚本元素,包括(以实例而非限制的方式)Java脚本元素等等。脚本元素(一个或多个)使得附加的代码能够由浏览器在执行网页HTML 202之前来执行。在另一实施例中,脚本元素(一个或多个)可与网页HTML同时执行。在图示和描述的实施例中,浏览器210包括加载器模块212、注册模块214、代码顾问216和一个或多个模块222。在一个实施例中,加载器模块212接收脚本元素/网页HTML 208。在接收脚本元素/网页HTML 208时,加载器模块212加载包括代码顾问216的架构框架。此外,加载器模块212也可加载一个或多个模块222,其被设计成分析API调用,如上下文所述的那样。尽管图2将代码顾问216和模块222图示为位于浏览器210内,不预期将代码顾问216和模块222描绘为限于这一个实施例。照此,代码顾问216可在浏览器210 “顶部”运行。作为替代或补充,模块222可在浏览器顶部运行且可或可不与代码顾问216整合。在一个或多个实施例中,注册模块214允许模块222向代码顾问216注册代码以在由网页调用应用编程接口(API)之前或之后执行。因此,模块222向注册模块214注册代码以便指导代码顾问216 “缠绕”相关联的API并监视与调用API相关联的参数和值。可使用任何合适类型的技术来执行缠绕,如将由本领域技术人员了解的那样。但作为一个实例,可利用微软的Detours (绕路)技术来执行缠绕。可使用其它技术,诸如下文所述的那些。在图示和描述的实施例中,代码顾问216包含预处理代码220和后处理代码226,它们与模块222 —致地工作。预处理代码220和后处理代码226使模块222能够监视与网页且更具体而言网页代码224的相对应API调用相关联的参数和值。当网页开始在浏览器210内执行时,网页代码224可以对代码顾问缠绕的API做出API调用。API调用由API调用拦截器模块218拦截。在操作中,当API调用拦截器模块218拦截API调用时,代码顾问216使用预处理代码220来使得API调用被重导向至由模块222表示的模块。模块222在实际完成对API的调用之前分析API的输入值。输入值包括API调用参数、自变量等等。模块222能确定API调用的一个或多个输入值是否存在问题且若存在问题,可以发送与该问题有关的消息到消息显示模块228,消息显示模块228能使得消息被显示给用户,其实例在下文提供。如果对于API调用的输入值未检测到问题(或者在修复了任何问题的情况下),能由网页代码224实际做出API调用且后处理代码226能监视作为API调用的结果的任何返回值。由后处理代码确定的返回值然后被提供给适当的模块222以进行处理从而识别关于返回值是否存在任何问题。如果识别存在问题,则模块222可以发送与该问题有关的消息到消息显示模块228使得可以显示适当的消息。消息显示模块228可以允许显示各 种类型的消息。作为实例,考虑图3,图3在300处一般地图示出根据一个或多个实施例的web浏览器调查工具用户接口。在此实例中,web浏览器302具有与地址栏304中的URL “穩·bing. com”相关联的文本。页面306已在内部加载浏览器302,浏览器302包含文本316和两个空框架318。以最小化视图示出代码顾问308。在此实施例中,代码顾问308显示在网页306的顶部。但是,其它代码顾问显示也是可能的,包括但不限于在浏览器的chrome中显示,例如作为侧边栏等。在此实例中,代码顾问308具有与之相关联的三种类型的消息错误消息310、警告消息312和信息消息314。尽管说明了这三种类型的消息,但可以利用其它类型的消息。在图示和描述的实施例中,错误消息310和数字一起显示,该数字指示可用于查看的错误消息的数量。同样,警告消息312和信息消息314也指示其相应消息的数量。可替换地,如果对于消息类型不存在任何消息,可以没有消息类型的显示。在一个或多个实施例中,可以扩展与代码顾问308相关联的显示。举例而言,通过点击代码顾问,其可扩展为提供附加信息的形式。作为扩展的代码顾问308的实例,考虑图4,其使用来自图3的同样的标号。在图4中,代码顾问408被显示为网页内的窗口 306。如上文所讨论的那样,可利用其它的显示。在一个实施例中,代码顾问408包含一系列标签以允许用户容易地导航代码顾问408的内容。当前选择消息日志标签410。消息日志标签410包含查看选项,诸如示出错误418以允许容易地将消息分类和管理。除了图示的查看选项之外能利用其它查看选项。消息日志标签410也包含错误消息412。在此实例中,错误消息412可为在图3中的代码顾问308中所显示的错误消息310的更长解释说明。错误消息412能提供其与哪个API相关联的指示且能附加地描述关于API调用发生的错误。错误消息412还能提供错误描述的解释说明,诸如“这是针对互操作性和顺应性的故意变化”。或者,当鼠标在单独窗口中在错误上悬停时可提供这些描述。在一个或多个实施例中,可显示错误消息412,以及用户采取行动的提示。行动可为选项的选择,诸如修复选项414和/或调试选项416。在此实例中,修复选项414能允许用户确认所显示的错误消息412并使得修复能够针对错误来实施。作为实例,考虑图5。此处,响应于用户选择修复选项414,不再显示错误消息412。而是,信息消息512告知用户针对错误消息412的修复已实现。在替代实施例中,可以显示错误消息412和信息消息512这二者。在一个或多个实施例中,所实现的修复可以显示为网页的仿真行为。仿真行为可以立即显示或者可以直到用户刷新页面才显示,最小化代码顾问,或者执行另一行动。所实现的修复能允许通过利用到不同于网页正调用的API的重导向来显示仿真行为。在一个实施例中,可以由模块,诸如上文所述的模块222来指定到不同API的重导向。在一个实例中,仿真行为可为基于到先前版本的浏览器的浏览器API的重导向的遗留行为(legacybehavior)。如图6中所示的那样,可最小化代码顾问308以包括上文所述的消息类型。网页306现包含在先前未显示的框架318内显示的图片。由所实现的修复所提供的仿真行为允许页面像网页正预期的那样执行。此外,在一些实施例中,错误消息412 (图5)显示调试选项416。当被检查或另外被选择时,调试选项416提供如何解决错误消息412的指南。指南的实例包括但不限于到 用户文档中的链接;到代码中的链接;突出显示或另外在视觉上指示的代码;关于符合标准的附加信息;到代码中发生错误的区域的导航;和/或关于该问题的代码列表。此外,调试选项可在由其本身选择时或者在利用修复选项414选择时提供代码的自动校正。考虑到各种实施例,现考虑能根据一个或多个实施例实施的实例方法。实例方法
图7是描述根据一个或多个实施例的方法中的步骤的流程图。该方法可结合任何合适的硬件、软件、固件或其组合来实施。在至少一些实施例中,该方法的各方面能由诸如上文所述的适当配置的代码顾问来实施。步骤700从网页接收应用编程接口(API)调用。能使用任何合适的API调用。举例而言,在至少一些实施例中,API调用可包括由网页对与浏览器相关联的API做出的API调用。步骤702确定关于API调用是否存在问题。这种确定能通过使用缠绕相关联的API的代码组件来执行。在至少一些实施例中,代码组件可被配置成通过监视由调用所提供的输入值、网页的状态值和作为API调用结果的输出或返回值中的一种或多种来处理API调用。网页的状态值可包括(以实例而非限制的方式)与元素、风格、Java脚本或Java脚本框架相关联的状态。这些问题可包括任何合适类型的兼容性或互操作问题。对确定存在问题做出响应,步骤704选择与该问题相关联的可显示消息且使得该消息被显示。在至少一些实施例中,对于与网页相关联的所有API,可重复步骤700-704。在其它实施例中,对于用户可定制的指定API可重复步骤700-704。可替换地,步骤700-704可对于存在可用于缠绕API的代码组件的那些API重复。描述了根据一个或多个实施例的实例方法,现考虑能用于实施上文所述的实施例中的一个或多个的实例系统。实例系统
图8示出能用于实施上文所述的各种实施例的实例计算设备800。计算设备800可为例如图I的计算设备102或任何其它合适的计算设备。
计算设备800包括一个或多个处理器或处理单元802,一个或多个存储器和/或存储组件804,一个或多个输入/输出(I/O)设备806和总线808,总线808允许各种组件和设备彼此通信。总线808表示多种类型总线结构中的任何的一个或多个,包括使用多种总线架构中任何架构的存储器总线或存储器控制器、外围总线、加速图形端口和处理器或本地总线。总线808可包括有线和/或无线总线。存储器/存储组件804表示一个或多个计算机存储介质。组件804可包括易失性介质(诸如随机存取存储器(RAM)和/或非易失性介质(诸如只读存储器(ROM)、闪存、光盘、磁盘等)。组件804可包括固定介质(例如,RAM、ROM、固定硬驱动器等)以及可移动的介质(例如,闪存驱动器、可移动的硬驱动器、光盘等)。一个或多个输入/输出设备806允许用户向计算设备800录入命令和信息,且也允许向用户和/或其它组件或设备提供信息。输入设备的实例包括键盘、光标控制设备(例如,鼠标)、麦克风、扫描仪等。输出设备的实例包括显示设备(例如,监视器或投影仪)、扬声器、打印机、网卡等。

本文可在软件或程序模块的一般情形下描述各种技术。一般而言,软件包括例程、程序、目标、组件、数据结构等等,其执行特定任务或实施特定抽象数据类型。这些模块和技术的实施方式可存储在或传输于某种形式的计算机可读介质上。计算机可读介质可为可由计算设备存取的任何一个或多个可用介质。举例而言但并无限制意义地,计算机可读介质可包括“计算机可读存储介质”。“计算机可读存储介质”包括以任何方法或技术实施的易失性和非易失性、可移动和不可移动的介质,其用于存储诸如计算机可读指令、数据结构、程序模块或其它数据之类的信息。计算机可读存储介质包括但不限于RAM、ROM、EEPR0M、闪存或其它存储技术;CD-ROM、数字多用盘(DVD)或其它光学存储设备;磁盒、磁带、磁盘存储设备或其它磁存储设备;或可用于存储能由计算机访问的所需信息的任何其它介质。结论
各种实施例提供调查工具,被称作“代码顾问”,以使得网页内容能得以分析。在至少一些实施例中,代码顾问允许跟踪应用编程接口(API)的使用。通过在网页脚本执行时跟踪API使用,代码顾问能确定关于网页内容是否存在任何兼容性和/或互操作性问题。如果确实存在问题,在至少一些实施例中,代码顾问能选择与该问题相关联的一个或多个消息且能提供指南以使得问题能够得以解决。尽管以特定于结构特征和/或方法行为的语言描述了主题,应了解在所附权利要求中限定的主题不必限于上文所述的特定特征或行为。而是,上文所述的特定特征和行为被公开为实施权利要求的实例形式。
权利要求
1.一种计算机实施的方法,包括 从网页接收(700)应用编程接ロ(API)调用; 通过使用代码组件来确定(702)关于API调用是否存在问题,所述代码组件缠绕相关联的API且被配置成处理API调用且识别与所述API调用相关联的一个或多个问题;以及对于确定存在问题做出响应,选择(704)与所述问题相关联的可显示消息。
2.根据权利要求I所述的计算机实施的方法,其中,所述可显示消息包括 错误消息, 警告消息,或者 信息消息。
3.根据权利要求I所述的计算机实施的方法,还包括 显示所述可显示消息;以及 提示用户采取行动。
4.根据权利要求3所述的计算机实施的方法,其中所述行动包括 选择修复选项来允许显示仿真行为,或者, 选择调试选项。
5.根据权利要求4所述的计算机实施的方法,其中,所述仿真行为包括接收调用的先前版本的浏览器的遗留行为。
6.根据权利要求4所述的计算机实施的方法,其中,所述仿真行为动态地且实时地显
7.一种用于分析网页的系统,包括 一个或多个处理器(104);以及 计算机可读的存储介质(106),其收录计算机可读指令,当所述计算机可读指令由ー个或多个处理器执行时使得所述ー个或多个处理器实施工具(111),所述工具(111)被配置成 加载与已插入于网页内的脚本元素相关联的至少ー个模块; 允许至少一个模块缠绕至少ー个应用编程接ロ(API); 加载其中插入了所述脚本元素的网页;以及 使用至少ー个模块处理所述网页对所述API的一次或多次调用。
8.根据权利要求7所述的系统,其中,处理所述一次或多次调用包括监视与所述API有关的信息,所述信息包括 输入值; 返回值;或者 网页状态。
9.根据权利要求8所述的系统,其中所述网页状态包括与以下相关联的状态 元素; 风格; Java脚本;或者 Java脚本框架。
10.根据权利要求7所述的系统,其中所述工具实施为独立工具。
全文摘要
各种实施例提供调查工具以使得网页内容能得以分析。在至少一些实施例中,在后面被称作“代码顾问”的调查工具允许跟踪应用编程接口(API)的使用。通过在网页脚本执行时跟踪API使用,代码顾问能确定关于网页内容是否存在兼容性和/或互操作性问题。如果确实存在问题,在至少一些实施例中,代码顾问能选择与该问题相关联的一个或多个消息且能提供指南以使得该问题能得以解决。
文档编号G06F11/36GK102681933SQ20121001853
公开日2012年9月19日 申请日期2012年1月20日 优先权日2011年1月20日
发明者A.M.罗斯, J.A.穆尔, M.A.西尔比 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1