CN115328458A - 一种业务应用开发方法及装置 - Google Patents
一种业务应用开发方法及装置 Download PDFInfo
- Publication number
- CN115328458A CN115328458A CN202211246033.5A CN202211246033A CN115328458A CN 115328458 A CN115328458 A CN 115328458A CN 202211246033 A CN202211246033 A CN 202211246033A CN 115328458 A CN115328458 A CN 115328458A
- Authority
- CN
- China
- Prior art keywords
- suite
- metadata
- business
- interface
- user
- 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.)
- Granted
Links
Images
Classifications
-
- 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/31—Programming languages or programming paradigms
- G06F8/313—Logic programming, e.g. PROLOG programming language
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种业务应用开发方法及装置,所述方法应用于业务应用开发平台,所述业务应用开发平台包括套件库和用于解析元数据的元数据解析引擎,所述套件库包括多个套件,所述套件包括用于实现业务功能的业务逻辑代码,以及用于定义所述套件的元数据;所述方法包括:获取用户从所述套件库中选择的至少一个套件;通过所述元数据解析引擎,分别解析所述各个套件包含的元数据;基于解析结果,自动将所述各个套件包含的业务逻辑代码组装成业务应用。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种业务应用开发方法及装置。
背景技术
本部分旨在为权利要求书中陈述的本说明书的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
在业务应用开发过程中,通过会遇到应用到接近的业务能力的不同业务需求。在针对这些业务需求进行业务应用开发时,通常需要针对不同的业务需求进行定制化的开发。对于开发完成的业务应用,也会产生业务需求的变化,从而需要对已开发完成的业务应用进行针对性的修改。
发明内容
为克服相关技术中存在的问题,本说明书提供了以下方法及装置。
在本说明书实施方式的第一方面中,提供一种业务应用开发方法,所述方法应用于业务应用开发平台,所述业务应用开发平台包括套件库和用于解析元数据的元数据解析引擎,所述套件库包括多个套件,所述套件包括用于实现业务功能的业务逻辑代码,以及用于定义所述套件的元数据;所述方法包括:
获取用户从所述套件库中选择的至少一个套件;
通过所述元数据解析引擎,分别解析所述各个套件包含的元数据;
基于解析结果,自动将所述各个套件包含的业务逻辑代码组装成业务应用。
在本说明书实施方式的第二方面中,提供一种业务应用开发装置,所述装置应用于业务应用开发平台,所述业务应用开发平台包括套件库和用于解析元数据的元数据解析引擎,所述套件库包括多个套件,所述套件包括用于实现业务功能的业务逻辑代码,以及用于定义所述套件的元数据;所述装置包括:
套件获取单元,用于获取用户从所述套件库中选择的至少一个套件;
元数据解析单元,用于通过所述元数据解析引擎,分别解析所述各个套件包含的元数据;
应用组装单元,用于基于解析结果,自动将所述各个套件包含的业务逻辑代码组装成业务应用。
在本说明书实施方式的第三方面中,提供一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行上述任一方法。
在本说明书实施方式的第四方面中,提供一种机器可读存储介质,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现上述任一方法。
本说明书以上的实施方式,至少具有如下的有益效果:
通过元数据定义的套件提供基本的业务能力,并在业务开发平台中,向用户提供项目对象模型的管理界面,通过上述套件组装业务应用,从而简化业务应用的开发流程,降低开发成本,提高业务应用开发效率。
附图说明
图1是一示例性的实施例示出的一种业务应用开发方法的流程图;
图2是一示例性的实施例示出的一种业务应用开发方法的示意图;
图3是一示例性的实施例示出的一种业务应用开发方法的UI界面的示意图;
图4是一示例性的实施例示出的一种业务应用开发方法的UI搭建界面的示意图;
图5是一示例性的实施例示出的一种业务应用开发方法的业务领域模型管理界面的示意图;
图6是一示例性的实施例示出的一种业务应用开发方法的业务逻辑代码修改的示意图;
图7是一示例性的实施例示出的一种业务应用开发装置所在电子设备的硬件结构图;
图8是一示例性的实施例示出的一种业务应用开发装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
为了使本技术领域的人员更好地理解本说明书实施例中的技术方案,下面先对本说明书实施例涉及的元数据及套件的相关技术,进行简要说明。
元数据是一种描述数据的数据,具体用于描述信息资源或数据等对象。以在软件开发场景中,涉及到的元数据可以包括:UI元数据,一种可以用于描述软件系统界面的数据,具体可以用于描述界面的布局,组件组成,事件处理等;数据模型元数据,一种可以用于描述软件系统中数据的如何存储,如何组织,以及数据之间关系的描述数据等。
套件是一整个独立的软件功能块,是实现业务的基本单位,其中,可以包括套件的定义,数据模型,前端UI和业务逻辑等。
基于元数据的套件开发技术,是指通过对套件中的软件元素进行建模,并用元数据的方式定义这些模型的方式,来定义套件。
在业务信息化过程中,存在大量业务应用需要进行开发,不同的企业业务通常包含一些接近的主体业务流程。例如,在电商领域,主体业务通常都包括订单管理、支付管理、合同管理、仓库管理等业务流程。但是,不同的业务也通常包含一部分特有的逻辑或者流程。因此,针对这些接近但又不同的业务进行业务应用开发时,通常需要针对每个业务的需求,进行针对性的定制开发;而定制开发通常需要较大的开发成本。
另一方面,业务通常不是固定不变的,随着业务需求的变动,也需要对已开发完成的业务应用进行特定的扩展或修改。而应用传统的业务应用开发方法,对开发完成的业务应用,修改成本较高。
有鉴于此,本说明书旨在提出一种业务应用开发方法。
本说明书的核心构思在于:通过建立由元数据定义的套件组成的套件库,开发业务应用时,将用户根据业务需求,从套件库选择的套件进行组合,自动组装成业务应用。
在实现时,业务应用开发平台可以获取用户从所述套件库中选择的至少一个套件;并通过元数据解析引擎,分别解析各个套件包含的元数据;
基于解析结果,自动将所述各个套件包含的业务逻辑代码组装成业务应用。
由此可见,在本说明书的技术方案中,通过元数据定义的套件提供基本的业务能力,并在业务开发平台中,向用户提供项目对象模型的管理界面,通过上述套件组装业务应用,从而简化业务应用的开发流程,降低开发成本,提高业务应用开发效率。
下面通过具体实施例,并结合具体的应用场景对本申请进行描述。
在本说明书示出的实施例中,业务应用开发平台包括套件库和用于解析元数据的元数据解析引擎,所述套件库包括多个套件,所述套件包括用于实现业务功能的业务逻辑代码,以及用于定义所述套件的元数据。
业务应用开发平台在本说明书中可以进行业务应用开发。
上述业务应用开发平台可以包括套件库。上述套件库可以包括多个套件,上述套件是可以实现特定业务功能的独立的软件功能块,上述套件包括用于实现业务功能的业务逻辑代码,以及用于定义上述套件的元数据。其中,上述套件的元数据可以定义套件的基本属性、数据模型、前端UI等。
在本说明书示出的一个示意性的实施例中,上述套件的元数据可以包括以下一种或多种:用于定义套件的套件基本元数据;用于定义上述套件对应的业务领域的核心与概念的领域元数据;用于定义上述套件对应的软件系统界面,例如界面的布局、组件组成、事件处理等的UI元数据等。
本领域技术人员应当理解,定义上述套件的元数据,可以是从多个方面对套件中的定义,因此,根据实际开发场景,套件的元数据还可以包括其他类型的元数据,例如对套件的接口信息、统计信息、过程信息等定义的元数据等,本说明不对此进行具体限定。
下面以定义用于定义套件的套件基本元数据为例,对套件包含的元数据进行说明。
套件基本元数据可以定义套件的基本属性,例如,可以包含套件的以下基本信息:用于方便识别的套件名称,用于唯一标识套件的套件编码,用于标识套件版本的套件版本信息,用于描述套件配置的套件属性配置等。
套件元数据可以采用多种不同的结构和语法来表示,本说明书不对此进行具体限定。
在本说明书示出的一个实施例中,元数据可以采用键值对的结构,如JSON格式进行表示。比如,某账号套件的套件基本元数据可以如下表示:
{
"appCode":"accountApplication",
"appName":"通用账号套件",
"supMicroService":true,
"supLocalization":"ture",
"version":"1.0.0",
"functionDesc":"本套件为通用的账号套件"
}
由以上套件基本元数据可知,该套件的套件名称为“通用账号套件”,套件编码为“accountApplication”,支持微服务,版本号为“1.0.0”,并有功能描述“本套件为通用的账号套件”。
套件的业务逻辑代码用于实现套件对应的业务功能,对于上述业务逻辑代码的具体组成和形式,可以以一种或多种程序设计语言的任意组合来编写上述业务逻辑代码,所述程序设计语言包括面向对象的程序设计语言——诸如Java、C++等,还包括常规的过程式程序设计语言——诸如“C”语言或类似的程序设计语言,本说明书不对此进行具体限定。
请参见图1,图1是一示例性的实施例示出的一种业务应用开发方法的流程图。以上实施例中的方法可以应用在如上述的业务应用开发平台中。
上述方法可以执行以下步骤:
步骤102:获取用户从所述套件库中选择的至少一个套件。
套件库是业务应用开发平台中用于管理套件的仓库。开发人员可以基于元数据开发套件,并将开发完成的基于元数据开发的套件发布到上述套件库中。
其中,在上述套件库中,可以对套件进行分类,以方便管理、维护和使用。可以按照套件的名称、功能用途、应用领域等不同方式进行分类管理,本说明书不对此进行限定。
可以参见图2,图2是一示例性的实施例示出的一种业务应用开发方法的示意图。基于元数据开发的套件,发布到套件库中,以按行业领域进行分类,不同的垂直行业的套件和通用套件分别属于不同的类别,方便管理。
在本说明书示出的一个示例性的实施例中,上述套件库中的套件按照行业领域进行管理。开发人员在浏览和选区套件时,上述套件库中的套件可以按照行业领域进行分类和排序。
用户可以根据业务需求,从上述套件库中选择一个或多个套件,以组装对应的业务应用。响应于用户选择套件,上述业务应用开发平台可以从上述套件库中获取用户选择的各个套件。
本说明书的基于元数据的套件自动组装应用的方法,可以用于从套件组装新的业务应用,也可以用于在现有业务应用的基础上进行扩展和修改。
在本说明示出的一个示例性的实施例中,所述获取用户从所述套件库中选择的至少一个套件,包括:响应于项目创建指令,创建与待组装的应用对应的项目对象模型;其中,所述项目对象模型对应的管理界面包括套件选择选项;响应于针对所述套件选择选项的触发操作,输出套件库界面,获取用户在所述套件选择界面选择的至少一个套件;将获取到的各个套件包含的元数据添加到所述项目对象模型中。
在本说明书的实施例中,选项可以是可视化的,例如显示为按键、触发区域等,也可以是隐式的,可以由对应的触发操作直接触发,本说明书不对选项的具体形式进行具体限定。
在本说明书的实施例中,触发操作可以是针对特定选项的特定操作,例如使用鼠标的点击、拖动等,按键设备上特定按键的按下、松开等,对触摸屏特定区域的触碰、按压等,本说明书不对触发操作的具体形式进行限定。
当需要从套件开始组装一个新的业务应用时,可以先创建与待组装的应用对应的应用项目,或项目对象模型,以方便对其进行管理。
上述项目对象模型可以包括对应的管理界面,其中,上述项目对象模型的管理界面可以包括套件选择选项。响应于用户针对上述套件选择选项进行对应的触发操作,可以输出套件库界面,以使用户可以在上述套件库界面中选择其所需要的套件。
获取用户选择的各个套件,将其加入上述项目对象模型。上述各个套件包含的元数据可以分别加入到上述项目对象模型中。上述对象模型可以对加入的套件和元数据进行统一的管理。
上述各个套件的元数据加入到上述项目对象模型后,可以作为项目对象模型的元数据,进行耦合,以定义该项目对象模型。
在本说明示出的另一个示例性的实施例中,所述获取用户从所述套件库中选择的至少一个套件,包括:获取预设的项目对象模型;其中,所述项目对象模型对应的管理界面包括套件选择选项;响应于针对所述套件选择选项的触发操作,输出套件库界面,获取用户在所述套件选择界面选择的至少一个套件;将获取到的各个套件包含的元数据添加到所述项目对象模型中。
上述预设的项目对象模型可以是现有的业务应用对应的项目对象模型,以对该现有的应用进行扩展和修改,从而使其获取新的业务能力,可以应对新的业务场景;上述预设的项目对象模型也可以是根据不同的业务场景预设的典型业务应用模板,以对其进行个性化扩展和修改,从而完成针对具体业务的个性化开发。
在本说明书示出的一个示例性的实施例中,上述项目对象模型的管理界面包括套件管理界面。在上述套件管理界面中,可以对项目对象模型的套件进行管理,例如,可以查看已加入的套件,新增套件,删除套件等。
在本说明示出的一个示例性的实施例中,上述项目对象模型的管理界面包括针对套件的套件更新选项,上述套件更新选项用于从套件库中重新获取对应的套件。
当套件库中的套件发生更改,例如,其开发人员对其进行修改、升级等操作后,可以通过上述套件更新选项,从套件库中对该套件进行更新。
上述套件更新选项可以包括套件元数据更新选项,当套件库中的该套件的元数据发生更改时,可以通过上述套件元数据更新选项对该套件的元数据进行更新。
如图3所示,图3是一示例性的实施例示出的一种业务应用开发方法的套件管理界面的示意图。图3为某
步骤104:通过所述元数据解析引擎,分别解析各个套件包含的元数据。
如上所述,上述套件均为基于元数据开发,上述业务开发平台包括元数据解析引擎,可以解析上述套件包含的元数据。
上述元数据解析引擎可以包括多个子引擎,以用于解析套件包含的不同类型的元数据,例如,作为子引擎的UI数据解析引擎可以解析UI元数据。
各个套件包含的元数据加入到上述项目对象模型后,上述元数据解析引擎可以直接针对上述项目对象模型中包含的元数据进行解析。
仍可以参见图2,各个子引擎可以分别对对应的元数据进行解析。
步骤106,基于解析结果,自动将所述各个套件包含的业务逻辑代码组装成业务应用。
上述元数据解析完成后,可以根据解析的结果,自动将上述各个套件包含的业务逻辑代码进行组合,自动组装成与上述项目对象模型对应的业务应用。上述业务应用可以实现上述各个套件所包含的业务功能。
在本说明书示出的一示例性的实施例中,所述元数据包括用于定义所述套件的UI界面的UI元数据;
所述通过所述元数据解析引擎,分别解析所述各个套件包含的元数据,基于解析结果,自动将所述各个套件包含的业务逻辑代码组装成业务应用,包括:
通过所述元数据解析引擎,分别解析所述各个套件包含的UI元数据,自动生成与所述套件对应的UI组件,并将所述UI组件与所述套件包含的业务逻辑代码进行绑定,以将所述各个套件包含的业务逻辑代码组装成包含UI界面的业务应用。
上述套件的元数据中,包括UI元数据,UI元数据是一种描述软件系统界面的元数据,可以描述界面的布局,组件组成,事件处理等。
元数据解析引擎可以解析套件的UI元数据,自动生成与套件对应的UI组件,包括UI组件的类型、形状、位置,以及与套件包含的业务逻辑代码的交互方式和交互接口等,套件对应的UI组件和业务逻辑代码是绑定的。
当套件的元数据解析完成,可以根据元数据的解析结果,将各个套件的业务逻辑代码组装成包含UI界面的业务应用。
在本说明示出的一个示例性的实施例中,所述项目对象模型的管理界面包含UI搭建选项;
所述方法还包括:
响应于用户针对所述UI搭建选项的触发操作,向用户可视化呈现包含所述项目对象模型对应的UI界面;其中,所述UI界面包括所述套件对应的UI组件,以及所述UI组件对应的UI组件修改选项;
响应于用户针对所述UI组件修改选项的触发操作,输出与所述UI组件对应的UI组件修改界面,以使用户在所述UI组件修改界面中对所述UI组件进行修改。
项目对象模型的管理界面可以包含UI搭建选项,当套件加入项目对象模型后,可以通过该UI搭建选项,通过上述UI元数据的元数据解析引擎,解析套件的元数据,并向用户可视化地呈现包含项目对象模型对应的UI界面。在上述UI界面中,包含了对项目对象模型中的各个套件的UI元数据进行解析得到的对应的UI组件,以及各个UI组件分别对应的UI组件修改选项。
当上述UI组件修改选项被用户触发后,可以向用户输出UI组件修改界面,用户可以对该UI组件进行修改,例如改变组件的类型、大小、位置等。
上述UI组件修改界面可以是弹出的单独界面,也可以是上述UI界面本身,例如,可以使用鼠标拖拽作为触发操作,直接改变UI组件的位置,或是UI组件的大小。
在本说明书示出的一个示例性的实施例中,上述UI搭建界面中,已加入的UI组件显示在UI组件库中,用户可以通过对应的触发式操作,将其加入到与上述项目对象模型对应的UI界面中,并可以对其进行修改。
如图4所示,图4是一示例性的实施例示出的一种业务应用开发方法的业务领域模型UI搭建的示意图。
图4中,包括界面右侧的UI界面和界面左侧的套件UI库,其中,UI界面中包括项目对象模型中已经搭建完成的UI组件,例如原告信息套件对应的UI组件,管理人信息套件对应的UI组件等;套件UI库中包括已加入项目对象模型的套件对应的UI组件,例如负责人信息套件对应的UI组件,信息搜索套件对应的UI组件等。如图4中的箭头所示,可以按照箭头方向,将负责人信息套件对应的UI组件加入到UI界面中。当负责人信息套件加入到UI界面中后,其对应的业务逻辑代码也将在应用中生效。
通过由UI元数据解析得到的UI组件,和业务逻辑代码的绑定,实现了前端的UI界面,和后端的业务逻辑代码打通,当对项目对象模型对应的UI界面进行编辑时,与其绑定的后端业务逻辑也相应改变,可以实现所见即所得的方式搭建前端页面和逻辑。
例如,图4中的信息搜索套件对应的UI组件,可以用框选的方式确定其在UI界面中的搜索范围,其后端的信息搜索的业务逻辑中,也将依照UI界面中确定的范围来改变其搜索范围。
在本说明书示出的一个示意性的实施例中,所述元数据还包括用于定义所述套件引用的数据模型的模型元数据;
将所述UI组件与所述套件包含的业务执行逻辑进行绑定,以组装成所述业务应用对应的UI界面之前,还包括:
解析所述模型元数据,得到所述套件包括的数据模型,其中,所述数据模型包括与所述套件所引用的实体类;
所述将所述UI组件与所述套件包含的业务执行逻辑进行绑定,以组装成包含UI界面的业务应用,包括:
将所述UI组件与所述套件包含的业务执行逻辑进行绑定,并建立所述UI组件和所述实体类的引用关系,以组装成包含UI界面的业务应用。
实体类可以使用元数据进行定义,即上述套件的模型元数据中的数据模型。
在一个示例性的实施例中,实体类包括实体类和值对象。
上述数据模型可以描述实体类的以下基本属性:用于标识实体类的模型编码/名称属性;用于描述所属的业务子域的子域属性;用于描述实体类和值对象的父类的基类模型属性;用于描述是否继承基类的映射策略的继承映射策略属性;用于描述是否为实体或值对象的类型属性;用于描述是否存储,以及存储表名的存储属性等。
上述数据模型还可以描述实体类的以下属性:属性编码;属性类型:存储映射字段;属性数据长度;属性校验规则等。其中,属性类型可以包括:基本类型;引用类型;枚举类型等。
领域建模是业务应用开发中的核心环节,通过对业务域进行梳理与抽象,可以抽象出一套能深层次反映领域核心与概念的领域模型,包括与该领域相关的业务实体类和业务值对象类。
上述数据模型包括与所述业务应用所属的业务领域对应的业务领域模型;业务领域模型包括上述业务实体和值对象的类的属性外,还包括类的方法。通过元数据解析引擎对上述业务领域模型进行解析,可以得到领域模型对应的实体和值对象对应的类的方法,例如存储,查询,更新等基础功能。
项目对象模型的管理界面中,可以根据需求,方便地对其管理的元数据和业务逻辑代码等进行修改。
在本说明书示出的一个示例性的实施例中,所述项目对象模型对应的管理界面中包含针对所述元数据的元数据修改选项;
所述方法还包括:
响应于用户针对所述元数据修改选项的触发操作,向用户输出元数据修改界面,以使用户在所述元数据修改界面对其进行修改。
上述项目对象模型的管理界面中,包含项目对象模型的各种元数据的管理界面,例如上述套件基本元数据、UI元数据、模型元数据等,以及与元数据对应的元数据修改选项。当用户触发元数据修改选项时,可以输出元数据修改界面,用户可以对元数据进行修改,包括增加、删除、改写等。
在本说明书示出的一个示例性的实施例中,所述项目对象模型对应的管理界面包括针对所述业务领域模型的业务领域模型管理选项;
所述方法还包括:
响应于用户针对所述业务领域模型管理选项的触发操作,向用户输出针对所述业务领域模型管理界面,以使用户在所述业务领域模型管理界面中对所述业务领域模型进行修改。
项目对象模型对应的管理界面包括针对业务领域模型的业务领域模型管理选项,及其对应的业务领域模型管理界面。当用户打开上述业务领域模型管理界面后,用户可以对业务领域模型中的实体类进行查看和管理。
如图5所示,图5是一示例性的实施例示出的一种业务应用开发方法的业务领域模型管理界面的示意图。
该业务领域模型管理界面包括该业务领域模型中实体类的各个属性的属性编码、属性名称、是否预设字段等的展示,以及用于创建新属性的创建属性选项,和针对各属性的操作选项,例如编辑、复制、删除等。
通过上述业务领域模型管理界面,可以方便快捷地对该业务领域中包含的属性进行查看和修改,或是新增属性等。
在本说明书示出的一种示例性的实施例中,所述项目对象模型对应的管理界面包括针对所述套件的业务逻辑代码修改选项;
响应于用户针对所业务逻辑代码修改选项的触发操作,向用户输出所述套件包含的业务逻辑代码修改页面,以使用户对其进行修改。
对于一些较为复杂的业务来说,套件中的业务逻辑可能无法完全覆盖,因此需要对套件中包含的业务逻辑代码进行修改,以实现所需的业务逻辑。
项目对象模型对应的管理界面包括针对业务领域模型中各个套件的业务逻辑代码修改选项,及其对应的业务逻辑代码修改界面。当用户打开上述业务领域模型管理界面后,用户可以对业务领域模型中的实体类进行查看和管理。
如图6所示,图6是一示例性的实施例示出的一种业务应用开发方法的业务逻辑代码修改的示意图。
以java环境为例,套件的业务逻辑在后端以Jar包的形式进行复用,项目对象模型引入套件后,会自动从接口层,到应用层,到领域层都可以复用该套件的能力。
当需要修改业务逻辑代码时,可以采用一种直接复写Java类的方法。具体的,可以使用idea插件对所需进行修改的类进行重写,并将其编译为Class字节码,并且打包成新的Jar包。当业务应用启动时,ClassLoader加载可以优先加载新的Jar包,替代原Jar包,以实现修改后的业务逻辑代码的业务逻辑;当使用idea启动对业务应用进行调试时,可以先检查上述Class字节码是否被加载,如果没有被加载,可以使用MBean标记的方式,使其使用套件Class Loader进行加载,以优先加载新的Jar包,替代原Jar包,以实现修改后的业务逻辑代码的业务逻辑。
与上述业务应用开发方法的实施例对应的,本说明书还提供了一种业务应用开发装置的实施例。
请参见图7,图7是一示例性的实施例示出的一种业务应用开发装置所在电子设备的硬件结构图。在硬件层面,该设备包括处理器702、内部总线704、网络接口706、内存708以及非易失性存储器710,当然还可能包括其他业务所需要的硬件。本说明书一个或多个实施例可以基于软件方式来实现,比如由处理器702从非易失性存储器710中读取对应的计算机程序到内存708中然后运行。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参见图8,图8是一示例性的实施例示出的一种业务应用开发装置的框图。该业务应用开发装置可以应用于图7所示的电子设备中,以实现本说明书的技术方案。其中,所述装置应用于业务应用开发平台,所述业务应用开发平台包括套件库和用于解析元数据的元数据解析引擎,所述套件库包括多个套件,所述套件包括用于实现业务功能的业务逻辑代码,以及用于定义所述套件的元数据;所述装置可以包括:
套件获取单元801,用于获取用户从所述套件库中选择的至少一个套件。
元数据解析单元802,用于通过所述元数据解析引擎,分别解析各个套件包含的元数据。
应用组装单元808,用于基于解析结果,自动将所述各个套件包含的业务逻辑代码组装成业务应用。
在本实施例中,所述套件获取单元801,具体用于响应于项目创建指令,创建与待组装的应用对应的项目对象模型;其中,所述项目对象模型对应的管理界面包括套件选择选项;
响应于针对所述套件选择选项的触发操作,输出套件库界面,获取用户在所述套件选择界面选择的至少一个套件;
将获取到的各个套件包含的元数据添加到所述项目对象模型中。
在本实施例中,所述元数据包括用于定义所述套件的UI界面的UI元数据;
元数据解析单元802,具体用于通过所述元数据解析引擎,分别解析所述各个套件包含的UI元数据,自动生成与所述套件对应的UI组件,并将所述UI组件与所述套件包含的业务逻辑代码进行绑定,以将所述各个套件包含的业务逻辑代码组装成包含UI界面的业务应用。
在本实施例中,所述项目对象模型的管理界面包含UI搭建选项;
所述装置还包括:
可视化单元803,用于响应于用户针对所述UI搭建选项的触发操作,向用户可视化呈现包含所述项目对象模型对应的UI界面;其中,所述UI界面包括所述套件对应的UI组件,以及所述UI组件对应的UI组件修改选项;
UI组件修改单元804,用于响应于用户针对所述UI组件修改选项的触发操作,输出与所述UI组件对应的UI组件修改界面,以使用户在所述UI组件修改界面中对所述UI组件进行修改。
在本实施例中,所述元数据还包括用于定义所述套件引用的数据模型的模型元数据;
所述元数据解析单元802,具体用于解析所述模型元数据,得到所述套件包括的数据模型,其中,所述数据模型包括与所述套件所引用的实体类;
将所述UI组件与所述套件包含的业务执行逻辑进行绑定,并建立所述UI组件和所述实体类的引用关系,以组装成包含UI界面的业务应用。
在本实施例中,所述数据模型包括与所述业务应用所属的业务领域对应的业务领域模型;所述实体类包括与所述业务应用所属的业务领域相关的业务实体类,和/或,业务值对象类。
在本实施例中,所述项目对象模型对应的管理界面中包含针对所述元数据的元数据修改选项;
所述装置还包括:
元数据修改单元805,用于响应于用户针对所述元数据修改选项的触发操作,向用户输出元数据修改界面,以使用户在所述元数据修改界面对其进行修改。
在本实施例中,所述项目对象模型对应的管理界面包括针对所述业务领域模型的业务领域模型管理选项;
所述装置还包括:
业务领域模型修改单元806,用于响应于用户针对所述业务领域模型管理选项的触发操作,向用户输出针对所述业务领域模型管理界面,以使用户在所述业务领域模型管理界面中对所述业务领域模型进行修改。
在本实施例中,所述项目对象模型对应的管理界面包括针对所述套件的业务逻辑代码修改选项;
所述装置还包括:
业务逻辑代码修改单元807,用于响应于用户针对所业务逻辑代码修改选项的触发操作,向用户输出所述套件包含的业务逻辑代码修改页面,以使用户对其进行修改。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例只是示例性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
Claims (12)
1.一种业务应用开发方法,其特征在于,所述方法应用于业务应用开发平台,所述业务应用开发平台包括套件库和用于解析元数据的元数据解析引擎,所述套件库包括多个套件,所述套件包括用于实现业务功能的业务逻辑代码,以及用于定义所述套件的元数据;所述方法包括:
获取用户从所述套件库中选择的至少一个套件;
通过所述元数据解析引擎,分别解析各个套件包含的元数据;
基于解析结果,自动将所述各个套件包含的业务逻辑代码组装成业务应用。
2.根据权利要求1所述的方法,其特征在于,所述获取用户从所述套件库中选择的至少一个套件,包括:
响应于项目创建指令,创建与待组装的应用对应的项目对象模型;其中,所述项目对象模型对应的管理界面包括套件选择选项;
响应于针对所述套件选择选项的触发操作,输出套件库界面,获取用户在所述套件选择界面选择的至少一个套件;
将获取到的各个套件包含的元数据添加到所述项目对象模型中。
3.根据权利要求2所述的方法,其特征在于,所述元数据包括用于定义所述套件的UI界面的UI元数据;
所述通过所述元数据解析引擎,分别解析所述各个套件包含的元数据,基于解析结果,自动将所述各个套件包含的业务逻辑代码组装成业务应用,包括:
通过所述元数据解析引擎,分别解析所述各个套件包含的UI元数据,自动生成与所述套件对应的UI组件,并将所述UI组件与所述套件包含的业务逻辑代码进行绑定,以将所述各个套件包含的业务逻辑代码组装成包含UI界面的业务应用。
4.根据权利要求3所述的方法,其特征在于,
所述项目对象模型的管理界面包含UI搭建选项;
所述方法还包括:
响应于用户针对所述UI搭建选项的触发操作,向用户可视化呈现包含所述项目对象模型对应的UI界面;其中,所述UI界面包括所述套件对应的UI组件,以及所述UI组件对应的UI组件修改选项;
响应于用户针对所述UI组件修改选项的触发操作,输出与所述UI组件对应的UI组件修改界面,以使用户在所述UI组件修改界面中对所述UI组件进行修改。
5.根据权利要求3所述的方法,其特征在于,所述元数据还包括用于定义所述套件引用的数据模型的模型元数据;
将所述UI组件与所述套件包含的业务执行逻辑进行绑定,以组装成所述业务应用对应的UI界面之前,还包括:
解析所述模型元数据,得到所述套件包括的数据模型,其中,所述数据模型包括与所述套件所引用的实体类;
所述将所述UI组件与所述套件包含的业务执行逻辑进行绑定,以组装成包含UI界面的业务应用,包括:
将所述UI组件与所述套件包含的业务执行逻辑进行绑定,并建立所述UI组件和所述实体类的引用关系,以组装成包含UI界面的业务应用。
6.根据权利要求5所述的方法,其特征在于,
所述数据模型包括与所述业务应用所属的业务领域对应的业务领域模型;所述实体类包括与所述业务应用所属的业务领域相关的业务实体类,和/或,业务值对象类。
7.根据权利要求5所述的方法,其特征在于,
所述项目对象模型对应的管理界面中包含针对所述元数据的元数据修改选项;
所述方法还包括:
响应于用户针对所述元数据修改选项的触发操作,向用户输出元数据修改界面,以使用户在所述元数据修改界面对其进行修改。
8.根据权利要求7所述的方法,其特征在于,
所述项目对象模型对应的管理界面包括针对所述业务领域模型的业务领域模型管理选项;
所述方法还包括:
响应于用户针对所述业务领域模型管理选项的触发操作,向用户输出针对所述业务领域模型管理界面,以使用户在所述业务领域模型管理界面中对所述业务领域模型进行修改。
9.根据权利要求6所述的方法,其特征在于,
所述项目对象模型对应的管理界面包括针对所述套件的业务逻辑代码修改选项;
所述方法还包括:
响应于用户针对所业务逻辑代码修改选项的触发操作,向用户输出所述套件包含的业务逻辑代码修改页面,以使用户对其进行修改。
10.一种业务应用开发装置,其特征在于,所述装置应用于业务应用开发平台,所述业务应用开发平台包括套件库和用于解析元数据的元数据解析引擎,所述套件库包括多个套件,所述套件包括用于实现业务功能的业务逻辑代码,以及用于定义所述套件的元数据;所述装置包括:
套件获取单元,用于获取用户从所述套件库中选择的至少一个套件;
元数据解析单元,用于通过所述元数据解析引擎,分别解析各个套件包含的元数据;
应用组装单元,用于基于解析结果,自动将所述各个套件包含的业务逻辑代码组装成业务应用。
11.一种电子设备,其特征在于,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行权利要求1-9任一项所述的方法。
12.一种机器可读存储介质,其特征在于,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现权利要求1-9任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211246033.5A CN115328458B (zh) | 2022-10-12 | 2022-10-12 | 一种业务应用开发方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211246033.5A CN115328458B (zh) | 2022-10-12 | 2022-10-12 | 一种业务应用开发方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115328458A true CN115328458A (zh) | 2022-11-11 |
CN115328458B CN115328458B (zh) | 2023-02-03 |
Family
ID=83913201
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211246033.5A Active CN115328458B (zh) | 2022-10-12 | 2022-10-12 | 一种业务应用开发方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115328458B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115543323A (zh) * | 2022-11-29 | 2022-12-30 | 共道网络科技有限公司 | 一种页面开发方法及装置 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008090707A (ja) * | 2006-10-04 | 2008-04-17 | Katsumi Ikeda | ソフトウェアメタデータ解析装置およびその方法 |
CN103279358A (zh) * | 2013-06-08 | 2013-09-04 | 北京首钢自动化信息技术有限公司 | 一种面向行业应用的解释型业务组件动态构建方法 |
CN106843835A (zh) * | 2016-12-21 | 2017-06-13 | 中国电子科技网络信息安全有限公司 | 一种元数据定制的应用系统软件构建系统、系统构建方法 |
CN107193545A (zh) * | 2017-04-07 | 2017-09-22 | 广东省科技基础条件平台中心 | 一种面向构件的多语言协同开发装置、方法与系统 |
US20180052898A1 (en) * | 2016-08-22 | 2018-02-22 | Oracle International Corporation | System and method for dynamic, incremental recommendations within real-time visual simulation |
CN110825362A (zh) * | 2019-11-04 | 2020-02-21 | 广东道一信息技术股份有限公司 | 低代码应用软件开发系统及方法 |
CN111695827A (zh) * | 2020-06-17 | 2020-09-22 | 北京同邦卓益科技有限公司 | 业务流程的管理方法、装置、电子设备及存储介质 |
CN112214214A (zh) * | 2020-10-29 | 2021-01-12 | 上海厦广科技有限公司 | 针对安卓原生app的低代码开发系统、设备和介质 |
US20220206762A1 (en) * | 2020-12-31 | 2022-06-30 | Nb Ventures, Inc. Dba Gep | Codeless development of enterprise application |
CN114721647A (zh) * | 2022-06-10 | 2022-07-08 | 杭州普数软件有限公司 | 一种基于无代码应用开发的面向对象编程方法 |
-
2022
- 2022-10-12 CN CN202211246033.5A patent/CN115328458B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008090707A (ja) * | 2006-10-04 | 2008-04-17 | Katsumi Ikeda | ソフトウェアメタデータ解析装置およびその方法 |
CN103279358A (zh) * | 2013-06-08 | 2013-09-04 | 北京首钢自动化信息技术有限公司 | 一种面向行业应用的解释型业务组件动态构建方法 |
US20180052898A1 (en) * | 2016-08-22 | 2018-02-22 | Oracle International Corporation | System and method for dynamic, incremental recommendations within real-time visual simulation |
CN106843835A (zh) * | 2016-12-21 | 2017-06-13 | 中国电子科技网络信息安全有限公司 | 一种元数据定制的应用系统软件构建系统、系统构建方法 |
CN107193545A (zh) * | 2017-04-07 | 2017-09-22 | 广东省科技基础条件平台中心 | 一种面向构件的多语言协同开发装置、方法与系统 |
CN110825362A (zh) * | 2019-11-04 | 2020-02-21 | 广东道一信息技术股份有限公司 | 低代码应用软件开发系统及方法 |
CN111695827A (zh) * | 2020-06-17 | 2020-09-22 | 北京同邦卓益科技有限公司 | 业务流程的管理方法、装置、电子设备及存储介质 |
CN112214214A (zh) * | 2020-10-29 | 2021-01-12 | 上海厦广科技有限公司 | 针对安卓原生app的低代码开发系统、设备和介质 |
US20220206762A1 (en) * | 2020-12-31 | 2022-06-30 | Nb Ventures, Inc. Dba Gep | Codeless development of enterprise application |
CN114721647A (zh) * | 2022-06-10 | 2022-07-08 | 杭州普数软件有限公司 | 一种基于无代码应用开发的面向对象编程方法 |
Non-Patent Citations (2)
Title |
---|
RICHARD R. MAITI; FRANK J. MITROPOULOS: ""Capturing, eliciting, predicting and prioritizing (CEPP) non-functional requirements metadata during the early stages of agile software development"", 《SOUTHEASTCON 2015》 * |
王战英等: "基于元数据的分布式通用查询系统研究与实现", 《微型电脑应用》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115543323A (zh) * | 2022-11-29 | 2022-12-30 | 共道网络科技有限公司 | 一种页面开发方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN115328458B (zh) | 2023-02-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110389829B (zh) | 多租户环境中扩展对象的分类与分发 | |
US20100313182A1 (en) | Extensible user interface generation | |
CN110007920B (zh) | 一种获取代码依赖关系的方法、装置及电子设备 | |
US8271942B2 (en) | Defining a single annotation model | |
US20070022106A1 (en) | System design using a RAS-based database | |
US7448028B2 (en) | System and method for selective local object retrieval | |
US20040250258A1 (en) | System and method for rule based object navigation | |
CN111782300A (zh) | 一种数据处理方法、装置、设备及系统 | |
CN115328458B (zh) | 一种业务应用开发方法及装置 | |
CN109284222B (zh) | 软件单元、数据处理系统中的项目测试方法、装置及设备 | |
US20070282863A1 (en) | Method, system, and program product for providing proxies for data objects | |
US11640281B2 (en) | Tool for introspection in object-oriented source code | |
US20040249823A1 (en) | System and method for object navigation grammar completion | |
CN112181407B (zh) | 业务实现处理方法及装置、系统、电子设备和存储介质 | |
CN110837367B (zh) | 用户界面处理方法、装置及电子设备 | |
Späth | Learn Kotlin for Android Development | |
CN117311799B (zh) | 一种软件项目页面的配置方法 | |
CN115543323B (zh) | 一种页面开发方法及装置 | |
US20240143487A1 (en) | Secure testing of attachment functionality of objects | |
CN117234466B (zh) | 企业管理软件开发方法、系统、设备及存储介质 | |
US11947532B2 (en) | Lifecycle tracking of data objects | |
US11941386B2 (en) | Flexible provision of multi-application content | |
Magamadov | Design Patterns for Mobile Devices-A Comparative Study of Mobile Design Patterns using Android | |
CN117055967A (zh) | 数据处理方法、数据系统、电子设备及存储介质 | |
Dias et al. | Mapping Dynamic Behavior Between Different Object Models in AOM |
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 |