Modulare Software entwickeln mit OSGi
Von Florian Pirchner
()
Über dieses E-Book
Kapitel des shortcuts geht es um die Beschreibung von Abhängigkeiten zwischen Bundles. Um z. B. festzustellen, welche Bundles aufgelöst werden können,
verwendet OSGi bestimmte Modelle, die hier näher diskutiert werden. Kapitel 2 verhandelt tiefer greifende Konzepte zum Thema "Resolver", die wiederum das
"Generic Resource Model" auf seine Konsistenz überprüfen. Im dritten Kapitel werden die Möglichkeiten des Provisionings erläutert und somit gezeigt, wie OSGi
verwendet werden kann, um Bundles automatisch zu installieren. Das abschließende Kapitel 4 beschreibt die Coordinator-Spezifikation bzw.
Coordinator, mithilfe dessen neue Coordinations erzeugt werden können.
Mehr von Florian Pirchner lesen
MQTT im IoT: Einstieg in die M2M-Kommunikation Bewertung: 0 von 5 Sternen0 BewertungenXtend beyond Java: DSL für mobile Business-Apps Bewertung: 0 von 5 Sternen0 BewertungenVaadin mit Eclipse, Clojure und OSGi Bewertung: 0 von 5 Sternen0 Bewertungen
Ähnlich wie Modulare Software entwickeln mit OSGi
Titel in dieser Serie (100)
JavaScript auf dem Server Bewertung: 0 von 5 Sternen0 BewertungenEinstieg in Google Go Bewertung: 0 von 5 Sternen0 BewertungenJava EE Security Bewertung: 0 von 5 Sternen0 BewertungenErfolgreiche Spieleentwicklung: OpenGL, OpenAL und KI Bewertung: 0 von 5 Sternen0 BewertungenJava 7: Fork-Join-Framework und Phaser Bewertung: 0 von 5 Sternen0 BewertungenHTML5 für Mobile Web Bewertung: 0 von 5 Sternen0 BewertungenNutzeraspekte in Suchmaschinen: Komponenten für eine gelungene Usability-Gestaltung Bewertung: 0 von 5 Sternen0 BewertungenGeolocation mit PHP: Foursquare-API, Google Places & Qype Bewertung: 0 von 5 Sternen0 BewertungenAlgorithmen: Grundlagen und Implementierung Bewertung: 0 von 5 Sternen0 BewertungenNFC: Near Field Communication für Android-Entwickler Bewertung: 5 von 5 Sternen5/5IT Wissensmanagement: Theorie und Praxis Bewertung: 0 von 5 Sternen0 BewertungenjQuery Mobile - Basics: Basics Bewertung: 0 von 5 Sternen0 BewertungenErfolgreiche Spieleentwicklung: OpenCL Bewertung: 0 von 5 Sternen0 BewertungenHTML5 Security Bewertung: 0 von 5 Sternen0 BewertungenNintex Workflow: Konzepte und Strategien für leistungsfähige SharePoint-Workflows Bewertung: 0 von 5 Sternen0 BewertungenSkalierbare Softwaresysteme: Design, Betrieb und Optimierungspotenziale Bewertung: 0 von 5 Sternen0 BewertungenJavaScript für Eclipse-Entwickler: Orion, RAP und GWT Bewertung: 0 von 5 Sternen0 BewertungenSharePoint-Entwicklung für Einsteiger Bewertung: 0 von 5 Sternen0 BewertungenQualitätssicherung mit JavaScript und PHP Bewertung: 0 von 5 Sternen0 BewertungenAmazon Web Services für .NET Entwickler Bewertung: 0 von 5 Sternen0 BewertungenMobile Business: Was Entscheider morgen wissen müssen Bewertung: 0 von 5 Sternen0 BewertungenC++: Kurzportträt einer zeitlosen Sprache Bewertung: 0 von 5 Sternen0 BewertungenJava EE 7: Ein Ausblick Bewertung: 0 von 5 Sternen0 BewertungenServiceorientierte Architektur: Anforderungen, Konzeption und Praxiserfahrungen Bewertung: 0 von 5 Sternen0 BewertungenÜberzeugende Präsentationen: Konzeption, Technik und Design Bewertung: 0 von 5 Sternen0 BewertungenTFS 2012 Versionskontrolle: Grundlagen, Check-In Policies und Branch-Modelle Bewertung: 0 von 5 Sternen0 BewertungenApache Tapestry: Einstieg in die komponentenorientierte Webentwicklung Bewertung: 0 von 5 Sternen0 BewertungenAgile Architektur mit .NET - Grundlagen und Best Practices Bewertung: 0 von 5 Sternen0 BewertungenTFS 2012 Anforderungsmanagement: Work Items und Prozessvorlagen Bewertung: 0 von 5 Sternen0 BewertungenBig Data: Technologiegrundlagen Bewertung: 0 von 5 Sternen0 Bewertungen
Ähnliche E-Books
Java 9: Einführung in das Modulsystem und die Migration Bewertung: 0 von 5 Sternen0 BewertungenSprachenkompendium: Ceylon, Erlang und Ruby Bewertung: 0 von 5 Sternen0 BewertungenJava 7: Fork-Join-Framework und Phaser Bewertung: 0 von 5 Sternen0 BewertungenModerne Webanwendungen mit AngularJS Bewertung: 0 von 5 Sternen0 BewertungenJava EE 7: Ein Ausblick Bewertung: 0 von 5 Sternen0 BewertungenApache Tamaya: Einstieg in die Konfiguration in Java Bewertung: 0 von 5 Sternen0 BewertungenCDI - Dependency Injection in Java EE 7: Dependency Injection in Java EE 7 Bewertung: 0 von 5 Sternen0 BewertungenJPA 2.1: Persistence-Features in Java EE 7 Bewertung: 0 von 5 Sternen0 BewertungenSpock, Geb und Selenium: Testframeworks unter die Lupe genommen Bewertung: 0 von 5 Sternen0 BewertungenjQuery Mobile: Unit Testing Bewertung: 0 von 5 Sternen0 BewertungenJava 7: Project Coin, Generics und NIO2 Bewertung: 0 von 5 Sternen0 BewertungenSpring Boot und Spring Cloud Bewertung: 5 von 5 Sternen5/5JavaScript auf dem Server Bewertung: 0 von 5 Sternen0 BewertungenJavaScript für Java-Entwickler Bewertung: 0 von 5 Sternen0 BewertungenDas Java Memory Model: Überblick und Ausblick auf Java 9 Bewertung: 0 von 5 Sternen0 BewertungenGroovy – kurz & gut Bewertung: 0 von 5 Sternen0 BewertungenApache Kafka Bewertung: 0 von 5 Sternen0 BewertungenjQuery Mobile: Einfach mobile Web-Apps entwickeln Bewertung: 0 von 5 Sternen0 BewertungenJava EE Testing mit Arquillian Bewertung: 0 von 5 Sternen0 BewertungenElasticsearch: Clientnutzung, Datenvisualisierung und Apache Lucene Bewertung: 0 von 5 Sternen0 BewertungenjQuery Mobile - Basics: Basics Bewertung: 0 von 5 Sternen0 BewertungenEclipse meets Java FX Bewertung: 0 von 5 Sternen0 BewertungenDynamic Proxies: Effizient programmieren Bewertung: 0 von 5 Sternen0 BewertungenMemory Leaks in Java Bewertung: 0 von 5 Sternen0 BewertungenJava Core Programmierung: Memory Model und Garbage Collection Bewertung: 0 von 5 Sternen0 BewertungenDocker: Webseiten mittels Containerarchitektur erstellen Bewertung: 3 von 5 Sternen3/5Programmieren mit PHP: Grundlagen der Programmierung von Web-Applikationen mit der Skript-Sprache PHP Bewertung: 0 von 5 Sternen0 BewertungenCSS: Best Practices und Wartbarkeit Bewertung: 0 von 5 Sternen0 BewertungenAngular 2: Moderne Frontends für alle Plattformen entwickeln Bewertung: 0 von 5 Sternen0 BewertungenMicroservices: Der Hype im Realitätscheck Bewertung: 0 von 5 Sternen0 Bewertungen
Softwareentwicklung & -technik für Sie
50 Arten, Nein zu sagen: Effektives Stakeholder-Management für Product Owner Bewertung: 0 von 5 Sternen0 BewertungenDigital Paintbook Volume 3 Bewertung: 5 von 5 Sternen5/5Change Management für Anfänger: Veränderungsprozesse Verstehen und Aktiv Gestalten Bewertung: 1 von 5 Sternen1/5Agile Spiele – kurz & gut: Für Agile Coaches und Scrum Master Bewertung: 0 von 5 Sternen0 BewertungenData Mesh: Eine dezentrale Datenarchitektur entwerfen Bewertung: 0 von 5 Sternen0 BewertungenSketchnotes in der IT: Abstrakte Themen mit Leichtigkeit visualisieren Bewertung: 0 von 5 Sternen0 BewertungenKnigge für Softwarearchitekten. Reloaded Bewertung: 0 von 5 Sternen0 BewertungenEinfach Java: Gleich richtig programmieren lernen Bewertung: 0 von 5 Sternen0 BewertungenKOMA-Script: Eine Sammlung von Klassen und Paketen für LaTeX 2e Bewertung: 0 von 5 Sternen0 Bewertungen3D-Drucken für Einsteiger: Ohne Frust 3D-Drucker selbst nutzen Bewertung: 0 von 5 Sternen0 BewertungenWeniger schlecht Projekte managen: Ohne Krise zum Projekterfolg Bewertung: 0 von 5 Sternen0 BewertungenAgiles Coaching als Erfolgsfaktor: Grundlagen des Coachings, um Agile Teams erfolgreich zu managen Bewertung: 0 von 5 Sternen0 BewertungenZertifizierung für Softwarearchitekten: Ihr Weg zur iSAQB-CPSA-F-Prüfung Bewertung: 0 von 5 Sternen0 BewertungenDigital Painting Workbook Bewertung: 0 von 5 Sternen0 BewertungenProgrammieren lernen mit Python 3: Schnelleinstieg für Beginner Bewertung: 0 von 5 Sternen0 BewertungenPrinzipien des Softwaredesigns: Entwurfsstrategien für komplexe Systeme Bewertung: 0 von 5 Sternen0 BewertungenKompaktes Managementwissen: Die Grunstruktur agiler Prozesse Bewertung: 0 von 5 Sternen0 BewertungenUML @ Classroom: Eine Einführung in die objektorientierte Modellierung Bewertung: 0 von 5 Sternen0 BewertungenSoftwareentwicklungsprozess: Von der ersten Idee bis zur Installation Bewertung: 0 von 5 Sternen0 BewertungenEinstieg in Reguläre Ausdrücke Bewertung: 0 von 5 Sternen0 BewertungenScrum: Agiles Projektmanagement erfolgreich einsetzen Bewertung: 4 von 5 Sternen4/5Lean Management für Einsteiger: Erfolgsfaktoren für Lean Management – Lean Leadership & Co. als langfristige Erfolgsgaranten Bewertung: 0 von 5 Sternen0 BewertungenModellbasiertes Requirements Engineering: Von der Anforderung zum ausführbaren Testfall Bewertung: 0 von 5 Sternen0 BewertungenScrum: Schnelleinstieg Bewertung: 0 von 5 Sternen0 BewertungenDas große Python3 Workbook: Mit vielen Beispielen und Übungen - Programmieren leicht gemacht! Bewertung: 4 von 5 Sternen4/5Grundlagen und Methoden der Wirtschaftsinformatik: Eine anwendungsorientierte Einführung Bewertung: 0 von 5 Sternen0 BewertungenEinfach Python: Gleich richtig programmieren lernen Bewertung: 0 von 5 Sternen0 BewertungenLean Management für Einsteiger: Grundlagen des Lean Managements für Kleine und Mittelständische Unternehmen – mit Vielen Praxisbeispielen Bewertung: 0 von 5 Sternen0 BewertungenProjektmanagement für Anfänger: Grundlagen, -begriffe und Tools Bewertung: 0 von 5 Sternen0 BewertungenAgiles Projektmanagement: Scrum für Einsteiger Bewertung: 0 von 5 Sternen0 Bewertungen
Rezensionen für Modulare Software entwickeln mit OSGi
0 Bewertungen0 Rezensionen
Buchvorschau
Modulare Software entwickeln mit OSGi - Florian Pirchner
GmbH
1 Generisches Ressourcenmodell
Viele kennen OSGi als eine dünne Schicht über Java, um modulare Software zu entwickeln. OSGi übernimmt dabei die Prüfung, ob Abhängigkeiten einzelner Module in sich konsistent sind und das System somit wie gewünscht funktioniert. Ein Blick hinter die Kulissen, wie OSGi Abhängigkeiten beschreibt, lohnt sich allemal.
Dieses Kapitel zeigt, wie OSGi auf Basis des generischen Requirement-and-Capability-Modells Abhängigkeiten zwischen Bundles beschreibt. Konzepte wie OBR (OSGi Bundle Repository), Resolving und Provisioning werden in der OSGi-Welt immer wichtiger. Finales Ziel ist, dass OSGi auf Basis dieses Modells alle Abhängigkeiten erkennt und mittels definierter Bundle Repositories automatisch installiert. Auf Resolving und Provisioning wird in diesem Kapitel nicht eingegangen. Details hierzu folgen im nächsten Kapitel.
OSGi in Kürze
OSGi basiert auf der Grundidee, Java-Applikationen in Module zu unterteilen. Jedes dieser Module (Bundle genannt) kapselt Funktionen. Ein Bundle wird durch seinen Symbolic Name und die Version eindeutig bestimmt. Im Gegensatz zu herkömmlichen JAR-Files definiert ein Bundle Schnittstellen.
Aufgrund von Einträgen im MANIFEST.MF definiert ein Bundle, welche Java-Packages nach außen sichtbar sein sollen. Ebenfalls muss ein Bundle definieren, welche sichtbaren Java-Packages es von anderen Bundles konsumieren möchte. Auf den ersten Blick scheint dies etwas umständlich. Es ergibt bei genauerer Betrachtung allerdings sehr viel Sinn. Durch diesen Mechanismus erkennt OSGi, welche Java-Packages zur einwandfreien Ausführung eines Bundles benötigt werden. Benötigt Bundle A bspw. das Package org.foo, das von OSGi jedoch nicht gefunden werden kann, wird Bundle A nicht korrekt ausgeführt, und OSGi reagiert mit einem Fehler darauf.
Die Definition von Abhängigkeiten erfüllt noch einen weiteren Zweck: Laut Java-Spezifikation darf eine Klasse nur