Interaktive Medien Flashcards

1
Q

Was sind die Designprinzipien des Internets?

A

1.) Paketorientiert (statt leitungsorientiert)
2.) mehrere Netze verbindend
3.) unabhängig von physischem Trägermedium
4.) ausfallsicher durch redundante
Vermaschung und Selbstkonfiguration
5.) delegiert dezentral verwaltet (Verwaltung
wird aufgeteilt z.B. Länder .de)
6.) agnostisch hinsichtlich der Anwendung
(nicht Anwendungsoptimiert wie z.B. Telefon)
7.) Unterstützt von Verschlüsselung (in
bestimmten Schichten)
8.) Zunehmend Leistungsfähig (private Nutzer
Latenzen im Bereich von ms, Bandbreiten in
Gbit/s, professioneller Bereich wesentlich
leistungsstärker)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Was sind die einzelnen Schichten des OSI-Referenzmodells?

A
  1. Bitübertragungsschicht: Übertragung auf dem
    physischen Medium
  2. Sicherungsschicht: Sicherung von Punkt-zu-Punkt
    Kommunikation
  3. Vermittlungsschicht: Routing von Paketen
  4. Transportschicht: Sicherung des Transports,
    Flusskontrolle
  5. Sitzungsschicht: Synchronisation langlaufender
    Übertragungen
  6. Darstellungsschicht: Gegebenenfalls Wanderung
    zur Präsentation. Z.B. Codes
  7. Anwendungsschicht: Sichtbare Funktionalität (z.B.
    Webbrowser)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Was sind die Vorteile des Schichtenmodells?

A

• Abstraktion tiefer liegender Schichten
• Überschaubare Teilaufgaben (Fehlersuche)
• Technologien können sich in den Schichten
austauschen oder unterschiedlich
implementieren

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

OSI-Referenzmodell Schicht 1:

Bitübertragung

A

Signalerzeugung und Punkt-zu-Punkt Übertragung.

Die unterste Schicht kümmert sich um die Bereitstellung elektrischer und mechanischer Funktion zur Übertragung von Bits.
Als übertragungstechnische Verfahren kommen beispielweise elektrische Signale, optische Signale oder elektromagnetische Wellen zum Einsatz.

Typische Geräte: Repeater, Kabel, Stecker, Antennen usw.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

OSI-Referenzmodell Schicht 2:

Sicherung / data link layer

A

Zentrale Aufgabe der Schicht 2 ist es, zuverlässige und möglichst fehlerfreie Übertragungen auf dem jeweiligen Medium zu ermöglichen. Die Bitströme aus Schicht 1 werden in Blöcke und Frames unterteilt.

Manche Protokolle, z.B. Ethernet, unterstützt bereits hier lokale Netze unterschiedlicher Typologien:

  1. ) Bus: Verbindungen sind hintereinander in einer Leitung geschaltet
  2. ) Stern: Verbindungen gegen alle von einem Punkt aus, ist dadurch robuster da eine Verbindung kaputt gehen kann, ohne die anderen zu beeinflussen

bei geteilten Medien (WLAN) kann es zu Kollisionen kommen, wenn mehrere Teilnehmer gleichzeitig senden.
→ Carrier Sense Multiple Access/Collision Avoidance
(CSMA/CA)
→ Vermeidung von Kollisionszonen (Switches statt
Hubs)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Vergleich Hubs / Switches

A

Hubs
Verbinden alle Teilnehmer direkt, d.h. jeder nimmt am kompletten Datenverkehr teil. Einfach zu realisieren, aber problematisch hinsichtlich Kollisionen

Switches
Stellen sehr schnell wechselnde Punkt-zu-Punktverbindungen zwischen den Teilnehmern her. Komplexer zu realisieren, dafür aber kollisionsfrei.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

MAC-Adresse

A

jeder Netzanschluss besitz eine „Media-Access-Control-Adresse“ (MAC), die aus 6 Bytes besteht
z.B. 00-21-CC-C5-08-A9 und in einem Netz eindeutig sein muss

Die ersten drei Bytes geben den Hersteller des Netzwerkadapters an, die folgenden 3 Bytes werden fortlaufend vergeben.

MAC-Adressen werden gerne zur Identifikation eines Gerätes verwendet (z.B. Softwarelizenzen, WLAN-Zugang). Die Adressen sind aber (teilweise) per Software veränderbar.

Ethernet ist Routing fähig, d.h. kann die Wege des Signals festlegen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Adress Resolution Protocol (ARP) in Schicht 2

A

Aus Anwendungssicht werden Schnittstellen nicht per physischer MAC-Adresse, sondern per logischer IP-Adresse angesprochen.

Vergleich: Paketversand an die Adresse nicht an die Geokoordinaten

Vorteile:
Auswechseln der Dienste auf anderen Rechner mit anderer Netzwerkkarte möglich, Wechseln defekter Netzwerkkarte möglich.
Zuordnung der IP-Adresse → MAC-Adresse wird durch Broadcast gelernt.
Die gelernten Zuordnungen müssen i.d.R. nach ungefähr 300s aufgefrischt werden.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

OSI-Referenzmodell Schicht 3:
(Vermittlung / Network layer)

Erklären Sie näher das Prinzip von IP-Adressen.

A

Es werden Verbindungen in leitungsvermittelten Netzen hergestellt und Datenpakete in paketvermittelten Netzen weitergeleitet.

Eine der zentralen Aufgaben ist die Bereitstellung von Adressen für die Kommunikation über das Netzwerk. Auf Basis der Adressen erfolgt das Routing und der Aufbau von Routingtabellen.

Verwendet (zusätzlich zu physischen MAC- Adressen) global eindeutige logische Adressen, die Routing zwischen zwei lokalen Netzen ermöglichen
Im Internet Protokoll (IP) heißen diese IP-Adressen:
1.) IPv4 Adressen mit 32 Bit (~ 4,29 Mrd. Adressen)
2.) IPV6 Adressen mit 128 Bit

IPv4 Adressen werden typischerweise als vier einzelne Bytes angegeben und enthalten vorne eine Netzangabe (network) hinten eine Geräteangabe (host)- ganz ähnlich einer Vor- und Durchwahl im Telefonnetz

IP-Adressen werden von IANA global verwaltet und in Blöcken unterschiedlicher Größenklassen vergeben.
A 000.0.0.0 - 127.255.255.255
B 128.0.0.0 - 191.255.255.255 z.B. HdM Netz
C 192.0.0.0 - 223.255.255.255
192.168.0.0 – 192.168.255.255
private Adressen, nicht global eindeutig

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Wie finden Pakete den Weg durch Netz?

Routing

A

Jede Netzwerkschnittstelle kennt ihre eigene IP-Adresse und Netzmaske, welche die Netzangabe von der Geräteangabe trennt.

Dadurch weiß ein Sender, ob der Empfänger im gleichen Netz ist → direkte Zustellung über Layer 2,
oder nicht → dann Routing an das Gateway über Layer 3

Beispiel:
IP 192.168.001.020 mit Netzmaske 255.255.000.000 möchte zwei andere IP-Adressen kontaktieren (bitweises AND)
→ 255 lässt die Bits durch
→ 000 ersetzt sie mit 000
Wenn die Netzadresse übereinstimmt befinden sie sich im gleichen Netz

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Dynamic Host Configuration Protocol (DHCP)
Was ist das Problem und wie wurde es mit DHCP gelöst?
Schicht 3

A

Problem: Permanente, explizite Vergabe von IP-Adressen ist unpraktisch
• Verwaltungsaufwand bei Vergabe
(Rechenzentrum)
• Konfigurationsaufwand auf erhaltendem Gerät (z.B.
Smartphone)
• Ggf. mehr potentielle Geräte als IP-Adressen
(5.500 Studierende)

Lösung:
• Ein DHCP-Server verleiht IP-Adressen aus einem
Pool für einen Zeitraum an Clients aus (z.B. 5 Tage,
2h etc.)
• Die IP-Adressen können vor Ablauf der Leihfrist
vom Client erneuert werden oder fallen sonst
wieder zurück an den HDCP-Server
• Der DHCP-Server teilt auch Netzmaske, Gateway
und DNS-Server mit

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Domain Name Service (DNS)

Schicht 3

A
  • Da Menschen sich IP-Adressen schlecht werken
    können, gibt es einen Verzeichnisdienst, der
    IP-Adressen „sprechenden“ Namen zuordnen
    kann – und umgekehrt, den Domain Name Service
  • Beispiel: www.hdm-stuttgart.de → 141.62.1.53
  • Die DNS-Server werden ebenfalls über IP
    abgefragt. 8.8.8.8
  • Ohne DNS-Server funktioniert IP weiterhin – es
    können aber keine sprechenden Namen für
    Teilnehmer verwendet werden, sondern nur
    konkrete IP-Adressen
    → Indiz bei Fehlersuche
  • Die Zuordnung von Namen zu IP-Adressen bzw.
    umgekehrt ist nicht immer eindeutig
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

OSI-Referenzmodell Schicht 4:
(transport layer)

Erklärung TCP und UDP

Für was braucht man Portangaben?

A

Daten werden paketiert durch das Internet geleitet und können unterschiedliche Routen
nehmen.
Es erfolgt die Ende-zu-Ende-Kontrolle der übertragenen Daten. Der Transport Layer stellt eine Art Bindeglied zwischen den transportorientierten und Anwendungsorientierten Schichten dar.

Mögliche Probleme:
• Paketverlust
• Out-of-Sequence-Empfang (in der falschen
Reihenfolge)

TCP UDP
Das Transport Control Protocol TCP stellt eine verlässliche Zustellung sicher, u.a. durch Quittieren
empfangener Pakete und Verwendung von
Sequenznummern in den Paketen.

Wenn ein verlässlicher Empfang nicht benötigt wird, kann das einfachere User Datagram Protocol (UDP) eingesetzt werden kann. z.B. Telefonie, Videokonferenzen

Ports
TCP/UDP ergänzen zusätzlich zur IP-Adresse eine
Portangabe. Dadurch können mehrere Prozesse (=Programme) über einen Netzwerkadapter Verbindungen führen.
→ Verbindung von Prozessen, nicht Rechnern

Viele Portnummern sind implizit bestimmte Dienste (also Anwendungsprotokolle der Ebenen 5-7) zugewiesen, um die Nutzung zu vereinfachen
→ „well-known-ports“ z.B. http → 80,
https → 443, smtp (E-Mail) → 25

Diese Konventionen sind der Grund, warum man z.B. bei Webadressen im Browser, die das Protokoll https verwenden werden, nicht explizit Port 443 angeben muss:
→ hdm-stuttgart.de
→ https://www.hdm-stuttgart.de:443

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Schicht 5-7 zusammengefasst

A
  • Schicht 1-4 ermöglichen den sicheren Transport
    von Daten als „Basisdienst“, der dann die
    Grundlage für die eigentliche Funktion aus Sicht
    der Anwendenden bilden kann, z.B. E-Mail
    senden, Dokument herunterladen, Video
    streamen etc.
  • Gängige Protokoll auf Schicht 5-7
    • http/HTTPS: Webseiten übertragen, inzw. Fast
    ein „Meta-Protocoll“
    • SMTP: E-Mail senden
    • POP3/MAP: E-Mail abrufen
    • DNS: Namensauflösung → IP-Adresse
    • SSH: Fernzugriff auf Rechner
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Diagnose von Zugangsproblemen ins Internet

A

Schicht 1
Kabel eingesteckt, WLAN-Aktiviert → Kontroll LEDs

Schicht 2:
Ethernet MAC Adresse sichtbar? → getmac - v

Schicht 3:
IP-Stack auf Rechner aktiv → ping 127.0.0.1
Internet per IP erreichbar? → ping 8.8.8.8 (Google-
Server)
DNS-Auflösung → ping www.google.de
Gateways / DNS / Gateway → ipconfig /all

Schicht 5-7:
Website aufrufen → Im Browser z.B. www.google.com
öffnen

Schicht 8:
URL der Website kontrollieren → nochmals eintippen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Was ist HTML?

A

Hypertext Markup Language
- Textbasiertes Auszeichnungsformat zur
Strukturierung von Texten, Bildern, Hyperlinks und
weiteren Elementen
- Entstanden in den frühen 90er Jahren im Umfeld
des CERN (Europäisches Kernforschungszentrum)
- Basiert auf Konzepten der Standard Generalized
Markup Language
- Entwicklung durch das Word Wide Web Consortium
(W3C)
- Aktuelle Version basiert auf HTML5 (2014),
lebender Standard

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Wie ist die Struktur eines HTML Dokuments?

A

Idee:
- Struktur eines HTML-Dokuments wird syntaktisch
durch Hinzufügen von Markierungen (to mark up)
ausgedrückt.
- Diese Markierungen heißen tags und werden mit
spitzen Klammern gekennzeichnet. Elemente
bestehen in der Regel aus einem öffnenden und
schließenden Tag.
Einfache Elemente ohne Inhalt können auch
abgekürzt geschrieben werden (z.B. <img></img>)
- Elemente können verschachtelt werden
- Elemente können Attribute besitzen. Diese sind im
öffnenden Tag enthalten.
- Es gibt einen Katalog aller Elemente und Attribute,
der deren Semantik festlegt
- Es können zudem Kommentare in das Dokument
eingebettet werden, die in der Verarbeitung
ignoriert werden
- Einrückungen im HTML-Dokument haben keine
Bedeutung

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Aufbau eines HTML Dokuments

A
  • Ein HTML-Dokument besteht aus einem Kopfteil
    (head), der Metadaten enthält, sowie dem
    eigentlichen Inhalt (body)
  • Für beide Bereiche ist festgelegt, welche
    Elemente in welchen Verschachtelungen erlaubt
    sind.
  • Damit kann Inhalt und Struktur eines Dokuments
    festgehalten werden, über deren Präsentation
    (style) werden noch keine Festlegungen getroffen)
    → Voraussetzung für flexible und alternative
    Darstellungen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Welche Elememte gibt es in HTML?

Welche neuen Struktur Elemente werden eingeführt?

A

title Titel Lorem ipsum

h1, … , h6 Heading <h1> Willkommen </h1>

ol, ul, li Ordered list <ol>
Unordered list <li> Kochen</li>
List Item </ol>

img Image <img></img>

strong Hervorgehoben <strong> 12 Uhr
</strong>.

Neuen Strukturelemente
Basierend auf der typischen Nutzung wurden mit HTML neue strukturierende Elemente eingeführt.
         → header
         → nav (oben/seitlich)
         → main
         → footer
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Was ist Markdown?

A
  • Markdown ist wie HTML eine textuelle
    Auszeichnung Sprache, basiert aber im Gegensatz
    dazu nicht auf SGML/XML
  • Benötigt möglichst wenig zusätzliches „Markup“ –
    durch Vereinfachung und Verwendung von
    Konventionen
  • Markdown kann nicht direkt vom Browser
    interpretiert werden. Zur Anzeige ist daher immer
    ein Übersetzungsschritt notwendig
  • Markdown kann auch in andere
    Dokumentenformate konvertiert werden.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Was ist CSS?

Und was ist die Idee dahiner?

A

Cascading Style Sheets (CSS)
- Während HTML Struktur und Inhalt abdeckt, lässt
sich mit der flankierenden Spezifikation CSS die
Präsentation (visuelle Darstellung) steuern.
- Auch CSS wird vom World Wide Web Consortium
(W3C) entwickelt.
- Es gibt einen Katalog aller Eigenschaften und
Werte, der deren Semantik festlegt.
- Problem: nicht alle Browser unterstützen alle
Funktionalitäten (im Zweifel Unterstützung prüfen)

Idee
• Jedem HTML-Element können Eigenschaften
(properties) zugeordnet werden
→ Farbe, Abstände, Schriftart, Positionierung usw.
• Die Zuordnung kann entweder beim Element als
Attribut erfolgen („inline“, eher abzuraten) oder
über Style-Sheets realisiert werden.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Welche Eingenschaften können z.B. mit CSS festgelegt werden?

A

margin → Außenabstand
padding → Innenabstand
color → Schrift bzw. Vordergrundfarbe
text-align → Textausrichtung

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Die Prioritätskaskade in CSS

A

Treffen für ein Element mehrerer Selektoren zu, bestimmt eine Prioritätskaskade welche Regel „gewinnt“ und zur Anwendung kommt.
Grundsätzlich gilt dabei die Regel „Spezifisches sticht Grundsätzliches“:
1. Wichtige Deklaration in Benutzer-Style-Sheet (mit
!important)
2. Wichtige Deklaration in Dokument-Style-Sheet
(mit !important)
3. Dokument-Style-Sheets (eingebunden oder
verknüpft)
4. Benutzer-Style-Sheet, die im Browser
eingebunden wurden
5. Eingebaute Browser-Style-Sheets

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Wie können Style-Sheets in CSS eingebunden werden?

A

Intern:
Interne Stylesheets werden typischerweise im head- Element des HTML Dokuments platziert.

Extern:
Externe Styles werden in eigene Dateien geschrieben und dann mit dem HTML-Dokument verknüpft (das ist die Regel)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

Was ist http?

A

Hypertext transport protocol (http)
- HTTP ist ein Protokoll der Applikationsschicht und
legt die Kommunikation zwischen Client und
Server fest
- Die Kommunikation erfolgt im Wechsel Request →
Response, der Client initiiert
- Je nach Seite können bis zu 200-300 requests
geschickt werden
- Ein Client (Programm) sendet Requests und
verarbeitet die Response z.B.
• Webbrowser
• Kommandozeilen-Werkzeuge
• Weitere Software, Apps (z.B. online Updates)
• Geräte mit Mikrocontroller und Netzzugang
- Ein Server empfängt Requests und erzeugt die
Response
• Bekannte Server: Apache, nginx, Node.js,
Tomcat, Microsoft IIS
• Server können existierende Dateien
zurücksenden (statische Inhalte) oder in
Abhängigkeit der Request Daten neu
generieren (dynamische Inhalte)
- Geräte können Klient und Server gleichzeitig sein
(Server der ein Softwareupdate braucht)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

Welche Bestandteile hat die Anfrage bzw die Antwort?

A

Anfrage (request)
• Anfrage (request line)
→ Klassifikation der Anfrage (Methode)
→ Adressierung einer Ressource (URL)
• Übermittlung der Metadaten (headers)
• Ggf. Übermittlung von weiteren Daten (body)

Antwort (response)
• Ergebnis- bzw. Fehlercode (status line)
• Übermittlung von Metadaten (headers)
• Ggf. Übermittlung angeforderter Daten (body)

  • HTTP ist zustandslos, d.h. der Server muss jede
    Anfrage unabhängig von evtl. vorausgegangenen
    beantworten können.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

Beschreibe näher die Request Methode inbesondere GET und POST

A
  • Jeder HTTP-Request beginnt mit der Methode
    (auch http-Verb genannt)
  • Die Methode bestimmt, was mit der folgenden
    Ressource geschehen soll:

GET:
• Hole Ressource vom Server ab. Wird
standartmäßig abgerufen, wenn man eine
Adresse in den Browser eintippt
• Oft möchte man Daten zum Server schicken, um
nicht-statische Inhalte abzufragen, z.B.
Suchbegriffe an eine Suchmaschine oder Zielorte
an ein Navigationssystem
• Dazu wird die Methode Get verwendet und die
Parameter im query-Abschnitt der URL
untergebracht. Die Semantik dabei ist, dass man
immer dieselbe Ressource abruft, lediglich die
Filterung, der Ausschnitt, die Hervorhebung etc.
sind anders
• Beispiel: https://www.hdm-stuttgart.de
/horst?raum=300

POST:
• Sollen Daten zum Server geschickt werden, um
dort eine Ressource anzulegen bzw. zu erweitern
z.B. Blog-Artikel
• Die Semantik dabei ist, dass eine neue Ressource
angelegt bzw. erweitert wird. Man verändert also
die Daten auf dem Server
• Im Gegensatz zu GET werden die Dateien bei
POST nicht in der URL kodiert, sondern im Body-
Bereich des Requests transportiert.
• Ein POST-Request lässt sich daher nicht lediglich
durch Eingabe einer URL in der Browser-
Adresszeile abzusetzen

HEAD: liefert nur header nicht den body

PUT: Lade eine neue Ressource auf dem Sever, ersetze eine existierende komplett

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

Beschreibe näher die Request URL

A

• Die URL gibt an, wie und wo eine Ressource erreicht
werden kann
• URLs sind der mit Abstand gebräuchlichste Spezialfall
des allgemeineren Konzepts Uniform Ressource
Indentifier (URI).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

Beschreibe näher was der Request Body enthalten kann.

A

Kann Plain-text, Bilder oder auch andere Inhalte enthalten.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

Was beschreiben in der Response die Status Codes?

A

Server meldet das Ergebnis der Anfrage mit drei Ziffern zurück. Diese sind in Klassen gruppiert.
→ 100-199 Informationen

→ 200-299 Erfolg
200: Success: Anfrage konnte erfolgreich
bearbeitet/übertragen werden

→ 300-399 Umleitungen
301: Moved Permanently, Ressource steht unter
neuer URL bereit
304: Not modified, nicht verändert seit letzter
Abfrage und wird nicht übertragen

→ 400-499 Client-Fehler
400: Bad request, Anfrage war fehlerhaft
aufgebaut
401: Unauthorized, Anfrage erfordert
Authentifizierung, die nicht vorliegt
404: Not found, Ressource wurde nicht gefunden

→ 500-599 Server-Fehler
500 Internal Server Error: Unspezifischer Fehler
bei Verarbeitung der Anfrage
504 Gateway Timeout, Gateway hat keine
rechtzeitige Antwort erhalten

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

Beschreiben Sie näher welche Informationen der Header bei der Response enthält.

A

Header sind optionale, zusätzliche Metadaten, um die Antwort genauer zu beschreiben.
Jeder Header besteht aus einem Namen und Wert, getrennt durch ein „:“

Wichtige Header:
• Date: Zeitstempel der Antwort
• Content-Type: Dateiformat
• Content-Encoding: Transportcodierung
• Content-Length: Länge der Antwort in Bytes
• Etag: Identifier des Inhalts (für Caching)
• Last-Modified: Letze Veränderung (für Caching)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
32
Q

Was sind Cookies und für was werden sie benutzt?

A

Problem:
oft möchte man mehrere Requests in Sitzungen (sessions) zusammenfassen, z.B. um Anmeldungen, Suchverlauf oder Warenkörbe zu realisieren.
→ Server muss den Client wiedererkennen

Die gängigste Methode dazu sind sog. Cookies:
• Cookie ist ein Text, der ein Schlüssel-Wert-Paar
definiert.
• Der Server sendet in den Headern seiner Response
ein Cookie an den Client
• Der Client kann dieses Cookie zwischenspeichern
und späteren Requests an denselben Server wieder
als Header beifügen
• Der Server erkennt den Client am Cookie wieder

Der Server kann den Inhalt des Cookies frei festlegen, oft ist dies eine eindeutige Sitzungsnummer (bis zu 4096 Zeichen), diese können mit einem Verfallsdatum versehen werden oder können explizit gelöscht werden

Cookies werden aus Sicherheitsgründen nur an Server der jeweiligen Domain zurückgeschickt, von der sie ursprünglich erhalten wurden.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
33
Q

Was ist https? Und warum wurde es eingeführt.

A

Problem:
HTTP überträgt Daten im Klartext. Dadurch ist es offen für Lauscher. Zudem können Clients und Server gegenseitig ihre Identität nicht sicher feststellen
Daher wurde HTTPS eingeführt. Diese Protokollschicht zwischen TCP und HTTP basiert auf SSL bzw. TLS (Verschlüsselungsschicht)

URLS beginnen nun mit „https“. Der Default-Server-Port ist nun 443 statt 80

Client und Server handeln dabei zunächst über asymmetrische Verschlüsselung einen Sitzungsschlüssel aus. Dieser wird im Weiteren zur symmetrischen Verschlüsselung der Kommunikation verwendet.

Server benötigen dazu einen privaten und öffentlichen Schlüssel. Der öffentliche Schlüssel wird meist von einer dritten Partei zertifiziert. Die öffentlichen Schlüssel wichtiger Zertifizierungsstellen sind wiederum in den gängigen Browsern eingebaut.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
34
Q

Was versteht man unter künstlicher Intelligenz?

A

Man spricht von künstlicher Intelligenz, wenn Computer Aufgaben erledigen, die menschliche Intelligenz erfordern.
z.B. Bilder erkennen, Sprache verstehen und übersetzen.

Dafür muss KI mit Wissen und Erfahrung ausgestattet werden. Diese Umsetzung erfolgt auf 2 Arten:

  1. Computerprogramme
  2. Neuronale Netze
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
35
Q

Was realisiert ein neuroanles Netz?

A

Ein Neuronales Netz ist eine Funktion die Eingabewerte bewertet und dann Ausgabewerte ausgibt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
36
Q

Weche Anwendungsbeispiele neuronaler Netze kennen Sie ?

A

Bildersuche: digitales Bild (input) → Antwort (output)

spracherkennung: Sprache → Text

Übersetzung: Text → Übersetzung

Erkennung von Ziffern: handgeschriebene Ziffern
→ Ziffer

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
37
Q

Was ist ein künstliches Neuron? Beschreiben Sie die Funktionsweise?

A

ein künstliches Neuron erhält Eingabewerte (xi) und dazugehörige Gewichte (wi).

Aus diesen Signalen wird die gewichtete Summe gebildet. Also das Zusammengefasste Eingabe-Signal.
dazu werden die Gewichte mit den Zugehörigen Eingabewerte multipliziert.
→ Die Gewichte bestimmen die Stärke der Eingabe

Anschließend wird die Sigmoid-Funktion s(x) angewendet. (Aktivierungsfunktion)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
38
Q

Wie ist die Sigmoid-Funktion definiert?

A

s(x) := 1/(1+e^(-x))

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
39
Q

Welche Eigenschaften hat die Sigmoid-Funktion?

A

0 < s(x) < 1, dadurch ist die Ausgabe nie 0 und 1. Die Funktion nähert sich im Unendlichen aber diesen 2 Werten an.

S ist stetig und differenzierbar.

40
Q

Aus welchen Komponenten besteht ein neuronales Netz?

A
Neuronen
angeordnet in Schichten:
→ Eingabe-Schicht (n-Neuronen)
→ Versteckte Schicht (p-Neuronen)
→ Ausgabe-Schicht (m-Neuronen)
jedes Neuron ist mit jedem Neuron der nächsten Schicht verbunden.

Gewichte
Alle Verbindungen zwischen den Neuronen sind gewichtet.
Diese bilden das Herzstück des neuronalen Netzes.

41
Q

Welche Aufgabe hat die Eingabe-Schicht? Geben sie die Konvention an.

A

Die Neuronen der Eingabe-Schicht geben die Eingaben aus ohne Anwendung der Aktivierungsfunktion.

42
Q

Welche Aufgaben haben die Verbindungsgewichte?

A

Die Gewichte in W (Gewichte zwischen Eingabe- und versteckter Schicht) und V (Gewichte zwischen Verdeckter und Ausgabeschicht) definieren, wie die Signale weitergeleitet werden.

Jedes Gewicht (darf nicht 0 sein) definiert eine Verknüpfung zwischen zwei Neuronen i und j.

i: Neuron des vorherigen Schritts
j: Neuron des nächsten Schitts

Die Gewichte regulieren den Einfluss, den Eingabewerte auf die Aktivierungsfunktion f haben.

43
Q

Was ist eine Gewichtsmatrix?

A

Eine Matrix in der alle Gewichtsvektoren einer Neuronenschicht zusammengefasst werden.
s. Zusammenfassung

44
Q

Wie kann ein neuronales Netz lernen, eine vorgegebene Aufgabe zu erfüllen?

A

Mit Hilfe von Trainingsbeispielen und Gewichtsänderungen.

45
Q

Was ist ein Trainingsbeispiel?

A

Ein Trainingsbeispiel (a,b) besteht aus:

  • a: Ein Elelement des Eingabevektors
  • b: Ein Elelement des Ausgabevektors
46
Q

Was versteht man under dem Fehler eines Trainingsbeispiels?

A

Im Normalfalls stimt die Netzausgabe nicht mit der gewünschten Angabe überein. D.h. es existiert ein Fehlervektor.

y - b =/= 0
y = Gewünschte Ausgabe
b = tatsächliche Ausgabe

Diesen Fehler kann man durch das Quadrat der eiklidischen Norm bestimmen:
e:= (y1-b1)^2 +… + (ym-bm)^2

47
Q

Was versteht man unter Gewichtsänderungen?

A

Verändert man die Verbindungsgewichte von W und V zwischen den Neuronen, kann der Fehler minimiert werden.
Diese optionalen gewichte lassen sch nicht errechnen.

Der Fehler kann durch Gewichtsänderung iterativ verkleinert werden.

48
Q

Durch welches Verfahren kann der Fehler iterativ mittels Gewichtsänderung verkleinert werden?

A

Durch das Gradientenabstiegsverfahren.

49
Q

Erläutern Sie die Grundidee des eindimensionalen Gradientenverfahrens.

A

Iteratives Verfahren zur Berechnung von Minima (tiefster/optionalster Punkt soll bestimt werden).

Strategie: Wähle ein Start-Gewicht w^(0)
→ Falls e’ (w^0) > 0, gehe ein Stück nach links
→ Falls e’ (w^0) < 0, gehe ein Stück nach rechts

Skizze ziehe Zusammenfassung.

50
Q

Was versteht man unter dem Gradienten der Fehlerfunktion?

A

Neuronale Netze haben nicht nur ein Gewicht sondern viele. Daher benötigen wir eine spezielle Notation für die Ableitung.

Bei mehreren Gewichten kann nur immer ein Gewicht partiell abgeleitet werden. Da aber die Fehlerfunktion von allen Gewichten abhängt müssen diese Zusammengefasst werden.

Es sei e die Fehlerfunktion eines neuronalen Netzes mit Gewichtsmatrizen W und V. Dann heißen:
grad e (W) und grad e(V) die Gradienten der Fehlerfunktion e. 

Der Gradient übernimmt die Rolle der Ableitung e’ und mit ihm können wir das Gradientenverfahren allgemein formulieren.

51
Q

Welche Rolle hat die Lernrate?

A

Die Lernrate hat entscheidenden Einfluss auf das Lernen.
→ ist die Lernrate zu groß, können gute MInima können übersprungen werden.
→ ist die Lernrate zu klein, kann man in einem schlechten Minima hängen bleiben, und das Training dauert sehr lange.

Strategie: Gradientenverfahren mit verschiedenen zufälligen Start-Gewichten und verschiedenen Lernraten.

52
Q

Welche Schwäche hat das Gradientenverfahren? Warum kann es im lokalen Minima hängen bleiben?

A

Schwächen:
Die Schwäche ist, dass die Funktion nur auf die Ableitung achtet. Sie beachtet nicht das Umfeld um sie herum.
- Bei steilen Abstiegen kann es sein, dass das gute Minima wieder verlassen wird.
- Bei ebenen Flächen kann die Ableitung auch ungefähr 0 sein.
- Es kann in einem lokalen Minima hängen bleiben.

Das Minimum kann auch 0 sein, obwohl dieses Minimum eventuell nur lokal ist.

53
Q

Erläutern Sie die Deltaregel. Geben Sei Formeln an.

A

Die Deltaregel ist die zentrale Lernregel neuronaler Netze. Mit Hilfe von der Deltaregel werden die Gewichte V und W geändert.

ΔV = -λ δ y(1-y) • c^T
→ -λ mal Ausgabefehler mal y(1-y) mal versteckte Ausgabe

ΔW = -λ δ~ c(1-c) • a^T
→ -λ mal Ausgabefehler mal c(1-c) mal Netz-Eingabe

δ: ausgabefehler
δ~: Ausgabefehler der versteckten Schicht
a: Eingabe Vektor
c: versteckte Ausgabe
λ: Lernrate
T: transponierte (bedeutet: Matrix von c bzw a)

54
Q

Was versteht man unter Fehler-Rückverfolgung?

A

Der Ausgabefehler δ= y-b ist bekannt. Er kann von rechts nach links zur inneren Schicht zurückverfolgt werden.

Der Versteckte Fehler δ~ kann näherungsweise bestimt werden.

δ~ = V^T * δ * y(1-y)

Wir bruachen den versteckten Fehler um den Gradienten von e(W) ausrechnen zu können.

55
Q

Was ist eine Epoche?

A

Ein Durchlauf aller Trainingsbeispiele wird Epoche gennant.

Trainingsdurchlauf:

  1. r Trainingsbeispiele
  2. Initialiserung, 1. Trainingsbeispiel wird abgefragt
  3. Netzabfrage und Fehlersetzung
  4. Änderung der Gewichte V und W gemäß der Deltaregel
  5. Wenn es mehr Trainingbeispiele gibt, mit ihnen fortfahren ansonsten wird das Training beendet.
56
Q

Wodurch entsteht Überanpassung?

A

Durch zu viele Epochen wird das Netz an die Trainingsdaten überangepasst.
Dabei erkennt das Netz nurnoch die Trainingsdaten und keine anderen Daten.

Man spricht von einer Überanpassung (overfitting)

57
Q

Welchen Einfluss haben Lernrate, Anzahl der Epochen und versteckte Neuronen auf die Erfolgsquote?

A

Bei einer großen Anzahl von Epochen ergeben sich meist bessere Ergebnisse, wenn die Lernrate verringert wird.

58
Q

Wie werden Trainingsdaten vorbereitet?

A

zufällige Anfangsgewichte festlegen.

Ausgaben/Eingaben konzipieren
Da die Sigmoid Funktion zwischen 0 und 1 verläuft müssen auch die Zielwerte zwischen 0 und 1 liegen.
Empfehlung 0,01 <=a,b<= 0,99

59
Q

Was versteht man unter Sättigung?

A

Sättigung trifft bei den äußeren Enden der Sigmoid-Funktion ein.
→ Die Funktion nähert sich der 0 bzw 1 an und die Ableitung beträgt fast 0

Für große Eingaben verläuft die Sigmoid Funktion flach, das ist problematisch, da wir Gradienten(Ableitungen) verwenden, um Gewichte anzulernen.

Wenn die Ableitung 0 beträgt kann das Netz kaum lernen, da es sich dadurch schwer dem Minima annähern kann.

Eingabewerte sollten klein gehalten werden.

60
Q

Wie wählt man die Anfangsgewichte? Geben sie die Faustregel für die Anfangsgewichte an.

A

Anfangsgewichte weren zufällig gewählt.

Große Anfangsgewichte vermeiden
→ Sättigung verringert Lernfähigkeit

Nullgewichte vermeiden
→ Nullgewichte blockieren Eingabe-Werte

Anfangsgewichte werden mit Hilfe der Normalverteilung mit Standardabweichung festgelegt.

61
Q

Was sind die Haupt Game Design Terminologien?

A

-Spiele sind eine Reihe an interessanten Entscheidungen.
→ es gibt meistens keine besseren und schlechteren Entscheidungen, aber der Spieler lernt mit der Zeit bessere Entscheidungen zu treffen.

Spiele machen Spaß wenn man etwas lernt.

Spiele haben Ziele, es müssen Hürden überwunden werden um ans Ziel zu kommen.
→ gegen andere Spieler
→ Fähigkeiten des Spielers müssen im Gleichgewicht
zum Aufwand stehen.
→ Spiel muss immer schwieriger werden

Games haben Spieler

Spiele sind Interaktiv. Spieler hat Einfluss auf den Lauf des Spieles

62
Q

Welche verschiedenen Arten von Spielern gibt es?

A

Killers
Achievers
Socializers
Explorers

63
Q

Kann ein Spiel auch Auswirkungen auf die reale Welt haben?

A

Dem Spielen wird einen Wert verliehen, der meist aber auf die reale Welt keinen Einfluss hat.

Ausnahmen:

Gambling: hat einen direkten finanziellen Einfluss auf die äußere Welt. Geld im Spiel kann in die echte Welt übertragen werden. Gefährlich und wird schwer reguliert.

Serious games: Sollen einen Effekt auf die äußere Welt ausüben. z.B. Verhaltenstraining oder therapeutische Effekte.

64
Q

Was beschreibt der Game mechanism?

A

Spiele habe Spielzustände.
→ Das Spiel muss den ganzen Zustand kennen
→ Der Spieler muss nicht den ganzen Zustand kennen (z.B. Karten der anderen Spieler)

Die Regeln des Spiels definieren welche Entscheidungen vom Spieler möglich und erlaubt sind. Die Auswirkung der Entscheidung erhöht den „Skill“ und ermöglicht dadurch bessere Entscheidungen beim nächsten mal.
→ Im Gegensatz zu analogen Spielen wo alle Regeln bekannt sein müssen, sind Regeln in digitalen Spielen meistens unbekannt und können von dem Spieler entdeckt werden.

Verfügbare Informationen bei Entscheidungen
→ 0% der Informationen kann langweilig sein, da der Spieler dann nur Raten kann
→ 100% der Informationen kann langweilig sein, da wir alles wissen also warum müssen wir entscheiden?

Es gibt immer ein Hauptmechanismus im Spiel. Es kann eine Hauptaktion (jump in einem jump and run), oder einen Hauptzweck (wie die Aktion den Spieler näher an das Ende des Spiels bringen)
→ Support Mechanism unterstützen den Hauptmechanismus. Sie machen das Spiel komplexer und interessanter.

65
Q

Games vs. Spielzeug
Games vs. Puzzle
Games vs. Wettbewerbe

A

Spielzeug hat kein Ziel

Puzzles haben keine Regeln, ihr Ziel ist einfach nur die Lösung zu finden

Wettbewerbe haben einen voll beobachtbaren Spielzustand, Spiele dagegen verstecken Spiele ein Teil des Zustands ob interessanter zu sein.

66
Q

Wie verändert sich die Monetarisierung von Spielen und welche Auswirkunen hat das?

A

Spiele konkurrieren mit anderen Spielen oder auch anderen Aktivitäten

Spieleentwicklung wird immer teurer, dadurch werden weniger Risiken eingegangen und die Innovation wird dadurch langsamer

Spiele werden hauptsächlich nur noch als Download angeboten. Dadurch haben digitale Plattformen wie Steam, PlayStore usw. einen großen Marktanteil

Indie-Games haben es dadurch einfacher ihre Titel ohne einen Publisher zu veröffentlichen

67
Q

Was sind die gängigen Bezahlmodelle bei Games?

A

Freeware games
Man muss nichts zahlen um sie zu spielen (Free-to-play). Man erhält aber nicht die Rechte an dem Spiel.
Shareware games: Ein Teil ist gratis, aber für höhere Level muss man zahlen

Pay-once games
Man zahlt einmal um das Spiel immer spielen zu können.
Früher erhielt man eine CD auf der das Spiel war, heutzutage kann man das Spiel auf seinem Account runterladen

Rental games
Man zahlt für eine gewisse Zeit die man das Spiel spielen kann. Meist bei MMORPGs

In-game transactions
Viele Free-to-play Games sind mit einem in-game Store verbunden. Diese bieten verschiedene Items wie areas, charactere oder skins an.
Bei pay-to-win kann man sich einen signifikanten Vorteil gegenüber anderen Spielern erkaufen

68
Q

Was ist das Ziel der Spieleentwicklung?

A

Das Spiel innerhalb der vorgegeben Zeit und im Budget fertig zu stellen.

69
Q

Welche Punkte müssen bei der Spielentwicklung abgearbeitet werden?

A

Definition eines Konzepts

Game Design
→ Haupt Game-Mechanic, supporting mechanics
→ Regeln

Kunst (Look-Development bis hin zu fertigen assets)

Business plan

Design game software

Test and debug

Deploy and maintain the game

Develop a community and interact with it

70
Q

Was ist das Waterfall - Prinzip bei agilen Projekten?

A

Die Stufen der Konzeption sind hintereinander in folgender Reinfolge angeordnet:
→ concept → design → code → assets → testing → debugging

In allen Phasen kann wieder in die Phase davor zurückgesprungen werden.
Der Hintergrund ist, dass jede Phase teurer ist als die davor. Dadurch wird das Risiko reduziert, da man die Phase vollständig abschließt bevor man in die nächste springt.

Nachteil:
→ man kann nicht mehrere Sachen gleichzeitig ausführen. z.B. das designen von Inhalten während man den Code schreibt
→ Wenn man im Schritt des testen herrausfindet, dass etwas nicht funktioniert dann kann man wieder von vorne anfangen
→ Es ist schwierig im Vorhinein festzulegen wie lange jeder Abschnitt braucht, dadurch wird das Einteilen von Ressourcen schwieriger

Da die Spieleentwicklung immer teurer wird, werden weniger Ideen ausprobiert die dann später wieder verworfen werden.

71
Q

Was ist die Methodology von agilen development?

A
So viele Wiederholungen wie möglich
Kleine Schritte
Sicherstellung das alles funktioniert
Kleine Teams die zusammen arbeiten
go for a marathon, not for crunchtime“

Vorteile: Es kann schnell auf Veränderrungen reagiert werden, egal ob Kundenwünsche oder Probleme die entstehen
Nachteil: Es ist einfach das größere Bild aus dem Kopf zu verlieren

Obwohl agile Projekte bei ihrer Entwicklungen viele Interationen durchlaufen gibt es bei großen Projekten doch einzelne Phasen die sie durchlaufen.
→ concept
→ pre-production: „find the fun“, game mechanics, prototypes
→ production: build entire game, all assets
→ post-production: polish it

Diese Abschnitte überlappen sich, aber ihre Wichtigkeit ändert sich über der Zeit

72
Q

Was ist die Methode Scrum?

A

Der „sprint“ ist die Haupt Arbeits-Einheit. Sie geht über ein paar Wochen und wird meist nicht verlängert.

Sprint planning:
→ Was muss erledigt werden?
→ Welche Aufgaben sind noch von dem letzten Sprint übrig (Backlog)
→Das Team einigt sich auf ein Sprint-Ziel

Daily scrum:
Jeden Tag findet ein Meeting statt, bei dem die Probleme besprochen werden, was alles gestern erledigt wurde und was der Plan für den Tag ist.
Dieses Meeting dient nur zum berichten und nicht zum diskutieren

Am Ende des Sprints ist eine sprint review also welche Arbeit wurde erledigt? Und eine sprint retrospective also wie das Projekt funktioniert hat.

Über die Zeit hinweg reduzieren die Entwickler das zu Erledigende (backlog).
→ product backlog: alle Aufgaben für das Projekt
→ sprint backlog: Alle Aufgaben für den jetzigen Sprint

73
Q

Welche Scrum Roles gibt es?

A

Team:
führt die Arbeit aus, und ist dafür zuständig, dass das Ziel erreicht wird

Product owner:
ist der Stakeholder, sie/er steuert die Produktentwicklung und ist für die Kommunikation zuständig.

Scrum master:
Ist für die Aufrechterhaltung des Prozesses zuständig.

Eine Person kann mehrere Rollen haben, muss aber darauf achten die Aufgaben auseinander zu halten.

74
Q

Was ist das Scrumboard?

A

Das Board zeigt all die Aufgaben, die die Team-member zwischen veschiedenen Spalten hin und her bewegen kann.

→ To do: Backlog an Aufgaben
→ Doing: Welche Aufgaben werden gerade erledigt?
→ review: Arbeit ist vollbracht, muss aber noch abgesegnet werden
→ done: Arbeiten die abgeschlossen sind, können aber nochmal geöffnet werden
→ done- done: Vollständig abgeschlossene Aufgaben

75
Q

Welche Probleme gibt es beim Entwickeln von Spielen?

A

Viele Personen arbeiten an Inhalten gleichzeitig

Die Arbeit muss also gespeichert werden (auch als backup), es kann die Zeit zurückgedreht werden um ältere Versionen abzurufen und 2 oder mehrere Personen gleichzeitig an einem Asset arbeiten können.

76
Q

Welche Lösungen gibt es damit Personen gleichzeitig an Inhalten arbeiten können?

A

USB-Stick
Alles wird auf einem USB-Stick oder vergleichbaren Medium gespeichert und kann unter Personen ausgetauscht werden
Es ist schwierig in der Buchhaltung.

Live file server
Der Zugang ist nur im Firmennetzwerk möglich
Es wird kaum ein gleichzeitiger Zugriff möglich sein

File sharing service with automatic synchronization (OneDrive)
Unterstützt Offline-Working und aktualisiert sich automatisch
Kann Konflikte erkennen, wenn 2 Personen gleichzeitig an einer Datei arbeiten
Jeder Speicherung hat einen Zeitstempel auch eventuell mit dem Namen der Person
Unterstützt kein Schreibschutz usw

Collaborative editing system (Google Docs usw.)
Kann perfektes gleichzeitiges Arbeiten garantieren

77
Q

Welche Eigenschaften sollte ein Version Management System haben?

A

Must-haves:
→ Explicit semantic versioning: Jede Version wird manuell erstellt und enthält Metainformationen z.B. welcher bug repariert worden ist, oder welches feature dazugekommen ist
→ Offline concurrency und conflict detection
→Locking: die Datei kann nicht bearbeitet werden bis sie wieder freigegeben wird

Should-haves:
→Branching and mergin: Es wird anfangs an unterschiedlichen Sachen gearbeitet bis sie am Ende wieder zusammengefügt werden
→Automatische Zusammenführung (bis jetzt nur bei Text-Dateien möglich)

78
Q

Welche 2 Arten des Version Management gibt es?

A

Centralized Version Management
Ein Server besitz die Autorität, dadurch gibt es nur immer den einen „guten“ Status
Es gibt einen Fehlerpunkt
Eine Software dieses Typs ist Subversion

Distributed version management
Es gibt nicht nur einen Fehlerpunkt
Es gibt keine Autorität, dadurch können Dinge komplizierter werden
Eine Software dieses Typs ist Git

79
Q

Was passiert bei Subversion auf der Seite des Servers?

A

In der SVN (Apache Subversion) Welt, gibt es einen Server der ein Repository speichert.
→ Der Adresse des Repository wird eine URL gegeben, diese beginnt an der Wurzel des Verzeichnisses

80
Q

Was passiert bei Suversion auf der Seite des Clients?

A

Jeder Benutzer hat ein „working directory“ in dem sie entwickeln
→ es wird einmal „checked out“, also die werden die Dateien vom Server zum Client runtergeladen

Wenn angefangen wird an einer Unit zu arbeiten:
→ das „working directory“ wird geupdated und es wird alles runtergeladen was sich auf dem Server verändert hat
→ es wird ganz normal weiter an den Dateien gearbeitet, es können Dateien explizit hinzugefügt/gelöscht oder verschoben werden. Add

Am Ende der Arbeit wird ihre lokale Speicherung mit dem Server synchronisiert Commit

81
Q

Wie kann es zu Konflikten bei SVN kommen? Und wie werden diese gelöst?

A

Es kommt immer wieder zu Konflikten, wenn 2 Entwickler an der gleichen Datei arbeiten

VN versucht den Konflikt zu finden und erstellt eine „merged file“.

Sollte dies nicht funktionieren müssen die Entwickler manuell die 2 Dateien kombinieren. SVN markiert dabei die betroffenen Stellen.
→ SVN muss darauf gesagt werden, dass wir den Konflikt gelöst haben.

Es kann zu Konflikten in Dateipfaden kommen, wenn z.B. 2 Entwickler eine Datei mit gleichem Namen hinzufügen, oder eine lokale Datei den gleichen Namen hat wie eine die durch ein Update dazukommt.

Um Konflikte zu vermeiden müssen wir die neuste Version aktualisieren bevor wir unsere Dateien zum Server hochladen.

Dateien können verschlossen werden, d.h. niemand kann diese file auf dem Server hochladen.

82
Q

Was sind Brachnes und Tags bei SVN?

A

SVN unterstützt „branches“.
Kleiner Gruppen können so andere Merkmale entwickeln.
Später kann dann dieser branch mit dem „trunk“ oder anderen branches zusammengeführt werden.
In SVN sind branches nur Verzeichnisse

Tags werden benutzt um die speziellen Versionen lesbar für den Menschen zu beschriften. Auch Tags sind in SVN Verzeichnisse
Deshalb haben die meiste SVN Verzeichnisse 3 Unterverzeichnisse:

→ trunk: dort wird hauptsächlich entwickelt
→ branches
→ tags

83
Q

Welche Interfaces hat SVN?

A

SVN kommt mit einer sehr gut ausgestatteten Befehlszeile, die sehr viele Operationen
→ z.B. Status des Verzeichnisses abfragen (Überarbeitet seit dem letzten commit? kürzlich neu hinzugefügt? usw.)

Aber auch andere Entwickler haben gute Interfaces entwickelt.
→ TortoiseSVN für Windows
→ SnailSVN für Mac

84
Q

Wie sollte man SVN in Verbindung mit anderen Anwendungen verwenden?

A

Wenn man mit anderen Anwendungen arbeitet muss man immer sicher gehen, dass beide die verschiedenen Verfahren gleich bearbeiten.

Z.B. sollte man keine Dateien im Explorer löschen, sondern man sollte sie mit einer „svn delete“ Anwendung löschen, damit SVN sie besser verarbeiten kann.

Wenn eine Game Engine benutzt wird, oder jede andere Anwendung die einen anderen Zusammenhang für ihre Dateien benutzt, sollte ein Plugin verwendet werden. Dieses Plugin überträgt die Änderung von der Game Engine zu den SVN Dateisystem.

85
Q

Was sind Probleme des SVN Systems?

A

Das SVN ist nicht mit dem Unicode bekannt. Deshalb sollten Dateien nicht mit nicht-ASCII Zeichen benannt werden.

Das Zusammenspiel von OS und Windows wird nicht wirklich unterstützt.
→ Von macOS können Dateinamen „commited“ werden die aber nicht für Windows unterstützt werden.

86
Q

Was ist das Check-out bei SVN?

A

Checkt eine Arbeitskopie aus dem Projektarchiv aus.
Wird „path“ ausgelassen, wird der Basisname der URL als Ziel verwendet.
Werden mehrere URLs angegeben, wieder jeder in ein Unterverzeichnis von path ausgecheckt, wobei der Name des Unterverzeichnisses dem Basisnamen des URL entspricht.

87
Q

Erklären Sie das Git-System genauer.

A

Gits ist „distributed“. Alles funktioniert ohne einen zentralen Server.

In der Basis Konfiguration sind alle Projektdateien auf allen Clients gespeichert.

Es ist optimiert für sehr effizientes „branching“, „tagging“ und „merging“.

Wie bei SVN sind grafische Anwendungen vorhanden. Aber die Kommandozeile wird im Gegensatz zu SVN mehr genutzt.
→ Diese Eingaben in die Kommandozeile sind hier auch Nutzerfreundlicher gestaltet

88
Q

Was macht Git init?

A

git intit fügt ein .git Unterverzeichnis hinzu, welches das arbeitende Verzeichnis wird.

Das .git Verzeichnis enthält den Speicherort (repository)

89
Q

Wie funktioniert Git?

A

Git ist wie ein Verzeichnis zusätzlich zu dem eigenen Verzeichnis

Es enthält „snapshots“ die den jetzigen Status zeigen (alle Dateien und Verzeichnisse wie sie jetzt gerade sind).
→ dieser snapshot wird auch commit genannt.

Für einen Snapshot wird keine Kopie aller Dateien und Verzeichnisse erstellt.
→ Viele version control systems speichern nur patches oder Unterschiede zwischen Versionen.

Git verwendet stattdessen „deduplication“. Es speichert alle Dateien (blobs), trees, Verzeichnisinformationen und commit Dateien nur einmal. Es werden zu den Dateien „pointers“ erstellt. Jeder commit erstellt einen neuen pointer.
→ Die Dateien sind unter .git/objects mit einem auf die Dateien gerechneten hash.
→ Es entsteht ein content-adressable file store.

Git löscht automatisch die Objekte, auf die nicht mehr verwiesen wird.

90
Q

Wie funktionieren Commits bei Git?

A

Im Gegensatz zu SVN, werden nicht alle Veränderungen an den Dateien comitted.
→ Dateien müssen in ihrem jetzigen Status für einen commit markiert werden.

Im Gegensatz zu SVN, haben commits keine Versions-Nummer, sondern sie werden mit dem Hash des Inhalts des Commits identifiziert.

Der Verlauf kann rekonstruiert werden, da jeder commit, den commit abspeichert der davor kam.
→ Durch den Vergleich von dem commit und der Parent-Datei können die Veränderungen einfach gezeigt werden.

91
Q

Was sind tags bei Git?

A

Ein Git tag ist nur ein Name für ein Objekt (blob oder commit), dass der Mensch lesen kann.
→ ein annotierter Tag enthält zusätzliche Informationen, zusammen mit einer Nachricht die diese beschreibt.

92
Q

Was sind Branches bei Git?

A

In Git ist ein Zweig nur ein pointer der immer auf den neusten commit zeigt.

Ein neu erstelltes Git repository hat nur einen Zweig.
→ Dieser Zweig wird meist master oder main genannt.

Der derzeitige Zweig in dem arbeitenden Verzeichnis wird HEAD genannt.

Git Checkout tauscht den HEAD mit einem anderen Verzeichnis aus.
→ es kann auch dafür benutzt werden um Datei-Inhalte wieder herzustellen

Branches können auch zusammengeführt werden, was in einem neuen Commit mit 2 Parents resultiert.

93
Q

Was sind Git remotes?

A

Um zusammen zu arbeiten können wir die Dateien-Speicherung in ein anderes repository kopieren, oder zweige Verbinden.

Git macht dies mit dem definieren von remote locations mit einem Namen einfacher.

Um remote references zu aktualisieren benutzt man git push. Dies Aktualisiert das remote master mit der lokalen Datei.

Viele Menschen arbeiten wahrscheinlich nicht mit Verzeichnissen die sie selbst erstellt haben, sondern mit vorerstellten Verzeichnissen auf einem Sever.
→ so ein Server enthält meisten ein leeres Verzeichnis mit nur einem .git Ordner

94
Q

Welche Probleme gibt es bei Git wenn man mit großen Dateien arbeitet? Was sind die Lösungen?

A

Das Standard Git mag es nicht, wenn man mit großen Dateien arbeitet die auch noch oft verändert werden.

Es gibt folgende Lösungen dafür:

→ Shallow clones: Begrenzt die Anzahl an commits die heruntergeladen werden. Wenn also die Dateien sich das letzte Mal vor eine Weile geändert haben werden sie nicht mehr in das lokale System geladen.

→ Partial clones: Der Download wird nur ausgeführt, wenn die Objekte benutzt werden (z.B. für ein Checkout). Sparse checkout: Man kann festlegen welche Dateien und Verzeichnisse ausgecheckt werden.

Large File Support ist eine Erweiterung die größeren Dateien auf einen Zentralen Sever abspeichert anstatt in dem .git/objects Verzeichnis.
→ Dadurch entsteht das gleiche Problem wie bei einer Zentralen Speicherung, aber man muss sich auch noch um das Git repository und den Datei-Server kümmern.

95
Q

Git vs. SVN

A

Pro Git
→ moderner
→ Eigenschaften die SVN nicht hat (z.B. das permanente Löschen von Daten)
→ Es ist wiederstandfähiger da die Dateien verteil sind.

Pro SVN
→ einfacher zu verstehen als Git
→ es ist einfacher mit großen binären Dateien zu arbeiten
→ es ist Ressourcen schonender. Man kann einfacher durch SVN Checkout sich die Dateien herunterladen und anschließend committen.