Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Piotr Czapiewski Wydział Informatyki ZUT. Definicja według W3C: A Web service is a software system designed to support interoperable machine-to- machine.

Podobne prezentacje


Prezentacja na temat: "Piotr Czapiewski Wydział Informatyki ZUT. Definicja według W3C: A Web service is a software system designed to support interoperable machine-to- machine."— Zapis prezentacji:

1 Piotr Czapiewski Wydział Informatyki ZUT

2

3 Definicja według W3C: A Web service is a software system designed to support interoperable machine-to- machine interaction over a network. It has an interface described in a machine-processable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP-messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards.

4 Web Services Big Web Services RESTful Web Services XML, SOAP, WSDL

5 Strony kontraktu Dostawca usług (Service Provider) Klient usługi (Service Requester) Broker, pośrednik (Service Broker) Stosowane protokoły WSDL SOAP UDDI

6 Jeden dostawca, wielu klientów

7 Dawna nazwa: Simple Object Access Protocol Protokół wymiany informacji pomiędzy aplikacjami Oparty na XML Niezależny od platformy i języka programowania Transmisja zwykle za pośrednictwem protokołu HTTP (łatwe przejście przez firewalle i proxy) KlientKlient Web service SOAPSOAP

8 Komunikat SOAP = dokument XML Części składowe komunikatu SOAP Envelope–identyfikacja dokumentu jako komunikatu SOAP Header–informacje nagłówkowe Body–właściwa treść żądania/odpowiedzi Fault–informacje o błędach i statusie SOAP Envelope SOAP Header SOAP Body

9

10 Przykłady komunikatów SOAP – żądanie 37

11 POST /webservices/tempconvert.asmx HTTP/1.1 Host: Content-Type: text/xml; charset=utf-8 Content-Length: 234 SOAPAction: "http://tempuri.org/CelsiusToFahrenheit" 37

12 KlientKlient Web service Biblioteki SOAP SOAP: żądanie SOAP: odpowiedź

13 Web Service Description Language Język oparty na XML Model opisu usług sieciowych Definicja: usług dostępnych pod danym adresem operacji udostępnianych przez usługi parametrów wejściowych i wyjściowych operacji

14 ......

15 Przykłady

16 Przykład wykorzystania usługi sieciowej Usługa TempConvert Adres dokumentu WSDL Udostępniane funkcje CelsiusToFahrenheit (wejście: string; wyjście: string) FahrenheitToCelsius (wejście: string; wyjście: string)

17

18

19 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using WindowsApplication1.com.w3schools.www; namespace WindowsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { string c = celsTB.Text; TempConvert service = new TempConvert(); string f = service.CelsiusToFahrenheit(c); fahrTB.Text = f; }

20

21

22 package tempconvertclient; import org.tempuri.TempConvert; import org.tempuri.TempConvertSoap; public class Main { public static void main(String[] args) { String s = "37.5"; TempConvertSoap tempConv = new TempConvert().getTempConvertSoap(); String f = tempConv.celsiusToFahrenheit(s); System.out.println(f); }

23 CelsiusToFahrenheit(array("Celsius" => "37.5")); print $res->CelsiusToFahrenheitResult; ?>

24 Java, JAX-WS

25 Usługa Zegarynka Zaimplementowana zostanie usługa udostępniająca dwie metody: String ktoraGodzina() String zakukaj(int ileRazy) Uproszczona implementacja z wykorzystaniem JAX-WS Wymagania: Java SE 6 Java SE 5 + Metro Web Services Stack Adnotacje – oznaczenie klasy implementującej web – oznaczenie metody udostępnianej przez web service

26 package pc.dyda.ws; import java.util.Calendar; import javax.jws.WebMethod; import public class Zegarynka public String ktoraGodzina() {... public String zakukaj(int ileRazy) {... }

27 @WebMethod public String ktoraGodzina() { return Calendar.getInstance().getTime().toString(); public String zakukaj(int ileRazy) { StringBuilder sb = new StringBuilder(); for(int i=0; i

28 Uruchomienie usługi Klasa Endpoint, metoda publish() Parametry: adres url, pod którym dostępna ma być usługa obiekt klasy implementującej usługę package pc.dyda; import javax.xml.ws.Endpoint; import pc.dyda.ws.Zegarynka; public class Uslugodawca { public static void main(String[] args) { String url = "http://localhost:9876/zegarynka"; Zegarynka zegar = new Zegarynka(); Endpoint.publish(url, zegar); }

29 Uruchomienie usługi Klasa Endpoint, metoda publish() package pc.dyda; import javax.xml.ws.Endpoint; import pc.dyda.ws.Zegarynka; public class Uslugodawca { public static void main(String[] args) { String url = "http://localhost:9876/zegarynka"; Zegarynka zegar = new Zegarynka(); Endpoint.publish(url, zegar); }

30 Uruchomienie usługi Uruchomienie klasy publikującej usługę (tutaj: pc.dyda.Uslugodawca ) Z poziomu Netbeans: Run, F6 Z linii poleceń: java pc.dyda.Uslugodawca Test usługi Wejście przeglądarką na adres:

31 package pc.ws; public class Student { private int numerAlbumu; private String imie; private String nazwisko; private String kierunek; private int rokStudiow; public Student() { } public Student(int nr, String imie, String nazwisko, String kierunek, int rok) { this.numerAlbumu = nr; this.imie = imie; this.nazwisko = nazwisko; this.kierunek = kierunek; this.rokStudiow = rok; } public String getImie() { return imie; } public void setImie(String imie) { this.imie = imie; }... } JavaBean wymagany konstruktor bezargumentowy oraz gettery i settery JavaBean wymagany konstruktor bezargumentowy oraz gettery i settery

32 package pc.ws; public class Dziekanat { List studenci = new ArrayList (); public Dziekanat() { public List listaStudentow() { return studenci; public Student String String nazwisko) { for (Student student : studenci) { if(student.getImie().equalsIgnoreCase(imie) && student.getNazwisko().equalsIgnoreCase(nazwisko)) return student; } return null; } public class Dziekanat public List listaStudentow() { return studenci; public Student String String nazwisko) { for (Student student : studenci) { if(...) return student; } return null; public Student String String nazwisko) { for (Student student : studenci) { if(...) return student; } return null; }

33 Generowanie klas wrapperów XML Automatyczne, run-time Ręczne, za pomocą narzędzia wsgen: np. w przypadku projektu NetBeans: wsgen -cp build/classes -s src -d build/classes -keep pc.ws.Dziekanat wsgen [opcje] nazwa klasy implementującej usługę

34 DziekanatClient d = new DziekanatClient(); student s = d.znajdzStudenta("Jan", "Kowalski"); label1.Text = s.numerAlbumu.ToString(); DziekanatClient d = new DziekanatClient(); student s = d.znajdzStudenta("Jan", "Kowalski"); label1.Text = s.numerAlbumu.ToString(); DziekanatClient d = new DziekanatClient(); student[] studenci = d.listaStudentow(); label1.Text = studenci.Length.ToString(); DziekanatClient d = new DziekanatClient(); student[] studenci = d.listaStudentow(); label1.Text = studenci.Length.ToString();

35 Jan Kowalski Jan Kowalski Jan zoologia Kowalski Jan zoologia Kowalski 111 3

36 Jan zoologia Kowalski Gal informatyka Anonim Jan zoologia Kowalski Gal informatyka Anonim


Pobierz ppt "Piotr Czapiewski Wydział Informatyki ZUT. Definicja według W3C: A Web service is a software system designed to support interoperable machine-to- machine."

Podobne prezentacje


Reklamy Google