CN108647019B - 一种服务组合的控制层编码方法 - Google Patents

一种服务组合的控制层编码方法 Download PDF

Info

Publication number
CN108647019B
CN108647019B CN201810455638.2A CN201810455638A CN108647019B CN 108647019 B CN108647019 B CN 108647019B CN 201810455638 A CN201810455638 A CN 201810455638A CN 108647019 B CN108647019 B CN 108647019B
Authority
CN
China
Prior art keywords
node
command
branch
type
conversion
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
Application number
CN201810455638.2A
Other languages
English (en)
Other versions
CN108647019A (zh
Inventor
陈圣杰
孙立新
黄秀岭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur General Software Co Ltd
Original Assignee
Inspur General Software Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Inspur General Software Co Ltd filed Critical Inspur General Software Co Ltd
Priority to CN201810455638.2A priority Critical patent/CN108647019B/zh
Publication of CN108647019A publication Critical patent/CN108647019A/zh
Application granted granted Critical
Publication of CN108647019B publication Critical patent/CN108647019B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (AREA)
  • General Physics & Mathematics (AREA)
  • Educational Administration (AREA)
  • Tourism & Hospitality (AREA)
  • Quality & Reliability (AREA)
  • General Business, Economics & Management (AREA)
  • Operations Research (AREA)
  • Marketing (AREA)
  • Computing Systems (AREA)
  • Game Theory and Decision Science (AREA)
  • Development Economics (AREA)
  • Stored Programmes (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本发明提供一种服务组合的控制层编码方法,涉及用户图形界面领域,本发明主要包括以下内容:1)命令描述;2)生成命令;3)执行命令;用户对界面层的操作触发命令,发起一个命令,命令接收初始数据并启动数据流,数据经过若干节点完成控制层逻辑。命令的每个节点都符合规定的接口规范,当需要在数据流转过程中增加扩展逻辑时,只要插入同样符合接口规范的节点即可进行扩展.通过应用此方法,能够提升应用程序控制层开发灵活性,提升应用程序开发扩展能力,提高开发效率提高开发效率。

Description

一种服务组合的控制层编码方法
技术领域
本发明涉及用户图形界面领域,尤其涉及一种服务组合的控制层编码方法。
背景技术
MVC是一种使用模型、视图、控制器设计创建Web应用程序的模式。控制器是应用程序中处理用户交互的部分,通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。控制器接受用户的输入后,会对用户输入数据进行验证、处理并决定如何向模型发送;接受模型反馈的数据后,会对数据进行加工处理具体,确定数据如何显示以及显示在视图什么位置。控制器在MVC框架中起到粘合剂的作用,沟通视图和模型。在ERP系统开发中,控制器负责控制数据在界面层和模型层间的流向,ERP系统控制层逻辑复杂,场景多样,个性化功能通过二次开发扩展来实现。为提高产品二次开发扩展能力,提升开发效率,需要一种基于服务组合的控制层编码模式。
发明内容
为了解决以上技术问题,本发明提出了一种服务组合的控制层编码方法,能够提升应用程序控制层二层开发扩展能力,提高开发效率。
响应式编程是一种面向数据流和变化传播的编程范式。这意味着可以在编程语言中很方便地表达静态或动态的数据流,而相关的计算模型会自动将变化的值通过数据流进行传播。
本发明采用响应式编程的模式进行控制层编码,控制层逻辑由命令组成。命令是一个数据流,并包含对数据的加工处理。用户对界面层的操作触发命令,发起一个命令,命令接收初始数据并启动数据流,数据经过若干节点完成控制层逻辑。命令的每个节点都符合规定的接口规范,当需要在数据流转过程中增加扩展逻辑时,只要插入同样符合接口规范的节点即可进行扩展。
本发明的技术任务是按照以下方式实现的:一种服务组合的控制层编码方法,包括以下步骤和内容:
(一)命令描述。
(二)生成命令。
(三)执行命令。
基于步骤(一),命令描述包括节点描述、节点编排规则描述。本发明使用XML格式描述节点和节点编排关系。
节点描述,本发明定义了四种类型节点,方法节点、分支节点、条件节点、命令节点。
方法节点,描述数据流转过程中对数据执行的方法,自身包含两个属性,此节点下最多可包含一个分支节点。
方法节点的属性描述如下:
属性 描述
service 执行方法所在的服务对象
method 对数据执行的方法
方法节点的XML Schema类型定义如下:
Figure GDA0003119276270000021
分支节点,描述数据流转分支,是方法节点的子节点。分支节点根据所属方法节点的执行结果,判断下一步数据流向哪个方法节点。分支节点可包含至少一个条件节点。
分支节点的Xml Schema类型定义如下:
Figure GDA0003119276270000022
条件节点,描述数据流转条件,是分支节点的子节点。其包含一个属性和至少一个方法节点,当上级方法节点的返回值与条件匹配时,条件成立,数据流转入此条件节点下的方法节点。
数据进入方法节点时,数据将按照方法节点声明顺序逐个进入方法节点。
属性 描述
switch 条件节点成立的值
条件节点的Xml Schema类型定义如下:
Figure GDA0003119276270000023
命令节点,描述数据流转的完整过程,命令节点下至少包含一个方法节点。命令启动时接收初始数据,启动后数据按照方法节点声明顺序,逐个进入方法节点。
命令节点Xml Schema类型定义如下:
Figure GDA0003119276270000024
Figure GDA0003119276270000031
节点编排规则,描述方法节点、分支节点、条件节点组成命令节点的规则。
具体规则如下:
命令节点至少包含一个方法节点,执行命令时,数据按照方法节点声明顺序逐个进入方法节点。
方法节点可包含分支节点,方法节点包含分支节点时,仅可包含一个分支节点。
分支节点下至少包含一个条件节点。
条件节点下至少包含一个方法节点。
基于步骤(二),生成命令是将Xml格式的命令描述转换为可执行代码。生成命令包括生成方法节点、生成分支节点、生成条件节点。
命令节点通过命令转换机制转换为可执行代码。命令转换机制包含转换接口,以及四种节点的转换策略。四种节点转换策略分别为,命令转换策略、方法转换策略、分支转换策略、条件转换策略,以上四种策略均实现转换接口。
转换接口定义如下:
Figure GDA0003119276270000032
命令转换策略的转换接口接收Xml格式的命令节点,其转换接口的实现逻辑为:
1、生成访问初始数据的代码。
2、生成创建命令代码。
3、读取命令节点下的方法节点,创建方法转换策略并调用方法策略的转换接口,输出方法执行代码。
4、将方法执行代码附加到命令代码内。
5、重复步骤3、4至遍历完所有方法节点为止。
6、输出完整命令代码。
方法转换策略的转换接口接收Xml格式的方法节点,其转换接口的实现逻辑为:
1、读取方法节点的service属性获取待调用服务名,根据服务名生成访问指定服务的代码。
2、读取方法节点的method属性获取待执行方法名,根据方法名生成调用指定服务方法的代码。
3、检查方法节点下是否包含分支节点,如果包含则创建分支转换策略并调用转换接口。
4、如果方法节点下包含分支描述节点,则将分支转换策略生成的代码附加到方法代码之后。
5、如果方法节点不包含分支节点,则直接返回生成的方法代码。
分支转换策略的转换接口接收Xml格式的分支节点,其转换接口的实现逻辑为:
1、生成分支选择代码。
2、读取分支节点下的条件节点,创建条件转换策略并调用转换接口,输出条件执行代码。
3、重复步骤2至遍历完所有条件节点为止。
4、输出分支选择代码。
条件转换策略的转换接口接收Xml格式的条件节点,其转换接口的实现逻辑为:
1、读取条件节点switch属性获取使条件成立的值。
2、读取条件节点下的方法节点,创建方法转换策略并调用转换接口,输出方法代码。
3、重复步骤2至遍历完所有方法节点为止。
4、输出满足此条件时执行的方法代码。
基于步骤(三),执行命令包括构造输入参数、执行方法节点、处理输出参数、分支控制。
构造输入参数,执行命令时首先构造命令执行上下文,命令执行上下文包含数据、执行结果两个属性。
执行方法节点时,执行上下文作为输入参数传递给每一个方法节点。创建执行上下文时,其中的数据为初始数据,数据进入每个方法节点时,方法节点对数据进行加工处理再反馈原始数据中。
处理输出参数,数据进入方法节点后,方法返回值被更新入执行上下文的执行结果。
分支控制,数据流转人分支节点时,分支节点读取执行上下文存储的执行结果,执行结果的值为上一个方法节点的返回值,将执行结果与条件节点的值进行比较,进入条件成立的下一个方法节点,最终完成命令执行。
本发明的有益效果:
通过应用此方法,可以提升应用程序控制层编码灵活性,提升应用程序控制层二层开发扩展能力,提高开发效率。
附图说明
图1是节点转换接口定义示意图;
图2是命令结构定义示意图。
具体实施方式
下面对本发明的内容进行更加详细的阐述:
以点击单据保存按钮的控制层逻辑为例创建保存命令。保存按钮的控制层逻辑为,当用户点击保存按钮后,系统验证界面数据是否符合提交规则,验证通过则向模型层提交界面数据,验证不通过在界面层向用户提示验证失败。系统提交数据后,模型层保存数据成功则在界面显示成功信息,否则显示失败信息。
根据以上场景,定义保存命令为:
Figure GDA0003119276270000041
命令转换机制将以上Xml格式命令转换为可以执行代码,以JavaScript代码为例,转换后的代码为:
Figure GDA0003119276270000051
以上可执行代码创建了名为saveCommand的命令,并调用saveCommand命令的perform方法执行命令。
创建命令时,传入arguments和results两个参数用于构造命令执行上下文的数据和执行结果。
Command对象支持链式调用,每个方法的返回值都是Command对象自身。生产的Command定义代码通过append方法添加方法节点执行代码。
首先,Command对象添通过append方法添加保存前验证逻辑。
然后,调用fork方法添加分支处理。分支处理逻辑包含两个条件,验证结果为true时,Command对象通过append方法添加数据提交逻辑;验证结果为false是,Command对象添加显示验证失败逻辑。
数据提交逻辑后,通过fork方法为Command增加分支处理逻辑,当提交逻辑返回值为true时,显示提交成功;当提交逻辑返回值为false时,显示异常信息。
最后,完成命令创建,当调用perform方法时启动命令,执行相关逻辑。

Claims (2)

1.一种服务组合的控制层编码方法,其特征在于,
主要包括以下内容:
1)命令描述;
2)生成命令;
3)执行命令;
其中,
命令描述,包括节点描述、节点编排规则描述;使用XML格式描述节点和节点编排关系;节点描述,包括四种类型节点,方法节点、分支节点、条件节点、命令节点;
生成命令,是将Xml格式的命令描述转换为可执行代码;生成命令包括生成方法节点、生成分支节点、生成条件节点;
执行命令,包括构造输入参数、执行方法节点、处理输出参数、分支控制;
方法节点,描述数据流转过程中对数据执行的方法,自身包含两个属性,此节点下最多包含一个分支节点;
方法节点的属性描述如下:
属性 描述 service 执行方法所在的服务对象 method 对数据执行的方法
方法节点类型为“可执行方法类型”,其类型定义如下。
“可执行方法类型”类型下必须包含名称为service,类型为字符串类型的属性;必须包含名称为“method”,类型为字符串类型的属性;最多包含一个名称为Fork,类型为“分支节点类型”的子元素。
分支节点,描述数据流转分支,是方法节点的子节点;分支节点根据所属方法节点的执行结果,判断下一步数据流向哪个方法节点;分支节点包含至少一个条件节点;
分支节点的类型为“分支节点类型”,其类型定义如下:
“分支节点类型”必须包含至少一个,名称为“Condition”,类型为“条件节点类型”的子元素。
条件节点,描述数据流转条件,是分支节点的子节点;其包含一个属性和至少一个方法节点,当上级方法节点的返回值与条件匹配时,条件成立,数据流转入此条件节点下的方法节点数据进入方法节点时,数据将按照方法节点声明顺序逐个进入方法节点;
属性 描述 switch 条件节点成立的值。
条件节点的类型为“条件节点类型”,其类型定义如下:
“条件节点类型”必须包含名称为“switch”,类型为字符串的书写;至少包含一个名称为“Executable”,类型为“可执行方法类型”的子元素。
命令节点,描述数据流转的完整过程,命令节点下至少包含一个方法节点;命令启动时接收初始数据,启动后数据按照方法节点声明顺序,逐个进入方法节点。
命令节点的类型为“命令类型”,其他类型定义如下:
“命令类型”必须至少包含一个名称为“Executable”,类型为“可执行方法类型”的子元素。
节点编排规则,描述方法节点、分支节点、条件节点组成命令节点的规则;
具体规则如下:
命令节点至少包含一个方法节点,执行命令时,数据按照方法节点声明顺序逐个进入方法节点;
方法节点可包含分支节点,方法节点包含分支节点时,仅包含一个分支节点;
分支节点下至少包含一个条件节点;
条件节点下至少包含一个方法节点;
命令节点通过命令转换机制转换为可执行代码;命令转换机制包含转换接口,以及四种节点的转换策略;四种节点转换策略分别为,命令转换策略、方法转换策略、分支转换策略、条件转换策略,以上四种策略均实现转换接口;
转换接口定义如下:
接口名称 输入 输入描述 输出 输出描述 IGenerate 节点 Xml格式的四种节点描述 可执行代码 可执行代码文本
命令转换策略的转换接口接收Xml格式的命令节点,其转换接口的实现逻辑为:
1)、生成访问初始数据的代码;
2)、生成创建命令代码;
3)、读取命令节点下的方法节点,创建方法转换策略并调用方法策略的转换接口,输出方法执行代码;
4)、将方法执行代码附加到命令代码内;
5)、重复步骤3)、4)至遍历完所有方法节点为止;
6)、输出完整命令代码;
方法转换策略的转换接口接收Xml格式的方法节点,其转换接口的实现逻辑为:
1)、读取方法节点的service属性获取待调用服务名,根据服务名生成访问指定服务的代码;
2)、读取方法节点的method属性获取待执行方法名,根据方法名生成调用指定服务方法的代码;
3)、检查方法节点下是否包含分支节点,如果包含则创建分支转换策略并调用转换接口;
4)、如果方法节点下包含分支描述节点,则将分支转换策略生成的代码附加到方法代码之后;
5)、如果方法节点不包含分支节点,则直接返回生成的方法代码;
分支转换策略的转换接口接收Xml格式的分支节点,其转换接口的实现逻辑为:
1)、生成分支选择代码;
2)、读取分支节点下的条件节点,创建条件转换策略并调用转换接口,输出条件执行代码;
3)、重复步骤2)至遍历完所有条件节点为止;
4)、输出分支选择代码;
条件转换策略的转换接口接收Xml格式的条件节点,其转换接口的实现逻辑为:
1)、读取条件节点switch属性获取使条件成立的值;
2)、读取条件节点下的方法节点,创建方法转换策略并调用转换接口,输出方法代码;
3)、重复步骤2至遍历完所有方法节点为止;
4)、输出满足此条件时执行的方法代码。
2.根据权利要求1所述的方法,其特征在于,
步骤3)中,
构造输入参数,执行命令时首先构造命令执行上下文,命令执行上下文包含数据、执行结果两个属性;
执行方法节点时,执行上下文作为输入参数传递给每一个方法节点;创建执行上下文时,其中的数据为初始数据,数据进入每个方法节点时,方法节点对数据进行加工处理再反馈原始数据中;
处理输出参数,数据进入方法节点后,方法返回值被更新入执行上下文的执行结果;
分支控制,数据流转人分支节点时,分支节点读取执行上下文存储的执行结果,执行结果的值为上一个方法节点的返回值,将执行结果与条件节点的值进行比较,进入条件成立的下一个方法节点,最终完成命令执行。
CN201810455638.2A 2018-05-14 2018-05-14 一种服务组合的控制层编码方法 Active CN108647019B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810455638.2A CN108647019B (zh) 2018-05-14 2018-05-14 一种服务组合的控制层编码方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810455638.2A CN108647019B (zh) 2018-05-14 2018-05-14 一种服务组合的控制层编码方法

Publications (2)

Publication Number Publication Date
CN108647019A CN108647019A (zh) 2018-10-12
CN108647019B true CN108647019B (zh) 2021-08-31

Family

ID=63755221

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810455638.2A Active CN108647019B (zh) 2018-05-14 2018-05-14 一种服务组合的控制层编码方法

Country Status (1)

Country Link
CN (1) CN108647019B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111078196A (zh) * 2018-10-22 2020-04-28 顺丰科技有限公司 基于mvc架构的消息传递方法、装置、设备及存储介质
CN109840088A (zh) * 2018-12-29 2019-06-04 深圳市梦域科技有限公司 一种开发框架设计的方法及装置
CN111965993A (zh) * 2020-05-11 2020-11-20 中核武汉核电运行技术股份有限公司 一种rinsim平台与数字化仪控系统的交互方法
CN112162738B (zh) * 2020-10-26 2022-11-29 广东粤港澳大湾区硬科技创新研究院 数据转化方法、装置、终端设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101256492A (zh) * 2008-03-31 2008-09-03 宋乃辉 一种进行模型驱动架构的软件开发方法及其系统
CN104618433A (zh) * 2014-12-26 2015-05-13 国家电网公司 一种基于eca规则的服务组合方法
CN106055316A (zh) * 2016-05-19 2016-10-26 四川物联亿达科技有限公司 一种供应链金融引擎系统、系统建立方法以及服务器
CN107273117A (zh) * 2017-05-25 2017-10-20 深圳市彬讯科技有限公司 一种编程友好型的敏捷代码自动生成系统
CN107291450A (zh) * 2017-05-25 2017-10-24 深圳市彬讯科技有限公司 一种编程友好型的敏捷代码自动生成方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101546260B (zh) * 2008-03-28 2012-07-11 国际商业机器公司 用于重构面向服务的应用的方法及其设备
KR101658670B1 (ko) * 2010-02-04 2016-09-21 삼성전자주식회사 휴대용 단말기에서 사용자 적응형 어플리케이션 생성 방법 및 장치

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101256492A (zh) * 2008-03-31 2008-09-03 宋乃辉 一种进行模型驱动架构的软件开发方法及其系统
CN104618433A (zh) * 2014-12-26 2015-05-13 国家电网公司 一种基于eca规则的服务组合方法
CN106055316A (zh) * 2016-05-19 2016-10-26 四川物联亿达科技有限公司 一种供应链金融引擎系统、系统建立方法以及服务器
CN107273117A (zh) * 2017-05-25 2017-10-20 深圳市彬讯科技有限公司 一种编程友好型的敏捷代码自动生成系统
CN107291450A (zh) * 2017-05-25 2017-10-24 深圳市彬讯科技有限公司 一种编程友好型的敏捷代码自动生成方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Model-Driven Automatic Generation of Verified BPEL Code for Web Service Composition;Bixin Li,Yu Zhou,Jun Pang;《2009 16th Asia-Pacific Software Engineering Conference》;20091203;全文 *
一种基于ECA规则的Web Service工作流模型的研究;贺春林,滕云,彭仁明;《计算机科学》;20090831;全文 *

Also Published As

Publication number Publication date
CN108647019A (zh) 2018-10-12

Similar Documents

Publication Publication Date Title
CN108647019B (zh) 一种服务组合的控制层编码方法
US8738735B2 (en) System for designing and performing web application
CN105824787B (zh) 一种html模板动态配置的控制方法及系统
JP6725535B2 (ja) 設計仕様書に基づきソフトウェアタイプアプリケーションを表示するコンピュータに実装された方法
US20160110190A1 (en) Web Client Command Infrastructure Integration into a Rich Client Application
US20120011447A1 (en) Facilitating propagation of user interface patterns or themes
CN110502212B (zh) 一种面向多语言的高并发在线开发支撑方法
KR20090013243A (ko) 워드 프로세서 문서의 원시 xml에서 비원시 xml을 지원하는 시스템 및 방법
US9645719B2 (en) Data-driven schema for describing and executing management tasks in a graphical user interface
CN109657103A (zh) 数据结构的转换方法、装置、计算机设备和存储介质
CN103383645A (zh) 代码生成方法及系统
CN101322096A (zh) 元数据驱动的用户界面
CN104375818A (zh) 一种通过配置文件实现通用数据格式录入的系统及方法
EP3640817A1 (en) System and method to convert a webpage built on a legacy framework to a webpage compatible with a target framework
Ranjan et al. JavaScript for modern web development: building a web application using HTML, CSS, and JavaScript
CN115562629A (zh) 一种rpa流程表示方法、系统、装置及存储介质
CN108228762A (zh) 用于配置主数据库通用模板的方法和系统
JP2001325098A (ja) アプリケーションプログラムの作成方法、データベース操作方法、項目オブジェクト管理方法、モジュール動作制御方法ならびにデータベース操作方法、項目オブジェクト管理方法およびモジュール動作制御方法を実現するためのプログラムを記録したコンピュータ可読な記録媒体
Jennings Professional ADO. NET 3.5 with LINQ and the Entity Framework
US9594737B2 (en) Natural language-aided hypertext document authoring
JP2001125855A (ja) 動的Webページ生成プログラム
CN116450246A (zh) 一种基于状态机的事件流转可配置方法
RU2702508C1 (ru) Система компонентно-ориентированного программного обеспечения и способ разработки
US20050177788A1 (en) Text to XML transformer and method
CN111522546B (zh) 一种页面的生成方法、相关装置及前端页面

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant