CN118043800A - 用于提供跨微服务查询优化的系统和方法 - Google Patents
用于提供跨微服务查询优化的系统和方法 Download PDFInfo
- Publication number
- CN118043800A CN118043800A CN202180102633.1A CN202180102633A CN118043800A CN 118043800 A CN118043800 A CN 118043800A CN 202180102633 A CN202180102633 A CN 202180102633A CN 118043800 A CN118043800 A CN 118043800A
- Authority
- CN
- China
- Prior art keywords
- micro
- service
- database
- cross
- services
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000005457 optimization Methods 0.000 title description 12
- 238000012545 processing Methods 0.000 claims abstract description 35
- 238000013507 mapping Methods 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 6
- 230000008569 process Effects 0.000 abstract description 10
- 239000008186 active pharmaceutical agent Substances 0.000 abstract 1
- 230000008901 benefit Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000015654 memory Effects 0.000 description 3
- 238000013499 data model Methods 0.000 description 2
- 238000009795 derivation Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 230000010076 replication Effects 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
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/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24542—Plan optimisation
- G06F16/24544—Join order optimisation
-
- 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/2471—Distributed 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/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24558—Binary matching operations
- G06F16/2456—Join operations
-
- 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/25—Integrating or interfacing systems involving database management systems
- G06F16/256—Integrating or interfacing systems involving database management systems in federated or virtual databases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Operations Research (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
根据实施例,本文描述的是一种用于提供跨微服务查询处理的系统和方法。该系统提供了支持使用如下微服务的对象服务框架,这些微服务可能是松散耦合但以某种方式相关,例如它们一起互操作或需要访问彼此的数据以便对查询进行处理。每个微服务可以被独立地开发、部署和演进,并通过如下契约或接口与其他微服务交互,这些契约或接口被定义为公共API并且然后经由该框架而暴露。例如,对象服务框架可以被用来提供跨微服务层,该跨微服务层自动地将对不同微服务中的对象进行联接的查询转换为为了与数据库一起使用而被优化的单个数据库查询。
Description
版权声明
本专利文件的公开内容的一部分包含受版权保护的材料。版权所有者不反对任何人对专利和商标局专利文件或记录中出现的专利文件或专利公开内容进行传真复制,但在其他方面保留所有版权。
对相关申请的交叉引用
本申请要求2021年11月12日提交的题为“SYSTEM AND METHOD FOR PROVIDINGCROSS-MICROSERVICE QUERY OPTIMIZATION”的美国专利申请(申请号为17/525,653)的优先权;上述申请及其内容通过引用并入本文。
技术领域
本文描述的实施例一般涉及云计算环境、云服务和微服务(microservice),并且特别地针对用于提供跨微服务查询(cross-microservice query)处理的系统和方法。
背景技术
为了应对快速改变的软件需求,企业越来越多地寻求诸如微服务之类的技术来提供可被快速开发和部署、易于维护且能够变得高度可用的软件应用。
在面向微服务的架构中,每个微服务可以相对独立地操作,包括拥有其自己的数据模型以及管理其自己的数据;其中,内部操作可由外部实体仅经由公共接口访问。
然而,当与一起互操作或共享数据的复杂软件应用(诸如企业应用)一起使用时,在管理微服务之间的依赖性时存在特定的挑战,其中例如一个微服务可能需要从一个或多个其他微服务接收数据以恰当地运转。
发明内容
根据实施例,本文描述的是一种用于提供跨微服务查询处理的系统和方法。该系统提供了支持使用如下微服务的对象服务框架,这些微服务可能是松散耦合但以某种方式相关,例如它们一起互操作或需要访问彼此的数据以便对查询进行处理。每个微服务可以被独立地开发、部署和演进,并通过如下契约(contract)或接口与其他微服务交互,这些契约或接口被定义为公共API并且然后经由该框架而暴露。例如,对象服务框架可以被用来提供跨微服务层,该跨微服务层自动地将对不同微服务中的对象进行联接(join)的查询转换为为了与数据库一起使用而被优化的单个数据库查询。
附图说明
图1图示了根据实施例的用于提供跨微服务查询处理的系统。
图2进一步图示了根据实施例的用于提供跨微服务查询处理的系统。
图3进一步图示了根据实施例的用于提供跨微服务查询处理的系统。
图4进一步图示了根据实施例的用于提供跨微服务查询处理的系统。
图5进一步图示了根据实施例的用于提供跨微服务查询处理的系统。
图6进一步图示了根据实施例的用于提供跨微服务查询处理的系统。
图7进一步图示了根据实施例的用于提供跨微服务查询处理的系统。
图8进一步图示了根据实施例的用于提供跨微服务查询处理的系统。
图9进一步图示了根据实施例的用于提供跨微服务查询处理的系统。
图10图示了根据实施例的用于提供跨微服务查询处理的系统的示例使用。
图11进一步图示了根据实施例的用于提供跨微服务查询处理的系统的示例使用。
图12进一步图示了根据实施例的用于提供跨微服务查询处理的系统的示例使用。
图13进一步图示了根据实施例的用于提供跨微服务查询处理的系统的示例使用。
图14进一步图示了根据实施例的用于提供跨微服务查询处理的系统的示例使用。
图15图示了根据实施例的用于提供跨微服务查询处理的方法。
具体实施方式
为了应对快速改变的软件需求,企业越来越多地寻求诸如微服务之类的技术来提供可被快速开发和部署、易于维护且能够变得高度可用的软件应用。
在面向微服务的架构中,每个微服务可以相对独立地操作,包括拥有其自己的数据模型以及管理其自己的数据;其中,内部操作可由外部实体仅经由公共接口访问。
然而,当与一起互操作或共享数据的复杂软件应用(诸如企业应用)一起使用时,在管理微服务之间的依赖性时存在特定的挑战,其中例如一个微服务可能需要从一个或多个其他微服务接收数据以恰当地运转。
例如,对于面向销售的企业应用,销售订单可能由第一微服务管理,并且产品由第二微服务管理。销售订单微服务可能需要产品数据以便恰当地执行该服务的验证逻辑,这可能使跨不同微服务对数据查询进行联接成为必要,例如以获得特定供应商提供的产品的销售订单。
在上面的示例中,由于不同微服务拥有的对应数据对象可能在这些微服务自己单独的数据库内被管理,因此如何以优化的方式执行这样的查询而不牺牲微服务架构提供的优势可能是有挑战性的。
根据实施例,本文描述的是一种用于提供跨微服务查询处理的系统和方法。该系统提供了支持使用如下微服务的对象服务框架,这些微服务可能是松散耦合但以某种方式相关,例如它们一起互操作或需要访问彼此的数据以便对查询进行处理。每个微服务可以被独立地开发、部署和演进,并通过如下契约或接口与其他微服务交互,这些契约或接口被定义为公共API并且然后经由该框架而暴露。
根据实施例,对象服务框架可以被用来提供跨微服务层,该层自动地将对不同微服务中的对象进行联接的查询转换为为了与数据库一起使用而被优化的单个数据库查询。
根据实施例,所描述的方法保留了微服务架构提供的优势,例如微服务可以被快速开发并且可以相对独立地操作;同时提供对诸如利用可用数据库(例如,SQL)优化的联接查询性能之类的特征的支持。
根据各种实施例,本文描述的系统和方法的各种技术特征和优点可以包括,例如:
根据实施例,对象服务框架可以用于管理多个相关的微服务以减轻微服务开发和部署的工作。每个微服务所有者负责定义其自己的对象、应用逻辑和数据库工件(databaseartifact)。可以由对象服务框架来提供公共的任务,例如作为受管的云服务提供能够被外部系统访问的无状态API。
根据实施例,对各个微服务所拥有的对象的统一管理可以被用来指导开发者和用户开发云原生思维模式(cloud-native mindset)。由于每个对可以与内部实现以及公共契约定义相关联,因此这鼓励组件以向后兼容的方式被维护。
根据实施例,微服务对象的公共契约可以以一致的方式被暴露给消费者。由于对象服务框架管理这些对象的定义,因此它可以以各种形式来暴露公共契约,例如作为OpenAPI或graphQL模式。对象定义充当用于发现和文档编制(discovery anddocumentation)目的的存储库,并且可以被诸如对象目录之类的工具利用。
根据实施例,所描述的方法在基础设施级别提供了微服务的边界。每个微服务通过对象服务框架与数据库和其他微服务交互;而对象服务框架为每个对象提供公共的API来实现其业务逻辑。
根据实施例,所描述的方法使得能够由多个微服务利用单个数据库集群。由于所有交互是经由对象服务框架执行的(这确保了每个微服务边界),因此多个微服务可以利用单个数据库集群,该单个数据库集群更易于维护和备份/恢复,降低了操作成本,并简化了从现有整体系统(monolith system)到微服务架构的过渡。
根据实施例,所描述的方法可以被用于自动执行查询优化。由于对象服务框架对对象定义以及它与其他微服务和外部系统的交互进行管理,因此它可以添加涉及多个微服务的优化。例如,在不同微服务中的对象被涉及但共享同一数据库实例的联接查询(joinedquery)情况下,对象服务框架识别哪些数据库对象被涉及,并可以将联接查询转变为单个数据库SQL查询,使得联接查询可以以对微服务所有者透明的优化方式被服务。此外,由于微服务继续拥有其自己的数据库实例,因此无需重写该微服务的目标代码(object code)来利用此优化;相反,基础设施将简单地以不同的方式转换联接查询。
跨微服务查询
如上所述,当与一起互操作或共享数据的复杂软件应用(诸如企业应用)一起使用时,在管理微服务之间的依赖性时存在特定的挑战,其中例如一个微服务可能需要从一个或多个其他微服务接收数据以恰当地运转。
应对此挑战的各种方法包括数据复制和数据混搭(data mashup)。通过数据复制,微服务可以在本地复制其他微服务所拥有的数据,使得这样的联接可被转变为性能更高的本地数据库联接。然而,此方法带来了经复制的数据的维护成本,并且经复制的数据可能不同步,因此查询结果可能不正确。
通过数据混搭,可能针对每个涉及的微服务发出多个单独的查询,然后需要可能的后处理(post processing)以在数据库外部将查询结果联接在一起。然而,从每个微服务获取的数据集可能非常大,并且混搭联接也可能非常低效。
根据实施例,本文描述的是一种用于提供跨微服务查询处理的系统和方法。该系统提供了可作为云服务被访问的对象服务框架,该框架支持对松散耦合但相关的微服务的使用。每个微服务可以被独立地开发和演进,并仅通过被定义为公共API并且然后经由该框架暴露的契约或接口来与其他微服务交互。例如,该框架可以被用来提供跨微服务层,该层自动将联接不同微服务中的对象的查询转换为为了与数据库一起使用而被优化的单个数据库查询。
图1图示了根据实施例的用于提供跨微服务查询处理的系统。
根据实施例,图1所示的以及如本文关于各种实施例进一步描述的组件和过程可以被提供为能够由计算机系统或其他类型的处理设备执行的软件或程序代码。
例如,根据实施例,本文描述的组件和过程可以由云计算系统或其他适当编程的计算机系统提供。
如图1所示,根据实施例,云计算环境100可以在云计算基础设施102上操作,该云计算基础设施包括硬件(例如,处理器、存储器)和软件资源,并且进一步包括例如一个或多个云接口104或其他应用程序接口(API),这些接口经由一个或多个负载平衡器A 106、B108提供对共享的云基础设施资源的访问。
根据实施例,可用性域131可以包括一个或多个云服务实例或微服务或提供对它们的访问。
例如,根据实施例,对数据的请求可以在一个或多个可用性域A120、B 130处接收,以供其中的微服务122、132处理。可以向云租户A 142、B 144提供云基础设施环境内的分区,租户可以在分区内访问其云资源。
根据实施例,客户端设备(诸如例如具有设备硬件162(例如,处理器、存储器)和图形用户接口166的计算设备160)可以使得用户168或管理员能够经由网络(诸如例如广域网、局域网或互联网)与云计算环境通信,以创建或更新云服务。
根据实施例,能够作为云服务而被访问的对象服务框架202支持对松散耦合但相关的微服务的使用。每个微服务(例如,微服务A210)可以被独立地部署和演进,包括微服务实现(microservice implementation)212,并且可以(例如,经由REST 218和gRPC 216)暴露一个或多个API,这些API允许微服务生命周期操作,例如以在数据库204或存储服务中创建/更新工件。
图2进一步图示了根据实施例的用于提供跨微服务查询处理的系统。
如图2所示,根据实施例,微服务实现可以包括一个或多个微服务对象A1、A2或(逻辑、业务)对象,这些对象提供微服务的逻辑或功能。
图3和图4进一步图示了根据实施例的用于提供跨微服务查询处理的系统。
如图3和图4所示,根据实施例,每个其他微服务(例如,微服务B 220、N 230)可以被类似地独立部署和演进,包括具有它们自己的微服务实现222、232(其经由REST 228和gRPC 226被暴露)以及访问数据库中的工件。特定的微服务可以是松散耦合的但以某种方式相关,例如它们一起互操作或者需要对彼此的数据的访问229、239以便处理(逻辑、业务)对象级请求217、227或查询。
图5进一步图示了根据实施例的用于提供跨微服务查询处理的系统。
如图5所示,根据实施例,每个微服务对象与元数据相关联,该元数据提供(a)内部实现定义213;以及(b)公共契约定义214;其中公共契约定义包括微服务对象的能够被外部系统访问的属性和操作。对于每个微服务,实现定义提供微服务对象及其属性与数据库表/视图之间的映射,该数据库表/视图包括例如表、列以及在适当的情况下包括其他验证或派生业务逻辑。
根据实施例,由每个微服务的公共契约定义所定义的公共属性和动作被置为能够由外部系统经由公共API和协议(诸如例如REST和gRPC)访问。
图6进一步图示了根据实施例的用于提供跨微服务查询处理的系统。
如图6所示,根据实施例,与微服务及其对象相关联的集体视图被用来将跨服务视图250填充(262、264、266)到数据库中,其示例在下面的示例1中示出,根据实施例,其中跨服务视图用于处理对象级查询。
图7进一步图示了根据实施例的用于提供跨微服务查询处理的系统。
如图7所示,根据实施例,每个微服务与数据库模式(database scheme)或数据库角色相关联,这限制了可以经由该角色访问哪些数据库工件。不同的微服务还可以通过经由REST和gRPC可访问的业务对象API来彼此交互。这样的业务对象API提供优化,而没有远程调用延迟和序列化/反序列化成本。
根据实施例,跨微服务层260被提供,其中响应于要跨多个微服务联接的查询,跨微服务层接收基于跨服务视图的对象级查询,并且使用只读模式272将该查询转换为一个或多个物理数据库(例如,SQL)查询270。然后可以利用本机数据库(例如,SQL)优化来处理该数据库查询。
根据实施例,跨微服务层经由元数据来管理对象服务框架支持的那些对象的目录,包括每个对象的公共契约(即对象如何从环境外部被访问)以及每个对象的内部实现(诸如它使用哪些表和列)。
另外,根据实施例,跨微服务层提供如下运行时(runtime),该运行时适合于例如经由REST或gRPC接口接收来自客户端的请求,并将接收到的请求从对象级查询转换为物理数据库(例如,SQL)查询。
例如,根据实施例,当所涉及的微服务共享同一数据库实例时,可以通过该基础设施将跨微服务联接查询转换为单个/经优化的数据库SQL查询来实现最佳查询性能。
图8进一步图示了根据实施例的用于提供跨微服务查询处理的系统。
根据实施例,通过应用对微服务之间以及与底层数据库的交互进行管理的基础设施,系统使得有可能在多个微服务之间利用同一数据库集群,并且同时确保微服务隔离。利用单个数据库集群将运营成本最小化,而不是强迫每个微服务拥有自己的数据库实例。
如图8所示,根据实施例,每个数据库工件与作为该工件的所有者来操作的单个/特定微服务相关联。不同的微服务不共享对单个数据库对象的访问。这意味着给定的微服务被限制直接访问另一个微服务所拥有的那些数据库工件。
例如,根据实施例,微服务A可以与数据库模式或数据库角色274相关联,该数据库模式或数据库角色对(微服务A)经由该角色能够访问哪些数据库工件进行限制。
图9进一步图示了根据实施例的用于提供跨微服务查询处理的系统。
例如,根据实施例,微服务B可以与数据库模式或数据库角色276相关联,该数据库模式或数据库角色对(微服务B)经由该角色能够访问哪些数据库工件进行限制。
如上所述,根据实施例,当响应于要跨多个微服务联接的查询而使用跨微服务层时,跨微服务层可以接收基于跨服务视图的对象级查询,并将该查询转换为跨越由各个微服务以其他方式独立拥有的数据的一个或多个物理数据库(例如,SQL)查询。
根据实施例,系统为微服务提供改变该微服务的数据库策略的灵活性,而不需要重写现有代码,并且不牺牲功能或性能,尤其是涉及多个微服务的联接查询。系统可以利用完善的数据库SQL优化,并将其使用扩展到微服务环境。
示例使用
图10-图13图示了根据实施例的用于提供跨微服务查询处理的系统的示例使用。
如图10-图13所示,根据实施例,每个其他微服务(例如,订单微服务310和产品微服务32)可以被类似地独立部署和演进,包括具有它们自己的微服务实现(其经由REST318、328和gRPC 316、326而暴露)以及访问数据库中的工件。
根据本示例中的实施例,可以使用跨服务视图针对订单对象做出对象级查询,例如:
示例1
上面所示的示例JSON表示返回订单及其行查询,订单级的条件是订单的总额(totalAmount)大于1000,或者它是否有具有产品价格大于10的行。
根据实施例,由于对象服务框架维护业务对象定义(包括它的表和列映射),因此对象服务框架能够将这样的查询转换为一个或多个物理数据库查询,例如:
示例2
根据实施例,系统可以应用数据库查询优化来将如上所示的数据库查询转换为直接返回JSON文档的一个查询,例如:
示例3
根据实施例,由于一个微服务的模式/角色不能访问另一微服务的表/视图,因此全局只读模式/角色被用来执行这样的查询。仅当需要不同微服务间的联接时,对象服务框架才自动切换到此全局只读模式/角色。
图14进一步图示了根据实施例的用于提供跨微服务查询处理的系统的示例使用。
如图14中所示,根据实施例,系统使得跨服务视图332能够用于处理对象级请求或查询(例如,如以上示例1中所示的),并且准备数据库查询336(例如以上示例2和3所示的);包括在适当的情况下使用可用的数据库查询优化。
跨微服务查询流程
图15图示了根据实施例的用于提供跨微服务查询处理的方法。
如图15所示,根据实施例,在步骤340处,每个微服务对象与元数据相关联,该元数据提供(a)内部实现定义;以及(b)公共契约定义;其中公共契约定义包括微服务对象的能够被外部系统访问的的属性和操作。
在步骤342处,对于每个微服务,实现定义提供微服务对象及其属性与数据库表/视图之间的映射,该数据库表/视图包括例如表、列以及在适当的情况下包括其他验证或派生业务逻辑。
在步骤344处,与微服务及其对象相关联的集体视图被用来将跨服务视图填充到数据库中。
在步骤346处,每个微服务与数据库模式或数据库角色相关联,该数据库模式或数据库角色限制能够经由该角色访问哪些数据库工件。
在步骤348处,由每个微服务的公共契约定义所定义的公共属性和动作被置为能够由外部系统经由公共API和协议(诸如,例如REST和gRPC)访问。
在步骤350处,跨微服务层被提供,其中响应于要跨多个微服务联接的查询,跨微服务层接收基于跨服务视图的对象级查询,并且将该查询转换为一个或多个物理数据库(例如,SQL)查询。然后本机数据库SQL优化可以被利用来处理数据库查询,以达到期望的查询优化。
根据各种实施例,本文的教导可以使用一种或多种常规通用或专用计算机、计算设备、机器或微处理器来方便地实现,包括根据本公开的教导编程的一个或多个处理器、存储器和/或计算机可读存储介质。适当的软件编码可以容易地由技术熟练的程序员基于本公开的教导准备,如将对于软件领域的技术人员来说是显而易见的。
在一些实施例中,本文的教导可以包括计算机程序产品,其是具有存储在其上/其中的指令的一种或多种非暂时性计算机可读存储介质,这些指令可以被用于对计算机编程以执行本教导的任何过程。这样的存储介质的示例可以包括但不限于硬盘驱动器、硬盘、硬驱动器、固定盘或其他机电数据存储设备、软盘、光盘、DVD、CD-ROM、微驱动器和磁光盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪存设备、磁卡或光卡、纳米系统、或适合于指令和/或数据的非暂时性存储的其他类型的存储介质或设备。
提供前述描述是为了说明和描述的目的。它不旨在是详尽的或将保护范围限制于所公开的精确形式。许多修改和变化对于本领域技术人员来说将是清楚的。
选择和描述实施例是为了最好地解释本教导的原理及其实际应用,从而使得本领域的其他技术人员能够理解各种实施例以及具有适合于所设想的特定使用的各种修改。旨在通过以下权利要求及其等同物来定义范围。
Claims (12)
1.一种用于提供跨微服务查询处理的系统,包括:
计算机,包括一个或多个处理器,所述计算机提供云计算环境和在其上操作的多个微服务;
对象服务框架,其中:
每个微服务对象与元数据相关联,所述元数据提供内部实现定义以及公共契约定义;
对于每个微服务,所述实现定义提供所述微服务对象及其属性与数据库表/视图之间的映射;
与所述多个微服务及其对象相关联的集体视图被用于将跨服务视图填充到所述数据库中;
每个微服务与数据库模式或数据库角色相关联,所述数据库模式或数据库角色限制经由该角色能够访问哪些数据库工件;以及
跨微服务层被提供,其中响应于要跨所述多个微服务联接的查询,所述跨微服务层接收基于所述跨服务视图的查询,并且将所述查询转换为一个或多个数据库查询。
2.如权利要求1所述的系统,其中,所述对象服务框架和所述跨微服务层自动地将联接不同微服务中的对象的查询转换为为了与所述数据库一起使用而被优化的单个数据库查询。
3.如权利要求1所述的系统,其中,所述对象服务框架能够作为云服务来访问,其支持对松散耦合但相关的微服务的使用。
4.如权利要求1所述的系统,其中,基于所述跨服务视图的所述对象级查询将查询转换为一个或多个数据库SQL查询,所述一个或多个数据库SQL查询跨越由各个微服务以其他方式独立拥有的数据。
5.一种用于提供跨微服务查询处理的方法,包括:
在包括一个或多个处理器的计算机处提供云计算环境和在其上操作的多个微服务;
将每个微服务对象与元数据相关联,所述元数据提供内部实现定义以及公共契约定义,其中对于每个微服务,所述实现定义提供所述微服务对象及其属性与数据库表/视图之间的映射;
使用与所述多个微服务相关联的集体视图,将跨服务视图填充到所述数据库中,其中每个微服务与数据库模式或数据库角色相关联,所述数据库模式或数据库角色限制经由该角色能够访问哪些数据库工件;以及
提供跨微服务层,其中响应于要跨所述多个微服务联接的查询,所述跨微服务层接收基于所述跨服务视图的查询,并且将所述查询转换为一个或多个数据库查询。
6.如权利要求5所述的方法,其中,所述对象服务框架和所述跨微服务层自动地将联接不同微服务中的对象的查询转换为为了与所述数据库一起使用而被优化的单个数据库查询。
7.如权利要求5所述的方法,其中,所述对象服务框架能够作为云服务来访问,其支持对松散耦合但相关的微服务的使用。
8.如权利要求5所述的方法,其中,基于所述跨服务视图的所述对象级查询将查询转换为一个或多个数据库SQL查询,所述一个或多个数据库SQL查询跨越由各个微服务以其他方式独立拥有的数据。
9.一种非暂时性计算机可读存储介质,其上具有指令,所述指令当由包括一个或多个处理器的计算机读取并执行时,使得所述计算机执行方法,所述方法包括:
在包括一个或多个处理器的计算机处提供云计算环境和在其上操作的多个微服务;
将每个微服务对象与元数据相关联,所述元数据提供内部实现定义以及公共契约定义,其中对于每个微服务,所述实现定义提供所述微服务对象及其属性与数据库表/视图之间的映射;
使用与所述多个微服务相关联的集体视图,将跨服务视图填充到所述数据库中,其中每个微服务与数据库模式或数据库角色相关联,所述数据库模式或数据库角色限制经由该角色能够访问哪些数据库工件;以及
提供跨微服务层,其中响应于要跨所述多个微服务联接的查询,所述跨微服务层接收基于所述跨服务视图的查询,并且将所述查询转换为一个或多个数据库查询。
10.如权利要求9所述的非暂时性计算机可读存储介质,其中,所述对象服务框架和所述跨微服务层自动地将联接不同微服务中的对象的查询转换为为了与所述数据库一起使用而被优化的单个数据库查询。
11.如权利要求9所述的非暂时性计算机可读存储介质,其中,所述对象服务框架能够作为云服务来访问,其支持对松散耦合但相关的微服务的使用。
12.如权利要求9所述的非暂时性计算机可读存储介质,其中,基于所述跨服务视图的所述对象级查询将查询转换为一个或多个数据库SQL查询,所述一个或多个数据库SQL查询跨越由各个微服务以其他方式独立拥有的数据。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/525,653 | 2021-11-12 | ||
US17/525,653 US11893019B2 (en) | 2021-11-12 | 2021-11-12 | System and method for providing cross-microservice query optimization |
PCT/US2021/064528 WO2023086111A1 (en) | 2021-11-12 | 2021-12-21 | System and method for providing cross-microservice query optimization |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118043800A true CN118043800A (zh) | 2024-05-14 |
Family
ID=79730612
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180102633.1A Pending CN118043800A (zh) | 2021-11-12 | 2021-12-21 | 用于提供跨微服务查询优化的系统和方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11893019B2 (zh) |
CN (1) | CN118043800A (zh) |
WO (1) | WO2023086111A1 (zh) |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190278570A1 (en) * | 2018-03-08 | 2019-09-12 | Microsoft Technology Licensing, Llc | Annotating Features of a Resource to Facilitate Consumption in Different Computing Environments |
US10798165B2 (en) | 2018-04-02 | 2020-10-06 | Oracle International Corporation | Tenant data comparison for a multi-tenant identity cloud service |
US20200177476A1 (en) * | 2018-11-29 | 2020-06-04 | Sap Se | Database Platform Integration with Third-Party CRM Services |
WO2020197975A1 (en) * | 2019-03-25 | 2020-10-01 | Fintel Labs, Inc. | Artificial intelligence-powered cloud for the financial services industry |
US10908970B1 (en) * | 2019-11-18 | 2021-02-02 | Salesforce.Com, Inc. | Data interface for secure analytic data system integration |
US11379419B2 (en) * | 2019-11-29 | 2022-07-05 | Sap Se | Autonomous intelligent data pipeline comparator |
US11171845B2 (en) * | 2020-01-03 | 2021-11-09 | International Business Machines Corporation | QoS-optimized selection of a cloud microservices provider |
US11321322B2 (en) * | 2020-03-30 | 2022-05-03 | International Business Machines Corporation | Lightweight DBMS based on functional microservices |
US11442906B2 (en) * | 2021-02-04 | 2022-09-13 | OneTrust, LLC | Managing custom attributes for domain objects defined within microservices |
-
2021
- 2021-11-12 US US17/525,653 patent/US11893019B2/en active Active
- 2021-12-21 CN CN202180102633.1A patent/CN118043800A/zh active Pending
- 2021-12-21 WO PCT/US2021/064528 patent/WO2023086111A1/en active Application Filing
-
2023
- 2023-12-29 US US18/400,573 patent/US20240134855A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240134855A1 (en) | 2024-04-25 |
US11893019B2 (en) | 2024-02-06 |
WO2023086111A1 (en) | 2023-05-19 |
US20230153304A1 (en) | 2023-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10089488B2 (en) | Systems, methods, and apparatuses for implementing cross-organizational data sharing | |
US9081837B2 (en) | Scoped database connections | |
US10152577B2 (en) | Cross tenant data access | |
JP6188732B2 (ja) | マルチテナント環境におけるテナント固有のデータ・セットを管理するための、コンピュータで実施される方法、コンピュータ・プログラム製品、およびシステム | |
WO2016169530A2 (zh) | 面向服务的模块化系统体系架构 | |
Martí et al. | Dataclay: A distributed data store for effective inter-player data sharing | |
US10120886B2 (en) | Database integration of originally decoupled components | |
US10970311B2 (en) | Scalable snapshot isolation on non-transactional NoSQL | |
US10785129B2 (en) | Computerized methods and systems for maintaining and modifying cloud computer services | |
US10620854B1 (en) | Validating data for deployment | |
US20200007631A1 (en) | Method and system for cloud service pre-provisioning | |
US11188450B2 (en) | Cloud application architecture using edge computing | |
Shao | Towards effective and intelligent multi-tenancy SaaS | |
US11720534B2 (en) | Remote code execution | |
US10459820B2 (en) | Document clustering in in-memory databases | |
US11416476B2 (en) | Event ordering based on an identifier for a transaction | |
CN118043800A (zh) | 用于提供跨微服务查询优化的系统和方法 | |
Srinivasa et al. | Comparative study of different in-memory (no/new) sql databases | |
Singh | Survey of NoSQL Database Engines for Big Data | |
Dimovski | Database management as a cloud-based service for small and medium organizations | |
US20220237191A1 (en) | System and method for supporting very large data sets in databases | |
US20240184559A1 (en) | Product lifecycle management of data migration during a system update | |
US9378468B2 (en) | Generic boxed components for multi-client systems | |
JP5673246B2 (ja) | データストア制御装置、データストア制御プログラムおよびデータストア制御方法 | |
Miličić | Getting Started with RavenDB |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |