CN109358842A - 一种服务实现方法、电子设备及存储介质 - Google Patents
一种服务实现方法、电子设备及存储介质 Download PDFInfo
- Publication number
- CN109358842A CN109358842A CN201811113786.2A CN201811113786A CN109358842A CN 109358842 A CN109358842 A CN 109358842A CN 201811113786 A CN201811113786 A CN 201811113786A CN 109358842 A CN109358842 A CN 109358842A
- Authority
- CN
- China
- Prior art keywords
- service
- rule
- project
- script file
- demand
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/22—Procedural
-
- 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
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)为应用提供统一、通用的交互接口,具有复用性强、松散耦合、规范开发等特点,是当前主流的软件架构。常见的SOA架构基于JAVA2企业版(J2EE)或NET平台实现,由应用层、业务逻辑层、服务层及数据访问层构成,每一层都有清晰的角色和分工,无需关注其它层的逻辑细节。其中,SOA的关键部分就是利用企业服务总线(ESB)集中进行服务的通信、交互、集成、监控等管理,并对外发布统一生命周期的服务实现业务需求。
虽然SOA架构实现了业务组件的彼此解耦合,但是其中心化的服务管理机制,造成了服务间的相互耦合,不利于系统的维护和升级。每当软件需求或运行环境发生变化时,需要暂停整个服务,通过原生开发调整代码,重新编译、集成、部署成功后,才能响应用户需求。总的来说,存在以下问题:1)扩展性差,需要依次扩展每个层次的代码逻辑;2)若服务器出现性能瓶颈,无法拆分部署服务,只能被动整加服务集群节点,并且无法解决数据耦合的问题;3)JAVA和C#都是编译执行的语音,即使功能发生微小变更,都需要重新编译、发布等,增加了系统维护的人力成本和时间成本;4)不支持实时调试,需要停止重启服务后才能生效。
发明内容
为了克服现有技术的不足,本发明的目的之一在于提供一种服务实现方法,其能够解决现有技术中服务开发系统构建时存在扩展性差、用户需求升级周期等问题。
本发明的目的之二在于提供一种电子设备,其能够解决现有技术中服务开发系统构建时存在扩展性差、用户需求升级周期等问题。
本发明的目的之三在于提供一种计算机可读存储介质,其能够解决现有技术中服务开发系统构建时存在扩展性差、用户需求升级周期等问题。
本发明的目的之一采用如下技术方案实现:
一种服务实现方法,包括以下步骤:
模型创建步骤:获取项目的实际业务需求,并根据项目的实际业务需求创建业务类型;
判断步骤:从规则函数库中获取基础规则,并判断基础规则是否满足项目的实际业务需求,若是,则执行服务实现步骤;若否,则规则扩展步骤;
服务实现步骤:根据业务类型和规则函数库来利用脚本语言生成脚本文件,进而根据脚本文件实现项目的服务并发布;
规则扩展步骤:根据项目的实际业务需求生成自定义规则并将自定义规则存储于规则函数库中,然后执行服务实现步骤。
进一步地,还包括服务更新步骤:根据用户的新需求,利用脚本语言开发生成新的脚本文件或对现有服务的脚本文件进行修改后生成新的脚本文件,并根据新的脚本文件实现相应的服务并发布。
进一步地,所述服务实现步骤还包括:将发布的服务保存到服务器缓存中。
本发明的目的之二采用如下技术方案实现:
一种电子设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:
模型创建步骤:获取项目的实际业务需求,并根据项目的实际业务需求创建业务类型;
判断步骤:从规则函数库中获取基础规则,并判断基础规则是否满足项目的实际业务需求,若是,则执行服务实现步骤;若否,则规则扩展步骤;
服务实现步骤:根据业务类型和规则函数库来利用脚本语言生成脚本文件,进而根据脚本文件实现项目的服务并发布;
规则扩展步骤:根据项目的实际业务需求生成自定义规则并将自定义规则存储于规则函数库中,然后执行服务实现步骤。
进一步地,所述处理器执行所述程序时还实现以下步骤:服务更新步骤:根据用户的新需求,利用脚本语言开发生成新的脚本文件或对现有服务的脚本文件进行修改后生成新的脚本文件,并根据新的脚本文件实现相应的服务并发布。
进一步地,将发布的服务保存到服务器缓存中。
本发明的目的之三采用如下技术方案实现:
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如本发明目的之一采用的服务实现方法的步骤。
相比现有技术,本发明的有益效果在于:
通过本发明提出的服务实现方法,能够为开发人员提供多人在线协作的服务开发环境,并且基于关系建模及自定义脚本语言实现相互独立的服务;另外,在需求发生变更时,能够即时修改服务并即时生效,无需重新编译、集成、发布,提高了服务的开发效率,降低了服务的维护更新成本,实现对服务的细粒度管理、针对性维护。
附图说明
图1本发明服务实现方法的流程图;
图2本发明中业务模型的具体实例图;
图3本发明利用脚本实现服务的示意图;
图4本发明服务开发平台的架构图。
具体实施方式
下面结合附图以及具体实施方式,对本发明做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例。
本发明提出一种服务实现方法。在服务的设计上,基于去中心化、可扩展的设计思想,通过构建业务模型合理地划分服务,实现服务之间的解耦合;在服务的实现上,提供统一的服务开发平台及装置,支持多人协作的持续集成式服务开发,解决服务开发中存在的扩展困难、升级周期长等问题。
如图1所示,本发明的服务实现方法包括以下步骤:
步骤S1:模型创建:根据实际业务需求创建业务模型。本发明通过可视化建模的方式来建立模型,进而可实现模型和数据的持久化、事务性操作及事件绑定,在建立模型时,还需要结合业务逻辑构建模型与模型之间的关系。
服务开发的实质是对业务模型的组织与应用,于是快速高效地建立规范化、冗余小、灵活一致的业务模型至关重要。
比如本发明提供一实施例:通过不动产登记业务进一步说明模型创建的过程,也即是根据业务特征及系统需求,梳理、归纳业务模型,并通过图形化用户界面完成业务模型定制的过程。
如图2所示,不动产登记业务涉及业务主表、业务从表以及业务流程表。其中,业务主表记录登记业务的基础信息;业务从表记录登记业务的关联信息,例如附件;业务流程记录登记业务的当前流程:受理—>初审—>复审—>审核—>登簿—>缮证—>发证—>归档。
在创建模型时,首先输入模型的基本信息,例如模型编号、主键等,然后在模型属性中配置所关联的物理存储结构,最后建立业务模型之间的关联关系。
进一步地,本发明提供业务模型的查询、修改、删除功能,利用模型属性控制数据的增、删、改、查权限,支持数据的过滤排序,实现事件的监控绑定。
该模型建立的过程均通过可视化建模工具,而非代码编写的方式来实现,由于可视化建模工具其学习成本低,灵活易用。
另外,本发明还提供了具体的创建业务模型时的代码实现,具体如下:
步骤S2:规则判断:判断系统提供的规则函数库中的基础规则是否能够实现实际业务需求,若是,则执行步骤S3;若否,则执行步骤S4。
其中,基础规则是由工程师预先开发并存储于系统中的,是由系统提供。而与基础规则相对应的规则函数库中还包括自定义规则,该自定义规则指的是用户根据实际业务需求自行定义的规则。也也即是说,当基础规则不能够满足实际业务需求时,就需要通过用户自行来扩展相应的自定义规则来实现实际业务需求。
比如不动产登记业务涉及附件上传功能,基础规则不能够满足该功能需求,需执行步骤S4对规则进行扩展生成该需求功能相应的自定义规则。
步骤S4:规则扩展:根据实际业务需求生成自定义规则并将其存储于规则函数库中,然后执行步骤S3。
本发明实施例中自主扩展的附件上传规则如表1所示:
表1
优选地,本发明的规则扩展还提供以下两种方式:一是在底层框架的基础上,使用C#或Java语言扩展平台的底层函数库,以适应复杂的服务开发及对接需求。由于服务开发平台底层分别实现了.NET和Java两套框架,支持利用原生代码开发扩展底层规则,例如,增加新的接口方式;二是基于脚本语言扩展规则,即通过脚本函数实现服务的继承与相互调用,实现了公共类服务的复用,提高了开发效率。
例如扩展规则时,通过原生代码开发进行扩展底层规则,其具体如下实现:
另外,通过脚本函数进行扩展时,首先定义编号,比如:
然后依据脚本的形式在数据库中存储,具体代码如下:
例如扩展脚本函数_Math,该函数可用于执行数学任务,其在规则扩展时的代码实现具体如下:
步骤S3:服务实现:在业务模型和规则函数库的基础上,使用脚本语言开发服务并在线实时发布。
服务发布时,还需要设置服务的访问权限(GET和POST)。
如图3所示,使用脚本语言将参数、规则、外部函数注入脚本解析器,动态解释、实时执行,高效地实现服务逻辑。
下面以附件上传服务为例,说明将指定目录下的文件(url1)上传到指定服务器地址(url2)的实现:
fileupload("url2","url1");
因为服务通过脚本语言实现,所以省去了服务开发中的编译、集成、发布环节,开发者只需通过图形用户界面设置服务的访问权限,即是否对外发布服务;设置服务的访问方式,即是否允许通过GET或POST方式访问服务,即可完成服务从实现到发布的全过程。
然而,在实际的服务开发过程中,往往会存在业务需求的变更或新增,为了能够及时地响应需求的变化,服务更新的过程为:使用脚本语言扩展现有的服务或开发新的服务,每个服务都拥有独立的生命周期,支持单独修改、更新任意服务。
另外,服务发布后将自动保存到服务器缓存中,为服务的热更新提供支持。服务的热更新是指在不停用服务的情况下,开发者对服务进行即时更新,在用户无感知的情况下完成系统修复及升级,用户只要重新上线就能体验更新后的服务。
进一步地,还包括步骤S5:服务更新步骤:根据用户的新需求,利用脚本语言开发生成新的脚本文件或对现有服务的脚本文件进行修改后生成新的脚本文件,并根据新的脚本文件实现相应的服务并发布。
也即是,本发明的具体工作原理为:当开发新服务的时候,首先执行步骤S1创建业务模型,然后执行步骤S2判断利用平台提供的基础规则是否能实现业务需求,若是,则执行步骤S3服务实现;若否,则执行步骤S4规则扩展;若业务需求发生变化时,执行服务更新的过程。
如图4所示,本发明还公开一种利用本发明提供服务实现方法的服务开发平台,包括:模型管理器、脚本解析器、可扩展规则库数据库访问引擎及前端用户界面,其中模型管理器、脚本解析器、可扩展规则库已经数据库访问引擎组成了一底层支撑框架,为前端用户界面的显示提供相应的支撑。
该服务开发平台能够支持多人在线协作地持续集成式服务开发,与传统的开发方式相比,有效提高了服务的开发效率,降低了服务的维护更新成本。
其中,模型管理器用于实现用户-业务逻辑-数据库之间的关联绑定;脚本解析器对脚本语言进行动态解释、实时执行,省去编译、集成的环节;可扩展规则库提供文件操作、数据库操作、关系模型操作、缓存操作、数据类型转换、即时通讯、加密解密、权限管理、异常处理等功能,支持按需扩展;数据库访问引擎用于控制多种数据源的访问权限并快速处理事务;前端用户界面提供在线的服务开发环境,支持多人协作、在线测试,即时修改即时生效。本发明公开的一种服务实现方法,具有以下特点:
1)通过合理地划分服务边界,实现服务的去中心化,独立发布、部署、维护,减少服务间的彼此耦合,增强系统的健壮性。
2)利用可视化建模的方式进行创建模型而非代码编写的方式实现数据的持久化、事务性操作、过滤排序及事件绑定,提供的可视化建模工具,学习成本低,灵活易用。
3)使用脚本语言(比如JavaScript)实现业务逻辑,支持脚本的动态解析和实时执行,省去服务的编译、集成、部署环节,为服务开发和升级提供便利。
4)支持在线、实时发布服务,结合缓存技术做到服务的热更新,实现服务的细粒度管理、针对性维护。
本发明还提供了一种电子设备,其包括存储器、处理器以及存储在存储器上并可在处理上运行的计算机程序,所述处理器执行所述程序时实现如文中所述的项目服务开发系统的构建方法的步骤。
本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如文中所述的项目服务开发系统的构建方法的步骤。
上述实施方式仅为本发明的优选实施方式,不能以此来限定本发明保护的范围,本领域的技术人员在本发明的基础上所做的任何非实质性的变化及替换均属于本发明所要求保护的范围。
Claims (7)
1.一种服务实现方法,其特征在于:包括以下步骤:
模型创建步骤:获取项目的实际业务需求,并根据项目的实际业务需求创建业务类型;
判断步骤:从规则函数库中获取基础规则,并判断基础规则是否满足项目的实际业务需求,若是,则执行服务实现步骤;若否,则规则扩展步骤;
服务实现步骤:根据业务类型和规则函数库来利用脚本语言生成脚本文件,进而根据脚本文件实现项目的服务并发布;
规则扩展步骤:根据项目的实际业务需求生成自定义规则并将自定义规则存储于规则函数库中,然后执行服务实现步骤。
2.根据权利要求1所述的服务实现方法,其特征在于:还包括服务更新步骤:根据用户的新需求,利用脚本语言开发生成新的脚本文件或对现有服务的脚本文件进行修改后生成新的脚本文件,并根据新的脚本文件实现相应的服务并发布。
3.根据权利要求1所述的服务实现方法,其特征在于:所述服务实现步骤还包括:将发布的服务保存到服务器缓存中。
4.一种电子设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于:所述处理器执行所述程序时实现以下步骤:
模型创建步骤:获取项目的实际业务需求,并根据项目的实际业务需求创建业务类型;
判断步骤:从规则函数库中获取基础规则,并判断基础规则是否满足项目的实际业务需求,若是,则执行服务实现步骤;若否,则规则扩展步骤;
服务实现步骤:根据业务类型和规则函数库来利用脚本语言生成脚本文件,进而根据脚本文件实现项目的服务并发布;
规则扩展步骤:根据项目的实际业务需求生成自定义规则并将自定义规则存储于规则函数库中,然后执行服务实现步骤。
5.根据权利要求4所述的电子设备,其特征在于:所述处理器执行所述程序时还实现以下步骤:服务更新步骤:根据用户的新需求,利用脚本语言开发生成新的脚本文件或对现有服务的脚本文件进行修改后生成新的脚本文件,并根据新的脚本文件实现相应的服务并发布。
6.根据权利要求4所述的电子设备,其特征在于:所述服务实现步骤还包括:将发布的服务保存到服务器缓存中。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求1-3中任一项所述的服务实现方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811113786.2A CN109358842A (zh) | 2018-09-25 | 2018-09-25 | 一种服务实现方法、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811113786.2A CN109358842A (zh) | 2018-09-25 | 2018-09-25 | 一种服务实现方法、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109358842A true CN109358842A (zh) | 2019-02-19 |
Family
ID=65351433
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811113786.2A Pending CN109358842A (zh) | 2018-09-25 | 2018-09-25 | 一种服务实现方法、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109358842A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110659261A (zh) * | 2019-09-19 | 2020-01-07 | 成都数之联科技有限公司 | 一种数据挖掘模型发布方法及模型和模型服务管理方法 |
CN110865804A (zh) * | 2019-09-30 | 2020-03-06 | 天阳宏业科技股份有限公司 | 一种规则引擎的优化方法、装置、系统及存储介质 |
CN112433821A (zh) * | 2020-12-08 | 2021-03-02 | 新华三大数据技术有限公司 | 业务模型的搭建方法、装置、电子设备及介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101739277A (zh) * | 2009-12-08 | 2010-06-16 | 南京联创科技集团股份有限公司 | 基于自定义脚本方式管理业务监控系统的方法 |
CN102130965A (zh) * | 2011-04-13 | 2011-07-20 | 北京邮电大学 | 一种基于规则引擎的服务动态组合方法和系统 |
CN102681854A (zh) * | 2012-05-18 | 2012-09-19 | 华为技术有限公司 | 业务执行方法、服务器和计算机系统 |
CN103902270A (zh) * | 2012-12-27 | 2014-07-02 | 纽海信息技术(上海)有限公司 | 动态业务建立、管理和处理方法及动态业务系统 |
CN105446799A (zh) * | 2014-08-22 | 2016-03-30 | 阿里巴巴集团控股有限公司 | 一种计算机系统中进行规则管理的方法及系统 |
CN106126215A (zh) * | 2016-06-17 | 2016-11-16 | 深圳市麦斯杰网络有限公司 | 业务规则脚本生成方法及装置 |
CN107948314A (zh) * | 2017-12-21 | 2018-04-20 | 泰康保险集团股份有限公司 | 基于规则文件的业务处理方法、装置及服务器 |
-
2018
- 2018-09-25 CN CN201811113786.2A patent/CN109358842A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101739277A (zh) * | 2009-12-08 | 2010-06-16 | 南京联创科技集团股份有限公司 | 基于自定义脚本方式管理业务监控系统的方法 |
CN102130965A (zh) * | 2011-04-13 | 2011-07-20 | 北京邮电大学 | 一种基于规则引擎的服务动态组合方法和系统 |
CN102681854A (zh) * | 2012-05-18 | 2012-09-19 | 华为技术有限公司 | 业务执行方法、服务器和计算机系统 |
CN103902270A (zh) * | 2012-12-27 | 2014-07-02 | 纽海信息技术(上海)有限公司 | 动态业务建立、管理和处理方法及动态业务系统 |
CN105446799A (zh) * | 2014-08-22 | 2016-03-30 | 阿里巴巴集团控股有限公司 | 一种计算机系统中进行规则管理的方法及系统 |
CN106126215A (zh) * | 2016-06-17 | 2016-11-16 | 深圳市麦斯杰网络有限公司 | 业务规则脚本生成方法及装置 |
CN107948314A (zh) * | 2017-12-21 | 2018-04-20 | 泰康保险集团股份有限公司 | 基于规则文件的业务处理方法、装置及服务器 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110659261A (zh) * | 2019-09-19 | 2020-01-07 | 成都数之联科技有限公司 | 一种数据挖掘模型发布方法及模型和模型服务管理方法 |
CN110865804A (zh) * | 2019-09-30 | 2020-03-06 | 天阳宏业科技股份有限公司 | 一种规则引擎的优化方法、装置、系统及存储介质 |
CN112433821A (zh) * | 2020-12-08 | 2021-03-02 | 新华三大数据技术有限公司 | 业务模型的搭建方法、装置、电子设备及介质 |
CN112433821B (zh) * | 2020-12-08 | 2022-07-29 | 新华三大数据技术有限公司 | 业务模型的搭建方法、装置、电子设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107370786B (zh) | 一种基于微服务架构的通用信息管理系统 | |
CN110989983A (zh) | 一种零编码的应用软件快速构建系统 | |
CN101350009B (zh) | 一种协同文档编写系统 | |
CN106293808B (zh) | 多语言云编译实现系统功能动态拦截扩展的方法及系统 | |
CN104954453B (zh) | 基于云计算的数据挖掘rest服务平台 | |
CN109542556B (zh) | 一种基于Activiti的流程与表单交互方法及系统 | |
US20160248643A1 (en) | Managing objects using a client-server bridge | |
CN106484394B (zh) | 一种双引擎快速软件开发系统 | |
CN106293863B (zh) | 多语言云编译实现系统功能动态扩展替换的方法及系统 | |
WO2013007141A1 (zh) | 面向业务模型的软件运行平台及其运行方式 | |
CN109358842A (zh) | 一种服务实现方法、电子设备及存储介质 | |
CN104517181B (zh) | 一种核电站企业内容管理系统及方法 | |
CN106250179B (zh) | 通过多语言云编译实现系统动态功能拦截扩展的方法 | |
CN107734066A (zh) | 一种数据中心综合管理系统服务治理方法 | |
CN105204863B (zh) | 违法数据审核系统 | |
US20060101059A1 (en) | Employment method, an employment management system and an employment program for business system | |
CN103473034B (zh) | 一种动态发布Web服务的方法和装置 | |
Smid et al. | Case study on data communication in microservice architecture | |
CN103646134A (zh) | 一种面向服务的网络化仿真系统动态生成方法 | |
CN109284322A (zh) | 一种数据中心 | |
US10402399B2 (en) | Computer implemented system and method for dynamically optimizing business processes | |
US7752225B2 (en) | Replication and mapping mechanism for recreating memory durations | |
CN112988897A (zh) | 系统升级场景下的数据双向同步方法及装置 | |
Liu et al. | Methodical restructuring of complex workflow activities | |
CN114579250B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190219 |