分布式应用程序的设计平台的制作方法

文档序号:6443738阅读:167来源:国知局
专利名称:分布式应用程序的设计平台的制作方法
技术领域
本发明涉及计算机领域,更具体地,涉及分布式应用程序的设计平台。
背景技术
计算机已变得高度集成于工作、家庭、移动设备以及许多其他地方中。计算机可快速且有效地处理大量信息。被设计成在计算机系统上运行的软件应用允许用户执行包括商业应用、学校作业、娱乐等等在内的各种各样的功能。软件应用通常被设计成执行特定任务,诸如用于草拟文档的文字处理器应用或者用于发送、接收和组织电子邮件的电子邮件程序。
在一些情况下,软件应用程序被设计成在分布式系统上使用。例如,复合应用程序可包括复杂的相关组件集。这些组件具有与其他组件的关系,以及用于组件间通信的指定通信协议。部署和管理此类软件应用程序通常涉及实现许多不同的工具和开发环境。发明内容
本文描述的实施例涉及提供一种部署和管理复合应用程序的应用程序模型并提供模型驱动软件编码协助。在一个实施例中,计算机系统实例化配置成显示复合应用程序组件以及组件间的关系的应用程序设计界面。每个组件包括指定如何与组件进行通信的信息。计算机系统访问包括应用程序的组件和组件关系的应用程序清单。计算机系统根据应用程序清单在实例化的可视应用程序设计界面内显示复合应用程序的组件和组件关系。
在另一实施例中,计算机系统访问包括软件组件和组件间的关系的应用程序清单。该清单是用户可编辑的。计算机系统接收指示多个不同组件的至少一个要被实现为复合应用程序的一部分的用户输入。计算机系统基于应用程序清单的组件和关系确定将被作为可选选项呈现给用户的潜在实现选项。计算机系统也在清单内显示确定的潜在实现以供用户选择。
提供本发明内容以便以简化的形式介绍将在以下具体实施方式
中进一步描述的一些概念。本发明内容并非旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
另外的特征和优点将在以下的描述中阐述,并且部分可从该描述中显而易见,或者可以从此处的教示实践中习得。本发明的各特征和优点可以通过在所附的权利要求书中特别指出的手段和组合来实现和获得。本发明的特征将从以下描述和所附权利要求书中变得完全显而易见,或者可通过如下所述对本发明的实践而获知。


为了进一步阐明本发明的各实施例的以上和其他优点和特征,将参考附图来呈现本发明的各实施例的更具体的描述。可以理解,这些附图只描绘本发明的典型实施例,因此将不被认为是对其范围的限制。本发明将通过使用附图用附加特征和细节来描述和解释,4附图中图1示出其中本发明的实施例可操作的计算机体系结构,包括提供部署和管理复合应用程序的应用程序模型并提供模型驱动软件编码协助。图2示出用于提供部署和管理复合应用程序的应用程序模型的示例方法的流程图。图3示出用于提供模型驱动软件编码协助的示例方法的流程图。图4示出了本发明的一实施例,其中用户输入被应用于组件代码。
具体实施例方式本文描述的实施例涉及提供一种部署和管理复合应用程序的应用程序模型并提供模型驱动软件编码协助。在一个实施例中,计算机系统实例化配置成显示复合应用程序组件以及组件间的关系的应用程序设计界面。每个组件包括指定如何与组件进行通信的信息。计算机系统访问包括应用程序的组件和组件关系的应用程序清单。计算机系统根据应用程序清单在实例化的可视应用程序设计界面内显示复合应用程序的组件和组件关系。在另一实施例中,计算机系统访问包括软件组件和组件间的关系的应用程序清单。该清单是用户可编辑的。计算机系统接收指示多个不同组件的至少一个要被实现为复合应用程序的一部分的用户输入。计算机系统基于应用程序清单的组件和关系确定将被作为可选选项呈现给用户的潜在实现选项。计算机系统也在清单内显示确定的潜在实现以供用户选择。以下讨论现涉及可以执行的多种方法以及方法动作。应当注意,虽然这些方法动作可能是按一定次序讨论的,或者是在流程图中被描绘为是按照特定顺序进行的,然而并非必然需要特定的次序,除非特别声明,或者是因为一个动作依赖于另一动作在该动作被执行之前完成而需要的。本发明的各实施例可包括或利用专用或通用计算机,该专用或通用计算机包括诸如例如一个或多个处理器和系统存储器等计算机硬件,如以下更详细讨论的。本发明范围内的各实施例还包括用于携带或存储计算机可执行指令和/或数据结构的物理介质和其他计算机可读介质。这些计算机可读介质可以是通用或专用计算机系统能够访问的任何可用介质。存储计算机可执行指令的计算机可读介质是计算机存储介质。携带计算机可执行指令的计算机可读介质是传输介质。由此,作为示例而非限制,本发明的各实施例可包括至少两种完全不同类型的计算机可读介质计算机存储介质和传输介质。计算机存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、或可用于存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其他介质。“网络”被定义为允许在计算机系统和/或模块和/或其他电子设备之间传输电子数据的一个或多个数据链路。当信息通过网络或另一个通信连接(硬连线、无线、或者硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为传输介质。传输介质可包括可用于携带计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的网络和/或数据链路。上述的组合也应被包括在计算机可读介质的范围内。
此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程序代码装置可从传输介质自动传输到计算机存储介质(或反之亦然)。例如,通过网络或数据链路接收到的计算机可执行指令或数据结构可被缓存在网络接口模块(例如,“mc”) 内的RAM中,然后最终被传输到计算机系统RAM和/或计算机系统处的较不易失性的计算机存储介质。因而,应当理解,计算机存储介质可被包括在还利用(或甚至主要利用)传输介质的计算机系统组件中。计算机可执行指令包括,例如使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。计算机可执行指令可以是例如二进制代码、诸如汇编语言之类的中间格式指令、或甚至源代码。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特征或动作。相反,上述特征和动作是作为实现权利要求的示例形式而公开的。本领域的技术人员将理解,本发明可以在具有许多类型的计算机系统配置的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等等。本发明也可在其中通过网络链接(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)的本地和远程计算机系统两者都执行任务的分布式系统环境中实施。在分布式系统环境中,程序模块可位于本地和远程存储器存储设备中。图1示出了可在其中采用本发明的原理的计算机体系结构100。计算机体系结构 100包括应用程序设计界面110。应用程序设计界面可以是允许与软件程序交互的任何类型的用户界面。该界面可允许包括键盘、鼠标、触摸屏或其他输入的各种不同的输入方法。 应用程序设计界面可被配置成允许用户设计应用程序,包括复合应用程序115。如本文使用的复合应用程序指由以多个不同组件关系118绑定在一起的多个不同组件117构成的应用程序。该复合应用程序可被配置成在本地计算机系统以及分布式计算机系统上(包括在云上)运行而无需代码的任何变化。构成给定复合应用程序的组件和关系可被存储在应用程序清单116中。该清单可列出为应用程序的部分的每个组件,以及每个组件如何与其他组件相关。例如,一些组件可具有对某些资源或对其他组件的依赖性。如显示器120中所述,组件彼此可具有各种不同的关系。组件A(121A)可具有与组件B(121B)、C(121C)和D(121D)的关系,如由组件间的线条所示。类似地,组件C和D也具有关系。如上所述,关系可为依赖性、通信信道、或某个其他类型的关系。每个组件可具有与其他组件通信的指定方式。关系可指定组件如何通信以及如何与之通信。不同类型的关系可以不同方式显示。例如,不同类型的线条、不同颜色、不同接头以及其他可视项可被用于区分各种分类型的关系。应该认识到,尽管显示器120正显示四个组件和那些组件之间的一种类型的关系,但实质上任何数量的组件和/或关系均可显示在应用程序设计界面的显示器中显示。用户可与显示器内的复合应用程序的组件直接交互。用户可添加、移除或修改组件,以及添加、移除或修改组件关系。例如,用户105可向应用程序设计界面发送移除组件 A的编辑106。复合应用程序115的清单116将被升级至不再包括组件A或其组件关系,且显示器120将被升级至不再显示组件A及其关系。以此方式,用户可使用可视应用程序设计界面改变并修改应用程序。随着做出改变,应用程序清单动态地升级至显示用户的改变。
在一些实施例中,应用程序设计界面110可包括至设计成允许创作分布式应用程序的集成开发环境(IDE)扩展集。此类扩展可包括以下任意一个或多个可视化应用程序、 以及应用程序的组件和关系的可视建模、协调组件和应用程序模型之间的变化的一组IDE 集成同步器、便于根据应用程序模型中指定的配置对编程模型编码并与IDE内的部署系统集成以部署应用程序的基于代码编辑器的助手。
—些实施例可包括与分布式合成运行时和分布式应用程序部署经验耦合的复合应用程序的可视建模。而且,可提供基于应用程序模型或由其驱动的基于代码的创作环境。 各实施例可进一步提供通过与IDE文件系统提供者集成而提供的扩展性,以便保持人工产物(artifact)同步并对文件做出的变化以及对应用程序模型本身显式做出的变化做出反应。此外,各实施例可在应用程序设计界面中呈现便于快速启动复合应用程序的开发的模式。
应用程序设计界面可被配置成可视化复合应用程序、其组件和关系。应用程序设计界面提供应用程序内的组件的列表以及组件间关系两者。在应用程序设计界面内,每个组件可指定导入和导出,换句话说,用于与组件通信的通信标准或协议。可视设计界面允许导入和导出的连接二者,其建立组件间的关系,以及该连接的配置。该配置允许用户精确控制组件关系的运行时表现,以及允许分布式运行时适当分配资源以符合配置的需要。
在一些情况下,组件关系的配置可能指定针对将经由关系返回的数据的滤波器, 或可指定针对该链路上要求的性能级别的服务级别协定。该信息可被用于部署和运行时以确保以将符合服务级别协定的方式来分配资源。该合成表示在设计时间以及用于监视应用程序的工具是有用的。
在一些实施例中,应用程序设计界面110可通过向用户呈现用于创建应用程序的空白画布来提供应用程序的总控制。然而,在一些情况下,可向用户提供模式以便他们能快速地使解决方案准备并运行以供测试以及进一步迭代。设计界面可在工具栏中提供此类模式。通过将这些模式拖入画布,应用程序模型可用一组经配置的组件和关系来预填充。这将允许用户选择应用程序模式并创建所有针对该应用程序的对应人工产物。在一些情况下, 这可类似于其中用户可选择达成给定结果的某个模式的“以数字涂绘”的操作模型。
应用程序设计界面可被配置成在系统内提供基于代码的人工产物的表示。设计界面可包括作为清单的直接投影操作的编辑器。该编辑器提供被序列化为清单文件的对象图的投影。这允许应用程序设计界面保持与代码显示同步。
在一些情况下,应用程序界面可包括一组对IDE的扩展,该扩展跟踪在整个文件系统中做出的变化并将那些变化反映到清单文件中。这些扩展可构成复合应用程序中的清单和人工产物之间交互的单个点。另外,这些扩展同样可在其他方向操作,持续被通知清单内的变化。这些扩展随后可用于对项目系统做出后续变化。例如,如果导入被配置在web 应用程序上,则同步器可选择并添加新的对于web应用程序、注入代码、或升级配置的汇编件引用以利用新的组件引用。
在一些情况下,本文可称为“同步器”的扩展是本身可扩展的。这些扩展通过该组件的文件系统内的变化和应用程序清单内的变化之间发生的同步向作者提供组件控制。例如,针对简单对象访问协议(SOAP) web服务组件的同步器能在该SOAP web服务中的文件上操作、读取通信规范、并向清单报告如何与web服务组件进行通信。同样地,每个组件和组件的清单可被保持实时更新。
在一些情况下,当用户已经使用组件117的组合来创建复合应用程序后,软件代码可被写入以实现组件(例如,从另一应用程序调用工作流)。在这类情况下,应用程序设计界面直接利用应用程序模型以不但向用户呈现可被使用的一组类型,而且引导用户实现可被用于应用程序的组件以及与该组件相关的那些组件。因此,例如,如果缓存组件被有线连接到web应用程序,可提供代码助手或提示以在复合应用程序中正确实现高速缓存组件。
应用程序设计界面还可为组件作者提供另一组扩展以能定制某些人在使用其组件之际具有的开发者体验(例如,缓存组件可具有与web服务不同的开发者/用户体验)。 设计界面可提供用于键入代码或做出组件选择的上下文相关的选项。下面,分别针对图2 和图3的方法200和300,更详细地解释这些和其他概念。
考虑到以上描述的系统和体系结构,参考图2和图3的流程图将更好地理解根据所公开的主题实现的方法。为了解释简明起见,这些方法被示出和描述为一系列框。然而, 应该理解和了解,所要求保护的主题不受框的次序的限制,因为一些框可按不同的次序进行和/或与此处所描绘和描述的其他框同时进行。此外,并非全部所示的框都是实现下面所述的方法所必需的。
图2示出用于提供部署和管理复合应用程序的应用程序模型的方法200的流程图。现在将频繁参照环境100的组件和数据来描述方法200。
方法200包括实例化配置成显示复合应用程序组件和组件间的一个或多个关系的应用程序设计界面的动作,其中每个组件包括指定如何与该组件进行通信的信息(动作 210)。例如,应用程序设计界面110可在计算机系统上被实例化。界面的显示器120可被配置成示出应用程序组件(例如,组件A、B、C和D(121A-D))以及组件间的关系。每个应用程序组件可包括指定如何与该组件进行通信(即,组件的导入和导出)的信息(例如,元数据)。
应用程序设计界面可允许用户编辑包括应用程序定义、应用程序清单以及复合模型的多个不同人工产物。应用程序清单116可包括指示哪些组件117被包括在应用程序中, 以及那些组件之间的相应关系118的信息。用户105可发送将被应用于复合应用程序115 和/或应用程序的包括那些以上列出的各种人工产物的编辑106。经编辑的人工产物可被发送至分布式运行时以便它们将在执行应用程序期间使用。
在一些情况下,可编辑的应用程序人工产物可允许用户改变复合应用程序的部署时和运行时行为。以此方式,用户可具有对如何部署并执行复合应用程序的大量控制。在一些情况下,复合应用程序115可使用清单文件116来配置和部署。同样,在部署和执行应用程序时遵循清单中的指令。在运行时,应用程序组件可使用应用程序清单中指示的关系彼此通信。
方法200包括访问包括应用程序的组件和组件关系的应用程序清单的动作(动作 220)。例如,应用程序设计界面110可访问标识复合应用程序的对应组件117和组件关系 118的应用程序清单116。在一些情况下,选择哪些组件被用于给定应用程序后,用户可添加额外部分的软件代码以更改组件或如何一起使用组件。
当用户正做出此类代码变化或添加时,应用程序接口可在该用户键入时提供文本提示。该文本提示可为上下文的且可基于应用程序清单。因此,文本提示可包括清单特定项的上下文列表。并且,文本提示可基于应用程序清单中的组件关系仅示出两个组件间的有效连接或关系。在此类情况下,如果用户正键入关于组件A(121A)的代码,文本提示可包括组件信息和特定于组件A的关系。随着对软件代码做出改变,且随着做出改变而添加或从应用程序中移除组件,应用程序清单可被动态更新以确保该清单保持最新。
方法200包括根据应用程序清单在实例化的可视应用程序设计界面中显示复合应用程序的组件和组件关系的动作(动作230)。例如,显示器120可基于应用程序清单 116在应用程序设计界面中显示复合应用程序115的组件117和组件关系118。在一些情况下,应用程序设计界面可被配置成呈现经部署的应用程序以显示由应用程序清单定义的复合应用程序的运行时画面。运行时画面可指示如何在运行时执行应用程序。
应用程序设计界面也可被配置成提供允许用户根据预定模式配置复合应用程序的组件的一组规范应用程序模式。例如,预定模式可包括N层模式。当N层模式被应用于复合应用程序115时,以分层模式形成应用程序。分层可包括,例如,后端服务器、web访问和用户界面。当然,其他模式是可能的,且以上示例并不意图限制以上示例。在一些情况下可将规范模式层叠在一起以根据多个不同模式配置应用程序组件。在已经应用此规范模式后,可使用软件代码更改复合应用程序。
现在转向图3,图3示出用于提供模型驱动软件编码助手的方法300的流程图。现在将频繁参照环境400的组件和数据来描述方法300。
方法300包括访问包括软件组件和组件间的一个或多个关系的应用程序清单的动作,其中该清单是用户可编辑的(动作310)。例如,可经由应用程序设计界面访问应用程序清单440且可由用户405编辑。清单包括对对应于复合应用程序的软件组件和组件间的组件关系的标识。
方法300包括接收指示多个组件的至少一个要被实现为复合应用程序的一部分的用户输入的动作(动作320)。例如,用户405可向应用程序设计界面发送用户输入406。 该输入指示一个或多个组件将彼此结合用于形成复合应用程序。在一些情况下,应用程序设计界面允许用户选择(或许从列表或其他分组中)哪些组件将被用于给定的复合应用程序。当用户正选择或更改已经选择的组件时,潜在实现选项可被呈现给用户。
方法300包括基于应用程序清单的组件和关系确定将被作为可选选项呈现给用户的潜在实现选项的动作(动作330)。例如,选项确定模块445可访问应用程序清单440 以确定哪些组件和相应关系对给定应用程序是可用的。在其中用户正编辑可选组件的情况中,选项确定模块可返回特定于该组件的选项446。
因此,在一个实例中,用户405可能正编辑组件代码430。用户输入406可被显示在显示器内,当用户键入文本时,选项框435 (或其他呈现形式)可紧临用户输入显示。选项框可包括包含选项A(436A)、选项B(436B)、选项C(436C)以及子选项436C1和436C2的各种不同选项。当然可提供许多更多(或更少)选项。在一些情况下,潜在实现选项可在用户正键入信息时被动态显示。动态显示的潜在组件可基于哪个复合应用程序(或应用程序组件)当前正被编辑而不同。至少在一些情况下,仅那些上下文相关的实现选项被显示给用户。这些选项可以是可选选项列表的形式或其他某种(或许为用户定制的)形式。
方法300还包括显示确定的潜在选项以供用户选择的动作(动作340)。例如,可向用户显示上下文相关选项436A-436C的每一个。该显示可包括可选选项(其可包括组件名称、功能名称、属性或其他数据),以及可用于确定如何更改应用程序或应用程序组件的其他息。
因此,提供了可提供部署和管理复合应用程序的应用程序模型的系统、方法和计算机程序产品。该应用程序模型显示并允许编辑复合应用程序的组件和组件关系。并且, 提供了可提供模型驱动软件编码协助的系统、方法和计算机程序产品。此种协助是上下文特定的且在用户正向应用程序模型提供输入时被动态提供。
本发明可具体化为其他具体形式而不背离其精神或本质特征。所描述的实施例在所有方面都应被认为仅是说明性而非限制性的。因此,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方案的含义和范围内的所有改变被权利要求书的范围所涵盖。
权利要求
1.一种在包括多个计算系统的计算机联网环境中在包括至少一个处理器和存储器的计算机系统处提供部署和管理复合应用程序的计算机实现的方法,所述方法包括实例化配置成显示复合应用程序组件和所述组件间的一个或多个关系的应用程序设计界面的动作,其中每个组件包括指定如何与所述组件进行通信的信息;访问包括所述应用程序的组件和组件关系的应用程序清单的动作;以及根据所述应用程序清单在所述实例化的可视应用程序设计界面内显示所述复合应用程序的组件和组件关系的动作。
2.如权利要求1所述的方法,其特征在于,所述应用程序设计界面允许用户编辑以下人工产物的至少一个应用程序定义、应用程序清单、以及复合模型。
3.如权利要求2所述的方法,其特征在于,所述经编辑人工产物被发送至分布式运行时用于执行所述应用程序。
4.如权利要求2所述的方法,其特征在于,所述人工产物允许用户改变所述复合应用程序的部署时和运行时行为。
5.如权利要求4所述的方法,其特征在于,使用所述清单文件配置和部署所述复合应用程序。
6.如权利要求4所述的方法,其特征在于,组件在运行时使用所述应用程序清单中指示的关系彼此通信。
7.如权利要求1所述的方法,其特征在于,所述应用程序设计界面呈现经部署的应用程序以显示由所述应用程序清单定义的复合应用程序的运行时画面。
8.如权利要求1所述的方法,进一步包括所述应用程序设计界面提供允许用户根据预定模式配置所述复合应用程序的组件的一组规范应用程序模式的动作。
9.如权利要求8所述的方法,其特征在于,所述预定模式包括N层模式,由此一旦向所述复合应用程序应用所述N层模式,则以分层模式形成所述复合应用程序。
10.如权利要求9所述的方法,其特征在于,所述复合应用程序在已经使用软件代码来应用所述规范模式后是可更改的。
11.如权利要求8所述的方法,其特征在于,多个规范应用程序模式被层叠在一起以配置所述复合应用程序的所述组件。
12.一种用于实现一种方法的计算机程序产品,所述方法用于提供模型驱动软件编码协助,所述计算机程序产品包括其上存储有计算机可执行指令的一个或多个计算机可读存储介质,所述指令在被计算系统的一个或多个处理器执行时使得所述计算系统执行所述方法,所述方法包括访问包括软件组件和所述组件间的一个或多个关系的应用程序清单的动作,其中所述清单是用户可编辑的(动作310);接收指示多个组件的至少一个要被实现为所述复合应用程序的一部分的用户输入的动作;基于所述应用程序清单的组件和关系确定将被作为可选选项呈现给用户的潜在实现选项的动作;以及显示确定的潜在选项以供用户选择的动作。
13.如权利要求12所述的计算机程序产品,其特征在于,所述潜在实现选项可在用户正键入信息时被动态显示。
14.如权利要求12所述的计算机程序产品,其特征在于,所述动态显示的潜在组件基于哪个复合应用程序当前正被编辑而不同。
15.一种计算机系统,包括 一个或多个处理器;系统存储器;其上存储有计算机可执行指令的一个或多个计算机可读存储介质,所述计算机可执行指令在由所述一个或多个处理器执行时使得所述计算系统执行一种用于提供部署和管理复合应用程序的的方法,所述方法包括实例化配置成显示复合应用程序组件和所述组件间的一个或多个关系的应用程序设计界面的动作,其中每个组件包括指定如何与所述组件进行通信的信息; 访问包括所述应用程序的组件和组件关系的应用程序清单的动作; 所述应用程序设计界面提供允许用户根据预定模式配置所述复合应用程序的组件的一组规范应用程序模式的动作,其中所述复合应用程序在已经使用软件代码来应用所述规范模式后是可更改的;以及根据所述应用程序清单在所述实例化的可视应用程序设计界面内显示所述复合应用程序的组件和组件关系的动作。
全文摘要
本发明涉及分布式应用程序的设计平台。各实施例涉及提供一种部署和管理复合应用程序的应用程序模型并提供模型驱动软件编码协助。在一个实施例中,计算机系统实例化配置成显示复合应用程序组件以及组件间的关系的应用程序设计界面。每个组件包括指定如何与组件进行通信的信息。计算机系统访问包括应用程序的组件和组件关系的应用程序清单。计算机系统根据应用程序清单在实例化的可视应用程序设计界面内显示复合应用程序的组件和组件关系。
文档编号G06F9/44GK102541556SQ20111044778
公开日2012年7月4日 申请日期2011年12月28日 优先权日2010年12月29日
发明者A·G·班达卡, A·M·德贾纳特, D·舒克拉, M·R·温克勒, P·B·萨莱亚, R·巴拉苏布拉马尼亚姆, S·M·丹顿 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1