Weitere ähnliche Inhalte
Ähnlich wie Policy-basierte Konfiguration und Verwaltung adaptiver Service-Systeme
Ähnlich wie Policy-basierte Konfiguration und Verwaltung adaptiver Service-Systeme (20)
Policy-basierte Konfiguration und Verwaltung adaptiver Service-Systeme
- 2. Inhalt
Policy-basierte Konfiguration und Verwaltung adaptiver Service-Systeme
• OSAmI Commons Projekt
• Modellbasierte Ableitung von Konfigurationsdateien
• Gesetzte Basistechnologien in OSAmI-D
• Policy-basiertes Management
- Configuration Management
- Policy Management
- Association Management
© MATERNA GmbH 2009 www.materna.de 2
- 3. OSAmI Commons Projekt
• Open Source Ambient Intelligence Commons
• ITEA2 Projekt mit Partnern aus
Spanien, Frankreich, Türkei, Finnland und Deutschland
• Gefördert vom Bundesministerium für Bildung und Forschung
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.
© MATERNA GmbH 2009 www.materna.de 3
- 4. OSAmI-D Szenario
(max, min)
Set thresholds
ALERT
Start
Video Conference
Clinic Home Gateway Ergometer
(Supervisor) (Supervised Training)
© MATERNA GmbH 2009 www.materna.de 4
- 5. Modellbasierte Ableitung von Konfigurationsdateien
System Policy
Use Cases & Assets Use Case
abstrakteste Sicht: Anforderungen
Ziele des Systems Deklarative
Policies
Design Services & Domains Service
SOA Sicht: Anforderungen
Phase Dienste, Abhängigkeiten
und Zuordnungen
Components & Devices Regeln: „event-
Implementierungssicht: condition-action“ Imperative
Komponenten, Verteilung
und Kommunikation Policies
Modell
Reales System
Konfigurationsdateien für:
Laufzeit • Configuration Management
Phase • Policy Management
• Association Management
© MATERNA GmbH 2009
- 6. Gesetzte Basistechnologien in OSAmI-D
• 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 www.materna.de 7
- 7. Policy-basiertes Management – Manager Hierarchie
Use Case Manager Use Case Manager
Service Manager Service Manager Nicht-Exklusive Zuordnung
Component Manager Component Manager Component Manager
Exklusive Zuordnung
Component Component Component
Component Component Component
Component Component Component
© MATERNA GmbH 2009 www.materna.de 8
- 8. Policy-basiertes Management – Übersicht
Remote
Service
Configuration
Configuration
Association
Association
Service A
Policy
Policy
Status Configuration Status Configuration Status Configuration Status Configuration
Management Variables Management Variables Management Variables Management Variables
Client Bundle Component Manager Service Bundle Component Manager
OSGi Framework OSGi Framework
© MATERNA GmbH 2009 www.materna.de 9
- 9. Configuration Management (Management Service)
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 www.materna.de 10
- 10. Configuration Management (Client)
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();}}} www.materna.de
© MATERNA GmbH 2009 11
- 11. Policy Management (Policy Expressions)
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 www.materna.de 12
- 12. Policy Management (Policy Rules)
„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 www.materna.de 13
- 13. Association Management (Client)
Beispiel für die Nutzung eines Service Ensembles durch einen Client:
…
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);
…
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>
© MATERNA GmbH 2009 www.materna.de 14
- 14. Association Management (genutzter Service)
Von einem Service zu implementierende Association Management Schnittstelle:
• 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);
© MATERNA GmbH 2009 www.materna.de 15
- 15. Zusammenfassung
• 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
Association
Policy
- Configuration Management
- Policy Management Status Configuration Status Configuration
Management Variables Management Variables
- Association Management Client Bundle Component Manager
OSGi Framework
© MATERNA GmbH 2009 www.materna.de 16