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



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

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

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

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

Novell Nterprise Branch Office: a távoli iroda felügyeletének leegyszerűsítése

.NET Microsoft.Net Framework

Irányelv elektronikus rendszerekhez való hozzáférés biztosításához

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

ERserver. iseries. Szolgáltatási minőség

Programozás III CSOMAGOK. Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek.

Tarantella Secure Global Desktop Enterprise Edition

Becsülhető válaszidejű interoperábilis WS-* alkalmazások modellvezérelt kialakítása

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

OKTATÁSI CSOMAG (SOA)

1.1 Szakdolgozat témája A Program célja A használt technológiák ismertetése A program megtervezése...

(11) Lajstromszám: E (13) T2 EURÓPAI SZABADALOM SZÖVEGÉNEK FORDÍTÁSA

Indítsuk el a PowerPoint 2010 alkalmazást, majd a Nézet/Mintanézetek/Diaminta paranccsal lépjünk be a minta nézetbe.

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

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

Termékbemutató prospektus

Debreceni Egyetem Informatikai Kar A WINDOWS SERVER 2003 HÁLÓZATI MEGOLDÁSAI

!!" KÉSZÍTK: ERDÉLYI LAJOS KOLLÁR NÁNDOR WD6OGW BUK8Y7

A.26. Hagyományos és korszerű tervezési eljárások

Katona János SZIE Ybl Miklós Műszaki Főiskola, Budapest Ábrázolás és Számítástechnika Tanszék

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

Mérési útmutató a Mobil Kommunikáció és Kvantumtechnológiák Laboratórium méréseihez

Hallgatói szemmel: a HÖK. A Politológus Műhely közvélemény-kutatásának eredményei

ÁEEK Kataszter. Felhasználói útmutató

IBM Tivoli Access Manager for WebLogic Server Felhasználóikézikönyv. 3.9-es verzió GC

KETTŐS KÖNYVELÉS PROGRAM CIVIL SZERVEZETEK RÉSZÉRE

Elektronikus dokumentumtárolási (EDT) szolgáltatás

TANÚSÍTVÁNY. tanúsítja, hogy a Polysys Kft. által kifejlesztett és forgalmazott

Kaspersky Internet Security Felhasználói útmutató

Integrált ügyviteli rendszer: Kettős könyvelés modul

Infokommunikációs alkalmazásfejlesztő. Informatikai alkalmazásfejlesztő

Az Egységes Szakképzési Minőségirányítási Keretrendszer bevezetésének szükségessége a felnőttképzésben

ÓBUDAI EGYETEM Neumann János Informatikai Kar Informatikai Rendszerek Intézet Témavezető: Bringye Zsolt

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

SAP Business One. Méretre szabás. Mosaic Business System Kft.; Support:

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

Ingrid Signo Felhasználói kézikönyv. Pénztári használatra

AUTOMATIKUS GÉPJÁRMŰ BELÉPTETŐ RENDSZER

Minden jog fenntartva, beleértve bárminemű sokszorosítás, másolás és közlés jogát is.

Haladó DBMS Radványi, Tibor

PROGRAMKALAUZ KULTÚRA PROGRAM ( )

(11) Lajstromszám: E (13) T2 EURÓPAI SZABADALOM SZÖVEGÉNEK FORDÍTÁSA

AJÁNLATTÉTELI DOKUMENTÁCIÓ

SAP Business One. Áttekintés, gyakorlati ismertetı. Mosaic Business System Kft.; Support:

(11) Lajstromszám: E (13) T2 EURÓPAI SZABADALOM SZÖVEGÉNEK FORDÍTÁSA


Access 2010 Űrlapok és adatelérés

Szakdolgozat készítésére vonatkozó előírások

A rendszert négy komponensből építjük fel, amelyek a következők:

1. K ORLÁTLAN SÁVSZÉLESSÉG ÉS

ICN 2005 ConferControl

IBM Business Monitor 7. változat 5. alváltozat. IBM Business Monitor telepítési kézikönyv

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

Konfigurációkezelés (2B)

Windows alapú operációs rendszerek

FELÜLVIZSGÁLATI JEGYZŐKÖNYV (E-DS10F1_TANF-SW) MELLÉKLETE

29 darab defibrillátor beszerzése

A Michelin Ultraflex és Compact Line kiárusítási kampány HIVATALOS SZABÁLYZATA ÉS ADATKEZELÉSI SZABÁLYZATA

Hajdúsági Kistérség Területfejlesztési Koncepciója és Programja HELYZETÉRTÉKELÉS 2005.

A területi közigazgatás reformja és az informatika

4. LECKE: DÖNTÉSI FÁK - OSZTÁLYOZÁS II. -- Előadás Döntési fák [Concepts Chapter 11]

6. számú melléklet KÖLTSÉGVETÉSI SPECIFIKÁCIÓ. a Társadalmi Megújulás Operatív Program. Új tanulási formák és rendszerek Digitális Középiskola program

Bonobo: A GNOME CORBA alapú komponens-megoldása Unixokra

JAX-WS mélyvíz. Viczián István JUM XII november 18.

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

Mérei Ferenc Fıvárosi Pedagógiai és Pályaválasztási Tanácsadó Intézet. Javítási, karbantartási és festési szolgáltatások. Ajánlati dokumentáció

Objektumorientált programozás C# nyelven

++Buy( Kaspersky Anti- Virus 2014 top sites for computer software ]

A CityGuard rendszer

Számítógép kártevők. Számítógép vírusok (szűkebb értelemben) Nem rezidens vírusok. Informatika alapjai-13 Számítógép kártevők 1/6

Oracle BI Administration Tool. Repository felépítése

Kétszemélyes négyes sor játék

A szervezeti architektúra nézetei, nézőpontjai és tervezési módszerei. Szolgáltatás orientált architektúrák információs rendszerekben

Webszolgáltatások (WS)

Webszolgáltatások teljesítménymodellezése Java EE és.net platformon

Szuperszámítógépes teljesítmény szuperszámítógép nélkül A BinSYS Projekt

Tűgörgős csapágy szöghiba érzékenységének vizsgálata I.

Welcome3 Bele pteto rendszer

17/2001. (VIII. 3.) KöM rendelet

INTERNETES HIRDETMÉNY Portfolio Online Tőzsde, Portfolio Online Tőzsde Pro, Portfolio Online Tőzsde mobil és táblagép applikáció

A távmunka és a távdolgozók jellemzői

Motorikus dízelgázolaj beszerzése

Adatbázisok és adattárházak az információs rendszerek adatkezelői

A JAVA FUTTATÁSAKOR ELŐFORDULÓ HIBA-

Roncsolás-mentes diagnosztika

OKTATÁSI ÉS VIZSGA SZABÁLYZATA

Az intelligens áru koncepciójának és relevanciájának bemutatása, különös tekintettel a mobil ágensek alkalmazásának lehetőségére

Széchenyi István Szakképző Iskola

Minden jog fenntartva, beleértve bárminemű sokszorosítás, másolás és közlés jogát is.

Követeléskezelő szoftver bérleti szerződés

ÚTMUTATÓ. 1.4 tevékenység. Dieter Schindlauer és Barbara Liegl június

A Nyíregyházi Fıiskola Informatikai Szolgáltató Központ Ügyrendje

NetIQ imanager Telepítési útmutató január

AZ EURÓPAI KÖZÖSSÉGEK BIZOTTSÁGA. Javaslat: AZ EURÓPAI PARLAMENT ÉS A TANÁCS IRÁNYELVE

Book Template Title. Author Last Name, Author First Name

NETLOCK SIGN szolgáltatás Rendelkezésre állási Szabályzata

Átírás:

Webszolgáltatások kommunikációs overhead-jének becslése Simon Balázs, sbalazs@iit.bme.hu Dr. Goldschmidt Balázs, balage@iit.bme.hu Dr. Kondorosi Károly, kondor@iit.bme.hu Budapesti Műszaki Egyetem, Irányítástechnika és Informatika Tanszék 1117 Budapest, Magyar tudósok krt. 2 Absztrakt A webszolgáltatások elosztott kommunikációt valósítanak meg különböző platformok között. A WS-* szabványok címzéssel, megbízható üzenetküldéssel, titkosított adatcserével és egyéb middleware aspektusokkal bővítik a webszolgáltatásokon alapuló kommunikációt. Azonban ezeknek a szabványoknak jelentős befolyása van a kommunikáció válaszidejére. Jelen cikk célja a webszolgáltatások és a WS-* szabványok által okozott kommunikációs overhead kimérése, illetve egy olyan teljesítménymodell definiálása, amely segítségével tetszőleges interfészű webszolgáltatás válaszideje becsülhetővé válik. 1 Bevezetés A webszolgáltatások elosztott kommunikációt valósítanak meg oly módon, hogy a kommunikációs protokoll (SOAP), az interfészleíró nyelv (WSDL) és a middleware aspektusok (WS-* szabványok: WS-Addressing, WS-ReliableMessaging, WS-Security, WS- SecureConversation, stb.) mind XML alapúak. Azonban az XML formátum nagy overhead-et ró a kommunikációs csatornára. Célunk az, hogy a webszolgáltatások által okozott kommunikációs overhead-et kimérjük, és egy olyan teljesítménymodellt alakítsunk ki, amely segítségével ez az overhead előre becsülhetővé válik. Ehhez olyan reprezentatív teszteseteket hoztunk létre, amelyekkel a válaszidő a különböző programnyelvi típusokra és a különböző WS-* protokollokra kimérhetővé válik. A méréseket Java és.net platformon is elvégeztük. A cikk a következő módon épül fel. A második szakasz bemutatja a webszolgáltatásokat implementáló keretrendszerek tipikus architektúráját és összegyűjti azokat a tényezőket, amelyek hatással lehetnek a kommunikációs overhead-re. A harmadik szakasz a kialakított teszteseteket ismerteti. A negyedik szakasz a mérési eredményeket tartalmazza, illetve a mérésekből levont tanulságokat veszi számba. Az ötödik szakasz a mérések alapján kialakított teljesítménymodellt írja le, amely segítségével tetszőleges interfészű webszolgáltatás kommunikációs overhead-je becsülhetővé válik a mérésekből kiszámolt együtthatók segítségével. Az eredményeket az ötödik szakasz foglalja össze és egyben ismerteti a továbbfejlesztési lehetőségeket. 1

2 Webszolgáltatások implementációs architektúrája 1. ábra Webszolgáltatások implementációs architektúrája Az 1. ábra a webszolgáltatásokat implementáló eszközök általános architektúráját mutatja. A Windows Communication Foundation [1] (a.net környezetből) és a Metro [2] (a JAX-WS referencia implementációja) csatornamodellek is ezt a struktúrát követik, és más keretrendszerek is hasonlóan modellezhetők. A rétegszerkezet legalján a hálózat (network) található, amely bájtok átvitelét végzi a kliens és a szolgáltatás között. Webszolgáltatások esetén ez tipikusan a HTTP szokott lenni, azonban általában ez lecserélhető más protokollokra is. A transzport (transport) réteg felelős a hálózati protokoll kezeléséért, vagyis a bájtok átküldéséért és fogadásáért. A kódoló (encoding) réteg feladata az átküldött bájtok és a felsőbb rétegekben használt üzenetobjektum közötti transzformáció, vagyis a sorosítás. A transzport és kódoló rétegek kötelezően mindig jelen vannak. A felsőbb protokoll (protocol) rétegek opcionálisak. Ezek felelnek a különböző WS-* szabványok (WS-ReliableMessaging, WS-Security, stb.) implementálásáért. Mivel a webszolgáltatások XML-re épülnek, átjárást biztosítanak különböző programnyelvek és keretrendszerek között. Ennek azonban ára van: az XML kezelése, titkosítása, digitális aláírása és sorosítása nagyon nagy overhead-et ró a kommunikációra. Ez az overhead a lokális hívásokhoz és a bináris alapú távoli eljáráshívásokhoz képest jóval nagyobb terhet jelent. Az egyes rétegek a következőképpen járulnak hozzá a kommunikációs overhead-hez. A transzport réteg független a felsőbb rétegektől, a válaszidőhöz az üzenet bájtban számolt méretével arányosan ad hozzá. A kódoló réteg felelős a sorosításért, így ennek a hozzájárulása elsősorban az üzenetben felhasznált primitív típusoktól (boolean, int, double, string stb.), tömböktől és összetett típusoktól függ. Ezen kívül e réteg válaszidejét befolyásolja a string-ek hossza, a tömbök mérete és a struktúrák mélysége is. A protokoll rétegek a kliens és a szolgáltatás közötti kapcsolat felépítése során úgynevezett bootstrap üzeneteket is cserélhetnek egymással, amelyek jelentősen megnövelhetik a válaszidőt. Titkosító protokollok esetén pedig az XML titkosítás és digitális aláírás további terhet jelent. Jelen cikk az itt felsorolt tényezők hozzájárulásának mérésével és becslésével foglalkozik. 2

3 Tesztesetek Az előző szakaszban bemutatott architekturális rétegszerkezetből adódnak azok a tényezők, amelyek befolyásolják a webszolgáltatás hívások válaszidejét. Ezek alapján a tényezők alapján meghatározhatók azok a tesztesetek, amelyek segítségével reprezentatív méréseket lehet végezni az egyes implementációs keretrendszerekkel kapcsolatban. A mérések alapján megbecsülhető az egyes keretrendszerek hozzájárulása a kommunikációs overhead-hez. A már bemutatott tényezők alapján a következő teszteseteket alakítottuk ki. A legtöbb programnyelv a következő primitív típusokat definiálja: boolean, byte, int, long, float, double, string. Feltehetjük tehát, hogy ezek alkotják az összetettebb típusokat is, amelyek tömbök vagy struktúrák lehetnek. A mérések pontosabbak, ha nagyobb méretű adathalmazon dolgozunk, éppen ezért a primitív típusokat különböző mélységű struktúrákba és különböző hosszúságú tömbökbe csomagoltuk. Ennek megfelelően minden egyes primitív típusra két fajta szolgáltatás készült: 1. Egy szolgáltatás egy operációval, mindegyik az adott primitív típusból álló tömböt használ 2. Egy szolgáltatás egy operációval, mindegyik az adott primitív típusból alkotott láncolt listákból álló tömböt használ A tömbök használata segíti elő azt, hogy a méréseket nagyobb adatmennyiségeken is el lehessen végezni. Összesen tehát 14 szolgáltatás készült el, mindegyik 1-1 operációt tartalmaz. A felsorolt tesztesetek elegendőek a transzport és kódoló rétegek overhead-jének becsléséhez. Azonban a WS-* szabványok további jelentős hozzájárulást adnak a válaszidőhöz. Éppen ezért minden egyes fenti szolgáltatást a következő WS-* protokolloknak megfelelően öt-öt külön végponton konfiguráltunk: 1. nincs plusz WS-* protokoll 2. WS-Addressing 1.0 3. WS-Addressing 1.0, WS-ReliableMessaging 1.1 4. WS-Addressing 1.0, WS-Security 1.0, Basic Security Profile 1.0 5. WS-Addressing 1.0, WS-Security 1.0, WS-Trust 1.3, WS-SecureConversation 1.3, Basic Security Profile 1.0 Ezen túlmenően minden egyes végpont a SOAP 1.1 és SOAP 1.2 protokollokkal, valamint az MTOM mehanizmus engedélyezésével és tiltásával is kombinálva volt. Összesen tehát 14*5*2*2=280 szolgáltatási végpont készült, és mindegyikhez implementáltunk egy-egy klienst is. A méréseket két keretrendszerben (WCF és Metro) végeztük, mindegyikben mind a 280 szolgáltatást és a hozzájuk tartozó 280 klienst is elkészítettük úgy, hogy a kliensek a másik keretrendszer szolgáltatásait is meg tudják hívni. 3

4 Mérési eredmények Ez a szakasz a mérési eredményeket foglalja össze. A méréseket a következő konfiguráción végeztük: AMD Phenom II X4 955 Black Edition 3.2 GHz CPU 12 GB RAM Microsoft Windows 7 Professional SP1 64 bit Microsoft.NET 4.0, WCF, IIS szerver 7.5 Oracle JRE 7 és JDK 7, GlassFish szerver 3.1.1 Open Source Edition Full Platform Terjedelmi okokból a mérési eredményekről csak néhány reprezentatív ábrát (2. és 3. ábra) illesztettünk be. 2. ábra Válaszidők WS-SecureConversation esetén különböző primitív típusokra 4

3. ábra Válaszidők double típus esetén különböző WS-* protokollokra A mérésekből a következő tanulságok szűrhetők le: 1. A különböző keretrendszerek különböző válaszidőket produkálnak, azonban karakterisztikájuk ugyanolyan az egyes tényezőket tekintve 2. A SOAP verziónak nincs hatása a válaszidőre 3. Ha nincsenek byte tömbök, az MTOM használatának nincs hatása a válaszidőre 4. Az üzenet (nettó vagy bruttó) mérete nem elegendő a válaszidő becsléséhez 5. A primitív típusok befolyásolják a válaszidőt 6. A WS-* protokollok jelentősen hozzájárulnak a válaszidőhöz 7. A WS-Addressing protokollnak nincs számottevő hatása 5

8. A legnagyobb válaszidőket az elvárásoknak megfelelően a WS-ReliableMessaging, WS- Security és WS-SecureConversation szabványok produkálják 9. A válaszidő a tömb hosszával lineárisan arányos. 10. A válaszidő a struktúrák mélységével lineárisan arányos. 11. A válaszidő a string-ek hosszával lineárisan arányos. 12. A válaszidő a hívások számával lineárisan arányos. 5 Válaszidő becslése Az előző szakaszban ismertetett mérési eredmények és tapasztalatok alapján kialakítottunk egy olyan teljesítménymodellt, amely segítségével tetszőleges interfészű webszolgáltatás válaszidejének overhead-je becsülhetővé válik. A teljesítménymodellben az első lépés a mérési eredményeket közelítő függvény definiálása. Legyen ez a válaszidő függvény, amelyet a következőképpen definiálunk: Ahol: U = (ClientFramework x ServerFramework x Binding x Type), vagyis a mérésben szereplő kliens keretrendszer, szerver keretrendszer, kommunikációs protokoll és a felhasznált primitív típus Descartes-szorzata k a tömb hossza l a string-ek hossza m a struktúrák mélysége a U,k, b U,k, a U,l, b U,l, a U,m, b U,m a mérések lineáris regressziójával kapott együtthatók Ezeket a válaszidő függvényeket kell áttranszformálni olyan függvényekké, amelyek csak egy keretrendszertől függenek. Ezáltal meghatározható az adott keretrendszer karakterisztikája. Ehhez szükség van a bootstrap overhead függvényre és a hívás overhead függvényre. Legyen a bootstrap overhead függvény a következő (ez valójában egy konstans, mivel nem függ a tömb hosszától, a string-ek hosszától és a stuktúrák mélységétől): A hívás overhead függvény pedig a következő: Ahol: V = (Framework x Side x Binding), vagyis a keretrendszer, az oldal (kliens vagy szerver) és a protokoll Descartes-szorzata W = (Framework x Side x Binding x Type), vagyis a keretrendszer, az oldal (kliens vagy szerver), a protokoll és a felhasznált primitív típus Descartes-szorzata 6

A fentiek alapján a válaszidő függvény a következőképpen írható fel: Ahol: U = (ClientFramework x ServerFramework x Binding x Type) V c = (ClientFramework x ClientSide x Binding) V s = (ServerFramework x ServerSide x Binding) W c = (ClientFramework x ClientSide x Binding x Type) W s = (ServerFramework x ServerSide x Binding x Type) Az egyenleteket felírva a bootstrap- és a hívás overhead függvények előállíthatók. Ezek a függvények pedig már csak egyetlen keretrendszertől függnek, így segítségükkel az adott keretrendszer karakterisztikája számítható: Ennek a függvénynek a segítségével tetszőleges interfészű és protokollú webszolgáltatás válaszideje becsülhetővé válik. 6 Összefoglalás A webszolgáltatások ugyan platformfüggetlen kommunikációt tesznek lehetővé, azonban az XML-re épülő WS-* szabványok nagy overhead-et rónak a hívásokra. Ez az overhead nagyságrendekkel nagyobb lehet, mint magának az alkalmazáslogikának a futásideje. Éppen ezért fontos, hogy ezt az overhead-et becsülni tudjuk, mivel ezáltal a szolgáltatások interfésze és a kommunikációs protokollok optimálisabban választhatók meg. Jelen cikkben bemutattuk a webszolgáltatásokat implementáló keretrendszerek tipikus architektúráját, illetve az architektúra elemeiből fakadó tényezőket, amelyek hatással vannak a kommunikációs overhead-re. A tényezők alapján meghatároztuk azokat a reprezentatív teszteseteket, amelyek segítségével kimérhető az egyes keretrendszerek válaszideje. A méréseinket két keretrendszerben (WCF és Metro) illetve a két keretrendszer között is végrehajtottuk, és a cikkben ismertettük a legfontosabb tanulságokat, amelyek a mérésekből adódtak. A tanulságok alapján pedig kidolgoztunk egy teljesítménymodellt. A teljesítménymodell alkalmas az egyes keretrendszerek válaszidejének becslésére. A továbbiakban más keretrendszerekre (IBM, Oracle, JBoss, Apache CXF) is ki fogjuk terjeszteni a méréseket, és megvizsgáljuk, hogy azok is hasonló karakterisztikát mutatnak-e. 7

Köszönetnyilvánítás A munka szakmai tartalma kapcsolódik a "Új tehetséggondozó programok és kutatások a Műegyetem tudományos műhelyeiben" c. projekt szakmai célkitűzéseinek megvalósításához. A projekt megvalósítását a TÁMOP - 4.2.2.B-10/1--2010-0009 program támogatja. Referenciák [1] Microsoft: Windows Communication Foundation, http://msdn.microsoft.com/enus/netframework/aa663324, utolsó letöltés: 2012. március 3. [2] Oracle: Metro, http://metro.java.net/, utolsó letöltés: 2012. március 3. 8