E n t w i c k l u n g e i n e s s i c h e r e n V i d e o ü b e r t r a g u n g s s y s t e m s. G r o b e n t w u r f

Ähnliche Dokumente
E n t w i c k l u n g e i n e s s i c h e r e n V i d e o ü b e r t r a g u n g s s y s t e m s. P f l i c h t e n h e f t

Softwareentwicklungspraktikum Sommersemester Grobentwurf

E n t w i c k l u n g e i n e s s i c h e r e n V i d e o ü b e r t r a g u n g s s y s t e m s. T e s t d o k u m e n t a t i o n

bla bla Guard Benutzeranleitung

Einrichtung einer Projektzeitenmanager Datenbank auf einem Firebird Datenbankserver. Mit Hilfe des Programmes pzmadmin v1.6.x

bla bla Guard Benutzeranleitung

Erweiterungen im IMDS-Release 1.8.4

Nutzerhandbuch Softwaresystem Inspirata. Benutzerhandbuch Softwaresystem Inspirata

Übersicht... 2 Dateiupload... 3 Administratorfunktionen... 4

ESB - Elektronischer Service Bericht

KURZANLEITUNG CLOUD OBJECT STORAGE

Dokumentation Softwareprojekt AlumniDatenbank

Gruppe 3 (AdBee) Grobentwurf

Quickguide für Interne Benutzer

ewon über dynamische Adresszuweisung erreichbar machen

KOMPRIMIERUNGS & VERSCHLÜSSELUNGS- TOOL

Webmail. Anleitung für Ihr online -Postfach.

HILFE Bedienungsanleitung für die Administrationsseite Ihres Online-Shops

Anleitung Datenfernsicherung SecureSafe

Scalera Mailplattform Dokumentation für den Anwender Installation und Konfiguration des Outlook Connectors

Stubbe-CS. Kurssystem. Günter Stubbe. Datum: 19. August 2013

Nachfolgend wird beschrieben wie das Online-Umfrage-Tool installiert wird sowie welchen Funktionsumfang das Tool umfasst.

bla bla Guard Benutzeranleitung

Zur Bestätigung wird je nach Anmeldung (Benutzer oder Administrator) eine Meldung angezeigt:

Verwendung der Sharepoint-Portal-Server Website

Verwendung der Sharepoint-Portal-Server Website

Handbuch xgdm-was Extension Version 1.0

BSH-FX (File Exchange) Datenaustausch mit registrierten Mailbox-Usern

Das Handbuch zu Blogilo. Mehrdad Momeny Übersetzung: Burkhard Lück

Mobile Versandkontrolle für die SelectLine-Warenwirtschaft

Kurzanleitung GigaMove

Passwort Recovery über Stud.IP. Verfahren zum Zurücksetzen des Nutzerkonto-Passworts

Handbuch für Teilnehmer. zur Anwendung. FastViewer

Handbuch für Android 1.5

-Verschlüsselung mit S/MIME

Sascha Schreier. Softwaretechnik: Übung

e-seal Gebrauchsanweisung für Novartis Mitarbeiter mit Microsoft Outlook e-seal_2_8_11_0154_umol

DHL-Connector. für JTL-WAWI. Anleitung. 0.1 Änderungsverzeichnis. Versionsnummer. Datum Änderung Autor

Bei Truecrypt handelt es sich um ein Open-Source Verschlüsselungs-Programm, das unter folgendem Link für verschiedene Plattformen verfügbar ist:

webstyle Kundenleitfaden: Webstyle-CMS 1. Überblick 2. Erste Schritte 2.1. Login Stand: 15. Oktober 2009

ODD-TV². ... die zukunftssichere Lösung für den modernen Wettanbieter!

G-Info Lizenzmanager

SWN-NetT Webmail. Benutzerhandbuch für SWN-NetT Webmail. SWN-NetT Webmail finden Sie unter:

Inhalt: Ihre persönliche Sedcard... 1 Login... 1 Passwort vergessen... 2 Profildaten bearbeiten... 3

Draexlmaier Group. Schulungsunterlage für Lieferanten DRÄXLMAIER Supplier Portal

Benutzerhandbuch. Leitfaden zur Benutzung der Anwendung für sicheren Dateitransfer.

Verwendung der Support Webseite

Handbuch für ios 1.4 1

YouTube -- Bedienungsanleitug

Bedienungsanleitung für den SecureCourier

Hochschule Mittweida. UML-Dokumenation. Franziska Frenzel [Wählen Sie das Datum aus]

Softwareentwicklungspraktikum Sommersemester Feinentwurf

Bedienungsanleitung. Version 2.0. Aufruf des Online-Update-Managers. Bedienungsanleitung Online-Update Stand Juni 2010

Sophos Mobile Encryption für Android Hilfe. Produktversion: 1.3

GlobalHonknet.local. Entfernen von Metadaten aus Active Directory nach Offlineschaltung und fehlgeschlagener DC Herabstufung

Beschreibung der Homepage

Artikel ID: 2399 Erstellt am: :36 Überschrift: STRATO HiDrive Software - Installation und Konfiguration

CARM-Server. Users Guide. Version APIS Informationstechnologien GmbH

Anleitung Konfiguration sowie Übersicht Mailprogramm roundcube Inhaltsverzeichnis

Acer edatasecurity Management

Express Import System

Dokumentenkontrolle Matthias Wohlgemuth Telefon Erstellt am

Dokumentation. juris Autologon-Tool. Version 3.1

Lösen von Problemen beim Scannen ins Netzwerk. Antworten und Problemlösungen Scannen an - Statusmeldungen... 3

Studienarbeit. Praktikum Software Entwicklung SS Anja Weigl Mar.Nr.: Fabian Ramelsberger Mar.Nr.:

KURZANLEITUNG CYBERDUCK MIT CLOUD OBJECT STORAGE

KEEPASS PLUGIN - BENUTZERHANDBUCH

eadmin Manual Universitätsstraße Koblenz Deutschland

Zugang zum Exchange System

DB2 Kurzeinführung (Windows)

Daten verschlüsseln: warum? wie? Das Programm herunterladen und auf dem USB-Stick installieren Dateien mit Challenger verschlüsseln - entschlüsseln

So nutzen Sie die HiDrive App mit Ihrem Android Smartphone

Profi cash 10. Electronic Banking. Installation und erste Schritte. Ihre Spezialisten für den elektronischen Zahlungsverkehr und moderne Bezahlsysteme

F-Secure Mobile Security für Windows Mobile 5.0 Installation und Aktivierung des F-Secure Client 5.1

Online Backup Management Konsole 3.8 Benutzerhandbuch

MySQL Community Server 5.6 Installationsbeispiel (Ab )

Kurzanleitung GPG Verschlüsselung Stand vom

Anleitung für Kaufkunden, bei denen der CLIQ Web Manager nicht permanent mit dem CLIQ Data Center (DCS) verbunden sind

Startseite von Prinect Remote Access

Anleitung für Zugriff auf den LEM-FTP-Server

mobilboxmanager Benutzerhandbuch Version 3.01

Websense Secure Messaging Benutzerhilfe

Installation und Lizenz

Die automatische Clientkonfiguration durch den DHCP-Server geschieht folgendermaßen:

Anmeldung bei einem registrierten Konto (Account)

Anleitung zur Installation von Thunderbird

Zeiterfassungsanlage Handbuch

Inhaltsverzeichnis. v.2008 Job Center i

Kurzbeschreibung PC-Software für das Gerät URO-2050

Kleines Handbuch zur Fotogalerie der Pixel AG

Diese Anleitung beschreibt das Vorgehen mit dem Browser Internet Explorer. Das Herunterladen des Programms funktioniert in anderen Browsern ähnlich.

1.) Starte das Programm Mozilla Thunderbird. 2.) Wähle im Menü Extras die Option Konten. 3.) Klicke auf den Button Konto hinzufügen

HTML- s im VM2000

Sophos Mobile Control Benutzerhandbuch für Android

HILFE Datei. UPC Online Backup

Drupal 8 manuell installieren

- Frontend

Hinweis: Der Zugriff ist von intern per Browser über die gleiche URL möglich.

Transkript:

E n t w i c k l u n g e i n e s s i c h e r e n V i d e o ü b e r t r a g u n g s s y s t e m s Softwareentwicklungspraktikum Sommersemester 2009 The Security Gurus [Gruppe 1] G r o b e n t w u r f Auftraggeber Technische Universität Braunschweig Institut für Betriebssysteme und Rechnerverbund Prof. Dr.-Ing. Lars Wolf Mühlenpfordtstraße 23, 1. OG 38106 Braunschweig Betreuer: Kai Homeier, Jens Brandt, Timo Veit Name Johannes Bürdek Daniel Fischer Justus Hummelsheim Sebastian Nieke Jan-Marc Reinhardt Mengzhi Zhang Auftragnehmer: E - Mail johannes.buerdek@gmx.net d.fischer@tu-bs.de netzjoe@arcor.de waronfate@googlemail.com j-m.reinhardt@tu-bs.de ias147@hotmail.com Braunschweig, 24.04.2009 1

Versionsübersicht Version Datum Autor Status Kommentar 1.0 18.04.09 Gruppe 1 Erstfassung 2

I n h a l t s v e r z e i c h n i s ENTWICKLUNG EINES SICHEREN VIDEOÜBERTRAGUNGSSYSTEMS 1 GROBENTWURF 1 INHALTSVERZEICHNIS 3 ABBILDUNGSVERZEICHNIS 5 1 EINLEITUNG 7 1.1 PROJEKTDETAILS 7 2 ANALYSE DER PRODUKTFUNKTIONEN 11 2.1 ANALYSE VON FUNKTIONALITÄT /F100/: BENUTZER VERWALTEN 11 2.1.1 GROBANALYSE 11 2.1.2 FEINANALYSE 12 2.2 ANALYSE VON FUNKTIONALITÄT /F110/: VIDEOS STREAMEN 13 2.2.1 GROBANALYSE 13 2.2.2 FEINANALYSE 14 2.3 ANALYSE VON FUNKTIONALITÄT /F120/: VERSCHLÜSSELTE VIDEOS EMPFANGEN UND SPEICHERN 15 2.3.1 GROBANALYSE 15 2.3.2 FEINANALYSE 16 2.4 ANALYSE VON FUNKTIONALITÄT /F130/: UNVERSCHLÜSSELTE VIDEOS EMPFANGEN UND SPEICHERN 17 2.4.1 GROBANALYSE 17 2.4.2 FEINANALYSE 18 2.5 ANALYSE VON FUNKTIONALITÄT /F140/: VIDEOS LÖSCHEN 19 2.5.1 GROBANALYSE 19 2.5.2 FEINANALYSE 20 2.6 ANALYSE VON FUNKTIONALITÄT /F200/: BENUTZER ANLEGEN 20 2.6.1 GROBANALYSE 20 2.6.2 FEINANALYSE 21 2.7 ANALYSE VON FUNKTIONALITÄT /F210/: BENUTZER LÖSCHEN 22 2.7.1 GROBANALYSE 22 3

2.7.2 FEINANALYSE 23 2.8 ANALYSE VON FUNKTIONALITÄT /F220/: BENUTZER BEARBEITEN 24 2.8.1 GROBANALYSE 24 2.8.2 FEINANALYSE 25 2.9 ANALYSE VON FUNKTIONALITÄT /F230/: RECHTE VERWALTEN 26 2.9.1 GROBANALYSE 26 2.9.2 FEINANALYSE 27 2.10 ANALYSE VON FUNKTIONALITÄT /F250/: PASSWORT ÄNDERN 28 2.10.1 GROBANALYSE 28 2.10.2 FEINANALYSE 29 2.11 ANALYSE VON FUNKTIONALITÄT /F260/: PASSWORT ZURÜCKSETZEN 30 2.11.1 GROBANALYSE 30 2.11.2 FEINANALYSE 31 2.12 ANALYSE VON FUNKTIONALITÄT /F300/: VIDEOS ABSPIELEN 32 2.12.1 GROBANALYSE 32 2.12.2 FEINANALYSE 33 2.13 ANALYSE VON FUNKTIONALITÄT /F400/: VIDEOS HOCHLADEN 34 2.13.1 GROBANALYSE 34 2.13.2 FEINANALYSE 35 2.14 ANALYSE VON FUNKTIONALITÄT /F410/: VIDEOS LÖSCHEN 36 2.14.1 GROBANALYSE 36 2.14.2 FEINANALYSE 37 3 RESULTIERENDE SOFTWAREARCHITEKTUR 39 3.1 KOMPONENTENSPEZIFIKATION 39 3.2 SCHNITTSTELLENSPEZIFIKATION 39 3.3 PROTOKOLLE FÜR DIE BENUTZUNG DER KOMPONENTEN 40 3.3.1 KAMERA 40 3.3.2 UPLOADER 40 3.3.3 SERVER 41 3.3.4 BENUTZERVERWALTUNG 41 3.3.5 VIDEOPLAYER 42 4 VERTEILUNGSENTWURF 43

A b b i l d u n g s v e r z e i c h n i s 1-1: Zustandsdiagramm - Client... 8 1-2: Zustandsdiagramm - Server...10 2-1: Aktivitätsdiagramm - Benutzer verwalten (F100)...12 2-2: Sequenzdiagramm - Benutzer verwalten (F100)...13 2-3: Aktivitätsdiagramm - Videos streamen (F110)...14 2-4: Sequenzdiagramm - Videos streamen (F110)...15 2-5: Aktivitätsdiagramm - Verschlüsselte Videos empfangen und speichern (F120)...16 2-6: Sequenzdiagramm - Verschlüsselte Videos empfangen und speichern (F120)...17 2-7: Aktivitätsdiagramm - Unverschlüsselte Videos empfangen und speichern (F130)...18 2-8: Sequenzdiagramm - Unverschlüsselte Videos empfangen und speichern (F130)...18 2-9: Aktivitätsdiagramm - Videos löschen (F140)...19 2-10: Sequenzdiagramm - Videos löschen (F140)...20 2-11: Aktivitätsdiagramm - Benutzer anlegen (F200)...21 2-12: Sequenzdiagramm - Benutzer anlegen (F200)...22 2-13: Aktivitätsdiagramm - Benutzer löschen (F210)...23 2-14: Sequenzdiagramm - Benutzer löschen (F210)...24 2-15: Aktivitätsdiagramm - Benutzer bearbeiten (F220)...25 2-16: Sequenzdiagramm - Benutzer bearbeiten (F220)...26 2-17: Aktivitätsdiagramm - Rechte verwalten (F230)...27 2-18: Sequenzdiagramm - Rechte verwalten (F230)...28 2-19: Aktivitätsdiagramm - Passwort ändern (F250)...29 2-20: Sequenzdiagramm - Passwort ändern (F250)...30 2-21: Aktivitätsdiagramm - Passwort zurücksetzen (F260)...31 2-22: Sequenzdiagramm - Passwort zurücksetzen (F260)...31 2-23: Aktivitätsdiagramm - Videos abspielen (F300)...33 2-24: Sequenzdiagramm - Videos abspielen (F300)...34 2-25: Aktivitätsdiagramm - Videos hochladen (F400)...35 2-26: Sequenzdiagramm - Vidoes hochladen (F400)...36 2-27: Aktivitätsdiagramm - Videos löschen (F410)...37 2-28: Sequenzdiagramm - Videos löschen (F410)...38 3-1: Komponentendiagramm...39 3-2: Kamera-Komponente...40 3-3: Uploader-Komponente...40 3-4: Server-Komponente...41 3-5: Benutzerverwaltungs-Komponente...41

3-6: Player-Komponente...42 4-1: Verteilungsdiagramm...43

1 Einleitung Für die Entwicklung eines sicheren Videoübertragungssystems ist es grundsätzlich erst einmal nötig drei Komponenten zu entwickeln: Den Server, auf welchem die Videos gespeichert sind und der die Videos zu den Benutzern streamt, den Player, der die Videos empfängt und abspielt und den Uploader, der Videos auf den Server laden kann. Zusätzlich wird es noch eine Benutzerverwaltung geben um individuelle Zugriffsrechte zu ermöglichen. Auf die einzelnen Komponenten wird in Kapitel 3 eingegangen, ihre Verteilung wird in Kapitel 4 beschrieben. 1.1 Projektdetails Das Zustandsdiagramm in Abbildung 1.1 beschreibt den Client, welcher den Player, den Uploader und die Benutzerverwaltung beinhaltet. Nach dem Programmstart ist die grafische Benutzeroberfläche zu sehen in der die wichtigsten Funktion schnell erreichbar und übersichtlich angeordnet sind. Von hier aus kann sich der Benutzer mit einem Server seiner Wahl verbinden. Sofern kein Dialog (Benutzerverwaltung, Video zum hochladen wählen) geöffnet ist kann das Programm jederzeit über das Menü oder das Kreuz des Fensters beendet werden oder nur die Verbindung zum Server trennen. Wird das Programm beendet, wird eine eventuell bestehende Verbindung zu einem Server automatisch getrennt. Wenn der Benutzer mit einem Server verbunden ist kann er entweder einen neuen Account auf diesem erstellen oder sich anmelden, wenn er schon einen Account hat. Sobald man an einem Server angemeldet ist, hat man die Möglichkeit Videos anzusehen, Videos hoch zu laden oder die Benutzerverwaltung zu öffnen. Immer vorausgesetzt man hat die nötigen Rechte. Wenn zumindest ein Teil eines Videos geladen ist, kann man es abspielen, pausieren und stoppen. Man kann auch Videos hochladen und die Benutzerverwaltung öffnen während ein Video geladen oder abgespielt wird. Wenn man ein Video hochladen will öffnet sich ein Auswahldialog, in dem man das Video zum Hochladen wählen kann. Für die Benutzerverwaltung öffnet sich auch ein Dialog in dem man neue Benutzer anlegen, bestehende löschen und Rechte vergeben und entziehen kann.

Client Programm starten Hauptfenster Programm beenden mit Server verbinden Verbindung trennen Verbindung trennen neuen Benutzer anlegen anmelden mit Server verbunden abmelden abmelden Video wählen Video zum hochladen auswählen Video wird hochgeladen/ abbrechen angemeldet Video zum sehen wählen Video wird geladen oder ist fertig geladen Video hochladen spulen Benutzerverwaltung aufrufen Benutzer anlegen/ Benutzer löschen/ Rechte ändern/ abbrechen Benutzerverwaltung aufrufen Benutzerverwaltung play pause stop Video abspielen spulen 1-1: Zustandsdiagramm - Client

Abbildung 1.2 stellt ein Zustandsdiagramm dar, welches den Server beschreibt. Wenn der Server gestartet wird wartet er erst einmal auf eingehende Verbindungen. Wenn ein Client eine Verbindung zu dem Server herstellt, wird für die Behandlung der Verbindung ein neuer Thread erstellt und der Server wartet auf weitere Verbindungen. Wenn eine Verbindung getrennt wird, wird der zugehörige Thread gelöscht. Wenn eine Verbindung besteht kann ein neuer Account angelegt werden. Außerdem kann sich der Benutzer authentisieren. Wenn der Benutzer angemeldet ist, kann er Verwaltungsaktionen auf dem Server ausführen, der Server kann ihm Videos streamen und Videos von ihm empfangen. Oder alles zusammen. Funktionen, für die der Benutzer nicht die nötigen Rechte hat, werden nicht ausgeführt.

Server Benutzer führt Verwaltungsfunktion aus Video streamen Benutzer versucht eine Funktion auszuführen, für die er nicht die nötigen Rechte hat Programm starten wartend Programm beenden Benutzer legt neuen Account an Verbindung wird vom Benutzer getrennt/ Verbindung geht verloren Verbindung hergestellt Benutzer verbindet sich mit Server Benutzer meldet sich an Benutzer meldet sich ab Verbindung wird vom Benutzer getrennt/ Verbindung geht verloren Benutzer authentifiziert Benutzer versucht eine Funktion auszuführen, für die er nicht die nötigen Rechte hat Benutzer führt Verwaltungsfunktion aus Benutzer fordert Video an und besitzt die nötigen Rechte Video fertig gestreamt/ abgebrochen Benutzer will Video hoch laden und ist dazu berechtigt Video wurde fertig hoch geloaden/ abgebrochen Benutzer führt Verwaltungsfunktion aus Video streamen und Video empfangen Benutzer fordert Video an und besitzt die nötigen Rechte Video fertig gestreamt/ abgebrochen Benutzer will Video hoch laden und ist dazu berechtigt Video empfangen Video wurde fertig hoch geloaden/ abgebrochen Benutzer führt Verwaltungsfunktion aus Benutzer versucht eine Funktion auszuführen, für die er nicht die nötigen Rechte hat Benutzer versucht eine Funktion auszuführen, für die er nicht die nötigen Rechte hat 1-2: Zustandsdiagramm - Server

2 Analyse der Produktfunktionen 2.1 Analyse von Funktionalität /F100/: Benutzer verwalten Die Funktion Benutzer verwalten dient dazu die Daten eines Benutzers, der in der Datenbank des Servers gespeichert ist, zu verändern. 1 Benutzerdaten werden nach der Authentifizierung von der Benutzerverwaltung empfangen. 2 Neue Benutzerdaten werden in die Datenbank eingetragen. 2.1.1 Grobanalyse Im Aktivitätsdiagramm ist zu sehen, dass sich der Benutzer erst anmelden muss, indem er seine Benutzerkennung eingibt, welche von der Benutzerverwaltung an den Server geschickt wird und dort ausgewertet wird. Ist die Anmeldung fehlgeschlagen kann der Benutzer die Kennung erneut eingeben und es wird eine Fehlermeldung ausgegeben. Andernfalls erhält der Benutzer eine Bestätigung. Nun kann er den Benutzer wählen, dessen Daten geändert werden sollen und die neuen Daten für diesen Benutzer eingeben. Diese Daten werden dann über die Benutzerverwaltung an den Server geschickt und dort in die Datenbank eingetragen. Sollte dies Fehlschlagen wird eine Fehlermeldung ausgegeben. Andernfalls ist der Vorgang erfolgreich abgeschlossen worden.

Benutzer verwalten Benutzer Benutzerverwaltung Server Benutzerkennung eingeben Benutzerkennung senden Benutzerkennung überprüfen Benutzer wählen, dessen Daten geändert werden sollen Fehlermeldung ausgeben Bestätigung [Anmeldung fehlgeschlagen] [Anmeldung erfolgreich] Neue Daten eingeben Daten senden Daten in die Datenbank eintragen Fehlermeldung ausgeben [Daten nicht eingetragen] [Daten erfolgreich eingetragen] 2-1: Aktivitätsdiagramm - Benutzer verwalten (F100) 2.1.2 Feinanalyse Das Sequenzdiagramm zeigt die Aktionen die nötig sind um einen Benutzer zu verwalten mit zeitlichem Ablauf. Zuerst muss der Benutzer authentifiziert werden. Hierzu gibt er seine Benutzerkennung ein. Die Benutzerverwaltung ruft nun die Funktion isuserapproved() auf und schickt die Benutzerkennung an den Server, um sie überprüfen zu lassen. Der Server überprüft die Benutzerkennung, indem er testet, ob der Benutzer existiert und das Passwort mit dem entsprechenden Passwort in der Datenbank übereinstimmt. Nachdem die Benutzerkennung verifiziert wurde, wird dies der Benutzerverwaltung mitgeteilt, welche es dem Benutzer mitteilt. Dieser wählt nun einen Benutzer aus, dessen Daten geändert werden sollen und gibt die neuen Daten ein. Nun ruft die Benutzerverwaltung die Funktion changeuserdata() auf, welche die neuen Daten an den Server sendet. Der Server überprüft die Daten auf Korrektheit und trägt sie danach in die Datenbank ein.

:Benutzerverwaltung :Benutzer Benutzerdaten eingeben isuserapproved() :Server Anmeldung erfolgreich true isloginvalid() Benutzer auswählen neue Daten eingeben changeuserdata() checkuserdata() saveuserdata() 2-2: Sequenzdiagramm - Benutzer verwalten (F100) 2.2 Analyse von Funktionalität /F110/: Videos streamen Mit dieser Funktion wird ein Video vom Server zu einem Client gestreamt. 1 Der Benutzer fordert ein Video an. 2 Es wird geprüft, ob der Benutzer berechtigt ist das Video zu sehen. 3 Das Video wird zum Benutzer gestreamt. 2.2.1 Grobanalyse Das Aktivitätsdiagramm beschreibt den Vorgang. Zuerst fordert der Benutzer ein Video an. Die Anfrage wird von dem Player an den Server gesendet, welcher nun die Authentifizierung des Benutzers abfragt. Der Benutzer wird aufgefordert seine Benutzerkennung einzugeben. Nachdem der Benutzer diese eingegeben hat, wird diese vom Player an den Server geschickt und von diesem überprüft. Sollte die Authentifizierung fehlgeschlagen sein, kann der Benutzer die Eingabe wiederholen. Andernfalls sendet der Server das Video an den Player, welcher es abspielt.

Videos streamen Benutzer Player Server Video anfordern Videoanfrage senden Authentifizierung abfragen Abfrage anzeigen Benutzerkennung eingeben Benutzerkennung senden Benutzerkennung überprüfen Fehlermeldung ausgeben [Anmeldung fehlgeschlagen] [Anmeldung erfolgreich] Video anzeigen Video streamen 2-3: Aktivitätsdiagramm - Videos streamen (F110) 2.2.2 Feinanalyse Im Sequenzdiagramm ist zu sehen, dass der Benutzer zuerst das Video auswählt und es danach anfordert. Die Anforderung wird mittels getvideo() vom Player an den Server gesendet. Dieser fragt mittels requestlogin() die Benutzerkennung des Benutzers ab. Dieser Bekommt vom Player eine Mittelung mittels der Funktion showrequest() angezeigt. Nun gibt der Benutzer seine Benutzerkennung ein, welche vom Player mit Hilfe der Methode isuserapproved() an den Server übertragen wird. Dieser prüft die Benutzerkennung mit der isloginvalid()-funktion. Nachdem der Server den Benutzer authentifiziert hat überträgt er das Video durch streamvideo() an den Player. Dieser dekodiert dann mittels decodevideo() und zeigt es an, indem er die Funktion playvideo() aufruft.

:Benutzer :Player :Server Video auswählen Video anfordern getvideo() showrequest() Benutzerdaten eingeben requestlogin() isuserapproved() isloginvalid() streamvideo() decodevideo() playvideo() 2-4: Sequenzdiagramm - Videos streamen (F110) 2.3 Analyse von Funktionalität /F120/: Verschlüsselte Videos empfangen und speichern Diese Funktion dient dem Empfangen und Speichern eines verschlüsselten Videos auf dem Server und der Eintragung des Videos in der Datenbank. 1 Der Uploader wird authentifiziert. 2 Das Video wird hochgeladen. 3 Das Video es auf dem Server gespeichert, in die Datenbank eingetragen und es werden Default-Rechte vergeben. 2.3.1 Grobanalyse Zuerst wird, wie im Aktivitätsdiagramm dargestellt, der Benutzer angemeldet. Dies geschieht indem er seine Benutzerkennung eingibt, welche vom Player an den Server geschickt wird und dort ausgewertet wird. Ist die Anmeldung fehlgeschlagen kann der Benutzer die Kennung erneut eingeben und es wird eine Fehlermeldung ausgegeben. Andernfalls erhält der Benutzer eine Bestätigung. Nun wählt der Benutzer das Video aus und lädt es hoch. Hierzu sendet der Player das Video an den Server, welcher das Video speichert und in die Datenbank einträgt. Kann das Video nicht gespeichert werden oder nicht in die Datenbank eingetragen werden wird eine Fehlermeldung ausgegeben. Andernfalls wurde der Vorgang erfolgreich abgeschlossen.

Verschlüsselte Videos empfangen und speichern Benutzer Uploader Server Benutzerkennung eingeben Benutzerkennung senden Benutzerkennung überprüfen Video wählen, das hochgeladen werden soll Fehlermeldung ausgeben Bestätigung [Anmeldung fehlgeschlagen] [Anmeldung erfolgreich] Video hochladen Video senden Fehlermeldung ausgeben [Video nicht gespeichert oder nicht eingetragen] Video speichern und in die Datenbank eintragen [Video erfolgreich gespeichert und eingetragen] 2-5: Aktivitätsdiagramm - Verschlüsselte Videos empfangen und speichern (F120) 2.3.2 Feinanalyse Bevor der Benutzer ein Video hochladen kann muss er wie im Sequenzdiagramm dargestellt authentifiziert werden. Für das Authentifizieren gibt der Benutzer seine Benutzerkennung ein. Der Uploader ruft nun die Funktion isuserapproved() auf und schickt die Benutzerkennung an den Server, um sie überprüfen zu lassen. Der Server überprüft die Benutzerkennung, indem er testet, ob der Benutzer existiert und das Passwort mit dem entsprechenden Passwort in der Datenbank übereinstimmt. Nachdem die Benutzerkennung verifiziert wurde, wird dies dem Uploader mitgeteilt, welcher es dem Benutzer mitteilt. Nun wählt der Benutzer das Video, welches er hochladen möchte aus. Der Uploader ruft die Funktion uploadvideo() zum senden des Videos an den Server auf. Dieser speichert das Video auf der Festplatte mittels savevideo() und trägt es dann über die Funktion entervideoindatabase() in die Datenbank ein.

:Benutzer Benutzerdaten eingeben :Uploader isuserapproved() :Server Anmeldung erfolgreich true isloginvalid() Video wählen uploadvideo() savevideo() entervideoindatabase() 2-6: Sequenzdiagramm - Verschlüsselte Videos empfangen und speichern (F120) 2.4 Analyse von Funktionalität /F130/: Unverschlüsselte Videos empfangen und speichern Mit Hilfe dieser Funktion wird ein unverschlüsseltes Video empfangen auf dem Server gespeichert und in die Datenbank eingetragen. 1 Das Video wird hochgeladen. 2 Es wird verschlüsselt. 3 Das Video es auf dem Server gespeichert, in die Datenbank eingetragen und es werden Default-Rechte vergeben. 2.4.1 Grobanalyse Wie im Aktivitätsdiagramm zu sehen ist, muss der Benutzer zuerst das Video auswählen, welches er hochladen möchte und den Befehl zum hochladen ausführen. Nun wird das Video vom Uploader an den Server übertragen, auf dem es verschlüsselt und gespeichert wird. Sollte das Video nicht gespeichert werden können oder nicht in die Datenbank eingetragen werden können wird eine Fehlermeldung ausgegeben. Andernfalls war der Upload erfolgreich.

Unverschlüsselte Videos empfangen und speichern Benutzer Uploader Server Video wählen, das hochgeladen werden soll Video hochladen Video senden Video verschlüsseln Fehlermeldung ausgeben Video speichern und in die Datenbank eintragen [Video nicht gespeichert oder nicht eingetragen] [Video erfolgreich gespeichert und eingetragen] 2-7: Aktivitätsdiagramm - Unverschlüsselte Videos empfangen und speichern (F130) 2.4.2 Feinanalyse Im Sequenzdiagramm wird dargestellt, dass der Benutzer zuerst das Video auswählen muss. Danach wird es mit Hilfe der Funktion uploadvideo() vom Player an den Server gesendet. Hier wird das Video mittels encodevideo() verschlüsselt, dann durch savevideo() gespeichert und letztendlich mit entervideoindatabase() in die Datenbank eingetragen. :Uploader :Server :Benutzer Video wählen uploadvideo() encodevideo() savevideo() entervideoindatabase() 2-8: Sequenzdiagramm - Unverschlüsselte Videos empfangen und speichern (F130)

2.5 Analyse von Funktionalität /F140/: Videos löschen Durch diese Funktion kann ein Video vom Server gelöscht werden und aus der Datenbank entfernt werden. 1 Benutzer wird authentifiziert. 2 Benutzer führt über den Uploader den Befehl zum Löschen eines Videos aus. 3 Video wird vom Server gelöscht und aus der Datenbank entfernt. 2.5.1 Grobanalyse Im Aktivitätsdiagramm ist zu erkennen, dass sich der Benutzer erst anmelden muss, indem er seine Benutzerkennung eingibt, welche vom Uploader an den Server geschickt wird und dort ausgewertet wird. Ist die Anmeldung fehlgeschlagen kann der Benutzer die Kennung erneut eingeben und es wird eine Fehlermeldung ausgegeben. Andernfalls erhält der Benutzer eine Bestätigung. Nun wählt der Benutzer das Video, welches gelöscht werden soll, aus und gibt den Befehl zum löschen. Dieser Befehl wird vom Uploader an den Server gesendet, welcher daraufhin das Video löscht und es aus der Datenbank entfernt. Sollte dies Fehlgeschlagen sein wird eine Fehlermeldung ausgegeben, sonst ist der Vorgang erfolgreich abgeschlossen. Videos löschen Benutzer Uploader Server Benutzerkennung eingeben Benutzerkennung senden Benutzerkennung überprüfen Video wählen, das gelöscht werden soll Fehlermeldung ausgeben Bestätigung [Anmeldung fehlgeschlagen] [Anmeldung erfolgreich] Video löschen Befehl senden Fehlermeldung ausgeben [Video nicht gelöscht oder nicht aus der DB entfernt] Video löschen und aus der Datenbank entfernen [Video erfolgreich gelöscht und aus der DB entfernt] 2-9: Aktivitätsdiagramm - Videos löschen (F140)

2.5.2 Feinanalyse Wie man im Sequenzdiagramm erkennen kann muss sich der Benutzer zuerst authentifizieren. Für das Authentifizieren gibt der Benutzer seine Benutzerkennung ein. Der Uploader ruft nun die Funktion isuserapproved() auf und schickt die Benutzerkennung an den Server, um sie überprüfen zu lassen. Der Server überprüft die Benutzerkennung, indem er testet, ob der Benutzer existiert und das Passwort mit dem entsprechenden Passwort in der Datenbank übereinstimmt. Nachdem die Benutzerkennung verifiziert wurde, wird dies dem Uploader mitgeteilt, welcher es dem Benutzer mitteilt. Nun wählt der Benutzer das Video, welches er löschen möchte aus. Der Uploader ruft die Funktion deletevideo() zum löschen des Videos auf. Daraufhin löscht der Server das Video von der Festplatte mittels removevideo() und entfernt es dann mit der Funktion removevideofromdatabase() aus der Datenbank. :Benutzer Benutzerdaten eingeben :Uploader isuserapproved() :Server Anmeldung erfolgreich true isloginvalid() Video wählen deletevideo() removevideo() removevideofromdatabase() 2-10: Sequenzdiagramm - Videos löschen (F140) 2.6 Analyse von Funktionalität /F200/: Benutzer anlegen Diese Funktion beschreibt das Anlegen eines neuen Benutzers mit der Benutzerverwaltung. 1. Benutzer wird beim Server authentisiert. 2. Daten des neuen Benutzers eingeben. 3. Die Daten zum Server schicken und in der Datenbank speichern. 2.6.1 Grobanalyse Wie im Aktivitätsdiagramm zu sehen, muss sich der Anwender vor dem Anlegen eines neuen Benutzers erst beim Server authentisieren. Dazu gibt er zuerst seine Login-Daten an, die

daraufhin von der Benutzerverwaltung an den Server gesendet werden. Dieser überprüft zunächst die erhaltenen Daten. Schlägt die Anmeldung fehl, zum Beispiel weil ein falsches Passwort angegeben wurde, gibt die Benutzerverwaltung eine Fehlermeldung aus, ansonsten kann der Vorgang fortgesetzt werden. Nachdem der Anwender die Daten des neuen Benutzers eingegeben hat, sendet die Benutzerverwaltung diese an den Server, der sie in seiner Datenbank speichert. 2-11: Aktivitätsdiagramm - Benutzer anlegen (F200) 2.6.2 Feinanalyse Das Sequenzdiagramm zeigt, was beim Anlegen eines neuen Benutzers im Einzelnen passiert. Nachdem der Anwender seine Login-Daten eingegeben hat schickt die Benutzerverwaltung die Anfrage isuserapproved() an den Server, um zu ermitteln, ob der Benutzer existiert und das Passwort gültig ist. Nachdem dieser das durch einen Aufruf von isloginvalid() verifiziert hat, bestätigt er dies der Benutzerverwaltung. Diese gibt die Bestätigung an den Anwender weiter, woraufhin dieser den Vorgang fortsetzen kann. Der Anwender gibt die Daten des neuen Benutzers an, die dann durch den Aufruf createuser() dem Server mitgeteilt werden. Nachdem der Server die Daten durch checknewuser() überprüft hat (beispielsweise darauf, ob der Benutzername nicht schon verwendet wird) und diese akzeptiert hat, schreibt er sie mit writeuserdata() in die Datenbank.

2-12: Sequenzdiagramm - Benutzer anlegen (F200) 2.7 Analyse von Funktionalität /F210/: Benutzer löschen Diese Funktion beschreibt das Löschen eines Benutzers mit der Benutzerverwaltung. 1. Benutzer wird am Server authentisiert. 2. Benutzer auswählen, der gelöscht werden soll. 3. Den Benutzer aus der Datenbank löschen. 2.7.1 Grobanalyse Zum Löschen eines Benutzers muss sich der Anwender wie im Aktivitätsdiagramm zu sehen erst beim Server authentisieren. Dazu gibt er zuerst seine Login-Daten an, die daraufhin von der Benutzerverwaltung an den Server gesendet werden. Dieser überprüft zunächst die erhaltenen Daten. Schlägt die Anmeldung fehl, zum Beispiel weil ein falsches Passwort angegeben wurde, gibt die Benutzerverwaltung eine Fehlermeldung aus, ansonsten kann der Vorgang fortgesetzt werden. Der Anwender wählt den zu löschenden Benutzer aus. Die Benutzerverwaltung schickt die Informationen zum Server, der den Löschvorgang vornimmt.

2-13: Aktivitätsdiagramm - Benutzer löschen (F210) 2.7.2 Feinanalyse Die einzelnen Schritte beim Löschen eines Benutzers sind, wie im Sequenzdiagramm beschrieben, die folgenden: Nachdem der Anwender seine Login-Daten eingegeben hat schickt die Benutzerverwaltung die Anfrage isuserapproved() an den Server, um zu ermitteln, ob der Benutzer existiert und das Passwort gültig ist. Nachdem dieser das durch einen Aufruf von isloginvalid() verifiziert hat, bestätigt er dies der Benutzerverwaltung. Diese gibt die Bestätigung an den Anwender weiter, woraufhin dieser den Vorgang fortsetzen kann. Nachdem der zu löschende Benutzer gewählt wurde, benutzt die Benutzerverwaltung removeuser() um den Server anzuweisen, den Löschvorgang durchzuführen. Der Server erledigt dies durch einen Aufruf von deleteuser().

2-14: Sequenzdiagramm - Benutzer löschen (F210) 2.8 Analyse von Funktionalität /F220/: Benutzer bearbeiten Diese Funktion beschreibt das Bearbeiten eines existierenden Benutzers mit der Benutzerverwaltung. 1. Benutzer wird am Server authentisiert. 2. Benutzer auswählen, dessen Daten geändert werden sollen. 3. Die neuen Daten des Benutzers eingeben. 4. Die alten Daten des Benutzers mit den neuen überschreiben. 2.8.1 Grobanalyse Wie im Aktivitätsdiagramm zu sehen, muss sich der Anwender vor dem Bearbeiten eines Benutzers erst beim Server authentisieren. Dazu gibt er zuerst seine Login-Daten an, die daraufhin von der Benutzerverwaltung an den Server gesendet werden. Dieser überprüft zunächst die erhaltenen Daten. Schlägt die Anmeldung fehl, zum Beispiel weil ein falsches Passwort angegeben wurde, gibt die Benutzerverwaltung eine Fehlermeldung aus, ansonsten kann der Vorgang fortgesetzt werden. Die neuen Benutzerdaten werden durch den Anwender eingegeben und von der Benutzerverwaltung an den Server geschickt. Dieser überschreibt darauf die bestehenden Daten in der Datenbank mit den neuen Daten.

2-15: Aktivitätsdiagramm - Benutzer bearbeiten (F220) 2.8.2 Feinanalyse Das Sequenzdiagramm zeigt, was beim Bearbeiten eines Benutzers im Einzelnen passiert. Nachdem der Anwender seine Login-Daten eingegeben hat schickt die Benutzerverwaltung die Anfrage isuserapproved() an den Server, um zu ermitteln, ob der Benutzer existiert und das Passwort gültig ist. Nachdem dieser das durch einen Aufruf von isloginvalid() verifiziert hat, bestätigt er dies der Benutzerverwaltung. Diese gibt die Bestätigung an den Anwender weiter, woraufhin dieser den Vorgang fortsetzen kann. Durch einen Aufruf von edituser() werden die zuvor vom Benutzer eingegebenen Daten an den Server gesendet, der daraufhin writeuserdata() aufruft um die neuen Daten in die Datenbank zu schreiben.

2-16: Sequenzdiagramm - Benutzer bearbeiten (F220) 2.9 Analyse von Funktionalität /F230/: Rechte verwalten Diese Funktion beschreibt das Gewähren und Zurückziehen von Rechten durch die Benutzerverwaltung. 1. Benutzer wird am Server authentisiert. 2. Benutzer, der neue Rechte erhalten soll, auswählen. 3. Die gewünschten Rechte auswählen und zuweisen. 4. Die neuen Rechte in der Datenbank speichern. 2.9.1 Grobanalyse Zuerst muss der Anwender sich beim Bearbeiten der Rechte wie im Aktivitätsdiagramm gezeigt beim Server authentisieren. Dazu gibt er zuerst seine Login-Daten an, die daraufhin von der Benutzerverwaltung an den Server gesendet werden. Dieser überprüft zunächst die erhaltenen Daten. Schlägt die Anmeldung fehl, zum Beispiel weil ein falsches Passwort angegeben wurde, gibt die Benutzerverwaltung eine Fehlermeldung aus, ansonsten kann der Vorgang fortgesetzt werden. Der Anwender wählt den Benutzer, dessen Rechte geändert werden sollen und gibt die neuen Rechte an. Diese werden von der Benutzerverwaltung an den Server gesendet und dort in der Datenbank aktualisiert.

2-17: Aktivitätsdiagramm - Rechte verwalten (F230) 2.9.2 Feinanalyse Beim Bearbeiten der Rechte laufen wie im Sequenzdiagramm gezeigt die folgenden Schritte ab: Nachdem der Anwender seine Login-Daten eingegeben hat schickt die Benutzerverwaltung die Anfrage isuserapproved() an den Server, um zu ermitteln, ob der Benutzer existiert und das Passwort gültig ist. Nachdem dieser das durch einen Aufruf von isloginvalid() verifiziert hat, bestätigt er dies der Benutzerverwaltung. Diese gibt die Bestätigung an den Anwender weiter, woraufhin dieser den Vorgang fortsetzen kann. Die vom Anwender angegebenen neuen Rechte werden dem Server durch den Aufruf von changeuserrights() durch die Benutzerverwaltung mitgeteilt und mittels writeuserrights() in die Datenbank geschrieben.

2-18: Sequenzdiagramm - Rechte verwalten (F230) 2.10 Analyse von Funktionalität /F250/: Passwort ändern Diese Funktion beschreibt die Änderung eines Passworts mit der Benutzerverwaltung. 1. Benutzer wird am Server authentisiert. 2. Benutzer auswählen, dessen Passwort geändert werden soll. 3. Das neue Passwort angeben. 4. Das alte Passwort in der Datenbank mit dem neuen überschreiben. 2.10.1 Grobanalyse Wie im Aktivitätsdiagramm zu sehen, muss sich der Anwender vor dem Ändern eines Passworts erst beim Server authentisieren. Dazu gibt er zuerst seine Login-Daten an, die daraufhin von der Benutzerverwaltung an den Server gesendet werden. Dieser überprüft zunächst die erhaltenen Daten. Schlägt die Anmeldung fehl, zum Beispiel weil ein falsches Passwort angegeben wurde, gibt die Benutzerverwaltung eine Fehlermeldung aus, ansonsten kann der Vorgang fortgesetzt werden. Nachdem der Anwender gewählt hat, wessen Passwort geändert werden soll, gibt er das neue Passwort ein. Dieses wird von der Benutzerverwaltung an den Server gesendet und dort in die Datenbank geschrieben.

2-19: Aktivitätsdiagramm - Passwort ändern (F250) 2.10.2 Feinanalyse Bevor ein Passwort geändert werden kann, muss sich der Anwender wie im Sequenzdiagramm gezeigt beim Server authentisieren. Nachdem der Anwender seine Login- Daten eingegeben hat schickt die Benutzerverwaltung die Anfrage isuserapproved() an den Server, um zu ermitteln, ob der Benutzer existiert und das Passwort gültig ist. Nachdem dieser das durch einen Aufruf von isloginvalid() verifiziert hat, bestätigt er dies der Benutzerverwaltung. Diese gibt die Bestätigung an den Anwender weiter, woraufhin dieser den Vorgang fortsetzen kann. Der Anwender gibt das neue Passwort an, woraufhin mittels changepassword() eine Anfrage der Benutzerverwaltung an den Server geschickt wird. Dieser schreibt dann das neue Passwort durch den Aufruf writeuserdata() in die Datenbank.

2-20: Sequenzdiagramm - Passwort ändern (F250) 2.11 Analyse von Funktionalität /F260/: Passwort zurücksetzen Diese Funktion beschreibt das Zurücksetzen eines Passworts. 1. Benutzer führt Funktion zum Passwort zurücksetzen aus. 2. Ein neues Passwort wird generiert. 3. Das Passwort wird in die Datenbank geschrieben und dem Benutzer zugeschickt. 2.11.1 Grobanalyse Wie im Aktivitätsdiagramm beschrieben wird durch den Anwender der Benutzer gewählt, dessen Passwort zurückgesetzt werden soll. Darauf sendet die Benutzerverwaltung eine entsprechende Anfrage an den Server. Nachdem dieser ein neues Passwort generiert hat, wird es in die Datenbank geschrieben und dem zugehörigen Benutzer zugesendet.

2-21: Aktivitätsdiagramm - Passwort zurücksetzen (F260) 2.11.2 Feinanalyse Das Sequenzdiagramm zeigt die einzelnen Schritte beim Zurücksetzen eines Passworts. Auf die Auswahl des Benutzers, dessen Passwort zurückgesetzt werden soll, folgt der Aufruf resetpassword() an den Server. Dieser benutzt die Aufrufe writeuserdata() und sendpassword(), um das neue Passwort zu speichern und es dem zugehörigen Benutzer per E-Mail zu schicken. 2-22: Sequenzdiagramm - Passwort zurücksetzen (F260)

2.12 Analyse von Funktionalität /F300/: Videos abspielen Diese Funktion dient dem herunterladen, entschlüsseln und abspielen eines Videos vom Server. 1 Benutzer authentisieren. 2 Video wird ausgewählt. 3 Es wird durch den Server überprüft, ob der Benutzer das Video sehen darf. 4 Das Video wird vom Server an den Player übertragen. 5 Der Player entschlüsselt das Video. 6 Das Video wird im Player abgespielt. 2.12.1 Grobanalyse Zuerst wird, wie im Aktivitätsdiagramm dargestellt, der Benutzer angemeldet. Dies geschieht indem er seine Benutzerkennung eingibt, welche vom Player an den Server geschickt wird und dort ausgewertet wird. Ist die Anmeldung fehlgeschlagen kann der Benutzer die Kennung erneut eingeben und es wird eine Fehlermeldung ausgegeben. Andernfalls erhält der Benutzer eine Bestätigung. Nun wählt der Benutzer ein Video aus. Die Anfrage wird vom Player an den Server geschickt, welcher prüft, ob der Benutzer berechtigt ist das Video zu sehen. Ist der Benutzer nicht berechtigt wird eine Fehlermeldung ausgegeben. Wenn der Benutzer berechtigt ist wird das Video an den Player geschickt, welcher das Video entschlüsselt und abspielt.

Videos abspielen Benutzer Player Server Benutzerkennung eingeben Benutzerkennung senden Benutzerkennung überprüfen Fehlermeldung ausgeben [Anmeldung fehlgeschlagen] [Anmeldung erfolgreich] Video auswählen Bestätigung Videoanfrage senden Prüfen, ob der Benutzer das Video sehen darf Fehlermeldung ausgeben [Benutzer darf Video nicht sehen] [Benutzer darf Video sehen] Video entschlüsseln Video übertragen Video anzeigen 2-23: Aktivitätsdiagramm - Videos abspielen (F300) 2.12.2 Feinanalyse Im Sequenzdiagramm ist zu erkennen, dass der Benutzer zuerst seine Benutzerkennung eingeben muss. Der Player ruft nun die Funktion isuserapproved() auf und schickt die Benutzerkennung an den Server, um sie überprüfen zu lassen. Der Server überprüft mit der Funktion isloginvalid() die Benutzerkennung, indem er testet, ob der Benutzer existiert und das Passwort mit dem entsprechenden Passwort in der Datenbank übereinstimmt. Nachdem die Benutzerkennung verifiziert wurde, wird dies der Benutzerverwaltung mitgeteilt, welche es dem Benutzer mitteilt. Der Benutzer wählt nun das Video aus, das er sehen will. Nun wird vom Player die Funktion getvideo() aufgerufen, die das Video vom Server anfordert. Der Server testet nun mit checkpermission(), ob der Benutzer autorisiert ist, das Video zu sehen. Danach wird das

Video mit streamvideo() zum Player gesendet, welcher das Video mit Hilfe von decodevideo() dekodiert und es mittels playvideo() abspielt. :Benutzer Benutzerdaten eingeben :Player isuserapproved() :Server Anmeldung erfolgreich true isloginvalid() Video auswählen getvideo() streamvideo() checkpermission() decodevideo() playvideo() 2-24: Sequenzdiagramm - Videos abspielen (F300) 2.13 Analyse von Funktionalität /F400/: Videos hochladen Diese Funktion beschreibt das Hochladen von Videos mit dem Uploader. 1. Benutzer authentifizieren. 2. Video wird ausgewählt. 3. Es wird geprüft, ob der Benutzer die Rechte zum Hochladen des Videos hat. 4. Das Video wird verschlüsselt. 5. Senden des Videos an den Server, welcher es speichert. 2.13.1 Grobanalyse Wie im Aktivitätsdiagramm zu sehen, muss sich der Anwender vor dem Hochladen eines Videos erst beim Server authentisieren. Dazu gibt er zuerst seine Login-Daten an, die daraufhin von dem Uploader an den Server gesendet werden. Dieser überprüft zunächst die erhaltenen Daten. Schlägt die Anmeldung fehl, zum Beispiel weil ein falsches Passwort angegeben wurde, gibt der Uploader eine Fehlermeldung aus, ansonsten kann der Vorgang fortgesetzt werden. Der Anwender wählt ein lokal gespeichertes Video aus, dass an den Server gesendet werden soll. Nun schickt der Uploader eine Anfrage an den Server, der überprüft, ob der Benutzer die nötigen Rechte besitzt. Ist dies nicht der Fall wird eine Fehlermeldung

ausgegeben, ansonsten wird das Video vom Uploader verschlüsselt und zum Server geladen. Dieser speichert das Video und trägt es in der Datenbank ein. 2-25: Aktivitätsdiagramm - Videos hochladen (F400) 2.13.2 Feinanalyse Das Sequenzdiagramm zeigt, was beim Hochladen eines Videos im Einzelnen passiert. Nachdem der Anwender seine Login-Daten eingegeben hat schickt der Uploader die Anfrage isuserapproved() an den Server, um zu ermitteln, ob der Benutzer existiert und das Passwort gültig ist. Nachdem dieser das durch einen Aufruf von isloginvalid() verifiziert hat, bestätigt er dies dem Uploader. Dieser gibt die Bestätigung an den Anwender weiter, woraufhin dieser den Vorgang fortsetzen kann. Wenn der Anwender ein lokal gepeichertes Video zum Hochladen ausgewählt hat fragt der Uploader mittels mayuploadfile() beim Server nach, ob der Benutzer die nötigen Rechte besitzt. Der Server überprüft dies mit checkuserrights() und bestätigt dies im Erfolgsfall. Durch einen Aufruf von encryptfile() wird das Video von dem Uploader verschlüsselt und mit

uploadencryptedfile() an den Server gesendet. Daraufhin benutzt dieser savefile() um das Video zu speichern und es in die Datenbank einzutragen. 2-26: Sequenzdiagramm - Vidoes hochladen (F400) 2.14 Analyse von Funktionalität /F410/: Videos löschen Diese Funktion beschreibt das Löschen eines auf dem Server gespeicherten Videos mit dem Uploader. 1. Benutzer authentisieren. 2. Benutzer führt den Befehl zum Löschen eines Videos aus. 3. Video wird vom Server gelöscht und aus der Datenbank entfernt. 2.14.1 Grobanalyse Das Aktivitätsdiagramm zeigt, dass sich der Anwender vor dem Löschen eines Videos erst beim Server authentisieren muss. Dazu gibt er zuerst seine Login-Daten an, die daraufhin von dem Uploader an den Server gesendet werden. Dieser überprüft zunächst die erhaltenen Daten. Schlägt die Anmeldung fehl, zum Beispiel weil ein falsches Passwort

angegeben wurde, gibt der Uploader eine Fehlermeldung aus, ansonsten kann der Vorgang fortgesetzt werden. Auf die Auswahl eines zu löschenden Videos auf dem Server folgt die Anfrage durch den Uploader. Der Server überprüft die Rechte des Benutzers. Hat der Benutzer die für das Löschen des Videos benötigten Rechte, entfernt der Server das Video. Sonst wird eine Fehlermeldung ausgegeben. 2-27: Aktivitätsdiagramm - Videos löschen (F410) 2.14.2 Feinanalyse Wie im Sequenzdiagramm zu sehen ist, werden beim Löschen eines Videos folgende Schritte ausgeführt: Nachdem der Anwender seine Login-Daten eingegeben hat schickt der Uploader die Anfrage isuserapproved() an den Server, um zu ermitteln, ob der Benutzer existiert und das Passwort gültig ist. Nachdem dieser das durch einen Aufruf von isloginvalid() verifiziert hat, bestätigt er dies dem Uploader. Dieser gibt die Bestätigung an den Anwender weiter, woraufhin dieser den Vorgang fortsetzen kann.

Nach der Auswahl vom Server zu löschenden Videos durch den Anwender ruft der Uploader deletefile() auf, um den Server aufzufordern, dass Video zu entfernen. Dieser überprüft die Rechte des Benutzers mittels checkuserrights() und löscht im Erfolgsfall das Video durch einen Aufruf von removevideo(). 2-28: Sequenzdiagramm - Videos löschen (F410)

3 Resultierende Softwarearchitektur 3.1 Komponentenspezifikation 3-1: Komponentendiagramm Abbildung 3.1 zeigt die Komponenten mit ihren Schnittstellen. Die Komponenten werden im Unterkapitel 3.3, die Schnittstellen im Unterkapitel 3.2 erläutert. Die Komponenten Kamera und Video Player können über die Schnittstelle upload mit der Komponente Server kommunizieren und Videos übertragen. Die Komponenten Uploader und Video Player authentisieren sich über die Schnittstelle userinformation bei der Komponente Server. Die Komponente Server wiederum kann über diese Schnittstelle Änderungen in der Komponente Benutzerverwaltung vornehmen. Über die Schnittstelle download können Videodateien von der Komponente Server zur Komponente Video Player gestreamt werden. 3.2 Schnittstellenspezifikation /S10/: upload Schnittstelle /S20/: download /S30/: userinformation Operation Aufgabenbeschreibung Beschreibung uploadfile() Speichern eines unverschlüsselten Videos auf dem Server uploadencryptedfile() Speichern eines verschlüsselten Videos auf dem Server deletefile() Löschen eines auf dem Server befindlichen Videos streamvideo() Streamen eines unverschlüsselten Videos streamencryptedvideo() Streamen eines verschlüsselten Videos createuser() Anlegen eines neuen Benutzers removeuser() Löschen eines existierenden Benutzers edituser() Ändern eines existierenden Benutzers changeuserrights() Ändern von Benutzerrechten changepassword() Ändern eines Passwortes resetpassword() Zurücksetzen eines Passwortes

3.3 Protokolle für die Benutzung der Komponenten 3.3.1 Kamera Die Kamerakomponente (Abbildung 3.2) überwacht die Umgebung und überträgt Videos auf den Server. 3-2: Kamera-Komponente 3.3.2 Uploader Die Uploader-Komponente (Abbildung 3.3) erlaubt den Benutzern, Videos hoch zu laden oder zu löschen. Nach dem Erhalt der Anforderung, werden die Rechte des Benutzers überprüft. Dieses Überprüfen der Rechte geschieht auch an anderer Stelle und kann daher wieder verwendet werden. 3-3: Uploader-Komponente

3.3.3 Server Der Server (Abbildung 3.4) empfängt Videos von der Uploadschnittstelle, Daten und Anweisungen zur Verwaltung sowie Anfragen, Videos zum Benutzer zu streamen. 3-4: Server-Komponente 3.3.4 Benutzerverwaltung Die Benuzterverwaltungs-Komponente (Abbildung 3.5) sendet Anweisungen zur Verwaltung der Benutzer zum Server, wo die Rechte des Benutzers überprüft werden. Dann werden die gewünschten Aktionen entweder ausgeführt und eine Erfolgsmeldung zurück gegeben, oder der Zugriff mangels ausreichender Rechte verwehrt und eine Fehlermeldung zurück gegeben. 3-5: Benutzerverwaltungs-Komponente

3.3.5 Videoplayer Die Player-Komponente (Abbildung 3.6) fordert Videos vom Server an, empfängt die Datenströme von Server und spielt diese dann, nach vorangegangener Entschlüsselung, ab. Wenn der Benutzer nicht genügend Rechte hat um ein Video anzusehen kann es nicht herunter geladen werden, in dem Fall wird eine Fehlermeldung ausgegeben. 3-6: Player-Komponente

4 Verteilungsentwurf 4-1: Verteilungsdiagramm Bei dem zu implementierenden System handelt es sich, wie die Abbildung zeigt, um zwei Anwendungen, die über ein Netzwerk (LAN/WAN) miteinander kommunizieren. Der Server ist das zentrale Element im System und stellt den Clients die verschiedenen Dienste des Systems zur Verfügung. Die Clients verbinden sich mit dem Server und nehmen diese Dienste in Anspruch. Dabei wird die Server-Komponenten Datenbank (für Benutzerverwaltung und Videoverwaltung) direkt von der Client-Komponente Datenverwaltung, die Server- Komponente Stream-Server (für das Streamen der verschlüsselten Videos zum Client) direkt von der Client-Komponente Player und die Server-Komponente File-Server (für den Upload der Videos) direkt von der Client-Komponente Uploader angesprochen. Die Komponente Ver- und Entschlüsselung wird bei beiden Anwendungen intern verwendet und kann von außen nicht direkt angesprochen werden. Der spätere Einsatz einer Kamera, die bei Bewegung Videos auf dem Server speichern soll, wird im vorliegenden Diagramm durch das Device Kamera beschrieben.