Vorlesung 5: Wintersemester 2018/2019 h_da, Lehrbeauftragter
Teil 1: Themenübersicht der Vorlesung Hard- und Software Hardware: CPU, Speicher, Bus, I/O,... Software: System-, Unterstützungs-, Anwendungssoftware Quellcode und Entwicklerdokumentation Programmiersprachen, Dokumentation Phasen der Softwareentwicklung, Software-Entwicklungsmethoden Netzwerke und Internet Geschichte, Netzwerk-Strukturen Protokolle und Technologien, Standards, Cloud Techniken der Datenübertragung Sockets, LAN vs. WAN, VPN Digitalisierung von Inhalten und elektronische Übertragung Dateiformate, Kompression, Backups, Virtuelle Maschinen 5-2
Daten und Dateien Daten letztendlich sind Daten eine Reihenfolge von 0 und 1, die einen entsprechenden Inhalt darstellen grob wird unterschieden zwischen: Binärdaten: die Reihenfolge von 0 und 1 hat eine spezielle Semantik für einen speziellen Anwendungsfall Textdaten: die Reihenfolge von 0 und 1 stellt Zeichen dar, die anwendungsunabhängig dargestellt werden können, aber die Zeichen haben normalerweise auch eine spezielle Semantik für einen speziellen Anwendungsfall Dateien Daten werden in Container zusammengefasst, damit sie einfacher gespeichert und geladen werden können - diese werden als Dateien bezeichnet oft gibt die Endung einer Datei an, von welchem Typ die Daten sind z.b. mp3, doc, xls, txt, html, png 5-3
Dateisysteme damit Dateien in einem Speicher abgelegt und von dort wieder gelesen werden können, muss der Speicher eine spezielle Struktur haben, um die Dateien zu adressieren (z.b. über den Namen) eine solche Speicher-Struktur für Dateien wird als Dateisystem bezeichnet es gibt viele verschiedene Dateisysteme, die für spezielle Anwendungen optimiert sind (z.b. für sehr große Dateien, für schnelles Lesen, für schnelles Schreiben, für wenig Speicherverbrauch, ) gängige Dateisysteme: NTFS New Technology File System (gängig auf Windows) ext4 fourth extended file sytem (gängig auf Linux) HFS+ - Hierarchical File System Plus (gängig auf Mac) FAT File Allocation Table (kompatibel zu vielen Betriebssystemen) 5-4
Medienformate für spezielle Typen von Daten gibt es verschiedene Medienformate hier sind einige beispielhaft aufgeführt: Video MPEG Motion Picture Experts Group (*.mpg, *.mpeg) AVI Audio Video Interleave (*.avi) WMV Windows Media Video (*.wmv) Audio MP3 MPEG Audio Layer 3 (*.mp3) WAVE (*.wav) Textverarbeitung Word Document (*.doc) OpenDocument-Text (*.odt) 5-5
Medienformate im Internet Media-Types verwaltet von der IANA: http://www.iana.org/assignments/media-types/media-types.xhtml unterteilt in 9 Kategorien: application, audio, example, image, message, model, multipart, text, video wird im HTTP-Header, Mail-Header etc. mitgeschickt, damit das verarbeitende Programm (z.b. der Webbrowser) mitgeteilt bekommt, was für Daten geschickt werden Syntax: Kategorie/Typ Beispiele PNG-Grafiken: image/png HTML-Seiten: text/html 5-6
Speicherformate Daten sind immer nur Nummern, die aber je nach Anwendung eine spezielle Semantik haben für Textdaten werden Zeichencodes gespeichert, bei denen jeder Code einem Zeichen zugeordnet ist z.b. ASCII-Zeichensatz für Bild- und Video-Daten werden für Pixel (Bildpunkte) oder andere Objekte in einem Bild die Farbwerte gespeichert z.b. RGB für Bilder, die am Bildschirm angezeigt werden z.b. CMYK für Bilder, die gedruckt werden 5-7
druckbare Zeichen im ASCII-Zeichensatz 5-8
RGB-Farbwerte Farbe wird aus 3 Farbwerten gemischt, wobei jeder Wert die Lichthelligkeit der Farbe angibt R = rot G = grün B = blau normalerweise Werte von 0 bis 255 (1 Byte) pro Farbe (0,0,0) = Hexadezimal = (0,0,0) #000000 (255,0,0) = Hexadezimal = (FF,0,0) #FF0000 (0,0,255) = Hexadezimal = (0,0,FF) #0000FF (255,255,0) = Hexadezimal = (FF,FF,0) #FFFF00 5-9
Verschiedene Grafikformate es gibt verschiedene Grafikformate, weil: Bildtypen unterschiedliche Bildtypen sich mit unterschiedlichen Verfahren optimal speichern lassen für unterschiedliche Zwecke auch unterschiedliche Informationen in den GrafikDateien gespeichert werden müssen Fotos Grafiken mit großen einheitlichen Flächen Grafiken mit viel Text Vektorgrafiken Zwecke betrachten auf dem Monitor drucken Weiterbearbeitung im Grafikprogramm 5-10
BMP, PNG, JPEG Grafikformate BMP - Bitmap jeder Pixel wird einzeln abgespeichert verlustfreies Format PNG Portable Network Graphics Flächen gleicher Farben werden zusammengefasst verlustfreies Format gut für einfache Bilder JPEG Joint Photographic Experts Group Flächen ähnlicher Farben werden zusammengefasst verlustbehaftetes Format gut für komplexe Bilder z.b. Fotos 5-11
BMP, PNG, JPEG Grafikformate - Größenunterschiede BMP PNG JPEG 1407 kb 8 kb 29 kb 1407 kb 1017 kb 429 kb einfaches Bild 800 x 600 Pixel Foto 800 x 600 Pixel 5-12
Kompression was ist Kompression? Datengröße verkleinern, so dass die Daten wieder zurück in den Original-zustand oder einem äquivalenten Zustand gebracht werden können Verkleinern: Kompression Zurückkonvertieren in Original: Dekompression wieso Kompression? Platz auf Speichermedien sparen Datenübertragung beschleunigen, weil weniger Daten übertragen werden müssen z.b. im Internet oder Mobilfunknetz z.b. beim Lesen von oder Speichern auf Festplatte Einige Daten, z.b. reine Textdaten, lassen sich sehr gut verkleinern andere Daten, z.b. viele Bild- und Audioformate, lassen sich kaum oder nur wenig verkleinern, weil sie oft schon in ihrem Speicherformat eine Kompression enthalten haben. 5-13
Kompressionsverfahren verlustfrei der Originalzustand kann 100% wieder hergestellt werden Musterersetzung: wiederholende Muster suchen und durch kürzere ersetzen Entropie-Codes: Huffman-Code, arithmetische Codierung dynamische Codebuch-Kodierung verlustbehaftet ja nach Datentyp, muss nicht unbedingt der Originalzustand wieder hergestellt werden, sondern reichen Daten, die die gleichen Eigenschaften haben (also z.b. ein Bild, welches gleich aussieht, oder eine XML-Datei, die semantisch äquivalent ist) bei verlustbehafteter Kompression, kann oft auch die Qualität eingestellt werden 5-14
Gängige allgemeine Kompressionsprogramme allgemein = können für beliebige Daten benutzt werden ZIP (*.zip) gängigstes Format Quasi-Standard auf Windows kommerzielles Programm: http://www.winzip.de/ 7ZIP (*.7z) kostenloses Open-Source-Programm: http://www.7-zip.de/ gzip / Gnu ZIP (*.gz) offene Kompressions-Architektur, die eine Vielzahl an Kompressionsverfahren unterstützt Standard auf Linux-Systemen eigentlich automatisch dabei gzip2 (*.bz) höhere Kompressionsrate als GZIP, aber auch langsamer 5-15
Anwendungsbereiche für Kompression eigentlich überall wo Daten gespeichert oder übertragen werden, kann eine Kompression eingesetzt werden insbesondere wenn größere Datenmengen gespeichert werden, wird Kompression häufig eingesetzt wenn langsame Datenübertragungskanäle genutzt werden (z.b. Mobilfunknetz) wenn kleinere Speichermedien eingesetzt werden (z.b. Software-Installation von CD/DVD) 5-16
Spezielle Kompression Bilder größere Farbflächen zusammenfassen ähnliche Farben zusammenfassen Transformationen z.b. JPEG Audio Frequenzbereiche rausschneiden, die für das menschliche Ohr nicht oder kaum wahrnehmbar sind mathematische Funktionen z.b. MP3 Video (Bildsequenzen+Audio) Kombination aus den Kompressionsverfahren für Bilder und Audio 5-17
JPEG-Kompressions-Faktor Faktor 1 Größe: 9303 Bytes Faktor 50 Größe: 2645 Bytes 5-18 Faktor 99 Größe: 1101 Bytes
PNG-Farbreduktion 24 Bit 16,7 Millionen Farben Größe: 10566 Bytes 8 Bit 256 Farben Größe: 4244 Bytes 5-19 4 Bit 16 Farben Größe: 1857 Bytes
Backups Backup = Datensicherung wieso Backups? Datenverlust verhindern / Desaster Recovery Speichermedien defekt (z.b. Festplatten-Crash) oder gestohlen Daten wurden aus versehen gelöscht oder verändert Daten wurden böswillig gelöscht oder verändert Wiederherstellen alter Zustände / Rollback Daten zu Testzwecken verändert zum Überprüfen zu einem speziellen Zeitpunkt zurück gehen Erstellen von Kopien zur Archivierung zum Vervielfältigen 5-20
Backup-Speicherorte je nach Motivation des Backups, sollte ein passender Ort zum Speichern der BackupDaten gewählt werden Datenverlust verhindern über mehrere physisch voneinander getrennte Rechenzentren oftmals auch in verschiedenen Ländern oder zumindest weit voneinander entfernt Archivierung Wiederherstellen alter Zustände sicherstellen, dass sie auch langfristig gespeichert werden können speichern, wo auch schnell wieder darauf zugegriffen werden kann evtl. zusätzliche Festplatte im System zur Vervielfältigung speichern, wo die Daten auch im Netzwerk von anderen geladen werden können 5-21
Backup-Speicherungsarten vollständig die kompletten Daten für ein System werden gespeichert Vorteil: mit dem Backup können die kompletten Daten hergestellt werden Nachteil: kann sehr groß sein und sehr lange dauern inkrementell nur die Daten, die sich seit dem letzten Backup verändert haben, werden gespeichert Vorteil: nur ein kleiner Teil der Daten muss im Normalfall gespeichert werden und es dauert kürzer als ein kompletter Backup Nachteil: die Daten können nur komplett hergestellt werden, wenn alle vorangegangenen Backups verfügbar sind oft wird eine Kombination aus vollständig und zwischendurch ein paar inkrementellen Backups verwendet z.b 1 voll 5 inkr. - 1 voll - 5 inkr. -... 5-22
Backup-Anwendungsbereiche Arbeitsplatz-Backup spezielle Nutzerdaten werden gesichert Datenbank-Backup Änderungen seit einem speziellen Zeitpunkt werden gesichert ermöglicht auch einen Rollback zu einem früheren Zustand der Datenbank Machine-Image Kopie aller Daten eines Computers zum Vervielfältigen eines Systems oder einfach als Sicherung, falls der Computer von einem Virus befallen wird oder ähnliches zum erstellen einer Virtuellen Maschine (VM) 5-23
Besondere Herausforderungen Langzeitarchivierung Daten in einem Format speichern, in dem sie auch nach 20, 30, 40, 50 Jahren noch verarbeitet werden können Daten auf einem Speichermedium speichern, welches auch nach 20, 30, 40, 50 Jahren noch korrekt funktioniert zuverlässige Archivierung sicherstellen, dass Daten im Backup nicht verändert wurden spezielle Signaturen und Checksummen auf den Daten stellen sicher, dass sie seit dem Speichern nicht verändert wurden Sicherheitsaspekt Verbindlichkeit 5-24
Virtuelle Maschine Eine Virtuelle Maschine (VM) ist die Software-Implementation einer HardwareComputer-Umgebung, in der sich ein Betriebssystem und weitere Programm ausführen lassen, so als würden sie direkt die Hardware nutzen, wobei sie aber nur virtuell zur Verfügung steht. Virtuelle Maschine 1 Virtuelle Maschine 2 Virtualisierungs-System Host-Betriebssystem Hardware 5-25
Virtuelle Maschine Eine Virtuelle Maschine (VM) ist die Software-Implementation einer HardwareComputer-Umgebung, in der sich ein Betriebssystem und weitere Programm ausführen lassen, so als würden sie direkt die Hardware nutzen, wobei sie aber nur virtuell zur Verfügung steht. Virtuelle Maschine 1 Virtuelle Maschine 2 z.b. mit RedHat Linux z.b. mit Windows 7 Virtualisierungs-System z.b. VMware Host-Betriebssystem z.b. Windows 2012 Hardware z.b. Computer mit Intel-Prozessor 5-26
Wieso Virtuelle Maschinen? Kostengründe Auf einem realen Computer können viele Virtuelle Maschinen parallel laufen spart also Hardware-Kosten. Zum Testen Eine Virtuelle Maschine kann als Testumgebung genutzt werden und wenn im Rahmen des Tests die Umgebung kaputt geht, wird einfach wieder der Originalzustand neu gestartet. Zur Sicherheit Wenn das System von einem Angriff befallen wurde, kann es einfach komplett gelöscht und eine neue Kopie der Virtuellen Maschine gestartete werden. Der Zugriff auf die reale Hardware kann in der Virtuellen Maschine zusätzlich eingeschränkt werden, um es einem Angreifer schwerer zu machen, das System zu befallen. 5-27
Wieso Virtuelle Maschinen? Kostengründe Auf einem realen Computer können viele Virtuelle Maschinen parallel laufen spart also Hardware-Kosten. Zum Testen Eine Virtuelle Maschine kann als Testumgebung genutzt werden und wenn im Rahmen des Tests die Umgebung kaputt geht, wird einfach wieder der Originalzustand neu gestartet. Zur Sicherheit Datensicherheit Wenn das System von einem Angriff befallen wurde, kann es einfach komplett gelöscht und eine neue Kopie der Virtuellen Maschine gestartete werden. Der Zugriff auf die reale Hardware kann in der Virtuellen Maschine zusätzlich eingeschränkt werden, um es einem Angreifer schwerer zu machen, das System zu befallen. 5-28