SlideShare uma empresa Scribd logo
1 de 52
Baixar para ler offline
C. Schädel, C. Schmidt-Casdorff | iks GmbH


Provisioning unter OSGi
für Test und Betrieb
Einleitung
   Überblicksvortrag
   Beispiele „idealisiert“ – Mischformen existieren
   Problemstellung des Provisioning unter OSGi
   Lösungsansätze
       exemplarisch anhand von Tools
Agenda
   Einführung
   Provisioning-Konzepte und Tools
       OSGi Bordmittel
       PAX Runner
       OSGi Bundle Repository und Features
       Equinox P2
       Weitere …
   Repository Strategien
   Provisioning für OSGi Integrationstests
Begrifflichkeiten                                          (1)
   Deploybare Anwendung
       Kann isoliert installiert / deinstalliert werden
       Besteht aus einer/wenigen Datei(en)
       Ist aus anderen Container-Konzepten bekannt


   OSGi kennt dieses Konzept nicht
       Anwendung ist eine Menge an Bundles
       Bundles interagieren untereinander
       Anwendung hat keine Exklusivität an Bundles
Begrifflichkeiten                                          (2)
Quintessenz
   Es wird eine Menge an Bundles installiert
       Wie wird diese Menge zusammengestellt?
       Wie wird diese Menge bereitgestellt?
       Wie lässt sich die Reaktion auf die Installation
        abschätzen ?
           Können die Bundles gestartet werden?
           Wie werden ImportPackages aufgelöst?
   OSGi bietet keine out-of-the-box Lösung

 Provisioning unter OSGi
Begrifflichkeiten                                   (3)
   Bootstrapping
       Zu installierende Bundles werden beim Startup des
        OSGi-Frameworks installiert und gestartet
       Start-Level regeln die Reihenfolge
       Neustart des OSGi-Frameworks notwendig
   Laufzeit - Provisioning
       Bundles werden zur Laufzeit des OSGi-Frameworks
        installiert und gestartet
       Kein Neustart des OSGi-Frameworks notwendig
Anforderungen
   Quality of Service
       Automatisierbar
       Zuverlässig
       Deterministisch / wiederholbar


   . . . für Bootstrapping- und Laufzeitprovisioning


 testbar
Bemerkungen
   Alle Provisioning-Verfahren
       Definieren eine Menge an Bundles
       Niemals die Abhängigkeiten der Bundles
        untereinander
           Diese löst das OSGi-Framework auf
           Daher Unterschiede bei z.B. Kompilieren
       Bereitstellung : Bundle
       Installation / Resolving : Bundle / Package
   Paradigmenwechsel
       Wie unterstützt Provisioningprozess diesen?
Agenda
   Einführung
   Provisioning-Konzepte und Tools
       OSGi Bordmittel
       PAX Runner
       OSGi Repository Admin und Features
       Equinox P2
       Weitere …
   Repository Strategien
   Provisioning für OSGi Integrationstests
OSGi Bordmittel                                       (1)
   Installation beim Start des OSGi-Frameworks
       Kurz: Bootstrapping
       Startup-Konfiguration
           Unterstützung durch Start Level Service
           auto-deploy von Apache Felix
   Installation zur Laufzeit
       CLI / Konsole
       FileInstaller Service von Apache Felix
OSGi Bordmittel                                      (2)
   Provisioning mit OSGi Bordmitteln
       Händische Installation
       Lage des Bundles im Filesystem muss bekannt sein
       Anwendbar nur bei kleiner Menge an Bundles
OSGi Bordmittel   (3)
Agenda
   Einführung
   Provisioning-Konzepte und Tools
       OSGi Bordmittel
       PAX Runner
       OSGi Bundle Repository und Features
       Equinox P2
       Weitere …
   Repository Strategien
   Provisioning für OSGi Integrationstests
PAX Runner – Konzepte                           (1)
   Bootstrapping-Prozess für OSGi
   Konfiguration des zu startenden Frameworks
       Unterstützt alle wichtigen Frameworks
   Zusammenstellung der zu installierenden
    Bundles
       Unterstützt Start-Levels
PAX Runner – Konzepte                                    (2)
   Bundles werden aus unterschiedlichen Quellen
    bereitgestellt
       Filesystem, ZIP, Maven Repository, …
       Bundles werden in diese Quellen deployed
   Bundles können in profiles gruppiert werden
       (transitive) Abhängigkeiten von profiles möglich
       PAX Runner scannt die profiles und installiert
        Bundles
       OSGi-Frameworks werden in profiles beschrieben
Installation via PAX Runner                                   (3)
   PAX Runner liefert
       einen deterministischen Provisioningprozess
       Installation allerdings nur zum Bootstrapping
           Aufsetzen eines initialen Zustands
       Trennt Bereitstellung und Installation
           Lässt eine spezifische Struktur der Bundle-Quellen zu




 Das ist ein wichtiger Schritt
Installation via PAX Runner   (4)
Agenda
   Einführung
   Provisioning-Konzepte und Tools
       OSGi Bordmittel
       PAX Runner
       OSGi Bundle Repository und Features
       Equinox P2
       Weitere …
   Repository Strategien
   Provisioning für OSGi Integrationstests
OSGi Bundle Repository                                   (1)
   Kann ein Bundle installiert werden ?
       Sind require-bundle, ImportPackage aufzulösen?
       Sind die fehlenden Abh. dynamisch nachzuinstallieren?
           Konzept zur Beschreibung von Anforderungen
           Wenn ja, wo finde ich die Bundles?
OSGi Bundle Repository                                (2)
   OBR ist Spezifikation der OSGi Alliance
   Definiert Struktur von Bundle-Repositories
       Meta-Informationen von Bundles
       Abfragen gegen Repositories
   Definiert Zugriffsschnittstellen auf Repositories
       Via Repository Admin Service
       Abbildung auf unterschiedliche, physische Repositories
   Unterstützt einen proaktiven resolving process
       Für Konflikte können Verfahren implementiert werden
OSGi Bundle Repository                              (3)
   Herkömmliche Repositories (z.B. maven)
       Beinhalten Artefakte
       Abhängigkeiten zwischen den Artefakten
   OBR
       Verwaltet Ressourcen
       Trennt Metadaten und Ressourcen
       Abhängigkeiten werden über capabilities abgebildet
           Allgemeineres Konzept
           Beinhaltet ImportPackages, ….
       Abfragen über capabilities
OSGi Bundle Repository                         (4)
   Apache Karaf bietet Schnittstelle
       Um Bundles via OBR zu installieren
           Inkl. erforderlicher Bundles
   Schnittstelle ist Bestandteil der karaf OBR Shell
OSGi Bundle Repository   (5)
Features                                    (1)
   Features fassen eine Menge an Bundles
    zusammen und unterstützen
       abhängige Features
       Konfiguration
       feature repositories
   Sind ein Konzept von Apache
       Integriert in apache karaf
   Werden durch den Feature Service verwaltet
       Kein OSGi-Standard
Features                                                     (2)
   Features werden aus unterschiedlichen Quellen
    bereitgestellt
       Filesystem, Http, maven repository, …
   Feature Service hält nur Features konsistent
       Verwaltet die Abhängigkeiten zwischen Features
           Inkl. der Abhängigkeiten aller feature bundles
   Nutzt nicht OBR
   Bereitstellung muss für Konsistenz sorgen
Features   (3)
Zusammenfassung
   OSGi Bundle Repository
       Unterstützt keine Bereitstellung
       Ist Basistechnologie für einen Provisioningprozess


   Feature Service
       Ermöglicht ein Provisioning zur Laufzeit
           Verbindet Bereitstellung und Installation
       Bereitstellung hat für die Konsistenz zu sorgen
Agenda
   Einführung
   Provisioning-Konzepte und Tools
       OSGi Bordmittel
       PAX Runner
       OSGi Bundle Repository und Features
       Equinox P2
       Weitere …
   Repository Strategien
   Provisioning für OSGi Integrationstests
Konzepte Equinox P2                                  (1)
   Equinox: OSGi-Framework


   P2: general provisioning system
       Ersetzt den Update-Manager
       Starke Unterstützung für RCP-Applikationen
       Nicht nur für OSGi-Bundles
Konzepte Equinox P2                               (2)




   Bundle = Artifact
   Installable Units (IU) sind Metadaten
   Artifacts liegen in ‚artifact repositories‘
   IUs liegen in ‚metadata repositories‘
Konzepte Equinox P2                          (3)
   Konzepte:
       „if it installs, it runs“
       Bootstrapping Installation (Yoxos)
       Installation zur Laufzeit
       Bundle-Pooling
       Paralleler Download von Bundles
       Touchpoints
Agenda
   Einführung
   Provisioning-Konzepte und Tools
       OSGi Bordmittel
       PAX Runner
       OSGi Bundle Repository und Features
       Equinox P2
       Weitere …
   Repository Strategien
   Provisioning für OSGi Integrationstests
Apache ACE                                         (1)
   Bisherige Provisioningprozesse
       Keine Konfiguration von Installationen
       Arbeiten gegen genau eine Instanz eines OSGi-
        Framework
       Keine historisierten Installationen
           Kein Rollback möglich




 System zur Verteilung von Komponenten
Apache ACE                                          (2)
   software distribution framework
       Zentrale Konfiguration von Installationen
           Versionierung
       Zentrale Installation auf Ziel-OSGi-Frameworks
           Historisierung
       Rückkopplung der Veränderungen auf den Ziel-
        Frameworks
   http://incubator.apache.org/ace/
Ausblick
   Bisherige Provisioningprozesse …
       basieren alle auf Bundles
       bieten keine weiteren Deployment- und
        Installationseinheiten
   Gibt es die deploybare OSGi-Anwendung?




Platform ARchive
Spring Source DM Server
   Eclipse Equinox OSGi-Framework
   Spring DM (Dynamic Modules) Kernel
   provisioning service
       Fehlende Abhängigkeiten werden automatisch
        'on demand' installiert
       dynamisches Deployment
   SpringSource Enterprise Bundle Repository
Spring Source DM Server - PAR
   Spring Source DM Server spezifisch
   OSGi-Applikation
   Kann Bundles oder Services außerhalb des
    PARs verwenden
   Ist in sich abgeschlossen
       Keine Bundles oder Services des PAR können von
        ‚außen‘ genutzt werden
   Deployment erfolgt über Ablage in „pickup“ -
    Verzeichnis
Agenda
   Einführung
   Provisioning-Konzepte und Tools
       OSGi Bordmittel
       PAX Runner
       OSGi Bundle Repository und Features
       Equinox P2
       Weitere …
   Repository Strategien
   Provisioning für OSGi Integrationstests
Repository Strategien                                (1)
   Ein Repository ist eine Quelle zur Bereitstellung
       mvn, P2, OBR, aber auch ZIP, file
   Ein Provisioningprozess umfasst immer
       Bereitstellung (der Bundles) -> Repository
       Installation
   Ausliefern einer Anwendung bedeutet
       Auslieferung eines Provisioningprozesses


 Wie ist mit Repositories umzugehen?
Repository Strategien                                (2)
   Integrationstests über Auslieferungsrepositories
       Konsistenz des Repositories beeinflusst
        Provisioning
   Repository per Applikation vs. zentrales
    Repository
       Dezidierte Auflösung vs. universelle Auflösung
   Repository per Staging vs. zentrales Repository
       Stabile Produktionsumgebung vs.
        produktionsgleiche Integrationstest
Repository Strategien                                       (3)
   Einsatz von Repository Manager
       Siehe Artifactory, Nexus (Professional)
           Unterstützen nicht alle Repository Strukturen
       Verwaltung von Repositories
       Transparenter Schwenk von Repositories


   OSGi-fizierte vs. herkömmliche Repositories
       Hängt von Toolauswahl des Provisionings ab
Agenda
   Einführung
   Provisioning-Konzepte und Tools
       OSGi Bordmittel
       PAX Runner
       OSGi Bundle Repository und Features
       Equinox P2
       Weitere …
   Repository Strategien
   Provisioning für OSGi Integrationstests
Integrationstest unter OSGi (1)
Anforderungen
   Tests laufen in einem OSGi-Framework ab
       Zugriff auf alle OSGi-Konzepte möglich
   Definierte Umgebung pro Test
       Jeder Test bekommt seine eigene Konfiguration
       Spezifische Konfiguration der erforderlichen Bundles
   Automatisierung / Wiederholbarkeit


 benötigen        Bootstrapping-Installationsprozess
Integrationstest unter OSGi (2)
Standardverfahren
   Es wird ein OSGi-Framework gestartet
   Es werden die benötigten Bundles bereitgestellt
   Es wird on-the-fly ein Testbundle erstellt/installiert
   Die Tests werden durchgeführt
   OSGi-Framework wird heruntergefahren


 Welchen Umfang hat ein Test?
Integrationstest unter OSGi (3)
Varianten
   Umfang der Tests je gestartetem Framework
       Pro Testmethode, Testklasse, zu testendem Bundle
       konfigurierbar
   OSGi-Framework
       embedded, extern
   Konfigurationsmöglichkeiten
       Konfiguration per Programmierung
       Konfiguration durch/in Buildprozess
Integrationstest unter OSGi (4)
Weitere Varianten
 Testframework

       JUnit 3/4, TestNG
   Integration in IDE
   Ausführungsumgebung
       Buildtool, IDE, händisch …
PAX Exam (v 1.x)
   Umfang der Test pro Provisioning
       Start eines Frameworks pro Testmethode
           Viele Testmethoden bremsen
                1500 Testmethoden in 2 min (Erfahrung)
   Embedded oder externer OSGi-Framework
       Externer OSGi-Framework
           Kommunikation zwischen TestContainer und Framework via
            RMI
   Konfigurationsmöglichkeiten
       Programmatische Konfiguration (inkl. Annotations)
       Integration in maven-Buildprozess
           Konfigurationsdatei wird durch maven-plugins erzeugt
PAX Exam (v 2)
   Löst sich von PAX Runner
       Unterstützt mehrere TestContainer
       Embedded, Remote, ACE-Client
   Konzept der Probes
       Probes enthalten zu testenden Code
       Normalerweise ‚under-the-hood‘
       Ausführung via extender pattern
   Restart Policies
       Welche Tests werden in einem Container ausgeführt
PAX Exam
   Vergleichbare Tools
       Junit4osgi
           http://felix.apache.org/site/apache-felix-ipojo-
            junit4osgi.html
       Spring DM testsupport
           http://static.springsource.org/osgi/docs/1.2.1/reference/ht
            ml/testing.html


   Alle basieren auf Standardverfahren
       Variieren gemäß ‚Integrationstest unter OSGi (4)‘
Zusammenfassung
   Provisioningprozesse
       Bootstrapping
       Zur Laufzeit


   Provisioningprozesse im Integrationstest

   Provisioning unter OSGi ist noch nicht gelöst
       Je nach Ausgangssituation und Anforderungen
        unterschiedliche Tools, Repositories und Konzepte
Übersicht
Fragen?




                      www.iks-gmbh.com


 c.schaedel@iks-gmbh.com
 c.schmidt-casdorff@iks-gmbh.com

Mais conteúdo relacionado

Mais procurados

Tipps und Tricks im Umgang mit Docker
Tipps und Tricks im Umgang mit DockerTipps und Tricks im Umgang mit Docker
Tipps und Tricks im Umgang mit DockerNicholas Dille
 
docker.io - Secure And Portable Containers Made Easy
docker.io - Secure And Portable Containers Made Easydocker.io - Secure And Portable Containers Made Easy
docker.io - Secure And Portable Containers Made Easyinovex GmbH
 
Vagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenVagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenOPITZ CONSULTING Deutschland
 
Stephan Kaps – IT-Tage 2015 – Flyway vs. LiquiBase – Battle der Datenbankmigr...
Stephan Kaps – IT-Tage 2015 – Flyway vs. LiquiBase – Battle der Datenbankmigr...Stephan Kaps – IT-Tage 2015 – Flyway vs. LiquiBase – Battle der Datenbankmigr...
Stephan Kaps – IT-Tage 2015 – Flyway vs. LiquiBase – Battle der Datenbankmigr...Informatik Aktuell
 
docker.io @ CentOS 7 - Secure And Portable Containers Made Easy
docker.io @ CentOS 7 - Secure And Portable Containers Made Easydocker.io @ CentOS 7 - Secure And Portable Containers Made Easy
docker.io @ CentOS 7 - Secure And Portable Containers Made Easyinovex GmbH
 
TYPO3: Extension news
TYPO3: Extension newsTYPO3: Extension news
TYPO3: Extension newsNicolaiSch
 
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbHDocker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbHagilemethoden
 
Infrastructure as code: Cloud-Umgebungen mit Terraform verwalten
Infrastructure as code: Cloud-Umgebungen mit Terraform verwaltenInfrastructure as code: Cloud-Umgebungen mit Terraform verwalten
Infrastructure as code: Cloud-Umgebungen mit Terraform verwalteninovex GmbH
 
TYPO3 Website Monitoring mit Caretaker
TYPO3 Website Monitoring mit CaretakerTYPO3 Website Monitoring mit Caretaker
TYPO3 Website Monitoring mit CaretakerPeter Kraume
 
Docker - Automatisches Deployment für Linux-Instanzen
Docker - Automatisches Deployment für Linux-Instanzen Docker - Automatisches Deployment für Linux-Instanzen
Docker - Automatisches Deployment für Linux-Instanzen B1 Systems GmbH
 
Einfuehrung in die Erstellung von Software-Paketen mit dem RPM Package Manager
Einfuehrung in die Erstellung von Software-Paketen mit dem RPM Package ManagerEinfuehrung in die Erstellung von Software-Paketen mit dem RPM Package Manager
Einfuehrung in die Erstellung von Software-Paketen mit dem RPM Package ManagerLenz Grimmer
 
Docker Einführung @GPN15
Docker Einführung @GPN15Docker Einführung @GPN15
Docker Einführung @GPN15m1no
 
Infracoders Graz, smartOS - vom Netzwerk in der Box - zum Software Cloud Stack
Infracoders Graz, smartOS - vom Netzwerk in der Box - zum Software Cloud StackInfracoders Graz, smartOS - vom Netzwerk in der Box - zum Software Cloud Stack
Infracoders Graz, smartOS - vom Netzwerk in der Box - zum Software Cloud StackEdmund Siegfried Haselwanter
 
Continuous Delivery für Infrastrukturdienste in Container-Umgebungen
Continuous Delivery für Infrastrukturdienste in Container-UmgebungenContinuous Delivery für Infrastrukturdienste in Container-Umgebungen
Continuous Delivery für Infrastrukturdienste in Container-UmgebungenNicholas Dille
 
Überblick über aktuelle Versionsmanagementsysteme
Überblick über aktuelle VersionsmanagementsystemeÜberblick über aktuelle Versionsmanagementsysteme
Überblick über aktuelle VersionsmanagementsystemeAndreas Schreiber
 
Docker for Python Development
Docker for Python DevelopmentDocker for Python Development
Docker for Python DevelopmentMartin Christen
 

Mais procurados (20)

Tipps und Tricks im Umgang mit Docker
Tipps und Tricks im Umgang mit DockerTipps und Tricks im Umgang mit Docker
Tipps und Tricks im Umgang mit Docker
 
docker.io - Secure And Portable Containers Made Easy
docker.io - Secure And Portable Containers Made Easydocker.io - Secure And Portable Containers Made Easy
docker.io - Secure And Portable Containers Made Easy
 
Vagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenVagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und Architekten
 
Stephan Kaps – IT-Tage 2015 – Flyway vs. LiquiBase – Battle der Datenbankmigr...
Stephan Kaps – IT-Tage 2015 – Flyway vs. LiquiBase – Battle der Datenbankmigr...Stephan Kaps – IT-Tage 2015 – Flyway vs. LiquiBase – Battle der Datenbankmigr...
Stephan Kaps – IT-Tage 2015 – Flyway vs. LiquiBase – Battle der Datenbankmigr...
 
docker.io @ CentOS 7 - Secure And Portable Containers Made Easy
docker.io @ CentOS 7 - Secure And Portable Containers Made Easydocker.io @ CentOS 7 - Secure And Portable Containers Made Easy
docker.io @ CentOS 7 - Secure And Portable Containers Made Easy
 
TYPO3: Extension news
TYPO3: Extension newsTYPO3: Extension news
TYPO3: Extension news
 
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbHDocker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
 
Infrastructure as code: Cloud-Umgebungen mit Terraform verwalten
Infrastructure as code: Cloud-Umgebungen mit Terraform verwaltenInfrastructure as code: Cloud-Umgebungen mit Terraform verwalten
Infrastructure as code: Cloud-Umgebungen mit Terraform verwalten
 
systemd & Docker
systemd & Dockersystemd & Docker
systemd & Docker
 
coshsh
coshshcoshsh
coshsh
 
TYPO3 Website Monitoring mit Caretaker
TYPO3 Website Monitoring mit CaretakerTYPO3 Website Monitoring mit Caretaker
TYPO3 Website Monitoring mit Caretaker
 
Git im team
Git im teamGit im team
Git im team
 
Docker - Automatisches Deployment für Linux-Instanzen
Docker - Automatisches Deployment für Linux-Instanzen Docker - Automatisches Deployment für Linux-Instanzen
Docker - Automatisches Deployment für Linux-Instanzen
 
Einfuehrung in die Erstellung von Software-Paketen mit dem RPM Package Manager
Einfuehrung in die Erstellung von Software-Paketen mit dem RPM Package ManagerEinfuehrung in die Erstellung von Software-Paketen mit dem RPM Package Manager
Einfuehrung in die Erstellung von Software-Paketen mit dem RPM Package Manager
 
Docker Einführung @GPN15
Docker Einführung @GPN15Docker Einführung @GPN15
Docker Einführung @GPN15
 
Infracoders Graz, smartOS - vom Netzwerk in der Box - zum Software Cloud Stack
Infracoders Graz, smartOS - vom Netzwerk in der Box - zum Software Cloud StackInfracoders Graz, smartOS - vom Netzwerk in der Box - zum Software Cloud Stack
Infracoders Graz, smartOS - vom Netzwerk in der Box - zum Software Cloud Stack
 
Dockerize It - Mit apex in die amazon cloud
Dockerize It - Mit apex in die amazon cloudDockerize It - Mit apex in die amazon cloud
Dockerize It - Mit apex in die amazon cloud
 
Continuous Delivery für Infrastrukturdienste in Container-Umgebungen
Continuous Delivery für Infrastrukturdienste in Container-UmgebungenContinuous Delivery für Infrastrukturdienste in Container-Umgebungen
Continuous Delivery für Infrastrukturdienste in Container-Umgebungen
 
Überblick über aktuelle Versionsmanagementsysteme
Überblick über aktuelle VersionsmanagementsystemeÜberblick über aktuelle Versionsmanagementsysteme
Überblick über aktuelle Versionsmanagementsysteme
 
Docker for Python Development
Docker for Python DevelopmentDocker for Python Development
Docker for Python Development
 

Destaque

Destaque (18)

Einfuehrung in mongo_db_iks
Einfuehrung in mongo_db_iksEinfuehrung in mongo_db_iks
Einfuehrung in mongo_db_iks
 
Test-Automation mit Selenium WebDriver - ein Artikel der iks im dotnetpro
Test-Automation mit Selenium WebDriver - ein Artikel der iks im dotnetproTest-Automation mit Selenium WebDriver - ein Artikel der iks im dotnetpro
Test-Automation mit Selenium WebDriver - ein Artikel der iks im dotnetpro
 
Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)
Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)
Mehr Softwarequalität: Technische Schulden (IKS-Thementag: 05.05.2015)
 
Mehr Softwarequalitä: Usability
Mehr Softwarequalitä: UsabilityMehr Softwarequalitä: Usability
Mehr Softwarequalitä: Usability
 
"RCP-Hilfe-System" - Ein Artikel im Eclipse Magazin 6/2010
"RCP-Hilfe-System" - Ein Artikel im Eclipse Magazin 6/2010"RCP-Hilfe-System" - Ein Artikel im Eclipse Magazin 6/2010
"RCP-Hilfe-System" - Ein Artikel im Eclipse Magazin 6/2010
 
Mehr Softwarequalität: Softwarequalität ist steuerbar
Mehr Softwarequalität: Softwarequalität ist steuerbarMehr Softwarequalität: Softwarequalität ist steuerbar
Mehr Softwarequalität: Softwarequalität ist steuerbar
 
FAQs zur Technik
FAQs zur TechnikFAQs zur Technik
FAQs zur Technik
 
App-Projekte richtig steuern
App-Projekte richtig steuernApp-Projekte richtig steuern
App-Projekte richtig steuern
 
Apps als motor zur digitalen transformation
Apps als motor zur digitalen transformationApps als motor zur digitalen transformation
Apps als motor zur digitalen transformation
 
Mehr Softwarequalität: Qualität als Treiber (IKS-Thementag: 05.05.2015)
Mehr Softwarequalität: Qualität als Treiber (IKS-Thementag: 05.05.2015)Mehr Softwarequalität: Qualität als Treiber (IKS-Thementag: 05.05.2015)
Mehr Softwarequalität: Qualität als Treiber (IKS-Thementag: 05.05.2015)
 
Mehr Softwarequalität: Team-Cleancoding
Mehr Softwarequalität: Team-CleancodingMehr Softwarequalität: Team-Cleancoding
Mehr Softwarequalität: Team-Cleancoding
 
Softwarequalität: Definitionen, Grenzen, Wünsche - Vortrag IKS-Meeting im Jan...
Softwarequalität: Definitionen, Grenzen, Wünsche - Vortrag IKS-Meeting im Jan...Softwarequalität: Definitionen, Grenzen, Wünsche - Vortrag IKS-Meeting im Jan...
Softwarequalität: Definitionen, Grenzen, Wünsche - Vortrag IKS-Meeting im Jan...
 
Micro, Nano, Mono - Microservices verständlich erklärt.
Micro, Nano, Mono  - Microservices verständlich erklärt.Micro, Nano, Mono  - Microservices verständlich erklärt.
Micro, Nano, Mono - Microservices verständlich erklärt.
 
Mehr Softwarequalität: Technische Schulden
Mehr Softwarequalität: Technische SchuldenMehr Softwarequalität: Technische Schulden
Mehr Softwarequalität: Technische Schulden
 
Mehr Softwarequalität: Qualität als Treiber
Mehr Softwarequalität: Qualität als TreiberMehr Softwarequalität: Qualität als Treiber
Mehr Softwarequalität: Qualität als Treiber
 
Agiles Arbeiten - Mythen, Trends und Best Practices
Agiles Arbeiten  - Mythen, Trends und Best PracticesAgiles Arbeiten  - Mythen, Trends und Best Practices
Agiles Arbeiten - Mythen, Trends und Best Practices
 
Ist Ihr Unternehmen reif für Microservices?
Ist Ihr Unternehmen reif für Microservices?Ist Ihr Unternehmen reif für Microservices?
Ist Ihr Unternehmen reif für Microservices?
 
Service goes green
Service goes greenService goes green
Service goes green
 

Semelhante a iks auf der Jax 2010: Provisioning unter OSGi für Test und Betrieb

Apache Sling Server Seitiges OSGi
Apache Sling Server Seitiges OSGiApache Sling Server Seitiges OSGi
Apache Sling Server Seitiges OSGiFelix Meschberger
 
Automatischer Build mit Maven
Automatischer Build mit MavenAutomatischer Build mit Maven
Automatischer Build mit MavenStefan Scheidt
 
Server Revolutions- Der Spring Source DM Server
Server Revolutions- Der Spring Source DM ServerServer Revolutions- Der Spring Source DM Server
Server Revolutions- Der Spring Source DM ServerSandro Sonntag
 
OpenStack – Automatisiertes Bereitstellen von Instanzen
OpenStack – Automatisiertes Bereitstellen von InstanzenOpenStack – Automatisiertes Bereitstellen von Instanzen
OpenStack – Automatisiertes Bereitstellen von InstanzenB1 Systems GmbH
 
Scala - OSGi Bundles from Outer (Java) Space
Scala - OSGi Bundles from Outer (Java) SpaceScala - OSGi Bundles from Outer (Java) Space
Scala - OSGi Bundles from Outer (Java) SpaceOliver Braun
 
Migration oai mediator 11g - doag sig soa 2010 - attermeyer
Migration oai mediator 11g - doag sig soa 2010 - attermeyerMigration oai mediator 11g - doag sig soa 2010 - attermeyer
Migration oai mediator 11g - doag sig soa 2010 - attermeyerOPITZ CONSULTING Deutschland
 
Continuous Integration mit Hudson (JUG Mannheim, 27.01.2010)
Continuous Integration mit Hudson (JUG Mannheim, 27.01.2010)Continuous Integration mit Hudson (JUG Mannheim, 27.01.2010)
Continuous Integration mit Hudson (JUG Mannheim, 27.01.2010)Wiest Simon
 
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan Scheidt
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan ScheidtAutomatischer Build mit Maven - OPITZ CONSULTING - Stefan Scheidt
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan ScheidtOPITZ CONSULTING Deutschland
 
JM 04/09 - OSGi in kleinen Dosen 5
JM 04/09 - OSGi in kleinen Dosen 5JM 04/09 - OSGi in kleinen Dosen 5
JM 04/09 - OSGi in kleinen Dosen 5Heiko Seeberger
 
Private Cloud mit Open Source
Private Cloud mit Open SourcePrivate Cloud mit Open Source
Private Cloud mit Open SourceDaniel Schneller
 
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)Wiest Simon
 
Eclipse Magazin 16 - Die Stärke der Drei
Eclipse Magazin 16 - Die Stärke der DreiEclipse Magazin 16 - Die Stärke der Drei
Eclipse Magazin 16 - Die Stärke der DreiHeiko Seeberger
 
Docker - Containervirtualisierung leichtgemacht
Docker - Containervirtualisierung leichtgemachtDocker - Containervirtualisierung leichtgemacht
Docker - Containervirtualisierung leichtgemachtB1 Systems GmbH
 
Orchestrierung einer Private Cloud mit OpenStack Heat
Orchestrierung einer Private Cloud mit OpenStack Heat Orchestrierung einer Private Cloud mit OpenStack Heat
Orchestrierung einer Private Cloud mit OpenStack Heat B1 Systems GmbH
 
06 Software Development Guidelines der COMLINE Cloud Service Platform - CSP
06 Software Development Guidelines der COMLINE Cloud Service Platform - CSP06 Software Development Guidelines der COMLINE Cloud Service Platform - CSP
06 Software Development Guidelines der COMLINE Cloud Service Platform - CSPChristian Guenther
 
Icinga 2009 at Nagios Workshop
Icinga 2009 at Nagios WorkshopIcinga 2009 at Nagios Workshop
Icinga 2009 at Nagios WorkshopIcinga
 
Jalimo Slides Linuxtag2007
Jalimo Slides Linuxtag2007Jalimo Slides Linuxtag2007
Jalimo Slides Linuxtag2007smancke
 

Semelhante a iks auf der Jax 2010: Provisioning unter OSGi für Test und Betrieb (20)

OSGi: Tools und Entwicklungsprozesse in OSGi Projekten
OSGi: Tools und Entwicklungsprozesse in OSGi ProjektenOSGi: Tools und Entwicklungsprozesse in OSGi Projekten
OSGi: Tools und Entwicklungsprozesse in OSGi Projekten
 
OSGi: Grundlagen und Konzepte
OSGi: Grundlagen und KonzepteOSGi: Grundlagen und Konzepte
OSGi: Grundlagen und Konzepte
 
Apache Sling Server Seitiges OSGi
Apache Sling Server Seitiges OSGiApache Sling Server Seitiges OSGi
Apache Sling Server Seitiges OSGi
 
Automatischer Build mit Maven
Automatischer Build mit MavenAutomatischer Build mit Maven
Automatischer Build mit Maven
 
Server Revolutions- Der Spring Source DM Server
Server Revolutions- Der Spring Source DM ServerServer Revolutions- Der Spring Source DM Server
Server Revolutions- Der Spring Source DM Server
 
OpenStack – Automatisiertes Bereitstellen von Instanzen
OpenStack – Automatisiertes Bereitstellen von InstanzenOpenStack – Automatisiertes Bereitstellen von Instanzen
OpenStack – Automatisiertes Bereitstellen von Instanzen
 
Scala - OSGi Bundles from Outer (Java) Space
Scala - OSGi Bundles from Outer (Java) SpaceScala - OSGi Bundles from Outer (Java) Space
Scala - OSGi Bundles from Outer (Java) Space
 
Migration oai mediator 11g - doag sig soa 2010 - attermeyer
Migration oai mediator 11g - doag sig soa 2010 - attermeyerMigration oai mediator 11g - doag sig soa 2010 - attermeyer
Migration oai mediator 11g - doag sig soa 2010 - attermeyer
 
Continuous Integration mit Hudson (JUG Mannheim, 27.01.2010)
Continuous Integration mit Hudson (JUG Mannheim, 27.01.2010)Continuous Integration mit Hudson (JUG Mannheim, 27.01.2010)
Continuous Integration mit Hudson (JUG Mannheim, 27.01.2010)
 
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan Scheidt
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan ScheidtAutomatischer Build mit Maven - OPITZ CONSULTING - Stefan Scheidt
Automatischer Build mit Maven - OPITZ CONSULTING - Stefan Scheidt
 
JM 04/09 - OSGi in kleinen Dosen 5
JM 04/09 - OSGi in kleinen Dosen 5JM 04/09 - OSGi in kleinen Dosen 5
JM 04/09 - OSGi in kleinen Dosen 5
 
Private Cloud mit Open Source
Private Cloud mit Open SourcePrivate Cloud mit Open Source
Private Cloud mit Open Source
 
Einführung Maven
Einführung MavenEinführung Maven
Einführung Maven
 
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)
 
Eclipse Magazin 16 - Die Stärke der Drei
Eclipse Magazin 16 - Die Stärke der DreiEclipse Magazin 16 - Die Stärke der Drei
Eclipse Magazin 16 - Die Stärke der Drei
 
Docker - Containervirtualisierung leichtgemacht
Docker - Containervirtualisierung leichtgemachtDocker - Containervirtualisierung leichtgemacht
Docker - Containervirtualisierung leichtgemacht
 
Orchestrierung einer Private Cloud mit OpenStack Heat
Orchestrierung einer Private Cloud mit OpenStack Heat Orchestrierung einer Private Cloud mit OpenStack Heat
Orchestrierung einer Private Cloud mit OpenStack Heat
 
06 Software Development Guidelines der COMLINE Cloud Service Platform - CSP
06 Software Development Guidelines der COMLINE Cloud Service Platform - CSP06 Software Development Guidelines der COMLINE Cloud Service Platform - CSP
06 Software Development Guidelines der COMLINE Cloud Service Platform - CSP
 
Icinga 2009 at Nagios Workshop
Icinga 2009 at Nagios WorkshopIcinga 2009 at Nagios Workshop
Icinga 2009 at Nagios Workshop
 
Jalimo Slides Linuxtag2007
Jalimo Slides Linuxtag2007Jalimo Slides Linuxtag2007
Jalimo Slides Linuxtag2007
 

Mais de IKS Gesellschaft für Informations- und Kommunikationssysteme mbH

Mais de IKS Gesellschaft für Informations- und Kommunikationssysteme mbH (20)

Es wird Zeit KI zu nutzen - Wie es mit Azure KI Services und .NET MAUI gelingt
Es wird Zeit KI zu nutzen - Wie es mit Azure KI Services und .NET MAUI gelingtEs wird Zeit KI zu nutzen - Wie es mit Azure KI Services und .NET MAUI gelingt
Es wird Zeit KI zu nutzen - Wie es mit Azure KI Services und .NET MAUI gelingt
 
Thementag 2023 06 Dieses Mal machen wir alles richtig - 9 Hacks für wandelbar...
Thementag 2023 06 Dieses Mal machen wir alles richtig - 9 Hacks für wandelbar...Thementag 2023 06 Dieses Mal machen wir alles richtig - 9 Hacks für wandelbar...
Thementag 2023 06 Dieses Mal machen wir alles richtig - 9 Hacks für wandelbar...
 
Thementag 2023 04 Lindern, heilen oder gar fit machen.pdf
Thementag 2023 04 Lindern, heilen oder gar fit machen.pdfThementag 2023 04 Lindern, heilen oder gar fit machen.pdf
Thementag 2023 04 Lindern, heilen oder gar fit machen.pdf
 
Thementag 2023 05 Wer zu spät kommt, den bestraft das Leben - Modernisierung ...
Thementag 2023 05 Wer zu spät kommt, den bestraft das Leben - Modernisierung ...Thementag 2023 05 Wer zu spät kommt, den bestraft das Leben - Modernisierung ...
Thementag 2023 05 Wer zu spät kommt, den bestraft das Leben - Modernisierung ...
 
Thementag 2023 01 Mut zur Modernisierung - ein Praxisbeispiel.pdf
Thementag 2023 01 Mut zur Modernisierung - ein Praxisbeispiel.pdfThementag 2023 01 Mut zur Modernisierung - ein Praxisbeispiel.pdf
Thementag 2023 01 Mut zur Modernisierung - ein Praxisbeispiel.pdf
 
Thementag 2023 03 Einführung in die Softwaremodernisierung.pdf
Thementag 2023 03 Einführung in die Softwaremodernisierung.pdfThementag 2023 03 Einführung in die Softwaremodernisierung.pdf
Thementag 2023 03 Einführung in die Softwaremodernisierung.pdf
 
Thementag 2022 01 Verpassen Sie nicht den Anschluss.pdf
Thementag 2022 01 Verpassen Sie nicht den Anschluss.pdfThementag 2022 01 Verpassen Sie nicht den Anschluss.pdf
Thementag 2022 01 Verpassen Sie nicht den Anschluss.pdf
 
Thementag 2022 04 ML auf die Schiene gebracht.pdf
Thementag 2022 04 ML auf die Schiene gebracht.pdfThementag 2022 04 ML auf die Schiene gebracht.pdf
Thementag 2022 04 ML auf die Schiene gebracht.pdf
 
Thementag 2022 03 Ein Modell ist trainiert - und jetzt.pdf
Thementag 2022 03 Ein Modell ist trainiert - und jetzt.pdfThementag 2022 03 Ein Modell ist trainiert - und jetzt.pdf
Thementag 2022 03 Ein Modell ist trainiert - und jetzt.pdf
 
Thementag 2022 02 Der Deutschen Bahn in die Karten geschaut.pdf
Thementag 2022 02 Der Deutschen Bahn in die Karten geschaut.pdfThementag 2022 02 Der Deutschen Bahn in die Karten geschaut.pdf
Thementag 2022 02 Der Deutschen Bahn in die Karten geschaut.pdf
 
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine LearningDaten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
 
Erste Schritte in die neue Welt-So gelingt der Einstieg in Big Data und Machi...
Erste Schritte in die neue Welt-So gelingt der Einstieg in Big Data und Machi...Erste Schritte in die neue Welt-So gelingt der Einstieg in Big Data und Machi...
Erste Schritte in die neue Welt-So gelingt der Einstieg in Big Data und Machi...
 
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...
 
Big Data und Machine Learning - Wer braucht das schon!?
Big Data und Machine Learning - Wer braucht das schon!?Big Data und Machine Learning - Wer braucht das schon!?
Big Data und Machine Learning - Wer braucht das schon!?
 
Erste Schritte in die neue Welt - So gelingt der Einstieg in Big Data und Mac...
Erste Schritte in die neue Welt - So gelingt der Einstieg in Big Data und Mac...Erste Schritte in die neue Welt - So gelingt der Einstieg in Big Data und Mac...
Erste Schritte in die neue Welt - So gelingt der Einstieg in Big Data und Mac...
 
Darf es ein bisschen mehr sein - Konzepte Strategien zur Bewältigung großer u...
Darf es ein bisschen mehr sein - Konzepte Strategien zur Bewältigung großer u...Darf es ein bisschen mehr sein - Konzepte Strategien zur Bewältigung großer u...
Darf es ein bisschen mehr sein - Konzepte Strategien zur Bewältigung großer u...
 
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine LearningDaten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
 
Big Data und Machine Learning - Wer braucht das schon!?
Big Data und Machine Learning - Wer braucht das schon!?Big Data und Machine Learning - Wer braucht das schon!?
Big Data und Machine Learning - Wer braucht das schon!?
 
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine LearningDaten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
Daten / Information / Wissen - Möglichkeiten und Grenzen des Machine Learning
 
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...
Darf es ein bisschen mehr sein - Konzepte und Strategien zur Bewältigung groß...
 

iks auf der Jax 2010: Provisioning unter OSGi für Test und Betrieb

  • 1. C. Schädel, C. Schmidt-Casdorff | iks GmbH Provisioning unter OSGi für Test und Betrieb
  • 2. Einleitung  Überblicksvortrag  Beispiele „idealisiert“ – Mischformen existieren  Problemstellung des Provisioning unter OSGi  Lösungsansätze  exemplarisch anhand von Tools
  • 3. Agenda  Einführung  Provisioning-Konzepte und Tools  OSGi Bordmittel  PAX Runner  OSGi Bundle Repository und Features  Equinox P2  Weitere …  Repository Strategien  Provisioning für OSGi Integrationstests
  • 4. Begrifflichkeiten (1)  Deploybare Anwendung  Kann isoliert installiert / deinstalliert werden  Besteht aus einer/wenigen Datei(en)  Ist aus anderen Container-Konzepten bekannt  OSGi kennt dieses Konzept nicht  Anwendung ist eine Menge an Bundles  Bundles interagieren untereinander  Anwendung hat keine Exklusivität an Bundles
  • 5. Begrifflichkeiten (2) Quintessenz  Es wird eine Menge an Bundles installiert  Wie wird diese Menge zusammengestellt?  Wie wird diese Menge bereitgestellt?  Wie lässt sich die Reaktion auf die Installation abschätzen ?  Können die Bundles gestartet werden?  Wie werden ImportPackages aufgelöst?  OSGi bietet keine out-of-the-box Lösung  Provisioning unter OSGi
  • 6. Begrifflichkeiten (3)  Bootstrapping  Zu installierende Bundles werden beim Startup des OSGi-Frameworks installiert und gestartet  Start-Level regeln die Reihenfolge  Neustart des OSGi-Frameworks notwendig  Laufzeit - Provisioning  Bundles werden zur Laufzeit des OSGi-Frameworks installiert und gestartet  Kein Neustart des OSGi-Frameworks notwendig
  • 7. Anforderungen  Quality of Service  Automatisierbar  Zuverlässig  Deterministisch / wiederholbar  . . . für Bootstrapping- und Laufzeitprovisioning  testbar
  • 8. Bemerkungen  Alle Provisioning-Verfahren  Definieren eine Menge an Bundles  Niemals die Abhängigkeiten der Bundles untereinander  Diese löst das OSGi-Framework auf  Daher Unterschiede bei z.B. Kompilieren  Bereitstellung : Bundle  Installation / Resolving : Bundle / Package  Paradigmenwechsel  Wie unterstützt Provisioningprozess diesen?
  • 9. Agenda  Einführung  Provisioning-Konzepte und Tools  OSGi Bordmittel  PAX Runner  OSGi Repository Admin und Features  Equinox P2  Weitere …  Repository Strategien  Provisioning für OSGi Integrationstests
  • 10. OSGi Bordmittel (1)  Installation beim Start des OSGi-Frameworks  Kurz: Bootstrapping  Startup-Konfiguration  Unterstützung durch Start Level Service  auto-deploy von Apache Felix  Installation zur Laufzeit  CLI / Konsole  FileInstaller Service von Apache Felix
  • 11. OSGi Bordmittel (2)  Provisioning mit OSGi Bordmitteln  Händische Installation  Lage des Bundles im Filesystem muss bekannt sein  Anwendbar nur bei kleiner Menge an Bundles
  • 13. Agenda  Einführung  Provisioning-Konzepte und Tools  OSGi Bordmittel  PAX Runner  OSGi Bundle Repository und Features  Equinox P2  Weitere …  Repository Strategien  Provisioning für OSGi Integrationstests
  • 14. PAX Runner – Konzepte (1)  Bootstrapping-Prozess für OSGi  Konfiguration des zu startenden Frameworks  Unterstützt alle wichtigen Frameworks  Zusammenstellung der zu installierenden Bundles  Unterstützt Start-Levels
  • 15. PAX Runner – Konzepte (2)  Bundles werden aus unterschiedlichen Quellen bereitgestellt  Filesystem, ZIP, Maven Repository, …  Bundles werden in diese Quellen deployed  Bundles können in profiles gruppiert werden  (transitive) Abhängigkeiten von profiles möglich  PAX Runner scannt die profiles und installiert Bundles  OSGi-Frameworks werden in profiles beschrieben
  • 16. Installation via PAX Runner (3)  PAX Runner liefert  einen deterministischen Provisioningprozess  Installation allerdings nur zum Bootstrapping  Aufsetzen eines initialen Zustands  Trennt Bereitstellung und Installation  Lässt eine spezifische Struktur der Bundle-Quellen zu  Das ist ein wichtiger Schritt
  • 17. Installation via PAX Runner (4)
  • 18. Agenda  Einführung  Provisioning-Konzepte und Tools  OSGi Bordmittel  PAX Runner  OSGi Bundle Repository und Features  Equinox P2  Weitere …  Repository Strategien  Provisioning für OSGi Integrationstests
  • 19. OSGi Bundle Repository (1)  Kann ein Bundle installiert werden ?  Sind require-bundle, ImportPackage aufzulösen?  Sind die fehlenden Abh. dynamisch nachzuinstallieren?  Konzept zur Beschreibung von Anforderungen  Wenn ja, wo finde ich die Bundles?
  • 20. OSGi Bundle Repository (2)  OBR ist Spezifikation der OSGi Alliance  Definiert Struktur von Bundle-Repositories  Meta-Informationen von Bundles  Abfragen gegen Repositories  Definiert Zugriffsschnittstellen auf Repositories  Via Repository Admin Service  Abbildung auf unterschiedliche, physische Repositories  Unterstützt einen proaktiven resolving process  Für Konflikte können Verfahren implementiert werden
  • 21. OSGi Bundle Repository (3)  Herkömmliche Repositories (z.B. maven)  Beinhalten Artefakte  Abhängigkeiten zwischen den Artefakten  OBR  Verwaltet Ressourcen  Trennt Metadaten und Ressourcen  Abhängigkeiten werden über capabilities abgebildet  Allgemeineres Konzept  Beinhaltet ImportPackages, ….  Abfragen über capabilities
  • 22. OSGi Bundle Repository (4)  Apache Karaf bietet Schnittstelle  Um Bundles via OBR zu installieren  Inkl. erforderlicher Bundles  Schnittstelle ist Bestandteil der karaf OBR Shell
  • 24. Features (1)  Features fassen eine Menge an Bundles zusammen und unterstützen  abhängige Features  Konfiguration  feature repositories  Sind ein Konzept von Apache  Integriert in apache karaf  Werden durch den Feature Service verwaltet  Kein OSGi-Standard
  • 25. Features (2)  Features werden aus unterschiedlichen Quellen bereitgestellt  Filesystem, Http, maven repository, …  Feature Service hält nur Features konsistent  Verwaltet die Abhängigkeiten zwischen Features  Inkl. der Abhängigkeiten aller feature bundles  Nutzt nicht OBR  Bereitstellung muss für Konsistenz sorgen
  • 26. Features (3)
  • 27. Zusammenfassung  OSGi Bundle Repository  Unterstützt keine Bereitstellung  Ist Basistechnologie für einen Provisioningprozess  Feature Service  Ermöglicht ein Provisioning zur Laufzeit  Verbindet Bereitstellung und Installation  Bereitstellung hat für die Konsistenz zu sorgen
  • 28. Agenda  Einführung  Provisioning-Konzepte und Tools  OSGi Bordmittel  PAX Runner  OSGi Bundle Repository und Features  Equinox P2  Weitere …  Repository Strategien  Provisioning für OSGi Integrationstests
  • 29. Konzepte Equinox P2 (1)  Equinox: OSGi-Framework  P2: general provisioning system  Ersetzt den Update-Manager  Starke Unterstützung für RCP-Applikationen  Nicht nur für OSGi-Bundles
  • 30. Konzepte Equinox P2 (2)  Bundle = Artifact  Installable Units (IU) sind Metadaten  Artifacts liegen in ‚artifact repositories‘  IUs liegen in ‚metadata repositories‘
  • 31. Konzepte Equinox P2 (3)  Konzepte:  „if it installs, it runs“  Bootstrapping Installation (Yoxos)  Installation zur Laufzeit  Bundle-Pooling  Paralleler Download von Bundles  Touchpoints
  • 32. Agenda  Einführung  Provisioning-Konzepte und Tools  OSGi Bordmittel  PAX Runner  OSGi Bundle Repository und Features  Equinox P2  Weitere …  Repository Strategien  Provisioning für OSGi Integrationstests
  • 33. Apache ACE (1)  Bisherige Provisioningprozesse  Keine Konfiguration von Installationen  Arbeiten gegen genau eine Instanz eines OSGi- Framework  Keine historisierten Installationen  Kein Rollback möglich  System zur Verteilung von Komponenten
  • 34. Apache ACE (2)  software distribution framework  Zentrale Konfiguration von Installationen  Versionierung  Zentrale Installation auf Ziel-OSGi-Frameworks  Historisierung  Rückkopplung der Veränderungen auf den Ziel- Frameworks  http://incubator.apache.org/ace/
  • 35. Ausblick  Bisherige Provisioningprozesse …  basieren alle auf Bundles  bieten keine weiteren Deployment- und Installationseinheiten  Gibt es die deploybare OSGi-Anwendung? Platform ARchive
  • 36. Spring Source DM Server  Eclipse Equinox OSGi-Framework  Spring DM (Dynamic Modules) Kernel  provisioning service  Fehlende Abhängigkeiten werden automatisch 'on demand' installiert  dynamisches Deployment  SpringSource Enterprise Bundle Repository
  • 37. Spring Source DM Server - PAR  Spring Source DM Server spezifisch  OSGi-Applikation  Kann Bundles oder Services außerhalb des PARs verwenden  Ist in sich abgeschlossen  Keine Bundles oder Services des PAR können von ‚außen‘ genutzt werden  Deployment erfolgt über Ablage in „pickup“ - Verzeichnis
  • 38. Agenda  Einführung  Provisioning-Konzepte und Tools  OSGi Bordmittel  PAX Runner  OSGi Bundle Repository und Features  Equinox P2  Weitere …  Repository Strategien  Provisioning für OSGi Integrationstests
  • 39. Repository Strategien (1)  Ein Repository ist eine Quelle zur Bereitstellung  mvn, P2, OBR, aber auch ZIP, file  Ein Provisioningprozess umfasst immer  Bereitstellung (der Bundles) -> Repository  Installation  Ausliefern einer Anwendung bedeutet  Auslieferung eines Provisioningprozesses  Wie ist mit Repositories umzugehen?
  • 40. Repository Strategien (2)  Integrationstests über Auslieferungsrepositories  Konsistenz des Repositories beeinflusst Provisioning  Repository per Applikation vs. zentrales Repository  Dezidierte Auflösung vs. universelle Auflösung  Repository per Staging vs. zentrales Repository  Stabile Produktionsumgebung vs. produktionsgleiche Integrationstest
  • 41. Repository Strategien (3)  Einsatz von Repository Manager  Siehe Artifactory, Nexus (Professional)  Unterstützen nicht alle Repository Strukturen  Verwaltung von Repositories  Transparenter Schwenk von Repositories  OSGi-fizierte vs. herkömmliche Repositories  Hängt von Toolauswahl des Provisionings ab
  • 42. Agenda  Einführung  Provisioning-Konzepte und Tools  OSGi Bordmittel  PAX Runner  OSGi Bundle Repository und Features  Equinox P2  Weitere …  Repository Strategien  Provisioning für OSGi Integrationstests
  • 43. Integrationstest unter OSGi (1) Anforderungen  Tests laufen in einem OSGi-Framework ab  Zugriff auf alle OSGi-Konzepte möglich  Definierte Umgebung pro Test  Jeder Test bekommt seine eigene Konfiguration  Spezifische Konfiguration der erforderlichen Bundles  Automatisierung / Wiederholbarkeit  benötigen Bootstrapping-Installationsprozess
  • 44. Integrationstest unter OSGi (2) Standardverfahren  Es wird ein OSGi-Framework gestartet  Es werden die benötigten Bundles bereitgestellt  Es wird on-the-fly ein Testbundle erstellt/installiert  Die Tests werden durchgeführt  OSGi-Framework wird heruntergefahren  Welchen Umfang hat ein Test?
  • 45. Integrationstest unter OSGi (3) Varianten  Umfang der Tests je gestartetem Framework  Pro Testmethode, Testklasse, zu testendem Bundle  konfigurierbar  OSGi-Framework  embedded, extern  Konfigurationsmöglichkeiten  Konfiguration per Programmierung  Konfiguration durch/in Buildprozess
  • 46. Integrationstest unter OSGi (4) Weitere Varianten  Testframework  JUnit 3/4, TestNG  Integration in IDE  Ausführungsumgebung  Buildtool, IDE, händisch …
  • 47. PAX Exam (v 1.x)  Umfang der Test pro Provisioning  Start eines Frameworks pro Testmethode  Viele Testmethoden bremsen  1500 Testmethoden in 2 min (Erfahrung)  Embedded oder externer OSGi-Framework  Externer OSGi-Framework  Kommunikation zwischen TestContainer und Framework via RMI  Konfigurationsmöglichkeiten  Programmatische Konfiguration (inkl. Annotations)  Integration in maven-Buildprozess  Konfigurationsdatei wird durch maven-plugins erzeugt
  • 48. PAX Exam (v 2)  Löst sich von PAX Runner  Unterstützt mehrere TestContainer  Embedded, Remote, ACE-Client  Konzept der Probes  Probes enthalten zu testenden Code  Normalerweise ‚under-the-hood‘  Ausführung via extender pattern  Restart Policies  Welche Tests werden in einem Container ausgeführt
  • 49. PAX Exam  Vergleichbare Tools  Junit4osgi  http://felix.apache.org/site/apache-felix-ipojo- junit4osgi.html  Spring DM testsupport  http://static.springsource.org/osgi/docs/1.2.1/reference/ht ml/testing.html  Alle basieren auf Standardverfahren  Variieren gemäß ‚Integrationstest unter OSGi (4)‘
  • 50. Zusammenfassung  Provisioningprozesse  Bootstrapping  Zur Laufzeit  Provisioningprozesse im Integrationstest  Provisioning unter OSGi ist noch nicht gelöst  Je nach Ausgangssituation und Anforderungen unterschiedliche Tools, Repositories und Konzepte
  • 52. Fragen? www.iks-gmbh.com c.schaedel@iks-gmbh.com c.schmidt-casdorff@iks-gmbh.com