Spezifikation der Module / Programme SmartPump Spezifikation der Module / Programme
Topologie alien06 gisele 10.0.2.6 1 2 alien07 catherine 10.0.3.7 1 2 2 3 alien01 venus 10.0.1.1 1 2 3 Internet alien05 salma 10.0.2.5 1 2 alien02 jennifer 10.0.2.2 1 2 alien03 drew 10.0.3.3 1 2 alien08 denise 10.0.3.8 1 2 1 alien04 wynona 10.0.4.4 1 2 Client X = ethX 4 alien10 pamela 10.0.4.10 1 2 alien09 sarah 10.0.4.9 1 2 Der SmartPump Server
Schichtenmodell Player Server RTSP RTSP Anwen- dungs- schicht RTCP RTP UDP TCP UDP TCP Rechner- grenze Kernel- schicht IP v6 IP v4 MPLS Der SmartPump Server
Module & Kommunikation Master Main Optimierung Servant Client-Simulatoren Schnittstellen Steuerung / Kommunikation: RTSP Video Streaming: RTP / TCP Monitoring der Streams: RTCP Der SmartPump Server
Module & Kommunikation (2) MPEG ... MPEG MPEG ... MPEG entfernt lokal lokal lokal lokal Berkeley DB Berkeley DB Master hat Informationen über alle Programme (lokal & global) RTSP RTSP Servants hat nur Informationen über lokale Programme RTP RTP TCP TCP Modul Optimierer RTCP RTCP RTSP RTP RTCP Datenströme Kontrollströme Monitoring RTSP RTP RTCP Client möchte Programm empfangen Der SmartPump Server
Modul – Master Servant fragt Programm an Servant schickt Information Master legt Route und Sender fest bei MPLS: HOPs konfigurieren Sender konfigurieren Abruf des Programms speichern (für Optimierer) Servant schickt Information Optimierung & Umverteilung externes Modul von Optimierungs-Teilgruppe anschließend Programme verteilen Master ist gleichzeitig auch Servant Unterschied: keine Clients angeschlossen Der SmartPump Server
Anfragen der Clients bedienen 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) bei MPLS: Switching Tabellen nach Anweisung konfigurieren Der SmartPump Server
Modul – Client-Simulator Client-Simulatoren mehrere Anfragen an Servants stellen Auswahlalgorithmus Streams empfangen (ohne Darstellung) Anfragen nach Vorgabe Algorithmus arbeitet mit Optimierungsteil zusammen wünschenswert: Implemtierung durch Optimierungsgruppe Der SmartPump Server
Bei Anfrage von Client gibt es mehrere Möglichkeiten: Client-Anfrage Bei Anfrage von Client gibt es mehrere Möglichkeiten: Video lokal vorhanden Video nicht lokal vorhanden Video nicht gefunden Veranschaulichung durch Sequenzdiagramme Der SmartPump Server
Video lokal vorhanden RTP Client Servant Master Anfrage Programm X Test Programm X lokal vorhanden Info: Programm X wurde abgefragt RTP Streaming (lokal) Beginn Streaming Ende Informationen in Datenbank eintragen Der SmartPump Server
Video lokal vorhanden (RTSP) Client:C Servant:A Master:M SETUP rtsp://<A>/<progX> Transport: RTP;client_port=<p> Test Programm X lokal vorhanden OK Transport: client_port=<p> PLAY rtsp://<A>/<progX> RTP-Stream an Client C, Port p OK SET_PARAMETER rtsp://<M>/watched watch: <progX, uhrzeit, datum> Info. in Liste eintragen OK Der SmartPump Server
Video nicht lokal vorhanden Client:C Servant:A Master Servant:B Anfrage Programm X Test Programm X lokal nicht vorhanden Anfrage Programm X Quelle & Route bestimmen Quelle: Servant B Route: W Anfrage Programm X Bei IPv6: Route W Ziel: Client C Servant A Stream durchleiten: Anwendungsschicht oder andere? RTP-Stream Streaming Ende Der SmartPump Server
Video nicht lokal vorh. (RTSP) Client:C Servant:A Master Servant:B SETUP rtsp://<A>/<progX> Transport: RTP;client_port=<p> Test Programm X lokal nicht vorhanden Quelle & Route bestimmen: Quelle=Servant B Route=W SETUP rtsp://<A>/<progX> Transport: RTP;client_port=<p>; destination=<C> SETUP rtsp://<A>/<progX> Transport:RTP;client_port=<p>; destination=<C> OK SET_PARAMETER rtsp://<A>/<progX> ipv6-route: W OK OK OK Servant A Stream durchleiten: Anwendungsschicht oder andere? PLAY rtsp://<A>/<progX> PLAY rtsp://<A>/<progX> PLAY rtsp://<A>/<progX> RTP Stream an Client C, Port p, über Route W OK OK OK Der SmartPump Server
Video nicht gefunden Client:C Servant:A Master Anfrage Programm X Test Programm X lokal nicht vorhanden Anfrage Programm X Programm X nicht vorhanden Programm X nicht vorhanden Programm X nicht vorhanden Der SmartPump Server
Umverteilung des Programms Situation: Programm X soll von Servant A zu Servant B übertragen werden (über Route W, mit Geschwindigkeitsfaktor s) Servant:B Master Servant:A Stream aufnehmen von Servant A OK: Empfang an Port p Programm X an Servant B, Port p (bei IPv6: über W) RTP Der SmartPump Server
Umverteilung des Programms Servant:B Master Servant:A ANNOUNCE rtsp://<B>/<progX> OK SETUP rtsp://<B>/<progX> Transport: tcp; mode=record OK Transport: server_port=<p> SETUP rtsp://<A>/<progX> Transport: tcp; mode=play destination=<B> client_port=<p> OK SET_PARAMETER rtsp://<A>/<progX> ipv6-route: <W> OK RECORD rtsp://<B>/<progX> OK PLAY rtsp://<A>/<progX> TCP Stream an Servant B, Port p, über Route W OK Der SmartPump Server
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 Output Liste von Programmen inkl. Server, auf dem sie platziert werden sollen Der SmartPump Server