Hauptseminar Web Services Sprachen I: Water und JWIG - PowerPoint PPT Presentation

About This Presentation
Title:

Hauptseminar Web Services Sprachen I: Water und JWIG

Description:

Title: Folie 1 Author: Name Last modified by: Name Created Date: 6/9/2003 11:41:55 AM Document presentation format: Bildschirmpr sentation Company – PowerPoint PPT presentation

Number of Views:62
Avg rating:3.0/5.0
Slides: 37
Provided by: Name2192
Category:

less

Transcript and Presenter's Notes

Title: Hauptseminar Web Services Sprachen I: Water und JWIG


1
Hauptseminar Web ServicesSprachen I Water und
JWIG
Andreas Töllich TU München, Lehrstuhl für
Informatik 12. Juni 2003, München
2
Einführung 1000 Fragenzeichen
?
Plattform
SOAP, WSDL, UDDI
SOAP Clients
Interoperabilität
Parser
Programmiersprachen
Werkzeuge
ROI, TOC
3
Einführung Lösungsansätze
  • Water
  • ObjektorientierteProgrammiersprache
  • XML Basis
  • radikaler Ansatz
  • JWIG
  • Framework
  • Java Basis
  • konservativer Ansatz

www.waterlang.org
www.jwig.org
4
Übersicht
  • Water
  • Architektur, ConciseXML, Standards
  • JWIG
  • Architektur, Konzepte, Java
  • Zusammenfassung
  • Vergleich Water und JWIG

5
Übersicht
  • Water
  • Architektur, ConciseXML, Standards
  • JWIG
  • Architektur, Konzepte, Java
  • Zusammenfassung
  • Vergleich Water und JWIG

6
Water Einführung
  • Geburtsort MIT
  • Learn once, use anywhere
  • Erweiterung von XML ConciseXML ? XML
  • Einfluss von Scheme, Lisp, Smalltalk, JavaScript,
    HTML und XML

7
Water Architektur trad. Web Services
Web Service
JSP
Xalan
JAXR
JAXP
Axis
SOAP
WSDL
UDDI
XML
Java Script
XSLT
HTML
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

9
Water Architektur
Water Server als Servlet
Water Server
http URI
Server i
Server i1
http URI
http URI
Water Runtime
Water Runtime
Client i
Client i1
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

11
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

12
Water ConciseXML Objektmodellierung
Ambiguität
Möglichkeit 1 ltStudentgt ltnamegtMiguellt/namegt
ltsurnamegtEzquivelltsurnamegt ltagegt24lt/agegt lt/Stud
entgt
Möglichkeit 2 ltStudent nameMiguel
surnameEzquivel age24gt
13
Water ConciseXML Beispiele
ltdefclass Student namestring surnamestring ageintgt ltdefmethod showgt ltH1gtltdo .name/gtlt/H1gt lt/gt ltdefmethod birthdaygt ltdo .age.ltplus 1/gt/gt lt/gt lt/defclassgt
Attribute
Methodendefinition
Klassendefinition
ltset a_Student ltStudent name"Miguel"
surname"Ezquivel" age24 /gt /gt
Instantiierung
lta_Studentgt.ltget namegt lth1gta_Student.showlt/h1gt a
_Student.birthday
Objektzugriff
14
Water ConciseXML Sprachmerkmale
  • Ausdrücke
  • Flusskontrolle ltifgt, ltdogt, ltfor eachgt
  • Boolsche Ausdrücke ltisgt, ltequalgt
  • getter-, setter-Anweisungen ltsetgt, ltgetgt
  • Anmerkungen als constraints

?relativ geringer Sprachumfang
15
Water ConciseXML Beispiele
ltifgt cond1 action1 cond2 ltdogt
action2a action2b
lt/gt else
action3 lt/ifgt
if Abfrage
ltstudent nameMiguel age"24"/gt.ltget "name"/gt
get Anweisung
ltthing foo5/gt.ltequal ltthing foo5/gt /gt x
Vergleichsoperator
16
Water Standards
XML
Water Transform
XSLT
Water Path
XPath
Water Protocol
SOAP
Water Web
WSDL
Water Registry
UDDI
Web Services
17
Water Standards Water Web vs. SOAP
  • Zugriff auf entfernte Ressourcen
  • Ressourcen werden via URI adressiert
  • Auch SOAP Nachrichten können erzeugt werden
  • Definition eigener Protokolle möglich

ltset my_homepage www.ltweb http//www.toellich.ne
t/gt/gt my_homepage.ltrequest/gt
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

19
Water Standards Water Path vs. XPath
  • XML Teilbäume werden mit XPath adressiert
  • Water Path Adressierung von Objekten

student.surname student.ltget_with_value
surname Miguel returnsallgt
  • Konvertierung von XPath in URIs möglich

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

21
Übersicht
  • Water
  • Architektur, ConciseXML, Standards, Web Services
  • JWIG
  • Architektur, Konzepte, Java
  • Zusammenfassung
  • Vergleich Water und JWIG

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

23
JWIG Architektur
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

25
JWIG Sessions
  • Zentrale Bedeutung von Sessions
  • Session Folge von Interaktionen zw. Client und
    Server

Session code (server-seitiger Thread)
XHTML
XHTML
Client
26
JWIG Sessions
Klasse Service
JWIG Anwendung
Innere Klasse Session Show() Receive() Exit()
Request, der Session startet
Thread
Interaktion mit Client
Innere Klasse Session
27
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
Java Code
gaps
gaps
XML template
28
JWIG Template System Beispiel
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

30
JWIG statische Analyse
  • Vorhandensein, richtige Verwendung der gaps
  • Richtige Reihenfolge der Eingabefelder
  • Gültigkeit von XHTML Dokumenten

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

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)

33
Übersicht
  • Water
  • Architektur, ConciseXML, Standards, Web Services
  • JWIG
  • Architektur, Konzepte, Java, Web Services
  • Zusammenfassung
  • Vergleich Water und JWIG

34
Vergleich Water und JWIG
Radikaler Ansatz Entgegen dem Trend
Konservativer Ansatz Folgt als Java Framework dem
Trend
? Breitere Akzeptanz
All-in-one Philosophie ?Wenig zukunftsträchtig
Erweiterungen müssen vom Hersteller implementiert
werden (closed source)
Leichte Integration in bestehende
Systeme Profitiert von Entwicklungen in der Java
Welt
nur ein weiteres Framework
Revolutionärer Ansatz (REST)
35
Vielen Dank für Ihre AufmerksamkeitFragen
?
36
To be or not to be XML?
ltset the_date ltHTMLgt Today is
ltdatetime.today/gtlt/HTMLgt /gt
Write a Comment
User Comments (0)
About PowerShow.com