2012-07-13 79 views
1

嗨,我是一個新手到osgi。任何人都可以請幫我理解,無論是osgi是一個容器還是框架?任何人都可以解釋兩者之間的區別。感謝這將是一個很大的幫助。Osgi一個容器或框架

回答

1

這取決於什麼這些術語的含義,沒有普遍接受的定義。

從我的角度來看,OSGi並不是一個真正的容器,因爲它不會環繞代碼或更改執行模型。所以我更喜歡術語框架,實際上大多數文檔都將其稱爲「OSGi框架」或有時稱爲「OSGi服務平臺」。

例如:您可以在5-10行Java代碼中創建一個運行且有用的OSGi框架。

1

我會定義一個框架作爲一個庫,你編碼和控制執行。所以例如春天是一個框架和OSGi以同樣的方式。

容器是一個通用的應用程序,您可以啓動並在其中部署可執行的構件。默認情況下,OSGi不允許部署工件。它主要提供和API,允許您加載和啓動包。實際上,儘管幾乎所有的OSGi實現都允許從某個目錄進行部署。所以至少這些實現也是容器。

像尼爾寫我的定義不是唯一的,所以上述可能不是普遍真實的。

+0

我從教程中瞭解到osgi是一個規範,它定義瞭如何將模塊作爲bundle進行管理,以及它們如何進行交互以及容器是如何實現這些osgi規範。現在,osgi還提供了一些我們可以使用的庫,以便我們可以創建捆綁包(這種方式也可以充當框架)? – user1147070 2012-07-19 11:13:38

+0

你已經理解了這個權利。 OSGi主要是一個只存在於其實現中的規範。所以你必須選擇其中一個實現。最受歡迎的是Apache Felix和Eclipse Equinox。如果您打算在服務器端使用OSGi,我推薦使用Felix或Equinox的Apache Karaf,並增加許多管理功能。 – 2012-07-19 14:09:58