查询方法、系统、装置和计算机可读介质与流程

文档序号:22124819发布日期:2020-09-04 17:05阅读:106来源:国知局
查询方法、系统、装置和计算机可读介质与流程

本发明涉及计算机技术领域,特别涉及一种查询方法、系统、装置和计算机可读介质。



背景技术:

saas服务模式与传统许可模式软件有很大的不同,目前saas的架构体系从将软件交付给多个承租者转变为给多个承租者提供web解决方案。多租户的主要优点是具有成本高效性。在多个承租者之间共享软件、硬件、应用程序开发和维护成本可以降低每个承租者的成本。而且,在承租者之间共享应用程序的实例可以提供其他好处,例如,当升级应用程序时,所有承租者可以同时升级。

如上背景,也将带来很多问题。多个承租者对于软件的需求既有相同之处,也有不同之处。然而,如何通过统一的web解决方案满足所有承租者的要求且能最大限度地节约成本,是一个值得业界研究的问题。例如,如何向多个承租者提供一个统一的查询系统,在该查询系统中,不同承租者的检索界面内容不同,需要检索的数据源不同,检索方式也不同。



技术实现要素:

鉴于上述问题,本发明的目的在于提供一个统一的查询系统,满足多个承租者不同的检索需求。

根据本发明的第一方面,提供一种查询系统,包括:ui组件模块和组件参照模块,

所述ui组件模块包括:

查询引擎,用于根据用户标识检索应用元数据,获得所述用户标识对应的个性化界面,所述应用元数据存储所述用户标识和所述个性化界面的对应关系;

模板单元,所述模板单元包括多个个性化界面,所述个性化界面包括多个控件,所述多个控件中的至少一个控件发送属性值查询请求,并根据返回的属性值数据组织所述多个控件中的至少一个控件的属性值;

组件参照模块,包括:

服务路由单元,所述服务路由单元根据用户标识检索服务元数据,并将检索结果和所述属性值查询请求转给服务执行单元;

服务执行单元,所述服务执行单元根据所述属性值查询请求和所述检索结果调用相应的数据服务,以获得所述属性值数据。

可选地,所述查询系统还包括:界面加载模块,用于加载所述个性化界面,所述个性化界面被加载时,所述个性化界面的多个控件中的至少一个控件发送属性值查询请求。

可选地,所述组件参照模块还包括身份校验单元,所述身份校验单元用于校验所述用户标识对应的用户身份。

可选地,所述组件参照模块还包括缓存单元,所述缓存单元用于缓存所述属性值数据。

可选地,所述服务执行单元优先检索缓存,以获取所述属性值数据,当缓存中不包含所述属性值数据时,调用相应的数据服务。

可选地,所述组件参照模块还包括数据权限处理单元,所述数据权限处理单元用于根据所述用户标识确定所述用户标识对应的数据权限。

可选地,所述服务执行单元根据所述用户标识对应的数据权限控制返回的所述属性值数据。

可选地,所述服务执行单元根据所述属性值查询请求和所述用户标识对应的数据权限生成查询sql,所述用户标识对应的数据权限转换为所述查询sql的where条件。

可选地,所述查询系统还包括:标准模板和界面定制模块,所述界面定制模块用于根据所述标准模板定制所述个性化界面,并将所述个性化界面和所述用户标识之间的关联关系添加到所述应用元数据中。

根据本发明实施例的第二方面,提供一种查询方法,包括:

接收应用请求,所述应用请求中包含用户标识;

基于所述用户标识检索应用元数据,获得所述用户标识对应的个性化界面,所述应用元数据存储所述用户标识和所述个性化界面的对应关系,所述个性化界面包含多个控件;

根据所述用户标识检索服务元数据,获得检索结果;

根据所述检索结果和属性值查询请求调用相应的数据服务,以执行所述属性值查询请求,并得到相应的属性值;

将所述相应的属性值添加到所述多个控件中的至少一个控件的属性值中。

可选地,所述查询方法还包括:加载所述个性化界面,所述个性化界面被加载时,触发所述个性化界面的多个控件中的至少一个控件发送属性值查询请求。

可选地,所述查询方法还包括:校验所述用户标识对应的用户身份。

可选地,所述查询方法还包括:缓存所述属性值数据。

可选地,所述查询方法还包括:优先从缓存中获取所述属性值数据,当缓存中不包含所述属性值数据时,调用相应的数据服务。

可选地,所述查询方法还包括:根据所述用户标识确定所述用户标识对应的数据权限。

可选地,所述查询方法还包括:根据所述用户标识对应的数据权限控制返回给所述多个控件的至少一个控件的所述属性值数据。

可选地,所述根据所述用户标识对应的数据权限控制返回给所述多个控件的至少一个控件的所述属性值数据包括:根据所述属性值查询请求和所述用户标识对应的数据权限生成查询sql,所述用户标识对应的数据权限转换为所述查询sql的where条件。

可选地,所述查询方法还包括:根据标准模板定制所述个性化界面,并将所述个性化界面和所述用户标识之间的关联关系添加到所述应用元数据中。

根据本发明实施例的第三方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令被执行时实现上述任一项所述的查询方法。

根据本发明实施例的第四方面,提供一种查询装置,包括:

存储器,用于存储计算机指令;

处理器,耦合到所述存储器,所述处理器被配置为基于所述存储器存储的计算机指令执行实现上述任一项所述的查询方法。

本发明一实施例具有以下优点或有益效果:采用应用元数据管理个性化界面和用户标识之间的对应关系,采用服务元数据管理数据服务和用户标识之间的对应关系,从而实现系统界面和底层架构的扩展功能。而且采用服务元数据管理数据服务,当增加一个新的承租者时,为该承租者搭建服务不会影响其他承租者正在运行的业务。

进一步地,根据标准模板定制个性化界面,标准模板上包含多个控件,可通过拖拽形式定制个性化界面,简便定制过程,从而有利于系统界面的扩展。

附图说明

通过以下参照附图对本发明实施例的表示,本发明的上述以及其他目的、特征和优点将更为清楚,在附图中:

图1示出了本发明一个实施例的查询系统的结构示意图;

图2示出了本发明另一个实施例的查询系统的结构示意图;

图3示出了本发明一个实施例的制作及显示个性化界面的流程示意图;

图4示出了本发明一个实施例的查询方法的流程图;

图5示出了本发明另一个实施例的查询方法的流程图;

图6示出了本发明一个实施例的查询装置的结构图。

具体实施方式

以下将参照附图更详细地表示本发明的各种实施例。在各个附图中,相同的元件采用相同或类似的附图标记来表示。为了清楚起见,附图中的各个部分没有按比例绘制。此外,在图中可能未示出某些公知的部分。

图1示出了本发明一个实施例的查询系统的结构示意图。如图所示,该查询系统包括ui组件模块100和组件参照模块200。

ui组件模块100主要包含和ui相关的功能模块。ui组件模块100进一步划分为查询引擎101、模板单元102和应用元数据103。

应用元数据103表示用户标识和个性化界面的对应关系。用户标识唯一标识一个承租者。如背景技术中所述,承租者会共享应用程序的实例。但是本发明提供的查询系统,针对每个承租者,需提供不同的查询界面和功能,因此需要区分不同的承租者。个性化界面是为每个承租者建立的个性化的查询界面。应用元数据103一般采用结构化的数据库管理系统进行存储和管理,例如mysql、oracle。

针对一个承租者的用户请求,查询引擎101从用户请求中解析获得用户标识,根据用户标识检索应用元数据,获得用户标识对应的个性化界面的名称,进而从个性化界面的存储库中获得该个性化界面。多个个性化界面例如存储到如图所示的模板单元102的文件库中。

模板单元102用于存储多个个性化界面,每个个性化界面包括多个控件。这里控件是指对界面上的组件的封装。界面上的组件包括按钮、多选或单选列表框、编辑框、某个对话框中的静态文本等。控件中的属性可对应于组件的属性,控件中的方法可设置为针对组件的属性的读取、写入等操作的方法,从而能通过控件管理组件。这些组件有一部分属性的属性值是静态的,例如,按钮,也有一部分属性的属性值是动态的,例如,用于表示商品品类的下拉列表,电商系统中的商品品类不断变化,因此下拉列表中的商品品类数据必须实时从数据库中获取,因此具有动态属性值的组件的控件会提供获取属性值的方法。该方法提交一个属性值查询请求,并基于返回的属性值数据组织该控件中的组件的属性值。

组件参照模块200主要包含和业务逻辑相关的功能模块。组件参考模块200进一步包括服务路由单元201和服务执行单元202。

服务路由单元201根据接收属性值查询请求,根据用户标识检索服务元数据210,并将检索结果和属性值查询请求转给服务执行单元。其中,用户标识来自ui组件模块100,例如当ui组件模块100调用组件参照模块200中的接口时,将用户标识一并作为输入参数传送。服务元数据201表示数据服务和用户标识之间的对应关系。

服务执行单元202根据属性值查询请求和服务元数据的检索结果调用相应的数据服务,以获得属性值数据。如图所示,主数据服务301、库存服务303和组织服务302分别表示一个数据服务。主数据服务301管理包括品牌、品类等数据请求。库存服务303管理库存商品种类、仓储类别等数据请求。组织服务302管理部门数据等数据请求。多个数据服务可部署在分布式系统上,例如,针对a承租者的数据服务部署在服务器1上,针对b承租者的服务执行单元部署在服务器2上。

在本发明实施例中,采用应用元数据管理个性化界面和用户标识之间的对应关系,采用服务元数据管理数据服务和用户标识之间的对应关系,从而实现系统界面和底层架构的扩展功能。而且采用服务元数据管理数据服务,当为一个新的承租搭建数据服务时,不会影响其他承租者正在运行的业务。

在一个可选的实施例中,上述查询系统还包括:界面加载模块(图上未示出),用于加载个性化界面,当个性化界面被加载时,个性化界面中的多个控件中的至少一个控件发送属性值查询请求和用户标识。

图2示出了本发明另一个实施例的查询系统的结构示意图。图1中的服务元数据210在图上未示出。和图1所示的实施例的不同之处在于,组件参照模块200进一步包含身份校验单元203、缓存单元204和数据权限处理单元205。

身份校验模块203用于采用一定的手段完成对用户身份的校验。例如,根据传送过来的用户标识校验用户身份确定是否为本系统内的承租者,或者承租者的承租身份是否还在有效期内。为了确保承租者的身份,还可以采用非对称加密算法加密和解密用户标识。在可选的示例中,身份校验模块203采用外部的一个鉴权平台300实现对承租者身份的校验。

缓存单元204用于缓存属性值数据。服务执行单元202将获得的属性值数据存储到缓存中,当下一次执行属性值查询请求时,优先检索缓存,当缓存中不存在相应的属性值数据时,再调用相应的数据服务以获得属性值数据。可选地,本实施例的查询系统还包括同步单元(图上未示出),同步单元用于定时更新缓存中的数据。

数据权限处理单元205用于根据用户标识确定承租者对应的数据权限。例如,在为承租者定制应用时,指定承租者有权限访问的数据服务,更进一步可以指定承租者有权限使用的数据记录。服务执行单元202根据用户标识对应的数据权限控制返回给控件的属性值数据。在一个示例中,服务执行单元202在生成查询sql时,将对应的数据权限转化为where条件。举例来说,订单上有经销商(custom),存货(inv)等字段。现在需要限制某个用户仅能查询特定的经销商和特定的存货订单。承租者a,其有权限的经销商为c1,c2,c3,其有权限的存货为i1,i2,i3,那么当承租者a对订单执行查询操作时,不论其设置的条件是什么,最终的查询sql都必须附加如下的sql语句:

(customisnullorcustomin('c1','c2','c3'))and(invisnullorcustomin('i1','i2','i3))。

通过上述实施例可知,本发明通过查询引擎,提供配置方式,满足多个承租者的个性化查询服务的要求。基于元数据的底层架构,能够确保向实现承租者提供个性化服务的基础上不影响到其他承租者的实例。可以理解,多个承租者共享一个查询实例,当升级应用程序时,多个承租者同时升级。

图3示出了本发明一个实施例的制作及显示个性化界面的流程示意图。

参考图3,个性化界面的制作和显示过程包括三个阶段:设计阶段301、配置阶段302和执行阶段303。在设计阶段包括预制元数据310。预制元数据310包括定义和编码各种控件、组件,根据控件和/组件制作标准模板,设计应用元数据和服务元数据的数据结构,等等。配置阶段303针对一个新的承租者配置界面和后台运行的服务,从而打通前端和后端的业务流程。具体地,先根据承租者的需求创建一个个性化界面(即步骤320),维护界面属性(即步骤330),将完成后的个性化界面指定给该承租者(即步骤350),并在应用元数据中增加该承租者和该个性化界面的对应关系(即步骤350)。在执行阶段303中,首先承租者提交浏览请求(即步骤360)、查询系统接收到请求后,调用查询引擎(即步骤370),查询引擎先判断是否存在个性化界面(即步骤380),如果不存在个性化界面,则加载标准模板(即步骤390),如果存在个性化界面,则加载加载个性化界面(即步骤500)。为了方便制作个性化界面,优选地,显示标准模板,采用拖拽开发组件和控件,实现快速开发应用,提高开发效率、并实现统一化样式、功能组件化,减少后期维护成本。

综上,上述查询系统还可以包括界面定制模块,用于根据标准模板定制个性化界面,并个性化界面和用户标识之间的关联关系添加到应用元数据中。

参考图4,图4示出了将本发明实施例的查询系统应用于财务系统401和基础数据系统402的结构示意图。参考图4,财务系统401的查询界面中需要加载创建人信息,财务系统只是存储了id,创建人信息由基础数据领域服务403和es搜索服务404提供,因此需要应用参照组件模块200将数据请求转发给具体服务。具体地,应用参照组件模块200先查询缓存,如果缓存中不存在相应的数据,则转给具体的数据服务,由其负责取回数据,并更新到缓存中。同理供应商基础信息也需要通过参照组件模块200,转发到具体服务,由基础数据领域服务403和es搜索服务404提供诸如供应商编码、名称等供应商基础信息。另外,财务系统401中的报销单界面4011和物料界面4021是基于本发明实施例得到的个性化界面。

图5示出了本发明一个实施例的查询方法的流程图。具体包括以下步骤。

在步骤s501中,接收应用请求,应用请求中包含用户标识。

在步骤s502中,基于用户标识检索应用元数据,获得用户标识对应的个性化界面。

在步骤s503中,根据用户标识检索服务元数据,获得检索结果。

在步骤s504中,根据检索结果和属性值查询请求调用相应的数据服务,以执行属性值查询请求,并得到相应的属性值。

在步骤s505中,将相应的属性值添加到多个控件中的至少一个控件的属性值中。

在本实施例的查询方法中,基于应用元数据管理个性化界面,基于服务元数据管理数据服务,从而实现系统界面和底层架构的扩展功能。当某个应用请求一个个性化界面时,先根据用户标识找到对应的个性化界面,并加载该个性化界面,针对该个性化界面中包含的多个控件的属性值,发送属性值查询请求,根据用户标识检索服务元数据,由对应的数据服务执行属性查询请求,并将返回的属性值数据返回给控件,从而完成了个性化界面的加载。可以理解,如果在控件设计时包含属性值检索方法,则可以在个性化界面被加载时,触发控件发送属性值查询请求,并返回属性值数据到控件,用于填写控件的属性值。一个典型的例子就是供应商列表,在界面加载时,从供应商基础数据中获取列表中的供应商数据。

在可选的实施例中,上述查询方法还包括采用一定的手段完成对用户身份的校验。这里的用户对应于上述的承租者。例如,根据传送过来的用户标识确定是否为本系统内的承租者,或者承租者的承租身份是否还在有效期内。为了确保承租者的身份,还可以采用非对称加密算法加密和解密用户标识。

在可选的实施例中,对于从各个数据服务得到的属性值数据,保存在缓存中,并采用同步进程实时更新。这样,后续本应用或其他应用需要使用同样的属性值数据时,可优先从缓存中读取。

在可选的实施例中,设置数据权限,对于用户请求,检查用户能够使用的数据范围。一个方便的做法是将数据权限转化为查询sql中的where条件。

图6示出了本发明一个实施例的查询装置的结构图。图6示出的设备仅仅是一个示例,不应对本发明实施例的功能和使用范围构成任何限制。

参考图6,该查询装置60包括通过总线连接的处理器601、存储器602和输入输出设备603。存储器602包括只读存储器(rom)和随机访问存储器(ram),存储器602内存储有执行系统功能所需的各种计算机指令和数据,处理器601从存储器602中读取各种计算机指令以执行各种适当的动作和处理。输入输出设备包括键盘、鼠标等的输入部分5;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分;包括硬盘等的存储部分;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分。存储器602还存储有以下的计算机指令以完成本发明实施例的查询方法规定的操作:接收应用请求,所述应用请求中包含用户标识;基于所述用户标识检索应用元数据,获得所述用户标识对应的个性化界面,所述应用元数据存储所述用户标识和所述个性化界面的对应关系,所述个性化界面包含多个控件;根据所述用户标识检索服务元数据,获得检索结果;根据所述检索结果和属性值查询请求调用相应的数据服务,以执行所述属性值查询请求,并得到相应的属性值;将所述相应的属性值添加到所述多个控件中的至少一个控件的属性值中。

相应地,本发明实施例提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机指令,所述计算机指令被执行时实现上述咨询量预测方法所规定的操作。

附图中的流程图、框图图示了本发明实施例的系统、方法、装置的可能的体系框架、功能和操作,流程图和框图上的方框可以代表一个模块、程序段或仅仅是一段代码,所述模块、程序段和代码都是用来实现规定逻辑功能的可执行指令。也应当注意,所述实现规定逻辑功能的可执行指令可以重新组合,从而生成新的模块和程序段。因此附图的方框以及方框顺序只是用来更好的图示实施例的过程和步骤,而不应以此作为对发明本身的限制。

系统的各个模块或单元可以通过硬件、固件或软件实现。软件例如包括采用java、c/c++/c#、sql等各种编程语言形成的编码程序。虽然在方法以及方法图例中给出本发明实施例的步骤以及步骤的顺序,但是所述步骤实现规定的逻辑功能的可执行指令可以重新组合,从而生成新的步骤。所述步骤的顺序也不应该仅仅局限于所述方法以及方法图例中的步骤顺序,可以根据功能的需要随时进行调整。例如将其中的某些步骤并行或按照相反顺序执行。

应当说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

依照本发明的实施例如上文所述,这些实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施例。显然,根据以上表示,可作很多的修改和变化。本说明书选取并具体表示这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地利用本发明以及在本发明基础上的修改使用。本发明仅受权利要求书及其全部范围和等效物的限制。

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