Upload
kai-hackbarth
View
702
Download
2
Embed Size (px)
DESCRIPTION
Citation preview
© MATERNA GmbH 2009 www.materna.de 1
Dr. Ingo Lück
Policy-basierte Konfiguration und Verwaltung
adaptiver Service-Systeme
© MATERNA GmbH 2009 www.materna.de 2
Inhalt
• OSAmI Commons Projekt
• Modellbasierte Ableitung von Konfigurationsdateien
• Gesetzte Basistechnologien in OSAmI-D
• Policy-basiertes Management
- Configuration Management
- Policy Management
- Association Management
Policy-basierte Konfiguration und Verwaltung adaptiver Service-Systeme
© MATERNA GmbH 2009
OSAmI Commons Projekt
www.materna.de 3
Ziel des OSAmI Projekts ist die Erforschung und Entwicklung grundlegender und für
dynamische service-orientierte Architekturen notwendiger Komponenten („Commons“)
für den Einsatz in unterschiedlichen Anwendungsbereichen und deren Bereitstellung als
Open-Source.
• Gefördert vom Bundesministerium für Bildung und Forschung
• Open Source Ambient Intelligence Commons
• ITEA2 Projekt mit Partnern aus
Spanien, Frankreich, Türkei, Finnland und Deutschland
© MATERNA GmbH 2009
OSAmI-D Szenario
www.materna.de 4
(max, min)
Home GatewayClinic
(Supervisor)
ALERT
Set thresholds
Ergometer
(Supervised Training)
Start
Video Conference
© MATERNA GmbH 2009
Modellbasierte Ableitung von Konfigurationsdateien
System Policy
Reales System
Laufzeit
Phase
Design
Phase
Modell
Use Cases & Assets
abstrakteste Sicht:
Ziele des Systems
Services & Domains
SOA Sicht:
Dienste, Abhängigkeiten
und Zuordnungen
Components & Devices
Implementierungssicht:
Komponenten, Verteilung
und Kommunikation
Konfigurationsdateien für:
• Configuration Management
• Policy Management
• Association Management
Deklarative
Policies
Imperative
Policies
Use Case
Anforderungen
Service
Anforderungen
Regeln: „event-
condition-action“
© MATERNA GmbH 2009
Gesetzte Basistechnologien in OSAmI-D
www.materna.de 7
• OSGi
- unabhängig von einer speziellen Implementierung
• Remote-Service-Spezifikation (RFC 119)
- als gemeinsame Grundlage in
• Devices Profile for Web Services (DPWS)
- OASIS Standard (WS-DD)
- Remote-Service Implementierung
• Java Implementierung für DPWS (JMEDS)
- Open Source (EPL)
- Informationen auf www.ws4d.org
© MATERNA GmbH 2009
Policy-basiertes Management – Manager Hierarchie
www.materna.de 8
Service Manager Service Manager
Use Case Manager Use Case Manager
Component Manager Component Manager Component Manager
Exklusive Zuordnung
Nicht-Exklusive Zuordnung
Component
Component
Component
Component
Component
Component
Component
Component
Component
© MATERNA GmbH 2009
Policy-basiertes Management – Übersicht
www.materna.de 9
OSGi Framework
Client Bundle
Remote
Service
Component Manager
Asso
cia
tion
Po
licy
Management Variables
ConfigurationStatus
OSGi Framework
Service Bundle
Se
rvic
e A
Co
nfig
ura
tion
Management Variables
ConfigurationStatus
Management Variables
ConfigurationStatus
Component Manager
Management Variables
ConfigurationStatus
Asso
cia
tion
Po
licy
Co
nfig
ura
tion
© MATERNA GmbH 2009
Configuration Management (Management Service)
www.materna.de 10
Der Configuration Service bietet Komponenten Zugriff auf ihre
Management Variablen:
public interface ConfigurationService {
public SharedSession getSharedSession();
public ExclusiveSession getExclusiveSession();
}
public interface SharedSession {
public Object getConfigurationValue(String uri);
public Object getStatusValue(String uri);
public void close();
}
public interface ExclusiveSession extends SharedSession {
public void setStatusValue(String uri, Object value);
}
© MATERNA GmbH 2009
Configuration Management (Client)
www.materna.de 11
Jede Komponente, die konfiguriert werden soll,
muss das Interface Configurable implementieren:
public interface Configurable {
public void configure(String[] uris);
}
Ein Beispiel:
public class Sensor implements Configurable {
private ConfigurationService configurationService;
private int internalPollingRate;
public void configure(String[] uris) {
SharedSession session = null;
try {
session = configurationService.getSharedSession();
internalPollingRate =
((Integer)session.getConfigurationValue(uris[0])).intValue();
} finally {
session.close();}}}
© MATERNA GmbH 2009
Policy Management (Policy Expressions)
www.materna.de 12
Komponenten können beim Policy Service die Auswertung einer
„Policy Expressions“ anfordern:
public interface PolicyService {
public Object requestEvaluation(String policyName, Hashtable<String, String> parameters)throws PolicyNotFoundException, PolicyExecutionException;
public boolean requestDecision(String policyName , Hashtable<String, String> parameters)throws PolicyNotFoundException, PolicyExecutionException;
}
Beispiel für eine Policy Expressions mit dem Namen “Is backup service running“:
result = mgmtData.getStatus("Service B","runningState“)
if (result == "running")
return "true"
else
return "false"
© MATERNA GmbH 2009
Policy Management (Policy Rules)
www.materna.de 13
„Policy Rules“ werden durch Ereignisse ausgelöst,
sie entsprechen dem Event Condition Action (ECA) Muster
Beispiel für eine Policy Rule, die durch das Ereignis
„running state changed“ eines bestimmten Service ausgelöst wird:
if ("running state" == "unstable")
mgmtData.setConfig("Client Bundle", "service error", "true")
© MATERNA GmbH 2009
Association Management (Client)
www.materna.de 14
Beispiel für die Nutzung eines Service Ensembles durch einen Client:
Beispiel für die Beschreibung eines Service Ensembles:
<metadata client_id=„1234“><ensemble><type>VitalSignMonitoring</type><endpoint slot=„1“>de.osami.BloodpressureMeasurement</endpoint><endpoint slot=„2“>de.osami.PulseMeasurement</endpoint>
</ensemble><ensemble>…</ensemble>
</metadata>
…Ensemble e = null;try {e = AssociationService.getEnsemble(„VitalSignMonitoring“, 1800);
} catch (NoSuchEnsembleException ex) {};…PulseMeasurement pM = (PulseMeasurement) e.getAssociation(1).getService();int actPulse = pM.getPulse();…AssociationService.releaseEnsemble(e);…
© MATERNA GmbH 2009
Association Management (genutzter Service)
www.materna.de 15
• Reservierungs-Anfrage:
public LeaseHandle reserveService (long reserveTime, long leaseTime, Hashtable<String, String> requirements);
• Lease-Anfrage:
public boolean leaseService (LeaseHandle leaseHandle);
• Lease-Verlängerung:
public boolean prolongateLease (LeaseHandle leaseHandle);
• Lease-Beendigung:
public void clearLease (LeaseHandle leaseHandle);
Von einem Service zu implementierende Association Management Schnittstelle:
© MATERNA GmbH 2009
Zusammenfassung
www.materna.de 16
• Design Phase:
- Modellschichten:
Use Cases & Assets
Services & Domains
Components & Devices
- Ableitung von Konfigurationsdateien
Modellierung des Systems in allen drei Schichten
Modellierung von Use Case Anforderungen
Automatische Ableitung von Service Anforderungen
und Management Regeln
Automatische Generierung von Konfigurationsdateien
• Laufzeit Phase:
- Configuration Management
- Policy Management
- Association ManagementOSGi Framework
Client Bundle Component Manager
Asso
cia
tion
Polic
y
Management Variables
ConfigurationStatus
Config
ura
tion
Management Variables
ConfigurationStatus