136
wba2 (Fach) / Vokabeln (Lektion)
Anzeige
- JSON (Java Script Object Notation) • Datenaustauschformat für einfache Datenstrukturen und zeichnet sich durch seine Kompaktheit aus
- Repräsentation • Ist eine Transformation oder eine Ansicht des Zustands einer Ressource zu einem bestimmten Zeitpunkt • Schickt ein Browser eine Anfrage an eine Resource, so bekommt er als Antwort nicht die Resource selbst, sondern eine Repr.sentation der Resource. Bei einer Datei ist dies z.B. eine Kopie des Inhalts oder bei einem Skript das Ergebnis der Ausführung des Skriptes. Bereits wenn eine Repr.sentation beim Client eintrifft kann diese schon veraltet sein, wenn sich der Zustand der Resource in der Zwischenzeit ver.ndert hat. Nimmt man den Nachteil veralteter Daten in Kauf, bekommt man bei REST entscheidende Vorteile: Skalierbarkeit und eine einfache Architektur.
- Web als eine Applikationsplattform Das Web ist nicht mehr nur ein gro. angelegte Informationsplattform sondern eine Plattform für ein .kosystem von Dienstleistungen
- Idempotenz von HTTP-verben • PUT & Delete • Aktualisierung der Ressource oder das vollst.ndige l.schen hat das gleiche Ergebnis unabh.ngig davon ob die Operation 1mal oder mehrmals versucht wird • Bei einem Service zum Verbuchen von Geldbetr.gen ist der Aufruf einzahlen(100) nicht idempotent, da bei mehrmaligem Service- Aufruf der Betrag 100 mehrmals eingezahlt wird. Würde man hingegen neuerKontostand(600) aufrufen, so würde bei mehrmaligem Service-Aufruf der Kontostand gleich bleiben. Dieser Aufruf w.re idempotent.
- Wann sind HTTP-Verben idempotent und was Safe? • Idempotent wenn bei ein- oder mehrmalige Ausführungdes Befehls keine Zustands.nderung au.en zu sehen ist – bis auf POST • Safe wenn Ressource beim Aufruf nicht ver.ndert wird - GET
- XAMPP • Wesentliche Technologie zum Steaming von XML • Wenn man zum Server ein XML Stream übertr.gt kann man XML-Snippets austauschen • PUB/SUB • Nodes werden erstellt in denen Information ver.ffentlicht wird • Zu einem Node Publishen und Subscriben • Benachrichtigung von einer Node erhalten • Multi-Party-Kommunikation • XAMPP-Erweiterung Kommunikationsaustausch zw mehreren Personen • Nachrichten in einem Raum ausgetauscht • M.glichkeit Benutzer zu bannen, Admins benennen, PW erzeugen • Auch XML-Payloads austauschbar
- Synchronität • Synchron • Zeitlich Gekoppelt • Referenziell gekoppelt • Zieladresse bekannt • Asynchron • Zeitlich enkoppelt • Referenziell entkoppelt • Absender gibt keine Zieladresse an
- Sicherheit von HTTP-Verben • GET • Fehlgeschlagene Anfragen k.nnen wiederholt werden ohne das gesamtverhalten einer Anwendung zu ver.ndern
- Namespace (Namensraum) Dabei werden – vor allem bei der objektorientierten Programmierung – die Namen für Objekte in einer Art Baumstruktur angeordnet und über entsprechende Pfadnamen eindeutig angesprochen • Vereinfacht bedeutet dies, dass innerhalb eines solchen Raumes jeder Name eindeutig ein Objekt bezeichnet. Der gleiche Name kann jedoch in einem anderen Namensraum wieder frei zur Bezeichnung eines anderen Objekts benutzt werden. Au.erdem k.nnen diese unabh.ngigen Namensr.ume innerhalb einer Hierarchie verbunden werden.
- Contract • Ziel ist das reibungslose Zusammenspiel einzelner Programmmodule durch die Definition formaler Vertr.ge zur Verwendung von Methoden und Schnittstellen. • Legt fest welche Operationen es gibt, welche Ein-Ausgabeparameter und Fehlermeldungen für diese Operation gültig sind
- Anzeige
- „location“-Feld des HTTP-Header die URI der neu erstellten Ressource übergeben werden
- AJAX (Asynchronous Javascript and XML) • Asynchrone Datenübertragung zwischen Browser und Server • Erm.glicht HTTP-Anfragen durchzuführen w.hrend Seite anzeigt und ver.ndern ohne erneut zu laden • HTTPRequest API wird verwendet • Beim Seitenaufbau wird Objekt erstellt, welches Attribute und Methoden enth.lt • .ber die Methoden k.nnen JS-Funktionen im Hintergrund auf Serverdaten zugreifen • Vorteile: • Geringe Datenübertragung -> nur das geladen was ben.tigt wird • Standart-Technologie -> viel Input im Web • User kann w.hrend Anfrage(senden und empfangen von Daten) die Webseite benutzen (asynchrone Datenübertragung)
- HTTP-Statuscodes • Status Codes sind zum Beispiel „404 not found“. Sie dienen als Hinweise ob ein Request erfolgreich war, oder nicht. Je nach Statuscode sind sie spezifisch oder generell.
- • Polling (asynchrone Kommunikation) • Client sendet in regelm..igen Abst.nden Request Server, der vom Server postwendend beantwortet wird: entweder mit einer Kurznachricht, falls eine solche vorliegt, oder andernfalls mit einer leeren Antwort.
- Long Polling (asychnrone kommunikation) • Client sendet Request an Server, Server antwortet wie Polling. Wenn Server keine kurze antwortnachricht vorliegt h.lt Server die Verbindung offen bis nachricht vorliegt oder TIMEOUT
- Umsetzung asynchroner Kommunikation • Websocket • Bidirektionale Verbindung zwischen Client und Server • Die Benachrichtigungen die bei auf Event basierenden Verfahren übertragen werden, k.nnen nicht nur darüber Aufschluss geben, dass neue Daten zur Verfügung stehen, sondern den Nutzdatenanteil auch direkt beinhalten. Demnach werden Benachrichtigungen, die einen Nutzdatenanteil beinhalten als Fat Ping und ohne diesen Anteil als Light Ping bezeichnet.
- Verteiltes System • Ansammlung unabh.ngiger Computer, die den Benutzer wie ein einzelnes koh.rentes System erscheinen. • Ein verteiltes System ist ein System, in dem sich HW- od. SWKomponenten auf vernetzten Computern befinden und nur über den Austausch von Nachrichten kommunizieren und ihre Aktionen koordinieren. • Unabh.ngige Ausf.lle -> jede Komponente des Systems kann unabh.ngig von den anderen ausfallen • Ziel: gemeinsame Nutzung von Ressourcen
- Verteiltes System Beispiele • Banksysteme • Flug/Reise-Buchungssysteme • Verteilte Datenbanken
- Was genau wird hierbei unter der Kohärenz der Anwendung verstanden?" • Koh.renz = Zusammenhang • der Zusammenhang der Komponenten • jeder Prozessor greift auf aktuelle Daten zu
- Erklären Sie die Merkmale von verteilten Anwendungen!" • Komplexe Programme verteilt in mehreren Computern • Aufgabe aufgeteilt auf Softwarekomponenten • Erfüllung durch Arbeit aller Komponenten
- "Was versteht man unter Middleware?" • Ein verteiltes System wird auch manchmal als Middleware bezeichnet. Die Middleware ist als Schicht zu sehen, welchem dem Anwender/der Anwendung verbirgt, dass es sich um ein, auf mehreren Rechnern, laufendes System handelt.
- "In welcher Hinsicht wird Heterogenität durch Middlewaresysteme unterstützt?" • lose Kopplung der Prozesse (Middleware kommuniziert mit jeder Art)
- "Was versteht man unter den Begriffen Anwendungslogik und unter Präsentationslogik?" • AL=Implementierung des Modells, PL=Realisation des User Interfaces (Benutzeroberfl.che)
- "Aus welchen Gründen sollte Anwendungslogik und Präsentationslogik bei der Realisierung von Systemen sauber getrennt werden?" • gute Architektur, skalierbar
- Aus welchen Gründen solle das Ressource Management von der Anwendungslogik getrennt werden?" • M.glichkeit zur Einbindung einer Middleware
- Welche Herausforderungen stellen sich, wenn die Heterogenität von Programmiersprachen auf den unbeteiligten Systemen unterstützt werden soll?" • es müssen hohe Sprachen sein, au.erdem müssen alle die gleichen Basisoperationen haben (besser: gleiche Basissprache)
- Erklären Sie den Begriff referenzielle Entkopplung und gehen Sie auf die Bedeutung für verteilte Systeme ein!" • Multicast (mehrere Systeme sind gekoppelt), verteilte Systeme beruhen auf dieser Logik
- "Wie werden Transaktionen in verteilten Systemen umgesetzt?" • in mehreren Teiltransaktionen inkl. Nutzung von Commit-Protokollen, X/Open DTP (distributed transaction processing)
- "Erklären Sie das Konzept der Multi-Tier Architektur?" auch n-Tier genannt, Architektur aus versch. Schichten (logisch getrennt), untersch. Unterteilung der Komponenten zwischen Client u. Server, meistens 3+ Schichten
- (*)"Diskutieren Sie die Java EE Architektur auf Basis der Multi-Tier Architektur?" • Java EE ist auch eine Middleware, erweitert Multi-Tier um Application Server, Spezifikation zur Ausführung von transaktionsbasierten Anwendungen
- Anzeige
- "Charakterisieren Sie Ihnen bekannte Standardisierungs Gremien!" • ISO (Internet), ITU (Telekommunikation), IANA (IP-Adressen), W3C (Techniken-HTML...), IETF (Weiterentwicklung)
- "Charakterisieren Sie den Entstehungsprozess von Internet Standards!" • 1. propose (Vorschlag des RFC), 2. draft (Implementierung, Entwurf) → IETF gibt OK zur Spezifikation
- "Beschreiben Sie die Unterschiede von proprietärer Software (sogenannte "Lizenzsoftware") und quelloffener Software!" • Lizenzsoftware=kommerziell, überwachter Code; • quelloffen=kostenlos, kopierbar, ver.nderbar, .ffentlich zug.nglich
- Nennen Sie Ziele und Kriterien von quelloffener Software!" • Wissen teilen, Code für eigene Programmierung verwenden/kopieren, Weiterentwicklung
- "Charakterisieren Sie das Creative Commons Urheberechtssystem!" • Symbole signalisieren Rechte der quelloffenen Software; BY =Urheber, NC = non-commercial - nicht kommerziell, ND = no derivatives - nicht bearbeiten, SA = share alike – unter gleicher Lizenz
- Zustandslosigkeit Eigenschaft eines Protokolls oder Systems mehrere Anfragen grunsätzlich als einzelne Transaktionen zu behandeln