240 likes | 406 Views
Entwicklung eines Kontainermanagers zur Unterstützung der Konfigurierung und Ausführung semantisch beschriebener Dienste. Studienarbeit Thomas Fischer Betreuer: Michael Klein. Inhalt. Ausführungsprozess Beschreibung eines Dienstes Aufgabenstellung Lösung 1. Der Kontainermanager
E N D
Entwicklung eines Kontainermanagerszur Unterstützung der Konfigurierung und Ausführung semantischbeschriebener Dienste Studienarbeit Thomas Fischer Betreuer: Michael Klein
Inhalt • Ausführungsprozess • Beschreibung eines Dienstes • Aufgabenstellung • Lösung • 1. Der Kontainermanager • 2. Konfigurations- und Ausführungsprotokoll • 3. Grounding und Verbindung zum Profile • Zusammenfassung
Dienstgeber Dienstnehmer Verteilte Dienstvermittlung Angebot Anfrage Ausführungsprozess
Schätzanfrage mit INe Parametern Schätzwerte (OUTe) Dienstgeber Dienstnehmer Ausführungsprozess
Ergebnis und Quittung (OUTx) Dienstgeber Ausführungsauftrag mit INx Parametern Dienstnehmer Ausführungsprozess
Profile presents describes Service Model supports Grounding Beschreibung eines Dienstes • DIANE Service Offer Description (DSOD) • in der Java-Repräsentation • semantisch ausdrucksstark
INe/x: QualityType INe/x: ResType quality resolution presents locally available: State pre- condition printingServiceProfile printed:state effect entity time entity document OUTe: Time location format filesize URL OUTx: LocationType type/pdf INe: Integer INx: String Beschreibung eines Dienstes • Beispiel: Druckdienst-Profile printingService
Schätzanfrage: <600dpi, 130kB> Schätzwerte: <0min34sec> Dienstgeber Dienstnehmer Beispiel: Druckdienst
Dienstgeber Ausführungsauftrag: </home/fischer/document.pdf> Dienstnehmer Ergebnis und Quittung: <stud_p_sw1> Beispiel: Druckdienst
Probleme DIANE Dienstnehmer DIANE Dienstgeber realer Dienstnehmer realer Dienstgeber Schätzanfrage (INe) calculatePrintingTime (filesize, resolution) return time Schätzwerte (OUTe) Ausführungsauftrag (INx) printDocument (file, quality, resolution) return printerID Ergebnis (OUTx)
Aufgabenstellung • Idee: • dazwischengeschaltete Hilfskomponente • Aufgaben: 1. Entwicklung Kontainermanager • Verwaltung der Dienste • Übernimmt Kommunikation und Mapping 2. Konfigurations- und Ausführungsprotokoll • Realisiert Kommunikation Dienstnehmer/-geber 3. Grounding und Verbindung zum Profile • Realisiert Variablen- und Methodenmapping
Dienstnehmer Dienstnehmer Dienstnehmer Administrator Der Kontainermanager Dienstgeber Kontainermanager Dienst Registry
Der Kontainermanager • Admin Protocol • Verwalten des Kontainers • lokal oder enfernt nutzbar • Auslesen der Registry Add_Service Remove_Service Start_Service Stop_Service Get_ServiceList …
Dienstnehmer Kontainermanager Dienst Konfigurations- und Ausführungsprotokoll • Service Estimation Protocol Estimate(ServiceName, <INe>) • Anforderungen erfüllbar? • freie Dienstinstanzen? • Nebenbedingungen erfüllbar? • Schätzwerte berechnen Success(<OUTe>) Failure(<error>)
Dienstnehmer Kontainermanager Dienst Konfigurations- und Ausführungsprotokoll • Service Execution Protocol Execute(ServiceName, <INx>) • freie Dienstinstanzen? • Nebenbedingungen erfüllbar? • Dienst ausführen Success(<OUTx>) Failure(<error>)
Grounding und Verbindung zum Profile • Teil der DIANE Service Offer Description • Wrapper für beliebige Diensttypen • Mapping der Methoden • Mapping der Variablen
Variable ServiceGrounding WebServiceGrounding JavaServiceGrounding - supportedBy : Service - URL : String - javaVersion : String Grounding und Verbindung zum Profile - name: String 1..* hasParameter 1 1 1 JavaVariableMapping • - outVariable: Variable • className : String • methodName : String hasOUTeMapping 1..* hasOUTxMapping 1..*
INe : ResType INe : Integer JavaVariableMapping • outVariable : *time • className : „testservice.Printer.class“ • methodName : „calculatePrintingTime“ . . . Grounding und Verbindung zum Profile JavaServiceGrounding - javaVersion : „1.4.1“ hasOUTeMapping - name: „filesize“ hasParameter vom Profile hasParameter - name: „resolution“
INx : QualityType INx : ResType INx : String JavaVariableMapping • outVariable : *location • className : „testservice.Printer.class“ • methodName : „printDocument“ . . . Grounding und Verbindung zum Profile JavaServiceGrounding - javaVersion : „1.4.1“ hasOUTxMapping hasParameter hasParameter - name: „URL“ hasParameter - name: „quality“ - name: „resolution“
Zusammenfassung • Kontainer als Tool für Dienstanbieter • Konfigurations- und Ausführungsprotokoll • Integration fast beliebiger Diensttypen Ausblick: • Zusammengesetzte Dienste • Authentifizierung und Sicherheit