應用程式軟體組、使用軟體組及供應軟體組

應用程式組合是實例特有的,且應用程式的每一個實例都包括其自己的組合實例。 共用軟體組不是實例特定的,而且許多應用程式可以使用共用軟體組中套件或服務的單一實例。 共用軟體組進一步細分為使用軟體組及供應軟體組。

應用程式軟體組

應用程式組合 是您特別為應用程式建立的組合。 它們是實例特定的或 隔離; 亦即,它們並非預期要共用。 在 Application-Content 標頭的應用程式資訊清單中,會參照它們。

共用軟體組

共用軟體組 不是應用程式特定的。 共用軟體組中套件的單一實例可以供眾多應用程式使用。 共用軟體組無法匯入應用程式軟體組中的套件或服務。 共用軟體組必須由參照提供,而不是直接包含在應用程式中。

共用軟體組進一步細分為 使用軟體組供應軟體組:
使用軟體組
使用組合 至少提供一個套件給應用程式組合。 使用軟體組是在 Use-Bundle 標頭的應用程式資訊清單中所參照的共用軟體組。
透過將特定共用軟體組指定為使用軟體組,您可以控制供應哪個軟體組以提供共用套件。 比方說,如果套件有兩個可能的提供者: 軟體組 A 和軟體組 B ,且軟體組 A 有一個 use 軟體組陳述式,則一律會供應和使用軟體組 A。
供應軟體組
供應組合 至少提供一個套件或服務給應用程式組合、使用組合或另一個供應組合。 應用程式資訊清單中不會參照供應軟體組,您的應用程式並不知道如何滿足每一個供應軟體組的需求。

如果您有兩個個別的 OSGi 應用程式,且您想要它們共用相同的 API 類別,您可以將這些類別包裝成共用軟體組,然後在兩個應用程式資訊清單的 Use-Bundle 標頭中參照該軟體組。 對於管理者,使用軟體組的另一個好處是您可以使用管理主控台或 wsadmin 指令來監視及更新軟體組。

組合用法及組合佈建術語

OSGi 軟體組可以儲存在下列任何位置:
  • 應用程式的企業軟體組保存檔 (EBA)。
  • 內部軟體組儲存庫。
  • 外部 OSGi 軟體組儲存庫。

應用程式軟體組 可以儲存在 EBA 檔或儲存庫中。 共用軟體組 儲存在儲存庫中 (否則無法共用)。

從儲存庫取得軟體組的程序稱為 佈建。 基於供應目的,用於軟體組的專有名詞如下:
被參照軟體組
參照的軟體組 是在應用程式資訊清單中參照並儲存在儲存庫中的軟體組。
相依關係軟體組
相依關係軟體組 是應用程式資訊清單中未參照的軟體組,但應用程式資訊清單中 所參照的軟體組或其他相依關係軟體組所使用的軟體組。
這是軟體組用法的術語 (即 應用程式使用供應軟體組) 如何對映至軟體組供應的術語 (即 參照相依關係軟體組):
  • EBA 檔案中未直接包含的 應用程式軟體組 是實例特定的 參照軟體組
  • 使用軟體組 是共用的 參照軟體組
  • 佈建軟體組 是共用 相依關係軟體組