2012年5月1日 星期二

為時未晚的 Apache OFBiz ﹣ Java Open For Business Frameworks




台上十分鐘,台下十年功

        師父領進門,修行在個人,自從大學時代,鄭福炯老師帶我們進入 Java 大門之後,這十幾年以來,我一直不斷地在研究 Java,不斷地在追尋 Java 新的技術,實踐與領悟軟體設計的道理,在這個領域我不是天才型的人物,我只能說我只是在蠻幹,我在心裹形容我自已叫「鑽出牛角尖」,憑著只是對於軟體的興趣與熱情。


        回到台東之後,其實個人認為,台東擁有發展知識產業的環境,所以,我在工作之餘還是花時間在研究與撰寫 Java 程式,主要是應用在工作上,像是「POS」與「帳務管理」,就像之前講的「為了喝牛奶還養了一頭牛」,這年頭幹這種傻事的人,好像只有我...,所以,個人花了三年的時間在研究 Eclipse Runtime Platform,自已組合出來 OSGi-Based SOA(DOA) 的 Amazing Runtime Platform,剛才講的「POS」與「帳務管理」就是 Eclipse 平台的應用,以此類推,只要Eclipse 可以跑的作業系統(OS),我們開發的應用(App)就可以跑。

        運用我們先前深入了解 Eclipse 平台的經驗,我們去年花不到半年的時間,了解 Android (Java)  平台的運作機制,並且,為了回饋台東的鄉親,我們在台東大學完成了「無所不在的 Java 程式開發」的七堂 21 個小時的免費課程,這是我們花了兩個月的時間開發出來的課程,非常感謝台東大學的王忍成老師給我們這個機會。

        今年開始,我們轉向研究 Java Web 電子商務的 Frameworks - OFBiz ,大家如果有興趣的話可以到以下的網址看看:


網站還沒有正式上線,但是一些初步的修改與功能的增減與測試可以呈現在上面。


OFBiz 相當漂亮的電子商務軟體架構

        OFBiz 的架構算是相當的清楚, Web Engine 的部份擁有非常優越的 MVC 架構, 可以用來串連成為 Web Flow 到 Business Flow , 優越的原因在於, 不用碰到一行的 Java 程式碼用修改設定的方式即可變更版型, 增加或修改頁面與流程,目前, 我正把官網的靜態網頁整合進 OFBiz 電子商務網站,接下來是要進入到 Product Store 的設定裏面.

        就工程師的角度來看, OFBiz 的架構相當漂亮, 一致且明確的設計原則, 充份運用資料庫、Web Server 與 HTML 等特性, 並且互相適當的綁定在一起, 也就是充份運用 Model-View-Controller 的概念, 雖然, 以資料庫為中心的架構仍然是有他的局促性, 只要限定他的使用範圍, 就可以充份發揮他的特性, 沒有一個架構是萬能的, 所以我形容他是「小而美」.

        如果要考量到未來的擴充性, 則是應用可以包容過去與未來的 SOA 架構來解構與擴充.

        大部份在網路上所看到的 OFBiz 說明大都是在強調他的商業應用, ex. ERP, CRM, 就我來看 OFBiz 擁有的是完整且清楚的架構, ex. Web Engine , Entity Engine, Service Engine. 掌握他的核心就可以減少建置的人力、時間與成本.

        我的心得是, 如果當初可以早一點接觸到 OFBiz , 我們專案的建置人力、時間與成本應該可以減少一半以上 (more than 50% reduced) , 這也是軟體專業上的差異, 知者與不知者的差異可以說是到不同的維度.

        OFBiz 只是一個開始, Java 的模組化(OSGi) 才是後面的強者, 先了解小而美的 OFBiz , 真正強的在於整合 OSGi 的 Opentaps,Opentaps 系出 OFBiz , OSGi 前年我己經研究一個段落, 我自己一直在講的 Amazing Runtime Platform 就是以 OSGi 為基礎的軟體架構,OSGi 是 Java 應用程式模組之間的 SOA , 我是在研究數位家庭自動化的時候發現的,早在 Eclipse 3.3 的時候就己經把 OSGi - Equinox 放到 Eclipse Runtime 的底層裏了, 而 Eclipse 4 將會全部轉換到 OSGi 架構下, 在 IBM 主導之下, Java 其實己經進入了另一種境界.

        其實研究 OFBiz 還有一個好處,就是「Business Domain Inside」,從產品、訂單到人員、客戶,應該是幾乎所有的基本商業概念都在裹面,對於我們學習資訊管理的人來說,不管是技術上或是專業領域上,是一個實實在在的寶庫。

所以,做以上這些事情的我,在幹麻??


完成 Java 生態系的版圖

        憑借著一人之力的我,不可能去碰得到硬體,更沒有力氣再研究到雲端,但是,從 PC 到 Mobile 再到 Web,再透過SOA做整合,其實也已經累積足夠的 Java 技術生態系來上到雲端與應付基本商業上的需求。


下一個十年(Next Ten Years)

        學習技術對我們來說,應該要像生活一般的自然,如此我們才能有心力再往更高階的方向走,Java 可以讓我們擁有這樣子的生活,所以,接下來的十年,更要將我現在學習到的技術更深入地運用在工作上,提昇我自已的工作與生活品質,這又是另一種不同的思維。

張貼留言