• Nem Talált Eredményt

A SOA-koncepció

In document Programrendszerek fejlesztése (Pldal 15-18)

I. RÉSZ BEVEZETŐ

3. Elosztott rendszerek

3.3. A SOA-koncepció

A bevezetőben már említett komponens alapú szoftver-architektúra egy speciális formája a szolgáltatás-orientált architektúra, amelyben nem kód, hanem futó kód alapú elemekből állítjuk össze rendszerünket, alkalmazásunkat. Ez esetben nem kell az adott funkcionalitás futtató környezetével, menedzsmentjével foglalkoznunk, ezt megfelelő szolgáltató végzi el helyettünk, mi azt csak felhasználjuk. Persze nem kötelező más által futtatott szolgáltatást igénybe vennünk, a lényeg a szolgáltatás szintű építkezés. Hatékonyságát tekintve a na-gyobb, komplexebb problémák esetében egyértelmű az oszd meg és uralkodj SOA szerinti alkalmazásának előnye.

3. ábra: SOA produktivitás

A SOA számos definíciója közül itt az IBM féle definíciót használjuk: „A szolgáltatás-orientált architektúra egy keretrendszer, mely segítségével az üzleti folyamatokat és a támogató IT infrastruktúrát úgy tudjuk biztonságos, szabványos szolgáltatások formájában integrálni, hogy az újrahasználható és követendő az üzleti igényeket könnyen megváltoz-tatható”

Az előző fejezetben bemutatott szoftver-architektúrák közül a SOA leginkább laza csatolásra épít:

· Az egyes szolgáltatások fekete dobozok, nem látunk bele a belsejükbe, csak a meghirdetett szolgáltatásaikat vehetjük igénybe.

· A szolgáltatások elérése lehet szinkron és aszinkron is. Üzenet vagy metódushívás stílusú egyaránt.

A SOA azonban túlmutat a szolgáltatások definiálásán és ezek valamilyen szintű eléré-sén: számos olyan keresztülívelő probléma van, amit valamilyen egységes módon át kell vinni, kezelni kell. A meglévő szolgáltatásokból szervezett új szolgáltatás létrehozásánál biztosított szervező képesség (orchestration) segítségével lehetővé válik az üzleti folya-matok változásának könnyű követhetősége. Magas szinten (technológiai megközelítésben) a SOA modell az alábbi szereplők együttműködését definiálja:

· szolgáltatást nyújtó entitás (szolgáltató, service provider): az a szereplő (számítási egység), amely a szolgáltatás által lefedett feladatokat képes elvégezni.

· szolgáltatást igénybe vevő entitás (fogyasztó, service consumer): az a szereplő, amelynek feladata elvégzéséhez szüksége van arra, hogy egy adott szolgáltatást igénybe vegyen (egy szolgáltatótól). Ez a kliens (lehet vékony, vastag és mobil) az utóbbi időben a smart client fogalom is forog az irodalomban.

· szolgáltatást közvetítő entitás (service broker): az a szereplő, aki ismeri azoknak a szolgáltatóknak a halmazát, amelyek képesek egy adott szolgáltatást biztosítani. Ez egy köztes szereplő, amely bizonyos esetekben kihagyható a tényleges kommuniká-ciós folyamatból.

· kommunikációs csatorna: ez tipikusan webszolgáltatás, amely a későbbiekben is-mertetett SOAP protokoll segítségével támogatja a szinkron és aszinkron kommuni-kációt. A különböző keresztülívelő problémák kezelésére pedig a megfelelő web-szolgáltatás profilok biztosítanak szabványos, mindenki által érthető leírást, megva-lósítási útmutatót.

Vegyük észre, hogy ezek a szerepek ebben az esetben is egy adott szolgáltatásra vonatkoztatva jelennek meg, tehát elképzelhető, hogy egy A szolgáltatást nyújtó entitás egy másik, B szolgáltatásra vonatkozóan a szolgáltatást igénybe vevő entitás szerepében van.

Ezek a szereplők az alábbi módon kapcsolódnak egymáshoz:

4. ábra: SOA szereplők és kapcsolataik

Az ábrán az alábbi három interakció jelenik meg az egyes szereplők között:

· közzététel (publish): a szolgáltató az általa nyújtott szolgáltatásokat a megfelelő eszközökkel leírja, és a szolgáltatások leírását közzéteszi a (közismert) közvetítőnél

· keresés (search, query): a szolgáltatást igénybe venni kívánó entitás a közvetítőt felhasználhatja arra, hogy az igényeinek megfelelő szolgáltatást keressen.

· összekapcsolás (interakció): a szolgáltatást igénybe vevő entitás a szolgáltatás és az azt szolgáltató entitás adatait ismerve felveszi a kapcsolatot a szolgáltatóval, és igénybe veszi a szolgáltatást. Vegyük észre, hogy a SOA rendszerben jellemzően üzenet alapú kommunikáció történik, amelyben a szolgáltatást nyújtó a szerver, a szolgáltatást igénybe vevő a kliens.

A SOA alapú rendszerek elterjedésekor nagy hangsúlyt fektettek a közvetítőkre, több nagy cég működtetett kereshető szolgáltatás-adatbázisokat, amelyeket felhasználva bön-gészhettünk az általuk ismert szolgáltatások és szolgáltatók között. Az utóbbi időben azonban ez kevésbé elterjedt módszer, a közvetítők szerepe csökkent, hiszen a legtöbbször a szolgáltatást igénybe vevő komponensek fejlesztése során pontosan tudjuk, hogy milyen jellemzői vannak az igénybe venni kívánt szolgáltatásnak (ez esetben statikus kötésről be-szélünk, míg abban az esetben, amikor fejlesztés során nem ismertek az igénybe venni kí-vánt szolgáltatás jellemzői, dinamikus kötésről van szó). Eltemetni azonban még korai a háromszög közvetítő elemét, hiszen a szemantikus webszolgáltatások fejlődésével újra je-lentős szerephez juthatnak. A szemantikus webszolgálatásokról később lesz szó a jegy-zetben.

Ha már felmerültek a szemantikus webszolgáltatások, akkor érdemes néhány szót ejteni a webszolgáltatásokról, hiszen a jegyzet későbbi fejezeteiben nagyon gyakran fogunk ezzel a fogalommal találkozni. A webszolgáltatás egy azok közül a technológiák közül, amik lehetővé teszik a SOA-koncepció gyakorlatba történő átültetését. A webszolgáltatások jel-lemzően (de nem kizárólag) HTTP protokollba ágyazva közlekedő SOAP üzeneteket ta-karnak, hogy ez pontosan mit jelent, azt a későbbi fejezetekben tárgyaljuk. Az alábbi ábrán látható néhány szabvány technológia, amely felhasználható webszolgáltatások alkalmazása esetén.

5. ábra: Webszolgáltatás-technológiák

Mivel valamilyen szintű webszolgáltatási eszközkészlet ma már szinte minden fejlesz-tési platform alatt rendelkezésre áll, ezért a webszolgáltatások kitűnő megoldást jelentenek a platformfüggetlen integrációra. Azaz, ha azt szeretnénk, hogy egy szolgáltatásunk minél szélesebb fogyasztói kör számára elérhető legyen, akkor tegyük elérhetővé a szolgáltatást webszolgáltatáson keresztül! Érdemes azonban figyelembe venni, hogy a haladóbb tech-nológiák (WS-Trust, WS-BusinessActivity, stb.) nem minden platformra elérhetők, ezért ha ezekre szükség van, akkor a megfelelő platformot kell választani. A WS-* profilok biz-tosítják a kompatibilitást köztesréteg szinten.

Egyelőre elegendő megjegyeznünk, hogy ezek a szolgáltatás-orientált architektúrák alap építőkövei. A későbbi fejezetek alapján egy jóval teljesebb kép fog kialakulni arról, hogy mik is azok a webszolgáltatások, hogyan kapcsolódnak egymáshoz és milyen haladó lehe-tőségeket biztosítanak.

In document Programrendszerek fejlesztése (Pldal 15-18)