* Flash dient zur Erstellung von RIA mit Animation, Sound, Video
* trotz großer Verbreitung geringere Client-Unterstützung als AJAX
===== Serverseitige Technologien =====
* CGI (Common Gateway Interface): Mechanismus zum Aufruf externer Programme durch HTML-Seiten
* einfaches Deployment durch interpretierte schwach-typisierte Sprachen: Perl (Practical Extraction and Report Language), PHP, Python, Ruby
* Java
* Entwicklung durch Sun Microsystems mit Ziel der Plattformunabhängigkeit, seit 2007 OpenSource
* Java lehnt sich an C++ an, aber
* keine Mehrfachvererbung
* Garbage-Collector anstatt Destruktoren
* keine Pointer
* Java-Code wird in Bytecode übersetzt, der auf der Laufzeitumgebung (JRE) läuft
* Applets: kleine Java-Applikationen auf dem Webserver, die in der JRE des Clients in einer Sandbox laufen, heute kaum noch relevant
* Servlet-API und JSP
* Servlets verarbeiten HTTP-Requests und -Responses
* JSP vereinfachen die Arbeit mit HTML: hier wird Code in HTML eingebettet
* benötigt Servlet-Container wie Apache Tomcat
* J2EE enthält Komponenten und Bibliotheken um mehrschichtige, datenbank- und transaktionsgestützte Webanwendungen zu entwickeln
* Skalierbarkeit, Performance, Interoperabilität
* benötigt einen Application Server mit den folgenden Komponenten
* EJB: Geschäftslogik (Session-, Entity- und Message-Driven-Beans)
* Servlets / JSP: HTML-Fassade für die Clients
* JSF: baut auf JSP auf und ermöglicht den Einsatz von kompletten Komponenten zur Datenein- und -ausgabe und Navigationsregeln mittels XML, Daten werden von Managed-Beans verwaltet
* JNDI: Schnittstelle für Anwendungen zur Nutzung beliebiger Datencontainer
* JMS: API für asynchrone Nachrichtenverarbeitung
* JDBC: API für relationalen Datenbankzugriff
* JTA: Transaktionsmanagement
* JPA: einfache Erstellung von Entity-Beans und Datenbankanbindung
* Java Mail: Schnittstelle für Mailverarbeitung
* insbesondere bei großen Webapplikationen im Einsatz
* Nachteil ist die starre Vorgabe von Richtlinien für die Beans etc. → Overhead
* Reaktion von Sun in EJB 3.0 und Java EE 5.0: Annotationen kennzeichnen Klassen (z.B. Persistenz und WebServices)
* Vorteile: Daten sind in der Klasse selbst definiert, Compiler kann Fehler erkennen
* .NET-Framework
* erste Ansätze durch ASP → Einbettung von VisualBasic in HTML, Auswertung durch IIS
* ASP reichte schnell nicht mehr aus → .NET-Framework
* Laufzeitumgebung CLR: verschiedene Programmiersprachen möglich (VB, C++, C#), Übersetzung in Intermediate Language (IL), die dann ausgeführt wird
*
* Common Type System als Datentyp-Grundlage für alle Programmiersprachen
*
* Features: Exception-Handling, Garbage-Collector, JIT, Sicherheitsmechanismen, umfangreiche Klassenbibliothek, Reflection, Generics
* Performance liegt zwangsläufig unter nativem Maschinencode
* Einsatz für mehrschichtige Webanwendungen
* ADO.NET für DB-Zugriff, Logik in DLLs, Präsentation durch ASP.NET
* Datenabstraktion durch LINQ
* WPF: Framework für die Erstellung von Anwendungsoberflächen und Darstellung multimedialer Inhalte
* 2D und 3D Rendering Engine
* XAML (Extensible Application Markup Language) zur Beschreibung der Oberflächen → Trennung Design und Logik
* Silverlight
* Ruby on Rails
* Ruby: schwach typisierte OO-Skriptsprache
* Rails: Webframework
* convention over configuration, don't repeat yourself
* Prinzipien: semantische Dateistruktur, Active Records, Scaffolding, offene Architektur, AJAX integriert
===== Web 2.0 =====
* RSS/Atom: XML-Format für Neuigkeiten auf Webseiten
* Schema für XML-Dateien
* Einbindung über LINK in HTML-Seiten
* Podcasts: Neologismus aus iPod und Broadcast
* Basis ist RSS
* MP3s werden per RSS verteilt
* normale Nutzer können "ihr eigenes Radioprogramm erstellen"
* Vorteil: asynchrones Anhören der Inhalte nach Download
* Blogs: Abkürzung für Weblog
* Massenphänomen dank einfacher Software (CMS)
* Wikis
* Benutzer erstellen Inhalte gleichberechtigt
* setzen sich auch in Unternehmen durch (Kundenbindung, Marketing)
* Problem: Qualitätssicherung
* Folksonomy
* AJAX (Asynchronous JavaScript and XML)
* durchbricht das bisherige Paradigma der Webseiten durch dynamisches Laden von Teilbereichen der Seiten
* Kommunikation mit Server über XMLHttpRequest-Objekt
* Beispiele: Google Mail, Yahoo
* Möglichkeiten: Drag-and-Drop, Online-Anwendungen wie Office, Eingabevalidierung on-the-fly
* Benutzer braucht kein Plugin (nur JavaScript)
* Probleme
* Unterstützung durch die verschiedenen Browser (insb. IE)
* Browser-Buttons funktionieren nicht mehr
* Lesezeichen können nicht genutzt werden
* höherer Traffic
* Debugging ist schwierig
* Mashups: Vernetzung von Komponenten verschiedener Herkunft in einem Angebot (Content-Syndication)
* Beispiele: Google Maps, Videoportale, Yahoo Pipes
* Web 2.0: keine Technologie, sondern der Wandel der Rezeption und Produktion multimedialer Inhalte im Internet
* Grenze zwischen Produzent und Konsument weicht auf
* Content wird von den Benutzern erstellt
* Anwendungen verlagern sich auf Webserver
* Probleme: Datenschutz, Sicherheit, Kriminalität, Medienkompetenz ist nötig
===== Virtual Reality =====
* dem Benutzer wird ein Modell der Welt dargeboten, das der Benutzer beeinflussen kann
* Kennzeichen
* Interaktivität: Einwirken auf die künstliche Welt
* Gleichzeitigkeit: unmittelbare Reaktion der künstlichen Welt
* Immersion: Verschmelzen mit der künstlichen Welt
* Einsatzgebiete
* Computerspiele
* Medizintechnik
* Produktdesign
* die Immersion erfordert neue Eingabemöglichkeiten (HCI, Human Computer Interface)
* neue physikalische und biologische Sensoren
* Datenhandschuh
* Monitorbrille (Head Mounted Display)
* Lagesensoren
* Tracking-Systeme
* VRML (Virtual Reality Modeling Language)
* 1994 erschienen, 1996 kam Version 2 und VRML Konsortium wurde gegründet
* ASCII-basierte Sprache zur Beschreibung von 3D-Objekten
* wird vom Browser interpretiert
* plattformunabhängig
* kann Animationen, Videos, Bilder, Klänge beinhalten
* ermöglicht Benutzerinteraktion
* Probleme: Browserkompatibilität, langsam
* Beschreibung der virtuellen Welt durch einen Szenegraph in Baumstruktur mit verschiedenen Knotentypen
* Geometrikknoten für geometrische Formen
* Interpolatoren für zeitliche Veränderungen
* Sensoren generieren benutzer- oder zeitgesteuert Ereignisse
* Umgebungsknoten für Lichtquellen, Audio etc.
* Ansichtknoten für Navigations- und Kamerainformationen
* Scriptknoten steuern Ereignisse per JavaScript
* Unterschied zu 3D-Programmen: VRML wird nicht gerendert, sondern zur Laufzeit dargestellt
* 2003 wurde X3D eingeführt, das VRML in ein XML-Format überführt
===== Links =====
* Zusammenhang zwischen sone und phon
* Farbunterabtastung
===== ToDo =====
* Unterscheidung BAS / FBAS
* LZW und Huffman im Baum durchspielen
* logarithmische und 3-Step-Suche am Beispiel durchführen
* Unterschiede zwischen wichtigen Themen herausarbeiten
* Flash und ActionScript anschauen
==== Alte Klausur ====
* Definitionen: GOP, XML, XSLT
* Huffman und LZW anwenden
* Vorteile des AVC
* ActionScript-Ausschnitte erklären
* JPEG erklären
* Unterschied AJAX / Servlet/Applet
* CSS Box Model
* Shannon-Nyquist-Theorem anwenden
===== Klausur =====
* Gegenüberstellungen
* Zusammenhänge
* Detailfragen
* Flash-Codeausschnitte kommentieren
* Hilfsmittel: Taschenrechner
* Skype: maddias.r
===== Begriffe =====
* Determiniertheit
* Ein Algorithmus ist eine eindeutige Abbildung.
* Determinismus
* Zu jedem Zeitpunkt ist der nachfolgende Abarbeitungsschritt eines Algorithmus eindeutig festgelegt.
* Kontinuität (analoge Signale)
* lückenloser Zusammenhang, Stetigkeit, stetige Werte
* Diskretheit
* räumliche oder zeitliche Trennung von Objekten oder Ereignissen
* Periode = Schwingungsdauer T
* Eine Periode ist die kleinste Zeitdauer einer sich wiederholenden physikalischen Erscheinung.
* Frequenz f
* Kehrwert der Periode
* harmonische Schwingung
* Zeitabhängigkeit der veränderlichen Zustandsgrößen ist sinusförmig.
* t und F sind unabhängig von Amplitude.
* Konvergenz <> Divergenz
* Existenz eines Grenzwertes bei einer Folge
* Fraktal
* Gebilde mit hoher Selbstähnlichkeit (Beispiel: Mandelbrot-Menge)
* Korrelation
* Beziehung zwischen zwei oder mehr statistischen Variablen (nicht zwingend kausal).
===== ToRead =====
* DIN 33401