可视地建模、调试和执行面向资源的程序的交互式设计环境的制作方法

xiaoxiao2020-7-22  6

专利名称:可视地建模、调试和执行面向资源的程序的交互式设计环境的制作方法
可视地建模、调试和执行面向资源的程序的交互式设计环境背景许多计算场景涉及由主机管理的且基于操作集而被更新的数据集(例如文件系统、数据库、对象集等等),该操作集例如创建数据集中的一个或多个项、读取数据集中的一个或多个项、更新数据集中的一个或多个项和/或删除数据集中的一个或多个项(一起构成“ CRUD ”操作的标准集)。此外,可通过诸如HTTP等的特定协议访问主机,且各操作可以对应于协议中许可的一组动词(例如,HTTP POST (张贴)、HTTP GET (取)、HTTP PUT (放) 和HTTP DELETE(删除))。操作集可以涉及被配置成序列以便取得特定结果(例如,将远程服务器的文件系统的部分与该文件系统的相同部分的本地存储版本双向同步起来)的一系列这样的操作。可以在不同于该主机的设备上执行此操作集,例如,通过将第一操作发给主机,且在接收完成该操作的通知时发起第二操作,等等。该操作集还可以在设备上作为应用程序的部分而被执行,例如,作为该应用程序中所展示的数据源与主机交换数据的数据驱动的应用程序。概述提供本发明内容以便以简化形式介绍下面在详细描述中进一步描述的概念的选集。本发明内容不旨在标识所要求保护的本主题的关键因素或必要特征,也不旨在用于限制所要求保护的本主题的范围。一种用于针对由主机管理的数据集执行操作集的技术涉及使用包括对应于协议的动词的数据集指令以及指定操作的执行流的变更流控制指令的脚本语言。根据此脚本语言表达的资源脚本可以由可解释资源脚本的操作的脚本处理器执行,以便将相应的协议动词应用到数据集且基于流控制操作变更资源脚本的执行流。此外,可以在设计时表达资源脚本,且当选择资源脚本以供执行时(即时地或在稍后的日期),然后,可以选择诸如本地执行(例如,通过将协议的相应动词发给主机)或远程执行(例如,通过将脚本传递给主机)等的执行上下文。因此可以在运行时选择执行上下文而不会损害其中指定的操作的逻辑流。然而,鉴于交互的底层复杂性,难以设计资源脚本。尽管努力编写实现特定逻辑 (例如域专用的业务逻辑)的资源脚本,但资源脚本设计者必须理解和留意由于主机的配置以及与客户机的交互而产生的许多不相关的方面,例如网络传输、操作的异步性质、异常和补偿的处理以及和资源脚本的根据各种有线协议的串行化。此困难中的一些可以通过提供促进遵照脚本语言对操作集中的操作进行选择、组织和配置的资源脚本的可视设计环境来缓解。例如,可视设计环境可以向设计者呈现对应于脚本语言的指令的一组可视元素,这些可视元素可以放置(例如,借助于鼠标)成指示各操作的排序、属性和相互关系。可视设计环境还可以通过验证资源脚本并指示被不完整地或错误地配置的操作来促进设计句法上正确的资源脚本。在设计是完整的且操作集是经验证的时候,可视设计环境还可以促进资源脚本的生成、通过诸如断点和状态检查等的工具来进行的资源脚本的调试、以及资源脚本在各种执行上下文中的执行。为实现前述的和相关的目标,下列描述和附图陈述某些说明性的方面和实现。这些指示了可以采用一个或多个方面的方式,但仅是其中的一些。当结合附图考虑时,从下列详细明显看出本公开内容的其他方面、优点和新颖特征。


图1是阐释根据涉及资源脚本的协议由客户机通过主机访问数据集的示例性场景。
图2是被配置成生成适用于可根据协议访问的数据集的资源脚本的示例性设计环境的阐释。
图3是阐释生成适用于可根据协议访问的数据集的资源脚本的示例性方法的流程图。
图4是阐释用于生成适用于可根据协议访问的数据集的资源脚本的示例性系统的组件框图。
图5是涉及响应于输入在设计环境内重新排序操作集中的操作的示例性场景的阐释。
图6是涉及响应于输入在设计环境内将操作集中的第一操作的属性数据绑定到第二操作的属性的示例性场景的阐释。
图7是涉及在设计环境内验证操作集的示例性场景的阐释。
图8是涉及在以断点和操作的属性的检查为特征的设计环境内对执行操作集的调试的示例性场景的阐释。
图9阐释其中可以实现在此陈述的装置中的一个或多个的示例性计算环境。
详细描述 现在参考各图描述所要求保护的本主题,其中相似的参考数字自始至终被用于提及相似的元素。在下列描述中,出于解释的目的,陈述众多具体的细节以便提供对所要求保护的本主题透彻理解。然而,明显的是,无需这些具体的细节就可以实践所要求保护的本主题。在其他实例中,以框图形式示出各结构和设备以便促进描述所要求保护的本主题。
许多计算场景涉及由主机管理的数据集,例如由文件系统主机主控的文件系统、 由数据库服务器主控的数据库和由对象服务器主控的对象集。数据集可以被展示给可以对该数据集执行各种操作的各个客户机,例如设备和用户。许多这样的场景包括用于操纵数据集的基本操作集,例如创建、读取、更新和删除操作(统称为用于操纵数据集的“CRUD”模型)。此外,常常以特定的配置组合这些操作以便完成特定的任务,例如将服务器上的远程文件系统与该文件系统的本地版本同步起来,或者以事务性方式将记录插入到数据库中。
如果根据特定的协议指定,则计算主机可以被配置成接收对执行这样的操作的请求。例如,主机可以被配置成HTTP端点(例如web服务器),且可以准许通过HTTP动词的标准集与数据集交互。超文本传输协议最初被设计成用于与web服务器(例如,经由HTTP GET请求存储在web服务器上的页面或资源)和其中提供的一组应用程序(例如可以经由 HTTP POST以参数访问的HTTP网关脚本)通信,许多服务器将HTTP请求转换成用于操纵数据集的特定的指令(例如,对应于读取指令的HTTP POST ;对应于创建指令的HTTP GET ;对应于更新指令的HTTP PUT;以及对应于删除指令的HTTP DELETE)。有时被称为协议的代表性状态传输(“RESTful”)使用的此配置来准许服务器将对数据集的访问基于广泛支持的协议扩展到各种各样的应用程序。
许多技术可以被设计成用于对可根据协议通过主机访问的数据集执行操作集。一种这样的技术涉及以两种类型的指令为特征的脚本语言对应于协议的动词的数据集指令,以及流控制指令。数据集操作(指定数据集指令的那些操作)可以由主机根据协议的相应的动词处理(例如,包括读取指令的操作可以由主机处理成HTTP GET操作),而流控制操作(指定流控制指令的那些操作)可以被评估且可以变更资源脚本的执行流(例如,通过重复特定的操作的执行,通过基于谓词有条件地进行特定指令的执行,和/或通过使得执行的流跳转重定位到目标操作)。通过表达具有至少一个数据集操作和至少一个流控制操作的资源脚本中的操作集,客户机可以准许主机在根据协议处理关于数据集的操作的相对轻量级的脚本处理器中评估资源脚本(例如,通过将各操作传递到通过协议处理请求的主机的各组件,例如web服务器),同时各流控制指令可以由脚本处理器管理。脚本语言还可以准许链接各指令;例如,条件操作可以按照前面的操作的成功或失败断言。另外,可以以平台不可知的方式指定资源脚本,以使得可以在其中可以执行资源脚本的执行上下文的执行时作出选择。如果选择了本地执行上下文,则本地脚本处理器可以在客户机上运行并将协议操作发给服务器;但是如果选择了主机执行上下文,则资源脚本可以被传递给位于主机上的脚本处理器以供远程执行。尽管资源脚本(以及利用资源脚本的应用程序)的执行可以因执行上下文的不同而不同,但执行相同的逻辑操作序列而不考虑脚本处理器的位置。
尽管这样的资源脚本可以被有利地用来对数据集执行操作集,但由于交互的复杂性,难以设计这样的资源脚本。作为第一示例,资源脚本的设计者必须理解协议的细节,例如协议所允许的操作的类型以及协议请求所使用的数据的类型以及由协议响应所提供的数据的类型。作为第二示例,设计者必须理解并考虑通信的各种方面,例如建立和利用通信、诸如等待时间等的网络传输成本、用于跨越网络传输的数据的串行化和反串行化以及通信中断的适度处理(例如并行在线和离线操作集)。作为第三示例,设计者必须理解和考虑主机/客户机关系的各种方面,例如同步、认证以及短期运行资源脚本和长期运行资源脚本(其中主机可以挂起和存储长期运行资源脚本以供稍后再次开始和处理)两者的主机的状态性(statefulness)。作为第四示例,设计者必须理解脚本语言的细节,例如指定指令的句法、资源脚本中各操作的分层组织以及脚本语言的特定指令与协议的动词的相关性。这些和其他的复杂性可以使得设计者编写用于特定功能部件的资源脚本的努力显著复杂,且这样的复杂性与设计者希望实现的域专用的操作的本质和逻辑具有很少的关系。
图1阐释涉及根据协议14客户机12通过主机18访问数据集20并涉及资源脚本 22的使用的示例性场景10。此场景10中的客户机12试图读取数据集20,且因此将包括 HTTP GET动词和指定数据集20的协议请求16发给主机18。主机18通过协议14提供对数据集20的访问(例如,通过作为将RESTful接口提供给数据集20的web服务器的配置), 且可以向客户机发送包括所请求的数据集20的协议响应观。然而,数据集20被限于在帐户存储M中标识的特定用户帐户,并且用在准许通过读取数据集20履行协议请求16之前认证由客户机12提供的一组凭证(例如用户名和密码)来给主机18分派任务。在执行此任务时,主机18利用将认证凭证传送给帐户存储M的资源脚本22,用“允许访问”消息和对数据集20的读取响应成功认证,且用“拒绝访问”消息响应失败的认证。设计者可以在利用数据集20 (例如读取数据集20以供用于在客户机12上执行的数据驱动的应用程序) 的许多场景中编写这样的资源脚本22。
图1的伪代码框沈阐释在协议请求16的履行期间可以被用来与帐户存储M交互的资源脚本22的内容。应明白,伪代码框又呈现根据可以在此内容中使用的一种脚本语言格式化的资源脚本22的一种表述,且按照这一脚本语言和其他脚本语言的许多其他资源脚本是可用的。
然而,在图1的伪代码框沈中表达的资源脚本22呈现相对于其他资源脚本和其他脚本语言的一些优点。作为第一示例,通过声明指定资源脚本,其包括一起描述执行认证操作中的过程的一组元素。与用根据诸如命令式编程范式、过程式编程范式以及面向对象编程范式和面向方面编程范式等的其他编程范式设计的脚本语言表达的资源脚本相比,由于例如可由被分层组织的文档对象模型赋予的规则结构,伪代码框26的声明式结构更易于人类阅读和更易于由解析器解析。作为第二示例,用基于协议14的脚本语言表达在图1 的伪代码框26中呈现的资源脚本,这允许平台独立的执行,尤其是运行时可选择的执行上下文。例如,可以以独立于可以在其上执行资源脚本22的系统的硬件或软件体系结构的方式来设计和存储资源脚本22。在运行时,可以指定用于资源脚本22的执行上下文,并且可以在许多运行时指定的执行上下文执行资源脚本22而无需平台专用的重新配置并具有对数据集20的等效效果。作为第三示例,此伪代码框沈的脚本语言的规则结构和相对简单结构(与诸如Java和C++等的编程语言的更复杂的结构相比)允许脚本处理器的相对轻量级的设计,这可以通过将它们传递到协议14来执行数据集操作(例如,供由主机18的web 服务器组件处理),且可以通过变更资源脚本的执行流来执行流控制操作。尽管如此,仍然可以在相对简单的脚本语言内提供更高级的特征,例如故障补偿(通过使用流控制操作) 和数据绑定(通过使用用于将操作的属性与另一操作的属性或者与客户机12、主机18、数据集20、协议请求16或协议响应观的方面关联起来的指令)。
然而,还应明白,图1的伪代码框沈对设计者来说是难以在没有协助的情况下编写的。无需协助就成功地用此伪代码框26中阐释的脚本语言表达资源脚本涉及图1的交互的许多方面的详尽知识。例如,设计者必须理解通过声明指定的资源脚本22的分层结构;脚本语言的句法和通过声明指定的资源脚本22的句法(例如各种参数的定义和诸如 "Conditional (条件)”和“DataBind (数据绑定)”等的元素的封装);底层HTTP GET协议请求16的细节,以及脚本语言的指令与协议的动词的相关(例如使用通过脚本语言中的 GET型语句来执行资源脚本22中的HTTP GET操作的方式);与协议请求16 —起提供的用户凭证的本质,以及将用户凭证提供给帐户存储M的方式以及解释结果;使得各操作的各种属性相关以便实现资源脚本22的所期望的结果的数据绑定特征的使用;以及在网络上发出协议请求16时由资源脚本22招致的网络传输成本(例如滞后)。甚至对于熟练的设计者,设计正确地考虑所有这些概念同时还满足脚本语言的句法约束条件资源脚本22也是非常困难的。此外,所有这些复杂的细节与为促进在客户机12上的数据驱动的应用程序而开发资源脚本18以便读取数据集20的设计者的兴趣不相关。
设计环境可以被设计成促进缓和由于其中指定的交互而产生的复杂性中的一些的资源脚本的创建。设计环境可以向设计者呈现按照脚本语言的指令集,且可以辅助设计者将这样的指令选择和安排成操作集的操作。作为一个示例,可以以允许设计者通过视窗化界面操纵各指令(例如通过键盘和鼠标手势来拖放指令以便选择、组织和关联操作集的操作)的部分图示的方式来呈现设计环境。这种性质的设计环境(有时被称为“可视的”设计环境)可以促进遮盖资源脚本的工作细节(例如脚本语言的句法、协议的细节和诸如连接建立和异步性等的网络参数)且允许设计者聚焦于资源脚本中各操作的逻辑配置的操作集的设计。另外,设计环境可以促进表达由设计者指定的操作集的操作的生成,且尤其可以自动地生成资源脚本中符合脚本语言的句法约束和逻辑约束的操作。
图2阐释以设计环境32为特征的示例性场景30,设计环境32以可视方式呈现,且设计者可以使用设计环境32来指定操作集38并生成包括伪代码框沈中指定的各操作的资源脚本22。设计环境32被配置成显示构成脚本语言(例如,在脚本语言工具箱34)的元素36和构成操作集38的操作40。设计环境32可以将操作集38显示为例如表示操作集 38的操作40的结构和关系的嵌套节点的分层树。设计环境32还可以允许设计者通过将输入提供给设计环境32而构建和配置操作集38。例如,设计环境32可以允许用户通过双击脚本语言工具箱;34中的元素36或者通过将元素36拖放到操作集38中的特定位置来将操作40添加到操作集38。作为另一示例,设计环境32可以允许用户通过选择操作40 (例如,通过用鼠标点击操作40)来配置操作40,且可以显示所选择的操作40的至少一个属性 42 (例如被指派给操作40的用于操作名称、操作类型和用于执行该操作的参数的值)。最终,可视设计器32可以准许设计者从操作集38生成资源脚本22 (操作集包括逻辑上经组织和经配置的操作40,而资源脚本包括根据脚本语言的操作集38的表达式,例如伪代码框 26中所阐释的)。一旦接收到对生成资源脚本22的请求,设计环境32就可以调用资源脚本生成组件44来根据脚本语言生成资源脚本22的操作。以此方式,设计环境32可以显著地促进设计者生成符合脚本语言的资源脚本22,同时自动地处理设计者不感兴趣的资源脚本22的复杂工作细节。
图3呈现在此讨论且在图2中阐释的技术的第一实施方式,包括生成适用于可根据协议14访问的数据集20的资源脚本22的示例性方法50。示例性方法50在52开始, 且涉及显示M包括对应于脚本语言的元素36的设计环境32,元素36又可以包括对应于协议14的至少一个动词的至少一个数据集指令,以及被配置成变更资源脚本22的执行流的至少一个流控制指令。示例性方法50还涉及在设计环境32内显示56操作集38的操作 40。示例性方法50还涉及一旦接收选择元素36的输入就将指定对应于元素36的指令的操作40添加58到操作集38。示例性方法50还涉及一旦接收请求生成资源脚本22的输入就生成60资源脚本22。已经提供了接受将对应于脚本语言的该指令的操作40添加到操作集38的输入的设计环境32,且已经根据脚本语言从操作集38生成了资源脚本22,示例性方法50实现了促进设计者生成资源脚本22,且因此在62结束。
图4呈现阐释在此讨论且在图2中阐释的技术的第二实施方式的场景70,包括用于生成适用于可根据协议14通过主机20访问的数据集22的资源脚本22的示例性系统 72。示例性系统72包括设计环境显示组件76,设计环境显示组件76被配置成显示包括对应于脚本语言的元素36的设计环境32,元素36又可以包括对应于协议14的至少一个动词的至少一个数据集指令,以及被配置成变更资源脚本22的执行流的至少一个流控制指令。 示例性系统72还包括操作集显示组件78,操作集显示组件78被配置成在设计环境32内显示操作集38的操作。示例性系统72还包括操作集构建组件80,操作集构建组件80被配置成一旦接收对设计环境32中的至少一个元素36的选择就将对应于元素36的指令添加到操作集38。示例性系统72还包括操作集存储组件76,操作集存储组件76被配置成存储操作集38。示例性系统72还包括资源脚本生成组件82,资源脚本生成组件82被配置成一旦接收对生成资源脚本22的请求就生成资源脚本22。示例性系统72的组件由此合作实现向设计者呈现设计环境32,设计环境32可以促进操作集38中的操作40的组织和配置以及根据脚本语言的约束条件表达操作集38的资源脚本22的生成。
在此讨论的技术可以被设计成带有许多方面的变更,且一些变更可以相对于这些和其他技术的其他变更呈现另外的优点和/或减少的缺点。此外,可以以组合来实现一些变更,且一些组合可以通过协同合作展示另外的优点和/或减少的缺点。各变更可以被合并在各种实施方式中(例如,图3的示例性方法50和图4的示例性系统72)以便给这样的实施方式授予个体的和/或协同的优点。
可以随这些技术的实施方式改变的第一方面涉及其中可以应用这些技术的场景。 作为第一示例,资源脚本22可以准备好应用于包括可部署的计算环境中的资源的数据集 20。此场景可以被设计成解决由一组对象系统管理的日益庞大的和多样的一组对象。例如, 计算环境可以包括由文件系统管理的一组文件、由数据库系统管理的一个或多个数据库、 表示应用程序并由程序集缓存管理的一组可执行二进制文件、由操作系统的用户简档组件管理的一组用户简档和由数据缓存组件管理的各种数据缓存(例如由操作系统的复制缓冲器管理的一组复制项、由操作系统的撤销组件管理的一组撤销动作和由操作系统的项使用跟踪组件管理的一组“最近所使用的”项)。此外,可以在由一个或多个用户操作的多个设备中且根据一个或多个操作交换这样的对象(例如,合并两个对象集的对象同步操作和调节目标对象集以匹配源对象集的对象镜像操作)。以此方式,通过一组对象系统松散地组织并聚集各对象以表示计算环境。
为了减少包括现代计算环境的对象的复杂种类和分散化,可以设计计算环境的可部署的表示,其中以可以由计算环境主机主控的对象分层组织构成计算环境的各对象。如果以统一的方式表示各对象并以一致的方式由对象系统管理各对象,则一组服务可以被设计成应用到计算环境的所有对象。此外,对象分层可以被传递到各种设备以代表相同的计算环境(包括相同的用户简档、应用程序、数据文件等等),且每一设备可以以一致的方式呈现计算环境但基于设备的能力定制(例如,用于从被附连到工作站的键盘设备接收数据输入的硬键盘接口,以及从蜂窝式电话设备接收数据输入的触摸屏软件键盘接口)。对于可部署的计算环境的概念,将至少一个服务器配置成管理该表示内的一个或多个数据对象并且作为通过协议(诸如HTTP上的RESTful交互)接受对这样的资源的访问的主机而操作是有益的。根据这些技术,资源脚本22可以被配置成应用到可部署的计算环境中的资源的操作,可以根据协议的动词通过计算环境主机来访问该可部署的计算环境,该主机通过该协议提供对资源的访问。然而,本领域的普通技术人员可以设计其中可以应用在此讨论的技术的许多这样的场景。
作为其中可以应用这些技术的第二示例性场景,开发环境32可以被设计成在许多上下文与设计者相互作用。作为第一示例,设计环境32可以包括在设备上执行的应用程序,例如计算机上的集成开发环境。在此示例中,可以在设计环境32上主控的设备上显示设计环境32。作为第二示例,设计环境可以包括web部署的应用程序,它可以被主控在应用程序主机上且可以部分地或完全地被加载到浏览器中以供执行。在此示例中,设计环境 32可以被主控在应用程序主机上但被显示在浏览器内。浏览器还可以被配置成加载和执行设计环境32的诸如存储资源脚本和生成操作集等的一些或全部能力。相反,应用程序主机可以提供设计环境32的一些或全部能力;例如,浏览器可以作为在应用程序主机上执行的web应用程序的薄客户机界面而操作。本领域的普通技术人员可以设计设计环境32的许多体系结构,且可以选择设计环境32的部分或全部可以在其上操作并与设计者接口的许多平台,同时实现在此讨论的技术。
可以随这些技术的实施方式改变的第二方面与设计环境32的呈现和设计者可以在设计环境32内执行的动作相关。尽管将设计环境32呈现成诸如文本编辑器等的基于文本的设计环境是可能的,但是可以通过以部分地图形的方式呈现设计环境32来实现显著的优点,其中设计环境32中的项可以作为视窗化操作界面中的控件而由设计者操纵,例如通过键盘和鼠标手势拖放指令来选择、组织和关联操作集38的操作40。设计环境32的此 “可视的”布局可以显著地减少执行基本操作所涉及的输入量(例如,在文本编辑器中将操作40添加到操作集38可以涉及六十次键击,但是在面向视觉的设计环境32中仅涉及拖放操作)以及与数据输入相关联的错误,由此为设计者提供显著的便利和改进的体验,同时加速操作集38的开发。
为促进面向视觉的设计环境32,此第二方面的第一示例可以涉及(例如,从设计者)接收指示将操作集中的操作重定位到目的地位置以及通过重定位操作集中的操作来响应的输入。图5阐释示例性场景90,其中用户首先用指针94(其可以通过诸如鼠标、触摸板或触摸屏界面等的指点设备来控制)选择操作92,且然后向下拖曳所选择的操作92以将所选择的操作92重定位到操作集38的序列中的稍后位置。开发环境32可以通过按操作集38的排序重定位所选择的操作92来响应,如在设计环境内32内所显示的。作为第二示例,一旦接收选择操作集38中的操作92的输入(例如,通过用指针94点击操作92),设计环境32就可以通过显示操作92的至少一个属性来响应。另外,一旦接收配置操作94的至少一个属性的输入,设计环境32就可以通过根据该输入配置操作94的至少一个属性来响应。这种配置操作94的方式的一些示例涉及将操作94的属性数据绑定到数据源,以使得将操作94的属性与数据源单向或双向同步起来。例如,至少一个数据集指令可以包括与将协议14的动词应用到数据集20的请求相关的请求属性(例如,协议请求16方面),以及与通过将动词应用到数据集20生成的响应相关的响应属性(例如,协议响应洲方面)。 数据绑定这样的属性可以允许操作集38对协议请求16和/或协议响应观执行操作,且可以在设计环境32内响应于输入而形成这样的数据绑定。
图6阐释一个这样的示例,其中操作集38中的第一操作102已经被指针94选择。 设计环境32可以显示第一操作102的属性,例如第一操作102的名称、类型和执行中所使用的参数。用户可以通过选择诸如GET操作的C0NTENT(内容)属性等的第二操作104的属性来配置此数据绑定操作的数据源属性。设计环境32可以通过配置第一操作102的属性以便数据绑定到第二操作104的属性来响应这样的输入。替代地或另外地,设计环境32 可以从用户接收表示将操作40的属性数据绑定到执行资源脚本22的客户机12的一方面 (例如在客户机12上运行的数据驱动的应用程序的一方面)的输入。设计环境32可以通
10过配置操作40的属性以便数据绑定到客户机12的一方面来响应。本领域的普通技术人员可以设计根据在此讨论的技术配置的设计环境32 (尤其是面向视觉的设计环境3 的许多能力。
可以随这些技术的实施方式改变的第三方面与设计环境32的操作集验证特征相关,由此可以在设计时审阅操作集38以便根据脚本语言来指示操作集38是有效的还是无效的以及是否可以从其生成资源脚本22。当用户构建和配置操作集38的操作40时,设计环境32可以(周期性地、连续地或应请求)监视操作集38的有效性,例如操作40的数据约束属性的有效性和操作40的完整的或不完整的配置。图7阐释示例性场景110,其中设计环境在设计时验证操作集38。在此示例性场景中,一个特定的操作包括无效操作(具有未指定的数据源的“DATABIND (数据绑定)”操作)。在此实施方式和其他实施方式中,一旦未能验证操作集112的至少一个无效操作,设计环境32就可以显示操作集38的无效操作的无效操作指示符114。此无效操作指示符114可以使设计者注意在可将操作集38表达成资源脚本22之前需要改正的无效操作。还可以在设计环境32内显示另外的指示符, 例如指示资源脚本38还不是有效的且不能被表达的无效操作集指示符112,以及指示被无效地配置的无效指令的属性的无效操作属性指示符116 (例如,无效的“DATABIND”指令的 "DESTINATION (目的地)”参数)。替代地,如果设计环境32验证操作集38,则设计环境32 可以显示有效操作集指示符118,这表示,根据脚本语言操作集38是有效的,且可以被表达为资源脚本22。本领域的普通技术人员可以在根据在此讨论的技术开发的设计环境32内设计许多操作集验证特征。
可以随这些技术的实施方式改变的第四方面与根据脚本语言从操作集38生成资源脚本22相关。可以在设计时经请求执行生成,且该生成可以向用户呈现用脚本语言指定的资源脚本22(例如,图1和图2的伪代码框26)。在一些实施方式中,还可以根据诸如 JSON、Atom或RSS等的有线协议来执行生成。希望根据受可以在其上执行资源脚本22的特定主机18支持的有线协议来生成资源脚本22,且可以向资源脚本22的处理(例如众所周知的格式化和串行化过程)赋予优势。因而,在一些实施方式中,设计环境32可以接收请求根据有线协议生成资源脚本22的输入,并可以通过根据有线协议生成资源脚本32来响应。本领域的普通技术人员可以根据在此讨论的技术设计从操作集38生成资源脚本22 的许多方式。
可以随这些技术的实施方式改变的第五方面与资源脚本22的执行以及其中设计环境32的参与相关。当用平台不可知的脚本语言来表达资源脚本22时,可以在其中可以执行资源脚本22的执行上下文的执行时作出选择。如果选择了本地执行上下文,则本地脚本处理器可以在客户机12上运行并将协议操作发给主机18 ;但是如果选择了主机执行上下文,则可以将资源脚本22传递到位于主机18上的脚本处理器用于远程执行。尽管资源脚本22 (以及利用资源脚本22的应用程序)的执行可以基于执行上下文而不同,但对数据集20执行各操作的相同逻辑序列而不考虑脚本处理器的位置,得到对数据集20执行资源脚本22的等效效果。
考虑到资源脚本22的灵活的执行上下文,设计环境32可以允许设计者在特定的执行上下文中执行资源脚本22。例如,一旦接收请求执行资源脚本22的输入,设计环境32 就可以呈现至少两个执行上下文,且可以等待由设计者作出的选择。一旦接收选择所选择的执行上下文的输入,设计环境32就可以根据所选择的执行上下文在脚本处理器上执行资源脚本22。例如,在输入指示选择主机执行上下文时,设计环境32可以通过将资源脚本 22发送到主机18上的脚本处理器来执行资源脚本22。更具体地,主机可以被配置成接收根据诸如JSON、Atom和RSS等的一个或多个有线协议而格式化(例如,串行化)的资源脚本22。因此,通过选择受主机18支持的有线协议、根据有线协议串行化资源脚本22以及将根据有线协议而串行化的资源脚本22发送到主机18上的脚本处理器,设计环境32可以在主机执行上下文中执行资源脚本22。替代地,当输入指示选择本地执行上下文时,设计环境32可以在本地脚本处理器上执行资源脚本22,本地脚本处理器可以被配置成通过将协议14的相应的动词发到主机18来处理数据集操作(可通过主机18来访问数据集20),并被配置成通过变更资源脚本22的执行流(例如,通过更改指示接下来将要执行的特定操作 40的指令指针)来处理流控制操作。
其中在本地执行上下文中执行资源脚本22是有益的特定场景涉及资源脚本22的调试,其中设计者可能希望在执行期间监视资源脚本22的一些方面(例如,通过资源脚本 22的执行流、各种操作40的属性、或者与主机18和/或数据集20的交互)。与主机执行上下文相比,在本地执行上下文中执行资源脚本22可以促进这样的监视,这是因为主机18 可能对于调试不被适当地配置或者可能不准许调试技术。
设计环境32可以提供在资源脚本22正在本地执行上下文执行时可以利用的许多调试技术。图8阐释以可以被应用到执行操作集38的一些调试技术为特征的示例性场景 120。作为第一示例,设计环境32可以准许使用断点,断点在感兴趣的特定点处停止执行操作集22。例如,一旦在操作40接收表示设置断点的输入时,设计环境32就可以将断点与操作40关联起来。图8阐释与操作集38的特定操作40相关联的一些断点122。如果设计环境32检测到与断点相关联的资源脚本22的操作40的执行,则设计环境32可以中断资源脚本22的执行。设计环境还可以为设计者显示同与所遭遇的断点122相关联的资源脚本 22的操作40对应的操作集38的操作40。此外,一旦接收请求再次开始资源脚本22的执行的输入,设计环境32就可以再次开始资源脚本22的执行。在资源脚本38的执行期间或在资源脚本38的执行已经在断点122被中断时,可以被应用到执行资源脚本22的相关调试技术涉及资源脚本38的各种属性的检查。在这些场景中,且正如在图8中所阐释的,设计环境32可以接收表示选择执行资源脚本22的属性(例如,诸如与所遭遇的断点122相关联的操作40等的操作40的属性)的输入。设计环境32可以通过显示执行资源脚本32 的属性来响应,由此准许设计者检查执行资源脚本32的各种方面。本领域的普通技术可以包括可以被应用到在根据在此讨论的技术实现的设计环境内的执行脚本的许多调试技术。
尽管已经用对结构特征和/或方法论动作来说专用的语言描述了本主题,但应理解,在所附权利要求中界定的本主题不必限于以上所描述的具体的特征或动作。相反,以上所描述的具体的特征和动作是作为实现权利要求的示例形式而公开的。
此申请中使用的术语“组件”、“模块”、“系统”、“界面”等等一般地预期是指计算机相关的实体,可以是硬件、硬件和软件的组合、软件或执行中的软件中的任一种。例如,组件可以是但不限于在处理器上运行的进程、处理器、对象、可执行程序、执行的线程、程序和/ 或计算机。作为阐释,在控制器上运行的应用程序和控制器两者都可以是组件。一个或多个组件可以驻留在进程和/或执行的线程内,且组件可以位于一个计算机和/或分布在两个或更多计算机之间。
此外,可以使用产生软件、固件、硬件或任何其组合的标准编程和/或工程技术来将所要求保护的本主题实现为方法、装置或制品,以便控制计算机实现所公开的本主题。在此所使用的术语“制品”预期包含可从任何计算机可读设备、载体或介质访问的计算机程序。当然,本领域中的技术人员应认识到,可以在不偏离所要求保护的本主题的范围或精神的前提下对此配置做出许多修改。
图9和下列讨论提供实现在此陈述的装置的一个或多个的实施方式的合适的计算环境的简要且一般的描述。图9的操作环境仅是合适的操作环境的一个示例,且不旨在暗示对操作环境的使用范围或功能性的任何限制。示例计算设备包括但不限于个人计算机、服务器计算机、手持式设备或膝上型设备、移动设备(例如移动电话、个人数字助理 (PDA)、媒体播放器等等)、多处理器系统、消费性电子设备、小型计算机、大型机计算机、包括任何以上系统或设备中的分布式计算环境等等。
尽管不作要求,但在由一个或多个计算设备执行的“计算机可读指令”的一般上下文中描述各实施方式。计算机可读指令可以经由计算机可读介质(在下面讨论)而被分布。 计算机可读指令可以被实现为程序模块,例如执行特定任务或实现特定抽象数据类型的函数、对象、应用程序编程界面(API)、数据结构等等。通常,在各种环境中,可以根据期望组合或分布该计算机可读指令的功能性。
图9阐释包括被配置成实现在此提供的一个或多个实施方式的计算设备132的系统130的示例。在一种配置中,计算设备132包括至少一个处理单元136和存储器138。取决于计算设备的确切配置和类型,存储器138可以是易失性存储器(例如,诸如RAM)、非易失性存储器(例如,诸如ROM、闪速存储器等等)或两者的某种组合。在图9中由虚线134 阐释此配置。
在其他实施方式中,设备132可以包括另外的特征和/或功能性。例如,设备132 还可以包括另外的存储(例如,可移动存储和/或不可移动存储),包括但不限于磁存储、光存储等等。在图9中由存储140阐释这样的另外的存储。在一种实施方式,实现在此提供的一个或多个实施方式的计算机可读指令可以是在存储140中。存储140还可以存储实现操作系统、应用程序程序等等的其他计算机可读指令。例如,计算机可读指令可以被加载到存储器138中以便由处理单元136执行。
在此所使用的术语“计算机可读介质”包括计算机存储介质。计算机存储介质包括以用于诸如计算机可读指令或其他数据等的信息的存储任何方法或技术实现的易失性介质和非易失性介质、可移动介质和不可移动介质。存储器138和存储140是计算机存储介质的示例。计算机存储介质包括但不限于RAM、ROM、EEPR0M、闪速存储器或其他存储器技术、CD-ROM、数字多用盘(DVD)或其他光存储、磁带盒、磁带盒、磁盘存储或其他磁存储设备、或可以用于存储所期望的信息且可以由设备132访问的任何其他介质。任何这样的计算机存储介质都可以是设备132的部分。
设备132还可以包括允许设备132与其他设备通信的通信连接146。通信连接146 可以包括但不限于调制解调器、网络接口卡(NIC)、集成网络接口、射频发射机/接收机、红外端口、USB连接或用于将计算设备132连接到其他计算设备的其他接口。通信连接146可以包括有线连接或无线连接。通信连接146可以发射和/或接收通信介质。
术语“计算机可读介质”可以包括通信介质。通信介质通常以诸如载波等的“经调制的数据信号”或其他传输机制具体化计算机可读指令或其他数据,且包括任何信息传递介质。术语“经调制的数据信号”可以包括以将信息编码在信号中的方式来设置或改变其一种或多种特性的信号。
设备132可以包括输入设备144,例如键盘、鼠标、笔、语音输入设备、触摸输入设备、红外照相机、视频输入设备和/或任何其他输入设备。设备132中还可以包括诸如一个或多个显示器、扬声器、打印机和/或任何其他输出设备等的输出设备142。输入设备144 和输出设备142可以经由有线连接、无线连接或其任何组合而被连接到设备132。在一种实施方式中,来自另一计算设备的输入设备或输出设备可以被用作计算设备132的输入设备 144或输出设备142。
计算设备132的各组件可以由诸如总线等的各种互连来连接。这样的互连可以包括诸如PCI Express等的外围组件互连(PCI)、通用串行总线(USB)、火线(IEEE1394)、光学总线结构等等。在另一实施方式中,计算设备132的各组件可以由网络互连。例如,存储器 138可以由位于由网络互连的不同物理位置的多个物理内存单元组成。
本领域中的技术人员应认识到,被用来存储计算机可读指令的存储设备可以跨越网络而分布。例如,可经由网络148访问的计算设备150可以存储计算机可读指令以便实现在此提供的一个或多个实施方式。计算设备132可以访问计算设备150并下载计算机可读指令的部分或全部以供执行。替代地,计算设备132可以根据需要下载计算机可读指令的片段,或者可以在计算设备132执行一些指令且在计算设备150 —些指令。
在此提供各实施方式的各种操作。在一种实施方式中,所描述的各操作中的一个或多个可以构成被存储在一个或多个计算机可读介质上的计算机可读指令,如果这些计算机可读指令被计算设备执行,则将引起计算设备以执行所描述的各操作。描述各操作中的一些或全部的次序不应被解释成暗示这些操作是必定次序相关的。本领域中的技术人员应明白具有此描述中的益处的替代排序。进一步,应理解,并非所有操作都必定出现在在此提供的每一实施方式中。
此外,在此使用词“示例性”来意指充当示例、实例或阐释。在此被描述为“示例性”的任何方面或设计的并不必定被解释成比其他方面或设计有益。相反,词“示例性”的使用旨在以具体的方式呈现各概念。在此申请中所使用的,术语“或”旨在意指包括在内的 “或”而非排除在外的“或”。即是说,除非以另外方式指定或从上下文清楚看出,否则“X采用A或B”旨在意指自然地包括在内的排列中的任何。即是说,如果X采用A ;X采用B ;或 X采用A和B两者,那么,“X采用A或B”满足任何前述各实例。另外,在此申请和所附权利要求中使用的冠词“一(a)”和“一个(an)”可以一般地被解释成意指“一个或多个”,除非以另外方式指定或从上下文清楚看出针对单数形式。
应明白,资源脚本可以包括资源脚本。
而且,尽管已经相对于一个或多个实现示出和描述了本公开内容,但本领域中的其他技术人员应基于此说明书和附图的阅读和理解想起等效的变更和修改。本公开内容包括所有这样的修改和变更,且仅由下列权利要求的范围限制。尤其考虑由上面所描述的组件(例如,元素、资源等等)执行的各种函数,除非以另外方式指示,用于描述这样的组件的各术语旨在对应于执行所描述的组件所指定的函数的任何组件(例如,功能上等效的组件),即使结构上不等效于执行本公开内容的在此所阐释的示例性实现中的函数的所公开的结构。另外,尽管已经相对于若干实现中的仅一个公开了本公开内容的特定特征,但这样的特征可以与所期望的且任何给定的或特定的应用程序有益的其他实现的一个或多个其他特征组合。此外,就详细描述或权利要求中的任一个中使用术语的“包括”、“具有”、“拥有”、“带有”或其变种来说,这样的术语旨在是以类似于术语“包括”的方式包括在内。
权利要求
1.一种生成适用于可根据协议14访问的数据集20的资源脚本22的方法50,所述方法50包括显示M包括对应于脚本语言的元素的设计环境32,所述脚本语言包括 对应于所述协议14的至少一个动词的至少一个数据集指令,以及被配置成变更所述资源脚本22的执行流的至少一个流控制指令; 在所述设计环境32内显示56操作集38的操作40 ;一旦接收选择元素的输入,就将指定对应于所述元素的指令的操作40添加58到所述操作集38;以及一旦接收请求生成所述资源脚本22的输入,就生成60所述资源脚本22。
2.如权利要求1所述的方法,所述数据集包括在由所述主机主控的可部署计算环境中表示的至少一个资源。
3.如权利要求1所述的方法,包括一旦接收将所述操作集中的操作重定位到目的地位置的输入,就重定位所述操作集中的所述操作。
4.如权利要求1所述的方法,包括一旦接收选择所述操作集中的操作的输入,就显示所述操作的至少一个属性;以及一旦接收配置所述操作的至少一个属性的输入,就配置所述所述操作的至少一个属性。
5.如权利要求4所述的方法至少一个数据集指令的所述属性包括与将所述协议的所述动词应用到所述数据集的请求相关的请求属性,以及与通过将所述动词应用到所述数据集来生成的响应相关的响应属性。
6.如权利要求4所述的方法,包括一旦接收将操作的属性数据绑定到执行所述资源脚本的客户机的方面的输入,就将所述操作的所述属性配置成数据绑定到所述客户机的所述方面。
7.如权利要求1所述的方法,包括根据所述脚本语言验证所述操作集的所述操作。
8.如权利要求7所述的方法,包括一旦验证所述操作集的所述操作,就在所述设计环境内显示有效操作集指示符;以及一旦未能验证所述操作集的至少一个无效操作,就在所述设计环境内显示所述操作集的所述至少一个无效操作的无效操作指示符。
9.如权利要求1所述的方法,包括一旦接收请求根据有线协议生成所述资源脚本的输入,就根据所述有线协议生成所述资源脚本。
10.如权利要求1所述的方法,包括一旦接收请求执行所述资源脚本的输入,就呈现至少两个执行上下文;以及一旦接收选择所选择的执行上下文的输入,就根据所选择的执行上下文在脚本处理器上执行所述资源脚本。
11.如权利要求10所述的方法所述数据集可根据所述协议通过主机来访问; 所选择的执行上下文包括本地执行上下文;以及所述执行包括在本地脚本处理器上执行所述资源脚本,所述本地脚本处理器被配置成对于各个数据集操作,将所述协议的相应动词发给所述主机,以及对于各个流控制操作,变更所述资源脚本的执行流。
12.如权利要求11所述的方法,包括一旦接收在操作处设置断点的输入,就将断点与所述操作关联起来; 一旦执行与所述断点相关联的操作,就 中断所述资源脚本的执行,以及一旦接收请求再次开始所述资源脚本的执行的输入,就再次开始所述资源脚本的执行。
13.如权利要求12所述的方法所述数据集可根据所述协议通过主机来访问; 所选择的执行上下文包括主机执行上下文;以及所述执行包括选择受所述主机支持的有线协议; 根据所述有线协议串行化所述资源脚本;以及将根据所述有线协议串行化的所述资源脚本发送给所述主机上的脚本处理器。
14.一个用于生成适用于可根据协议14通过主机18访问的数据集20的资源脚本22 的系统72,所述系统72包括被配置成显示包括对应于脚本语言的元素的设计环境32的设计环境显示组件72,所述脚本语言包括对应于所述协议14的至少一个动词的至少一个数据集指令,以及被配置成变更所述资源脚本22的执行流的至少一个流控制指令; 被配置成在所述设计环境32内显示操作集38的所述操作40的操作集显示组件76 ; 被配置成一旦接收对所述设计环境中的至少一个元素的选择就将对应于所述元素的指令添加到所述操作集38的操作集构建组件80 ;以及被配置成存储所述操作集38的操作集存储组件76 ;被配置成一旦接收生成所述资源脚本22的请求就生成所述资源脚本22的资源脚本生成组件82。
15.如权利要求14所述的系统,包括资源脚本执行组件,所述资源脚本执行组件被配置成一旦接收请求执行所述资源脚本的输入,就呈现至少两个执行上下文;以及一旦接收选择所选择的执行上下文的输入,就根据所选择的执行上下文在脚本处理器上执行所述资源脚本。
全文摘要
在涉及可通过协议访问的数据集的场景中,可以形成用于对数据集执行各种操作的操作集,且可以根据脚本语言将该操作集表达成资源脚本。然而,由于诸如异步、网络传输、脚本语言的句法和协议的细节等的交互的复杂方面,难以设计这样的资源脚本。可以设计例如通过操纵可视元素来便于设计者生成资源脚本的设计环境。该设计环境可以抽象资源脚本的较低级工作细节,且可以允许设计者聚焦于操作集的逻辑设计。然后,该设计环境可以根据脚本语言和协议的约束自动地从操作集生成资源脚本。
文档编号G06F9/45GK102187314SQ200980141549
公开日2011年9月14日 申请日期2009年10月16日 优先权日2008年10月17日
发明者D·K·舒克拉, A·G·班达卡, S·郭, A·帕拉斯尼斯, O·M·阿米加, R·E·恩德斯, G·M·摩尔 申请人:微软公司

最新回复(0)