n-design - das Unternehmen
n-design
●
    ist ein junges, innovatives IT-Dienstleistungsunternehmen aus Köln

●
    bietet Beratungs- und Entwicklungsleistungen vor allem im
    Sozialversicherungsumfeld

Die Einführung der elektronischen Gesundheitskarte eGK und zugehöriger
Telematikinfrastruktur ist für uns dabei ein Kernthema.

Wir gehören dazu:

Stephan Hoffmann-Emden




Andreas Klotz

                    n-pat: Modulare Anwendungsplattform mit Smartcards   16.11.2011
                                     © n-design GmbH                         Folie 1
n-pat - worum es hier geht
Was erwartet Sie in den kommenden 25 Minuten ?
●
    Praxisbezogene Darstellung der Entwicklung einer OSGi-basierten
    Anwendungsplattform (unser erstes OSGi-Projekt!) mit den Themen
    ●
        Integration von SmartCards in OSGi
    ●
        Architektur
    ●
        Technische Realisierung

●
    Modulare dynamische WEB-Frontends

Fazit:

 Unsere Erfahrungen bei der Einführung von OSGi




                      n-pat: Modulare Anwendungsplattform mit Smartcards   16.11.2011
                                       © n-design GmbH                         Folie 2
n-pat – die Demo




            n-pat: Modulare Anwendungsplattform mit Smartcards   16.11.2011
                             © n-design GmbH                         Folie 3
Einordnung in den Gesamtkontext

Integrierbarkeit

Erweiterbarkeit

 Skalierbarkeit




                   n-pat: Modulare Anwendungsplattform mit Smartcards   16.11.2011
                                    © n-design GmbH                         Folie 4
Logische Komponentensicht
                                                              ●        Core – Runtime: OSGi ( Equinox)
                                                              ●        Basisdienste
                                                              ●        Applikationen
                                                              ●        Spezifische Adapter




                                                                  TestKennZ       Mehrwert
                VSDD                     CAMS
                                                                    Dienst         Dienst


                   CCS




               <Modul>         <Modul>          <Modul>            <Modul>         <Modul>   <Modul>          <Modul>
                VSD            Updates           AMS              TestKennZ        MWD 1     MWD 2           eGKDaten




                                                                                                                                 KT 1
          Mandanten      Logging     SystemMngt              PKI               Web                 KT Mngt    Card Mngt
         Mngt-Service    Service       Service              Service          Container
                                                                                                          Cryptho                KT n
                 Pseudonym                         SSO
                   Service                        Service                                              eCard Service

                                                          ServicePlattform




                                                                                                                          HTTP
                                                                                                                                 Frontend



                                                             OSGi core



                 n-pat: Modulare Anwendungsplattform mit Smartcards                                                               16.11.2011
                                                  © n-design GmbH                                                                     Folie 5
Die wesentlichen Requirements

Wesentliche Rahmenbedingungen im Design:

●   Modulare Anwendungsplattform mit domänenspezifischen
    Basisdiensten
●   Wahrung der Schutzbedarfe der Informationsobjekte in allen
    Systemkomponenten / Schichten
●   Entkopplung von Frontend, fachlichen Services und
    Backendsystemen
●   Schaffung von Hardwareabstraktion bei der Anbindung von Karten
    und Kartenterminals
●   Unterstützung unterschiedlicher Laufzeitumgebungen mit
    unterschiedlichen Hardwareanforderungen
●   Zentrales und dezentrales Deployment des Systems
●   Bereitstellung geeigneter Erweiterungspunkte zur Realisierung
    von Protokollierung und Monitoring
●   Remote Administration

                  n-pat: Modulare Anwendungsplattform mit Smartcards   16.11.2011
                                   © n-design GmbH                         Folie 6
Die ID4health              Systemarchitektur




●
    Standardisiertes ID-
    Management

●
    starke und
    datenschutzfreundliche
    Authentisierung

●
    n-pat integriert die
    hier entwickelten
    Verfahren!

                      n-pat: Modulare Anwendungsplattform mit Smartcards   16.11.2011
                                       © n-design GmbH                         Folie 7
Die CardTerminalanbindung




           n-pat: Modulare Anwendungsplattform mit Smartcards   16.11.2011
                            © n-design GmbH                         Folie 8
Module – Architektur & Technologie


●
    Architektur:

    „Tools & Material“ als Architekturmetapher für den Entwurf
    von Modulen für die Benutzerinteraktion.



●
    Technologie:

    Modularisierung der Webapplication mit
      ZK RIA

    komponentenorientiertes, server-zentriertes
      WebApplication Framework

                   n-pat: Modulare Anwendungsplattform mit Smartcards   16.11.2011
                                    © n-design GmbH                         Folie 9
Modular: Bundles schneiden

          Karten-Info                               Karten-Aktualisierung
             App                                            App



       + showCard                                       + showCard

                                                        + updateCard




      Interface Device                       Versicherten Stammdaten
          Service                                    Service



           
                n-pat: Modulare Anwendungsplattform mit Smartcards          16.11.2011
                                 © n-design GmbH                               Folie 10
Tools & Material
Tools als Schnittstelle zwischen GUI und OSGi - Services

●
    Ursprung der Idee:
    Architekturmetapher entlehnt dem
    “Tools and Material Approach” von Heinz Züllighoven
    [Object-Oriented Construction Handbook]

●
    Tools sind die Interaktionsschnittstelle der Modell-Schicht

●
    Klare Trennung fachlicher Werte, Aktionen mit diesen
    Werten und deren Repräsentation im GUI.

●
    Verwendung in Controller-Schicht und Tests

●
    Lifecycle unabhängig vom Lifecylce der GUI-Elemente

●
    Wiederverwendung von Tools in der Präsentationsschicht
                  n-pat: Modulare Anwendungsplattform mit Smartcards   16.11.2011
                                   © n-design GmbH                        Folie 11
Typischer Aufbau eines Tools

                       KarteAktualisierenTool

                   -   Interface Device Service
                   -   VSD Service
                   -   SmartCard
                   -   SmartCardDAO
                   -   CardPresentBean


                  + showCard: CardPresentBean

                  + updateCard: CardPresentBean

                  + backUpCard: void




            Optimal: Abbildung kompletter Use Cases mit Tools


            n-pat: Modulare Anwendungsplattform mit Smartcards   16.11.2011
                              © n-design GmbH                       Folie 12
Tools als Rand der Modellschicht

          Web Frontend (ZK RIA)
           Deklarative GUI Implementierung                         Präsentations-
                         (XUL)                                     schicht
                      Controller



              ToolBox

                       Tools
                                                                   Modellschicht




     OSGi-Services                    Entitäten


              n-pat: Modulare Anwendungsplattform mit Smartcards         16.11.2011
                               © n-design GmbH                              Folie 13
Modular: KartenInfo & KartenUpdate


          Karten-Info                                 Karten-Aktualisierung
             GUI                                              GUI




        KartenInfoTool
        KartenInfoTool                                  KartenUpdateTool
        getVersicherter();
          showCard();
           getKasse();
                                                          updateCard();



      Interface Device                         Versicherten Stammdaten
          Service                                      Service



           
                  n-pat: Modulare Anwendungsplattform mit Smartcards          16.11.2011
                                   © n-design GmbH                               Folie 14
Service oder nicht?
             ToolBox

                  Tool A        Tool B                                keine Services


                                                                      Declarative
                                                                       Services
 CardSlot Service A       CardSlot Service B                               -
                                                                        Factory
                                                                      Components


                CardTerminalManager Service

                                                                      Declarative
                          Interface Device                              Services
                              Service                                      -
                                                                       Immediate
                                                                      Components

                        
                 n-pat: Modulare Anwendungsplattform mit Smartcards             16.11.2011
                                  © n-design GmbH                                  Folie 15
Modularisierung der WebApp
Anforderungen

●
    Framework (ZK RIA) soll als Bundle verfügbar gemacht
    werden.

●
    Es gibt eine GUI-Kernkomponente, die Erweiterungen
    aufnimmt.

●
    Die Erweiterungen sollen eigenständige Bundles sein.

●
    Die Erweiterungen sollen GUI-Komponenten inkl.
    statischem Inhalt (image, css, …) bereitstellen können.




                 n-pat: Modulare Anwendungsplattform mit Smartcards   16.11.2011
                                  © n-design GmbH                        Folie 16
Modularisierung der WebApp (cont.)
Umsetzung

●
    ZK RIA mit Hilfe von Maven Bundle Plugin als Bundle
    bereitgestellt.

●
    Implementation eines GUI-Rahmens, den Erweiterungen
    ausfüllen können.

●
    Erweiterungen werden dynamisch über das Extender
    Pattern in den Rahmen eingebunden.

●
    Die Webapplikation wird von einem embeded Jetty
    gehostet.
    ●
        Classloader des GUI-Rahmen-Bundles
    ●
        Zugriff auf Resourcen der erweiternden Bundles.


                     n-pat: Modulare Anwendungsplattform mit Smartcards   16.11.2011
                                      © n-design GmbH                        Folie 17
Modularisierung der WebApp (cont.)




            n-pat: Modulare Anwendungsplattform mit Smartcards   16.11.2011
                             © n-design GmbH                        Folie 18
Modularisierung der WebApp (cont.)


     KartenInfo App                                 KartenAktualsierung App


         BundleTracker                                    BundleTracker
                              n-pat GUI Extender
                                                              Register/Derigister
                                                              App-Service
                                                                                    OSGi

 Register/Deregister            n-pat GUI Core               App-ServiceTracker
 Resources

                   Register Servlets


          Jetty Bundles                                   ZK RIA Bundle


                       n-pat: Modulare Anwendungsplattform mit Smartcards           16.11.2011
                                        © n-design GmbH                                Folie 19
Die ToolChain

Eingesetzte Werkzeuge:

    ●   Eclipse (PDE-Projekte)
    ●   Maven / Tycho (Manifest-First-Ansatz)
    ●   Jenkins (continuous Integration)
    ●   Junit


Knackpunkte:

    ●   Geeignete Teststrategie (Komponenten, Testumgebung /
        Targetplattform)
    ●   Tycho noch 'sehr jung'




                       n-pat: Modulare Anwendungsplattform mit Smartcards   16.11.2011
                                        © n-design GmbH                        Folie 20
Unser Fazit

Erstes OSGi-Projekt:

    ●   RTFS: Sind die Konzepte verstanden, gestaltet sich die Implementierung
        eher einfach
    ●   Externer Support für anfängliches Systemdesign sehr hilfreich
    ●   In der Planung genügend Refactoring-Iterationen berücksichtigen
    ●   Der OSGi-Core (Equinox) ist sehr stabil


Zu verbessern:

    ●   Testverfahren
    ●   Mocks




                        n-pat: Modulare Anwendungsplattform mit Smartcards   16.11.2011
                                         © n-design GmbH                        Folie 21
Besten Dank und weiterhin
   viel Spaß mit OSGI!

                     Kontakt:
            kontakt@n-design.de
              www.n-design.de


     n-pat: Modulare Anwendungsplattform mit Smartcards   16.11.2011
                      © n-design GmbH                        Folie 22

n-pat: Modulare Anwendungsplattform mit Smartcards

  • 1.
    n-design - dasUnternehmen n-design ● ist ein junges, innovatives IT-Dienstleistungsunternehmen aus Köln ● bietet Beratungs- und Entwicklungsleistungen vor allem im Sozialversicherungsumfeld Die Einführung der elektronischen Gesundheitskarte eGK und zugehöriger Telematikinfrastruktur ist für uns dabei ein Kernthema. Wir gehören dazu: Stephan Hoffmann-Emden Andreas Klotz n-pat: Modulare Anwendungsplattform mit Smartcards 16.11.2011 © n-design GmbH Folie 1
  • 2.
    n-pat - worumes hier geht Was erwartet Sie in den kommenden 25 Minuten ? ● Praxisbezogene Darstellung der Entwicklung einer OSGi-basierten Anwendungsplattform (unser erstes OSGi-Projekt!) mit den Themen ● Integration von SmartCards in OSGi ● Architektur ● Technische Realisierung ● Modulare dynamische WEB-Frontends Fazit: Unsere Erfahrungen bei der Einführung von OSGi n-pat: Modulare Anwendungsplattform mit Smartcards 16.11.2011 © n-design GmbH Folie 2
  • 3.
    n-pat – dieDemo n-pat: Modulare Anwendungsplattform mit Smartcards 16.11.2011 © n-design GmbH Folie 3
  • 4.
    Einordnung in denGesamtkontext Integrierbarkeit Erweiterbarkeit Skalierbarkeit n-pat: Modulare Anwendungsplattform mit Smartcards 16.11.2011 © n-design GmbH Folie 4
  • 5.
    Logische Komponentensicht ● Core – Runtime: OSGi ( Equinox) ● Basisdienste ● Applikationen ● Spezifische Adapter TestKennZ Mehrwert VSDD CAMS Dienst Dienst CCS <Modul> <Modul> <Modul> <Modul> <Modul> <Modul> <Modul> VSD Updates AMS TestKennZ MWD 1 MWD 2 eGKDaten KT 1 Mandanten Logging SystemMngt PKI Web KT Mngt Card Mngt Mngt-Service Service Service Service Container Cryptho KT n Pseudonym SSO Service Service eCard Service ServicePlattform HTTP Frontend OSGi core n-pat: Modulare Anwendungsplattform mit Smartcards 16.11.2011 © n-design GmbH Folie 5
  • 6.
    Die wesentlichen Requirements WesentlicheRahmenbedingungen im Design: ● Modulare Anwendungsplattform mit domänenspezifischen Basisdiensten ● Wahrung der Schutzbedarfe der Informationsobjekte in allen Systemkomponenten / Schichten ● Entkopplung von Frontend, fachlichen Services und Backendsystemen ● Schaffung von Hardwareabstraktion bei der Anbindung von Karten und Kartenterminals ● Unterstützung unterschiedlicher Laufzeitumgebungen mit unterschiedlichen Hardwareanforderungen ● Zentrales und dezentrales Deployment des Systems ● Bereitstellung geeigneter Erweiterungspunkte zur Realisierung von Protokollierung und Monitoring ● Remote Administration n-pat: Modulare Anwendungsplattform mit Smartcards 16.11.2011 © n-design GmbH Folie 6
  • 7.
    Die ID4health Systemarchitektur ● Standardisiertes ID- Management ● starke und datenschutzfreundliche Authentisierung ● n-pat integriert die hier entwickelten Verfahren! n-pat: Modulare Anwendungsplattform mit Smartcards 16.11.2011 © n-design GmbH Folie 7
  • 8.
    Die CardTerminalanbindung n-pat: Modulare Anwendungsplattform mit Smartcards 16.11.2011 © n-design GmbH Folie 8
  • 9.
    Module – Architektur& Technologie ● Architektur: „Tools & Material“ als Architekturmetapher für den Entwurf von Modulen für die Benutzerinteraktion. ● Technologie: Modularisierung der Webapplication mit ZK RIA komponentenorientiertes, server-zentriertes WebApplication Framework n-pat: Modulare Anwendungsplattform mit Smartcards 16.11.2011 © n-design GmbH Folie 9
  • 10.
    Modular: Bundles schneiden Karten-Info Karten-Aktualisierung App App + showCard + showCard + updateCard Interface Device Versicherten Stammdaten Service Service  n-pat: Modulare Anwendungsplattform mit Smartcards 16.11.2011 © n-design GmbH Folie 10
  • 11.
    Tools & Material Toolsals Schnittstelle zwischen GUI und OSGi - Services ● Ursprung der Idee: Architekturmetapher entlehnt dem “Tools and Material Approach” von Heinz Züllighoven [Object-Oriented Construction Handbook] ● Tools sind die Interaktionsschnittstelle der Modell-Schicht ● Klare Trennung fachlicher Werte, Aktionen mit diesen Werten und deren Repräsentation im GUI. ● Verwendung in Controller-Schicht und Tests ● Lifecycle unabhängig vom Lifecylce der GUI-Elemente ● Wiederverwendung von Tools in der Präsentationsschicht n-pat: Modulare Anwendungsplattform mit Smartcards 16.11.2011 © n-design GmbH Folie 11
  • 12.
    Typischer Aufbau einesTools KarteAktualisierenTool - Interface Device Service - VSD Service - SmartCard - SmartCardDAO - CardPresentBean + showCard: CardPresentBean + updateCard: CardPresentBean + backUpCard: void Optimal: Abbildung kompletter Use Cases mit Tools n-pat: Modulare Anwendungsplattform mit Smartcards 16.11.2011 © n-design GmbH Folie 12
  • 13.
    Tools als Randder Modellschicht Web Frontend (ZK RIA) Deklarative GUI Implementierung Präsentations- (XUL) schicht Controller ToolBox Tools Modellschicht OSGi-Services Entitäten n-pat: Modulare Anwendungsplattform mit Smartcards 16.11.2011 © n-design GmbH Folie 13
  • 14.
    Modular: KartenInfo &KartenUpdate Karten-Info Karten-Aktualisierung GUI GUI KartenInfoTool KartenInfoTool KartenUpdateTool getVersicherter(); showCard(); getKasse(); updateCard(); Interface Device Versicherten Stammdaten Service Service  n-pat: Modulare Anwendungsplattform mit Smartcards 16.11.2011 © n-design GmbH Folie 14
  • 15.
    Service oder nicht? ToolBox Tool A Tool B keine Services Declarative Services CardSlot Service A CardSlot Service B - Factory Components CardTerminalManager Service Declarative Interface Device Services Service - Immediate Components    n-pat: Modulare Anwendungsplattform mit Smartcards 16.11.2011 © n-design GmbH Folie 15
  • 16.
    Modularisierung der WebApp Anforderungen ● Framework (ZK RIA) soll als Bundle verfügbar gemacht werden. ● Es gibt eine GUI-Kernkomponente, die Erweiterungen aufnimmt. ● Die Erweiterungen sollen eigenständige Bundles sein. ● Die Erweiterungen sollen GUI-Komponenten inkl. statischem Inhalt (image, css, …) bereitstellen können. n-pat: Modulare Anwendungsplattform mit Smartcards 16.11.2011 © n-design GmbH Folie 16
  • 17.
    Modularisierung der WebApp(cont.) Umsetzung ● ZK RIA mit Hilfe von Maven Bundle Plugin als Bundle bereitgestellt. ● Implementation eines GUI-Rahmens, den Erweiterungen ausfüllen können. ● Erweiterungen werden dynamisch über das Extender Pattern in den Rahmen eingebunden. ● Die Webapplikation wird von einem embeded Jetty gehostet. ● Classloader des GUI-Rahmen-Bundles ● Zugriff auf Resourcen der erweiternden Bundles. n-pat: Modulare Anwendungsplattform mit Smartcards 16.11.2011 © n-design GmbH Folie 17
  • 18.
    Modularisierung der WebApp(cont.) n-pat: Modulare Anwendungsplattform mit Smartcards 16.11.2011 © n-design GmbH Folie 18
  • 19.
    Modularisierung der WebApp(cont.) KartenInfo App KartenAktualsierung App BundleTracker BundleTracker n-pat GUI Extender Register/Derigister App-Service OSGi Register/Deregister n-pat GUI Core App-ServiceTracker Resources Register Servlets Jetty Bundles ZK RIA Bundle n-pat: Modulare Anwendungsplattform mit Smartcards 16.11.2011 © n-design GmbH Folie 19
  • 20.
    Die ToolChain Eingesetzte Werkzeuge: ● Eclipse (PDE-Projekte) ● Maven / Tycho (Manifest-First-Ansatz) ● Jenkins (continuous Integration) ● Junit Knackpunkte: ● Geeignete Teststrategie (Komponenten, Testumgebung / Targetplattform) ● Tycho noch 'sehr jung' n-pat: Modulare Anwendungsplattform mit Smartcards 16.11.2011 © n-design GmbH Folie 20
  • 21.
    Unser Fazit Erstes OSGi-Projekt: ● RTFS: Sind die Konzepte verstanden, gestaltet sich die Implementierung eher einfach ● Externer Support für anfängliches Systemdesign sehr hilfreich ● In der Planung genügend Refactoring-Iterationen berücksichtigen ● Der OSGi-Core (Equinox) ist sehr stabil Zu verbessern: ● Testverfahren ● Mocks n-pat: Modulare Anwendungsplattform mit Smartcards 16.11.2011 © n-design GmbH Folie 21
  • 22.
    Besten Dank undweiterhin viel Spaß mit OSGI! Kontakt: kontakt@n-design.de www.n-design.de n-pat: Modulare Anwendungsplattform mit Smartcards 16.11.2011 © n-design GmbH Folie 22