CN113076095A - 一种基于基础与逻辑功能分离的业务实现方法与系统 - Google Patents
一种基于基础与逻辑功能分离的业务实现方法与系统 Download PDFInfo
- Publication number
- CN113076095A CN113076095A CN202110439674.1A CN202110439674A CN113076095A CN 113076095 A CN113076095 A CN 113076095A CN 202110439674 A CN202110439674 A CN 202110439674A CN 113076095 A CN113076095 A CN 113076095A
- Authority
- CN
- China
- Prior art keywords
- function
- service
- separation
- logic function
- basic
- 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.)
- Pending
Links
- 230000006870 function Effects 0.000 title claims abstract description 134
- 238000000926 separation method Methods 0.000 title claims abstract description 38
- 238000000034 method Methods 0.000 title claims abstract description 34
- 238000011161 development Methods 0.000 claims abstract description 30
- 238000002347 injection Methods 0.000 claims abstract description 4
- 239000007924 injection Substances 0.000 claims abstract description 4
- 238000004590 computer program Methods 0.000 claims description 6
- 239000008186 active pharmaceutical agent Substances 0.000 claims description 3
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
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/34—Graphical or visual programming
-
- 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
-
- 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/38—Creation or generation of source code for implementing user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computing Systems (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于基础与逻辑功能分离的业务实现方法与系统,该方法通过接收传入的逻辑功能标识ID,根据所述逻辑功能标识ID获取预先保存的实现对应业务逻辑功能的动态JavaScript代码;将根据逻辑功能ID获取到的动态JavaScript代码进行数据注入,并执行代码;该动态JavaScript代码中包含对实现基础功能的本地服务接口或云端微服务接口的调用。本发明采用动态JavaScript与本地服务、微服务相结合的方式,能够有效将业务逻辑功能与基础功能进行分离,可以将逻辑功能部分进行页面化编辑,清晰了业务思路,统一了业务方法实现模式,能够降低开发难度的同时保证开发的灵活度。
Description
技术领域
本发明涉及一种基于基础与逻辑功能分离的业务实现方法与系统,属于网络技术领域。
背景技术
目前在业务网站平台的建设过程中,业务的实现方式是通过开发特定的后台方法以实现特定的业务逻辑功能。该实现方式存在如下问题:1、直接后台实现业务会使得后台需要开发很多接口以实现业务需求,而且由于不同的开发者使用的开发语言、技术架构、编写规范等不同,使得业务实现代码维护较为困难,甚至难以阅读。2、将业务逻辑功能实现完全放在后台就会增加后台的BUG,而后台出现BUG将会对平台的正常运行产生较大影响,用户体验不好。3、此外,将业务逻辑功能放在后台实现,想要扩展或升级业务功能,必须要在后台进行操作,使得开发或升级耗时长,升级、维护费用高。此外,现有技术中也有一些集成性较高的平台,用户可以通过功能配置的方式满足一些简单的业务需求,但这样的开发平台受限于平台自身提供的功能,扩展性较差,且难以满足特定的业务需求。
发明内容
发明目的:针对上述现有技术存在的问题,本发明目的在于提供一种基于基础与逻辑功能分离的业务实现方法与系统,将逻辑功能部分进行页面化编辑,能够降低开发难度的同时保证开发的灵活度。
技术方案:为实现上述发明目的,本发明采用如下技术方案:
一种基于基础与逻辑功能分离的业务实现方法,包括如下步骤:
接收传入的逻辑功能标识ID,根据所述逻辑功能标识ID获取实现对应业务逻辑功能的动态JavaScript代码;所述动态JavaScript代码由二次开发用户在管理页面动态编辑并保存;
将根据逻辑功能ID获取到的动态JavaScript代码进行数据注入,并执行代码;所述动态JavaScript代码中包含对实现基础功能的本地服务接口或云端微服务接口的调用。
具体地,所述基础功能由开发平台提供或由二次开发用户上传的服务提供,以服务接口的形式实现相应的功能,包括邮件功能、文件上传下载功能、认证功能、工作流功能、数据库访问功能中的一种或多种。
作为优选,所述逻辑功能标识ID从客户端的访问请求参数中获取,或者从客户端的访问请求参数中传入的请求标识ID所关联的请求参数规则中获取;所述请求标识ID及关联的请求参数规则由开发人员在开发时通过后台管理页面预先配置并保存。
作为优选,在客户端的访问请求参数中配置与逻辑功能标识ID对应的后台分离功能实现接口,或在请求参数规则中预先配置与逻辑功能标识ID对应的后台分离功能实现接口;所述后台分离功能实现接口用于加载并执行逻辑功能标识ID对应的动态JavaScript代码。
作为优选,所述动态JavaScript代码中支持嵌套调用后台分离功能实现接口,调用后台分离功能实现接口时,传入逻辑功能标识ID。
作为优选,所述动态JavaScript代码采用无参数调用服务接口、有字符串参数调用服务接口、有文件参数调用服务接口三种中的一种方式调用本地服务接口或云端微服务接口。
作为优选,实现业务逻辑功能的动态JavaScript代码,二次开发用户在创建时采用新建空白代码或引入代码模板的方式。
作为优选,所述本地服务接口或云端微服务接口为平台提供的接口或二次开发人员上传的服务接口;所有微服务接口在微服务API网关上进行路由配置。
基于相同的发明构思,本发明提供的一种基于基础与逻辑功能分离的业务实现系统,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述计算机程序被加载至处理器时实现所述的基于基础与逻辑功能分离的业务实现方法。
有益效果:与现有技术相比,本发明具有如下优点:
1、本发明采用动态JavaScript与本地服务、微服务相结合的方式,能够有效将业务逻辑功能与基础功能进行分离,从而将逻辑功能部分进行页面化编辑。页面化编辑实现了业务的动态创建和修改,与传统后台代码相比,不用进入后台服务器,能够清晰业务思路,统一业务方法实现模式。
2、传统后台各个不同的方法的调用,复杂度比较高。本发明统一全部交由动态JavaScript代码控制整个业务,清晰了编辑思路也使得其他开发人员阅读起来思路明确。并且对二次开发人员的要求不高,只需要掌握JavaScript编程即可进行业务功能的二次开发。
3、在保证后台服务无BUG的情况下,查询业务BUG只是查看动态JavaScript代码就可以排查出。并且由于都是动态的,JavaScript代码修改完可以直接进行调试或者直接进入BUG页面查看是否正常,使得BUG的处理变得简单。
4、业务逻辑功能不用在后台实现,使得后台代码保持稳定不变。
5、采用本发明的架构,二次开发用户也可以不局限于开发平台自身提供的基础服务,自行拓展基础功能服务,使得开发方式更为灵活。
6、实现业务逻辑功能的JavaScript代码是保存在数据库的,基础功能也是以单个服务的形式,使得模块迁移就变得非常容易。
附图说明
图1为本发明实施例中的业务逻辑功能的代码片段示例图。
图2为本发明实施例的方法流程图。
具体实施方式
下面将结合附图和具体实施例,对本发明的技术方案进行清楚、完整的描述。
本发明实施例公开的一种基于基础与逻辑功能分离的业务实现方法,采用基础功能与逻辑功能分离的理念,逻辑功能采用后台动态执行JavaScript代码方式实现,在逻辑功能中调用基础功能的方式来实现复杂的业务功能。逻辑功能在线代码编辑和调试,基础功能采用上传微服务到服务器的方式。
如图1所示,二次开发用户在页面编辑好实现特定业务逻辑功能的代码,该代码对应一个逻辑功能标识ID,编辑好后这段代码会在后台被执行。
具体地,本发明基于基础与逻辑功能分离的业务实现方法,如图2所示,主要步骤是:首先,接收传入的逻辑功能标识ID(该逻辑功能标识ID可以是从客户端的访问请求参数中获取,或者从客户端的访问请求参数中传入的请求标识ID所关联的请求参数规则中获取;请求标识ID及关联的请求参数规则也是由开发人员在开发时通过后台管理页面预先配置并保存),根据逻辑功能标识ID从内存或数据库获取实现对应业务逻辑功能的动态JavaScript代码;然后将代码中EL表达式等进行数据注入,并采用后台动态执行JavaScript的工具(如ScriptEngine)执行代码,动态JavaScript代码中包含对实现基础功能的本地服务接口或云端微服务接口的调用。
本发明所述的基础功能即由开发平台提供或由二次开发用户上传的服务提供,以服务接口的形式实现相应的功能,包括邮件功能、文件上传下载功能、认证功能、工作流功能、数据库访问功能等等,基础功能一般不涉及具体业务应用平台的业务逻辑(如业务数据规范性检查、业务逻辑判断等)。与应用相关的业务逻辑由二次开发用户通过动态JavaScript代码在页面进行编辑,当然二次开发人员也可以对基础功能进行扩展,提供的功能服务采用微服务的方式,直接将jar包通过平台页面上传到指定服务器并启动项目就可以增加功能服务(在微服务API网关,如zuul进行相关配置),使用方式和平台原有的功能服务是一样的。
逻辑功能标识ID可以从客户端浏览器的访问请求参数中获取,为了提高安全性,防止恶意篡改和攻击,推荐从客户端的访问请求参数中传入的请求标识ID,该请求标识ID关联请求参数规则,请求参数规则配有逻辑功能标识ID,这里的请求标识ID及关联的请求参数规则也由开发人员在开发时通过后台管理页面预先配置并保存。
在具体的开发平台中,请求参数规则中预先配置的项目还可以包括访问权限设定、数据库事务管理、对参数参与情况进行限制(如不能多参数,不能少参数,参数名规定下来可以根据不同业务传入不同值,是否允许额外参数,参数的键和值都固定不允许改变等)、对本地服务接口或云端微服务接口的调用、获取全局变量等等。
若请求参数规则中包括权限设定的配置,则进行用户访问权限的校验;若请求参数规则中包括事务设定的配置,则进行动态设置事务;若请求参数规则中包括是否允许额外参数加入的配置,则根据配置情况进行相应的校验;其中配置项的值包括使用、忽略、禁止额外参数;若请求参数规则中包括调用本地服务接口或云端微服务接口的配置,则调用指定的接口并获取相应的执行结果;若请求参数规则中包括获取全局变量的配置,则动态获取指定的全局变量的取值。
在指定了逻辑功能标识ID后,也需要在客户端的访问请求参数或请求参数规则中配置与逻辑功能标识ID对应的后台分离功能实现接口。这里的后台分离功能实现接口即是用于加载并执行逻辑功能标识ID对应的动态JavaScript代码的服务接口。动态JavaScript代码中也可支持嵌套调用后台分离功能实现接口,调用后台分离功能实现接口时,传入逻辑功能标识ID。
例如可以在请求参数规则中配置调用servicePath=base/excBackFun,表示使用后台分离功能实现接口。这个接口将业务逻辑以JavaScript的形式在页面管理端由二次开发人员进行编辑。然后在这里进行调用。同时会要求传入backFunId这个参数(即配置的逻辑功能标识ID),该参数指定了业务用到的动态JavaScript代码。方法调用的时候会根据backFunId获取到这个动态JavaScript代码然后执行,以完成业务。动态JavaScript代码里可以对业务进行逻辑编辑,其中遇到需要调用基础功能服务提供支持的地方可以采用commonFun.*(目前提供以下三种方法可供调用)提供的方法进行调用本地服务接口或者云端微服务接口。
a、commonFun.execute("路径") //不用参数情况
b、commonFun.execute("路径", JSON.stringify(参数)) //用参数情况
c、commonFun.executeNeedFile("路径", JSON.stringify(参数)) //访问接口时候有file文件参数,采用这个方法可以将file文件参数一并给到对应的微服务接口。
参数"路径"可以是本地方法名或者微服务的调用地址(可采用微服务的前缀加微服务方法中间使用“/”间隔开的写法,如:"ftp/uploadFun")。上述服务或接口的名称仅为示例,开发人员可根据偏好进行调整。
实现业务逻辑功能的动态JavaScript代码,可以由二次开发用户采用在线代码编辑器,如CodeMirror,在网页界面编辑,在创建时可采用新建空白代码或引入代码模板的方式。
基于相同的发明构思,本发明实施例提供的一种基于基础与逻辑功能分离的业务实现系统,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该计算机程序被加载至处理器时实现上述的基于基础与逻辑功能分离的业务实现方法。
Claims (9)
1.一种基于基础与逻辑功能分离的业务实现方法,其特征在于,包括如下步骤:
接收传入的逻辑功能标识ID,根据所述逻辑功能标识ID获取实现对应业务逻辑功能的动态JavaScript代码;所述动态JavaScript代码由二次开发用户在管理页面动态编辑并保存;
将根据逻辑功能ID获取到的动态JavaScript代码进行数据注入,并执行代码;所述动态JavaScript代码中包含对实现基础功能的本地服务接口或云端微服务接口的调用。
2.根据权利要求1所述的基于基础与逻辑功能分离的业务实现方法,其特征在于,所述基础功能由开发平台提供或由二次开发用户上传的服务提供,以服务接口的形式实现相应的功能,包括邮件功能、文件上传下载功能、认证功能、工作流功能、数据库访问功能中的一种或多种。
3.根据权利要求1所述的基于基础与逻辑功能分离的业务实现方法,其特征在于,所述逻辑功能标识ID从客户端的访问请求参数中获取,或者从客户端的访问请求参数中传入的请求标识ID所关联的请求参数规则中获取;所述请求标识ID及关联的请求参数规则由开发人员在开发时通过后台管理页面预先配置并保存。
4.根据权利要求3所述的基于基础与逻辑功能分离的业务实现方法,其特征在于,在客户端的访问请求参数中配置与逻辑功能标识ID对应的后台分离功能实现接口,或在请求参数规则中预先配置与逻辑功能标识ID对应的后台分离功能实现接口;所述后台分离功能实现接口用于加载并执行逻辑功能标识ID对应的动态JavaScript代码。
5.根据权利要求4所述的基于基础与逻辑功能分离的业务实现方法,其特征在于,所述动态JavaScript代码中支持嵌套调用后台分离功能实现接口,调用后台分离功能实现接口时,传入逻辑功能标识ID。
6.根据权利要求1所述的基于基础与逻辑功能分离的业务实现方法,其特征在于,所述动态JavaScript代码采用无参数调用服务接口、有字符串参数调用服务接口、有文件参数调用服务接口三种中的一种方式调用本地服务接口或云端微服务接口。
7.根据权利要求1所述的基于基础与逻辑功能分离的业务实现方法,其特征在于,实现业务逻辑功能的动态JavaScript代码,二次开发用户在创建时采用新建空白代码或引入代码模板的方式。
8.根据权利要求1所述的基于基础与逻辑功能分离的业务实现方法,其特征在于,所述本地服务接口或云端微服务接口为平台提供的接口或二次开发人员上传的服务接口;所有微服务接口在微服务API网关上进行路由配置。
9.一种基于基础与逻辑功能分离的业务实现系统,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述计算机程序被加载至处理器时实现根据权利要求1-8任一项所述的基于基础与逻辑功能分离的业务实现方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110439674.1A CN113076095A (zh) | 2021-04-23 | 2021-04-23 | 一种基于基础与逻辑功能分离的业务实现方法与系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110439674.1A CN113076095A (zh) | 2021-04-23 | 2021-04-23 | 一种基于基础与逻辑功能分离的业务实现方法与系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113076095A true CN113076095A (zh) | 2021-07-06 |
Family
ID=76618544
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110439674.1A Pending CN113076095A (zh) | 2021-04-23 | 2021-04-23 | 一种基于基础与逻辑功能分离的业务实现方法与系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113076095A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023142082A1 (zh) * | 2022-01-29 | 2023-08-03 | 西门子股份公司 | 设备控制方法、装置、平台和计算机可读介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106293704A (zh) * | 2016-07-26 | 2017-01-04 | 北京北森云计算股份有限公司 | 多语言云编译的动态微服务编辑方法、装置和服务器 |
CN107181815A (zh) * | 2017-06-13 | 2017-09-19 | 北京中电普华信息技术有限公司 | 一种微应用和微服务交互方法、微应用和系统 |
CN111176627A (zh) * | 2019-12-06 | 2020-05-19 | 深圳市科南软件有限公司 | 一种基于微服务的前后端分离的装置与方法 |
CN111966347A (zh) * | 2020-07-03 | 2020-11-20 | 微民保险代理有限公司 | 前端驱动后端服务的方法、装置、设备和存储介质 |
CN112328219A (zh) * | 2020-11-04 | 2021-02-05 | 数字广东网络建设有限公司 | 业务访问处理方法、装置、系统和计算机设备 |
CN112597013A (zh) * | 2020-12-16 | 2021-04-02 | 北京三快在线科技有限公司 | 一种在线开发以及调试方法及装置 |
-
2021
- 2021-04-23 CN CN202110439674.1A patent/CN113076095A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106293704A (zh) * | 2016-07-26 | 2017-01-04 | 北京北森云计算股份有限公司 | 多语言云编译的动态微服务编辑方法、装置和服务器 |
CN107181815A (zh) * | 2017-06-13 | 2017-09-19 | 北京中电普华信息技术有限公司 | 一种微应用和微服务交互方法、微应用和系统 |
CN111176627A (zh) * | 2019-12-06 | 2020-05-19 | 深圳市科南软件有限公司 | 一种基于微服务的前后端分离的装置与方法 |
CN111966347A (zh) * | 2020-07-03 | 2020-11-20 | 微民保险代理有限公司 | 前端驱动后端服务的方法、装置、设备和存储介质 |
CN112328219A (zh) * | 2020-11-04 | 2021-02-05 | 数字广东网络建设有限公司 | 业务访问处理方法、装置、系统和计算机设备 |
CN112597013A (zh) * | 2020-12-16 | 2021-04-02 | 北京三快在线科技有限公司 | 一种在线开发以及调试方法及装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023142082A1 (zh) * | 2022-01-29 | 2023-08-03 | 西门子股份公司 | 设备控制方法、装置、平台和计算机可读介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10853108B2 (en) | Method and apparatus for code virtualization and remote process call generation | |
US9239705B2 (en) | Method and apparatus for customized software development kit (SDK) generation | |
CN113076502A (zh) | 一种基于请求标识的参数控制方法与系统 | |
CN112130871B (zh) | 远程部署中间件的方法、装置、计算机设备及存储介质 | |
CN110673923A (zh) | Xwiki系统配置方法、系统及计算机设备 | |
CN108923997A (zh) | 一种基于python的云服务节点自动测试方法及装置 | |
CN114489614A (zh) | 一种saas平台定制化ui解决方法 | |
CN113076095A (zh) | 一种基于基础与逻辑功能分离的业务实现方法与系统 | |
CN108153745B (zh) | 一种应用数据调用方法及应用开发系统 | |
CN115113850A (zh) | 一种跨平台应用的构建、运行方法、服务器、终端和系统 | |
CN112230919A (zh) | 页面模板化配置发布方法、系统、存储介质及服务器 | |
CN113360156A (zh) | 一种ios编译方法及相关设备 | |
CN116185425B (zh) | 基于节点组合的事件流程编排方法、装置、设备及介质 | |
CN117234512B (zh) | 业务快速开发方法、系统、电子设备及存储介质 | |
US20230334109A1 (en) | Method For Significantly Improving The Online Access Speed Of Matlab Web App | |
CN114237626A (zh) | 一种非侵入式动态编辑jvm参数的方法、系统及设备 | |
CN114035782A (zh) | 基于表单设计的代码自动生成方法、系统及存储介质 | |
Edge et al. | A Culture of Automation and Continual Testing | |
CN113722538A (zh) | 一种界面动态渲染方法及装置 | |
CN115237496A (zh) | 一种基于微软VisualStudioCode开发工具的小程序预览方法 | |
CN115859260A (zh) | 一种权限认证方法、装置、设备及可读存储介质 | |
CN114115846A (zh) | 一种应用程序接口的生成方法、装置、设备及存储介质 | |
CN115587344A (zh) | 基于vue的按钮权限控制方法、系统、设备及存储介质 | |
CN113886428A (zh) | 基于业务方法的动态sql的生成方法及装置 | |
CN113377400A (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 |