一种业务逻辑的执行方法、装置及电子设备与流程

文档序号:14518816阅读:190来源:国知局
一种业务逻辑的执行方法、装置及电子设备与流程

本发明涉及计算机技术领域,更具体地,涉及一种业务逻辑的执行方法、装置及电子设备。



背景技术:

企业应用软件的特点是,业务变化快、业务逻辑复杂、多数的业务操作是数据库操作。现有的企业应用软件通常采用元数据定义数据结构,应用服务动态解析元数据定义,并生成相应的数据库增删改查以及一些简单的业务操作。基于元数据驱动的企业应用软件在数据结构上具备一定的灵活性,可以满足大多数以数据采集/维护为主的企业应用软件。

但是,企业应用软件发展至今,数据采集/维护为主的企业应用软件已经无法满足企业应用需求。更多复杂多变的业务逻辑、多样的输入变化、多样的客户端设备,使得传统单一的元数据定义,无法描述更多复杂的场景,无法适应运行时复杂的输入变化,无法使用更多样的客户端设备。



技术实现要素:

本发明的一个目的是提供一种至少能够解决上述问题之一的新技术方案。

根据本发明的第一方面,提供了一种业务逻辑的执行方法,包括:

获取用户输入的当前业务参数;

根据所述当前业务参数读取对应的当前预编译语句,其中,所述当前预编译语句为根据所述当前业务参数对应的业务逻辑生成;

执行所述当前预编译语句。

可选的是,所述执行方法还包括:

基于元数据定义至少一个业务逻辑的原始语句;

编译每一所述原始语句得到对应的可执行的预编译语句;

存储所有所述预编译语句、及与每一所述预编译语句对应的业务逻辑的业务参数。

可选的是,所述基于元数据定义至少一个业务逻辑的原始语句具体为:

基于元数据通过动态语言定义至少一个业务逻辑的原始语句。

可选的是,所述根据所述当前业务参数读取对应的当前预编译语句包括:

查找预先存储的反映业务参数与预编译语句之间对应关系的对照表,确定与所述当前业务参数对应的预编译语句作为所述当前预编译语句;

读取所述当前预编译语句。

根据本发明的第二方面,提供了一种业务逻辑的执行装置,包括:

参数获取模块,用于获取用户输入的当前业务参数;

读取模块,用于根据所述当前业务参数读取对应的当前预编译语句,其中,所述当前预编译语句为根据所述当前业务参数对应的业务逻辑生成;

执行模块,用于执行所述当前预编译语句。

可选的是,所述执行装置还包括:

定义模块,用于基于元数据定义至少一个业务逻辑的原始语句;

编译模块,用于编译每一所述原始语句得到对应的可执行的预编译语句;

存储模块,用于存储所有所述预编译语句、及与每一所述预编译语句对应的业务逻辑的业务参数。

可选的是,所述定义模块还用于:基于元数据通过动态语言定义至少一个业务逻辑的原始语句。

可选的是,所述读取模块包括:

查找单元,用于查找预先存储的反映业务参数与预编译语句之间对应关系的对照表,确定与所述当前业务参数对应的预编译语句作为所述当前预编译语句;

读取单元,用于读取所述当前预编译语句。

根据本发明的第三方面,提供了电子设备,包括根据本发明第二方面所述的执行装置。

根据本发明的第四方面,提供了一种电子设备,其特征在于,包括处理器和存储器,所述存储器用于存储指令,所述指令用于控制所述处理器进行操作以执行根据本发明第一方面所述的执行方法。

本发明的一个有益效果在于,通过本发明的执行方法,可以执行更多复杂多变的业务逻辑,可以适应运行时复杂的输入变化,使用更加多样化的客户端设备。

通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。

附图说明

被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。

图1为根据本发明一种业务逻辑的执行方法的一种实施方式的流程图;

图2为根据本发明一种业务逻辑的执行方法的另一种实施方式的流程图;

图3为根据本发明一种业务逻辑的执行装置的一种实施结构的方框原理图;

图4为根据本发明一种业务逻辑的执行装置的另一种实施结构的方框原理图;

图5为根据本发明一种电子设备的一种实施结构的方框原理图。

具体实施方式

现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。

以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。

在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

图1为根据本发明一种业务逻辑的执行方法的一种实施方式的流程图。

根据图1所示,该执行方法包括以下步骤:

步骤s110,获取用户输入的当前业务参数。

当前业务参数具体为待执行的业务逻辑的业务参数,包括该业务逻辑的业务名称或者是id,例如可以为查询门店。

步骤s120,根据当前业务参数读取对应的当前预编译语句。

其中,当前预编译语句为根据当前业务参数对应的业务逻辑生成。

进一步地,执行步骤s120的方法可以为:查找预先存储的反映业务参数与预编译语句之间对应关系的对照表,确定与当前业务逻辑对应的预编译语句作为当前预编译语句,并读取当前预编译语句。

在本发明的一个具体实施例中,在执行本发明的步骤s120之前,该执行方法还包括如图2所示的步骤s210~s230。

步骤s210,基于元数据定义至少一个业务逻辑的原始语句。

具体的,原始语句是开发人员使用代码编辑器编写的编码期语法的语句。编码期语法更加接近业务含义,基于领域驱动模型。

元数据又称中介数据、中继数据,为描述数据的数据,主要是描述数据属性的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。元数据算是一种电子式目录,为了达到编制目录的目的,必须在描述并收藏数据的内容或特色,进而达成协助数据检索的目的。元数据是关于数据的组织、数据域及其关系的信息,简言之,元数据就是关于数据的数据。

进一步地,可以是基于元数据通过动态语言定义至少一个业务逻辑的原始语句。

动态语言,是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化,类型的检查是在运行时做的,优点为方便阅读,清晰明了。

具备标准的sql查询语法,可直接使用sql语句查询出元数据定义的业务对象的数据。与数据库系统的区别在于,数据库系统查询的是数据表,而本方案查询的是业务对象。

提供了动态模板语法,可根据查询的输入参数,在运行时动态改变sql语句。

提供了各类可在服务端和客户端执行的应用程序编程接口api,api是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

实施例1:有一个业务对象终端门店[store],要查询出终端门店列表,并放在变量temp中。代码如下:

vartemp=select*fromstore;

本例为基本的查询语法,语法特点为查询语句可直接赋给一个变量,运行效果为查询结果将赋给变量。

实施例2:要查询一个名称为用户输入的值的终端门店,并放在变量temp中。代码如下:

vartemp=select*fromstorewherestorenamelike{‘%’+in.store.name};

在本实施例中,使用了动态模板语法,in.store.name为用户输入的引用,使用大括号包住的代码就是动态模板。

这样,假如用户输入“天河店”,则运行时,业务引擎将会动态包装sql语句类似select*fromstorewherestorenamelike‘%天河店’。

实施例3:要查询一个名称为用户输入的值得终端门店,并放在temp中;如果用户没有输入,就查询所有。代码如下:

vartemp=select*fromstore

{#ifin.store.name!=null}

wherestorenamelike{‘%’+in.store.name}

{#endif};

在本实施例中,引入了#if#endif的模板语法,in.store.name为用户输入引用,若用户没有输入,则运行时业务引擎会动态包装sql语句类似select*fromstore;否则将包装出实施例2的sql语句。

步骤s220,编译每一原始语句得到对应的预编译语句。

预编译语句具体为语法解析器可以解析语法的语句,也即可执行语法的语句,计算机可读语句。具体可以是通过业务引擎的语法解析器解析出预编译语句。

如前述的实施例1,语法解析器将解析出如下代码:

vartemp=null;

query.query(context,‘select*fromstore’);

temp=context.data;

步骤s230,存储所有的预编译语句、及每一预编译语句对应的业务逻辑的业务参数。

具体的,可以是存储所有的预编译语句、及反映预编译语句与业务参数之间对应关系的对照表,以使得通过该对照表,可以唯一确定与当前业务参数对应的当前预编译语句。

步骤s130,执行当前预编译语句。

具体的,当前预编译语句由终端的运行引擎执行。上述实施例中的语法为标准的ecmascript5的语法,运行引擎仅需要是实现标准es5语法的引擎即可工作。

本发明的实施例中定义的一套统一的预编译期语法及运行时语法,规范了多样化的终端设备,减少各端运行时引擎的差异化。本发明的实施例中业务逻辑定义的语义是基于领域模型,相比传统的元数据基于数据结构的定义,使用门槛低,可读性强,更易于维护。本发明的实施例定义的一套动态语言,相比传统的元数据静态语言定义,扩展了动态性。可满足多样的输入变化,满足各类动态的业务逻辑。

这样,通过本发明的执行方法,可以执行更多复杂多变的业务逻辑,可以适应运行时复杂的输入变化,使用更加多样化的客户端设备。

与上述方法相对应的,本发明还提供了一种业务逻辑的执行装置。图3为根据本发明一种业务逻辑的执行装置的一种实施结构的方框原理图。

根据图3所示,该执行装置包括参数获取模块310、读取模块320和执行模块330。该参数获取模块310用于获取用户输入的当前业务参数;该读取模块320用于根据当前业务参数读取对应的当前预编译语句,其中,当前预编译语句为根据当前业务参数对应的业务逻辑生成;该执行模块330用于执行当前预编译语句。

进一步地,如图4所示,该执行装置还包括定义模块410、编译模块420和存储模块430。该定义模块410用于基于元数据定义至少一个业务逻辑的原始语句;该编译模块420用于编译每一原始语句得到对应的可执行的预编译语句;该存储模块430用于存储所有预编译语句、及与每一预编译语句对应的业务逻辑的业务参数。

在此基础上,定义模块310还用于:基于元数据通过动态语言定义至少一个业务逻辑的原始语句。

再进一步地,如图4所示,读取模块320还包括查找单元321和读取单元322。该查找单元321用于查找预先存储的反映业务参数与预编译语句之间对应关系的对照表,确定与当前业务参数对应的预编译语句作为当前预编译语句;该读取单元322用于读取当前预编译语句。

本发明还提供了一种电子设备,在一方面,该电子设备包括前述的业务逻辑的执行装置。

图5为根据本发明另一方面的该电子设备的一种实施结构的方框原理图。

根据图5所示,该电子设备500包括存储器501和处理器502,该存储器501用于存储指令,该指令用于控制处理器502进行操作以执行上述业务逻辑的执行方法。

该处理器502例如可以是中央处理器cpu、微处理器mcu等。该存储器501例如包括rom(只读存储器)、ram(随机存取存储器)、诸如硬盘的非易失性存储器等。

除此之外,根据图5所示,该电子设备500还包括接口装置503、输入装置504、显示装置505、通信装置506、扬声器507、麦克风508等等。尽管在图5中示出了多个装置,但是,本发明电子设备可以仅涉及其中的部分装置,例如,处理器501、存储器502、输入装置504等。

上述通信装置506例如能够进行有有线或无线通信。

上述接口装置503例如包括耳机插孔、usb接口等。

上述输入装置504例如可以包括触摸屏、按键等。

上述显示装置505例如是液晶显示屏、触摸显示屏等。

本发明的电子设备500例如可以是手机、平板电脑、电脑等电子产品。

上述各实施例主要重点描述与其他实施例的不同之处,但本领域技术人员应当清楚的是,上述各实施例可以根据需要单独使用或者相互结合使用。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分相互参见即可,每个实施例重点说明的都是与其他实施例的不同之处,但本领域技术人员应当清楚的是,上述各实施例可以根据需要单独使用或者相互结合使用。另外,对于装置实施例而言,由于其是与方法实施例相对应,所以描述得比较简单,相关之处参见方法实施例的对应部分的说明即可。以上所描述的系统实施例仅仅是示意性的,其中作为分离部件说明的模块可以是或者也可以不是物理上分开的。

本发明可以是装置、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。

计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c++等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。

这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1