Dienstag, 23. Dezember 2014

Dezember 2014 - Windows Server

Im Blog vom September 2014 habe ich bereits etwas über Serverrollen geschrieben. Nun möchte ich mehr auf den eigentlichen Server eingehen. In der Schule arbeiten wir mit dem Windows Server 2008 R2.



Allgemein


Die Windows Server sind eine Gruppe von Betriebssystemen, die von Microsoft entwickelt wurden. In den früheren Versionen wurde vor allem auf Stabilität, Sicherheit und Netzwerkfunktionen gesetzt.
Das aktuellste Windows-Server-Betriebssystem ist der Windows Server 2012 R2, der im Oktober 2013 erschien und an Windows 8 angelehnt ist. Daher war der interne Name von Microsoft zuerst Windows Server 8. Er konzentriert sich nun neu auch auf Cloud Computing. Der Windows Server im Allgemeinen besitzt natürlich viele Funktionen, die ein normales Betriebssystem (z. B. Windows 7) nicht hat. Zum Beispiel kann er als Dateiablage für die Clients dienen und wird in diesem Fall meist auch als Domäne benutzt, bei der sich die Benutzer anmelden können. Das erste Server-Betriebssystem von Microsoft erschien 1993, Windows NT 3.1, welches als Desktop- sowie Server-Version erschienen ist. Windows NT 3.1 konnte sich aber gar nicht durchsetzen, da die Hardware der damaligen Computer einfach zu langsam war. Größter Konkurrent der Windows Server war und ist immer noch Linux. da Linux einige Vorteile zu bieten hat, beispielsweise wird es kostenlos angeboten. Zudem war es bis Windows Server 2008 R2 nicht möglich ohne grafische Benutzeroberfläche zu arbeiten und auch dort geht es nicht hundertprozentig.
Die Notwendigkeit der Benutzeroberfläche wirkt sich natürlich auch auf die Leistung des Servers aus. Warum aber trotz allem vielfach Windows Server benutzt werden , ist einfach: Weil in einer Netzwerkumgebung in der heutigen Zeit vor allem Windows Clients eingesetzt werden. Auch wird von vielen Unternehmen Microsoft SQL Server als Datenbanklösung verwendet, welcher ausschließlich mit dem Windows Server kompatibel ist. Falls jedoch als Server Linux verwendet wird, bietet sich Oracle mit MySQL an, das dann auch mit Linux und dem Windows Server funktioniert, aber auch etwas teurer ist. Außerdem ist der Windows Server für Einsteiger bedeutend einfacher zu konfigurieren, da man hier ähnlich wie bei einem "normalen" PC mit Maus, Tastatur und grafischer Oberfläche arbeiten kann. Linux jedoch ist vor allem auf Eingaben mit der Tastatur ausgelegt.



Windows Server 2008


Der Windows Server 2008 ist der Nachfolger von Windows Server 2003 und wurde am 27. Februar 2008 veröffentlicht. Der Windows Server basiert auf Windows Vista und ist in den Editionen Standard, Enterprise, Datacenter, Web Server, und für Itanium-basierte Systeme jeweils in 32- und 64-Bit verfügbar. Der Windows Server 2008 kann als textbasierter Core Server installiert werden.
Eine Möglichkeit für die Verwaltung des Servers ist der Server Manager in der Version 3.0. Mit diesem können die Rollen und Funktionen verwaltet werden. Ausserdem gibt der Servermanager einen Überblick über den Systemzustand und zeigt Benachrichtigungen, wie Fehler oder Warnungen, in einer Ereignisanzeige an. Windows Server 2008 ist das erste Windows-Betriebssystem, das mit der Windows-Powershell ausgeliefert wird. Daher kann der Server textbasiert auch mit der Windows Powershell verwaltet werden. 
Active Directory
Das Active Directory wird zum Verwalten der Ressourcen von Benutzern verwendet. Zu den vorhandenen Domänencontrollern wurde nun ein neuer hinzugefügt, der RODC (Read Only Domain Controller). Dieser ist, wie der Name schon sagt, ein Domänencontroller ohne Schreibberechtigung und ohne sicherheitsrelevante Daten. Er kann also zum Beispiel als Controller in potentiellen unsicheren Standorten verwendet werden. 
Hyper-V
Hyper-V ist ein Virtualisierungssystem, das von Microsoft bereitgestellt wird. Damit können komplette Serversysteme virtualisiert werden. Hyper-V ermöglicht über eigene Verwaltungstools die Organisation sowohl von physischen wie auch von virtuellen Ressourcen. Zudem unterstützt Hyper-V alle gängigen Prozessorarchitekturen. Jedoch wird eine exklusive Zuweisung von PCI- und USB-Geräten nicht unterstützt.


Hardware-Anforderungen





Windows Server 2008 R2


Der Windows Server 2008 R2 ist nicht, wie es der Name vermuten ließe, näher mit dem Vorgänger Windows Server 2008 verwandt, da die R2 Version schon auf Windows 7 basiert. Auch ist dieses Betriebssystem das erste von Microsoft, das nur noch auf 64-Bit-Prozessoren installiert werden kann, für 32-Bit-Prozessoren ist Windows Server 2008 R2 nicht verfügbar.
Als interessante Neuerung hat man nun die Möglichkeit, die Active Directory RMS Rolle über die Windows PowerShell hinzuzufügen und bereitzustellen. Auch kann sie nun komplett über die PowerShell verwaltet werden. Ausserdem wurden neue Befehle zur Verwaltung von Gruppenrichtlinien der PowerShell hinzugefügt. Neu sind in Windows Server 2008 R2 schon Starter-Gruppenrichtlinienobjekte enthalten, die auf Sicherheitsrichtlinien von Microsoft basieren. Vorher musste man diese manuell erstellen oder vom Microsoft Download Center herunter laden. Auch wurden den Gruppenrichtlinien neue Features hinzugefügt, mit denen man unter anderem den Internet-Explorer 8 konfigurieren kann.


Hardware-Anforderungen







Windows Server 2012 


Der Windows Server 2012 ist seit dem 4. September 2012 erhältlich und hat wie auch Windows 8 und Windows Phone 8 die neue ModernUI-Oberfläche, die eigentlich besser für Touchscreens geeignet ist. Eine Alternative wäre die Core-Installation, diese verzichtet auf die grafische Oberfläche. Somit kann der Server nur über die Windows-Eingabeaufforderung (cmd) und die PowerShell bedient und konfiguriert werden. Eine dritte Möglichkeit ist eine Verwendung des Minimal Server Interface. Das ist eine eingeschränkte grafische Oberfläche, die nur alle grafischen Verwaltungsanwendungen installiert. Auch wurde der Task-Manager komplett überarbeitet. Zum Beispiel werden laufende Anwendungen in Kategorien eingeordnet. Außerdem werden nun Anwendungen, die nicht aktiv sind, angehalten, um die Performance des Servers zu steigern.
Windows Server 2012 bietet eine direkte Anbindung zu Microsoft Windows Azure. Somit kann der Server bei Bedarf auf die Azure-Cloud gesichert werden. Das Active Directory wurde erweitert, beispielsweise wurde der Installationsassistent durch das neue Active Directory Administrative Center ersetzt. Damit wurden vor allem die Passwort-Richtlinien sowie das Upgraden des Active Directory vereinfacht.
Die wichtigsten Neuerungen wurden in Hyper-V vorgenommen. Der Zugriff auf virtuelle Server mit VM-Connect soll jetzt wesentlich effizienter und stabiler funktionieren. Auch kann man nun mit VM-Connect Dateien per Drag&Drop verschieben/kopieren. Eine direkte RDP-Verbindung zum virtuellen Server muss nun nicht mehr bestehen, um die Zwischenablage zu nutzen, da die RDP-Sitzungen direkt über den Host gehen.
Auch im Bereich der Festplatten wurde gearbeitet. So können die virtuellen Festplatten im laufenden Betrieb vergrössert und verkleinert werden. Zudem können sich nun virtuelle Server Festplatten teilen, was einen grossen Nutzen hat bei Festplatten, auf denen Dateien abgespeichert sind. Auch wird nun der neue BIOS Standard UEFI von den virtuellen Servern unterstützt. Jedoch können die neuen virtuellen Server (auch Generation 2-VMs genannt) aus Leistungsgründen keine emulierte Hardware nutzen. Ein weiterer Nachteil ist, dass als Generation 2-VMs nur Windows Server 2012/R2 und Windows 8/8.1 verwendet werden können. Auch kann ein alter virtueller Server nicht zu einer Generation 2-VM migriert werden.


Hardware-Anforderungen





Freitag, 5. Dezember 2014

November 2014 - SSD

Da wir in den vergangenen Wochen bei vielen unserer PCs  die Harddisk durch eine SSD ersetzt haben, möchte ich hier etwas über die SSD schreiben.


Allgemeines

Eine SSD (Auch Solid State Drive oder Solid State Disk genannt) ist ein nichtflüchtiges elektronisches Speichermedium*.
Die Bezeichnung "Drive" (engl. für Laufwerk) bezieht sich eigentlich nur darauf, dass sie die herkömmlichen HDDs ersetzten soll, die SSD selber ist nämlich kein Laufwerk.
In der Elektronik bedeutet der englische Begriff "solid state", dass Halbleiterbauteile verwendet werden statt Elektronenröhren oder bewegliche mechanischer Teile.
Eine SSD hat gegenüber einer HDD einige sehr interessante Vorteile. Einer der wichtigsten Vorteile ist, dass die SSD um ein vielfaches schnellere Zugriffszeiten hat. Ein weiterer sicher nicht unwichtiger Vorteil ist, dass die SSD sehr viel robuster ist, da sie über keine mechanischen Teile verfügt, zudem hat eine SSD aus diesem Grund kaum Geräuschentwicklung.
Der Hauptnachteil einer SSD im Vergleich zu einer HDD ist derzeit der noch erheblich höhere Preis.
Auch kann eine SSD ausfallen (trotz ihrer mechanischen Robustheit) oder Systemfehler verursachen. Grund dafür ist meist ein Fehler im verwendeten Controller oder der Firmware. Besonders neuere Modelle kommen vermehrt mit unausgereifter Firmware auf den Markt, die dann mit Updates nachgebessert werden muss.
Weiterhin gibt es zwischen den SSD Modellen auch Unterschiede bei den verbauten Flash-Speichern.
Der Preis einer SSD liegt bei ungefähr dem Neunfachen des Preises einer gewöhnlichen HDD.
Es ist auch möglich, dass eine HDD  mit einer SSD zu einem Gerät kombiniert wird, hier spricht man von einer Hybridfestplatte (auch SSHD)

*ein nichtflüchtiger Speicher ist ein Medium, bei dem die Daten auch dann gespeichert sind, wenn das Medium nicht mit Strom versorgt wird.




SSD als Ersatz einer HDD



Erste SSDs

SSDs wurden ursprünglich im Jahre 1950 das erste Mal gebaut mit zwei ähnlichen Technologien. Einerseits dem Magnetkernspeicher (frühe Form von nichtflüchtigem Speicher) aber auch mit dem Card Capacitator Read-Only Storage (frühe Form des Festwertspeichers, nur lesbar). 
Beide Technologien wurden wegen des günstigeren Trommelspeichers (Vorgänger der Festplatte) wieder aufgegeben.
In den 1970er - 1980er Jahren wurden SSDs in den frühen IBM-Supercomputern implementiert wurden aber wegen des hohen Preises selten verwendet. In den späten 70er Jahren brachte dann "General Instruments" das EAROM (eine Form des Festwertspeichers) auf den Markt, dieses hatte mit der Flash Technologie von heute schon grosse Ähnlichkeit. Es wurde aber von vielen Unternehmen wieder aufgegeben, da die Lebensdauer dieses Speichers unter 10 Jahren liegt.
Im Jahre 1995 stellte M-Systems erstmals eine Flash-basierte SSD vor, welche keine zusätzliche Batterie benötigte um die Daten zu behalten. Ab diesem Zeitpunkt wurden SSDs als Ersatz von HDDs eingesetzt.


Speicher-Verfahren

Auch heute werden noch zwei verschiedene Arten von Speicherchips verwendet. Flash basierte und SDRAM (wird häufig als Arbeitsspeicher verwendet).

Flash-Speicher sind sehr energieeffizient und nicht abhängig vom Strom, wenn es um das Beibehalten des Inhalts geht. Von Herstellern werden hier ca. zehn Jahre versprochen. Anzahl Schreibzyklen: 100'000 bis 5 Millionen.
Etwa 10% einer Zelle in einer SSD dienen als Reserve. Falls durch Verschleiss eine nicht mehr funktionstüchtig wäre, wird sie mittels S.M.A.R.T. (dient zum permanenten Überwachen wichtiger Parameter von Computerfestplatten) automatisch gegen eine Reservezelle ausgetauscht.

SDRAM-Chips brauchen hingegen deutlich mehr Strom pro Gigabyte als HDD. Auch sind sie flüchtige Speicher. Der Vorteil hier liegt dafür in der deutlich höheren Geschwindigkeit. Sie können als Steckkarte oder aber auch als Gerät mit einer emulierten Festplattenschnittstelle (oft mit einer Batterie oder einem eigenen Stromanschluss) verwendet werden. Gegenüber der Flash-Technik sind sie 80 mal schneller. Ein weiterer Vorteil ist, dass die Wiederbeschreibbarkeit fast unbegrenzt ist.


SDRAM als Steckkarte



Manche Hersteller integrieren auch konventionelle Festplatten in ein Gehäuse der SDRAM, Um die Vorteile beider Speicher nutzen zu können, zum Beispiel eine Sicherungskopie auf der Festplatte zu machen, falls es einen Stromausfall gäbe.




Einsatzgebiete (Vorteile)

Die erhöhte Stossfestigkeit wird durch den Wegfall der empfindlichen Motoren, der Lese-Schreib-Mechanik und der rotierenden Platten gewährleistet. Auch die Temperaturtoleranz ist grösser. Betreffen tut dies die Temperatur, bei der die SSD betrieben wird, wie auch die Toleranz der Temperaturveränderung. Am häufigsten findet man flashbasierte SSDs in mobilen Geräten, wie zum Beispiel in einem Smartphone, einem MP3-Player oder einem USB-Stick. Auch für Notebooks werden sie interessanter wegen des deutlich gesunkenen Preises. Hybridfestplatten (SSHD) und reine SSDs gibt es seit 2007 auf dem Endkundenmarkt.


SDRAM-basierte SSDs lassen sich meist in stationären Einsätzen finden. Das Einsatzgebiet sind Anwendungen, die sehr laufwerklastig arbeiten, indem sie wiederholt Datenmengen von verschiedensten Speicherbereichen des Speichermediums abfragen. Weshalb sie oft von Entwicklern und Testern benutzt werden, um die Leistungsfähigkeit von Festplatten-Controllern zu messen.
2007 lag die Geschwindigkeit einer SDRAM beim 30-fachen einer Flash-SSD.

Aufgrund steigender Leistung der Flash-SSD wurde bereits 2008 eine von der Geschwindigkeit vergleichbar schnelle Flash-SSD entwickelt. Sie wurde zugunsten der Geschwindigkeit als PCI-e-Karte angeboten, wodurch sie für den Endkundenmarkt recht uninteressant war.




Hybridfestplatte - SSHD

Die SSHD ist eine Festplatte, die mit einem Solid State kombiniert ist. Die geringe Grösse des Solid State Speichers soll verhindern, dass das Speichermedium zu teuer wird, seine Vorteile aber schon jetzt einem breiten Markt zur Verfügung stehen.
Die Kombination von HDDs und Flash-Speicher wird durch grosse Hersteller unterstützt und wird auch künftig weiter verbreitet sein. Technisch gibt es zwei Umsetzungen. Bei Intel wird der Flash-Speicher nicht in die Festplatte selbst integriert, sondern über einen internen Anschluss mit dem Motherboard verbunden. Da der Flash-Speicher somit physisch immer noch von der Festplatte getrennt ist, entsteht in diesem Sinne eigentlich keine richtige Hybridfestplatte, das Ergebnis bleibt jedoch dasselbe. "Turbo Memory" nennt Intel diese Technik. Alle anderen Anbieter von Hybridfestplatten sind Festplattenhersteller, weshalb sie den Flashspeicher direkt in die Festplatte integrieren müssen. Meist liegt der Flash-Speicher bei 256 MB, Intel verwendet jedoch die vier- bis achtfache Kapazität.
Da der Flash-Speicher durch diese Integration beim Schreiben sogar langsamer als die Festplatte ist, ist er kein Ersatz sondern eine Ergänzung. Der Flashspeicher speichert bei häufigem Zugriff auf eine Datei diese in seinen Flashbereich, wodurch die Datei dann viel schneller gelesen werden kann. Bei Büroarbeiten zum Beispiel muss die Festplatte also nicht immer neu anlaufen, um auf eine Datei zuzugreifen und ist daher vielfach lautlos und stromsparender. Zudem hat eine solche SSHD im Stillstand eine grössere Stossfestigkeit, weshalb sie vor allem in Notebooks Verwendung findet und deswegen vorerst nur in 2.5 Zoll verfügbar war.






HDD links und SSD rechts



SSDs auf dem Markt

Festplatten werden durch die SSDs immer mehr verdrängt, dies geschieht gerade noch vor allem bei mobilen Geräten. Durch Flashspeicher bleibt den Herstellern nur noch Gestaltungsfreiraum bei Geschwindigkeiten, Kapazität, Energiebedarf, Gehäusegrösse, Gewicht und Preis. Da SSDs noch sehr teuer sind und Endkunden nicht so viel Geld für ein Speichermedium ausgeben wollen, werden im Endkundenmarkt nicht sehr grosse SSD angeboten. Stattdessen wird meistens eine SSD als Systemlaufwerk verwendet, da dort häufig nur das Betriebssystem (und evtl. kleinere Dateien) drauf laufen sollen. Die konventionellen Festplatten werden dann für grosse Dateien weiterhin verwendet, bei denen die Zugriffszeit keine so grosse Rolle spielt.



Freitag, 31. Oktober 2014

Oktober 2014 - Silizium

In der Schule habe ich ein Fach mit dem Namen "Funktionsweise elektronischer und digitaler Baugruppen verstehen". In diesem Fach behandeln wir nun das Thema Silizium (Dioden und Transistoren). Ich finde Silizium ein interessantes Thema, weshalb ich diesen Monat etwas darüber schreibe.


Silizium

Silizium (auch Silicium geschrieben) ist ein chemisches Element, genauer ein Halbmetall. Ein Halbmetall weist sowohl Eigenschaften von Metallen wie auch Nichtmetallen auf. Silizium ist zudem ein Halbleiter, das bedeutet, abhängig von seiner Temperatur ist es ein elektrischer Leiter oder nicht.
Reines Silizium hat eine grau-schwarze Farbe und einen bronzenen bis bläulichen Glanz.
Im menschlichen Körper befinden sich ungefähr 20 mg/kg (Körpermasse) Silizium.



Entdeckung 

Als Element wurde Silizium zum ersten Mal im Jahre 1787 hergestellt, wurde jedoch zuerst für eine Verbindung gehalten. Erst 1824 wurde bekannt, dass Silizium ein eigenständiges Element ist.
Die erstmalige Herstellung von reinem, kristallinem Silizium gelang einem französischen Chemiker im Jahre 1854 (Zur Herstellung später mehr).





Vorkommen

Silizium ist das zweithäufigste Element auf der Erde nach Sauerstoff. Die Erdkruste besteht zu etwa 26% aus Silizium. Im Wesentlichen tritt Silizium als Siliziumdioxod auf, natürlich vorkommendes reines Silizium gibt es nicht.
Unter anderem besteht Sand vorwiegend aus Siliziumdioxid.

Siliziumdioxid (Quarz)
(besteht aus Silizium und Sauerstoff)

Herstellung von reinem Silizium

Da reines Silizium, das später für Prozessoren verwendet wird, die heutzutage in beinahe jedem Gerät zu finden sind, kein natürliches Vorkommen hat, muss man es chemisch herstellen. Reines Silizium wird aus Siliziumdioxid (Quarz) gewonnen. Hierbei muss der Sauerstoff entfernt werden. Das geschieht, indem man das Siliziumdioxid in Öfen bei 1`460°C (Schmelzpunkt von Silizium: 1`414°C) unter Verwendung von Kohlenstoff schmilzt. Durch diese hohen Temperaturen spaltet sich der Sauerstoff vom Silizium ab, reagiert mit dem Kohlenstoff und wird so zu Kohlenstoffmonoxid.
Das reine Silizium enthält noch zu 5% Fremdstoffe, was aber immer noch zu viel ist. Gereinigt wird das Silizium anschließend mit verschiedenen chemischen Trennverfahren.
Am Ende dieser Prozesse hat das Silizium eine Reinheit von über 99.9999999%. Das entspricht weniger als einem Fremdatom auf einer Milliarde Siliziumatomen.
Zum Schluss wird das Silizium als Ingot aus dem flüssigen Zustand gezogen.

Ingot
(aus monokristallinem Silizium)

Silizium Wafer

Die Herstellung von Wafern beginnt mit dem Silizium-Ingot. Wenn das Ingot, wie oben im Bild zu sehen, zylinderförmig ist, wird es in Scheiben zersägt. Die Wafer werden in einem sogenannten "Reinraum" hergestellt, damit das Silizium seine hohe Reinheit auch beibehält. Zudem müssen für die meisten Anwendungen die Oberflächen der Wafer spiegelnd poliert sein
Anschließend wird Fotolack auf die Wafer aufgetragen. Dieser wird durch eine Maske belichtet. Nun werden, je nach Lack, entweder die belichteten oder unbelichteten Teile mit Hilfe von Natronlauge entfernt. Der verbleibende Lack dient als "Ätzmaske", Da die Säure dem verbleibenden Lack nichts macht, schützt der das darunterliegende Silizium, während an den ungeschützten Stellen das Silizium weggeätzt wird. Dann wird der Fotolack wieder entfernt. Dies wird mehrere Male wiederholt. Dann wird wieder belichtet, aber diesmal nur Kontaktpunkte. An diesen Punkten wird das Silizium zu Kontaktlöchern geätzt. Auf dem gesamten Wafer wird jetzt Aluminium oder Kupfer als Leiter bis in die Kontaktlöcher abgeschieden und durch einen weiteren Prozess zu Leiterbahnen geätzt.
Zuletzt werden aus den Wafern die einzelnen Prozessoren "ausgeschnitten".
Damit wäre der Herstellungsprozess des Prozessors abgeschlossen. Abhängig von der Grösse des Prozessors und des Wafers können aus einem Wafer mehrerer Dutzend Prozessoren hergestellt werden.




Wafer von verschiedenen Grössen
mit fertigen Prozessoren (Mikrocontrollern)





Freitag, 19. September 2014

September 2014 - Serverrollen

Da wir momentan in der Schule das Modul "Serverdienste in Betrieb nehmen" behandeln, schreibe ich diesen Monat über die Serverrollen und das Active Directory.


Serverrollen

Serverrollen sind dazu da, den Einsatzzweck eines Servers möglichst genau zu bestimmen. Die benötigten Rollen werden dem Server hinzugefügt und als Konfiguration gespeichert. Durch zu viele solcher Rollen kann jedoch der Server überlastet werden.
Vor allem in grossen Netzwerken von Unternehmen sind Serverrollen ein wichtiger Bestandteil.
Mit diesen Rollen können unterschiedliche Schnittstellen und Dienste innerhalb des Servers verwaltet werden. Diese werden entsprechend aktiviert bzw. deaktiviert. Auch gibt es die Möglichkeit beliebige Funktionen einer Rolle hinzuzufügen, um die Funktionalität zu erweitern.



Active Directory 

Das Active Directory ist der Verzeichnisdienst von Windows Servern, der ab Windows Server 2008 in fünf Serverrollen unterteilt ist und dessen Kernkomponente als Active Directory Domain Services bezeichnet wird. Das Active Directory ermöglicht es, ein Netzwerk entsprechend der realen Struktur eines Unternehmens oder seiner räumlichen Verteilung zu gliedern. Dazu werden verschiedene Objekte des Netzwerks, beispielsweise Benutzer, Gruppen, Computer, Dienste, Dateifreigaben und Geräte und deren Eigenschaften verwaltet. Durch Active Directory kann ein Administrator die Informationen der Objekte organisieren, bereitstellen und überwachen. Dem Benutzer des Netzwerks können Zugriffsbeschränkungen erteilt werden, damit nicht jeder Benutzer jede Datei sehen kann.

Active Directory - Serverrollen


Wie schon erwähnt, werden seit Windows Server 2008 fünf verschiedene Serverrollen unter Active Directory zusammengefasst,

Active Directory Domain Services (ADDS): Zentraler Punkt der Domain und Ressourcenverwaltung, ist die aktuelle Version des ursprünglichen Verzeichnisdienstes


Active Directory Ligthtweight Directory Services (ADLDS): Ist eine eingeschränkte Version des ADDS (siehe oben), die der Anbindung von Anwendungen oder Diensten, die Informationen benötigen, dient. Wurde erstmals in Windows Server 2003 implementiert.

Active Directory Federation Services (ADFS): Dient der Authentifizierung von Benutzern, wenn sich diese nicht im Bereich der ADDS-Infrastruktur befinden (webgestützt).


Active Directory Rights Management Services (ADRMS): Dient zum Schutz von Ressourcen durch kryptographische Methoden gegen unbefugte Einsicht.


Active Directory Certificate Services (ADCS): Dient zur Bereitstellung von Public-Key-Infrastruktur.


Sonstige Serverrollen

Es gibt noch eine Vielzahl anderer Serverrollen, die nicht direkt mit dem Active Directory zu tun haben.
Hier sind ein einige aufgeführt.


Anwendungsserver

Der Anwendungsserver ist eine erweiterte Serverrolle unter Windows Server 2008. Er stellt folgende Dienste bereit:
Eine Laufzeit, mit der serverbasierte Hochleistungsanwendungen bereitgestellt und verwaltet werden können. Diese Anwendungen können Anforderungen von Remote Clientsystemen verarbeiten.
.NET Framework 3.0 wird Systemadministratoren bereitgestellt, mit dem eine sichere  Hochleistungs-Ausführungslaufzeit für serverbasierte Anwendungen sowie eine vereinfachte Anwendungskonfiguration und Bereitstellungsumgebung zur Verfügung steht.



Webserver (IIS)

Die Webserverrolle stellt in Windows Server 2012 eine sichere, verwaltungsfreundliche, erweiterbare Plattform bereit, auf der Websites und Dienste zuverlässig gehostet werden können. Es können Informationen mit Benutzern im Internet oder Intranet gemeinsam genutzt werden.
Anwendungszwecke sind unter anderem: 
Die Verwendung des IIS Managers zum Konfigurieren von Features und Verwalten von Websites.
Die Verwendung von FTP, um Besitzern von Websites das Hochladen und Herunterladen von Dateien zu ermöglichen.
Verwendung der Windows PowerShell, um die Verwaltung der meisten administrativen Aufgaben auf dem Webserver zu automatisieren.



Windows-Bereitstellungsdienste (WDS)

Bei der Windows-Bereitstellungsdienste-Serverrolle handelt es sich um eine neu entwickelte Version der Remoteinstallationsdienste, die seit Windows Server 2008 im Betriebssystem enthalten ist.
Mit den WDS können Windows Betriebssysteme bereitgestellt und dazu verwendet werden, neue Computer mit einer netzwerkbasierten Installation einzurichten. Somit muss nicht jedes Betriebssystem von einer CD/DVD direkt auf den jeweiligen PC installiert werden. 
Wichtige Vorteile der WDS sind:
Zeitsparend durch das Ausführen mehrerer Installationen gleichzeitig.
Verwenden eines benutzerdefinierten Installations-Images mit vorinstallierten Anwendungen.
Erstellen eines Images mithilfe des Assistenten zur Abbildaufzeichnung.



DHCP-Server

Mit einem DHCP-Server im Netzwerk können TCP/IP-basierte Netzwerkgeräte automatisch gültige IP-Adressen bereitgestellt werden. Auch können benötigte Konfigurationsparameter (DHCP-Optionen) bereitgestellt werden. DHCP bietet folgende Möglichkeiten:
Verteilen von IP-Adressen an DHCP-Clients und automatische Erneuerung, wenn ein Client dies anfordert.
DHCP-Clientparameter können automatisch aktualisiert werden, wenn eine Server- oder Bereichsoption auf dem DHCP-Server geändert wird.
IP-Adresse und DHCP-Optionen können für den jeweiligen PC reserviert werden, sodass dieser immer die gleiche IP-Adresse erhält.
Es können verschiedene Subnetzen DHCP-Dienste bereitgestellt werden.
Der DHCP-Server kann so konfiguriert werden, dass er Dienste zur DNS-Namensregistrierung für DHCP-Clients ausführt.
Es besteht die  Möglichkeit, IP-basierten DHCP-Clients Multicastadressen zuzuweisen.
























Dienstag, 2. September 2014

August 2014 - Visual Basic

Seit Anfang dieses Monas bin ich nun im 2. Lehrjahr. Wir haben in der Schule nun auch schon mit Visual Basic angefangen. Da ich schon in der indico mit dem C# Buch arbeiten konnte, war mir schon einiges bekannt. Obwohl wir in der Schule mit VB.Net und nicht mit C# programmieren, hat es mir dennoch sehr geholfen.



Visual Basic .NET

Das VB.NET ist eine Programmiersprache, die auf dem Microsoft .NET Framework aufbaut. Vorgänger ist Visual Basic 6, wichtigster Unterschied ist, dass das VB.NET in grossen Teilen neu konzipiert wurde.
Visual Basic erstellt einen Zwischencode für eine virtuelle Maschine, die CLR, die im .NET Framework enthalten ist und als Laufzeitumgebung dient, weshalb auch das .NET Framework zwingend benötigt wird.
VB.NET  unterstützt die objektorientierte Programmierung vollständig und verfügt, wie auch von Java oder C++ bekannt, über eine Ausnahmebehandlung (bedeutet, dass Informationen trotz Fehlerstatus weitergereicht werden können).



IDE

IDE steht als Abkürzung für Integrated Development Environment (zu Deutsch: Integrierte Entwicklungsumgebung) und ist dazu da, Programmierer bei der Entwicklung von Software zu unterstützen.
Im Falle des VB .NET ist Visual Studio die IDE, auf die ich nun näher eingehe.

Zu Beginn eines neuen Projekts sieht man links eine Toolbox (1), rechts oben den Projektmappen-Explorer (2), darunter das Eigenschaftenfenster (3) und in der Mitte den Code und die Entwurfsansicht (4).
Die Toolbox ist eine Palette von Objekten oder Steuerelementen, die auf Formulare (das Fenster eines Programms) platziert werden können. Zum Beispiel ein Button, auf den geklickt werden kann, um eine Ereignis auszulösen. Visual Basic fügt den Code des entsprechenden Objekts automatisch hinzu, was eine Menge Zeit einspart.
Im Projektmappen-Explorer sieht man das geöffnete Projekt, die einzelnen Formulare, deren Codedateien und auch, wenn vorhanden, Klassen. Wenn man nun auf einen dieser Einträge doppeltklickt, wird er in der Entwurfsansicht angezeigt.
In den Eigenschaften kann man für jedes Objekt viele verschiedene Einstellungen machen. Beispielsweise Schriftgrösse, Objektname, Hintergrundfarbe, Sichtbarkeit usw.
Die Entwurfsansicht ist die eigentliche Hauptkomponente, hier wird einem ein leeres Fenster angezeigt, in dem man beliebige Objekte platzieren kann. Dies ist, was der Benutzer des Programms später zu sehen kriegt. Wenn nun auf eines der Objekte doppelklickt, öffnet sich automatisch der Code, in den man nun Ereignisse und Befehle schreiben kann.





(Klicken zum Vergrößern.)






Variablen/Datentypen


Eine Variable wird gebraucht, um einen Wert kurzfristig speichern zu können. Wenn eine Variable deklariert wird, wird ein Teil des Speichers reserviert und mit einem Namen versehen. Ein grundlegendes Prinzip der Variablen besteht darin, dass auf bestimmten Variablen nur bestimmte Arten von Daten gespeichert werden können (z.B. nur Kommazahlen). Um festzulegen, was in einer Variable gespeichert sein kann, wird bei der Deklaration ein Datentyp zugewiesen. Um ein Variable zu deklarieren, stellt Visual Basic eine Anweisung namens Dim (Dim steht für "dimension" vom Englischen, was für Ausdehnung steht. Damit ist der Speicher gemeint, der je nach Datentyp unterschiedlich gross ist.) zur Verfügung. Nach dem Schlüsselwort DIM muss der Name der Variable gesetzt werden. Dieser ist frei wählbar, darf aber  nur aus Buchstaben, Unterstrichen und Ziffern bestehen. Nach dem Namen muss ein AS stehen gefolgt vom Datentyp.



Eine Dim-Anweisung könnte also sein:

Dim NeueZahl As Integer

(Integer ist zum Speichern einer Ganzzahl)



Datentypen
Einige der unterstützten Datentypen in Visual Basic:

















Unterschieden zu C# 

Da ich in der Firma mit C# zu tun hatte und jetzt in der Schule das VB .NET kennengelernt habe, ist mir aufgefallen, das es sehr ähnlich ist, aber dennoch einige wichtige Unterschiede aufweist. Beispielsweise muss man in C# nach jedem Befehl ein Semikolon schreiben, was in VB .NET nicht der Fall ist. Auch wird in C# ein Befehl mit einer geschwungenen Klammer geöffnet und geschlossen.

Hier ein Beispiel eines einfachen "Hello World" mit VB .NET und C#



VB .NET











C#











Man erkennt schnell, dass außer des Semikolons am Ende und der geschweiften Klammern im eigentlichen Befehl kein Unterschied zu sehen ist.

Mittwoch, 23. Juli 2014

Juli 2014 - Codierung

Das Thema Codierung hatten wir in der Schule ein wenig angeschaut und ich fand es sehr interessant, daher schreibe ich diesen Monat darüber.

Der Begriff Code steht hier nicht etwa für Verschlüsselung, sondern für die Abbildung von Daten in Symbolen.


Strichcode

Als Strichcode (auch als Barcode bekannt) wird eine optoelektronisch (Verfahren zur Umwandlung von elektronisch erzeugten Daten in Lichtemissionen und umgekehrt) lesbare Schrift bezeichnet. Der Strichcode besteht aus vielen verschieden breiten parallelen Strichen und Lücken. Die Daten, die der Strichcode beinhaltet, werden mit einem optischen Lesegerät maschinell eingelesen und elektronisch weiterverarbeitet.
Es gibt viele verschiedene Typen von Barcodes, die jeweils für verschiedene Aufgaben entwickelt wurden.
Meistens steht unter dem Barcode der Dateninhalt zusätzlich in lesbarer Schrift, vielfach eine Zahlenfolge, damit bei Leseproblemen des Scanners die Informationen von Hand eingegeben werden können.

Es gibt Strichcodearten mit 2 Strichbreiten sowie auch solche mit mehr Strichbreiten. Der Barcode sollte eine gewisse Mindesthöhe haben, die in einigen Fällen auch genormt ist. Die Breitenverhältnisse zwischen schmalen und breiten Balken liegen nach Norm zwischen 1 : 2 bis 1 : 3, mit Toleranz 1 : 1.8 bis 1 : 3.4.
Als erstes Zeichen steht bei vielen Codes ein Startzeichen und als letztes ein Stoppzeichen. Anhand dieser Zeichen kann man die Barcodeart und auch die Leserichtung feststellen.


2D-Codes
Zweidimensionale Codes kodieren die Informationen in der Fläche. Die Informationen sind nicht in Form von Strichen, sondern in Form von schwarzen und weißen Punkten enthalten. 2D-Codes werden auch zweidimensionale Strichcodes genannt, wobei dieser Ausdruck zu vermeiden ist, da "Strichcode" eigentlich für Balken steht, die es hier nicht gibt.
Ein Beispiel für einen zweidimensionalen Code ist etwa der QR-Code (später mehr dazu).


Interleaved 2/5
Der Interleaved 2/5 ist einer von vielen verschiedenen Strichcodes. Er wird auch als ITF (Interleaved Two of Five) bezeichnet und ist ein Strichcode mit Start- und Stoppzeichen. Der Zeichenvorrat besteht aus den Ziffern 0 - 9. Er hat eine hohe Informationsdichte, da nicht nur die Balken, sondern auch die Lücken Zeichen enthalten. Aus diesem Grund kann er nur eine gerade Anzahl von Ziffern darstellen.


ITF Barcode lesen:


Zuerst sollte man das Start- und das Stoppzeichen markieren. Danach muss man die schwarzen und die weißen Balken in binäre Schreibweise umformen. Dünne Balken sind 0 und dicke Balken sind 1. Jede Ziffer enthält fünf Balken. Also sollte man immer Gruppen aus fünf Balken bilden. Der ganze Binärcode wird dann durch jeweils eine schwarze Balkenfolge und eine weiße Balkenfolge nacheinander abwechselnd ermittelt.

-> Binärcode:
00011 00101 11000 10010 00110 00011 00110 00011 01001 00101 00110 10001 10100 01001 01100 10100 10100 00011 00110 00110

Hat man den vollständigen Binärcode ermittelt, kann man ihn mit folgender Tabelle umformen:





Daraus ergibt sich dann die Ziffernfolge "74380707240152655700"



Industrial 2/5
Auch dieser Strichcode gehört der "2 of 5" Codefamilie an.

Industrial 2/5










Der Industrial 2/5 wird heute kaum mehr verwendet. Auch er hat ein Start- und ein Stoppzeichen. Ein wesentlicher Unterschied zum Interleaved 2/5 ist, dass hier nur die schwarzen Balken Informationen enthalten, die Lücken enthalten nichts. Wie auch schon beim Interleaved 2/5 gibt es hier nur die zehn Ziffern (0-9) und jede dieser Ziffer besteht aus 5 Strichen, davon 2 breite und 3 schmale. Die Informationsdichte ist dadurch, dass nur die schwarzen Balken Informationen enthalten, verhältnismäßig sehr gering.






QR-Code


Der QR-Code (von "Quick Response", zu Deutsch "schnelle Antwort") ist ein zweidimensionaler Code, der von der japanischen Firma Denso Wave im Jahre 1994 entwickelt wurde.
Der QR Code besteht aus einer quadratischen Matrix aus schwarzen und weißen Punkten. Die Daten werden auch hier binär dargestellt. In drei der vier Ecken befinden sich spezielle Markierungen, die die Orientierung vorgeben. Auch enthält er einen fehlerkorrigierenden Code durch den der Code noch bei einem Verlust von 30% dekodiert werden kann.





Aufbau

In einem QR-Code sind viele verschiedene Informationen enthalten.


Der Rest des QR-Codes, der hier nicht beschriftet ist, enthält die eigentlichen Daten in kodierter und redundanter Form. Zur Fehlerbegrenzung hat der QR Code nur in drei der vier Ecken ein bestimmtes Muster. Durch das fehlende Muster in der vierten Ecken erkennt das Lesegerät die Ausrichtung. Je grösser der Code wird, desto mehr solcher kleiner Muster wie in der rechten unteren Ecke hat er, dadurch wird die Ausrichtung des Codes besser erkennbar gemacht. Zwischen den drei Hauptmuster befinden sich zwei Linien aus einer Folge abwechselnder Bits, wodurch sich die Matrix definiert.
Der Informationsgehalt eines QR-Codes mit der Grösse 177 * 177 Elemente beträgt 23.648 Bit was 2.953 Byte entsprechen. Damit lassen sich laut Hersteller bis zu 7'098 Dezimalziffern oder 4'296 alphanumerische Zeichen kodieren.


Darstellung

Der QR-Code kann mit allen gängigen Verfahren gedruckt werden. Ein möglichst hoher Kontrast ist wichtig. Ideal ist schwarz auf weiß. Es ist aber auch möglich, den Code farbig zu drucken, mit mehreren Farben oder als Negativbild. Vermehrt werden heutzutage QR-Codes mit einem Laser direkt auf Oberflächen eingebrannt, diese Codes sind sehr haltbar. Die Grösse spielt hier keine Rolle, solang das Lesegerät das ganze Bild aufnehmen kann.


Gefahren

Da der Inhalt eines QR-Codes meist nicht ersichtlich ist, ist es möglich, darin einen Link zu einer schädlichen Seite zu verstecken. Als Schutz vor solchen Attacken wird bei vielen der aktuellen Scanner der Link im QR-Code nur angezeigt, anstatt den Link einer Seite direkt aufzurufen. Allerdings gibt es dennoch viele QR-Scanner, die die Seite im Hintergrund schon beim Anzeigen des Links laden, um danach die Seite schneller anzeigen zu können


Design-QR-Codes

Design-QR-Codes sind mit Bildern, Logos, Schriftzügen und Farbveränderungen individualisierte oder mit mehr Aufwand grafisch gestaltete QR-Codes. Hierbei wird meist die Fehlerkorrektur ausgenutzt, dadurch bleibt die eigentliche Funktion des Codes erhalten. In den Anfängen beschränkte man sich bei der Gestaltung häufig auf einen Austausch der Farben. Es können aber auch zusätzliche Schriftzüge oder ein Logo auf den Code gelegt oder direkt hineingearbeitet werden. Dabei wird ein Teil der Daten des Codes von der Grafik überlagert. Die Redundanz im QR-Code ermöglicht dies auf einer Fläche von bis zu 30% des gesamten Codes, dadurch wäre der Code aber nicht mehr weiter redundant. Eine andere Möglichkeit ist, durch ein mathematisches Verfahren eine Grafik in einen QR-Code einzurechnen, dann wäre der Code fehlerfrei.






















































Mittwoch, 4. Juni 2014

Mai 2014 - Verschlüsselung



Diesen Monat schreibe ich über Verschlüsselung im Allgemeinen und über zwei Verschlüsselungsverfahren, mit denen ich schon in der Schule zu tun hatte.



Verschlüsselung

Die Verschlüsselung ist ein Vorgang, bei dem ein "Klartext" (klar lesbarer und verständlicher Text) mittels Verschlüsselungsverfahren in einen "Geheimtext" (unleserlich, nicht einfach zu interpretierende Zeichenfolge) umgewandelt wird. Der entscheidende Parameter der Verschlüsselung ist natürlich der Schlüssel selbst, es werden manchmal sogar mehrere Schlüssel verwendet.
Das wissenschaftliche Forschungsgebiet, das das Verfahren der Verschlüsselung und dessen Geschichte beinhaltet, wird Kryptographie genannt, das ist ein Teilgebiet der Kryptologie.
Die Entschlüsselung ist der umgekehrte Vorgang. Die Algorithmen zur Verschlüsselung und der Entschlüsselung müssen hierbei nicht identisch sein. Nicht einmal die Schlüssel müssen identisch sein. In der Verschlüsselung spricht man auch vom asymmetrischen und symmetrischen Verfahren. Bei symmetrischen Verschlüsselungsmethoden werden stets identische Schlüssel zur Ver- und Entschlüsselung benutzt. Bei asymmetrischen Verfahren werden unterschiedliche Schlüssel verwendet, dieses Verfahren ist auch als "Public key methods" bekannt. Der Sender verschlüsselt seine Datei mit einem öffentlichen Schlüssel des Empfängers, mit diesem Schlüssel ist es nicht möglich die Datei zu entschlüsseln. Der Empfänger hat also einen privaten Schlüssel, der nicht öffentlich ist und mit diesem Schlüssel ist es möglich, die Datei wieder zu entschlüsseln.
Die Entzifferung oder auch Kryptoanalyse genannt ist das zweite Teilgebiet der Kryptologie. Als Entzifferung bezeichnet man das Verfahren, aus einem "Geheimtext" wieder den "Klartext" zu gewinnen, ohne im Besitz des Schlüssels zu sein. Die Kryptoanalyse dient dabei nicht ausschließlich nur zur unbefugten Entzifferung von geheimen Nachrichten, sondern befasst sich im Wesentlichen mit der Prüfung der Wirksamkeit und Sicherheit kryptographischer Verfahren.


 Kerkhoffs' Prinzip

Das Kerkhoffs'sche Prinzip ist ein 1883 formulierter Grundsatz von Auguste Kerckhoffs, welcher besagt, dass die Sicherheit eines Verschlüsselungsverfahrens die Geheimhaltung des Schlüssels und nicht die Geheimhaltung des Verschlüsselungsalgorithmus ist. Das Gegenteil wäre "Security trough obscurity" (Sicherheit durch Geheimhaltung).
Die konsequente Anwendung dieses Grundsatzes führt dazu, dass viele Expertensich das Verfahren ansehen und eine Meinung bilden können. Dies ist natürlich wünschenswert, da durch die vielen verschiedenen Meinungen das Verfahren gründlicher auf Schwächen und Sicherheitslücken untersucht werden kann.
Die Erfahrung in der Kryptologie hat gezeigt, dass viele der von den Entwicklern geheim gehaltenen Verfahren sich nach ihrer Offenlegung als sehr schwach erwiesen haben.








Caesar-Verschlüsselung

Die Caesar-Verschlüsselung ist ein sehr einfaches symmetrisches Verschlüsselungsverfahren. Da es so einfach ist, dient es heute lediglich dazu, die Grundprinzipien der Kryptologie anschaulich darzustellen. Bei der Verschlüsselung wird jeder Buchstabe des Klartexts auf einen "Geheimtextbuchstaben" abgebildet. Diese Abbildung ergibt sich, indem man den ersten Buchstaben um eine bestimmte Anzahl verschiebt und so ist es dann möglich, alle Buchstaben des Klartexts als "Geheimbuchstaben" darzustellen. Als Hilfsmittel gibt es die sogenannte Chiffrierscheibe.



Beispiel:

Als Beispiel wird der Schlüssel "7" genommen, das heisst, jeder Buchstabe des Textes wird im Alphabet um sieben Stellen nach rechts verschoben.


Klartext:               Dies ist ein Klartext.
Codiert:               Kplz pza lpu Rshyalea.

Die Chiffrierscheibe
Die Chiffrierscheibe wurde erst im 15 Jahrhundert entwickelt. Die Chiffrierscheibe erleichtert die Durchführung der Caesar-Verschlüsselung mit beliebigen Verschiebungen, indem die innere Scheibe um den Wert des Schlüssels gedreht wird, und sich somit die ersetzten Buchstaben ablesen lassen.



Chiffrierscheibe



Entschlüsselung von Caesar
Die Caesar Verschlüsselung kann sehr leicht geknackt werden. Die in der natürlichen Sprache ungleiche Verteilung der Buchstaben wird durch diese Art der Verschlüsselung nicht verborgen. Man kann also mit einer Häufigkeitsanalyse insbesondere bei einem längeren Text, herausfinden, welcher codierte Buchstabe für welchen Buchstaben als Klartext steht. Noch einfacher kann man die Tatsache ausnutzen, dass es nur 25 verschiedene Schlüssel gibt. Mit ausprobieren hat man also spätestens nach dem 25. Versuch den Klartext entschlüsselt. Die Sicherheit der Caesar Verschlüsselung beruhte also nicht unbedingt auf der Geheimhaltung des Schlüssels, sondern auf der Geheimhaltung des Verfahrens, was nicht Kerckhoffs' Prinzip entspricht.





Vigenère-Verschlüsselung

Die Vigenère-Verschlüsselung wurde  im 16. Jahrhundert von Blaise de Vigenère entwickelt und galt sehr lange als sicherer Chiffrieralgorithmus. Erst etwa 300 Jahre später wurde sie zum ersten Mal entziffert. Ein Schlüsselwort bestimmt, welche Buchstaben um wie viel verschoben werden.

Beispiel:

Das Schlüsselwort ist beispielsweise "KEY". Der Klartext ist wieder "Dies ist ein Klartext.". Als erstes wird nun jeder Buchstabe des Schlüssels der Reihe nach den Buchstaben des Klartexts zugeordnet. Die einzelnen Buchstaben des Schlüssels verschieben nun die Buchstaben des Klartextes um so viele Stellen, wie die Position der Schlüsselbuchstaben im Alphabet ist, minus eins. Das heisst, das "K" des Schlüssels verschiebt den "D" des Klartexts um zehn Stellen, das "D" wird zu einem "N". Der zweite Buchstabe des Schlüssels, das "E", verschiebt das "I" des Klartexts um vier Stellen. Das "I" wird zu einem "M" und immer so weiter. Wenn der Schlüssel "aufgebraucht" wird, wird er einfach erneut eingesetzt.

Klartext:              Dies ist ein Klartext.
Schlüssel:            KEY
Geheimtext:         Nmcc mqd igx Ojkvrobr.

Das Vigenère-Quadrat
Mithilfe des Vigenère.Quadrates ist es noch viel einfacher, einen Text zu verschlüsseln. Man muss dafür in der oberen Zeile den Buchstaben des Klartexts und an der linken Seite den Buchstaben des Schlüssels suchen. Der Buchstabe, der auf dem Schnittpunkt der beiden vorher gesuchten Buchstaben liegt, ist der Geheimbuchstabe.


Beispiel:





























Dienstag, 29. April 2014

April 2014 - Datenkompression



Diesen Monat schreibe ich über die Datenkompression.
Ich habe dieses Thema gewählt, weil wir es in der Schule behandelt haben, ich es sehr interessant fand und daher auch noch etwas dazulernen möchte.



Datenkompression

Die Datenkompression ist ein Vorgang, bei dem die Menge der digitalen Daten einer Datei (wie z.B. ein Bild) reduziert wird. Durch diesen Vorgang soll der benötigte Speicherplatz minimiert und die Übertragungszeit dadurch verkürzt werden
Grundsätzlich versucht man bei der Datenkompression immer, überflüssige Informationen zu entfernen.

Eine verlustfreie Datenkompression liegt vor, wenn man aus den komprimierten Daten wieder das Original gewinnen kann. Das ist vor allem bei der Kompression ausführbarer Programmdateien der Fall.

Von einer verlustbehafteten Kompression spricht man, wenn die Originaldaten nicht mehr aus den komprimierten Daten zurückgewonnen werden können und somit ein Teil der Informationen verloren gegangen ist. 



Die Datenkompression findet bei jeglicher Übertragung statt. Sie dient dazu,  Ressourcen bei der Übertrtagung (Bandbreite, Speicherplatz, ...) zu sparen, indem die Daten in einer möglichst minimalen Form übertragen werden. Allerdings ist vom Sender und Empfänger ein erheblicher Berechnungsaufwand nötig, um wieder die ursprünglichen Daten zu erhalten.
Kompressionsverfahren können, abhängig von ihrer Anwendung, auf Datendurchsatz, Energiebedarf oder Datenreduktion optimiert sein.
Zum Beispiel ist es bei mobilen Geräten unerwünscht, Daten auf ihr Minimum zu komprimieren, da der Aufwand (vor allem der Energiebedarf) um die ursprünglichen Daten wiederherzustellen zu groß ist. Ebenso ist dies bei Audio- und Video-Streams unerwünscht, um die Verzögerung gering zu halten.




Verlustlose Kompression

Bei der verlustlosen Kompression können aus den komprimierten Daten die exakten Originaldaten wiederhergestellt werden. Dabei gehen keinerlei Informationen verloren.
Im Wesentlichen wird bei der verlustlosen Kompression die Redundanz von Daten ausgenutzt. Dabei spricht man auch von der Redundanzreduktion.

Beispiel: Text
Die Datei muss ein richtiger Text sein, d.h. es darf nicht ein Scan eines Dokuments, das als Bild abgespeichert wurde, oder ähnliches sein. Dieser Text braucht eigentlich nicht viel Speicherplatz, lässt sich aber durch ein Verfahren auf 20% bis 10% des ursprünglichen Speicherplatzes  reduzieren.

Beispiel:

Bei diesem Text wurde erkannt, das es die beiden Wörter "EIN" und "BEITRAG" mehrmals gebraucht werden, deshalb wurden sie kodiert als "-4" und "-3", was auf einen langen Text viel ausmachen kann.
Wenn man es noch genauer nimmt, könnte das "EIN" in "KLEINER" auch noch kodiert und so noch mehr Speicherplatz gespart werden.
Es gibt ein verwandtes Verfahren, bei dem häufig wiederkehrende Schlüsselwörter durch Abkürzungen ersetzt werden.

Bei Programmdateien ist es schon kritischer, dass sie nach der Dekomprimierung wieder im ursprünglichen Zustand sind. Wäre dies nicht der Fall, wäre eine fehlerfrei Ausführung mit hoher Wahrscheinlichkeit nicht möglich. Daher sind komprimierte Programmdateien meist selbst wieder ausführbare Dateien, die das Ziel verfolgen, den Programmcode wieder vollständig zu dekomprimieren.


Verlustbehaftete Kompression

Bei der verlustbehafteten Kompression werden irrelevante Informationen entfernt. Dabei geht ein Teil der Informationen aus den Originaldaten verloren, das Original kann also aus den komprimierten Daten nicht vollständig zurückgewonnen werden.
Welcher Anteil nun irrelevant ist, wird anhand eines Modells entschieden. Die verlustbehaftete Kompression wird meist in der Bild-, Video- und Audio-Übertragung eingesetzt. Als Modell liegt hier die menschliche Wahrnehmung zugrunde. 
Ein gutes Beispiel ist das Audio-Format MP3, hier werden für den Menschen nicht wahrnehmbare Frequenzen einfach weggelassen.

Bild-, Video- , und Tonaufnahmen, sind Einsatzgebiete der verlustbehafteten Kompression. Anders könnten die meist enormen Mengen an Daten nur sehr schwer gehandhabt werden. Schon die Aufnahmegeräte an sich begrenzen das Volumen der Daten. Wie bereits erwähnt, orientiert sich die Reduktion der gespeicherten Daten an den Wahrnemungseingenschaften des Menschen.
Bei der akkustischen Wahrnemung des Meschen werden Frequenzen oberhalb von ungefähr 20kHz nicht mehr wahrgenommen, daher werden genau diese Informationen bereits im Aufnahmesystem weggelassen. Auch werden unhörbare Frequenzen (z. B. Töne, die eigentlich wahrgenommen werden können, aber wegen anderen lauten Geräusche für den Menschen kaum hörbar sind) weggelassen.
Bei den Filmen muss man bedenken dass ein Film aus mehreren Bildern besteht. Bei der Kodierung wird nun jedes Bild in kleinere Kästchen (zwischen 4x4 und 16x16 Pixel) zerlegt und es werden dann ähnliche Kästchen in den schon übertragenen Bildern gesucht und als Vorlage verwendet. Die Einsparung hierbei ergibt sich daraus, dass statt des gesamten Bildinhalts immer nur noch der Unterschied  der Kästchen übertragen werden muss.



Mit dem Programm "GIMP" kann man als Beispiel ein Bild auf 5% der originalen Qualität komprimieren, dadurch wird die Qualität zwar schlechter, das Bild braucht aber nur noch ca 3.7% des ursprünglichen Speicherplatzes.

Beispiel

Original
 Qualität: 100%
 Speicherbedarf: 780'831 Bytes


Komprimiert  
Qualität: 5% 
Speicherbedarf: 28'973 Bytes





Temporärer Speicherbedarf

Bereits heute gibt es Verfahren, die sehr gute Werte bei der Kompression erzielen. Meist geschieht dies aber wie schon vorher kurz erwähnt auf Kosten eines enormen temporären Speicherbedarfs (Arbeitsspeicher), damit ist ein Speicherbedarf von mehr als 768 MB (Megabyte) bei mittelgroßen Dateien gemeint. Aus diesem Grund ist es notwendig, die vermeintlich alten Verfahren der Datenkompression nicht zu vergessen. Denn vor allem die älteren Verfahren wurden zu Zeiten entwickelt, in denen es neben guten Werten in der Kompression auch sehr wichtig war, den temporären Speicherbedarf gering zu halten.









Sonntag, 30. März 2014

März 2014 - SQL

In der Schule lernen wir gerade, wie man Daten charakterisiert, aufbereitet und auswertet.
Das tun wir insbesondere mit "SQL" und dem gratis Programm "SQLiteman"


SQL

SQL ist eine Datenbanksprache, die zur Definition von Datenstrukturen und zur Bearbeitung und Abfragung von darauf basierenden Datenbeständen verwendet wird.
Die Syntax der Sprache ist relativ einfach aufgebaut und an die englische Umgangssprache angelehnt.
Fast alle gängigen Datenbanksysteme unterstützen SQL, allerdings in unterschiedlichem Umfang.
Die Bezeichnung SQL ist eine Abkürzung für "Structured Query Language" und bedeutet auf Deutsch "strukturierte Abfragesprache".


Sprachelemente/Statements

Die einzelnen Elemente lassen sich in drei Kategorien unterteilen.

-DML: Data Manipulation Language (Datenverarbeitungssprache)
            Befehle zum Abfragen, Einfügen, Ändern, und Löschen der Daten.

-DDL: Data Definition Language (Datenbeschreibungssprache)
            Befehle zum Anlegen, Ändern, und Löschen von Datenstrukturen (Datenbankschema).

-DCL: Data Control Language (Datenaufsichtssprache)
           Befehle für die Zugriffskontrolle. 


Mit verschiedenen Abfragen werden die gespeicherten Daten abgerufen, das heißt, die Daten werden dem Benutzer oder  einer Anwendersoftware  zur Verfügung gestellt.
Das Ergebnis einer Abfrage wird als Tabelle dargestellt und kann auch wie in einer Tabelle bearbeitet und weiterverwendet werden.

Hier einige Beispiele zu Abfragen, unterteilt in den drei Kategorien:






Eine mögliche Abfrage wäre nun:

SELECT *  
FROM "Tabellen Name";

Diese Abfrage (oder Statement) listet alle Spalten und Zeilen der angegebenen Tabelle auf.


Um der Tabelle eine Zeile hinzuzufügen, wird folgendes Statement verwendet:

INSERT INTO "Tabellen Name" ("Spalte1","Spalte2", ....)
VALUES ("Wert1", "Wert2", ...);


Um nun eine Zeile aus einer Tabelle zu löschen, wird folgendes Statement benutzt:

DELETE FROM "Tabellen Name"
WHERE "Bedingung";


Datentypen

SQL liefert eine ganze Reihe standardisierter Datentypen. Diese werden zum Beispiel mit den Statements "CREATE TABLE" und "ALTER TABLE" verwendet, um anzugeben, welchen Datentyp die jeweiligen Spalten haben.

integer:
Ganze Zahl, die positiv oder negativ sein kann. Die jeweilige Grenze, wie groß eine Zahl sein darf, ist vom Datenbanksystem definiert.


numeric:
Festkommazahl (positiv oder negativ), die eine bestimmte Länge an Stellen haben kann, darin sind auch die Nachkommastellen inbegriffen.


float:
Gleitkommazahl (positiv oder negativ), die eine maximale Länge an Nachkommastellen hat.


real:
Gleitkommazahl (positiv oder negativ), deren Genauigkeit vom jeweiligen Datenbanksystem definiert ist.


character oder char:
Zeichenkette (Text) mit einer bestimmten Anzahl an Zeichen.


varchar oder character varying:
Zeichenkette (Text) mit variabler Länge


date:
Datum (ohne Zeitangabe)


time:
Zeitangabe (evtl. inklusive Zeitzone)


timestamp:
Zeitstempel (umfasst Datum und Uhrzeit), meistens mit Milisekundenauflösung


boolean:
Variable, die die Werte true oder false annehmen kann.


blob (binary large object):
Binärdaten, die eine maximale Länge von Bytes haben.


clob (character large object):
Zeichenkette, die eine maximale Länge von Bytes hat.


Falls kein Wert bekannt ist oder kein Wert gespeichert werden soll, können Attribute auch den Wert NULL haben.



Redundanz

In einer Datenbank sollen keine Redundanzen auftreten.
Das bedeutet, dass jede Information, also z.B. eine Adresse, nur genau einmal gespeichert wird.

In einigen Fällen ist die Performance der Datenbank besser, wenn sie nicht vollständig normalisiert wird, das heisst, Redundanzen werden bewusst in Kauf genommen, um zeitaufwendigere Verknüpfungen der einzelnen Tabellen zu verkürzen und so die Geschwindigkeit der Abfrage zu erhöhen.


Schlüssel/Key

Während Informationen auf viele Tabellen verteilt werden müssen, um Redundanzen zu vermeiden, sind die Schlüssel ein wichtiges Mittel, um die einzelnen Informationen miteinander zu verknüpfen.
Jeder Datensatz hat also eine eindeutige Nummer, um ihn zu identifizieren. Diese Identifikationen werden als Schlüssel bezeichnet.
Wenn ein Datensatz in anderen Zusammenhängen benötigt wird, wird einfach nur der jeweilige Schlüssel angegeben, daraus ergeben sich dann alle restlichen Informationen.
So kann es sich nun ergeben, dass manche Datensätze nur aus Schlüsseln bestehen, die erst mit den Verknüpfungen verständlich werden. Der eigene Schlüssel wird dabei als Primärschlüssel bezeichnet, die anderen Schlüssel, die auf Primärschlüssel anderer Tabellen verweisen, werden als Fremdschlüssel bezeichnet.


Referentielle Integrität

Definition:
Die referentielle Integrität besagt, dass Attributwerte eines Fremdschlüssels auch als Attributwert des Primärschlüssels vorhanden sein müssen.
Das bedeutet: Fremdschlüssel müssen IMMER auf existierende Datensätze verweisen.
Diese wichtige Funktion sollte bereits von der Datenbank überwacht werden.

Löschweitergabe:
Wird ein Datensatz gelöscht, werden die abhängigen Daten auch in der verknüpften Tabelle gelöscht.

Änderungsweitergabe:
Wird ein Datensatz geändert, wird diese Änderung auch in der verknüpften Tabelle ausgeführt


Beziehungen zwischen Tabellen

Es gibt im Wesentlichen drei Arten von Beziehungen:

- 1:1 Für jeden Datensatz in der Primärtabelle gibt es nur einen einzigen Datensatz in der Fremdtabelle

- 1:N Für jeden Datensatz in der Primärtabelle gibt es einen oder mehrere verwandte Datensätze in der Fremdtabelle

- N:n Für jeden Eintrag in der Primärtabelle gibt es viele verknüpfte Datensätze in der Fremdtabelle und umgekehrt