Diplomverteidigung Ulrich Dinger Thema: Untersuchung und Entwicklung von Ansätzen und Techniken zur Realisierung einer (Web) Service Language
Ulrich Gliederung Grundlagen & Motivation Stand der Technik Ziele & Lösungsmöglichkeiten Realisierung Ergebnisse
Ulrich Grundlagen Web Services Definition/Eigenschaften modulare, lose gekoppelte, wieder verwendbare Anwendung basiert auf XML Nutzung vorhandener (Internet-)Protokolle (HTTP, FTP, SMTP) Firewall Nachrichtenaustausch (SOAP) Abstrakte Schnittstellenbeschreibung (WSDL) Ziel: Erhöhung der Wiederverwendung Bsp.: Wetterdienste, Börsennachrichten, … Grundlagen & Motivation Stand der Technik Ziele & Lösungsmöglichkeiten Realisierung Ergebnisse
Ulrich Grundlagen XML (standardisiert, plattformunabhängig, internationalisiert) universelles Datenaustauschformat, gut maschinenverarbeitbar XML-Technologien Validierung (DTD, XML Schema) XML-Transformationen (XSLT) Navigation (XPath) Anfragesprache für XML-Datenbanken (XQuery) Grundlagen & Motivation Stand der Technik Ziele & Lösungsmöglichkeiten Realisierung Ergebnisse Untersuchung und Entwicklung von Ansätzen… Ulrich Dinger
Ulrich Motivation verschiedene Technologien entwickelt bei Erstellung eines Web Services Festlegung auf eine davon jeweils hohe Einarbeitungszeit (Sprache + Tools) wenig Flexibilität bei Änderung der Anforderungen Vermengung von Zuständigkeiten (Logikbeschreibung, Optimierung) Ziel: Entwicklung (Web)Service Sprache zur abstrakten Beschreibung der Logik; Abbildung auf vorhandene Technologien Grundlagen & Motivation Stand der Technik Ziele & Lösungsmöglichkeiten Realisierung Ergebnisse
Ulrich Gliederung Grundlagen & Motivation Stand der Technik Ziele & Lösungsmöglichkeiten Realisierung Ergebnisse
Ulrich Stand der Technik Verschiedene Technologien und Standards zur Erstellung von Web Services traditionelle Sprachen + API (z.B. Apache AXIS) spezielle Sprachen (DSL) Workflow-Beschreibung (z.B. BPEL4WS) Web Service Sprachen (z.B. XL) SOAP, WSDL, … Grundlagen & Motivation Stand der Technik Ziele & Lösungsmöglichkeiten Realisierung Ergebnisse
Ulrich Beispiele Apache AXIS Toolkit Entwicklung mit API; zusätzliche Tools zum Hosten von Services, Code Generierung BPEL4WS XML-Sprache; Workflow-Beschreibung; Orchestrierung von Services; 2 Schichten: Business Prozess, aufgerufene Services XL (XML based Language) Universität Heidelberg; Web Service Sprache; prototypische Ausführungsumgebung (XL-Plattform); Verwendung des XQuery-Typsystems Java-ähnliche Syntax Grundlagen & Motivation Stand der Technik Ziele & Lösungsmöglichkeiten Realisierung Ergebnisse
Ulrich Vor- und Nachteile Vorteile WS-spezifische Konstrukte vorhanden (Service-Aufrufe, Konversationen); Workflow-Konstrukte (bei BPEL4WS) Nachteile marshalling/unmarshalling aufwändig, nicht kompatibel keine einheitliche Quellcoderepräsentation jeweils eigene Tools notwendig XML-basiert (BPEL4WS) aufwändige Tools notwendig Grundlagen & Motivation Stand der Technik Ziele & Lösungsmöglichkeiten Realisierung Ergebnisse
Ulrich Gliederung Grundlagen & Motivation Stand der Technik Ziele & Lösungsmöglichkeiten Realisierung Ergebnisse
Ulrich Ziele Entwicklung einer Web Service Sprache (SL); Beseitigung Nachteile Anforderungen Abstrakte Beschreibung eines Services in SL Transformation auf Zielsprachen bzw. umgekehrt Marhalling-Problem XQuery (Anfrage und Navigation in XML-Daten) Entwicklersicht (Plain-Text) mit bekannten Konstrukten wie Schleifen, Bedingungen; Syntax bekannt; syntaktische Fehler sollen dem Entwickler mitgeteilt werden Tools zur Codegenerierung Grundlagen & Motivation Stand der Technik Ziele & Lösungsmöglichkeiten Realisierung Ergebnisse
Ulrich Lösungsmöglichkeit 1 Entwicklung Syntax von SL; Grammatikregeln Erstellung von Compilern zur Transformation auf Zieltechnologien und zurück Nachteile für alle Sprachen Compiler benötigt bei Syntaxänderung von SL alle Compiler anpassen Code-Generierung durch weitere Compiler Grundlagen & Motivation Stand der Technik Ziele & Lösungsmöglichkeiten Realisierung Ergebnisse
Ulrich Lösungsmöglichkeit 2 FXL (Flexible XML based Languages) Repräsentationsprinzip Transformationsprinzip Vorteile: einheitliche Quellcode- Repräsentation (XML) standardisierte XML-Technologien einsetzbar individuell anpassbare Syntax Nachteile erhöhter Speicherbedarf durch XML-Repräsentation Grundlagen & Motivation Stand der Technik Ziele & Lösungsmöglichkeiten Realisierung Ergebnisse
Ulrich Lösungsmöglichkeit 2 Anwendung der FXL- Prinzipien XML-basierte Sicht (xSL) Plaintext-Sicht (SL P ) XML-Transformationen Nachteile Transformationen für jede Sprache notwendig Grundlagen & Motivation Stand der Technik Ziele & Lösungsmöglichkeiten Realisierung Ergebnisse
Ulrich Gliederung Grundlagen & Motivation Stand der Technik Ziele & Lösungsmöglichkeiten Realisierung Ergebnisse
Ulrich Realisierung (1/4) SL P (Plaintext-Sicht) eine mögliche Sicht von SL, XL als Grundlage Grammatik für XL lag als JavaCC-Grammatik vor ANTLR-Grammatik erstellt (wegen FXL) XL-Syntax weitestgehend für SL P übernommen, erweitert um Synchronisation, Operationsmodifikatoren, Service-Aufrufe auf WSDL-Beschreibungen Grundlagen & Motivation Stand der Technik Ziele & Lösungsmöglichkeiten Realisierung Ergebnisse service { public operation sayHello($input as xs:string) { let $output := Hello ; }
Ulrich Realisierung (2/4) xSL (XML-basierte Sicht) erstellt aus Syntaxbaum des SL P - Programmes zusätzlich XML Schema-Definition zur Validierung Rücktransformation von xSL nach SL Grundlagen & Motivation Stand der Technik Ziele & Lösungsmöglichkeiten Realisierung Ergebnisse … sayHello xs:string input … … …
Ulrich Realisierung (3/4) Transformationen Realisierung verschiedener prototypische technologiespezifischer Transformationen: xSL xXL und zurück (xXL = XML-basierte Sicht von XL) BPEL4WS xSL xSL xJava/AXIS (xJava = XML-basierte Sicht von Java) Nutzung der Transformationssprache TL (Transformation Language), im Rahmen von FXL erstellt Grundlagen & Motivation Stand der Technik Ziele & Lösungsmöglichkeiten Realisierung Ergebnisse
Ulrich Realisierung (4/4) Integration in FXL-Editor Graphischer Editor zur Referenzimplementierung der FXL-Prinzipien Verwendung von ANTLR-Grammatiken Verschiedene Sichten auf den Quellcode (Plain-Text, XML) Erstellung von Pipelines zur Ausführung von Transformationen Zusätzlich: TokenMarker für Syntax- Hervorhebung Grundlagen & Motivation Stand der Technik Ziele & Lösungsmöglichkeiten Realisierung Ergebnisse
Ulrich Gliederung Grundlagen & Motivation Stand der Technik Ziele & Lösungsmöglichkeiten Realisierung Ergebnisse Ulrich Dinger,
Ulrich Ergebnisse Abstrakte Beschreibung in SL möglich (SL P für Entwickler, xSL für Maschinenverarb.) 3 Typen von Transformationen Abbildung von SL auf vorhandene Technologien Trennung von Zuständigkeiten, Erhöhung der Wiederverwendung von Code Abbildung von vorh. Technologien auf SL Nutzung vorhandener Tools Transformationen von WSDL nach SL und umgekehrt Codegenerierung, Senkung Entwicklungsaufwand Einheitliche Quellcoderepräsentation (XML) einheitliches Tool (z.B. FXL-Editor) nutzbar Grundlagen & Motivation Stand der Technik Ziele & Lösungsmöglichkeiten Realisierung Ergebnisse
Ulrich Ausblick Spezifikation von SL (genau: xSL) liegt in Version 1.0 vor Prototypische technologiespezifische Transformation realisiert diese müssen vollständig realisiert werden für Konstrukte, für die es keine Entsprechung in SL gibt, muss SL erweitert werden Grundlagen & Motivation Stand der Technik Ziele & Lösungsmöglichkeiten Realisierung Zusammenfassung
Ulrich ENDE Fragen, Anregungen, Beschwerden?