XMLC. Seminararbeit. von Lüchinger Stefan. Fachhochschule Aargau Departement Technik Studiengang Informatik. Betreuender Dozent: Prof. Dr. D.



Ähnliche Dokumente
Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen.

Anleitung über den Umgang mit Schildern

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Arbeiten mit UMLed und Delphi

Einführung in die Programmierung

Menü auf zwei Module verteilt (Joomla 3.4.0)

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert

GEONET Anleitung für Web-Autoren

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

Wie halte ich Ordnung auf meiner Festplatte?

KeePass Anleitung. 1.0Allgemeine Informationen zu Keepass. KeePass unter Windows7

Word 2010 Schnellbausteine

Praktikum: Einstieg: Arbeitsplatz, JCreator

ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Eschenweg Weiterstadt

AutoCAD Dienstprogramm zur Lizenzübertragung

Installations Guide für YAJSW und DTLDAP

Praktikum Datenbanksysteme. Ho Ngoc Duc IFIS - Universität zu Lübeck

Step by Step Softwareverteilung unter Novell. von Christian Bartl

Informatik Kurs Simulation. Hilfe für den Consideo Modeler

Einführung in TexMaker

1 Mathematische Grundlagen

Geld Verdienen im Internet leicht gemacht

Da die Bedienung des Editors viele Möglichkeiten aufweist, aber auch etwas Übung voraussetzt, haben wir ihm ein eigenes Unterkapitel gewidmet.

... MathML XHTML RDF

S/W mit PhotoLine. Inhaltsverzeichnis. PhotoLine

Java Webentwicklung (mit JSP)

Einführung in die Java- Programmierung

So geht s Schritt-für-Schritt-Anleitung

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Objektorientierte Programmierung

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Ihr IT-Administrator oder unser Support wird Ihnen im Zweifelsfall gerne weiterhelfen.

FH-SY Chapter Version 3 - FH-SY.NET - FAQ -

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

4 Aufzählungen und Listen erstellen

Installation OMNIKEY 3121 USB

SRH - Kurzinformation

Eine eigene Seite auf Facebook-Fanseiten einbinden und mit einem Tab verbinden.

Kurzanleitung zu XML2DB

Der lokale und verteilte Fall

Wie Sie mit Mastern arbeiten

WEBSEITEN ENTWICKELN MIT ASP.NET

Flashfragen in ILIAS Test & Assessment. Helmut Schottmüller

Web Services Security

Anwendungsbeschreibung an einem Beispiel

Erstellen von x-y-diagrammen in OpenOffice.calc

Workshop Java Webentwicklung Tapestry. Ulrich Stärk

Einrichten einer mehrsprachigen Webseite mit Joomla (3.3.6)

GITS Steckbriefe Tutorial

PocketPC.ch Review. SBSH ilauncher 3.1. Erstelldatum: 3. Dezember 2007 Letzte Änderung: 3. Dezember PocketPC.ch_Review_iLauncher.

Welche Gedanken wir uns für die Erstellung einer Präsentation machen, sollen Ihnen die folgende Folien zeigen.

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

WebService in Java SE und EE

Workshop 6. Einführung in die objektorientierte Programmierung. Teil: Java mit BlueJ

Reporting Services und SharePoint 2010 Teil 1

PHP - Projekt Personalverwaltung. Erstellt von James Schüpbach

Nicht kopieren. Der neue Report von: Stefan Ploberger. 1. Ausgabe 2003

Objektorientierte Programmierung. Kapitel 12: Interfaces

Fsr Amazon Konfiguration

Visual Basic Express erstes Projekt anlegen

Software- und Druckerzuweisung Selbstlernmaterialien

Windows Server 2012 RC2 konfigurieren

Informationen zur Verwendung von Visual Studio und cmake

Welches Übersetzungsbüro passt zu mir?

Unsere Webapplikation erweitern

Webseiten sind keine Gemälde. Webstandards für ein besseres Web. Webstandards für ein besseres Web

2 Open BIM Workflow ARCHICAD und DDS-CAD

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

Professionelle Seminare im Bereich MS-Office

Drucken von Webseiten Eine Anleitung, Version 1.0

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Hex Datei mit Atmel Studio 6 erstellen

Barcodedatei importieren

Enigmail Konfiguration

Übung: Verwendung von Java-Threads

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Gruppenrichtlinien und Softwareverteilung

Monatstreff für Menschen ab 50 Temporäre Dateien / Browserverlauf löschen / Cookies

4D Server v12 64-bit Version BETA VERSION

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

Warum Sie jetzt kein Onlinemarketing brauchen! Ab wann ist Onlinemarketing. So finden Sie heraus, wann Ihre Website bereit ist optimiert zu werden

Erweitertes Kalkulationsfenster

Lineare Differentialgleichungen erster Ordnung erkennen

Systemvoraussetzung < zurück weiter >

AutoTexte und AutoKorrektur unter Outlook verwenden

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Animationen erstellen

Kurzanleitung. MEYTON Aufbau einer Internetverbindung. 1 Von 11

Gambio GX2 FAQ. Inhaltsverzeichnis

.NET Code schützen. Projekt.NET. Version 1.0

ROFIN App Benutzerhandbuch. Version 1.0

Vorgehensweise bei der Installation Bob50SQL für einen unabhängigen PC.

Was ist das Budget für Arbeit?

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

Zählen von Objekten einer bestimmten Klasse

Pfötchenhoffung e.v. Tier Manager

Transkript:

XMLC Seminararbeit von Lüchinger Stefan Fachhochschule Aargau Departement Technik Studiengang Informatik Betreuender Dozent: Prof. Dr. D. Gruntz Windisch 8. Mai 2003

Inhaltsverzeichnis: 1. Einführung... 2 a. Motiv, Veranlassung zu diesem Vortrag. 2 b. Geschichtlicher Hintergrund von XMLC.. 2 2. Gründe für eine neue Technologie. 3 3. Enhydra XMLC Architektur.. 3 a. Was ist XMLC.. 3 4. Komponenten von XMLC. 3 5. Graphische Übersicht von XMLC. 4 6. Die DOM Architektur. 6 7. Entwickeln mit XMLC 6 a. Installationsvarianten 6 b. Installation.. 7 c. Vorbereitungsphase.. 7 d. Entwicklung... 7 e. Schreiben von Java Programmen, welche auf die XMLC-Klassen zugreifen.. 7 f. Wichtiges bei späteren Veränderungen.. 8 g. Graphische Darstellung des Entwicklungsablaufes.. 8 8. Anwendungsbeispiele. 9 a. Einige Befehle und Tags, wie ein XMLC-File aussehen könnte. 9 b. Listening aus XMLC-Files.. 9 9. Vor / Nachteile von XMLC 10 a. Vorteile: (grundlegende) 10 b. Nachteile: (grundlegende). 10 10.XMLC Anwendbar für das Bibliotheksprojekt?... 10 1

1) Einführung a) Motiv, Veranlassung zu diesem Vortrag. Im Sinne eines Seminarvortrages werden an der Fachhochschule Aargau immer wieder neue Technologien vorgestellt. D.h. eine kurze Einführungen in ein Gebiet welche nicht in den Stoffplan passt, oder wo schon ähnliches behandelt wurde. Im dritten Jahr des Studiums werden im Kurs verteilte Systeme unter anderem Client-Server Applikationen geschrieben, welche im Endeffekt über eine HTML Seite bedient werden. Darauf sind verschiedene Technologien spezialisiert, eine dieser ist zum Beispiel JSP. Um nun noch ein wenig Abwechslung in die Sache zu bringen, hielt ich den Vortrag über XMLC ab. Selbstverständlich ist es schwierig ein so mächtiges Tool in 30 Minuten zu präsentieren, oder einen genauen Beschreib in 10 Seiten zu geben. Das Ziel dieses Seminars war es einen Einblick in XMLC zu geben, dass sich konzeptionelle Fragen erübrigen und es ein Einfaches ist, simple XMLC Seiten zu erstellen. b) Geschichtlicher Hintergrund von XMLC: Im Oktober 1989 entwickeln und liefern die Firmen Lutris Technologies, BullSoft, France Telecom und Enhydra.org die J2EE Enhydra Enterprise Version. Das ist eine Serverplattform für das Internet, auf welcher Internetapplikationen laufen. Das ganze ist Open-Source. J2EE Enhydra Enterprise ist das Ergebnis der Entwicklung von: - JOnAS Enterprise Java Bean (EJB) Server von BullSoft - Jonathan CORBA Object Request Broker (ORB) von France Telecom - Enhydra Java/XML Application Server von Lutris Technologies. - Mark Diekhans, der Software Architekt von Lutris Technologies, definierte den XML Compiler (XMLC) 2

2) Gründe für eine neue Technologie? In den letzten 20 Jahren ist das Webdesign Geschäft sehr angestiegen, und es wurde immer wichtiger auch Programmkomponenten und Logik in eine Homepage zu bringen. Das Problem dabei ist allerdings, dass es ein grundlegender Unterschied ist ob man Designer/Graphiker/Künstler ist und auf der kreativen Ebene arbeitet, oder in der Technischen Ebene tätig ist. Designer kümmern sich um die äußere Gestaltung der Web Applikation und Java Entwickler beschäftigen sich mit dem logischen Ablauf der Programmierung. Die beiden Gruppen benutzen unterschiedliche Tools. Folgende Punkte könnte man als Grund auflisten: HTML Seiten, die mit Design Tools erzeugt wurden, sind schwer zu überarbeiten. Beispiel: JSP Code in eine HTML Seite einfügen. Eingebettete Java Code im HTML erschweren die Skalierbarkeit der HTML Seiten. Trennung der Gestalt von dem Inhalt ist für ein Unabhängiges Design sehr wichtig Bei JSP und anderen Technologien Notwendigkeit, dass der HTML-Designer auch Java oder andere Sprachen beherrschte. Wenn aber der Entwicklungsablauf etwas rationaler geschehen muss, wird es interessant die Trennung der beiden Gebiete sauber vorzunehmen. Genau aus diesem Grund wurde der XMLC Compiler und seine Tools entwickelt. 3) Enhydra XMLC Architektur Was ist XMLC: - XMLC ist eine Open Source Technologie, welche in der Sprache Java realisiert wurde. D.h. es ist ein HTML Compiler, welcher sich auf Java stützt, und HTML-Seiten in Java Code umwandelt, in dem er ein DOM erstellt. - XMLC ermöglicht also eine dynamische Erzeugung und Manipulation von HTML, bzw. XML Seiten, indem die entsprechende Datei kompiliert wird, dadurch das DOM entsteht und zum Schluss eine Java Klasse generiert wird. 4) Komponenten von XMLC - XML bzw. HTML Parser, welcher die Files in Ihre Fragmente unterteilt - XSL Prozessor (Extensible Stylesheet Language) notwendig falls eine XML Datei umgewandelt werden soll - Java Object (Klasse) Generator - DOM Java API, eigens spezifiziert für XMLC 3

5) Graphische Übersicht des Kompiliervorgangs von XML / HTML Seiten Wie hier im Bild ersichtlich, werden die XML oder HTML Files eingelesen, (Parser) das DOM erstellt und dann (Falls es ein XML File ist) noch per XSL Prozessor die entsprechenden Spezifikationen des XSL- Files hinzugefügt. Ersichtlich ist hier, dass unterschieden wird, ob ein HTML File oder XML File eingelesen werden soll. Die zwei Schemas werden auf der nächsten Seite noch genauer dargestellt. B Bild: XML bzw. HTML Kompilierungsvorgang 4

Rechts das Schema wie ein HTML File in ein Java Objekt umgewandelt wird. Es ist ersichtlich, dass der Compiler keine weiteren Schritte unternimmt als den DOM Tree zu erstellen und per Object Generator die Java Objekte zu generieren. Bild: Kompiliervorgang eines HTML-Files Im Bild links, welches den Kompiliervorgang eines XML Files beschreibt, besteht ein grundlegender Unterschied zum HTML File: Es kann noch ein XSL File angegeben werden, mit welchem das XML File genauer beschrieben wird. Bemerkung: Da in diesem Bericht auf das Design von HTML Seiten per XMLC eingegangen werden soll, werden hier keine genaueren Erläuterungen des XSL Prozessors folgen. Bild: Kompiliervorgang eines XML-FIles 5

6) Die DOM Architektur DOM hat folgende Eigenschaften: DOM steht für Document Object Model. Grundsätzlich ist DOM eine unabhängige Spezifikation von W3C. Verschiedene Tools implementieren diese, wie hier z.b. XMLC. W3C liefert aber keine Implementation des DOM s. Bei XMLC wird das gegliederte HTML oder XML File in ein DOM umgewandelt wo es dann hierarchisch gegliedert ist. Mit dieser Darstellung ist es möglich neue Nodes hinzuzufügen, oder die Struktur zu reduzieren. In XMLC ist das DOM die Schnittstelle an die Sprache Java. Aus dieser wird später die Klasse Generiert, welche das HTML File darstellt. Darum ist DOM an Java gebunden. Das Design vom DOM in XMLC ist so, dass der Entwickler keine Kenntnisse davon haben muss. Sofern ihm die Methoden bekannt sind, kann er beliebig auf das DOM zugreifen und Veränderungen vornehmen. Weil DOM nur ein Teil von XMLC ist und vor allem keine grossen Kenntnisse nötig sind wird in diesem Bericht nicht genauer darauf eingegangen. 7) Entwickeln mit XMLC a) Installationsvarianten Es gibt 2 Möglichkeiten XMLC zu installieren: Standalone Installation Teil eines Enhydra Servers Der Enhydra Server beinhaltet schon alle Teile, welche nötig sind um HTML Files zu kompilieren, und beinhaltet auch die nötigen Libraries um sie später auf dem Server laufen zu lassen. Eine Standalone Installation ist aber nicht besonders schwierig, und bringt auch mehr Klarheit, vor allem für jene Benutzer, welche andere Server installiert haben wollen, z.b.: Tomcat, JBoss etc. Darum wird sich dieser Bericht auf die Standalonevariante beziehen. 6

b) Installation JDK 1.4.0 oder höher wird benötigt um XMLC einwandfrei zu benutzen. Setzen der Path bzw. Classpath Variablen: o Directory XMLC Das ist das Verzeichnis in dem sich der XMLC-Compiler befindet o Setzen der Classpath Variablen auf die Libraries von XMLC: Dies sind z.b. xmlc.jar xerces-1.4.4-xmlc.jar etc. Das ist notwendig um die Programme später zum laufen zu bringen. Ebenfalls sollten diese Libraries angegeben werden, wenn die Source-Files der von XMLC generierten Klassen in Entwicklungstools funktionieren sollen. Weitere Informationen z.b. zur Installation unter Linux kann unter der folgenden URL gefunden werden: http://www.plugged.net.au/publications/xmlc-tutorial/intro.html#how_to_run_xmlc c) Vorbereitungsphase: Dynamische teile Definieren (Templates). Bezeichnungen definieren (ID s). Designer legen den Java Entwicklern den ersten Entwurf vor. Java Entwickler können erste Objekte erstellen. d) Entwicklung Kompilieren der HTML-Files: Erstellen der Java Class-Files ist sehr einfach: Falls z.b. eine Klasse des HTML- Files hello.html generiert werden soll würde das folgendermassen aussehen: $ xmlc hello.html Falls jemand das Source-File für die Entwicklung braucht, und nicht nur das Class- File haben will, würde der Befehl folgendermassen aussehen: $ xmlc keep hello.html Weitere Optionen wie z.b. Teil eines Packages u.s.w. kann man mit dem Befehl xmlc help angezeigt werden. e) Schreiben von Java Programmen, welche auf die XMLC-Klassen zugreifen: Die Methoden die nun durch den XMLC-Compiler zur Verfügung gestellt worden sind, tragen den Namen von den zuvor spezifizierten ID s. 7

f) Wichtiges bei späteren Veränderungen ID für die Attributen müssen konstant bleiben, ansonsten müssen zum Teil sehr grosse Code-Fragmente nochmals geschrieben werden (Ändern der ID bewirkt neuen Methoden-Namen) Updates der Templates werden den Entwicklern weitergereicht. Diese können die HTML-Files selber kompilieren. Sofern das nur das Design geändert wurde, bleibt der Java-Code konstant. Die dynamischen Teile werden von dem Java Code direkt manipuliert. g) Graphische Darstellung des Entwicklungsablaufs: Bild: XMLC/HTML Entwicklungsdiagramm 8

8) Anwendungsbeispiele a) Einige Befehle und Tags, wie ein XMLC-File aussehen könnte: Ausführung des Konfigurationsskriptes./xmlc-config java <javacmd> javac [<javaccmd>] $XMLC_HOME Aus den ID Attributen werden Zugriffsmethoden (Getter / Setter) erzeugt: getelementidname, settextidname Beispiel: <input type= text name= username id= username > getelementusername Zugreifen auf Attribute könnte so aussehen: Wenn z.b. die Grösse eines Textfeldes geändert werden soll: HTMLInputElement ourtextfield = form.getelementtextfield1(); ourtextfield.setsize("40"); Der zugehörige HTML-Tag müsste dann folgendermassen aussehen: <INPUT id='textfield1' name='textfield1' size='40' type='text' value='bitte texten'> Im ähnlichen Stil können auch Hintergrundfarben oder andere Elemente verändert, hinzugefügt oder weggelassen werden. Es ist auch möglich neue Nodes hinzuzufügen, bzw. wegzunehmen. Um das Listening hier zu ersparen kann ein Demo auf folgender URL geladen werden: http://www.cs.fh-aargau.ch/~gruntz/courses/ds2/examples/xmlc.zip Weitere Beispiele sowie Erklärungen können unter folgender URL angeschaut werden: http://www.plugged.net.au/publications/xmlc-tutorial/index.html b) Listening aus XMLC-Files Hierzu ist auf der nächsten Seite ein Listening des XMLC Files mit dem zugehörigen HTML File. Die Wichtigen Fragmente sind Unterstrichen, und gehören zusammen: 9

<HTML> <BODY> The current time is <SPAN ID="TheTime">00:00:00</SPAN> </BODY> </HTML> Listening aus test.hmlt public class test extends org.enhydra.xml.xmlc.html.htmlobjectimpl implements org.enhydra.xml.xmlc.xmlobject, org.enhydra.xml.xmlc.html.htmlobject { private int $elementid_thetime = 6; private org.enhydra.xml.lazydom.html.lazyhtmlelement $element_thetime; /** * Clone the document. */ public Node clonenode(boolean deep) { clonedeepcheck(deep); } return new test(this); /** * Get the element with id <CODE>TheTime</CODE>. * @see org.w3c.dom.html.htmlelement */ public org.w3c.dom.html.htmlelement getelementthetime() { if (($element_thetime == null) && ($elementid_thetime >= 0)) { } } return $element_thetime; $element_thetime = (org.enhydra.xml.lazydom.html.lazyhtmlelement)flazydocument.getnodebyid($ elementid_thetime); /** * Get the value of text child of element <CODE>TheTime</CODE>. * @see org.w3c.dom.text */ public void settextthetime(string text) { if (($element_thetime == null) && ($elementid_thetime >= 0)) { } } $element_thetime = (org.enhydra.xml.lazydom.html.lazyhtmlelement)flazydocument.getnodebyid($ elementid_thetime); dosettext($element_thetime, text); to be continued..... Listening aus test.hmlt Bei näherer Betrachtung wird ersichtlich, dass die drei markierten Methoden wichtig sind um einerseits die Zeit im HTML Dokument zu verändern, und andererseits ein Objekt diesen Types zu erlangen. 10

9) Vor / Nachteile von XMLC a) Vorteile: (grundlegende) Designer sind unabhängig von Java Designer können mit HTML Tools ohne Komplikationen arbeiten. Java Entwickler müssen den Designern nicht ins Werk pfuschen. Upgrades und Änderungen können Bequemer erledigt werden. b) Nachteile: (grundlegende) Attributnamen sind direkt in den Methodennamen enthalten (kann auch als Vorteil betrachtet werden da es genauer spezifiziert ist) Gewisse Unflexibilitäten wenn die ID s festgelegt werden. Verlangt eine gute Vorausplanung, da Änderungen mit grossem Aufwand verbunden sind. Grösse der erstellten Klass-Files: Beispiel als Referenz: Grösse des HTML Files Grösse des Class-Files 1 kb 10 kb 9.27 kb 38 kb 36 kb 117 kb Es muss damit gerechnet werden, dass die Class Files je nach Grösse 3-10 mal grösser sind. Das kann zur Folge haben, dass obwohl eigentlich die HTML Files auf dem Server nicht mehr gebraucht werden, mehr Speicher nötig ist. 10) XMLC Anwendbar für das Bibliotheksprojekt? Eine Virtuelle Bibliothek, welche den HTML Code in XMLC Files speichert und nicht in den Servlets, oder Dynamische JSP-Seiten wäre sicher sinnvoll. Es ist sehr einfach Templates zu erstellen für XMLC. Daher kann man sich eher auf die Programmierarbeit konzentrieren XMLC verlangt durch seine Unflexibilität was Methodennamen angeht ein genaues Spezifizieren zu Beginn. Das könnte ein grundlegender Vorteil sein, und würde Abänderungsarbeiten, welche viel Zeit kosten, verhindern. 11