WebServices -reloaded-

Ähnliche Dokumente
Auszug aus JAX-WS Folien

Java Web Services Metadata JSR-181

WebService in Java SE und EE

Wiederholung: Beginn

Webservices. 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung. Hauptseminar Internet Dienste

Vertiefte Grundlagen Graphentheorie

Axis2, CXF und JAX-WS RI im Vergleich

Themen. Web Service - Clients. Kommunikation zw. Web Services

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

FWP Aktuelle Technologien zur Entwicklung verteilter Java-Anwendungen. Sommersemester Michael Theis, Lehrbeauftragter 1

3-schichtige Informationssystem-Architektur

Struts 2 Das Imperium schlägt zurück?

Asynchrone Webservices mit Axis 1.x in Java

Verteilte Systeme: Übung 4

Architektur des agimatec-validation Frameworks

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

Große Übung Praktische Informatik 1

Axis2, CXF und JAX-WS RI im Vergleich

Zustandsgebundene Webservices

Angewandte Softwareentwicklung Serialisierung

Integration von Web Services in J EE Anwendungen mit XFire. 1/26 André Janus - Integration von Web Services in J EE Anwendungen mit XFire

Einführung in die Java- Programmierung

Java und XML 2. Java und XML

Objektorientierte Programmierung

Henning Mersch. Tomcat. im Rahmen des RBG-Seminar SS04. Apache-Jakarta-Tomcat-Server RBG-Seminar 1/17

Praktikum aus Softwareentwicklung 2. Web Services. Java Praktikum SS 2010

WSDL. Web Services Description Language. André Vorbach. André Vorbach

Einführung in die Programmierung

SAP NetWeaver Gateway. 2013

Workflow, Business Process Management, 4.Teil

E-Business Architekturen

Praktikum aus Softwareentwicklung 2. Web Services. Java Praktikum SS 2008

Gliederung. 1. Einleitung (1) 1. Einleitung (3) 1. Einleitung (2)

E-Services mit der Web-Service-Architektur

Übersicht. Eclipse Foundation. Eclipse Plugins & Projects. Eclipse Ganymede Simultaneous Release. Web Tools Platform Projekt. WSDL Editor.

Praktikum Datenbanksysteme. Ho Ngoc Duc IFIS - Universität zu Lübeck

SOA. Prof. Dr. Eduard Heindl Hochschule Furtwangen Wirtschaftsinformatik

Testen mit JUnit. Motivation

5. Übung zur Vorlesung Service-orientierte Architekturen

Seminarbericht Rechnernetze XML Web Services Schnittstelle zwischen den Welten.NET und Java

Einführung in Javadoc

Java API for XML Binding

Erweitern Sie ihren Tomcat um das AXIS-Framework und machen Sie ihn damit bereit für den Einsatz von Web Services:

Web Service Entwicklung mit Java. Sven Lindow

Softwareentwicklung in verteilten Umgebungen, Teil 6 Web Services (Coulouris et al., Kapitel 19) Dieter Schmalstieg

Apache AXIS Architektur

Remote Method Invocation

Web-Services Implementierung

Workshop 6. Einführung in die objektorientierte Programmierung. Teil: Java mit BlueJ

Spring Dynamic Modules for OSGi Service Platforms

Auszug aus Axis2 Schulung

Übungen zu Softwaretechnik

Algorithmen und Datenstrukturen

POIS-Praktikum Prozessimplementierung, RosettaNet PIPs 3A

Java Reflection. Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff

COPPER Best Practices

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, Java Forum Stuttgart 2007

Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen.

Computeranwendung und Programmierung (CuP)

Spring Dynamic Modules for OSGi Service Platforms

Scala kann auch faul sein

Design by Contract with JML

Web Services. XML, WSDL, SOAP und UDDI Einblicke und Ausblicke J.M.Joller 1

Design Patterns 2. Model-View-Controller in der Praxis

Grundlagen der Web-Entwicklung INF3172

Web-Sevices : WSDL Entwicklung von Web-Anwendungen

Programmierkurs Java

4. AuD Tafelübung T-C3

ObjectBridge Java Edition

Einführung in die Informatik

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala

Mobile und Verteilte Datenbanken

OWASP Stammtisch München Sep 2014 XSS und andere Sicherheitslücken aus der Perspektive des Programmcodes

Web-Services Implementierung mit Java

Haben Sie schon einmal aus einem ScreenCobol Requestor ein Java Programm aufgerufen?

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3.

Spezifikation DPD und primetime WebService Shopfinder Gültig für Paketversender in Österreich. Version 3.3.0

Frankfurt,

5. Programmierschnittstellen für XML

Enterprise Application Integration Erfahrungen aus der Praxis

Web Services Security

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Low-Level Client-Server Architektur

5. Programmierschnittstellen für XML

Java: Vererbung. Teil 3: super()

Der lokale und verteilte Fall

BPEL. Business Process Execution Language. Andre Rein. 21. August Serviceorientierte Architekturen

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

Objektorientierte Programmierung

Enterprise Applikation Integration und Service-orientierte Architekturen. 09 Simple Object Access Protocol (SOAP)

arlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek

Web-Applications mit SOAP und RSS. Vortrag 8, Jonas Mitschang,

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

JAXB 2.0. Ein Programmiertutorial für die Java Architecture for XML Binding. von Samuel Michaelis, Wolfgang Schmiesing. 1. Auflage

Etablierung serviceorientierter Architekturen mit Web Services

Tagesprogramm

Webservices. Entwicklercamp Denny Sternberg

VVA Webservice Online Lieferbarkeits-Abfrage

SUB-ID- VERWALTUNG MIT GPP SETUP-GUIDE FÜR PUBLISHER

Transkript:

WebServices -reloaded- Jan Krüger Bielefeld Bioinformatics Service Institute of Bioinformatics CeBiTec Bielefeld University jkrueger@techfak.uni-bielefeld.de 3 Juli 2007

Übersicht Motivation Was sind WebServices? Grundlegendes zu WebServices WebServices am BiBiServ WebServices Axis 1.x WebServices reloaded JWSDP 2.x JAX-WS JAXB

Was sind WebServices? Ein WebService ist ein Stückchen (Programm-) Logik, das sich irgendwo im Internet befindet und auf das man mit standardisierten Protokollen zugreifen kann.

WebService Eigenschaften XML basiert Lose gekoppelt Grobkörnig Synchron oder Asynchron RPC- oder Document-Styled

WebService Technologien Client Request Response Server WSDL Anfrage registriert UDDI

WebService Technologien DEMO 1

Asynchrone Ansätze One-Way and notification operations Request/Reply operation Request/Reply with polling Request/Reply with posting

WebServices am BiBiServ Compute Grid WebServer BiBiServ WebService Server BiBiWSServ Database Server

Daten in der BioInformatik einfache Daten Parameter eingeschränkt optional komplexe Daten Sequenzdaten (z.b. FASTA) DNA/RNA, AMINOACID, FREE Metainformation Strukturdaten (z.b. DotBracket) Problem der Spezifikation und Validierung

Ansätze Programm (-gerüst) aus WSDL schnell und einfach Programmlogik wird hinzugefügt Bei größeren WSDL Beschreibung schnell unübersichtlich Unwartbar, wenn das Programm in der Entwicklung ist! WSDL von dem Programm Aufwendiger, aber einfacher zu verstehen Komplexe Datentypen sind oftmals schwierig zu implementieren

WebService Frameworks (1 st Generation) Sprache Name Java SOAP[4J] (IBM) Apache Axis 1.x JWSDP 1.x (SUN) C/C++ GSOAP Apache Axis 1.x C#,VB,....NET 1.x und 2.x Perl SOAP::Lite

BiBiWS und Apache Axis 1.x WSDD (WebService Deployment Descriptor) Properties Serializer / Deserializer für einfache Datentypen Interfaces / Classes / Exception DEMO 2

Warum was Neues? WSDL wird nicht zu 100% unterstützt eigene Datentypen besch... Dokumentation Speicherlecks Qualität des Sourcecodes

WebService Frameworks (2 nd Generation) Sprache Name Java Apache Axis 2.x JWSDP 2.x (SUN) XFire C#,VB,....NET 3.x

Exkurs : Java Annotions Bis Java 5 : Interfaces, Properties Ab Java 5 : Annotations @Annotation @Annotationtype @WebService public class Calculator { @WebMethod public int add( int x, int y ) { return x + y; Typisch : XML-Mapping, WebServices Seit Java 6 : Commons Annotation

JWSDP 2.x Java Architecture for XML Web Services (JAX-WS) Java Architecture for XML Binding (JAXB) Streaming API for XML (StAX) SOAP with Attachments API for Java (SAAJ) XML Regristries XML Digital Signature Security in the Web Tier

JAX-WS - Beispiel 1.Klasse implementieren 2.Kompilieren 3.WSGen aufrufen 4.WAR bauen @WebService() public class Calculator { @WebMethod() public int add( int x, int y ) { return x + y; 5.WAR deployen

JAX-WS - @WebService Name Type Default name String Name der Klasse / des Interface targetnamespace String Name des Package servicename String WebService.name + Service endpointinterface String portname String WebService.name + Port wsdllocation String @WebService(name= AddNumbers, targetnamespace= de:unibi:techfak:bibiserv:demo, servicename= AddNumbersService ) public class Calculator { @WebMethod() public int add( int x, int y ) { return x + y;

JAX-WS - @WebMethod Name Type Default operationname String Name der Java Methode action String exclude Boolean FALSE @WebService() public class Calculator { @WebMethod(operationName= add, action= urn:addnumbers ) public int add( int x, int y ) { return x + y;

JAX-WS - @WebResult Name Type Default name String result targetnamespace String NS of WebService header Boolean FALSE partname String @WebResult.name @WebService() public class Calculator { @WebMethod() @WebResult(name= result ) public int add( int x, int y ) { return x + y;

JAX-WS - @WebParam Name Type Default name String Name der Java Methode targetnamespace String mode String IN bzw. INOUT header boolean FALSE partname String @WebParam.name @WebService() public class Calculator { @WebMethod() public int add(@webparam(name= x )int x, @WebParam(name= y )int y ) { return x + y;

JAX-WS - Exception public class MyException extends Exception { private String message; public MyException(String message) { this.message = message; public String getmessage() { return message; @WebService() public class Calculator { @WebMethod() public int add( int x, int y )throws MyException { if ( x < 0 y < 0) { throws new MyException ( Negative numbers are not supported! ); return x + y;

JAXB : DataBinding XML Schema Type xsd:string xsd:integer xsd:int xsd:long xsd:float xsd:double xsd:boolean xsd:qname xsd:anysimpletype xsd:anysimpletype Java Data Type java.lang.string java.math.biginteger java.lang.integer bzw. int java.lang.long bzw. long java.lang.float bzw. float java.lang.double bzw. double java.lang.boolean bzw. boolean javax.xml.namespace.qname java.lang.object java.lang.string

JAXB - Übersicht Schema Generator Application Code Schema XML/Java Binding Declaration Schema Compiler JAXB annotated classes Object Factory javax.xml.bind Annotation Binding Framework Schema nach Java Java nach Schema Application

JAXB - Fallstricke Schema nach Java Constraints werden nicht automatisch in Java Klassen übertragen Strukturen können defacto abgebildet werden, automatisiert klappt das jedoch i.d.r. Nicht Beispiel : biotypes:aminoacidsequence Java nach Schema Ohne (JAXB-) Annotationen oft zu allgemeine XML Schema Datentypen

JAXB Binding Process Schema bind JAXB JAXB mapped mapped classes classes follows Instances of Document unmarshal marshal Objects Objects

JWSDP - Demo DEMO 3

Zusammenfassung Aus Sicht der Entwickler: Hürde für den Einstieg ist größer XML Schema Java Annotations Unterstützende Software Netbeans (ab 5.x) / Eclipse (ab 3.1x) Oxygen / XMLSpy Übersichtlicher = weniger Fehlerquellen! Aus Sicht der Administratoren: Sehr gut dokumentiert (Tutorial, API, Blogs) s.o.