2017年2月13日 星期一

LinkIt 7688 商品化: 軟體篇

如果不是玩玩而已,而是要把 LinkIt Smart 7688 做成商品來賣,需要花多少功夫?我想應該不少人對這個話題有興趣。

小弟也跟網通產業有過一點淵源,現在就來跟大家分享一下,一個網通產品,要做到什麼程度才上得了檯面?

先來談談軟體需要作到哪些功能,也請各位先進留下您的高見

Web UI

現在只要是網通類產品,沒有 Web UI 大概就不用賣了,這也是為何筆者的 LinkIt 7688 Web CGI 入門(1)LinkIt 7688 Web CGI 入門(2) 有破千人點閱的原因。除了兼負產品組態的重責大任,現在還流行提供 REST API 給 PHP, Ruby on Rails, Node.js... 存取。規模夠大的公司甚至會有專門負責的工程師(真好,我也想只寫 JavaScript 過日子啊...)。

重要性:★★★★★

CLI (Command Line Interface)

網通產品有個尷尬的地方是買來後需要設定後才能使用,當然從網路上設定最方便,可是買來的當下可能根本沒辦法上網,變成雞生蛋蛋生雞的問題。

常見的作法有幾種:
  • 出廠值附上固定 IP,比方說 192.168.0.100,然後修改 PC 設定設法連接上裝置。或是用廠商提供的工具軟體修改 Windows routing table 強制連接。
  • DHCP
  • 提供簡單的 LCD(如 2x18)與按鈕供使用者修改。
但一些複雜的設備可能玩一玩就變磚了,當然回到出廠值是一種解決方案;但是如果我們不想回到出廠值,而是想從現有組態中尋找問題呢?因此從網路來解決網路問題基本上就有點不靠譜,所以像是 Cisco Ethernet switch 背板會看到一個 console port:


這樣就可以很方便的用指令去查找問題、看 log、看 debug message...當然某些客戶可能會抗拒純文字 UI,不過 CLI 還可以與後面提到的 Windows utility 做結合,個人強力建議一定要有。

重要性:★★★★

Windows utility

不是有 Web UI 就好了嗎?Web UI 有一點很難做到就是掃描區網上的設備,一般來說這需要用到 UDP 廣播,還要有能力修改 routing table,所以各家廠商還是多少會附上 Windows utility,有些就乾脆把 Browser 嵌入到 utility 了,這樣可以少做一點 UI:



另外 utility 也可以連結 CLI,這樣即使沒有網路,客戶又不想用 CLI 時仍然可以發揮他的價值。

SNMP (Simple Network Management Protocol)

簡單來說就是您的 7688 要有成為 SNMP agent 的能力,讓 SNMP browser (例如 MG-SOFT MIB Browser) 有能力監控管理您的裝置。如果沒有接觸過 SNMP 千萬別讓他字面的意思給騙了,它可是一點都不 Simple。

但 SNMP 重不重要?在 Managed Ethernet Switch 裡他是標配,但現在什麼印表機、影印機、Remote IO、Device Server...都有了, Linux Appliance Design 一書說的更直白,說沒有這個就不算個咖了,但 Private MIB 需要申請,可能需要一筆費用,所以說到這裡就是玩真的了。

好消息是有 Net-SNMP 這個成熟穩定的開源軟體可用,實做上不用太費心。

重要性:★★★★★

OPC (OLE for Process Control) Server

如果您的產品要與傳統的 SCADA(e.g LabView, Citec, Wonderware Intouch, iFix...) 結合,OPC 差不多也是標配了,但以 OPC 的複雜程度來說也是要專人伺候,傳統的 Data Access、Alarm、History,新一代的 OPC Unified Architecture,不過個人覺得這可以緩一緩,先支援 Modbus TCP,然後讓現有的 Modbus TCP OPC server 可以套上來。

重要性:★★★

Data Logging

這個也是標配,否則在分析產品問題時可能無從找起,客戶也可以寄回 log file 給原廠分析,而原廠也可因此減少去現場罰站的機會,Linux 本身已經有 syslog 可用,市面上也有專門收集 syslog 的軟體。

重要性:★★★★★

IPC (Inter-Processes Communication)

Web UI, CLI, SNMP Agent, Data Logging...包括您自己的應用都需要一個存取界面,所以 OpenWrt 有 ubus,而 RedHat 搞出了 d-bus,Linux Appliance Design 一書還借用了 PostgreSQL protocol...這邊個人建議可以用 ZeroMQ + Protobuf。

重要性:★★★★★

沒提到的部份...

筆者沒做過、不懂的就不敢亂提了,像是 MQTT,也許搞 IoT 的朋友覺得沒提這個...不專業喔!也許改天有機會接觸的時候再說吧,歡迎留言指教!

沒有留言:

張貼留言