3-ade másolata.ppt [kompatibilitási...

23
Webszolgáltatások (WS)

Upload: others

Post on 16-Jan-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 3-Ade másolata.ppt [Kompatibilitási mód]ade.web.elte.hu/old/ASPNET/WebService.pdfWebszolgáltatások „fogalma” Microsoft (többféleképpen, lényeg) Nem objektummodellekre

Webszolgáltatások (WS)

Page 2: 3-Ade másolata.ppt [Kompatibilitási mód]ade.web.elte.hu/old/ASPNET/WebService.pdfWebszolgáltatások „fogalma” Microsoft (többféleképpen, lényeg) Nem objektummodellekre

Webszolgáltatások „fogalma”

IBM (lényege)IBM (lényege)▪ Egy interface, mely a hálózaton keresztül

szabványos XML üzenetekkel érhető el és hozzá yformálsi XML leírás tartozik. (soap, wsdl)

Sun▪ Szoftverelemek, melyeket az alkalmazások

felkutatnak, egyesíthetnek és átszervezhetnek, , gy ,hogy megoldást találjanak a felhasználó problémájára. Elsősorban a Java nyelvre és az XML tá k d kXML-re támaszkodnak.

2

Page 3: 3-Ade másolata.ppt [Kompatibilitási mód]ade.web.elte.hu/old/ASPNET/WebService.pdfWebszolgáltatások „fogalma” Microsoft (többféleképpen, lényeg) Nem objektummodellekre

Webszolgáltatások „fogalma”

Microsoft (többféleképpen, lényeg)Microsoft (többféleképpen, lényeg)▪ Nem objektummodellekre épít, hanem

mindenhonnan elérhető webprotokollokon és padatformátumokon keresztül használjuk. Nem foglalkozik a megvalósítással, bármilyen

d bá l l l hrendszer, bármilyen programnyelv lehet a kiszolgáló. Nem szorítja meg az XML formátumot.

3

Page 4: 3-Ade másolata.ppt [Kompatibilitási mód]ade.web.elte.hu/old/ASPNET/WebService.pdfWebszolgáltatások „fogalma” Microsoft (többféleképpen, lényeg) Nem objektummodellekre

Webszolgáltatások „fogalma”

Bármilyen rendszerBármilyen programnyelvHTTPMi í kMime típusokWeb itt hálózat, nem feltétlenül Internet (Világháló, World Wide Web)World Wide Web)Egységesítés, modularitás(verziózás)( )Kérés-válasz típusú (Request-Response, Rq/Rs)

4

Page 5: 3-Ade másolata.ppt [Kompatibilitási mód]ade.web.elte.hu/old/ASPNET/WebService.pdfWebszolgáltatások „fogalma” Microsoft (többféleképpen, lényeg) Nem objektummodellekre

Rész(let)ek

HTTP(S)HTTP(S)▪ Hívás 1 – GET

· URL (http://server/service?param1=ertek1&...)( p // / p )· Név-érték párok (nincs struktúra, csak felsorolás)· Urlencoding (értékek)

Karakter ascii kódja hexadecimálisan % jel után („ ”=„+”)

· 2047 byte adat lehet a kérésben

5

Page 6: 3-Ade másolata.ppt [Kompatibilitási mód]ade.web.elte.hu/old/ASPNET/WebService.pdfWebszolgáltatások „fogalma” Microsoft (többféleképpen, lényeg) Nem objektummodellekre

Rész(let)ek

HTTP(S)HTTP(S)▪ Hívás 2 – POST

· URL (http://server/service)( p // / )· Request data: bármi· Request header

Content-Type

» application/x-www-form-urlencoded (Név-érték párok (nincs struktúra, csak felsorolás))p ( , ))

» text/xml (lehet strukturálni)…

6

Page 7: 3-Ade másolata.ppt [Kompatibilitási mód]ade.web.elte.hu/old/ASPNET/WebService.pdfWebszolgáltatások „fogalma” Microsoft (többféleképpen, lényeg) Nem objektummodellekre

Rész(let)ek

HTTP(S)HTTP(S)▪ Eredmény / Válasz

· Bármi lehet· Általában szöveges adatok· Response header

Content-Type

· HTML· TEXTTEXT· XML· JSON (JavaScript Object Notation)

7

Page 8: 3-Ade másolata.ppt [Kompatibilitási mód]ade.web.elte.hu/old/ASPNET/WebService.pdfWebszolgáltatások „fogalma” Microsoft (többféleképpen, lényeg) Nem objektummodellekre

Példa:

XML JSONXML<?xml version="1.0" encoding="UTF-8"?>

JSON

<direct-messages type="array">

[

<direct_message><text>Hello</text>

{"text":"Hello"," d " {<sender>

<name>Teszt Elek</name></sender>

"sender":{"name":"Teszt Elek"

}

</direct-message>

</direct-messages>

}

]

8

/direct messages

Page 9: 3-Ade másolata.ppt [Kompatibilitási mód]ade.web.elte.hu/old/ASPNET/WebService.pdfWebszolgáltatások „fogalma” Microsoft (többféleképpen, lényeg) Nem objektummodellekre

JSON (JavaScript Object Notation)

Nyelvtő független szöveg formátum („C-szerű leírás”)Emberek számára is olvasható–írható, ,Könnyen feldolgozható és előállítható, adatcsere-formátum.

A JSON-nak két típusú felépítése lehetséges: név érték párok halmazanév-érték párok halmazaértékek rendezett halmaza (pl. tömb, vektor)

JSON ELEM LÉTREHOZÁSA PHP-BANh<?php

$array = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);echo json_encode($array); // Eredmény: {" " 1 "b" 2 " " 3 "d" 4 " " 5}{"a":1,"b":2,"c":3,"d":4,"e":5}?>

JSON ELEM OBJEKTUMMÁ ALAKÍTÁSA JAVASCRIPTBENi t t "t t/j i t"<script type="text/javascript">var response = '{"a":1,"b":2,"c":3,"d":4,"e":5}';var result = eval("("+response+")");alert(result a); // Eredmény: 1alert(result.a); // Eredmény: 1alert(result.b); // Eredmény: 2

</script> 9

Page 10: 3-Ade másolata.ppt [Kompatibilitási mód]ade.web.elte.hu/old/ASPNET/WebService.pdfWebszolgáltatások „fogalma” Microsoft (többféleképpen, lényeg) Nem objektummodellekre

Rész(let)ek

Eddigi szoftverarchitektúra – RESTEddigi szoftverarchitektúra REST▪ Representational state transfer▪ Ábrázoló Állapot ÁtvitelÁbrázoló Állapot Átvitel

API vs. Web Service

10

Page 11: 3-Ade másolata.ppt [Kompatibilitási mód]ade.web.elte.hu/old/ASPNET/WebService.pdfWebszolgáltatások „fogalma” Microsoft (többféleképpen, lényeg) Nem objektummodellekre

Rész(let)ek

Kliens▪ Bármilyen rendszer▪ Bármilyen böngésző▪ Bármilyen nyelven írt alkalmazás

· Web application· Desktop applicationDesktop application· HTTP hívás kezdeményezése· szövegfeldolgozása

SzövegműveletekSzövegműveletek

XML programkönyvtárak

JSON programkönyvtárak

11

Page 12: 3-Ade másolata.ppt [Kompatibilitási mód]ade.web.elte.hu/old/ASPNET/WebService.pdfWebszolgáltatások „fogalma” Microsoft (többféleképpen, lényeg) Nem objektummodellekre

Rész(let)ek

SzerverSzerver▪ Bármilyen ▪ Bármilyen nyelven írt web alkalmazásBármilyen nyelven írt web alkalmazás

· HTTP kérés kiszolgálásaSzövegműveletek (mint, ha HTML-t adna vissza)

XML programkönyvtárak

JSON programkönyvtárak

12

Page 13: 3-Ade másolata.ppt [Kompatibilitási mód]ade.web.elte.hu/old/ASPNET/WebService.pdfWebszolgáltatások „fogalma” Microsoft (többféleképpen, lényeg) Nem objektummodellekre

W3C ajánlás (szabványosítás felé)

SOAP – Simple Object Access ProtocolSOAP Simple Object Access ProtocolVerzió: 1.2SOAP kérésSOAP – kérés▪ Request headerben

C t t T t t/ l· Content-Type: text/xml· SOAPAction

▪ Tartalom XML saját névtérben▪ Tartalom XML saját névtérben

13

Page 14: 3-Ade másolata.ppt [Kompatibilitási mód]ade.web.elte.hu/old/ASPNET/WebService.pdfWebszolgáltatások „fogalma” Microsoft (többféleképpen, lényeg) Nem objektummodellekre

W3C ajánlás (szabványosítás felé)

SOAP – válaszSOAP válasz▪ Response headerben

· Content-Type: text/xmlyp /

▪ Válasz ugyanolyan borítékban (Envelope) található, mint a kérés

▪ Tartalom XML saját névtérben

14

Page 15: 3-Ade másolata.ppt [Kompatibilitási mód]ade.web.elte.hu/old/ASPNET/WebService.pdfWebszolgáltatások „fogalma” Microsoft (többféleképpen, lényeg) Nem objektummodellekre

Példa:

Host: server.com HTTP/1 1 200 OKHost: server.comContent-Length: 100SOAPAction: "http://server/service"

HTTP/1.1 200 OKContent-Length: 100Content-Type:

/ l h 8http://server/serviceContent-Type: text/xml;charset=UTF-8

text/xml;charset=UTF-8

<soapenv:Envelope xmlns:soapenv=http://schemas.xmlsoap.org/soap/e

/nvelope/><soapenv:Header>

…</soapenv:Header><soapenv:Body>

15

</soapenv:Body></soapenv:Envelope>

Page 16: 3-Ade másolata.ppt [Kompatibilitási mód]ade.web.elte.hu/old/ASPNET/WebService.pdfWebszolgáltatások „fogalma” Microsoft (többféleképpen, lényeg) Nem objektummodellekre

W3C ajánlás (szabványosítás felé)

WSDL – Web Service Definition LanguageVerzió: 1.1▪ Típus definíció (types)▪ Üzenet definíció (message) (milyen típusúak?)▪ Üzenet definíció (message) (milyen típusúak?)▪ Művelet definíció (portType) (melyik üzenetre milyen a

válaszüzenet?)Végpont és mű eletek öss ekötése (binding) (p otocol ▪ Végpont és műveletek összekötése (binding) (protocol definíció)

· GET,POST,SOAPVannak új irányok: JMS; Fájlírás figyelés· Vannak új irányok: JMS; Fájlírás, -figyelés

▪ Végpont definíció (service)Új irányok/fejlesztésekj y j▪ WADL (Web Application Definition Language)▪ WSEL (Web Service Endpoint Language)▪▪ …

16

Page 17: 3-Ade másolata.ppt [Kompatibilitási mód]ade.web.elte.hu/old/ASPNET/WebService.pdfWebszolgáltatások „fogalma” Microsoft (többféleképpen, lényeg) Nem objektummodellekre

Biztonság

HTTPHTTP▪ HTTP Basic Authentication▪ Alkalmazásba belépésAlkalmazásba belépés▪ Cookie, session▪ Név/jelszó pár olvasható▪ Név/jelszó pár olvasható

HTTPSC to n titko ít▪ Csatorna titkosítva

▪ Kliens ellenőrzi a szervert

17

Page 18: 3-Ade másolata.ppt [Kompatibilitási mód]ade.web.elte.hu/old/ASPNET/WebService.pdfWebszolgáltatások „fogalma” Microsoft (többféleképpen, lényeg) Nem objektummodellekre

Biztonság

HTTPS folytatásy▪ Szerver ellenőrzi a klienst

· Client certificate betöltése szerver oldalon

Mi d l ál ó k já ldá Minden szolgáltatónak saját megoldása lehet!

Alkalmazás bejelentkeztetése (fejlesztő ▪ Alkalmazás bejelentkeztetése (fejlesztő azonosítója)· lehet, hogy csak licence kódot kér egy paraméterként

▪ Felhasználó bejelentkeztetése (használó azonosítója)Web alkalmazások▪ Web alkalmazások· Callback

▪ Desktop alkalmazásokes top a a a áso· token

18

Page 19: 3-Ade másolata.ppt [Kompatibilitási mód]ade.web.elte.hu/old/ASPNET/WebService.pdfWebszolgáltatások „fogalma” Microsoft (többféleképpen, lényeg) Nem objektummodellekre

Biztonság

Bejelentkezés folyamata (Google)Bejelentkezés folyamata (Google)

19

Page 20: 3-Ade másolata.ppt [Kompatibilitási mód]ade.web.elte.hu/old/ASPNET/WebService.pdfWebszolgáltatások „fogalma” Microsoft (többféleképpen, lényeg) Nem objektummodellekre

Tesztelés – SoapUI

FelületFelületWSDL importValidálás (Rq/Rs)Validálás (Rq/Rs)Példa▪ BarCode39 project

20

Page 21: 3-Ade másolata.ppt [Kompatibilitási mód]ade.web.elte.hu/old/ASPNET/WebService.pdfWebszolgáltatások „fogalma” Microsoft (többféleképpen, lényeg) Nem objektummodellekre

WS keresés a neten

http://seekda.com/http://seekda.com/▪ http://seekda.com/most_used_services?p=30▪ http://seekda com/search?q=country%3AHUhttp://seekda.com/search?q=country%3AHU

21

Page 22: 3-Ade másolata.ppt [Kompatibilitási mód]ade.web.elte.hu/old/ASPNET/WebService.pdfWebszolgáltatások „fogalma” Microsoft (többféleképpen, lényeg) Nem objektummodellekre

Példa

BarCode – vonalkód generálásBarCode vonalkód generálás▪ SoapUI-ban már láttuk▪ BöngészőBöngésző

· http://seekda.com/providers/webservicex.com/BarCode· GET, POST, SOAP

22

Page 23: 3-Ade másolata.ppt [Kompatibilitási mód]ade.web.elte.hu/old/ASPNET/WebService.pdfWebszolgáltatások „fogalma” Microsoft (többféleképpen, lényeg) Nem objektummodellekre

Irodalom/Linkek

http://www.w3.org/TR/soap/http://www.w3.org/TR/wsdlhttp://www.json.org/json-hu.htmlh // f /REST W b S i h lhttp://www.xfront.com/REST-Web-Services.htmlhttp://en.wikipedia.org/wiki/SOAP_(protocol)http://en wikipedia org/wiki/Web Application Descrhttp://en.wikipedia.org/wiki/Web_Application_Description_Language

23