一种快速数据服务方法及系统与流程

文档序号:11864725阅读:260来源:国知局
一种快速数据服务方法及系统与流程
本发明属于计算机领域和数据库领域,尤其涉及一种基于元数据的快速数据服务方法及系统
背景技术
:在现有的数据管理领域中,通常需要提供数据维护、流程审批、复杂数据计算等功能。其中,数据维护工作占到很大一部分比例。而且,在后期的数据维护过程中,由于需求的变化,导致经常出现字段增减、显示改变、增加新数据源维护等要求。尤其是在业务相对不稳定的行业中,这种情况比较普遍,导致系统可扩展性差、维护困难。现有技术中,针对上述问题有两种解决方案:第一种是在数据系统的建设过程中多预留些字段作为备用,但是这种处理方法用于预留字段的个数终究是有限的,不能应付大批量的字段变化,而且存在数据冗余的情况,浪费资源,在使用过程中对于预留字段的含义显示也不直观。第二种是依据新的需求对数据系统进行再次定制,目前大部分的情况都会使用这种方法,但是只有对未进入维护期的数据系统,定制才会相对简单,而对于已经进入维护期的系统而言,定制会带来实际操作困难、周期长、影响原有系统稳定等问题;如果是新开发的系统,多个定制就会形成一个主系统,多个辅助系统共享一个业务库的情况,大大增加系统维护的难度。总之,现有技术中的解决方案或者存在数据冗余和预留字段含义不清晰的问题,或者存在后续扩展性差和不易维护的问题。因此亟需一种新的数据管理的解决方案。技术实现要素:为了解决现有技术中的上述问题,本发明提出了一种快速数据服务方法和系统。本发明采用的技术方案如下:一种快速数据服务方法,该方法包括如下步骤:1)使用元数据定义数据服务系统中的各个业务对象,包括业务对象的表的元数据信息和数据明细元数据信息;2)当接收到用户发送的页面请求时,从该页面请求中获取请求操作的业务对象id和该用户所在的用户组信息;3)依据所述业务对象id,获取相应业务对象提供的功能和过滤条件;4)根据所述用户组信息,获取该用户组的功能和过滤条件;5)合并步骤3和4所获取的结果,从而获取该用户可用的功能和过滤条件;6)获取该业务对象对应的数据明细元数据信息;7)根据数据明细元数据信息,解析各个字段的默认值、选择范围、页面查询条件和排序;8)依据步骤5-7获取的结果,构建数据查询语句,在相应数据库中执行数据查询,从而获取该业务对象对应的数据。9)根据该业务对象的元数据信息,以及步骤5-8获得的结果和数据,解析生成表格、表单、按钮和查询页面。优选的,还包括通过菜单管理、角色管理、用户组管理和数据权限管理来建立权限体系;其中,所述菜单管理包括业务群、具体业务和模块三级菜单,模块中可配置具体使用的业务对象,关联配置好的元数据,从而形成菜单树,可在该菜单树的基础上构建角色个性菜单树;所述角色管理可给不同的用户分配具有不同权限的角色,所述角色可以自定义;所述用户组管理包括静态组和动态组两种模式,所述静态组是通过系统提供的添加方法,将系统用户添加到用户组,所述动态组是通过配置查询条件的方式,从系统用户中动态的圈定用户,加入用户组;所述数据权限管理是将角色与数据权限进行关联,所述数据权限包含表的权限和字段权限,其中表的权限包含对表的增加、删除、修改、查询和行过滤权限,字段权限包含对该表的字段是否有访问权限。优选的,所述解析生成表格包括将表格每一列的元数据逐一添加到一个元数据的对象数组中,一个字段对应一个对象,基于该对象数组和获取的显示数据生成表格。优选的,所述解析生成表单包括以下步骤:a)打开表单页面的对话框,并生成一个空的表格;b)对于表单的每个字段,依据其显示风格生成对应的页面控件;c)将元数据中关于页面相关的定义转换成页面元素;d)获取选择范围,即对于有选择范围的字段,依据选择范围索引加载对应的选择范围。e)加载字段间联动的触发事件。f)获取各字段的默认值并进行页面填充。本发明还提供了一种快速数据服务系统,该系统包括:元数据配置模块,用于使用元数据定义数据服务系统中的各个业务对象,包括业务对象的表的元数据信息和数据明细元数据信息;元数据解析模块,用于当接收到用户发送的页面请求时,从该页面请求中获取请求操作的业务对象id和该用户所在的用户组信息;依据所述业务对象id,获取相应业务对象提供的功能和过滤条件;根据所述用户组信息,获取该用户组的功能和过滤条件;合并获取的结果,从而获取该用户可用的功能和过滤条件;根据数据明细元数据信息,解析各个字段的默认值、选择范围、页面查询条件和排序;构建数据查询语句,在相应数据库中执行数据查询,从而获取该业务对象对应的数据。页面展示解析模块,用于根据该业务对象的元数据信息,以及元数据解析模块获得的结果和数据,解析生成表格、表单、按钮和查询页面。优选的,该系统还包括权限管理模块,该权限管理模块包括菜单管理模块、角色管理模块、用户组管理模块和数据权限管理模块,其中,所述菜单管理模块用于管理业务群、具体业务和模块三级菜单,模块中可配置具体使用的业务对象,关联配置好的元数据,从而形成菜单树,可在该菜单树的基础上构建角色个性菜单树;所述角色管理模块可给不同的用户分配具有不同权限的角色,所述角色可以自定义;所述用户组管理模块包括静态组和动态组两种模式,所述静态组是通过系统提供的添加方法,将系统用户添加到用户组,所述动态组是通过配置查询条件的方式,从系统用户中动态的圈定用户,加入用户组;所述数据权限管理模块用于将角色与数据权限进行关联,所述数据权限包含表的权限和字段权限,其中表的权限包含对表的增加、删除、修改、查询和行过滤权限,字段权限包含对该表的字段是否有访问权限。本发明的有益效果包括:通过页面配置的方式,即可快速的构建数据查询和维护页面,并可以分权限的进行查询和维护。由于其配置都在页面上进行,具有良好的可维护性,而且当某个数据字段需要调整,也可通过配置进行修改,即时生效,解决了不易扩展的问题。同时,所有的数据查询和维护页面共享一个解析页面,解析页面调整后,所有的数据查询和维护页面都会相应的变化,也给系统维护带来了方便。【附图说明】此处所说明的附图是用来提供对本发明的进一步理解,构成本申请的一部分,但并不构成对本发明的不当限定,在附图中:图1是本发明的元数据解析过程;图2是本发明权限模型关系图;图3是本发明系统整体逻辑框架图;图4是学生个人数据查看和维护平台与其他业务系统的关系图;图5是学生个人数据查看和维护平台模块结构图。【具体实施方式】下面将结合附图以及具体实施例来详细说明本发明,其中的示意性实施例以及说明仅用来解释本发明,但并不作为对本发明的限定。本发明在对数据服务系统的快速构建过程中,使用元数据作为数据服务的基础,通过配置元数据来定义数据对象。下面是使用元数据来定义业务对象的表的一个具体实施例:字段名称含义表英文名数据库中可访问的表名表显示名称该表在界面显示的业务对象名称是否有增加按钮该表是否提供增加功能是否有删除按钮该表是否提供删除功能是否有修改按钮该表是否提供修改功能是否使用该表是否继续使用过滤条件该表在后续过程中,所操作的数据范围的过滤条件针对数据明细,以下是使用元数据来定义业务对象的一个字段的数据明细的具体实施例:通过上述数据明细表中的元数据,本发明对一个字段做出了详细定义,其中:字段英文:需要和数据库中的字段名称一致。是否显示:如果为否,则在页面上不显示该字段。默认值:默认值采用二元组的方式进行定义,即<类型,值>,其中类型包括固定值、变量;固定值表示其值是个固定的字符,如一行说明或者是选择框中的一行;变量则表示其值为动态获取的,系统提供了常用的变量表达方式,可动态扩充,例如变量curdata表示当前日期,变量uid表示随机id,变量curuser表示登录用户的ID,等等。显示风格:使用本发明的界面插件元素进行定义,如文本则用textbox,下拉框则使用combobox表示,在页面解析过程中,将依据此进行解析。联动字段、联动方式和联动条件用于进行表单页面上字段之间的关联关系的表述,联动字段需要本业务对象内部的字段,联动方式有style、select方式,style表示风格联动,例如将联动字段设置为只读,select表示选择框联动,联动条件则表示成两个下拉框中内容的关联关系,当一个字段需要联动多个字段时,该字段的上述三个有关联动的字段都可用数组表示。是否提供查询:表示该字段是否提供查询功能。当一个业务对象中有至少一个字段提供查询功能,则在显示的页面上,提供通用查询功能。如果没有一个字段提供查询,则不提供查询功能;。是否主键:用于定义该字段是否是主键,同一业务对象中可以有多个字段都是主键,从而形成联合主键,当一个业务对象没有一个主键时,其提供的增删改功能将会进行提示。升序/降序:定义该字段是否参与页面表格排序,如果排序,使用的何种排序方法,可选的有升序、降序。选择范围:使用select的形式,定义该字段下拉框中的下拉内容,该下拉内容的取值固定为两个字段,id(即内容的标识符)和value(内容的具体值)。上述实施例通过两个表完成了元数据的配置,当需要对业务对象进行增减时,就可以通过为该业务对象配置元数据的方式进行增减。在配置的元数据的基础上,本发明的数据服务可以对元数据进行解析,从而获取并显示相应的业务对象。具体地,在元数据配置完成后,当某个用户发送一个页面的显示请求过来时,需要在对元数据进行解析的基础上,获取具体的业务数据,并返回相应的页面。基本的过程包括:1)从页面的请求中获取请求操作的业务对象的id,显示的页面数和当前页数,发出请求的用户所在的用户组信息;2)依据所述业务对象id,对业务对象进行解析;3)依据所述业务对象id,对业务对象的数据明细进行解析;4)依据上述解析结果,构建数据查询语句,在相应数据库中执行数据查询,从而获取业务对象对应的数据。参见附图1,其示出了具体的解析过程:其中上述步骤2包括:2.1)获取业务对象提供的功能和过滤条件,具体的,依据业务对象id,从业务对象对应的元数据配置表中,获取整体行过滤条件、业务对象的表名或视图名、业务对象提供的按钮名称、按钮方法;2.2)获取角色对业务对象的功能和过滤条件,具体的,根据角色的用户组信息,获取该用户组的行过滤条件,以及按钮名称、对应的按钮方法。2.3)将步骤2.1和2.2获取的结果进行合并,从而获取该用户可用的最终的行过滤条件、按钮名称及按钮方法。上述步骤3包括:3.1)获取明细配置信息。具体地,获取业务对象对应的数据明细元数据信息。3.2)根据明细配置信息,首先解析各个字段的默认值,如果默认值是固定值,则直接将值取出,如果默认值是变量,则调用对应的方法获取变量的具体值,并赋值给默认值字段。3.3)根据明细配置信息,解析各个字段的选择范围。对于有选择范围的字段,在获取选择范围的select语句后,将该语句放入数组中,并记录数组所在位置。在所有字段解析完毕后,批量执行数组中的select语句,获取各个字段的选择范围。后续页面可依据数组位置,获取下拉选择内容。3.4)根据明细配置信息,解析页面查询条件。具体地,如果有字段提供查询条件,则获取该字段的字段英文名和字段显示名称,并形成一个查询条件的二维数组。3.5)根据明细配置信息,解析排序。具体的,如果有字段提供排序,则依据该字段名和排序规则,形成排序依据。上述步骤4的具体步骤包括:4.1)依据解析获取的表或视图名、行过滤条件、排序依据,以及页面所需的页数和每页显示的行数形成查询语句,执行该查询语句后,取出数据;4.2)依据解析获取的数据明细,逐一获取表中数据项对应的数据,依据这些数据构建并返回页面。通过对元数据的解析,后台可向前台传递如下数据,前台基于如下数据构建页面:1)按钮信息,包括按钮名词、按钮图标、按钮对应的方法。2)数据明细信息,包括字段英文名、显示名称、是否显示、显示风格、排序、选择范围、是否可为空等。3)可用的查询条件数组,数组中每个元素包括提供查询的字段英文名和显示名称。4)页数和每页显示行数。5)数据信息,包括每个字段对应的具体数据,即页面上显示的数据信息。6)选择范围,选择范围包括多个索引,每个索引对应一个有选择范围的字段的数组,所述数组是上述步骤3.3所获取的数组。在完成解析过程后,前台根据解析结果使用页面来展示解析,页面展示解析过程主要是将后台转换后的数据,通过解析的方式展示在页面上。一套页面布局对应一个页面,所有的数据维护页面都访问的是同一个页面。页面中含有JS的解析函数。数据维护的布局主要包含表格、表单、按钮和查询页面,在页面展示解析过程中依次生成,具体步骤如下:1)解析生成表格。将后台生成的每一列的元数据逐一添加到一个元数据的对象数组中,一个字段对应一个对象;对于有下拉选择的字段,其对象中具有显示格式属性,该属性是相关的处理函数名,该处理函数主要是通过该字段的下拉选择范围索引找到选择范围,然后根据选择范围的值获取显示值。基于处理后的对象数组和从和后台获取的显示数据,调用表格构造接口,生成表格。另外,依据后台解析得到的当前页、每页显示行数、总行数调用相应的构造接口,生成表格翻页功能,并加载页面变化的触发事件函数。2)解析生成按钮基于后台获取的按钮名称、按钮图标和按钮对应的方法,调用按钮构造接口,生成按钮。3)解析生成查询页面查询页面主要有三个部分组成,一个是查询字段、一个是查询关系、最后是查询内容。查询字段是依据后台生成的可提供查询的字段列表填充的,默认是“不限”,即所有字段查询。查询关系是固定的,有“包含”、“等于”、“大于”、“小于”,默认使用“包含”;查询内容是文本框。查询含有两种查询方式,一种是查询字段为不限的时候,查询内容为一个整体,对所有的提供查询的字段按照查询内容进行检索;另一种是当查询字段为某一固定字段的时候,查询内容可用空格分开,同时使用多个查询内容进行检索。4)解析生成表单表单的显示主要依照后台对元数据的解析来完成,页面布局可采用固定的两栏式。包含以下步骤:4.1)打开表单页面的对话框,并生成一个空的表格;4.2)对于每个字段,依据其显示风格生成对应的页面控件;4.3)将元数据中关于页面相关的定义转换成页面元素,例如:如果是否必填为是的时候,将相应的页面元素设置成readonly=true。4.4)获取选择范围,即对于有选择范围的,依据选择范围索引加载对应的选择范围。4.5)加载联动的触发事件。4.6)获取各字段的默认值并进行页面填充。5)按钮功能对于按钮,本发明在页面上主要提供了增加、删除、修改三种按钮,三种按钮对应的操作同普通的操作方法一致,即从页面上获取数,通过主键进行数据操作。在上述解析过程中,本发明针对用户角色的用户组信息进行了解析,因此实际上还需要对各用户的权限进行分配管理。权限分配管理主要是将已配置的可访问的页面,按照权限体系进行分配,以便于分权限多人使用数据。参见附图2,权限体系分为菜单、角色、用户组和数据权限来进行控制。菜单管理:本发明的系统提供三级菜单。其中,第一级菜单是业务群,即多个相似业务的归类,第二级菜单是具体业务,即对应每个业务,第三级菜单是模块,即每个业务下的具体模块。模块中配置具体使用的业务对象,关联配置好的元数据。这样就形成了一颗菜单树。然后,在系统整体的菜单树上,可针对定义好的角色进行拖拽,形成该角色的个性菜单树,用于展示在对应的页面上。角色管理:角色管理是权限管理的核心,角色并不是系统自定义好的,而是可以自定义的,从而可以给不同的用户组分配具有不同权限的角色。通过角色与菜单、用户组和数据权限进行关联,实现权限分配。用户组管理:用户组管理中支持静态组和动态组两种模式。静态组是指通过系统提供的添加方法,从系统用户中添加;动态组则是通过配置查询条件的方式,从系统用户中动态的圈定用户。用户组通过与角色的关联实现权限控制。数据权限管理:数据权限管理是将角色与数据权限进行关联,数据权限包含表的权限和字段权限。其中表的权限包含对表的增加、删除、修改、查询和行过滤权限,字段权限包含对该表的字段是否有访问权限。设置后,在元数据解析过程中发挥作用。形成不同的角色依据权限看到不同的数据。在系统处理过程中,当用户登录后,首先需要选择用户组,当用户组选定后,其可能包含的角色所对应的菜单和数据权限可合并显示。参见附图3,其是结合了权限的系统整体逻辑框架图,如图所示,本发明系统的权限模式是相对固定的,但是具体的数据则是依据业务来确定的,如菜单树上有多少个菜单则是依据业务确定的。基于上述逻辑框架,可通过以下5个步骤来构建本发明的快速数据服务系统,1)确定业务数据,可以是数据库中已有的表或试图,也可以是新创建或导入的表;2)进行业务数据的元数据定义;3)为用户新建或选定一个角色;4)为用户新建或选定用户组和菜单;5)配置角色与用户组、菜单和数据权限的关系。具体实现案例:学生个人数据查看和维护平台在高校中,通常情况下,学生的相关数据存放在多个相关的业务系统中,缺乏一个统一的查看地方,同时多个业务系统也都在收集学生的个人信息,学生要在多个系统中维护,且数据存在大量的不一致问题。为解决此问题,需要建设学生个人数据查看和维护平台,同时,业务系统中的业务是不断增长的,学生的个人信息收集的内容也是不断调整的,这些情况对平台建设带来了可维护性和可扩展性的要求。使用本发明建设学生个人数据维护平台,很好的解决了平台建设过程中遇到的可维护性和可扩展性的需求。具体而言,数据分为两类,一类是需要学生填写,然后通过数据共享的方式共享给其他业务系统使用的数据;一类则是从不同业务系统中获取的,供学生统一查看的数据。平台与其他业务系统的关系图如附图4所示,其中,平台和其他业务系统之间通过数据共享工具进行数据的交换,交换是双向的,以学工系统为例,学工系统产生的评奖评优数据通过共享工具同步到平台中,平台内部有其相同的表结构的表,存放同步过来的数据,这部分数据仅限学生查询使用;同时,平台内部存放学生的自然信息,比如学生的身高、体重、联系电话等,这部分信息将通过数据共享平台交换到学工系统中。在平台内部,其模块结构图如图5所示,其中,数据库中分为三个部分,一是业务数据的元数据配置信息,二是权限配置数据,三是业务数据。在模块上分为四类,一是元数据配置管理,有数据对象的配置和数据对象明细配置;第二类是权限配置管理,主要有用户管理、用户组管理、角色管理、数据权限管理、菜单管理;第三类是数据查看类模块,依据数据分类分成学生数据查看、教务数据查看、一卡通数据查看、图书借阅查看,其模块数依据元数据和权限配置数据生成,其模块上只有查询部分,没有增删改按钮;第四类是信息填报类,主要有个人基本信息填报、校外获奖信息填报、联系方式填报、就业意向填报等。其中,个人基本信息填报中只能修改不能增加和删除、消息获奖信息则可以增删改查、联系方式的数据则是每个人默认的手机、宿舍、qq、邮箱,其中除宿舍外,只能修改,宿舍是只读信息。就业意向则是面向毕业生提供就业意向选择,多数信息属于带下拉框的选择框。在数据查看和维护页面中,学生的数据权限配置需要额外说明,即每个学生只能查看和维护自己的信息,其实现方式是在角色的数据权限上,通过定义行过滤条件实现。在行过滤条件中使用预先定义好的变量(登录ID),在元数据解析过程中,通过替换变量的方法,从而达到只取出该学生的数据。以上所述仅是本发明的较佳实施方式,故凡依本发明专利申请范围所述的构造、特征及原理所做的等效变化或修饰,均包括于本发明专利申请范围内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1