• Nem Talált Eredményt

4. Web Szolgáltatások

N/A
N/A
Protected

Academic year: 2022

Ossza meg "4. Web Szolgáltatások"

Copied!
96
0
0

Teljes szövegt

(1)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

4. Web Szolgáltatások

Dr. Bilicki Vilmos

Szegedi Tudományegyetem Informatikai Tanszékcsoport

Szoftverfejlesztés Tanszék

(2)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

A 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

(3)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Bevezető

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

(4)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Megközelítésmódok

4Web Szolgáltatás 4REST

4RMI, ….

(5)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

4HyperText 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

(6)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

HTTP 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

(7)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Mit jelent a státusz

HTTP válaszok

450x: szerver oldali hiba 440x: kliens oldali hiba 430x: átirányítás

420x: rendben

(8)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Fejlé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

(9)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Ké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

(10)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Paraméterek

4Az URL része

4Minden a kérdőjel után

4http://www.example.com/search_people?t

his=that&foo=bar

(11)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Pé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

(12)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Pé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

(13)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Bináris tartalmak kezelése

4Metadata és bináris együtt

■ Multipart

■ Csak bináris

2018. 03. 06.

Programrendszerek fejlesztése

13

(14)

UNIVERSITY 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

(15)

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

(16)

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

(17)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

REST háromszög

(18)

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

(19)

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

(20)

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

(21)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

REST

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

(22)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Alapelvek

(23)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

REST 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

(24)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Munkamegosztá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

(25)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Konnektorok\Komponensek

Programrendszerek fejlesztése 25

(26)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

REST architektúra

(27)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

JSON

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

(28)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

YAML

4Ember által olvasható, érthető adatreprezentáció

4Komplexebb mint a JSON

(29)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

REST 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

(30)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Pé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

(31)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

REST 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}}}

(32)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Interfész specifikáció

(33)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

2018. 03. 06. 33

Programrendszerek fejlesztése

Interfész specifikáció

(34)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Használati esetek

4Régi API

4Interfész először

4Szolgáltatás orientál

(35)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

OpenAPI

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

35

(36)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

OpenAPI

(37)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Info

4Alapvető információkat tartalmaz az API- ról

■ description: CommonMark Markdown

2018. 03. 06.

Programrendszerek fejlesztése

37

(38)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Servers

4A szerver URL-eket adjuk meg

(39)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Paths

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

(40)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

(41)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Components

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

41

(42)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Security

4Azonosítási protokoll sepcifikálása 4Swaager által támopgatott:

■ API key

■ HTTP

■ Oauth 2.0

■ OpenID Connect

(43)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

API key alapú azonosítás

4HTTP mezőben átvitt érték

4Globális mező, de az átírható

2018. 03. 06.

Programrendszerek fejlesztése

43

(44)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

securitySchemas

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

(45)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Tags

4segítségével csoprtosíthatjuk a végpontokat

2018. 03. 06.

Programrendszerek fejlesztése

45

(46)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

API Menedzsment

(47)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

API verziózás

4URL

4Paraméter

4Fejléc

2018. 03. 06.

Programrendszerek fejlesztése

47

(48)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Skálázás

(49)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

A SOA fő elemei

4XML 4SOAP 4WSDL 4WSIL 4UDDI

Programrendszerek fejlesztése 49

(50)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

A 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

(51)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Tö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

(52)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Web szolgáltatás szabványok

(53)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Alapvető 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

(54)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

SOAP

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ú

(55)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

SOAP 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

(56)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Fejlé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

(57)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

WS-I konformancia fejléc

Programrendszerek fejlesztése 57

(58)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Tö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

(59)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Hibakezelé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

(60)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Adatmodell

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

(61)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Tömbök

Programrendszerek fejlesztése 61

(62)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Kommuniká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

(63)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Kó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

(64)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

SOAP megvalósítások

(65)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

WSDL

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

(66)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

A 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

(67)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

types

Programrendszerek fejlesztése 67

(68)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

message

4Egy vagy több logikai részt tartalmaz

4Egy interakciót ír le

(69)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Port 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

(70)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Bindings

4Protokol specifikus általános csatoló

adatok (pl.: SOAP kommunikációs stílus)

(71)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Service 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

(72)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

WSDL 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

■ …

(73)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Kötés

Programrendszerek fejlesztése 73

(74)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

JAX-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

(75)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

JAX-RPC

Programrendszerek fejlesztése 75

(76)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

WS 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)

(77)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

WS kliensek

4Dinamikus proxy

■ A web szolgáltatás cím változhat

Programrendszerek fejlesztése 77

(78)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

WS 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

(79)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Adat típus csatolás

4Java-XML, XML-Java

4Egyszerű típusok automatikusan 4Egyes adatstruktúrákra is adott

Programrendszerek fejlesztése 79

(80)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

JAX-WS

(81)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Web 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

(82)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

UDDI

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

(83)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Leí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

(84)

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

(85)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Menedzsment

4WSDM: Web Services Distributed Management

4WS-Manageability

4SPML: Service Provisioning Markup Language

4WS-Provisioning

Programrendszerek fejlesztése 85

(86)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Üzleti folyamatok

4BPEL: Business Process Execution Language

4WS-CDL

4WS-CAF

(87)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Tranzakciók

4WS-Coordination (WS-COOR) 4WS-Transaction

4WS-AtomicTransaction (WS-AT) 4WS-BusinessActivity (WS-BA)

Programrendszerek fejlesztése 87

(88)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Biztonság

4XML-Encryption 4XML-Signature 4WS-Security

4WS-SecureConversation 4WS-SecurityPolicy

4WS-Trust

4WS-Federation

4SAML: Security Assertion Markup

Language

(89)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Web 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

(90)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

WS-Security

(91)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Példa

Programrendszerek fejlesztése 91

(92)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

WS-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

(93)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

WS architektúra

Programrendszerek fejlesztése 93

(94)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

MEP

(95)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

SOAP modell

Programrendszerek fejlesztése 95

(96)

UNIVERSITY OF SZEGED

D

epartment of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Összefoglaló

4Bevezető

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

Hivatkozások

KAPCSOLÓDÓ DOKUMENTUMOK

UNIVERSITY OF SZEGED Department of Software Engineering VERSITAS SCIENTIARUM SZEGEDIENSIS..

UNIVERSITY OF SZEGED Department of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS6.

UNIVERSITY OF SZEGED Department of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS.. Mobil alkalmazásfejlesztés - UI alapok

UNIVERSITY OF SZEGED Department of Software Engineering IVERSITAS SCIENTIARUM SZEGEDIENSIS.. Mobil alkalmazásfejlesztés -

UNIVERSITY OF SZEGED Department of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS.. Mobil alkalmazásfejlesztés -

UNIVERSITY OF SZEGED Department of Software Engineering SITAS SCIENTIARUM SZEGEDIENSIS setMinimumLatency(long minLatencyMillis). ● A befejezés előtt megvárt minimális

UNIVERSITY OF SZEGED Department of Software Engineering SITAS SCIENTIARUM SZEGEDIENSIS.. Mobil alkalmazásfejlesztés

UNIVERSITY OF SZEGED Department of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS.. Apple Swift alapú