CN102866924B - 内容整合引擎调度方法及装置 - Google Patents

内容整合引擎调度方法及装置 Download PDF

Info

Publication number
CN102866924B
CN102866924B CN201210337027.0A CN201210337027A CN102866924B CN 102866924 B CN102866924 B CN 102866924B CN 201210337027 A CN201210337027 A CN 201210337027A CN 102866924 B CN102866924 B CN 102866924B
Authority
CN
China
Prior art keywords
mashlet
queue
pmt
mashup
time
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.)
Active
Application number
CN201210337027.0A
Other languages
English (en)
Other versions
CN102866924A (zh
Inventor
孙海龙
刘旭东
徐静波
王旭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tianhang Changying (Jiangsu) Technology Co.,Ltd.
Original Assignee
Beihang University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beihang University filed Critical Beihang University
Priority to CN201210337027.0A priority Critical patent/CN102866924B/zh
Publication of CN102866924A publication Critical patent/CN102866924A/zh
Application granted granted Critical
Publication of CN102866924B publication Critical patent/CN102866924B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种内容整合引擎调度方法及装置,其中该方法包括将待运行的内容整合Mashup应用分解为多个调度支Mashlet;根据各Mashlet运行的预估时长,分别确定将各入度为零的Mashlet加入队列的起始时间点,Mashlet运行的预估时长为Mashlet包括的各操作子运行的预估时长之和,将各入度为零的Mashlet加入队列,并且在队列中具有相同输出节点的两个或多个Mashlet均运行完成之后,将输出节点对应的Mashlet加入队列;从操作子池中调用队列中的Mashlet包括的各操作子,运行队列中的Mashlet,直至队列中的Mashlet全部运行完成。通过尽量避免Mashup运行时同步等待的发生,在时间上更紧凑地使用Mashup平台中的内存资源,提升内存资源的有效利用率,进而提升整个Mashup平台的性能。

Description

内容整合引擎调度方法及装置
技术领域
本发明涉及计算机及网络技术,尤其涉及一种内容整合引擎调度方法及装置。
背景技术
随着以网络技术为代表的新兴计算技术的发展,基于面向服务的体系结构(Service Oriented Architecture,SOA)将信息系统组件封装并发布为可通过互联网访问的标准的Web服务,在这样的背景下,提出了内容整合(Mashup)的概念。Mashup是Web2.0的代表技术之一,Mashup是指将不同来源的数据或服务进行组合,构建出一种具有新型功能的网络应用。既可以完成服务的快速构建,也可以满足用户自主参与进行数据处理的需求。
Mashup平台中的Mashup应用由一个或多个操作子(Operator)组成,Operator也可以被称为节点。Mashup平台中的运行引擎对Mashup应用进行运行时,各Operator对数据流进行简要的加工,整个运行过程中数据流占用Mashup平台中的内存资源。根据Mashup应用的数据流的特点,对于从两个或多个节点接收数据的汇聚节点,该汇聚节点会在同步等待各输入数据流全部流入之后,对数据流进行相应的处理,并将处理后的数据流输出至下一节点。
但是,如果汇聚节点的多个输入数据流中有一个或多个未准备完毕,即有数据流未输入该汇聚节点,则即使其他各数据流已输入该汇聚节点,该汇聚节点也无法进行相应的处理,使得已准备完毕的各输入的数据流依然占用内存,造成内存资源无法及时得到释放,会造成数据流的阻塞,因此,现有技术中Mashup平台的内存资源的利用率较低。
发明内容
本发明提供了一种内容整合引擎调度方法及装置,用于提高Mashup平台内存资源的利用率。
本发明的第一个方面是提供一种内容整合引擎调度方法,包括:
将待运行的内容整合Mashup应用分解为多个调度支Mashlet,所述Mashlet包括一个或多个操作子;
根据各所述Mashlet运行的预估时长,分别确定将各入度为零的Mashlet加入队列的起始时间点,所述Mashlet运行的预估时长为所述Mashlet包括的各所述操作子运行的预估时长之和,以使具有相同输出节点的两个或多个Mashlet运行完成的时间差在预设的时间范围内;
根据所述起始时间点,将所述各入度为零的Mashlet加入所述队列,并且在所述队列中具有相同输出节点的两个或多个Mashlet均运行完成之后,将所述输出节点对应的Mashlet加入所述队列;
从操作子池中调用所述队列中的Mashlet包括的各所述操作子,运行所述队列中的Mashlet,直至所述队列中的Mashlet全部运行完成。
本发明的另一个方面是提供一种内容整合引擎,包括:
分解器,用于将待运行的内容整合Mashup应用分解为多个Mashlet,所述Mashlet包括一个或多个操作子;根据各所述Mashlet运行的预估时长,分别确定将各入度为零的Mashlet加入队列的起始时间点,所述Mashlet运行的预估时长为所述Mashlet包括的各所述操作子运行的预估时长之和,以使具有相同输出节点的两个或多个Mashlet运行完成的时间差在预设的时间范围内;
队列处理器,用于根据所述起始时间点,将所述各入度为零的Mashlet加入所述队列,并且在所述队列中具有相同输出节点的两个或多个Mashlet均运行完成之后,将所述输出节点对应的Mashlet加入所述队列;
执行器,用于从操作子池中调用所述队列中的Mashlet包括的各所述操作子,运行所述队列中的Mashlet,直至所述队列中的Mashlet全部运行完成。
本发明的又一个方面是提供一种内容整合平台,包括上述内容整合引擎。
本发明实施例提供的内容整合引擎调度方法及装置,将待运行的内容整合Mashup应用分解为多个包括至少一个操作子的Mashlet,在根据各Mashlet运行的预估时长,分别确定了将各入度为零的Mashlet加入队列的起始时间点之后,根据各起始时间点,分别将各入度为零的Mashlet加入队列,并且在队列中具有相同输出节点的两个或多个Mashlet均运行完成之后,将输出节点对应的Mashlet加入队列,通过从操作子池中调用队列中的Mashlet包括的各操作子,运行队列中的Mashlet,直至队列中的Mashlet全部运行完成,利用懒启动机制,异步地将Mashlet加入队列中,通过尽量避免Mashup运行时同步等待的发生,在时间上更紧凑地使用Mashup平台中的内存资源,提升内存资源的有效利用率,进而提升整个Mashup平台的性能。
附图说明
图1为本发明提供的内容整合引擎调度方法一实施例的流程图;
图2a为一个Mashup应用的结构图;
图2b为一个Mashup应用分解为Mashlet之后的结构图;
图2c为图2b中两个Mashlet内部的结构图;
图3为本发明提供的内容整合引擎一实施例的结构示意图;
图4为本发明提供的内容整合平台实施例的结构示意图;
图5为本发明提供的内容整合平台系统的系统架构图;
图6为本发明提供的内容整合平台系统运行时的流程图。
具体实施方式
作为一种新兴的互联网应用开发模式,内容整合(Mashup)提倡通过组合网络上开放的数据与使用第三方应用程序接口获取服务的形式,构建互联网应用程序。区别于传统的应用程序开发方式,Mashup可以把设计制作互联网应用从繁杂的程序编写中解脱出来,使得非专业用户能够参与到网络应用的开发中,快速构建符合自己需求的个性化应用。
在这样的背景下产生了Mashup平台。Mashup平台能够为用户提供一个直观易用的即时信息整合平台,帮助用户构建自己的Mashup应用。其中,雅虎公司的Yahoo!Pipes就是一种Mashup平台,通过Web页面的模块拖拽式交互,引导用户制作Mashup应用。具有一定编程基础知识的用户可以在Yahoo!Pipes上编辑一个包含获取数据、处理数据和展示数据等模块的pipe,再交由Yahoo!Pipes引擎运行以完成信息融合的操作。
典型的Mashup平台至少应该包含Mashup编辑器和Mashup运行引擎两部分。用户通过Mashup平台上的Mashup编辑器创建Mashup应用。在创建过程中,通过简单地拖曳操作子(Operator)到工作区并连接,最终确认生成一个Mashup应用,进而用户可以选择对其进行运行或保存留待后用。
Mashup平台可以进行对Mashup应用的创建、保存、修改、运行等操作。其中,对Mashup应用的运行是核心部分。对Mashup应用的运行包括从外部或内部数据源获取数据、按用户定制的需求处理数据等。
本发明实施例中的执行主体为内容整合(Mashup)引擎,内容整合(Mashup)引擎可以为内容整合(Mashup)平台中的运行时引擎,也可以称为运行引擎或者执行引擎。
图1为本发明提供的内容整合引擎调度方法一实施例的流程图,如图1所示,该方法包括:
步骤101、将待运行的内容整合Mashup应用分解为多个调度支Mashlet,所述Mashlet包括一个或多个操作子。
Mashup平台上提供若干可供用户选择使用的操作子(Operator)。各操作子分别具有各自的功能,例如完成排序、筛选、获取数据源或截取数据等功能。Mashup平台中的操作子的集合可以表示为,Operators={opr1,opr2,opr3,…oprn},用户从该操作子的集合中选择一个或多个操作子,对所选择的操作子进行排列组合并连接后,可以创建出Mashup应用。
Mashup平台利用其上的运行引擎对Mashup应用进行运行。Mashup应用的各操作子之间通过边进行连接,运行时具有数据流的形式,数据流的起点为包含获取数据源操作的操作子,这些操作子在获取到数据之后,将数据交给后续的操作子进行相应的处理。依次类推,当数据流通过具有合并功能的操作子时,各数据流将以某种规则合并,最终通过具有结束功能的操作子输出。
区别于现有技术中的的运行方式,本发明实施例中的运行引擎在对Mashup应用进行运行之前,需要先将Mashup应用分解为多个Mashlet。一个Mashlet可以包括一个或多个操作子(Operator)。
Mashup应用由若干操作子组成,将Mashup应用分解为多个Mashlet相当于将操作子按照预设的规则进行了分组。将一个或多个操作子归为一个Mashlet。
步骤102、根据各所述Mashlet运行的预估时长,分别确定将各入度为零的Mashlet加入队列的起始时间点。
其中,所述Mashlet运行的预估时长为所述Mashlet包括的各所述操作子运行的预估时长之和。执行步骤102是为了使具有相同输出节点的两个或多个Mashlet运行完成的时间差在预设的时间范围内。
由于各Mashup应用在运行时,均是从Mashup平台中的操作子集合中调用相应的操作子,因此,可以在操作子被运行时,记录该操作子运行所需的时长。基于数据分析和历史统计,根据操作子已被运行时的运行时间,计算出基本准确的各操作子运行的预估时长。
若Mashlet包括一个操作子,则该操作子运行的预估时长,即为该Mashlet运行的预估时长;若Mashlet包括多个操作子,则该操作子运行的预估时长,即为各操作子运行的预估时长之和。
从而,根据Mashlet之间的运行流程以及各Mashlet运行的预估时长,倒推出将整个Mashup应用中作为起始节点的Mashlet被放入队列中的时间点,其中作为起始节点的Mashlet即为入度为零的Mashlet。入度表示终止于该节点的边的数量,因此,入度为零表示该节点上没有连接终止于其上的边,入度为零的Mashlet即为整个Mashup应用中作为起始节点的Mashlet。其中,队列也可以称为调度队列。
区别于现有技术中所采用的将入度为零的各操作子同时加入队列的方式,本发明实施例中引入了懒启动的机制,基于懒启动机制,将入度为零的两个或多个Mashlet加入队列的时间点可以不相同。
懒启动是指由一个Mashup应用的输出节点所在的Mashlet开始,倒推各个Mashlet的开始执行时间,使得具有相同输出节点的两个或多个Mashlet各自运行完毕之后,将数据流送入该输出节点的时间点几乎相同,从而消除由于汇聚节点对输入的各数据流进行同步等待而造成的内存中数据流的阻塞。
可选的,判断两个或多个数据流被送入该输出节点的时间是否几乎相同对应的量化标准可以为,判断具有相同输出节点的两个或多个Mashlet运行完成的时间差是否在预设的时间范围内。
步骤103、根据所述起始时间点,将所述各入度为零的Mashlet加入所述队列,并且在所述队列中具有相同输出节点的两个或多个Mashlet均运行完成之后,将所述输出节点对应的Mashlet加入所述队列。
运行引擎在确定了入度为零的Mashlet被加入队列的时间点之后,根据相应的时间点,将各入度为零的Mashlet加入队列中。
Mashup应用被分解成的各Mashlet不是被全部放入队列中,而是根据Mashlet之间的运行流程,先将入度为零的Mashlet加入队列,再根据Mashlet的运行结果,当具有相同输出节点的两个或多个Mashlet均运行完毕之后,即将该输出节点对应的Mashlet加入到队列中。依此类推,对于在队列中的Mashlet,当具有相同输出节点的Mashlet均运行完成之后,即将该输出节点对应的Mashlet加入该队列中。Mashlet被运行时,即从队列中被提取出来进行运行,相当于队列中的Mashlet一旦被运行,即已被清除出该队列,从而保留在队列中的Mashlet均为未运行的Mashlet。按照上述方式陆续将各Mashlet加入队列中,直至全部Mashlet均被加入到队列中。
进一步地,一种可选的实施方式为,所述队列中的Mashlet可以属于相同的Mashup应用,也可以属于不同的Mashup应用。
运行引擎在对队列中的Mashlet进行运行时,可以不区分Mashlet的来源,也就是不区分Mashlet属于哪个Mashup应用。运行引擎将各Mashup应用分解为多个Mashlet之后,只需要按照上述方式,将相应的Mashlet送入队列中进行运行即可。
步骤104、从操作子池中调用所述队列中的Mashlet包括的各所述操作子,运行所述队列中的Mashlet,直至所述队列中的Mashlet全部运行完成。
Mashup平台中的操作子池即为该Mashup平台中可供用户使用的操作子的集合。由于Mashlet由一个或多个操作子组成,因此,运行引擎对Mashlet进行运行时,即相应地从操作子池中调用Mashlet流程中包括的操作子。根据Mashlet之间的运行流程,对Mashlet进行运行,直至将队列中的Mashlet全部被运行完毕。由于被运行的Mashlet即被从队列中清除出去,因此,当Mashlet均被运行完毕,也就表示在队列中已没有可运行的Mashlet。由于运行引擎不区分Mashlet的来源,因此,当Mashup应用中的最后一个流程环节上的Mashlet被运行完毕之后,该Mashup应用即被整体运行完毕;当队列中没有可运行的Mashlet之后,即表示当前各Mashup应用均被运行完毕。
本发明实施例提供的内容整合引擎调度方法,将待运行的内容整合Mashup应用分解为多个包括至少一个操作子的Mashlet,在根据各Mashlet运行的预估时长,分别确定了将各入度为零的Mashlet加入队列的起始时间点之后,根据各起始时间点,分别将各入度为零的Mashlet加入队列,并且在队列中具有相同输出节点的两个或多个Mashlet均运行完成之后,将输出节点对应的Mashlet加入队列,通过从操作子池中调用队列中的Mashlet包括的各操作子,运行队列中的Mashlet,直至队列中的Mashlet全部运行完成,利用懒启动机制,异步地将Mashlet加入队列中,通过尽量避免Mashup运行时同步等待的发生,在时间上更紧凑地使用Mashup平台中的内存资源,提升内存资源的有效利用率,进而提升整个Mashup平台的性能。
进一步地,在上述实施例的基础上,将Mashup应用分解为Mashlet的分解规则可以根据需要进行设定。其中,一种可选的实施方式为,在所述待运行的Mashup应用中,以每个作为汇聚节点的操作子的输入端为界线,将所述Mashup应用分解为多个Mashlet,以使各所述Mashlet内部无数据流的汇聚。
图2a为一个Mashup应用的结构图,图2b为一个Mashup应用分解为Mashlet之后的结构图,图2c为图2b中两个Mashlet内部的结构图。
如图2a所示,一个创建完成的Mashup应用可以被记为树形结构。该Mashup应用可以表示为表达式Mp={N;E},其中N表示用户所选择的操作子的集合,E表示在Mashup应用的树中连接各操作子的边的集合,用于表示所连接的各操作子的输入和输出关系。在图2a所示的树形结构中,各操作子也被称为节点。
在Mashup应用的树形结构中,每一个节点代表一个操作子,各操作子用于从外部数据源获取数据,或者对当前数据流进行某种处理。各操作子彼此之间是相对独立的。对于树形结构中对数据流进行汇聚的汇聚节点,需要等待各输入数据流均准备完毕之后,才能进行运行。也就是说,在汇聚节点所连接的各节点分别完成对数据流的处理之后,该汇聚节点才能够对输入的两个或多个数据流进行处理。
一个Mashup应用由叶子节点获取外部数据源,将从外部数据源获取到的数据作为原始数据。其中,叶子节点即为入度为零的节点,入度表示终止于该节点的边的数量,因此,入度为零表示该节点上没有连接终止于其上的边,是整个树形结构的起始点。叶子节点将获取到的原始数据发送给相应的操作子进行处理,数据经由树枝上的各操作子的节点处理之后,最终达到树根的节点,将最终的运行结果输出。
在图2a所示的树形结构中,各节点的功能仅为举例说明。例如,Fetch表示从某个地址请求网页、数据的操作;Sort表示以某种规则对数据进行排序的操作;Filter表示对数据进行筛选的操作;GeoTag表示对数据进行地理信息标记的操作;Merge表示合并数据的操作;Cut表示对数据进行截取的操作;End表示数据流的终点。在Mashup应用中可选的各操作子的功能并不仅限于此。在整个树形结构中,合并(Merge)功能的操作子是一种特殊的节点,处于树形结构的分岔处,该操作子在运行时,将来自两个或多个不同分支的中间结果进行汇聚并处理。
通过引入数据结构Mashlet作为Mashup的调度单元,以每个作为汇聚节点的操作子的输入端为界线,对待运行的Mashup应用进行分解,形成多个Mashlet。该分解方法仅为一种举例说明,可选的分解方法并不仅限于此。
将以Mashlet为调度单元形成的原Mashup应用的新的流程图如图2b所示,图2b中节点中所示的Mlt为Mashlet的简称。其中,Mashlet的内部形态如图2c所示,图2c所示的是图2b中Mashlet4和Mashlet8的内部形态,即内部的流程图。对Mashup应用进行分解后,所获得的Mashlet内部无数据流的汇聚,也就是说,Mashlet内部不包括汇聚节点,没有数据流在Mashlet内部进行汇聚。
Mashlet作为Mashup应用的片段,是通过对Mashup应用的树形结构的分支进行切割后得到的。将Mashup应用分解为Mashlet之后,该Mashup应用可以表示为Mp={Mashletp1,Mashletp2,…Mashletpn},即包括n个Mashlet,其中,第i个Mashletpi由一组操作子组成,表示为oprSeqi={opr1,opr2,…oprk},0≤i≤n,k为大于零的自然数,各Mashlet分别可以表示成包括一个或多个操作子的集合,从而分别决定了各Mashlet处理数据的逻辑。
相应地,将操作子oprj的预估时间记作各操作子分别有相应的预估时间,那么Mashleti的预估执行耗时为prTimei=∑Topr,即oprSeqi中所有opr的预计耗时之和。
Mashlet的输入节点可以表示为inputSet={input1,input2...inputn},Mashlet的输出节点为唯一的节点output。输入节点所输入的数据流为该Mashlet的待处理数据,输出节点所述输出的数据流为该Mashlet的输出结果。故一个Mashlet可以表示为一个四元组,mashlet={id,inputSet,output,oprSeq},其中id为Mashlet的标识信息。对于入度为零的Mashlet,其无输入节点,输入该Mashlet的数据流可以为外部数据源的数据。
本发明实施例提供的内容整合引擎调度方法,通过在待运行的Mashup应用中,以每个作为汇聚节点的操作子的输入端为界线,将Mashup应用分解为多个Mashlet,在各Mashlet内部无数据流的汇聚,可以使得对Mashup应用的分解方法更合理,更有利于结合懒启动机制,异步地将Mashlet加入队列中,通过尽量避免Mashup运行时同步等待的发生,在时间上更紧凑地使用Mashup平台中的内存资源,提升内存资源的有效利用率,进而提升整个Mashup平台的性能。
进一步地,在上述实施例的基础上,在执行步骤101之后,执行步骤103之前,该方法还包括步骤105。其中步骤105可以在步骤102之前,也可以在步骤102之后。
步骤105、分别计算各所述Mashlet的时延内存积PMT,所述PMT为所述Mashlet运行时的数据流预计占用内存的大小与预计占用内存的时间的乘积;
相应地,步骤104中运行所述队列中的Mashlet具体为,按照PMT的数值大小,优先运行所述队列中PMT的数值较大的Mashlet。
运行引擎在将Mashup应用分解为多个Mashlet之后,还可以分别计算各Mashlet的时延内存积(Product of Memory & Time,PMT),PMT=Memory*Holding Time。对某个Mashlet的PMT进行计算时,Memory表示该Mashlet占用内存的大小,也就是该Mashlet在运行时数据流预计占用内存的大小;Holding Time表示该Mashlet预计占用内存资源的时间,也就是该Mashlet在运行时数据流预计占用内存的时间。PMT的数值可以表征Mashlet对内存资源的占用和消耗。
具体的,在初始时对Mashlet计算的PMT为PMTrun
其中,prTime为Mashlet运行时的数据流预计占用内存的时间,为Mashlet运行时的数据流预计占用内存的大小。
一个Mashlet在运行时预计占用内存的大小,就是该Mashlet所包括的一个或多个操作子分别在运行时预计占用的内存大小之和;一个Mashlet在运行时预计占用内存的时间,或者说预计占用内存的时长,就是该Mashlet所包括的一个或多个操作子分别在运行时预计占用的内存的时间长度之和。
需要说明的是,一个Mashlet所占内存基本等于各输入数据流的所占内存的大小之和,这是因为该Mashlet利用其包括的操作子对数据流进行处理并交付到下一个Mashlet之前,数据量不会发生大幅的变化。考虑到入度为零的Mashlet一般以需要获取数据的操作子为起始操作子,例如具有Fetch功能的操作子,故对于该类操作子,将获取到数据之后该操作子所占用的内存的大小,作为该操作子所占用的内存的大小。
由于PMT的计算是在Mashlet被运行之前,因此,该Mashlet所占用内存的大小和占用的时间可以采用预估值。也就是,可以基于数据分析和历史统计,根据操作子被其他Mashup应用调用时,实际被运行中所占用的内存大小和运行时间,计算出基本准确的各操作子运行预计占用的内存大小和预计占用的时间。
在运行引擎计算出了每个Mashlet的PMT之后,当Mashlet被加入队列中等待运行时,运行引擎即按照PMT的数值大小,优先运行所述队列中PMT的数值较大的Mashlet。当PMT的数值最大的Mashlet有两个或多个时,可以从中任选一个先进行运行。
当某个Mashlet的PMT的数值较大时,说明该Mashlet需要占用内存的时间较长,和/或该Mashlet需要占用的内存资源较多,则该Mashlet的优先级较高。相应地,运行引擎会优先运行队列中优先级较高的Mashlet。
为了让Mashup平台的内存资源尽可能得到有效的利用,本发明中的调度设计遵循的原则为,当一个Mashlet的PMT值越大,该Mashlet的运行优先级就越高。从而使得Mashup平台运行引擎尽可能早地调度执行该Mashlet,在运行完成后,释放该Mashlet持有的内存资源。
本发明实施例提供的内容整合引擎调度方法,在将Mashup应用分解为多个Mashlet之后,分别计算各Mashlet的PMT,相应地,在对队列中的Mashlet进行运行时,优先运行队列中PMT数值较大的Mashlet,由于PMT在时间和空间两个尺度上度量了对内存资源的使用情况,能够更好地用以衡量Mashlet在发生同步阻塞时相应产生的内存资源被占用的代价,优先运行PMT数值较大的Mashlet,更有利于提升内存资源的有效利用率,进而提升整个Mashup平台的性能。
进一步地,在上述各实施例的基础上,在顺序执行完步骤105和步骤103之后,执行步骤104之前,该方法还包括:
步骤106、根据当前时间点与所述队列中未运行的Mashlet的预设运行时间点的时间差,对所述队列中未运行的Mashlet的PMT的数值进行修正;
相应地,步骤104中按照PMT的数值大小,优先运行所述队列中PMT的数值较大的Mashlet具体为,按照修正后的PMT的数值大小,优先运行所述队列中PMT的数值较大的Mashlet。
运行引擎在分别计算出各Mashlet的PMT之后,还可以对Mashlet的PMT的数值进行更新,或者说进行修正。
在对Mashlet的PMT进行修正之后,运行引擎即根据修正后的PMT的数值判断运行Mashlet的顺序。
由于运行引擎在初始时计算出的Mashlet的PMT的数值,是根据预估的Mashlet占用的内存大小和时间作为计算依据。根据预估的占用内存的时间,理论上具有相同输出节点的Mashlet运行完毕的数据流,基本可以同时到达作为输出节点的Mashlet,但是在实际运行过程中,无法做到理论上预计的准确程度,也就是说,在实际运行过程中,具有相同输出节点的Mashlet运行完毕后到达作为输出节点的Mashlet的时间,还是可能出现时间差的,即还是存在同步等待的问题。
相应地,运行引擎在对初始计算出的PMT进行修正时,主要考虑各未运行的Mashlet未按预计时间被运行所延误的时间,即当前时间点与预设的运行时间点的时间差。
并且,由于当队列中每运行完成一个Mashlet之后,对于未运行的Mashlet而言,被延误的时间随之发生变化,因此,需要相应地重新对当前队列中未运行的Mashlet的PMT数值进行修正。
Mashlet被延误的时间越长,其PMT的数值在修正之后将越大,修正后的PMT的数值越大,则该Mashlet被运行的优先级越高,相应地,该Mashlet将尽快被运行。
其中,在对Mashlet的PMT数值进行修正的多种方法中,一种可选的实施方式为,根据所述当前时间点与所述队列中未运行的Mashlet的预设运行时间点的时间差,获得延误时间;根据所述延误时间和与所述未运行的Mashlet具有相同输出节点的一个或多个Mashlet占用内存大小之和的乘积,获得第一修正PMT;根据所述延误时间和将所述未运行的Mashlet作为输出节点的一个或多个Mashlet占用内存大小之和的乘积,获得第二修正PMT;根据所述PMT、所述第一修正PMT和所述第二修正PMT,获得修正后的PMT,对所述队列中未运行的Mashlet的PMT的数值进行修正。
对于队列中的一个调度单元Mashleti,运行引擎预计对该Mashleti进行运行的预设运行时间点为t0,但是在实际的执行过程中,若Mashleti未被调度执行,那么在t时刻,即Mashleti的运行被延误,可能使得内存中由于数据流之间的同步等待而出现阻塞。该阻塞时间,或称延误时间为(t-t0)。
表示该延误时间内,与Mashleti具有相同输出节点的Mashlet占用内存资源的情况,即第一修正PMT。
PMT delay a = ( t - t 0 ) × Σ i outpu t adj i . MemSize , 其中,是i个与该Mashlet具有相同输出节点的Mashlet所占用内存的大小之和。例如,若该Mashlet为图2b中的Mashlet(Mlt)8,则即为Mashlet(Mlt)7所占的内存大小。
其中,与Mashlet具有相同输出节点的Mashlet可能已经被运行完毕,也可能在队列中等待被运行。对于其中已运行完毕的Mashlet,在计算时所采用的占用内存的大小为该Mashlet实际占用内存的大小;对于其中未运行的Mashlet,在计算时所采用的占用内存的大小为该Mashlet预计占用内存的大小。
表示该延误时间内,将该Mashlet作为输出节点的一个或多个Mashlet占用内存资源的情况,即第二修正PMT。
PMT delay b = ( t - t 0 ) × Σ j outpu t prec j . MemSize , 其中,是将Mashlet作为输出节点的j个Mashlet所占用内存的大小。例如,若该Mashlet为图2b中的Mashlet(Mlt)8,则为Mashlet(Mlt)3、Mashlet(Mlt)4、Mashlet(Mlt)5和Mashlet(Mlt)6所占内存大小之和。
由于Mashleti被运行时,将其作为输出节点的各Mashlet已运行完成,因此,计算时所采用的内存大小为各Mashlet实际占用内存的大小。
从而,由于该Mashlet未被按照预设的运行时间点进行运行,产生的内存资源被浪费的代价,可以表示为:
PMT delay = ( t - t 0 ) × ( Σ i output adj i . MemSize + Σ j output prec j . MemSize )
修正后的PMT为PMT=PMTrun+PMTdelay
Mashlet进入队列之后,在随着时间的增长而未被运行的情况下,其PMTdelay将会逐渐增大。相应地,该Mashlet在修正后的PMT的数值将会逐渐增大。
一个Mashup应用在被运行引擎分解为若干个Mashlet之后,各Mashlet被加入队列中进行无差别的公平竞争,各Mashlet通过PMT数值的大小进行竞争的过程看似独立,但是PMTddlay的计算方法能够有助于保持Mashup应用的整体性。当一个Mashup应用中的一个Mashlet被运行之后,势必由于它占用了内存资源,导致与它属于同一个Mashup应用的其他Mashlet的PMT的数值增大,相应地PMT数值增大的Mashlet的优先级被提高。
具有相同输出节点的Mashlet互为Mashletmates,互为Mashletmates的Mashlet在调度的过程中会相互依赖。例如,Mashletmates={Mashleti,Mashletj,Mashletk},outputi=outputj=outputk,即Mashleti、Mashletj和Mashletk的输出节点相同。如图2b中所示的Mashlet(Mlt)1和Mashlet(Mlt)2;Mashlet(Mlt)3、Mashlet(Mlt)4、Mashlet(Mlt)5和Mashlet(Mlt)6;Mashlet(Mlt)7和Mashlet(Mlt)8。
具有相同输出节点的Mashlet之间的Mashletmates关系,可以用于计算上述第二修正PMT。
由于基于懒启动的机制,具有相同输出节点的Mashlet预计的运行完毕的时间点是基本相近的,但是其中被延误而未运行的Mashlet的PMT数值会相应地由于延误时间的增长而增大,从而使得该未运行的Mashlet被运行的优先级被提高,以达到尽快被运行效果。
该输出节点对应的Mashlet将在向其输入数据流的Mashlet运行完毕之后,被加入队列中,如果向其输入数据流的Mashlet的运行被延误,会使得该输出节点对应的Mashlet也未能在预计的运行时间点被运行,相应地,该输出节点对应的Mashlet的PMT数值会相应地由于延误时间的增长而增大,从而使得该输出节点对应的Mashlet被运行的优先级提高,以达到尽快被运行效果。
这样的连锁反应会随着该Mashup应用中的各Mashlet逐个被运行而越发明显。即一个Mashup应用的运行整体具有较好的连贯性。从Mashup平台的整体上来看,调度过程中对队列中的来自同一个Mashup应用的Mashlet有类聚的效果,从而保证了平台的结果产出率。
本发明实施例提供的内容整合引擎调度方法,通过对队列中未运行的Mashlet的PMT的数值进行修正,使得以修正后的PMT的数值大小为依据,优先运行队列中修正后的PMT的数值较大的Mashlet,更能体现Mashlet被执行的急迫度,使得调度策略更加准确,也为同步等待发生时尽快解除提供了保证,从而在时间上更紧凑地使用引擎的内存资源,提升内存利用率,进而提升整个Mashup平台的性能。
图3为本发明提供的内容整合引擎一实施例的结构示意图,如图3所示,该内容整合引擎包括分解器11、队列处理器12和执行器13。
其中,分解器11,用于将待运行的内容整合Mashup应用分解为多个Mashlet,所述Mashlet包括一个或多个操作子;根据各所述Mashlet运行的预估时长,分别确定将各入度为零的Mashlet加入队列的起始时间点,所述Mashlet运行的预估时长为所述Mashlet包括的各所述操作子运行的预估时长之和,以使具有相同输出节点的两个或多个Mashlet运行完成的时间差在预设的时间范围内;
队列处理器12,用于根据所述起始时间点,将所述各入度为零的Mashlet加入所述队列,并且在所述队列中具有相同输出节点的两个或多个Mashlet均运行完成之后,将所述输出节点对应的Mashlet加入所述队列;
执行器13,用于从操作子池中调用所述队列中的Mashlet包括的各所述操作子,运行所述队列中的Mashlet,直至所述队列中的Mashlet全部运行完成。
本发明实施例提供的内容整合引擎,将待运行的内容整合Mashup应用分解为多个包括至少一个操作子的Mashlet,在根据各Mashlet运行的预估时长,分别确定了将各入度为零的Mashlet加入队列的起始时间点之后,根据各起始时间点,分别将各入度为零的Mashlet加入队列,并且在队列中具有相同输出节点的两个或多个Mashlet均运行完成之后,将输出节点对应的Mashlet加入队列,通过从操作子池中调用队列中的Mashlet包括的各操作子,运行队列中的Mashlet,直至队列中的Mashlet全部运行完成,利用懒启动机制,异步地将Mashlet加入队列中,通过尽量避免Mashup运行时同步等待的发生,在时间上更紧凑地使用Mashup平台中的内存资源,提升内存资源的有效利用率,进而提升整个Mashup平台的性能。
进一步地,在上述实施例的基础上,分解器11还用于,在所述待运行的Mashup应用中,以每个作为汇聚节点的操作子的输入端为界线,将所述Mashup应用分解为多个Mashlet,以使各所述Mashlet内部无数据流的汇聚。
本发明实施例提供的内容整合引擎,通过在待运行的Mashup应用中,以每个作为汇聚节点的操作子的输入端为界线,将Mashup应用分解为多个Mashlet,在各Mashlet内部无数据流的汇聚,可以使得对Mashup应用的分解方法更合理,更有利于结合懒启动机制,异步地将Mashlet加入队列中,通过尽量避免Mashup运行时同步等待的发生,在时间上更紧凑地使用Mashup平台中的内存资源,提升内存资源的有效利用率,进而提升整个Mashup平台的性能。
进一步地,在上述各实施例的基础上,分解器11还用于,在将所述Mashup应用分解为多个Mashlet之后,分别计算各所述Mashlet的时延内存积PMT,所述PMT为所述Mashlet运行时的数据流预计占用内存的大小与预计占用内存的时间的乘积。
相应地,执行器13还用于,按照PMT的数值大小,优先运行所述队列中PMT的数值较大的Mashlet。
本发明实施例提供的内容整合引擎,在将Mashup应用分解为多个Mashlet之后,分别计算各Mashlet的PMT,相应地,在对队列中的Mashlet进行运行时,优先运行队列中PMT数值较大的Mashlet,由于PMT在时间和空间两个尺度上度量了对内存资源的使用情况,能够更好地用以衡量Mashlet在发生同步阻塞时相应产生的内存资源被占用的代价,优先运行PMT数值较大的Mashlet,更有利于提升内存资源的有效利用率,进而提升整个Mashup平台的性能。
进一步地,在上述各实施例的基础上,队列处理器12还用于,在所述执行器运行所述队列中的Mashlet之前,根据当前时间点与所述队列中未运行的Mashlet的预设运行时间点的时间差,对所述队列中未运行的Mashlet的PMT的数值进行修正。
相应地,所述执行器13还用于,按照修正后的PMT的数值大小,优先运行所述队列中PMT的数值较大的Mashlet。
进一步地,在上述各实施例的基础上,队列处理器12还用于,根据所述当前时间点与所述队列中未运行的Mashlet的预设运行时间点的时间差,获得延误时间;根据所述延误时间和与所述未运行的Mashlet具有相同输出节点的一个或多个Mashlet占用内存大小之和的乘积,获得第一修正PMT;根据所述延误时间和将所述未运行的Mashlet作为输出节点的一个或多个Mashlet占用内存大小之和的乘积,获得第二修正PMT;根据所述PMT、所述第一修正PMT和所述第二修正PMT,获得修正后的PMT,对所述队列中未运行的Mashlet的PMT的数值进行修正。
进一步地,在上述各实施例的基础上,所述队列中的Mashlet可以属于相同的Mashup应用,也可以属于不同的Mashup应用。
本发明实施例提供的内容整合引擎,通过对队列中未运行的Mashlet的PMT的数值进行修正,使得以修正后的PMT的数值大小为依据,优先运行队列中修正后的PMT的数值较大的Mashlet,更能体现Mashlet被执行的急迫度,使得调度策略更加准确,也为同步等待发生时尽快解除提供了保证,从而在时间上更紧凑地使用引擎的内存资源,提升内存利用率,进而提升整个Mashup平台的性能。
具体的,本发明各实施例提供的内容整合引擎进行内容整合引擎调度的方法,可以参见上述对应的方法实施例中的操作步骤,此处不再赘述。
图4为本发明提供的内容整合平台实施例的结构示意图,如图4所示,该内容整合平台2包括上述各实施例中所述的内容整合引擎1。
具体的,本发明各实施例提供的内容整合平台进行内容整合引擎调度的方法,可以参见上述对应的方法实施例中的操作步骤,此处不再赘述。
本发明实施例提供的内容整合平台,将待运行的内容整合Mashup应用分解为多个包括至少一个操作子的Mashlet,在根据各Mashlet运行的预估时长,分别确定了将各入度为零的Mashlet加入队列的起始时间点之后,根据各起始时间点,分别将各入度为零的Mashlet加入队列,并且在队列中具有相同输出节点的两个或多个Mashlet均运行完成之后,将输出节点对应的Mashlet加入队列,通过从操作子池中调用队列中的Mashlet包括的各操作子,运行队列中的Mashlet,直至队列中的Mashlet全部运行完成,利用懒启动机制,异步地将Mashlet加入队列中,通过尽量避免Mashup运行时同步等待的发生,在时间上更紧凑地使用Mashup平台中的内存资源,提升内存资源的有效利用率,进而提升整个Mashup平台的性能。
图5为本发明提供的内容整合平台系统的系统架构图,如图5所示,一种较优的内容整合平台系统可以包括Mashup平台、Mashup客户端和外部数据源。其中,Mashup平台还包括Mashup编辑器、Mashup资源库和Mashup运行引擎。
Mashup编辑器用于供用户创建Mashup应用;Mashup资源库用于保存用户所创建的Mashup应用;Mashup运行引擎用于对Mashup应用进行运行。
Mashup客户端可以为个人电脑(Personal Computer,PC)或者手机等移动终端上的客户端。Mashup应用在运行完成后的运行结果可以返回给Mashup客户端,供用户接收。
进一步地,Mashup运行引擎还包括分解器(Splitter)、队列管理器(Mashlets Queue)、执行器(Executor)和基于PMT的调度器。
其中,分解器用于将用户所创建的Mashup应用,在被运行之前分解为一组Mashlet;队列管理器用于对待运行的Mashlet在队列中进行管理;执行器用于对Mashlet中的操作子进行运行,由于执行器维持着一系列的操作子组成的操作子池,因此根据当前Mashlet中的操作子的运行流程,从操作子池中选择相应的操作子对Mashlet中的数据进行操作,其中部分操作子可能与外部的服务器或数据源进行交互操作;基于PMT的调度器,用于计算从Mashup应用中分解出的各Mashlet的PMT,还可以用于对队列中未运行的Mashlet的PMT的数值进行修正。
图6为本发明提供的内容整合平台系统运行时的流程图,如图6所示,上述内容整合平台系统的一种较优的运行流程为包括如下步骤。
步骤201、判断是否有Mashup应用的执行请求。若有,则执行步骤202;若无,则可以结束流程。
步骤202、将Mashup应用分解为Mashlet。
Mashup平台每次接收执行请求,运行相应的Mashup应用之前,由分解器在每个汇聚节点处将Mashup应用分解为一组Mashlet。
步骤203、计算Mashlet的PMT,并将Mashlet加入队列中。
由调度器预估每一支Mashlet的运行时间和内存占用,作为原始的PMT值写入该Mashlet属性,并将这些Mashlet中当前可以进行运行的Mashlet加入队列中。也就是说,首先将入度为零的Mashlet加入队列,进而当具有相同输出节点的Mashlet均运行完毕之后,将作为输出节点的Mashlet加入队列中,并依次类推,将当前可以运行的Mashlet加入队列中。
步骤204、判断执行器是否处于空闲状态。若是,则执行步骤205,若否,则执行步骤203。
步骤205、刷新队列中的Mashlet的PMT的数值。
当执行器处于空闲状态时,对队列中的Mashlet的PMT数值进行刷新。随着时间的变化,队列中Mashlet的PMT的数值可以不断被重新计算和修正。
步骤206、执行器分析并运行队列中PMT的数值最大的Mashlet。
执行器对队列中Mashlet的PMT数值进行判断,优先将其中优先级最高的Mashlet进行运行。
步骤207、判断队列中是否有Mashlet。若是,则执行步骤205;若否,则结束流程。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (9)

1.一种内容整合引擎调度方法,其特征在于,包括:
将待运行的内容整合Mashup应用分解为多个调度支Mashlet,所述Mashlet包括一个或多个操作子;
根据各所述Mashlet运行的预估时长,分别确定将各入度为零的Mashlet加入队列的起始时间点,所述Mashlet运行的预估时长为所述Mashlet包括的各所述操作子运行的预估时长之和,以使具有相同输出节点的两个或多个Mashlet运行完成的时间差在预设的时间范围内;
根据所述起始时间点,将所述各入度为零的Mashlet加入所述队列,并且在所述队列中具有相同输出节点的两个或多个Mashlet均运行完成之后,将所述输出节点对应的Mashlet加入所述队列;
从操作子池中调用所述队列中的Mashlet包括的各所述操作子,运行所述队列中的Mashlet,直至所述队列中的Mashlet全部运行完成;
所述将待运行的内容整合Mashup应用分解为多个Mashlet具体为:
在所述待运行的Mashup应用中,以每个作为汇聚节点的操作子的输入端为界线,将所述Mashup应用分解为多个Mashlet,以使各所述Mashlet内部无数据流的汇聚;
所述将所述Mashup应用分解为多个Mashlet之后,所述方法还包括:
分别计算各所述Mashlet的时延内存积PMT,所述PMT为所述Mashlet运行时的数据流预计占用内存的大小与预计占用内存的时间的乘积;
相应地,所述运行所述队列中的Mashlet具体为:
按照PMT的数值大小,优先运行所述队列中PMT的数值较大的Mashlet。
2.根据权利要求1所述的内容整合引擎调度方法,其特征在于,所述运行所述队列中的Mashlet之前,所述方法还包括:
根据当前时间点与所述队列中未运行的Mashlet的预设运行时间点的时间差,对所述队列中未运行的Mashlet的PMT的数值进行修正;
相应地,所述按照PMT的数值大小,优先运行所述队列中PMT的数值较大的Mashlet具体为:
按照修正后的PMT的数值大小,优先运行所述队列中PMT的数值较大的Mashlet。
3.根据权利要求2所述的内容整合引擎调度方法,其特征在于,所述根据当前时间点与所述队列中未运行的Mashlet的预设运行时间点的时间差,对所述队列中未运行的Mashlet的PMT的数值进行修正具体为:
根据所述当前时间点与所述队列中未运行的Mashlet的预设运行时间点的时间差,获得延误时间;
根据所述延误时间和与所述未运行的Mashlet具有相同输出节点的一个或多个Mashlet占用内存大小之和的乘积,获得第一修正PMT;
根据所述延误时间和将所述未运行的Mashlet作为输出节点的一个或多个Mashlet占用内存大小之和的乘积,获得第二修正PMT;
根据所述PMT、所述第一修正PMT和所述第二修正PMT,获得修正后的PMT,对所述队列中未运行的Mashlet的PMT的数值进行修正。
4.根据权利要求1或2中任一所述的内容整合引擎调度方法,其特征在于,所述队列中的Mashlet可以属于相同的Mashup应用,也可以属于不同的Mashup应用。
5.一种内容整合引擎,其特征在于,包括:
分解器,用于将待运行的内容整合Mashup应用分解为多个Mashlet,所述Mashlet包括一个或多个操作子;根据各所述Mashlet运行的预估时长,分别确定将各入度为零的Mashlet加入队列的起始时间点,所述Mashlet运行的预估时长为所述Mashlet包括的各所述操作子运行的预估时长之和,以使具有相同输出节点的两个或多个Mashlet运行完成的时间差在预设的时间范围内;
队列处理器,用于根据所述起始时间点,将所述各入度为零的Mashlet加入所述队列,并且在所述队列中具有相同输出节点的两个或多个Mashlet均运行完成之后,将所述输出节点对应的Mashlet加入所述队列;
执行器,用于从操作子池中调用所述队列中的Mashlet包括的各所述操作子,运行所述队列中的Mashlet,直至所述队列中的Mashlet全部运行完成;
所述分解器还用于:在所述待运行的Mashup应用中,以每个作为汇聚节点的操作子的输入端为界线,将所述Mashup应用分解为多个Mashlet,以使各所述Mashlet内部无数据流的汇聚;
所述分解器还用于:在将所述Mashup应用分解为多个Mashlet之后,分别计算各所述Mashlet的时延内存积PMT,所述PMT为所述Mashlet运行时的数据流预计占用内存的大小与预计占用内存的时间的乘积;
相应地,所述执行器还用于:
按照PMT的数值大小,优先运行所述队列中PMT的数值较大的Mashlet。
6.根据权利要求5所述的内容整合引擎,其特征在于,所述队列处理器还用于:
在所述执行器运行所述队列中的Mashlet之前,根据当前时间点与所述队列中未运行的Mashlet的预设运行时间点的时间差,对所述队列中未运行的Mashlet的PMT的数值进行修正;
相应地,所述执行器还用于:
按照修正后的PMT的数值大小,优先运行所述队列中PMT的数值较大的Mashlet。
7.根据权利要求6所述的内容整合引擎,其特征在于,所述队列处理器还用于:
根据所述当前时间点与所述队列中未运行的Mashlet的预设运行时间点的时间差,获得延误时间;根据所述延误时间和与所述未运行的Mashlet具有相同输出节点的一个或多个Mashlet占用内存大小之和的乘积,获得第一修正PMT;根据所述延误时间和将所述未运行的Mashlet作为输出节点的一个或多个Mashlet占用内存大小之和的乘积,获得第二修正PMT;根据所述PMT、所述第一修正PMT和所述第二修正PMT,获得修正后的PMT,对所述队列中未运行的Mashlet的PMT的数值进行修正。
8.根据权利要求5-7中任一所述的内容整合引擎,其特征在于,所述队列中的Mashlet可以属于相同的Mashup应用,也可以属于不同的Mashup应用。
9.一种内容整合平台,其特征在于,包括如权利要求5-8中任一所述的内容整合引擎。
CN201210337027.0A 2012-09-12 2012-09-12 内容整合引擎调度方法及装置 Active CN102866924B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210337027.0A CN102866924B (zh) 2012-09-12 2012-09-12 内容整合引擎调度方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210337027.0A CN102866924B (zh) 2012-09-12 2012-09-12 内容整合引擎调度方法及装置

Publications (2)

Publication Number Publication Date
CN102866924A CN102866924A (zh) 2013-01-09
CN102866924B true CN102866924B (zh) 2014-11-12

Family

ID=47445803

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210337027.0A Active CN102866924B (zh) 2012-09-12 2012-09-12 内容整合引擎调度方法及装置

Country Status (1)

Country Link
CN (1) CN102866924B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103336714A (zh) * 2013-06-20 2013-10-02 北京奇虎科技有限公司 一种作业调度方法和装置
CN109117198B (zh) * 2017-06-23 2021-05-11 中国软件与技术服务股份有限公司 一种基于成本评估的超高速并行自调优的服务调用方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102292707A (zh) * 2011-05-11 2011-12-21 华为终端有限公司 实现增强现实应用的方法及系统
CN102591712A (zh) * 2011-12-30 2012-07-18 大连理工大学 一种云计算中依赖任务的解耦并行调度方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090147937A1 (en) * 2007-10-23 2009-06-11 Infosys Technologies Ltd. System and method for personalized call treatment by using a combination of communication and data services
US20100049815A1 (en) * 2008-08-23 2010-02-25 Mobile Tribe Llc Programmable and Extensible Multi-Social Network Alert System

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102292707A (zh) * 2011-05-11 2011-12-21 华为终端有限公司 实现增强现实应用的方法及系统
CN102591712A (zh) * 2011-12-30 2012-07-18 大连理工大学 一种云计算中依赖任务的解耦并行调度方法

Also Published As

Publication number Publication date
CN102866924A (zh) 2013-01-09

Similar Documents

Publication Publication Date Title
CN103997544B (zh) 一种资源下载的方法和设备
CN109614106B (zh) 一种c++程序编译方法和装置
CN106293664A (zh) 代码生成方法及装置
CN103065221A (zh) 基于bpel的多学科协同优化流程建模与调度的方法和系统
CN103309904A (zh) 一种生成数据仓库etl 代码的方法及装置
CN108090664A (zh) 一种工作流适配调度方法、装置、设备和存储介质
CN104317942A (zh) 一种基于Hadoop云平台的海量数据比对方法及系统
CN107947965A (zh) 服务链编译器
CN104199820A (zh) 云平台MapReduce工作流调度优化方法
CN102866924B (zh) 内容整合引擎调度方法及装置
CN115934097A (zh) 生成可执行语句的方法、装置、存储介质及电子装置
CN106648839A (zh) 数据处理的方法和装置
CN109840074A (zh) 一种业务生成方法、装置及网络设备
CN110502242A (zh) 代码自动生成方法、装置、计算机设备及存储介质
CN108243238B (zh) 一种性能数据的采集方法及装置
US11017031B2 (en) System and method of data transformation
CN105302551B (zh) 一种大数据处理系统的正交分解构造与优化的方法及系统
CN107292049A (zh) 一种基于icd数据流的仿真系统设计方法
CN113434268A (zh) 一种工作流分布式调度管理系统和方法
CN113011984A (zh) 金融产品的业务数据处理方法及装置
CN110008028A (zh) 计算资源分配方法、装置、计算机设备和存储介质
Papoutsakis et al. CIRCE: architectural patterns for circular and trustworthy by-design IoT orchestrations
WO2024098793A1 (zh) 计算图的处理方法、装置、设备及存储介质
CN110866675B (zh) 一种产品设计平台设计流程管控方法及装置
CN111177836B (zh) 海洋工程设计数据的获取方法、系统、介质及设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220125

Address after: 215488 No. 301, building 11, phase II, Taicang University Science Park, No. 27, Zigang Road, science and education new town, Taicang City, Suzhou City, Jiangsu Province

Patentee after: Tianhang Changying (Jiangsu) Technology Co.,Ltd.

Address before: 100191 Beihang University, Haidian District, Xueyuan Road, 37, Beijing

Patentee before: BEIHANG University