[PhotoSystem Note] 第一階段。OpenNMS架構破解

今天下午,總算把耗時三個星期的OpenNMS架構整理給告一段落了。因為OpenNMS主要是基於SNMP4J、Spring、Log4j、jrrd、liquibase、Jicmp、Castor、Jaxb、Hibernate、Jcifs、Jdhcp...等技術去搭建完成,架構搭建則是基於Maven的技術去規劃。

而我這次任務就是將SNMP4J、Jrrd、Jicmp、Jdhcp..這些我暫時用不到的東西抽除,並且把我的程式全部放進去一個獨立模組。

我想了幾天,原本是想用刪去法,一個一個模組抽離。但後來發現刪去法,可能會導致刪除的模組不齊全,那我乾脆由一個乾淨的環境,一個一個組裝回來,這樣少掉什麼模組就會缺少什麼功能,這樣比較能夠掌握每個模組的完整度。

這下來第一個星期,我花了整整一個星期,先用Maven簡單建立起一個簡陋的Web Server,然後再將Jetty抽離為一個獨立模組。

完成第一個階段後,問題來了,因為我當初沒考慮到Spring、Jmx上的應用,甚至我想用更簡單的方式去達到,所以我在Compiler跟Assembly之後,我的管理套件無法呼叫Jetty去初始化。

所以我又回去OpenNMS參照它的Spring、Daemon管理的架構,想了一個星期,後來我還是決定導入OpenNMS的架構,因為我經驗值太低了。

陸續又花了一個星期,導入過程中一直出現錯誤,加上我對Java熟悉度還不是很成熟,就這樣耗費一個星期,又是K資料、又是測試、甚至是再重新建立單一的Spring架構去熟悉Spring、然後再繼續K資料,今天下午總算將這些架構弄懂,導入完成。

現階段我已經將Start、Stop、Status的架構給完成了。並且集中由一隻叫Control的Java程式去控制流程,然後由Manager的程式去掌握資源,初始化則是Starter。

如果你是熟悉OpenNMS的人應該對這幾個關鍵字很熟悉,是的,因為我翻了OpenNMS的程式一段時間後,我真的找不到可以快速替代他們的方案,就直接引入了。

我的架構很單純,就只有Jetty Server、Web UI、Daemon Manager、Spring、Log4j、Caster,大至上是這些東西,但我又留了擴充的能力,如同OpenNMS一樣。

所以,接下來我將會再導入Mysql跟Hibernate,但剩下的就輕鬆多了。然後接著我就先引入帳號管理系統了,將編輯模式跟瀏覽模式給區分開,再開始將圖片系統建制。

今天終於先完成第一階段了,內心真是興奮得平靜不下來,所以先休息一下了,哈哈哈哈!

留言

這個網誌中的熱門文章

[Security] wpa_supplicant setup

[Wordpress] 登出時出現 404 Error

[OpenNMS Note] OpenNMS SNMP的誕生