Postaram się przedstawić kilka możliwych rozwiązań. Spędziłem trochę czasu przygotowując małe PoC do projektu, nad którym pracuję, więc miejmy nadzieję, że poniższe opcje są istotne.
Ważna uwaga: bardzo łatwo jest zdefiniować punkt rozszerzenia, rozwiązać i znaleźć dostępne implementacje. Istnieje wiele dostępnych rozwiązań, na przykład dobra i prosta - JSPF
Zasoby są głównym problemem dla aplikacji internetowych
OSGi
OSGi, nie jest tak źle i może być przydatnym. Wydaje się być ciężki (a niektóre implementacje są ciężkie), ale jest to cena standardowej platformy. Proponuję sprawdzić Apache Felix. Może być stosowany w trybie "lekkim". Nawiasem mówiąc, zawiera konsolę internetową, która jest budować jako luźno stosowanie wtyczek opartych mogłyby być pomocne:
Niektóre przykłady Extending the Apache Felix Web Console
Konsola internetowa może zostać przedłużony o rejestrację Usługa OSGi dla interfejsu javax.servlet.Servlet z właściwością usługi felix.webconsole.label ustawiona na etykiecie (ostatni segment adresu URL) na stronie . Odpowiednia usługa jest nazywana wtyczką Web Console lub wtyczką w skrócie.
Możesz również sprawdzić, eie-manager, który jest czysty i prosty oraz używa OSGi do zarządzania wtyczkami. To może być dobry przykład dla ciebie.
ramy plugin klienta
Proponuję recenzję rozwiązanie za Jenkins/Hudson. Powiedziałbym, że system wtyczek Jenkins jest dość dojrzały i niezawodny. Może być użyty jako dobry przykład.
Proszę sprawdzić również Hudson Plugin Architecture
proste rozwiązanie
Dla mojego projektu mam budować wtyczki warstwę abstrakcji opartej na JSPF z niestandardowych zależności rezolwerem.
Plusy:
- prosty i mały
- czysty pojęcie
- działa dobrze
Minusy:
- bez właściwego zarządzania wtyczki może być powolna (pełne wyszukiwanie classpath)
- zapewnia bardzo podstawową funkcjonalność
- mogą wymagać dodatkowej uwagi
Proponuję użyć JSPF tylko wtedy, gdy naprawdę potrzebują prostoty i chce kontrolować wszystko. JPF zapewnia wiele interesujących funkcji po wyjęciu z pudełka, na przykład:
Wtyczki mogą być „hot-zarejestrowany”, a nawet wyrejestrowana podczas wykonywania aplikacji. Co więcej, zarejestrowane wtyczki mogą być aktywowane i dezaktywowane "w locie", minimalizując użycie zasobów runtime .
Problem polega na tym, że JPF nie działa.
Sugestia
Czy spędzić trochę czasu z Apache Felix. Jest wystarczająco dojrzały, więc twoje inwestycje czasowe mogą sporo spłacić.
Nagrodzę nagrodę, ale pytanie jest nadal zamknięte. –