SlideShare ist ein Scribd-Unternehmen logo
OSGi
Was ist das und warum sollte man es sich mal anschauen
Warum sollte ich OSGi verwenden?
• modulare Anwendungen
• Versionierte Anwendungen
• (wenn richtig) wenig Abhängigkeiten
• (wenn richtig) hoher grad an Isolation der Module
• (wenn richtig) Entwickeln nur gegen Schnittstelle
2
Allgemeines und Geschichte
• SOA (Service Orientated Architechture) innerhalb einer Java VM
• Open Services Gateway initiative
• JCP „JSR-291: Dynamic Component Support for Java SE“
• Ziel sind Modulare Anwendungen für Java SE
• Derzeit Spec 7 im Draft
• Spezifiziert zwei Standards (Blueprint und Declerative Services)
• Spezifiziert auch Services (Standard Services)
3
Erweitert um Metadaten einer JAR
• MANIFEST.MF einer JAR wird um OGSi Header erweitert
• Zusätzliche Informationen zu Services unter OSGI-INF Ordner
• Erweiterte JAR wird als Bundle bezeichnet
• Jedes Bundle ist auch eine JAR
• Weitere Analogien:
• WAR Pendant heißt WAB (Web Application Bundle)
• EAR Pendant heißt EAB (Enterprise Application Bundle)
4
Ein Interface ist eine Servicebeschreibung
• Einfache Java Interfaces als Services
• Java Klassen binden das Interface ein
• OSGi Metadata definieren die Kardinalität und Notwendigkeiten
• OSGi Runtime kümmert sich um das Befriedigen der Abhängigkeit
5
TaskService
6
Blueprint
• Basiert auf Spring Dynamic Modules (DM)
• Definition per xml oder Annotations
• Wird mit Proxies umgesetzt
• Implementierungen
• Apache Aries
• Eclipse Gemini
7
Blueprint Provider
8
Blueprint Consumer
9
Declarative Services
• Kommt aus dem Standard
• Definition per xml oder Annotations
• Cascading Call model
• Standardisierte Methoden/Annotations für Starten und Stoppen
• Implementierung
• Referenzimplementierung der OSGi Alliance
• aQute.biz
10
Declarative Service Provider
11
Declerative Service Consumer
12
OSGi Runtime
• Runtime:
• Apache Felix vs Eclipse Equinox
• Repos:
• Apache Maven vs Eclipse P2 vs OBR ObjectBundleRepository
• Container
• Apache Karaf
• Eclipse Virgo (small footprint)
• “Eclipse IDE”
• IBM WebSphere
• RedHat Wildfly
13
OSGi Kritik und Mythen
• Zu kompliziert!
• Im „Alltag“ macht das meiste ein Maven Plugin
14
OSGi Kritik und Mythen
• Zu kompliziert!
• Im „Alltag“ macht das meiste ein Maven Plugin
15
•Mit Karaf super tooling und deployment, debugging
• Karaf Container
• Karaf Cellar
• Karaf Decanter
Vielen Dank für die
Aufmerksamkeit
Quellen/Sammlung
• https://github.com/cschneider/Karaf-Tutorial
• https://www.osgi.org/
• http://enroute.osgi.org/
• http://planet.jboss.org/post/thoughts_on_blueprint_and_declarative
_services_dependency_injection_or_dependency_management
• https://events.static.linuxfound.org/sites/events/files/slides/Microse
rvices-CXF-Karaf.pdf
17

Weitere ähnliche Inhalte

Was ist angesagt?

Azure für SysAdmins Eine Reise durch die Cloud v.0.5
Azure für SysAdmins   Eine Reise durch die Cloud v.0.5 Azure für SysAdmins   Eine Reise durch die Cloud v.0.5
Azure für SysAdmins Eine Reise durch die Cloud v.0.5
Oliver Michalski
 
Spontan testen! Das eigene Test Lab, für jeden in der Cloud!
Spontan testen! Das eigene Test Lab, für jeden in der Cloud!Spontan testen! Das eigene Test Lab, für jeden in der Cloud!
Spontan testen! Das eigene Test Lab, für jeden in der Cloud!
Peter Kirchner
 
Acceptance Testing - Automatisierte Web App Tests mit CasperJS
Acceptance Testing - Automatisierte Web App Tests mit CasperJSAcceptance Testing - Automatisierte Web App Tests mit CasperJS
Acceptance Testing - Automatisierte Web App Tests mit CasperJS
Björn Wilmsmann
 
Microsoft Azure Platform - System Management v.0.5
Microsoft Azure Platform -  System Management v.0.5 Microsoft Azure Platform -  System Management v.0.5
Microsoft Azure Platform - System Management v.0.5
Oliver Michalski
 
Restful Frontend-Architecture
Restful Frontend-ArchitectureRestful Frontend-Architecture
Restful Frontend-ArchitectureSandro Sonntag
 
Performanter, hochskalierbarer Web 2.0-Dienst in Ruby
Performanter, hochskalierbarer Web 2.0-Dienst in RubyPerformanter, hochskalierbarer Web 2.0-Dienst in Ruby
Performanter, hochskalierbarer Web 2.0-Dienst in Ruby
vesparun
 
Good by Server... Hello Client!
Good by Server... Hello Client!Good by Server... Hello Client!
Good by Server... Hello Client!Sandro Sonntag
 
Vorlesung - Cloud Infrastrukturen - Einleitung | anynines
Vorlesung - Cloud Infrastrukturen - Einleitung | anyninesVorlesung - Cloud Infrastrukturen - Einleitung | anynines
Vorlesung - Cloud Infrastrukturen - Einleitung | anynines
anynines GmbH
 
Dev Day 2019: Alexander Lichter - JAMstack - Eine neuartige Webanwendungs-Arc...
Dev Day 2019: Alexander Lichter - JAMstack - Eine neuartige Webanwendungs-Arc...Dev Day 2019: Alexander Lichter - JAMstack - Eine neuartige Webanwendungs-Arc...
Dev Day 2019: Alexander Lichter - JAMstack - Eine neuartige Webanwendungs-Arc...
DevDay Dresden
 

Was ist angesagt? (11)

Azure für SysAdmins Eine Reise durch die Cloud v.0.5
Azure für SysAdmins   Eine Reise durch die Cloud v.0.5 Azure für SysAdmins   Eine Reise durch die Cloud v.0.5
Azure für SysAdmins Eine Reise durch die Cloud v.0.5
 
Spontan testen! Das eigene Test Lab, für jeden in der Cloud!
Spontan testen! Das eigene Test Lab, für jeden in der Cloud!Spontan testen! Das eigene Test Lab, für jeden in der Cloud!
Spontan testen! Das eigene Test Lab, für jeden in der Cloud!
 
Api services
Api servicesApi services
Api services
 
Acceptance Testing - Automatisierte Web App Tests mit CasperJS
Acceptance Testing - Automatisierte Web App Tests mit CasperJSAcceptance Testing - Automatisierte Web App Tests mit CasperJS
Acceptance Testing - Automatisierte Web App Tests mit CasperJS
 
Microsoft Azure Platform - System Management v.0.5
Microsoft Azure Platform -  System Management v.0.5 Microsoft Azure Platform -  System Management v.0.5
Microsoft Azure Platform - System Management v.0.5
 
GWT
GWTGWT
GWT
 
Restful Frontend-Architecture
Restful Frontend-ArchitectureRestful Frontend-Architecture
Restful Frontend-Architecture
 
Performanter, hochskalierbarer Web 2.0-Dienst in Ruby
Performanter, hochskalierbarer Web 2.0-Dienst in RubyPerformanter, hochskalierbarer Web 2.0-Dienst in Ruby
Performanter, hochskalierbarer Web 2.0-Dienst in Ruby
 
Good by Server... Hello Client!
Good by Server... Hello Client!Good by Server... Hello Client!
Good by Server... Hello Client!
 
Vorlesung - Cloud Infrastrukturen - Einleitung | anynines
Vorlesung - Cloud Infrastrukturen - Einleitung | anyninesVorlesung - Cloud Infrastrukturen - Einleitung | anynines
Vorlesung - Cloud Infrastrukturen - Einleitung | anynines
 
Dev Day 2019: Alexander Lichter - JAMstack - Eine neuartige Webanwendungs-Arc...
Dev Day 2019: Alexander Lichter - JAMstack - Eine neuartige Webanwendungs-Arc...Dev Day 2019: Alexander Lichter - JAMstack - Eine neuartige Webanwendungs-Arc...
Dev Day 2019: Alexander Lichter - JAMstack - Eine neuartige Webanwendungs-Arc...
 

Ähnlich wie JUG MZ OSGi Lightning Talk

Grails im Überblick und in der Praxis
Grails im Überblick und in der PraxisGrails im Überblick und in der Praxis
Grails im Überblick und in der Praxis
Tobias Kraft
 
EnterJS 2015 - JavaScript von Morgen schon heute
EnterJS 2015 - JavaScript von Morgen schon heuteEnterJS 2015 - JavaScript von Morgen schon heute
EnterJS 2015 - JavaScript von Morgen schon heute
Philipp Burgmer
 
Arquillian
ArquillianArquillian
Arquillian
Korhan Gülseven
 
Wie Azure Jakarta EE Nutzt
Wie Azure Jakarta EE NutztWie Azure Jakarta EE Nutzt
Wie Azure Jakarta EE Nutzt
Edward Burns
 
Die Java Plattform Strategie
Die Java Plattform StrategieDie Java Plattform Strategie
Die Java Plattform Strategie
Java Usergroup Berlin-Brandenburg
 
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDI
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDISchlanke Webarchitekturen nicht nur mit JSF 2 und CDI
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDI
adesso AG
 
AngularJs
AngularJsAngularJs
AngularJs
NETUserGroupBern
 
Never Code Alone: Von Symfony Forms zu einer SPA auf APIs
Never Code Alone: Von Symfony Forms zu einer SPA auf APIsNever Code Alone: Von Symfony Forms zu einer SPA auf APIs
Never Code Alone: Von Symfony Forms zu einer SPA auf APIs
Stefan Adolf
 
Creasoft-Akademie - Mobile Multiplattform Apps
Creasoft-Akademie - Mobile Multiplattform AppsCreasoft-Akademie - Mobile Multiplattform Apps
Creasoft-Akademie - Mobile Multiplattform Apps
Creasoft AG
 
Was kommt nach den SPAs
Was kommt nach den SPAsWas kommt nach den SPAs
Was kommt nach den SPAs
QAware GmbH
 
Java EE 7 - Enterprise-Anwendungen ohne Ballast
Java EE 7 - Enterprise-Anwendungen ohne BallastJava EE 7 - Enterprise-Anwendungen ohne Ballast
Java EE 7 - Enterprise-Anwendungen ohne Ballast
gedoplan
 
20160310_ModernApplicationDevelopment_NoSQL_KPatenge
20160310_ModernApplicationDevelopment_NoSQL_KPatenge20160310_ModernApplicationDevelopment_NoSQL_KPatenge
20160310_ModernApplicationDevelopment_NoSQL_KPatenge
Karin Patenge
 
Icinga 2009 at Nagios Workshop
Icinga 2009 at Nagios WorkshopIcinga 2009 at Nagios Workshop
Icinga 2009 at Nagios Workshop
Icinga
 
Introduction to JEE
Introduction to JEEIntroduction to JEE
Introduction to JEEguestc44b7b
 
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
Peter Hecker
 
Oracle Database Appliance, Partnerwebcast, November 2011
Oracle Database Appliance, Partnerwebcast, November 2011Oracle Database Appliance, Partnerwebcast, November 2011
Oracle Database Appliance, Partnerwebcast, November 2011
Ileana Somesan
 
Jug nbg containerplattform dcos
Jug nbg containerplattform dcosJug nbg containerplattform dcos
Jug nbg containerplattform dcos
Ralf Ernst
 
Javamagazin 1.2016 jdk9_ea_b83_jigsaw
Javamagazin 1.2016 jdk9_ea_b83_jigsawJavamagazin 1.2016 jdk9_ea_b83_jigsaw
Javamagazin 1.2016 jdk9_ea_b83_jigsaw
Wolfgang Weigend
 
JavaScript für Java-Entwickler W-JAX 2013
JavaScript für Java-Entwickler W-JAX 2013JavaScript für Java-Entwickler W-JAX 2013
JavaScript für Java-Entwickler W-JAX 2013Oliver Zeigermann
 
Spring 2.0
Spring 2.0Spring 2.0
Spring 2.0
Thorsten Kamann
 

Ähnlich wie JUG MZ OSGi Lightning Talk (20)

Grails im Überblick und in der Praxis
Grails im Überblick und in der PraxisGrails im Überblick und in der Praxis
Grails im Überblick und in der Praxis
 
EnterJS 2015 - JavaScript von Morgen schon heute
EnterJS 2015 - JavaScript von Morgen schon heuteEnterJS 2015 - JavaScript von Morgen schon heute
EnterJS 2015 - JavaScript von Morgen schon heute
 
Arquillian
ArquillianArquillian
Arquillian
 
Wie Azure Jakarta EE Nutzt
Wie Azure Jakarta EE NutztWie Azure Jakarta EE Nutzt
Wie Azure Jakarta EE Nutzt
 
Die Java Plattform Strategie
Die Java Plattform StrategieDie Java Plattform Strategie
Die Java Plattform Strategie
 
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDI
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDISchlanke Webarchitekturen nicht nur mit JSF 2 und CDI
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDI
 
AngularJs
AngularJsAngularJs
AngularJs
 
Never Code Alone: Von Symfony Forms zu einer SPA auf APIs
Never Code Alone: Von Symfony Forms zu einer SPA auf APIsNever Code Alone: Von Symfony Forms zu einer SPA auf APIs
Never Code Alone: Von Symfony Forms zu einer SPA auf APIs
 
Creasoft-Akademie - Mobile Multiplattform Apps
Creasoft-Akademie - Mobile Multiplattform AppsCreasoft-Akademie - Mobile Multiplattform Apps
Creasoft-Akademie - Mobile Multiplattform Apps
 
Was kommt nach den SPAs
Was kommt nach den SPAsWas kommt nach den SPAs
Was kommt nach den SPAs
 
Java EE 7 - Enterprise-Anwendungen ohne Ballast
Java EE 7 - Enterprise-Anwendungen ohne BallastJava EE 7 - Enterprise-Anwendungen ohne Ballast
Java EE 7 - Enterprise-Anwendungen ohne Ballast
 
20160310_ModernApplicationDevelopment_NoSQL_KPatenge
20160310_ModernApplicationDevelopment_NoSQL_KPatenge20160310_ModernApplicationDevelopment_NoSQL_KPatenge
20160310_ModernApplicationDevelopment_NoSQL_KPatenge
 
Icinga 2009 at Nagios Workshop
Icinga 2009 at Nagios WorkshopIcinga 2009 at Nagios Workshop
Icinga 2009 at Nagios Workshop
 
Introduction to JEE
Introduction to JEEIntroduction to JEE
Introduction to JEE
 
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
 
Oracle Database Appliance, Partnerwebcast, November 2011
Oracle Database Appliance, Partnerwebcast, November 2011Oracle Database Appliance, Partnerwebcast, November 2011
Oracle Database Appliance, Partnerwebcast, November 2011
 
Jug nbg containerplattform dcos
Jug nbg containerplattform dcosJug nbg containerplattform dcos
Jug nbg containerplattform dcos
 
Javamagazin 1.2016 jdk9_ea_b83_jigsaw
Javamagazin 1.2016 jdk9_ea_b83_jigsawJavamagazin 1.2016 jdk9_ea_b83_jigsaw
Javamagazin 1.2016 jdk9_ea_b83_jigsaw
 
JavaScript für Java-Entwickler W-JAX 2013
JavaScript für Java-Entwickler W-JAX 2013JavaScript für Java-Entwickler W-JAX 2013
JavaScript für Java-Entwickler W-JAX 2013
 
Spring 2.0
Spring 2.0Spring 2.0
Spring 2.0
 

JUG MZ OSGi Lightning Talk

  • 1. OSGi Was ist das und warum sollte man es sich mal anschauen
  • 2. Warum sollte ich OSGi verwenden? • modulare Anwendungen • Versionierte Anwendungen • (wenn richtig) wenig Abhängigkeiten • (wenn richtig) hoher grad an Isolation der Module • (wenn richtig) Entwickeln nur gegen Schnittstelle 2
  • 3. Allgemeines und Geschichte • SOA (Service Orientated Architechture) innerhalb einer Java VM • Open Services Gateway initiative • JCP „JSR-291: Dynamic Component Support for Java SE“ • Ziel sind Modulare Anwendungen für Java SE • Derzeit Spec 7 im Draft • Spezifiziert zwei Standards (Blueprint und Declerative Services) • Spezifiziert auch Services (Standard Services) 3
  • 4. Erweitert um Metadaten einer JAR • MANIFEST.MF einer JAR wird um OGSi Header erweitert • Zusätzliche Informationen zu Services unter OSGI-INF Ordner • Erweiterte JAR wird als Bundle bezeichnet • Jedes Bundle ist auch eine JAR • Weitere Analogien: • WAR Pendant heißt WAB (Web Application Bundle) • EAR Pendant heißt EAB (Enterprise Application Bundle) 4
  • 5. Ein Interface ist eine Servicebeschreibung • Einfache Java Interfaces als Services • Java Klassen binden das Interface ein • OSGi Metadata definieren die Kardinalität und Notwendigkeiten • OSGi Runtime kümmert sich um das Befriedigen der Abhängigkeit 5
  • 7. Blueprint • Basiert auf Spring Dynamic Modules (DM) • Definition per xml oder Annotations • Wird mit Proxies umgesetzt • Implementierungen • Apache Aries • Eclipse Gemini 7
  • 10. Declarative Services • Kommt aus dem Standard • Definition per xml oder Annotations • Cascading Call model • Standardisierte Methoden/Annotations für Starten und Stoppen • Implementierung • Referenzimplementierung der OSGi Alliance • aQute.biz 10
  • 13. OSGi Runtime • Runtime: • Apache Felix vs Eclipse Equinox • Repos: • Apache Maven vs Eclipse P2 vs OBR ObjectBundleRepository • Container • Apache Karaf • Eclipse Virgo (small footprint) • “Eclipse IDE” • IBM WebSphere • RedHat Wildfly 13
  • 14. OSGi Kritik und Mythen • Zu kompliziert! • Im „Alltag“ macht das meiste ein Maven Plugin 14
  • 15. OSGi Kritik und Mythen • Zu kompliziert! • Im „Alltag“ macht das meiste ein Maven Plugin 15 •Mit Karaf super tooling und deployment, debugging • Karaf Container • Karaf Cellar • Karaf Decanter
  • 16. Vielen Dank für die Aufmerksamkeit
  • 17. Quellen/Sammlung • https://github.com/cschneider/Karaf-Tutorial • https://www.osgi.org/ • http://enroute.osgi.org/ • http://planet.jboss.org/post/thoughts_on_blueprint_and_declarative _services_dependency_injection_or_dependency_management • https://events.static.linuxfound.org/sites/events/files/slides/Microse rvices-CXF-Karaf.pdf 17