具体实现方式
介绍:设计计划表示其中各部件互连以便实现期望结果的系统。设计计划可表示各种类型的拓扑、工作流和体系结构。示例性计划可表示云体系结构,其中部件可包括基础设施部件,例如服务器、存储器和网络;位于基础设施上的平台部件;依赖于平台来执行的应用部件;以及利用应用部件来产生期望功能的服务部件。在另一示例中,设计计划可表示服务、网络元件或其它部件的拓扑。对于工作流,每个部件可表示过程中的步骤。每个这样的部件可由广义计划元件(plan element)表示。计划元件是用于识别给定部件、规定部件的默认参数并识别那个部件的连接兼容性的电子数据。兼容性定义了在设计计划内可以或允许连接至所表示的部件的部件或部件类型。
可通过创建在本文被称为计划工件(plan artifact)的工件来定义设计计划。计划工件是表示设计计划的电子数据,其可被电子化处理以实例化该设计计划。工件例如可采取任何数量的电子形式,包括但不限于数据文件、文档、脚本和可执行模块。在例如设计计划表示服务拓扑的场合,计划工件可以是以与诸如TOSCA(面向云应用的拓扑和业务流程规范)的标准兼容的格式规定所定义的拓扑的电子数据。以云体系结构示例继续,计划工件可表示基础设施层、平台层、应用层、服务层或其任何组合。
下面描述的各种实施例被研发出来,用于定义设计计划。实施例允许用户与虚拟画布(virtual canvas)交互,来选择各种节点,每个节点表示广义计划元件。交互打开面向对象的界面菜单,允许用户选择期望节点以及节点在虚拟画布上的放置。与虚拟画布交互,用户能够修改所表示的计划元件的参数。
另外的交互链接节点对,其又定义对应的计划元件对之间的连接。可基于所表示的每个计划元件的连接兼容性和节点在虚拟画布上的相对定位来自动化关于哪些节点被链接的决定。彼此相邻的节点被自动链接,只要连接对应的计划元件不违反它们的连接兼容性。也可基于由用户定义的虚拟画布路径来定义或修改链接。例如,用户可扫过画布上穿过一组节点的路径。那组节点将被链接,只要连接对应的计划元件不违反连接兼容性。
每个节点之间的链接视觉地显示在虚拟画布上。每个链接表示对应的计划元件之间的连接。那个连接至少部分地由一个或多个默认参数定义。与给定链接交互的用户能够修改那些参数。使用所识别的节点、链接和各种参数,可保存计划工件。工件可被使用和重新使用以实例化所定义的设计计划。
下面的描述分成几部分。被标记为“例证性示例”的第一部分提出用于定义设计计划并创建对应的计划工件的所使用的用户界面的示例性屏幕视图。被标记为“部件”的第二部分描述用于实现各种实施例的各种物理部件和逻辑部件的示例。被标记为“操作”的第三部分描述为实现各个实施例所采取的步骤。
例证性示例:图1描绘用于创建设计计划工件的图形用户界面(GUI)10的屏幕视图。GUI 10包括虚拟画布12,其表示用于定位用户选择的、表示各个计划元件的节点的表面。在这个示例中,虚拟画布12被示为包括用于使那些节点对齐的网格14。在设计计划包括多个层的场合,利用控件18来选择当前层。利用控件20移至设计过程中的下一步骤。
移至图2,用户与虚拟画布12交互,使控件22被显示。在这个示例中,控件22是通过中心点24被多个节点按钮26包围而定义的针轮控件。每个节点按钮26表示一个可用节点或一组可用节点。用户与选择的节点按钮交互,以选择将被放置在虚拟画布12上的位于中心点24处的期望节点。在这个示例中,用户通过轻击屏幕来与虚拟画布交互,GUI显示在该屏幕上。在另一示例中,用户可使用输入设备例如鼠标来在虚拟画布上点击。响应于那个交互,控件22出现在与虚拟画布12交互的点处的中心点24。以这种方式,用户选择用于放置选择的节点的位置。
参考图3,用户通过与图2所示的对应节点按钮26交互来选择节点28。节点28定位成使得其有效地代替控件22的中心点24。在图4中,用户再次轻击显示GUI 10的屏幕,使控件22再次出现在虚拟画布12上的与轻击对应的位置处的中心点24。在这里,用户可再次与选择的的节点按钮26交互,以选择用于定义设计计划的第二节点。在图5中,那个节点是节点30。
在图6中,虚拟画布12被填充有根据用户与虚拟画布12的交互而定位的多个选择的节点32。如所提到的,多个选择的节点32中的每个节点表示对应的计划元件。在这个示例中,多个选择的节点32中的每个节点可由用户单独地选择,以允许用户修改对应的计划元件的一个或多个默认参数。在这里,用户选择给定节点,使控件34被显示,用户可通过控件34指定所表示的元件的参数。目前假设期望数量的节点已被选择,用户可选择控件20,其在这个示例中使在多个选择的节点36之间自动建立链接。
在图7中描绘所建立的链接36。给定节点对之间的每个链接36表示对应计划元件对之间的连接。在这个示例中,这些链接基于由多个选择的节点32表示的计划元件的连接兼容性和多个选择的节点32在虚拟画布12上的相对位置来自动产生。在这里,如位于网格14上的相邻节点被链接,只要相关的计划元件的连接兼容性不被违反。每个链接36包括标记38,用户可与该标记38交互。与给定标记38的交互使链接特性控件(link property control)40被显示,用户可通过该链接特性控件40指定对应连接的参数。
移至图8,图7自动选择的链接可能不反映用户所期望的链接。在图8中,用户在虚拟画布12上扫过路径42。虚拟画布路径42以期望的顺序穿过一组用户选择的多个节点。基于那个顺序和相关的计划元件的连接兼容性,在那组节点之间创建链接,如在图9中所描绘的。
参考图9,使用位于虚拟画布12上的期望节点和链接以及任何期望节点和链接参数组,用户可选择控件20来保存定义相关的计划元件和对应的连接的计划工件。在例如工件表示云体系结构的场合,工件可被使用和重新使用,以实例化使用由计划元件表示的部件和由在用户选择的节点32之间的各种链接表示的连接的那个云体系结构。
部件:图10和图11描绘用于实现各种实施例的物理和逻辑部件的示例。在图10中,各种部件被识别为引擎54-58。在描述引擎54-58时,焦点在每个引擎的指定功能上。然而,如在本文使用的,术语“引擎”指硬件和被配置为执行指定功能的程序的组合。如以后关于11所示的,每个引擎的硬件例如可包括处理器和存储器,而程序是存储在该存储器上并由处理器可执行来执行指定功能的代码。在另一示例中,硬件可以是用于存储代码的存储器。
图10描绘用于定义计划工件的系统48。系统48被示为与数据储存库50和实例化服务52通信。数据储存库50通常表示用于存储电子数据的任何存储器。实例化服务52通常表示被配置为处理计划工件以实例化对应的设计计划的硬件和程序的任何组合。
系统48包括界面引擎54、元件引擎56和计划引擎58。界面引擎54被配置为使虚拟画布以及用于从多个可用节点中进行选择的控件被显示。节点可以是特定用户可用的节点,如在储存库50中的数据所定义的。在图1-9的示例中,虚拟画布12和控件22是通过引擎54被显示的虚拟画布和控件的示例。响应于用户与控件的交互,界面引擎54负责根据用户与控件的交互,使用户选择的位于虚拟画布上的多个节点被显示。在图6-9中描绘的多个选择的节点32是示例。
界面引擎54可在检测到用户在特定位置处与虚拟画布交互时使控件被显示。例如,用户可在那个位置处触摸显示器,或如果使用鼠标则点击那个位置。在一个示例中,控件是多个节点按钮位于被触摸或点击的位置周围的针轮控件。那个位置可被称为控件的中心点。节点按钮用于从多个可用节点中选择。界面引擎54被配置为使多个节点中的选择的节点根据用户与多个节点按钮之一的交互而显示在中心点处。因此,在多次重复(其中用户与虚拟画布交互,使控件显示在那个画布上的各个位置处)之后,界面引擎54使用户在每个位置处与控件交互时所选择的多个节点被显示。
元件引擎56被配置为检查与多个节点相关的计划元件,以识别计划元件之间的连接兼容性。计划元件可存储在储存库50中或由存储在储存库50中的数据识别。例如,在储存库50中识别的每个可用节点也可识别其对应的计划元件。在一个示例中,每个计划元件定义其自己的连接兼容性,也就是说,其定义与其可连接的一个或多个计划元件或元件类型。将计划元件连接到未被识别的另一元件将违反给定元件的连接兼容性。
计划引擎58被配置为创建计划工件,其中该计划工件规定由多个节点表示的计划元件之间的连接。这些连接基于由元件引擎56识别的连接兼容性以及用户定义的虚拟画布路径和/或用户选择的位于虚拟画布上的多个节点的相对接近度来确定。虚拟画布路径是虚拟画布上的、以给定的顺序穿过两个或更多个所显示的节点的路径。界面引擎54可负责识别用户与虚拟画布的、定义虚拟画布路径的交互。例如,用户可扫过或点击穿过那些节点的路径。界面引擎54可接着将路径识别为节点的有序序列,使得计划元件之间的连接可至少部分地由那个序列定义。图8和图9示出一个示例。
界面引擎54可负责基于由计划引擎58确定的连接,来链接所显示的多个节点。链接在这个示例中可包括使每对节点之间的链接被显示,每对节点相关的计划元件已由计划引擎58连接。因此,链接那些节点可用来创建规定所表示的计划元件之间的对应连接的计划工件。
所显示的每个节点可以充当一控件,其中该控件在被选择时允许用户修改与那个节点所表示的计划元件相关的参数。此外,接合节点对的每个链接可用作一控件,其中该控件在被选择时允许用户修改用于定义对应的计划元件对之间的连接的参数。计划引擎58然后负责根据用户与节点和/或显示在虚拟画布上的链接的交互,来创建或修改计划工件。
使用被定位和识别出的节点和对应的计划元件以及所产生的链接和对应连接,设计计划被定义,且计划引擎58负责创建并保存表示所定义的设计计划的计划工件。计划引擎58可将工件保存在储存库50中。
实例化服务52可接着处理那个工件,以实例化所定义的设计计划。在所定义的设计计划是云体系结构的场合,实例化服务52可以是云控制器,或能够使用工件来实例化云体系结构的其它服务。因此,由所显示的节点表示的每个计划元件又可表示基础设施元件、平台元件、应用元件和服务元件中的至少一种。计划工件接着被配置为被处理,以自动实例化基础设施部件、平台部件、应用部件和服务部件中的至少一种。
在前述讨论中,引擎54-58被描述为硬件和程序的组合。可以用多种方式实现引擎54-58。参考图11,程序可以是存储在有形存储资源60上的处理器可执行指令,而硬件可包括用于执行那些指令的处理资源62。因此,存储资源60可被认为存储程序指令,程序指令当由处理资源62执行时实现图10的系统48。
存储资源60通常表示能够存储可由处理资源62执行的指令的任何数量的存储部件。存储资源60在其不包括临时信号但相反由被配置为存储相关指令的一个或多个存储部件构成的意义上是非临时的。存储资源60可在单个设备中实现或分布在设备当中。同样,处理资源62表示能够执行由存储资源60存储的指令的任何数量的处理器。处理资源62可集成在单个设备中或分布在设备当中。此外,存储资源60可完全或部分地与处理资源62集成在相同的设备中,或它可以是分开的,但可由那个设备和处理资源62访问。
在一个示例中,程序指令可以是安装包的部分,安装包当被安装时可由处理资源62执行以实现系统48。在这种情况下,存储资源60可以是便携式介质,例如CD、DVD或闪存驱动器或由服务器维持的存储器,安装包可从该服务器下载并安装。在另一示例中,程序指令可以是已经安装的一个或多个应用的部分。在这里,存储资源60可包括集成存储器,例如硬盘驱动器、固态驱动器等。
在图11中,存储在存储资源60中的可执行程序指令可被描绘为界面模块64、元件模块66和计划模块68。界面模块64表示当被执行时使处理资源62实现图10的界面引擎54的程序指令。元件模块66表示当被执行时使元件引擎56实现的程序指令。同样,计划模块68表示当被执行时使计划引擎58实现的程序指令。
操作:图12是为实现用于创建计划工件的方法所采取的步骤的流程图。在讨论图12时,可参考图1-9的屏幕视图和在图10及图11中描绘的部件。进行这样的参考,以提供上下文示例,而不是限制实现图12所描绘的方法的方式。
参考图12,使虚拟画布和用于从多个节点中进行选择的控件被显示(步骤70)。控件可以响应用户与虚拟画布的交互被显示。使用户选择的多个节点显示在虚拟画布上(步骤72)。用户选择的节点是通过用户与控件交互而选择的节点。用户选择的每个节点在虚拟画布上具有用户选择的位置。参考图10,界面引擎54可负责步骤70和72。虚拟画布、控件和用户选择的多个节点的示例在图1-9中被描绘为画布12、控件22以及节点32。“使”可包括直接与显示设备交互或传递用于指导显示设备显示虚拟画布、控件以及用户选择的多个节点的数据。
在步骤70中使控件被显示可包括对于用户选择的多个节点中的每个节点,使多个节点按钮位于对应的中心点周围的针轮界面控件被显示,其中,中心点在虚拟画布上的位置由用户选择。于是,在步骤72中使用户选择的多个节点被显示可包括对于每个对应的中心点使在那个中心点处的对应节点被显示。根据用户与位于那个中心点周围的节点按钮之一的交互来选择对应节点。
检查由用户选择的多个节点表示的计划元件,以识别那些计划元件之间的连接兼容性(步骤74)。如上面解释的,被显示的每个节点表示计划元件。每个计划元件定义其自己相对于其它计划元件的兼容性。参考图10,元件引擎56可负责实现步骤74。
生成连接数据(步骤76)。连接数据基于连接兼容性以及用户定义的虚拟画布路径和/或用户选择的如位于虚拟画布上的多个节点的相对接近度,来定义计划元件中的两个或更多个之间的连接。用户定义的虚拟画布路径例如可由用户与虚拟画布的交互定义。那个交互定义穿过所显示的节点中的两个或更多个的路径。连接数据可稍后用于生成计划工件。可替代地,连接数据可以是随着节点被添加到虚拟画布且连接被建立时过程中产生的这种工件的部分。参考图10,计划引擎58可负责实现步骤76。
根据连接数据,使用户选择的多个节点中的三个或更多个之间的两个或更多个链接显示在虚拟画布上(步骤78)。参考图10,界面引擎54可实现步骤80。这样链接的示例在图1-9中被描绘为链接36和44。
生成计划工件,其中由用户选择的三个或更多个节点表示的计划元件如被显示的链接所表示那样的被连接(步骤80)。参考图10,计划引擎58可实现步骤80。在例如设计计划是云体系结构的场合,由被显示的节点表示的每个计划元件又表示基础实施元件、平台元件、应用元件和服务元件中的至少一种。因此,步骤80可包括产生被配置为被处理以自动实例化基础设施部件、平台部件、应用部件和服务部件中的至少一种的计划工件。
在示例中,在步骤72中被显示的每个节点充当一控件,该控件被选择时允许用户修改与那个节点所表示的计划元件相关的参数。同样,在步骤78中被显示的每个链接充当一控件,该控件被选择时允许用户修改用于定义由对应的节点对表示的计划元件之间的连接的参数。步骤80可然后包括至少部分地根据用户与节点和/或链接的交互来产生计划工件。
结论:图1-9描绘用于定义设计计划的用户界面。那个用户界面仅仅是示例。图10-11帮助描绘各种实施例的体系结构、功能和操作。特别是,图10和图11描绘各种物理和逻辑部件。各种部件至少部分地被定义为程序或程序编制。每个这样的部件、其部分或其各种组合可全部或部分地表示包括一个或多个可执行指令以实现任何规定的逻辑功能的模块、段、代码部分。每个部件或其各种组合可表示电路或多个互连电路以实现规定的逻辑功能。
可在由处理资源使用或结合处理资源来使用的任何存储资源中实现实施例。“处理资源”是指令执行系统,例如基于计算机/处理器的系统或ASIC(专用集成电路)或可从计算机可读介质取出或得到指令和数据并执行其中包含的指令的其它系统。“存储资源”是可包含、存储或维持由指令执行系统使用或结合指令执行系统来使用的程序和数据的任何非临时性存储介质。术语“非临时性”只用于澄清如在本文使用的术语“介质”,并不包括信号。因此,存储资源可包括很多物理介质中的任一种,例如电子、磁性、光学、电磁或半导体介质。适当计算机可读介质的更具体的示例包括但不限于硬盘驱动器、固态驱动器、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器、闪存驱动器和便携式光盘。
虽然图12的流程图示出特定的执行顺序,但该执行顺序可不同于被描绘的执行顺序。例如,两个或多个块或箭头的执行顺序可相对于所示顺序被弄乱。此外,连续示出的两个或更多个块可同时地或部分同时地被执行。所有这样的变形在本发明的范围内。
参考前述示例性实施例示出和描述了本发明。然而应理解,可做出其它形式、细节和实施例而不偏离在下面的权利要求中限定的本发明的精神和范围。