Jestem pewien, że zrozumiem różnicę, gdy zacznę robić więcej rzeczy związanych z OSGi, ale pomyślałem, że to dobre pytanie, ponieważ jest to dla mnie niejasne z kilku szybkich wyszukiwań w Google. Jeśli ktoś ma jasną, zwięzłą odpowiedź ...Jaka jest różnica między Equinox i Virgo?
Odpowiedz
Nieprecyzyjna analogia: Equinox to silnik, Virgo to samochód.
Equinox to środowisko wykonawcze z projektu Eclipse (alternatywy to Felix (z Apache) i Knopflerfish).
Virgo używa Equinoxu w swojej istocie, ale zapewnia wiele rzeczy, których można wymagać, jeśli używa się go w produkcji. Virgo jest w zasadzie projektem SpringSource dm Server przekazanym na rzecz Eclipse Foundation, więc oczywiście ma silne wsparcie dla wszystkich rzeczy Spring. Istnieje wiele podobnych produktów (Karaf (ServiceMix), a także liczne serwery aplikacji Java EE).
Środowisko wykonawcze OSGi to zazwyczaj bardzo małe środowisko (środowisko wykonawcze), wystarczające do uruchomienia/udostępnienia środowiska OSGi. Produkty takie jak Virgo oferują wspólną funkcjonalność produkcyjną/korporacyjną w spójny, przetestowany sposób i często obejmują zdalny dostęp do powłoki, obsługę aplikacji internetowych, bezpieczeństwo itp.
Możesz bezpośrednio pracować z środowiskiem wykonawczym, dodając każdą funkcję zgodnie z wymaganiami , ale chociaż może to być przydatne w systemach z ograniczonymi zasobami, zwykle wymaga to dużo wysiłku za niewielką nagrodę (oczywiście poza edukacją).
Z technicznego punktu widzenia Equinox to OSGi Framework, a Virgo to kontener. Kontener przejeżdża nad ramą i dodaje funkcjonalność. Konkurencyjnymi technologiami są Felix i Karaf, które są szkieletem OSGi firmy Apache Software Foundation (Felix) i kontenerem (Karaf). Różnica między ofertą ASF a fundacją Eclipse oferująca głównie to, że oferty Eclipse są referencyjną implementacją specyfikacji OSGI 4.2.
Implementacja referencyjna "podsystemy" w Pannie jest istotnym ulepszeniem dla skoordynowanego wdrażania zestawów pakietów. W Karafu używają mechanizmu wdrażania "cech". Główną różnicą między mechanizmem wdrażania "podsystem" i "funkcje" jest to, że w podsystemach można segregować określone zestawy bibliotek i uniemożliwić wykorzystanie ich pakietów poza zdefiniowanym podsystemem. Dzięki funkcjom wszystkie pakiety udostępniane innym bibliotekom są udostępniane w postaci kontenera.
- 1. Jaka jest różnica między? : i ||
- 2. Jaka jest różnica między $ i $$?
- 3. Jaka jest różnica między Subtotal i BaseSubtotal?
- 4. Jaka jest różnica między DetachedCriteria i ICriteria
- 5. Jaka jest różnica między & # x00A0; i ?
- 6. Jaka jest różnica między lex i yacc
- 7. jaka jest różnica między dijit i dojo
- 8. Jaka jest różnica między Control.Select() i Control.Focus()?
- 9. Jaka jest różnica między System.Windows.Controls.Control i System.Windows.Forms.Control?
- 10. Jaka jest różnica między apletami i SWING?
- 11. Jaka jest różnica między session.commit() i session.flush()?
- 12. Jaka jest różnica między ImageView.setBackgroundResource i ImageView.setImageResource?
- 13. Jaka jest różnica między Konwertuj i parsuj?
- 14. Jaka jest różnica między JSP i JSTL?
- 15. Jaka jest różnica między Lazarus i CodeTyphon
- 16. Jaka jest różnica między crc32 i crc32b?
- 17. Jaka jest różnica między TypedArray.getInteger() i TypedArray.getInt()?
- 18. jaka jest różnica między ARM7 i ARM7s
- 19. Jaka jest różnica między http_build_str() i http_build_query()?
- 20. Jaka jest różnica między "CompletionStage" i "CompletableFuture"?
- 21. Jaka jest różnica między mock.patch.object (... i mock.patch (
- 22. Jaka jest różnica między GetBlobReference i GetBlobReferenceFromServer?
- 23. Jaka jest różnica między NSLayoutAttributeBaseline i NSLayoutAttributeBottom?
- 24. Jaka jest różnica między handlebar.js i handlebar.runtime.js?
- 25. Jaka jest różnica między innerText i outerText?
- 26. Jaka jest różnica między Json i Jsonp?
- 27. Jaka jest różnica między WCF i WPF?
- 28. Jaka jest różnica między runghc i runhaskell?
- 29. Jaka jest różnica między -hivevar i -hiveconf?
- 30. Jaka jest różnica między writeUTF i writeChars?
Świetna odpowiedź, dodałbym, że Virgo wspiera koncepcję "podukładów" i podziału między regionem jądra a regionem użytkownika dla pakietów. Dzięki temu pakiety zainstalowane przez użytkownika nie mogą zakłócać działania jądra, a także umożliwiają wdrażanie niezależnych wysp funkcjonalności - zwanych również aplikacjami - bez interferencji krzyżowej. –
Świetna odpowiedź. Tylko jedna korekta: Virgo to projekt SpringSource dm Server, który został wniesiony do Eclipse, a Gemini Blueprint to projekt Spring DM przekazany na rzecz Eclipse. –
Poprawione, dziękuję Glyn – earcam