170 likes | 366 Views
SmartPump. Spezifikation der Module / Programme. alien 06 gisele 10.0.2.6. alien 07 catherine 10.0.3.7. 1. 2. 1. 2. 0. 0. 1. 1. alien 05 salma 10.0.2.5. Internet. alien 08 denise 10.0.3.8. 2. 1. alien 02 jennifer 10.0.2.2. alien 03 drew 10.0.3.3. 0. 0. 1. 2. 2.
E N D
SmartPump Spezifikation der Module / Programme
alien06 gisele 10.0.2.6 alien07 catherine 10.0.3.7 1 2 1 2 0 0 1 1 alien05 salma 10.0.2.5 Internet alien08 denise 10.0.3.8 2 1 alien02 jennifer 10.0.2.2 alien03 drew 10.0.3.3 0 0 1 2 2 2 0 0 0 alien01 venus 10.0.1.1 1 2 3 0 alien04 wynona 10.0.4.4 2 1 = ethX X 0 0 alien10 pamela 10.0.4.10 alien09 sarah 10.0.4.9 2 2 1 1 Topologie 2 3 1 Client 4 Der SmartPump Server
IP v6 IP v4 IP v6 IP v4 MPLS MPLS Schichtenmodell Player Server RTSP RTSP Anwen- dungs- schicht RTCP RTP RTCP RTP UDP TCP UDP TCP Rechner- grenze Kernel- schicht Der SmartPump Server
Module & Kommunikation • Module • Master • Main • Optimierung • Servant • Client-Simulatoren • Schnittstellen • Steuerung / Kommunikation: RTSP • Video Streaming: RTP / TCP • Monitoring der Streams: RTCP Der SmartPump Server
Datenströme Kontrollströme Monitoring Module & Kommunikation (2) MPEG ... MPEG MPEG ... MPEG entfernt lokal lokal lokal lokal Berkeley DB Berkeley DB RTSP Master • hat Informationen über alle Programme(lokal & global) RTSP Servants • hat nur Informationen über lokale Programme RTP RTP TCP TCP Modul Optimierer RTCP RTCP RTSP RTP RTCP RTSP RTP RTCP Client • möchte Programmempfangen Der SmartPump Server
Modul – Master • Servant fragt Programm an • Master legt Route und Sender fest • bei MPLS: HOPs konfigurieren • 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 • Unterschied: keine Clients angeschlossen Der SmartPump Server
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) • Auswahlalgorithmus • Anfragen nach Vorgabe • Algorithmus arbeitet mit Optimierungsteil zusammen • wünschenswert: Implemtierung durch Optimierungsgruppe Der SmartPump Server
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
Anfrage Programm X Test Programm X lokal vorhanden Streaming (lokal) Beginn Informationen in Datenbank eintragen RTP Streaming Ende Video lokal vorhanden Client Servant Master Info: Programm X wurde abgefragt Der SmartPump Server
Test Programm X lokal vorhanden RTP-Stream an Client C, Port p Video lokal vorhanden (RTSP) Client:C Servant:A Master:M SETUP rtsp://<A>/<progX> Transport: RTP;client_port=<p> OK Transport: client_port=<p> PLAY rtsp://<A>/<progX> SET_PARAMETERrtsp://<M>/watched watch: <progX, uhrzeit, datum> OK Info. in Liste eintragen OK Der SmartPump Server
Quelle & Route bestimmen Quelle: Servant B Route: W Anfrage Programm X Bei IPv6: Route W Ziel: Client C RTP-Stream Video nicht lokal vorhanden Client:C Servant:A Master Servant:B Anfrage Programm X Test Programm X lokal nicht vorhanden Anfrage Programm X Streaming Ende Der SmartPump Server
Test Programm X lokal nicht vorhanden Quelle & Route bestimmen: Quelle=Servant B Route=W RTP Stream an Client C, Port p, über Route W Video nicht lokal vorh. (RTSP) Client:C Servant:A Master Servant:B SETUP rtsp://<A>/<progX> Transport: RTP;client_port=<p> 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 PLAY rtsp://<A>/<progX> PLAY rtsp://<A>/<progX> PLAY rtsp://<A>/<progX> OK OK OK Der SmartPump Server
Test Programm X lokal nicht vorhanden Anfrage Programm X Anfrage Programm X Programm X nicht vorhanden Programm X nicht vorhanden Programm X nicht vorhanden Video nicht gefunden Client:C Servant:A Master Der SmartPump Server
Stream aufnehmen von Servant A OK: Empfang an Port p Programm X an Servant B, Port p (bei IPv6: über W) 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 RTP Der SmartPump Server
TCP Stream an Servant B, Port p, über Route W 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> 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