Summary

Dieses Dokument ist eine Einführung in die Informatik. Es behandelt verschiedene Teilgebiete der Informatik, wie theoretische, technische, praktische und angewandte Informatik. Darüber hinaus werden wichtige Konzepte und Anwendungen in verschiedenen Bereichen wie Wirtschaftsinformatik und Medizinische Informatik vorgestellt.

Full Transcript

Einführung in die Informatik Informatik => Information, Automation/Automatik & Mathematik -> Verarbeitung (Darstellung, Speicherung, Übertragung und Umwandlung/Transformation) von Daten mit Computern Wirtschaftsinformatik => Anwendung von Informations- und Kommunikationstechnologie (IKT) in wirtsch...

Einführung in die Informatik Informatik => Information, Automation/Automatik & Mathematik -> Verarbeitung (Darstellung, Speicherung, Übertragung und Umwandlung/Transformation) von Daten mit Computern Wirtschaftsinformatik => Anwendung von Informations- und Kommunikationstechnologie (IKT) in wirtschaftl. & organisatorischen Kontext -> vereint Konzepte & Methoden aus der Informatik und der Betriebswirtschaftslehre (um Geschäftsprozesse zu optimieren, die Effizienz von Unternehmen zu steigern, Entscheidungsfindung zu unterstützen und die Nutzung von Informationssystemen in der Wirtschaft zu fördern) -> befasst sich mit Themen wie Unternehmenssoftwaren, Datenmanagement, IT-Strategie, E-Business, IT- Sicherheit & Informationsmanagement => spielt eine entscheidende Rolle in der digitalen Transformation von Unternehmen und Organisationen => ein eigenes Fachgebiet mit eigenen Themen und Methoden (nicht nur Mischung aus Informatik & BWL) 2.2 Teilgebiete der Informatik 1. Theoretische Informatik 2. Technische Informatik Kerninformatik 3. Praktische Informatik 4. Angewandte Informatik 2.2.1 Theoretische Informatik -> untersucht abstrakte Konzepte, Algorithmen und mathematische Modelle zur Lösung von Computerproblemen -> umfasst Bereiche wie Berechenbarkeit, Komplexitätstheorie, Automatentheorie & Beweistheorie -> bildet die Grundlage für: - Entwicklung von Algorithmen - Analyse von Problemen - die Gewährleistung der Sicherheit in der Informatik -> Praktische Anwendungen im Alltag eines Informatikers: - Algorithmisches Denken: hilf Informatikern komplexe Probleme in kleinere Teile aufzuteilen und effiziente Algorithmen zur Lösung zu entwickeln - Optimierung: Informatiker können herausfinden, wie ressourceneffizient (z.B. Zeit & Speicher) ihre Algorithmen sind - Sicherheit: relevant für die Gewährleistung der Sicherheit von Daten & Kommunikation, Informatiker nutzen mathematische Konzepte, um Verschlüsselungsalgorithmen zu entwickeln und Schwachstellen in Systemen zu identifizieren - Sprachen & Compiler: Kenntnisse über formale Sprachen und Automaten sind wichtig für die Entwicklung von Programmiersprachen und Compilern - Datenbanken: basiert auf Konzepten aus der formalen Logik und der Mengenlehre - Künstliche Intelligenz: bildet die Grundlage für viele KI-Anwendungen, von maschinellem Lernen bis zur Entscheidungsfindung in komplexen Systemen 2.2.2 Technische Informatik -> konzentriert sich auf die Hardware-Aspekte von Computern und digitalen Systemen -> Hauptthemen: Konzeption, Entwicklung & Optimierung von Computerhardware (einschließl. Prozessoren, Speichersystemen, Mikrocontrollern & eingebetteten Systemen) -> befasst sich auch mit elektronischen Schaltungen, Digitaltechnik, Rechnerarchitekturen und Low-Level-Programmierung, um Funktionalität & Leistung von Hardwarekomponenten zu gestalten und verbessern 2.2.3 Praktische Informatik -> Anwendung von Informatikkenntnissen und -techniken zur Lösung allgemeiner realer Probleme -> Hauptthemen: Softwareentwicklung, Programmierung & Anwendungsentwicklung -> weitere Themen: Datenbankdesign, Webentwicklung, Netzwerke & Informationssysteme (Lösungen für allgemeine, vielfältige Anforderungen in verschiedenen Branchen entwickeln & bereitstellen) 2.2.4 Angewandte Informatik -> praktischer Einsatz von Informatikkenntnissen, -techniken und -werkzeugen zur Lösung von konkreten realen Problemen in Unternehmen & Organisationen und zur Unterstützung von Geschäfts- und Industrieprozessen -> konzentriert sich auf Anwendung von Informatikprinzipien, Algorithmen & Technologien in verschiedenen Anwendungsbereichen (darunter Wirtschaft, Industrie, Wissenschaft, Gesundheitswesen, Bildung,…) -> es geht oft darum, maßgeschneiderte Softwarelösungen zu entwickeln, um spezifische Aufgaben oder Herausforderungen in einem bestimmten Bereich zu bewältigen -> verbindet Grundlagen der Informatik mit praktischer Umsetzung und bietet Lösungen die effizientere Abläufe, bessere Entscheidungsfindung und innovative Produkte & Dienstleistungen ermöglichen Kann in verschiedene Unterdisziplinen bzw. Fachbereiche unterteilt werden 2 wichtige Bereiche sind: - Wirtschaftsinformatik: -> Anwendung von Informatik in wirtschaftl. Und betrieblichen Kontexten -> Ziel: Effizienz & Effektivität von Unternehmen durch Einsatz von Informationstechnologie zu steigern und Geschäftsprozesse zu optimieren - Medizinische Informatik: -> Anwendung von Informatik in der Gesundheitsversorgung & im Gesundheitswesen -> umfasst Entwicklung von elektronischen Patientenakten, Gesundheitsinformationssystemen, medizinischer Bildverarbeitung, klinischer Entscheidungsunterstützung, Telemedizin und Gesundheitsdatenanalyse -> Ziel: Qualität der Gesundheitsversorgung verbessern Verwaltung von Patientendaten optimieren Kommunikation zw. Medizinischen Fachleuten erleichtern - weitere Anwendungsgebiete: Bildverarbeitung, Umweltinformatik, Bildungsinformatik, Rechtsinformatik, … 2.4 Gesellschaftliche Bedeutung + technologische Innovation - Datenschutz & Privatsphäre + wirtschaftliche Auswirkungen - Cyberkriminalität + Gesundheitswesen - Arbeitsplatzverlust + Bildung - Digitale Kluft + Kommunikation & soziale Vernetzung - Abhängigkeit von Technologie + Umweltschutz - Moralische und ethische Bedenken bei KI + Sicherheit & Datenschutz - Fehlinformation & Fake News + Künstliche Intelligenz - Umweltauswirkungen - Überwachung & Kontrolle - Mentaler Stress & Gesundheitsrisiken 3.3 Aussagenlogik, Boolesche Operationen Eine Aussage wird entweder als wahr (true, True, T, 1) oder als falsch (false, False, F, 0) eingestuft A und B sind boolesche Variablen, die entweder wahr (1) oder falsch (0) sind Man unterscheidet die folgenden elementaren booleschen Operationen: - Negation (NOT, !) -> Aussage NOT A ist wahr, wenn A falsch ist - Konjunktion (AND, &&) -> Aussage A AND B ist wahr, wenn A wahr ist und B wahr ist - Disjunktion (OR, ||) -> Aussage A OR B ist wahr, wenn A wahr ist oder B wahr ist, also mind. Einer der Aussagen A bzw. B - Kontravalenz (XOR, ^) -> Die Aussage A XOR B ist wahr, wenn A oder B wahr ist, aber falsch, wenn beide wahr sind 3.4 Aufbau eines (Digital-) Rechners: Hardware EVA-Prinzip: Eingabe, Verarbeitung, Ausgabe -> alle Teile werden durch Hardware (überwiegend elektronische Komponenten) realisiert Rechnerarchitektur = Aufbau & Zusammenspiel dieser Komponenten -> bekannteste: „Von-Neumann-Architektur“ Architektur besteht aus folgenden Elementen: - Prozessor (CPU): -> zentrales Element des Rechners (Central Processing Unit) -> hier findet die eigentliche Verarbeitung der Daten statt -> besteht aus: - Rechenwerk (e Unit ALU); -> Berechnungen wie Addition & Multiplikation sowie boolesche Operationen - Steuerwerk (Control Unit CU) -> Ausführung der Programmlogik unter Verwendung der Daten aus dem Arbeitsspeicher und Ausführung des nächsten Befehls oder Berechnung der Sprünge für Schleifen und bedingte Anweisungen („if“) - Taktgeber (clock) -> bei jedem Takt wird das Signal zur Ausführung eines Befehls ausgegeben - Register (Speicher für die gerade auszuführenden Befehle) - Ein-/Ausgabewerk (I/O-Unit): -> steuert alle Ein- (Tastatur & Maus) und Ausgaben (Bildschirm o. Drucker) -> auch Zugriff auf externe Speichermedien (Festplatte etc.) wird hier verwaltet - Speicherwerk: -> Prozessor verwendet in VN-Architektur den Hauptspeicher (Arbeitsspeicher, Random Access Memory, RAM) -> zum Speichern (lesend & schreibend) des auszuführenden (Binär-) Programms als auch zur Ablage der zu bearbeitenden Daten - Bus: -> Prozessor kommuniziert über ein Bus-System mit den weiteren Teilen des Systems -> allgemeines Konzept zur Verbindung & Kommunikation verschiedener Teile o. Komponenten -> es werden binäre Daten übertragen -> man unterscheidet Steuerbus, Adressbus & Datenbus Für das konkrete Funktionieren der Hardware ist spezielle Software, sogenannte Treiber, erforderlich -> oft Bestandteil des Betriebssystems oder als separate Software vom jeweiligen Hardware-Hersteller verfügbar 3.5 Prozessoren RISC-Prozessoren: -> weniger und dafür einfache Befehle, die direkt in Hardware (Schaltungen) realisiert sind, (Reduced Instruction Set Computing) und damit in einem (Prozessor-) Takt abgearbeitet werden können CISC-Prozessoren: -> komplexere befehle, die dann zum Teil im Maschinencode realisiert werden müssen und (Complex Instruction Set Computer) mehrere Takte für die Abarbeitung benötigen Die Taktfrequenz eines Prozessors kann nicht unbegrenzt gesteigert werden, da sonst der durch die höhere Leistungsaufnahme entstehende Hitze durch umfangreiche Kühlung begegnet werden muss -> andere Lösungswege zur Leistungssteigerung gesucht: Zur Verbesserung der Verarbeitungsgeschwindigkeit -> Prozessoren besitzen mehrere Kerne (Mehrkernprozessoren, multi-core) -> Software kann quasi parallel abgearbeitet werden (Software muss diese Parallelität auch nutzen können) Multithreading: Ein Thread ist ein Ausführungsstrang in einem Programm Programm kann bei Bedarf so unterteilt werden, dass mehrere Threads (gefühlt) parallel ablaufen -> „Nebenläufigkeit“ Bsp: in Textverarbeitung kann Text über Tastatur eingegeben werden, während „gleichzeitig“ die Datei gespeichert wird u./o. die Rechtschreibprüfung durchgeführt wird GPU: Prozessor, der für spezialisierte Aufgabe optimiert ist und als Ergänzung zum normalen Prozessor eingesetzt wird (Graphics Processing Unit) hier: ursprünglich zur Optimierung der Berechnung von grafischen Ausgaben für 3D- Spiele etc. mittlerweile: auch für Training von KI-Systemen (aufgrund der hohen Rechenleistung von Fließkommazahlen) 3.6 Speicher 3.6.1 Speichereinheiten -> Tabelle basiert auf Zehnerpotenzen, obwohl Digitalrechner auf Binärsystem basieren, also Zweierpotenzen sinnvoller wären -> da Kilobyte etc. schon belegt wind, mussten neue Namen gefunden werden (Kibibyte korrespondierend zu Kilobyte) -> heutzutage aber wenig gebräuchlich 3.6.2 Speicherhierarchie Computer verarbeiten Daten, diese müssen vor, während & nach Verarbeitung verwaltet, d.h. gelesen geändert & geschrieben werden - zunehmende Speicherkapazität - Steigende Zugriffszeit - Abnehmende Kosten Register: - sehr schnelle Speichereinheit - dient dazu, Daten & Befehle, die von CPU sofort benötigt werden, kurzzeitig zu speichern - integraler Bestandteil der Prozessorarchitektur - ermöglichen schnelle Durchführung von Operationen - Anzahl variiert in Abhängigkeit der CPU (üblich zweistellige Anzahl verschiedener Ausprägungen Prozessor-Cache: - kleiner, extrem schneller Speicher - direkt in oder nahe bei der CPU platziert - Hauptfunktion: Zugriff auf Daten & Befehle beschleunigen, die häufig von CPU genutzt werden -> verringert Zeit, die CPU braucht, um auf Daten aus dem langsameren Hauptspeicher (RAM) zuzugreifen -> Effizienz ist entscheidend für die Gesamtleistung des Computers - speichert Kopien von Daten & Befehlen, die aus Hauptspeicher abgerufen wurden und wahrscheinlich in naher Zukunft wieder benötigt wurden -> wenn CPU Daten benötigt, überprüft sie zuerst den Cache -> bei Cache-Hit erfolgt Zugriff viel schneller Bei Cache-Miss müssen Daten aus dem langsamerem Hauptspeicher geladen werden - nutzen das Lokalitätsprinzip -> es wird davon ausgegangen, dass Programme dazu tendieren, eine relativ kleine Menge von Daten & Befehlen wiederholt und in kurzer Zeit zu verwenden (räuml. & zeitl. Lokalität) - moderne Prozessoren verfügen oft über mehrere Ebenen v0n Caches -> Level1 (L1) Caches: schnellste & am nächsten an CPU-Kernen L2 Caches: größer, aber langsamer; dient als Puffer zw. L1 & L3 L3 Caches: größter, aber langsamster Cache; wird von allen CPU-Kernen gemeinsam genutzt - auch: Browser-Cache (Bilder, CSS-Dateien, etc.) Hauptspeicher: - Synonym: Arbeitsspeicher, RAM - Speicherort für Daten & Programme, auf die Prozessor schnell zugreifen muss - flüchtig -> Informationen gehen beim Unterbrechen der Stromversorgung verloren - bei zu wenig Arbeitsspeicher muss virtueller Arbeitsspeicher genutzt werden, der Systemperformance negativ beeinflusst Externer Speicher: - Varianten: HHD (Hard Disk Drive), SSD (Solid State Drive/Disk) - SSDs sind bis zu 100-mal schneller als HDD Bandlaufwerke: - werden v.A. für Archivierungszwecke verwendet - haben Zugriffszeiten im Sekunden-bis Minutenbereich Weitere externe Speichermedien: - Flash-Speicher in Form von USB-Sticks & Speicherkarten - Optische Speichermedien wie CDs und DVDs ROM (Read-Only Memory): kommt bspw. in Einsatz um Software (BIOS o. UEFI) zu speichern, die für den Start des Computers wichtig ist Network Attached Storage (NAS): - eigener Rechner mit einem Dateispeichersystem, das über ein Netzwerk auf Basis gängiger Netzwerkprotokolle mit mehreren Benutzern & Client-Geräten verbunden ist - ermöglicht zentrale Speicherung & Management von Daten und gemeinsamen Zugriff darauf - ideal für Heim- & Kleinunternehmensnetzwerke Storage Area Network (SAN): - hochleistungsfähiges Netzwerk, das Speichergeräte (Festplatten-Arrays & Bandbibliotheken) mit Servern verbindet - ermöglicht Servern, auf Speicherressourcen zuzugreifen, als wären sie lokal angeschlossen - werden oft in Unternehmen benutzt, um große Datenmengen effizient und zuverlässig zu speichern und zu verwalten - bieten hohe Geschwindigkeit & Flexibilität 3.6.4 Virtueller Speicher Konzept zum Speichermanagement in Computern, das dem Betriebssystem und den Anwendungen ermöglicht, über mehr Hauptspeicher (RAM) zu verfügen als physisch im Computer vorhanden ist -> Ein Teil der Festplatte (externer Speicher) wird als Erweiterung des RAM genutzt - Betriebssystem kümmert sich um die Verwaltung des virtuellen Speichers 3.7 Software Software kann in verschiedene Kategorien eingeteilt werden, deren Begriffe je nach Quelle variieren. Systemnahe Software: - dient als Schnittstelle zur Hardware - umfasst Firmware (BIOS, UEFI), Betriebssysteme, Treiber, grundlegende Dienstprogramme und grafische Benutzeroberflächen (GUI) Anwendungssoftware: baut auf dem Betriebssystem auf: -> Generische Anwendungsprogramme wie Office-Software sind vielseitig einsetzbar (COTS: einsatzbereit und ohne Anpassung verfügbar) -> Betriebliche Anwendungssoftware wie ERP- und CRM-Systeme wird oft als Standardsoftware gekauft und durch Customizing angepasst (Alternativ kann spezielle Software individuell entwickelt werden) Infrastruktursoftware: unterstützt Anwendungsprogramme, bietet jedoch keinen direkten Nutzen für Endanwender (Datenbanksysteme, Web- und E-Mail-Server) Entwicklungswerkzeuge: werden zur Softwareerstellung genutzt und während des Studiums praktisch erlernt 3.8 Rechnerklassen Klassifizierung anhand der Leistung: Supercomputer:- speziell optimierte Rechner, - werden v.A. für aufwändige Berechnungen benutzt Großrechner: - synonym: Mainframe, Host - Rechner für höchste Unternehmensanforderungen an Rechenleistung, Verfügbarkeit, Sicherheit & Mehrbenutzerbetrieb -> Typische Kunden: Banken & Versicherungen Minicomputer: - auch für mittelständische Unternehmen - meist proprietär (individuell nur von einem Hersteller verfügbar) -> erzeugt Abhängigkeit Workstation: - üblicherweise Desktop-Rechner für Benutzer mit höchsten Leistungsanforderungen (z.B. 2D- &3D- Animationen, CAD-Bearbeitung, KI-Anwendungen) - üblicherweise mit besonders viel Hauptspeicher & schnellen Prozessoren ausgestattet Personal Computer (PCs): - weit verbreitete Arbeitsplatzrechner für unterschiedliche Arbeitszwecke am Arbeitsplatz & im Privatbereich für Anwendungen aller Art - Ausstattung vielfältig Smartphone: - allgegenwärtig für vielzählige persönliche Aufgaben - dienen auch im Unternehmenseinsatz als Endgerät zum Zugriff auf Unternehmensanwendungen Computergestützte Geräte (embedded computing): -> intelligente Hausgeräte, Fahrzeuge, Smart Home Klassifizierung nach Einsatzgebiet & Nutzung: Endgeräte („Arbeitsplatzrechner“): Server-Rechner: - liefern Dienste aller Art über das Netzwerk für mehrere Benutzer - „Client-Server-Modell“ -> beschreibt eine bestimmte Idee einer Softwarearchitektur - typischerweise werden gängige PC-Komponenten verwendet, die sich aber dann in Server- Schränken in größerer Stückzahl einbauen lassen 3.9 Leistungsmessung Entscheidend für die Leistung des Gesamtsystems ist sowohl die Leistungsfähigkeit der einzelnen Komponenten als auch – noch wichtiger – das Zusammenspiel der Systemteile -> bei schwacher Komponente kann Gesamtsystem ausgebremst werden (Gesamtsystem = Hardware + Software) Gängige Kennzahlen: FLOPS (Floating Point Operations Per Second): - Maßeinheit, die die Leistungsfähigkeit eines Prozessors in Bezug auf seine Fähigkeit, Gleitkommazahlen zu verarbeiten, angibt - misst wie viele Gleitkommazahlen pro Sekunde durchgeführt werden kann - oft für Supercomputern & High-End-Recheneinlagen verwendet PCMark: - Benchmark für Standard-PCs - misst Leistung des Gesamtsystems in typischen Anwendungsszenarien 3.10 Moore’s Law Moore’s Law besagt, dass sich die Anzahl der Transistoren auf integrierten Schaltkreisen etwa alle zwei Jahre verdoppelt, was zu einer exponentiellen Steigerung der Rechenleistung führt. Obwohl physikalische Grenzen diese Entwicklung verlangsamen, bleibt das Konzept ein Leitfaden für technologische Innovationen und Kostenreduktionen in der IT. 3.11 Zukünftige Entwicklungen Disruptive Technologien ersetzen bestehende Systeme durch umfassend neue und überlegene Ansätze, wie etwa das WWW den Handel revolutionierte. Beispiele sind: Cloud Computing: Macht Rechenleistung zu einer standardisierten, bedarfsgerechten Dienstleistung, ähnlich wie Stromversorgung. Künstliche Intelligenz: Treibt durch leistungsfähige Hardware Produktivitätssteigerungen voran, birgt aber auch Risiken wie Arbeitsplatzverluste oder unkontrollierte KI-Systeme. Quantencomputing: Verspricht in spezialisierten Bereichen enorme Rechenleistung, könnte Verschlüsselungen obsolet machen, ist aber noch in der Forschungsphase. Diese Technologien prägen Gesellschaft und Wirtschaft zunehmend und erfordern Diskussionen über Chancen und Risiken. 4. Betriebssysteme -> systemnahe Software, die grundlegende Funktionen zur Verwaltung von Hardwareressourcen & zur Unterstützung von Anwendungsprogrammen auf einem Computer (o. digitalen Geräteplattform) bereitstellt -> Ebene zw. Hardware & Anwendungen -> steuern u.A. die Speicherverwaltung, Ein-&Ausgabegräte & Programme 4.3 Aufgaben eines Betriebssystems - Prozessverwaltung -> koordiniert Ausführung von Anwendungsprogrammen (Prozessen) auf dem Computer -> verwaltet kompletten Prozesslebenszyklus (Start, Ausführung, Überwachung & Beendigung) - Speicherverwaltung -> koordiniert Zugriff auf Hauptspeicher (um effiziente Nutzung sicherzustellen) & verwaltet virtuellen Speicher - Dateiverwaltung -> organisiert und verwaltet Dateien & Verzeichnisse auf Massenspeichergeräten wie Festplatten -> ermöglicht das Lesen, Schreiben, Suchen & Löschen von Dateien - Ein-/Ausgabe-Verwaltung -> steuert Kommunikation zw. Hardwaregeräten (Tastatur, Maus, Drucker, Bildschirm, usw.) und Anwendungssoftware -> sorgt für ordnungsgemäße Pufferung und Weiterleitung von Daten zw. Geräten und Programmen - Benutzerschnittstellen -> GUI, Kommandozeile - Prozess-Scheduling -> bestimmt, welcher Prozess als Nächstes auf dem Prozessor (CPU) ausgeführt wird - Benutzerverwaltung 4.4 Aufbau eines Betriebssystems - Kernel -> Kern des Betriebssystems, der grundlegende Systemfunktionen (Prozessverwaltung, Speicherverwaltung, Geräteverwaltung & Dateiverwaltung) bereitstellt - Treiber -> Softwaremodule, die Kommunikation zw. Betriebssystem & Hardwaregeräten (Drucker, Grafikkarten & Festplatten) ermöglichen - Systemdienste -> zusätzliche Dienste & Programme, die spezialisierte Aufgaben (z.B. Netzwerkverwaltung, Benutzerschnittstellen, Sicherheitskontrolle) ausführen - Bibliotheken -> Sammlungen von Funktionen & Ressourcen, die von Anwendungen verwendet werden, um auf Betriebssystemfunktionen zuzugreifen - Benutzungsschnittstellen -> Schnittstellen, über die Benutzer mit Betriebssystem interagieren können - Anwendungsprogramme -> Programme & Softwareanwendungen, die von oben genannten Schichten bereitgestellten Dienste nutzen  Alle arbeiten zusammen um grundlegende Funktionen bereitzustellen & Plattform für Ausführung von Anwendungssoftware zu bieten Terminal 6. Kodierung Darstellung von Zeichen & Text; Komprimierung; Verschlüsselung; Darstellung von Bildern & Multimedia; Netzwerkkommunikation Ein Bit -> 0 o. 1 6.4 Stellenwertsysteme 6.4.1 Binärsystem Basiszahl B = 2 Ziffernalphabet = {0,1} 8 Bits werden üblicherweise zu einem Byte umgewandelt -> darstellbarer Bereich eines Bytes: 00000000₂ bis 11111111₂ -> es lassen sich 256 verschiedene Werte darstellen Wie viele Bits benötigt man, um vier Himmelsrichtungen darzustellen? -> 2 Bits, da 2² = 4 Umrechnung -> Reste werden von unten nach oben gelesen und ergeben die oben genannte Binärzahl 100100 1 Darstellung negativer Zahlen Da bei einer Anzahl von Bits nicht explizit ein Bit für das Vorzeichen reserviert ist, wird das am weitesten links stehende Bit, das Most Significant Bit als Vorzeichen interpretiert -> 0 positiv; 1 negativ Bei n Bits lassen sich -2ⁿ⁻¹, … 0, 2ⁿ⁻¹ - 1 darstellen 6.4.2 Hexadezimalsystem Ziffernalphabet = {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F} 89 -> Reste von unten nach oben aufgelistet ergeben damit 6.4.3 Umrechnung in Python int() -> Dezimalzahl bin() -> Binärzahl (0b) hex() -> Hexadezimalzahl (0x) 6.5 Darstellung von Fließkommazahlen (bzw. Gleitkommazahlen) IEEE 754-Standard -> Darstellung einer reellen Zahl als Binärzahl Positiv (0); Negativ (1) Potenz, um die die Mantisse mit 2 potenziert wird Exponent ist in einer verschobenen Form (Bias) gespeichert, um negative Exponenten darstellen zu können Enthält die signifikante Stellen der Zahl Wird normalerweise als eine Zahl zwischen 1 und 2 dargestellt 6.6 Kodierung von Zeichen / Character Encoding -> Verfahren, das die Umsetzung von Zeichensätzen (Buchstaben, Zahlen, Sonderzeichen & Emojis) in ein Format ermöglicht, das von Computern verarbeitet werden kann 6.6.1 ASCII -> Kodierungsschema, das Buchstaben, Zahlen und andere Zeichen in (binäre) Zahlenwerte übersetzt Früher: 7-Bit Länge -> nur 128 Zeichen darstellbar, nur 95 druckbar (-> „whitespace”; z.B. Tabulator, Zeilenumbrüche) Heute: 8-Bit Länge -> 256 Zeichen (inkl. Ursprüngliche 128 Zeichen) Weitere Standards, die ASCII erweitern -> ISO 8859-14 (enthält deutsche Umlaute & französische Akzente) - Basis für komplexere Kodierungsschemata (z.B. UTF-8) - Problem: nur sehr beschränkter Umfang wird mit lateinischem Alphabet abgebildet -> Bildung & Etablierung des Standards Unicode (hier keine Umkodierung nötig, da ASCII-Zeichen auf gleichen Wert in Unicode gemappt sind) 6.6.2 Unicode -> Spezifikation, die jedem Zeichen auf der Welt eine einheitliche, eindeutige Nummer („code point“) vergibt -> Sprach- & Plattformunabhängigkeit möglich - Heutzutage am häufigsten verwendete Zeichenkodierung - Rückgriff auf Hexadezimalschreibweise - mögliche Werte: 0 bis 10FFFF , also ca. 1,1 Millionen Werte -> aktuell aber „nur“ 154.998 Zeichen beschrieben Man könnte für jedes Zeichen 32 Bits (4 Bytes) verwenden (UTF-32), dies wäre aber eine große Speicherverschwendung, da in üblichen Texten häufig nur normale Buchstaben verwendet werden und auch in einem Byte dargestellt werden können 6.6.3 UTF-8 -> am weitesten verbreitete Kodierung für Unicode-Zeichen - Kodierung in 1 bis 4 Bytes 6.7 Weitere Beispiele 6.7.1 Codierung von Farben - RGB-Farbraum (bzw. RGB-Code) -> Rot, Grün & Blau werden durch einen Wert von 0-255 (Sättigung) angegeben -> je Farbanteil wird 1 Byte zur Darstellung benötigt - Hexadezimal-Schreibweise - CMYK (Cyan, Magenta, Yellow, Black) -> wird im Druckbereich eingesetzt 6.7.2 QR-Codes -> speichert Daten in einer zweidimensionalen Matrix aus schwarzen & weißen Quadraten Jedes Quadrat repräsentiert binäre Informationen (schwarz = an, weiß = aus) Verschiedene Datentypen wie Text, URLs oder Kontakte können so kodiert werden - maximale Datenmenge: 2.956 Bytes - besitzen drei markante quadratische Ecken, die als Erkennungsmuster dienen und dem Scanner Orientierung, Größe und Winkel des Codes vermitteln - enthält auch Formatinformationen über verwendete Fehlerkorrektur und zu den codierten Daten selbst - integrierte Fehlerkorrektur für Beschädigungen o. Verschmutzungen 7. Python & Jupyter Notebooks 7.4.2 Markdown # Überschrift ## Unterabschnitt [Text zum Link](Link) 7.5.2 Boolesche Operationen 7.5.3 Hashing -> Prozess bei dem Daten in eine Zeichenkette (string) mit fester Länge umgewandelt werden -> „Hash-Wert“, „Hash-Code“ Wichtigste Merkmale: - Determinismus -> für dieselben Eingabedaten wird derselbe Hash-Code erzeugt (->Konsistenz) - Effizienz -> schneller Zugriff auf Daten, da anhand des Hash-Codes direkt auf gewünschten Datensatz zugegriffen werden kann - Unabhängigkeit von Eingabegröße -> immer feste Länge unabhängig von Größe der Eingabedaten - Verteilung -> Hash-Verfahren verteilt Hash-Codes gleichmäßig über verfügbaren Wertebereich Verwendung: Abspeichern von Passwörtern o. in einer Blockchain, Beschleunigung bei Daten(bank)zugriffen und weiteren kryptografischen Anwendungsfällen Objekte (in Python), deren Wert sich ändern können (mutable objects) sind nicht hash-bar, da sich dann ein anderer Hash-Wert ergeben könnte(?) 8. Reguläre Ausdrücke -> RegEx, regular expressions Für Anwendung regulärer Ausdrücke in Programmcode werden drei Dinge benötigt: 1. Zeichenkette(n) – die überprüft werden sollen 2. Regulärer Ausdruck – als Zeichenkette beschrieben 3. Programmbibliothek (package, Framework, o.ä.) – um regulären Ausdruck auf Zeichenkette anzuwenden Nach dem Import der Bibliothek re wird eine Datenstruktur (hier: Tuple) mit mehreren Zeichenketten definiert, die überprüft werden sollen. In der Variablen p wird der reguläre Ausdruck als sogenannter raw-String definiert dabei werden Escape-Sequenzen (\) ignoriert. Danach wird in einer Schleife jede einzelne Zeichenkette (z) mit der Funktion (match) auf den regulären Ausdruck hin überprüft und das Ergebnis in der booleschen Variablen test gespeichert. Danach wird 8.3.1 Funktionen zum Suchen - match: findet nur ein Vorkommen des regulären Ausdrucks und nur am Beginn der Zeichenkette -> bei Erfolg wird ein Match-Objekt zurückgegeben, ansonsten None - search: findet nur ein Vorkommen des regulären Ausdrucks an einer beliebigen Position der Zeichenkette -> bei Erfolg wird ein Match-Objekt zurückgegeben, ansonsten None - findall: findet alle – d.h. ggf. mehrere – Vorkommen des regulären Ausdrucks -> gibt diese (Teil-)Zeichenketen in einer Liste zurück - finditer: findet alle – d.h. ggf. mehrere – Vorkommen des regulären Ausdrucks -> gibt diese Vorkommen (als Match-Objekt(e)) in Form eines „Interators“ zurück (Rückgabe kann dann in einer Schleife behandelt werden) 8.4.2 Funktionen zum Verändern Methoden zum Verändern des Eingabe-Strings auf Basis eines regulären Ausdrucks: - split: Methode gibt eine Liste von Zeichenketten zurück. Der String wird an den Stellen geteilt, an denen der reguläre Ausdruck gefunden wird. Wird der reguläre Ausdruck nicht gefunden, enthält die Liste ein Element: den Original-String. - sub: findet alle, d.h. ggf. mehrere, Vorkommen des regulären Ausdrucks ersetzt diese durch einen anderen String modifizierter String wird zurückgegeben 8.4.3 Umgang mit dem Match-Objekt Ein Match-Objekt enthält Details zu einem erfolgreichen Treffer eines regulären Ausdrucks in einer Zeichenkette. Es ermöglicht den Zugriff auf Detailinformationen, z. B. über die Methode finditer, die mehrere Match-Objekte liefert. Besonders hilfreich ist es beim Zugriff auf Gruppen, die im regulären Ausdruck durch Klammern definiert sind. 8.5 Aufbau regulärer Ausdrücke 8.5.1 Metazeichen 8.5.2 Spezielle Sequenzen Eine spezielle Sequenz wird durch einen \ gefolgt von einem Kennzeichen angegeben 8.5.3 Mengen Innerhalb von eckigen Klammern [] kann eine Menge zulässiger Zeichen angegeben werden Zeichen ohne besonderer Bedeutung in Mengen (-> können direkt verwendet werden): + * | ( ) $ { } Beim Zeichen „-“ muss auf die Position geachtet werden, damit es nicht als von/bis interpretiert wird 8.5.4 Gruppierung -> ermöglichen die Adressierung von Teilstrings in einem zurückgelieferten Match-Objekt - werden im regulären Ausdruck durch normale Klammern () angegeben - Match-Objekt hat eine Methode groups(), die sämtliche Gruppen in einer Liste zurückliefert -> Zugriff auf einzelne Gruppe i mit group(i) - ist der Index höher als Anzahl der zurückgelieferten Elemente, so gibt es einen Laufzeitfehler 9. Netzwerke, Rechnernetze Rechnernetz =Zusammenschluss von mehreren Computern und anderen Geräten, die über Kommunikationsmedien (Kabel, WLAN) miteinander verbunden sind, um Daten auszutauschen und auf (entfernte) Ressourcen zuzugreifen -> Vernetzung ermöglicht es Benutzern & Anwendungen, Informationen effizient zu teilen und Kommunikationsdienste wie E-Mail, Dateiübertragungen und den Zugriff auf das Internet zu nutzen Elemente eines Rechnernetzes: - mehrere ( Architekturmodell für Rechnernetze, bei dem Netzwerkdienste zw. 2 Arten von Softwareagenten aufgeteilt sind: Clients & Server Server - Programm (Software) das Dienste, Ressourcen o. Dateien bereitstellt - wartet auf Abfragen von Clients - können verschiedene Arten von Diensten anbieten -> Webseiten, Dateien, Datenbankzugriffe o. Anwendungslogik Client - Programm, das auf die Dienste o. Ressourcen zugreift, die vom Server bereitgestellt werden - sendet Anfragen über das Netzwerk an den Server - kann ein Benutzer-Endgerät, aber auch ein anderer Server sein „Anfrage-Antwort-Kommunikation“ bzw. „Request-Response-Prinzip“ -> Client sendet Anfrage (Request) an Server (um bestimmten Dienst zu nutzen o. Daten abzurufen), der Server verarbeitet diese Anfrage und sendet eine entsprechende Antwort (Response) zurück -> zentrale Verwaltung von Ressourcen & Diensten ≠ Peer-to-peer-Struktur (P2P) -> 2 Rechner sind miteinander verbunden, die keine klare (logische) Aufteilung auf die Rollen Client & Server haben; decken je nach Bedarf beide Rollen ab 9.3.2 Klassifizierung gemäß räumlicher Ausdehnung Local Area Network (LAN) -> verbindet Geräte innerhalb eines relativ kleinen & begrenzten Bereichs (z.B. Haus o. Bürogebäude) Personal Area Network (PAN) -> Vernetzung von Geräten innerhalb der unmittelbaren Umgebung einer Person (z.B. Bluetooth, NFC) Body Area Network (BAN) -> Körpernahe Geräte Wide Area Network (WAN) -> erstreckt sich über große geografische Entfernungen -> Städte, Länder o. sogar Kontinente -> verbindet mehrere kleine Netzwerke (LANs, MANs) miteinander -> typischerweise über Leitungen, Satellitenverbindungen, öffentl. Netzwerken Global Area Network (GAN) -> erstreckt sich über den ganzen Globus -> oft durch Verknüpfung von WANs verschiedener Länder 9.3.3 Paketvermittlung Das Internet basiert auf dem Prinzip der Paketvermittlung -> Netzwerktechnologie, bei der Nachrichten in kleinere Einheiten („Pakete“) unterteilt und dann unabhängig voneinander über Netzwerk zum Ziel gesendet werden -> jedes Paket wird individuell geroutet -> effiziente Nutzung der Netzwerkressourcen, Erhöhung der Flexibilität & Skalierbarkeit des Netzwerks -> jedes Paket enthält auch Steuerinformationen (Adresse des Absenders & Empfängers) & Sequenzinformationen (korrekte Wiederzusammenstellung der ursprünglichen Nachricht beim Empfänger) -> alle Datenpakete werden im Internet gleichbehandelt, ohne Rücksicht auf Inhalt, Ursprung o. Ziel -> Netzneutralität fordert dass Internetdienstanbieter alle Daten gleich behandeln Paketvermittlung ≠ Leitungsvermittlung -> Technologie, bei der für die Dauer einer Kommunikationsverbindung ein fester Übertragungsweg zwischen zwei Punkten reserviert wird Kommunikationsarten: verbindungsorientiert -> vor eigentlichen Datenübertragung wird eine (logische) Verbindung aufgebaut, die nach Übertragung wieder abgebaut wird -> hohe Zuverlässigkeit verbindungslos -> einfacher, aber Pakete können fehlerhaft sein bzw. verloren gehen 9.3.4 (Offene) Standards Offene Kommunikationsstandards gewährleisten Interoperabilität zwischen Geräten und Systemen unterschiedlicher Hersteller gemeinsame Protokolle und Schnittstellen ermöglichen nahtlose Zusammenarbeit von Netzwerkkomponenten. fördern Innovation und Verbreitung neuer Technologien & erleichtern Skalierbarkeit und Erweiterung von Netzwerken unterstützen ein globales, offenes Internet mit universeller Kommunikationsinfrastruktur tragen zur technologischen Vielfalt, Wettbewerbsfähigkeit und technischem Fortschritt bei 9.3.5 Übertragungsmedien Kabelgebundene Medien Kupferkabel: -> eignen sich für Geschwindigkeiten bis Gbit/s auf kurzen Strecken, preiswert und leicht zu verlegen Twisted Pair-Kabel: -> bestehen aus Paaren von verdrillten Kupferdrähten -> weit verbreitet in LANs Koaxialkabel: -> bestehen aus einem zentralen Kupferleiter, einem metallischen Schild & einer äußeren Isolierschicht -> Kabelnetze & Breitbandinternet Glasfaserkabel, Lichtwellenleiter: -> übertragen Daten als Lichtimpulse über dünne Glasfasern -> bieten sehr hohe Bandbereiten & Übertragungsraten über große Entfernungen -> immun gegen elektromagnetische Interferenzen -> Nutzung für Backbones in Netzwerken, Verbindung zw. verschiedenen Netzwerken Drahtlose Medien Wi-Fi: -> am weitesten verbreitete Technologie für drahtlose lokale Netzwerke (WLANs) -> bietet Hochgeschwindigkeits-Internetzugang & Netzwerkkonnektivität für Computer, Smartphones, Tablets und mehr Long Term Evolution (LTE) & 5G: -> Mobilfunktechnologien, die breitbandige Internetverbindungen über weite Distanzen bieten -> 5G höhere Geschwindigkeiten, geringere Latenz & verbesserte Kapazitäten Satellitenkommunikation: -> globale Abdeckung -> für GPS-Dienste, weltweite Internetzugänge, Fernsehübertragungen & Kommunikation in abgelegenen o. schwer zugänglichen Gebieten Bluetooth: -> für drahtlose Kurzstreckenkommunikation -> Verbindung von Peripheriegeräten (Headsets, Tastaturen, Mäuse) & Datenaustausch zw. mobilen Geräten Near Field Communication (NFC): -> sichere Kommunikation zw. Geräten über kurze Distanzen (wenige cm) -> für kontaktloses Bezahlen, einfache Datenübertragungen, Zugangskontrollen 9.3.6 Aktive & passive Netzwerkkomponenten Passive Netzwerkkomponenten: -> benötigen keine eigene Energiequelle -> führen keine aktive Verarbeitung der Daten durch -> dienen hauptsächlich dazu, verschiedene Netzwerkteile miteinander zu verbinden & physische Infrastruktur des Netzwerks bereitzustellen --> bsp: Verkabelung, Netzwerksteckdosen Aktive Netzwerkkomponenten: -> Geräte, die elektrische Energie benötigen, um zu funktionieren -> können Daten(pakete) verstärken, umwandeln, verarbeiten & weiterleiten -> spielen zentrale Rolle in der Netzwerkinfrastruktur -> Grundlage für Datenübertragung & -kommunikation Beispiele: - Netzwerkkarten - Router verbinden mehrere Netzwerke miteinander & leiten Datenpakete basierend auf deren Zieladressen weiter - Switches verbinden Geräte innerhalb desselben Netzwerks (LAN) & leiten daten an das richtige Gerät weiter - Repeater & Hubs nehmen Signale entgegen, verstärken diese bei Bedarf & leiten sie an angeschlossene (End-)Geräte weiter - WLAN Access Points ermöglichen kabellosen Geräten die Verbindung zu einem kabelgebundenen Netzwerk -> erweitern Netzwerkabdeckung - Firewalls überwachen den ein- und ausgehenden Netzwerkverkehr & entscheiden über Weiterleitung o. Blockierung von Datenpaketen -> können hard- und softwarebasiert sein 9.3.7 Netzwerktopologien -> Anordnung und physisches bzw. logisches Muster, in dem Knoten (Computer, Drucker, Server) & Verbindungsleitungen (Kabel, drahtlose Verbindungen) eines Netzwerks angelegt sind -> definiert, wie Geräte miteinander verbunden sind und wie sie kommunizieren Verschiedene Netzwerktopologien: Punkt-zu-Punkt, Linie, Bus, Stern,... 9.3.8 Übertragungsraten (bzw. Bandbreite) -> messen die Menge der Daten, die innerhalb einer bestimmten Zeit über eine Internetverbindung übertragen werden können (üblich in MBit/s o. GBit/s) Download-Geschwindigkeit Misst, wie schnell Daten aus dem Internett heruntergeladen werden können -> entscheidend für Streaming von Videos, Laden von Webseiten & Herunterladen von Dateien Upload-Geschwindigkeit Gibt an, wie schnell Daten von einem Gerät ins Internet hochgeladen werden können -> wichtig für Senden von E-Mails (mit großen Anhängen), Online-Gaming, Video-Konferenzen & Hochladen von Dateien in die Cloud -> Datenmenge i.d.R. in Bytes (8Bits), Übertragungsrate in Bits Außerdem sind die Unterschiede zwischen beispielsweise Megabytes (MB) und Mebibytes (MiB) zu beachten. Der Unterschied zwischen einem MB (8·106 = 8.000.000 Bits) und einem MiB (8·220 = 8.388.608 Bits) beträgt immerhin etwa 4,86 % Auch entscheidend für die Leistungsfähigkeit eines Rechnernetzes: Latenz (Verzögerung) -> Verzögerung zwischen Versenden & Ankunft des ersten Datenbits einer Meldung -> ergibt sich aus Verzögerung beim Verschicken, Signallaufzeit über das Medium & Verzögerung beim Empfangen einer Bitfolge -> wird in ms (Millisekunden) angegeben --> es kommt nicht nur auf (theoretische) Datenübertragungsrate an, sondern auch auf notwendige Verarbeitungsschritte an jeweiligen Endgeräten 9.3.9 Netzwerkvirtualisierung -> Technik, mit der man Hardware-Ressourcen in mehrere virtuelle Einheiten aufteilen kann, die unabhängig voneinander Arbeiten -> üblicherweise mithilfe von Software, die eine Abstraktionsschicht zw. physischen Hardware und darauf laufenden virtuellen Maschinen o. Systemen bildet -> Steigerung der Effizienz, bessere Ausnutzung der vorhandenen Hardware-Ressourcen, Vereinfachung der Verwaltung und des Betriebs von IT-Infrastrukturen VLAN (Virtual Local Area Network) -> Technik zur Segmentierung (Unterteilung) von Netzwerken - ermöglicht logisch getrennte Netzwerke auf derselben physischen Hardware zu erstellen -> Netzwerkadministratoren können Gruppen von Geräten unabhängig von ihrer physischen Lage in unterschiedl. Netzwerksegmente einteilen -> verbessert Sicherheit, Leistung & Verwaltung des Netzwerks - ermöglicht softwareseitige Netzwerkänderungen, ohne dass physische Verkabelungen geändert werden müssen -> Flexibilität - isolieren Netzwerkressourcen -> Reduzierung von Netzwerkverkehr & Verbesserung der Sicherheit VPN (Virtual Private Network) -> Technologie, die eine sichere Verbindung über ein unsicheres Netzwerk (z.B. Internet) ermöglicht - erlaubt Nutzern, Daten als ob sie durch ein privates Netzwerk übertragen würden, sicher zu senden & zu empfangen -> verwendet verschlüsselte Tunnel - zur Sicherung der Verbindung zu Firmennetzwerken von externen Standorten - zum Schutz der Privatsphäre & Anonymität der Nutzer beim Surfen im Internet - ermöglichen geografische Einschränkungen & Zensur zu umgehen -> Zuweisen einer IP-Adresse aus einem anderen Land Bsp. an Hochschule: Der Benutzer startet auf seinem Endgerät einen VPN-Client, der über die vorhandene Internet-Verbindung eine (gesicherte) Verbindung zum VPN-Gateway (Software an der Hochschule) herstellt. Dann erhält der Rechner des Benutzers eine IP-Adresse aus dem Pool der Hochschule, womit er sich anderen Diensten als Rechner aus dem Hochschulnetz präsentiert 9.4 Netzwerkprotokolle 9.4.1 Protokolle -> System von Regeln, das die Kommunikation o. Datenaustausch zw. Partnern ermöglicht - definiert bspw. Das Format, die Reihenfolge der Nachrichten, die Art und Weise wie Kommunikationsteilnehmer miteinander interagieren und Daten austauschen - Netzwerke bedienen sich typischerweise verschiedener Protokolle -> Netzprotokolle, Netzwerkprotokolle Schichtenmodelle -> dienen zur Beherrschung von Komplexität, häufig in der Informatik und Computernetzwerken eingesetzt - untergeordnete Schichten übernehmen Aufgaben und bieten Dienste (Services) für übergeordnete Schichten an -> Bsp: eine Schicht sorgt für vollständige Datenübertragung, indem sie verlorene Datenpakete erneut anfordert - Schichten sind unabhängig; Protokolle können ausgetauscht werden, ohne andere Schichten zu beeinträchtigen -> reduziert Komplexität, vereinfacht die Realisierung der Netzwerkfunktionalität 9.4.2 ISO/OSI-Referenzmodell -> Modell aus 7 Schichten (layers) mit verschiedenen Aufgaben - Auf jeder Schicht gibt es eigene, oft mehrere alternative (echte) Protokolle - Zuordnung zu Schichten oft nicht eindeutig -> in Realität gibt es Protokolle, die mehrere Schichten abdecken - bei Kommunikation v. 2 Datenstationen müssen beide Partner das gleiche Protokoll beherrschen „das gleiche Protokoll sprechen“ Schicht 7 – Anwendungsschicht -> anwendungsbezogene Kommunikation - Anwendungsprogramme nutzen Protokolle, um Daten zu versenden und zu empfangen -> z.B. HTTP-Statuscodes: 200 -> Webseite erfolgreich geladen -> HTML-Inhalt 404 -> Ressource nicht verfügbar -> Anwendungsschicht liefert diese Status-& Fehlercodes - Anwendung selbst (z.B. Webbrowser, E-Mail-Programm) gehört nicht zur Anwendungsschicht! Schicht 6 – Darstellungsschicht (presentation layer) - zu übertragende Daten werden aufbereitet (Kodierung) und bei Bedarf übersetzt -> kann von beiden Kommunikationspartnern richtig interpretiert werden - Ver-& Entschlüsselung und Komprimierung der Daten Schicht 5 – Sitzungsschicht (session layer) - Etablierung einer zeitl. begrenzten Sitzung -> Austausch von Daten bedeutet oft eine wiederholte Kommunikation - Verbindungsaufbau (Anmeldung, eindeutige Identifikation), eigentlicher Austausch & anschließend Abbau der Verbindung (Abmeldung) anwendungsorientiert __________________________________________________________________________ _____ transportorientiert Schicht 4 – Transportschicht (transport layer) - stellt übergeordnete Schichten fehlerfreien Datenstrom für die Anwendungen auf Ende-Zu-Ende-Basis zur Verfügung -> Aufteilung der Daten in einzelne Segmente beim Sender -> Zusammenfügen der Segmente beim Empfänger - üblicherweise Bestandteil des Betriebssystems Schicht 3 – Vermittlungsschicht (network layer) -> logische Adressierung der Endgeräte - optimaler Weg durch das Netzwerk der Datenpakete vom Sender zum Empfänger muss bestimmt werden -> „Routing“ - in Geräten (Routern) sind unterschiedliche Routing-Algorithmen realisiert -> z.B. Sender & Empfänger durch IP-Adressen identifiziert (MAC-Adresse an Gerät gebunden, IP- Adresse an Netzwerk) Schicht 2 – Sicherungsschicht (data link layer) - zuständig für zuverlässige & fehlerfreie Datenübertragung - Daten werden in „Frames“ unterteilt - Sender ergänzt Prüfziffern für einzelne Frames, die der Empfänger zur Prüfung nutzen kann - Datenflusskontrolle kann erfolgen -> Empfänger steuert Sende-Geschwindigkeit - auch zuständig, um Kollisionen im Netzwerk zu erkennen & vermeiden Schicht 1 – Bitübertragungsschicht, physische Schicht (physical layer) -> Übertragung der Bits - legt fest, wie die Bits über das Übertragungsmedium (z.B. Kupferkabel, Glasfaserkabel, drahtlose Funkmedien) übertragen werden -> elektrische & mechanische Funktionen benötigt - Physischer Datenfluss: beim Sender oben nach unten; beim Empfänger unten nach oben - logischer (gedanklicher) Datenfluss: direkte Kommunikation zwischen entsprechenden Schichten - Schichten abstrahieren von darunterliegenden, Netzwerke werden als leistungsfähig und sicher vorausgesetzt - bei Paketvermittlung ergänzt jede beteiligte Protokollschicht ihre eigenen Steuerungsdaten 9.4.3 TCP/IP-Modell -> Grundlage des heutigen Internets Intranet: organisationsinterne Daten-, Dokumentations- & Kommunikationsplattform -> technisch wie Internet aufgebaut -> auf unterschiedliche Arten vor fremden Zugriffen geschützt Extranet: privates Netzwerk für Unternehmen -> sicherer Austausch mit Geschäftspartnern, Lieferanten, Kunden o. anderen externen Parteien Schicht 4 – Anwendungsschicht -> fasst Schichten 5-7 aus ISO/OSI-Modell zusammen - alle Protokolle, die von Anwendungen direkt genutzt werden (nicht von anderen Schichten) - Bsp.: Im WWW -> HTTP, HTTPS (verschlüsselter Dateninhalt) Emails -> SMTP, IMAP Transfer v. Dateien -> FTP Schicht 3 – Transportschicht -> entspricht Schicht 4 aus ISO/OSI-Modell - Ende-zu-Ende-Protokoll - TCP ist verbindungsorientiert -> Verbindung wird explizit geöffnet & geschlossen - IP-Adresse & konkrete (End-) Anwendung wird über einen Port adressiert -> IP-basierter Endpunkt (bestehend aus IP-Adresse & Port) wird „Socket“ genannt - TCP sorgt für Fehlerkorrektur (verlorengegangene o. fehlerhafte Pakete werden automatisch vom Client neu angefordert) Schicht 2 – Internetschicht -> entspricht Schicht 3 aus ISO/OSI-Modell - es kommen die (logischen) IP-Adressen zum Einsatz - IP-Adressen werden von Routern für die Weiterleitung vom Sender zum Empfänger genutzt -> Routing Schicht 1 – Netzzugangsschicht -> fasst Schichten 1 & 2 aus ISO/OSI-Modell zusammen - gängiges LAN basiert auf Ethernet-Standard, häufig ergänzt durch ein WLAN-Angebot Das Internet Protocol (Internetschicht) - Jeder Rechner im Internet wird über eine IP-Adresse eindeutig identifiziert -> über diese Adresse baut die Internetschicht die Verbindung auf -> die Verbindung auf dieser Ebene ist bereits unabhängig vom Übertragungsmedium - IP ist zustandslos & verbindungslos - anhand der IP-Adresse wird ein Datenpaket vom Start- an den Zielrechner verschickt -> finden des Verbindungsweges via Routing - gesamte Datenmenge besteht aus mehreren Datenpaketen, die unterschiedliche Wege nehmen können - IP-Adresse eines Rechners bzw. Netzwerkadapters kann fest zugeordnet & konfiguriert werden oder dynamisch vergeben werden -> Server, Peripheriegeräte (z.B. Netzwerkdrucker) & Router feste IP-Adresse -> Arbeitsplatzrechner & Mobilgeräte dynamische Zuweisung - 2 Versionen: IPv4 (4Bytes), IPv6 (16Bytes) -> werden parallel eingesetzt -> Unterschied: Anzahl der möglichen Adressen (Größe des Adressraums) IPv4 Adressen werden oft in sogenannten Adressklassen eingeteilt; sie werden anhand des bzw. der führenden Bit(s) eingeteilt Besondere IPv4-Adressen: - „Loopback-Adresse“ 127.0.0.0/127.0.0.1: dient der internen Kommunikation auf demselben Rechner. -> Alias: localhost -> häufig genutzt bei der Entwicklung von Web-Anwendungen -> nicht über das Netzwerk zugreifbar, schützt vor externem Zugriff (Klasse A) - IP-Adressen im Privathaushalt: Bereich 192.168.0.0 – 192.168.255.255: für privaten Gebrauch reserviert -> (z.B. WLAN-) Router ordnet Datenverkehr zwischen privaten Adressen und dem Internet zu -> NAT (Network Address Translation) übersetzt private IP-Adressen in öffentliche IP-Adressen & umgekehrt -> ermöglicht Zugriff auf Internet über eine gemeinsame öffentliche Adresse - (IP-)Broadcast: erreichen aller Rechner in einem lokalen Subnetz -> spezielle Adresse, die typischerweise mit.255 endet IPv6 -> 128 Bits werden in 8 Blöcke à 16 Bits eingeteilt, diese 16 Bits in Blöcke à 4 Bits -> diese werden dann als Hexadezimalziffer angezeigt Bsp.: 2a02:8071:c84:7940:87ba:75c0:6e08:962f - besteht i.d.R. aus 2 gleich großen Teilen: Network Prefix & Interface Identifier Netz bzw. Subnetz Host - nicht nur mehr mögliche Adressen, auch schnelleres Routing als IPv4 „Dual Stack“: Parallelbetrieb von IPv4 & IPv6 -> verursacht Aufwände, da u.a. Konfigurationen von aktiven Netzwerkkomponenten erweiter werden müssen (z.B. Firewall-Regeln) DNS (Domain Name System) -> kümmert sich um die Namensauflösung z.B. www.taxxas.com bekommt IP-Adresse 81.169.145.95 - „Domain Name Server“ verwalten Einträge (ähnlich wie Telefonbuch) -> gibt Benutzer eine Webadresse im Browser ein, so wendet sich der Rechner an einen DNS-Server und arbeitet danach mit der IP-Adresse weiter URL (Uniform Resource Locator) -> gibt den Ort einer Ressource an (häufig für WWW) - URN bezeichnet einen eindeutigen Ressourcennamen, der aber nicht zwingend direkt über das Internet aufzufinden ist - URI bildet Überbegriff für URLs & URNs 9.8 Netzwerk-Workshop ping -> Netzwerkadresse (IP-Adresse) wird kontaktiert, um zu überprüfen, ob der andere Netzwerkteilnehmer erreichbar ist - für IPv4- & IPv6-Adressen nutzbar - eine Firewall kann so konfiguriert werden, dass ping-Anfragen ignoriert werden, somit der Befehl keine (positive) Antwort liefert netstat (network statistics) -> Erkunden & Prüfen von Netzwerkverbindungen 10. Cloud Computing 10.3 Virtualisierung -> Technik, bei der man mehrere virtuelle Computer auf einer einzigen physischen Hardware laufen lassen kann -> mehrere Betriebssysteme gleichzeitig auf einem einzigen physischen Server - fügt eine Abstraktionsschicht über der physischen Hardware ein, sodass anstelle der physischen Hardware virtuelle Maschinen verwendet werden - kann sich auch auf andere Aspekte z.B. Speicher o. Computernetzwerke beziehen - es wird ein Hypervisor benötigt -> 2 Formen: Typ-1-Hypervisor -> direkt auf der Hardware Typ-2-Hypervisor, „hosted“-> setzt auf einem installierten Betriebssystem auf (z.B. VirtualBox) --> Virtualisierung ist Grundlage für das Cloud Computing, weil Abstraktionsschicht es den Cloud-Anbietern erst ermöglicht, die entsprechende Umgebung nach Bedarf bereitzustellen 10.4 Definition & Merkmale Cloud Computing -> Modell, bei dem Rechenressourcen (Server, Speicher, Datenbanken, Anwendungen) über das Internet bereitgestellt & genutzt werden, anstatt lokal auf einzelnen Computern o. Servern zu installieren - ermöglicht Benutzern & Unternehmen auf Anwendungen & Daten von überall aus zuzugreifen -> wobei Rechenleistung & Speicherung von entfernten Rechenzentren bereitgestellt werden 5 Merkmale: On-demand self-service (Selbstbedienung nach Bedarf) -> Nutzer können Cloud-Ressourcen nach Bedarf eigenständig auf Knopfdruck bei Cloud-Anbieter bestellen, bereitstellen und verwalten -> keine langwierigen Genehmigungs- oder Bereitstellungsprozesse erforderlich Broad network access (umfassender Zugang über Netzwerk/Internet) -> Cloud-Dienste sind über das Internet nahezu jedem Gerät mit Netzwerkzugang & geeigneter Authentifizierung zugänglich Resource pooling (Bündelung von Ressourcen) -> Anbieter (Cloud-Provider) kann mehrere Kunden (Mandanten, Tenant) von einer gemeinsamen Plattform aus bedienen -> jeweilige Dienste sind streng voneinander getrennt & isoliert -> multi-tenancy: Konzept, Infrastruktur & Dienste des Cloud-Providers von mehreren Tenants gleichzeitig genutzt werden können -> mehrere unterschiedliche Organisationen o. Einheiten können ihre Ressourcen auf derselben physischen Infrastruktur und denselben Diensten teilen, während sie dennoch voneinander getrennt & isoliert sind Rapid elasticy (schnelle Elastizität bzw. Skalierbarkeit) -> Cloud-Ressourcen können schnell und automatisch skaliert werden, um sich ändernden Anforderungen gerecht zu werden -> Unternehmen können Ressourcen je nach Bedarf erhöhen o. reduziert, um Kosten zu optimieren Measured service (Überwachung der Ressourcennutzung) -> Nutzer müssen nur für verwendete Ressourcen bezahlen SLA (Service Level Agreement): vertragliche Vereinbarung zw. Dienstleister & Kunden, die Erwartungen, Verpflichtung & Qualitätsstandards für bestimmten Service o. Dienstleistung festlegt -> definiert Garantien & Leistungsversprechen eines Cloud-Providers 10.5 Service-Modelle -> strukturierte Methode o. Rahmenwerk, das die Art und Weise beschreibt, wie Dienstleistungen o. Services bereitgestellt, verwaltet & konsumiert werden -> definiert Rollen & Verantwortlichkeiten der verschiedenen Parteien, die in Prozess der Bereitstellung & Nutzung von Diensten involviert sind IaaS (Infrastructure as a Service) Cloud-Provider stellt grundlegende IT-Infrastrukturkomponente (virtuelle Maschinen, Speicher, Netzwerkressourcen) zur Verfügung -> Kunden können Ressourcen nutzen, um eigene Anwendungen & Dienste zu entwickeln, betreiben & verwalten PaaS (Platform as a Service) Cloud-Provider stellt eine Entwicklungsplattform bereit -> Kunden können auf der Plattform Anwendungen entwickeln, bereitstellen & verwalten -> z.B. Middleware, Datenbanken & Entwicklungstools SaaS (Software as a Service) Kunden erhalten vollständige Softwareanwendungen o. Dienste -> können über Internet genutzt werden, ohne dass sie die zugrunde liegende Infrastruktur o. Plattform verwalten müssen -> z.B. E-Mail-Dienste, CRM-Software, Kollaborationstools --> unterschiedliche Abstraktionsebenen und Grad an Kontrolle über IT-Ressourcen Je nach Anforderungen & Präferenzen der Kunden XaaS „Everything-as-a-Service” Sammelbegriff für alle cloudbasierten Service-Modelle Speicherung & Verwaltung v. Daten und Diensten auf lokalen physischen Servern nennt man „on-premise“ -> oft mehr Kontrolle & Anpassungen, aber Cloud-Dienste ermöglichen größere Skalierbarkeit, Flexibilität und können kosteneffizienter sein 10.6 Liefermodelle -> Art und Weise, wie Cloud-Dienste & -Ressourcen an Nutzer bereitgestellt werden Public Cloud - Bereitstellung über öffentliches Internet von Drittanbietern -> für jedermann zugänglich - z.B. Amazon Web Services, Microsoft Azure, Google Cloud Platform Private Cloud - ausschließlich für eine einzige Organisation - kann intern gehostet oder von Drittanbieter verwaltet werden Hybrid Cloud - Kombination aus Public Cloud (für weniger kritische Daten) und Private Cloud (für sensible Anwendungen) Community Cloud - Wird von mehreren Organisationen mit gemeinsamem Interesse geteilt - ähnelt Private Cloud, wird aber von einer spezifischen Gemeinschaft o. Gruppe von Organisationen mit ähnlichen Anforderungen genutzt 10.8 Problemfelder & Risiken - Datensicherheit & Datenschutz -> Daten anfällig für Cyberangriffe, Datenlecks & unbefugten Zugriff - Compliance & rechtliche Frage -> Nutzung von Cloud-Diensten müssen mit Datenschutzgesetzen & branchenspezifischen Vorschriften übereinstimmen - Verfügbarkeit & Zuverlässigkeit -> Abhängigkeit v. Internetverbindung, potenzielle Ausfallzeiten des Cloud-Anbieters - Kostenmanagement -> Kosten können mit zunehmender Datenspeicherung & -nutzung unerwartet steigen - Vendor Lock-in -> Wechsel zu anderem Cloud-Anbieter kann schwierig sein (andere Technologie, Standards & Schnittstellen) -> Abhängigkeit von einem bestimmten Anbieter - Bandbreitenbeschränkungen - Performance & Latenz -> v.a. bei ressourcenintensiven Anwendungen, wenn Cloud-Server geografisch weit weg entfernt ist - Management und technisches Know-how -> technisches Wissen erfordert 11. Web-Architekturen 11.3 Begriffe Homepage -> ausschließlich die Startseite des Webauftritts Website -> gesamter Webauftritt Webseite -> Bestandteile einer Website Internet ≠ WWW -> Dienst, der auf Infrastruktur des Internets basiert Intranet -> technisch wie Internet aufgebaut, aber vor fremden Zugriffen geschützt & stellt über Web-Schnittstelle umfangreiche Informationen zur Verfügung Extranet -> privates Netzwerk für Unternehmen & Geschäftspartnern, Lieferanten, Kunden Statische Webseiten -> werden so dargestellt, wie sie bei der Entwicklung erstellt und auf dem Webserver gespeichert wurden ⁃ Bei Aufruf wird der Inhalt an Aufrufer (üblicherweise ein Webbrowser) gesendet ⁃ Webserver tätigt keine Aktivitäten zur Aktualisierung -> Performance vergleichsweise sehr gut ⁃ Als Technologien kommen vor allem HTML und CSS zum Einsatz ⁃ bei Bedarf ergänzt um JavaScript für einfache Animationen oder ausklappende Menüs etc. ⁃ Softwarewerkzeuge, die statische Webseiten generieren, helfen bei der Berücksichtigung wiederkehrender Elemente auf mehreren Webseiten ohne Codeduplizierung ⁃ Aufgrund der fest definierten Inhalte eignen sich statische Webseiten für das Anbieten von Informationen, die sich selten ändern -> Statische Webseiten sind der Einstieg in die Webentwicklung und bilden auch die Basis für dynamische Webseiten Dynamische Webseiten -> konkrete Webseite wird erst zum Zeitpunkt des Aufrufs (in Echtzeit) erzeugt - individuelle Faktoren fließen ein, die sogenannte Personalisierung - dominieren das WWW und -> soziale Netzwerke, Online-Shops, Foren etc. 11.3.5 Exkurs 1: Schicht / layer vs. Ebene / tier Web-Anwendungen basieren auf einer Aufteilung in 3 Schichten (Web-Architektur) -> Darstellungsschicht -> Anwendungsschichte -> Datenschicht Nur benachbarte Schichten arbeiten zusammen, nicht „kreuz und quer“ Werden diese Schichten auf getrennter Infrastruktur (-> verschiedenen Rechnern) verteilt, spricht man von Ebenen -> tiers & layers können sich unabhängig voneinander betrachten lassen 11.3.6 Exkurs 2: Architektur Architektur = zweckbestimmte Gestaltung von Systemen und deren Aufbau und Zusammensetzung aus verschiedenen Komponenten (Bausteinen, Elementen) sowie deren Zusammenwirken Softwarearchitektur = (logischer) Aufbau einer Softwareanwendung (Web-Architektur als spezielle Softwarearchitektur) Systemarchitektur = neben Software auch zugehörige Hardware kümmert sich darum, dass Hardware so leistungsfähig ist, um gleichzeitige parallele Zugriffe in Webshop, in akzeptabler Zeit verarbeitet werden können Unternehmensarchitektur = Gesamtgerüst aus unternehmerischen Zielen & (Geschäfts-) Strategie, Management (der zugehörigen Geschäftsprozesse) und Abbildung dieser in IT-Systemen (Hardware, Netzwerk, Software) 11.4 Typischer Aufbau einer Webanwendung 11.4.1 Drei-Schichten-Architektur Präsentationsschicht (Darstellungsschicht, GUI, presentation layer) -> verantwortlich für Darstellung der Daten & Interaktion mit Benutzer -> übernimmt Eingabe & Anzeige v. Informationen -> kommuniziert mit Anwendungsschicht, um Anfragen & Datenverarbeitung zu steuern Anwendungsschicht (Geschäftslogikschicht, logic layer) -> implementiert Geschäftslogik & verarbeitet Anfragen der Präsentationsschicht -> steuert Datenfluss zw. Präsentations- & Datenschicht -> führt zentrale Funktionen der Anwendung aus Datenschicht (data layer) -> für Speicherung, Verwaltung & Abfrage der Daten verantwortlich -> stellt Verbindung zu Datenbanken o. anderen Speichermechanismen her -> sorgt dafür, dass Daten sicher & effizient abgerufen & gespeichert werden können 11.4.2 Dreischichtige Web-Architektur Zuständig: Darstellung für Nutzer -> Webbrowser Aufbereitung der Webseiten & bspw. Prüfung der Eingabedaten -> Webserver Browser-Engine übernimmt das „Rendering“ (Interpretation der HTML- & CSS-Informationen) Diese Informationen werden in einen DOM-Baum (Document Object Model) aufgebaut und dem Benutzer präsentiert Im einfachsten Fall liefert Webserver aus dem Dateisystem vorgefertigte Dateien - HTML-Dateien für Inhalte und inhaltliche Struktur - CSS-Dateien mit Angaben für Darstellung - Javascript-Dateien für browser-seitige Dynamik - Medieninhalte wie Bilder & Videos Die zur Erzeugung der dynamischen Seiten benötigten Daten werden vom Webserver bereitgestellt & verarbeitet -> Rückgriff auf Datenbanken (in Datenschicht) -> Daten werden über passende Schnittstellen (APIs) mit weiteren Systemen ausgetauscht 11.4.3 Frond-End-, Back-End- und Full-Stack-Entwickler Front-End-Entwickler -> Benutzungsoberfläche einer Anwendung -> Kenntnisse zu HTML, CSS & JavaScript -> Themen wie gelungene Benutzererfahrung (User Experience, UX), Interaktivität, Design, Responsivität der Anwendung Back-End-Entwickler -> serverseitige Logik & Datenbanken einer Anwendung für Verarbeitung von Daten & Geschäftslogik -> Sicherheitsaspekte, Fragen der Konfiguration der beteiligten Server, Gestaltung & Nutzung von Schnittstellen (APIs) zu Drittsystemen, Leistungsoptimierung Full-Stack-Entwickler -> deckt kompletten „Stapel“ (stack) ab -> nur bei kleineren Projekten sinnvoll abdeckbar 11.8 HTML 11.8.1 Grundlagen Grundlegende Auszeichnungssprache für Erstellung von Webseiten & Webanwendungen -> keine Programmiersprache, da sie keine Möglichkeit zum Ausdrücken von (Programmier-) Logik hat Tags sind spezielle Markierungen, die den Inhalt einer Webseite strukturieren -> bestehen aus einem öffnenden Tag, der durch < > eingeschlossen ist, und oft einem schließenden Tag der ein / vor dem Tag-Namen enthält und ebenfalls in < > eingeschlossen ist Bsp.: -> können Attribute enthalten, die zusätzliche Informationen über das Element bereitstellen -> können geschachtelt werden -> werden in Kleinbuchstaben angegeben Mit HTML wird die inhaltliche, semantische Struktur beschrieben -> es wird festgelegt, was eine Überschrift ist, was ein Menü, was eine Liste und die Listenelemente Man sollte generell vermeiden in HTML ein Layout zu beschreiben Auch sollte man nicht Tabellen zum optischen Strukturieren einer Webseite verwenden -> das Layout wird vollständig über CSS erledigt 11.8.2 Grundstruktur einer Webseite - In der ersten Zeile wird dem Browser über den DOCTYPE die HTML-Version mitgeteilt - Danach folgt das Root-Tag html mit der englischen Spracheinstellung, die man auch auf de einstellen kann - Im html-Tag sind zwei Elemente enthalten, der head und der body ⁃ Head ⁃ Hier befinden sich allgemeine Einstellungen, oft in Meta-Tags ⁃ Im Tag title wird der Seitentitel angegeben, der im Browsertab angezeigt wird ⁃ Es findet sich ein Verweis auf eine externe Datei namens style.css, die sich im gleichen Verzeichnis befinden muss und CSS-Angaben enthält ⁃ Body ⁃ hier befindet sich der eigentliche Seiteninhalt ⁃ Im Boilerplate-Code ist hier nur ein einfacher Absatz ⁃ Javascript-Verweise können sowohl im head als auch im body-Tag enthalten sein 11.8.3 Ausgewählte HTML-Elemente ⁃ Textauszeichnungen. Tags: p, em, span ⁃ Überschriften. Tags: h1 bis h5 ⁃ Hyperlinks. Tags: a mit den Attributen href, target ⁃ Listen. Tags: ul, ol, li ⁃ Formulare. Tags: form, input mit den jeweiligen Attributen ⁃ Bilder. Tags: img mit den jeweiligen Attributen ⁃ Tabellen. Tags: table, tr, td 11.9 CCS 11.9.1 Grundlagen -> HTML (Inhalt & Struktur von Dokumenten) wird um Cascading Style Sheets (CCS) ergänzt, um das Aussehen und Layout von Webseiten zu gestalten Stile (eng: styles) -> Farben, Schriftarten & Abstände -> auch: CCS-Regeln 11.9.2 Einbindung von CSS in HTML Es gibt verschiedene Möglichkeiten zur Einbindung von CCS-Angaben: - Externes Stylesheet (Zeile 8): CCS-Angaben werden in einer eigenen Datei gesammelt und im Kopf der HTML- Datei verlinkt  Vorteilhaft: Trennung von Inhalt und Layout in separaten Dateien & Möglichkeit zur Wiederverwendung von Stylesheets die damit für ein einheitliches Aussehen aller Dateien in einem Webauftritt sorgt - Internes Stylesheet (Zeile 9-13): im Kopf einer HTML-Datei im style-Tag werden die CCS-Angaben für die gesamte HTML Seite angegeben - Inline Styling (Zeile 19): CCS-Angaben werden für ein individuelles HTML-Element direkt beim HTML-Tag in einem style Attribut angegeben  diese Variante sollte nur in Ausnahmefällen verwendet werden Wenn für HTML-Seite keine CSS-Angaben vorliegen, verwendet der Browser die im Browser konfigurierten Angaben -> Standardschrift des Browsers bestimmt damit die oben genutzte Schriftart (Times New Roman) 11.9.3 Syntax - Die CCS-Syntax besteht aus Selektoren: geben an auf welche HTML-Elemente eine Regel angewendet wird Deklarationen: legen das Styling fest -> besteht aus einer Eigenschaft und einem Wert -> getrennt durch einen Doppelpunkt -> wird von { } umschlossen -> wenn mehrere Deklarationen in einer Regel vorkommen, so sind die einzelnen Deklarationen durch ein ; abzuschließen - Grundsätzlich werden Regeln wie in einem Wasserfall von allgemeinen Selektoren auf untergeordnete Elemente vererbt - Die Kaskadierung sorgt dafür, dass übergeordnete Regeln durch speziellere Regeln überschreiben werden. 11.9.4 Selektoren Selektoren -> die zu gestaltenden HTML-Elemente werden ausgewählt (selektiert) ⁃ Element-Selektor: Stile werden auf alle Elemente eines bestimmten Typs (HTML-Elemente) angewendet ⁃ D.h. für Beschreibung des Selektives wird ein vordefiniertes HTML-Element wie bspw. p oder h1 verwendet und damit alle HTML-Elemente im Dokument gestaltet ⁃ Klassen-Selektor: Stile können auf spezifische Elemente angewendet werden, die eine bestimmte, selbstbenannte Klasse haben ⁃ Beginnen mit einem Punkt; das gewünschte HTML-Element wird mit dem HTML-Attribut class markiert ⁃ ID-Selektor: wird für ein spezifisches Element im HTML-Dokument mit einer eindeutigen ID verwendet ⁃ Sollte im HTML diese ID nur einmal verwendet werden ⁃ Universalselektor: wendet Stile auf alle Elemente an ⁃ z.B. * { margin: 0; }, um alle Abstände auf null zu setzen Es gibt vielfältige weitere Selektoren, bspw. um das erste Element einer Liste oder jede (un)gerade Zeile einer Tabelle zu selektieren 11.9.5 CSS-Frameworks -> bietet eine Sammlung von direkt einsetzbaren CSS-Bibliotheken 11.10 Ökonomische Bedeutung des WWW Internationalisierung & E-Commerce - Globale Reichweite für Unternehmen, Abbau geographischer Grenzen. - Online-Marktplätze wie Amazon, Alibaba, eBay fördern B2B- und B2C-Handel. - Kleine Unternehmen können international ohne physische Präsenz agieren. Neue Geschäftsmodelle & Innovationen - Plattformen wie Airbnb, Uber, Netflix, Spotify bieten innovative Dienstleistungen. - Freemium-Modelle: Kostenlose Basisversionen mit kostenpflichtigen Premiumdiensten. - Start-ups profitieren von geringen Investitionskosten und fördern technologischen Fortschritt. Effizienzsteigerung & Kostenreduktion - Digitalisierung von Geschäftsprozessen durch Cloud Computing, digitale Tools. - Neue Arbeitsformen: Remote-Arbeit, Freelancing. Wissen & Bildung - Demokratisierter Zugang durch E-Learning-Plattformen (Coursera, Khan Academy). - Nachfrage nach digitalen Bildungsangeboten wächst. Finanzdienstleistungen - Online-Banking, digitale Zahlungssysteme (PayPal, Kryptowährungen). - FinTech-Unternehmen revolutionieren traditionelle Finanzmodelle. Datengetriebene Wirtschaft - Daten als wertvolle Ressource für Entscheidungen, Marketing, Personalisierung. - Einsatz von Big Data und Data Science zur Steigerung der Wettbewerbsfähigkeit. Suchmaschinen - Zentral für Informationszugang und digitaler Werbung. - Google & Co. ermöglichen gezielte Werbung und stärken E-Commerce. Soziale Netzwerke - Präzises Marketing (z. B. Influencer-Marketing, Social Commerce). - Direkte Kundeninteraktion und Umsatzsteigerung durch datengetriebene Werbung.

Use Quizgecko on...
Browser
Browser