發展歷程
2018年12月6日,在2018百度雲ABC Inspire企業智慧型大會上,百度副總裁、百度雲總經理尹世明正式宣布由百度雲打造的智慧型邊緣計算平台OpenEdge將全面開源。
系統構成
OpenEdge主要由主程式模組、OpenEdge_Hub模組、OpenEdge_Function模組、OpenEdge_Remote_MQTT模組、OpenEdge_Function_Runtime_Python2.7模組構成。各模組的主要提供的能力如下:
•OpenEdge主程式模組負責所有模組的管理,如啟動、退出等,由模組引擎、API構成;
•模組引擎負責模組的啟動、停止、重啟、監聽和守護,支持Docker容器模式和Native進程模式;模組引擎從工作目錄的配置檔案中載入模組列表,並以列表的順序逐個啟動模組。模組引擎會為每個模組啟動一個守護協程對模組狀態進行監聽,如果模組異常退出,會根據模組的Restart Policy配置項執行重啟或退出。主程式關閉後模組引擎會按照列表的逆序逐個關閉模組;
•OpenEdge主程式會暴露一組HTTP API,支持獲取空閒連線埠,模組的啟動、停止和重啟。為了方便管理,對模組做了一個劃分,從配置檔案中載入的模組稱為常駐模組,通過API啟動的模組稱為臨時模組,臨時模組遵循“誰啟動誰負責停止"的原則。OpenEdge退出時,會先逆序停止所有常駐模組,常駐模組停止過程中也會調用API來停止其啟動的模組,最後如果還有遺漏的臨時模組,會隨機全部停止。
•OpenEdge_Hub模組主要基於MQTT協定提供設備接入(支持TCP、SSL(TCP+SSL)、WS(Websocket)及WSS(Websocket+SSL)四種接入方式)、訊息路由轉發等能力;
•OpenEdge_Function提供基於MQTT訊息機制,彈性、高可用、擴展性好、回響快的的計算能力,函式通過一個或多個具體的實例執行,每個實例都是一個獨立的進程,現採用GRPC Server運行函式實例。所有函式實例由實例池(Pool)負責管理生命周期,支持自動擴容和縮容;
•OpenEdge_Remote_MQTT模組支持MQTT協定,其實質是兩個MQTT Server的橋接(Bridge)模組,用於訂閱一個Server的訊息並轉發給另一個Server;
•OpenEdge_Function_Runtime_Python2.7是基於OpenEdge_Function模組的具體實例化表現形式,開發者通過編寫的自己的函式來處理訊息,可進行訊息的過濾、轉換和轉發等,使用非常靈活。
系統功能
•物聯接入:支持設備基於標準MQTT協定(V3.1和V3.1.1版本)與OpenEdge建立連線;
•訊息轉發:通過訊息路由轉發機制,將數據轉發至任意主題、計算函式;
•函式計算:支持基於Python2.7及滿足條件的任意自定義語言的函式編寫、運行;
•遠程同步:支持與百度雲天工IoTHub及符合OpenEdge_Remote_MQTT模組支持範圍的遠程訊息同步。
系統優勢
•禁止計算框架:OpenEdge提供主流運行時支持的同時,提供各類運行時轉換服務,基於任意語言編寫、基於任意框架訓練的函式或模型,都可以在OpenEdge中執行;
•簡化套用生產:智慧型邊緣BIE雲端管理套件配合OpenEdge,聯合百度雲,一起為OpenEdge提供套用生產環境,通過CFC、Infinite、Jarvis、IoT EasyInsight、TSDB、IoT Visualization等產品,可以在雲端生產各類函式、AI模型,及將數據寫入百度雲天工雲端TSDB及物可視進行展示;
•一鍵式運行環境部署:OpenEdge推行Docker容器化,開發者可以根據OpenEdge源碼包中各模組的DockerFile一鍵式構建OpenEdge運行環境;
•按需部署:OpenEdge推行功能模組化,各功能間運行互補影響、互不依賴,開發者完全可以根據自己的需求進行部署;
•豐富配置:OpenEdge支持X86、ARM等多種硬體以及Linux、MacOS和Windows等主流作業系統。