SlideShare une entreprise Scribd logo
1  sur  56
Télécharger pour lire hors ligne
Konfiguration von OSGi-
Anwendungen
mit dem Configuration Admin Service


        Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH   1
Agenda

 Konfiguration
 Konfiguration und OSGi
 Konfiguration und Declarative Services
 Konfiguration und Spring Dynamic Modules




     Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH   2
Wo sind wir ?

 Konfiguration
 Konfiguration und OSGi
 Konfiguration und Declarative Services
 Konfiguration und Spring Dynamic Modules




      Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH   3
Was verstehen wir unter Konfiguration?

 Setzen von Parametern, die Umfang, Aussehen,
 Verhalten und Ergebnisse einer Software
 beeinflussen.
                Zitat (http://de.wikipedia.org)

 Eingriff in die Wirkungsweise eines Systems
   Veränderung zur Laufzeit - jederzeit
   notwendig zur Administration



      Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH   4
Beispiele aus dem Leben

 Konfiguration mittels JVM Optionen
 Konfiguration mittels Properties-Datei
   wird mittels Classloading oder Zugriff
   aus Filesystem bereitgestellt
   pro Komponente eine Properties-Datei
 Konfiguration mittels META-INF/Services
   vgl. JAXP (SAXFactory, Dom Factory, ...)


 keine Administration möglich
      Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH   5
Wo sind wir ?

 Konfiguration
 Konfiguration und OSGi
   OSGi Keywords
   Config Admin Service
   Managed Service Factories
   Security
   Deklarative Konfiguration - Metatype Service
 Konfiguration und Declarative Services
 Konfiguration und Spring Dynamic Modules
      Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH   6
OSGi Keywords
                                               registriert
                      ?        Service
                               Registry


Service-Nutzer                                                        a.b.c.MyService
                                                                     prop1=value1
   bundle
   service
    beans




                                                                         bundle


    kennt


             Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH         7
Konfiguration in OSGi
 Wie sind Konfigurationen und Services
 gekoppelt?
   grundlegende Mechanismen
   Wie wird Lifecycle von Services unterstützt?
   Wie gelangen Konfigurationen zu Services?
 Wie werden Konfigurationen beschrieben?
   programmatisch und deklarativ
 Auswirkung von Konfigurationsänderungen
 zur Laufzeit

      Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH   8
Wo sind wir ?

 Konfiguration
 Konfiguration und OSGi
   OSGi Keywords
   Config Admin Service
   Managed Service Factories
   Security
   Deklarative Konfiguration - Metatype Service
 Konfiguration und Declarative Services
 Konfiguration und Spring Dynamic Modules
      Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH   9
Konfiguration in OSGi
                          tracking                              registriert
                                           Service
                                           Registry


       Config Admin Service                                            Managed Service
             Vermittler
                                                                       pid=a.b.c




name value         PID
size      42                                                               bundle
shape circle      a.b.c
color green

  kennt

               Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH               10
Konfigurationsszenarien I                                              in separatem Thread


                                           3 updated(Dictionary)
          Config Admin Service                                            Managed Service

                                                                          pid=a.b.c

                                                         2
configurations                                                                        register
                                                       register service event
  PID       Properties                                                                  1
  a.b.c     size=42



                                                                                Service
                                                                                Registry




                 Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH             11
Konfigurationsszenarien II

                                       2    updated(Dictionary)
          Config Admin Service                                           Managed Service

                                                                         pid=a.b.c


configurations                                                                       register

  PID       Properties
                                                 1     get managed services
  a.b.c     size=42



                                                                              Service
                                                                              Registry




                 Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH           12
Konfigurationsszenarien III

                                      2       updated(null)
        Config Admin Service          5       updated(Dictionary)          Managed Service

                                                                           pid=a.b.c


configurations                                                1                          register

                                                          register service event
  PID       Properties
  a.b.c     size=42      3
                                          4
                               get managed services
                                                                                   Service
                                                                                   Registry




             Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH                  13
Wo sind wir ?
                           tracking                            registriert
                                           Service
                                           Registry


       Config Admin Service                                        Managed Service
             Vermittler
                                                                       pid=a.b.c




name value         PID
size      42                                                               bundle
shape circle       a.b.c
color green

  kennt

               Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH               14
Configuration Object (I)

 Konfigurationsinformationen
   heißen Configuration Object
   werden als java.util.Dictionary repräsentiert
   bestehen aus Primitiven- und Java-Simple Typen
   .... oder Arrays oder Vektoren davon




      Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH   15
Configuration Object (II)

 verwaltet einen Satz Konfigurationsinformationen
 wird programmatisch erzeugt
   siehe Config Admin Service
 wird deklarativ erzeugt
   siehe Metatype Service




       Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH   16
Wo sind wir ?
                           tracking                            registriert
                                           Service
                                           Registry


       Config Admin Service                                            Managed Service
             Vermittler
                                                                   pid=a.b.c




name value         PID
size      42                                                              bundle
shape circle       a.b.c
color green

  kennt

               Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH           17
PID (Persistent Identity)

 identifiziert ein Configuration Object
 identifiziert Managed Services
 verbindet alle Beteiligten in einem
 Konfigurationsszenario
 ist eindeutig für alle Managed Services
   maximal ein Configuration Object pro PID
   maximal ein Managed Service pro PID
   durch Spezifikation eingefordert



      Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH   18
Wo sind wir ?
                           tracking                            registriert
                                           Service
                                           Registry

                                                                   Managed Service
       Config Admin Service
             Vermittler
                                                                       pid=a.b.c




name value         PID
size      42                                                               bundle
shape circle       a.b.c
color green

  kennt

               Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH               19
Managed Services

 sind OSGi Services, die sich auf Konfigurationen
 beziehen
 konsumieren Konfigurationen des Config Admin
 Service
 implementieren das IF Managed Service
   Methoden für Configuration Lifecycle
 referenzieren die Konfiguration mittels PID
   PID ist Service Property



      Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH   20
Wo sind wir ?
                           tracking                            registriert
                                           Service
                                           Registry

                                                                   Managed Service
       Config Admin Service
             Vermittler
                                                                   pid=a.b.c




name value         PID
size      42                                                             bundle
shape circle       a.b.c
color green

  kennt

               Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH           21
Config Admin Service
 ist ein Service der OSGi Spec
 verwaltet Configuration Objects
   anlegen, löschen, verändern, finden
   bietet Programmierschnittstelle für diese Aufgaben
 verwaltet Bezug zwischen Configuration Objects
 und Managed Services
   stellt initialen Bezug her
   kontrolliert die Auswirkung des Lebenszyklus
   von Configuration Objects
 persistiert Configuration Objects
      Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH   22
Wo sind wir ?

 Konfiguration
 Konfiguration und OSGi
   OSGi Keywords
   Config Admin Service
   Managed Service Factories
   Security
   Deklarative Konfiguration - Metatype Service
 Konfiguration und Declarative Services
 Konfiguration und Spring Dynamic Modules

      Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH   23
Managed Service Factory - Ausgangsszenario

 Ein Service wird mehrfach mit jeweils
 eigener Konfiguration instanziert
 Alle Konfigurationen sind gleichartig
   werden gleichartig verarbeitet




      Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH   24
Managed Service Factories
                         tracking                         registriert
                                      Service
                                      Registry

                                                              Managed Service
     Config Admin Service                                         Factory
            Vermittler
                                                                  factory pid=a.b.c




name
name   value   factory
 size
  size   19
         42      PID                                                  bundle
shape circle
shape square
                 a.b.c
 color green
        blue

  kennt

          Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH            25
Wo sind wir ?

                         tracking                         registriert
                                      Service
                                      Registry

                                                              Managed Service
    Config Admin Service                                          Factory
           Vermittler
                                                               factory pid=a.b.c




name
name   value    factory
 size    19
         42       PID                                               bundle
       circle
shape square
                 a.b.c
 color green
        blue
  kennt

          Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH          26
Factory Configuration

 Factory Configuration
   enthalten mehrere gleichartige Configuration Objects
   werden durch eine factory PID identifiziert
 Config Admin Service unterstützt
   Factory Configurations
   Generierung einer PID pro Configuration




      Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH   27
Wo sind wir ?

                         tracking                         registriert
                                      Service
                                      Registry

                                                              Managed Service
    Config Admin Service                                          Factory
           Vermittler
                                                               factory pid=a.b.c




name
name   value    factory
 size    19
         42       PID                                               bundle
       circle
shape square
                 a.b.c
 color green
        blue
  kennt

          Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH          28
Managed Service Factory

 Managed Service Factory
   referenziert eine Factory Configuration
     factory PID
   ist Adressat aller Configuration Objects einer
   Factory Configuration
   erwartet eigene PID pro Configuration Object
   updated(String(PID), Dictionary)




      Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH   29
Wo sind wir ?

 Konfiguration
 Konfiguration und OSGi
   OSGi Keywords
   Config Admin Service
   Managed Service Factories
   Security
   Deklarative Konfiguration - Metatype Service
 Konfiguration und Declarative Services
 Konfiguration und Spring Dynamic Modules

      Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH   30
Security

 Configuration Objects sind
   an ein Bundle gebunden
    - i.d.R. an das erzeugende Bundle
 Bundles haben keine Möglichkeit, die
 Konfiguration anderer Bundles zu manipulieren




      Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH   31
Config Admin Service – Essentials
 Configuration Objects
   Singleton Configuration
     durch PID identifiziert
   Factory Configuration
     durch factory PID identifiziert
 Adressat ist Managed Service [Factory]
 können programmatisch erzeugt werden
   IF des Config Admin Service
 können deklarativ erzeugt werden
   mit Hilfe des Metatype Service
      Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH   32
Wo sind wir ?

 Konfiguration
 Konfiguration und OSGi
   OSGi Keywords
   Config Admin Service
   Managed Service Factories
   Security
   Deklarative Konfiguration - Metatype Service
 Konfiguration und Declarative Services
 Konfiguration und Spring Dynamic Modules

      Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH   33
Deklarative Konfiguration - Erwartungshaltung
 Definition der Konfigurationsdaten
   (key,value) – Pairs
   einfache Typen für Werte
   multiple einfache Typen als Array oder Vector
 Konfigurationsdatei
   XML
 Verbindung zu PID / factory PID
 Beschreibung der Meta-Daten
   Name, Typ, Kardinalitäten usw. zu Attributen
   unterstützt Erfassung von Konfigurationen

      Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH   34
Object Class Definition
Metatype Resource I
                                                 Attribute Definition


<?xml version="1.0" encoding="UTF-8"?>
<MetaData xmlns=... />               Identifiziert

 <OCD name="person"
         id="2.5.6.6" description="...">
   <AD name="sn" id="2.5.4.4" type="String"/>
   <AD name="cn" id="2.5.4.3" type="String"/>
   <AD name="seeAlso" id="2.5.4.34"
                       type="String"
                       cardinality="3"
 </OCD>




       Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH            35
Zuordnung zwischen Object Definition und PID
Metatype Resource II
                                                   Referenz via ID


  <Designate pid="com.acme.addressbook">
    <Object ocdref="2.5.6.6"/>
      <Attribute adref="2.5.4.4" content="X"/>
      <Attribute adref="2.5.4.34">
                <Value>a@gmx.de</Value>
                <Value>x@gmx.de</Value>
                <Value>y@freenet.de</Value>
      </Attribute>
   </Designate>
</MetaData>



      Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH          36
Konfiguration in OSGi

                          tracking                              registriert
                                           Service
                                           Registry


       Config Admin Service                                            Managed Service
             Vermittler
                                                                       pid=a.b.c




name value         PID                                                     bundle
size      42                                                              <<XML>>
shape circle      a.b.c                                                   Metatype
color green                                                               Resource

  kennt

               Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH               37
Metatype Service
 deklarative Beschreibung
   in XML Ressource (sogen. Meta Type Resource)
   liegen in OSGI-INF/Metatype eines Bundles
   werden durch Metatype Service extrahiert
     auch fragments werden untersucht
 programmatische Beschreibung
   durch Implementierung der IF MetaTypeProvider
   optional für Managed Service [Factories]
 werden durch Config Admin Service ausgewertet

      Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH   38
Essentials - Metatype Service

 Metatype Resource
   erlauben Deklaration von Konfigurationen


 Metadaten sind Basis für Adminstrations-
 konsolen
   WebConsole, Knopflerfish Desktop




      Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH   39
Agenda

 Konfiguration
 Konfiguration und OSGi
 Konfiguration und Declarative Services
   Declarative Services
   Configuration Objects und und Component
   Configurations
 Konfiguration und Spring Dynamic Modules
   Managed Properties
   Managed Service Factories

      Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH   40
Component Configuration

 beschreibt Komponentenmodell für OSGi
 definiert Vertrag zwischen Services
 definiert Vertrag zwischen Service und
 Framework
 ist Bestandteil des OSGi Service Compendiums
 wird durch Component Description deklariert
   XML




     Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH   41
Declarative Services
                                                     Service Component Runtime

                               Service
  <<XML>>                     Component
 Component
 Description
                                              }                  Component
                                                                Component
                                                                Component
                                                                Configuration
                                                               Configuration
                                                               Configuration




                       Component Properties
                                                                    Service

      Configuration Objects
             mittels
      Config Admin Service
                                                                Service
                                                                Registry

  kennt/erzeugt

            Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH             42
Wo sind wir ?

                               Service
  <<XML>>                     Component
 Component
 Description
                                              }                  Component
                                                                Component
                                                                Component
                                                                Configuration
                                                               Configuration
                                                               Configuration




                       Component Properties
                                                                    Service

      Configuration Objects
             mittels
      Config Admin Service
                                                                Service
                                                                Registry

  kennt/erzeugt

            Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH             43
Component Configuration
 bezieht sich auf Configuration Object
   mit PID gleich component.name
   führt zu neuen Component Properties
   ergänzt die Konfiguration der Komponente
     Filterkriterien zur Referenz von Services

 Bei Aktualisierung des Configuration Object
   wird die entsprechende Component Configuration
   deaktiviert
   anschließend reaktiviert
     Reaktivierung berücksichtigt neue Konfigurationssituation


      Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH   44
Essentials - Declarative Services

 Lifecycle der Component Configurations sind
 an den der Configuration Objects gekoppelt
 ganzer Mechanismus der OSGi Konfiguration
 steht zur Verfügung
   Eigenschaften von Komponenten
   Abhängigkeiten zwischen Komponenten/Services




      Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH   45
Wo sind wir ?

 Konfiguration
 Konfiguration und OSGi
 Konfiguration und Declarative Services
 Konfiguration und Spring Dynamic Modules
   Managed Properties
   Managed Service Factories




      Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH   46
Spring DM (Dynamic Modules)
 Spring DM wird OSGi Standard in 4.2
   RFC 124
 erweitert Spring
   Application Context umfasst OSGi Kontext
   dynamischer Service-Support
   Integrationstests in OSGi
 ist (weiteres) Komponentenmodell für OSGi
   definiert Vertrag zwischen Services
   definiert Vertrag zwischen Service und Framework
   definiert Vertrag zwischen Bean und Service

      Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH   47
Wo sind wir ?

 Konfiguration
 Konfiguration und OSGi
 Konfiguration und Declarative Services
 Konfiguration und Spring Dynamic Modules
   Managed Properties
   Managed Service Factories




      Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH   48
Spring DM - Managed Properties Config Admin über
                                 Bean wird
                                            Service
                                                               konfiguriert
<bean id="managedComponent" class="MessageTank">
   <osgix:managed-properties            PID
      persistent-id="com.xyz.messageservice"/>
   <property name="amount" value="100"/>
 </bean>



public class MessageTank {
   private int amount;

{  public int getAmount() {return this.amount; }
   public void setAmount(int amount)
                    { this.amount = amount; }
}

       Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH           49
Spring DM – Aktualisierung der Konfiguration

 Änderung der Configuration Objects
   werden implizit nach Erzeugung der Beans ignoriert
   explizite Strategien sind auszuwählen
     container-managed
         setter der zu aktualisierenden Bean-Properties
     bean-managed
         update-method, die bei Aktualisierung aufgerufen wird




      Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH   50
Wo sind wir ?

 Konfiguration
 Konfiguration und OSGi
 Konfiguration und Declarative Services
 Konfiguration und Spring Dynamic Modules
   Managed Properties
   Managed Service Factories




      Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH   51
Spring DM – Managed Service Factories
  <osgix:managed-service-factory id="data-msf"
  factory PID   factory-pid="org.xyz.labX"

            {
update strategy
                update-strategy="bean-managed"
                update-method="refresh">



                                                         }
    <osgix:interfaces>                                                  service
      <value>java.util.Queue</value>                                   interface
    </osgix:interfaces>

    <bean class="com.xyz.ResizableQueue">
      <property name="size" value="100"/>
      <property name="fair" value="false"/>
    </bean>
 </osgix:managed-service-factory>
                                                                }
                                                                   Service
                                                               Implementierung


       Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH      52
Essentials - Spring DM

 Spring DM und Config Admin Service
 integrieren sich harmonisch
   Integration ist konsistent und erwartungstreu
   Erweiterungen sind folgerichtig
 Spring DM koppelt Services an Configuration
 Objects
   vgl. Declarative Services




      Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH   53
Essentials - Konfiguration in OSGi

 bietet jederzeitigen Eingriff in Wirkungsweise
 setzt stringent auf OSGi Mechanismen
 unterstützt Singleton- und Factory Configurations
 koppelt Services und Configuration Objects
   Erweiterung von Komponentmodellen
     Declarative Services und Spring DM




      Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH   54
Bibliographie / Links
 OSGi Spec 4.1 / 4.2 Preview
   http://www.osgi.org/download/osgi-4.2-early-
   draft.pdf
 OSGi Service Platform (Wütherich)
   http://www.dpunkt.de/buecher/2635.html
 OSGi in Practice (Neil Barlett) – Free!
   http://neilbartlett.name/blog/osgibook/
 Modular Java: Creating Flexible Applications with
 OSGi and Spring (Craig Walls)
   http://www.pragprog.com/titles/cwosg/modular-
   java
      Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH   55
Weitere Fragen?




                                 www.iks-gmbh.com


t.vogel@iks-gmbh.com
c.schmidt-casdorff@iks-gmbh.com


    Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH   56

Contenu connexe

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

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

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ß...
 
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!
 

iks auf der Jax 2009: Konfiguration von OSGi-Anwendungen mit dem Configuration Admin Service

  • 1. Konfiguration von OSGi- Anwendungen mit dem Configuration Admin Service Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 1
  • 2. Agenda Konfiguration Konfiguration und OSGi Konfiguration und Declarative Services Konfiguration und Spring Dynamic Modules Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 2
  • 3. Wo sind wir ? Konfiguration Konfiguration und OSGi Konfiguration und Declarative Services Konfiguration und Spring Dynamic Modules Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 3
  • 4. Was verstehen wir unter Konfiguration? Setzen von Parametern, die Umfang, Aussehen, Verhalten und Ergebnisse einer Software beeinflussen. Zitat (http://de.wikipedia.org) Eingriff in die Wirkungsweise eines Systems Veränderung zur Laufzeit - jederzeit notwendig zur Administration Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 4
  • 5. Beispiele aus dem Leben Konfiguration mittels JVM Optionen Konfiguration mittels Properties-Datei wird mittels Classloading oder Zugriff aus Filesystem bereitgestellt pro Komponente eine Properties-Datei Konfiguration mittels META-INF/Services vgl. JAXP (SAXFactory, Dom Factory, ...) keine Administration möglich Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 5
  • 6. Wo sind wir ? Konfiguration Konfiguration und OSGi OSGi Keywords Config Admin Service Managed Service Factories Security Deklarative Konfiguration - Metatype Service Konfiguration und Declarative Services Konfiguration und Spring Dynamic Modules Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 6
  • 7. OSGi Keywords registriert ? Service Registry Service-Nutzer a.b.c.MyService prop1=value1 bundle service beans bundle kennt Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 7
  • 8. Konfiguration in OSGi Wie sind Konfigurationen und Services gekoppelt? grundlegende Mechanismen Wie wird Lifecycle von Services unterstützt? Wie gelangen Konfigurationen zu Services? Wie werden Konfigurationen beschrieben? programmatisch und deklarativ Auswirkung von Konfigurationsänderungen zur Laufzeit Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 8
  • 9. Wo sind wir ? Konfiguration Konfiguration und OSGi OSGi Keywords Config Admin Service Managed Service Factories Security Deklarative Konfiguration - Metatype Service Konfiguration und Declarative Services Konfiguration und Spring Dynamic Modules Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 9
  • 10. Konfiguration in OSGi tracking registriert Service Registry Config Admin Service Managed Service Vermittler pid=a.b.c name value PID size 42 bundle shape circle a.b.c color green kennt Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 10
  • 11. Konfigurationsszenarien I in separatem Thread 3 updated(Dictionary) Config Admin Service Managed Service pid=a.b.c 2 configurations register register service event PID Properties 1 a.b.c size=42 Service Registry Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 11
  • 12. Konfigurationsszenarien II 2 updated(Dictionary) Config Admin Service Managed Service pid=a.b.c configurations register PID Properties 1 get managed services a.b.c size=42 Service Registry Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 12
  • 13. Konfigurationsszenarien III 2 updated(null) Config Admin Service 5 updated(Dictionary) Managed Service pid=a.b.c configurations 1 register register service event PID Properties a.b.c size=42 3 4 get managed services Service Registry Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 13
  • 14. Wo sind wir ? tracking registriert Service Registry Config Admin Service Managed Service Vermittler pid=a.b.c name value PID size 42 bundle shape circle a.b.c color green kennt Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 14
  • 15. Configuration Object (I) Konfigurationsinformationen heißen Configuration Object werden als java.util.Dictionary repräsentiert bestehen aus Primitiven- und Java-Simple Typen .... oder Arrays oder Vektoren davon Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 15
  • 16. Configuration Object (II) verwaltet einen Satz Konfigurationsinformationen wird programmatisch erzeugt siehe Config Admin Service wird deklarativ erzeugt siehe Metatype Service Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 16
  • 17. Wo sind wir ? tracking registriert Service Registry Config Admin Service Managed Service Vermittler pid=a.b.c name value PID size 42 bundle shape circle a.b.c color green kennt Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 17
  • 18. PID (Persistent Identity) identifiziert ein Configuration Object identifiziert Managed Services verbindet alle Beteiligten in einem Konfigurationsszenario ist eindeutig für alle Managed Services maximal ein Configuration Object pro PID maximal ein Managed Service pro PID durch Spezifikation eingefordert Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 18
  • 19. Wo sind wir ? tracking registriert Service Registry Managed Service Config Admin Service Vermittler pid=a.b.c name value PID size 42 bundle shape circle a.b.c color green kennt Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 19
  • 20. Managed Services sind OSGi Services, die sich auf Konfigurationen beziehen konsumieren Konfigurationen des Config Admin Service implementieren das IF Managed Service Methoden für Configuration Lifecycle referenzieren die Konfiguration mittels PID PID ist Service Property Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 20
  • 21. Wo sind wir ? tracking registriert Service Registry Managed Service Config Admin Service Vermittler pid=a.b.c name value PID size 42 bundle shape circle a.b.c color green kennt Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 21
  • 22. Config Admin Service ist ein Service der OSGi Spec verwaltet Configuration Objects anlegen, löschen, verändern, finden bietet Programmierschnittstelle für diese Aufgaben verwaltet Bezug zwischen Configuration Objects und Managed Services stellt initialen Bezug her kontrolliert die Auswirkung des Lebenszyklus von Configuration Objects persistiert Configuration Objects Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 22
  • 23. Wo sind wir ? Konfiguration Konfiguration und OSGi OSGi Keywords Config Admin Service Managed Service Factories Security Deklarative Konfiguration - Metatype Service Konfiguration und Declarative Services Konfiguration und Spring Dynamic Modules Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 23
  • 24. Managed Service Factory - Ausgangsszenario Ein Service wird mehrfach mit jeweils eigener Konfiguration instanziert Alle Konfigurationen sind gleichartig werden gleichartig verarbeitet Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 24
  • 25. Managed Service Factories tracking registriert Service Registry Managed Service Config Admin Service Factory Vermittler factory pid=a.b.c name name value factory size size 19 42 PID bundle shape circle shape square a.b.c color green blue kennt Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 25
  • 26. Wo sind wir ? tracking registriert Service Registry Managed Service Config Admin Service Factory Vermittler factory pid=a.b.c name name value factory size 19 42 PID bundle circle shape square a.b.c color green blue kennt Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 26
  • 27. Factory Configuration Factory Configuration enthalten mehrere gleichartige Configuration Objects werden durch eine factory PID identifiziert Config Admin Service unterstützt Factory Configurations Generierung einer PID pro Configuration Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 27
  • 28. Wo sind wir ? tracking registriert Service Registry Managed Service Config Admin Service Factory Vermittler factory pid=a.b.c name name value factory size 19 42 PID bundle circle shape square a.b.c color green blue kennt Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 28
  • 29. Managed Service Factory Managed Service Factory referenziert eine Factory Configuration factory PID ist Adressat aller Configuration Objects einer Factory Configuration erwartet eigene PID pro Configuration Object updated(String(PID), Dictionary) Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 29
  • 30. Wo sind wir ? Konfiguration Konfiguration und OSGi OSGi Keywords Config Admin Service Managed Service Factories Security Deklarative Konfiguration - Metatype Service Konfiguration und Declarative Services Konfiguration und Spring Dynamic Modules Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 30
  • 31. Security Configuration Objects sind an ein Bundle gebunden - i.d.R. an das erzeugende Bundle Bundles haben keine Möglichkeit, die Konfiguration anderer Bundles zu manipulieren Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 31
  • 32. Config Admin Service – Essentials Configuration Objects Singleton Configuration durch PID identifiziert Factory Configuration durch factory PID identifiziert Adressat ist Managed Service [Factory] können programmatisch erzeugt werden IF des Config Admin Service können deklarativ erzeugt werden mit Hilfe des Metatype Service Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 32
  • 33. Wo sind wir ? Konfiguration Konfiguration und OSGi OSGi Keywords Config Admin Service Managed Service Factories Security Deklarative Konfiguration - Metatype Service Konfiguration und Declarative Services Konfiguration und Spring Dynamic Modules Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 33
  • 34. Deklarative Konfiguration - Erwartungshaltung Definition der Konfigurationsdaten (key,value) – Pairs einfache Typen für Werte multiple einfache Typen als Array oder Vector Konfigurationsdatei XML Verbindung zu PID / factory PID Beschreibung der Meta-Daten Name, Typ, Kardinalitäten usw. zu Attributen unterstützt Erfassung von Konfigurationen Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 34
  • 35. Object Class Definition Metatype Resource I Attribute Definition <?xml version="1.0" encoding="UTF-8"?> <MetaData xmlns=... /> Identifiziert <OCD name="person" id="2.5.6.6" description="..."> <AD name="sn" id="2.5.4.4" type="String"/> <AD name="cn" id="2.5.4.3" type="String"/> <AD name="seeAlso" id="2.5.4.34" type="String" cardinality="3" </OCD> Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 35
  • 36. Zuordnung zwischen Object Definition und PID Metatype Resource II Referenz via ID <Designate pid="com.acme.addressbook"> <Object ocdref="2.5.6.6"/> <Attribute adref="2.5.4.4" content="X"/> <Attribute adref="2.5.4.34"> <Value>a@gmx.de</Value> <Value>x@gmx.de</Value> <Value>y@freenet.de</Value> </Attribute> </Designate> </MetaData> Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 36
  • 37. Konfiguration in OSGi tracking registriert Service Registry Config Admin Service Managed Service Vermittler pid=a.b.c name value PID bundle size 42 <<XML>> shape circle a.b.c Metatype color green Resource kennt Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 37
  • 38. Metatype Service deklarative Beschreibung in XML Ressource (sogen. Meta Type Resource) liegen in OSGI-INF/Metatype eines Bundles werden durch Metatype Service extrahiert auch fragments werden untersucht programmatische Beschreibung durch Implementierung der IF MetaTypeProvider optional für Managed Service [Factories] werden durch Config Admin Service ausgewertet Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 38
  • 39. Essentials - Metatype Service Metatype Resource erlauben Deklaration von Konfigurationen Metadaten sind Basis für Adminstrations- konsolen WebConsole, Knopflerfish Desktop Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 39
  • 40. Agenda Konfiguration Konfiguration und OSGi Konfiguration und Declarative Services Declarative Services Configuration Objects und und Component Configurations Konfiguration und Spring Dynamic Modules Managed Properties Managed Service Factories Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 40
  • 41. Component Configuration beschreibt Komponentenmodell für OSGi definiert Vertrag zwischen Services definiert Vertrag zwischen Service und Framework ist Bestandteil des OSGi Service Compendiums wird durch Component Description deklariert XML Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 41
  • 42. Declarative Services Service Component Runtime Service <<XML>> Component Component Description } Component Component Component Configuration Configuration Configuration Component Properties Service Configuration Objects mittels Config Admin Service Service Registry kennt/erzeugt Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 42
  • 43. Wo sind wir ? Service <<XML>> Component Component Description } Component Component Component Configuration Configuration Configuration Component Properties Service Configuration Objects mittels Config Admin Service Service Registry kennt/erzeugt Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 43
  • 44. Component Configuration bezieht sich auf Configuration Object mit PID gleich component.name führt zu neuen Component Properties ergänzt die Konfiguration der Komponente Filterkriterien zur Referenz von Services Bei Aktualisierung des Configuration Object wird die entsprechende Component Configuration deaktiviert anschließend reaktiviert Reaktivierung berücksichtigt neue Konfigurationssituation Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 44
  • 45. Essentials - Declarative Services Lifecycle der Component Configurations sind an den der Configuration Objects gekoppelt ganzer Mechanismus der OSGi Konfiguration steht zur Verfügung Eigenschaften von Komponenten Abhängigkeiten zwischen Komponenten/Services Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 45
  • 46. Wo sind wir ? Konfiguration Konfiguration und OSGi Konfiguration und Declarative Services Konfiguration und Spring Dynamic Modules Managed Properties Managed Service Factories Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 46
  • 47. Spring DM (Dynamic Modules) Spring DM wird OSGi Standard in 4.2 RFC 124 erweitert Spring Application Context umfasst OSGi Kontext dynamischer Service-Support Integrationstests in OSGi ist (weiteres) Komponentenmodell für OSGi definiert Vertrag zwischen Services definiert Vertrag zwischen Service und Framework definiert Vertrag zwischen Bean und Service Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 47
  • 48. Wo sind wir ? Konfiguration Konfiguration und OSGi Konfiguration und Declarative Services Konfiguration und Spring Dynamic Modules Managed Properties Managed Service Factories Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 48
  • 49. Spring DM - Managed Properties Config Admin über Bean wird Service konfiguriert <bean id="managedComponent" class="MessageTank"> <osgix:managed-properties PID persistent-id="com.xyz.messageservice"/> <property name="amount" value="100"/> </bean> public class MessageTank { private int amount; { public int getAmount() {return this.amount; } public void setAmount(int amount) { this.amount = amount; } } Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 49
  • 50. Spring DM – Aktualisierung der Konfiguration Änderung der Configuration Objects werden implizit nach Erzeugung der Beans ignoriert explizite Strategien sind auszuwählen container-managed setter der zu aktualisierenden Bean-Properties bean-managed update-method, die bei Aktualisierung aufgerufen wird Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 50
  • 51. Wo sind wir ? Konfiguration Konfiguration und OSGi Konfiguration und Declarative Services Konfiguration und Spring Dynamic Modules Managed Properties Managed Service Factories Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 51
  • 52. Spring DM – Managed Service Factories <osgix:managed-service-factory id="data-msf" factory PID factory-pid="org.xyz.labX" { update strategy update-strategy="bean-managed" update-method="refresh"> } <osgix:interfaces> service <value>java.util.Queue</value> interface </osgix:interfaces> <bean class="com.xyz.ResizableQueue"> <property name="size" value="100"/> <property name="fair" value="false"/> </bean> </osgix:managed-service-factory> } Service Implementierung Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 52
  • 53. Essentials - Spring DM Spring DM und Config Admin Service integrieren sich harmonisch Integration ist konsistent und erwartungstreu Erweiterungen sind folgerichtig Spring DM koppelt Services an Configuration Objects vgl. Declarative Services Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 53
  • 54. Essentials - Konfiguration in OSGi bietet jederzeitigen Eingriff in Wirkungsweise setzt stringent auf OSGi Mechanismen unterstützt Singleton- und Factory Configurations koppelt Services und Configuration Objects Erweiterung von Komponentmodellen Declarative Services und Spring DM Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 54
  • 55. Bibliographie / Links OSGi Spec 4.1 / 4.2 Preview http://www.osgi.org/download/osgi-4.2-early- draft.pdf OSGi Service Platform (Wütherich) http://www.dpunkt.de/buecher/2635.html OSGi in Practice (Neil Barlett) – Free! http://neilbartlett.name/blog/osgibook/ Modular Java: Creating Flexible Applications with OSGi and Spring (Craig Walls) http://www.pragprog.com/titles/cwosg/modular- java Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 55
  • 56. Weitere Fragen? www.iks-gmbh.com t.vogel@iks-gmbh.com c.schmidt-casdorff@iks-gmbh.com Christoph Schmidt-Casdorff, Thorsten Vogel - iks GmbH 56