Page 1
16.11.2011Folie 1
n-pat: Modulare Anwendungsplattform mit Smartcards © n-design GmbH
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
Page 2
16.11.2011Folie 2
n-pat: Modulare Anwendungsplattform mit Smartcards © n-design GmbH
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
Page 3
16.11.2011Folie 3
n-pat: Modulare Anwendungsplattform mit Smartcards © n-design GmbH
n-pat – die Demo
Page 4
16.11.2011Folie 4
n-pat: Modulare Anwendungsplattform mit Smartcards © n-design GmbH
Einordnung in den Gesamtkontext
Integrierbarkeit
Erweiterbarkeit
Skalierbarkeit
Page 5
16.11.2011Folie 5
n-pat: Modulare Anwendungsplattform mit Smartcards © n-design GmbH
OSGi core
Logische Komponentensicht
<Modul>VSD
ServicePlattform
VSDD
<Modul>eGKDaten
KT 1
KT n
eCard Service
CCS
HTT
P
LoggingService
SystemMngtService
PKIService
KT Mngt Card Mngt
CrypthoPseudonym
ServiceSSO
Service
<Modul>TestKennZ
TestKennZDienst
<Modul>MWD 1
MehrwertDienst
<Modul>MWD 2
MandantenMngt-Service
<Modul>Updates
CAMS
<Modul>AMS
Frontend
WebContainer
● Core – Runtime: OSGi ( Equinox)● Basisdienste● Applikationen● Spezifische Adapter
Page 6
16.11.2011Folie 6
n-pat: Modulare Anwendungsplattform mit Smartcards © n-design GmbH
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
Page 7
16.11.2011Folie 7
n-pat: Modulare Anwendungsplattform mit Smartcards © n-design GmbH
Die ID4health Systemarchitektur
● Standardisiertes ID-Management
● starke und datenschutzfreundliche Authentisierung
● n-pat integriert die hier entwickelten Verfahren!
Page 8
16.11.2011Folie 8
n-pat: Modulare Anwendungsplattform mit Smartcards © n-design GmbH
Die CardTerminalanbindung
Page 9
16.11.2011Folie 9
n-pat: Modulare Anwendungsplattform mit Smartcards © n-design GmbH
Module – Architektur & Technologie
● Architektur:
„Tools & Material“ als Architekturmetapher für den Entwurf von Modulen für die Benutzerinteraktion.
● Technologie:
Modularisierung der Webapplication mitZK RIA
komponentenorientiertes, server-zentriertesWebApplication Framework
Page 10
16.11.2011Folie 10
n-pat: Modulare Anwendungsplattform mit Smartcards © n-design GmbH
Modular: Bundles schneiden
Interface Device Service
Versicherten StammdatenService
Karten-InfoApp
Karten-AktualisierungApp
+ showCard
+ updateCard
+ showCard
Page 11
16.11.2011Folie 11
n-pat: Modulare Anwendungsplattform mit Smartcards © n-design GmbH
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
Page 12
16.11.2011Folie 12
n-pat: Modulare Anwendungsplattform mit Smartcards © n-design GmbH
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
Page 13
16.11.2011Folie 13
n-pat: Modulare Anwendungsplattform mit Smartcards © n-design GmbH
Tools als Rand der Modellschicht
Web Frontend (ZK RIA)
Deklarative GUI Implementierung(XUL)
Controller
Präsentations-schicht
OSGi-Services Entitäten
Tools
ToolBox
Modellschicht
Page 14
16.11.2011Folie 14
n-pat: Modulare Anwendungsplattform mit Smartcards © n-design GmbH
Modular: KartenInfo & KartenUpdate
Interface Device Service
Versicherten StammdatenService
Karten-InfoGUI
Karten-AktualisierungGUI
KartenInfoTool
getVersicherter();getKasse();
KartenInfoTool
showCard();
KartenUpdateTool
updateCard();
Page 15
16.11.2011Folie 15
n-pat: Modulare Anwendungsplattform mit Smartcards © n-design GmbH
Service oder nicht?
CardTerminalManager Service
Declarative Services
-Immediate
Components
CardSlot Service A
Interface Device Service
CardSlot Service BDeclarative
Services-
Factory Components
Tool A
ToolBox
Tool B keine Services
Page 16
16.11.2011Folie 16
n-pat: Modulare Anwendungsplattform mit Smartcards © n-design GmbH
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.
Page 17
16.11.2011Folie 17
n-pat: Modulare Anwendungsplattform mit Smartcards © n-design GmbH
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.
Page 18
16.11.2011Folie 18
n-pat: Modulare Anwendungsplattform mit Smartcards © n-design GmbH
Modularisierung der WebApp (cont.)
Page 19
16.11.2011Folie 19
n-pat: Modulare Anwendungsplattform mit Smartcards © n-design GmbH
Modularisierung der WebApp (cont.)
Jetty Bundles ZK RIA Bundle
n-pat GUI Core
Register Servlets
KartenInfo App KartenAktualsierung App
n-pat GUI Extender
Register/DeregisterResources
BundleTracker BundleTracker
OSGi
Register/DerigisterApp-Service
App-ServiceTracker
Page 20
16.11.2011Folie 20
n-pat: Modulare Anwendungsplattform mit Smartcards © n-design GmbH
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'
Page 21
16.11.2011Folie 21
n-pat: Modulare Anwendungsplattform mit Smartcards © n-design GmbH
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
Page 22
16.11.2011Folie 22
n-pat: Modulare Anwendungsplattform mit Smartcards © n-design GmbH
Besten Dank und weiterhin viel Spaß mit OSGI!
Kontakt: [email protected]
www.n-design.de