CN108027720A - 可视化内容开发 - Google Patents
可视化内容开发 Download PDFInfo
- Publication number
- CN108027720A CN108027720A CN201680053756.XA CN201680053756A CN108027720A CN 108027720 A CN108027720 A CN 108027720A CN 201680053756 A CN201680053756 A CN 201680053756A CN 108027720 A CN108027720 A CN 108027720A
- Authority
- CN
- China
- Prior art keywords
- data
- operable
- input
- service
- instruction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
Abstract
本发明描述了用于开发调用虚拟化计算环境的软件应用程序的技术。呈现图形用户界面,所述图形用户界面可操作以基于用户输入数据来用图形描绘输入、输出以及操作的表示。呈现所述输入、输出以及操作的所述表示的图形描绘。使所述所呈现的图形描绘与相关的可执行代码相关联,所述可执行代码可操作以执行实施所述输入、输出以及操作的功能性并调用所述虚拟化计算环境中的服务。
Description
相关申请案的交叉引用
本申请要求2015年9月18日提交的第14/859,177号美国专利申请的权益,该美国专利申请的公开内容以引用方式整体并入本文。
背景技术
服务提供商,例如运营提供商网络的实体,可将例如计算实例和存储资源等计算资源提供给客户端。服务提供商可例如提供计算和网络服务平台。多个客户端可经由计算节点访问计算和网络服务平台,并向网络服务平台发出指令。计算和网络服务平台还可被称为多租户计算和网络服务平台以表示多个客户端可访问平台。
许多多租户计算和网络服务平台提供虚拟化资源和基于网络的工具或应用程序,用户可通过网络浏览器访问并使用所述虚拟化资源和基于网络的工具或应用程序,如同虚拟化资源为本地地安装在其自己的计算机上的程序一样。为此类系统的用户存储的数据通常被托管在位于计算数据中心中的计算系统中。在一些示例中,电子呈现的内容,例如多人游戏,可由大量不同的用户同时访问和参与。为使用户可容易地获得其内容,此类内容的内容开发者通常被迫变得精通服务器开发和管理技术。
附图说明
被包含以提供对本发明的进一步理解的附图被包含在此说明书中并构成此说明书的一部分,示出本发明的实施方案并与具体实施方式一起用以说明本发明的原理。仅仅尝试详细示出对本发明和可实践本发明的各种方式的基本理解所必需的本发明的结构细节。
图1示出根据本公开的一些方面的用于内容开发的系统的高级系统图的示例。
图2示出根据本公开的一些方面的可视化脚本的翻译的示例。
图3示出根据本公开的一些方面的可视化开发环境的高级系统图的示例。
图4示出根据本公开的一些方面的内容开发环境的功能块图的示例。
图5为根据本公开的一些方面的内容开发环境的功能块图的示例。
图6示出根据本公开的一些方面的用于创建/编辑内容的示例用户癸面。
图7示出根据本公开的一些方面的用于创建/编辑内容的示例用户界面。
图8示出根据本公开的一些方面的用于创建/编辑内容的示例用户界面。
图9示出用于开发内容的操作程序的示例。
图10为描绘其中可实践本公开的方面的计算环境的实施方案的方块图。
图11为描绘其上可实践本公开的方面的计算系统的实施方案的方块图。
具体实施方式
多租户计算和网络服务平台的用户可在平台上开发并发布应用程序。在许多情况下,用户可能必须根据资源和资源类型的技术规范来估计资源和资源类型的数目和配置以最佳地适合用户的应用程序开发和部署需要。此外,用户通常需要学习并应用特定的语言、程序以及其他技术细节,以便恰当地配置服务器、存储装置以及其他资源,以便开始开发和部署活动。然而,并非所有用户都可具有充足的信息或经验以准确地估计满足所述用户的需要所需的资源的数目和配置。也并非所有的用户都愿意投入时间和资源以学习访问这些资源所需的特定的语言和程序。
本公开描述一种开发环境,其中开发和部署软件应用程序的过程的方面可由集成开发和部署环境提供。开发和部署环境可在开发者计算系统上执行,和/或可在多租户计算和网络服务平台(也被称为提供商网络)上执行,且可经由远程访问技术使用网络浏览器界面访问。本公开描述用于创建所有类型的内容的应用程序开发环境的系统和方法。具体地说,描述用于提供虚拟项目环境的系统和方法,其中内容可在不需要用于访问提供商网络的底层资源的编程语言或过程和程序的特定知识的可视化环境中被创建、构造、编程和/或编辑,所述底层资源可在期望的应用程序被实施和发布时被访问。
在一些实施方案中,可视化开发环境允许开发者使用可视化脚本范例来产生调用并访问在提供商网络处的各种服务的代码。可视化开发环境可托管例如存在于用户会话之间的编程逻辑组件。用户可使用可视化脚本范例来开发应用程序,因此避免学习客户端-服务器编程和用于访问在提供商网络处可获得的服务的其他特定方法的需要。一旦调用并访问在提供商网络处的各种服务的代码已产生,所述代码就可被集成到用于实施诸如虚拟化内容和视频游戏等多种软件应用程序的其他代码中或与其他代码结合。另外,整个软件应用程序可使用可视化脚本范例来创建,使得软件应用程序的所有代码都使用可视化开发环境来产生。
在一些实施方案中,可视化开发环境可被配置以产生代码,所述代码集成提供商网络的后端服务与可经扩展以满足开发者的需要的可视化工具和模板。模板可被开发者用作起始点以创建并管理应用程序和功能的一系列构建块。另外,模板可包含整个应用程序的完整样本和其他内容。
通过将可视化构建块用于可被翻译成对应于针对提供商网络服务的动作的代码的应用程序开发,开发者可访问提供商网络服务的功能性,而不需要将特定的接口用于服务中的每一个,不需要开发者学习服务中的每一个的特定编程细节,或不需要开发者用例如C++等语言写代码,从而为开发者访问利用提供商网络服务提供易用性。开发者可通过仅使用可视化开发环境的图形工具来创建应用程序栈和机器映像以部署期望的在线服务。例如,可视化开发环境可用于产生用于跟踪游戏会话之间的玩家全局状态和背包、游戏的所有玩家之间的相对排名并提供玩家之间的交易服务的功能性。因此,开发者可能能够对期望的游戏玩法编写脚本并向用户发布访问的结果,而不必知道如何定义服务器和其他计算资源的特定技术要求。
可使用可视化开发环境选择的构建块可与指令和其他可操作输入相关联,所述其他可操作输入可产生在提供商网络的各种后端服务上实施的动作,例如文件存储、内容分配、数据库访问、云计算功能、工作流服务、服务器机群管理和扩展,以及可扩展服务器侧事件。所实施的动作可在不必直接地构建并管理软件栈、服务器机器映像以及安全性设置的情况下产生。例如,开发者可能能够使用变化通知结合API调用来寄存改变应用程序中的用户输入(例如视频游戏应用程序中的玩家数据)并对所述改变作出响应。另外,开发者可能能够使用可视化开发环境来产生代码,所述代码指导服务器机群基于性能和需求来自动地扩展(例如,自动扩展)。此外,开发者可能能够以可扩展方式对服务器侧逻辑编写脚本,使得项目的开发者或赞助商将仅对计算资源的实际使用付费。
在一些实施方案中,可视化开发环境可在开发者的系统上执行。可视化开发环境可用于产生在用户计算机上执行并调用提供商网络的服务的代码。在其他实施方案中,可视化开发环境可在提供商网络和/或这些或其他系统和网络的任何组合上执行。可视化开发环境可由开发者经由例如网站浏览器界面等界面访问。在提供商网络上执行的可视化开发环境可被开发者用于产生在用户计算机上执行并调用提供商网络的服务的代码。在另外的实施方案中,所产生的代码可在提供商网络上执行,且可由终端用户经由例如网站浏览器界面等界面访问。
应了解,尽管本公开中公开的实施方案论述在视频游戏开发的背景下的可视化开发环境,但其他类型的应用程序可用本文中公开的概念和技术开发。例如,本文中公开的实施方案还可与提供内容传递服务的应用程序一起使用。
在一些实施方案中,可视化开发环境还可允许开发者使用非可视化传统开发工具来自定义所选特征。例如,开发者可使用可视化开发环境来产生代码。开发者可具有存取所产生的代码并使用例如直接文本编码等非可视化方法来对所产生的代码做出修改的能力。
在一些实施方案中,内容可通过开发者使用可视化开发环境来创建,所述可视化开发环境继而与各种后端和可托管内容的所部署实例或以其他方式与内容的所部署实例交互的其他服务或组件集成。内容可包含分布式应用程序,例如至少部分依赖于基于网络的服务(例如,自动扩展)的应用程序、虚拟化在线内容、数据和记录管理、协同编辑工具或多人视频游戏。在一些实施方案中,提供用于访问可视化开发环境的一个或多个选项的基于网络的用户界面可被呈现给提供商网络的开发者用户。可视化开发环境经由用户界面可接收内容开发项目的输入,且还可存取其他信息,例如特定用户的编辑历史。替代地,实施可视化开发环境的功能性的软件可被下载到开发者的计算系统且可在本地执行。
在一些实施方案中,各种功能模块可暴露于可视化开发环境的可视化编辑器中。可视化编辑器可呈现输入、对输入的操作以及操作的输出的图形描绘,和/或对输入、操作以及输出的表示的描绘。图形描绘随后可与相关指令相关联,所述相关指令可用于启动并控制各种后端服务。在一个实施方案中,图形描绘可被翻译或脚本化成可在各种后端服务上执行的对应的指令。例如,图形描绘可被翻译成可直接地上传到在提供商网络处的服务器侧功能的JavaScript。此外,可视化开发环境可对在终端用户的计算装置上执行的代码以及在提供商网络的计算环境中执行的代码编写脚本。
可视化开发环境可与各种后端服务集成,所述后端服务基于与各种应用程序开发需要相关的计算服务来选择。例如,在线游戏通常访问用于存储数据、共享数据、对数据应用结构的服务,并对数据执行计算。在一些实施方案中,后端服务可包含允许数据的创建、读取、写入以及修改的存储服务。存储服务可允许在客户端上创建并上传到服务器的信息。可处理所上传的信息并作出决定,其中变化的状态被写回到客户端。存储服务还可允许用户产生的内容,所述用户产生的内容可通过用户上传并与在应用程序的背景内的其他用户共享。例如,用户可捕获关于游戏应用程序的屏幕截图或视频并上传所述数据以用于与其他用户共享。作为另一示例,游戏数据可被记录并上传以供其他用户稍后下载作为对视频游戏的挑战。
可提供内容传递服务,所述内容传递服务允许开发者以高效的方式将数据提供给用户并提供保护和权利管理。例如,数据内容可被存储在物理上定位成距预期用户位置更近的所选服务器中,允许内容传递的较低时延。另外,所选内容可与存取密钥相关联以允许基于许可或购买的内容传递。
可提供数据库服务,所述数据库服务允许将结构应用到应用数据。例如,数据集可被创建并维持以用于跟踪玩家和非玩家角色两者的游戏数据的持续状态。服务器侧服务可基于在存储和/或数据库服务中检测到的变化而提供用于计算和将对数据施加的其他操作。例如,服务器侧脚本和逻辑可基于新数据被写入到数据存储装置或基于监视到指定的数据流而被触发。可视化开发环境可与另外的提供商网络服务集成。
图1为示出根据本公开的包含用于提供可视化开发环境的框架的系统100的图式。在图1中,系统100可包含虚拟机资源110、存储卷资源115以及后端120,所述后端可例如在一个或多个服务器计算机130和140以及存储卷135上执行。应了解,一些实施方案可包括可在另外的服务器计算机上实例化的各种类型的另外的资源。
图1还示出公用网络150,所述公用网络可包含一个或多个计算机,例如计算机160和170。根据一个实施方案,资源110、115以及120可被配置以经由网关190和计算机160和170将计算服务提供到公用网络150的计算机用户(未示出)。例如,虚拟机资源110可将远程访问企业应用程序的集合提供给一组用户。所述资源可实施为虚拟机实例、存储资源以及其他类型的计算资源。
在一个实施方案中,计算机160或170可访问或执行可视化开发环境180以用于启动或编辑应用程序。例如,可视化开发环境180可至少部分通过在计算机160或170处下载的软件应用程序实施。在其他实施方案中,可视化开发环境180可由数据中心100托管,且在计算机160或170处操作的用户可通过发送针对访问可视化开发环境180的请求来访问可视化开发环境180。所述请求可直接地从在计算机160或170处的用户接收。响应于请求的接收,可视化开发环境180可记录请求并对请求作出响应。可视化开发环境180可在必要时与提供商网络的其他服务通信,以促进:(1)处理请求,(1)对资源投标以满足请求,以及(3)分配满足请求所必要的资源。可视化开发环境180可例如提供用于促进请求的实例化并产生用于启动或编辑应用程序的可视化界面的界面。可视化开发环境180可另外提供用于观察请求的状态并修改或取消请求的界面,以及可用于编辑应用程序的其他用户界面。在一些实施方案中,用户界面描绘可通过服务提供商产生并被发送到用户的显示器以用于呈现。在其他实施方案中,用户的计算装置可包含用以产生用户界面的一些或全部部分的功能性。例如,如果用户的网站浏览器可包含用于产生用于呈现从服务提供商接收到的数据的图形中的一些的代码。
图2描绘示出可视化开发环境180和调用和/或控制在提供商网络处的服务的代码的产生的示例的方块图。可视化开发环境180可被配置以翻译表示可视化脚本210的数据。可视化脚本210可使用各种软件和/或硬件组件编辑,所述软件和/或硬件组件在用户计算装置上呈现内容的功能性的图形描绘并允许用户与内容交互并改变内容。可视化脚本210可经由软件和/或硬件机制接收。
可视化脚本210可包含表示在用户界面上用图形描绘的一个或多个功能的信息。在一个实施方案中,可视化脚本210可包含表示多个功能或方法的数据,所述功能或方法另外包含至少一个输入和至少一个输出。例如,图形描绘可包含可对例如数据文件等输入数据项执行的功能或操作的块表示。图形描绘还可包含功能或操作的输入以及来自功能或操作的输出的表示。输入和输出可使用例如箭头等线连接器来表示,所述线连接器可用于描绘输入的来源和输出的目的地。
可视化脚本210通常将包含多个块表示和输入/输出表示以允许对关系和数据流的图形操纵。所描绘的用户界面可允许可视化脚本210使用典型的拖放以及可为典型的使用键盘、鼠标、触摸屏以及其他输入装置的用户界面工具的其他交互机制来编辑。
可视化脚本210可使用翻译组件215来翻译。在一个实施方案中,翻译组件215可被配置以访问代码单元的数据库,并将可视化脚本210的表示映射到代码单元中的一个或多个。所述映射可基于哪一个功能或操作在可视化脚本210中描绘来执行。例如,模式分类系统可用于基于可视化脚本210来识别相关的代码单元。模式分类系统可对描绘哪些代码单元与所选功能或操作相关的关系进行编码。模式分类系统可经编程以识别哪些功能或操作映射到特定的代码单元。模式分类系统还可在添加新代码单元时被更新。在一些实施方案中,模式分类系统可包含学习功能以连续地学习哪些代码单元与所选功能或操作相关。学习系统随后可将未来观察结果分类为可从先前映射创建的代码单元的类别。
翻译组件215还可被配置以接收可视化脚本210的表示,解析所述表示,并将解析后的表示转换成指令集。转换可使用上文描述的模式分类系统实施,或可基于一系列指令,所述指令可基于解析后的表示与对应的代码单元之间的已知关系来编码。
所映射或产生的代码可操作以与可由提供商网络提供的各种虚拟化服务220交互并控制所述虚拟化服务。所映射或产生的代码可包含例如启动或访问服务的指令,所述服务例如用于配置并启动虚拟机的虚拟化实例230,用于对应用数据应用结构的数据库服务240,用于数据的创建、读取、写入以及修改的存储服务250,用于将通知推送给用户的消息传送服务260,以及用于基于事件来触发提供商网络服务的事件驱动功能。服务可包含未在图2中示出但可在提供商网络上提供的其他服务。
例如,可视化脚本210可表示期望操作,例如从键值存储检索某一值。可视化脚本可包含表示键的输入的名称和表示来自键值检索的输出值的输出。可视化脚本210因此可包含:包含指示键名变量的文本串的输入箭头,以及具有指示输出变量的文本串的输出箭头。在此示例中,可视化脚本210可包括指示具有两个端口的键值检索功能的框。翻译组件215可接收指示可视化脚本210的数据,并产生定义继承通过可视化开发环境180定义的功能性的类的代码,所述类包含输入名称字符串、输出名称字符串以及输入索引。翻译组件215可另外产生包含以下各项的功能:对在提供商网络处的数据库服务的调用,对包含数据库识别符和值信息的数据库的访问,以及值的返回。代码可另外包含用于接收返回值并将返回值提供到通过可视化脚本210指示的输出的指令。
图3为描绘可结合可视化开发环境180使用的可视化编辑系统300的示例的方块图。可视化编辑功能300可包括多个开发者计算节点,例如在图3中描绘为开发计算节点308和开发计算节点310的那些节点,所述节点配置有提供用于创建、编辑并测试应用程序以及其他内容的机制的软件和/或硬件。内容可包含交互式内容,例如软件应用程序、交互式视频及类似者。开发者计算节点310可执行可视化开发环境180。可视化开发环境180可包含呈现模块314,所述呈现模块被配置以与开发计算节点308的用户界面组件交互。呈现模块314的开发者组件可被配置以在用户界面上呈现用于上传待编辑的内容的选项,且被配置以将一个或多个交互式组件添加到内容。
使用可视化开发环境180,例如应用程序等内容可使用开发者计算节点308或310上的内容的功能性的图形描绘来编辑,并允许开发者与内容交互并改变内容。内容的元件,包含那些通常不包括可视化组件的元件,可在用户界面上通过图形元素表示。这样做允许容易地选择内容的每一元件以用于进一步编辑。呈现模块314可被配置以呈现正被开发的内容的构建块的视图。呈现模块314可被配置以呈现构成内容的图形元素。呈现模块314可呈现图形元素以包含各种可视化指示,例如输入、输出、操作、方法及类似者。可视化开发环境180可包含另外的模块以用于编辑内容的属性、创建新内容、删除不想要的内容等等。
开发者计算节点308或310上的可视化开发环境180可允许在开发者计算节点308或310上在本地做出的对内容的改变经由网络306发送到内容存储库模块304以用于存储在存储库303中。信息可连续地或按需要基于用户的请求发送。在一些情况下,服务器310可包含除或除了集成开发环境外的软件和/或硬件。例如,开发者计算节点308或310还可被配置以充当正被开发的内容的测试平台。
网络306可包括在计算节点之间通信的各种构件。示例包含局域网、因特网等等。有线或无线网络两者可以各种组合被采用。
内容存储库模块304可包括与存储库303的维护相关的软件和/或硬件。内容存储库模块304可从开发者计算节点308或310接收信息,所述信息描述对所述内容的内容作出的变化,包含对所述内容的数据作出的变化。内容存储库模块304还可接收并处理针对改变存储库中的内容的状态的请求。
内容存储库模块304可维持内容的版本以及对哪一版本当前正被编辑的指示。数据可作为日志型结构存储在存储库303内。存储库303可包括存储装置,例如固态驱动,结构可被维持在所述存储装置上。内容存储库模块304可采用各种冲突检测、避免以及恢复机制来保护内容的一致性。
内容存储库模块304可对未保存的改变执行提交和回滚操作。呈现模块314可被配置以产生内容的视图,所述视图利用已被存储在存储库303中且已通过从内容存储库模块304接收到的传输内容描述的内容的可视化指示。
图4为更详细描绘可视化开发环境180的功能块图。可视化开发环境180可包含用户界面组件404。用户界面组件404可被配置以呈现一个或多个用户界面,使得例如开发者等用户能够创建内容、观察内容、与内容交互和/或进行其他动作。
用户界面组件404还可被配置以提供可视化编辑界面控制,所述可视化编辑界面控制可促进应用数据、逻辑的构造或任何其他编辑相关的任务。在一些方面中,用户界面组件404可提供默认编辑器,所述默认编辑器提供可经扩展、修改且一起使用以定义内容项目的动作对象的核心集。例如,用户界面组件404可提供界面以供用户创建内容,例如,应用程序或交互式视频等。用户界面组件404可被配置以呈现用于上传待编辑的内容的选项,且被配置以将一个或多个组件添加到内容。
另外,可视化开发环境180可包含翻译组件406,所述翻译组件用于使输入数据与相关指令以及可操作以在于提供商网络中执行的计算服务上执行的其他可操作对象相关联。模板组件408还可被提供用于提供模板和其他可再用信息以供开发者使用。模板可被开发者用作起始点以创建并管理内容,并以有序且可预测的方式更新内容。通过使用模板来创建相同项目的相同副本或将模板用作基础以用于开始新项目,开发者可以可预测方式并重复地开发应用程序,而不必花费相当大的努力来创建并配置与其项目相关联的底层结构。此外,开发者可照原样使用模板或将模板用作起始点以用于创建开发者自己的模板。
在一个实施方案中,用户界面组件404可允许开发者选择资源、输入、输出、值、互连以及其他参数。此外,可向开发者提供用户界面以用于创建新项目。开发者可选择或创建定义变量和动作的初始集合的模板。例如,开发者可选择开发者想要使用的模板。用户界面可提供开发者可部署以开始的受欢迎应用程序的样本模板。例如,可提供可示出开发者如何互连并使用多个资源以用于特定视频游戏类型的样本模板。开发者还可加载开发者自己的自定义模板,所述自定义模板先前已被创建并使用服务提供商存储装置或客户自己的存储装置存储。开发者可通过覆写模板参数来自定义模板,或开发者可接受由模板提供的默认值。模板组件408可创建期望的内容。
模板组件408可允许开发者基于开发者的需要来针对推荐的应用程序起始点请求模板。开发者可例如提供对新计算项目的需要。模板组件408可分析所述需要,且基于现有模板和其他信息,模板组件408可产生一个或多个推荐模板。推荐模板可基于客户的需要或其他标准来指定优先顺序并排序。开发者可选择推荐模板中的一个以用于产生项目。
图5为描绘在多个开发者计算节点与存储库维护服务器515之间的数据流的方块图。开发者计算节点500可产生指示对项目的更新的数据,同时客户端520也可产生指示对项目的更新的数据。存储库维护服务器514可将关于更新的信息的相同集合发送到客户端500和520两者。因为信息由客户端500和客户端520两者共享,所以所述客户端可各自呈现指示正由对应于客户端500和520的用户进行的工作的内容的视图。在一些实施方案中,数据可在改变被提交到存储库维护服务器514并存储在存储库516中时被连续发送并传播。在其他实施方案中,可视化开发环境180可定期地或在请求后存储改变。一旦提交,存储库维护服务器514就可将信息传播到已知正作用于项目的所有开发者计算节点。
可视化开发环境180可包含开发工具,所述开发工具在一些实施方案中可包含软件库的集合和开发者可用来构造定义应用程序的另外的配置数据的工具,以及可被配置以允许应用程序的数据的编辑的另外的开发者工具。
在一个实施方案中,动作对象可为数字对象,所述数字对象包含定义行为的编程逻辑和/或数据,且可调用其他动作对象或与应用程序集群通信。编程逻辑可另外定义为通过使用设置有开发工具的软件库来构造的任何形式的脚本或编程语言。
图6至图8示出可呈现在开发者计算节点310上以用于编辑内容的一系列示例用户界面显示。界面显示可通过可视化开发环境180(图1中示出)产生。可视化开发环境180可包含计算机可读介质,所述计算机可读介质包括代码段或代码区段,所述代码段或代码区段用于在于计算机上执行时执行本文中描述的方法。
如图6中示出,在例如经由用户界面组件403访问(例如,登入)可视化开发环境180并选择创建新项目的选项后,空白项目可被加载。空白项目可包含从内容列表选择内容的选项。内容列表可提供为下拉列表、菜单列表及类似者。内容列表可包括先前通过用户或通过已使内容可用的另一用户上传的内容。在一些方面中,可呈现某一选项以供用户上传新内容。
如图6中所示,项目组件610指示第一图形组件,所述第一图形组件指示名称Input和player ID,其中箭头指示与项目组件620的关系。项目组件620指示第二图形组件,所述第二图形组件指示对应的名称Daily Gift和方法Get Login Time,其中箭头指示与项目组件630的关系。项目组件630指示第三图形组件,所述第三图形组件指示对应的名称PlayerRecord和变量Login Time,其中箭头指示与项目组件640的关系。项目组件640指示第四图形组件,所述第四图形组件指示对应的名称More than 1day,其中箭头指示与项目组件650和660的关系。最后,项目组件670指示最后的图形组件,所述最后的图形组件指示对应的名称Player Record和Inventory。
在一个实施方案中,图形组件可在所呈现的用户界面上通过例如控制指针的鼠标等用户输入构件选择。通过选择图形组件,例如项目组件610,用户可能能够在所呈现的用户界面上将项目组件610移动到期望的位置。用户还可能能够选择箭头或其他连接器并将所选的连接器附接到另一项目组件,例如项目组件620。连接器因此表示项目组件610的输出和项目组件620的输入。
通过项目组件执行的操作可从可用且可选择的操作的列表选择,或可通过用户定义。例如,如果用户选择项目组件,那么还可向用户呈现包含可选择操作的上下文菜单。替代地,可向用户呈现输入字段以用于用户定义的操作的输入。可提供其他输入机制以选择或定义项目组件的操作。
图形组件可在可视化开发环境180中表示为有序关系的集合。例如,项目组件之间的连接器可表示为相关的数据对象。项目组件可表示为一个或多个操作或功能名称或定义。可视化开发环境180可定义标准化命名法以用于表示图形组件。所述表示随后可被翻译或映射到在提供商网络处的操作以产生可与在提供商网络处的服务交互的代码。
图形组件可与实施可操作输入的代码相关联,所述可操作输入可产生在提供商网络的各种后端服务上实施的动作,例如文件存储、内容分配、数据库访问、云计算功能、工作流服务、服务器机群管理和扩展,以及可扩展服务器侧事件。所实施的动作可在不必直接地构建并管理软件栈、服务器机器映像以及安全性设置的情况下产生。例如,图形组件可同与允许数据的创建、读取、写入以及修改的存储服务交互的代码相关联,或可提供允许将结构应用到应用数据的数据库服务。
图7示出在已选择特定的内容(例如,应用程序)后的屏幕显示的另一示例。当内容已被加载时,项目组件710、720、730、740以及750可被呈现。每一图形组件指示对应的输入和包含一个或多个指定动作的方法,其中箭头指示与相关组件的对应的关系。通过使用所示出的可操作组件的图形描绘,开发者可通过指定对象和变量来产生应用程序的期望功能性,而不必使用特定于底层后端服务的语言和功能。如图7中所示出,多个箭头或连接器可用于指示涉及多个数据交互的组件之间的关系。例如,项目组件710示出为显示与项目组件730的两个输出交互。另外,项目组件720示出为显示与项目组件710和750的两个输出交互。图7中示出的示例示出可用于访问在提供商网络处的数据库服务的项目组件,其中消息字符串被检索并返回到终端用户装置以用于显示。项目组件中的每一个可表示具有用户定义的数目的输入和输出的逻辑元件。如果输入被定义,那么可在输入上接收值或事件。如果一个项目组件的输出连接到另一项目组件的输入,那么所述输出可激活另一项目组件的输入。
项目组件720可表示将“today”的参数设定为项目组件710的输入的功能的开始。项目组件710将另外设定对象“string1”和“string 2”的设定参数输出到项目组件730。项目组件740从项目组件730接收输出以产生对具有所识别的表名的提供商网络的数据库服务的访问。项目组件740还设定键值以用于对将被项目组件740返回到项目组件750以用于显示的消息的值进行存取,所述消息包含成功的数据库访问的指示和“message of theday”对象的文本串。
图8示出在已选择特定的内容(例如,应用程序)后的屏幕显示的另一示例。当内容已被加载时,项目组件806、810、820、830、840、860、860以及870被呈现。每一图形组件指示对应的输入和包含一个或多个指定动作的方法,其中箭头指示与相关组件的对应的关系。如图所示,多个箭头可用于指示涉及多个数据交互的组件之间的关系。此外,项目组件可用多个操作填充。另外,如通过项目组件860示出,项目组件可连接到多个输入操作或输出操作并与多个输入操作或输出操作交互。图8的示例包含调用服务器侧逻辑以将激励或奖励发送到游戏应用程序的用户的功能性。项目组件810可表示基于输入键的接收的功能的开始,所述输入键在按下的键被释放时输出到项目组件830。项目组件830调用功能“BackendInvoke”以调用在提供商网络处的服务器功能,所述服务器功能调用功能“DailyGift”。项目组件810还将释放键状态发送到“DisplayMessage”项目组件820以显示”Choose Entry”显示功能。项目组件830将“DailyGift”功能的输出发送到描绘为项目组件850和860的“DisplayMessage”功能。项目组件850从项目组件830接收错误输出消息,所述错误输出消息显示在Y位置100处。否则,项目组件860接收在Y位置0处显示的输入“ResponseBody”。所描绘的项目组件可与对以下代码实施所描述的功能性的代码相关联:在本地在终端用户装置上运行的代码,或访问或调用在提供商网络的各种后端服务上实施的动作的代码,所述动作例如文件存储、内容分配、数据库访问以及可扩展服务器侧事件。
图9示出用于在虚拟化计算环境中开发软件应用程序的操作程序的示例。在一个实施方案中,操作程序可在由多用户计算和网络服务平台托管的虚拟化计算环境中实施。参考图9,操作程序可包含操作902、904、906、908以及910。操作900开始操作过程。操作900可跟随有操作902。操作902示出呈现描绘用于开发软件功能的交互式环境的图形用户界面。软件功能可操作以调用虚拟化计算环境。在一些实施方案中,图形用户界面可操作以至少用图形描绘输入、输出以及操作,和/或输入、输出以及操作的表示的描绘。例如,图形用户界面可包含可视化编辑界面控制,所述可视化编辑界面控制可操作以促进输入、输出以及操作的构造。
操作902可跟随有操作904。操作904示出经由图形用户界面接收指示输入、输出以及操作的数据。如果当前显示将例如基于开发者的输入的变化而更新,那么操作904可跟随有操作906。操作906示出至少部分基于数据来呈现输入、输出以及操作的图形描绘。
如果开发者输入另外的改变且需要对当前指令的更新,那么操作906可跟随有操作908。操作908示出响应于接收到数据,使所述数据与可操作以调用在虚拟化计算环境中执行的计算服务的相关指令相关联。在一些示例中,操作908可包含将数据翻译成可操作以在于虚拟化计算环境中执行的计算服务上执行的相关指令。相关联指令可包括软件开发项目的编程逻辑。指令可包括可操作以与虚拟化计算环境的服务交互的代码或脚本。指令可被预定义且在一些实施方案中可实施为数据对象。可使预定义数据对象可存取为模板,所述模板可用于开始或填充软件开发项目。
在一些实施方案中,指令可操作以调用创建、读取、写入并修改在虚拟化计算环境的虚拟化数据存储服务中的数据文件存储的功能。虚拟化数据存储服务可允许通过用户装置产生的信息被上传并存储在虚拟化数据存储服务中。虚拟化数据存储服务还可允许与在应用程序的背景内的其他用户共享用户产生的内容。
在一些实施方案中,指令可操作以调用功能,所述功能被配置以将数据从虚拟化数据存储服务传送到所选服务器或虚拟化计算环境的计算实例。例如,用户产生的内容可被存储在物理上定位成距预期用户位置更近的所选服务器中,允许用户产生的内容的传递的较低时延
在一些实施方案中,指令可操作以与虚拟化计算环境的数据库交互以用于存储应用数据集。例如,应用数据集可被创建并维持以用于应用程序终端用户的应用数据的持续状态。
在一些实施方案中,指令可操作以基于所选事件来调用虚拟化计算环境的功能。例如,服务器侧服务可基于在存储和/或数据库服务中检测到的变化而提供用于计算和将对数据施加的其他操作。在一些实施方案中,服务器侧脚本和逻辑可基于新数据被写入到数据存储装置或基于监视到指定的数据流而被触发。所选事件包含以下各项中的一个或多个:文件上传、应用程序活动、输入装置动作或来自装置的输出。
在一些实施方案中,指令可操作以调用与消息传送服务交互的功能。例如,电子或SMS消息可自动地发送到所识别的用户或发送到大量接收方。消息还可被发送到虚拟化计算环境的其他服务。
在一些实施方案中,指令可操作以调用与身份管理和数据同步服务交互的功能,所述服务可被配置以控制终端用户对提供商网络服务和资源的访问,且被配置以同步在其中将存储数据的多个装置和资源上的数据。指令还可操作以调用建立安全性和验证以允许或拒绝终端用户访问提供商网络服务和资源的功能。
操作908可跟随有操作910。操作910示出产生相关指令以实现由用图形描绘的输入、输出以及操作表示的功能性并调用计算服务。所产生的指令可例如通过终端用户系统执行。包含以下各项的所描述的操作中的至少一些可在开发者计算装置上执行或可在虚拟化计算环境上执行:呈现图形用户界面,接收指示输入、输出以及操作的数据,呈现图形描绘,使数据与相关指令相关联,产生并执行相关指令。
在一些实施方案中,可提供应用程序编程接口(API)以促进指示输入、输出以及操作的数据的用户输入。例如,API可用例如内容或项目识别符以及指示输入、输出以及操作的数据等信息调用。在API被调用后,例如可视化开发环境180等服务可采取动作,例如:
●解析指示输入、输出以及操作的数据,
●访问包括经翻译代码的预定数据对象的数据库,
●执行经解析的数据到预定数据对象的映射,
●调用翻译功能。
可视化开发环境180可通过API报告映射或翻译的结果,连同关于所得代码的其他细节。
另外,可鉴于以下条款对本公开的实施方案进行描述:
1.一种用于开发与由多租户计算服务平台托管的虚拟化计算环境交互的软件应用程序的计算机实施的方法,所述方法包括:
呈现描绘交互式环境的图形用户界面,所述交互式环境用于开发可操作以调用在所述虚拟化计算环境中执行的计算服务的指令,其中所述图形用户界面可操作以至少用图形描绘与在所述虚拟化计算环境中执行的所述计算服务相关联的输入、输出以及操作的表示;
经由所述图形用户界面接收指示所述输入、输出以及操作的数据;
至少部分基于所述数据,呈现所述输入、输出以及操作的所述表示的图形描绘;
使所述数据与可操作以调用在所述虚拟化计算环境中执行的计算服务的指令相关联;以及
产生与所述表示相关联的所述指令,所述指令在被执行时实现通过所述表示来表示的功能性并调用在所述虚拟化计算环境中执行的所述计算服务。
2.根据条款1所述的方法,其中所述图形用户界面包含可视化编辑界面控制,所述可视化编辑界面控制可操作以促进所述输入、输出以及操作的所述表示的构造。
3.根据条款1所述的方法,其中所述指令被包含在软件应用程序的编程逻辑中。
4.根据条款1所述的方法,其中所述呈现所述图形用户界面、接收、呈现所述图形描绘以及关联在开发者计算装置或所述虚拟化计算环境上执行。
5.根据条款3所述的方法,其中所述软件应用程序为视频游戏。
6.一种系统,所述系统被配置以开发并部署与由多租户计算服务平台托管的虚拟化计算环境交互的应用程序,所述系统包括至少一个存储器,所述存储器具有存储在其中的计算机指令,所述计算机指令在由所述系统的一个或多个处理器执行时,至少使得所述系统:
描绘用于开发功能的交互式环境,所述功能可操作以调用所述虚拟化计算环境;以及
用图形描绘所述功能的至少一个操作的表示;以及
访问与通过虚拟化计算环境提供且可用于实施所述功能的服务相关联的多个数据对象;以及
使用所述多个预定义的数据对象,产生可操作以实施所述功能并调用所述虚拟化计算环境的服务的代码。
7.根据条款6所述的系统,其中所述图形用户界面包含可视化编辑界面控制。
8.根据条款6所述的系统,其中所述代码存在于用户会话之间。
9.根据条款6所述的系统,其中所述数据对象包含模板。
10.根据条款6所述的系统,其中所述代码可操作以调用创建、读取、写入并修改虚拟化数据存储服务中的数据文件存储的功能。
11.根据条款6所述的系统,其中所述代码可操作以调用接收用户数据、存储所述用户数据、处理对所述用户数据的操作,并将改变后的状态发送到用户装置的功能。
12.根据条款10所述的系统,其中所述代码可操作以调用将数据从所述虚拟化数据存储服务传递到服务器的功能。
13.根据条款6所述的系统,其中所述代码可操作以与所述虚拟化计算环境的数据库交互以用于存储应用数据。
14.根据条款6所述的系统,其中所述代码可操作以基于所选事件来调用所述虚拟化计算环境的功能。
15.根据条款14所述的系统,其中所述所选事件包含以下各项中的一个或多个:文件上传、应用程序活动、输入装置动作或来自装置的输出。
16.根据条款6所述的系统,其中所述代码可操作以调用与消息传送服务交互的功能。
17.根据条款6所述的系统,其中所述代码可操作以调用与身份管理服务交互的功能。
18.一种具有存储在其上的计算机可读指令的非暂时性计算机可读存储介质,所述指令在一个或多个计算装置上执行时,至少使得所述一个或多个计算装置:
呈现图形用户界面,所述图形用户界面可操作以至少部分基于用户输入数据来用图形描绘输入、输出以及操作的表示;
至少部分基于所述用户输入数据,呈现所述输入、输出以及操作的所述表示的图形描绘;
使所述所呈现的图形描绘与可执行代码相关联,所述可执行代码可操作以执行实施所述输入、输出以及操作的功能性并调用所述虚拟化多租户计算环境中的服务;以及
产生所述可执行代码,其中执行所述可执行代码导致实施由所述图形描绘表示的所述输入、输出以及操作的所述功能性并调用所述服务。
19.根据条款18所述的计算机可读存储介质,所述计算机可读存储介质还包括在一个或多个计算装置上执行时至少使得所述一个或多个计算装置实施应用程序编程接口的计算机可读指令,所述应用程序编程接口被配置以:
接收第一电子消息,所述第一电子消息对指示所述用户输入数据的识别符进行编码;以及
响应于接收到所述第一电子消息中的一个,发送指示所述可执行代码的第二电子消息。
20.根据条款18所述的计算机可读存储介质,其中所述可执行代码可操作以控制在所述虚拟化多租户计算环境上托管的计算服务。
图10为描绘分布式计算环境的示例的图,可在所述分布式计算环境上实践本发明的方面。各种用户1000a可与各种客户端应用程序交互,从而对任何类型的计算装置1002a进行操作,以经由通信网络1004与在数据中心1020内的各种计算节点1010a、1010b以及1010c上执行的过程通信。替代地,客户端应用程序1002b可在无用户干预的情况下通信。通信网络1004可包括通信技术的任何组合,包含因特网、有线和无线局域网、光纤网络、卫星通信等。可采用任何数目的联网协议。
与在数据中心1020内操作的计算节点1010a、1010b以及1010c上执行的过程的通信可经由网关1006和路由器1008提供。也可采用众多其他网络配置。尽管在图10中未明确地描绘,但可提供各种验证机制、网络服务层、业务对象、或其他中间层以调解与在计算节点1010a、1010b和1010c上执行的过程的通信。这些中间层中的一些自身可包括在计算节点中的一个或多个上执行的过程。计算节点1010a、1010b和1010c以及在其上执行的过程还可经由路由器1008与彼此通信。替代地,可采用单独的通信路径。在一些实施方案中,数据中心1020可被配置以与另外的数据中心通信,使得计算节点和在其上执行的过程可与在其他数据中心内操作的计算节点和过程通信。
计算节点1010a被描绘成驻留在物理硬件上,所述物理硬件包括一个或多个处理器1016、一个或多个存储器1018,以及一个或多个存储装置1014。计算节点1010a上的过程可结合操作系统执行,或替代地可执行为与例如处理器1016、存储器1018、或存储装置1014等物理资源直接交互的裸机过程。
计算节点1010b和1010c被描绘为在虚拟机主机1012上操作,所述虚拟机主机可提供对例如物理处理器、存储器以及存储装置等各种物理资源的共享访问。可采用任何数目的虚拟化机制来托管计算节点。
图10中描绘的各种计算节点可被配置以托管网络服务、数据库管理系统、业务对象、监视和诊断设施等。计算节点可指代各种类型的计算资源,例如个人计算机、服务器、集群计算装置等。计算节点可例如指代各种计算装置,例如蜂窝电话、智能电话、平板计算机、嵌入式装置等等。当以硬件形式实施时,计算节点通常与被配置以存储计算机可读指令的一个或多个存储器、以及被配置以读取和执行指令的一个或多个处理器相关联。基于硬件的计算节点还可包括一个或多个存储装置、网络接口、通信总线、用户接口装置等。计算节点还包含虚拟化计算资源,例如用或不用管理程序实施的虚拟机、虚拟化裸机环境等等。基于虚拟化的计算节点可具有对硬件资源的虚拟化访问以及非虚拟化访问。计算节点可被配置以执行操作系统以及一个或多个应用程序。在一些实施方案中,计算节点还可包括裸机应用程序。
在至少一些实施方案中,实施本文中描述的技术中的一种或多种中的一部分或全部的服务器可包含计算机系统,所述计算机系统包含或被配置以访问一个或多个计算机可访问介质。图11描绘包含或被配置以访问一个或多个计算机可访问介质的计算机系统。在所示出的实施方案中,计算装置1100包含一个或多个处理器1110a、1110b和/或1110n(所述处理器在本文中可以单数形式称为一个处理器1110或以复数形式称为多个处理器1110),所述处理器经由输入/输出(“I/O”)接口1130耦合到系统存储器1120。计算装置1100另外包含耦合到I/O接口1130的网络接口1140。
在各种实施方案中,计算装置1100可为包含一个处理器1110的单处理器系统,或包含若干处理器1110(例如,两个、四个、八个或另一合适的数目)的多处理器系统。处理器1110可为能够执行指令的任何合适的处理器。例如,在各种实施方案中,处理器1110可为实施多种指令集架构(“ISA”)中的任何指令集架构的通用或嵌入式处理器,所述指令集架构例如x811、PowerPC、SPARC或MIPS ISA或任何其他合适的ISA。在多处理器系统中,处理器1110中的每一个通常可但未必实施相同的ISA。
在一些实施方案中,图形处理单元(“GPU”)1112可参与提供图形呈现和/或物理处理能力。GPU可例如包括专用于图形计算的高度并行处理器架构。在一些实施方案中,处理器1110和GPU 1112可实施为相同类型的装置中的一个或多个。
系统存储器1120可被配置以存储可由处理器1110访问的指令和数据。在各种实施方案中,系统存储器1120可使用任何合适存储器技术来实施,所述存储器技术例如静态随机存取存储器(“SRAM”)、同步动态RAM(“SDRAM”)、非易失性/型存储器或任何其他类型的存储器。在所示出的实施方案中,实现一个或多个期望功能的程序指令和数据(如上文所述的那些方法、技术以及数据)被示出作为代码1126和数据1129存储在系统存储器1120内。
在一个实施方案中,I/O接口1130可被配置以协调在处理器1110、系统存储器1120以及装置中的任何外设之间的I/O流量,所述外设包含网络接口1140或其他外围接口。在一些实施方案中,I/O接口1130可执行任何必需的协议、定时或其他数据变换以将来自一个组件(例如,系统存储器1120)的数据信号转换成适合于由另一组件(例如,处理器1110)使用的格式。在一些实施方案中,I/O接口1130可包含对通过各种类型的外围总线附接的装置的支持,所述外围总线例如外围组件互连(“PCI”)总线标准或通用串行总线(“USB”)标准的变化型式等。在一些实施方案中,I/O接口1130的功能可分成两个或多于两个单独的组件,例如北桥和南桥等。并且,在一些实施方案中,I/O接口1130的功能中的一些或全部,例如到系统存储器1120的接口,可直接并入到处理器1110中。
网络接口1140可被配置以允许数据在计算装置1100与附接至网络1160的其他装置1160(例如其他计算机系统或装置等)之间进行交换。在各种实施方案中,网络接口1140可支持经由任何合适的有线或无线通用数据网络(例如各种以太网)进行通信。另外,网络接口1140可支持经由电信/电话网络(例如模拟语音网络或数字光纤通信网络)、经由存储区域网络(例如光纤通道SAN(存储区域网络))或经由任何其他合适类型的网络和/或协议进行通信。
在一些实施方案中,系统存储器1120可为计算机可访问介质的一个实施方案,所述计算机可访问介质被配置以存储如上文所描述的用于实施对应方法和设备的实施方案的程序指令和数据。然而,在其他实施方案中,可在不同类型的计算机可访问介质上接收、发送或存储程序指令和/或数据。一般来说,计算机可访问介质可包含非暂时性存储介质或存储器介质,例如磁性或光学介质,例如经由I/O接口1130耦接至计算装置1100的磁盘或DVD/CD。非暂时性计算机可访问存储介质还可包含可作为系统存储器1120或另一类型的存储器而被包含在计算装置1100的一些实施方案中的任何易失性或非易失性介质,例如,RAM(例如,SDRAM、DDR SDRAM、RDRAM、SRAM等)、ROM等。另外,计算机可访问介质可包含经由通信介质传送的传输介质或信号,例如电信号、电磁信号或数字信号,所述通信介质例如网络和/或无线链路,例如可经由网络接口1140实施的那些网络和/或无线链路。多个计算装置(例如图11中示出的那些装置)中的部分或全部可用于在各种实施方案中实施所描述的功能性;例如,在多种不同的装置和服务器上运行的软件组件可协作以提供所述功能性。在一些实施方案中,所描述的功能性的部分可使用存储装置、网络装置或计算机系统来实施。如本文中所使用,术语“计算装置”是指至少所有这些类型的装置且不限于这些类型的装置。
还可被称为计算节点的运算节点可在各种各样的计算环境上实施,所述计算环境例如平板计算机、个人计算机、智能电话、游戏控制台、商品硬件计算机、虚拟机、网络服务、计算集群以及计算设备。这些计算装置或环境中的任何计算装置或环境可为方便起见描述为运算节点或描述为计算节点。
由例如公司或公共部门组织的实体建立以将可经由因特网和/或其他网络访问的一种或多种网络服务(例如各种类型的基于云的计算或存储)提供至一组分布式客户端的网络可被称为提供商网络。此提供商网络可包含托管实施和分布由提供商网络提供的基础设施和网络服务所需的各种资源池的众多数据中心,所述资源池例如物理和/或虚拟化计算机服务器、存储装置、联网设备及类似者的集合。在一些实施方案中,资源可被提供到在与网络服务相关的各种单元中的客户端,所述资源例如用于存储的存储容量的量、用于处理的处理能力,例如相关服务的集合及类似者。虚拟计算实例可例如包括具有指定计算量(所述计算量可通过指示CPU类型和数量、主存储器大小等等指定)和指定软件栈(例如,特定版本的操作系统,所述操作系统可继而在管理程序上方运行)的一个或多个服务器。
多个不同类型的计算装置可单独地或组合地用于实施在不同的实施方案中的提供商网络的资源,所述资源包含计算机服务器、存储装置、网络装置及类似者。在一些实施方案中,例如可通过给予用户管理员登录名和密码来向客户端或用户提供对资源实例的直接访问。在其他实施方案中,提供商网络操作人员可允许客户端指定针对指定的客户端应用程序的执行要求并且代表客户端安排在适合于应用程序的执行平台(例如应用程序服务器实例、JavaTM虚拟机(“JVM”)、通用或专用操作系统、支持各种经解译的或编译的编程语言(例如Ruby、Perl、Python、C、C++及类似者)的平台或高性能计算平台)上执行应用程序,而不需要例如客户端直接访问实例或执行平台。给定的执行平台在一些实施方案中可利用一个或多个资源实例;在其他实施方案中,多个执行平台可被映射到单个资源实例。
在许多环境中,实施不同类型的虚拟化计算、存储和/或其他网络可访问功能性的提供商网络的操作人员可允许客户在各种资源获取模式下预订或购买对资源的访问。计算资源提供商可为客户提供设施以选择并启动期望的计算资源、将应用程序组件部署到计算资源并维护在环境中执行的应用程序。另外,当对应用程序的需求或应用程序的容量需要改变时,计算资源提供商可为客户提供另外的设施以手动地或通过自动扩展快速且容易地放大或缩小分配到应用程序的资源的数目和类型。可以离散的单元的形式来获得由计算资源提供商提供的计算资源,所述单元可被称为实例。实例可表示物理服务器硬件平台、在服务器上执行的虚拟机实例或这两者的某种组合。可获得各种类型和配置的实例,包含执行不同操作系统(OS)和/或管理程序且具有各种安装的软件应用程序的不同大小的资源、运行时间及类似者。实例可另外用于特定的可用性区中,所述可用性区表示例如逻辑区域、容错区域、数据中心或底层计算硬件的其他地理位置。实例可在可用性区内或横跨可用性区复制以改进实例的冗余,且实例可在特定可用性区内或横跨可用性区迁移。作为一个示例,与可用性区中的特定服务器的客户端通信的时延可小于与不同服务器的客户端通信的时延。由此,实例可从较高时延服务器迁移到较低时延服务器以改进整体客户端体验。
在一些实施方案中,提供商网络可被组织成多个地理区域,且每个区域可包含一个或多个可用性区。可用性区(所述可用性区也可被称为可用性容器)继而可包括一个或多个不同的位置或数据中心,所述位置或数据中心以此方式配置使得:给定的可用性区中的资源可与其他可用性区中的故障隔离或绝缘。也就是说,预期一个可用性区中的故障不引起任何其他可用性区中的故障。因此,资源实例的可用性配置文件意图独立于不同可用性区中的资源实例的可用性配置文件。客户端可能能够通过在相应的可用性区中启动多个应用程序实例来保护所述客户端的应用程序免受在单个位置处的故障影响。同时,在一些实施方案中,可在驻留在同一地理区域内的资源实例之间提供廉价且低时延的网络连通性(且在同一可用性区的资源之间的网络传输可快得多)。
在以上章节中所描述的过程、方法以及算法中的每一个均可实施于通过一个或多个计算机或计算机处理器执行的代码模块中,或完全或部分通过所述代码模块自动化。代码模块可存储在任何类型的非暂时性计算机可读介质或计算机存储装置上,所述计算机可读介质或计算机存储装置例如硬盘驱动器、固态存储器、光盘和/或类似者。过程和算法可部分地或完全地在专用电路中实施。所公开的过程和过程步骤的结果可永久地或以其他方式存储在任何类型的非暂时性计算机存储装置中,所述非暂时性计算机存储装置例如易失性或非易失性存储装置等。
上文所描述的各种特征和过程可彼此独立地使用或可以各种方式进行组合。所有可能的组合和子组合意图落入本公开的范围内。另外,某些方法和过程块在一些实施方案中可被省略。本文中描述的方法和过程也不限于任何特定的顺序,且与之相关的方块或状态可按其他适合的顺序执行。例如,所述的方块或状态可按不同于已明确公开的次序的次序执行,或多个方块或状态可组合在单个块或状态中。示例方块或状态可串行地、并行地或以其他方式执行。方块或状态可被添加至所公开的示例实施方案或可从所述示例实施方案移除。
还应了解,各种项被示出为在使用时存储在存储器中或者存储装置上,且为了存储器管理和数据完整性的目的,可在存储器与其他存储装置之间传递这些项或其部分。替代地,在其他实施方案中,软件模块和/或系统中的一些或全部可在另一装置上的存储器中执行,且经由计算机间的通信来与所示出的计算系统通信。此外,在一些实施方案中,系统和/或模块中的一些或全部可以其他方式来实施或提供,例如至少部分地用固件和/或硬件实施或提供,包含但不限于一个或多个专用集成电路(“ASIC”)、标准集成电路、控制器(例如,通过执行适当的指令,并包含微控制器和/或嵌入式控制器)、现场可编程门阵列(“FPGA”)、复合可编程逻辑装置(“CPLD”)等。模块、系统以及数据结构中的一些或全部也可存储(例如,作为软件指令或结构化数据)在计算机可读介质上,例如硬盘、存储器、网络或通过适当的装置或经由适当的连接读取的便携式介质物件。所述系统、模块以及数据结构还可作为所生成的数据信号(例如,作为载波或其他模拟或数字传播信号的一部分)在多种计算机可读传输介质(包含基于无线的介质和基于有线/电缆的介质)上传输,且可采取多种形式(例如,作为单一模拟信号或多路复用的模拟信号的一部分,或作为多个离散的数字包或帧)。在其他实施方案中,此计算机程序产品还可采用其他形式。因此,本发明可用其他计算机系统配置实践。
除非另外专门说明,或在所使用的上下文内另外加以理解,否则本文中所使用的条件语言,例如“能够”、“可”、“可能”、“可以”、“例如”等等通常意图表达:某些实施方案包含某些特征、要素和/或步骤,而其他实施方案不包含这些特征、要素和/或步骤。因此,此条件语言通常并非意图暗示特征、要素和/或步骤无论如何都是一个或多个实施方案所必需的,或并非暗示一个或多个实施方案必须包含用于在借助或不借助作者输入或提示的情况下决定是否包含这些特征、要素和/或步骤或是否在任意特定实施方案中执行这些特征、要素和/或步骤的逻辑。术语“包括”、“包含”、“具有”及类似者是同义的,且以开放的方式包含性地使用,而且不排除另外要素、特征、动作、操作等等。另外,术语“或者”以其包含性意义(且不以其排它性意义)使用,使得当例如用于连接一列要素时,术语“或者”意味着所述列表中要素中的一个、一些或全部。
虽然已描述某些示例实施方案,但这些实施方案仅通过示例呈现,且并非意图限制本文所公开的发明的范围。因此,在前述描述中没有内容意图暗示任意特定特征、特性、步骤、模块或方块是必须的或不可缺少的。实际上,本文中描述的新颖方法和系统可以多种其他形式实施;此外,在不脱离本文所公开的发明的精神的情况下,可对本文中描述的方法和系统做出各种省略、替代和形式变化。所附权利要求书和其等效物意图涵盖将落在本文中所公开的某些发明的范围和精神内的此类形式或修改。
Claims (15)
1.一种用于开发与由多租户计算服务平台托管的虚拟化计算环境交互的软件应用程序的计算机实施的方法,所述方法包括:
呈现描绘交互式环境的图形用户界面,所述交互式环境用于开发可操作以调用在所述虚拟化计算环境中执行的计算服务的指令,其中所述图形用户界面可操作以至少用图形描绘与在所述虚拟化计算环境中执行的所述计算服务相关联的输入、输出以及操作的表示;
经由所述图形用户界面接收指示所述输入、输出以及操作的数据;
至少部分基于所述数据,呈现所述输入、输出以及操作的所述表示的图形描绘;
使所述数据与可操作以调用在所述虚拟化计算环境中执行的计算服务的指令相关联;以及
产生与所述表示相关联的所述指令,所述指令在被执行时实现通过所述表示来表示的功能性并调用在所述虚拟化计算环境中执行的所述计算服务。
2.如权利要求1所述的方法,其中所述图形用户界面包含可视化编辑界面控制,所述可视化编辑界面控制可操作以促进所述输入、输出以及操作的所述表示的构造。
3.如权利要求1所述的方法,其中所述指令被包含在软件应用程序的编程逻辑中。
4.如权利要求1所述的方法,其中所述呈现所述图形用户界面,接收、呈现所述图形描绘以及关联在开发者计算装置或所述虚拟化计算环境上执行。
5.一种被配置以开发并部署与由多租户计算服务平台托管的虚拟化计算环境交互的应用程序的系统,所述系统包括至少一个存储器,所述存储器具有存储在其中的计算机指令,所述计算机指令在由所述系统的一个或多个处理器执行时,至少使得所述系统:
描绘用于开发功能的交互式环境,所述功能可操作以调用所述虚拟化计算环境;以及
用图形描绘所述功能的至少一个操作的表示;以及
访问与通过虚拟化计算环境提供且可用于实施所述功能的服务相关联的多个数据对象;以及
使用所述多个预定义的数据对象,产生可操作以实施所述功能并调用所述虚拟化计算环境的服务的代码。
6.如权利要求5所述的系统,其中所述图形用户界面包含可视化编辑界面控制。
7.如权利要求5所述的系统,其中所述代码可操作以调用创建、读取、写入并修改虚拟化数据存储服务中的数据文件存储的功能。
8.如权利要求5所述的系统,其中所述代码可操作以调用接收用户数据、存储所述用户数据、处理对所述用户数据的操作,并将改变后的状态发送到用户装置的功能。
9.如权利要求8所述的系统,其中所述代码可操作以调用将数据从所述虚拟化数据存储服务传递到服务器的功能。
10.如权利要求5所述的系统,其中所述代码可操作以与所述虚拟化计算环境的数据库交互以用于存储应用数据。
11.如权利要求5所述的系统,其中所述代码可操作以基于所选事件来调用所述虚拟化计算环境的功能。
12.如权利要求11所述的系统,其中所述所选事件包含以下各项中的一个或多个:文件上传、应用程序活动、输入装置动作或来自装置的输出。
13.一种具有存储在其上的计算机可读指令的非暂时性计算机可读存储介质,所述指令在一个或多个计算装置上执行时,至少使得所述一个或多个计算装置:
呈现图形用户界面,所述图形用户界面可操作以至少部分基于用户输入数据来用图形描绘输入、输出以及操作的表示;
至少部分基于所述用户输入数据,呈现所述输入、输出以及操作的所述表示的图形描绘;
使所述所呈现的图形描绘与可执行代码相关联,所述可执行代码可操作以执行实施所述输入、输出以及操作的功能性并调用所述虚拟化多租户计算环境中的服务;以及
产生所述可执行代码,其中执行所述可执行代码导致实施由所述图形描绘表示的所述输入、输出以及操作的所述功能性并调用所述服务。
14.如权利要求13所述的计算机可读存储介质,所述计算机可读存储介质还包括在一个或多个计算装置上执行时至少使得所述一个或多个计算装置实施应用程序编程接口的计算机可读指令,所述应用程序编程接口被配置以:
接收第一电子消息,所述第一电子消息对指示所述用户输入数据的识别符进行编码;以及
响应于接收到所述第一电子消息中的一个,发送指示所述可执行代码的第二电子消息。
15.如权利要求13所述的计算机可读存储介质,其中所述可执行代码可操作以控制在所述虚拟化多租户计算环境上托管的计算服务。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/859,177 US20170083292A1 (en) | 2015-09-18 | 2015-09-18 | Visual content development |
US14/859,177 | 2015-09-18 | ||
PCT/US2016/051993 WO2017048996A1 (en) | 2015-09-18 | 2016-09-15 | Visual content development |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108027720A true CN108027720A (zh) | 2018-05-11 |
Family
ID=57047314
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680053756.XA Pending CN108027720A (zh) | 2015-09-18 | 2016-09-15 | 可视化内容开发 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20170083292A1 (zh) |
EP (1) | EP3350692A1 (zh) |
JP (2) | JP2018533125A (zh) |
KR (1) | KR20180069819A (zh) |
CN (1) | CN108027720A (zh) |
CA (1) | CA2998617A1 (zh) |
WO (1) | WO2017048996A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111782202A (zh) * | 2020-06-30 | 2020-10-16 | 京东数字科技控股有限公司 | 一种应用数据的编辑方法和装置 |
CN116909627A (zh) * | 2023-09-13 | 2023-10-20 | 杭州笨马网络技术有限公司 | 一种可执行程序解析方法、装置、电子设备和存储介质 |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10192199B2 (en) | 2011-11-16 | 2019-01-29 | Microsoft Technology Licensing, Llc | Enabling service features within productivity applications |
US10019238B2 (en) | 2015-06-23 | 2018-07-10 | Open Text Sa Ulc | Compositional entity modeling systems and methods |
US10001974B1 (en) | 2015-12-03 | 2018-06-19 | State Farm Mutual Automobile Insurance Company | Technical building block |
US10331418B2 (en) * | 2015-12-08 | 2019-06-25 | Paypal, Inc. | State machine representation of a development environment deployment process |
US9858048B1 (en) | 2016-03-16 | 2018-01-02 | Amazon Technologies, Inc. | Deterministic execution for visually developed operations |
US10169004B2 (en) * | 2016-05-04 | 2019-01-01 | Open Text Sa Ulc | Application development and extensibility/customization using entity modeling systems and methods |
US10310718B2 (en) * | 2016-06-22 | 2019-06-04 | Microsoft Technology Licensing, Llc | Enabling interaction with an external service feature |
JP6759942B2 (ja) * | 2016-09-30 | 2020-09-23 | 横河電機株式会社 | アプリケーション開発環境提供システム、アプリケーション開発環境提供方法、アプリケーション開発環境提供プログラム、端末装置、アプリケーション表示方法、およびアプリケーション表示プログラム |
US10152356B2 (en) | 2016-12-07 | 2018-12-11 | Vmware, Inc. | Methods and apparatus for limiting data transferred over the network by interpreting part of the data as a metaproperty |
US11481239B2 (en) | 2016-12-07 | 2022-10-25 | Vmware, Inc. | Apparatus and methods to incorporate external system to approve deployment provisioning |
US10353752B2 (en) * | 2016-12-07 | 2019-07-16 | Vmware, Inc. | Methods and apparatus for event-based extensibility of system logic |
US10552180B2 (en) | 2016-12-07 | 2020-02-04 | Vmware, Inc. | Methods, systems, and apparatus to trigger a workflow in a cloud computing environment |
IL299258A (en) | 2017-06-08 | 2023-02-01 | Wix Com Ltd | A system and method for intelligent interactions between components on websites |
US11645046B2 (en) * | 2017-07-03 | 2023-05-09 | Unqork, Inc. | Systems and methods for development and deployment of software platforms having advanced workflow and event processing components |
US10223176B1 (en) * | 2017-10-13 | 2019-03-05 | Amazon Technologies, Inc. | Event handler nodes for visual scripting |
US10715459B2 (en) * | 2017-10-27 | 2020-07-14 | Salesforce.Com, Inc. | Orchestration in a multi-layer network |
US10678613B2 (en) * | 2017-10-31 | 2020-06-09 | Seven Bridges Genomics Inc. | System and method for dynamic control of workflow execution |
US10585698B2 (en) * | 2017-11-10 | 2020-03-10 | Salesforce.Com, Inc. | Template-driven multi-tenant workflow processing |
US11171950B1 (en) * | 2018-03-21 | 2021-11-09 | Pure Storage, Inc. | Secure cloud-based storage system management |
US11449813B2 (en) * | 2018-04-13 | 2022-09-20 | Accenture Global Solutions Limited | Generating project deliverables using objects of a data model |
EP3564812B1 (en) * | 2018-04-30 | 2022-10-26 | Mphasis Limited | Method and system for automated creation of graphical user interfaces |
US11090569B1 (en) | 2018-10-31 | 2021-08-17 | Snap Inc. | Game testing system |
JP7316060B2 (ja) * | 2019-02-26 | 2023-07-27 | 株式会社日立製作所 | アプリケーション画面表示プログラム実装方法 |
CN110308902B (zh) * | 2019-06-28 | 2023-10-03 | 百度在线网络技术(北京)有限公司 | 文件生成方法、装置、设备和存储介质 |
JP6727675B1 (ja) * | 2019-09-05 | 2020-07-22 | 株式会社コマースロボティクス | 情報処理システム、情報処理方法及び情報処理プログラム |
CN110865808B (zh) * | 2019-10-17 | 2023-02-28 | 福建天泉教育科技有限公司 | 一种学习组件管理方法及系统 |
US11397750B1 (en) * | 2019-11-27 | 2022-07-26 | Amazon Technologies, Inc. | Automated conflict resolution and synchronization of objects |
KR102598516B1 (ko) * | 2021-09-01 | 2023-11-06 | (주)포티파이 | 어플리케이션 개발을 위한 콘텐츠 편집 서비스 제공 방법 및 장치 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130339952A1 (en) * | 2010-03-17 | 2013-12-19 | Netapp, Inc. | Provisioning a pass-through disk in a virtualized computing environment |
CN103502904A (zh) * | 2011-01-03 | 2014-01-08 | 詹森·沙利文 | 在计算机系统中提供资源和交动性的系统和方法 |
US9134962B1 (en) * | 2013-03-15 | 2015-09-15 | Sanctum Solutions, Inc. | Interactive content development |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09330215A (ja) * | 1996-06-12 | 1997-12-22 | Hitachi Ltd | プログラム編集方法 |
US7120876B2 (en) * | 1999-08-19 | 2006-10-10 | National Instruments Corporation | System and method for programmatically generating a graphical program in response to user input |
JP4808558B2 (ja) * | 2006-07-12 | 2011-11-02 | 日本電信電話株式会社 | 連携シナリオ作成支援システム及びその方法並びにプログラム |
US20080189679A1 (en) * | 2007-02-05 | 2008-08-07 | Jared Rodriguez | Method and system for creating, deploying, and utilizing a service |
US9131370B2 (en) * | 2011-12-29 | 2015-09-08 | Mcafee, Inc. | Simplified mobile communication device |
JP2014110041A (ja) * | 2013-06-12 | 2014-06-12 | Dna:Kk | アプリケーション作成支援サーバー、プログラム、及び、ネットワークシステム |
-
2015
- 2015-09-18 US US14/859,177 patent/US20170083292A1/en not_active Abandoned
-
2016
- 2016-09-15 KR KR1020187010767A patent/KR20180069819A/ko not_active Application Discontinuation
- 2016-09-15 CA CA2998617A patent/CA2998617A1/en not_active Abandoned
- 2016-09-15 WO PCT/US2016/051993 patent/WO2017048996A1/en active Application Filing
- 2016-09-15 CN CN201680053756.XA patent/CN108027720A/zh active Pending
- 2016-09-15 EP EP16775395.3A patent/EP3350692A1/en not_active Withdrawn
- 2016-09-15 JP JP2018513458A patent/JP2018533125A/ja active Pending
-
2019
- 2019-07-04 JP JP2019124879A patent/JP2019215877A/ja active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130339952A1 (en) * | 2010-03-17 | 2013-12-19 | Netapp, Inc. | Provisioning a pass-through disk in a virtualized computing environment |
CN103502904A (zh) * | 2011-01-03 | 2014-01-08 | 詹森·沙利文 | 在计算机系统中提供资源和交动性的系统和方法 |
US9134962B1 (en) * | 2013-03-15 | 2015-09-15 | Sanctum Solutions, Inc. | Interactive content development |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111782202A (zh) * | 2020-06-30 | 2020-10-16 | 京东数字科技控股有限公司 | 一种应用数据的编辑方法和装置 |
CN116909627A (zh) * | 2023-09-13 | 2023-10-20 | 杭州笨马网络技术有限公司 | 一种可执行程序解析方法、装置、电子设备和存储介质 |
CN116909627B (zh) * | 2023-09-13 | 2023-12-12 | 杭州笨马网络技术有限公司 | 一种可执行程序解析方法、装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CA2998617A1 (en) | 2017-03-23 |
JP2019215877A (ja) | 2019-12-19 |
WO2017048996A1 (en) | 2017-03-23 |
US20170083292A1 (en) | 2017-03-23 |
EP3350692A1 (en) | 2018-07-25 |
JP2018533125A (ja) | 2018-11-08 |
KR20180069819A (ko) | 2018-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108027720A (zh) | 可视化内容开发 | |
US11003422B2 (en) | Methods and systems for visual programming using polymorphic, dynamic multi-dimensional structures | |
US8719776B2 (en) | System for creation and distribution of software applications usable on multiple mobile device platforms | |
CN104471574B (zh) | 在没有用户干预的情况下根据布局的图像标识和组织 | |
Burton | Android App development for dummies | |
CN102187314B (zh) | 生成适用于数据集的资源脚本的方法和系统 | |
CN109074537A (zh) | 模板的懒惰生成 | |
US20130272679A1 (en) | Video Generator System | |
CN104823158B (zh) | 用于简化的知识工程的方法与系统 | |
CN106095853A (zh) | 识别云内容 | |
CN107004182A (zh) | 来自实时共享的可行动的纪念物 | |
Burd | Android application development all-in-one for dummies | |
US10956131B2 (en) | Separation of user interface logic from user interface presentation by using a protocol | |
WO2018027068A1 (en) | Story-driven game creation and publication system | |
Mezzalira | Building Micro-Frontends | |
CN106663015A (zh) | 恢复会话状态 | |
Olson et al. | Professional Cross-Platform Mobile Development in C | |
Snell et al. | Microsoft Visual Studio 2012 Unleashed: Micro Visua Studi 2012 Unl_p2 | |
Jackson | Learn Android App Development | |
McClure et al. | Professional Android Programming with Mono for Android and. NET/C | |
Lee et al. | Beginning Windows Phone App Development | |
Bangera | DevOps for Serverless Applications: Design, deploy, and monitor your serverless applications using DevOps practices | |
CN113190509A (zh) | 动画处理方法、装置、电子设备及计算机可读存储介质 | |
Montane et al. | Learning Android Application Development | |
Weston | Learn Microsoft PowerApps: Build customized business applications without writing any code |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180511 |