云计算环境中的企业应用的基于模式的构造和扩展的制作方法

文档序号:6361756阅读:167来源:国知局
专利名称:云计算环境中的企业应用的基于模式的构造和扩展的制作方法
技术领域
本发明涉及软件功能的扩展和修改,更具体而言,涉及采用一个或多个模式使企业软件对象表现出期望的功能和配置,以及在企业环境中采用所述模式生成企业软件对象。
背景技术
与虚拟化和大规模实用程序计算联合的计算的成本的降低引发了普遍的计算资源和网络连通性,其又引发了新的计算范例(例如,云计算)。这样的因特网规模的计算资源能够为多个应用降低运作成本。云计算进一步为合作式应用以及移动平台目标提供了基础。云计算以可分级的服务器平台为基础,其适于处理存在高度交互的协作式应用(例如,社交应用和基于云的办公室应用)的计算负载。随着因特网规模的计算基础设施变得越来越为大规模付费服务所承受得起,云计算用户将寻求与之匹配的软件资源装备能力。云计算资源能够提供平台即服务(PaaS)产品,其包括在云基础设施内支持的软件和产品开发工具。或者,软件即服务(SaaS)云模型包括通过前端入口与用户交互的软件产品。在这样的环境中,用户将希望软件功能处于能够支付得起的价格范围内。这样的用户可能是(例如)在软件编程方面即使受过培训和/或具有经验也十分有限的商业用户。尽管如此,云资源的企业客户仍然需要按照与其需求相适应的方式进行软件配置。历史上,一直在从计算机的角度解决软件的创建。大部分软件都是利用通用程序设计语言表达的。因而,程序的重点在于计算机的要求是什么(例如,执行细节)上,而不是开发软件所要解决的问题。因而,要通过修改程序的代码实施所述问题或者预期解决方案的处理变化。但是用于写软件的通用程序设计语言却是具有一般性的,因而其并非是为了清晰地表达所要解决的问题而创造出来的。其使得编写这样的软件以及以后做出修改(例如,反映由其解决的问题的变化)都是一项困难的任务。对所要解决的问题最为熟悉的人当数在其特定的问题域使用所述软件的人。域专家熟知在所述问题域必须满足的议题、概念和定义。另一方面,软件程序员则具有软件创建方面的专业技能,在传统上其与域专家一起工作来生成软件。这种任务和专业技能的分工不可避免地导致一方或者双方遭受挫折,因为程序规范的变化以及该问题域的复杂性是能够被域专家所理解的,但是其将导致程序员一方的大量重写和修订。类似地,程序员一方对域专家提供的描述做出错误的理解可能导致域专家一方受挫。图1A是示出了传统的软件开发工作流程的简化方框图。域专家105将问题陈述传达给程序员110。这一操作通常是采用不能自动转换成代码的格式完成的,例如,规范、使用情况、情节、注解、草图等。于是,程序员110将采用如此描述的意向连同程序员在软件工程方面的知识和专业技能创建能够通过计算机执行的源代码115。出于维护或者校正目的对软件所做的修改必须在域专家105提供的问题陈述中定义,之后单独由程序员110实施。为了对程序进行扩展或者维护,程序员110必须将实施分解,围绕所讨论的部分进行推理,解决问题,之后将实施重新组合,从而获得预期的结果。这一“拆分”软件,之后重新将软件合并起来的过程可能引入程序设计错误,并且提高了软件成本。为了使软件反映域专家对该软件的意图,优选通过域术语表达所述问题。这必然需要采取另一步骤通过域术语做出问题说明,并将该说明转换成计算机能够执行的软件,即,程序生成。尽管程序员能够通过采用所述软件解决的域问题所熟悉的术语的方式编写代码,但是能够证明这样的程序设计在其域具有复杂词汇的大的系统当中或者在其他这样的情况下存在困难。因此,考虑到上述内容并且为了适应用户对企业级云编程设施的需求,希望为这样的用户提供这样的应用开发环境,其(I)足够简单,能够被缺乏广泛的编程训练和/或经验的用户使用,(2)充分地易于定制,从而既与这样的用户的技能匹配,又能够实现有效率的定制。此外这样的应用开发环境还应当使应用定制通过这样的一种方式执行,即,不会对其他用户对所涉及的云资源(例如,正被定制的应用)的访问造成干扰。

发明内容
在本发明的各种实施例中,公开了用于在企业环境内对软件功能进行扩展和修改,更具体而言,用于在企业环境内采用一个或多个用于企业软件对象的模式表达期望的功能和构造,以及采用所述模式生成企业软件对象的方法、软件程序和系统。根据这些实施例中的某些实施例的方法包括从多个模式中选择一个或多个模式,其中,所述一个或多个模式是针对企业软件对象的。之后能够生成企业软件对象。所述企业软件对象是采用所述一个或多个模式生成的。将所述模式中的每个配置为描述多个问题域中的对应的一个之内的解决方案。上文只是一个概括,因而其必然含有细节的简化、一般化和省略;因此,本域技术人员将认识到所述概括只是说明性的,而不是旨在做出任何限制。唯独通过权利要求定义的本发明的其他方面、创造性特征和优点将在下文阐述的非限制性详细说明中变得显而易见。


通过参考附图能够对本发明更好地理解,并且能够使本发明的多个目的、特征和优点对本域技术人员而言变得显而易见。图1A是示出了传统的软件开发工作流程的简化方框图。图1B是示出了生成程序设计工作流程的简化方框图。图2A是示出了云计算概念的简化方框图。
图2B是示出了根据本发明的实施例的结合了模式的问题解决方案流的例子的简化框图。图3是示出了采用根据本发明的实施例的采用模式的企业软件对象生成的例子的简化流程图。图4是示出了根据本发明的实施例的在模式创建过程中执行的操作的例子的简化流程图。图5是示出了根据本发明的实施例的模式、子模式、模式种类和各种规则/方面/模板之间的关系的例子的简化方框图。图6是示出了可与本发明的实施例结合使用的企业服务器架构的简化方框图。图7是示出了根据本发明的实施例的可扩展性框架架构的各种元件的方框图。图8是示出了根据本发明的实施例的的数据模型的简化方框图。图9是示出了根据本发明的实施例的元数据管理架构的方框图。图10是示出了根据本发明的实施例的能够通过可扩展性框架架构执行的操作的例子的流程图。图11是示出了根据本发明的实施例的通过规划指定的操作的例子的流程图。图12是示出了根据本发明的实施例的能够通过规划指定的操作的例子的流程图。图13是示出了根据本发明的实施例的可扩展性框架架构的实现和定制软件组件的生成的方框图。图14A是示出了根据本发明的实施例的包括可扩展性框架的示例架构的方框图。图14B是示出了根据本发明的实施例的视图对象以及其与根据本发明的实施例的可扩展性框架的其他元件的关系的例子的方框图。图14C是示出了根据本发明的实施例的实体对象和视图对象的元件之间的交互和关系的例子的方框图。图15是示出了根据本发明的实施例的可扩展性框架数据库架构的各种特征的方框图。图16是根据本发明的实施例的网络(网络)服务可扩展性架构的方框图。图17是示出了根据本发明的实施例的可扩展分析架构的方框图。图18是描绘适于实现本发明的各个方面的计算机系统的方框图。图19是描绘适于实现本发明的各个方面的网络架构的方框图。
具体实施例方式本发明的实施例提供了利用一般化的机制构建应用模式并采用这些模式生成新的或者修改的软件对象的方法、设备和系统。这样的系统采用基本基元和相关操作将简单的模式汇编成语义丰富的模式。之后,可以将实例化的模式(例如,对象)添加到现有的应用当中,由此(例如)出于企业的特定目的对这些应用进行修改。本发明的实施例还能够使未经培训的用户采用预先汇编的模式对应用(例如,SaaS应用)进行扩展。本发明的实施例还提供了配置工具,其用于通过访问这样的模式的储存库而向现有应用中添加新的软件组件。这样的配置工具允许用户从储存库中选择一个或多个用于企业软件对象的模式,提供适于所述模式的具体实例化的参数值,之后采用这些实例化的模式生成企业软件对象。目的性程序设计图1B是示出了生成程序设计工作流程的示例的简化方框图。在生成程序设计环境中,现在程序员110的工作重点在于设计并实施创建生成程序120 (文中又称为模式引擎)所需的软件,其接收域代码125作为输入,并输出可执行代码115。可以通过包括适合问题域的术语和概念的特定于域的语言表达域代码125。程序员的责任从直接写程序发生了变化,其工作重心转移到了生成程序120的创建和维护上。程序组织和数据结构将继续得到设计、定义和编写,但是可执行代码115则通过域代码125参数化。可执行代码115的预期变化受到域代码125的影响,可以将域代码125重新输入至生成程序120,以实现这些变化。计算机执行在历史上将是程序员的任务的工作,即,根据域代码语言和源代码语言之间的对应关系分布域代码变化。生成技术的不同应用在如何定义用于域代码125的特定于域的语言、如何创建域代码以及生成程序120如何使用域代码方面可能存在差异。生成程序120的使用将域专家的关切事项与程序员的关切事项分离开来。在生成软件环境中,域专家105负责维护域代码125。程序员110创建并维护生成程序120,并定义如何对域代码输入进行处理,以获得预期的实现(例如,可执行代码115)。生成程序120代表实现知识,例如,工程设计、算法选择、平台和代码模式。前述生成程序设计环境的实现受到实际应用问题的影响,例如,定义域代码125的语言,谁来定义和支持特定于域的语言和文献汇编,此外还受到与跨越不只一个域的问题相关的事项以及生成程序120通过应用编程接口对域代码125的访问等的影响。此外,前述针对特定于域的语言的解决方案没有解决与如何使具有极少的程序设计知识的用户在企业内部通过简单有效的方式创建和修改软件组件相关的问题。前述的这些解决方案仍然需要用户学习特定于域的语言及其语法。例如,一种特定于域的语言实现要求使用“意图树”,其主要是理论性的,而且不会为企业提供任何种类的有用或者实际的解决方案。其他这样的解决方案需要有关如何对不同的功能块进行汇编以确保正确的交互和功能的知识。云中的企业程序设计当今的企业/云计算环境已经取消了用户对运行软件的硬件的直接控制以及对软件本身的控制。在二十世纪七十年代,技术性突破显著降低了成本。硬件革命将大型计算带入到较小的装置内,例如,被实现成计算机内的单个集成电路的中央处理单元。计算成本的改善还提高了计算资源的可及性和可用性。计算机的使用不再只能在选定的少数几个人之间按时间分享。广泛可用的个人计算使得计算机的大量采用成为了事实。尽管硬件变成了广泛可得的,但是仍然需要由具有高度技能的程序员建立应用,其要求程序员周密地了解下层平台。在这一周期内,相较于硬件成本而言,具有高的软件开发成本。应用通常是专业化的,因而通常面向经过培训的专业人员,这样的应用大部分都集中在数据管理以及过程/办公自动化方面。在上世纪九十年代早期,因特网接入和网络浏览器至少在一些情形下为用户免除了在其个人计算机上安装软件的必要。终端用户只需点击URL就能获得范围很宽的面向终端客户的应用。此外,诸如Java之类的语言因取消了诸如自动存储器管理和软件可移植性的任务而降低了软件开发成本。网络应用带来了其他软件进步,例如,用户界面(UI)和应用框架的商品化。除了其他的优点、特征和功能之外,当今的应用框架通常提供两个主要组件:元数据(通过框架指定的语言描述问题)和运行时间引擎(其基于应用开发者提供的指定元数据执行实际运行时间执行)。这些基于网络的应用进一步分离了问题描述和执行。因此,没有必要再将软件制作成起着单个专业化执行单元的作用。改变问题描述的操作仅涉及对元数据做出改变,对运行时间执行代码则没有影响。在这一对计算资源大量采用的第二次浪潮中,浏览器、Java和框架中的软件进步降低了软件相对于硬件的成本。然而,仍然要求应用开发者具有高水平的专业技能,从而对应用开发环境(文中又称为应用开发框架(ADF))中通常可用的全范围的选择和控制加以充分利用。计算资源的大量采用的第三次浪潮已经伴随着计算成本的突破性降低而开始。云计算与诸如虚拟化的技术革新相结合并不断获得大规模实用计算方面的经验,从而使非常丰富的计算资源和网络连通性都能够在因特网规模上被负担得起。这种计算资源的可用性降低了网络应用的操作成本。这样的可用性还为协作式应用和移动式应用的继续开发提供了基础。这些因特网规模的基础设施作为有偿服务已经变得能够为大量的用户所负担得起。这些用户还在寻找匹配的软件可负担性。这一点也适用于其他类型的按需服务,例如,按需视频。云计算领域中的内容只是在实用程序资源上执行的程序或应用而已。图2A是示出了云计算概念的简化方框图。将因特网或广域网210耦合至内联网或局域网220(l)-(n)。每一内联网或局域网具有一个或多个客户端计算机225(l)-(m)。客户端计算机能够通过内联网客户端和因特网资源之间的网络连接访问(例如)网络服务器230(l)-(p)(又被称为网站服务器,或简称为服务器)。此外,可通过因特网210获得的一个或多个资源能够提供具有云资源240的形式的主机托管(hosted)服务。云计算是涉及在诸如因特网的广域网内分发主机托管服务的任何机制的泛称。通常将这样的服务宽泛地分为三类:基础设施即服务(IaaS)、平台即服务(PaaS)以及软件即服务(SaaS)。云服务通常按需出售(例如,按分钟或者按小时),云服务是具有弹性的,因为用户能够在任何既定时间上拥有其想要的多少的服务,并且云服务完全由云服务的供应商管理。云可以是私有的,也可以是公共的。公共云向任何能够对其进行访问的人出售服务,而私有云则是所有权网络或数据中心,其只向有限数量的用户提供主机托管服务。云服务供应商可以采用公共云资源创建私有云,从而获得虚拟私有云。在每种情况下,云计算的目的都在于提供对计算资源和信息技术服务的可分级的访问。IaaS为虚拟服务器实例提供唯一网络地址和按需存储块。通过提供应用编程接口(API)而开始、停止和访问虚拟服务服务器和存储器。在企业中,IaaS云计算允许公司仅对其所需要的那些容量付费,并在线增加所需的这一容量。云中的PaaS提供了主机托管软件集和产品开发工具,在图2A中示出了 PaaS250作为其例子。开发者能够通过因特网在其供应商的平台上创建应用。PaaS提供商能够利用(例如)AP1、网站入口、安装在客户的计算机上的网关软件等提供对这样的服务的访问。在SaaS架构中,供应商通过前端入口提供硬件基础设施、软件产品并且与用户交互。所提供的服务可以包括(例如)基于网络的电子邮件、库存控制和数据库处理。由于应用和数据都由服务供应商主持,因而终端用户能够随处自由地使用服务。
从上文对云计算的说明可以看出,可以将云的资源(即云资源)看作是物理计算机资源的抽象化。终端用户通常不能控制所述硬件或软件,尤其是在SaaS和PaaS环境中。由于采用同一云资源的不同企业可能具有不同的要求来满足其特定企业的需求,因而需要一种机制使用户通过与所讨论的企业相适应的方式对其采用的软件进行修改。前面讨论的生成软件概念认识到了这一问题,但是未能提供实际的解决方案来实现能够创建和修改软件资源,例如,云计算环境中提供的软件资源的工具的提供。此外,由于云资源被多个用户访问(其还可能与不同的企业相关),因而任何用于修改云计算环境中的软件的工具都不能破坏云资源对其他用户的提供。因此,必须提供某些保证,以确保对软件所做的修改的功能。也就是说,应当针对指定云计算环境中的使用对使用户能够修改软件资源的工具加以验证。用于描述用户意图的模式在企业内,域专家可能(例如)想要修改或者创建原始的或者额外的对象(例如,业务对象、数据对象、用户界面对象等)。执行这样的任务往往包括执行至少一些相同(或者类似的)操作。此外,要想获得预期结果(例如,通过其创建而实现的新的数据对象的存在)可能必须要创建其他对象/类别(例如用户界面显示中的新字段)(或者对其做出改变)。文中将这样的为了实现预期目标而执行的通常重复发生的操作的集合称为模式。在一个实施例中,这样的模式包括模式声明(例如,其揭示用于配置操作的实质配置选项)和模式定义(例如,其封装软件组件生成的细节(例如,通过中间件API访问))。模式的使用既提供了简易性(例如,通过对用户隐藏程序设计的复杂性),又提供了适应性(例如,通过封入对应用所做的变化、中间件等)。在本发明的实施例中,模式描述了在给定问题域通常出现的解决方案。此外,模式能够指定创建进而描述该解决方案(抽象概念)的实例(具体的或者切实的表示)的方式(例如,能够在特定的目标平台上使重复发生的解决方案实例化的方式)。考虑到本公开将认识至IJ,这样的解决方案(抽象)的实例化包含了所述解决方案(例如,作为模板,例如一类对象或计算过程)的实际例子和具体实现的创建。这样的实例化操作通过(例如)定义一类中的对象(表示解决方案)的具体变化、为对象赋予名称并且将对象存储到某一物理位置上(例如,将对象存储到诸如计算机存储器的计算机可读介质内)而创建对应解决方案的实例。照此,模式还能够提供用于使域专家形成(以及表达)对这样的软件进行预期修改的意图的一般化机制。图2B是示出了根据本发明的实施例的结合了模式的问题解决方案流的例子的简化框图。与图1B—样,程序员110主要考虑创建生成程序120,该程序能够生成期望的可执行代码115作为其输出。与图1B —样,向生成程序120提供域代码125作为输入。与图1B不同,可以使域专家105获得一个或多个模式(例如,在图2B中将其描述为模式260),从而允许域专家105表达其有关期望域代码的生成的意图,所述域代码将充当生成程序120的输入(例如,诸如图1B的域代码125的域代码)。可以通过模式储存库的形式使模式260能够为域专家105所用(在图2B中未示出;但而,应当认识到,例如,可以将图2B的模式260存储到这样的模式储存库内并从该储存库内将其选出)。例如,模式程序员270可以针对特定域或者多个域创建模式储存库。模式程序员270通常是专家程序员,其制备的模式并非是针对具体的问题实例的解决方案,而是反映解决给定的一类问题的更为一般的方案。诸如模式程序员270的模式程序员应当理解将在所述模式中获取的所述解决方案的复杂的细微差别。所述模式应当明确的公式化,包括针对期望的对象的必要变化(例如,使用户界面元素存在差别以及使这些元素的外观存在差别)。域专家105从含有模式260的储存库中选择一个或多个模式,之后采用(例如)配置器280对所述模式的元素实施期望/必要的修改(编辑)。例如,可能必须对各种参数进行定义,从而使模式实例化,因而域专家105将为这些各种各样的参数赋值。或者,模式可以具有能够进行选择的子模式,所述子模式可能也具有定义的参数。一组与模式和子模式相关的规则能够限制模式和参数值选择。通过模式和子模式的存在,诸如文中描述的系统的系统能够采用其他(通常较为简单的)模式作为构件块创建出越来越复杂并且能力越来越强的模式。实际上,情况往往是这样,所采用的模式具有更加复杂的多样性,而且除了其更高的功能性之外,其使用还提供了一定量的抽象化,这种抽象化掩盖了下层模式的复杂性,从而简化了这些更为复杂的模式的使用。之后,配置器280生成被用作生成程序120的输入的域代码125。本发明的实施例不限于图2B所示的块的配置。可以将配置器280和发生程序120的功能结合,从而得到以域专家105选定的模式和修改作为其输入,以可执行代码115作为其输出的功能元件。这样的模式的设计还应当(例如)在考虑将应用这样的模式的企业对象也可能随着时间的推移而发生变化的这一事实的情况下为提供随着时间推移的演化。为了提供这样的演化,这样的模式的生成能够采用下述模式演化技术中的一种或多种:方面定向、变异化、构成、交互和限制条件,下文马上要对此予以更为详细的讨论。每一模式都可能具有单独演化或者实现的不同方面。例如,对于用户界面模式而言,就可能存在诸如显示、安全、风格和定位的不同方面。每一方面都独立地转化或者演变。此外,变异化允许根据情况对模式做出改变。例如,在不同的应用之间,用户界面模式可能看起来略微不同。或者,在向某一格式添加文本字段时,可能将文本表现为文本输入。但是,如果将同一文本字段添加至只读表格时,则将所述文本字段表现为简单的串。一种实现变异化的机制是使所述模式受到元数据驱动。也就是说,模式为目标平台生成元数据,但是该模式也由元数据(例如,元元数据)描述。所述元元数据根据具体的情况而变异化。模式的构成模型允许由一组较为简单的模式汇编成复杂的模式。构成规则含有与模式的汇编有关的结构要求。交互规则指定模式内的组件的行为相关性。交互的重点在于描述影响运行时间系统的组件的相互关联。例如,用户界面组件能够使页面内的其他组件的部分刷新。最后,约束规则指定在元数据生成过程中实施的限制或指南。可以基于目标平台或优选最佳实践的限制操纵约束条件,约束条件可以使所述构成和交互规则遵守所述限制和指南。例如,用户界面最佳实践可以要求表格不含有任何文本区组件。因而根据本发明的实施例的云程序设计模型实施了允许“自服务程序员”采用意图化程序设计技术创建和修改软件的程序设计范例和原理。这样的用户可能是其专业域内的专家,但是其在计算机程序设计方面可能具有很少的训练或者没有训练过,从这样的事实可以看出对这样的程序设计范例的需求是显然的。例如,这样的用户可以是销售人员,其又是兼职的系统管理员。如早前指出的,现有的范例不能解决简化程序设计经验的问题。实际上,此前可用的种种技术只会使计算机程序设计的工作更加艰巨。随着软件变得更加复杂,为实际业务逻辑编写的程序设计代码与学习应用框架所需的努力而言,仍然保持着很小的比例。根据本发明的实施例的云程序设计模型的优点是简化了新程序员的程序设计经验。其包括各种致力于解决这样的程序员在基于云的计算环境中的需求的规程。从根本上来讲,这样的程序设计环境必须能够解决意图而不是转化。程序设计环境的重点应当集中在实现对期望结果的描述,而不是在具体的框架/环境内实施问题的解决方案的方式。用户应当优选能够通过业务中心用户界面(UI)而不是综合设计环境等指定(描述)给定意图。通过对这样的业务中心Π的结构设计辅助用户描述问题,而不是管理程序设计任务。换言之,这样的用户并非是传统意义上的编写程序(但是捕捉用户意图的结果仍然在逻辑的意义上构成了 “程序”)。此外,用于描述意图的词汇和表示法应当与问题域密切一致。从传统的意义上来讲,词汇和表示法通常构成了语法。从这一意义上来讲,语法应当适合于问题域,而不是要依赖于程序员采用固定语法(例如,通用程序设计语言)将意图转化成程序。这样的词汇和表示法应当是自适应的(例如,用于满足新的要求)。由于根据本发明的实施例的程序设计环境的重点在于捕捉用户的意图,因而程序(语法)的能力应当支持满足新的不断变化的要求的演进。还优选具备在不对现有的软件和硬件基础设施(例如,中间件运行时间、数据库基础设施、服务器等)进行修改(例如,无需新的专用运行时间引擎)而使所述程序设计环境在其上运行的能力。换言之,根据本发明的实施例的云程序设计模型的使用和实施与传统方案相比所提供的优点在于显著简化了程序设计模型。例如,就中间件平台而言,这样的方案并非旨在重建该中间件平台,而是致力于将用户的意图无缝地自动转换成能够通过所述中间件平台运行的目标元数据/语言。因而,根据本发明的实施例的程序设计环境应当在意图和意图转化“效果”之间提供直接而简单的关联。因此,在前述例子中,转化的“效果”并非是生成的中间件人工产物(artifact),而是用户创建或修改的应用中的(期望)可观测行为。例如,如果用户意图是为定制实体创建新的页面,那么转化的效果是应用中的新界面,其中,所述页面是以某种观感和布局表现出来的。在提供这样的环境的过程中,应当使用户尽可能少地接触到系统的内部实现细节(实际上优选使用户与这样的细节完全隔离)。在前面的例子中,这意味着用户可能没有中间件元数据或运行时间的知识(也不需要任何这样的知识)。因而,所述中间件将能够在不产生任何能够被用户观察到的变更的情况下随着时间的推移而演进,即,产生从一个版本到另一版本的变化。采用意图程序设计的云程序设计模型的设计下面的段落将描述体现前述原理的根据本发明的实施例的支持“自服务”程序设计的云程序设计模型的实施例子。此外,在提供这样的功能时,诸如文中描述的程序设计环境的程序设计环境还能够实现与扩展性相关的目标,尤其是与前述自服务程序设计概念有关的目标。例如,这样的可扩展云程序设计环境提供了这样的自服务程序员能够通过其构建和/或修改软件组件以构建期望的软件应用(例如,客户关系管理(CRM)应用)的机制。因而,这样的程序设计环境允许将简单的组件汇编成语义丰富的组件(文中将其称为组件构成)所需的基本基元和操作的开发。组件构成的简单的例子是基于一组特定的布局限制和要求将一组用户界面元素(例如,用于文本输入的)汇编成表格。诸如文中描述的可扩展云程序设计环境还允许对按需软件应用(例如,CRM SaaS应用)采取组件构成技术,从而允许未经训练的用户(自服务程序员)采用预先配置的组件对应用(例如,CRM SaaS应用)进行扩展。可以将下文介绍的示例设计分解成四个主要的片段。第一个包含捕获程序员(这里是指前述“自服务程序员”)的意图的语言。接下来是前向转换实现,其将意图转换成可执行文件(例如,中间件可执行文件)。这样的程序设计环境的另一部分是反向转化实现,其被设计为将可执行文件转化成意图(例如,将中间件可执行文件转化成意图)。这四个片段中的最后一个是配置用户界面(例如,在CRM环境中为业务中心配置Π),其被设计为引导程序员在既不需要任何编程细节,也不需要编程细节知识的情况下指定其意图。意图指定根据本发明的实施例的程序设计环境中的意图指定的目的在于允许自服务程序员关注期望的结果,而不是执行指令的按部就班的过程在指定的计算机系统中进行的方式。此外,还可以相对简单地调整和修改这样的语言。这样的方案允许将每一意图指定成命令。每一命令识别出程序员意欲使计算机系统执行的一个或多个操作。命令还能够携带一组进一步提供有关所要执行的操作的具体细节的用户性质。这样的命令在几个方面有别于传统的程序设计指令。在这些差异当中存在这样的事实,即,这样的命令尽管缺乏明确地指导给定计算机系统执行计算机系统的指令集中的具体指令的能力,但是其在更高的抽象水平上运行,并解决程序员的意图和要求。通过明显的对比,传统的程序设计指令(例如,计算机系统的指令集中的指令,例如,单机指令)存在于所述谱系的另一端,因而其是针对计算装置的要求而量身定制的。前向转化前向转化基于接收自自服务程序员的体现自服务程序员的意图的命令为计划为其进行程序设计的系统(例如,前述中间件平台)提供有关要执行的操作的指导,由此实施自服务程序员的意图。在本发明的实施例中,将转化单元封装到文中被称为模式的描述具体问题域内的(预定义)解决方案的概念(即逻辑)构造中。此外,可以将这样的模式设计为携带使针对特定目标平台的重复出现的解决方案“实质化”(例如实例化)的方式的规约。在调用命令时,一个或多个模式将由此实质化。在示例中间件系统中的实质化过程中,例如,所述转化将为给定目标平台生成实现期望解决方案所必需的元数据。应当认识到,根据本公开,文中描述的模式能够重复使用任意次数(通过任何指定的迭代进行重新配置或不进行重新配置)。在前向转化的支持当中,希望为先前提及的模式演进的概念提供支持。这样的功能确保了,如此实质化的模式能够响应于要求的变化而容易有效地演进。文中描述了几种提供必要的功能的技术,其包括:I)方面定向。每一模式可以具有必须单独演进的(例如,单独地实现,从而允许它们(例如)随着时间的推移而独立地发生变化)不同的方面(即,各种特性或特征,其反映要通过其对应的构造处理/捕捉的各种考虑事项、关切事项等)。例如,Π模式的不同方面可能包括诸如显示、安全、风格和定位的方面。每一方面能够独立地转化或演进,从而允许针对给定的情况对这些方面进行单独的裁量,从而最佳地满足该情况的需要。2)变异化。如已经指出的,模式可能随着不同的情况而发生变化。例如,Π模式可以随着纵向应用的不同而看起来略微不同。变异化导致了模式自身是受到元数据驱动的。换言之,模式为目标中间件平台生成元数据,但是模式本身也由元数据描述(因而能够将其称为元元数据)。因此,能够基于具体的情况而使所述元元数据变异化。3)构成规则。可以由一组较为简单的模式组成复杂的模式。例如,可以将关于模式的相互组合的结构要求包含到所述构成规则内。4)交互规则。与指定模式的组合的构成规则形成对照的是交互规则指定模式内的组件的行为相关性。交互规则的主要关注点在于描述影响运行时间系统的组件之间的相互关联。例如,Π组件能够使页面内的其他组件部分刷新。5)约束条件规则。约束条件规则指定在各种构造的生成(例如元数据生成)过程中实施的限制或准则。例如,约束条件规则能够基于目标平台或优选最佳实践的限制而指定约束条件。在这样的方案中,例如,UI最佳实践可以要求表格不含有任何文本区组件。反向转化在反向转化(文中又称为“反射”)中,根据本发明的实施例的程序设计环境从现有的构造(例如现有中间件元数据)中识别出一个或多个模式。因而反向转化通过模式提供的抽象化(即,模式抽象)为这样的构造的修订和迁移提供了条件。在中间件元数据的例子中,这样的模式抽象化意味着能够按照促进中间件元数据的修订和迁移的方式生成中间件元数据。(应当理解,文中采用的“促进” 一词目的在于表达所讨论的功能或结构有助于辅助给定系统或过程实现所陈述的结果,而不是要求所讨论的功能或结构实现该结果,而且不管怎样都不应认为其是强制性的。)在根据本发明的实施例的程序设计环境中,能够通过(例如)利用基于规则的模式识别器实现这样的反向转化。应用中心配置用户界面根据本发明的实施例的应用中心配置用户界面起着前端应用(例如网络应用)的作用,其使自服务程序员在不需要任何实际程序设计的情况下描述其意图作为配置任务。随着程序员游历这一用户界面,将捕捉到其意图。于是,能够发出命令以触发模式的实质化。这样的模式实质化的结果是生成了程序设计构造(例如,生成了生成的中间件元数据)。在所述例子中,能够利用反向转化通过Π将有关生成中间件元数据的即时反馈呈现给程序员。与常规的中间件综合设计环境不同,能够采用根据本发明的实施例的Π触发简单的用户意图向复杂的程序设计构造的转化。而相比之下,常规的中间件综合设计环境则不能提供这样的功能,因此其自身只能呈现为程序设计工具。企业软件对象生成图3是示出了根据本发明的实施例的采用模式的企业软件对象生成的例子的简化流程图。如图所示,图3的过程开始于选择企业软件对象生成的企业域(步骤310)。由于本发明的一个实施例被设想为在云计算环境中发挥作用,而在云计算环境中,有多个企业共享这些企业中的资源和各种各样的域(例如,顾客关系管理(CRM)和人力资源管理(HRM)),因而要选择适当的域,以确定由其进行操作的模式的子集。例如,域的选择可以是基于用户识别或者特定用户的群识别的自动化过程,其也可以是用户输入的选择。用户从选定域可用的多个模式中选择模式(步骤320)。基于希望创建或修改的对象的性质以及所要解决的问题的性质做出对适当模式的选择。如果所选择的模式与先前选择的模式不兼容(步骤330),那么可以拒绝所选择的模式(步骤340)。例如,可以通过参考与先前选择的模式相关的一个或多个规则做出兼容性判断。如上所述,构成规则和交互规则影响模式之间的关系。这些规则可能在生成模式时与模式相关,或者可以是以后在将新的模式存入模式储存库时发现模式之间存在矛盾而增加的。如果拒绝了选定模式,那么为用户提供选择另一模式的机会(步骤320)。如果不拒绝选定的模式,那么为用户提供选择额外的模式的机会(步骤350)。一旦用户选择了希望用于企业对象的创建或修改的所有模式,那么提示用户为所述一个或多个选定模式定义的参数提供值(例如,变量值、字段定义等)(步骤360)。例如,可以在诸如图2B的配置器280的配置器内执行这一模式选择、规则确认和参数指定的过程。随着参数值的提供,判断所述参数值是否符合与该模式以及实例化的其他模式相关的规则(步骤370)。如果参数值超出所述规则指定的范围或者具体值以外,那么拒绝所述参数值(步骤380),并为用户提供另一次在考虑指定规则的情况下提供可接受的值的机会。一旦针对与选定模式相关的参数输入了适于要解决的问题的参数值,那么生成程序将采用选定模式生成企业软件对象(步骤390)。例如,在图2B所示的实施例中,配置器280将模式指定和参数的具体值结合起来生成域代码文件连同用作生成程序120的输入的适当元数据。之后,生成程序120为期望平台生成可执行代码(指令)(例如,针对具体平台(例如,原始Java2平台、企业版(J2EE)或者更近的Java平台企业版6 (Java EE6))的Java程序设计语言可执行代码)。或者,在使配置器和发生器的功能结合时,能够直接采用模式、参数值和额外元数据生成可执行代码。一旦生成了期望企业对象,那么所述对象就可用于在适当的平台上运行(步骤395 )。生成程序120可以利用多个方案中的任何一种生成必要的可执行代码。考虑本公开将认识到,并且如前面所注意到的,本发明的实施例采用与基于组件的方案形成对照的生成方案。在采用任一种方案的软件系统的构造中,在所采用的语言和由其俘获的意图与为了给定的实现生成的可执行文件(软件)之间存在差别。还将认识到,在这些软件开发阶段之间存在明显的区别。在基于组件的方案中,语言和所得到的可执行文件相互密切地交织在一起。因而,采用基于组件的方案时,将使单个意图(采用单种语言通过期望软件的人工编码表达该意图)映射至单一实现(反映在由其产生的单个可执行文件内)。相形之下,采用诸如文中描述的方案的生成方案时,单一语言/意图能够根据各种因素产生多个不同的可执行文件/实现。这种由根据本发明的实施例的方案提供的语言/意图与所产生的可执行文件/实现的解耦产生了能够为这样的可执行文件/实现的生成提供极大的灵活性的方案。在认识到这样的方案能够将意图动态地映射至可执行文件时尤其能够体会到这一点的真实性。例如,作为根据本发明的实施例的过程的结果,单个意图(例如,创建能够显示对象细节的网页)可以基于给定国家、行业等映射至多个种不同实现中的一种。在采用前述通过Java程序设计语言生成可执行代码的例子的情况下,生成程序120将接收到多个模式作为输入。这些模式中的每者包括不同的方面。每一个这样的方案都将具有对应的内容提供器。内容提供器负责生成必要的元数据并将其注入到给定对象(例如,具体的中间件组件)内。实质上每一内容提供器的都类似于给定方面特有的专用编译器一样运作。例如,在生成用户界面组件时,可能涉及一个或多个方面。例如,通常如此涉及的两个方面是外观方面(例如,用于生成显示(实际布局等))和安全方面(例如,用于生成该用户界面的安全策略)。在这样的方案中,有两个对应的内容提供器。外观内容提供器生成符合Java服务器表情(JSF)规约的页面元数据。安全内容提供器创建安全策略并将其注入到适当的服务器内。这样的安全内容可以包括(例如)轻量级目录访问协议(LDAP)服务器,其被配置为验证和批准一个或多个网络实体(例如,一个或多个客户端225或服务器230)对有组织的记录集合(例如,数据库、储存库、存储器或者其他这样的构造(其中的任意项可以实际上指代同一对象))的访问,以及促进对提供这样的访问的过程中涉及的分布式目录信息服务的访问和维护,连同其他这样的支持功能。根据所指出的方式,模式是对于具体应用而言经常重复出现的实现的抽象化。如上所述,这些实现可以包括外观和感觉、指南、标准等。模式被配置为揭示用于企业对象的基本配置选择,其偏向于支持企业对象配置的约定。由于模式的一般化性质的原因,模式通常比由模式生成的企业对象的实例更持久。图4是示出了根据本发明的实施例的在模式创建过程中执行的操作的例子的简化流程图。图4所示的模式生成过程开始于所要创建的模式的识别(步骤410)。如前所述,根据本发明的实施例的模式描述了给定问题域内的问题的解决方案。如前所述,具体域的模式识别至少在某种程度上依赖于对该域内的常见问题和解决方案的熟悉度。所描述的解决方案一般是通常出现的解决方案,更具体而言,能够通过具体应用中的这样的解决方案的常常重复出现的实现的抽象化对其加以表示。通常将由在域空间内操作的程序员(例如,模式程序员270)执行这些重复出现的解决方案或者引向解决方案的重复出现的步骤的识另O。在这样做的时候,模式程序员270能够创建体现这样的解决方案的模式,其意图是使这样的模式“照原样”得到使用。或者,模式程序员270创建这样的模式的目的可以是为其他人(例如,自服务程序员)提供用于进行定制的模式,从而允许他们根据其具体需求对给定的模式进行定制。此外,模式程序员270还能够将模式创建为使模式只是简单地定义问题域的解决方案空间内的“全域(universe)”,在其内诸如自服务程序员的用户能够通过实际创建针对具体情况的模式而实现其意图。通过创建定义这样的全域的模式,诸如模式程序员270的模式程序员能够为自服务程序员提供“边界”,从而引导自服务程序员游历存在于手头的解决方案空间内的各种可能的解决方案,同时允许自服务程序员以一定的自由度去定义达成解决方案的方式。一旦识别了模式,就可以使所述模式与新的或者旧的“模式种类”相关联(步骤420)。模式种类的主要作用是实现同一“种类”的模式之间的一致性。模式种类能够起到指定可在同一种类的模式之间共享的公共规约和资源的作用。此外,模式种类还能够为模式指定外在化契约,其包括(例如)模式能够具有的各个方面的列表、该种类中的模式之间的共同规约和资源、该种类中的模式的性质的集合、一个或多个子模式的各个方面的集合以及文字连同其用于该种类中的模式的值的列表。在适当的情况下,模式可以属于多于一个模式种类。在使模式与模式种类相关时,对于诸如性质、方面、变量等的参数而言,模式将采取模式种类指定的特性,除非通过模式内的值对其进行覆盖。在模式创建过程中还对模式的各个方面加以识别(步骤430)。如上所述,方面指定使模式实例化的要求。这些方面可以包括模式在目标域内的物理表现。例如,用户界面模式可以具有一个或多个下述方面:外观方面、安全方面、显示方面和绑定方面,连同其他方面。通常前两个方面是强制性的,而后者则通常是任选的。显示方面指定模式的观感。绑定方面指定模式与下层模型的交互方式。显示方面和绑定方面具有其自身的物理表现(例如,可扩展标记语言(XML)方案)。针对模式的每一方面,识别该方面的内容提供器(步骤440 )。内容提供器指定如何生成具体表现的内容。在一个实施例中,内容提供器是Java类别,其控制如何为某一方面制作内容。内容提供器能够采用模板生成内容,在一个实施例中,所述模板为含有内容的部分实现的XML文档。模板内容提供器可以含有切换逻辑,从而根据情况确定采用哪一模板。例如,如果正在创建输入文本模式,并且文本容器是表格,那么内容提供器可以选择将输入文本用户界面控制包封到列单元下的模板。在本发明的一个实施例中,内容提供器的输出是内容对象,该对象是含有所生成的内容以及有关所述内容的诸如实现类型的额外信息的自描述对象,所述实现类型将识别出用于所述内容以及生成的内容所针对的方面的实现。模板指定针对具体方面的模式内容。通过模板表示的模式的内容可以包括(例如)含有目标表现所特有的文本片段的特定于语言的文字、在对模板实例化时能够代入值的变量、模式内包含的子模式、基于输入性质和模板参数的条件句以及嵌入到模板内的子模板。一旦识别出了一个方面的内容提供器,那么判断是否已经识别了最后一方面(步骤450)。如果还有其他方面,那么识别这样的其他方面(步骤430),这时所述过程将循环过所述模式的其他方面。如果已经识别了最后一个方面,那么识别所述模式的生成语境(步骤460)。生成语境是在使模式实例化时可用的资源的集合。这些资源可在模板内作为变量加以访问。之后存储模式和相关元数据(例如,存储在可为特许用户所访问的储存库内)(步骤470)。图5是示出了模式、子模式、模式种类和各种规则/方面/模板之间的关系的例子的简化方框图。指定可在模式之间共享的公共规约和资源的以及用于模式的外部契约的模式种类(在图5中示为模式种类510)可以包括一个或多个采取了这些规约、资源和外部契约的模式(在图5中将其描述为模式520)。模式可以包括一个或多个子模式530,其能够为模式提供更多的基本元素。例如,子模式可以涉及模式描述的用户界面窗口中包含的日期检出器元件。模式520可以受到一组规则、方面和模板540的限制。类似地,每一子模式530可以与一组规则、方面、模板550相关,类似地,第二模式535可以与另一组规则、方面和模板555相关。如上所述,限制规则、方面和模板提供了与每一模式相关的各种参数,其将限制值的各种组合以及能够获准在模式内交互的子模式的组合。此外,模式种类510能够与规则、方面和模板的模式种类集合相关。可以将模式种类与模式和子模式之间的关系看作是分级关系。一个模式种类中的模式采取模式种类指定的特性,除非由模式内的值对其进行覆盖。此外,子模式可以采取(例如,继承)其所属的模式的特性,除非被子模式所覆盖。可以通过某种方式巧妙设计用于子模式的参数值,从而将其从母模式传递给子模式。一个模式可以不只包含在一个模式种类当中。这样的模式采取其作为成员的每一模式种类的定义特性,但前提是这些特性彼此不发生冲突。在来自每一模式种类的特性发生矛盾的情况下,所述模式只能采取这些特性之一。在本发明的一个实施例中,模式将采取最后一个相关模式种类的特性。规划570提供了在由模式生成意图之前、之时和之后要完成的步骤。所述规划提供了一组有关如何使参数的输入等与模式结合起来的指导。因而,假定向配置器提供了输入,那么所述规划将针对使参数和模式联系起来的方式提供了对生成程序的引导。在本发明的一个实施例中,开发供访问云环境中的计算机资源的企业使用的模式储存库。通过某种方式对储存库内的模式进行审查,从而保证由所述模式生成的软件不会对云环境的用户造成破坏。此外,储存库内的模式可以经过批准才可用于具体的问题域,并且可使其只能被这些问题域的批准用户所访问。因而,可以使安全适得其所,这样只有获得生成该域内的新软件的批准的“域专家”才能访问与该域相关的模式。此外,一个域的域专家不能访问与不具有其特许使用权的另一问题域相关的模式。通过使用这样的系统,经过批准的用户能够采用被设计为促进其意图的表达的模式来表达其对期望软件的意向,之后将这些生成意图提供给软件生成器,所述软件生成器将输出期望的企业类别对象,例如,业务对象、数据对象和用户界面。示例企业服务器架构图6是示出了可与本发明的实施例结合使用的企业服务器架构的简化方框图,所属架构包括联系图5的简化方框图描述的软件构造。所示出的企业服务器架构包括企业服务器610,它是支持访问共同的数据库630的客户端群(例如,客户端660和665)的一个或多个服务器620的逻辑组。可以将企业服务器作为单个逻辑组进行配置、管理和监测,从而允许管理员对企业服务器610内的服务器620进行起动、停止、监测或者参数设置。在这样的配置中,在企业服务器层级上设置企业系统的参数,这些参数适用于在企业服务器内工作的每一服务器。此外,可以在服务器(例如服务器620)层级上对其他参数进行调整,以支持对这些参数的细调。在这一分级参数语境下,如果在服务层次级上设定参数,那么该参数的特定于服务器的值将超越该参数的企业服务器层级设置。此外,组件层级(服务器620上运行的过程)上的参数设置将超越服务器层级上的参数设置。可以将服务器620配置为支持访问所述服务器的每一客户端的后端及交互过程。将这些过程示为每一服务器内的一个或多个组件625。诸如服务器620的服务器能够支持(例如)多过程和多线程组件,并且能够按照后台、批处理和交互方式运行组件。服务器组件还可以同时在服务器620中的多者上运行,以支持更高数量的用户和/或更高的批处理工作负荷。组件过程的例子包括(例如)移动网络客户端同步、网络客户端的业务逻辑的操作、用于客户端的数据库和文件系统的连接和访问、与传承数据或第三方数据(例如,非企业系统所固有的数据)的整合、新帐户、机会、服务请求和其他记录自动分配以及工作流管理。也可以将本发明的搜索过程的实施例实现为作为组件在一个或多个服务器620上运行。将服务器620耦合至被示作企业服务器610的部分的网关服务器650。网关服务器650协调企业服务器610和服务器620的操作。这样的网关服务器能够对企业服务器配置信息的持久存储,所述信息包括(例如)组件组和组件的定义和分配、工作参数和连接信息。网关服务器还能够充当服务器和组件可用性信息的登记处。例如,企业服务器610内的服务器(例如,服务器620之一)能够向网关服务器650进行可用性的通知。可以将诸如网络地址的连接信息存储在网关服务器650访问的存储器内。如果服务器620之一关机了或者变得不可用,那么可以从网关服务器650中清除与该服务器相关的连接信息。服务器620及其组件625能够通过其在企业服务器610内的关系访问一个或多个数据源(例如,数据库630和文件系统640)。数据库630能够存储(例如)与企业系统影响的所有操作相关的RDBMS客户端软件和表格、指标和数据。这样的数据库信息可以包括(例如)客户信息、市场数据、历史价格制定信息、当前价格制定信息、联系信息等。类似地,文件系统640能够存储客户端660和665以及企业服务器610使用的数据和物理文件。文件系统640可以是不同装置上的共享目录或者目录集,企业服务器610内的所有服务器620都可对其进行网络访问。为了使客户端获得对文件系统640内的文件的访问,客户端能够连接至服务器620中的适当服务器,以请求文件上传或下载。于是,所述服务器能够采用(例如)文件系统管理组件访问文件系统640。如上所述,能够将本发明的过程的实施例实现为作为组件在一个或多个服务器620上运行。这些服务器能够形成私有或者公共云计算环境,或者可以是其部分。替代实施例提供了可受到相同的或者不同的网络服务器访问的单独服务器。客户端660和665为使用企业系统的代理提供对企业服务器610的访问。客户端通过直接的方式(例如,客户端660)或者通过网络服务器670 (例如客户端665)经由网关服务器650与企业服务器610通信。网络服务器670提供企业服务器610对基于网络的请求(例如,HTML、XML等)做出响应的机制。网络客户端665可以包括通过局域网、城域网或广域网耦合至网络服务器670并且通过各种通信媒介传播的客户端,如上文所讨论的。此夕卜,网络客户端665可以包括通过无线通信手段访问网络服务器670的移动客户端。客户端660和网络客户端665的用户可以包括(例如)销售代理、服务代理、客户代表、企业实体管理者等。用户可以访问数据库630内的可由企业服务器610访问的所有信息,其受到用户的安全访问权的控制。客户端660和网络客户端665可能遍及企业分布,其可能包括成百上千的这样的客户端。每一这样的客户端都能够执行与将要存储到(例如)数据库630内的新记录的创建、数据库630中的记录修改或者数据库630中的信息搜索相关的任务。可扩展云程序设计环境中的意图程序设计模型的示例实现图7是示出了根据本发明的实施例的可扩展性框架架构的各种元素的方框图(在图7中将其示为可扩展性框架架构700)。对于可扩展性框架架构700的操作而言最核心的是规划705。规划705指定将由所述架构的规划处理模块(在图7中将其示为规划处理模块710)执行和/或指导的操作(或者在某些实施例中促进所述操作的识别)。通常至少部分地基于规划处理模块710接收到的命令712确定规划705,例如,所述命令接收自配置器714。配置器714是根据未经训练的用户(例如自服务程序员)量身打造的配置工具,其允许这样的用户向现有应用添加新的软件组件,或者修改其内现有的软件组件。规划(例如,规划705)指定要在实施给定命令的过程中执行的一个或多个通常处于具有某种排序的序列内的操作。在某些实施例中,通过执行器类别执行由规划指定的每
一操作。例如,“CreateAttribute (创建属性)”命令可以具有指定下述操作的规划:1.分配可用的属性。2.识别要将所述模式注入到其内的目标元数据和人工产物。3.针对所述新的属性创作模式。4.将所述新模式注入到所述目标元数据内。将联系图12更为详细地讨论根据本发明的实施例的通过规划促进的操作以及功能的另一例子。在接收到命令712时,规划处理模块710参考包括对规划705的信息映射命令712(以及反向情况)的映射信息(例如,命令登记(未示出))。应当认识到,命令可以映射至不只一个规划,反过来说就是可以有不只一个命令映射至给定规划。因而,命令和规划之间的关系可以是1:N、1:1或者N:1及其组合。一旦识别出了规划705,就识别出了规划概括出的操作,并在可能并且适当的情况下执行所述操作。考虑到本公开应当认识到,在某些实施例中,诸如命令712的命令被实现为XML片段,其含有能够在模式的创建和注入过程中使用的配置选项。此外,例如,能够将一组这样的命令保存在命令配置文件中。前述命令范例起着自服务程序员的与可扩展性框架架构700的初级接口的作用。根据本发明的实施例的命令优选是通配的轻量机制,从而使调用者(例如,诸如配置器714的配置器等)能够容易有效地生成并注入新的模式。为了执行模式的创建和注入所需的操作(并由此支持所讨论的软件组件的可扩展性),可扩展性框架架构700提供了模式管理器715、人工产物管理器720和注入解析器725。模式管理器715响应于模式请求730访问模式储存库732。在某些实施例者,模式储存库732 (文中又称为组件储存库)是可用于应用构建的预构建组件的集合。此外,如果有必要可以执行一个或多个模式构成操作。如文中在别处指出的,模式构成是指由其他(通常更为基本的)模式构成语义丰富的模式的过程。如文中别处所述,这种通过汇集更简单的模式创建更为复杂的模式的能力进一步提高了可扩展性框架架构700的可扩展性质,将联系图8对其做更加详细的讨论。在已经识别了(和/或构成了,视情况而定)一个或多个满足模式请求730的模式的情况下,模式管理器715返回如此识别或者构成的模式(在图7中将其描述为模式734)。在图7描绘的例子中,呈现了样本用户界面模式736作为这样的模式的例子。样本用户界面模式736包括显示信息737和绑定信息738。例如,可以将显示信息737实现为显示模板,其可以包括指定样本用户界面模式736的观感的信息。类似地,绑定信息738也可以采用显示模板,例如,其可以包括指定样本用户界面模式736与给定数据模型的交互方式的信息。联系图8提供了与显示信息737和绑定信息738相当的元素的例子。作为提供模式734的部分,模式管理器715可以必须执行模式构成。模式构成是指由更为基本的模式构成更为复杂的语义丰富的模式的过程。在先前描述的方式当中,模式是符合具体的语义和使用情况的可重复使用的构件块。模式与组件类似,但是具有至少一个差别:通常,组件是针对很宽的范围内的使用构建的,而模式通常是针对少数的几种具体的使用情况构建的。因而,组件通常在采取这样的使用方案的过程中提供丰富的可配置选项的集合。作为区分,模式具有在可配置性方面降低了其复杂度的固有语义。模式中的固有语义可以是通过其结构以及其预定义性态表征的,而在组件当中,这些结构和性态通常是可配置的。然而,要认识到,文中使用的模式一词旨在传达组件的使用的可能性(作为直观的例子,假定模式出于本公开的目的只是具有以可配置性降低为代价简化了其使用的固有语义的组件)。模式可以属于一个或多个模式种类,将进一步联系图8对此予以描述。每一模式种类促成给定模式的使用过程中的外在化契约。所述外在化契约包括一组表征模式的配置选项的性质。模式可以具有一个或多个方面,每一这样的方面满足模式实质化过程中的某一要求。模式的模式种类指定该模式种类的模式可以具有的方面。每一方面又包括提供该方面的实际内容的内容提供器。内容提供器能够在实际的内容的汇编过程中采用一个或多个模板。这样的模板可以指定作为模板采用的配置选项的性质。性质名称通常是字母数字串(优选不区分大小写),可以为性质指定默认值(例如,文字串)。模式的另一个可能的特性是注释。注释为模式提供语义含义。例如,如果采用模式生成细节表,那么能够在注释中捕捉到这一信息。可以在以后生成这一模式的人工产物过程中采用这一注释(例如,在创建所述模式时)。图7中描绘的可扩展性框架架构700的另一特征是人工产物管理器720。人工产物管理器720除了包括其他元件之外还包括多个适配器(在图7中将其示为适配器740(1)-(N))。如图7所示,适配器740 (I)-(N)允许人工产物管理器720访问程序设计构造的各种资源,例如元数据、人工产物等(图7中示出了构造资源741 (I)-(M)作为其例子)。人工产物是为一条运行时间元数据赋予含义的抽象化。人工产物除了具有其他特性和能力以外还能够提供必要的抽象,从而允许从运行时间元数据进行性质检索。或者,能够将人工产物管理器720设计为直接访问构造源(从而使得前述适配器可选)。还可以将人工产物管理器720设计为直接访问其他信息,例如各种登记(图7中示出了人工产物登记处742作为其例子)。然而,如图7所示(并且如上文指出的),适配器740 (I) - (N)不仅将人工产物管理器720接口连接至构建资源741 (I) - (M),而且还接口连接至这样的构造源的例子,即元数据储存库744。如图所示,人工产物管理器720通过适配器740(1)访问元数据储存库744,通过适配器(2)-(N)访问构造源741 (I)-(M)。应当认识到,尽管被示为具有1:1的关系,但是在既定的实现中所采用的适配器和构造源实际上也可以具有一对多、多对一或者多对多的关系和/或所述关系的某种组合。然而,在图7所示的方案中,应当认识到适配器740 (I) - (N)中的每者将人工产物管理器720接口连接至指定构造源(即,元数据储存库744或者构造源741 (I) - (M)之一)。考虑到本公开应当认识到,人工产物登记处742保存可得以在可扩展性框架架构700中使用的人工产物以及与其相关的信息。考虑到本公开还应当认识到,人工产物登记处742中的人工产物将至少就某一方面而言是可配置的(即,可定制的),由此将对注入过程有所促进。类似地,元数据储存库744保存与人工产物相关的元数据(例如,目标元数据748)。应当理解,元数据储存库744只是能够使其为人工产物管理器720所用的各种人工产物储存库的一个例子,此外,这样的储存库支持能够通过应用开发框架使其为自服务程序员所用的功能,例如,所述框架可以是联系图13描述的框架。在人工产物管理器720接收到来自规划处理模块710的人工产物请求(在图7中将其示为人工产物请求746)时,人工产物管理器720通过适配器访问变得可用的数据源(例如,人工产物登记处742和元数据储存库744),从而响应于来自规划处理模块710的人工产物请求746识别、访问和提供所请求的信息(该信息是包括所请求人工产物和相关元数据的信息)(在图7中将其示为目标元数据748))。人工产物的聚集连同其他构造一起包含(或者可能包含)在具有给定配置的人工产物管理器720可用的各种人工产物登记处当中。文中将人工产物的某些聚集称为划分。划分是指一个应用域所特有的配置人工产物(例如模式和规划)的集合。在某些实施例中,通过文件名和文件系统目录识别划分。放置到划分的文件系统目录中的配置文件将属于该划分。将联系图9更为详细地讨论人工产物管理器720的操作以及其他相关的要素及其额外特征。所请求的模式(模式734)和必要的元数据(目标元数据748)现在已可用,因而规划处理模块710能够继续规划705识别的操作,并将所请求的模式和元数据提供给注入解析器725。诸如注入解析器725的注入解析器725 (文中又称为模式解析器)确定所要生成的模式,而其又取决于由此接收到的输入(例如,模式734和目标元数据748)。例如,可以基于给定命令、一个或多个属性类型和目标人工产物选择多个模式中的具体模式进行注入。更具体而言,模式注入是指将模式注入到现有人工产物内(例如,从而允许自服务程序员对人工产物进行定制)以及由实质化的模式创建新的人工产物(例如,从而允许自服务程序员在所述模式的模式程序员定义的全域内创建人工产物)的过程。因而,将模式(例如,模式705)注入到人工产物的运行时间元数据(例如,目标元数据748)内。如文中别处指出的,运行时间元数据是指在运行时间系统的软件组件中采用的元数据。例如,在一种实现中,运行时间元数据和所产生的软件组件是针对所讨论的应用创建的软件文件(例如,应用开发框架文件)的集合。在这样的实现中,通过唯一的名称引用每一条运行时间元数据。因而,可以采用运行时间元数据的唯一名称从元数据储存库(例如,元数据储存库744)中检索到所述运行时间元数据的内容。如前面指出的,人工产物是为一条运行时间元数据赋予含义的抽象化。在一种实现当中,人工产物的例子是图框。图框是对应于用户界面页面内的区域的用户界面人工产物。主区域是能够映射至页面内的版面布局元素的图框。版面布局元素是将被显示为主对象的字段的容器。在这样的方案中,人工产物将携带下述信息:1.名称人工产物的名称。2.种类其描述了属于何种人工产物种类(例如,图框)。3.目的其描述了此人工产物意思是什么(例如,主区域)。4.应用到其描述应用这一人工产物的语境。5.描述符每一描述符是描述该人工产物(例如,标签、验证器等)的名称一值对。如上所述,应用到信息指示了人工产物的应用语境。例如,图框人工产物用于显示实体(例如,机会)的字段。语境(机会)为这一图框人工产物赋予了额外的含义。此外,人工产物可以具有多个方面,其方式至少在概念上与模式的情况相当。每一方面取得人工产物和对应的运行时间元数据之间的映射。例如,人工产物方面可以具有下述信息:1.运行时间元数据名称一其用于从元数据储存库检索运行时间元数据的内容。2.定位器一定位器描述如何将这一人工产物定位到运行时间元数据内。就基于XML的元数据而言,例如,所述定位器可以是xpath表达式。在将模式注入到人工产物的元数据内时,通常需要有关所述人工产物的元数据中的将注入所述模式的点的信息,文中将其称为切入点。切入点指定了将模式注入到人工产物内的插入点。然而,这里应当指出,在切入点的自动识别和定位处于本公开的范围内时,情况就未必如此了。这样的自动识别和定位能够通过这样的技术实现,例如,运行时间元数据中的模式的识别、有关过去注入这样的模式的位置的历史信息的使用以及其他这样的自动化技术。在一种实现中,切入点可以包括(例如)下述信息:1.名称一识别切入点的唯一名称。
2.算子一指定如何将模式插入到人工产物中的切入点算子。3.注入器一作为用于执行插入的实施类别的注入器。能够在切入点信息中识别出这一类别,或者可以将其实际包含到信息本身当中。就算子切入点信息而言,如此识别出的切入点算子的例子包括“插入”、“之后”、“之前”和“插入排序”。“插入排序”指示注入解析器725将模式插入到运行时间元数据中的现有元素之间的相对位置内。每一切入点算子可以与具体的方面相关。例如,对于显示方面而言,可以采用“插入排序”切入点算子,而对于绑定方面而言,可以采用“插入”切入点算子。在可扩展性框架架构700中,对于要通过注入解析器725注入到人工产物中的模式而言,需要下面的两条信息:1.将要插入所述模式的人工产物。2.将要注入的模式。3.用于确定如何执行插入的切入点。在被呈现为可扩展性框架架构700的实现当中,将在注入过程中执行以下操作:1.选择模式中的方面。2.针对选定的方面从模式检索生成内容。3.针对选定的方面从人工产物检索运行时间元数据。可以针对选定的方面采用定位器对运行时间元数据进行检索。4.针对选定的方面对切入点算子进行检索。5.调用注入器,从而将所述生成的内容注入到运行时间元数据内。如前面指出的,也可以在可扩展性框架架构700中生成人工产物。为了采用给定模式执行人工产物生成,采用专门的切入点创建新的人工产物。在这样的方案中,必须对给定模式给出正确的注释,从而能够由模式的注释生成新的人工产物。注入解析器725除了包括其他元件外,还包括多个操纵器(在图7中将其示为操纵器750(1)-(N))。操纵器750(1)-(N)促进注入解析器725和可扩展性框架架构700的各个其他系统元件之间的交互,由此提供对接受定制的软件构造进行修改所需的功能。例如,操纵器750(1)允许注入解析器725与服务会话752交互。类似地,操纵器750 (N)允许注入解析器725与正在受到修改的各个软件组件754交互。在支持这样的功能的过程中,操纵器750 (I)-(N)允许注入解析器725在接收到目标元数据748和模式734之后,将模式734注入到目标元数据748内,并向一个或多个软件组件754提供所定制的元数据。在执行前述操作并使定制构造可用的过程中,规划处理模块710通过(例如)向元数据服务760提供注释和其他信息(在图7中示出了注释765作为其例子)而与元数据服务760通信。然而,还要认识到,元数据服务760能够直接支持与规划处理模块710相关的功能,从而包含对规划705的处理。图8是描绘根据本发明的实施例的数据模型的模式数据模型800的简化方框图。考虑到本公开应当认识到,模式数据模型800至少在某些特征和功能方面与联系图5的简化方框图描述的软件构造以及文中的别处描述的模式相当。模式数据模型800包括模式种类810、模式820、方面830、内容提供器840和模板850。从图8中所示的结构将认识到,实际上模式种类810和模式820具有多对多关系,这意味着诸如模式种类810的模式种类能够包含多个模式,模式820就处于所述模式当中。类似地,诸如模式820的模式可以含有一个或多个模式种类(例如,模式种类810) (S卩,作为其成员)。按照类似的方式,如图8所示,模式820可以具有一个或多个方面(例如方面830)。然而,诸如方面830的方面与其内容提供器(例如内容提供器840)具有一对一的关系。然而诸如内容提供器840的内容提供器可以与其模板(例如模板850)具有一对多的关系。诸如模式种类810的模式种类(也可以称呼其类别名“模式种类”)的主要功能是在同一“种类”的模式之间实现一致性。就其而言,模式种类起着两个作用:1.指定可在模式之间共享的共同规约和资源;以及2.指定模式的使用过程中的外部契约(作为性质集)。Π模式种类和数据模式种类是模式种类的例子。可以从母模式种类导出模式种类。例如,可以由Π模式种类导出文本Π模式种类。子模式种类能够继承母模式种类的资源。在一种实现中,能够在I吴式种类中指定下述特征:1.性质集。性质集是性质连同这些性质的默认值的集合。模式将从其模式种类自动继承这些性质。模式能够超越性质集的默认值。2.枚举。枚举含有串文字列表。性质可以参照枚举来指定其可能值的集合。3.方面集。方面集是模式能够具有的方面的集合。模式可以属于一个或多个模式种类。如果模式具有不只一个模式种类,那么通过列表指定这些模式种类,并应用下述规则解决模式种类之间的矛盾。1.如果两个模式种类形成了分级,那么子模式种类的资源优先。2.如果两个模式种类没有形成分级,那么列表中的后一模式种类的资源优先。方面指定给定模式的实质化过程中的某一要求。一个这样的要求可以是模式在目标域内的物理表示。用户界面模式(例如,样本用户界面模式736)可以具有两个方面,即显示方面(例如,显示信息737)和绑定方面(例如,绑定信息738)。显示方面指定模式的观感。绑定方面指定这一模式与模式数据模型800交互的方式。显示方面和绑定方面每者具有其自身的物理表示(例如,XML方案)。每一方面具有其对应的内容提供器,以指定如何为具体的表示生成内容。在某些实现中,诸如内容提供器840的内容提供器是Java类别,其控制某一方面的内容制作方式。典型地,内容提供器840采用一个或多个模板生成必要的内容。在这样的实现中,模板可以是(例如)含有所讨论的内容的部分实现的XML文档。或者,内容提供器840也可以以编程的方式生成内容。模板内容提供器是模板的一个更加具体的例子。模板内容提供器是基于模板生成内容的内容提供器。模板内容提供器可以含有切换逻辑,其能够根据情况确定采用哪一模板。例如,如果正在创建输入文本模式,并且目标容器是表格,那么内容提供器可以选择是否采用将输入文本用户界面控制包封到列单元下的模板。在某些实施例中,内容提供器的输出是内容对象。这样的内容对象是不只含有生成内容还含有有关所述内容的额外信息的自描述对象。作为例子,内容对象可以含有下述信息:1.生成内容;2.实现类型;以及
3.正在为其生成内容的方面。实现类型识别用于这一内容的实现。例如,实现类型可以是XML内容的“D0M” (指示文档对象模型约定)。在这样的实现中,如果缺失了实现类型,那么将其默认设置为实际内容的类别名。模板是针对具体方面的模式内容的指定。例如,可以采用模板指定基于XML的内容。能够在模板中表现模式的内容的形式的例子包括:1.特定于语言的文字。这样的文字实质上是目标表示所特有的文本片段。例如,考虑到基于ADF的模式的情 况,所述文字将是嵌入到模式内的ADF构造。2.变量。变量是在使模板实质化时能够代入值的符号。变量通常是指模式的输入性质和模板参数。3.子模式。模板本身能够嵌入其他子模式。4.条件句。条件句是模板内的切换条件。这样的条件能够以(例如)输入性质和模板参数为基础。5.子模板。模板本身能够嵌入子模板。这样的子模板将属于同一模式中的同一方面。每一模板实质上都是下层目标表示的构造的延伸。就ADF而言,用户界面模板(例如,将与样本用户界面模式736 —起使用的模板)将含有所讨论的应用(例如,CRM应用)的具体布局和视觉要求。模板还可以申明一个或多个参数。这样的参数能够被用作模板的文本中的变量。通常在能够将模板嵌入到同一方面的另一模板内时采用模板参数。模板参数增强了模板的可重复使用性。具有变量和条件的模板的例子如下:
权利要求
1.一种方法,包括: 从多个模式中选择一个或多个模式,其中 所述模式中的每一个被配置为描述多个问题域中的对应的一个问题域之内的解决方案,以及 所述一个或多个模式是针对企业软件对象的;以及生成企业软件对象,其中 所述生成使用所述一个或多个模式生成企业软件对象。
2.根据权利要求1所述的方法,其中 所述企业软件对 象是记录对象、业务逻辑对象、业务处理对象或者用户界面对象中的一个或多个。
3.根据权利要求1所述的方法,还包括: 提供参数的值,其中 所述参数是由所述一个或多个模式定义的。
4.根据权利要求3所述的方法,其中,所述提供值包括: 从用户界面输入字段接收值。
5.根据权利要求3所述的方法,其中, 所述参数的值被配置为定义所述企业软件对象的特性。
6.根据权利要求3所述的方法,还包括: 根据一个或多个规则限制所述选择,其中 所述一个或多个规则与所述一个或多个模式中的一个或多个或者企业软件对象相关联。
7.根据权利要求6所述的方法,其中 所述一个或多个规则中的一个规则支配模式的可允许的组合。
8.根据权利要求6所述的方法,其中 所述一个或多个规则中的一个规则被配置为限制所述参数的值。
9.根据权利要求6所述的方法,还包括: 选择所述一个或多个规则,其中 基于有关要为其生成企业软件对象的企业的信息来选择所述一个或多个规则。
10.根据权利要求1所述的方法,还包括: 生成所述一个或多个模式中的一个模式,其中 所述模式包括 针对企业软件对象的配置选项。
11.根据权利要求10所述的方法,其中,所述模式还包括: 针对所述企业软件对象的生成细节。
12.根据权利要求10所述的方法,其中,所述配置选项包括: 指定对在所述企业软件对象中实例化的模式的要求的一个或多个方面。
13.根据权利要求1所述的方法,还包括: 在云计算环境中执行所述选择和生成;以及 在所述云计算环境中执行所述企业软件对象。
14.一种计算机程序产品,包括:多个指令,包括 可在计算机系统上执行的第一指令集,其被配置为 从多个模式中选择一个或多个模式,其中 所述模式中的每一个配置为描述多个问题域中的对应的一个问题域内的解决方案,以及 所述一个或多个模式是针对企业软件对象的,以及 可在所述计算机系统上执行的第二指令集,其被配置为生成企业软件对象,其中 所述生成使用所述一个或多个模式来生成企业软件对象;以及 计算机可读存储介质,其中所述指令被编码在计算机可读存储介质内。
15.根据权利要求14所述的计算机程序产品,其中 所述企业软件对象是记录对象、业务处理对象、或者用户界面对象中的一个或多个。
16.根据权利要求14所述的计算机程序产品,其中,所述指令还包括: 可在所述计算机系统上执行的第三指令集,其被配置为提供参数的值,其中 所述参数是由所述一个或多个模式定义的, 所述第三指令集包括 可在所述计算机系统上运行的第一指令子集,其被配置为从用户界面输入字段接收值,以及 所述参数的值被配置为定义所述企业软件对象的特性。`
17.根据权利要求14所述的计算机程序产品,其中,所述指令还包括: 可在所述计算机系统上执行的第三指令集,其被配置为选择一个或多个规则,其中基于有关要为其生成企业软件对象的企业的信息选择所述一个或多个规则;以及可在所述计算机系统上执行的第四指令集,其被配置为根据所述一个或多个规则限制所述一个或多个模式的选择,其中 所述一个或多个规则与一个或多个模式中的一个或多个或者企业软件对象相关联, 所述一个或多个规则中的一个规则支配模式的可允许的组合,并且 将所述一个或多个规则中的另一个规则被配置为限制所述参数的值。
18.根据权利要求14所述的计算机程序产品,其中,所述指令还包括: 可在所述计算机系统上执行的第三指令集,其被配置为生成所述一个或多个模式中的一个模式,其中 所述模式包括以下项中的一个或多个 针对企业软件对象的配置选项, 针对所述企业软件对象的生成细节,以及 指定对在所述企业软件对象中实例化的模式的要求的一个或多个方面。
19.根据权利要求14所述的计算机程序产品,其中,所述指令还包括: 可在所述计算机系统上执行的第三指令集,其被配置为在所述云计算环境中执行所述企业软件对象,其中,所述第一和第二指令集被配置为在所述云计算环境中执行。
20.一种计算机系统,包括: 处理器; 耦合至所述处理器的计算机可读介质;以及指令,其中 所述指令被编码在所述计算机可读介质中,以及 所述指令被配置为使所述处理器 从多个模式中选择一个或多个模式,其中 所述模式中的每一个被配置为描述多个问题域中的对应的一个问题域内的解决方案,以及 所述一个或多个模式是针对企业软件对象的,以及 生成企业软件对象,其中 所述生成使用所述一个或多个模式生成企业软件对象。
全文摘要
公开了用于在企业环境内扩展和修改软件功能,更具体而言,用于在企业环境内采用针对企业软件对象的一个或多个模式表达期望的功能和配置,以及采用所述模式生成所述企业软件对象的方法、软件程序和系统。根据这些实施例中的某些实施例的方法包括从多个模式中选择一个或多个模式,其中,所述一个或多个模式是针对企业软件对象的。之后能够生成企业软件对象。所述企业软件对象是采用所述一个或多个模式生成的。每一模式被配置为描述多个问题域中的对应的一个问题域内的解决方案。
文档编号G06F9/44GK103119557SQ201180044414
公开日2013年5月22日 申请日期2011年9月19日 优先权日2010年9月17日
发明者R·M·亚塞恩, J·亮, Y·乔一, 张晓梅 申请人:甲骨文国际公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1