[发明专利]一种基于流式的编程系统和方法有效
申请号: | 201710601566.3 | 申请日: | 2017-07-21 |
公开(公告)号: | CN107391136B | 公开(公告)日: | 2020-11-06 |
发明(设计)人: | 安睿;周宁奕 | 申请(专利权)人: | 众安信息技术服务有限公司 |
主分类号: | G06F8/30 | 分类号: | G06F8/30;G06F8/35 |
代理公司: | 上海东信专利商标事务所(普通合伙) 31228 | 代理人: | 杨丹莉;李丹 |
地址: | 518000 广东省深圳市前海深港合作区前*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 编程 系统 方法 | ||
本发明公开了一种基于流式的编程系统,其包括结构模型和执行引擎;其中:所述结构模型具有若干个处理单元,所述各处理单元在结构模型内按照可更改的数据流动路径连接,以生成各种有向无环图模型;所述执行引擎对有向无环图模型进行执行。进一步地,当结构模型的结构发生变化时,该变化被同步给执行引擎,执行引擎在后续执行过程中,按照经过变化的结构执行被改变的有向无环图模型。当执行引擎在执行过程中发生执行变化时,该执行变化被同步给结构模型。此外,本发明还公开了一种基于流式的编程方法。本发明能适应多变的应用场景,并且可用于互联网领域,进一步地,还能在编程过程中保证描述任务的结构模型的正确性。
技术领域
本发明涉及一种编程系统和方法,尤其涉及一种基于流式的编程系统和方法。
背景技术
FBP(Flow Based Programming,基于流式的编程)是一个编程范式,在这种范式下,应用程序被看成为一个“黑盒”的流程,通过预定义的链接关系进行交换数据,形成一个完整的网络流程。这一构建过程在经过UI(User Interface,用户界面)可视化后,大大减少了人的代码阅读成本和流程构建开销。
传统的FBP编程主要用于复杂任务的处理。基于FBP的应用目前主要集中在软件领域,用于构建复杂任务,或者数据处理流,在电子和通信领域的模拟仿真软件、电路设计、可编程逻辑器件烧写驱动软件上也有广泛应用,在互联网领域则没有太大的应用。同时,这些软件大多目的在于纯静态任务的构建,仅仅相当于节约了代码书写的过程,而没有对更多变的应用场景进行适应。
在当前的互联网发展阶段,大数据计算、机器学习等新场景,目标都在于进行执行复杂或者重量级任务,比如基于或者非常接近于有向无环图(DAG)模型的大数据任务处理框架Spark还有机器学习框架TensorFlow,通过具有严格拓扑关系的有向无环图描述方法把小操作集合构建成严密的数据处理流。上述两项应用场景的特点是执行时间漫长,需要经常调整参数进行控制,同时构建时产生的bug不易直接发现。比如工程师在数据流的某一过程中写了错误的代码,很难被立即发现,只能在执行过程中发现,且停止任务重新执行的时间开销太大。
发明内容
本发明的目的之一是提供一种基于流式的编程系统,该系统能适应多变的应用场景,并且可用于互联网领域。此外在某些进一步的方案中还能在编程过程中保证描述任务的结构模型的正确性。
基于上述发明目的,本发明提出了一种基于流式的编程系统,其包括结构模型和执行引擎;其中:
所述结构模型具有若干个处理单元,所述各处理单元在结构模型内按照可更改的数据流动路径连接,以生成各种有向无环图模型;
所述执行引擎对有向无环图模型进行执行。
在本技术方案中,处理单元即对应每个子处理过程,例如对输入数据进行计算,请求某个服务得到信息等,其没有明确的限制。处理单元通常可以自由地进行编写和定义,每个处理单元的定义通常由若干个输入、若干个输出和若干个参数决定。输入可以接在这个处理单元的前序处理单元的输出上。所述前序处理单元即所有连接着这个处理单元并且拓扑顺序上处于这个处理单元前的处理单元,反之则为后序处理单元。参数是处理单元自身的属性,而输出则可以给这个处理单元的后序处理单元提供输入。这三个特性共同决定着一个处理单元在一个具体任务中所要做的事情。通过对若干个处理单元的连接就形成了一个有向无环图。
例如,存在一个目标函数f(x)=a·x+b,其具有两个子函数:
f(x)=a·x (1)
f(x)=x+b (2)
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于众安信息技术服务有限公司,未经众安信息技术服务有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710601566.3/2.html,转载请声明来源钻瓜专利网。