CN113342876A - SaaS环境下多租户CRM系统的数据模糊查询方法及装置 - Google Patents
SaaS环境下多租户CRM系统的数据模糊查询方法及装置 Download PDFInfo
- Publication number
- CN113342876A CN113342876A CN202110642264.7A CN202110642264A CN113342876A CN 113342876 A CN113342876 A CN 113342876A CN 202110642264 A CN202110642264 A CN 202110642264A CN 113342876 A CN113342876 A CN 113342876A
- Authority
- CN
- China
- Prior art keywords
- data
- tenant
- query
- entity
- search
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2468—Fuzzy queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Fuzzy Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Automation & Control Theory (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种SaaS环境下多租户CRM系统的数据模糊查询方法及装置,该方法包括:获得至少一个安全租户的数据查询请求;根据XOSL对象搜索语言规范对该查询请求进行语言解析,获得该安全租户的当前XOSL数据查询语言;基于与该安全租户预先自定义的实体元数据配置信息的交互,将该数据查询语言指定的搜索字段范围和搜索实体范围中的各私有字段标识符和各私有实体标识符,分别转换为可应用于底层全局查询引擎的各通用字段标识符和各通用实体标识符;通过底层全局查询引擎进行查询,获得通用型数据模糊查询结果;将该结果反向转换为该安全租户可识别的私有数据模糊查询结果并输出。该方法可支持多字段多实体的全局数据模糊查询。
Description
技术领域
本发明涉及计算机技术的数据处理领域,具体涉及一种SaaS环境下多租户CRM系统的数据模糊查询方法及装置。
背景技术
SaaS是Software as a Service(软件即服务)的简称,随着互联网技术的发展和应用软件的成熟,在21世纪开始兴起的一种创新的软件应用模式。它是一种通过Internet提供软件的模式,SaaS厂商将应用软件统一部署在自己的服务器上,使其客户可以根据自己实际需求,通过互联网向厂商定购所需的应用软件服务(已订购服务的客户可称为租户),并按定购的服务多少和时间长短向厂商支付费用,以及通过互联网获得厂商提供的服务。
客户关系管理也开始采用SaaS环境提供服务,SaaS厂商向众多租户提供一套完整的云端CRM服务系统,各个租户可通过网络访问该系统,直接使用各项CRM服务功能。但是,在有些业务场景下,有些租户还需要通过CRM服务系统提供的开放平台接口查询、获取自己在CRM系统中存储的数据,以利用该数据与自身的外部系统进行对接。而查询、获取已存储数据的方式,有些场景需要数据精确查询,而有些场景更需要数据模糊查询。
现有主流的SaaS厂商提供的系统,虽然对外提供数据获取接口,但其都是基于数据精确查询的方式。数据精确查询方式,是按照指定租户实体、指定关键字段这些指定条件进行精确定位的查询,若查询不到结果,则直接返回错误值。例如,精确查询某个属性值包含某个关键词的数据并获取。虽然数据精确查询方式查询结果较为精确,但是其查询条件严格,出现查询失败的概率较高。并且,其每次只能查询一个租户实体以及一个字段的相关数据,而无法实现多字段多实体的数据查询。此外,其每次查询获取的结果,也较为单一和固定。
而针对SaaS环境下多租户CRM系统的数据模糊查询方式,却缺少研究和发展。
发明内容
本发明提供一种SaaS环境下多租户CRM系统的数据模糊查询方法及装置,用以克服现有技术中数据精确查询的查询失败率高、查询结果单一、不支持多字段多实体数据查询以及现有数据模糊查询方式缺少研究等的缺陷,实现对SaaS环境下多租户CRM系统的数据进行全局数据模糊查询的效果。
本发明提供一种SaaS环境下多租户CRM系统的数据模糊查询方法,通过调用OpenAPI接口来执行,所述方法包括:
获取至少一个租户的数据查询请求;
基于API服务网关,对各所述租户进行身份验证和权限验证,获得至少一个安全租户的数据查询请求并确定其可访问数据范围;
根据预先获取的XOSL对象搜索语言规范对所述安全租户的数据查询请求进行XOSL语言解析,获得该安全租户的当前XOSL数据查询语言且同时指定搜索关键词、搜索字段范围和搜索实体范围;
基于与该安全租户预先自定义的实体元数据配置信息的交互,将所述当前XOSL数据查询语言指定的搜索字段范围和搜索实体范围中的各私有字段标识符和各私有实体标识符,分别转换为可应用于底层全局查询引擎的各通用字段标识符和各通用实体标识符;
通过所述底层全局查询引擎,基于各通用字段标识符和各通用实体标识符在CRM系统中该安全租户可访问数据范围内进行查询,获得相应的通用型数据模糊查询结果;
基于与该安全租户预先自定义的实体元数据配置信息的交互,将所述通用型数据模糊查询结果反向转换为该安全租户可识别的私有数据模糊查询结果并输出。
根据本发明提供的SaaS环境下多租户CRM系统的数据模糊查询方法,所述根据预先获取的XOSL对象搜索语言规范对所述安全租户的数据查询请求进行XOSL语言解析,获得该安全租户的当前XOSL数据查询语言且同时指定搜索关键词、搜索字段范围和搜索实体范围,具体包括:
读取预先获取的XOSL对象搜索语言规范;
设置FIND语句指定搜索关键词;
设置IN语句指定搜索字段范围;
设置RETURNING语句指定搜索实体范围;
设置HIGHLIGHT语句和SNIPPET语句分别指定高亮和片段;
设置METADATA语句指定返回元数据信息;
设置LIMIT语句和OFFSET语句共同指定返回结果数据范围。
根据本发明提供的SaaS环境下多租户CRM系统的数据模糊查询方法,若同时获取到多个租户的数据查询请求,则所述基于API服务网关,对各所述租户进行身份验证和权限验证,获得至少一个安全租户的数据查询请求并确定其可访问数据范围,具体包括:
基于API服务网关,对各所述租户进行身份验证和权限验证,获得多个安全租户的数据查询请求并分别确定其可访问数据范围;
按照预设限流数量和各安全租户请求查询的时间顺序,对所述多个安全租户的数据查询请求进行限流排队传输。
根据本发明提供的SaaS环境下多租户CRM系统的数据模糊查询方法,所述该安全租户预先自定义的实体元数据配置信息是该安全租户预先基于PaaS平台进行实体元数据配置获得的。
根据本发明提供的SaaS环境下多租户CRM系统的数据模糊查询方法,所述OpenAPI接口采用类SQL形式的对外开放接口。
根据本发明提供的SaaS环境下多租户CRM系统的数据模糊查询方法,若获得的相应的通用型数据模糊查询结果为多个,则在获得多个通用型数据模糊查询结果之后,所述方法还包括:
将各通用字段标识符和各通用实体标识符以及多个所述通用型数据模糊查询结果均输入至预先训练好的数据特征相关度计算模型;
对各个所述通用型数据模糊查询结果,分别计算其中各字段与各通用字段标识符的字段特征相关度和各实体与各实体标识符的实体特征相关度,并根据所述字段特征相关度和所述实体特征相关度综合计算数据特征相关度;
按照数据特征相关度由大到小的顺序对各个通用型数据模糊查询结果进行排序;
选取数据特征相关度最大的该通用型数据模糊查询结果作为最相关的通用型数据模糊查询结果。
根据本发明提供的SaaS环境下多租户CRM系统的数据模糊查询方法,所述根据所述字段特征相关度和所述实体特征相关度综合计算数据特征相关度,具体包括:
获取预设的字段特征相关度的第一权重比例和预设的实体特征相关度的第二权重比例;
根据所述字段特征相关度、所述实体特征相关度及其各自相应的第一权重比例和第二权重比例,综合计算所述数据特征相关度。
本发明还提供一种SaaS环境下多租户CRM系统的数据模糊查询装置,连接于OpenAPI接口,所述装置包括:
获取模块,用于获取至少一个租户的数据查询请求;
验证模块,用于基于API服务网关,对各所述租户进行身份验证和权限验证,获得至少一个安全租户的数据查询请求并确定其可访问数据范围;
解析模块,用于根据预先获取的XOSL对象搜索语言规范对所述安全租户的数据查询请求进行XOSL语言解析,获得该安全租户的当前XOSL数据查询语言且同时指定搜索关键词、搜索字段范围和搜索实体范围;
转换模块,用于基于与该安全租户预先自定义的实体元数据配置信息的交互,将所述当前XOSL数据查询语言指定的搜索字段范围和搜索实体范围中的各私有字段标识符和各私有实体标识符,分别转换为可应用于底层全局查询引擎的各通用字段标识符和各通用实体标识符;还用于基于与该安全租户预先自定义的实体元数据配置信息的交互,将通用型数据模糊查询结果反向转换为该安全租户可识别的私有数据模糊查询结果并输出;
查询模块,用于通过所述底层全局查询引擎基于各通用字段标识符和各通用实体标识符在CRM系统中该安全租户可访问数据范围内进行查询,获得相应的所述通用型数据模糊查询结果。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现根据如上任一项所述SaaS环境下多租户CRM系统的数据模糊查询方法的全部或部分步骤。
本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现根据如上任一项所述SaaS环境下多租户CRM系统的数据模糊查询方法的全部或部分步骤。
本发明提供一种SaaS环境下多租户CRM系统的数据模糊查询方法及装置,所述方法在验证租户的身份和权限后,对租户的数据查询请求进行XOSL语言解析后再通过底层全局查询引擎进行相应查询,并在语言解析后以及获得模糊数据查询结果后分别基于其与该租户预先自定义的实体元数据配置信息的交互,将经解析后的待查询请求转换为通用查询请求以及将通用模糊查询结果反向转换回该租户可识别的结果,整个查询过程简单优化且安全,可支持多字段多实体的数据查询,查询结果较为丰富,实现了对SaaS环境下多租户CRM系统的数据进行全局数据模糊查询的效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些图获得其他的附图。
图1是本发明提供的SaaS环境下多租户CRM系统的数据模糊查询方法的流程示意图之一;
图2是本发明提供的应用SaaS环境下多租户CRM系统的数据模糊查询方法的分层架构图;
图3是本发明提供的SaaS环境下多租户CRM系统的数据模糊查询方法的流程示意图之二;
图4是本发明提供的SaaS环境下多租户CRM系统的数据模糊查询方法的流程示意图之三;
图5是本发明提供的SaaS环境下多租户CRM系统的数据模糊查询装置的结构示意图;
图6是本发明提供的电子设备的结构示意图。
附图标记:
510:获取模块;520:验证模块;530:解析模块;540:转换模块;550:查询模块;610:处理器;620:通信接口;630:存储器;640通信总线。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明的技术方案进行清楚完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
以下结合附图1-6描述本发明提供的SaaS环境下多租户CRM系统的数据模糊查询方法及装置。
本发明提供一种SaaS环境下多租户CRM系统的数据模糊查询方法,通过调用OpenAPI接口来执行,也可理解为,租户通过交互OpenAPI开发平台的搜索接口查询获取数据并实现自身逻辑业务的扩展,图1是本发明提供的SaaS环境下多租户CRM系统的数据模糊查询方法的流程示意图之一,图2是本发明提供的应用SaaS环境下多租户CRM系统的数据模糊查询方法的分层架构图,如图1和图2所示,所述方法包括:
110、获取至少一个租户的数据查询请求;
SaaS环境下一个SaaS厂商搭建的一套多租户CRM系统中,就会涉及多个租户,而其可能还搭建有其他CRM系统,整个网络环境中既有本CRM系统中的多个租户,又有其他CRM系统的租户,还可能存在一些假冒租户想要访问数据。因此,获取一个或多个租户的数据查询请求,还需分别对其进行相应验证,以确保安全。图2中该小人形象代表一个提出数据查询请求的租户。
120、基于API服务网关,对各所述租户进行身份验证和权限验证,获得至少一个安全租户的数据查询请求并确定其可访问数据范围;
利用API服务网关层,对步骤110中获取的提出数据查询请求的每一个租户进行身份验证和权限验证。身份验证可以验证租户的身份进而确定其是否为本CRM系统下的已付费租户。权限验证则可以根据预先设定好的不同租户具有不同访问权限范围的设置,确定当前该身份验证成功的安全租户的可访问数据范围。即,对步骤110获取的多个租户的数据查询请求进行验证和筛选,以过滤出一个或多个安全租户的数据查询请求,且如果其是安全租户,还同时根据其访问权限确定出该安全租户的可访问数据范围。经验证该一个租户恰好为一个安全租户。
130、根据预先获取的XOSL对象搜索语言规范对所述安全租户的数据查询请求进行XOSL语言解析,获得该安全租户的当前XOSL数据查询语言且同时指定搜索关键词、搜索字段范围和搜索实体范围;
根据预先获取的XOSL对象搜索语言规范,利用XOSL语言解析层分别对一个或多个安全租户的数据查询请求进行XOSL语言解析,本实施例以对一个安全租户的数据查询请求进行XOSL语言解析为例进行说明。经过基于XOSL代码语句的XOSL语言解析处理后,获得该安全租户的当前XOSL数据查询语言,比如进行了相应的数据查询请求语句的拆解分析,以及且同时根据具体处理过程指定该安全租户的该条数据查询请求所指定的搜索关键词、搜索字段范围和搜索实体范围等等。
140、基于与该安全租户预先自定义的实体元数据配置信息的交互,将所述当前XOSL数据查询语言指定的搜索字段范围和搜索实体范围中的各私有字段标识符和各私有实体标识符,分别转换为可应用于底层全局查询引擎的各通用字段标识符和各通用实体标识符;
基于与该安全租户预先自定义的实体元数据配置信息的交互,具体可以是通过XOSL语言解析层与实体元数据配置平台的交互,将所述当前XOSL数据查询语言(经过语言解析处理后的数据查询语句)所指定的搜索字段范围和搜索实体范围中的各私有字段标识符和各私有实体标识符(此时的私有字段、私有实体等均仅能被该当前安全租户自己识别,不能被全局搜索引擎通用识别),分别转换为可应用于底层全局查询引擎的各通用字段标识符和各通用实体标识符,以供底层搜索时能够通用识别。
150、通过所述底层全局查询引擎,基于各通用字段标识符和各通用实体标识符在CRM系统中该安全租户可访问数据范围内进行查询,获得相应的通用型数据模糊查询结果;
利用底层全局查询引擎层,基于各通用字段标识符和各通用实体标识符在CRM系统中该安全租户可访问数据范围内进行搜索查询,获得相应的通用型数据模糊查询结果,所获得的通用型数据模糊查询结果此时是能够被全局搜索引擎所识别的,但是其又不能被该当前安全租户识别。
160、基于与该安全租户预先自定义的实体元数据配置信息的交互,将所述通用型数据模糊查询结果反向转换为该安全租户可识别的私有数据模糊查询结果并输出。
反向再基于与该安全租户预先自定义的实体元数据配置信息的交互,具体可以是基于底层全局查询引擎层与实体元数据配置平台的交互,或说基于实体元数据配置平台的该安全租户的独有的实体元数据描述,将所述通用型数据模糊查询结果进行反向转换,以转换成该安全租户可识别的私有数据模糊查询结果,最后将结果输出。
本发明提供一种SaaS环境下多租户CRM系统的数据模糊查询方法,所述方法在验证租户的身份和权限后,对租户的数据查询请求进行XOSL语言解析后再通过底层全局查询引擎进行相应查询,并在语言解析后以及获得模糊数据查询结果后分别基于其与该租户预先自定义的实体元数据配置信息的交互,将经解析后的待查询请求转换为通用查询请求以及将通用模糊查询结果反向转换回该租户可识别的结果,整个查询过程简单优化且安全,可支持多字段多实体的数据查询,查询结果较为丰富,实现了对SaaS环境下多租户CRM系统的数据进行全局数据模糊查询的效果。
根据本发明提供的SaaS环境下多租户CRM系统的数据模糊查询方法,图3是本发明提供的SaaS环境下多租户CRM系统的数据模糊查询方法的流程示意图之二,如图3所示,在图1-2所示实施例的基础上,所述步骤130,进一步包括如下各步骤:
1301、读取预先获取的XOSL对象搜索语言规范;
1302、设置FIND语句指定搜索关键词;
1303、设置IN语句指定搜索字段范围;
1304、设置RETURNING语句指定搜索实体范围;
1305、设置HIGHLIGHT语句和SNIPPET语句分别指定高亮和片段;
1306、设置METADATA语句指定返回元数据信息;
1307、设置LIMIT语句和OFFSET语句共同指定返回结果数据范围。
具体地,在步骤1301读取完预先获取的XOSL对象搜索语言规范之后,可以通过编写的XOSL查询语言代码执行上述的步骤1302-1307,所述XOSL查询语言代码的语法具体如下:
通过FIND子句指定搜索关键词,通过IN子句指定搜索字段范围,通过RETURNING子句指定搜索实体范围(还可同时指定返回字段及过滤条件),通过HIGHLIGHT子句和SNIPPET子句分别指定高亮和片段,通过METADATA子句返回元数据信息,最后通过LIMIT子句、OFFSET子句均指定返回结果数据范围。
语法结构如下:
FIND{SearchQuery}
[IN SearchGroup]
[RETURNING Object Type Name[(FieldList[WHERE condition Expression][ORDER BY Clause ASC|DESC][LIMIT n][OFFSET n])][,...]]
[WITH HIGHLIGHT]
[WITH SNIPPET[(target_length=n)]]
[WITH METADATA=‘LABELS’]
[LIMIT n]
[OFFSET n]
且需要说明的是,上述语法结构遵循以下排版惯例:
1)斜体下划线字体,为可替换的内容;
2)竖线|代表备选内容,可选择使用其中一个,例如:ASC|DESC;
3)方括号[]表示可选内容,且嵌套的方括号同样表示可选内容,但是内层的可选元素,必须以外层可选元素存在为前提;
4)[...]表示可以重复之前的元素,而[,...]表示重复之前元素时,需在前面增加逗号来分隔。
举例说明:
FIND{石龙*OR(“玉龙科技”AND 北京 上地苏州路)}
IN ALL FIELDS
RETURNING account(id,accountName WHERE phone LIKE'1353423*'AND highSeaStatus IN(1,3,4)AND createdAt>=1599550372000AND createdAt<= 1599550373000AND DISTANCE(locationField__c,GEOLOCATION(37,122),'mi')< 1000ORDER BY DISTANCE(locationField__c,GEOLOCATION(37,122),'mi')DESC LIMIT 30),opportunity(id,opportunityName WHERE name LIKE'*苏州*'OR(phone LIKE' 1353423*'AND createdAt>=1599550372000AND createdAt<=1599550373000AND email IS NOT NULL)ORDER BY nameField__cASC,createdAt DESC)
WITH HIGHLIGHT
WITH SNIPPET
WITH METADATA='LABELS'
LIMIT 10
OFFSET 0
由此,指定在全局范围内搜索,指定搜索关键词为:石龙*OR“玉龙科技”AND北京上地苏州路;指定搜索实体范围为:在客户实体(account)和商机实体(opportunity)两个实体内搜索;指定搜索字段范围为:上述两个实体的所有字段(ALL FIELDS);指定返回字段的范围为:客户实体返回id和客户名称,商机实体返回id和商机名称;同时指定了每个实体的数据过滤和排序方式,包括条件过滤、地理位置过滤、地理位置排序等等。
当然,在步骤130处理过程中,还可以结合实际需求和系统的设置,对经过语言解析处理的租户的数据查询请求,进行限制和预处理,具体比如可以是对语句长度的限制、关键词个数的限制,以及对其进行相应格式预处理等等。
根据本发明提供的SaaS环境下多租户CRM系统的数据模糊查询方法,图4是本发明提供的SaaS环境下多租户CRM系统的数据模糊查询方法的流程示意图之三,如图4所示,在图1-图2所示实施例的基础上,所述步骤120,进一步包括如下各步骤:
1201、基于API服务网关,对各所述租户进行身份验证和权限验证,获得多个安全租户的数据查询请求并分别确定其可访问数据范围;
当有多个租户在同一时段或同时提出数据查询请求时,分别要对每一个租户进行身份验证,并对每一个身份验证成功的安全租户,确定其可访问权限,即确定出其可访问数据范围。
1202、按照预设限流数量和各安全租户请求查询的时间顺序,对所述多个安全租户的数据查询请求进行限流排队传输。
身份验证成功且具有访问权限的安全租户还有可能是多个,此时,本方法则可以按照预设限流数量和各安全租户请求查询的时间顺序,对所述多个安全租户的数据查询请求进行限流排队传输,具体比如预设限流数量为一个,则一次仅能传输一个安全租户的数据查询请求,此时,便按照多个安全租户的发出请求的时间的先后顺序,优先传输时间在前的一个安全租户的数据查询请求,对其进行处理,并在对第一个安全租户的数据查询请求进行处理完毕之后,再传输请求时间排第二位的安全租户的数据查询请求以进行处理。
当然,具体的限流排队传输设置,还可以根据实际应用场景进行设置,比如还可以设置本CRM系统每秒处理并发查询数据总量的阈值,在不超过该阈值的情况下,可以同时处理多个安全租户的数据查询请求。
根据本发明提供的SaaS环境下多租户CRM系统的数据模糊查询方法,所述该安全租户预先自定义的实体元数据配置信息是该安全租户预先基于PaaS平台进行实体元数据配置获得的。
该安全租户预先自定义的实体元数据配置信息,是该安全租户预先基于PaaS环境的实体元数据配置平台进行实体元数据配置获得的。由此,通过XOSL语言解析层和底层全局查询引擎层分别与实体元数据配置平台的交互过程,使得若基于PaaS环境对实体元数据字段进行了动态调整,则其动态调整的变化,能够实时地自动更新到调用已有OpenAPI接口执行上述全局数据模糊查询的最终输出结果中,使输出结果更为准确。
根据本发明提供的SaaS环境下多租户CRM系统的数据模糊查询方法,所述OpenAPI接口采用类SQL形式的对外开放接口。
所述OpenAPI接口,优选采用类SQL形式的开源的对外开放接口,使得本应用方法能够更为有效地接入并执行。
根据本发明提供的SaaS环境下多租户CRM系统的数据模糊查询方法,若获得的相应的通用型数据模糊查询结果为多个,则在获得多个通用型数据模糊查询结果之后,具体是步骤150和160之间,所述方法进一步还包括如下几个步骤:
1510、将各通用字段标识符和各通用实体标识符以及多个所述通用型数据模糊查询结果均输入至预先训练好的数据特征相关度计算模型;
其中,所述数据特征相关度计算模型是预先基于大量的搜索查询的初始数据和结果数据,进行神经网络学习后训练得到的。
1520、对各个所述通用型数据模糊查询结果,分别计算其中各字段与各通用字段标识符的字段特征相关度和各实体与各实体标识符的实体特征相关度,并根据所述字段特征相关度和所述实体特征相关度综合计算数据特征相关度;
对各个所述通用型数据模糊查询结果,基于对经过XOSL语言解析后的XOSL查询语言(也称搜索请求)进行搜索关键词的理解、召回和关键词排序等等处理,分别精确计算其中各字段与各通用字段标识符的字段特征相关度和各实体与各实体标识符的实体特征相关度,并根据所述字段特征相关度和所述实体特征相关度综合计算数据特征相关度
当然还可以根据所述字段特征相关度和所述实体特征相关度以外的,比如该安全租户下具体用户特征相关度、用户行为特征相关度等等,来综合计算数据特征相关度。其中,该安全租户下具体用户特征、用户行为特征等信息,均可以通过底层全局查询引擎层与外接平台的交互来获取,具体可以根据实际场景按需设置。
1530、按照数据特征相关度由大到小的顺序对各个通用型数据模糊查询结果进行排序;
数据特征相关度越大,则证明该通用型数据模糊查询结果越贴近所要查询的结果的真实情况,也越贴近该租户实际需求的数据。
1540、选取数据特征相关度最大的该通用型数据模糊查询结果作为最相关的通用型数据模糊查询结果。
选取数据特征相关度最大的该通用型数据模糊查询结果作为最相关的通用型数据模糊查询结果,最后将该最相关的通用型数据模糊查询结果再经过反向转换处理后,最终输出。整体考虑了各种特征因素等对查询返回结果的影响,获得最相关的输出结果。
根据本发明提供的SaaS环境下多租户CRM系统的数据模糊查询方法,在上一实施例的基础上,所述步骤1520中的根据所述字段特征相关度和所述实体特征相关度综合计算数据特征相关度,具体包括:
1521、获取预设的字段特征相关度的第一权重比例和预设的实体特征相关度的第二权重比例;
1522、根据所述字段特征相关度、所述实体特征相关度及其各自相应的第一权重比例和第二权重比例,综合计算所述数据特征相关度。
当然,若还根据所述字段特征相关度和所述实体特征相关度以外的,比如该安全租户下具体用户特征相关度、用户行为特征相关度等等,来综合计算数据特征相关度。则分别为每一个相关度均设置不同的权重比例,再根据各相关度和各权重比例综合计算所述数据特征相关度。
下面对本发明提供的一种SaaS环境下多租户CRM系统的数据模糊查询装置进行介绍,所述SaaS环境下多租户CRM系统的数据模糊查询装置与上述的SaaS环境下多租户CRM系统的数据模糊查询方法的应用原理相一致,且可相互参照,故此处不作任何赘述。
本发明还提供一种SaaS环境下多租户CRM系统的数据模糊查询装置,连接于OpenAPI接口,图5是本发明提供的SaaS环境下多租户CRM系统的数据模糊查询装置的结构示意图,如图5所示,所述装置包括:获取模块510、验证模块520、解析模块530、转换模块540和查询模块550,其中,
所述获取模块510,用于获取至少一个租户的数据查询请求;
所述验证模块520,用于基于API服务网关,对各所述租户进行身份验证和权限验证,获得至少一个安全租户的数据查询请求并确定其可访问数据范围;
所述解析模块530,用于根据预先获取的XOSL对象搜索语言规范对所述安全租户的数据查询请求进行XOSL语言解析,获得该安全租户的当前XOSL数据查询语言且同时指定搜索关键词、搜索字段范围和搜索实体范围;
所述转换模块540,用于基于与该安全租户预先自定义的实体元数据配置信息的交互,将所述当前XOSL数据查询语言指定的搜索字段范围和搜索实体范围中的各私有字段标识符和各私有实体标识符,分别转换为可应用于底层全局查询引擎的各通用字段标识符和各通用实体标识符;还用于基于与该安全租户预先自定义的实体元数据配置信息的交互,将通用型数据模糊查询结果反向转换为该安全租户可识别的私有数据模糊查询结果并输出;
所述查询模块550,用于通过所述底层全局查询引擎基于各通用字段标识符和各通用实体标识符在CRM系统中该安全租户可访问数据范围内进行查询,获得相应的所述通用型数据模糊查询结果。
本发明提供一种SaaS环境下多租户CRM系统的数据模糊查询装置,该装置包括获取模块510、验证模块520、解析模块530、转换模块540和查询模块550,各模块相互配合工作,使得本装置能够在验证租户的身份和权限后,对租户的数据查询请求进行XOSL语言解析后再通过底层全局查询引擎进行相应查询,并在语言解析后以及获得模糊数据查询结果后分别基于其与该租户预先自定义的实体元数据配置信息的交互,将经解析后的待查询请求转换为通用查询请求以及将通用模糊查询结果反向转换回该租户可识别的结果,装置结构简单优化、应用安全,可支持多字段多实体的数据查询,查询结果较为丰富,可实现对SaaS环境下多租户CRM系统的数据进行全局数据模糊查询的效果。
本发明还提供一种电子设备,图6是本发明提供的电子设备的结构示意图,如图6所示,该电子设备可以包括:处理器(processor)610、通信接口(CommunicationsInterface)620、存储器(memory)630和通信总线640,其中,处理器610,通信接口620,存储器630通过通信总线640完成相互间的通信。处理器610可以调用存储器630中的逻辑指令,以执行所述SaaS环境下多租户CRM系统的数据模糊查询方法的全部或部分步骤,该方法通过调用OpenAPI接口来执行,且该方法包括:
获取至少一个租户的数据查询请求;
基于API服务网关,对各所述租户进行身份验证和权限验证,获得至少一个安全租户的数据查询请求并确定其可访问数据范围;
根据预先获取的XOSL对象搜索语言规范对所述安全租户的数据查询请求进行XOSL语言解析,获得该安全租户的当前XOSL数据查询语言且同时指定搜索关键词、搜索字段范围和搜索实体范围;
基于与该安全租户预先自定义的实体元数据配置信息的交互,将所述当前XOSL数据查询语言指定的搜索字段范围和搜索实体范围中的各私有字段标识符和各私有实体标识符,分别转换为可应用于底层全局查询引擎的各通用字段标识符和各通用实体标识符;
通过所述底层全局查询引擎,基于各通用字段标识符和各通用实体标识符在CRM系统中该安全租户可访问数据范围内进行查询,获得相应的通用型数据模糊查询结果;
基于与该安全租户预先自定义的实体元数据配置信息的交互,将所述通用型数据模糊查询结果反向转换为该安全租户可识别的私有数据模糊查询结果并输出。
此外,上述的存储器630中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述SaaS环境下多租户CRM系统的数据模糊查询方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各实施例所提供的所述SaaS环境下多租户CRM系统的数据模糊查询方法的全部或部分步骤,该方法通过调用OpenAPI接口来执行,且该方法包括:
获取至少一个租户的数据查询请求;
基于API服务网关,对各所述租户进行身份验证和权限验证,获得至少一个安全租户的数据查询请求并确定其可访问数据范围;
根据预先获取的XOSL对象搜索语言规范对所述安全租户的数据查询请求进行XOSL语言解析,获得该安全租户的当前XOSL数据查询语言且同时指定搜索关键词、搜索字段范围和搜索实体范围;
基于与该安全租户预先自定义的实体元数据配置信息的交互,将所述当前XOSL数据查询语言指定的搜索字段范围和搜索实体范围中的各私有字段标识符和各私有实体标识符,分别转换为可应用于底层全局查询引擎的各通用字段标识符和各通用实体标识符;
通过所述底层全局查询引擎,基于各通用字段标识符和各通用实体标识符在CRM系统中该安全租户可访问数据范围内进行查询,获得相应的通用型数据模糊查询结果;
基于与该安全租户预先自定义的实体元数据配置信息的交互,将所述通用型数据模糊查询结果反向转换为该安全租户可识别的私有数据模糊查询结果并输出。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上各实施例所述SaaS环境下多租户CRM系统的数据模糊查询方法的全部或部分步骤,该方法通过调用OpenAPI接口来执行,且该方法包括:
获取至少一个租户的数据查询请求;
基于API服务网关,对各所述租户进行身份验证和权限验证,获得至少一个安全租户的数据查询请求并确定其可访问数据范围;
根据预先获取的XOSL对象搜索语言规范对所述安全租户的数据查询请求进行XOSL语言解析,获得该安全租户的当前XOSL数据查询语言且同时指定搜索关键词、搜索字段范围和搜索实体范围;
基于与该安全租户预先自定义的实体元数据配置信息的交互,将所述当前XOSL数据查询语言指定的搜索字段范围和搜索实体范围中的各私有字段标识符和各私有实体标识符,分别转换为可应用于底层全局查询引擎的各通用字段标识符和各通用实体标识符;
通过所述底层全局查询引擎,基于各通用字段标识符和各通用实体标识符在CRM系统中该安全租户可访问数据范围内进行查询,获得相应的通用型数据模糊查询结果;
基于与该安全租户预先自定义的实体元数据配置信息的交互,将所述通用型数据模糊查询结果反向转换为该安全租户可识别的私有数据模糊查询结果并输出。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的SaaS环境下多租户CRM系统的数据模糊查询方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种SaaS环境下多租户CRM系统的数据模糊查询方法,通过调用OpenAPI接口来执行,其特征在于,所述方法包括:
获取至少一个租户的数据查询请求;
基于API服务网关,对各所述租户进行身份验证和权限验证,获得至少一个安全租户的数据查询请求并确定其可访问数据范围;
根据预先获取的XOSL对象搜索语言规范对所述安全租户的数据查询请求进行XOSL语言解析,获得该安全租户的当前XOSL数据查询语言且同时指定搜索关键词、搜索字段范围和搜索实体范围;
基于与该安全租户预先自定义的实体元数据配置信息的交互,将所述当前XOSL数据查询语言指定的搜索字段范围和搜索实体范围中的各私有字段标识符和各私有实体标识符,分别转换为可应用于底层全局查询引擎的各通用字段标识符和各通用实体标识符;
通过所述底层全局查询引擎,基于各通用字段标识符和各通用实体标识符在CRM系统中该安全租户可访问数据范围内进行查询,获得相应的通用型数据模糊查询结果;
基于与该安全租户预先自定义的实体元数据配置信息的交互,将所述通用型数据模糊查询结果反向转换为该安全租户可识别的私有数据模糊查询结果并输出。
2.根据权利要求1所述的SaaS环境下多租户CRM系统的数据模糊查询方法,其特征在于,所述根据预先获取的XOSL对象搜索语言规范对所述安全租户的数据查询请求进行XOSL语言解析,获得该安全租户的当前XOSL数据查询语言且同时指定搜索关键词、搜索字段范围和搜索实体范围,具体包括:
读取预先获取的XOSL对象搜索语言规范;
设置FIND语句指定搜索关键词;
设置IN语句指定搜索字段范围;
设置RETURNING语句指定搜索实体范围;
设置HIGHLIGHT语句和SNIPPET语句分别指定高亮和片段;
设置METADATA语句指定返回元数据信息;
设置LIMIT语句和OFFSET语句共同指定返回结果数据范围。
3.根据权利要求1或2所述的SaaS环境下多租户CRM系统的数据模糊查询方法,其特征在于,若同时获取到多个租户的数据查询请求,则所述基于API服务网关,对各所述租户进行身份验证和权限验证,获得至少一个安全租户的数据查询请求并确定其可访问数据范围,具体包括:
基于API服务网关,对各所述租户进行身份验证和权限验证,获得多个安全租户的数据查询请求并分别确定其可访问数据范围;
按照预设限流数量和各安全租户请求查询的时间顺序,对所述多个安全租户的数据查询请求进行限流排队传输。
4.根据权利要求3所述的SaaS环境下多租户CRM系统的数据模糊查询方法,其特征在于,所述该安全租户预先自定义的实体元数据配置信息是该安全租户预先基于PaaS平台进行实体元数据配置获得的。
5.根据权利要求4所述的SaaS环境下多租户CRM系统的数据模糊查询方法,其特征在于,所述OpenAPI接口采用类SQL形式的对外开放接口。
6.根据权利要求1所述的SaaS环境下多租户CRM系统的数据模糊查询方法,其特征在于,若获得的相应的通用型数据模糊查询结果为多个,则在获得多个通用型数据模糊查询结果之后,所述方法还包括:
将各通用字段标识符和各通用实体标识符以及多个所述通用型数据模糊查询结果均输入至预先训练好的数据特征相关度计算模型;
对各个所述通用型数据模糊查询结果,分别计算其中各字段与各通用字段标识符的字段特征相关度和各实体与各实体标识符的实体特征相关度,并根据所述字段特征相关度和所述实体特征相关度综合计算数据特征相关度;
按照数据特征相关度由大到小的顺序对各个通用型数据模糊查询结果进行排序;
选取数据特征相关度最大的该通用型数据模糊查询结果作为最相关的通用型数据模糊查询结果。
7.根据权利要求6所述的SaaS环境下多租户CRM系统的数据模糊查询方法,其特征在于,所述根据所述字段特征相关度和所述实体特征相关度综合计算数据特征相关度,具体包括:
获取预设的字段特征相关度的第一权重比例和预设的实体特征相关度的第二权重比例;
根据所述字段特征相关度、所述实体特征相关度及其各自相应的第一权重比例和第二权重比例,综合计算所述数据特征相关度。
8.一种SaaS环境下多租户CRM系统的数据模糊查询装置,连接于OpenAPI接口,其特征在于,所述装置包括:
获取模块,用于获取至少一个租户的数据查询请求;
验证模块,用于基于API服务网关,对各所述租户进行身份验证和权限验证,获得至少一个安全租户的数据查询请求并确定其可访问数据范围;
解析模块,用于根据预先获取的XOSL对象搜索语言规范对所述安全租户的数据查询请求进行XOSL语言解析,获得该安全租户的当前XOSL数据查询语言且同时指定搜索关键词、搜索字段范围和搜索实体范围;
转换模块,用于基于与该安全租户预先自定义的实体元数据配置信息的交互,将所述当前XOSL数据查询语言指定的搜索字段范围和搜索实体范围中的各私有字段标识符和各私有实体标识符,分别转换为可应用于底层全局查询引擎的各通用字段标识符和各通用实体标识符;还用于基于与该安全租户预先自定义的实体元数据配置信息的交互,将通用型数据模糊查询结果反向转换为该安全租户可识别的私有数据模糊查询结果并输出;
查询模块,用于通过所述底层全局查询引擎基于各通用字段标识符和各通用实体标识符在CRM系统中该安全租户可访问数据范围内进行查询,获得相应的所述通用型数据模糊查询结果。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时,实现根据权利要求1-7任一项所述SaaS环境下多租户CRM系统的数据模糊查询方法的全部或部分步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现根据权利要求1-7任一项所述SaaS环境下多租户CRM系统的数据模糊查询方法的全部或部分步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110642264.7A CN113342876B (zh) | 2021-06-09 | 2021-06-09 | SaaS环境下多租户CRM系统的数据模糊查询方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110642264.7A CN113342876B (zh) | 2021-06-09 | 2021-06-09 | SaaS环境下多租户CRM系统的数据模糊查询方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113342876A true CN113342876A (zh) | 2021-09-03 |
CN113342876B CN113342876B (zh) | 2023-07-11 |
Family
ID=77476445
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110642264.7A Active CN113342876B (zh) | 2021-06-09 | 2021-06-09 | SaaS环境下多租户CRM系统的数据模糊查询方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113342876B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114969203A (zh) * | 2022-05-11 | 2022-08-30 | 深圳无一科技有限公司 | 数据实时同步方法、装置、设备及介质 |
CN115309752A (zh) * | 2022-09-30 | 2022-11-08 | 畅捷通信息技术股份有限公司 | 一种多租户动态表单的生成方法、装置及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103399942A (zh) * | 2013-08-14 | 2013-11-20 | 山大地纬软件股份有限公司 | 一种支持SaaS多租户的数据引擎系统及其工作方法 |
US20140280905A1 (en) * | 2013-03-15 | 2014-09-18 | One Source Virtual Hr, Inc. | System and method for service provision in a multi-tenant environment |
CN111309760A (zh) * | 2020-02-10 | 2020-06-19 | 江苏满运软件科技有限公司 | 数据检索方法、系统、设备及存储介质 |
-
2021
- 2021-06-09 CN CN202110642264.7A patent/CN113342876B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140280905A1 (en) * | 2013-03-15 | 2014-09-18 | One Source Virtual Hr, Inc. | System and method for service provision in a multi-tenant environment |
CN103399942A (zh) * | 2013-08-14 | 2013-11-20 | 山大地纬软件股份有限公司 | 一种支持SaaS多租户的数据引擎系统及其工作方法 |
CN111309760A (zh) * | 2020-02-10 | 2020-06-19 | 江苏满运软件科技有限公司 | 数据检索方法、系统、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
王海荣;马宗民;程经纬;: "一种支持用户偏好的RDF模糊查询方法", 计算机科学, no. 08 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114969203A (zh) * | 2022-05-11 | 2022-08-30 | 深圳无一科技有限公司 | 数据实时同步方法、装置、设备及介质 |
CN115309752A (zh) * | 2022-09-30 | 2022-11-08 | 畅捷通信息技术股份有限公司 | 一种多租户动态表单的生成方法、装置及存储介质 |
CN115309752B (zh) * | 2022-09-30 | 2023-01-13 | 畅捷通信息技术股份有限公司 | 一种多租户动态表单的生成方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113342876B (zh) | 2023-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11880721B2 (en) | Processing a query having calls to multiple data sources | |
US11934394B2 (en) | Data query method supporting natural language, open platform, and user terminal | |
CN109492053B (zh) | 用于访问数据的方法和装置 | |
US11720825B2 (en) | Framework for multi-tenant data science experiments at-scale | |
US8725760B2 (en) | Semantic terminology importer | |
CN113342876B (zh) | SaaS环境下多租户CRM系统的数据模糊查询方法及装置 | |
US9940355B2 (en) | Providing answers to questions having both rankable and probabilistic components | |
EP2908258A1 (en) | Interval based fuzzy database search | |
CN114064690A (zh) | 数据处理方法及装置 | |
CN112115511A (zh) | 权限校验方法、装置及系统、业务权限配置方法及装置 | |
US11263542B2 (en) | Technologies for auto discover and connect to a rest interface | |
CN111191276A (zh) | 数据脱敏方法、装置、存储介质及计算机设备 | |
CN109766686A (zh) | 权限管理 | |
CN115238247A (zh) | 基于零信任数据访问控制系统的数据处理方法 | |
CN110109981B (zh) | 工作队列的信息展示方法、装置、计算机设备和存储介质 | |
WO2022111148A1 (en) | Metadata indexing for information management | |
WO2014021824A1 (en) | Search method | |
CN111932076A (zh) | 一种规则配置和发布方法、装置及计算设备 | |
CN113032836B (zh) | 数据脱敏方法和装置 | |
CN115964384A (zh) | 一种数据查询方法、装置、电子设备及计算机可读介质 | |
TWI707273B (zh) | 使用統一聚合查詢語言獲取資源的方法及系統 | |
US11762857B2 (en) | Methods and systems for searching data exchanges that comprise information on assets with non-homogenous functionality and non-standardized data descriptions | |
CN113778991B (zh) | 一种大数据的资源访问控制的实现方法 | |
CN116644139A (zh) | 数据管理方法、装置、设备及存储介质 | |
CN116414707A (zh) | 基于api接口文档的测试数据执行方法、装置、设备、介质和产品 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |