TUM Hauptseminar Web Services – Water und JWIG Folie 1 Hauptseminar Web Services Sprachen I: Water...

36
TUM Hauptseminar „Web Services“ – Water und JWIG Hauptseminar Web Services Sprachen I: Water und JWIG Andreas Töllich TU München, Lehrstuhl für Informatik 12. Juni 2003, München

Transcript of TUM Hauptseminar Web Services – Water und JWIG Folie 1 Hauptseminar Web Services Sprachen I: Water...

Page 1: TUM Hauptseminar Web Services – Water und JWIG Folie 1 Hauptseminar Web Services Sprachen I: Water und JWIG Andreas Töllich TU München, Lehrstuhl für Informatik.

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

Page 2: TUM Hauptseminar Web Services – Water und JWIG Folie 1 Hauptseminar Web Services Sprachen I: Water und JWIG Andreas Töllich TU München, Lehrstuhl für Informatik.

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

Page 3: TUM Hauptseminar Web Services – Water und JWIG Folie 1 Hauptseminar Web Services Sprachen I: Water und JWIG Andreas Töllich TU München, Lehrstuhl für Informatik.

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

Page 4: TUM Hauptseminar Web Services – Water und JWIG Folie 1 Hauptseminar Web Services Sprachen I: Water und JWIG Andreas Töllich TU München, Lehrstuhl für Informatik.

TUM Hauptseminar „Web Services“ – Water und JWIG Folie 4

Übersicht

Water Architektur, ConciseXML, Standards

JWIG Architektur, Konzepte, Java

Zusammenfassung Vergleich Water und JWIG

Page 5: TUM Hauptseminar Web Services – Water und JWIG Folie 1 Hauptseminar Web Services Sprachen I: Water und JWIG Andreas Töllich TU München, Lehrstuhl für Informatik.

TUM Hauptseminar „Web Services“ – Water und JWIG Folie 5

Übersicht

Water Architektur, ConciseXML, Standards

JWIG Architektur, Konzepte, Java

Zusammenfassung Vergleich Water und JWIG

Page 6: TUM Hauptseminar Web Services – Water und JWIG Folie 1 Hauptseminar Web Services Sprachen I: Water und JWIG Andreas Töllich TU München, Lehrstuhl für Informatik.

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

Page 7: TUM Hauptseminar Web Services – Water und JWIG Folie 1 Hauptseminar Web Services Sprachen I: Water und JWIG Andreas Töllich TU München, Lehrstuhl für Informatik.

TUM Hauptseminar „Web Services“ – Water und JWIG Folie 7

Water: Architektur trad. Web Services

SOAP WSDL UDDIXMLJava

ScriptXSLT

WebService

HTML

JSP Xalan JAXRJAXP Axis

Page 8: TUM Hauptseminar Web Services – Water und JWIG Folie 1 Hauptseminar Web Services Sprachen I: Water und JWIG Andreas Töllich TU München, Lehrstuhl für Informatik.

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

Page 9: TUM Hauptseminar Web Services – Water und JWIG Folie 1 Hauptseminar Web Services Sprachen I: Water und JWIG Andreas Töllich TU München, Lehrstuhl für Informatik.

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

Page 10: TUM Hauptseminar Web Services – Water und JWIG Folie 1 Hauptseminar Web Services Sprachen I: Water und JWIG Andreas Töllich TU München, Lehrstuhl für Informatik.

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

Page 11: TUM Hauptseminar Web Services – Water und JWIG Folie 1 Hauptseminar Web Services Sprachen I: Water und JWIG Andreas Töllich TU München, Lehrstuhl für Informatik.

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

Page 12: TUM Hauptseminar Web Services – Water und JWIG Folie 1 Hauptseminar Web Services Sprachen I: Water und JWIG Andreas Töllich TU München, Lehrstuhl für Informatik.

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

Page 13: TUM Hauptseminar Web Services – Water und JWIG Folie 1 Hauptseminar Web Services Sprachen I: Water und JWIG Andreas Töllich TU München, Lehrstuhl für Informatik.

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

Page 14: TUM Hauptseminar Web Services – Water und JWIG Folie 1 Hauptseminar Web Services Sprachen I: Water und JWIG Andreas Töllich TU München, Lehrstuhl für Informatik.

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

Page 15: TUM Hauptseminar Web Services – Water und JWIG Folie 1 Hauptseminar Web Services Sprachen I: Water und JWIG Andreas Töllich TU München, Lehrstuhl für Informatik.

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

Page 16: TUM Hauptseminar Web Services – Water und JWIG Folie 1 Hauptseminar Web Services Sprachen I: Water und JWIG Andreas Töllich TU München, Lehrstuhl für Informatik.

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

Page 17: TUM Hauptseminar Web Services – Water und JWIG Folie 1 Hauptseminar Web Services Sprachen I: Water und JWIG Andreas Töllich TU München, Lehrstuhl für Informatik.

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/>

Page 18: TUM Hauptseminar Web Services – Water und JWIG Folie 1 Hauptseminar Web Services Sprachen I: Water und JWIG Andreas Töllich TU München, Lehrstuhl für Informatik.

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

Page 19: TUM Hauptseminar Web Services – Water und JWIG Folie 1 Hauptseminar Web Services Sprachen I: Water und JWIG Andreas Töllich TU München, Lehrstuhl für Informatik.

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

Page 20: TUM Hauptseminar Web Services – Water und JWIG Folie 1 Hauptseminar Web Services Sprachen I: Water und JWIG Andreas Töllich TU München, Lehrstuhl für Informatik.

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

Page 21: TUM Hauptseminar Web Services – Water und JWIG Folie 1 Hauptseminar Web Services Sprachen I: Water und JWIG Andreas Töllich TU München, Lehrstuhl für Informatik.

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

Page 22: TUM Hauptseminar Web Services – Water und JWIG Folie 1 Hauptseminar Web Services Sprachen I: Water und JWIG Andreas Töllich TU München, Lehrstuhl für Informatik.

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

Page 23: TUM Hauptseminar Web Services – Water und JWIG Folie 1 Hauptseminar Web Services Sprachen I: Water und JWIG Andreas Töllich TU München, Lehrstuhl für Informatik.

TUM Hauptseminar „Web Services“ – Water und JWIG Folie 23

JWIG: Architektur

Page 24: TUM Hauptseminar Web Services – Water und JWIG Folie 1 Hauptseminar Web Services Sprachen I: Water und JWIG Andreas Töllich TU München, Lehrstuhl für Informatik.

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

Page 25: TUM Hauptseminar Web Services – Water und JWIG Folie 1 Hauptseminar Web Services Sprachen I: Water und JWIG Andreas Töllich TU München, Lehrstuhl für Informatik.

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

Page 26: TUM Hauptseminar Web Services – Water und JWIG Folie 1 Hauptseminar Web Services Sprachen I: Water und JWIG Andreas Töllich TU München, Lehrstuhl für Informatik.

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

Page 27: TUM Hauptseminar Web Services – Water und JWIG Folie 1 Hauptseminar Web Services Sprachen I: Water und JWIG Andreas Töllich TU München, Lehrstuhl für Informatik.

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

Page 28: TUM Hauptseminar Web Services – Water und JWIG Folie 1 Hauptseminar Web Services Sprachen I: Water und JWIG Andreas Töllich TU München, Lehrstuhl für Informatik.

TUM Hauptseminar „Web Services“ – Water und JWIG Folie 28

JWIG: Template System: Beispiel

Page 29: TUM Hauptseminar Web Services – Water und JWIG Folie 1 Hauptseminar Web Services Sprachen I: Water und JWIG Andreas Töllich TU München, Lehrstuhl für Informatik.

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

Page 30: TUM Hauptseminar Web Services – Water und JWIG Folie 1 Hauptseminar Web Services Sprachen I: Water und JWIG Andreas Töllich TU München, Lehrstuhl für Informatik.

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

Page 31: TUM Hauptseminar Web Services – Water und JWIG Folie 1 Hauptseminar Web Services Sprachen I: Water und JWIG Andreas Töllich TU München, Lehrstuhl für Informatik.

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

Page 32: TUM Hauptseminar Web Services – Water und JWIG Folie 1 Hauptseminar Web Services Sprachen I: Water und JWIG Andreas Töllich TU München, Lehrstuhl für Informatik.

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)

Page 33: TUM Hauptseminar Web Services – Water und JWIG Folie 1 Hauptseminar Web Services Sprachen I: Water und JWIG Andreas Töllich TU München, Lehrstuhl für Informatik.

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

Page 34: TUM Hauptseminar Web Services – Water und JWIG Folie 1 Hauptseminar Web Services Sprachen I: Water und JWIG Andreas Töllich TU München, Lehrstuhl für Informatik.

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)

Page 35: TUM Hauptseminar Web Services – Water und JWIG Folie 1 Hauptseminar Web Services Sprachen I: Water und JWIG Andreas Töllich TU München, Lehrstuhl für Informatik.

TUM Hauptseminar „Web Services“ – Water und JWIG Folie 35

Vielen Dank für Ihre Aufmerksamkeit

Fragen?

Page 36: TUM Hauptseminar Web Services – Water und JWIG Folie 1 Hauptseminar Web Services Sprachen I: Water und JWIG Andreas Töllich TU München, Lehrstuhl für Informatik.

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>/>