3-ade másolata.ppt [kompatibilitási...
TRANSCRIPT
Webszolgáltatások (WS)
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
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
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
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
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
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
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
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
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
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
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
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
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
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>
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
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
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
Biztonság
Bejelentkezés folyamata (Google)Bejelentkezés folyamata (Google)
19
Tesztelés – SoapUI
FelületFelületWSDL importValidálás (Rq/Rs)Validálás (Rq/Rs)Példa▪ BarCode39 project
20
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
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
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