Modulare Software entwickeln mit OSGi
()
About this ebook
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.
Read more from Florian Pirchner
MQTT im IoT: Einstieg in die M2M-Kommunikation Rating: 0 out of 5 stars0 ratingsXtend beyond Java: DSL für mobile Business-Apps Rating: 0 out of 5 stars0 ratingsVaadin mit Eclipse, Clojure und OSGi Rating: 0 out of 5 stars0 ratings
Related to Modulare Software entwickeln mit OSGi
Titles in the series (100)
Erfolgreiche Spieleentwicklung: OpenGL, OpenAL und KI Rating: 0 out of 5 stars0 ratingsJava EE Security Rating: 0 out of 5 stars0 ratingsServiceorientierte Architektur: Anforderungen, Konzeption und Praxiserfahrungen Rating: 0 out of 5 stars0 ratingsNFC: Near Field Communication für Android-Entwickler Rating: 5 out of 5 stars5/5Einstieg in Google Go Rating: 0 out of 5 stars0 ratingsAmazon Web Services für .NET Entwickler Rating: 0 out of 5 stars0 ratingsIT Wissensmanagement: Theorie und Praxis Rating: 0 out of 5 stars0 ratingsSharePoint-Entwicklung für Einsteiger Rating: 0 out of 5 stars0 ratingsTFS 2012 Versionskontrolle: Grundlagen, Check-In Policies und Branch-Modelle Rating: 0 out of 5 stars0 ratingsAlgorithmen: Grundlagen und Implementierung Rating: 0 out of 5 stars0 ratingsErfolgreiche Spieleentwicklung: OpenCL Rating: 0 out of 5 stars0 ratingsJavaScript für Eclipse-Entwickler: Orion, RAP und GWT Rating: 0 out of 5 stars0 ratingsEclipse meets Java FX Rating: 0 out of 5 stars0 ratingsBPM: Strategien und Anwendungsfälle Rating: 0 out of 5 stars0 ratingsSkalierbare Softwaresysteme: Design, Betrieb und Optimierungspotenziale Rating: 0 out of 5 stars0 ratingsHTML5 für Mobile Web Rating: 0 out of 5 stars0 ratingsHTML5 Security Rating: 0 out of 5 stars0 ratingsJavaScript auf dem Server Rating: 0 out of 5 stars0 ratingsJava 7: Fork-Join-Framework und Phaser Rating: 0 out of 5 stars0 ratingsGeolocation mit PHP: Foursquare-API, Google Places & Qype Rating: 0 out of 5 stars0 ratingsUX Design für Tablet-Websites: Ein Überblick Rating: 0 out of 5 stars0 ratingsF#: Ein praktischer Einstieg Rating: 0 out of 5 stars0 ratingsÜberzeugende Präsentationen: Konzeption, Technik und Design Rating: 0 out of 5 stars0 ratingsTFS 2012 TFS 2012 Team Build - Architektur und Installation: Architektur und Installation Rating: 0 out of 5 stars0 ratingsApache Tapestry: Einstieg in die komponentenorientierte Webentwicklung Rating: 0 out of 5 stars0 ratingsMobile Business: Was Entscheider morgen wissen müssen Rating: 0 out of 5 stars0 ratingsBig Data: Technologiegrundlagen Rating: 0 out of 5 stars0 ratingsVaadin Schnelleinstieg Rating: 0 out of 5 stars0 ratingsOAuth 2.0: Client & Server Rating: 0 out of 5 stars0 ratingsNutzeraspekte in Suchmaschinen: Komponenten für eine gelungene Usability-Gestaltung Rating: 0 out of 5 stars0 ratings
Related ebooks
Java 9: Einführung in das Modulsystem und die Migration Rating: 0 out of 5 stars0 ratingsSprachenkompendium: Ceylon, Erlang und Ruby Rating: 0 out of 5 stars0 ratingsJava 7: Fork-Join-Framework und Phaser Rating: 0 out of 5 stars0 ratingsModerne Webanwendungen mit AngularJS Rating: 0 out of 5 stars0 ratingsJava EE 7: Ein Ausblick Rating: 0 out of 5 stars0 ratingsApache Tamaya: Einstieg in die Konfiguration in Java Rating: 0 out of 5 stars0 ratingsCDI - Dependency Injection in Java EE 7: Dependency Injection in Java EE 7 Rating: 0 out of 5 stars0 ratingsJPA 2.1: Persistence-Features in Java EE 7 Rating: 0 out of 5 stars0 ratingsSpock, Geb und Selenium: Testframeworks unter die Lupe genommen Rating: 0 out of 5 stars0 ratingsjQuery Mobile: Unit Testing Rating: 0 out of 5 stars0 ratingsJava 7: Project Coin, Generics und NIO2 Rating: 0 out of 5 stars0 ratingsSpring Boot und Spring Cloud Rating: 5 out of 5 stars5/5JavaScript auf dem Server Rating: 0 out of 5 stars0 ratingsJavaScript für Java-Entwickler Rating: 0 out of 5 stars0 ratingsDas Java Memory Model: Überblick und Ausblick auf Java 9 Rating: 0 out of 5 stars0 ratingsGroovy – kurz & gut Rating: 0 out of 5 stars0 ratingsApache Kafka Rating: 0 out of 5 stars0 ratingsjQuery Mobile: Einfach mobile Web-Apps entwickeln Rating: 0 out of 5 stars0 ratingsJava EE Testing mit Arquillian Rating: 0 out of 5 stars0 ratingsElasticsearch: Clientnutzung, Datenvisualisierung und Apache Lucene Rating: 0 out of 5 stars0 ratingsjQuery Mobile - Basics: Basics Rating: 0 out of 5 stars0 ratingsEclipse meets Java FX Rating: 0 out of 5 stars0 ratingsDynamic Proxies: Effizient programmieren Rating: 0 out of 5 stars0 ratingsMemory Leaks in Java Rating: 0 out of 5 stars0 ratingsJava Core Programmierung: Memory Model und Garbage Collection Rating: 0 out of 5 stars0 ratingsDocker: Webseiten mittels Containerarchitektur erstellen Rating: 3 out of 5 stars3/5Programmieren mit PHP: Grundlagen der Programmierung von Web-Applikationen mit der Skript-Sprache PHP Rating: 0 out of 5 stars0 ratingsCSS: Best Practices und Wartbarkeit Rating: 0 out of 5 stars0 ratingsAngular 2: Moderne Frontends für alle Plattformen entwickeln Rating: 0 out of 5 stars0 ratingsMicroservices: Der Hype im Realitätscheck Rating: 0 out of 5 stars0 ratings
Software Development & Engineering For You
Scrum: Agiles Projektmanagement und Scrum erfolgreich anwenden Rating: 0 out of 5 stars0 ratingsModellbasiertes Requirements Engineering: Von der Anforderung zum ausführbaren Testfall Rating: 0 out of 5 stars0 ratingsKOMA-Script: Eine Sammlung von Klassen und Paketen für LaTeX 2e Rating: 0 out of 5 stars0 ratingsSoftwarearchitektur für Dummies Rating: 0 out of 5 stars0 ratings50 Arten, Nein zu sagen: Effektives Stakeholder-Management für Product Owner Rating: 0 out of 5 stars0 ratingsBaukunst für Softwarearchitekten: Was Software mit Architektur zu tun hat Rating: 0 out of 5 stars0 ratingsKompaktes Managementwissen: Die Grunstruktur agiler Prozesse Rating: 0 out of 5 stars0 ratings3D-Drucken für Einsteiger: Ohne Frust 3D-Drucker selbst nutzen Rating: 0 out of 5 stars0 ratingsSketchnotes in der IT: Abstrakte Themen mit Leichtigkeit visualisieren Rating: 0 out of 5 stars0 ratingsZertifizierung für Softwarearchitekten: Ihr Weg zur iSAQB-CPSA-F-Prüfung Rating: 0 out of 5 stars0 ratingsEbenen in Adobe Photoshop CC und Photoshop Elements - Gewusst wie Rating: 0 out of 5 stars0 ratingsWeniger schlecht Projekte managen: Ohne Krise zum Projekterfolg Rating: 0 out of 5 stars0 ratingsAgiliät und Continuous Delivery Rating: 0 out of 5 stars0 ratingsProgrammieren lernen mit Python 3: Schnelleinstieg für Beginner Rating: 0 out of 5 stars0 ratingsChange Management für Anfänger: Veränderungsprozesse Verstehen und Aktiv Gestalten Rating: 1 out of 5 stars1/5Einfach Python: Gleich richtig programmieren lernen Rating: 0 out of 5 stars0 ratingsDigital Painting Workbook Rating: 0 out of 5 stars0 ratingsSoftwaredesigndokumente - sinnvoller Einsatz im Projektalltag: Sinnvoller Einsatz im Projektalltag Rating: 0 out of 5 stars0 ratingsEinstieg in Reguläre Ausdrücke Rating: 0 out of 5 stars0 ratingsUML @ Classroom: Eine Einführung in die objektorientierte Modellierung Rating: 0 out of 5 stars0 ratingsScrum: Schnelleinstieg Rating: 0 out of 5 stars0 ratingsAgile Spiele – kurz & gut: Für Agile Coaches und Scrum Master Rating: 0 out of 5 stars0 ratingsIT Wissensmanagement: Theorie und Praxis Rating: 0 out of 5 stars0 ratingsKanban für Anfänger: Grundlegendes über den Einsatz von Kanban in der Industrie und der Softwareentwicklung Rating: 0 out of 5 stars0 ratingsGrundlagen und Methoden der Wirtschaftsinformatik: Eine anwendungsorientierte Einführung Rating: 0 out of 5 stars0 ratingsEinfach Java: Gleich richtig programmieren lernen Rating: 0 out of 5 stars0 ratingsBessere Softwareentwicklung mit DevOps Rating: 0 out of 5 stars0 ratingsDas große Python3 Workbook: Mit vielen Beispielen und Übungen - Programmieren leicht gemacht! Rating: 4 out of 5 stars4/5
Reviews for Modulare Software entwickeln mit OSGi
0 ratings0 reviews
Book preview
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