Lösungen für Aufgaben zur Klausurvorbereitung

Ähnliche Dokumente
a) Erklären Sie, was die folgenden Eigenschaften eines XML-Dokumentes aussagen? wohlgeformt gültig

Lösungen der Aufgaben zur Klausurvorbereitung. Aufgabe 1: a) was sagen die folgenden Eigenschaften eines XML-Dokumentes aus? wohlgeformt gültig

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick Parameterübergabe...

Multimedia im Netz. Übung zur Vorlesung. Ludwig-Maximilians-Universität Wintersemester 2010/2011

Python CGI-Skripte erstellen

Proseminar: Website-Management-Systeme

BillSAFE Payment Layer Integration Guide

ASP: Active Server Pages

Internettechnologien Vorlesung für Master-Studierende Geoinformatik/-management Sommersemester 2016

Programmieren 2 (Prof. Hasbargen) Klausur

Enterprise Applikation Integration und Service-orientierte Architekturen. 09 Simple Object Access Protocol (SOAP)

Daten als XML empfangen Ajax und Server-Programme bieten ein DOM-Document-Objekt, das bereits fertig ist.

2. Interaktive Web Seiten. action in Formularen. Formular. Superglobale Variablen $ POST, $ GET und $ REQUEST. GET und POST

Web Sockets mit HTML5. Quelle:

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.

Destructive AJAX. Stefan Proksch Christoph Kirchmayr

PHP Einsteiger Tutorial Kapitel 4: Ein Kontaktformular in PHP Version 1.0 letzte Änderung:

Web Visu Tutorial. Hipecs Web Visu. Übersicht

VWA Rhein-Neckar Dipl.-Ing. Thomas Kloepfer. Kommunikation I (Internet) Übung 5 Formulare

Java - Webapplikationen

Java zur Realisierung von Internetanwendungen

PHP JavaScript Kapitel 9. Java-Script-Objekte und das Event-Modell

Verteilte Systeme: Übung 4

Klausur Kommunikation I. Sommersemester Dipl.-Ing. T. Kloepfer

E-Commerce: IT-Werkzeuge. Web-Programmierung. Kapitel 4: Einführung in JavaScript Stand: Übung WS 2014/2015. Benedikt Schumm M.Sc.

Übung zur Vorlesung Multimedia im Netz

4. Februar 2008 Klausur EWA

Einführung in die Scriptsprache PHP

Perl-Praxis CGI-Skripte 0-0/22

BS1000 messenger to web server

XPages Good to know. Benjamin Stein & Pierre Hein Stuttgart 7. Mai 2015

Zustandsgebundene Webservices

Einstieg in AJAX-Programmierung

NEWpixi* API und die Umstellung auf REST. Freitag, 3. Mai 13

Grundlagen der Informatik 2

Aktuelle Sicherheitsprobleme im Internet: Angriffe auf Web-Applikationen

Peter Sobe Internettechnologien. HTTP Protokoll (1) Hypertext Transport Protocol, größtenteils zum Austausch von Hypertext (HTML, xhtml) benutzt

Datenbanksysteme SS 2007

Programmieren der Untersuchung

Projekt Online-Shop:

Formulare in html Bernd Bl umel Version: 1. April 2003

HTTP. Arthur Zaczek. Aug 2015

PPS-Design einer eigenen WWW-Homepage WS 2002/2003. Anforderungen an eine Webseite

Datenbank-basierte Webserver

REST-basierte Web-Services mit PHP (1)

Praktikum im Grundstudium

Internettechnologien

PHP-5-Zertifizierung. Block 12 Security.

7. OSI-Modell als Rollenspiel

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II SS 2015 PHP MVC. Dr. Christian Senger. PHP MVC 1 von 21

FileMaker Go 13 ohne Connects

Wiederholung: Beginn

Multimediale Web-Anwendungen. JavaScript. Einführung. MWA JavaScript-Einführung Dr. E. Schön Sommersemester 2015 Folie 1.

Application Note. Anbindung von Kunden-Software an SpiderControl Web Visualisierung

BIF/SWE 1 - Übungsbeispiel

Entwicklung einer Suchmaschine mit dem Internet Information Server

Aufgaben HTML Formulare. Prof. Dr. rer. nat. Claus Brell, Wirtschaftsinformatik, Statistik

Aktuelle Angriffstechniken. Steffen Tröscher cirosec GmbH, Heilbronn

Grundlagen Internet-Technologien INF3171

for ($i=1 ;$i<=25 ;$i++) { echo "$i "; }?> <br> <a href=" zur Index-Seite</a> </body> </html>

Sicherheit in Webanwendungen CrossSite, Session und SQL

ESB - Elektronischer Service Bericht

Probe-Klausur im Modul: Anwendungsorientierte Informatik (AINF)

ASP.NET Grundlagen. Was ist ASP.NET

Multimedia im Netz Wintersemester 2013/14. Übung 10 (Nebenfach)

Themen. Anwendungsschicht DNS HTTP. Stefan Szalowski Rechnernetze Anwendungsschicht

Wolkig bis heiter. Andreas Wismann WHEN OTHERS. APEX als Drehkreuz für Web Service-Anwendungen

AJAX. Autor: Othmane Mihfad

5. AJAX - Asynchronous JavaScript and XML

Einführung in die Cross-Plattform Entwicklung Web Services mit dem Intel XDK

AJAX Implementierung mit Joomla!

Programmieren im Web 2.0

Sessions mit PHP. Annabell Langs Sessions in PHP - Annabell Langs 1

Internettechnologien

Etwas zur Wiederholung bzw. Vertiefung

Online Kataloge. Wie binde ich einen SGVSB-Online-Katalog in eine Webseite ein. Versionsnummer: 1.0 Änderungsdatum:

PHP. Prof. Dr.-Ing. Wolfgang Lehner. Diese Zeile ersetzt man über: Einfügen > Kopf- und

Insgesamt stecken hinter dem Überbegriff AJAX eine ganze Reihe von Technologien und ihr Zusammenspiel, die aber alle keineswegs neu sind:

PHP und MySQL. Formulare - Datenübertragung mit PHP. Zellescher Weg 12 Willers-Bau A109 Tel

Glossar. SVG-Grafiken in Bitmap-Grafikformate. Anweisung Eine Anweisung ist eine Folge aus Schlüsselwörtern, Variablen, Objekten,

Securing SOAP e-services

PHP Schulung Beginner. Newthinking Store GmbH Manuel Blechschmidt

Softwarepraktikum - Verteidigung Entwurf LDAP-Interfaces für majordomo und Web

Programmieren II. Wie kommen Daten von einem Webserver? Vorlesung 12. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011

PHP-Schwachstellen und deren Ausnutzung

Multimedia im Netz Wintersemester 2011/12

Kapitel WT:VI. VI. Architekturen und Middleware-Technologien

Kommunikationsnetze. 7. Das World Wide Web 7.4 Client- vs. Server-basierte Techniken für dynamische Webseiten

FileMaker und PHP Workshop

Java Server Pages (JSP)

Klausur Informatik Programmierung, Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg

SMS-API. Sloono Schnittstellenbeschreibung. Version 1.2 Stand

Funktionen in PHP 1/7

Web-Anwendungen Teil 2 PHP kl. Studienprojekt (Praktikum) Winter 2014/ Daniel Fett

Aktuelle Sicherheitsprobleme im Internet: Angriffe auf Web-Applikationen

Google Maps API: Koordinaten eines Markers in PHP auslesen

Komponentenorientierte Software-Entwicklung. Seite 1 / 42

Dateneingabe über ein HTML-Formular in eine Datenbank:

Sicherheit in Rich Internet Applications

Transkript:

HTW Dresden Fakultät Informatik/Mathematik Internettechnologien Lösungen für Aufgaben zur Klausurvorbereitung Aufgabe 1: [10 Punkte] a) Erklären Sie, was die folgenden Eigenschaften eines XML-Dokumentes aussagen? wohlgeformt Tags vollständig, keine unpassenden >, < Tag-Hierarchie wird eingehalten schließende Tags passen zu öffnenden Tags Tags mit syntaktisch korrekten Attributen gültig XML Dokument passt zur DTD bzw. zum XML-Schema, nur spezielle erlaubte Tags und Attribute werden benutzt Tag-Hierarchie wie im Schema oder DTD vorgegeben b) Welchem Zweck dient eine Validierung eines XML-Dokuments? Vor der Verarbeitung von XML-Daten kann man durch eine Validierung prüfen, ob das XML-Dokument den gemachten Annahmen (z.b. Vorhandensein spezieller Tags, Reihenfolge von und Schachtelung von Tag-Knoten, Existenz von Werten an den erwarteten Stellen) genügt. Einer aufwendigen Fehlerbehandlung beim Verarbeiten der XML-Daten kann damit vorgegriffen werden. c) Zeigen Sie am unten stehenden XML-Schema und einem XML-Dokument, an welchen Stellen welche dieser Eigenschaften verletzt werden. Schema ist fehlerfrei. XML-Dokument: <valuepair> <x>2.0 18.4</y> </valuepair> * schließendes Tag passt nicht, nicht wohlgeformt * Unter valuepair müssen Tags <x></x> und <y></y> vorkommen, nicht gültig <xyvalues id="groesse_ueber_zeit" y_label="h in cm"> * Attribut x_label fehlt, nicht gültig <x>1.1</x> <y>17.3</y> * x,y-tags ohne valuepair, nicht gültig

<x>3.3</y> <x>19.1</y> * Öffnende und schließende Tags passen nicht zusammen, zweimal aufeinanderfolgend. Nicht wohlgeformt.

Aufgabe 2: [10 Punkte] Beschreiben Sie die Architektur eines webbasierten Informationssystems für Straßenbahnlinien, das es erlaubt, für Haltestellen in einem Netzplan die Abfahrten in der nächsten Stunde anzuzeigen, wenn diese vom Benutzer per Maus ausgewählt werden (z.b. Auslösung eines mouseover-ereignisses) und die aktuelle Position der Straßenbahnwagen im Netzplan anzuzeigen. Die Positionsdaten der Straßenbahnwagen werden per GPS erhoben und per Mobilfunk an einen Serverrechner übertragen, der mit dem Webserver des Systems verbunden ist. Jede Positionsänderung eines Straßenbahnwagens um mindestens 5 Meter löst ein Ereignis im Serverrechner aus. Die Haltestellen, deren Netzplan-Positionen und die Abfahrtspläne sind in einer Datenbank abgelegt. Lösung: Client: JavaScript (Skriptprogramm bereitgestellt durch Server, ausgeführt im Client), (1) Reaktion auf Mausereignisse, Auslösen AJAX-Request mit Anfrage der Abfahrtszeiten für Haltestellen-Objekt (2) Entgegennehmen der Antworten mit Abfahrtszeiten, z.b. als Text, XML oder JSON, Anzeige der Abfahrtszeiten durch DOM-Manipulation (3a) Connect auf einen Websocket beim Laden der Webseite (onload) und Schließen (close) der Websocket-Verbindung beim Verlassen der Webseite (onclose) (3b) Empfang von Straßenbahnwagen-Positionen über einen geöffneten Websocket vom Server, z.b. als JSON-String, Anzeigen der Positionen durch DOM-Manipulation Server: (1) Bereitstellung der Webseite als PHP-Skript und JS-Datei, Erzeugung des Netzplans durch DB-Abfrage und entsprechende Erzeugung von Grafikelementen. (2) PHP-Skript zur Bereitstellung der Abfahrtszeiten einer Haltestelle, Auslesen eines Parameterwerts, DB-Abfrage und Ausgabe der Abfahrtzeiten im Text-, XML- oder JSON-Format (3) Weiteres Server-Skript zur serverseitigen Bedienung eines Websockets und dem Senden der Positionsdaten, z.b. als JSON- String

Aufgabe 3: Beantworten Sie die folgenden Fragen: [7 Punkte] a) Wodurch werden Dienste im Internet für einen potenziellen Benutzer (Client) identifiziert? Allgemein durch IP-Adresse und Port, oder einen Servernamen. Im Web durch eine URL b) Welche Aufgabe hat das Domain Name System (DNS)? Servernamen und URLs in IP-Adressen übersetzen c) Durch welches Programm, bzw. auch durch welches Objekt kann ein http- Request ausgelöst werden? (1) durch den Webbrowser (z.b. nach Eingabe einer URL, nach Anklicken eines Links, bei Absenden eines Formulars) (2) durch das XMLHttpRequestObject (AJAX) auch ein Webservice-Client kann einen http_request auslösen d) In welchen Elementen der http-request-nachricht können Daten vom Client an den Server übergeben werden? Innerhalb der URL durch Querystring-Parameter (Request-Line des http Requests) oder im Body des Requests e) Nennen Sie zwei Transportformate, mit denen Datenstrukturen vom Server (z.b. innerhalb PHP) zum Client (JavaScript) transportiert werden können! XML und JSON f) Nennen Sie zwei Techniken, wie ein Server den inhaltlichen Zusammenhang zwischen zwei aufeinanderfolgenden und durch die Betätigung eines Links (href-tag) verbundenen Aufrufen von PHP-Webseiten als zusammenhängend identifizieren kann! (1) Setzen und Auslesen von Cookies (2) Automatisches Anfügen von QueryString-Parametern, z.b..?sessionid=x0815a4711

Aufgabe 4: [6 Punkte] Es soll ein FORM-Formular in HTML erstellt werden, das zwei eingegebene Zahlen an den Server übergibt. Benutzten Sie die GET-Methode und nehmen Sie an, dass ein Skript auswertung.php auf der Serverseite existiert. a) Geben Sie den HTML-Code-Ausschnitt für das FORM-Formular an! b) Geben Sie die erste Zeile des http-requests an, der beim Absenden des Formulars übertragen wird. Es muss erkennbar sein, wo und in welcher Syntax die eingegeben Werte transportiert werden. c) Geben Sie den Ausschnitt des PHP-Skripts an, das die zwei Zahlen in ein Array zur weiteren Verarbeitung überträgt. Lösung a) <form name="formular" method="get" action="auswertung.php"> <input name="zahl1" type="text" size="10" value="0.0"></input><br/> <input name="zahl2" type="text" size="10" value="0.0"> </input><br/> <input type="submit" value="absenden"/> </form> Lösung b) Nach Eingabe von 47.11 und 0.815 GET auswertung.php?zahl1=47.11&zahl2=0.815 HTTP/1.1 Lösung c) $z[0] = $_GET[ zahl1 ]; $z[1] = $_GET[ zahl2 ];

Aufgabe 5: [6 Punkte] Ein POST-Request mit den folgenden Eingabedaten im Body wird an den Web- Server gesendet und dort von einem PHP-Skript verarbeitet. xpos=45.33 & ypos=20.25 & r=10.14 Entwickeln Sie ein PHP-Skript, das den Flächeninhalt des Kreises (durch xpos, ypos und r beschrieben) als HTML-formatierten Text ausgibt. <?php echo <html> ; echo <head><title>kreisflaeche</title></head> ; echo <body> ; $r = $_POST[ r ]; $f = pi()*$r*$r; // auch PI*$r*$r mit define ( PI, 3.14159 ); echo <p>die Kreisflaeche betraegt $f Einheiten. </p> ; echo </body> ; echo </html> ;?> Die Ausgabe der HTML-, HEAD und BODY-Tags kann weggelassen werden, wenn ein PHP-Skript-Ausschnitt gefordert wird.

Aufgabe 6: [8 Punkte] Angenommen Ihnen wird in einer AJAX-Anwendung ein XML-Objekt als Ergebnis eines asynchronen Requests (z.b. als xmlobj = req.responsexml) zurückgegeben. Unten ist die Textform des XML-Objekts angegeben. <objects> <punkt id= p1 > <objclass>punkt</objclass> <x>34</x> <y>211</y> </punkt> <punkt id= p2 > <objclass>punkt</objclass> <x>52</x> <y>242</y> </punkt> <kreis id= k1 > <objclass>kreis</objclass> <mp>p1</mp> <r>25</r> <color>red</color> </kreis> <kreis id= k2 > <objclass>kreis</objclass> <mp>p2</mp> <r>23</r> <color>blue</color> </kreis> </objects> Geben Sie an, wie Ihr Client durch JavaScript und geeignete Zugriffe auf das XML- Objekt die beiden Punkte mit ihren x- und y-koordinaten ermittelt und die euklidische Distanz zwischen den Punkten berechnet! Lösung: var p1obj, p2obj; var x1,x2,y1,y2; p1obj = xmlobj.getelementbyid( p1'); p2obj= xmlobj.getelementbyid( p2 ); x1=parsefloat( p1obj.getelementsbytagname( x )[0].firstChild.nodeValue); y1=parsefloat(p1obj.getelementsbytagname( y )[0].firstChild.nodeValue); x2=parsefloat( p2obj.getelementsbytagname( x )[0].firstChild.nodeValue); y2=parsefloat(p2obj.getelementsbytagname( y )[0].firstChild.nodeValue); // euklidische Distanz: var dx = x1 x2; var dy = y1 y2; var dist = Math.sqrt( dx*dx + dy*dy );

Aufgabe 7: [8 Punkte] Ergänzen Sie den AJAX-JavaScript-Teil der im folgenden gegebenen Webseite, dass zwischen dem Absenden des HTTP-Requests und dem vollständigen Vorliegen der Antwort der Text Auftrag wird bearbeitet im Textfeld (id= dyntext ) als innerhtml angezeigt wird. Wenn die Antwort vollständig übertragen worden ist, so soll der als responsetext zurückgelieferte Text des AJAX-Requests angezeigt werden. Der http-request soll die URL: http://www.magic-lotto.de/vorhersagegewinnzahlen.php aufrufen, eine GET-Operation verwenden und asynchron arbeiten. <html > <head> <title>ajax-demo</title> <script type="text/javascript"> //<![CDATA[ function ajaxload() { var req = new XMLHttpRequest(); // hier Lösung einfügen var requesturl = "http://www.magic-lotto.de/vorhersage-gewinnzahlen.php"; req.open("get", requesturl, true); req.onreadystatechange = function () { var dt = document.getelementbyid("dyntext"); if (req.readystate == 4) { if (req.status == 200) { dt.innerhtml = req.responsetext; else{ dt.innerhtml = Anfrage beendet, Fehler! ; else { dt.innerhtml = Auftrag wird bearbeitet ; req.send(null);

//]] > </script> </head> <body onload="ajaxload()"> <H1>AJAX-Demonstration </H1> <div>antwort:</div><div id="dyntext"></div><br/> </body> </html>

Aufgabe 8: [5 Punkte] Beantworten Sie die folgenden Fragen im Kontext von Web-Services: a) Geben Sie mindestens zwei Unterschiede an, in denen sich die Webservice- Protokolle SOAP und REST unterscheiden! Unterschied 1: SOAP umschließt die Nutznachrichten in einem s.g. SOAP-Envelope - einem XML-Dokument, das zum Transport dient. Dabei ist z.b. auch das Referenzieren einer Web-Service-Beschreibung in einem WSDL- Dokument möglich. REST transportiert die Service-Anfragen und -Antworten direkt über http und kodiert Daten als XML. Einen Envelope (vgl. SOAP) gibt es hier aber nicht. Die Nachrichten sind daher kürzer. Unterschied 2: REST bezieht sich auf Ressourcen, die serverseitig erzeugt, gelesen, geändert und gelöscht werden können. SOAP hingegen macht keine solche Einschränkungen. SOAP wird typischerweise zur internen Realisierung von RPC s benutzt. b) Angenommen der in der Vorlesung vorgestellte Webservice mit der Funktion Kontakt soll anstatt wie in der unten dargestellten Nachricht <SOAP-ENV:Envelope.. > <SOAP-ENV:Body> <ns1:kontakt> <param0 xsi:type="xsd:string">start</param0> </ns1:kontakt> </SOAP-ENV:Body> </SOAP-ENV:Envelope> den Parameter (hier Start) mit den Tags <Kommando> </Kommando> umschließen? Wie kann man das erreichen? (Angabe des Prinzips reicht aus) Antwort: Durch Bereitstellung einer WSDL-Datei. Die Eingabenachricht wird dann mit einem Parameter <Kommando> spezifiziert, z.b. so <element name="request "> <complextype> <all> <element name="kommando" type="string"/> </all> </complextype> </element>

Wie wird eine Ressource in einem REST-Webservice-Request identifiziert? Antwort: Entweder als Query-String-Parameter, oder als Teil der URL. Beispiele: http://myhome.net/temperatureservice?position=eingang HTTP/1.1 http://myservice.net/hello/fritz Bei AWS auch so: PUT /my-image.jpg HTTP/1. Host: htw.s3.amazonaws.com (hier ist die Bucket-Ressource htw ein Teil des Hostnamen) c) Geben Sie ein Beispiel an, wofür ein Webservice in einem Cloud-Computing- System benutzt werden kann! z.b. Anfordern einer Virtuellen Maschine, oder Erzeugen eines Buckets (vgl. Verzeichnis) im Speichersystem d) Geben Sie eine weitere Kern-Technologie an, die neben Webservices heutige Cloud-Computing-Systeme ermöglicht! Virtualisierung von Prozessoren und Speicher In der hier vorliegenden Aufgabensammlung können 60 Punkte erreicht werden. Mit 50% der Punkte (hier 30 Punkte ) wäre ein Bestehen der Klausur garantiert. Die Punktanzahl und Verteilung auf die einzelnen Aufgaben kann bei der echten Klausur geringfügig variieren.