Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Entwicklung UnivIS-Anbindung auf Basis von PHP und DOM-XML

Ähnliche Präsentationen


Präsentation zum Thema: "Entwicklung UnivIS-Anbindung auf Basis von PHP und DOM-XML"—  Präsentation transkript:

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 Systemarchitektur Webserver UnivIS DB Clients PHP DOMXML-Extension
XML-Schnittstelle PC HTML Pocket-PC cHTML Mobiltelefon WML 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önig</lastname> <locations> <location> <fax>069/ </fax> <ort>60054 Frankfurt am Main</ort> <office>206 C</office> <street>Mertonstr. 17</street> <tel>069/ </tel> <url>http://www.wi-frankfurt.de/</url> </location> </locations> </Person> </UnivIS>

10 PHP/DOMXML PHP (Hypertext Preprocessor) DOMXML
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) Beispiel für PHP DOM-Methode
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(“ “)

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 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 Systemarchitektur Webserver UnivIS Clients DB PHP DOMXML-Extension
XML-Schnittstelle Clients PC HTML Pocket-PC cHTML Mobiltelefon WML DB

16 Suchformular HTML WML Quelle: Quelle:

17 Quellcode (1) HTTP-Request für UnivIS-Abfrage ...
$request = search=lectures&name=logistik&show=xml Quelle:

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ück</a>)"); } //XML-Dokument in DOM-Objekt einlesen $dom = xmldocfile($request); Quelle:

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"); } Quelle:

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"); $ = $dom->get_elements_by_tagname(" "); $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:

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]) . "& =" . urlencode ($ [$i]) . "'>"; echo $lastname[$i] . ", " . $firstname[$i] . "</a>\n"; } Quelle:

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[ ] == "") { echo "<b> </b> ".$HTTP_GET_VARS[ ].„<br />";}; Quelle:

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!


Herunterladen ppt "Entwicklung UnivIS-Anbindung auf Basis von PHP und DOM-XML"

Ähnliche Präsentationen


Google-Anzeigen