Meine Frage ist ziemlich einfach: Was sind die Eigenschaften einer Anwendung, die den Entwickler zwingen, OSGI-ähnliches System zu nutzen? Was sind die Fälle, wenn ein solches Dienstprogramm nicht benötigt wird?Wann sollte ich eine Plattform wie OSGI verwenden und wann sollte es vermieden werden?
Antwort
ich habe gerade gebucht auf den folgenden Link auf eine andere Frage (What does OSGi solve), aber ich denke, hier ist es eine ist noch besser passen. Hal Hildebrand hat einen Blog darüber geschrieben, warum und wann er denkt, OSGi hilft Ihrer Entwicklung/Ihrem Produkt.
Das Kernstück des (ziemlich langen) Beitrags ist, dass er besonders bei lang laufenden, komplexen Unternehmensprojekten hilfreich ist. Insbesondere auf lange Sicht wird der Vorteil einer erzwungenen Struktur auszahlen, aber read for yourselves
EDIT: feste unterbrochene Verbindung.
Verwenden OSGi, wenn Sie einige wollen:
- einen sehr modular Codestruktur (Extremfall: jede Installation hat einen anderen Satz von Modulen/Plugins)
- zu Start/Stopp/Upgrade ein Modul, ohne den Rest der Anwendung zu stoppen
Wenn Sie einen Web-Browser in Java schreiben, würden Sie OSGI verwenden? – Bubba88
@ Bubba88 Als technische Person, die Einschränkungen sind in der Regel mir gegeben, ich wähle sie nicht in meinem Job. Wenn ich das zum Spaß schreiben würde, könnte ich wählen; dann würde ich nach "will ich OSGI lernen?" wählen. Meine Antwort wäre also "Ja", denn OSGI ist eine vielversprechende Technologie, die bereits weit verbreitet ist. – KLE
@ Bubba88 - ja OSGi ist eine großartige Ergänzung für einen Webbrowser! Browser benötigen eine erweiterbare Architektur mit Unterstützung für Plugins, die zu einem späteren Zeitpunkt von Dritten beigesteuert werden können. das ist genau das, was OSGi Ihnen gibt. –
- 1. In Jira Agile wann sollte ich eine "Story" verwenden und wann sollte ich eine "Verbesserung" verwenden?
- 2. Wann sollte ich RESTful verwenden?
- 3. Wann sollte ich getElementById verwenden?
- 4. Wann sollte ich ConcurrentSkipListMap verwenden?
- 5. Wann sollte ich Threads verwenden?
- 6. Wann sollte ich eine Objektdatenbank verwenden?
- 7. Wann/warum sollte ich eine Datenbank verwenden?
- 8. Wann sollte ich eine einheitliche Initialisierung verwenden?
- 9. Wann sollte ich lineare neuronale Netze verwenden und wann nichtlinear?
- 10. Wann sollte ich @classmethod und wann def-Methode (self) verwenden?
- 11. Wann sollte ich setUpClass verwenden und wann __init__?
- 12. Wann sollte ich async verwenden/abwarten und wann nicht?
- 13. Wann ich ServiceTracker vs ServiceReference verwenden sollte
- 14. Wann sollte ich Hive-Engine MR verwenden und wann TEZ?
- 15. In Objective-C, wann sollte ich Klassenmethoden verwenden und wann sollte ich Instanzmethoden verwenden?
- 16. Wann sollte StringBuilder verwendet werden?
- 17. Wann sollte die Spark DataFrame/Dataset API verwendet werden und wann sollte man RDD verwenden?
- 18. Wann sollte wkWebView verwendet werden?
- 19. Wann sollte WS_EX_NOREDIRECTIONBITMAP verwendet werden?
- 20. Wann sollte Flask.g verwendet werden?
- 21. Wann sollte FOUNDATION_EXPORT verwendet werden?
- 22. Wann sollte $ .extend ({...}) verwendet werden?
- 23. Wann sollte ich die using-Anweisung verwenden?
- 24. Wann sollte ich __call__
- 25. Wann sollte range.value verwendet werden?
- 26. Wofür ist XML gut und wann sollte ich es verwenden?
- 27. Wann sollten Erweiterungsmethoden vermieden werden?
- 28. Wann sollte ich poppler_page_render vs poppler_page_render_for_printing verwenden?
- 29. Wann sollte ich ein ORM-Framework verwenden?
- 30. Wann sollte ich Subdomains verwenden oder vermeiden?
+1 Danke für die Links – KLE
froh, dass ich etwas Hilfe sein könnte –
Der Link "für sich selbst lesen" ist gebrochen. Wayback-Maschinenkopie: http://web.archive.org/web/20120720010714/http://www.tensegrity.hellblazer.com/2009/10/all-we-need-to-do-is-take-these- Lügen-und-machen-sie-wahr-irgendwie.html – Gilead