tum hauptseminar web services – water und jwig folie 1 hauptseminar web services sprachen i: water...
TRANSCRIPT
TUM Hauptseminar „Web Services“ – Water und JWIG Folie 1
Hauptseminar Web ServicesSprachen I: Water und JWIG
Andreas TöllichTU München, Lehrstuhl für Informatik12. Juni 2003, München
TUM Hauptseminar „Web Services“ – Water und JWIG Folie 2
Einführung: 1000 Fragenzeichen
?ProgrammiersprachenParser
Interoperabilität
SOAP, WSDL, UDDI
SOAP Clients
Plattform
Werkzeuge ROI, TOC
TUM Hauptseminar „Web Services“ – Water und JWIG Folie 3
Einführung: Lösungsansätze
Water Objektorientierte
Programmiersprache
XML Basis
„radikaler Ansatz“…
JWIG Framework
Java Basis
„konservativer Ansatz“…
www.waterlang.org
www.jwig.org
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
Übersicht
Water Architektur, ConciseXML, Standards
JWIG Architektur, Konzepte, Java
Zusammenfassung Vergleich Water und JWIG
TUM Hauptseminar „Web Services“ – Water und JWIG Folie 6
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 7
Water: Architektur trad. Web Services
SOAP WSDL UDDIXMLJava
ScriptXSLT
WebService
HTML
JSP Xalan JAXRJAXP Axis
TUM Hauptseminar „Web Services“ – Water und JWIG Folie 8
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 9
Water: Architektur
Client i Client i+1
InternetIntranet
Server i Server i+1
WaterRuntime
WaterRuntime
WaterServer
WaterServer
als Servlet
httpURI
httpURI
httpURI
TUM Hauptseminar „Web Services“ – Water und JWIG Folie 10
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 11
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
Water: ConciseXML
TUM Hauptseminar „Web Services“ – Water und JWIG Folie 12
Möglichkeit 1<Student> <name>Miguel</name> <surname>Ezquivel<surname> <age>24</age></Student>
Möglichkeit 2<Student name=“Miguel“ surname=“Ezquivel“ age=“24“>
Water: ConciseXML: Objektmodellierung
Ambiguität
TUM Hauptseminar „Web Services“ – Water und JWIG Folie 13
Water: ConciseXML: Beispiele
<defclass Student name=string surname=string age=int><defmethod show>
<H1><do .name/></H1> </><defmethod birthday>
<do .age.<plus 1/>/></>
</defclass>
<set a_Student =<Student name="Miguel" surname="Ezquivel" age=24 />/>
<a_Student>.<get “name”><h1>a_Student.show</h1>a_Student.birthday
Klassendefinition
Instantiierung
Objektzugriff
Methodendefinition
Attribute
TUM Hauptseminar „Web Services“ – Water und JWIG Folie 14
Water: ConciseXML: Sprachmerkmale
Ausdrücke Flusskontrolle <if>, <do>, <for each>
Boolsche Ausdrücke <is>, <equal>
getter-, setter-Anweisungen <set>, <get>
Anmerkungen als constraints
relativ geringer Sprachumfang
TUM Hauptseminar „Web Services“ – Water und JWIG Folie 15
Water: ConciseXML: Beispiele
<student name=”Miguel” age="24"/>.<get "name"/>
<if> cond1 action1 cond2 <do>
action2a action2b
</> else action3
</if>
<thing foo=5/>.<equal <thing foo=5/> />
x
if Abfrage
get Anweisung
Vergleichsoperator
TUM Hauptseminar „Web Services“ – Water und JWIG Folie 16
Water: Standards
SOAP
WSDL
UDDI
XPath
XSLT
Web Services
Water
Water Transform
Water Path
Water Protocol
Water Web
Water Registry
XML
TUM Hauptseminar „Web Services“ – Water und JWIG Folie 17
Zugriff auf entfernte Ressourcen
Ressourcen werden via URI adressiert
Auch SOAP Nachrichten können erzeugt werden
Definition eigener Protokolle möglich
Water: Standards: Water Web vs. SOAP
<set my_homepage = www.<web http://www.toellich.net/>/>my_homepage.<request/>
TUM Hauptseminar „Web Services“ – Water und JWIG Folie 18
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 19
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 20
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 21
Übersicht
Water Architektur, ConciseXML, Standards, Web
Services
JWIG Architektur, Konzepte, Java
Zusammenfassung Vergleich Water und JWIG
TUM Hauptseminar „Web Services“ – Water und JWIG Folie 22
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 23
JWIG: Architektur
TUM Hauptseminar „Web Services“ – Water und JWIG Folie 24
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 25
JWIG: Sessions
Zentrale Bedeutung von Sessions
Session = Folge von Interaktionen zw. Client und Server
Session code (server-seitiger Thread)
XHTML XHTMLClient
TUM Hauptseminar „Web Services“ – Water und JWIG Folie 26
JWIG: Sessions
KlasseService
JWIG Anwendung
Innere KlasseSession
Show()Receive()Exit()
Innere KlasseSession
Request, der Session startetThread
Interaktion mit Client
TUM Hauptseminar „Web Services“ – Water und JWIG Folie 27
JWIG: Template System
Ausgabe von JWIG Anwendungen: XHTML
mittels template Sytem erzeugt
Trennung von Geschäfts- und Präsentationslogik
XML template
XML Ausdruck
XML Ausdruck
gaps
Laufzeit
gapsgaps
ZeichenfolgenVorlagen
Java Code
TUM Hauptseminar „Web Services“ – Water und JWIG Folie 28
JWIG: Template System: Beispiel
TUM Hauptseminar „Web Services“ – Water und JWIG Folie 29
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 SOAP-envelopes auf Gültigkeit
WSDL, UDDI etc.: Java APIs und Tools
TUM Hauptseminar „Web Services“ – Water und JWIG Folie 30
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 31
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 32
JWIG: Zusammenfassung
Keine neuer Sprache zu erlernen Nahtlose Integration in Java Neues Konzept für Sessions Vorbildcharakter: analyzer
Template System Trennung von Geschäfts- und Präsentationslogik
MVC Pattern(Model = XML, View = templates, Controller = sessions)
TUM Hauptseminar „Web Services“ – Water und JWIG Folie 33
Ü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 34
Vergleich: Water und JWIG
Radikaler AnsatzEntgegen dem Trend
Konservativer AnsatzFolgt als Java Framework dem Trend
Breitere Akzeptanz
All-in-one PhilosophieWenig zukunftsträchtig
Leichte Integration in bestehende SystemeProfitiert von Entwicklungen in der Java Welt
Erweiterungen müssen vomHersteller implementiert werden(closed source)
„nur“ ein weiteres FrameworkRevolutionärer Ansatz(REST)
TUM Hauptseminar „Web Services“ – Water und JWIG Folie 35
Vielen Dank für Ihre Aufmerksamkeit
Fragen?
TUM Hauptseminar „Web Services“ – Water und JWIG Folie 36
To be or not to be… XML?
<set the_date= <HTML> Today is
<datetime.today/></HTML>/>