我是OSGI框架的新手。我正在瀏覽這些網站並閱讀有關OSGI框架的內容。坦率地說,我沒有理解任何東西。以下是我的疑惑osgi相關的一些疑問
- OSGi應該提供模塊化。我們不能通過普通罐子來實現模塊化嗎?
- 這是什麼意思,OSGi有一個動態組件模型?
- 軟件包可以安裝,啓動,停止,更新等。我們爲什麼要安裝捆綁軟件?爲什麼不能像我們訪問其他普通罐子一樣直接訪問?
我完全困惑。有人可以回答我嗎?如果可以舉一些例子。
我是OSGI框架的新手。我正在瀏覽這些網站並閱讀有關OSGI框架的內容。坦率地說,我沒有理解任何東西。以下是我的疑惑osgi相關的一些疑問
我完全困惑。有人可以回答我嗎?如果可以舉一些例子。
我試着來回答你在OSGi博客第一個問題:http://blog.osgi.org/2013/08/dear-prudence-cant-we-achieve.html
下週,將解答下。
閱讀OSGi規範的實現可能會有所幫助。
如果您使用過Eclipse,那麼您已經體驗到了OSGi的一些優點,甚至可能不知道它。
下面是關於Equinox的基礎知識的很好的描述。
我的一個模塊的定義是封裝(即它隱藏內部細節),其與通過合同一個(即預定義的一組可能的相互作用的)其他模塊通信的單元。 JAR文件不是模塊,因爲它不具備這些屬性。沒有封裝,所有內部實現細節都可以從外部看到和訪問。沒有合同,只需將JAR文件放在classpath中,並希望它提供您所需的功能。
動態表示可以在運行時期間安裝,升級或卸載OSGi軟件包(模塊)。這對於升級正在運行的系統或將軟件有效地部署到大型網絡非常有用。
必須安裝軟件包,因爲在使用軟件之前必須安裝軟件。 JAR文件也必須安裝!只有安裝方式略有不同,即將JAR文件添加到類路徑中,而使用install
命令安裝捆綁軟件(也可以通過腳本或API調用)。 OSGi給我們更多的控制這個過程。
除了捆綁的方面作爲真正的模塊,這在所有其他的答案被處理,還有其他一些功能,使OSGi的非常強大:
我保證我沒有試圖變得sn,不馴,但OSGi提供的功能只有在Java最佳實踐環境中才有意義。 OSGi是構建真正架構良好的Java應用程序的一種強大工具。如果沒有這個目標和一系列的缺陷,模塊化,組件生命週期和「JVM中的SOA」概念就沒有太多可看的地方了。 – chad
@chad:我認爲你在那裏表現得非常好 - 根本不會嗤之以鼻:) –