OSGi-Entwicklung
()
About this ebook
Related to OSGi-Entwicklung
Titles in the series (100)
Einstieg in Google Go Rating: 0 out of 5 stars0 ratingsServiceorientierte Architektur: Anforderungen, Konzeption und Praxiserfahrungen Rating: 0 out of 5 stars0 ratingsTFS 2012 Versionskontrolle: Grundlagen, Check-In Policies und Branch-Modelle Rating: 0 out of 5 stars0 ratingsQualität in IT-Architekturen: Strategie und Planung Rating: 0 out of 5 stars0 ratingsJava EE Security Rating: 0 out of 5 stars0 ratingsSpring: Vier Perspektiven auf Framework und Ökosystem Rating: 0 out of 5 stars0 ratingsNFC: Near Field Communication für Android-Entwickler Rating: 5 out of 5 stars5/5JavaScript für Eclipse-Entwickler: Orion, RAP und GWT Rating: 0 out of 5 stars0 ratingsHTML5 Security Rating: 0 out of 5 stars0 ratingsErfolgreiche Spieleentwicklung: OpenGL, OpenAL und KI Rating: 0 out of 5 stars0 ratingsÜberzeugende Präsentationen: Konzeption, Technik und Design Rating: 0 out of 5 stars0 ratingsHTML5 für Mobile Web Rating: 0 out of 5 stars0 ratingsJava 7: Fork-Join-Framework und Phaser Rating: 0 out of 5 stars0 ratingsSkalierbare Softwaresysteme: Design, Betrieb und Optimierungspotenziale Rating: 0 out of 5 stars0 ratingsJavaScript auf dem Server Rating: 0 out of 5 stars0 ratingsAmazon Web Services für .NET Entwickler Rating: 0 out of 5 stars0 ratingsF#: Ein praktischer Einstieg Rating: 0 out of 5 stars0 ratingsGeolocation mit PHP: Foursquare-API, Google Places & Qype Rating: 0 out of 5 stars0 ratingsIT Wissensmanagement: Theorie und Praxis Rating: 0 out of 5 stars0 ratingsAlgorithmen: Grundlagen und Implementierung Rating: 0 out of 5 stars0 ratingsBPM: Strategien und Anwendungsfälle Rating: 0 out of 5 stars0 ratingsErfolgreiche Spieleentwicklung: OpenCL Rating: 0 out of 5 stars0 ratingsTitanium Mobile: Multi Platform Apps mit JavaScript Rating: 0 out of 5 stars0 ratingsTFS 2012 Anforderungsmanagement: Work Items und Prozessvorlagen Rating: 0 out of 5 stars0 ratingsBig Data: Technologiegrundlagen Rating: 0 out of 5 stars0 ratingsjQuery Mobile - Basics: Basics Rating: 0 out of 5 stars0 ratingsUX Design für Tablet-Websites: Ein Überblick Rating: 0 out of 5 stars0 ratingsBig Data: Executive Briefing Rating: 0 out of 5 stars0 ratingsSharePoint-Entwicklung für Einsteiger Rating: 0 out of 5 stars0 ratingsJava EE 7: Ein Ausblick Rating: 0 out of 5 stars0 ratings
Related ebooks
Vom Monolithen zu Microservices: Patterns, um bestehende Systeme Schritt für Schritt umzugestalten Rating: 0 out of 5 stars0 ratingsMicroservices: Der Hype im Realitätscheck Rating: 0 out of 5 stars0 ratingsJavaScript für Eclipse-Entwickler: Orion, RAP und GWT Rating: 0 out of 5 stars0 ratingsJavaScript Performance Rating: 0 out of 5 stars0 ratingsWebanwendungen erstellen mit Vue.js: MVVM-Muster für konventionelle und Single-Page-Webseiten Rating: 0 out of 5 stars0 ratingsMicroservices-Architektur: Patterns in Spring implementieren Rating: 0 out of 5 stars0 ratings.NET-Praxis: Tipps und Tricks zu .NET und Visual Studio Rating: 0 out of 5 stars0 ratingsSoftwarearchitektur für Dummies Rating: 0 out of 5 stars0 ratingsSingle-Page-Web-Apps: JavaScript im Einsatz: Webseiten erstellen mit AngularJS, Meteor und jQuery Mobile Rating: 0 out of 5 stars0 ratingsModularisierung mit Java 9: Grundlagen und Techniken für langlebige Softwarearchitekturen Rating: 0 out of 5 stars0 ratingsZukunftssichere Architektur: So bauen Sie monolithische Anwendungen zu komponentenorientierten um Rating: 0 out of 5 stars0 ratingsLogging: Schnelleinstieg Rating: 0 out of 5 stars0 ratingsDurchstarten mit React: Web-Apps einfach und modular entwickeln Rating: 0 out of 5 stars0 ratingsCouchDB mit PHP Rating: 0 out of 5 stars0 ratingsSoftware modular bauen: Architektur von langlebigen Softwaresystemen - Grundlagen und Anwendung mit OSGi und Java Rating: 0 out of 5 stars0 ratingsCloud Computing Rating: 0 out of 5 stars0 ratingsWicket: Komponentenbasiert und objektorientiert - das alternative Java-Webframework Rating: 0 out of 5 stars0 ratingsMit Scratch 3 programmieren lernen Rating: 0 out of 5 stars0 ratingsVue.js für alle: Wissenswertes für Einsteiger und Experten Rating: 0 out of 5 stars0 ratingsOpenLaszlo: schnell + kompakt Rating: 0 out of 5 stars0 ratingsSoftwarestabilität in der Industrie Rating: 0 out of 5 stars0 ratingsMemory Leaks in Java Rating: 0 out of 5 stars0 ratingsCross-Plattform-Entwicklung mit HTML und JavaScript Rating: 0 out of 5 stars0 ratingsLanglebige Software-Architekturen: Technische Schulden analysieren, begrenzen und abbauen Rating: 0 out of 5 stars0 ratingsErfahrungen mit Eclipse 4: aus der Praxis für die Praxis Rating: 0 out of 5 stars0 ratingsVon Monolithen und Microservices: Funktionierende Microservices-Architekturen erstellen Rating: 0 out of 5 stars0 ratingsjQuery Mobile: Unit Testing Rating: 0 out of 5 stars0 ratingsArchitekturpatterns mit Python: Test-Driven Development, Domain-Driven Design und Event-Driven Microservices praktisch umgesetzt Rating: 0 out of 5 stars0 ratingsSoftware Development Trends: Wegweisende Beiträge für eine neue IT: Wegweisende Beiträge für eine neue IT Rating: 0 out of 5 stars0 ratingsTitanium Mobile: Multi Platform Apps mit JavaScript Rating: 0 out of 5 stars0 ratings
Programming For You
Die ultimative FRITZ!Box Bibel - Das Praxisbuch 2. aktualisierte Auflage - mit vielen Insider Tipps und Tricks - komplett in Farbe Rating: 0 out of 5 stars0 ratingsNew Game Plus: Perspektiven der Game Studies. Genres - Künste - Diskurse (Bild und Bit. Studien zur digitalen Medienkultur) Rating: 0 out of 5 stars0 ratingsHacken mit Python und Kali-Linux: Entwicklung eigener Hackingtools mit Python unter Kali-Linux Rating: 0 out of 5 stars0 ratingsPython | Schritt für Schritt Programmieren lernen: Der ultimative Anfänger Guide für einen einfachen & schnellen Einstieg Rating: 0 out of 5 stars0 ratingsPython programmieren lernen: Der spielerische Einstieg mit Minecraft Rating: 0 out of 5 stars0 ratingsTraumjob IT 2021: Branchenüberblick, Erfahrungsberichte und Tipps zum Berufseinstieg Rating: 5 out of 5 stars5/5Raspberry Pi: Einstieg • Optimierung • Projekte Rating: 5 out of 5 stars5/5Python-Grundlagen Rating: 0 out of 5 stars0 ratingsHTML5-Programmierung von Kopf bis Fuß: Webanwendungen mit HTML5 und JavaScript Rating: 0 out of 5 stars0 ratingsProgrammieren lernen mit Python 3: Schnelleinstieg für Beginner Rating: 0 out of 5 stars0 ratingsEigene Spiele programmieren – Python lernen: Der spielerische Weg zur Programmiersprache Rating: 0 out of 5 stars0 ratingsSQL – kurz & gut Rating: 0 out of 5 stars0 ratingsPython lernen – kurz & gut Rating: 0 out of 5 stars0 ratingsMicrocontroller für das IoT Rating: 0 out of 5 stars0 ratingsSoftwareentwicklungsprozess: Von der ersten Idee bis zur Installation Rating: 0 out of 5 stars0 ratingsMikrocontroller in der Elektronik: Mikrocontroller programmieren und in der Praxis einsetzen Rating: 0 out of 5 stars0 ratingsRaspberry Pi: Mach's einfach: Die kompakteste Gebrauchsanweisung mit 222 Anleitungen. Geeignet für Raspberry Pi 3 Modell B / B+ 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/5Algorithmen: Grundlagen und Implementierung Rating: 0 out of 5 stars0 ratingsVue.js für alle: Wissenswertes für Einsteiger und Experten Rating: 0 out of 5 stars0 ratingsProgrammieren für Einsteiger: Teil 1 Rating: 0 out of 5 stars0 ratingsBash kurz & gut Rating: 0 out of 5 stars0 ratingsC++: Eine kompakte Einführung Rating: 0 out of 5 stars0 ratingsGit kurz & gut Rating: 0 out of 5 stars0 ratingsDocker: Webseiten mittels Containerarchitektur erstellen Rating: 3 out of 5 stars3/5Python kurz & gut: Für Python 3.x und 2.7 Rating: 3 out of 5 stars3/5Android-Programmierung kurz & gut Rating: 0 out of 5 stars0 ratings.NET-Praxis: Tipps und Tricks zu .NET und Visual Studio Rating: 0 out of 5 stars0 ratingsSQL von Kopf bis Fuß Rating: 4 out of 5 stars4/5
Reviews for OSGi-Entwicklung
0 ratings0 reviews
Book preview
OSGi-Entwicklung - Peter Kriens
GmbH
1 Ein neues Framework für OSGi-Anwendungen
Als wir im Jahr 1998 mit den Arbeiten an den OSGi-Spezifikationen begannen, hatten wir die Gelegenheit, ein Weltklasseframework für kleine Netzwerkgateways zu schaffen – der aktuelle Raspberry Pi ist im Vergleich dazu extrem leistungsfähig. Heute, sechzehn Jahre später, ist OSGi die führende Modularitätslösung für Java-Anwendungen auf dem Markt. Es ist eine Technologie, die wir für unabdingbar für die Entwicklung anspruchsvoller Java-Anwendungen halten. Dennoch zeigen diverse Blogs, dass einige falsche Annahmen über OSGi im Umlauf sind.
OSGi ist die einzige Lösung auf dem Markt, die die letzten Innovationen unserer IT-Industrie, etwa Objektorientierung und Inversion of Control/Dependency Injection, umfassend mit einschließt und darüber hinaus den nächsten Paradigmenwechsel mit sich bringt: serviceorientierte Programmierung. Dabei geht es nicht darum, auf einer Art Hypewelle mitzureiten – nein, serviceorientierte Programmierung war keineswegs ein nachgelagerter Gedanke bei OSGi. Echte serviceorientierte Systeme (SOS) sind von Beginn an der Kern von OSGi gewesen. Erst nachdem die SOA-Bewegung den Begriff „Service für sich vereinnahmt hatte, begannen wir, unsere Services „Microservices
zu nennen. Und mittlerweile verwenden wir den Begriff „μservice, da „Microservice
heute immer mehr für das weitaus schwergewichtigere Modell der REST-Services genutzt wird.
Obwohl das μservice-Modell das wichtigste Feature von OSGi ist, stellt es auch die größte Herausforderung für die Verbreitung von OSGi dar, weil es von Entwicklern fordert, anders zu denken. Java – und insbesondere Java EE – hat einige schlechte Angewohnheiten in Mode gebracht. Zum Beispiel war Class Loading niemals als Extensions-Mechanismus konzipiert. Und Statics in einem API haben dieselben Nachteile wie globale Variablen: Sie erzeugen beide unschöne Kontext- und Singleton-Probleme. Leider gibt es in Java kein mächtigeres Extensions-Modell, das die Entwicklung von Anwendungen aus wiederverwendbaren Modulen heraus erlaubt. OSGi liefert eine solche solide Lösung für Modularität.
Allerdings hat die Vermeidung der schlechten Angewohnheiten, die Java so antimodular machen, es OSGi erschwert, den Mainstream-Java-Entwickler zu erreichen. Nur wenn diese Entwickler sich so tief im Softwaredickicht verstricken, dass OSGi unvermeidbar wird, verstehen sie endlich die Lösungsansätze von OSGi.
Das OSGi-μservice-Modell ist ein Paradigmenwechsel
Das große Problem mit Paradigmenwechseln ist, dass das Publikum oft blind für die Vorteile des neuen Paradigmas ist. Das ist hervorragend im Buch „Flatland" von Edwin A. Abbott nachgezeichnet, in dem es um das Leben in verschiedenen Dimensionen geht. Es wird gezeigt, wie ein Punkt, der in einer Welt von Linien existiert, sich niemals eine Ebene vorstellen kann. Genauso wird sich eine Ebene niemals eine Kugel denken könnte.
Und auch wir selbst sind verloren, wenn wir über eine vierte oder fünfte Dimension nachdenken. Wir verstehen sie zwar rational und haben keine Probleme damit, mit tausenden von Dimensionen zu rechnen, doch wir werden niemals etwas von einer Sache empfinden, die wir nicht wirklich erfahren haben.
Ein Beispiel: Im Sun Java Issue Tracker fragte einst jemand nach einer Multimap – eine überraschende Lücke im Java Collections API. Der Issue wurde von Sun aber geschlossen, weil der Autor niemals die Notwendigkeit einer Multimap verspürte – anders als die vielen nicht beachteten Upvoter. In ähnlicher Weise war es für mich als alter Smalltalker interessant, in den letzten Jahren die Diskussionen über die Einführung von Lambda-Ausdrücken in Java zu verfolgen. Viele Entwickler waren skeptisch. Doch werden dieselben Entwickler sich in einigen Jahren eine Welt ohne Lambdas nicht mehr vorstellen können. Die Welt wäre ein ruhiger Ort, wenn wir nur über Technologien reden würden, mit denen wir selbst schmerzvolle Erfahrungen gemacht haben.
Wir haben bei der OSGi Alliance also diese wundervolle neue Dimension der Softwareentwicklung, doch zeigt es sich, dass sie nur schwer zu vermitteln ist. Nur wer die Vorteile wirklich am eigenen Leib erfahren hat, wird verärgert aufschauen und fragen, warum ihm das niemand