2010-10-31 52 views
15

是否有人在OSGi中部署了企業應用程序,並發現它很有用?有沒有人發現OSGi在企業應用程序中有用?

我可以看到好處,強制模塊化,良好的依賴關係定義等。但是這些似乎主要是構建相關的改進。

有沒有人發現動態替換現有的模塊是有用的?我們傾向於按流程拆分我們的應用程序,說實話,使用更新的庫啓動應用程序的新實例並不困難。 OSGi會對此有用嗎?

更換模塊有多可靠?它讓我感到,如果你有一個非常忙碌的過程,而且正在進行更換,那麼更換正在運行的模塊就會充滿危險。

+0

好問題+1 – Ramp 2010-11-01 02:08:32

回答

9

剛纔我的博客上講述爲什麼we didn't go with OSGi

概括地說,我相信的OSGi的基礎是堅實的,但它不是專爲大規模應用程序的開發。它將摩擦引入已經充滿挑戰的開發/部署過程中。我希望看到OSGi規範更注重OSGi的開發人員/用戶角色,以使其對開發過程無可挑剔。另外,我對JVM仍然沒有透明的模塊標準感到震驚。

+1

我不知道我完全同意你所說的一切,但你仍然有一些好的觀點。 (1) – javamonkey79 2010-12-09 20:13:49

7

我們的大部分應用程序都是Web應用程序。

我們有一個收集生物信息的OSGi厚客戶端。目前通過指紋卡掃描拍攝照片和指紋。

OSGi對我們的好處是我們可以從中央網站更新插件,而不是使用卸載/安裝過程。我們厚厚的客戶將遍佈美國的100多個地點,所以這對我們很重要。

+0

您可以在客戶端正在運行時更新客戶端嗎? – Fortyrunner 2010-11-01 08:40:07

+0

客戶端必須運行才能執行更新。更新過程是客戶端的一部分。話雖如此,我們建議在更新期間不要對客戶做任何其他事情。我們的客戶端是Eclipse RCP,並且可以進行一些「即時」更改,以及一些不能做的更改。對於我們的應用程序,找出哪些變化是不值得的。 – 2010-11-01 13:03:03

4

我在電信環境中工作。像OSGi這樣的東西對我們來說非常有用。我們將應用程序部署到無法脫離收入而無法下線的客戶。他們每秒處理數千個呼叫。現在,他們必須在維護窗口中執行更新以接受新的修復或更新。

如果我們可以將修補程序和增強功能作爲熱部署提供,它將會帶來很大的好處。但是,在我們做到這一點之前,當然還有一個風險因素和模擬交通測試的額外測試工作。

OSGi不僅適用於動態更新,它對於版本控制等功能來說非常有用,可以確保在複雜的環境中正確選擇正確的版本。

我們正在開始研究OSGi,如果我發現更有趣的東西,我會發布更新。


+0

這是我想象中的那種用例。我很想知道是否有人真的在使用它,並且管理起來很容易。 – Fortyrunner 2010-11-01 08:39:33

3

我們在大電信中使用它。我們已經在生產2年,現在我們還在繼續添加捆綁產品,現在我們有大約110捆捆。

操作人員很高興爲他們提供良好的控制:他們可以開始停止單個功能並監控它們。理論上,我們也可以在生產環境中熱部署一個新版本,但實際上我們只在做測試和預生產時才使用該功能。

我們一刀切的架構是基於這一個:http://servicemix.apache.org/home.html

我們的主要問題是總是儘量的OSGi中使用標準的Java框架。第二個問題是捆綁導入/導出管理本身。我們正在使用maven插件。

總而言之,我們很滿意這個選擇,但你需要考慮兩件事: 1.你是否願意與任何你想添加的java框架進行鬥爭? 2.你有足夠的紀律,不會弄亂你的依賴嗎?

相關問題