說到 ArOZ Online 系統,很多人看完 README 會覺得它又是一套普通的 NAS 作業系統。如果我要自己組 NAS 的話那我用 OwnCloud 或是 OpenMediaVault 就好,幹麼要用一套這麼新,沒幾個使用者的系統來放我重要的資料呢?
對,如果你要 NAS 作業系統你不應該選擇 ArOZ Online 系統
ArOZ Online 系統從來也沒向過檔案儲存的方向發展。這是一個顯然易見的答案。ArOZ Online 系統缺少了幾個 NAS 作業系統必須的東西:RAID 管理器跟磁碟管理工具。這兩項日後可能會被太有空的工程師給加進去,但是在目前階段我們是沒有打算向這方向發展的。
再者,市面上除了開源的 OwnCloud, OneCloud, OpenMediaVault 之類的方案外,也有需要購買特定硬件的 QNAP 跟 Synology DSM,而且更不用說大家熟悉的雲儲存方案了,Google Drive,Dropbox ,MediaFire 甚麼的要多少有多少。相比之下 ArOZ Online 系統只是一個非常普通,只是到達「能用」地步的儲存系統。
用 ArOZ Online 系統代替真正的作業系統?
那如果不向 NAS OS 的方向發展,難道 ArOZ Online 系統要代替真正的作業系統?這也是不可能的。作業系統三大家庭:Windows Mac Linux,ArOZ Online 系統也只是建基於 Debian Linux 之上,不可能說取代他們其中一員。 Google 的 Chrome OS 也曾嘗試過做類似的東西,使用 Chrome 本身作為作業系統,提供各類型的 WebApp 服務;話雖如此,Chrome OS 到現在在一般使用者(consumer level)的市佔率還是比不上 Windows 跟 Mac,這很大程度上是跟系統兼容性有關了。然而,Chrome book 之類的作為 輔助設備 ( secondary device)的用者卻大有人在,證明 Chrome OS 雖然不及 Windows 或 Mac 那樣高兼容性和高市佔率,但仍然有它的優點和使用者群。而 ArOZ Online 系統要向的方向也是類似的:特定的使用者群,而外面並沒有類近能取代它的系統。
所以,ArOZ Online 的優點是甚麼?
ArOZ Online 說到最極端它只是一個由PHP,Js,HTML5 跟 Golang 組合出來的系統,就如你所想的,就是一套網頁系統。然而,你不覺得為甚麼明明都有 PHP 了,卻多了一個 Golang 出來?他們的功能不是重複了嗎?
對,就是這個多出來的 Golang 讓這套系統變得超級神奇。無論是功能上還是效率上。
沒錯,這個 Golang 並不是用來作為網頁伺服器,而是用來處理後台大型運算用的。
我們先從功能說起。自從 2019 年的版本中,Golang 開發的部分開始取代 php 的部分工作,系統的功能開始變多了。由 Gcode 發送器,備份組建系統等等,都是因為 Golang 的加入讓這些原本不太可能用 php 來開發的部分變得有可能。再者,Golang 可以比 PHP 接觸更底層的系統資源,做出更多你想不到的功能。之後的分散式文件系統,集群通訊協議也將會使用 Golang 進行大重寫,讓用家可以在一個界面裡就控制到好幾台使用 ArOZ Online 的裝置。
在效率上,Golang 的加入也讓系統效率更快。原本 PHP 要 Copy & Paste 一個檔案能會把整個伺服器卡上好幾分鐘,現在使用 Golang 重寫後的 fsexec (檔案系統)架構,讓 Copy & Paste 功能變成非同步功能,並可以在背景同步運行多個檔案移動指令,讓系統效率更高。另外,在 ArOZ Cluster 裡面,Golang 寫的掃描器也讓 HDS 運作率更佳,掃描速度更快。
所以說了這麼多廢話,總結來說就是 ArOZ Online 的特點是:
- 物聯網 / 集群連接
- 網頁桌面環境
- 高後台處理能力
- 完整的檔案管理系統
- 支援中文在地化
所以?創作者用的雲系統!
最後,我們選擇向創作者的方向發展!
到底是哪類型創作者?我們的目標打算放在以下三大類:
- 移動 / 遠端創作者
- 數碼生產類(Digital Manufacturing)創作者
- ArOZ Online 模組開發者
首先是移動或遠端創作者,這一個例子就是經常個人旅行的 Youtube 創作者之,讓他們可以不用隨身攜帶這麼多儲存裝置,只要在旅途跟旅途之間的一小段時間把檔案放到伺服器 / 電腦上,之後即使是再出發了也能夠在途中對之前的影片或音源檔案進行編輯、匯出。
另一個例子就是產品設計,可以使用 ArOZ Online 上的建模軟件或 3D模型瀏覽器來查看別人傳來的 3D模型,又或者直接編輯模型,匯出到本地(如手機)之後再傳送出去。以下是一系列相關的開發目標:
- aoVideo Editor (簡易影片編輯軟件)
- aoPhoto Editor (簡易圖片編輯器)
- aoAudio Editor (音頻剪輯器)
- aoModel Builder (簡易 3D 建模軟件)
第二點的就是 Digital Manufacturing / Makers 之類的了。要讓系統可以透過物聯網通訊協議去控制 3D 列印機跟 CNC 雕刻機之類的機器,讓他們即使暫時不在家也可以看到家中機器的工作情況,萬一出現問題的時候也能夠馬上搖控把它關掉。這能夠擴展到控制機器開關跟 家居自動化的部分,因此擁有很高的擴展性跟市場。這系列的目標模組包括有:
- aoGcode Sender(Gcode 傳送器)
- Workshop Dynamics (個人工場用控制系統)
- aoPlotter (CNC 控制器)
- aPrint (3D 列印及建模系統)
最後就是 ArOZ Online 模組的開發人員了,這個基本上沒甚麼特別的,主要是要優化現行的 NotepadA 編輯器,加入 aoModule Project 的 template 產生器等等。基本上就是讓開發者可以更容易開發的工具。而其中一個重要部分就是把開發工具中文化。
- NotepadA Project Template Generator (模組樣版生產器)
- NotepadA ao_module Events References(API 參考及樣本)
- NotepadA ao_module GUI Creator (使用者界面制作器)