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.
Ś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