Szolgáltatás technológiák (WS, WS-*, REST) Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Hasonló dokumentumok
Szolgáltatás technológiák (WS, WS-*) Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

(Web)Szolgáltatások (WS, WS-*)

Webszolgáltatások (WS)

Simon Balázs Dr. Goldschmidt Balázs Dr. Kondorosi Károly. BME, Irányítástechnika és Informatika Tanszék

Folyamatmodellezés és eszközei. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

SOA modell: Ez az interfész definiálja az elérhető adatokat, és megadja, hogy hogyan lehet azokhoz hozzáférni.

Osztott alkalmazások fejlesztési technológiái Áttekintés

Flash és PHP kommunikáció. Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft

Objektum-orientált tervezés

Webszolgáltatások kommunikációs overhead-jének becslése

pilot példa SOA alkalmazásra április 29.

API tervezése mobil környezetbe. gyakorlat

Szolgáltatásintegráció (VIMIM234) tárgy bevezető

Adatbázis rendszerek 7. előadás State of the art

Szolgáltatásorientált rendszerintegráció. SOA-alapú rendszerintegráció. Enterprise Service Bus (ESB) Ercsényi András, BME IIT, 2011.

Hálózatbiztonság Androidon. Tamas Balogh Tech AutSoft

Kommunikáció. 3. előadás

SOAP komponensek Delphiben

Java Business Integration szolgáltatásalapú architektúra JavaEE környezetben. Simon Géza Zsemlye Tamás

Debreceni Egyetem Informatikai Kar. Szolgáltatás-orientált programozás az Oracle-ben

Szolgáltatás Orientált Architektúra és több felhasználós adatbázis használata OKF keretein belül. Beke Dániel

Oracle9i Alkalmazás Szerver Üzleti folyamat integráció. Molnár Balázs Vezető értékesítési konzultáns Oracle Hungary

Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

Webes alkalmazások fejlesztése 8. előadás. Webszolgáltatások megvalósítása (ASP.NET WebAPI)

Web-szolgáltatás szabványok

Szolgáltatásintegráció (VIMIM234) tárgy bevezető

A JGrid rendszer biztonsági architektúrája. Magyaródi Márk Juhász Zoltán Veszprémi Egyetem

ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu

Párhuzamos és Grid rendszerek

A Java EE 5 plattform

Osztott rendszerek (Distributed. systems) Bevezetés. Tartalom. Ficsor Lajos. Miskolci Egyetem Általános Informatikai Tanszék

JAVA webes alkalmazások

Szolgáltatásorientált rendszerintegráció. SOA-alapú rendszerintegráció. Web-szolgáltatások: SOAP, WSDL

TELJESÍTÉNYMÉRÉS FELHŐ ALAPÚ KÖRNYEZETBEN AZURE CLOUD ANALÍZIS

webalkalmazások fejlesztése elosztott alapon

Tarantella Secure Global Desktop Enterprise Edition

Webes alkalmazások fejlesztése 12. fejezet. Szolgáltatás alapú kommunikáció (WCF) Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar

Tanúsítványkérelem készítése, tanúsítvány telepítése Microsoft Internet Information szerveren

Web Services. (webszolgáltatások): egy osztott alkalmazásfejlesztési plattform

Osztott rendszerek (Distributed

Modell alapú tesztelés mobil környezetben

S, mint secure. Nagy Attila Gábor Wildom Kft.

Számítógépes Hálózatok Felhasználói réteg DNS, , http, P2P

Felhasználói réteg. Számítógépes Hálózatok Domain Name System (DNS) DNS. Domain Name System

Tartalom. Történeti áttekintés. Történeti áttekintés Architektúra DCOM vs CORBA. Szoftvertechnológia

Folyamatmodellezés és eszközei. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Tartalomjegyzék. Bevezetés. 1. A.NET 3.5-keretrendszer 1. A korszerű alkalmazások felépítésének kihívásai... 2

UNIX: folyamatok kommunikációja

TANÚSÍTVÁNY. tanúsítja, hogy a E-Group Magyarország Rt. által kifejlesztett és forgalmazott. Signed Document expert (SDX) Professional 1.

STANDARD DEVELOPMENT U.L. FACTORY SYSTEMS GROUP IT DEPARTMENT

Mikor? Milyen alkalmazásnál?

applikációs protokollok

Testreszabott alkalmazások fejlesztése Notes és Quickr környezetben

Biztonságos mobilalkalmazás-fejlesztés a gyakorlatban. A CryptTalk fejlesztése során alkalmazott módszerek. Dr. Barabás Péter Arenim Technologies

Fejlesztés, működtetés, felügyelet Hatékony infrastruktúra IBM szoftverekkel

Nyílt forráskódú irodai programkomponensek vállalati környezetbe való integrációjának vizsgálata és implementációja

Non-stop hozzáférés az üzleti információkhoz bárhol, bármikor és bármilyen eszközzel

Webszolgáltatás alapokon BPEL

Bevezetés az SAP világába. 5. Kommunikációs és integrációs technológiák

Hálózati architektúrák és Protokollok GI Kocsis Gergely

A számítástechnika gyakorlata WIN 2000 I. Szerver, ügyfél Protokoll NT domain, Peer to Peer Internet o WWW oftp opop3, SMTP. Webmail (levelező)

A hibrid DB cloud biztonsági eszköztára. Kóródi Ferenc Budapest,

Miért is transzformáljunk modelleket? Varró Dániel

INTERNET. internetwork röviden Internet /hálózatok hálózata/ 2010/2011. őszi félév

Enterprise extended Output Management. exom - Greendoc Systems Kft. 1

Mai program. Web Technológiák. Webalkalmazások. Webalkalmazás, mint UI

Levelező szerverek. Hargitai Gábor november 28.

Kommunikáció. Folyamatok közötti kommunikáció. Minden elosztott rendszer alapja

Petőfi Irodalmi Múzeum. megújuló rendszere technológiaváltás

CORBA Áttekintés. Mi a CORBA? OMG and OMA. Ficsor Lajos. Miskolci Egyetem Általános Informatikai Tanszék

MŰSZAKI KÖVETELMÉNYEK, A KÖRKERESŐ SZOFTVER SPECIFIKÁCIÓJA, KÖLTSÉGVETÉS. A) Műszaki követelmények

Viczián István IP Systems JUM XIX szeptember 18.

Folyamatok rugalmas irányítása. FourCorm Kft.

Osztott rendszerek. Krizsán Zoltán 1 Ficsór Lajos 1. Webalkalmazások fejlesztése tananyag. Miskolci Egyetem. Bevezetés A múlt - történelem A jelen

OEP Betegéletút lekérdezés háziorvosok és vénytörténet lekérdezés patikák számára. API dokumentáció. verzió: 2.01

SSL VPN KAPCSOLAT TELEPÍTÉSI ÚTMUTATÓ

Szalai Ferenc

Budapest Főváros Kormányhivatala. Földmérési, Távérzékelési és Földhivatali Főosztály. Általános Szerződési Feltételek.

Bárányfelhő vagy viharfelhő? A felhő alapú megoldások biztonsági kérdései. Császár Rudolf Műszaki fejlesztési vezető Digital Kft.

Mobil szolgáltatások és alkalmazások fejlesztése

Fábián Zoltán Hálózatok elmélet

Előnyei. Helyi hálózatok tervezése és üzemeltetése 2

Köztesréteg adatbiztonsági protokollok megvalósítására

SSL elemei. Az SSL illeszkedése az internet protokoll-architektúrájába

GIS fejlesztés Web platformra nyílt forráskódú ingyenes eszközökkel

IT szolgáltatás menedzsment bevezetés az IIER projektben

Alap protokollok. NetBT: NetBIOS over TCP/IP: Name, Datagram és Session szolgáltatás.

Bevezetés: az SQL-be

Crossplatform mobil fejlesztőkörnyezet kiválasztását támogató kutatás

Elosztott rendszerek

Kommunikáció. Távoli eljáráshívás. RPC kommunikáció menete DCE RPC (1) RPC - paraméterátadás. 3. előadás Protokollok. 2. rész

Osztott Objektumarchitektúrák

LINUX LDAP címtár. Mi a címtár?

Oracle Containers for Java - j2ee alkalmazás szerver funkciók. Molnár Balázs Oracle Hungary

Közösség, projektek, IDE

Az Informatikai és Hírközlési Minisztérium ajánlása a közigazgatásban a hitelesítésszolgáltatók

SZOLGÁLTATÁS ORIENTÁLT ARCHITEKTÚRÁK (SOA)

Automatikus infrastruktúra menedzsment és alkalmazástelepítés

Azt írom alá, amit a képernyőn látok?

HecPoll a vezérlő rendszer

Átírás:

Szolgáltatás technológiák (WS, WS-*, REST) Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Elosztott rendszerek Elosztott rendszerek o Egy hálózaton lévő számítógépek Tipikus példa: Internet o Üzenet alapú kommunikáció Motiváció o Erőforrás megosztás o Skálázhatóság o Modularizáció o Együttműködés Követelmények o Kommunikációs réteg

XML webszolgáltatások Alkalmazások közötti adatcserére szolgáló protokollok és szabványok gyűjteménye Szabvány: XML alapúak o Strukturált szöveges állomány o Kötött formátum (séma) Nem csak nyílt Web-es környezetben Lazán csatolt alkalmazások Főbb fejlesztők o Apache, IBM, HP, SUN & Microsoft (.NET) o http://www.webservices.org/

Példák E-mail küldés Bemenet: levél adatai Válasz: nyugta Új alkalmazott felvétele Bemenet: személyes adatok Válasz: ID Vállalatirányítási rendszer elérése Bemenet: beszállítók lekérdezése Válasz: beszállítók listája, preferenciák Lekérdező műveletek Pl. időjárás előrejelzés, keresés, repülőjegy árának lekérdezése, Bemenet: intervallum, hely Válasz: csapadék, hőmérséklet, Infrastruktúra elérése Bemenet: váratlan események lekérdezése Válasz: riasztáslista Szenzorok lekérdezése Bemenet: épületrész állapota Válasz: hőmérséklet, páratartalom,

Megvalósítás Szolgáltatás leírások UDDI WSDL WSDL Kliens SOAP Szolgáltató

Web service stack Szolgáltatás publikálás Szolgáltatás leíró Kommunikáció Alacsony szintű protokollok URI, HTTP, FTP, etc. Hálózat

Web service stack Szolgáltatás publikálás Szolgáltatás leíró SOAP Kommunikáció Hálózat

Web service stack Szintakszis HOGYAN? (portok, műveletek, üzenetek) WSDL Szolgáltatás publikálás Szolgáltatás leíró Kommunikáció Hálózat

Web service stack regisztráció HOL? ( Arany oldalak / hirdetők) UDDI, WSIL Szolgáltatás publikálás Szolgáltatás leíró Kommunikáció Hálózat

SOAP Simple Object Access Protocol o 1.1 verzió: 2000 óta Általános kommunikációs protokoll XML Boríték Fejléc o Címzett/feladó o Formátum o Kiegészítő információk titkosítás, time-to-live, stb. Törzs Pl. http://www.w3schools.com/soap/soap_example.asp

Web Services Description Language Interfészdefiníció Kérdés-válasz párok leírása Port típusok megadása Generálható az osztály publikus metódusai alapján Kliens (proxy) generálásához szükséges Lekérdezhető szolgáltatás tárakból

Adattípusok leírása o Séma (XSD) hivatkozás Portok leírása WSDL o Összetartozó műveletek halmaza o Pl. ÁrfolyamLekérdezőPort Műveletek (operations) leírása o Pl. UtolsóHónapÁtlagosÁrfolyama Üzenetek (típusának) deklarálása o Pl. ÁrfolyamKérdés Binding o Konkrét protokollhoz kötés, leggyakrabban SOAP

WSDL struktúra

Példa Webszolgáltatások felhasználása o Google API o http://www.mnb.hu/arfolyamok.asmx?wsdl Pl. Amazon Elastic Compute Cloud o Maga a cloud management is webszolgáltatás alapon történik o http://aws.amazon.com/ec2/ o Do NOT try to read or edit this file Publikus webszolgáltatások o http://www.webservicex.net/ws/wscatlist.aspx o http://www.service-repository.com/ o http://www.xmethods.net/ve2/directory.po o https://www.thedacs.com/

WS fejlesztés tipikus lépései Szolgáltatás interfészek, adatstruktúrák tervezése o WSDL, XSD Implementáció/integráció o Ezek alapján generálható a WSDL Kliens/szerver oldali csonkok elállítása o API hívással o XML konfiguráció alapján Futási idben (middleware) o SOAP üzenetek elállítása o SOAP boríték elküldése o SOAP üzenet transzformálása a szolgáltatás bemeneti formátumára

Modellezés: OMG: SoaML

WS-* Hogyan adjunk alkalmazás szint garanciákat az integrációra? o Ne függjön a hálózattól o Ne függjön az implementációtól o Az alkalmazás logika határozza meg Feladatok o Tranzakciókezelés o Session kezelés o Biztonság o Titkosítás o Szolgáltatások kombinálása o Szolgáltatások szemantikája o Loggolás

Szabványok

Szabványok Magas szintű biztonság, bizalom (trust) Leírás, keresés, policy Biztonsági tokenek Kommunikációs modelll Összetett szolgáltatások Tranzakcionalitás XML dokumentumok Megbízható üzenetküldés Hálózati átvitel XML szintű aláírás és titkosítás

XML encryption 20 W3C szabvány Szimetrikus kulcsú (pl. 3DES) Aszimetrikus kulcs (RSA) Fő elemek o SignedInfo o EncryptedData o EncryptedKey Tipikusan XML signature-el együtt használják

XML Signature 22

WS-Security 23 Önmagában nem az üzenetet védi o Hogyan igazoljuk, hogy védett az üzenet o Használ más szabványokat Azonosítás és autentikáció o Milyen tokeneket használunk az üzenetben Integritás o XML signature o Időzítési védelem az újrajátszás ellen Titkosítás o WS-Encrpytion

Biztonsági tokenek 24 Alkalmazás-specifikus o Usernév-jelszó o unsigned Aláírt biztonsági tokenek (bináris) o X.509 certificate o Kerberos XML tokenek o Pl. SAML o Általában self-signed

XML security párbeszéd 25 Nem önhitelesítő tanúsítványok esetén (non self-validating credentials)

26 Szcenárió 2 self-validating credentials Önhitelesítő tanúsítványok esetén (self-validating credentials)

WS-Security fejléc (SOAP) 27 <?xml version='1.0' encoding='utf-8'?> <soapenv:envelope xmlns:soapenv= "http://schemas.xmlsoap.org/soap/envelope/" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"> <soapenv:header> <wsse:security xmlns:wsse="..." soapenv:mustunderstand="1"> <xenc:encryptedkey Id="EncKeyId-229902"> <xenc:encryptionmethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5" /> <ds:keyinfo xmlns:ds="..."> <wsse:securitytokenreference> </wsse:securitytokenreference> </ds:keyinfo> <xenc:cipherdata> <xenc:ciphervalue>ppaoxj5p0w8ukm...</xenc:ciphervalue> </xenc:cipherdata> <xenc:referencelist> <xenc:datareference URI="#EncDataId-30957433" /> </xenc:referencelist> </xenc:encryptedkey> <ds:signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"id="signature-17764792"> <ds:signedinfo> <ds:canonicalizationmethod Algorithm= /> <ds:signaturemethod Algorithm= /> <ds:transforms> /ds:transforms> <ds:digestmethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> <ds:digestvalue>+eckm6r4gq7aq=...</ds:digestvalue> /ds:signedinfo> </ds:signature> <wsu:timestamp../> <soapenv:body xmlns:wsu="..." wsu:id="id-30957433"> <xenc:encrypteddata Id="EncDataId-30957433.> </sopaenv:body>

Titkosítatlan válasz <?xml version='1.0' encoding='utf-8'?> <soapenv:envelope xmlns:soapenv= "http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:header /> <soapenv:body> <resp:numberofarcticles xmlns:resp= "http://daily-moon.com/cms/" xmlns:tns= "http://ws.apache.org/axis2"> 42</resp:numberOfArcticles> </soapenv:body> </soapenv:envelope> 28

További specifikációk 29 WS-SecurityPolicy o WS-policy alapon o Leírja a követelményeket o Milyen elemeket kell használni a többi nyelvből WS-SecureConversation o Hogyan történik a kulcsok igénylése, generálása, stb. WS-Interoperability o Különböző megvalósítások egymással kommunikálni tudjanak o Oracle és MS kölcsönösen tesztelik egymás platformját

WS-Trust 30 Szolgáltatók közti bizalmasság Biztonsági tokenek o Kibocsátása o Megújítása o Ellenőrzése Secure Token Service (STS)

Letagadathatatlanság: WS-RM 31 TCP réteg webszolgáltatásoknak Megbízható üzenetküldés o Nyugtázás o Üzenetsorrendezés o Duplikátumok szűrése o Garantált kézbesítés Több szabvány egyesítése (MS, IBM) Implementációk o RAMP (IBM WebSphere Application Server) o Apache Sandesha (Axis2) o Microsoft Windows Communication Foundation o Bea WebLogic ( Oracle)

Biztonsági analízis 32 Szisztematikus támadás WSDL alapján o Publikus információ felhasználása Brute force támadás (XML parsing) o Túlterhelés: a parse-olás a szűk keresztmetszet XML injection o Magának a feldolgozási folyamatnak a megváltoztatása Pl. XPath, XSLT, XQuery használatával Külső referencia támadás o Dokumentum linkelése SOAP protokol szintű támadás Szállító réteg támadása

Milyen plusz feladatokat jelent 33 Magas szintű policy értelmezés Pl. Apache Axis2 konfiguráció esetén o Szerver oldalon Rampart, Sandesha modulok engedélyezése services.xml konfiguráció beállítása WSDL újragenerálása Apache WSS4J o Kliens oldalon Apache WSS4J Mögöttes infrastruktúra o Pl. Keystore, üzenetsorok Mi történik, ha a kliens nem tud bármit kezelni? o Pl. BPEL, Android (erőforrások, konfiguráció)

WS Eszköztámogatás (példák) Apache: Apache Web Services Project IBM: WebSphere Application Server Microsoft: Windows Communication Foundation Oracle: METRO stack Eclipse: SOA Tools Platform Altova XML Tools Gyártók saját környezetei o Speciális célú, pl. adatbázis elérés DB2 Oracle MSSQL, stb.

REST REpresentational State Transfer Alapelvek o Nem konkrét szabvány, megközelítés o Architekturális minta (Roy Fielding) o Erőforrásokat használunk (adat,kép, szolgáltatás) o HTTP/URI kommunikáció o Erőforrásokon értelmezett műveletek (POST,GET,PUT,DELETE) Create, Read, Update, Delete modell o Minden más rábízva az alkalmazásra/fejlesztőre

RESTful példa Twitter API Protocol + domain funkció neve paraméter lista http://twitter.com/statuses/user_timeline.xml?id=brucesnyder Kategóriák Mint egy könyvtár Válasz formátuma <?xml version="1.0" encoding="utf-8"?> <statuses type="array"> <status> <created_at>sat Nov 28 03:37:01 +0000 2009</created_at> <id>6131762194</id> <text>@plightbo the Eclipse Communication Framework: http://eclipse.org/ecf/</text> <source><a href="http://echofon.com/" rel="nofollow">echofon</a></source> <truncated>false</truncated> <in_reply_to_status_id>6116500510</in_reply_to_status_id> <in_reply_to_user_id>14437064</in_reply_to_user_id> <favorited>false</favorited> <in_reply_to_screen_name>plightbo</in_reply_to_screen_name> <user> <id>15779577</id> <name>brucesnyder</name> 36

REST felhasználás Pl. RSS, Twitter, Tumblr, Amazon o Bonita o http://predic8.com/rest-demo.htm Adatbáziskezelők, JEE komponensek, stb. Az átküldött adat formátuma gyakran XML/JSON

REST vs XML web services Web vs. EAI REST megközelítés, a SOAP/WSDL szabvány REST lightweight o Ugyanakkor számos szabványt integrál egy tipikus REST alkalmazás (SSL, JSON,.) SOAP/REST interfész egyszerűen előállítható o Pl. MS WCF, Eclipse WTP (JAX-WS, JAX-RS) o Bemenet ellenőrzése kritikus Feladattól függő választás o Pl. egyszerűbb adatmanipuláció vs. RPC o Kliens/szerver mennyire terhelhető

Források http://ws.apache.org/axis2/modules/rampart/1_0/securitymodule.html http://ws.apache.org/sandesha/ Sopera.de Security in a Web Services World: A Proposed Architecture and Roadmap (IBM & Microsoft whitepaper) Web Services Security Tutorial, Jorgen Thelin, CapeClear Software Standards and Practices in Operational Security, Yuri Demchenko, AIRG Understanding Web services Specifications Part IV: security, Nicholas Chase (IBM whitepaper) http://www.slideshare.net/rmaclean/json-and-rest 39