SmartPump Spezifikation der Module / Programme Topologie 2 2 alien06 gisele 10.0.2.6 1 2 0 1 Internet 0 1 1 3 0 2 alien05 salma 10.0.2.5 alien07 catherine 10.0.3.7 1 alien02 jennifer 10.0.2.2 2 0 0 1 1 alien01 venus 10.0.1.1 0 2 alien03 drew 10.0.3.3 1 2 0 alien08 denise 10.0.3.8 2 3 0 Servant Master 2 0 2 Der SmartPump Server alien10 pamela 10.0.4.10 1 alien04 wynona 10.0.4.4 4 Client 1 0 1 X alien09 sarah 10.0.4.9 = ethX 2 2 Schichtenmodell Player Server RTSP RTSP RTCP RTP UDP TCP RTCP Rechnergrenze RTP UDP TCP IP v4 IP v4 MPLS MPLS Der SmartPump Server Anwendungsschicht Kernelschicht 3 Module & Kommunikation Module 1. Master 1. Main 2. Optimierung 2. Servant 3. Client-Simulatoren Schnittstellen Steuerung / Kommunikation: RTSP Video Streaming: RTP / TCP Monitoring der Streams: RTCP Der SmartPump Server 4 Module & Kommunikation (2) ... MPEG lokal MPEG lokal lokal •hat Informationen über alle Programme (lokal & global) Modul Optimierer RTSP RTSP RTP RTP TCP TCP RTCP RTCP Datenströme Kontrollströme Monitoring Der SmartPump Server MPEG lokal Berkeley DB Berkeley DB Master ... MPEG entfernt Servants •hat nur Informationen über lokale Programme RTSP RTP RTCP RTSP RTP RTCP Client •möchte Programm empfangen 5 Modul – Master Servant fragt Programm an Master legt Route und Sender fest Sender konfigurieren Abruf des Programms speichern (für Optimierer) Servant schickt Information Abruf des Programms speichern (für Optimierer) Optimierung & Umverteilung externes Modul von Optimierungs-Teilgruppe anschließend Programme verteilen Master ist gleichzeitig auch Servant Videos auf seiner Festplatte vorhanden Unterschied zu Servants: keine Clients angeschlossen Der SmartPump Server 6 Modul – Servants Anfragen der Clients bedienen Anfrage kann lokal bedient werden Stream direkt zum Client schicken außerdem Master informieren (für Optimierung) Anfrage kann nicht lokal bedient werden Anfrage an Master weiterleiten Befehle des Masters ausführen Programme streamen (Senden) Route im MPLS-Header definieren Der SmartPump Server 7 Modul – Client-Simulator Client-Simulatoren mehrere Anfragen an Servants stellen Auswahlalgorithmus Streams empfangen (ohne Darstellung) Auswahlalgorithmus Anfragen nach Vorgabe Algorithmus arbeitet mit Optimierungsteil zusammen wünschenswert: Implementierung durch Optimierungsgruppe Der SmartPump Server 8 Datenbank aktuell Berkeley DB Operationen (Einfügen, Löschen,...) bereits in SmartPump implementiert von uns geplant Berkeley DB jeder Server hat eigene DB einfügen über die bekannten Operation Master veranlasst alle Umverteilungen Datenbank mit globalem Wissen im Master kann problemlos aktuell gehalten werden Der SmartPump Server 9 Client-Anfragen Bei Anfragen von Clients gibt es mehrere Möglichkeiten: Video lokal vorhanden Video nicht lokal vorhanden Video nicht gefunden Veranschaulichung durch Sequenzdiagramme wer interessiert ist: Paper (Homepage) Der SmartPump Server 10 Schnittstelle zu Optimierern Input Liste mit den seit dem letzten Aufruf angeforderten Programmen Programm Ort (Servant-ID) Uhrzeit abgebrochen (ja / nein) Liste, wo sich welches Programm befindet Realisierung als Funktion innerhalb des Masters übergeben von zwei Zeigern auf Listen Der SmartPump Server 11 Schnittstelle zu Optimierern (2) Output Liste von Programmen inkl. Server, auf dem sie platziert werden sollen Rückgabe eines Zeigers auf diese Liste Der SmartPump Server 12