• Keine Ergebnisse gefunden

Lösungen für Aufgaben zur Klausurvorbereitung Aufgabe 1: [10 Punkte]

N/A
N/A
Protected

Academic year: 2022

Aktie "Lösungen für Aufgaben zur Klausurvorbereitung Aufgabe 1: [10 Punkte]"

Copied!
11
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

HTW Dresden Internettechnologien Fakultät Informatik/Mathematik

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

(2)

<x>3.3</y> <x>19.1</y>

* Öffnende und schließende Tags passen nicht zusammen, zweimal aufeinanderfolgend. Nicht wohlgeformt.

(3)

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

(4)

Aufgabe 3: [7 Punkte]

Beantworten Sie die folgenden Fragen:

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

(5)

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‘];

(6)

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.

(7)

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 );

(8)

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/vorhersage- gewinnzahlen.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);

}

(9)

} //]] >

</script>

</head>

<body onload="ajaxload()">

<H1>AJAX-Demonstration </H1>

<div>Antwort:</div><div id="dyntext"></div><br/>

</body>

</html>

(10)

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>

(11)

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.

Referenzen

ÄHNLICHE DOKUMENTE

” es ist beweisbar, dass ϕ gilt“ liest). Zeigen Sie weiterhin, dass diese Eigenschaft nicht in der Pr¨ adikatenlogik axiomatisierbar ist, d. Skript Satz 6.13, Ab- schnitt 6.4).

Berufs-/Fachmittelschulen Aufnahmeprüfung 2014 Olten / Solothurn

Sie überlegen, eine nachschüssige Forderung über 7.200,00 € jährlich, Laufzeit 15 Jahre, umzuwandeln. a) Die Umwandlung soll in eine vorschüssige Forderung mit einer Laufzeit von

[r]

t 2 und die Funktion f erfullen die Voraussetzungen des Satzes von Lerch und

Wenn diese gefundenen Funktio- nen linear unabh¨angig sind, hat man eine L¨osungsbasis zusammengestellt.. Die lineare Unabh¨angigkeit wird mit dem

Musterl¨ osung Rechenteil — ITPDG, 08.. Also

Es m¨ ussten 1 ± i jeweils dreifache Nullstellen des charakteristischen Polynoms sein.. Daf¨ ur m¨ usste die DGl mindestens