ist mein eBusiness skalierbar und verfügbar?

Werbung
Institut für Informatik
Universität Basel
Java Apache XML (JAX)
Lektion 12: Webservices I
www.ifi.unibas.ch/studies
12 - 1
ist mein eBusiness skalierbar und verfügbar?
Datenbank
HTML
client
Web
Application
Server
HTTP
Internet
HTML
client
HTTP
Web
Web
Server
Server
Anforderungen:
- Verfügbarkeit
- Skalierbarkeit
- Performance
- Sicherheit
“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
Institut für Informatik
Universität Basel
Java Apache XML (JAX)
Lektion 12: Webservices I
www.ifi.unibas.ch/studies
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).
Institut für Informatik
Universität Basel
Java Apache XML (JAX)
Lektion 12: Webservices I
Web Service
All the Service describe by UDDI
Service
Registry
Find
www.ifi.unibas.ch/studies
12 - 3
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
WDSL <- UDDI
SOAP on HTTP
Service
Requestor
Service
provider
Bind
Institut für Informatik
Universität Basel
Java Apache XML (JAX)
Lektion 12: Webservices I
www.ifi.unibas.ch/studies
12 - 4
2
SOAP – Simple Object Access
Protocol
SOAP
UDDI
Pu
sh
Fin
d
bli
Service
User
Service
Provider
Bind
SOAP
Institut für Informatik
Universität Basel
• Benutzt XML
• Nutzt HTTP als TransportLayer-Protokoll
• Header Elemente für
Kontextinformationen
• Interaktion zwischen einer
Client- und einer ServerAnwendung
• RPC-Stil (request –
response) Semantik
• Fehler- und
Ausnahmebehandlung
Java Apache XML (JAX)
Lektion 12: Webservices I
www.ifi.unibas.ch/studies
12 - 5
WSDL - Web Services
Definition Language
WSDL
• Definition der Interfaces
- Neben den Operationen
des Web Services wird hier
auch angegeben, auf
welchem Rechner im
Internet der Web Service
verfügbar ist.
UDDI
Pu
Institut für Informatik
Universität Basel
sh
Fin
d
bli
Service
User
Bind
SOAP
Service
Provider
• WDSL bietet XML-Sprachregeln für die Beschreibung
- was ein Webservice leistet
- wo er sich befindet und
- wie er aufzurufen ist
Java Apache XML (JAX)
Lektion 12: Webservices I
www.ifi.unibas.ch/studies
12 - 6
3
UDDI - Universal Description,
Discovery and Integration
•dient zur Registrierung von Web
Services.
– neben dem Interface auch
Beschreibung des Web
Service sowie Daten über
den Anbieter etc.
UDDI
UDDI
Pu
sh
Fin
d
bli
Service
User
Bind
SOAP
Service
Provider
Institut für Informatik
Universität Basel
•folgende Anforderungen müssen
abgedeckt werden:
– Datenstruktur für Web
Services
– Schnittstellenbeschreibung
– Möglichkeit die
Informationen zu finden und
die technischen
Informationen zu nutzen
Java Apache XML (JAX)
Lektion 12: Webservices I
www.ifi.unibas.ch/studies
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:
4 Security
4 Authentifizierung
4 Quality of Service
4 Transaktions Management
Institut für Informatik
Universität Basel
Java Apache XML (JAX)
Lektion 12: Webservices I
www.ifi.unibas.ch/studies
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
Institut für Informatik
Universität Basel
Java Apache XML (JAX)
Lektion 12: Webservices I
www.ifi.unibas.ch/studies
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
Institut für Informatik
Universität Basel
Java Apache XML (JAX)
Lektion 12: Webservices I
www.ifi.unibas.ch/studies
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
Institut für Informatik
Universität Basel
Java Apache XML (JAX)
Lektion 12: Webservices I
www.ifi.unibas.ch/studies
12 - 11
SOAP
Body
Body Enthält Applikationsdaten
4 RPC 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>
Institut für Informatik
Universität Basel
Java Apache XML (JAX)
Lektion 12: Webservices I
www.ifi.unibas.ch/studies
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
Institut für Informatik
Universität Basel
Java Apache XML (JAX)
Lektion 12: Webservices I
www.ifi.unibas.ch/studies
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>
Institut für Informatik
Universität Basel
Java Apache XML (JAX)
Lektion 12: Webservices I
www.ifi.unibas.ch/studies
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>
Institut für Informatik
Universität Basel
Java Apache XML (JAX)
Lektion 12: Webservices I
www.ifi.unibas.ch/studies
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>
Institut für Informatik
Universität Basel
Java Apache XML (JAX)
Lektion 12: Webservices I
www.ifi.unibas.ch/studies
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>
Institut für Informatik
Universität Basel
Java Apache XML (JAX)
Lektion 12: Webservices I
www.ifi.unibas.ch/studies
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 mit
<enumeration value="Blue"/>
Simple Types
</simpleType>
(außer Boolean)
</element>
Beispiele für Daten:
<age>45</age>
<height>5.9</height>
<displacement>-450</displacement>
<color>Blue</color>
Institut für Informatik
Universität Basel
Java Apache XML (JAX)
Lektion 12: Webservices I
www.ifi.unibas.ch/studies
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>
Institut für Informatik
Universität Basel
Java Apache XML (JAX)
Lektion 12: Webservices I
www.ifi.unibas.ch/studies
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 ?
Institut für Informatik
Universität Basel
Java Apache XML (JAX)
Lektion 12: Webservices I
www.ifi.unibas.ch/studies
12 - 20
10
WSDL
allgemeines
WSDL-Dokumente sind ein Vertrag; der Inhalt bildet die
Grundlage für eine Kommunikation zwischen WebService und einem Client
Im WSDL-Dokument sind unter anderem die MethodenSchnittstellen definiert; weiters kann man mittels einer
angegebenen Adresse ein Service lokalisieren
Institut für Informatik
Universität Basel
Java Apache XML (JAX)
Lektion 12: Webservices I
www.ifi.unibas.ch/studies
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.
Institut für Informatik
Universität Basel
Java Apache XML (JAX)
Lektion 12: Webservices I
www.ifi.unibas.ch/studies
12 - 22
11
WSDL
Dokumentaufbau
<definition>
Logisches Wurzelelement, in welchem die verschiedenen
Namespaces als Attribute definiert werden
<types>
Datentypdefinitionen
<message>
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.
<portType>
Fasst eine Menge von Operationen zusammen
<binding>
Erst hier werden konkrete Protokolle (SOAP, http-GET, etc.)
und Datenformate für Operationen und Nachrichten definiert.
<port>
Spezifikation einer Adresse für eine Bindung
<service>
Aggregation von zusammengehörigen Ports
Institut für Informatik
Universität Basel
Java Apache XML (JAX)
Lektion 12: Webservices I
www.ifi.unibas.ch/studies
12 - 23
WSDL
Zusammenspiel der Typen
Typen
abstrakt
Nachrichten
Porttypen
Operationen
Bindungen
Operationen
Services
Ports
konkre t
Institut für Informatik
Universität Basel
Java Apache XML (JAX)
Lektion 12: Webservices I
www.ifi.unibas.ch/studies
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
Institut für Informatik
Universität Basel
Java Apache XML (JAX)
Lektion 12: Webservices I
www.ifi.unibas.ch/studies
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>
Institut für Informatik
Universität Basel
Java Apache XML (JAX)
Lektion 12: Webservices I
www.ifi.unibas.ch/studies
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
Institut für Informatik
Universität Basel
Java Apache XML (JAX)
Lektion 12: Webservices I
www.ifi.unibas.ch/studies
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
Institut für Informatik
Universität Basel
Java Apache XML (JAX)
Lektion 12: Webservices I
www.ifi.unibas.ch/studies
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
Institut für Informatik
Universität Basel
Java Apache XML (JAX)
Lektion 12: Webservices I
www.ifi.unibas.ch/studies
12 - 29
UDDI
Business Registration
White
Pages
Registry Data
Firmen registrieren
öffentliche Infos über
sich selbst
Servicetyp-Infos werden
hier abgelegt;
Programmierer,
Stand.gesellschaften,
Firmen
Institut für Informatik
Universität Basel
Java Apache XML (JAX)
Lektion 12: Webservices I
Yellow
Pages
Green
Pages
Service Type
Registrations
www.ifi.unibas.ch/studies
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>
Institut für Informatik
Universität Basel
Java Apache XML (JAX)
Lektion 12: Webservices I
www.ifi.unibas.ch/studies
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
Institut für Informatik
Universität Basel
Java Apache XML (JAX)
Lektion 12: Webservices I
www.ifi.unibas.ch/studies
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
Institut für Informatik
Universität Basel
Java Apache XML (JAX)
Lektion 12: Webservices I
www.ifi.unibas.ch/studies
12 - 33
Java Web Services
JAX Übersicht 3/3
Institut für Informatik
Universität Basel
Java Apache XML (JAX)
Lektion 12: Webservices I
www.ifi.unibas.ch/studies
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)
Institut für Informatik
Universität Basel
Java Apache XML (JAX)
Lektion 12: Webservices I
www.ifi.unibas.ch/studies
12 - 35
Java Web Services
JAXR 2/5
Architektur
Institut für Informatik
Universität Basel
Java Apache XML (JAX)
Lektion 12: Webservices I
www.ifi.unibas.ch/studies
12 - 36
18
Java Web Services
JAXM 1/3
Java API for XML Messaging
Nachrichtenübertragung übers Internet
Übertragungsprotokoll
4 SOAP 1.1
4 SOAP with Attachments
4 Erweiterbar durch Profile wie ebXML, BizTalk, …
JAXM Provider nötig für
4 Übertragung
4 Routing
Institut für Informatik
Universität Basel
Java Apache XML (JAX)
Lektion 12: Webservices I
www.ifi.unibas.ch/studies
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
Institut für Informatik
Universität Basel
Java Apache XML (JAX)
Lektion 12: Webservices I
www.ifi.unibas.ch/studies
12 - 38
19
Java Web Services
JAXM 3/3
Institut für Informatik
Universität Basel
Java Apache XML (JAX)
Lektion 12: Webservices I
www.ifi.unibas.ch/studies
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
Institut für Informatik
Universität Basel
Java Apache XML (JAX)
Lektion 12: Webservices I
www.ifi.unibas.ch/studies
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
Institut für Informatik
Universität Basel
Java Apache XML (JAX)
Lektion 12: Webservices I
www.ifi.unibas.ch/studies
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);
Institut für Informatik
Universität Basel
Java Apache XML (JAX)
Lektion 12: Webservices I
www.ifi.unibas.ch/studies
12 - 42
21
Java Web Services
JAXM vs JAX-RPC
JAXM
JAX-RPC
Asynchron und synchron
Synchron
Routing zu mehr als 1 Empfänger
möglich
Abstraktion der XML Schicht
Hohe Komplexität durch explizite
Nachrichtenbearbeitung
Einfache Benutzung
Lose Kopplung möglich
Enge Kopplung
Verlässliche
Nachrichtenübertragung als
geforderte Implementierung durch
den JAXM Provider
Hohe Flexibilität
Institut für Informatik
Universität Basel
Java Apache XML (JAX)
Lektion 12: Webservices I
www.ifi.unibas.ch/studies
Institut für Informatik
Universität Basel
Java Apache XML (JAX)
Lektion 12: Webservices I
www.ifi.unibas.ch/studies
12 - 43
12 - 44
22
Herunterladen