CN104360859B - 一种可视化的服务开发方法和*** - Google Patents
一种可视化的服务开发方法和*** Download PDFInfo
- Publication number
- CN104360859B CN104360859B CN201410647748.0A CN201410647748A CN104360859B CN 104360859 B CN104360859 B CN 104360859B CN 201410647748 A CN201410647748 A CN 201410647748A CN 104360859 B CN104360859 B CN 104360859B
- Authority
- CN
- China
- Prior art keywords
- model
- service
- data
- component
- meta
- 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
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开的可视化的服务开发方法和***,针对企业级服务预先定义了通用的数据元模型集合、服务元模型集合、构件元模型集合及图元集合。在此基础上,可基于预先定义的统一元模型分别构建目标服务所需的数据模型、服务模型及构件模型;其中,所构建的各模型依据所述目标服务的实际业务需求相互结合,构成目标服务所对应的完整服务模型;之后为所述完整服务模型生成相应的可运行目标代码,例如,具体可使用JET技术,结合JET代码模板生成可运行的目标代码。可见,本发明通过统一建模并为所建模型生成代码的方式实现了服务的可视化设计和开发,同时,保证了设计和代码的一致性和设计的精确性,提高了代码的可维护和可持续开发能力。
Description
技术领域
本发明属于企业级服务的可视化设计、开发技术领域,尤其涉及一种可视化的服务开发方法和***。
背景技术
服务的开发过程包括编写服务的概要设计文档、详细设计文档,以及在所设计文档的基础上进行服务流程的代码编写。
目前,采用人工输入方式进行服务流程程序代码的编写,例如,在Eclipse IDE(Integrated Development Environment,集成开发环境)中,开发人员通过键盘手工输入所编写的代码,此种方式下,程序代码的质量依赖于开发人员对编程语言的掌握程度,不同开发人员的代码质量参差不齐,风格不一,可读性不高;且实际编码过程与文档设计过程相脱节,导致业务流程设计和代码实现不同步,易出现设计与实现不一致的情况,增加了维护难度。
发明内容
有鉴于此,本发明的目的在于提供一种可视化的服务开发方法和***,以解决上述问题,保证设计与代码的精准性及两者间的一致性,提高代码的可维护和可持续开发能力。
为此,本发明公开如下技术方案:
一种可视化的服务开发方法,包括:
基于预先定义的数据元模型集合、构建目标服务所需的数据模型;
基于预先定义的服务元模型集合,结合引用所述数据模型、并辅以相应的图元,构建目标服务所需的服务模型,其中,所述图元为对所采用编程语言的语法进行逻辑抽象所得的可视化节点;
在所述服务模型的基础上,基于预先定义的构件元模型集合,并辅以相应的图元,构建目标服务所需的构件模型,其中,所构建的各模型依据所述目标服务的实际业务需求相互结合,并构成目标服务所对应的完整服务模型;
为所述完整服务模型生成相应的可运行目标代码。
上述方法,优选的,所述基于预先定义的数据元模型集合构建目标服务所需的数据模型,包括:
接收到操作人员的数据模型创建请求时,导入所述数据模型创建请求包括的企业级业务数据模型标识所对应的企业级业务数据模型,其中,所述企业级业务数据模型为目标服务所需的企业级业务数据模型;
解析所述企业级业务数据模型,并依据解析结果从预先定义的数据元模型集合中确定与所述企业级业务数据模型相匹配的数据元模型;
利用所述企业级业务数据模型的内容对所述数据元模型进行填充,得到数据模型。
上述方法,优选的,所述基于预先定义的服务元模型集合,结合引用所述数据模型、并辅以相应的图元构建目标服务所需的服务模型,包括:
接收到操作人员的服务模型创建请求时,导入所述服务模型创建请求包括的服务定义文档标识所对应的服务定义文档,以及导入所述服务定义文档所需的数据模型;
接收操作人员对所述服务定义文档所补充录入的服务运行时信息;
基于相应的服务元模型,将补充后的服务定义文档转换为相应的服务模型,对所述服务模型进行显示控制,并接收操作人员在显示的服务模型上基于相应图元所添加的细化设计信息。
上述方法,优选的,在所述服务模型的基础上,基于预先定义的构件元模型集合,并辅以相应的图元构建目标服务所需的构件模型,包括:
接收操作人员在显示的服务模型上,基于相应的构件元模型并辅以相应的图元,对所述服务模型进行细化设计所添加的构件信息,得到构件模型;
对所述构件信息进行显示控制,以实现在所述构件模型的相应位置显示所述构件信息;
接收操作人员在显示的服务模型上,基于相应的构件模型并辅以相应图元,对所述构件信息进行的拓扑结构和适配映射控制,以实现在所述服务模型的相应位置装配所述构件信息,并由布局优化算法实现所述构件模型的拓扑显示。
上述方法,优选的,还包括:
对所述完整服务模型进行模型检测,若检测通过,则触发代码生成操作,否则对所述完整服务模型进行调整提示,直至其检测通过,再触发所述代码生成操作。
上述方法,优选的,还包括:
接收到操作人员的配置管理请求时,对服务的设计、开发过程进行相应的配置管理。
一种可视化的服务开发***,包括:
数据模型创建模块,用于基于预先定义的数据元模型集合、构建目标服务所需的数据模型;
服务模型创建模块,用于基于预先定义的服务元模型集合,结合引用所述数据模型、并辅以相应的图元,构建目标服务所需的服务模型,其中,所述图元为对所采用编程语言的语法进行逻辑抽象所得的可视化节点;
构件模型创建模块,用于在所述服务模型的基础上,基于预先定义的构件元模型集合,并辅以相应的图元,构建目标服务所需的构件模型,其中,所构建的各模型依据所述目标服务的实际业务需求相互结合,并构成目标服务所对应的完整服务模型;
代码生成模块,用于为所述完整服务模型生成相应的可运行目标代码。
上述***,优选的,所述数据模型创建模块包括:
第一导入单元,用于在接收到操作人员的数据模型创建请求时,导入所述数据模型创建请求包括的企业级业务数据模型标识所对应的企业级业务数据模型,其中,所述企业级业务数据模型为目标服务所需的企业级业务数据模型;
解析单元,用于解析所述企业级业务数据模型,并依据解析结果从预先定义的数据元模型集合中确定与所述企业级业务数据模型相匹配的数据元模型;
填充单元,用于利用所述企业级业务数据模型的内容对所述数据元模型进行填充,得到数据模型,并对所述数据模型进行显示控制。
上述***,优选的,所述服务模型创建模块包括:
第二导入单元,用于在接收到操作人员的服务模型创建请求时,导入所述服务模型创建请求包括的服务定义文档标识所对应的服务定义文档,以及导入所述服务定义文档所需的数据模型;
第一接收单元,用于接收操作人员对所述服务定义文档所补充录入的服务运行时信息;
转换单元,用于基于相应的服务元模型,将补充后的服务定义文档转换为相应的服务模型,对所述服务模型进行显示控制,并接收操作人员在显示的服务模型上基于相应图元所添加的细化设计信息。
上述***,优选的,所述构件模型创建模块包括:
第二接收单元,用于接收操作人员在显示的服务模型上,基于相应的构件元模型并辅以相应的图元,对所述服务模型进行细化设计所添加的构件信息,以得到构件模型;
控制单元,用于对所述构件信息进行显示控制,以实现在所述构件模型的相应位置显示所述构件信息;
第三接收单元,用于接收操作人员在显示的服务模型上,基于相应的构件模型并辅以相应图元,对所述构件信息进行的拓扑结构和适配映射控制,以实现在所述服务模型的相应位置装配所述构件信息,并由布局优化算法实现所述构件模型的拓扑显示。
上述***,优选的,还包括:
检测模块,用于对所述完整服务模型进行模型检测,若检测通过,则触发代码生成操作,否则对所述完整服务模型进行调整提示,直至其检测通过,再触发所述代码生成操作。
上述***,优选的,还包括:
配置管理模块,用于在接收到操作人员的配置管理请求时,对服务的设计、开发过程进行相应的配置管理。
由以上方案可知,本发明针对企业级服务预先定义了通用的数据元模型集合、服务元模型集合、构件元模型集合及图元集合。在此基础上,可基于预先定义的统一元模型分别构建目标服务所需的数据模型、服务模型及构件模型;其中,所构建的各模型依据所述目标服务的实际业务需求相互结合,且构成目标服务所对应的完整服务模型;之后为所述完整服务模型生成相应的可运行目标代码,例如,具体可使用JET技术,结合JET代码模板生成可运行的目标代码。可见,本发明通过统一建模并为所建模型生成代码的方式实现了服务的可视化设计和开发,同时,保证了设计和代码的一致性和设计的精确性,提高了代码的可维护和可持续开发能力。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本发明实施例一公开的可视化服务开发方法的一种流程图;
图2是本发明实施例一公开的数据模型的创建流程图;
图3是本发明实施例一公开的服务模型的创建流程图;
图4是本发明实施例一公开的构件模型的创建流程图;
图5是本发明实施例二公开的可视化服务开发方法的另一种流程图;
图6是本发明实施例三公开的可视化服务开发方法的又一种流程图;
图7是本发明实施例四公开的可视化服务开发***的一种结构示意图;
图8是本发明实施例四公开的可视化服务开发***的另一种结构示意图;
图9是本发明实施例四公开的可视化服务开发***的又一种结构示意图。
具体实施方式
为了引用和清楚起见,下文中使用的技术名词、简写或缩写总结解释如下:
DSL:Definitive Software Library,最终软件库,它记录了企业所有经过授权与测试的软件信息。
GEF:Graphical Editing Framework,图形化编辑框架。可以用来给用户提供图形化编辑模型的功能,从而提升用户体验,典型的应用如图形化的流程设计器、UML类图等
GMF:Graphical Modeling Framework(GMF),提供了图形化编辑器的开发环境和运行时框架。
EMF:Eclipse Modeling Framework,Eclipse建模框架,EMF是一个Java框架,它为结构化模型提供代码生成机制。借助EMF可以将面向对象的建模快速转化为高效、准确、标准化的Java代码。
JET:Java Emitter Templates,一个开源的模板引擎,其功能是在EMF中生成代码。
JAVA语言:是一种面向过程的高级程序设计语言,拥有跨平台、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
SOA:Service-oriented architecture,面向服务的体系结构。SOA是构造分布式计算的应用程序的方法,它将应用程序功能作为服务发送给最终用户或者其他服务。
RSA:IBM Rational Software Architect工具。该工具是IBM Rational产品之一,该产品具有强大的建模能力,本发明是基于RSA工具上的二次开发。
UML:Unified Modeling Language,统一建模语言,是用来对软件密集***进行可视化建模的一种语言。
XML:eXtensible Markup Language,可扩展标记语言。XML是从标准通用标记语言(SGML)中简化修改出来的,它主要用到的有可扩展标记语言、可扩展样式语言(XSL)、XBRL和XPath等。
VMD:Visual Model Developer,为本发明的可视化设计工具,具体是在在RSA基础上通过二次开发进行本发明所需的定制修改,功能扩展后形成的平台。
数据元模型:本发明***内建的表述数据定义所需的规格化信息模型。作为数据模型存储、交换、关联、显示的元模型。包含抽象数据元模型(ADM)及其衍生的交换数据元模型(EDM)、持久化数据元模型(PDM)等。以XML schema形式表述。
企业级业务数据模型集:本发明对业务数据语义及技术规格进行企业级规范化统一集中定义的数据模型实体。包含对于单项数据的标准化定义以及通用数据结构的标准化定义。是从企业应用中的数据模型抽象归纳的集合。
数据模型:对数据实体定义精确、统一、完整的规格化描述。作为描述业务数据的交换、加工、持久化操作逻辑的基础模型。包含数据实体规格定义和数据内禀行为定义。数据内禀行为定义以构件模型形式表达。数据模型是对企业级业务数据元模型实体定义组装,同时数据模型是抽象归纳企业级业务数据元模型实体定义的的源。
抽象构件元模型:本发明***内建的表述抽象的模块化业务处理逻辑的规格化描述模型。包含抽象服务接口元模型和抽象服务实现元模型。是企业服务元模型、(原子/复合/持久化)构件元模型的父模型。以XML schema形式表述。
构件模型(集):本发明中,构件模型(集)包括复合构件模型、原子构件模型、服务模型、数据访问构件模型。是对相应类型构件的模型化描述实体。以XML形式表述。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本实施例一公开一种可视化的服务开发方法,参考图1,所述方法可以包括以下步骤:
S101:基于预先定义的数据元模型集合、构建目标服务所需的数据模型。
根据企业级服务的开发需要,本发明预先通过对Java语法进行可视化逻辑抽象,得出了一系列图元,并针对所抽象出的图元设置了相应的图解配置界面,其中,所抽象出的图元可参考表1所示。
表1
图元 | Java语法 |
数据传递节点 | 赋值 |
构件调用节点 | 方法调用 |
计算节点 | 四则运算、逻辑运算、比较运算 |
抛出异常节点 | throw语法 |
条件分支节点 | if then语法支持 |
循环节点 | for、while语法 |
分支节点 | switch case语法 |
子流程节点 | 自定义Java语句 |
返回节点 | return语句 |
循环跳出节点 | break语句 |
循环中断节点 | continue语句 |
同时,本发明预先定义了统一的数据元模型集合、服务元模型集合、构件元模型集合,作为后续构件及服务设计、开发的基础。
具体地,通过对数据结构进行分析和抽取,预先定义了通用的数据元模型集合;服务元模型及构件元模型分别用于对相应的业务流程规则进行限定和描述;企业级数据字典中包括各种所需的数据类型,如整型、实型、字符串型等。
参考图2,本步骤S101具体通过以下流程实现:
S201:接收到操作人员的数据模型创建请求时,导入所述数据模型创建请求包括的企业级业务数据模型标识所对应的企业级业务数据模型,其中,所述企业级业务数据模型为目标服务所需的企业级业务数据模型。
其中,所述操作人员即为企业服务的开发人员。
S202:解析所述企业级业务数据模型,并依据解析结果从预先定义的数据元模型集合中确定与所述企业级业务数据模型相匹配的数据元模型。
S203:利用所述企业级业务数据模型的内容对所述数据元模型进行填充,得到数据模型。
具体地,本发明将设计上游产出的企业级业务数据模型以XML(ExtensibleMarkup Language,可扩展标记语言)的形式导入,并将其转换为相应的数据模型进行存储、管理。
其中,数据模型的结构如下:
实际应用本发明时,可预先基于Eclipse插件技术,利用GMF、UML技术在RSA平台上进行二次开发,形成本发明所需的开发平台VMD。并可通过如下的数据定义及流程定义使VMD为企业服务的可视化设计、开发提供技术支持。
1)数据定义部分
通过对数据结构进行分析和抽取,定义了通用的数据元模型,VMD工具基于该元模型实现了数据模型编辑器,数据模型访问视图,从而在此基础上提供了数据模型的创建、修改、删除等功能,开发人员使用该系列编辑器可实现数据结构的增删改查操作,并产出数据模型,由于数据模型中各项内容的数据类型来源于企业级数据字典,因此,数据模型具有很强的业务语义,这些带有业务特性的数据模型用于作为VMD服务设计的数据输入部分。
2)流程定义部分
在VMD中建立了不同层次的模式和模板,从而可提供对业务流程部分的设计支持。其中,基本语言(如图元)所具有的能力是作为最小粒度的模式,在进行业务交易或构件设计时使用,用来建立语言层面的流程支持;业务处理流程的提炼和固化可以做为基本的业务处理流程在后续的服务开发过程中被重用,其也是由更小的图元模式组成,从而支持基于程序语言的服务和构件的可视化设计和开发。
需要说明的是,不同层次的业务流程模式为在一系列的服务开发过程中,通过对参考价值较高的业务处理流程进行提炼、固化及累积存储所得。提炼和固化的业务处理流程可存储在配置管理库中,后续在需要对配置管理库中的业务处理流程进行重用时,可通过配置类插件实现对所需流程进行调用配置。数据定义和流程定义为构件、服务设计和开发的核心部分。
S102:基于预先定义的服务元模型集合,结合引用所述数据模型、并辅以相应的图元,构建目标服务所需的服务模型,其中,所述图元为对所采用编程语言的语法进行逻辑抽象所得的可视化节点。
参考图3,步骤S102具体可通过如下流程实现:
S301:接收到操作人员的服务模型创建请求时,导入所述服务模型创建请求包括的服务定义文档标识所对应的服务定义文档,以及导入所述服务定义文档所需的数据模型。
S302:接收操作人员对所述服务定义文档所补充录入的服务运行时信息。
S303:基于相应的服务元模型,将补充后的服务定义文档转换为相应的服务模型,对所述服务模型进行显示控制,并接收操作人员在显示的服务模型上基于相应图元所添加的细化设计信息。
具体地,本发明通过解析半结构化的服务定义文档,并在开发人员通过手动录入方式补充文档中未包含的服务运行时信息后,依据相应服务元模型所规定的流程约束规则将服务定义转换为结构化的服务模型,并对其进行图示化显示,以作为后续构件设计、开发的基础。
所述服务定义文档包含了目标服务的接口信息及粗粒度的业务流程(后续会通过构件设计对服务的业务流程进行细化),在导入所述服务定义文档的同时,VMD也将所述服务定义文档中所涉及的数据模型导入进来,将数据模型作为服务设计的数据输入部分。
其中,服务模型的结构如下:
S103:在所述服务模型的基础上,基于预先定义的构件元模型集合,并辅以相应的图元,构建目标服务所需的构件模型,其中,所构建的各模型依据所述目标服务的实际业务需求相互结合,并构成目标服务所对应的完整服务模型。
参考图4,步骤S103具体包括:
S401:接收操作人员在显示的服务模型上,基于相应的构件元模型并辅以相应的图元,对所述服务模型进行细化设计所添加的构件信息,得到构件模型。
S402:对所述构件信息进行显示控制,以实现在所述构件模型的相应位置显示所述构件信息。
S403:接收操作人员在显示的服务模型上,基于相应的构件模型并辅以相应图元,对所述构件信息进行的拓扑结构和适配映射控制,以实现在所述服务模型的相应位置装配所述构件信息,并由布局优化算法实现所述构件模型的拓扑显示
其中,步骤S102实现了目标服务的粗粒度业务流程设计,即VMD依据转换所得的服务模型,在其设计界面上为开发人员提供了目标服务的可视化业务流程框架,在此基础上,本步骤依据目标服务的实际业务需求继续对目标服务的业务流程框架进行细化,根据细化的业务需求在显示的业务流程框架上进行所需的构件设计。
本发明具体使用DSL对RSA中的图元进行定制扩展,基于此,开发人员可以在RSA图形化编辑器中通过拖拽相应的图元、调用配置管理库中的相应业务处理流程以及对采用的图元、业务处理流程进行适应性调整完成构件的业务流程设计,进而完成了构件模型的可视化设计,实现了对服务模型进行细化,并最终得到一个完整的服务模型。
其中,本实施例具体采用UML(Unified Modeling Language,统一建模语言)设计服务模型或构件模型的业务流程图。
S104:为所述完整服务模型生成相应的可运行目标代码。
具体地,本发明使用JET技术,结合JET代码模板将所设计的完整服务模型转换为可运行的目标代码,避免了统一模型和具体的技术实现之间产生耦合。
由以上方案可知,本发明针对企业级服务预先定义了通用的数据元模型集合、服务元模型集合、构件元模型集合及图元集合。在此基础上,可基于预先定义的统一元模型分别构建目标服务所需的数据模型、服务模型及构件模型;其中,所构建的各模型依据所述目标服务的实际业务需求相互结合,且构成目标服务所对应的完整服务模型;之后为所述完整服务模型生成相应的可运行目标代码,例如,具体可使用JET技术,结合JET代码模板生成可运行的目标代码。可见,本发明通过统一建模并为所建模型生成代码的方式实现了服务的可视化设计和开发,同时,保证了设计和代码的一致性和设计的精确性,提高了代码的可维护和可持续开发能力。
实施例二
本实施例二中,参考图5,所述方法还可以包括以下步骤:
S105:对所述完整服务模型进行模型检测,若检测通过,则触发代码生成操作,否则对所述完整服务模型进行调整提示,直至其检测通过,再触发所述代码生成操作。
即具体地,在设计出目标服务的完整服务模型之后,本实施例首先通过模型校验对所述完整服务模型进行检查,若所述完整服务模型准确无误,则可进行后续的代码生成步骤,否则,通过模型校验对需调整的部分进行提示,待开发人员将模型调整无误后,再进行代码生成工作,保证了服务设计与开发的精准度。
实施例三
本实施例三中,参考图6,所述方法还可以包括以下步骤:
S106:在接收到操作人员的配置管理请求时,对服务的设计、开发过程进行相应的配置管理。
本发明集成了可对配置管理库进行配置的配置实施类插件,以实现为服务设计和开发过程中的配置管理需求提供支持。同时,本发明避免了统一模型和技术实现之间的耦合,可通过配置模板的形式确定服务的具体技术实现,在不修改服务设计实现的前提下能适应技术环境的变化。
实施例四
本实施例四公开一种可视化的服务开发***,该***与以上实施例一至实施例三公开的方法相对应。
首先,相应于实施例一,参考图7,所述***包括数据模型创建模块100、服务模型创建模块200、构件模型创建模块300及代码生成模块400。
数据模型创建模块100,用于基于预先定义的数据元模型集合、构建目标服务所需的数据模型。
其中,数据模型创建模块100包括第一导入单元、解析单元和解析单元。
第一导入单元,用于在接收到操作人员的数据模型创建请求时,导入所述数据模型创建请求包括的企业级业务数据模型标识所对应的企业级业务数据模型,其中,所述企业级业务数据模型为目标服务所需的企业级业务数据模型;
解析单元,用于解析所述企业级业务数据模型,并依据解析结果从预先定义的数据元模型集合中确定与所述企业级业务数据模型相匹配的数据元模型;
填充单元,用于利用所述企业级业务数据模型的内容对所述数据元模型进行填充,得到数据模型,并对所述数据模型进行显示控制。
服务模型创建模块200,用于基于预先定义的服务元模型集合,结合引用所述数据模型、并辅以相应的图元,构建目标服务所需的服务模型,其中,所述图元为对所采用编程语言的语法进行逻辑抽象所得的可视化节点。
其中,服务模型创建模块200包括第二导入单元、第一接收单元和转换单元。
第二导入单元,用于在接收到操作人员的服务模型创建请求时,导入所述服务模型创建请求包括的服务定义文档标识所对应的服务定义文档,以及导入所述服务定义文档所需的数据模型;
第一接收单元,用于接收操作人员对所述服务定义文档所补充录入的服务运行时信息;
转换单元,用于基于相应的服务元模型,将补充后的服务定义文档转换为相应的服务模型,对所述服务模型进行显示控制,并接收操作人员在显示的服务模型上基于相应图元所添加的细化设计信息。
构件模型创建模块300,用于在所述服务模型的基础上,基于预先定义的构件元模型集合,并辅以相应的图元,构建目标服务所需的构件模型,其中,所构建的各模型依据所述目标服务的实际业务需求相互结合,并构成目标服务所对应的完整服务模型。
其中,构件模型创建模块300包括第二接收单元、控制单元和第三接收单元。
第二接收单元,用于接收操作人员在显示的服务模型上,基于相应的构件元模型并辅以相应的图元,对所述服务模型进行细化设计所添加的构件信息,以得到构件模型;
控制单元,用于对所述构件信息进行显示控制,以实现在所述构件模型的相应位置显示所述构件信息。
第三接收单元,用于接收操作人员在显示的服务模型上,基于相应的构件模型并辅以相应图元,对所述构件信息进行的拓扑结构和适配映射控制,以实现在所述服务模型的相应位置装配所述构件信息,并由布局优化算法实现所述构件模型的拓扑显示。
代码生成模块400,用于为所述完整服务模型生成相应的可运行目标代码。
相应于实施例二,参考图8,所述***还包括检测模块500,该模块用于对所述完整服务模型进行模型检测,若检测通过,则触发代码生成操作,否则对所述完整服务模型进行调整提示,直至其检测通过,再触发所述代码生成操作。
相应于实施例三,参考图9,所述***还包括配置管理模块600,该模块用于在接收到操作人员的配置管理请求时,对服务的设计、开发过程进行相应的配置管理。
对于本发明实施例四公开的可视化服务开发***而言,由于其与以上各实施例公开的可视化服务开发方法相对应,所以描述的比较简单,相关相似之处请参见以上各实施例中可视化服务开发方法部分的说明即可,此处不再详述。
由以上描述可知,本发明具有如下优势:
1)区别于现有技术的编写概要设计文档、详细设计文档及编写程序代码的服务开发过程,本发明采用统一建模语言UML创建程序设计流程图,并同步生成目标代码。解决了业务流程设计和代码实现不同步的问题,保证了设计和代码的一致性和设计的精确性,提高了代码的可维护和可持续开发能力;
2)通过配置模板的形式确定服务的具体技术实现,从而在不修改服务设计实现的前提下能适应技术环境的变化;
3)实现了将企业级数据规范应用于服务设计和开发过程,同时规范数据的使用,还避免了由于沟通失误导致服务对接时出现接口不一致的情况;
4)可使程序设计人员从复杂的设计规范约束中解脱出来,转变为专注于业务的处理实现。
综上所述,本发明实现了代码、模型、文档的一致性,业务组件设计人员可无缝的导入上游企业级设计成果,并可通过图形化可视界面实现从流程草图到最终业务处理逻辑的反复迭代细化设计,且自动化生成与图形化流程设计完全一致的执行代码。降低了实施成本、提高了实施质量,同时可将设计工件作为企业级设计资源,对其进行持续的维护和重用。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
为了描述的方便,描述以上***时以功能分为各种模块或单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
最后,还需要说明的是,在本文中,诸如第一、第二、第三和第四等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (12)
1.一种可视化的服务开发方法,其特征在于,包括:
基于预先定义的数据元模型集合、构建目标服务所需的数据模型;
基于预先定义的服务元模型集合,结合引用所述数据模型、并辅以相应的图元,构建目标服务所需的服务模型,其中,所述图元为对所采用编程语言的语法进行逻辑抽象所得的可视化节点;
在所述服务模型的基础上,基于预先定义的构件元模型集合,并辅以相应的图元,构建目标服务所需的构件模型,其中,所构建的所述数据模型、所述服务模型及所述构件模型依据所述目标服务的实际业务需求相互结合,并构成目标服务所对应的完整服务模型;
为所述完整服务模型生成相应的可运行目标代码;
其中,所述数据元模型集合中的数据元模型为数据定义所需的规格化信息模型,用于作为数据模型存储、交换、关联、显示的元模型;
所述服务元模型集合中的服务元模型用于对相应的业务流程规则进行限定和描述;
所述构件元模型集合中的构件元模型为抽象的模块化业务处理逻辑的规格化描述模型。
2.根据权利要求1所述的方法,其特征在于,所述基于预先定义的数据元模型集合构建目标服务所需的数据模型,包括:
接收到操作人员的数据模型创建请求时,导入所述数据模型创建请求包括的企业级业务数据模型标识所对应的企业级业务数据模型,其中,所述企业级业务数据模型为目标服务所需的企业级业务数据模型;
解析所述企业级业务数据模型,并依据解析结果从预先定义的数据元模型集合中确定与所述企业级业务数据模型相匹配的数据元模型;
利用所述企业级业务数据模型的内容对所述数据元模型进行填充,得到数据模型。
3.根据权利要求2所述的方法,其特征在于,所述基于预先定义的服务元模型集合,结合引用所述数据模型、并辅以相应的图元构建目标服务所需的服务模型,包括:
接收到操作人员的服务模型创建请求时,导入所述服务模型创建请求包括的服务定义文档标识所对应的服务定义文档,以及导入所述服务定义文档所需的数据模型;
接收操作人员对所述服务定义文档所补充录入的服务运行时信息;
基于相应的服务元模型,将补充后的服务定义文档转换为相应的服务模型,对所述服务模型进行显示控制,并接收操作人员在显示的服务模型上基于相应图元所添加的细化设计信息。
4.根据权利要求3所述的方法,其特征在于,在所述服务模型的基础上,基于预先定义的构件元模型集合,并辅以相应的图元构建目标服务所需的构件模型,包括:
接收操作人员在显示的服务模型上,基于相应的构件元模型并辅以相应的图元,对所述服务模型进行细化设计所添加的构件信息,得到构件模型;
对所述构件信息进行显示控制,以实现在所述构件模型的相应位置显示所述构件信息;
接收操作人员在显示的服务模型上,基于相应的构件模型并辅以相应图元,对所述构件信息进行的拓扑结构和适配映射控制,以实现在所述服务模型的相应位置装配所述构件信息,并由布局优化算法实现所述构件模型的拓扑显示。
5.根据权利要求1所述的方法,其特征在于,还包括:
对所述完整服务模型进行模型检测,若检测通过,则触发代码生成操作,否则对所述完整服务模型进行调整提示,直至其检测通过,再触发所述代码生成操作。
6.根据权利要求1所述的方法,其特征在于,还包括:
接收到操作人员的配置管理请求时,对服务的设计、开发过程进行相应的配置管理。
7.一种可视化的服务开发***,其特征在于,包括:
数据模型创建模块,用于基于预先定义的数据元模型集合、构建目标服务所需的数据模型;
服务模型创建模块,用于基于预先定义的服务元模型集合,结合引用所述数据模型、并辅以相应的图元,构建目标服务所需的服务模型,其中,所述图元为对所采用编程语言的语法进行逻辑抽象所得的可视化节点;
构件模型创建模块,用于在所述服务模型的基础上,基于预先定义的构件元模型集合,并辅以相应的图元,构建目标服务所需的构件模型,其中,所构建的所述数据模型、所述服务模型及所述构件模型依据所述目标服务的实际业务需求相互结合,并构成目标服务所对应的完整服务模型;
代码生成模块,用于为所述完整服务模型生成相应的可运行目标代码;
其中,所述数据元模型集合中的数据元模型为数据定义所需的规格化信息模型,用于作为数据模型存储、交换、关联、显示的元模型;
所述服务元模型集合中的服务元模型用于对相应的业务流程规则进行限定和描述;
所述构件元模型集合中的构件元模型为抽象的模块化业务处理逻辑的规格化描述模型。
8.根据权利要求7所述的***,其特征在于,所述数据模型创建模块包括:
第一导入单元,用于在接收到操作人员的数据模型创建请求时,导入所述数据模型创建请求包括的企业级业务数据模型标识所对应的企业级业务数据模型,其中,所述企业级业务数据模型为目标服务所需的企业级业务数据模型;
解析单元,用于解析所述企业级业务数据模型,并依据解析结果从预先定义的数据元模型集合中确定与所述企业级业务数据模型相匹配的数据元模型;
填充单元,用于利用所述企业级业务数据模型的内容对所述数据元模型进行填充,得到数据模型,并对所述数据模型进行显示控制。
9.根据权利要求8所述的***,其特征在于,所述服务模型创建模块包括:
第二导入单元,用于在接收到操作人员的服务模型创建请求时,导入所述服务模型创建请求包括的服务定义文档标识所对应的服务定义文档,以及导入所述服务定义文档所需的数据模型;
第一接收单元,用于接收操作人员对所述服务定义文档所补充录入的服务运行时信息;
转换单元,用于基于相应的服务元模型,将补充后的服务定义文档转换为相应的服务模型,对所述服务模型进行显示控制,并接收操作人员在显示的服务模型上基于相应图元所添加的细化设计信息。
10.根据权利要求9所述的***,其特征在于,所述构件模型创建模块包括:
第二接收单元,用于接收操作人员在显示的服务模型上,基于相应的构件元模型并辅以相应的图元,对所述服务模型进行细化设计所添加的构件信息,以得到构件模型;
控制单元,用于对所述构件信息进行显示控制,以实现在所述构件模型的相应位置显示所述构件信息;
第三接收单元,用于接收操作人员在显示的服务模型上,基于相应的构件模型并辅以相应图元,对所述构件信息进行的拓扑结构和适配映射控制,以实现在所述服务模型的相应位置装配所述构件信息,并由布局优化算法实现所述构件模型的拓扑显示。
11.根据权利要求7所述的***,其特征在于,还包括:
检测模块,用于对所述完整服务模型进行模型检测,若检测通过,则触发代码生成操作,否则对所述完整服务模型进行调整提示,直至其检测通过,再触发所述代码生成操作。
12.根据权利要求7所述的***,其特征在于,还包括:
配置管理模块,用于在接收到操作人员的配置管理请求时,对服务的设计、开发过程进行相应的配置管理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410647748.0A CN104360859B (zh) | 2014-11-14 | 2014-11-14 | 一种可视化的服务开发方法和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410647748.0A CN104360859B (zh) | 2014-11-14 | 2014-11-14 | 一种可视化的服务开发方法和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104360859A CN104360859A (zh) | 2015-02-18 |
CN104360859B true CN104360859B (zh) | 2017-08-25 |
Family
ID=52528123
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410647748.0A Active CN104360859B (zh) | 2014-11-14 | 2014-11-14 | 一种可视化的服务开发方法和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104360859B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105677875B (zh) * | 2016-01-11 | 2019-01-29 | 清华大学 | 一种基于标准数据元素统一约束的可视化建模平台 |
CN106550045A (zh) * | 2016-11-24 | 2017-03-29 | 北京中电普华信息技术有限公司 | 一种分布式数据处理方法及组件 |
CN107368346A (zh) * | 2017-07-06 | 2017-11-21 | 万惠投资管理有限公司 | 一种基于元数据和脚本引擎的代码生成方法及装置 |
WO2019033405A1 (zh) * | 2017-08-18 | 2019-02-21 | 深圳怡化电脑股份有限公司 | 一种业务流程的更新方法及装置 |
CN107608667A (zh) * | 2017-08-18 | 2018-01-19 | 深圳怡化电脑股份有限公司 | 一种业务流程的更新方法及装置 |
CN107515824A (zh) * | 2017-08-22 | 2017-12-26 | 北京仿真中心 | 一种基于变量划分的构件***符号化模型检测方法 |
CN107589938A (zh) * | 2017-09-07 | 2018-01-16 | 广东电网有限责任公司信息中心 | 一种电力信息集成技术规范服务生成方法及装置 |
CN109840074B (zh) * | 2017-11-24 | 2021-02-23 | 华为技术有限公司 | 一种业务生成方法、装置及网络设备 |
CN110297945B (zh) * | 2019-07-02 | 2021-07-30 | 中国工商银行股份有限公司 | 基于xbrl的数据信息处理方法及*** |
CN110941422B (zh) * | 2019-11-21 | 2023-08-15 | 山东鲁能软件技术有限公司 | 代码自动生成方法、代码生成器及可读存储介质 |
CN111427561A (zh) * | 2020-03-26 | 2020-07-17 | 中国建设银行股份有限公司 | 业务代码的生成方法、装置、计算机设备和存储介质 |
CN112363714A (zh) * | 2020-11-03 | 2021-02-12 | 中国建设银行股份有限公司 | 一种服务组合模型的开发方法、装置、存储介质及设备 |
CN114691187A (zh) * | 2020-12-29 | 2022-07-01 | 北京嘀嘀无限科技发展有限公司 | 节点注册方法、装置、计算机设备和存储介质 |
CN112631785A (zh) * | 2020-12-31 | 2021-04-09 | 新奥数能科技有限公司 | 基于bpmn的业务数据加工方法和装置 |
CN113655996B (zh) * | 2021-08-04 | 2024-02-20 | 北京航空航天大学 | 一种基于需求模型的企业级***生成方法 |
CN113516543A (zh) * | 2021-08-06 | 2021-10-19 | 上海中通吉网络技术有限公司 | 基于动态配置的收单方法和*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101164044A (zh) * | 2005-04-22 | 2008-04-16 | 瑞士银行股份有限公司 | 平台无关服务建模技术 |
CN101482817A (zh) * | 2008-12-18 | 2009-07-15 | 浙江大学 | 基于黑盒的大粒度Java构件组装方法 |
CN101488086A (zh) * | 2008-12-23 | 2009-07-22 | 北京中企开源信息技术有限公司 | 一种基于领域模型的软件生成方法及装置 |
CN101533349A (zh) * | 2009-04-15 | 2009-09-16 | 哈尔滨工业大学 | 一种大粒度构件的平台相关模型及其代码自动生成方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8707261B2 (en) * | 2010-02-19 | 2014-04-22 | Sap Ag | Service integration modeling and execution framework |
-
2014
- 2014-11-14 CN CN201410647748.0A patent/CN104360859B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101164044A (zh) * | 2005-04-22 | 2008-04-16 | 瑞士银行股份有限公司 | 平台无关服务建模技术 |
CN101482817A (zh) * | 2008-12-18 | 2009-07-15 | 浙江大学 | 基于黑盒的大粒度Java构件组装方法 |
CN101488086A (zh) * | 2008-12-23 | 2009-07-22 | 北京中企开源信息技术有限公司 | 一种基于领域模型的软件生成方法及装置 |
CN101533349A (zh) * | 2009-04-15 | 2009-09-16 | 哈尔滨工业大学 | 一种大粒度构件的平台相关模型及其代码自动生成方法 |
Non-Patent Citations (2)
Title |
---|
基于数据模型驱动的业务组件自动生成;尹彦均 等;《全国第四届Web信息***及其应用学术会议》;20111027;第34卷(第11期);213-216 * |
模型驱动的服务构件开发工具;钱建平 等;《计算机工程》;20100118;第35卷(第21期);42-47 * |
Also Published As
Publication number | Publication date |
---|---|
CN104360859A (zh) | 2015-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104360859B (zh) | 一种可视化的服务开发方法和*** | |
Koch | Transformation techniques in the model-driven development process of UWE | |
US8418125B2 (en) | Incremental model refinement and transformation in generating commerce applications using a model driven architecture | |
Antkiewicz et al. | FeaturePlugin: Feature modeling plug-in for Eclipse | |
CN103135976B (zh) | 代码自动生成方法及装置 | |
CN103383645A (zh) | 代码生成方法及*** | |
CN102236645A (zh) | 基于语义逻辑的类自然语言人机对话装置 | |
CN108089861A (zh) | 一种从SysML模型转换到AltaRica模型的转换方法 | |
CN106095404A (zh) | 一种业务过程模型至服务组成模型的自动模型转换方法 | |
Wimmer et al. | From AutomationML to AutomationQL: a by-example query language for CPPS engineering models | |
CN103699746B (zh) | 基于数据库的cadds5管系三维设计方法及*** | |
Ehrig et al. | Towards graph transformation based generation of visual editors using eclipse | |
CN111176658A (zh) | 基于元对象机制的AADL到Simulink模型自动转换方法 | |
André et al. | A modular approach for reusing formalisms in verification tools of concurrent systems | |
CN111291444B (zh) | 飞机装配的建模方法、装置、设备及存储介质 | |
CN107368302A (zh) | 一种基于本体的设计模式识别方法 | |
Foetsch et al. | A concept and implementation of higher-level XML transformation languages | |
Maruna et al. | The business process transformation framework implementation through metamodel extension | |
Brambilla et al. | A Metamodel Transformation Framework for the Migration of WebML Models to MDA. | |
Böhms et al. | IntUBE energy information integration platform | |
Ahmad et al. | An AADL-DEVS Framework for Cyber-Physical Systems Modeling and Simulation Supported with an Integrated OSATE and DEVS-Suite Tools | |
Wu et al. | Rules oriented business process modeling | |
US9274762B2 (en) | System and method for developing an object-oriented system | |
Agrawal et al. | Model based software engineering, graph grammars and graph transformations | |
Li et al. | Model querying with graphical notation of QVT relations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |