[發明專利]一種基于流式的編程系統和方法有效
| 申請號: | 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.szxzyx.cn/pat/books/201710601566.3/2.html,轉載請聲明來源鉆瓜專利網。





