专利名称::应用程序生成方法及装置的制作方法
技术领域:
:本发明涉及计算机技术,尤其涉及一种应用程序生成方法及装置。
背景技术:
:电力企业在“以信息化带动工业化,以工业化促进信息化”的战略构想的指引下,企业信息化呈现出以下趋势趋势一,应用模式由管控分离向信息一体化转变,即实现生产实时信息与管理信息的集成。趋势二,应用架构由分散应用向整合应用转变,即从部门级单项应用到企业级涵盖生产、营销及财务、人事、设备等环节的整体应用。趋势三,数据管理由分散管理向集中管理转变,形成信息共享、增值的机制。趋势四,系统模式由C/S架构向B/S+C/S架构转变,适应企业业务处理和经营运作快捷化、实时化的要求。目前,为顺应电力行业信息化的新趋势,电力企业建立了为客户提供各种服务的电力管理一体化平台。当前,应用程序开发人员开发电力管理一体化平台的某一业务模块时,首先需根据该业务模块的业务流程构建该业务模块的应用系统架构,然后再根据构建的架构进行软件开发。当该业务模块的业务流程发生变化时,开发人员需重复上述步骤完成适应新业务流程的软件开发。现有业务模块开发过程复杂,效率低,不能及时的根据业务变化更新服务TDO
发明内容本发明提供一种应用程序生成方法及装置,以简化软件开发过程,提高效率。本发明的一个方面是提供一种应用程序生成方法,包括获取至少一个规则定义语言;依次解析各规则定义语言,生成对应的程序代码。本发明的另一个方面是提供一种应用程序生成装置,包括获取模块,用于获取至少一个规则定义语言;解析模块,用于依次解析各规则定义语言,生成对应的程序代码。本发明的技术效果是采用本发明提供的技术方案,开发人员仅需聚焦于业务流程分析,然后根据分析结果组建规则定义语言以构成业务流程,最后通过应用程序生成装置解析生成程序代码,整个应用程序开发的过程,无需编写程序代码,简化了业务模块软件开发过程,便于软件开发人员对业务平台进行及时的动态更新,即便是软件开发经验较少的开发人员,也能快速完成。图I为本发明提供的应用程序生成方法实施例一的流程示意图;图2为本发明提供的应用程序生成方法实施例二的流程示意图;图3为本发明提供的应用程序生成装置实施例一的结构示意图;图4为本发明提供的应用程序生成装置实施例二的结构示意图5为本发明提供的应用程序生成装置实施例中解析模块的一具体实施例的结构示意图;图6为本发明提供的业务描述和解析引擎的实施例结构示意图;图7为本发明提供的业务描述和解析方法实施例的流程图;图8为本发明提供的业务描述和解析方法的实施例中解析过程的流程示意图。具体实施例方式如图I所示,本发明提供的应用程序生成方法实施例一的流程示意图。如图所示,所述方法包括步骤101、获取至少一个规则定义语言。具体地,所述规则定义语言作为通用构件存储在构件库中。实际应用中,构库开发人员通过对当前系统的应用领域的分析,设计规则定义语言。该规则定义语言包含有动态逻辑表达、嵌套、级联、模板等关系定义。更具体地,所述规则定义语言包括域数据、业务逻辑规则和构件标识。应用程序开发人员在分析过业务流程后,通过人机交互界面在构件库中选出所需的规则定义语言。然后,应用程序生成装置获取应用程序开发人员选出的至少一个规则定义语言。步骤102、依次解析各规则定义语言,生成对应的程序代码。具体地,应用程序生成装置依次对获取到的各规则定义语言进行解析,生成对应的程序代码。即首先,所述应用程序生成装置根据预设的反射机制模型,对规则定义语言的域数据进行数据处理,获得处理后的第一数据结果。然后,所述应用程序生成装置根据预设的语法解析模型,对所述规则定义语言的业务逻辑规则进行解析,生成逻辑计算模型。随后,所述应用程序生成装置将所述第一数据结果作为所述逻辑计算模型的参数,根据所述逻辑计算模型,计算出第二数据结果。最后,所述应用程序生成装置根据所述第二数据结果及所述规则定义语言的构件标识,生成对应的程序代码。重复上述各步骤,直至所述应用程序生成装置对所有规则定义语言进行了解析后均生成了对应的程序代码为止。采用本实施例所述的方法,开发人员仅需聚焦于业务流程分析,然后根据分析结果组建规则定义语言以构成业务流程,最后通过应用程序生成装置解析生成程序代码,整个应用程序开发的过程,无需编写程序代码,简化了业务模块软件开发过程,便于软件开发人员对业务平台进行及时的动态更新,即便是软件开发经验较少的开发人员,也能快速完成。进一步地,上述实施例所述步骤102之后,还包括将生成的所有程序代码发送至服务器,以使所述服务器执行所述程序代码。具体地,所述应用程序生成装置将生成的所有程序代码发送至服务器,以使所述服务器执行所述程序代码,得出执行结果。其中,所述服务器为任意可执行程序的执行设备。下面结合具体实例对本发明所述规则定义语言的结构作进一步说明。所述规则定义语言的域数据在实际繁杂的业务过程中存在各种不同的关联关系,时常需要互相调用,这个时候就需要有个方式来实现业务数据的传递。用于表征数据间的关联关系,如调用、引用和传递关系的即为上述实施例中所述的规则定义语言的域数据。如表I所示,所述域数据可以为表中所述的几种。表I域数据类型和具体表达对照表域类型_表达式___数据字段__$F[名称]__对数据行字段的引用查询条件字段__$Q[名称]对查询字段的引用_tableveiw参数__$S[名称]参数引用到的参数引用全局的系统参数变量$[名称]__应用系统的参数的引用业务表单级联参数$C[名称]为级联构件才会使用,主要是___从构件中读取其它构件的值所述规则定义语言的业务逻辑规则用于描述该规则定义语言的逻辑提供统一的基本算法规则,如字符串操作,文件操作,排序,XML文档操作,。具体地,如表2所示列出的几种具体的业务逻辑规则。表达式。表2部分业务逻辑规则表达式类型__表达式__mj_exist#{exist{|}域数据丨|}返#{exist{[}$Q[a]{|}and回表达式}#a=$Q[a]}#without#{without{|}域数据{丨}#{without{|}$[a]{|}cInd__返回表达式}#_a=$[a]}#_shell#{shell(Ij条件表达式#{shell(|)$S[paraml]!=null{|}返回表达式}#{|}andc=$SfparamI]}#嵌套内含逻辑表达式#{exist{|)$Q[a]{丨}#{without(I}$Q[b]■{I)andb=$Q[bj)#anda=$Q[a]}#所述规则定义语言的构件标识构件标识结合数据定义了具体业务的展现方式。具体地,如业务表单的程序开发,构件库开发人员将业务表单元素抽象成为构件标识。构件标识结合数据定义了业务表单元素的展现方式。用构件标识体现了数据与表单页面之间的彡口口再进一步地,如图2所示,上述各实施例所述的方法除包括上述各步骤外,还包括步骤103、构建所述规则定义语言。具体地,构件库开发人员通过应用程序生成装置提供的规则语言构件界面,输入构件规则定义语言的参数。然后所述应用程序生成装置根据所述参数,构建所述规则定义;五古P口口O步骤104、存储已构建的所述规则定义语言。具体地,所述应用程序生成装置将已构建的规则定义语言存储至构件库内,以供软件开发人员使用。通过本实施例,应用程序生成装置可根据构件库开发人员输入的参数构建规则定义语言并存储,以不断完善构件库,进一步提高应用程序生成装置的实用性,更方便开发人员的使用。下面结合表单开发实例,对本发明实施例所述的应用程序生成方法进行详细的说明。假设构件库中存储有基于WEB页面专有的规则定义语言。所述规则定义语言为构件库开发人员通过对表单的元素进行分析,通过应用程序生成装置提供的交换界面输入分析参数,所述应用程序生成装置根据所述分析参数构建规则定义语言,并存储至所述构建库中。首先,应用程序生成装置获取至少一个规则定义语言。其中,这至少一个规则定义语言为表单页面开发人员通过对业务流程的分析,从所述构件库中选出来的。然后,所述应用程序生成装置创建一个新的实例,为该实例创建域数据存储栈,该存储空间的访问权限仅为本实例。同时,所述应用程序生成装置为该实例创建表单域空间,将读取到的所述至少一个规则定义语言存储在所述表单域空间中。随后,所述应用程序生成装置将默认的模板加载到所述表单域空间,若存在有自定义模块,则将该自定义模板加载到所述表单域空间。随后,所述应用程序生成装置读取表单域空间中的一个规则定义语言,采用预设的反射机制模型,对该规则定义语言的域数据进行数据获取、验证和数据加工等数据处理,将处理后的得到的第一数据结果存储到所述域数据存储栈内。所述应用程序生成装置采用预设的语法解析模型,对该规则定义语言的规则业务逻辑规则进行语法解析,生成逻辑计算模型,将存储在所述域数据存储栈内的第一数据结果带入到所述逻辑计算模型中,计算出第二数据结果,并将该第二数据结果进行缓存。所述应用程序生成装置根据预设的构件解析模型,将缓存的第二数据结果和所述规则定义语言的构件标识解析成可用于表单页面显示的代码。再后,所述应用程序生成装置将所述表单页面显示的代码写入到所述表单域空间内所述模板的对应位置处。所述应用程序生成装置读取表单域空间中下一个规则定义语言,重复上述步骤,直至表单域空间中所有规则定义语言均最后解析为表单页面显示的代码,并写入到所述表单域空间内所述模板的对应位置处为止。最后,所述应用程序生成装置将所述表单域空间内的模板,即完整的应用程序代码,发送至服务器,以使所述服务器执行所述模板。本领域普通技术人员可以理解实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。如图3所示,本发明提供的应用程序生成装置实施例一的结构示意图。如图所示,所述应用程序生成装置包括获取模块I和解析模块2。其中,所述获取模块I用于获取至少一个规则定义语言。所述解析模块2用于依次解析各规则定义语言,生成对应的程序代码。具体地,本实施例中所述应用程序生成装置可实现上述方法实施例中的步骤。本实施中所述获取模块和所述解析模块的具体实现原理可参见上述方法实施例中所公开的相关内容,此处不再赘述。采用实施例所述的应用程序生成装置,开发人员仅需聚焦于业务流程分析,然后根据分析结果组建规则定义语言以构成业务流程,最后通过应用程序生成装置解析生成程序代码,整个应用程序开发的过程,无需编写程序代码,简化了业务模块软件开发过程,便于软件开发人员对业务平台进行及时的动态更新,即便是软件开发经验较少的开发人员,也能快速完成。进一步地,如图4所示,上述实施例一所述的应用程序生成装置,还包括发送模块3。所述发送模块用于将生成的所有程序代码发送至服务器,以使所述服务器执行所述程序代码。再进一步地,如图4所示,上述各实施例所述的应用程序生成装置,还包括构建模块4和存储模块5。其中所述构建模块用于构建所述规则定义语言。所述存储模块用于存储已构建的所述规则定义语言。具体地,本发明各实施例中所述的规则定义语言包括域数据、业务逻辑规则和构件标识。如图5所示,所述解析模块2包括数据处理单元201、解析单元202、计算单元203和生成单元204。其中,所述数据处理单元201用于根据预设的反射机制模型,对规则定义语言的域数据进行数据处理,获得处理后的第一数据结果。所述解析单元202用于根据预设的语法解析模型,对所述规则定义语言的业务逻辑规则进行解析,生成逻辑计算模型。所述计算单元203用于将所述第一数据结果作为所述逻辑计算模型的参数,根据所述逻辑计算模型,计算出第二数据结果。所述生成单元204用于根据所述第二数据结果及所述规则定义语言的构件标识,生成程序代码。如图6所示,本发明提供的业务描述和解析引擎实施例结构示意图。本实施例包括规则定义语言生成引擎I和规则解析引擎2。其中,所述规则定义语言生成引擎I用于依据对表单元素的分析和抽象按照预设规则生成规则定义语言。所述规则解析引擎2用于对接收到的规则定义语言进行规则解析。本发明设计了一种基于规则专有的页面表单定义业务描述和解析引擎,提供以业务驱动的开发模式下,开发人员开发业务模块时,不需要考虑应用系统架构、框架如何构建。开发人员聚焦于业务应用于业务流程分析,设计出对应的数据模型,一般简单的应用即可完成。对于复杂业务,可采用脚本方式提供功能扩展。引入模型驱动(MDA)的设计思想,通过业务建模实现应用的自动或半自动生成。其中,上述实施例中,所述规则定义语言包括域数据、业务逻辑规则或构件标识。进一步地,上述实施例中,所述规则解析引擎包括规则解析处理模块和数据处理模块。其中,所述规则解析处理模块用于解析规则定义语言并将解析后得出的数据输出。所述数据处理模块用于接收所述规则解析处理模块输出的数据,对接收的数据进行逻辑和/或计算处理并将处理结果进行存储。如图7所示,本发明提供的业务描述和解析方法实施例的流程图。本实施例包括步骤SI、依据对业务表单各元素的分析和抽象结果按照预设规则生成规则定义语言;步骤S2、对接收到的规则定义语言进行规则解析。采用本实施例所述方法易实现且业务信息易维护。进一步地,为完善生成的规则定义语言,本实施例基于上述实施例一,上述实施例一种所述的依据对表单元素的分析和抽象按照预设规则生成规则定义语言,具体实现如下分析业务表单元素,将分析出的关联关系按照预设规则生成为规则定义语言的域数据;分析业务表单元素,将分析出的业务内容信息按照预设规则生成为规则定义语言的业务逻辑规则;抽象业务表单元素,将抽象出的信息按照预设规则生成为规则定义语言的构建标识。进一步地,结合表单页面开发实例,对上述各实施例中,所述的对接收到的规则定义语言进行规则解析进行详细说明。如图8所示的流程图,具体实现如下首先,规则引擎创建一个新的实例,为该实例创建域数据存储栈,该存储空间的访问权限仅为本实例,并创建表单域空间。然后,加载模板,如果存在自定义模板加载,将其至表单域空间,否则加载默认模板至表单域空间。随后,读取表单域中的一个定义项,包括业务逻辑规则定义和规则中包含的全部域数据。对域数据采用反射机制进行数据获取、验证和数据加工,将最终结果存入域数据存储栈内。对逻辑表达式进行语法解析,在解析过程中,将加工好的域数据值,代入相应逻辑运算和算术运算,将结果进行缓存。随后,定义项中如果存在构件标识,引擎将启用构件解析器,将上述步骤的缓存结果和构件标识动态解析成,可以用于表单页面显示的代码。再后,将上述步骤的解析出的代码写入对应的表单域空间,即将代码写入所述表单域空间中加载的自定义模板或默认模板的指定位置。继续读取表单与中的下一定义向,直至遍历所有表单域中的定义项。最后,引擎将表单域空间的数据,返回给服务器程序,通过服务器将最终表单展现给客户端。该步骤内容图8中未示出。上述各实施例中所述解析域数据,具体实现如下对域数据采用反射机制进行数据获取、验证和数据加工,将最终结果存入域数据存储栈内;并在解析过程中,将加工好的域数据值,代入相应逻辑运算和算术运算,并将结果进行缓存。综上所述,本发明提供了契约式的接口,对应用系统可复用功能,将业务信息封装为标准化功能构件,能够直接在规则描述语言中采用,或加以定制调整快速满足不同的用户需求,另一方面屏蔽了底层系统的差异,提供一个成熟稳定的运行环境。规则定义语言通过对表单的元素进行分析与抽象,设计了一种基于WEB页面专有的规则定义语言。规则定义语言中包含动态逻辑表达、嵌套、级联、模板等关系定义。针对规则定义语言,本发明设计了一套规则解析引擎,能自动完成对规则定义语言的处理,实现实际业务中所要求逻辑功能和数据安全校验。对于规则定义语言,引擎中采用动态脚本框架来支持解析处理。在运行时寻找、读取和执行规则定义语言,利用动态功能在运行时,采用反射机制进行数据验证、数据加工,从而实现应用程序的逻辑功能。最后应说明的是以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。权利要求1.一种应用程序生成方法,其特征在于,包括获取至少一个规则定义语言;依次解析各规则定义语言,生成对应的程序代码。2.根据权利要求I所述的应用程序生成方法,其特征在于,所述依次解析各规则定义语言,生成对应的程序代码之后,还包括将生成的所有程序代码发送至服务器,以使所述服务器执行所述程序代码。3.根据权利要求I或2所述应用程序生成方法,其特征在于,还包括构建所述规则定义语言;存储已构建的所述规则定义语言。4.根据权利要求I所述应用程序生成方法,其特征在于,所述规则定义语言包括域数据、业务逻辑规则和构件标识。5.根据权利要求4所述应用程序生成方法,其特征在于,所述依次解析各规则定义语言,生成对应的程序代码,包括根据预设的反射机制模型,对规则定义语言的域数据进行数据处理,获得处理后的第一数据结果;根据预设的语法解析模型,对所述规则定义语言的业务逻辑规则进行解析,生成逻辑计算模型;将所述第一数据结果作为所述逻辑计算模型的参数,根据所述逻辑计算模型,计算出第二数据结果;根据所述第二数据结果及所述规则定义语言的构件标识,采用预设的构件解析模型生成对应的程序代码;重复上述各步骤,直至所有规则定义语言均生成了对应的程序代码为止。6.一种应用程序生成装置,其特征在于,包括获取模块,用于获取至少一个规则定义语言;解析模块,用于依次解析各规则定义语言,生成对应的程序代码。7.根据权利要求6所述的应用程序生成装置,其特征在于,还包括发送模块,用于将生成的所有程序代码发送至服务器,以使所述服务器执行所述程序代码。8.根据权利要求6或7所述的应用程序生成装置,其特征在于,还包括构建模块,用于构建所述规则定义语言;存储模块,用于存储已构建的所述规则定义语言。9.根据权利要求5或6所述的应用程序生成装置,其特征在于,所述规则定义语言包括域数据、业务逻辑规则和构件标识;所述解析模块包括数据处理单元,用于根据预设的反射机制模型,对规则定义语言的域数据进行数据处理,获得处理后的第一数据结果;解析单元,用于根据预设的语法解析模型,对所述规则定义语言的业务逻辑规则进行解析,生成逻辑计算模型;计算单元,用于将所述第一数据结果作为所述逻辑计算模型的参数,根据所述逻辑计算模型,计算出第二数据结果;生成单元,用于根据所述第二数据结果及所述规则定义语言的构件标识,生成程序代码。全文摘要本发明提供一种应用程序生成方法及装置。其中,所述应用程序生成方法包括获取至少一个规则定义语言;依次解析各规则定义语言,生成对应的程序代码。本发明具有易维护、可视化、支持构件级扩展的特点,适用于电力行业。采用本发明提供的技术方案,开发人员仅需聚焦于业务流程分析,然后根据分析结果组建规则定义语言以构成业务流程,最后通过应用程序生成装置解析生成程序代码,整个应用程序开发的过程,无需编写程序代码,简化了业务模块软件开发过程,便于软件开发人员对业务平台进行及时的动态更新,即便是软件开发经验较少的开发人员,也能快速完成。文档编号G06F9/44GK102929646SQ20121049528公开日2013年2月13日申请日期2012年11月28日优先权日2011年12月9日发明者付萍萍,陈雪文,马勇,晏欢,陈燕青申请人:江西省电力公司信息通信中心