1. FogHorn
FogHorn是真正的在邊緣側進行機器學習計算的物聯網邊緣計算軟件。這句話有點繞口,但是為了強調沒法子——誰讓好多廠商都在吹自己有所謂的邊緣計算或霧計算。 在邊緣層做機器學習,而不是在雲端訓練好模型再遠程調用訓練好的機器學習模型的RESTful API,主要原因是: 1. 節約流量 2. 響應快 3. 網絡離線也可以用 4. 客戶可針對單個設備微調參數 需要熟悉scikit-learn和PMML。
FogHorn Systems: Edge Intelligence Software for IIoTwww.foghorn.io
2. Apache Edgent
Edgent 它名字就是edge + agent合體而成的。它跟Eclipse Kura功能類似,都是網關agent的框架程序,也都是基於Java的。不過Edgent不是基於OSGi的,而Kura是基於輕量級OSGi框架的。 Edgent的Deadband功能可以讀源碼直接看。不過我看1.2.0版本的Edgent的分析功能中的Deadband功能還很弱,要看工業級的Deadband的功能,可以參考Ignition SCADA的各種花式Deadband的功能。
3. Linux基金會EdgeX Foundry邊緣計算微服務框架
EdgeX Foundry用一句話來介紹,就是Linux基金會下的硬件和操作系統無關的開源中立的邊緣計算微服務框架,用於統一工業物聯網邊緣計算解決方案的生態系統。
由於EdgeX採用了微服務架構風格,因此可以根據現場環境和業務需求進行靈活地部署。
4. Eclipse IoT
Eclipse IoT | IoT development made simple - iot.eclipse.org Eclipse基金會的iot項目組包括Kura, Paho, ioFog, Vorto等十幾個子項目,分別解決物聯網不同層面的需求。 重點可以看Eurotech開源的Kura項目,不過要先學下JVM和OSGi core framework相關的知識點。 Paho也挺重要,畢竟mqtt協議是IoT的重要應用層協議。看Paho前提是先把mqtt v3.1.1協議弄明白,新版本的mqtt v5.0版本也要看下。
5.嵌入式cep
embedded cep engine,用於在網關裡面就對採集的設備實時數據進行streaming processing。因為邊緣計算是運行在性能受限的嵌入式環境中的,運行環境不像服務器上的Spark,Storm,Flink之類的計算資源那麼強大。所以移植通常跑在服務器單節點甚至集群上的cep引擎功能到受限嵌入式環境中的活,類似linux裁剪為嵌入式linux,coreutils裁剪為busybox的活。 具體可以看下被Software AG收購的Cumulocity(基於esper)和Apama streaming analytics engine。
6.Kepware
可以看Kepware的各種驅動套件及相關協議驅動的文檔,瞭解工控領域的主要設備型號和協議。我記得Kepware甚至還有Oracle轉OPC的驅動。 PTC收購的Kepware,擁有幾乎所有工控協議的驅動程序,是PTC收購戰略的重要拼圖之一。Kepware的收購也是PTC CEO在邁克爾-波特戰略諮詢下的五大收購之一。
7. Ignition SCADA
這個SCADA軟件有詳細的說明文檔,其中Deadband對告警處理,各種實際應用場景的組網方式,模塊化等,都值得學習。
8. 通訊協議
MQTT, CoAP, ZeroMQ, AMQP, Websocket, Kafka等物聯網協議或消息中間件,這些是傳輸層面的,是邊緣計算網關往上連接雲的技術基礎。
9. IBM Node-RED
Node-RED我把它這個名字理解為Node RED(efine)。它的好處是可以二次開發,自定義Node,這樣可以加mqtt上傳數據到雲的節點,數據挖掘節點,告警閾值節點,notification節點,定時任務節點,數據存儲節點,camel節點等。
10. Apache Camel ESB
EAI企業集成模式的開源輕量級實現Apache Camel與IoT結合起來,就可以做很多事。原本很麻煩的企業集成的事情,就可以用Camel的XML或DSL或script輕鬆實現。
11. gpsd
開源界大神ESR領導的gpsd項目 從gpsd的架構設計說明可以學到好多東西。比如zero-configuration,,包嗅探,對軟件質量不懈的追求。至少它的上行通信和下行通信驅動分離這一點,比Kura 和 edgent好。
12. bosch-si
博世的工業互聯網軟件產品,有基於OSGi的網關Agent軟件和雲端的Hub等軟件。 網關內的Agent軟件是基於前幾年收購的Prosyst,跟Kura類似,也是基於OSGi的。文檔寫的很嚴謹,可以看看工控巨頭工業級的物聯網網關軟件是啥樣子的。
13. Ayla和Zentri
在單片機裡玩花活,做物聯網硬件接入的可以研究下Ayla和被Silicon Labs收購的Zentri這兩家公司的產品。這兩家的玩法不太一樣。 Ayla是用SPI總線跟下位機對接然後上雲。 Zentri則是把單片機裡的常用的業務操作封裝成Command API函數,給二次開發人員調用。
General Overviewdocs.zentri.com
14. ClearBlade
支持在雲端IoT Platform開發,然後把代碼下發到IoT Edge Platform運行。相當於把處理數據的程序傳到數據在的地方進行處理,而不是把數據傳到服務端處理。這個就是邊緣計算的核心思想,與mapreduce類似。
15. EdgeMicro
這家公司的產品屬於edge data center(邊緣數據中心)或micro data center(微數據中心)產品的範疇。
16. SAP IoT
微服務架構的邊緣計算網關軟件。也是基於OSGi運行時的。
17. PTC Thingworx Edge SDK
PTC的Thingworx的邊緣計算SDK,支持C、.NET、Java、iOS、Android等語言。
Find Applications | PTC Marketplacemarketplace.ptc.com
18. Litmus Automation
這家公司的產品專注於工業物聯網領域。在邊緣計算層對應的是LoopEdge軟件。可以重點看LoopEdge的DeviceHub和LoopEdge Flows。
19. 亞馬遜AWS GreenGrass
AWS IoT Greengrass 是將雲功能擴展到本地設備的軟件。該軟件使設備能夠收集和分析更靠近信息源的數據,自主應對本地事件,並在本地網絡上相互安全地通信。AWS IoT Greengrass 開發人員可以使用 AWS Lambda 函數和預先構建的連接器來創建可部署到設備中用於本地執行的無服務器應用程序。
20.微軟Azure IoT Edge SDK
Azure IoT Edge SDK本來叫Azure IoT Gateway SDK,不過現在Edge這個概念有點火,就把Gateway改為Edge了。
主要特點是:可以在邊緣側執行AI和分析任務,支持C, C#, Java, Node.js和Python等語言進行二次開發,可以運行在多種操作系統上。
21. PLC4X
PLC4X: Universal Protocol Adapter for Industrial IoT 類似Kepware工控協議驅動程序庫,它的特色是同時實現Java C Cpp等幾種語言綁定。不過目前支持的協議還少的可憐。
22. Linux基金會Akraino Edge Stack
Akraino Edge Stack是一個Linux基金會項目,支持針對邊緣計算系統和應用程序優化的高可用性雲服務。
往期精彩文章
閱讀更多 物聯網前沿技術觀察 的文章