XML und XHTML

Werbung
Hauptseminar Web Services
Sprachen I: Water und JWIG
Andreas Töllich
TU München, Lehrstuhl für Informatik
12. Juni 2003, München
TUM Hauptseminar „Web Services“ – Water und JWIG
Folie 1
Einführung: 1000 Fragenzeichen
Plattform
SOAP Clients
Parser
Werkzeuge
TUM Hauptseminar „Web Services“ – Water und JWIG
SOAP, WSDL, UDDI
Interoperabilität
Programmiersprachen
ROI, TOC
Folie 2
Einführung: Lösungsansätze
 Water
 Objektorientierte
Programmiersprache
 XML Basis
www.waterlang.org
 „radikaler Ansatz“…
 JWIG
 Framework
www.jwig.org
 Java Basis
 „konservativer Ansatz“…
TUM Hauptseminar „Web Services“ – Water und JWIG
Folie 3
Übersicht
 Water
 Architektur, ConciseXML, Standards
 JWIG
 Architektur, Konzepte, Java
 Zusammenfassung
 Vergleich Water und JWIG
TUM Hauptseminar „Web Services“ – Water und JWIG
Folie 4
Übersicht
 Water
 Architektur, ConciseXML, Standards
 JWIG
 Architektur, Konzepte, Java
 Zusammenfassung
 Vergleich Water und JWIG
TUM Hauptseminar „Web Services“ – Water und JWIG
Folie 5
Water: Einführung
 Geburtsort MIT
 „Learn once, use anywhere“
 Erweiterung von XML: ConciseXML  XML
 Einfluss von Scheme, Lisp, Smalltalk, JavaScript,
HTML und XML
TUM Hauptseminar „Web Services“ – Water und JWIG
Folie 6
Water: Architektur trad. Web Services
Web
Service
JSP
HTML
Java
Script
JAXP
Xalan
Axis
XML
XSLT
SOAP
TUM Hauptseminar „Web Services“ – Water und JWIG
JAXR
WSDL
UDDI
Folie 7
Water: Web Services mit Water
 Gemeinsame Sprache über Schichten hinweg
 Keine APIs zw. algorithmischer- und
Datensprache
 Bietet eigene „Standards“ zu SOAP und Co.
 Einheitliche Methode Programmlogik,
Präsentation, Daten zu verarbeiten
  Abkehr vom MVC-Paradigma
 REST-Architektur
TUM Hauptseminar „Web Services“ – Water und JWIG
Folie 8
Water: Architektur
Water
Server
als Servlet
Water
Server
Server i
http
URI
Server i+1 http
URI
Internet
Intranet
http
URI
Water
Runtime
Client i
TUM Hauptseminar „Web Services“ – Water und JWIG
Water
Runtime
Client i+1
Folie 9
Water: ConciseXML
 XML 1.0 ist reine Syntax
 Wie können damit dynamische Anwendungen
entwickelt werden?
 Water = Erweiterung von XML  ConciseXML
 Funktionalitäten
 Präsentation der Daten
 Manipulation der Daten
 Abbildung von Daten
TUM Hauptseminar „Web Services“ – Water und JWIG
Folie 10
Water: ConciseXML
 Objekt-orientierte Sprache
 Repräsentation Objekte
 Vor.: Eliminierung der Ambiguität von XML
 Konzepte der OOP
 Prototyp System
 Mehrfachvererbung
 Laufzeitvererbung
 XHTML Tags sind Water Objekte
TUM Hauptseminar „Web Services“ – Water und JWIG
Folie 11
Water: ConciseXML: Objektmodellierung
Ambiguität
Möglichkeit 1
<Student>
<name>Miguel</name>
<surname>Ezquivel<surname>
<age>24</age>
</Student>
Möglichkeit 2
<Student name=“Miguel“ surname=“Ezquivel“ age=“24“>
TUM Hauptseminar „Web Services“ – Water und JWIG
Folie 12
Water: ConciseXML: Beispiele
<defclass Student name=string surname=string age=int>
<defmethod show>
Attribute
<H1><do .name/></H1>
</>
<defmethod birthday>
Methodendefinition
<do .age.<plus 1/>/>
</>
Klassendefinition
</defclass>
<set a_Student =
<Student name="Miguel" surname="Ezquivel" age=24 />
/>
Instantiierung
<a_Student>.<get “name”>
<h1>a_Student.show</h1>
a_Student.birthday
TUM Hauptseminar „Web Services“ – Water und JWIG
Objektzugriff
Folie 13
Water: ConciseXML: Sprachmerkmale
 Ausdrücke
 Flusskontrolle
 Boolsche Ausdrücke
<if>, <do>, <for each>
<is>, <equal>
 getter-, setter-Anweisungen
<set>, <get>
 Anmerkungen als constraints
relativ geringer Sprachumfang
TUM Hauptseminar „Web Services“ – Water und JWIG
Folie 14
Water: ConciseXML: Beispiele
<if> cond1
cond2
else
</if>
action1
<do>
action2a
action2b
</>
action3
if Abfrage
<student name=”Miguel” age="24"/>.<get "name"/>
get Anweisung
<thing foo=5/>.<equal <thing foo=5/> />
x
TUM Hauptseminar „Web Services“ – Water und JWIG
Vergleichsoperator
Folie 15
Water: Standards
Water
XML
XSLT
Water Transform
XPath
Water Path
SOAP
Water Protocol
WSDL
Water Web
UDDI
Water Registry
Web Services
TUM Hauptseminar „Web Services“ – Water und JWIG
Folie 16
Water: Standards: Water Web vs. SOAP
 Zugriff auf entfernte Ressourcen
 Ressourcen werden via URI adressiert
<set my_homepage = www.<web http://www.toellich.net/>/>
my_homepage.<request/>
 Auch SOAP Nachrichten können erzeugt werden
 Definition eigener Protokolle möglich
TUM Hauptseminar „Web Services“ – Water und JWIG
Folie 17
Water: Standards: Water Protocol vs. WSDL
 WSDL beschreibt Interface einer entfernten
Ressource
 Jede Ressource ist ein Objekt, jedes Objekt ist
Instanz einer Klasse
 Entwurf einer Klasse zu einer Ressource
 Angabe von Argumentennamen, Typen,
Bedingungen in der Klassendefinition
TUM Hauptseminar „Web Services“ – Water und JWIG
Folie 18
Water: Standards: Water Path vs. XPath
 XML Teilbäume werden mit XPath adressiert
 Water Path: Adressierung von Objekten
student.surname
student.<get_with_value „surname“ „Miguel“ returns=’all’>
 Konvertierung von XPath in URIs möglich
TUM Hauptseminar „Web Services“ – Water und JWIG
Folie 19
Water: Zusammenfassung
 ConciseXML  kein Bruch zw.
Programmiersprache und Markup
 Keine APIs benötigt (vgl. Java)
 Vermischung von Daten, Präsentations- und
Geschäftslogik
 Fehlen von „best practices“ und Unterstützung
durch Community, Industrie
TUM Hauptseminar „Web Services“ – Water und JWIG
Folie 20
Übersicht
 Water
 Architektur, ConciseXML, Standards, Web Services
 JWIG
 Architektur, Konzepte, Java
 Zusammenfassung
 Vergleich Water und JWIG
TUM Hauptseminar „Web Services“ – Water und JWIG
Folie 21
JWIG: Übersicht
 Framework, Java-basiert, Java 1.2.x
 Forschungsprojekt des BRICS
Forschungszentrums, Universität Aarhus
 Open Source, GNU Public License
 Übersetzer, Laufzeitsystem, Analysemodul
 Laufzeitsystem als DSO für Apache verfügbar
TUM Hauptseminar „Web Services“ – Water und JWIG
Folie 22
JWIG: Architektur
TUM Hauptseminar „Web Services“ – Water und JWIG
Folie 23
JWIG: Fokus

JWIG adressiert zwei essentielle Aspekte bei
der Entwicklung von Web Services und Anwendungen
 Dynamische Konstruktion von Dokumenten XML und XHTML
 Session Management HTTP zustandslos
TUM Hauptseminar „Web Services“ – Water und JWIG
Folie 24
JWIG: Sessions
 Zentrale Bedeutung von Sessions
 Session = Folge von Interaktionen zw. Client und
Server
Session code (server-seitiger Thread)
Client
XHTML
TUM Hauptseminar „Web Services“ – Water und JWIG
XHTML
Folie 25
JWIG: Sessions
Klasse
Service
JWIG Anwendung
Innere Klasse
Session
Request, der Session startet
Thread
Show()
Receive()
Exit()
Interaktion mit Client
Innere Klasse
Session
TUM Hauptseminar „Web Services“ – Water und JWIG
Folie 26
JWIG: Template System
 Ausgabe von JWIG Anwendungen: XHTML
 mittels template Sytem erzeugt
 Trennung von Geschäfts- und Präsentationslogik
Laufzeit
XML
Ausdruck
Zeichenfolgen
gaps
Vorlagen
XML
Ausdruck
gaps
Java Code
gaps
XML template
TUM Hauptseminar „Web Services“ – Water und JWIG
Folie 27
JWIG: Template System: Beispiel
TUM Hauptseminar „Web Services“ – Water und JWIG
Folie 28
JWIG: Sonstige Merkmale
 Garbage collector für nicht mehr benötigte
Sessions
 Validierung von Formularfeldern mit Powerforms
(Boolsche Logik, reguläre Ausdrücke)
 SOAP: ein analyzer überprüft erzeugte SOAPenvelopes auf Gültigkeit
 WSDL, UDDI etc.: Java APIs und Tools
TUM Hauptseminar „Web Services“ – Water und JWIG
Folie 29
JWIG: statische Analyse
 Vorhandensein, richtige Verwendung der gaps
 Richtige Reihenfolge der Eingabefelder
 Gültigkeit von XHTML Dokumenten
TUM Hauptseminar „Web Services“ – Water und JWIG
Folie 30
JWIG: Java Integration
 Keine Konkurrenz, sondern Erweiterung
 Java als ideale Basis
(garbage collector, sandbox Modus, Unicode,
RSA, classloader, threads etc.)
 JWIG Anwendungen werden vollständig in Java
übersetzt
TUM Hauptseminar „Web Services“ – Water und JWIG
Folie 31
JWIG: Zusammenfassung
 Keine neuer Sprache zu erlernen
 Nahtlose Integration in Java
 Neues Konzept für Sessions
 Vorbildcharakter: analyzer
 Template System  Trennung von Geschäftsund Präsentationslogik
 MVC Pattern
(Model = XML, View = templates, Controller =
sessions)
TUM Hauptseminar „Web Services“ – Water und JWIG
Folie 32
Übersicht
 Water
 Architektur, ConciseXML, Standards, Web Services
 JWIG
 Architektur, Konzepte, Java, Web Services
 Zusammenfassung
 Vergleich Water und JWIG
TUM Hauptseminar „Web Services“ – Water und JWIG
Folie 33
Vergleich: Water und JWIG
Radikaler Ansatz
Entgegen dem Trend
Konservativer Ansatz
Folgt als Java Framework
dem Trend
All-in-one Philosophie
Wenig zukunftsträchtig
 Breitere
Erweiterungen müssen vom
Hersteller implementiert werden
(closed source)
Leichte Integration in
bestehende Systeme
Profitiert von Entwicklungen in
der Java Welt
Revolutionärer Ansatz
(REST)
„nur“ ein weiteres Framework
TUM Hauptseminar „Web Services“ – Water und JWIG
Akzeptanz
Folie 34
Vielen Dank für Ihre
Aufmerksamkeit
Fragen
TUM Hauptseminar „Web Services“ – Water und JWIG
Folie 35
To be or not to be… XML?
<set the_date=
<HTML> Today is <datetime.today/></HTML>
/>
TUM Hauptseminar „Web Services“ – Water und JWIG
Folie 36
Herunterladen