ist mein ebusiness skalierbar und verfügbar?

Ähnliche Dokumente
SOA. Prof. Dr. Eduard Heindl Hochschule Furtwangen Wirtschaftsinformatik

SOAP. SOAP: Envelope

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

Wiederholung: Beginn

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

Workflow, Business Process Management, 4.Teil

Verteilte Systeme: Übung 4

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

Java und XML 2. Java und XML

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

Autor: Peter Seemann Seminar: Softwarearchitekturen Betreuer: Benedikt Meurer

Übersicht. Angewandte Informatik 2 - Tutorium 6. Teile einer WSDL-Datei. Was ist WSDL. Besprechung: Übungsblatt 5

SOAP Integrationstechnologie für verteilte Middlewarearchitekturen?

Zustandsgebundene Webservices

Implementierung von Web Services: Teil I: Einleitung / SOAP

Kapitel 5 Web-Services

E-Services mit der Web-Service-Architektur

Web-Sevices : WSDL Entwicklung von Web-Anwendungen

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

Architektur von SOAP basierten Web Services

Seminar E-Services WS 02/03 WSDL. Web Services Description Language. Moritz Kleine SES 02 - WSDL

Hauptseminar Internetdienste Prof. F. Schweiggert Sommersemester 2004 Universität Ulm. Web Services. Boto Bako

Grundlagen der Web-Entwicklung INF3172

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen

Auszug aus JAX-WS Folien

Themen. Web Services und SOA. Stefan Szalowski Daten- und Online-Kommunikation Web Services

XML-RPC, SOAP und Web Services. Jörn Clausen

Webservices Ein Vortrag von:

Enterprise Application Integration Erfahrungen aus der Praxis

VVA Webservice Online Lieferbarkeits-Abfrage

SAP NetWeaver Gateway. 2013

Microsoft.NET und SunONE

3-schichtige Informationssystem-Architektur

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

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

Web Services. Standards und Realisierung in Java

Inhalt I. Blick zurück II. Was sind WebServices? III. Rahmenwerk für edienstleistungen IV. Verwendete WebServices

WebServices Zwischen Buzzword und Nutzen

Web Services. Web Services in the News. Vision: Web of Services. Learning for Results. DECUS Symposium 2002, Vortrag 1K07,

Thema: Web Services. Was ist ein Web Service?

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

SOAP, WSDL, UDDI. Martin Grimmer. Proseminar: Die Zukunft der Softwareentwicklung: Komponentensysteme/Web Services Vortrag 1 am

Definition Web Service

Client/Server-Systeme

Mobile und Verteilte Datenbanken

Übungen zu Softwaretechnik

SOA mit.net: Vom Geschäftsprozess zur Lösung

5. Programmierschnittstellen für XML

Securing SOAP e-services

epayment Leistungen des Bundes einfach, schnell und sicher bezahlen mit Payment Eine Idee mit Zukunft

5. Programmierschnittstellen für XML

CORBA-Konzept. Ziele. Common Object Request Broker Architecture CORBA. Plattformunabhängige Kommunikation Transparente Verteilung von Objekten

Verteilte Systeme: Übung 4

arlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek

Web Services: Inhalt

Web Services Die Definition von Web Services in der Theorie und FNT-Command als Web Service in der Praxis

XML und SOAP Einführung und Grundlagen

GI-Services erstellen und bereitstellen

Ein Beispiel. Ein Unternehmen will Internettechnologien im Rahmen des E- Business nutzen Welche Geschäftsprozesse?

Java Web Services Metadata JSR-181

XML Schema vs. Relax NG

Man liest sich: POP3/IMAP

Software Reuse Sommer 2004

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

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

JAXR Java API for XML Registries. Jasmin Hatteh

Agenda. Web Services unter Lotus Notes/Domino

SE2-10-Entwurfsmuster-2 15

Techniken von Web Services

CORBA. Systemprogrammierung WS

Message Oriented Middleware am Beispiel von XMLBlaster

RESTful Web. Representational State Transfer

SIMP 1.01 Protokollspezifikation (Mindestanforderung)

Security Patterns. Benny Clauss. Sicherheit in der Softwareentwicklung WS 07/08

Wirtschaftsinformatik 2

Erfassung von Umgebungskontext und Kontextmanagement

Automatisierungsarchitekturen für das Smart Grid Am Beispiel der OPC UA und der IEC Dr.-Ing. Mathias Uslar, Sebastian Rohjans

5. Übung zur Vorlesung Service-orientierte Architekturen

Techniken von Web Services

Java Enterprise Architekturen Willkommen in der Realität

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

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

Ein Vergleich zwischen SCA,JBI und WCF. Marcello Volpi

e-business - Patterns Stefan Brauch (sb058) -- Julian Stoltmann (js057)

Inhalt Einführung Was ist SAML Wozu braucht man SAML Wo wird SAML verwendet kleine Demo SAML. Security Assertion Markup Language.

Softwareentwicklung in verteilten Umgebungen Middleware Case Studies (Coulouris et al., Kapitel 5 und 19) Dieter Schmalstieg Jens Grubert

Norm 225 Service Definition mit WSDL

Technische Beschreibung: EPOD Server

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

Web Services Monitoring

SOAP Simple Object Access Protocol

Der lokale und verteilte Fall

Flash, Network und Facebook. Steven Mohr

Systembeschreibung. Masterplan Kommunikationsinterface. ASEKO GmbH. Version 1.0 Status: Final

RDF und RDF Schema. Einführung in die Problematik Von HTML über XML zu RDF

Microsoft.NET. InfoPoint 8. Juni 2005 Stefan Bühler

AlwinPro Care Modul Schnittstelle TV-Steuerung

Standards und Standardisierungsgremien

Anwendungsprotokolle: HTTP, POP, SMTP

Transkript:

12-1 ist mein ebusiness skalierbar und verfügbar? Datenbank HTML client HTTP Internet HTTP Web Application Server Web Server Anforderungen: - Verfügbarkeit - Skalierbarkeit - Performance - Sicherheit HTML client 43% of all Internet users have experienced one failed purchase, 28% of all online purchases fail... 28% of consumers who experienced a failed purchase stopped shopping at that particular Web site, 23% stopped buying at that site, and 6% also stopped shopping at the retailer s brick-and-mortar outlets. Boston Consulting Group 12-2 1

Web Services Web Services sind eine Infrastrukturtechnologie zur schnellen und einfachen Integration heterogener Anwendungen. Web steht dabei für die Kommunikation von Anwendungen über die bestehende Internetinfrastruktur (HTTP, SSL, Firewall etc.), sowohl innerhalb eines Unternehmens als auch über das Internet. Service steht für ein vereinfachtes Softwarekomponentenmodell, eine wesentliche Vereinfachung gegenüber den doch häufig zu komplexen verteilten Objekten (CORBA, EJB). 12-3 Web Service Find All the Service describe by UDDI WDSL <- UDDI Service Registry http://www.ibm.com/services/uddi http://www.ibm.com/services/uddi/testregistr y http://uddi.microsoft.com http://test.uddi.mirosoft.com hp available soon Publish WDSL -> UDDI SOAP on HTTP Service Requestor Bind Service provider 12-4 2

Find Service User SOAP UDDI Bind SOAP Publish Service Provider SOAP Simple Object Access Protocol Benutzt XML Nutzt HTTP als Transport- Layer-Protokoll Header Elemente für Kontextinformationen Interaktion zwischen einer Client- und einer Server- Anwendung RPC-Stil (request response) Semantik Fehler- und Ausnahmebehandlung 12-5 Find Service User WSDL UDDI Bind SOAP Publish Service Provider WSDL - Web Services Definition Language Definition der Interfaces - Neben den Operationen des Web Services wird hier auch angegeben, auf welchem Rechner im Internet der Web Service verfügbar ist. WDSL bietet XML-Sprachregeln für die Beschreibung - was ein Webservice leistet - wo er sich befindet und - wie er aufzurufen ist 12-6 3

UDDI - Universal Description, Discovery and Integration Find Service User UDDI UDDI Bind SOAP Publish Service Provider dient zur Registrierung von Web Services. neben dem Interface auch Beschreibung des Web Service sowie Daten über den Anbieter etc. folgende Anforderungen müssen abgedeckt werden: Datenstruktur für Web Services Schnittstellenbeschreibung Möglichkeit die Informationen zu finden und die technischen Informationen zu nutzen 12-7 Web Services Technology Stack Basis Schichten sind bereits fest etabliert. Höhere Schichten befinden sich noch im Aufbau. UDDI, WSFL sind dennoch feste Bestandteile des Stacks. Weitere Konzepte: 4Security 4 Authentifizierung 4 Quality of Service 4 Transaktions Management 12-8 4

SOAP consists of three parts: The SOAP envelope construct defines an overall framework for expressing what is in a message; who should deal with it, and whether it is optional or mandatory. The SOAP encoding rules define a serialization mechanism that can be used to exchange instances of application-defined datatypes. The SOAP RPC representation defines a convention that can be used to represent remote procedure calls and responses. Quelle: http://www.w3.org/tr/2000/note-soap-20000508 12-9 SOAP Simple Object Access Protocol Lightweight Message Protokoll Getypter Datenaustausch zwischen Applikationen Besonders geeignet für RPC Funktionalität Lose Kopplung Verteilte Architektur Transport Binding über darunterliegendes Transport Protokoll Struktur wird in XML definiert 12-10 5

SOAP Envelope <xs:element name="envelope" type="tns:envelope" /> <xs:complextype name="envelope" > <xs:sequence> <xs:element ref="tns:header" minoccurs="0" /> <xs:element ref="tns:body" minoccurs="1" /> </xs:sequence> <xs:anyattribute namespace="##other processcontents="lax" /> </xs:complextype> Optionaler Header Block Body Block ist notwendig Namespace: http://www.w3.org/2001/09/soap-envelope 12-11 SOAP Body Body Enthält Applikationsdaten 4RPC Daten 4 Fehlerinformation <xs:element name="body" type="tns:body" /> <xs:complextype name="body" > <xs:sequence> <xs:any namespace="##any" minoccurs="0 maxoccurs="unbounded processcontents="lax" /> </xs:sequence> <xs:anyattribute namespace="##any processcontents="lax" > </xs:anyattribute> </xs:complextype> 12-12 6

SOAP RPC RPC Daten werden im SOAP Body übertragen Struktur entspricht den unter SOAP encoding vorgestellten Konzepten Voraussetzungen für RPC 4URI des Empfängerknotens 4Funktions/Methoden Name 4Funktions/Methoden Signatur 4Funktionsparameter 12-13 SOAP RPC RPC Request 4 Struktur mit dem Namen der Funktion 4 Funktions Parameter müssen typisiert und benannt werden 4 Reihenfolge der Parameter entspricht Schnittstelle 4 Ein sowie Ein/Ausgabe Parameter sind möglich <env:envelope xmlns:env="http://www.w3.org/2001/09/soap-envelope"> <env:body > <tmp:tempinlinz.gettemp_request> xmlns:tmp="http://www.linz_temp.at/2001/temp" > <tmp:plz>4040</tmp:plz> <tmp:strasse>altenbergerstrasse</tmp:strasse> <tmp:hsnr>74</tmp:hsnr> </tmp:tempinlinz.gettemp_request> </env:body></env:envelope> 12-14 7

SOAP RPC RPC Response 4Ebenfalls typisierte, benannte Struktur 4Reihenfolge der Aus bzw. Ein/Ausgabe Parameter entspricht Schnittstelle 4Beginnend mit Rückgabewert Result <env:envelope xmlns:env="http://www.w3.org/2001/09/soap-envelope"> <env:body > <tmp:tempinlinz.gettemp_response> xmlns:tmp="http://www.linz_temp.at/2001/temp" > <tmp:datumzeit>10.12.2001</tmp:datumzeit> <tmp:tempcelsius>-3</tmp:tempcelsius> </tmp:tempinlinz.gettemp_response> </env:body> </env:envelope> 12-15 SOAP Envelope Construct (1) SOAP Message = XML Dokument mit SOAP Envelope [SOAP Header] SOAP Body Beispiel für SOAP Message in HTTP Request: POST /StockQuote HTTP/1.1 Host: www.stockquoteserver.com Content-Type: text/xml; charset="utf-8" Content-Length: nnnn SOAPAction: "Some-URI" <SOAP-ENV:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <m:getlasttradeprice xmlns:m="some-uri"> <symbol>dis</symbol> </m:getlasttradeprice> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 12-16 8

SOAP Envelope Construct (2) Beispiel für SOAP Message in HTTP Response: HTTP/1.1 200 OK Content-Type: text/xml; charset="utf-8" Content-Length: nnnn <SOAP-ENV:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> <SOAP-ENV:Body> <m:getlasttradepriceresponse xmlns:m="some-uri"> <Price>34.5</Price> </m:getlasttradepriceresponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 12-17 Simple Types Als Simple-Types übernimmt SOAP alle in der XML Schema Part 2: Datatypes Spec. verwendeten Built-in datatypes. Beispiele für ein Schema (Fragment): <element name="age" type="int"/> <element name="height" type="float"/> <element name="displacement" type="negativeinteger"/> <element name="color"> <simpletype base="xsd:string"> <enumeration value="green"/> <enumeration value="blue"/> </simpletype> </element> Beispiele für Daten: <age>45</age> <height>5.9</height> <displacement>-450</displacement> <color>blue</color> Enumeration mit Simple Types (außer Boolean) 12-18 9

Compound Types Parallel zu Structs und Arrays... Bräuchten einen eigenen Vortrag... ;-) Beispiel für Schema: <element name="book"> <complextype> <element name="author" type="xsd:string"/> <element name="preface" type="xsd:string"/> <element name="intro" type="xsd:string"/> </complextype> </element> Beispiel für Daten: <e:book> <author>henry Ford</author> <preface>prefatory text</preface> <intro>this is a book.</intro> </e:book> 12-19 WSDL Einleitung WSDL = Web Service Description Language XML-basiert Gibt Anworten auf die Fragen: 1. Wo liegt der Web-Service genau? 2. Wie kann man mit ihm arbeiten, welche Schnittstellen hat er? 3. Mit welchen Protokollen kann man den Web-Service verwenden? 12-20 10

WSDL allgemeines WSDL-Dokumente sind ein Vertrag; der Inhalt bildet die Grundlage für eine Kommunikation zwischen Web- Service und einem Client Im WSDL-Dokument sind unter anderem die Methoden- Schnittstellen definiert; weiters kann man mittels einer angegebenen Adresse ein Service lokalisieren 12-21 WSDL allgemeines SOAP wurde bereits als allgemeiner Nachrichtenübertragungsstandard eingeführt. Kennt man aber die Anzahl der Parameter, die Typen oder den Methodennamen nicht, kann man keine Nachricht übertragen. Beim Einsatz von WSDL erfolgt die Generierung von Proxies für Web-Services sprach- und plattformneutral, vergleichbar mit den IDL-Dateien von COM und CORBA. 12-22 11

WSDL Dokumentaufbau <definition> <types> <message> <porttype> <binding> <port> <service> Logisches Wurzelelement, in welchem die verschiedenen Namespaces als Attribute definiert werden Datentypdefinitionen Abstrakte Definition der Nutzdatenpakete, die übertragen werden. Eine Nachricht (Message) entspricht auf dieser Ebene noch nicht einer Methode oder Funktion, wie man vielleicht meinen könnte. Fasst eine Menge von Operationen zusammen Erst hier werden konkrete Protokolle (SOAP, http-get, etc.) und Datenformate für Operationen und Nachrichten definiert. Spezifikation einer Adresse für eine Bindung Aggregation von zusammengehörigen Ports 12-23 WSDL Zusammenspiel der Typen Typen abstrakt Nachrichten Porttypen Operationen Bindungen Operationen konkre t Services Ports 12-24 12

WSDL Typen Die Std.-Typen aus XML-Schema sind vorgegeben Eigene Typen können in diesem Types-Abschnitt analog zu XML-Schema und SOAP definiert werden. BenötigteTypen für das Temperatur-Beispiel: PositionsInfo_Request Temperatur_Response plz datumzeit strasse tempcelsius hsnr 12-25 WSDL Typen - Beispiel <wsdl:types> <xsd:schema targetnamespace= http://beispiel.com xmlns:xsd= http://www.w3.org/2000/10/xmlschema > <xsd:element name= PositionsInfo_Request > <xsd:complextype> <xsd:sequence> <xsd:element name= plz type= string /> <xsd:element name= strasse type= string /> <xsd:element name= hsnr type= string /> </xsd:sequence> </xsd:complextype> </xsd:element> <xsd:element name= Temperatur_Response > <xsd:complextype> <xsd:sequence> <xsd:element name= datumzeit type= datetime /> <xsd:element name= tempcelsius type= /> </xsd:sequence> </xsd:complextype> </xsd:element> </wsdl:types> 12-26 13

UDDI Allgemeines UDDI = Universal Description, Discovery, and Integration Plattformunabhängiges, Erweiterbares Framework, um 4 Web-Services zentral zu registrieren 4 Web-Services bereitzustellen für andere Firmen 4 Fremde Web-Services mit gewissen Merkmalen finden und dynamisch in eigenen Web-Service einbinden Basiert auf http, XML und SOAP UDDI SOAP XML HTTP TCP/IP 12-27 UDDI Background-Infos UDDI gibt lediglich eine Beschreibung der Funktionalität vor, nicht aber eine Implementierung Projekt UDDI gestartet im September 2000 Mittlerweile ca. 220 Mitglieder 12-28 14

UDDI UBR - 1 UBR = UDDI Business Registry Die UBR ist eine logisch zentralisiertes, physisch aber verteiltes Service mit mehreren Wurzelknoten, die regelmäßig untereinander Daten austauschen Es genügt, wenn ein Service an einer beliebigen Instanz registriert wird, da diese die Registrierung nach oben hin weiterreicht. DNS-ähnlicher Aufbau der Informationsstruktur 12-29 UDDI Business Registration Registry Data Firmen registrieren öffentliche Infos über sich selbst Servicetyp-Infos werden hier abgelegt; Programmierer, Stand.gesellschaften, Firmen White Pages Yellow Pages Green Pages Service Type Registrations 12-30 15

UDDI API Abfrage Bsp. <find_business generic='1.0' xmlns='urn:uddi-org:api'> <name>microsoft</name> </find_business> <find_service generic='1.0' xmlns='urn:uddi-org:api' businesskey='0076b468-eb27-42e5-ac09-9955cff462a3'> <name>uddi Web Sites</name> </find_service> <get_servicedetail generic='1.0' xmlns='urn:uddi-org:api'> <servicekey>86e46aad-82a5-454f-8957-381c2f724d6f</servicekey> </get_servicedetail> 12-31 Java Web Services Einleitung 1/2 The Java platform and XML are two open industrystandards that together are enabling the work in B2B ecommerce, which will allow enterprises to greatly simplify and lower the cost of information sharing and data exchange. George Paolini, vice president of Sun 12-32 16

Java Web Services JAX Übersicht 2/2 Implementierung der Kommunikation zwischen Client und Applikation Spezifiziert 5 APIs 4JAXP: XML Processing 4JAXB: XML Binding 4JAXR: Registries 4JAXM: Messaging über SOAP 4JAX-RPC: RPC über SOAP 12-33 Java Web Services JAX Übersicht 3/3 12-34 17

Java Web Services JAXR 1/5 Java API for XML Registries Registries enthalten wichtige Informationen zur Kommunikation und Kollaboration von Unternehmen JAXR bietet API zum Abfragen und Bearbeiten von Registries Unterstützt Vereinigungsmenge der Konzepte komplementärer Ansätze (z.b. UDDI, ebxml) 12-35 Java Web Services JAXR 2/5 Architektur 12-36 18

Java Web Services JAXM 1/3 Java API for XML Messaging Nachrichtenübertragung übers Internet Übertragungsprotokoll 4SOAP 1.1 4 SOAP with Attachments 4 Erweiterbar durch Profile wie ebxml, BizTalk, JAXM Provider nötig für 4 Übertragung 4Routing 12-37 Java Web Services JAXM 2/3 Synchrone Kommunikation Asynchrone Kommunikation 4Client muss in Container laufen (J2EE, Servlet) Kommunikationsszenarien 4Asynchrone Anfrage 4Asynchrone Änderung mit Bestätigung 4Synchrone Anfrage 4Synchrone Änderung 4Fire and Forget 12-38 19

Java Web Services JAXM 3/3 12-39 Java Web Services JAX-RPC 1/3 Java API for XML based RPC RPCs möglich durch Verwendung von SOAP Ähnliche Ansätze bereits vorhanden 4Java IDL 4CORBA 4RMI 4RMI/IIOP => Plattformunabhängigkeit durch XML 12-40 20

Java Web Services JAX-RPC 2/3 Ziel der Spezifikation: Einfachheit der Schnittstelle Kapselung der SOAP Nachrichtenbildung Unterstützung von WSDL 4 WSDL2Java Compiler erzeugt Client Artefakte Unterstützung von Dynamischen Proxies 4 DII Dynamic Invocation Interface 4 Dynamic Proxy Mechanismus 12-41 Java Web Services JAX-RPC 3/3 Proxy Beispiel Context ctx = new InitialContext(); com.example.stockquoteservice sqs = ctx.lookup( java:comp/env/stockquoteservice ); com.example.stockquoteprovider sqp = sqs.getstockquoteproviderport(); float quoteprice = sqp.getlasttradeprice( ACME ); DII Beispiel javax.xml.rpc.service service = //... get a Service instance javax.xml.rpc.call call = service.createcall( portname, <operationname> ); call.addparameter( param1, <xsd:string>, Call.PARAM_MODE_IN); call.setreturntype(<xsd:int>); Object[] params = new Object[] { <SomeString> }; Integer ret = (Integer) call.invoke(params); 12-42 21

Java Web Services JAXM vs JAX-RPC JAXM Asynchron und synchron JAX-RPC Synchron Routing zu mehr als 1 Empfänger möglich Hohe Komplexität durch explizite Nachrichtenbearbeitung Lose Kopplung möglich Abstraktion der XML Schicht Einfache Benutzung Enge Kopplung Verlässliche Nachrichtenübertragung als geforderte Implementierung durch den JAXM Provider Hohe Flexibilität 12-43 12-44 22