CN107807945A - 提供数据的装置、方法和数据处理系统 - Google Patents
提供数据的装置、方法和数据处理系统 Download PDFInfo
- Publication number
- CN107807945A CN107807945A CN201710229440.8A CN201710229440A CN107807945A CN 107807945 A CN107807945 A CN 107807945A CN 201710229440 A CN201710229440 A CN 201710229440A CN 107807945 A CN107807945 A CN 107807945A
- Authority
- CN
- China
- Prior art keywords
- data
- service
- dag
- secondary data
- 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
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/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- 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
-
- 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/25—Integrating or interfacing systems involving database management systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
- G06F8/433—Dependency analysis; Data or control flow analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开描述了一种用于响应请求而提供数据的数据集成技术和系统。所述数据集成系统可通过实现服务依赖图(SDG)来克服固定调度系统的限制。特别地,所述数据集成系统可将所述SDG表示为有向无环图(DAG)。相应地,所述系统可利用所述DAG的性质以导出用于调用一个或多个服务的有效拓扑排序。因此,所述数据集成系统可按有效且可扩展的方式检索和编译数据。
Description
技术领域
本公开一般涉及数据集成的领域。更具体地,本公开涉及使用服务依赖图来集成数据。
背景技术
一般地,数据集成涉及组合源于不同来源的数据以提供有意义的信息。例如,用户可查询关于城市的各种信息(诸如,天气、酒店、人口统计资料等)。传统上,有必要以例如单个模式在单个数据库中存储这种信息。然而,使用数据集成技术,数据集成系统可与多个后端进程进行交互以从各种来源(例如,数据库)检索数据。
相应地,当从各种来源接收数据时,数据集成系统可使用各种集成技术来聚集数据。在典型的数据集成系统中,使用固定的调用时间表执行这种后端进程的处理。然而,基于固定的调用时间表,开发者通常难以共享共用处理逻辑以检索数据。相应地,使用新类型的对数据的请求,开发者可能必须要重新实现后端处理逻辑,这通常是低效的且易于出错的。
发明内容
本申请的目的在于提供一种提供数据的装置、方法和数据处理系统。
根据一个方面,提供了一种提供数据的装置,可包括:响应于对数据的请求,确定检索所述数据需要调用一个或多个服务以检索与所述数据相关联的次级数据的装置;通过分析所述服务之间的依赖性来确定检索所述次级数据所需服务的装置,其中所述依赖性存储为有向无环图(DAG)表示,所述DAG包括作为所述DAG的节点的所述服务以及作为有向边的两个服务之间的依赖关系;基于在所述DAG内的所述服务的拓扑排序确定调用所述服务的序列的装置;以及按所确定的序列检索所述次级数据的装置以及编译所述次级数据以提供所请求的数据的装置。
根据另一个方面,提供了一种提供数据的计算机实现方法,可包括:响应于对数据的请求,确定检索所述数据需要调用一个或多个服务以检索与所述数据相关联的次级数据;通过分析所述服务之间的依赖性来确定检索所述次级数据所需的服务,其中所述依赖性存储为有向无环图(DAG)表示,所述DAG包括作为所述DAG的节点的所述服务以及作为有向边的两个服务之间的依赖关系;基于在所述DAG内的所述服务的拓扑排序确定调用所述服务的序列;以及按所确定的序列检索所述次级数据并编译所述次级数据以提供所请求的数据。
根据又一个方面,提供了一种数据处理系统,该系统可包括根据本申请实施方式的提供数据的装置。
附图说明
本公开的实施方案在附图的各图中以举例而非限制的方式示出,附图中的相同参考数字指代相似的元件。
图1是示出根据本公开一个实施方案的示例系统配置的框图。
图2是示出根据本公开一个实施方案的另一个示例系统配置的框图。
图3是示出根据本公开一个实施方案的数据集成系统的示例过程流的框图。
图4A是示出根据本公开一个实施方案的示例依赖图的图。
图4B是示出根据本公开一个实施方案的在图4A中所示的依赖图的示例拓扑排序的图。
图5是示出根据本公开一个实施方案的在计算系统之间处理的示例流程图。
图6是示出根据本公开一个实施方案的使用用于调用服务的依赖图的方法的示例流程图。
图7是示出根据本公开一个实施方案的示例计算系统的框图。
具体实施方式
以下将参考所讨论的细节来描述各种实施方案和方面,附图将示出所述各种实施方案。以下描述和附图是说明性的而不应当解释为限制性的。描述了许多特定细节以提供对各种实施方案的全面理解。然而,在某些情况中,并未描述众所周知或常规的细节以提供对实施方案的简洁讨论。本说明书中对“一个实施方案”或“一实施方案”的提及意味着结合该实施方案所描述的特定特征、结构或特性可包括在至少一个实施方案中。短语“在一个实施方案中”在本说明书中各个地方的出现不必全部是指同一实施方案。
如上所述,开发数据集成系统的挑战是提供用于处理请求的有效机制的能力。本文所述的技术和系统克服了固定调度系统的限制。在一些实施方案中,数据集成系统可指代服务依赖图(SDG)。另外,在一些实施方案中,可对SDG进行预编译以允许开发者访问和重新使用处理逻辑。例如,在一个实施方案中,可将SDG建模为有向无环图(DAG)。由于DAG的性质,可导出有效的拓扑排序。基于导出的排序,调度器可确定用于访问一个或多个服务的有效序列。可在系统内实现这种数据集成技术。
图1为示出根据本公开一个实施方案的示例系统配置的框图。系统100可包括一个或多个客户端装置101,其经网络103通信地联接到服务器104。客户端装置101(或客户端或装置)可以是任何类型的计算装置,诸如,个人计算机(例如,台式计算机、膝上型计算机和平板计算机)、“薄”客户端、个人数字助理(PDA)、支持网络的器具、智能手表或移动电话(例如,智能手机)等。网络103可以是任何类型的有线或无线网络,诸如局域网(LAN)、诸如互联网的广域网(WAN)或其组合。服务器104可以是任何类型的服务器或服务器集群且可包括基于网络或云的服务器、应用服务器、后端服务器或其组合。服务器104还包括允许装置(诸如,客户端装置101)访问由服务器104提供的资源或服务的接口(未示出)。所述接口可包括网络接口、应用编程接口(API)或命令行接口(CLI)。
在一个实施方案中,服务器104可包括作为数据集成系统一部分的一个或多个组件(或模块、单元或逻辑等)。在一个实施方案中,这些组件可包括调度器110、调用器120、汇编器130、搜索引擎140和一个或多个服务106。另外,服务器104还可包括存储依赖关系150和数据160的一个或多个数据存储库(或存储器或数据库等)或者服务器104可与存储依赖关系150和数据160的一个或多个数据存储库(或存储器或数据库等)进行通信。
调度器110可确定用于响应于对数据的请求而发起处理的时间表(序列或排序)。如本文所提及的,数据可以是采用任何合适数据结构形式的任何信息形式(例如,搜索结构、文件、文档等)。如本文进一步描述的,数据160可包括初级数据或次级数据。调度器110可基于所存储的依赖关系150确定用于获得数据160的时间表。如本文进一步描述的,可将依赖关系150表示为服务依赖图(SDG)。例如,在一个实施方案中,SDG可以是有向无环图(DAG)。
基于所确定的时间表,调用器120可协调用于获得(例如,检索或创建)数据160的服务106的发起(例如,调用)。如本文所提及的,服务可包括用于确定或检索数据160的任何过程、操作、功能、指令、计算、方法等。例如,服务可包括简单地发起从数据库进行的数据检索。在另一个示例中,服务可包括执行一个或多个功能或过程以确定或创建数据。一旦获得所要求的数据,汇编器130则可编译(和汇编、过滤等)所获得的数据。随后,可作为请求结果提供所编译的数据。
在一些实施方案中,可从搜索引擎140接收对数据的请求。应注意,上述组件可以是搜索引擎140的一部分或与其协力工作。搜索引擎140可包括被设计成在万维网上搜索信息的网络搜索引擎。搜索引擎140可以是任何搜索引擎,诸如获自百度公司的搜索引擎,或可替代地,搜索引擎140可表示搜索引擎、Microsoft BingTM搜索引擎、搜索引擎或另一类型的搜索引擎。搜索引擎140可基于所获得的数据提供结果(或响应)。可按任何合适的形式提供结果,其包括采用网页、图像、广告、文档、文件和其他类型数据结构的形式的信息。搜索引擎140还可通过运行用于维护索引的算法(例如,网络爬虫)来维护实时信息。例如,当用户将查询(或请求)输入搜索引擎(通常是通过使用关键字来进行的)中时,引擎检查其索引并提供结果列表。如本文进一步描述的,当接收到请求时,服务器104可实时地调度服务106以获得作为结果的一部分的数据。例如,响应于查询,搜索引擎140可提供作为搜索结果的一部分的编译数据。还应注意,搜索引擎140可采用各种技术以提供搜索结果(例如,排名算法),且本文的实施方案可与这些技术相组合以提供搜索结果。关于系统100的配置,其他架构或配置也是适用的。
图2是示出根据本公开一个实施方案的另一个示例系统配置的框图。如在这个附加示例配置中所示,搜索引擎140可以是独立组件(例如,独立服务器),其将请求/响应发送到客户端101。相应地,搜索引擎140可通过与服务器104(或数据集成系统)通信来充当中间物。服务器140可转而与如上所述的也可以是一个或多个独立服务器的一部分的一个或多个服务106进行通信。相应地,数据160可与特定服务106相关联并进行存储,从而可遍布各种服务器。还应注意,可通过网络将数据160在独立服务器(如内容服务器)中进行维护和托管。可由与服务器104相同的提供者或组织来组织和提供这种内容服务器或附加的服务器。可替代地,可由负责在内容数据库中管理内容的独立提供者或组织(例如,第三方提供者)来维护或托管这种内容服务器或附加的服务器。
图3是示出根据本公开一个实施方案的数据集成系统302的示例过程流的框图。如图所示,可从客户端装置101接收请求310。请求310可包括任何形式的查询,诸如文本查询(包括如上所述的源于搜索引擎140的查询)或其他形式的请求。随后,请求310可由数据集成系统302进行处理。例如,数据集成系统302(例如,服务器104)可解析请求310的背景并确定处理请求所需的要求。在一些实施方案中,数据集成系统302可使用如上所示的一个或多个组件来处理请求310。例如,处理可包括采用调度器110。基于处理请求所需的要求,调度器110可参考依赖图330,依赖图330可作为用于依赖关系150的数据存储库的一部分而进行存储。如本文进一步描述的,可由调度器参考依赖图330以确定调用一个或多个服务(例如,服务106)的序列。一旦确定了调用服务的序列,调度器110则可将该信息提供给调用器120。如上所述,调用器可协调用于获得(例如,检索或创建)所要求数据的服务(例如,服务106)的发起(例如,调用)。随后,可将该数据提供至汇编器130以编译并过滤数据。在一个实施方案中,汇编器130随后构建结果320以作为对请求的响应来进行提供。随后,可将结果320提供至客户端装置101。
应注意,尽管该过程示出各种组件,但在一些实施方案中,也可使用不一定根据如在本示例中所示的组件进行分类的操作来由服务器104执行该过程。
图4A是示出根据本公开一个实施方案的示例性依赖图330的图。当处理请求(例如,请求310)时,数据集成系统302可确定数据之间的依赖性。在一个实施方案中,这可包括确定检索或创建数据的服务(例如,服务106)之间的依赖性。如上所述,调度器110可参考依赖图330以调度服务或直接检索数据。在一些实施方案中,依赖图330可以是有向无环图(DAG)表示,如在本示例中所示。DAG可包括由有向边425(或有向弧、线、箭头)连接的节点415。服务可表示为节点415(例如,服务A、B、C和D,如在本示例中所示)且两个服务之间的依赖关系可表示为有向边(例如,边425)。第一服务可依赖于一个或多个其他服务。相应地,在第一服务前,需要执行其他服务。如在本示例中所示,服务A依赖于服务B和服务C;服务B依赖于服务C和服务D;而服务C和D并不依赖于任何其他的服务。相应地,在服务A之前必须执行服务B和C;在服务B之前必须执行服务C和D,以此类推。另外,由于DAG的性质,在同一方向上没有边的循环(例如,环路)。例如,尽管在A、B和C之间存在边的环路,但该环路在循环中不是有向的(例如,没有从C至A的边)。因此在本示例中,没有边的循环。另外,如图所示,经边A->C(例如,425)将节点A连接到节点C,相应地,A称为C的父节点,C称为A的子节点。每个节点可具有0、1或若干父节点,以及0、1或若干子节点。
由于DAG的性质,其可在数学背景下进行描述。例如,给定对依赖性“a要求先估算b”进行建模的一组对象S和传递关系其中(a,b)∈R,依赖图则为图G=(S,T),其中且R为T的传递闭包。另外,基于DAG的构造,数据集成系统可基于所表示的服务或数据的依赖性导出估算顺序(或序列)。例如,如果依赖图不具有任何循环依赖性(例如,其为DAG),则可由拓扑排序求出估算顺序。
图4B是示出根据本公开一个实施方案的图4A中所示依赖图的示例拓扑排序的图。如本文所述,调度器110可确定用于服务的排序。在数学背景下,正确的估算顺序为编号n:对象中的S→N形成依赖图中的节点,以使得下列等式成立:其中a,b∈S。换句话说,如果两个元素a和b的编号顺序使得在b之前先估算a,那么a一定不能依赖于b。还应注意,可能有多于一个的正确的估算顺序。例如,正确的编号为拓扑顺序且任何拓扑顺序均是正确的编号。因此,任何导出正确拓扑顺序的算法均可导出正确的估算顺序。例如,如在本示例中所示,可将依赖图330示为依赖树450。如图所示,拓扑顺序460可包括{D、C、B和A}或{C、D、B和A}。
相应地,基于所确定的依赖性,数据集成系统(例如,调度器110)可确定调用序列。序列可包括在其他服务之前调用某些服务,以及并行地(或同时地)调用某些服务。例如,在本示例中,可并行地调用(例如,执行)服务C和D。这提供了任何有效性并向系统(或开发者)提供了有效管理资源的能力。
在确定拓扑顺序时,数据集成系统可采用任何合适的算法。另外,在一些实施方案中,可对特定节点进行加权,可基于每个节点的特定权重排序。例如,可基于加权来使某些服务优先。也可基于一个或多个实施要求对节点进行逻辑操纵或组合。
当获得请求所需的数据时,可能需要各种服务或检索。例如,通常都不是可从单个来源或服务检索到请求所需的数据的情况。相应地,在一些实施方案中,需要其他数据形式,诸如次级数据,以提供对请求的响应。如本文所提及的,次级数据可包括任何形式的数据,其可以是初级数据(或数据)的一部分或与其相关联。例如,初级数据可以是用户经客户端装置(例如,客户端装置101)请求的数据。在一些实施方案中,需要次级数据以检索或确定初级数据。例如,次级数据可以是用作初级数据的索引信息的信息。
例如,在图4A和4B中所示的依赖图330的上下文中,请求310可包括检索用户信息和上下文信息。这种信息可包括诸如年龄、用户简档名称、图片、就业信息、地理位置、先前搜索历史、社交网络连接等的信息。相应地,一个或多个服务106可用于导出这种信息。相应地,在这样的示例中,用户信息和联系信息可对应于节点A。为了提供简档信息,可通过访问服务B来要求图片,且转而,为了检索图片信息,可能需要访问社交网络连接服务D。类似地,为了提供用于服务A和服务B的档案信息,可能需要从服务C检索用户名信息。因此,依赖图330可提供用于服务和数据检索的有效排序。
图5为根据本公开一个实施方案的计算系统之间的处理的示例流程图。如本文所述,可驻于服务器104上或为服务器104一部分的数据集成系统(例如,数据集成系统302)可与一个或多个计算装置(例如,客户端装置101和服务106)进行通信和交互。如上所述,可由客户端装置101提供请求310并在服务器104接收该请求。服务器104可处理请求,包括发起调度器110以确定调用一个或多个服务106的序列。可将该序列提供至调用器120,调用器120可向一个或多个服务106发起经排序的服务调用502。一个或多个服务106可向服务器104提供所需数据504。汇编器130可编译并过滤数据并将结果320提供到客户端装置101。
图6是示出根据本公开一个实施方案使用用于调用服务的依赖图的方法的示例流程图。过程600可使用处理逻辑,其可包括软件、硬件或其组合。例如,该过程600可由服务器(例如,服务器104)或计算装置或装置来执行。在框601中,服务器可接收对数据的请求(例如,请求310)。在框602中,服务器可确定检索数据需要调用一个或多个服务(例如,服务106)以检索与数据相关联的次级数据。在框603中,服务器可通过分析服务之间的依赖性而确定检索次级数据所需的服务,其中将依赖性作为有向无环图(DAG)表示(例如,依赖图330)而存储,其中DAG包括作为DAG节点的服务以及作为有向边的两个服务之间的依赖关系。
在框604中,服务器可基于DAG内服务的拓扑排序来确定调用服务的序列。在一个实施方案中,序列可包括在调用服务中的一个或多个服务各自的依赖性服务之后对服务中的一个或多个服务进行调用。例如,如在图4B中所示,可在调用服务C和D之后调用服务B。另外,序列可包括:并行调用不存在任何剩余依赖性服务的服务中的一个或多个。例如,如在上面图4B的示例中所示,可并行地调用服务C和D。在一个实施方案中,可通过第一服务器(例如,具有汇编器130的)对所检索的次级数据进行编译(或汇编)以提供所请求的数据。在框605中,服务器可按确定的序列检索次级数据并编译次级数据以提供作为结果(例如,结果320)的所请求的数据。例如,在一个实施方案中,按确定的序列检索次级数据包括通过调用组件(例如,调用器120)按预定序列发起服务以从第二服务器检索次级数据。相应地,在一些实施方案中,上述配置可提供响应于对数据的请求而调用一个或多个服务的有效机制。
应注意,在不脱离本文所述的实施方案的情况下,可能存在有本文所述的流程图或步骤(或操作)的变型。例如,可并行地、同时地、按不同的顺序执行步骤或可添加、删除或修改步骤。另外,包括作为示例的如本文所述的框图。这些配置不是所有组件的穷举而是可能存在有这些图的变型。在不脱离本文所述的实施方案的情况下,可使用其他布置和组件。例如,可添加、省略组件,组件可按本领域的普通技术人员已知的方式进行交互。
图7是示出根据本公开一个实施方案的示例计算系统的框图。例如,系统1500可以表示以上所述的执行上述过程或方法中的任一个的任一数据处理系统,例如上述的服务器104或客户端101。系统1500可包括许多不同的组件。在一个实施方案中,系统1500包括通过总线或互连件1510连接的处理器1501、存储器1503以及装置1505-1508。处理器1501可表示其中包括单个处理器内核或多个处理器内核的单个处理器或多个处理器。处理器1501可表示一个或多个通用处理器,诸如微处理器、中央处理单元(CPU)等。处理器1501还可以是一个或多个专用处理器,诸如专用集成电路(ASIC)、蜂窝或基带处理器、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器、图形处理器、网络处理器、通信处理器、加密处理器、协同处理器、嵌入式处理器或能够处理指令的任何其他类型的逻辑。
处理器1501可被配置成执行指令以执行本文所讨论的操作和步骤。系统1500还可包括与可选的图形子系统1504通信的图形接口,图形子系统1504可包括显示控制器、图形处理器和/或显示装置。
处理器1501可以与存储器1503通信,存储器1503在一个实施方案中可以通过多个存储器装置实现以提供给定量的系统存储器。存储器1503可包括一个或多个易失性存储(或存储器)装置,诸如随机存取存储器(RAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)或其他类型的存储装置。
系统1500还可包括I/O装置,诸如装置1505-1508,包括网络接口装置1505、可选的输入装置1506以及其他可选的I/O装置1507。网络接口装置1505可包括无线收发器和/或网络接口卡(NIC)。所述无线收发器可以是Wi-Fi收发器、红外收发器、蓝牙收发器、WiMax收发器、无线蜂窝电话收发器、卫星收发器(例如,全球定位系统(GPS)收发器)或其他射频(RF)收发器或其组合。NIC可以是以太网卡。
输入装置1506可包括鼠标、触摸板、触敏屏幕(其可以与显示装置1504整合在一起)、指示装置(诸如指示笔)和/或键盘(例如,物理键盘或作为触敏屏幕的一部分显示的虚拟键盘)。例如,输入装置1506可包括联接到触摸屏的触摸屏控制器。触摸屏和触摸屏控制器例如可以使用多种触摸灵敏度技术(包括但不限于电容、电阻、红外和表面声波技术)中的任一种,以及用于确定与触摸屏的一个或多个接触点的其他接近传感器阵列或其他元件来检测其触点和移动或间断。
I/O装置1507可包括音频装置。音频装置可包括扬声器和/或麦克风,以促进支持语音的功能,诸如语音识别、语音复制、数字记录和/或电话功能。其他I/O装置1507还可包括通用串行总线(USB)端口、并行端口、串行端口、打印机、网络接口、总线桥(例如,PCI-PCI桥)、传感器(例如,运动传感器,诸如加速度计、陀螺仪、磁强计、光传感器、罗盘、接近传感器等)或其组合。装置1507还可包括成像处理子系统(例如,摄像机),所述成像处理子系统可包括用来促进摄像机功能(诸如记录照片和视频片段)的光学传感器,诸如电荷耦合装置(CCD)或互补金属氧化物半导体(CMOS)光学传感器。某些传感器可以通过传感器集线器(未示出)联接到互连件1510,而其他装置诸如键盘或热传感器可以由嵌入式控制器(未示出)控制,这依赖于系统1500的特定配置或设计。
存储装置1508可包括计算机可访问的存储介质1509(也被称为机器可读存储介质或计算机可读介质),其上存储有体现任何一种或多种本文所述方法或功能的一个或多个指令集或软件(例如,组件、模块、单元和/或逻辑1528)。
组件/模块/单元/逻辑1528可表示以上所述的任何组件,例如,搜索引擎140、调度器110、调用器120、汇编器130和服务106(以及相关的模块和子模块)。组件/模块/单元/逻辑1528还可以在其由数据处理系统1500、存储器1503和处理器1501执行期间完全地或至少部分地驻留在存储器1503内和/或处理器1501内,另外构成机器可访问的存储介质。另外,组件/模块/单元/逻辑1528可以实现为硬件装置内的固件或功能电路。此外,组件/模块/单元/逻辑1528可以以硬件装置和软件组件的任何组合实现。
应注意,虽然系统1500被示出为具有数据处理系统的各种组件,但是其不旨在表示任何具体的架构或互连组件的方式;因为此类细节和本公开的实施方案没有密切关系。还应当认识到,具有更少组件或可能具有更多组件的网络计算机、手持计算机、移动电话、服务器和/或其他数据处理系统也可与本公开的实施方案一起使用。
前述详细描述中的一些部分已经依据在计算机存储器内对数据位的运算的算法和符号表示而呈现。这些算法描述和表示是数据处理领域中的技术人员所使用的方法,以最有效地将它们的工作实质传达给本领域中的其他技术人员。这里,算法通常被认为是导致所期望结果的前后一致的操作序列。这些操作是指需要对物理量进行物理操控的步骤。
然而,应当牢记,所有这些和类似的术语均意图与适当的物理量关联,并且仅仅是应用于这些量的适宜标记。除非在以上讨论中另外明确地说明清楚,否则应当了解,贯穿本说明书利用术语(诸如以下权利要求书中所阐述的术语)的讨论是指计算机系统或类似电子计算装置的动作和处理,所述计算机系统或电子计算装置操控计算机系统的寄存器和存储器内的表示为物理(例如,电子)量的数据,并将所述数据变换成计算机系统存储器或寄存器或其他此类信息存储器、传输或显示装置内类似地表示为物理量的其他数据。
各图中所示的技术可以使用存储和执行于一个或多个电子装置上的代码及数据来实现。此类电子装置使用计算机可读介质来存储和传达(在内部和/或通过网络与其他电子装置)代码及数据,所述计算机可读介质是诸如非暂时性计算机可读存储介质(例如,磁盘、光盘、随机存取存储器;只读存储器、闪存存储器装置、相变存储器)。
前述附图中所描绘的过程或方法可由处理逻辑来执行,所述处理逻辑包括硬件(例如,电路、专用逻辑等)、固件、软件(例如,体现在非暂时性计算机可读介质上)或两者的组合。尽管所述过程或方法在上文是依据一些顺序操作来描述的,但是应当了解,所描述操作中的一些可以按不同的次序执行。此外,一些操作可以并行地而不是顺序地执行。
在以上的说明书中,已经参考本公开的具体示例性实施方案对其实施方案进行了描述。将显而易见的是:在不脱离如以下权利要求书中阐述的本发明的更宽泛精神和范围的情况下,可以对其做出各种修改。因此,应当在说明性意义而不是限制性意义上来理解本说明书和附图。
Claims (15)
1.一种提供数据的装置,包括:
响应于对数据的请求,确定检索所述数据需要调用一个或多个服务以检索与所述数据相关联的次级数据的装置;
通过分析所述服务之间的依赖性来确定检索所述次级数据所需服务的装置,其中所述依赖性存储为有向无环图(DAG)表示,所述DAG包括作为所述DAG的节点的所述服务以及作为有向边的两个服务之间的依赖关系;
基于在所述DAG内的所述服务的拓扑排序确定调用所述服务的序列的装置;以及
按所确定的序列检索所述次级数据的装置以及编译所述次级数据以提供所请求的数据的装置。
2.如权利要求1所述的提供数据的装置,其中,所述序列包括:在调用所述服务中的一个或多个服务各自的依赖性服务后调用所述服务中的所述一个或多个服务。
3.如权利要求2所述的提供数据的装置,其中,所述序列包括:并行调用所述服务中不具有任何剩余依赖性服务的一个或多个服务。
4.如权利要求1所述的提供数据的装置,其中,按所确定的序列检索所述次级数据的装置包括调用组件,所述调用组件按所确定的序列发起所述服务以从第二服务器检索所述次级数据。
5.如权利要求1所述的提供数据的装置,其中,编译所述次级数据以提供所请求的数据的装置包括汇编组件,所述汇编组件编译所检索的次级数据。
6.如权利要求5所述的提供数据的装置,其中,所述汇编组件进一步过滤所检索的次级数据。
7.如权利要求1所述的提供数据的装置,进一步包括:在接收所述对数据的请求前对DAG进行预编译的装置。
8.一种提供数据的计算机实现方法,包括:
响应于对数据的请求,确定检索所述数据需要调用一个或多个服务以检索与所述数据相关联的次级数据;
通过分析所述服务之间的依赖性来确定检索所述次级数据所需的服务,其中所述依赖性存储为有向无环图(DAG)表示,所述DAG包括作为所述DAG的节点的所述服务以及作为有向边的两个服务之间的依赖关系;
基于在所述DAG内的所述服务的拓扑排序确定调用所述服务的序列;以及
按所确定的序列检索所述次级数据并编译所述次级数据以提供所请求的数据。
9.如权利要求8所述的方法,其中,所述序列包括:在调用所述服务中的一个或多个服务各自的依赖性服务后调用所述服务中的所述一个或多个服务。
10.如权利要求9所述的方法,其中,所述序列包括:并行调用所述服务中不具有任何剩余依赖性服务的一个或多个服务。
11.如权利要求8所述的方法,其中,按所确定的序列检索所述次级数据包括:由调用组件按所确定的序列发起所述服务以从第二服务器检索所述次级数据。
12.如权利要求8所述的方法,其中,编译所述次级数据以提供所请求的数据包括:由汇编组件编译所检索的次级数据。
13.如权利要求12所述的方法,其中,编译所述次级数据以提供所请求的数据还包括:由所述汇编组件过滤所检索的次级数据。
14.如权利要求9所述的方法,其中,在接收所述对数据的请求前对DAG进行预编译。
15.一种数据处理系统,包括如权利要求1至7中任一项所述的提供数据的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/261,459 US10650048B2 (en) | 2016-09-09 | 2016-09-09 | Managing complex service dependencies in a data integration system |
US15/261,459 | 2016-09-09 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107807945A true CN107807945A (zh) | 2018-03-16 |
Family
ID=61560036
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710229440.8A Pending CN107807945A (zh) | 2016-09-09 | 2017-04-10 | 提供数据的装置、方法和数据处理系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10650048B2 (zh) |
CN (1) | CN107807945A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111221643A (zh) * | 2018-11-23 | 2020-06-02 | 阿里巴巴集团控股有限公司 | 任务处理方法和任务处理装置 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110798821B (zh) * | 2019-09-12 | 2023-04-07 | 腾讯科技(深圳)有限公司 | 车辆编队的方法、装置及电子设备 |
US11218381B2 (en) | 2019-10-04 | 2022-01-04 | Cisco Technology, Inc. | Service tagging optimization for intent-based networking |
US11088928B2 (en) | 2019-10-15 | 2021-08-10 | Cisco Technology, Inc. | Service aware conditional path monitoring |
US11201799B2 (en) | 2019-10-15 | 2021-12-14 | Cisco Technology, Inc. | Intelligent selection of vantage points for monitoring subservices based on potential impact to services |
CN112825525B (zh) * | 2019-11-20 | 2023-06-16 | 北京百度网讯科技有限公司 | 用于处理事务的方法和装置 |
US11228507B2 (en) * | 2019-12-05 | 2022-01-18 | Cisco Technology, Inc. | Baselining service-tagged data from subservices of a service for service assurance |
US11907756B2 (en) * | 2020-02-20 | 2024-02-20 | Intel Corporation | Concurrent workload scheduling with multiple level of dependencies |
US11204961B1 (en) * | 2020-09-29 | 2021-12-21 | Atlassian Pty Ltd. | Apparatuses, methods, and computer program products for dynamic generation and traversal of object dependency data structures |
US11442711B2 (en) * | 2020-12-07 | 2022-09-13 | Sap Se | Serial ordering of software objects with cyclic dependencies |
WO2022164418A1 (en) * | 2021-01-26 | 2022-08-04 | Futurewei Technologies, Inc. | Near data processing (ndp) in network nodes |
US11954517B2 (en) * | 2021-05-04 | 2024-04-09 | Visa International Service Association | Computer-implemented method and system for providing dynamic endpoints for performing data transactions |
US11586482B2 (en) * | 2021-06-02 | 2023-02-21 | EMC IP Holding Company LLC | Deployment of services with dependencies |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7620653B1 (en) * | 2006-02-01 | 2009-11-17 | Amazon Technologies, Inc. | Service for retrieving and aggregating data used to generate web pages or other content items |
CN102089752A (zh) * | 2008-07-10 | 2011-06-08 | 洛克泰克科技有限公司 | 依赖性问题的有效率的并行计算 |
CN102298607A (zh) * | 2010-05-27 | 2011-12-28 | 微软公司 | 数据集成的方案合约 |
CN103870455A (zh) * | 2012-12-07 | 2014-06-18 | 阿里巴巴集团控股有限公司 | 一种多数据源的数据集成处理方法和装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7337184B1 (en) * | 2002-07-17 | 2008-02-26 | International Business Machines Corporation | Topology mapping of a multitier compute infrastructure |
US7096459B2 (en) * | 2002-09-11 | 2006-08-22 | International Business Machines Corporation | Methods and apparatus for root cause identification and problem determination in distributed systems |
US8793690B2 (en) * | 2009-10-09 | 2014-07-29 | International Business Machines Corporation | Generating timing sequence for activating resources linked through time dependency relationships |
US10523502B2 (en) * | 2014-05-29 | 2019-12-31 | Abb Schweiz Ag | Method and system for configuration of devices of a control system |
US10474445B2 (en) * | 2015-12-07 | 2019-11-12 | Microsoft Technology Licensing, Llc | Updating dependent services |
US10432471B2 (en) * | 2015-12-31 | 2019-10-01 | Microsoft Technology Licensing, Llc | Distributed computing dependency management system |
-
2016
- 2016-09-09 US US15/261,459 patent/US10650048B2/en active Active
-
2017
- 2017-04-10 CN CN201710229440.8A patent/CN107807945A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7620653B1 (en) * | 2006-02-01 | 2009-11-17 | Amazon Technologies, Inc. | Service for retrieving and aggregating data used to generate web pages or other content items |
CN102089752A (zh) * | 2008-07-10 | 2011-06-08 | 洛克泰克科技有限公司 | 依赖性问题的有效率的并行计算 |
CN102298607A (zh) * | 2010-05-27 | 2011-12-28 | 微软公司 | 数据集成的方案合约 |
CN103870455A (zh) * | 2012-12-07 | 2014-06-18 | 阿里巴巴集团控股有限公司 | 一种多数据源的数据集成处理方法和装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111221643A (zh) * | 2018-11-23 | 2020-06-02 | 阿里巴巴集团控股有限公司 | 任务处理方法和任务处理装置 |
CN111221643B (zh) * | 2018-11-23 | 2023-04-07 | 阿里巴巴集团控股有限公司 | 任务处理方法和任务处理装置 |
Also Published As
Publication number | Publication date |
---|---|
US10650048B2 (en) | 2020-05-12 |
US20180075158A1 (en) | 2018-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107807945A (zh) | 提供数据的装置、方法和数据处理系统 | |
AU2019275615B2 (en) | Classifying user behavior as anomalous | |
TWI748175B (zh) | 資料的處理方法、裝置及設備 | |
Strohbach et al. | Towards a big data analytics framework for IoT and smart city applications | |
WO2017202125A1 (zh) | 文本分类方法及装置 | |
US10108701B2 (en) | System and method for determining context | |
CN109964216A (zh) | 识别未知数据对象 | |
US20200117758A1 (en) | Dynamically enhancing query results | |
US10528800B2 (en) | Automated facial recognition detection | |
US12026528B1 (en) | Mixed-grained detection and analysis of user life events for context understanding | |
CN107644286A (zh) | 工作流处理方法及装置 | |
US20200167427A1 (en) | Training an artificial intelligence to generate an answer to a query based on an answer table pattern | |
US20180191860A1 (en) | Context management for real-time event awareness | |
US10735463B2 (en) | Validating commands for hacking and spoofing prevention in an Internet of Things (IoT) computing environment | |
Varshney et al. | Human activity recognition by combining external features with accelerometer sensor data using deep learning network model | |
Chen et al. | Silhouette: Efficient cloud configuration exploration for large-scale analytics | |
Gvishiani et al. | Chapter 6 big data and FAIR data for data science | |
Zhang et al. | A parallel strategy for convolutional neural network based on heterogeneous cluster for mobile information system | |
JP2023544904A (ja) | 機械学習パイプラインの分散型リソースアウェアトレーニング | |
US11416686B2 (en) | Natural language processing based on user context | |
US11244007B2 (en) | Automatic adaption of a search configuration | |
Choi et al. | Improving performance through rest open api grouping for wireless sensor network | |
US20140244521A1 (en) | Systems and methods for legal data processing | |
US8712995B2 (en) | Scoring records for sorting by user-specific weights based on relative importance | |
US10642819B2 (en) | Automate telling data-rich stories within analytics dashboard |
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 |