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
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
16.11.2011Folie 3
n-pat: Modulare Anwendungsplattform mit Smartcards © n-design GmbH
n-pat – die Demo
16.11.2011Folie 4
n-pat: Modulare Anwendungsplattform mit Smartcards © n-design GmbH
Einordnung in den Gesamtkontext
Integrierbarkeit
Erweiterbarkeit
Skalierbarkeit
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
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
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!
16.11.2011Folie 8
n-pat: Modulare Anwendungsplattform mit Smartcards © n-design GmbH
Die CardTerminalanbindung
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
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
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
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
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
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();
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
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.
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.
16.11.2011Folie 18
n-pat: Modulare Anwendungsplattform mit Smartcards © n-design GmbH
Modularisierung der WebApp (cont.)
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
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'
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
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