Your SlideShare is downloading. ×
0
C. Schädel, C. Schmidt-Casdorff | iks GmbHProvisioning unter OSGifür Test und Betrieb
Einleitung   Überblicksvortrag   Beispiele „idealisiert“ – Mischformen existieren   Problemstellung des Provisioning un...
Agenda   Einführung   Provisioning-Konzepte und Tools       OSGi Bordmittel       PAX Runner       OSGi Bundle Reposi...
Begrifflichkeiten                                          (1)   Deploybare Anwendung       Kann isoliert installiert / ...
Begrifflichkeiten                                          (2)Quintessenz   Es wird eine Menge an Bundles installiert    ...
Begrifflichkeiten                                   (3)   Bootstrapping       Zu installierende Bundles werden beim Star...
Anforderungen   Quality of Service       Automatisierbar       Zuverlässig       Deterministisch / wiederholbar   . ....
Bemerkungen   Alle Provisioning-Verfahren       Definieren eine Menge an Bundles       Niemals die Abhängigkeiten der B...
Agenda   Einführung   Provisioning-Konzepte und Tools       OSGi Bordmittel       PAX Runner       OSGi Repository Ad...
OSGi Bordmittel                                       (1)   Installation beim Start des OSGi-Frameworks       Kurz: Boot...
OSGi Bordmittel                                      (2)   Provisioning mit OSGi Bordmitteln       Händische Installatio...
OSGi Bordmittel   (3)
Agenda   Einführung   Provisioning-Konzepte und Tools       OSGi Bordmittel       PAX Runner       OSGi Bundle Reposi...
PAX Runner – Konzepte                           (1)   Bootstrapping-Prozess für OSGi   Konfiguration des zu startenden F...
PAX Runner – Konzepte                                    (2)   Bundles werden aus unterschiedlichen Quellen    bereitgest...
Installation via PAX Runner                                   (3)   PAX Runner liefert       einen deterministischen Pro...
Installation via PAX Runner   (4)
Agenda   Einführung   Provisioning-Konzepte und Tools       OSGi Bordmittel       PAX Runner       OSGi Bundle Reposi...
OSGi Bundle Repository                                   (1)   Kann ein Bundle installiert werden ?       Sind require-b...
OSGi Bundle Repository                                (2)   OBR ist Spezifikation der OSGi Alliance   Definiert Struktur...
OSGi Bundle Repository                              (3)   Herkömmliche Repositories (z.B. maven)       Beinhalten Artefa...
OSGi Bundle Repository                         (4)   Apache Karaf bietet Schnittstelle       Um Bundles via OBR zu insta...
OSGi Bundle Repository   (5)
Features                                    (1)   Features fassen eine Menge an Bundles    zusammen und unterstützen    ...
Features                                                     (2)   Features werden aus unterschiedlichen Quellen    berei...
Features   (3)
Zusammenfassung   OSGi Bundle Repository       Unterstützt keine Bereitstellung       Ist Basistechnologie für einen Pr...
Agenda   Einführung   Provisioning-Konzepte und Tools       OSGi Bordmittel       PAX Runner       OSGi Bundle Reposi...
Konzepte Equinox P2                                  (1)   Equinox: OSGi-Framework   P2: general provisioning system    ...
Konzepte Equinox P2                               (2)   Bundle = Artifact   Installable Units (IU) sind Metadaten   Art...
Konzepte Equinox P2                          (3)   Konzepte:       „if it installs, it runs“       Bootstrapping Instal...
Agenda   Einführung   Provisioning-Konzepte und Tools       OSGi Bordmittel       PAX Runner       OSGi Bundle Reposi...
Apache ACE                                         (1)   Bisherige Provisioningprozesse       Keine Konfiguration von In...
Apache ACE                                          (2)   software distribution framework       Zentrale Konfiguration v...
Ausblick   Bisherige Provisioningprozesse …       basieren alle auf Bundles       bieten keine weiteren Deployment- und...
Spring Source DM Server   Eclipse Equinox OSGi-Framework   Spring DM (Dynamic Modules) Kernel   provisioning service   ...
Spring Source DM Server - PAR   Spring Source DM Server spezifisch   OSGi-Applikation   Kann Bundles oder Services auße...
Agenda   Einführung   Provisioning-Konzepte und Tools       OSGi Bordmittel       PAX Runner       OSGi Bundle Reposi...
Repository Strategien                                (1)   Ein Repository ist eine Quelle zur Bereitstellung       mvn, ...
Repository Strategien                                (2)   Integrationstests über Auslieferungsrepositories       Konsis...
Repository Strategien                                       (3)   Einsatz von Repository Manager       Siehe Artifactory...
Agenda   Einführung   Provisioning-Konzepte und Tools       OSGi Bordmittel       PAX Runner       OSGi Bundle Reposi...
Integrationstest unter OSGi (1)Anforderungen   Tests laufen in einem OSGi-Framework ab       Zugriff auf alle OSGi-Konze...
Integrationstest unter OSGi (2)Standardverfahren   Es wird ein OSGi-Framework gestartet   Es werden die benötigten Bundl...
Integrationstest unter OSGi (3)Varianten   Umfang der Tests je gestartetem Framework       Pro Testmethode, Testklasse, ...
Integrationstest unter OSGi (4)Weitere Varianten Testframework       JUnit 3/4, TestNG   Integration in IDE   Ausführu...
PAX Exam (v 1.x)   Umfang der Test pro Provisioning       Start eines Frameworks pro Testmethode           Viele Testme...
PAX Exam (v 2)   Löst sich von PAX Runner       Unterstützt mehrere TestContainer       Embedded, Remote, ACE-Client  ...
PAX Exam   Vergleichbare Tools       Junit4osgi           http://felix.apache.org/site/apache-felix-ipojo-            j...
Zusammenfassung   Provisioningprozesse       Bootstrapping       Zur Laufzeit   Provisioningprozesse im Integrationste...
Übersicht
Fragen?                      www.iks-gmbh.com c.schaedel@iks-gmbh.com c.schmidt-casdorff@iks-gmbh.com
Upcoming SlideShare
Loading in...5
×

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

608

Published on

Unsere beiden Mitarbeiter Herr Christoph Schmidt-Casdorff und Herr Carsten Schädel stellten dem Fachpublikum im Rahmen des OSGi-Days den Themenkomplex "Provisioning unter OSGi für Test und Betrieb" vor.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
608
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

  1. 1. C. Schädel, C. Schmidt-Casdorff | iks GmbHProvisioning unter OSGifür Test und Betrieb
  2. 2. Einleitung Überblicksvortrag Beispiele „idealisiert“ – Mischformen existieren Problemstellung des Provisioning unter OSGi Lösungsansätze  exemplarisch anhand von Tools
  3. 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. 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. 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. 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. 7. Anforderungen Quality of Service  Automatisierbar  Zuverlässig  Deterministisch / wiederholbar . . . für Bootstrapping- und Laufzeitprovisioning testbar
  8. 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. 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. 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. 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
  12. 12. OSGi Bordmittel (3)
  13. 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. 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. 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. 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. 17. Installation via PAX Runner (4)
  18. 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. 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. 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. 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. 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
  23. 23. OSGi Bundle Repository (5)
  24. 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. 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. 26. Features (3)
  27. 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. 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. 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. 30. Konzepte Equinox P2 (2) Bundle = Artifact Installable Units (IU) sind Metadaten Artifacts liegen in ‚artifact repositories‘ IUs liegen in ‚metadata repositories‘
  31. 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. 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. 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. 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. 35. Ausblick Bisherige Provisioningprozesse …  basieren alle auf Bundles  bieten keine weiteren Deployment- und Installationseinheiten Gibt es die deploybare OSGi-Anwendung?Platform ARchive
  36. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 46. Integrationstest unter OSGi (4)Weitere Varianten Testframework  JUnit 3/4, TestNG Integration in IDE Ausführungsumgebung  Buildtool, IDE, händisch …
  47. 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. 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. 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. 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
  51. 51. Übersicht
  52. 52. Fragen? www.iks-gmbh.com c.schaedel@iks-gmbh.com c.schmidt-casdorff@iks-gmbh.com
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×