CN101546260B - 用于重构面向服务的应用的方法及其设备 - Google Patents
用于重构面向服务的应用的方法及其设备 Download PDFInfo
- Publication number
- CN101546260B CN101546260B CN2008100898372A CN200810089837A CN101546260B CN 101546260 B CN101546260 B CN 101546260B CN 2008100898372 A CN2008100898372 A CN 2008100898372A CN 200810089837 A CN200810089837 A CN 200810089837A CN 101546260 B CN101546260 B CN 101546260B
- Authority
- CN
- China
- Prior art keywords
- service
- model
- change
- box
- variation
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/72—Code refactoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
-
- 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/36—Software reuse
-
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了用于重构面向服务的应用的方法及其设备,所述面向服务的应用包括服务模型和与所述服务模型相关的服务模型源代码。用于重构面向服务的应用的方法包括:准备用于定义有关服务模型中可变化服务元件的可选择变化点信息的变化模型、以及支持变化实现的源代码,所述支持变化实现的源代码定义了实现有关服务元件的变化点信息而需要的服务模型和服务模型源代码的变化;选择所述变化模型中有关可变化服务元件的变化点信息;使用所选择的变化点信息作为输入,由所述支持变化实现的源代码对所述服务模型和服务模型源代码进行预定的重构处理。
Description
技术领域
本发明涉及面向服务的体系构架的服务处理技术领域,尤其涉及用于重构面向服务的应用的方法及其设备。
背景技术
在面向服务的(SOA)解决方案中,服务是使业务与IT技术对齐的中心焦点。当为不同客户提供SOA解决方案时,由于客户的需求不尽相同,因此需要构建可重用的SOA解决方案的方法,以最小的额外努力满足不同客户的需求。
在面对不同客户时,服务模型中最常变化的是服务的消息、服务操作,例如:添加字段到现有输入/输出消息的定义;从现有的消息定义删除字段;添加/删除修改服务操作,在提供可重用SOA解决方案的同时需要保持整个SOA解决方案仍表现得连贯一致。
在所有这些变化要求中,一些消息字段或服务操作是整个SOA解决方案中业务流程或业务监控的关键,用户不能删除或修改这些消息字段或服务操作。
对于这种情况,现有技术中使用的方法有:
1.为每个客户定制整个解决方案,重新设计或重新构建。
2.使用MDD(模型驱动开发)方法凭借同一个复杂模型生成整个解决方案。
3.使用传统的面向变化的设计(例如配置文件或业务规则)来支持未来可能的变化。
然而,以上方法分别具有如下的缺点:
1.修改现有的SOA解决方案需要对整个SOA解决方案的连贯一致的深入理解,包括服务和服务消息之间的关系。修改每个服务实现需要非常小心并且消耗时间,因此降低了SOA解决方案实际的可重用性。
2。MDD是自上而下的方法,通过对模型组件的变换来实现源代码的修改。这种MDD方法严重依赖于代码生成,尽管可以解决一些简单的 问题,但是由于所有代码变化都能从模型生成,因此该MDD方法并不支持包含了大量服务、业务流程和有关服务元件与服务的内部复杂关系的复杂SOA解决方案。
3.传统的面向变化的设计不考虑服务契约级的变化。
发明内容
本发明旨在提供一种全新的用于重构面向服务的应用的技术方案,以期克服以上现有技术中存在的至少一种缺陷。
根据本发明的一个方面,一种提供针对面向服务的应用的重构方案的方法,所述面向服务的应用包括服务模型和与所述服务模型相关的服务模型源代码,该方法包括以下步骤:
识别所述服务模型中的可变化服务元件;
基于可变化的服务元件,构建用于定义有关所述可变化服务元件的可选择变化点信息的变化模型,其中所述有关可变化服务元件的变化点信息包括用于定义服务元件是否可变以及变化范围的可变性信息;以及
创建支持变化实现的源代码,所述支持变化实现的源代码定义了为实现有关可变化服务元件的变化点信息而需要的服务模型和服务模型源代码的变化,用于使用对所述变化模型中有关可变化服务元件的变化点信息的选择作为输入,根据所述源代码中支持所述变化点实现的变化定义对所述服务模型和服务模型源代码进行预定的重构处理。
所述提供重构方案的方法可以在提供面向服务的应用的同时或之后进行。
所述可变化服务元件,通常包括服务模型中服务契约级的变化,例如业务流程、服务、服务描述、服务通信协议和/或传输等功能实体;和/或包括策略、安全性、事务和/或管理等有关服务质量的非功能性实体。
所述有关可变化服务元件的变化点信息包括:用于定义服务元件是否可变以及变化范围的可变性信息,具体包括消息字段的增删或修改、服务操作(包括发布、发现、绑定和调用)的增删或修改、和/或服务的非功能性需要(事务、安全性)等的增删或修改。消息字段的增删或修改例如有添加字段到现有输入/输出消息的定义;从现有的消息定义删除字段等。
所述变化模型是基于变化元模型完成,所述变化元模型定义了所有的有关可变化服务元件的变化点信息(变化点)的定义格式。变化模型本身也可以包含变化元模型的所有信息,即也可以定义所有的有关可变化服务 元件的变化点信息。
所述支持变化实现的源代码用于在服务模型级以及代码级实现服务元件本身的变化以及对服务契约影响的变化定义,该服务契约影响变化定义用于定义所述服务元件变化所引发的其它服务元件的变化,例如,如果一条服务的消息变化,一些其他的服务或流程的消息也应变化。
根据本发明的第二方面,一种用于重构面向服务的应用的方法,包括以下步骤:
准备用于定义有关服务模型中可变化服务元件的可选择变化点信息的变化模型、以及支持变化实现的源代码,所述支持变化实现的源代码定义了实现有关服务元件的变化点信息而需要的服务模型和服务模型源代码的变化;
选择所述变化模型中有关可变化服务元件的变化点信息,其中所述有关可变化服务元件的变化点信息包括用于定义服务元件是否可变以及变化范围的可变性信息;
使用所选择的变化点信息作为输入,由所述支持变化实现的源代码对所述服务模型和服务模型源代码进行预定的重构处理。
所述预定的重构处理基于所述支持变化实现的源代码中的变化定义,包括:修改服务模型和修改部署脚本、以及以下步骤中的至少一个:在代码级修改服务元件实现;在配置级修改服务实现;修改受影响的业务流程;修改面向服务应用中的服务调用客户存根进程;或者修改受到服务元件改变的影响的用户界面部分。
本发明的第一方面涉及如何定义变化模型和如何提供变化支持的实现的方法。使用该方法,可以在向客户提供SOA解决方案(服务模型)及其实现的同时,提供解决方案的可能变化(即变化模型)及支持以上可能变化的实现(即变化支持实现),使SOA解决方案对不同客户更有灵活性。本发明的第二方面涉及使用服务契约级的变化模型来控制服务的业务功能的可能变化,而且根据从变化模型选择的每个变化点,使用变化支持的实现来重构面向服务的整个应用,以适应不同客户的变化。由此提出了对不同客户有最大的可重用性/适应性的SOA解决方案的系统。
由于本发明的方法是中间对齐的方法,具体地首先通过服务契约变化模型来控制服务模型的可变性,而且基于针对SOA解决方案的标准实现来完成对面向服务的应用的重构/再用,因此本发明的方法不依赖于代码生成,而是主要调节代码/配置的修改/重构,由此为解决方案提供商提供 了更大的自由和处理变化的能力,使得可以以被控制的和标准化的方式进行定制,并且使定制所需的努力最小化。
根据本发明再一个方面,一种针对面向服务的应用的重构方案提供设备,包括:
识别装置,被配置为识别所述服务模型中的可变化服务元件;
变化模型构建装置,被配置为基于可变化的服务元件,构建用于定义有关所述可变化服务元件的可选择变化点信息的变化模型,其中所述有关可变化服务元件的变化点信息包括用于定义服务元件是否可变以及变化范围的可变性信息;以及
代码创建装置,被配置为创建支持变化实现的源代码,
所述支持变化实现的源代码定义了为实现有关可变化服务元件的变化点信息而需要的服务模型和服务模型源代码的变化,用于使用对所述变化模型中有关可变化服务元件的变化点信息的选择作为输入,根据其中支持所述变化点实现的变化定义对所述服务模型和服务模型源代码进行预定的重构处理。
根据本发明再一个方面,一种面向服务的应用的重构设备,包括:
确定装置,被配置为从定义了有关服务模型中可变化服务元件的变化点信息的变化模型中确定有关可变化服务元件的变化点信息,其中所述有关可变化服务元件的变化点信息包括用于定义服务元件是否可变以及变化范围的可变性信息;以及
修改装置,被配置为接收所确定的变化点信息作为输入,基于支持变化实现的源代码对所述服务模型和服务模型源代码进行预定的重构处理,所述支持变化实现的源代码定义了实现有关服务元件的变化点信息而需要的服务模型和服务模型源代码的变化。
附图说明
参照下面结合附图对本发明实施例的说明,会更加容易地理解本发明的以上和其它目的、特点和优点。在附图中,相同的或对应的技术特征或部件将采用相同或对应的附图标记来表示。
图1示出了根据本发明的提供针对面向服务的应用的重构方案的方法以及该重构方案的应用;
图2示出了图1中步骤108的详细过程。
图3示出了根据本发明的重构方案提供设备。
图4示出了根据本发明的面向服务的应用的重构设备。
图5A和5B是分别示出了根据本发明优选实施例的可变化服务元件的变化前后的示意图。
图6示出了应用本发明的计算机系统。
具体实施方式
下面参照附图来说明本发明的实施例。应当注意,为了清楚的目的,附图和说明中省略了与本发明无关的、本领域普通技术人员已知的部件和处理的表示和描述。
在以下的详细说明中使用了如下的术语。
面向服务的体系结构:是一个组件模型,本质上是相互通信的服务集,这种通信可能是简单的数据传送或者两个以上的服务组合活动。具体地,面向服务的体系结构用于将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。
服务:服务由资源(如数据、程序或设备)、服务逻辑和消息处理构成。当消息到达一个服务时激活使用资源的服务逻辑。在面向服务的体系结构中服务映射到业务单元,相应地服务通常包括服务注册中心;例如业务流程、服务、服务描述、服务通信协议和传输等功能实体;以及包括策略、安全性、事务和管理等有关服务质量方面的非功能性实体。
接口:定义了服务请求者和服务提供者之间的契约,以便通过接口发现、发布和调用服务。
本发明的方法和设备
根据本发明,一种提供针对面向服务的应用的重构方案的方法,所述面向服务的应用包括服务模型和与所述服务模型相关的服务模型源代码,该方法包括以下步骤:识别所述服务模型中的可变化服务元件;基于可变化的服务元件,构建用于定义有关所述可变化服务元件的可选择变化点信息的变化模型;以及创建支持变化实现的源代码,所述支持变化实现的源代码定义了为实现有关可变化服务元件的变化点信息而需要的服务模型 和服务模型源代码的变化,用于使用对所述变化模型中有关可变化服务元件的变化点信息的选择作为输入,根据所述源代码中支持所述变化点实现的变化定义对所述服务模型和服务模型源代码进行预定的重构处理。
本发明还涉及一种用于重构面向服务的应用的方法,该方法包括以下步骤:准备用于定义有关服务模型中可变化服务元件的可选择变化点信息的变化模型、以及支持变化实现的源代码,所述支持变化实现的源代码定义了实现有关服务元件的变化点信息而需要的服务模型和服务模型源代码的变化;选择所述变化模型中有关可变化服务元件的变化点信息;使用所选择的变化点信息作为输入,由所述支持变化实现的源代码对所述服务模型和服务模型源代码进行预定的重构处理。
图1示出了根据本发明的提供针对面向服务的应用的重构方案的方法以及该重构方案的应用100。
步骤101表示在设计级提供服务模型。该服务模型代表了面向服务的解决方案,是一组在某一特定工商业/事业领域中相关的服务和业务流程,例如政府部门的案例管理。
步骤102表示提供代码级的服务模型实现。
服务模型实现即服务模型的源代码,可以是包括以人类可读的计算机语言(如C,C++,C#,assembler,Fortran,BASIC,Pascal,Java,LISP,ML,Objective-C,Perl,PHP,Python,Matlab,Visual Basic,SQL,HTML,XML或其他任何计算机语言)编程的一系列陈述的文件,也可以包括定义了一些由图形元件表示的人类可读计算机语言的图形信息。
服务模型是其源代码的抽象表示,可以是图形模型或例如树形结构、关系表等任何类型的模型,也可以是文本模型。
包括源代码的文件和/或相关的源代码(服务模型)都可以存储在存储设备和/或内存中,也都可以在显示器上显示。
服务模型源代码中的元件和服务模型中的元件通过注释等方式彼此链接,如本领域普通技术人员所了解,可以通过变换由模型的定义产生用以调用函数的源代码或者由源代码产生模型。因此本发明对步骤101和102的顺序不作限制。
在步骤103为服务模型(SOA解决方案)准备变化模型,变化模型定义了可能在服务模型中变化的范围。注意步骤103虽然与步骤101同属 设计级,但步骤103无需与步骤101同步进行,因为可以在已经为客户提供服务模型之后的不定时间内再提供包括变化模型的重构工具(重构方案)。
设计变化模型首先需要在分析级确定服务模型中通用的以及可变化服务元件。可变化服务元件是服务契约级的,通常包括服务中的例如业务流程、服务、服务描述、服务通信协议和/或传输等功能实体;和/或包括策略、安全性(规则集)、事务(属性集)和/或管理(属性集)等有关服务质量方面的非功能性实体。
其次,基于确定的可变化服务元件,创建预定义的接口变化协议,即用于定义有关服务模型中可变化服务元件的可选择变化点信息的变化模型,具体地变化模型定义了哪个服务的哪个接口可变以及可如何变,由此使得服务可变区域变得标准化并提供了可管理/可控的变化定义。针对不同的领域、不同的客户以及不同的需求,需要在服务契约级识别各种可能的和合理的变化,确定可能需要变化的服务元件。需要的变化越多,则变化模型就越复杂。
所述有关可变化服务元件的变化点信息包括:用于定义服务元件是否可变以及变化范围的可变性信息,具体包括消息字段的增删或修改、服务操作(包括发布、发现、绑定和调用)的增删或修改、和/或服务的非功能性需要(事务、安全性)等的增删或修改。消息字段的增删或修改例如有添加字段到现有输入/输出消息的定义;从现有的消息定义删除字段等。
步骤104在代码级准备针对每个变化点的变化支持实现。在提供标准服务模型的同时或者随后,需要基于对服务模型源代码的一致性理解为变化模型中的每个变化点提供变化支持实现。
该变化支持实现即支持变化实现的代码或脚本集(源代码),同样可以是包括以人类可读的计算机语言编程的一系列陈述的文件,也可以包括定义了一些由图形元件表示的人类可读计算机语言的图形信息。包括支持变化实现的源代码的文件和变化模型都可以存储在存储设备和/或内存中,也都可以在显示器上显示。
所述支持变化实现的源代码定义了为实现有关可变化服务元件的变化点信息而需要的服务模型和服务模型源代码的变化,即定义了在服务模型级以及代码级实现服务元件本身的变化、以及对服务契约影响的变化定义,用于在执行时使用对所述变化模型中有关可变化服务元件的变化点信 息的选择作为输入,按照所述源代码中支持所选择变化点实现的相应变化定义对所述服务模型和服务模型源代码进行修改,实现预定的重构处理。即所述重构处理已在所述支持变化实现的源代码加以预定义。本公开说明书将在以下对重构处理进行详细描述。
以上所述的服务契约影响变化定义定义了所述服务元件变化所引发的其它服务元件的变化,例如如果服务消息变化,必然导致其它一些服务或业务流程的变化。
由此步骤102和104构成了定义变化模型以及提供变化支持的实现的方法。使用该方法,可以在向客户提供SOA解决方案(服务模型)及其实现的同时,提供解决方案的可能变化(即变化模型)及支持以上可能变化的实现(即变化支持实现),使面向服务的应用对不同客户更具灵活性。
在步骤105评估变化模型的可用性,即客户在需要重构面向服务的应用时通过例如人机界面判断变化模型所提供的可选择变化点信息是否包括了客户所需的变化点,即判断变化模型是否支持客户希望的对面向服务应用的改变。
如果在步骤106判断为变化模型可以提供客户所需的变化点,则在步骤107由客户通过例如人机界面选择得到了支持的变化点信息。
所选择的变化点信息作为符合变化模型的变化模型实例,定义了服务契约在客户环境中实际如何改变。例如,在变化模型中定义了三个服务消息字段可被删除。而在变化模型实例中只有一个或两个字段要被删除。
根据步骤107输出的所选择的变化点信息作为输入的定制信息,在步骤108使用所述支持变化实现的源代码中支持所选择变化点的相应变化定义对所述服务模型和服务模型源代码进行自动修改,实现预定的重构处理,由此为客户获得了定制的面向服务应用。
具体地,图2示出了图1中步骤108的详细过程,即详细的重构处理。
在步骤201读取基于变化模型定义的变化模型实例信息;在步骤202获取服务模型变化点(若客户仅选择了一个变化点,则变化模型实例信息仅包括一个变化点信息);在步骤203对所述服务模型和服务模型源代码进行自动修改,实现预定的重构处理;在步骤204判断是否已处理所有已选择的服务变化点?若已处理所有已选择的服务变化点,则在步骤205进行清理并重建面向服务的应用。
所述预定的重构处理(步骤203)基于所述支持变化实现的源代码中 的预定的变化定义,可以包括以下不受顺序限制的步骤:
修改服务模型,通常修改服务注册中心的WSDL,XSD(BO)定义、规划或者属性;
修改面向服务应用的部署脚本,例如数据模型改变的DB脚本、以及一些在服务契约中需要中间件平台等的部署支持的非功能性需求改变(例如安全性和事务改变);以及
以下处理步骤中的至少一个:
在代码级修改服务元件实现,对新的服务操作只生成程序骨架;
在配置级修改服务实现,例如配置文件和业务规则定义等;
修改受影响的业务流程,以便合并整个过程中的改变。通常需要修改BPEL定义文件或其它工作流程定义语言;
仅修改面向服务应用中的服务调用客户存根进程(stub)(通常需要修改服务调用代码和客户存根),但不包括修改其他服务实现;或
修改受到服务契约改变的影响的用户界面部分。
图3示出了重构方案提供设备300,包括:识别装置310,被配置为识别所述服务模型中的可变化服务元件;变化模型构建装置320,被配置为基于可变化的服务元件,构建用于定义有关所述可变化服务元件的可选择变化点信息的变化模型321;以及代码创建装置330,被配置为创建支持变化实现的源代码331。
图4相应地示出了一种面向服务的应用的重构设备400,包括:
确定装置410,被配置为在从变化模型321选择了变化点后通过从变化模型401读取变化点信息(或由多个变化点信息构成的变化模型实例信息)来确定有关可变化服务元件的变化点信息;以及
修改装置420,被配置为接收所确定的变化点信息作为输入,基于支持变化实现的源代码331对所述服务模型和服务模型源代码进行预定的重构处理,所述支持变化实现的源代码定义了实现有关服务元件的变化点信息而需要的服务模型和服务模型源代码的变化。
修改装置420包括服务模型修改单元421、部署脚本修改单元427以及以下修改单元中的至少一个:服务元件实现修改单元422、服务实现配置修改单元423;业务流程修改单元424、客户存根进程修改单元425或 用户界面修改单元426,分别用于处理如如上所述步骤203的具体处理步骤。
实现以上重构处理的支持变化实现的源代码是针对特定服务的。不同的服务元件变化需要不同的具体重构处理步骤(如图2步骤203所示)或修改单元(如图4修改装置420所示)或其组合,这一点可根据面向服务应用中具体的服务元件及其变化引发的影响来由设计人员进行分析判断。
例如,通常服务元件的任何变化(包括功能性和非功能性需求改变),都需要服务模型修改单元421和部署脚本修改单元427对服务模型以及部署脚本进行修改;在改变服务消息时还需要服务元件实现修改单元422和客户存根进程修改单元425对服务元件实现和服务调用客户存根进程进行修改;如果改变服务消息并且该服务消息出现在某些业务过程中或工作流程定义中时则还需要业务流程修改单元424对受影响的业务流程进行修改;如果服务使用了配置机制或规则引擎,则还需要服务实现配置修改单元423;而如果存在与改变消息的服务相关的用户界面,则还需要用户界面修改单元426。而如果仅仅是非功能性需求改变,则仅需要服务模型修改单元421和部署脚本修改单元427对服务模型以及部署脚本进行修改。
变化元模型
变化模型是基于变化元模型完成的,即作为变化元模型的一个实例,而变化元模型定义了所有的有关可变化服务元件的变化点信息(变化点)的定义格式。所述变化模型本身也可以包含变化元模型的所有信息,即其本身也可定义所有的有关可变化服务元件的变化点信息。
变化元模型定义了控制如何定义变化模型。根据不同面向服务应用的不同要求,变化元模型可以简单也可以复杂,可以是图形模型或例如树形结构、关系表等任何类型的模型,也可以是文本模型。如下示出了以XML语言编写的定义了所有的有关可变化服务元件的变化点信息的变化元模型示例。
<?xml version=″1.0″encoding=″UTF-8″?>
<schema targetNamespace=″http://www.ibm.com/WSVariation″elementFormDefault=″qualified″
xmlns=″http://www.w3.org/2001/XMLSchema″xmlns:tns=″http://www.ibm.com/WSVariation″>
//XML题头,定义了变化元模型的名字空间(http://www.ibm.com/WSVariation)
<complexType name=″ServiceVariation″>//变化点的定义,一般都是对应到一个服务。
<attribute name=′serviceName′type=′string′/>//服务的名字
<attribute name=″serviceNamespace″type=″string″></element>//一个变化点所对应服务的名字空
间
<attribute name=″servicePortType″type=″string″></element>//一个变化点所对应服务的端口类型,
这个和上面那个是用来定义是哪个服务的变化点
<sequence>
<element name=″inputMessageVariation″type=″tns:MessageVariation″></element>//一个
变化点中输入消息的可变化点
<element name=″outputMessageVariation″type=″tns:MessageVariation″></element>//一
个变化点中输出消息的可变化点
<element name=″service Variability″> //用来整体定义这个变化点的可变性
<simple Type>
<restriction base=″string″>
<enumeration value=″Fixed″></enumeration>//不可变
<enumeration value=″Editable″></enumeration>//可编辑,但是不可以删除
<enumeration value=″Removable″></enumeration>//可以删除
</restriction>
</simple Type>
</element>
</sequence>
</complexType>
<complexType name=″MessageVariation″>//输入消息可变性的定义语法
<sequence>
<element name=″fieldVariation″type=″tns:FieldVariation″//一个输入消息的可变性是由它的字段的
可变性所组成
maxOccurs=″unbounded″minOccurs=″0″>
</element>
</sequence>
</complexType>
<complexType name=″FieldVariation″>//一个消息字段的可变性定义
<sequence>
<element name=″fieldAddable″type=″boolean″maxOccurs=″1″minOccurs=″0″></element>//可
以在这个字段之后加字段吗
<element name=″fieldRemoable″type=″boolean″maxOccurs=″1″minOccurs=″0″></element>//这
个字段可以删除吗
<element name=″fieldFixed″type=″boolean″maxOccurs=″1″minOccurs=″0″></element>//这个字
段不可以修改
<element name=″fieldModifiable″type=″boolean″maxOccurs=″1″minOccurs=″0″></element>//这
个字段可以修改
</sequence>
<sequence>
<element name=″fieldRemoved″type=″boolean″maxOccurs=″1″minOccurs=″0″></element>//这个
字段删除了
<element name=″fieldAdded″type=″AddedField″maxOccurs=″unbounded″minOccurs=″0″>
</element>//这个字段之后增加了一个字段,字段定义在AddedField中
<element name=″fieldModified″type=″ModifiedField″maxOccurs=″1″minOccurs=″0″></element>//
这个字段修改了,修改内容在ModifiedField中
<element name=″fieldName″type=″string″maxOccurs=″1″minOccurs=″0″></element>//这个字段的
名字
</sequence>
</complexType>
<ComplexType name=′AddedField′base=′string′><attribute name=′fieldType′type=′string′/>
</ComplexType>//增加字段的类型和名字
<ComplexType name=′Modified′base=′string′>
<attribute name=′fieldNewType′type=′string′/> //修改字段的类型和名字
<attribute name=′fieldNewName′type=′string′/> //修改字段的新名字
<element name=″nestedField″type=″Modified″mlnOccurs=″0″></element> //支持嵌套字段的修改
</ComplexType>
<element name=″solutionVariation″type=″tns:ServiceVariationCollection″></element>//修改字段的
类型和名字
<complexType name=″ServiceVariationCollection″> //变化模型定义
<sequence>
<element name=″serviceVariation″type=″tns:ServiceVariation″ minOccurs=″0″
maxOccurs=″unbounded″></element>//变化模型定义是由多个变化点组成
</sequence>
</complexType>
优选实施例
以下参考面向服务应用中的一个服务″CreateOrganization(新建一个部门)″的服务元件发生变化为例,详细说明本发明的优选实施例。
图5A示出面向服务应用中的一个服务″CreateOrganization(新建一个部门)″,其输入消息是作为扩展集(Superset)的Organization的实体,其包含的属性如图所示,包括字符串型的effectiveDate(有效日期)、整数型的numberOfMember(成员数量)等等。
基于对面向服务应用的服务模型的认识来识别其中的可变化服务元件,例如针对服务″CreateOrganization″增加消息字段,则创建变化模型。该变化模型例如基于以上示例的变化元模型,如下所示。
<?xml version=″1.0″encoding=″UTF-8″?>
<serviceVariationCollection xmlns:wsv=″http://www.ibm.com/WSVariation″>
<serviceVariation
serviceName=″CreateOrganizationService″,serviceNamespace=″http://www.ibm.com/CreateOrganizat
ionService″,servicePortType=″http://www.ibm.com/CreateOrganizationServicePortType″>
<serviceVariability>Editable<serviceVariability>
<inputMessageVariation>
<fieldVariation>
<fieldName>stockAvailable</fieldName> //可以在该字段后面增加字段
<fieldAddable>true</fieldAddable>
</fieldVariation>
</inputMessageVariation>
</ServiceVariation>
</ServiceVariationCollection>
在创建变化模型的同时基于对面向服务应用的服务及业务流程的理解构建用于实现”增加消息字段”的源代码。
当用户需求变化后,比如需要加入两个新的属性:organizationType (部门类型)和preferredLanguage(优选语言),这样organization包含的属性如图5B所示,在尾部增加了两个属性。
用户通过变化模型选择增加两个消息字段作为变化模型实例。该变化模型实例包含两个变化点,如下所示。
<?xml version=″1.0″encoding=″UTF-8″?>
<serviceVariationCollection xmlns:wsv=″http://www.ibm.com/WSVariation″>
<serviceVariation
serviceName=″CreateOrganizationService″,serviceNamespace=″http://www.ibm.com/CreateOrganizat
ionService″,servicePortType=″http://www.ibm.com/CreateOrganizationServicePortType″>
<inputMessageVariation>
<fieldVariation>
<AddedField name=″organizationType″,type=″string″/> //增加字符串型字段″organizationType″
<AddedField name=″preferredLanguage″,type=″string″/> //增加字符串型字段″preferredLanguage″
</fieldVariation>
</inputMessageVariation>
</ServiceVariation>
</ServiceVariationCollection>
面向服务的应用的重构设备接收变化模型实例信息并实施预定的用于实现“增加消息字段”的源代码,具体地通过修改服务注册中心的WSDL,XSD(BO)定义、规划或者属性来修改服务模型;在代码级修改服务元件实现;修改面向服务应用中的服务调用客户存根进程(例如服务调用代码和客户存根);以及修改面向服务应用的部署脚本(如DB脚本),从而对所述服务模型和服务模型源代码都进行了重构处理,使得重构后的服务模型和服务模型源代码都支持增加了以上两个消息字段的服务元件″CreateOrganization″,从而提供了定制的面向服务的应用。
另外,还应该指出的是,上述系列处理和装置也可以通过软件和固件实现。在通过软件或固件实现的情况下,从存储介质或网络向具有专用硬件结构的计算机,例如图6所示的通用计算机600安装构成该软件的程序,该计算机在安装有各种程序时能够执行各种功能等等。
在图6中,中央处理单元(CPU)601根据只读存储器(ROM)602中存储的程序或从存储部分608加载到随机存取存储器(RAM)603的程序执行各种处理。在RAM 603中,也根据需要存储当CPU 601执行各种处理等等时所需的数据。
CPU 601、ROM 602和RAM 603经由总线604彼此连接。输入/输出接口605也连接到总线604。
下述部件连接到输入/输出接口605:输入部分606,包括键盘、鼠标等等;输出部分607,包括显示器,比如阴极射线管(CRT)、液晶显示器(LCD)等等,和扬声器等等;存储部分608,包括硬盘等等;和通信部分609,包括网络接口卡比如LAN卡、调制解调器等等。通信部分609经由网络比如因特网执行通信处理。
根据需要,驱动器610也连接到输入/输出接口605。可拆卸介质611比如磁盘、光盘、磁光盘、半导体存储器等等根据需要被安装在驱动器610上,使得从中读出的计算机程序根据需要被安装到存储部分608中。
在通过软件实现上述系列处理的情况下,从网络比如因特网或存储介质比如可拆卸介质611安装构成软件的程序。
本领域的技术人员应当理解,这种存储介质不局限于图6所示的其中存储有程序、与设备相分离地分发以向用户提供程序的可拆卸介质611。可拆卸介质611的例子包含磁盘(包含软盘)、光盘(包含光盘只读存储器(CD-ROM)和数字通用盘(DVD))、磁光盘(包含迷你盘(MD))和半导体存储器。或者,存储介质可以是ROM 602、存储部分608中包含的硬盘等等,其中存有程序,并且与包含它们的设备一起被分发给用户。
还需要指出的是,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以并行或彼此独立地执行。
虽然已经详细说明了本发明及其优点,但是应当理解在不脱离由所附的权利要求所限定的本发明的精神和范围的情况下可以进行各种改变、替代和变换。而且,本申请的范围不仅限于说明书所描述的过程、设备、制造、物质的结构、手段、方法和步骤的具体实施例。本领域内的普通技术人员从本发明的公开内容将容易理解,根据本发明可以使用执行与在此所述的相应实施例基本相同的功能或者获得与其基本相同的结果的、现有和将来要被开发的过程、设备、制造、物质的结构、手段、方法或者步骤。因此,所附的权利要求旨在它们的范围内包括这样的过程、设备、制造、物质的结构、手段、方法或者步骤。
Claims (14)
1.一种提供针对面向服务的应用的重构方案的方法,所述面向服务的应用包括服务模型和与所述服务模型相关的服务模型源代码,该方法包括以下步骤:
识别所述服务模型中的可变化服务元件;
基于可变化的服务元件,构建用于定义有关所述可变化服务元件的可选择变化点信息的变化模型,其中所述有关可变化服务元件的变化点信息包括用于定义服务元件是否可变以及变化范围的可变性信息;以及
创建支持变化实现的源代码,所述支持变化实现的源代码定义了为实现有关可变化服务元件的变化点信息而需要的服务模型和服务模型源代码的变化,用于使用对所述变化模型中有关可变化服务元件的变化点信息的选择作为输入,根据所述源代码中支持所述变化点实现的变化定义对所述服务模型和服务模型源代码进行预定的重构处理。
2.根据权利要求1所述的提供针对面向服务的应用的重构方案的方法,在提供面向服务的应用的同时或之后进行。
3.根据权利要求1所述的提供针对面向服务的应用的重构方案的方法,其中所述可变化服务元件包括业务流程、服务、服务描述、服务通信协议和/或传输功能实体;和/或包括策略、安全性、事务和/或管理在内的有关服务质量的非功能性实体。
4.根据权利要求1所述的提供针对面向服务的应用的重构方案的方法,其中所述可变性信息包括消息字段的增删或修改、服务操作的增删或修改、和/或服务的非功能性需要的增删或修改。
5.根据权利要求4所述的提供针对面向服务的应用的重构方案的方法,其中消息字段的增删或修改包括添加字段到现有输入/输出消息的定义、或从现有的消息定义删除字段。
6.根据权利要求1所述的提供针对面向服务的应用的重构方案的方法,其中所述变化模型是基于变化元模型完成的,所述变化元模型定义了所有的有关可变化服务元件的变化点信息的定义格式。
7.根据权利要求1所述的提供针对面向服务的应用的重构方案的方法,其中所述支持变化实现的源代码用于在服务模型级以及代码级实现服务元件本身的变化以及对服务契约影响的变化定义,该服务契约影响变化定义用于定义所述服务元件变化所引发的其它服务元件的变化。
8.一种用于重构面向服务的应用的方法,所述面向服务的应用包括服务模型和与所述服务模型相关的服务模型源代码,该方法包括以下步骤:
准备用于定义有关所述服务模型中可变化服务元件的可选择变化点信息的变化模型、以及支持变化实现的源代码,所述支持变化实现的源代码定义了实现有关服务元件的变化点信息而需要的服务模型和服务模型源代码的变化;
选择所述变化模型中有关可变化服务元件的变化点信息,其中所述有关可变化服务元件的变化点信息包括用于定义服务元件是否可变以及变化范围的可变性信息;以及
使用所选择的变化点信息作为输入,由所述支持变化实现的源代码对所述服务模型和服务模型源代码进行预定的重构处理。
9.根据权利要求8所述的用于重构面向服务的应用的方法,其中所述预定的重构处理基于所述支持变化实现的源代码中的变化定义,包括:修改服务模型和修改部署脚本;以及以下步骤中的至少一个:
在代码级修改服务元件实现;在配置级修改服务实现;修改受影响的业务流程;修改面向服务应用中的服务调用客户存根进程;或者修改受到服务元件改变的影响的用户界面部分。
10.根据权利要求9所述的用于重构面向服务的应用的方法,其中所述变化点信息是消息字段的增删或修改,所述重构处理包括修改服务模型、在代码级修改服务元件实现、修改面向服务应用中的服务调用客户存根进程、以及修改面向服务应用的部署脚本。
11.一种针对面向服务的应用的重构方案提供设备,所述面向服务的应用包括服务模型和与所述服务模型相关的服务模型源代码,该重构方案提供设备包括:
识别装置,被配置为识别所述服务模型中的可变化服务元件;
变化模型构建装置,被配置为基于可变化的服务元件,构建用于定义有关所述可变化服务元件的可选择变化点信息的变化模型,其中所述有关可变化服务元件的变化点信息包括用于定义服务元件是否可变以及变化范围的可变性信息;以及
代码创建装置,被配置为创建支持变化实现的源代码,
所述支持变化实现的源代码定义了为实现有关可变化服务元件的变化点信息而需要的服务模型和服务模型源代码的变化,用于使用对所述变化模型中有关可变化服务元件的变化点信息的选择作为输入,根据其中支持所述变化点实现的变化定义对所述服务模型和服务模型源代码进行预定的重构处理。
12.一种面向服务的应用的重构设备,所述面向服务的应用包括服务模型和与所述服务模型相关的服务模型源代码,该重构设备包括:
确定装置,被配置为从用于定义有关所述服务模型中可变化服务元件的变化点信息的变化模型中确定有关可变化服务元件的变化点信息,其中所述有关可变化服务元件的变化点信息包括用于定义服务元件是否可变以及变化范围的可变性信息;以及
修改装置,被配置为接收所确定的变化点信息作为输入,基于支持变化实现的源代码对所述服务模型和服务模型源代码进行预定的重构处理,所述支持变化实现的源代码定义了实现有关服务元件的变化点信息而需要的服务模型和服务模型源代码的变化。
13.根据权利要求12所述的面向服务的应用的重构设备,其中所述修改装置包括被配置为修改服务模型的服务模型修改单元、被配置为修改部署脚本的部署脚本修改单元、以及以下单元中的至少一种:
被配置为在代码级修改服务元件实现的服务元件实现修改单元、被配置为在配置级修改服务实现的服务实现配置修改单元;被配置为修改受影响的业务流程的业务流程修改单元、被配置为修改服务调用客户存根进程的客户存根进程修改单元、和被配置为修改受到服务元件改变的影响的用户界面部分的用户界面修改单元。
14.根据权利要求13所述的面向服务的应用的重构设备,其中所述变化点信息是消息字段的增删或修改,所述修改装置包括服务模型修改单元、服务元件实现修改单元、客户存根进程修改单元和部署脚本修改单元。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100898372A CN101546260B (zh) | 2008-03-28 | 2008-03-28 | 用于重构面向服务的应用的方法及其设备 |
US12/404,986 US9524145B2 (en) | 2008-03-28 | 2009-03-16 | Rebuildable service-oriented applications |
US15/348,714 US10228935B2 (en) | 2008-03-28 | 2016-11-10 | Rebuildable service-oriented applications |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100898372A CN101546260B (zh) | 2008-03-28 | 2008-03-28 | 用于重构面向服务的应用的方法及其设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101546260A CN101546260A (zh) | 2009-09-30 |
CN101546260B true CN101546260B (zh) | 2012-07-11 |
Family
ID=41119080
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008100898372A Active CN101546260B (zh) | 2008-03-28 | 2008-03-28 | 用于重构面向服务的应用的方法及其设备 |
Country Status (2)
Country | Link |
---|---|
US (2) | US9524145B2 (zh) |
CN (1) | CN101546260B (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060117009A1 (en) * | 2004-11-30 | 2006-06-01 | Joe Matthew D | Declarative aspects and aspect containers for application development |
US9841951B2 (en) | 2006-07-19 | 2017-12-12 | Red Hat, Inc. | Management of SOA service model |
US8850384B2 (en) * | 2006-07-19 | 2014-09-30 | Red Hat, Inc. | Creation and management of service candidates for a service model |
US8782542B2 (en) | 2006-07-19 | 2014-07-15 | Red Hat, Inc. | Display and management of a service composition candidate inventory |
EP2462510A4 (en) * | 2009-08-03 | 2013-01-02 | Hewlett Packard Development Co | LINK MODEL INSTANCES FOR PACKAGES |
CN102473095B (zh) * | 2010-03-04 | 2015-02-18 | 塔塔咨询服务有限公司 | 用于开发以数据库为中心的企业业务应用的可配置、可扩展的gui的高效计算系统 |
US20130067432A1 (en) * | 2011-09-12 | 2013-03-14 | Microsoft Corporation | Application development toolkit |
US9038025B1 (en) | 2012-05-24 | 2015-05-19 | Allstate Insurance Company | Technical interaction model |
US9208013B2 (en) | 2013-01-22 | 2015-12-08 | Globalfoundries Inc. | Cross communication of common problem determination and resolution |
CN104714791B (zh) * | 2013-12-17 | 2018-05-04 | 北京掌中经纬技术有限公司 | 一种对Web应用进行拆分与重装的方法与装置 |
CN106708514B (zh) * | 2016-12-01 | 2019-11-19 | 携程旅游信息技术(上海)有限公司 | 基于代码文档对象模型、对象生成器动态生成类的方法 |
CN107294772B (zh) * | 2017-05-23 | 2020-09-01 | 中电万维信息技术有限责任公司 | 一种结合Docker实现动态管理监控服务系统 |
US20190012342A1 (en) * | 2017-07-10 | 2019-01-10 | Kaspect Labs Llc | Method and apparatus for continuously producing analytical reports |
CN107578338B (zh) * | 2017-07-26 | 2021-06-04 | 创新先进技术有限公司 | 一种业务发布方法、装置及设备 |
CN108647019B (zh) * | 2018-05-14 | 2021-08-31 | 浪潮通用软件有限公司 | 一种服务组合的控制层编码方法 |
CN114615154B (zh) * | 2019-08-26 | 2024-06-25 | 阿里巴巴集团控股有限公司 | 服务质量管理的方法及装置、通信系统 |
CN113127442B (zh) * | 2020-01-10 | 2023-12-22 | 马上消费金融股份有限公司 | 数据模型的可视化的方法、装置及存储介质 |
CN111562905A (zh) * | 2020-04-12 | 2020-08-21 | 华南理工大学 | 基础不均匀沉降桁架式跨越管道的安全评定方法 |
CN114168111B (zh) * | 2021-12-07 | 2024-04-05 | 北京五八信息技术有限公司 | 组件化路由实现方法、设备、产品及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101127655A (zh) * | 2006-08-18 | 2008-02-20 | 国际商业机器公司 | 集成现有基于万维网的系统的方法和系统 |
CN101149750A (zh) * | 2007-10-29 | 2008-03-26 | 浙江大学 | 一种基于元数据的数据资源整合方法 |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2025131A1 (en) * | 1989-09-28 | 1991-03-29 | John W. White | Portable and dynamic distributed applications architecture |
EP0573190B1 (en) * | 1992-06-03 | 2001-09-05 | Sun Microsystems, Inc. | Dynamically configurable kernel |
US5600789A (en) * | 1992-11-19 | 1997-02-04 | Segue Software, Inc. | Automated GUI interface testing |
US5561800A (en) * | 1993-05-19 | 1996-10-01 | Hewlett-Packard Company | Method and apparatus for incrementally linking modified routines into software |
US5758160A (en) * | 1993-06-28 | 1998-05-26 | Object Technology Licensing Corporation | Method and apparatus for building a software program using dependencies derived from software component interfaces |
US5867709A (en) * | 1995-10-18 | 1999-02-02 | Kapre Software, Inc. | Method and system for reusing customizations to a software product |
US5953524A (en) * | 1996-11-22 | 1999-09-14 | Sybase, Inc. | Development system with methods for runtime binding of user-defined classes |
KR20000003898A (ko) * | 1998-06-29 | 2000-01-25 | 전주범 | 단축키에 의한 설정등급변경방법 및 프로그램 시청제한기능을가진 수신장치 |
GB2383866A (en) * | 2000-05-09 | 2003-07-09 | Fair Isaac And Company | Approach for generating rules |
US6829732B2 (en) * | 2001-01-22 | 2004-12-07 | Hewlett-Packard Development Company, L.P. | Network-based software recovery for computing devices |
US7085752B2 (en) * | 2003-03-12 | 2006-08-01 | Microsoft Corporation | Customization of metadata describing objects in a computing environment |
US7231493B2 (en) * | 2004-01-09 | 2007-06-12 | Dell Products L.P. | System and method for updating firmware of a storage drive in a storage network |
US7437712B1 (en) * | 2004-01-22 | 2008-10-14 | Sprint Communications Company L.P. | Software build tool with revised code version based on description of revisions and authorizing build based on change report that has been approved |
US20050240558A1 (en) * | 2004-04-13 | 2005-10-27 | Reynaldo Gil | Virtual server operating on one or more client devices |
US20060080682A1 (en) * | 2004-10-12 | 2006-04-13 | Picsel Research Ltd. | Run time dynamic linking |
GB2419436A (en) * | 2004-10-25 | 2006-04-26 | Digitalml Ltd | Extensible object-modelling mechanism |
GB0426736D0 (en) * | 2004-12-06 | 2005-01-12 | Omnifone Ltd | MyFone |
US7640533B1 (en) * | 2005-03-30 | 2009-12-29 | Emc Corporation | System and methods for defining a software build |
US7886018B2 (en) * | 2005-06-24 | 2011-02-08 | Oracle International Corporation | Portable metadata service framework |
US7512942B2 (en) * | 2005-08-24 | 2009-03-31 | International Business Machines Corporation | Model-driven software deployment in an application server |
US7926030B1 (en) * | 2005-09-30 | 2011-04-12 | Harmony Information Systems, Inc. | Configurable software application |
JP2007249863A (ja) * | 2006-03-17 | 2007-09-27 | Ricoh Co Ltd | 画像処理装置、ユーザインターフェース画面カスタマイズ方法、ユーザインターフェース画面カスタマイズプログラム |
US8930555B2 (en) * | 2007-03-08 | 2015-01-06 | Microsoft Corporation | Extending functionality of web-based applications |
US20080228505A1 (en) * | 2007-03-13 | 2008-09-18 | Kevin Hanes | Client Deployment Optimization Model |
US9286033B2 (en) * | 2007-05-07 | 2016-03-15 | Biglever Software, Inc. | Model elements in software tools as automatons in a software customization system and method |
JP2009086791A (ja) * | 2007-09-28 | 2009-04-23 | Hitachi Ltd | ソフトウェア製品系列分析装置 |
US8291374B2 (en) * | 2007-11-05 | 2012-10-16 | Cullum Owen H G | System and method for generating modified source code based on change-models |
US20100180272A1 (en) * | 2009-01-15 | 2010-07-15 | Kevin Kettler | System For Enabling Virtual Services On A Business And A Consumer Device |
US8997067B2 (en) * | 2012-01-31 | 2015-03-31 | Sap Se | Unified software build system |
US9760343B2 (en) * | 2014-11-28 | 2017-09-12 | Sap Se | Application builder based on metadata |
-
2008
- 2008-03-28 CN CN2008100898372A patent/CN101546260B/zh active Active
-
2009
- 2009-03-16 US US12/404,986 patent/US9524145B2/en active Active
-
2016
- 2016-11-10 US US15/348,714 patent/US10228935B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101127655A (zh) * | 2006-08-18 | 2008-02-20 | 国际商业机器公司 | 集成现有基于万维网的系统的方法和系统 |
CN101149750A (zh) * | 2007-10-29 | 2008-03-26 | 浙江大学 | 一种基于元数据的数据资源整合方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101546260A (zh) | 2009-09-30 |
US10228935B2 (en) | 2019-03-12 |
US9524145B2 (en) | 2016-12-20 |
US20170060576A1 (en) | 2017-03-02 |
US20090249288A1 (en) | 2009-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101546260B (zh) | 用于重构面向服务的应用的方法及其设备 | |
US8375354B2 (en) | System and method and apparatus for using UML tools for defining web service bound component applications | |
US7665064B2 (en) | Systems and methods for web service function, definition, implementation, and/or execution | |
US20180024814A1 (en) | Automated enterprise software development | |
US7127702B2 (en) | Application development system and method | |
CA2539474C (en) | System and method for dynamic generation and customization of web service client applications for terminals | |
US7404188B2 (en) | Method and software for publishing a business process orchestration as a web service | |
US20080209392A1 (en) | Systems and Methods for Definition and Execution of Batch Processing Services | |
US8838627B2 (en) | Systems and methods for providing template based output management | |
US20070011650A1 (en) | Computer method and apparatus for developing web pages and applications | |
US7257647B2 (en) | Development environment platform using message type mapping for converting message and providing information between systems having different data structures | |
EP1311943A2 (en) | Resource creation method and tool | |
CN115640045B (zh) | 基于领域驱动设计的低代码开发平台及业务系统创建方法 | |
US20020066074A1 (en) | Method and system for developing and executing software applications at an abstract design level | |
US10313421B2 (en) | Providing Odata service based on service operation execution flow | |
Uyanik et al. | A template-based code generator for web applications | |
Liu et al. | Engineering information service infrastructure for ubiquitous computing | |
US7716653B2 (en) | Configurable importers and resource writers for converting data into another format | |
Brambilla et al. | Model-driven design of service-enabled web applications | |
Foetsch et al. | A concept and implementation of higher-level XML transformation languages | |
Ajit et al. | Model-based tool support for Tactical Data Links: an experience report from the defence domain | |
Klimenko | E-commerce Platform Integration Development. Case: Liana Technologies Oy | |
Virta | Migrating Integration from SOAP to REST | |
Brito et al. | From a Desktop Application to a Web API A Code Conversion Approach | |
Yaici et al. | A model-based approach for the generation of adaptive user interfaces on portable devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |