Professional Documents
Culture Documents
Egwege (2) FQWF PDF
Egwege (2) FQWF PDF
Egwege (2) FQWF PDF
alapelvek – Chapter 8
Mitől lesz egy szolgáltatás „megfelelő”? Hogyan lehet
tényleg „szolgáltatás orientált” Web szolgáltatásokat
definiálni?
SOA megközelítés az tervezési módszertan is,
szolgáltatások, leírások, üzenetek, stb. mind
szolgáltatás-orientáltak kell, hogy legyenek
Üzleti logika <-> Alkalmazás logika
Előbbi a vállalat tevékenységéből ered, tipikusan
folyamat modellekkel lehet leírni
Utóbbi az üzleti logika automatizálására
implementált technológiai megoldásokat tömöríti
magába – standard v. egyedi fejlesztésű
rendszerek formájában, melyek a vállalati IT
infrastruktúrán működnek
Szolgáltatás orientáltság egységesen vállalati logikát
jelent.. ?? – lásd folytatás
28
SOA – Szolgáltatás orientáltság –
alapelvek - szolgáltatások
Névből adódóan a szolgáltatások központi szerepet
játszanak
Szolgáltatások szintje – üzleti és alkalmazási
absztrakciós szintet is jelenthet – ÁBRA(282 – Fig. 8.2)
– alkalmazás réteg, szolgáltatás réteg, üzleti réteg.
Szolgáltatások egymásba ágyazása (encapsulation) –
szülő, gyerek szolgáltatások
Fizikai szinthez közel lévő szolgáltatások az alkalmazási
logika közvetítésére (encapsulation) valók. – ÁBRA(283
Fig. 8.3)
29
SOA – Szolgáltatási szintek &
szolgáltatás „becsomagolás”
30
SOA – Szolgáltatás orientáltság –
alapelvek – SOA építőelemek
Web szolgáltatások- melyek műveleteket „tartalmaznak”
Műveletek a szolgáltatás 1-1 funkciójának végrehajtására
képesek – végrehajtás üzenetfogadás-küldés során történik
Szolgáltatás hívó és a hívott együtt megoldanak egy
automatizált üzleti feladatot az üzenetváltás során
Logikai egységek ez alapján: SOAP üzenetek, Web
szolgáltatások, Web szolgáltatás műveletek, és maga a
megoldott feladat (activity) - > SOA terminológiában:
üzenet, művelet, szolgáltatás, folyamat
Autómatizálási logika (automation logic) és építőelemek
kapcsolata:
Üzenetek: elemi kommunikációs egységek
Műveletek: elemi munkaegységek
Szolgáltatások: feldolgozási logikai egységek
(műveletek gyűjteménye)
Folyamatok: automatizálási logika egységek
(megfelelően összekötött – koordinált – műveletek
halmaza)
ÁBRA 287 - Fig. 8.7-8.8 31
SOA – Szolgáltatás orientáltság –
alapelvek – SOA építőelemek
Autómatizálási logika (automation logic) és építőelemek
kapcsolata:
ÁBRA 287 - Fig. 8.7-8.8
32
SOA építőelemek funkciói,
kapcsolataik
Üzenetek: tartalmazzák egy munkaegység
végrehajtásához szükséges adatokat
Műveletek: adják a logikát mely az üzenetek
feldolgozásához szükséges egy munkaegység
végrehajtásánál
Szolgáltatások: logikailag összetartozó műveletek
gyűjteménye, amik együtt egy nagyobb
feladategység végrehajtásához kapcsolódnak
Folyamatok: tartalmazzák az üzleti szabályokat
melyek meghatározzák mely műveleteket, milyen
sorrendben kell végrehajtani egy nagyobb
munkaegység végrehajtása érdekében.
FONTOS: Szolgáltatás != Műveletek(Műveletei) ill.
folyamat NEM szolgáltatásokból építkezik
33
Web services & SOA:
SOA Alapelvek
Általános IT megoldás tervezési gyakorlata a probléma ciklikus több részre
osztása (separation of concerns)
SOA-nal is igaz, de mindezt az alapelvek megtartásával kell tenni
SOA alapelvek= szolgáltatások tulajdonságai:
Újrafelhasználhatóság (reuseable)
Szolgáltatási szerződés megosztása (share service contracts)
Laza csatolás (loose coupling)
Működési logika elrejtése – absztrakt interfész szint képzése (abstract
underlying logic)
Összekapcsolhatóak (composable) -> granularitás
Autonómok (autonomous - jól meghatározott határokon belüli logikát fednek
le s egymástól függetlenek)
Állapotmentesek (stateless) – ez biztosítja a laza csatolást. A szolgáltatások
állapotmentességét explicit biztosítani kell, akkor is, ha ezzel máshol kell az
állapotmenedzselést megvalósítani
Megtalálhatóak (discoverable) – manuális és programozott kereséssel is meg
kell tudni találni őket ill. szolgáltatási szerződésüket
Alapvető szolgáltatásorientált elvek.
Alapelvek cégenként és SOA keretrendszer fejlesztőknél is nagyban eltérnek
prioritásukban
34
SOA Alapelvek:
Szolgáltatások újrafelhasználhatóak
Újrafelhasználhatóságra/újrafelhasználásra való tervezés
A későbbi fejlesztések megelőzése, wrapper szolgáltatások
fejlesztésének megelőzése
Szolgáltatás műveletek gyűjteménye ->újrafelhasználható
műveletek
Messaging (SOAP headers) indirekt segítik elő az
újrafelhasználást
Kevésbé munka specifikus ->generikus szolgáltatások
Példa: B2B számlabeküldő fél speciálisan a fő partnere – nagyvállalat
– fogadó szolgáltatására készítette el a saját számlaküldő
szolgáltatását és annak MetaData lekérő műveletét. Ezek más
partnernél nagy valószínűséggel nem lesznek
újrafelhasználhatóak.
Jól utalhat már az elnevezés is erre: GetNetriskMetadata
Netrisk oldalon jobb esetben generikusak a fogadó műveletek
35
SOA Alapelvek:
Formális szolgáltatási szerződés
Szerződés részei:
Szolgáltatás végpont (endpoint)
Műveletek
Műveletek által támogatott input/output üzenetek
Szabályok és protokollok a szolgáltatás és műveletei
működésére vonatkozóan
Szolgáltatást leíró szemantikus információk – legutóbbi
elem.
Szolgáltatást igénybe vevők szorosan, csak erre
támaszkodnak: verziózás, karbantartás fontossága…
PÉLDA: tipikusan nagyvállalatok (vagy törvényi előírások,
kormányrendeletek) megadják a feltételeket – service
contracts – és ehhez igazodnak a partnercégek már a
fejlesztés során.
36
SOA Alapelvek:
Szolgáltatások lazán csatoltak
IT környezet változása/fejlődése külső, előre nem látható
tényezőktől befolyásolt -> fel kell készülni a változásokra, ezt
a rugalmasságot a laza csatolás elve közvetlen támogatja
Szolgáltatások ismerik egymást, kommunikálnak, használják
egymás műveleteit, de nincsenek összekötve, nem függenek
egymástól (ÁBRA 297 - Fig. 8.16)
(állapotmentes) Web szolgáltatások megvalósításuknál fogva
eleve lazán csatoltak
37
SOA Alapelvek:
Működési logika elrejtése
„Service interface level abstraction”
Üzleti logika elrejtése (fekete dobozok)
Lefedett logika terjedelme nagyon változó lehet
(granularítás) – (pl. egy szolgáltatás több vállalati
alkalmazásból is „foghat össze” működési logikát
A mögöttes logikát a művelet „valósítja” meg (nem a
szolgáltatás)
Web szolgáltatás technológia implicit biztosítja
38
SOA Alapelvek:
Szolgáltatások összekapcsolhatóak
„Services are composable”
Szolgáltatások más szolgáltatásokat is magukba rejthetnek
(pl. orchestration)
Nem lényeges (és nem is ismert), hogy a szolgáltatás
„maga”, vagy más szolgáltatások bevonásával old meg egy
feladatot
Composability az újrafelhasználás egy kézenfekvő formája
Szolgáltatás összekapcsolhatóság alapvetően függ a
definiált műveletektől (operation composability)
Példa: Korábbi számlafeldolgozó szolgáltatása és kapcsolódó
beszállító profil/egyenleg ellenőrző ill. kifizetést
ütemező/könyvelő szolgáltatás
39
SOA Alapelvek:
Szolgáltatások autonómok
„Services are autonomous”
Szolgáltatás határai (lefedett üzleti logika) jól meghatározott
Ez biztosítja az „önfenntarthatóságot” (self-governance)
Nem függenek más szolgáltatásoktól, így önállóan fejleszthetőek,
deployolhatóak, stb.
Autonómia fenntartása a fő vezérelv az alkalmazási és üzleti
logika „szolgáltatásokba osztásánál” – átfedések elkerülése
Service level autonomy (pl. wrapper szolgáltatás) és pure
autonomy (control and ownership of underlying logic)
Példa: számlaküldő szolgáltatás, mely a pénzügyi vállalati rendszerre
épít (szolgáltatás szintű autonómia)
40
SOA Alapelvek:
Szolgáltatások autonómok – B2B példa
41
SOA Alapelvek:
Szolgáltatások állapotmentesek
„Services are stateless”
Állapotinformációk mennyiségének és azok birtoklási
időtartamának minimalizálása
Szolgáltatás üzenetfeldolgozáskor nem állapotmentes ->
hosszú futásidejű szolgáltatások(műveleteknél)nál van
gond.
Állapotmentesség az újrafelhasználhatóság előfeltétele
Minél inkább állapot teli az üzenet (SOAP headers, WS*
szabványok) annál inkább állapotmentes a szolgáltatás
Állapotmentesség foka mérhető – ld. művelet átfutási ideje
Példa: Wrapper szolgáltatás a megrendelés feldolgozásra ami
ERP rendszerre épül. Feldolgozási idő hosszú lehet,
állapotmentesség emiatt alacsony.
42
SOA Alapelvek:
Szolgáltatások kereshetőek
„Services are discoverable”
Discovery segít megelőzni ugyanannak többszöri
leprogramozását, elősegíti az újrafelhasználhatóságot
Szolgáltatás szintű kereshetőség != SOA szintű
kereshetőség
Példa: a nagyvállalatok (tipikusan több partnerrel
rendelkeznek) biztosítják a discovery lehetőségét, s így
tervezik a szolgáltatásokat is, míg partnercégeik, akik
tőlük függenek, egyedileg „rájuk” tervezik szolgáltatásaikat
ezt nem teszik meg.
Ennél sokkal fontosabb a szervezeten belüli szolgáltatás
kereshetőség biztosítása. Fontos, ha lehet, a
szolgáltatások szemantikáját is bevonni a discovery
folyamatba (nem csak egyszerű WSDL alapon).
43
SOA Alapelvek összefüggései –
Chapter 8.4-Újrafelhasználhatóság
Autonómia biztosítja hozzá a futtatási környezetek elválasztását
Állapotmentesség közvetlenül meghatározza a mértékét
(maximalizálja)
Kereshetőség közvetítő médiumot nyújt az elősegítéséhez
Szolgáltatás absztrakció az újrafelhasználható csomagokba
tömöríti a szolgáltatásokat
Összekapcsolhatóságot (composability) az újrafelhasználhatóság
teszi lehetővé (annak egy fajtája)
Laza csatolás biztosítja a szolgáltatások függetlenségét, ami
támogatja az újrafelhasználhatóságot.
OO analógia: újrafelhasználható osztályok az OO-ban. Absztrakció,
egymásba ágyazás az újrafelhasználhatóság elősegítéséért
hasonló céllal létezett már OO-ban is.
WS támogatás: WS-ek NEM automatikusan újrafelhasználhatóak, ez
a szolgáltatás által lefedett logika természetétől függ ->
tervezésnél erre figyelni kell.
44
SOA Alapelvek összefüggései
Szolgáltatás szerződés
~ szükséges az összekapcsolhatósághoz
~ képezi a szolgáltatás kereshetőség alapját (tárgyát?)
~ szükséges a működési logika elrejtéséhez
~ lehetővé teszi szolgáltatások laza csatolását
45
SOA Alapelvek összefüggései
Szolgáltatások laza csatolása
~ támogatja az összekapcsolhatóságot (composability)
~ lehetővé teszi a szolgáltatások autonomiáját
~ olyan környezetet biztosít mely elősegíti a szolgáltatások
állapotmentességét
~ minimalizálja a szolgáltatások egymástól való függését
támogatva ezzel az újrafelhasználhatóságot
~ szolgáltatási szerződések használata által
megvalósítható
47
SOA Alapelvek összefüggései
Összekapcsolhatóság (composability)
Szolgáltatás autonómia mértéke növeli
Szolgáltatás állapotmentesség mértéke is növeli
Szolgáltatás szerződés alkalmazása szükséges hozzá
Újrafelhasználhatóság közvetlen elősegíti (annak a composability
egy fajtája)
Szolgáltatások laza csatolása is támogatja
48
SOA Alapelvek összefüggései
Szolgáltatás autonómia
~ növeli az összekapcsolhatóság mértékét
~ futtatási környezet elhatárolásával hozzájárul az
újrafelhasználhatósághoz
~ növeli az állapotmentesség mértékét
Szolgáltatások laza csatolása teszi lehetővé
49
SOA Alapelvek összefüggései
Szolgáltatás állapotmentesség
~ növeli az összekapcsolhatóság mértékét
~ maximalizálja az újrafelhasználhatóság lehetőségét
Szolgáltatások laza csatolása biztosítja hozzá a megfelelő
környezetet
Szolgáltatás autonómia növeli mértékét
51