《云计算环境中的企业应用的基于模式的构造和扩展.pdf》由会员分享,可在线阅读,更多相关《云计算环境中的企业应用的基于模式的构造和扩展.pdf(69页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103119557 A(43)申请公布日 2013.05.22CN103119557A*CN103119557A*(21)申请号 201180044414.9(22)申请日 2011.09.1961/384,086 2010.09.17 US13/236,022 2011.09.19 USG06F 9/44(2006.01)(71)申请人甲骨文国际公司地址美国加利福尼亚(72)发明人 RM亚塞恩 J亮 Y乔一张晓梅(74)专利代理机构中国国际贸易促进委员会专利商标事务所 11038代理人李晓芳(54) 发明名称云计算环境中的企业应用的基于模式的构造和扩展(57) 摘要。
2、公开了用于在企业环境内扩展和修改软件功能,更具体而言,用于在企业环境内采用针对企业软件对象的一个或多个模式表达期望的功能和配置,以及采用所述模式生成所述企业软件对象的方法、软件程序和系统。根据这些实施例中的某些实施例的方法包括从多个模式中选择一个或多个模式,其中,所述一个或多个模式是针对企业软件对象的。之后能够生成企业软件对象。所述企业软件对象是采用所述一个或多个模式生成的。每一模式被配置为描述多个问题域中的对应的一个问题域内的解决方案。(30)优先权数据(85)PCT申请进入国家阶段日2013.03.15(86)PCT申请的申请数据PCT/US2011/052158 2011.09.19(8。
3、7)PCT申请的公布数据WO2012/037557 EN 2012.03.22(51)Int.Cl.权利要求书3页 说明书44页 附图21页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书3页 说明书44页 附图21页(10)申请公布号 CN 103119557 ACN 103119557 A1/3页21.一种方法,包括:从多个模式中选择一个或多个模式,其中所述模式中的每一个被配置为描述多个问题域中的对应的一个问题域之内的解决方案,以及所述一个或多个模式是针对企业软件对象的;以及生成企业软件对象,其中所述生成使用所述一个或多个模式生成企业软件对象。2.根据权利要求1所述的方法。
4、,其中所述企业软件对象是记录对象、业务逻辑对象、业务处理对象或者用户界面对象中的一个或多个。3.根据权利要求1所述的方法,还包括:提供参数的值,其中所述参数是由所述一个或多个模式定义的。4.根据权利要求3所述的方法,其中,所述提供值包括:从用户界面输入字段接收值。5.根据权利要求3所述的方法,其中,所述参数的值被配置为定义所述企业软件对象的特性。6.根据权利要求3所述的方法,还包括:根据一个或多个规则限制所述选择,其中所述一个或多个规则与所述一个或多个模式中的一个或多个或者企业软件对象相关联。7.根据权利要求6所述的方法,其中所述一个或多个规则中的一个规则支配模式的可允许的组合。8.根据权利要。
5、求6所述的方法,其中所述一个或多个规则中的一个规则被配置为限制所述参数的值。9.根据权利要求6所述的方法,还包括:选择所述一个或多个规则,其中基于有关要为其生成企业软件对象的企业的信息来选择所述一个或多个规则。10.根据权利要求1所述的方法,还包括:生成所述一个或多个模式中的一个模式,其中所述模式包括针对企业软件对象的配置选项。11.根据权利要求10所述的方法,其中,所述模式还包括:针对所述企业软件对象的生成细节。12.根据权利要求10所述的方法,其中,所述配置选项包括:指定对在所述企业软件对象中实例化的模式的要求的一个或多个方面。13.根据权利要求1所述的方法,还包括:在云计算环境中执行所述。
6、选择和生成;以及在所述云计算环境中执行所述企业软件对象。14.一种计算机程序产品,包括:权 利 要 求 书CN 103119557 A2/3页3多个指令,包括可在计算机系统上执行的第一指令集,其被配置为从多个模式中选择一个或多个模式,其中所述模式中的每一个配置为描述多个问题域中的对应的一个问题域内的解决方案,以及所述一个或多个模式是针对企业软件对象的,以及可在所述计算机系统上执行的第二指令集,其被配置为生成企业软件对象,其中所述生成使用所述一个或多个模式来生成企业软件对象;以及计算机可读存储介质,其中所述指令被编码在计算机可读存储介质内。15.根据权利要求14所述的计算机程序产品,其中所述企业。
7、软件对象是记录对象、业务处理对象、或者用户界面对象中的一个或多个。16.根据权利要求14所述的计算机程序产品,其中,所述指令还包括:可在所述计算机系统上执行的第三指令集,其被配置为提供参数的值,其中所述参数是由所述一个或多个模式定义的,所述第三指令集包括可在所述计算机系统上运行的第一指令子集,其被配置为从用户界面输入字段接收值,以及所述参数的值被配置为定义所述企业软件对象的特性。17.根据权利要求14所述的计算机程序产品,其中,所述指令还包括:可在所述计算机系统上执行的第三指令集,其被配置为选择一个或多个规则,其中基于有关要为其生成企业软件对象的企业的信息选择所述一个或多个规则;以及可在所述计。
8、算机系统上执行的第四指令集,其被配置为根据所述一个或多个规则限制所述一个或多个模式的选择,其中所述一个或多个规则与一个或多个模式中的一个或多个或者企业软件对象相关联,所述一个或多个规则中的一个规则支配模式的可允许的组合,并且将所述一个或多个规则中的另一个规则被配置为限制所述参数的值。18.根据权利要求14所述的计算机程序产品,其中,所述指令还包括:可在所述计算机系统上执行的第三指令集,其被配置为生成所述一个或多个模式中的一个模式,其中所述模式包括以下项中的一个或多个针对企业软件对象的配置选项,针对所述企业软件对象的生成细节,以及指定对在所述企业软件对象中实例化的模式的要求的一个或多个方面。19。
9、.根据权利要求14所述的计算机程序产品,其中,所述指令还包括:可在所述计算机系统上执行的第三指令集,其被配置为在所述云计算环境中执行所述企业软件对象,其中,所述第一和第二指令集被配置为在所述云计算环境中执行。20.一种计算机系统,包括:处理器;耦合至所述处理器的计算机可读介质;以及权 利 要 求 书CN 103119557 A3/3页4指令,其中所述指令被编码在所述计算机可读介质中,以及所述指令被配置为使所述处理器从多个模式中选择一个或多个模式,其中所述模式中的每一个被配置为描述多个问题域中的对应的一个问题域内的解决方案,以及所述一个或多个模式是针对企业软件对象的,以及生成企业软件对象,其中所。
10、述生成使用所述一个或多个模式生成企业软件对象。权 利 要 求 书CN 103119557 A1/44页5云计算环境中的企业应用的基于模式的构造和扩展0001 相关申请的交叉引用0002 本申请要求2010年9月17日提交的发明名称为“Pattern-Based Construction and Extension of Enterprise Applications in a Cloud Computing Environment”、发明人为Rahim Mohamed Yaseen、John Liang、Yunhee Choi和Xiaomei Zhang的美国临时申请No.61/384086的。
11、优先权。这里通过引用将上文提及的申请全文并入本文并且用于所有目的。技术领域0003 本发明涉及软件功能的扩展和修改,更具体而言,涉及采用一个或多个模式使企业软件对象表现出期望的功能和配置,以及在企业环境中采用所述模式生成企业软件对象。背景技术0004 与虚拟化和大规模实用程序计算联合的计算的成本的降低引发了普遍的计算资源和网络连通性,其又引发了新的计算范例(例如,云计算)。这样的因特网规模的计算资源能够为多个应用降低运作成本。云计算进一步为合作式应用以及移动平台目标提供了基础。云计算以可分级的服务器平台为基础,其适于处理存在高度交互的协作式应用(例如,社交应用和基于云的办公室应用)的计算负载。。
12、0005 随着因特网规模的计算基础设施变得越来越为大规模付费服务所承受得起,云计算用户将寻求与之匹配的软件资源装备能力。云计算资源能够提供平台即服务(PaaS)产品,其包括在云基础设施内支持的软件和产品开发工具。或者,软件即服务(SaaS)云模型包括通过前端入口与用户交互的软件产品。在这样的环境中,用户将希望软件功能处于能够支付得起的价格范围内。这样的用户可能是(例如)在软件编程方面即使受过培训和/或具有经验也十分有限的商业用户。尽管如此,云资源的企业客户仍然需要按照与其需求相适应的方式进行软件配置。0006 历史上,一直在从计算机的角度解决软件的创建。大部分软件都是利用通用程序设计语言表达的。
13、。因而,程序的重点在于计算机的要求是什么(例如,执行细节)上,而不是开发软件所要解决的问题。因而,要通过修改程序的代码实施所述问题或者预期解决方案的处理变化。但是用于写软件的通用程序设计语言却是具有一般性的,因而其并非是为了清晰地表达所要解决的问题而创造出来的。其使得编写这样的软件以及以后做出修改(例如,反映由其解决的问题的变化)都是一项困难的任务。0007 对所要解决的问题最为熟悉的人当数在其特定的问题域使用所述软件的人。域专家熟知在所述问题域必须满足的议题、概念和定义。另一方面,软件程序员则具有软件创建方面的专业技能,在传统上其与域专家一起工作来生成软件。这种任务和专业技能的分工不可避免地。
14、导致一方或者双方遭受挫折,因为程序规范的变化以及该问题域的复杂性是能够被域专家所理解的,但是其将导致程序员一方的大量重写和修订。类似地,程序员一方对说 明 书CN 103119557 A2/44页6域专家提供的描述做出错误的理解可能导致域专家一方受挫。0008 图1A是示出了传统的软件开发工作流程的简化方框图。域专家105将问题陈述传达给程序员110。这一操作通常是采用不能自动转换成代码的格式完成的,例如,规范、使用情况、情节、注解、草图等。于是,程序员110将采用如此描述的意向连同程序员在软件工程方面的知识和专业技能创建能够通过计算机执行的源代码115。出于维护或者校正目的对软件所做的修改必。
15、须在域专家105提供的问题陈述中定义,之后单独由程序员110实施。为了对程序进行扩展或者维护,程序员110必须将实施分解,围绕所讨论的部分进行推理,解决问题,之后将实施重新组合,从而获得预期的结果。这一“拆分”软件,之后重新将软件合并起来的过程可能引入程序设计错误,并且提高了软件成本。0009 为了使软件反映域专家对该软件的意图,优选通过域术语表达所述问题。这必然需要采取另一步骤通过域术语做出问题说明,并将该说明转换成计算机能够执行的软件,即,程序生成。尽管程序员能够通过采用所述软件解决的域问题所熟悉的术语的方式编写代码,但是能够证明这样的程序设计在其域具有复杂词汇的大的系统当中或者在其他这样。
16、的情况下存在困难。0010 因此,考虑到上述内容并且为了适应用户对企业级云编程设施的需求,希望为这样的用户提供这样的应用开发环境,其(1)足够简单,能够被缺乏广泛的编程训练和/或经验的用户使用,(2)充分地易于定制,从而既与这样的用户的技能匹配,又能够实现有效率的定制。此外这样的应用开发环境还应当使应用定制通过这样的一种方式执行,即,不会对其他用户对所涉及的云资源(例如,正被定制的应用)的访问造成干扰。发明内容0011 在本发明的各种实施例中,公开了用于在企业环境内对软件功能进行扩展和修改,更具体而言,用于在企业环境内采用一个或多个用于企业软件对象的模式表达期望的功能和构造,以及采用所述模式生。
17、成企业软件对象的方法、软件程序和系统。根据这些实施例中的某些实施例的方法包括从多个模式中选择一个或多个模式,其中,所述一个或多个模式是针对企业软件对象的。之后能够生成企业软件对象。所述企业软件对象是采用所述一个或多个模式生成的。将所述模式中的每个配置为描述多个问题域中的对应的一个之内的解决方案。0012 上文只是一个概括,因而其必然含有细节的简化、一般化和省略;因此,本域技术人员将认识到所述概括只是说明性的,而不是旨在做出任何限制。唯独通过权利要求定义的本发明的其他方面、创造性特征和优点将在下文阐述的非限制性详细说明中变得显而易见。附图说明0013 通过参考附图能够对本发明更好地理解,并且能够。
18、使本发明的多个目的、特征和优点对本域技术人员而言变得显而易见。0014 图1A是示出了传统的软件开发工作流程的简化方框图。0015 图1B是示出了生成程序设计工作流程的简化方框图。0016 图2A是示出了云计算概念的简化方框图。说 明 书CN 103119557 A3/44页70017 图2B是示出了根据本发明的实施例的结合了模式的问题解决方案流的例子的简化框图。0018 图3是示出了采用根据本发明的实施例的采用模式的企业软件对象生成的例子的简化流程图。0019 图4是示出了根据本发明的实施例的在模式创建过程中执行的操作的例子的简化流程图。0020 图5是示出了根据本发明的实施例的模式、子模式。
19、、模式种类和各种规则/方面/模板之间的关系的例子的简化方框图。0021 图6是示出了可与本发明的实施例结合使用的企业服务器架构的简化方框图。0022 图7是示出了根据本发明的实施例的可扩展性框架架构的各种元件的方框图。0023 图8是示出了根据本发明的实施例的的数据模型的简化方框图。0024 图9是示出了根据本发明的实施例的元数据管理架构的方框图。0025 图10是示出了根据本发明的实施例的能够通过可扩展性框架架构执行的操作的例子的流程图。0026 图11是示出了根据本发明的实施例的通过规划指定的操作的例子的流程图。0027 图12是示出了根据本发明的实施例的能够通过规划指定的操作的例子的流程。
20、图。0028 图13是示出了根据本发明的实施例的可扩展性框架架构的实现和定制软件组件的生成的方框图。0029 图14A是示出了根据本发明的实施例的包括可扩展性框架的示例架构的方框图。0030 图14B是示出了根据本发明的实施例的视图对象以及其与根据本发明的实施例的可扩展性框架的其他元件的关系的例子的方框图。0031 图14C是示出了根据本发明的实施例的实体对象和视图对象的元件之间的交互和关系的例子的方框图。0032 图15是示出了根据本发明的实施例的可扩展性框架数据库架构的各种特征的方框图。0033 图16是根据本发明的实施例的网络(网络)服务可扩展性架构的方框图。0034 图17是示出了根据。
21、本发明的实施例的可扩展分析架构的方框图。0035 图18是描绘适于实现本发明的各个方面的计算机系统的方框图。0036 图19是描绘适于实现本发明的各个方面的网络架构的方框图。具体实施方式0037 本发明的实施例提供了利用一般化的机制构建应用模式并采用这些模式生成新的或者修改的软件对象的方法、设备和系统。这样的系统采用基本基元和相关操作将简单的模式汇编成语义丰富的模式。之后,可以将实例化的模式(例如,对象)添加到现有的应用当中,由此(例如)出于企业的特定目的对这些应用进行修改。本发明的实施例还能够使未经培训的用户采用预先汇编的模式对应用(例如,SaaS应用)进行扩展。本发明的实施例还提供了配置工。
22、具,其用于通过访问这样的模式的储存库而向现有应用中添加新的软件组件。这样的配置工具允许用户从储存库中选择一个或多个用于企业软件对象的模式,提供说 明 书CN 103119557 A4/44页8适于所述模式的具体实例化的参数值,之后采用这些实例化的模式生成企业软件对象。0038 目的性程序设计0039 图1B是示出了生成程序设计工作流程的示例的简化方框图。在生成程序设计环境中,现在程序员110的工作重点在于设计并实施创建生成程序120(文中又称为模式引擎)所需的软件,其接收域代码125作为输入,并输出可执行代码115。可以通过包括适合问题域的术语和概念的特定于域的语言表达域代码125。程序员的责。
23、任从直接写程序发生了变化,其工作重心转移到了生成程序120的创建和维护上。程序组织和数据结构将继续得到设计、定义和编写,但是可执行代码115则通过域代码125参数化。可执行代码115的预期变化受到域代码125的影响,可以将域代码125重新输入至生成程序120,以实现这些变化。计算机执行在历史上将是程序员的任务的工作,即,根据域代码语言和源代码语言之间的对应关系分布域代码变化。0040 生成技术的不同应用在如何定义用于域代码125的特定于域的语言、如何创建域代码以及生成程序120如何使用域代码方面可能存在差异。生成程序120的使用将域专家的关切事项与程序员的关切事项分离开来。在生成软件环境中,域。
24、专家105负责维护域代码125。程序员110创建并维护生成程序120,并定义如何对域代码输入进行处理,以获得预期的实现(例如,可执行代码115)。生成程序120代表实现知识,例如,工程设计、算法选择、平台和代码模式。0041 前述生成程序设计环境的实现受到实际应用问题的影响,例如,定义域代码125的语言,谁来定义和支持特定于域的语言和文献汇编,此外还受到与跨越不只一个域的问题相关的事项以及生成程序120通过应用编程接口对域代码125的访问等的影响。此外,前述针对特定于域的语言的解决方案没有解决与如何使具有极少的程序设计知识的用户在企业内部通过简单有效的方式创建和修改软件组件相关的问题。前述的这。
25、些解决方案仍然需要用户学习特定于域的语言及其语法。例如,一种特定于域的语言实现要求使用“意图树”,其主要是理论性的,而且不会为企业提供任何种类的有用或者实际的解决方案。其他这样的解决方案需要有关如何对不同的功能块进行汇编以确保正确的交互和功能的知识。0042 云中的企业程序设计0043 当今的企业/云计算环境已经取消了用户对运行软件的硬件的直接控制以及对软件本身的控制。在二十世纪七十年代,技术性突破显著降低了成本。硬件革命将大型计算带入到较小的装置内,例如,被实现成计算机内的单个集成电路的中央处理单元。计算成本的改善还提高了计算资源的可及性和可用性。计算机的使用不再只能在选定的少数几个人之间按。
26、时间分享。广泛可用的个人计算使得计算机的大量采用成为了事实。尽管硬件变成了广泛可得的,但是仍然需要由具有高度技能的程序员建立应用,其要求程序员周密地了解下层平台。在这一周期内,相较于硬件成本而言,具有高的软件开发成本。应用通常是专业化的,因而通常面向经过培训的专业人员,这样的应用大部分都集中在数据管理以及过程/办公自动化方面。0044 在上世纪九十年代早期,因特网接入和网络浏览器至少在一些情形下为用户免除了在其个人计算机上安装软件的必要。终端用户只需点击URL就能获得范围很宽的面向终端客户的应用。此外,诸如Java之类的语言因取消了诸如自动存储器管理和软件可移植性的任务而降低了软件开发成本。网。
27、络应用带来了其他软件进步,例如,用户界面(UI)和应说 明 书CN 103119557 A5/44页9用框架的商品化。0045 除了其他的优点、特征和功能之外,当今的应用框架通常提供两个主要组件:元数据(通过框架指定的语言描述问题)和运行时间引擎(其基于应用开发者提供的指定元数据执行实际运行时间执行)。这些基于网络的应用进一步分离了问题描述和执行。因此,没有必要再将软件制作成起着单个专业化执行单元的作用。改变问题描述的操作仅涉及对元数据做出改变,对运行时间执行代码则没有影响。0046 在这一对计算资源大量采用的第二次浪潮中,浏览器、Java和框架中的软件进步降低了软件相对于硬件的成本。然而,仍。
28、然要求应用开发者具有高水平的专业技能,从而对应用开发环境(文中又称为应用开发框架(ADF)中通常可用的全范围的选择和控制加以充分利用。0047 计算资源的大量采用的第三次浪潮已经伴随着计算成本的突破性降低而开始。云计算与诸如虚拟化的技术革新相结合并不断获得大规模实用计算方面的经验,从而使非常丰富的计算资源和网络连通性都能够在因特网规模上被负担得起。这种计算资源的可用性降低了网络应用的操作成本。这样的可用性还为协作式应用和移动式应用的继续开发提供了基础。这些因特网规模的基础设施作为有偿服务已经变得能够为大量的用户所负担得起。这些用户还在寻找匹配的软件可负担性。这一点也适用于其他类型的按需服务,例。
29、如,按需视频。云计算领域中的内容只是在实用程序资源上执行的程序或应用而已。0048 图2A是示出了云计算概念的简化方框图。将因特网或广域网210耦合至内联网或局域网220(1)-(n)。每一内联网或局域网具有一个或多个客户端计算机225(1)-(m)。客户端计算机能够通过内联网客户端和因特网资源之间的网络连接访问(例如)网络服务器230(1)-(p)(又被称为网站服务器,或简称为服务器)。此外,可通过因特网210获得的一个或多个资源能够提供具有云资源240的形式的主机托管(hosted)服务。云计算是涉及在诸如因特网的广域网内分发主机托管服务的任何机制的泛称。通常将这样的服务宽泛地分为三类:基。
30、础设施即服务(IaaS)、平台即服务(PaaS)以及软件即服务(SaaS)。云服务通常按需出售(例如,按分钟或者按小时),云服务是具有弹性的,因为用户能够在任何既定时间上拥有其想要的多少的服务,并且云服务完全由云服务的供应商管理。0049 云可以是私有的,也可以是公共的。公共云向任何能够对其进行访问的人出售服务,而私有云则是所有权网络或数据中心,其只向有限数量的用户提供主机托管服务。云服务供应商可以采用公共云资源创建私有云,从而获得虚拟私有云。在每种情况下,云计算的目的都在于提供对计算资源和信息技术服务的可分级的访问。0050 IaaS为虚拟服务器实例提供唯一网络地址和按需存储块。通过提供应用。
31、编程接口(API)而开始、停止和访问虚拟服务服务器和存储器。在企业中,IaaS云计算允许公司仅对其所需要的那些容量付费,并在线增加所需的这一容量。0051 云中的PaaS提供了主机托管软件集和产品开发工具,在图2A中示出了PaaS250作为其例子。开发者能够通过因特网在其供应商的平台上创建应用。PaaS提供商能够利用(例如)API、网站入口、安装在客户的计算机上的网关软件等提供对这样的服务的访问。0052 在SaaS架构中,供应商通过前端入口提供硬件基础设施、软件产品并且与用户交互。所提供的服务可以包括(例如)基于网络的电子邮件、库存控制和数据库处理。由于应用和数据都由服务供应商主持,因而终端。
32、用户能够随处自由地使用服务。说 明 书CN 103119557 A6/44页100053 从上文对云计算的说明可以看出,可以将云的资源(即云资源)看作是物理计算机资源的抽象化。终端用户通常不能控制所述硬件或软件,尤其是在SaaS和PaaS环境中。由于采用同一云资源的不同企业可能具有不同的要求来满足其特定企业的需求,因而需要一种机制使用户通过与所讨论的企业相适应的方式对其采用的软件进行修改。前面讨论的生成软件概念认识到了这一问题,但是未能提供实际的解决方案来实现能够创建和修改软件资源,例如,云计算环境中提供的软件资源的工具的提供。此外,由于云资源被多个用户访问(其还可能与不同的企业相关),因而任。
33、何用于修改云计算环境中的软件的工具都不能破坏云资源对其他用户的提供。因此,必须提供某些保证,以确保对软件所做的修改的功能。也就是说,应当针对指定云计算环境中的使用对使用户能够修改软件资源的工具加以验证。0054 用于描述用户意图的模式0055 在企业内,域专家可能(例如)想要修改或者创建原始的或者额外的对象(例如,业务对象、数据对象、用户界面对象等)。执行这样的任务往往包括执行至少一些相同(或者类似的)操作。此外,要想获得预期结果(例如,通过其创建而实现的新的数据对象的存在)可能必须要创建其他对象/类别(例如用户界面显示中的新字段)(或者对其做出改变)。文中将这样的为了实现预期目标而执行的通常。
34、重复发生的操作的集合称为模式。在一个实施例中,这样的模式包括模式声明(例如,其揭示用于配置操作的实质配置选项)和模式定义(例如,其封装软件组件生成的细节(例如,通过中间件API访问)。模式的使用既提供了简易性(例如,通过对用户隐藏程序设计的复杂性),又提供了适应性(例如,通过封入对应用所做的变化、中间件等)。0056 在本发明的实施例中,模式描述了在给定问题域通常出现的解决方案。此外,模式能够指定创建进而描述该解决方案(抽象概念)的实例(具体的或者切实的表示)的方式(例如,能够在特定的目标平台上使重复发生的解决方案实例化的方式)。考虑到本公开将认识到,这样的解决方案(抽象)的实例化包含了所述解。
35、决方案(例如,作为模板,例如一类对象或计算过程)的实际例子和具体实现的创建。这样的实例化操作通过(例如)定义一类中的对象(表示解决方案)的具体变化、为对象赋予名称并且将对象存储到某一物理位置上(例如,将对象存储到诸如计算机存储器的计算机可读介质内)而创建对应解决方案的实例。照此,模式还能够提供用于使域专家形成(以及表达)对这样的软件进行预期修改的意图的一般化机制。0057 图2B是示出了根据本发明的实施例的结合了模式的问题解决方案流的例子的简化框图。与图1B一样,程序员110主要考虑创建生成程序120,该程序能够生成期望的可执行代码115作为其输出。与图1B一样,向生成程序120提供域代码12。
36、5作为输入。0058 与图1B不同,可以使域专家105获得一个或多个模式(例如,在图2B中将其描述为模式260),从而允许域专家105表达其有关期望域代码的生成的意图,所述域代码将充当生成程序120的输入(例如,诸如图1B的域代码125的域代码)。可以通过模式储存库的形式使模式260能够为域专家105所用(在图2B中未示出;但而,应当认识到,例如,可以将图2B的模式260存储到这样的模式储存库内并从该储存库内将其选出)。例如,模式程序员270可以针对特定域或者多个域创建模式储存库。模式程序员270通常是专家程序员,其制备的模式并非是针对具体的问题实例的解决方案,而是反映解决给定的一类问题的更说 明 书CN 103119557 A10。