1 / 25

Entwicklung UnivIS-Anbindung auf Basis von PHP und DOM-XML Manuel Zieger Harald Kolbe

Entwicklung UnivIS-Anbindung auf Basis von PHP und DOM-XML Manuel Zieger Harald Kolbe. Agenda. 1 Einleitung 2 Architektur und verwendete Technologien 3 Entwicklung/Quellcode 4 Vergleich mit Alternativlösung. Ziel des Teilprojekts.

gianna
Download Presentation

Entwicklung UnivIS-Anbindung auf Basis von PHP und DOM-XML Manuel Zieger Harald Kolbe

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Entwicklung UnivIS-Anbindung auf Basis von PHP und DOM-XML Manuel Zieger Harald Kolbe

  2. Agenda 1 Einleitung 2 Architektur und verwendete Technologien 3 Entwicklung/Quellcode 4 Vergleich mit Alternativlösung

  3. Ziel des Teilprojekts • Realisierung einer Abfragemöglichkeit der UnivIS-Datenbank über verschiedene Clients: • PC • Pocket PC • Mobiltelefon • Entwicklung der UnivIS-Anbindung auf PHP-Basis

  4. Warum ein eigenes Teilprojekt? • PHP stellt eigene Methoden zur Verfügung, um XML-Daten einlesen und manipulieren zu können • Generelles Interesse an PHP-Entwicklung und dem Ausbau vorhandener Kenntnisse • Beschränkung auf eine Technologie

  5. Agenda 1 Einleitung 2 Architektur und verwendete Technologien 3 Entwicklung/Quellcode 4 Vergleich mit Alternativlösung

  6. PC • HTML • Pocket-PC • cHTML • Mobiltelefon • WML Systemarchitektur • Webserver • PHP • DOMXML-Extension UnivIS DB XML-Schnittstelle Clients

  7. UnivIS • Universitäres Informationssystem zur Abfrage von: • Personen • Veranstaltungen • Institutionen • Unterschiedliche Abfragemöglichkeiten: • Webbasiert (http://univis.uni-frankfurt.de) • UnivIS-eigene Abfragesprache • PRG-Schnittstelle (Parameterübergabe durch URLs)

  8. XML/DTD • XML (eXtensible Markup Language) • textbasierte Meta-Auszeichnungssprache • ermöglicht hierarchisch strukturierte Ablage und Darstellung von Informationen • Standardformat für plattformunabhängigen Datenaustausch zwischen Anwendungen • DTD (Document Type Definition) • Beschreibung der Struktur eines XML-Dokuments • ermöglicht Validierung des XML-Dokuments

  9. Beispiel: UnivIS XML-Dokument <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE UnivIS SYSTEM "http://univis.uni-frankfurt.de/univis.dtd"> <UnivIS version="1.3"> <Person key="Person.fb2.wi2.wikoen.knigwo"> <firstname>Wolfgang</firstname> <lastname>K&#xF6;nig</lastname> <locations> <location> <email>wkoenig@wiwi.uni-frankfurt.de</email> <fax>069/798-28585</fax> <ort>60054 Frankfurt am Main</ort> <office>206 C</office> <street>Mertonstr. 17</street> <tel>069/798-28594</tel> <url>http://www.wi-frankfurt.de/</url> </location> </locations> </Person> </UnivIS>

  10. PHP/DOMXML • PHP (Hypertext Preprocessor) • objektorientierte Skriptsprache wie ASP/JSP • plattformunabhängig • unterstützt die gängigsten Webserver (z.B. Apache und IIS) • wird hauptsächlich für die Erzeugung dynamischer Webseiten verwendet • DOMXML • Erweiterung für PHP • ermöglicht Zugriff auf sowie Manipulation und Ausgabe von DOM-Objekten über PHP

  11. DOM • DOM (Document Object Model) • ermöglicht Zugriff auf die Elemente einer Markup Language, z.B. HTML oder XML • keine eigene Sprache • Definition von Objekten, Eigenschaften und Methoden, die eine DOM-fähige Skriptsprache umsetzen muss • jede Skriptsprache (z.B. PHP, ASP und JSP) besitzt eine eigene DOM-Implementierung • Beispiel für PHP DOM-Methode $dom->get_elements_by_tagname(“email“)

  12. XML-Dokument als DOM-Struktur $dom->get_elements_by_tagname(„firstname“) $dom $dom->document_element() UnivIS person firstname lastname locations $locations->child_nodes() $firstname->get_content() „Wolfgang“ location email fax ort … url

  13. WML • WML (Wireless Markup Language) • XML-basierter Standard zur Darstellung von Informationen auf Mobiltelefonen und PDAs • vergleichbar mit HTML, aber reduzierte Auswahl an Gestaltungselementen <wml> <card id="card1"> <p>Hello World!</p> <do type="accept" label="Suche"> Zur Suchseite<go href="suche.wml" /></do> </card> </wml>

  14. Agenda 1 Einleitung 2 Architektur und verwendete Technologien 3 Entwicklung/Quellcode 4 Vergleich mit Alternativlösung

  15. Webserver • PHP • DOMXML-Extension UnivIS DB XML-Schnittstelle Clients • PC • HTML • Pocket-PC • cHTML • Mobiltelefon • WML Systemarchitektur

  16. Suchformular HTML WML Quelle: http://www.wiwi.uni-frankfurt.de/~kolbe/praktikum/search.php Quelle: http://www.wiwi.uni-frankfurt.de/~kolbe/praktikum/search.wml

  17. Quellcode (1) • HTTP-Request für UnivIS-Abfrage ... $request = http://univis.uni-frankfurt.de/prg?search=lectures&name=logistik&show=xml ... Quelle: http://www.wiwi.uni-frankfurt.de/~kolbe/praktikum/query.php

  18. Quellcode (2) • Rückgabeformat von UnivIS wird überprüft • XML-Dokument einlesen ... // Test, ob ein XML-oder HTML-Dokument zurückgegeben wird // Wenn HTML zurück, dann Vorgang abbrechen $check_document = implode ('', file ($request)); $sub = substr($check_document, 0, 6); if ($sub == "<html>") { die("Leider hat es zu Ihrer Suche kein Ergebnis gegeben. (<a href='javascript:history.back()'>Zur&uuml;ck</a>)"); } //XML-Dokument in DOM-Objekt einlesen $dom = xmldocfile($request); ... Quelle: http://www.wiwi.uni-frankfurt.de/~kolbe/praktikum/query.php

  19. Quellcode (3) • Auswahl zwischen der Suche nach Personen und Veranstaltungen ... //SWITCH für die Suchparameter (persons, lectures) switch ($type) { //Suche nach Personen case "persons": include("persons.php"); break; //Suche nach Veranstaltungen case "lectures"; include("lectures.php"); break; } ... Quelle: http://www.wiwi.uni-frankfurt.de/~kolbe/praktikum/query.php

  20. Quellcode (4) • Einlesen der auszugebenden Inhalte in Arrays ( Array: speichert Sequenz von Datenwerten) ... //Inhalte der XML-Elemente in Variablen ablegen $lastname = $dom->get_elements_by_tagname("lastname"); $firstname = $dom->get_elements_by_tagname("firstname"); $title = $dom->get_elements_by_tagname("title"); $orgname = $dom->get_elements_by_tagname("orgname"); $email = $dom->get_elements_by_tagname("email"); $phone = $dom->get_elements_by_tagname("tel"); $fax = $dom->get_elements_by_tagname("fax"); $office = $dom->get_elements_by_tagname("office"); $ort = $dom->get_elements_by_tagname("ort"); ... Quelle: http://www.wiwi.uni-frankfurt.de/~kolbe/praktikum/persons.php

  21. Quellcode (5) • Auswahl des Ausgabemediums • ... • // SWITCH für die einzelnen Devices • switch ($HTTP_GET_VARS[device]) { • // Inhalte als HTML rausschreiben • case 1: • for($i=0;$i<$array_length;$i++){ • echo "<a href='result.php? • type=" . $type . • "&firstname=". urlencode($firstname[$i]). "&lastname=" . urlencode($lastname[$i]) . "&orgname=" . urlencode ($orgname[$i]) . • "&email=" . urlencode ($email[$i]) . "'>"; • echo $lastname[$i] . ", " . $firstname[$i] . "</a>\n"; • } • ... Quelle: http://www.wiwi.uni-frankfurt.de/~kolbe/praktikum/persons.php

  22. Quellcode (6) • Ausgabe der im URL-String enthaltenen Parameter als HTML bzw. WML ... //Inhalte der XML-Elemente in Variablen ablegen echo "<p><b>Ergebnisse</b></p>"; echo "<b>Name: </b>"; echo $HTTP_GET_VARS[firstname] . " " . $HTTP_GET_VARS[lastname] . "<br />"; if(!$HTTP_GET_VARS[orgname] == "") { echo "<b>Lehrstuhl:</b>".$HTTP_GET_VARS[orgname].„<br/>";}; if(!$HTTP_GET_VARS[email] == "") { echo "<b>Email:</b> ".$HTTP_GET_VARS[email].„<br />";}; ... Quelle: http://www.wiwi.uni-frankfurt.de/~kolbe/praktikum/result.php

  23. Agenda 1 Einleitung 2 Architektur und verwendete Technologien 3 Entwicklung/Quellcode 4 Vergleich mit Alternativlösung

  24. Vergleich mit Alternativlösung • Vorteile: • keine zusätzliche Software (AxKit) nötig • Beschränkung auf eine Technologie • kein Einarbeiten in neue Technologien nötig • bei einfachen Anwendungen schnelle Umsetzung möglich • vermutlich höhere Performance • Nachteile: • DOMXML noch in Entwicklungsphase • XSLT bietet mehr Flexibilität bei der Transformation von XML-Daten • bei komplexen Anwendungen können PHP-Lösungen schnell unübersichtlich werden

  25. Vielen Dank für Ihre Aufmerksamkeit!

More Related