UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS4. Web Szolgáltatások
Dr. Bilicki Vilmos
Szegedi Tudományegyetem Informatikai Tanszékcsoport
Szoftverfejlesztés Tanszék
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISA mai előadás tartalma
4Bevezető 4REST
4JSON 4YAML
4Web Szolgáltatás szabványok 4SOAP
4WSDL
4JAX-RPC 4JEE – WS 4UDDI
4WS profilok
■ WS-Security
■ WS-Interoperability
4Web Szolgáltatás architektúrák
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISBevezető
4 Trendek
■ Integráció
■ Üzleti folyamatok teljes automatizálása (EDI)
4 Szolgáltatás Orientált Architektúra
■ Szolgáltatás gyártó
■ Szolgáltatás közvetítő
■ Szolgáltatás fogyasztó
4 Jellemzői
■ A kliens nem a szerverhez, hanem a szolgáltatáshoz kötődik
■ Az új és a régi komponensek blokkokba vannak csomagolva ezek web szolgáltatáson csatlakoznak
■ A komplex alkalmazásokon belül az üzleti logika el van különítve
■ Szolgáltatásokat futásidőben lehet cserélgetni
■ A csatolások konfigurációs fájlokban vannak definiálva
Programrendszerek fejlesztése 3
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISMegközelítésmódok
4Web Szolgáltatás 4REST
4RMI, ….
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS4HyperText Transfer Protocol
4Web kliensek és szerverek közötti kommunikáció
4A leggyakrabban használt protokoll
4Utasításai: GET, PUT, POST, DELETE 4Lekérdezés paraméter kerterendszer
HTTP
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISHTTP működése
4 A kliens egy kérést küld
■ Metódus
■ URL
■ Fejléc
■ (esetenként) paraméterek
■ (esetenként) tartalom
4A szerver választ küld
■ Tartalom
■ Státusz
■ Fejlécek
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISMit jelent a státusz
HTTP válaszok
450x: szerver oldali hiba 440x: kliens oldali hiba 430x: átirányítás
420x: rendben
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISFejlécek, paraméterek
4Fejlécek
■ Metainformációk a kérésről
■ Pl.: adott formátumban kérjük a képet
4Paraméterek
■ Szűri vagy leírja az erőforrást
■ Megcímzi az erőforrást
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISKérés/Válasz fejlécek
4Kérés(kliens)
■ Accept: Kérem az adott típusú választ Itt van az amit elfogadok.
Accept:
text/html,application/xhtml+xml,application/xml
4Válasz(szerver)
■ Content-Type: Ezt küldöm
Content-Type: text/html; charset=UTF-8
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISParaméterek
4Az URL része
4Minden a kérdőjel után
4http://www.example.com/search_people?t
his=that&foo=bar
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISPélda kérés
4 Chrome böngésző kérése a Google-hoz
■ Method: GET
■ URL: http://www.google.com
■ Headers:
– Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 – Accept-Language: en-US,en;q=0.8
– Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3 – Connection: keep-alive
– User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3)
AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.168 Safari/535.19
– Accept-Encoding: gzip,deflate,sdch – Cookie:
NID=59=EudJ2a15ql8832PCysQA0qchtuvGWMoA7rkp79VpIYAQ8- j42IO17LFudCYNMXm9l6SHcu3YgrGRCdrRCyM468xPZaOek4Pi- AXQ8eARqU1SGYx6y7_9LW-c3HHb-vs2;
PREF=ID=994f8de0e8b39a5b:U=237805f1f710dc73:FF=0:TM=13367 52507:LM=1336752509:S=W0Hha7x4czdXp51U
– Host: www.google.com
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISPélda válasz
4Google válasza
■ Headers:
– Content-Length: 24716 – Content-Encoding: gzip
– Set-Cookie: NID=59=F48kbwfwOi-qCHJyrnMSUlDBVxK- ZVKZpq5B5jttt_25IRN4lS-0rQcVttq-
dnOIlQzafw1i4HPQAO0RpZ7NuC0WCKWta7SYoekx0-- YGf2zIFZ9VXIKS-_UEaOH9iBe; expires=Sat, 10-Nov-2012 21:26:46 GMT; path=/; domain=.google.com; HttpOnly
– Expires: -1 – Server: gws
– X-XSS-Protection: 1; mode=block – Cache-Control: private, max-age=0 – X-Frame-Options: SAMEORIGIN
– Content-Type: text/html; charset=UTF-8 – Date: Fri, 11 May 2012 21:26:46 GMT
■ Content: A bunch of HTML
■ Status: 200
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISBináris tartalmak kezelése
4Metadata és bináris együtt
■ Multipart
■ Csak bináris
2018. 03. 06.
Programrendszerek fejlesztése
13UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS•Az erőforrások URI-val vannak azonosítva
• Az erőforrásokat a reprezentációjuk segítségével manipuláljuk
• Az üzenetek állapotmenetsek és önleíróak
•Egy erőforrásnak több reprezentációja is lehet
•Az alkalmazás állapota az erőforrások manipulációjval változik
REST alapok
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS• URI-val vannak azonosítva
• Sohasem érhetőek el közvetlenül
• A REST az erőforrás reprezentációkkal érintkezik
•Az erőforrás minden lehet
• Ha valamit nem tudunk megnevezni akkor azzal foglalkozni sem tudunk
• Erőforrás lehet pl.: a web dokumentum
• A dokumentumok általában struktúrált információk
Erőforrások
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS• Az átviendő információ része
• A szerver leállások nem okoznak problémát
• Válthatunk szerverek között
• A kliens tárolhatja a reprezentációt
• Az állapot átvitellel a rendszer skálázható lesz
• Nem állapot függő
• A meg van osztva a kliens és a szever között
• Laza csatolás (nem csak API vs dokumentum)
• A kliens és a szerver elkülönül
Állapot
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISREST háromszög
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS•Az erőforrások nevei
• A legtöbb esetben URI-k
• Az URI tervezés a REST rendszerek fontos aspektusa
• Az igék és a főnevek szeparációja:
• az alkalmazások olyan erőforrásokkal is dolgozhatnak amiket nem ismernek
• Új műveletek bevezeteése nem rombolj le a webet
• Új tartalom típusok bevezetése nem rombolja le a webet
Főnevek
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS• Az erőforráson értelmezett műveletek
• A REST alap ötlete néhny unverzális ige használata - ezek minden főnévhez alklamazhatőak
• A legtöbb esteben a HTTP alap metódusok elegendőek - GET: Erőforrás lekérése
- PUT: Erőforrás feltöltése
- POST: Új erőforrás hozzáadása - DELETE: Erőforrás törlése
CRUD: Create, Read, Update, Delete
Igék
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS•A reprezentációnak géppel is értelmezhetőnek kell lennie
• Az erőfforrás egy absztrakicója
• több reprezentáció is lehet
• a kliens választhat
• Tartalomtípusok hozzáadása, elvétele nem változtat a rendszer architektúrán
•Különböző klienseknek különböző tartalomtípus
•Content Negotiation lehetővé teszi ezt
Tartalom típusok
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISREST
4 Representative State Transfer – Reprezentatív Állapot Átvitel (HTTP Object Model) 4 Célok:
■ Anarchikus skálálzhatóság
■ Biztonság
■ Hipermédia alapú
■ Független telepítés
4 Egy szoftver architektúra stílus
■ Késleltetés minimalizálása
■ Függetlenség és skálázhatóság maximalizálása
4 Szereplők:
■ Szolgáltató szerverek
■ Átjárók
■ Proxik
■ Kliensek
4 Erőforrásokat visznek át (annak a reprezentációját), a felhasználó ténykedése volt a tervezés fókuszában
4 Egy kliens vagy alkalmazás álapotok közötti átmenetben van vagy pihen (rest) 4 RESTful
Programrendszerek fejlesztése 21
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISAlapelvek
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISREST interfész célok / Adat elemek
4 Elemek:
■ Adat
■ Konnektor
■ Feldolgozó
4 Interfész célok:
■ Erőforrás azonosítás
■ Erőforrás manipulálás
■ Önleíró üzenetek
■ Hipermédia mint reprezentáció
4 Adat elemek
Programrendszerek fejlesztése 23
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISMunkamegosztás stílusok/ Erőforrások 4Munkamegosztás stílus
■ Szerver oldal (Csak az eredmény)
■ Kliens oldal + algoritmus (Mobil objektum)
■ Kliens oldal (Nyers adat)
4Erőforrás azonosítás:
■ Egy R függvény mely az időben változó
módon rendeli az adott erőforrásokat az adott azonosítókhoz
4Erőforrás reprezentáció:
■ Adat + Metaadat
■ Vezérlő adat
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISKonnektorok\Komponensek
Programrendszerek fejlesztése 25
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISREST architektúra
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISJSON
4Egyszerű adatcsere formátum, RFC 4627 4Emberi szem számára
27 [
{
"precision": "zip",
"Latitude": 37.7668,
"Longitude": -122.3959,
"Address": "",
"City": "SAN FRANCISCO",
"State": "CA",
"Zip": "94107",
"Country": "US"
}, {
"precision": "zip",
"Latitude": 37.371991,
"Longitude": -122.026020,
"Address": "",
"City": "SUNNYVALE",
"State": "CA",
"Zip": "94085",
"Country": "US"
} ]
Programrendszerek fejlesztése
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISYAML
4Ember által olvasható, érthető adatreprezentáció
4Komplexebb mint a JSON
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISREST HTTP alapon
4Az erőforrásokat URL-lel azonosítja 4Create, Read, Update, Delete
■ POST, GET, PUT, DELETE
4Hibak kódok
■ HTTP státusz kódok
4Kérés paraméterek
■ Kérés paraméterek
4Válasz és konfiguráció
■ Fejlécek
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISPélda REST kérés
4Blog Info from Tumblr 4GET (olvas)
http://api.tumblr.com/v2/blog/synedra.tum bler.com/info
4api_key kulcs
4http://api.tumblr.com/v2/blog/synedra.tum
blr.com/info?api_key=my_api_key
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISREST válasz
Status: 200 Content:
{"meta":
{"status":200, "msg":"OK” },
"response":{
"blog":{"title":"Untitled","posts":0,
"name":"synedra",
"url":"http:\/\/synedra.tumblr.com\/",
"updated":0,
"description":"","ask":false,"likes":0}}}
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISInterfész specifikáció
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS2018. 03. 06. 33
Programrendszerek fejlesztése
Interfész specifikáció
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISHasználati esetek
4Régi API
4Interfész először
4Szolgáltatás orientál
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISOpenAPI
4Szerkesztő 4API Felderítő 4Validáló
4Nyílt forrású generátorok
■ proxik (front-end)
■ vázak (back-end)
2018. 03. 06.
Programrendszerek fejlesztése
35UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISOpenAPI
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISInfo
4Alapvető információkat tartalmaz az API- ról
■ description: CommonMark Markdown
2018. 03. 06.
Programrendszerek fejlesztése
37UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISServers
4A szerver URL-eket adjuk meg
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISPaths
4 A kezelt objektumok és azok hozzáférése
■ Művelet objektum: GET, POST, ...
■ tags: a swagger UI e szerint csoportosítja
■ summary: összefoglaló 5-10 szóban (CommonMark
Markdown)
■ description: teljes leírás (CommonMark Markdown)
■ externalDocs: az útvonalra vonatkozó további
dokumentumok
■ operationID: egyedi azonosító az útvonalhoz
2018. 03. 06.
Programrendszerek fejlesztése
39■ paremeters: nem tartalmazza a body paramétereket
■ requestBody: hivatkozhat
referenceObject-re amely hivatkozást tartalmazhat component-re
■ responses: hivatkozhat
referenceObject-re amely hivatkozást tartalmazhat component-re
■ callbacks: hivatkozhat
referenceObject-re amely hivatkozást tartalmazhat component-re
■ security: azonosítási módszer, component objektum
secruitySchemes adata
■ server: más lehet mint a globális
szerver objetum
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISUNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISComponents
4 Adott elemeket szeretnénk újrahasznosítani 4 &ref segítségével hivatkozhatunk rá
4 megengedett elemek
■ schemas
■ responses
■ parameters
■ examples
■ requestBody
■ headers
■ securitySchemas
■ links
■ callbacks
2018. 03. 06.
Programrendszerek fejlesztése
41UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISSecurity
4Azonosítási protokoll sepcifikálása 4Swaager által támopgatott:
■ API key
■ HTTP
■ Oauth 2.0
■ OpenID Connect
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISAPI key alapú azonosítás
4HTTP mezőben átvitt érték
4Globális mező, de az átírható
2018. 03. 06.
Programrendszerek fejlesztése
43UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISsecuritySchemas
4securitySchemasObject
■ type: apiKey, http, oauth2, openIdConnect
■ description
■ name: (csak apiKey-re)
■ in: query, header, cookie (csak apiKey-re)
■ scheme: http -hez
■ bearerFormat: http -hez
■ flows: oauth2-hez
■ openIdConnectionUrl: openIdConnect-hez
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISTags
4segítségével csoprtosíthatjuk a végpontokat
2018. 03. 06.
Programrendszerek fejlesztése
45UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISAPI Menedzsment
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISAPI verziózás
4URL
4Paraméter
4Fejléc
2018. 03. 06.
Programrendszerek fejlesztése
47UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISSkálázás
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISA SOA fő elemei
4XML 4SOAP 4WSDL 4WSIL 4UDDI
Programrendszerek fejlesztése 49
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISA web szolgáltatások jellemzői
4Önhordó 4Önleíró
4A weben keresztül van publikálva, fellelve és használva
4Moduláris
4Nyelv független 4Nyílt szabvány 4Lazán csatoltak 4Dinamikusak
4Programozható hozzáférést biztosítanak
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISTörténete
4Web sikersztori 4H2A működik
4A2A nem igazán
41999: Microsoft XML alapú protokol:
SOAP
4IBM, Microsoft, Ariba: WSDL
4Ma több mint 40 ajánlás/specifikáció
Programrendszerek fejlesztése 51
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISWeb szolgáltatás szabványok
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISAlapvető szabványok
4 SOAP: Simpe Object Access Protocol
■ Struktúrált és típusos XML dokumentumok cseréjét írja le elosztott környezetben
■ Önhordó, önleíró
■ Alapesetben állapotmentes, egyirányú kommunikáció
4 WSDL: Web Service Description Language
■ A web szolgáltatást mind absztrakt végpontot definiálja
■ A műveletek és az üzenetek is megfelelő absztrakcióval vannak leírva
■ Az aktuális üzentekre építő protokoll pedig konkrét szolgáltatásokat specifikál
4 UDDI: Universal Description, Discovery, and Integration
■ Web szolgáltatások felderítése és publikálása
Programrendszerek fejlesztése 53
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISSOAP
4XML alapú protokol
■ Envelope
■ Header
■ Body
4Független az átviteli protokolltól (HTTP, JMS, FTP, …)
4Jelenleg HTTP (WS-I Basic Profile 1.0) 4Üzenetváltás minta (Message Exchange
Pattern - MEP)
■ Egyirányú/Kétirányú
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISSOAP elemei
4 Boríték (Envelope)
■ Ez tárolja a többit
■ Vezérlő információk
■ Cím, …
4 Egy vagy több fejléc (Header)
■ Vezérlő információk (QoS)
■ Ki és hogyan kezelje az üzenetet?
4 Egy törzs (Body)
■ Üzenet azonosítás
■ Paraméterek
■ Mit csináljunk?
4 Kódolási szabályok
■ Megadja, hogy az adatot hogyan sorosítsuk
■ Programozási nyelv független adat séma (XSD)
Programrendszerek fejlesztése 55
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISFejlécek
4 Általános és flexibilis mechanizmus a SOAP üzenetek kiterjesztésére
4 Nem szükséges a felek között előzetes egyeztetés 4 Előre definiált fejléc attribútum:
4 SOAP köztes entitás
■ A fejlécek egy része ezekhez az entitásokhoz szól
–SOAP-ENV:actor
4 A hibák kezelése a MEP-től függ (mustUnderstand fault WS-I BP 1.0)
4 A fejlécek viszik át a biztonság, tranzakció, titkosítás, .. infókat is
4 Hordozhatnak kliens vagy projekt specifikus információkat is
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISWS-I konformancia fejléc
Programrendszerek fejlesztése 57
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISTörzs (Body)
4A végső címzettnek szóló információcserére szolgáll
4A Body elemen belül található XML
elemek a test bejegyzések (body entries) 4A bejegyzések egymástól függetlenül
vannak kódolva
4A legtöbb esetben a body tartalma:
■ Üzenet neve
■ Egy referencia a szolgáltatás példányra
■ Egy vagy több paraméter
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISHibakezelés
4A SOAP definiál egy body elemet erre a célra
■ Fault element (nulla vagy egy lehet belőle)
–faultcode
»soapenv:Client
»soapenv:Server
»sopaenv:VersionMismatch
»soapenv:MustUnderstand
–faultstring
»Ember által értelmezhető szöveges leíárs
–faultactor
»Opcionális, a hiba forrását adja meg (URI)
»A köztes elemeknek ezt kötelező kitöltenie
–detail
»Alkalmazás specifikus mező, opcionális
Programrendszerek fejlesztése 59
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISAdatmodell
4Nyelvfüggetlen absztrakció 4Egyszerű XSD típusok
4Összetett típusok
■ Struktúrák
■ Tömbök (benne lehet struktúra vagy tömb, …)
4A SOAP-ENC névtérben specifikálják az elemeket
4A SOAP csak azt mondja meg, hogy hogyan
lehet az adattípusokat megadni, azt nem hogy
ezek milyenek
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISTömbök
Programrendszerek fejlesztése 61
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISKommunikációs stílusok
4Dokumentum
■ Üzenet orientált stílus
■ Alacsonyabb absztrakciós megoldás
■ Az in paraméter egy XML dokumentum
■ A válasz bármi (vagy semmi)
4RPC
■ Szinkron kommunikáció
■ Részei
–A távoli objektum címe (URI) –A metódus neve
–Paraméterek
–Opcionális fejléc adatok
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISKódolás/Üzenetváltás módok
4 A sorosítás, visszaállítás módját adja meg
4 Programozás nyelv független!
4 Típusai:
■ SOAP encoding (SOAP adat modell elemek)
■ Literal (XSD) – ezt támogatja a WS- I basic profile
■ Literal XML (nem használják)
4 Üzenetváltás módok
■ Document/Literal – a legjobb megoldás Java és nem Java alkalmazások együttműködésére
■ RPC/Literal – Java – Java
■ RPC/Encoded – régi java implementációk
■ Document/Encoded – Nem használt
Programrendszerek fejlesztése 63
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISSOAP megvalósítások
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISWSDL
4XML alapú
4Megadja, hogy
■ Mit csinál a web szolgáltatás
■ Hol tudjuk elérni
■ Hogyan lehet meghívni
4A web szolgáltatás biztosítója megadhatja:
■ A nevét
■ A protokollt és a kódolást
■ Tipus információkat (műveletek, paraméterek, adattípusok)
Programrendszerek fejlesztése 65
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISA WSDL szerkezete
4 Types – adattípus definiciók tárolója. Pl.: XSD
4 Message – Az átküldött adat absztrakt típusos megadása 4 Port type – egy vagy több prot
által támogatott absztrakt műveletek megadása
■ Operation – a szolgáltatás által támogatott akció
leírása (kimenő/bejövő üzenet esetleg hiba)
4 Binding – Konkrét protokol és adatformátum egy adott prot típushoz. (protokol név,
meghívási mód, szolgáltatás id, kódolás)
4 Service – összetratozó portok listája
■ Port – egy végpont kötés – hálózati cím
összekapcsolása
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIStypes
Programrendszerek fejlesztése 67
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISmessage
4Egy vagy több logikai részt tartalmaz
4Egy interakciót ír le
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISPort type
4Absztrakt műveletek és a felhasznált absztrakt üzenetek halmaza
4Műveletek
■ Egyirányú
■ Kérés-Válasz
■ Megszólítás-Válasz
■ Értesítés
Programrendszerek fejlesztése 69
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISBindings
4Protokol specifikus általános csatoló
adatok (pl.: SOAP kommunikációs stílus)
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISService definition/port definition
4Szolgáltatás
■ Összefog több portot egy név alatt
4Port
■ Egy konkrét végpont egy konkrét címmel
Programrendszerek fejlesztése 71
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISWSDL csatolás típusok
4Kiegészítő fejlécek
■ SOAP – binding, operation, body, fault, address, header, headerfault
■ HTTP – get/post (address, binding)
■ MIME – több részből állhat, … (content, multipartRelated, body, mimeXml)
■ EJB
■ JMS
■ …
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISKötés
Programrendszerek fejlesztése 73
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISJAX-RPC
4Java API for XML based RPC
4Programozás model a SOAP alapú alkalmazásokhoz
4Leképezést biztosít a Java és a WSDL között
4Java alkalmazás könnyedén
kommunikálhat nem Java alkalmazással
RPC alapon
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISJAX-RPC
Programrendszerek fejlesztése 75
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISWS kliensek
4Statikus csonk
■ WSDL-ből generált csonkokat használ
–Szolgáltatás végpont interfész (SEI)
–Szolgáltatás interfész (hogyan kapjuk meg a SEI-t)
–Szolgáltatás kereső osztály (hozzáférés a SEI-hez)
–Kapcsolódó csonk (az aktuális hívásokat kezeli)
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISWS kliensek
4Dinamikus proxy
■ A web szolgáltatás cím változhat
Programrendszerek fejlesztése 77
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISWS kliensek
4Dinamikus hívó interfész
■ A WSDL változhat
■ Nem használ proxy fájlokat hanem a WSDL-t
használja futás időben
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISAdat típus csatolás
4Java-XML, XML-Java
4Egyszerű típusok automatikusan 4Egyes adatstruktúrákra is adott
Programrendszerek fejlesztése 79
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISJAX-WS
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISWeb Szolgáltatások JEE környezetben
4 WSEE
4 Hogyan valósítsuk meg a web szolgáltatásokat J2EE környezetben?
4 Kliens 4 Szerver
■ Web konténer
■ EJB konténer
4 Kezelők
■ Egy feldolgozási láncban kezelhetik a SOAP fejléceket
4 Tranzakció (a helyi tranzakciókat
felfüggesztik)/Biztonság nincs (HTTPS, …) (?)
Programrendszerek fejlesztése 81
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISUDDI
4Univerzális Leírás, Felderítés és Integráció 4Segítségével egyszerűbbek a B2B
tranzakciók
4UDDI felépítés
■ Üzleti entitás
■ Üzleti szolgáltatás
■ Kötő minta
■ tModel
■ Takszonómia
■ Publákációs megjegyzések
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISLeírás és felderítés
4 WS-Inspection: Web Services Inspection Language (WSIL)
■ UDDI nélküli felderítés
4 WS-Discovery
■ Többesküldés alapú web szolgáltatás felderítés
4 WS-MetadataExchange
■ Üzenetváltás a kezdeti infócseréhez (XSD,WSDL, WS-Policy)
4 WS-Policy
■ Szabályok leírása (azonosítás, QoS, …)
4 WS-PolicyAssertions
■ Általános követelmény gyűjtemény (szöveg kódolás, …)
4 WS-PolicyAttachment
■ Kapcsolatok leírása
4 DNS Endpoint Discovery (DNS-EPD)
■ DNS alapú felderítés
Programrendszerek fejlesztése 83
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISÜzenetküldés
4 ASAP: Asynchronous Services Access Protocol
■ Vezérlés, Monitorozés
4 SOAP Messages with Attachments (SwA)
■ MIME kezelés
4 SOAP Message Transmission Optimization Mechanism
■ Szelektív kódolás
4 WS-Addressing 4 WS-Notification
■ Publish/Subscirbe
4 WS-Eventing
4 WS-Enumeration
4 WS-MessageDelivery 4 WS-ReliableMessaging 4 WS-Resources
4 WS-Transfer
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISMenedzsment
4WSDM: Web Services Distributed Management
4WS-Manageability
4SPML: Service Provisioning Markup Language
4WS-Provisioning
Programrendszerek fejlesztése 85
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISÜzleti folyamatok
4BPEL: Business Process Execution Language
4WS-CDL
4WS-CAF
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISTranzakciók
4WS-Coordination (WS-COOR) 4WS-Transaction
4WS-AtomicTransaction (WS-AT) 4WS-BusinessActivity (WS-BA)
Programrendszerek fejlesztése 87
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISBiztonság
4XML-Encryption 4XML-Signature 4WS-Security
4WS-SecureConversation 4WS-SecurityPolicy
4WS-Trust
4WS-Federation
4SAML: Security Assertion Markup
Language
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISWeb Szolgáltatás biztonság
4Tipikus problémák 4Megoldások
■ TLS-SSL
■ WS-Security
–Üzenet szintű biztonsági beállítások
–Vég-Vég megoldás
Programrendszerek fejlesztése 89
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISWS-Security
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISPélda
Programrendszerek fejlesztése 91
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISWS-I Web Szolgáltatások együttműködése
4A web szolgáltatás elvileg azért jó mert platform független , …
4Sok SOAP megvalósítása
4Sok szabványosítási testület (OASIS, IETF, W3C,
…)
4WS-I együttműködési minimum specifikálása 4WS-I profilok
■ Implementációs javaslatok
■ Basic Profile v1.1 (pl.: document/literal vagy RPC/literal kötelező, SOAP/HTTP kötés, HTTP POST metódus, …)
■ Attachements Profile v1.0
■ Simple SOAP binding Profile v1.0
■ Basic Security Profile
4Minta alkalmazások
4Teszt eszközök
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISWS architektúra
Programrendszerek fejlesztése 93
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISMEP
UNIVERSITY OF SZEGED
D
epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSISSOAP modell
Programrendszerek fejlesztése 95
UNIVERSITY OF SZEGED