Professional Documents
Culture Documents
Vállalati Alkalmazások Integrációja Szóbeli Tételek
Vállalati Alkalmazások Integrációja Szóbeli Tételek
Józsa Ernő,
Kis Vencel,
Rácz Tamás,
Takács Noémi.
1
Információ
2
Tartalomjegyzék
Tartalomjegyzék 3
1. [Tomi] Adatintegráció 7
Közvetlen hozzáférés / oszto adatbázis: 8
Adatbázis replikáció 9
ETL (extract, transform, load) 10
„Interfész táblák” 11
MDM (Master Data Management) 12
3
Vizsgakérdések 28
4. [Noémi] SOA Alapelvek 29
SOA alapelvek 29
SOA szükségessége 34
SOA vezérelvek és előnye 35
A SOA négy fő jellemzője: 36
vizsgakérdések 36
5. [Noémi] SOA alap topológia, SOA bevezetési módszertanok 37
SOA alap topológia 37
SOA bevezetési módszertanok 38
Projekt (SOA bevezetés életciklusa) 38
Stratégiák: 39
Top-down 39
Bo om-up 40
Agilis 41
vizsgakérdések: 43
4
Folyamat interfész megtervezése 49
Partner szolgáltatásokkal folytato kommunikáció definiálása 52
Workflow logika megadása 54
Együ működési szkenáriók igazítása, folyamat finomítása (opcionális) 59
vizsgakérdések 60
5
Tanult SOA bevezetés szolgáltatás analízis, tervezés lépései 76
11. [Noémi] WS* szabványok 77
EAI definíció: 97
6
1. [Tomi] Ada ntegráció
Alkalmazásintegráció nem minden esetben lehetséges:
● Közvetlen hozzáférés
● ETL, ada sz tás
● Batch és valós idejű működés
Megoldások:
7
Közvetlen hozzáférés / oszto adatbázis:
● Közös adatbázis
● Az alkalmazások azonos sémába (-ból) dolgoznak
● Az alkalmazások egymástól függetlenek
Előnye:
● Egyszerű, költséghatékony:
○ 1 DB könnyen karbantartható
○ Nincsenek DB szinkronizálási feladatok
○ DB szintű konzisztencia biztosíto
● Nincs hard-coded függőség az alkalmazások közö
● Olyan esetben is alkalmazható, ahol az alkalmazás nincs felkészítve az
integrációra (semmi plusz alkalmazásintegrációs interfész vagy adapter nem
szükséges)
Hátránya:
8
○ Eltérő / ellentmondásos üzle logika és ellenőrzések lehetnek az
alkalmazásokban
● Alkalmazások adatstruktúra-függősége
○ Adatstruktúra módosítás: minden alkalmazást egyszerre érint
Adatbázis replikáció
Előnye:
9
Hátránya:
10
○ ETL tool-ok segítségével (hatékonysági növekedés 3-5X ☺ @ETL tool
vendors) pl. Oracle Warehouse Builder -OWB, Microso Integra on
Services - SSIS, IBM Cognos Data Manager, SAS Data Integra on Studio))
Előnyök:
Hátrányok:
„Interfész táblák”
11
● Az interfész táblák kerülhetnek külön adatbázisba, de közvetlenül valamely
alkalmazás adatbázisába is
● Az adatcsere lehet egy- és ké rányú, pl.:
○ A: beír – B: kiolvas, töröl
○ A: beír –B: kiolvas, feldolgoz, update-el – A: feldolgozás eredményét
kiolvassa
12
● Új ügyfél-stratégiák megvalósítását teszik lehetővé
● Esemény-orientált akciók
ETL
Előnyök:
13
● Adatstruktúra függőség sincs
● Olyan esetben is alkalmazható, ahol az alkalmazás nincs felkészítve az
integrációra
● Könnyebben méretezhető
● Dead-lock szituációk könnyebben elkerülhetők, lokalizálhatók
Hátrányok:
Extract
● Közvetlen adathozzáférés
● Adatbázisok
● Fájlok
● Szabványos források (JDBC, ODBC, WebServices, ...)
Transform
● Transzformációs job-ok
● Hozzáférés, transzformációk és betöltés szekvenciális sorozata
● Pipeline-olható
● Párhuzamosítható:
○ Par cionálással
○ Nem függő job-ok párhuzamos fu atásával
● Újrahasznosíthatóság
Load
● Betöltés
14
● Batch alapú, sta kus célba
● Real- me, web services válaszként
Ada sz tás
Adattisztítás szükségessége
Investigation
15
● Lexical analysis (Lexikai elemzés)
○ Determining business significance of individual pieces
(Az egyes darabok üzle jelentőségének meghatározása)
● Context Sensi ve (Tartalom érzékenység):
○ Iden fying various data structures and content
(Különböző adatszerkezetek és tartalom azonosítása)
○ “The instruc ons for handling the data are inherent within the data
itself.”
"Az adatok kezelésére vonatkozó utasítások magában az adatokban
vannak.”
Standardizáció
16
Matching
Survivorship
17
3. [Ernő] Alkalmazásintegráció
18
Fájl-csere alapú kommunikáció
19
Szinkron kommunikáció
20
Remote Procedure Call (RPC)
21
Szinkron - RPC, RMI
RMI = RPC + Object-orienta on
22
Aszinkron - Messaging
Messaging
23
Messaging – rendelkezésre állástól független
● Byte-tömb
● Szöveges üzenet (XML, Egyszerű XML, SOAP (pl.: SOAP-over-JMS), CWF (Custom
Wired Format), TDL (Tagged/Delimited)
● Serializált objektum (Pl.: Java – Java kommunikáció esetén)
24
Web services
Olyan hálóza alkalmazás vagy komponens, amely a SOAP protokoll és a WSDL
technológia felhasználásával, XML dokumentumok formájában kommunikál a külvilággal
25
26
27
Vizsgakérdések
Integrációs minták, technológiák
28
4. [Noémi] SOA Alapelvek
SOA alapelvek
= szolgáltatások tulajdonságai:
(PINK: OO analógiát írtam oda, ha segít valakinek)
● Újrafelhasználhatóság
(reuseable)
ú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éteze már OO-ban is.
29
● Szolgáltatási szerződés megosztása
(share service contracts)
objektum orientált alkalmazások interfészeihez hasonlítható. „WSDL first”
megközelítés a tervezésnél SOA-nál ua. mint „Interface first” az OO-ban.
● Lazacsatolás
(loosecoupling)
30
ugyan az interfész némileg elválasztja az osztályt annak „hívójától”, az öröklés és
egyéb eljárások mégiscsak elősegí k az osztályok szoros összekötését.
● Összekapcsolhatóak
(composable)->granularitás
fogalmak összerendelését mint aggregáció és kompozició támogatja – ahogy a
31
SOA is az összekapcsolhatóságot. Ahogy az objektumokat építjük elemekből, úgy
építjük a szolgáltatásokat is szolgáltatásokból/műveletekből.
● Autonómok
(autonomous-jól meghatározo határokon belüli logikát fednek le és egymástól
függetlenek)
autonómia jobban támogato SOA-ban mint OO-ban: SOA-ban a laza csatolás
preferált és szolgáltatás függetlenség egyértelmű cél. Ugyanakkor az objektum
közö referenciák – pl. öröklés – csökken k az objektum szintű autonómiát az
OO-ban.
32
● Állapotmentesek
(stateless) – ez biztosítja a laza csatolást. A szolgáltatások állapot mentességet
explicit biztosítani kell, akkor is, ha ezzel máshol kell az állapotmenedzselést
megvalósítani
objektumok az OO-ban természetüknél fogva állapo al rendelkeznek. A SOA
állapotmentes tervezési megközelítése így teljesen eltér az OO-tól. (Persze lehet
SOA-ban is ilyen állapo eli szolgáltatásokat tervezni, de ez inkább kerülendő...
lásd. korábban)
● Megtalálhatóak
(discoverable)–manuális és programozo kereséssel is meg kell tudni találni őket
ill. szolgáltatási szerződésüket
az osztályok újrafelhasználhatóságának elősegítése mia az OO-ban is cél
konzisztens, önleíró interfészek definiálása. Ugyanakkor a discovery elősegítése
erősebben jellemző a SOA-ra, discovery-t mind tervezési, mind futásidőben
támogatja.
33
● Alapvető szolgáltatásorientált elvek.
SOA szükségessége
● Az információs rendszernek az üzle változásokat gyorsan és hatékonyan kell
támogatnia, miközben követnie kell az újabbnál újabb technológiák gyors
fejlődését is. A legtöbb vállala információs rendszer felépítése heterogén,
különféle alrendszereket, alkalmazásokat, technológiákat és architektúrákat fog
össze. Ezen technológiák minél hatékonyabb integrálása elengedhetetlen
fontosságú, mivel csak az integrált információs rendszerek tudják hatékonyan
támogatni az üzletmenetet, például döntéstámogatással, azonnali információ
hozzáféréssel, értéknövelő szolgáltatásokkal.
34
SOA vezérelvek és előnye
● A szolgáltatásorientált architektúrák egy igen egyszerű vezérelve, hogy a
szo verfejlesztés folyamata során a funkciókat könnyen együ működö
szolgáltatásokként implementáljuk. Ezek a szolgáltatások lazán csatoltak lesznek,
egy jól definiált feladatot látnak el, ezáltal könnyedén újrafelhasználható
építőkövekként funkcionálnak. A szolgáltatásokat felhasználva pedig újabb,
immár bonyolultabb funkciókat építhetünk fel.
● Azt a folyamatot, melynek során a már meglévő szolgáltatásokat újabb
funkciókba rendezzük orkesztrációnak nevezzük. Az orkesztráció velejárója a SOA
szemléletnek, mivel az egyes funkciók az építőkövekként szolgáló
szolgáltatásokban implementáltuk, az orkesztráció során ezeket tetszőleges
módon szervezzük újabb és újabb csoportokba, így kapunk egy az üzle
követelmények változását könnyen követni tudó, rugalmas réteget a
szolgáltatásaink fele .
35
A SOA négy fő jellemzője:
● Komponens-alapú: szabványos szolgáltatási interfészekre támaszkodik az
alkalmazások és erőforrások felé
vizsgakérdések
1. SOA Alapelvek
a. Építőelemek, kapcsolataik
b. Újrafelhasználhatóság (reuseable)
c. Szolgáltatási szerződés megosztása
d. Laza csatolás (loose coupling)
e. Működési logika elrejtése – absztrakt interfész szint
f. Összekapcsolhatóság (composable)
g. Autonómia
h. Állapotmentesség (stateless)
i. Kereshetőség(discoverability)
j. OO analógia + Web service támogatás
k. Egyes alapelvek összefüggése – legfontosabb néhány…
36
5. [Noémi] SOA alap topológia, SOA bevezetési módszertanok
37
SOA bevezetési módszertanok
Projekt szakaszok:
38
● Szolgáltatás karbantartás (Administra on)
Projekt sikere: NEM az eredmény SOA „mértéke”, hanem a kitűzö célok elérésének
vizsgálata a rendelkezésre álló idő és költségkeret függvényében
Stratégiák:
● Top-down
● Bo om-up
● Agile (meet-in-the-middle)
Top-down
Lépései:
39
○ Itera v visszacsatolás – folyamatonkén szolgáltatás definiálás, vizsgálat,
finomítás
● Szolgáltatás orientált analízis végrehajtása
● Szolgáltatás orientált tervezés végrehajtása
● Szolgáltatások implementálása
● Szolgáltatások tesztelése
○ Funkcionális & QoS – újrafelhasználhatóság mia körültekintőbb tesztelés
● Szolgáltatások installálása
○ Betöltés a produk v rendszerbe
○ Újrafelhasználás mia gyakori a technikai és funkcionális „plusz” dolgok
használata – pl. security, accessibility v. nagyobb teljesítmény mint épp
szükséges volna
Bottom-up
40
■ Alkalmazási igényeknek megfelelő szolgáltatások definiálása (pl.
B2B point-to-point integráció, vagy SOAP alapú komm.
Bevezetése)
■ A szolgáltatások ált. üzle logikát (is) tartalmaznak (hybrid
services)
● Alkalmazási szolgáltatások tervezése
○ Wrapper, 3. party és auto-generált proxy-k-nál nem érdekes
○ Egyedi szolgáltatások tervezése szabványok alapján a homogenitás
céljából
● Szükséges alkalmazási szolgáltatások fejlesztése
○ Korábbi specifikáció alapján
● Szolgáltatások tesztelése
○ Legacy logika tesztelése
○ Legacy alkalmazások performancia (esetleg stressz) tesztelése az
szolgáltatások nézőpontjából
○ Security tesztelése Installálás az éles rendszerbe
Agilis
41
● Mivel egyszerre 2 oldalról közelítjük a megoldást sokkal komplexebb szervezést
(összehangolás) igényel
Lépések:
42
● Létező szolgáltatások valamennyi verzióját meg kell tartani → nagy karbantartási
és erőforrás igény
vizsgakérdések:
43
6. [Vencel] Szolgáltatási szintek, szolgáltatási szint konfigurációk
Szolgáltatási szintek
A SOA alapelvek önmagukban semmisek, ezért törekedni kell rájuk és tervezni
velük→ vállalatnál a SOA megközelítést be kell vezetni (szolgáltatási szintek definiálása és
megfelelő használata)
● “u lity services” ← nem üzle célú, nem kapcsolódik egyik üzle modellhez
sem, olyan szolgáltatások, amelyek sok másik szolgáltatásnak is hasznosak, pl.
árfolyam váltás, kivételkezelés, no fica on, esemény logolás..
FYI check for more : UTILITY SERVICE link :)
● magas szinten újrahasználhatóak
● közös vállala erőforrásokat és képességeket reprezentálnak
44
● ado pla orm erőforrásait közve k
● funkcionalitást jól meghatározo rendszer kontextushoz is köthe k
● az alkalmazások sokfélesége mia gyakran inkonzisztensek a granularitásukat
tekintve (mi az a szemcséze ség? :( )
● lehetnek saját, egyedi fejlesztések is, 3. party fejlesztések, wrapper
szolgáltatások,
pl. SystemNo fica onService
45
● pl. kifizethetőség, ügyfélegyenleg ellenőrző, könyvelést indító szolg.
○ hybrid: kis cégek, egyedileg fejleszte wrapper szolgáltatásai →
alkalmazási szintre soroljuk inkább
-------------------------------------------------
2. hybrid és u lity szolgáltatások (2 szint) néhány hybrid használ u lity szolg-okat
3. task centric és u lity (2 szint) már jól elkülöníte 2 szint, nem keverednek
--------------------------------------------------
4. u lity, en ty centric, task centric (3 szint) az üzle logikát 2 féle szolg. fedi le
5. u lity, hybrid app, process szolgáltatások (3 szint) 2. + orkesztrációs szint
6. u lity, task centric, process (3 szint)
7. u lity, en ty centric, process (3 szint)
--------------------------------------------------
8. u lity, task centric, en ty centric, process (4 szint)
46
Ezek közül általában a szolgáltatások mérete, tulajdonságai alapján választunk. Hybrid
szolgáltatások szinte mindig találhatók legacy rendszereknél (régi, elavult technológiával
rendelkező hasznos rendszer). Nagy stratégiai előny lehet hosszútávon a megfelelő
megközelítéssel az alkalmazási és üzle szint minél jobb szétválasztása különösen üzle
ÉS folyamat szint együ es bevezetésével.
vizsgakérdések:
1. Szolgáltatási szintek
a. Alkalmazási szint
b. Üzle szint
c. Folyamat szint
Alapok
● Legfelső réteg, workflow logika megvalósítás (ha létezik külön orkesztrációs szint
akkor BPEL, egyébként...)
● Egyik legfontosabb kérdés: mikor, hogyan kerülhetünk abnormális működési
ágba, s ekkor mi történik, mi a teendő
● Régen: üzle elemzők modelleztek diagrammokat rajzolva, melyeket átadták az
IT tervezőknek, szakembereknek akik implementálták → komoly eltérési/hiba
lehetőségek
● BPEL: összevonja a tervezési és implementációs nyelvet/környezetet (bár modern
BPEL tervezési eszközök megint „eltávolodnak” a kódtól)
47
● Timesheet benyújtása
● Számlázo órák ellenőrzése
● Túlórák és he limitek ellenőrzése
● Dolgozó profil frissítése
● Fele es értesítése
● Dolgozó értesítése
48
Lépések
1. Interakciók modellezése
1. Interakciók modellezése
● Folyamat és résztvevő partnerszolgáltatások együ működése már
körvonalazódo
– ld. előző fejezet, taszk centrikus szolg. Tervezés
● Módszer: ak vitás diagramok elemzése
● Ese anulmány
○ Korábbi 2 ak vítás diagram: 1 normál lefutás, 2 hibás lefutás (+ értesítés
küldése)
ld. üzle szolg. tervezése
○ A folyamatnak 4 partner szolgáltatása és egy hívó (kliens) szolgáltatása
lesz.
○ ÁBRAAA592, 593, 594. Fig. 16.8,9,10
2. Folyamat interfész megtervezése
● Általában folyamat tervezők generálják a WSDL-t, de jó ha tudjuk módosítani
● Manuálisan (mint korábbi szolgátatás design-nál, pl. üzle szolg, ld.előző
szakaszban)
○ 1. Input, output adatok felmérése műveletenként, types rész XSD-inek
megadása, ha kell külön file-ban
49
○ 2. Interfész definiálása – portType rész – opera on alkotóelemeinek
megadásával majd message építőelemek és part-jaik megadása XSD
hivatkozásokkal. Eénevezési koncenviók betartása – mint más szolgáltatás
WSDL-eknél.
○ 3. Meta-információk elhelyezése (documenta on tag)
○ 4. További tervezési standard-ok érvényre ju atása (akár a tervezési
eszköz „ellenében”)
○ További szolgáltatás tervezési dolgok (pl. SOA alapelvek figyelése, mint
állapotmentesség, újrafelhasználhatóság i nem értelmezhető…)
Esettanulmány
Submit művele el
50
51
3. Partner szolgáltatásokkal folytatott kommunikáció definiálása
● BPEL definíció elkészítésének kezdete
○ 1. Folyamat partner szolgáltatásainak meghatározása, szerepek (role)
hozzárendelése
○ 2. Partner szolgáltatások WSDL-jének bővítése a megfelelő
partnerLinkType-al
○ 3. Folyamaton belül partnerLink elemek készítése a partner
szolgáltatásokhoz
○ 4. Változók definiálása kimenő és bemenő üzenetekhez (variables)
○ Ezzel a workflow kommunikációkat lefedtük.
○ Ált. ez a tevékenység (grafikus) UI-al is támogato .
52
53
4. Workflow logika megadása
Esettanulmány
54
○ Először az Invoice szolgáltatást kell meghívni, hogy a leado órákat a
számlázo al összehasonlíthassuk: az összehasonlítást ez a szolgáltatás
NEM végzi el, csak visszaadja a számlázo óraszámot ->
○ Meghívása elő assign-al a ClientSubmission változóból kiszedjük a
customer ID-t és a dátumokat – ezek lesznek az inputok
○ Assign és Invoke elemek létrehozása ld. 21-es dia.
Esettanulmány
55
● Először az Invoice szolgáltatást kell meghívni, hogy a leado órákat a számlázo al
összehasonlíthassuk: az összehasonlítást ez a szolgáltatás NEM végzi el, csak
visszaadja a számlázo óraszámot
● Válasz a megfelelő InvoiceHoursResponse BPEL változóban lesz – ezt az
óraszámot hasonlítjuk a Timesheet-en lévővel – switch-case használata –ld. 23.
dia
○ Nem egyezőségnél hiba dobása – throw elem -> faultHandlers – ld.
Később
● Ezt a assign-copy-from-to, invoke, switch-case, throw sablont rá lehet húzni a
folyamat további részeire is (és ált. legtöbb workflow egyes részeire is) – korábbi
BPEL tervezési ábra.
● További két lépés röviden
○ TimesheetID kiszedése a ClientSubmission változóból a
● TimesheetAuthoriza onRequest változóba, hogy meghívjuk a Timesheet
szolgáltatás GetAuthorizedHours műveletét. Az eredmény kiértékelését
switch-case-el végezzük, ha gond van (nem volt engedélyezve a munka) hibát
dobunk (throw).
Esettanulmány
56
● További két lépés röviden
○ 1. TimesheetID kiszedése a ClientSubmission változóból a
TimesheetAuthoriza onRequest változóba, hogy meghívjuk a Timesheet
szolgáltatás GetAuthorizedHours műveletét. Az eredmény kiértékelését
switch-case-el végezzük, ha gond van (nem volt engedélyezve a munka)
hibát dobunk(throw).
○ 2. EmployeeID kiszedése a ClientSubmission változóból az
EmployeeHoursRequest változóba, hogy meghívjuk az Employee
szolgáltatás GetWeeklyHoursLimit műveletét. Az eredmény kiértékelését
switch-case-el végezzük, ha gond van (limitet túllépte a dolgozó) hibát
dobunk (throw).
Esettanulmány
● Hibakezelés – faultHandlers
○ Keretkonstrukció – ld. 26. dia
○ Esetünkben catchAll-al mindent elkapunk
○ A hibakezelésnél végrehajtandó üzle feladataink
■ Munkatárs history-jának frissítése – ld. 27. dia
■ Fele esének értesítése – ld. 28. dia
■ Munkatárs értesítése – ld. 28. dia
57
○ Assing-invoke implementációk elhelyezése a korábbi keretbe - sequence
58
5. Együttműködési szkenáriók igazítása, folyamat finomítása (opcionális)
● Interakciós modellek megőrzése -> dokumentáció szerves része → későbbi
karbantartás, továbbfejlesztés inputja, továbbá
● Teszt esetek is ez alapján definiálhatóak
● Esetleges új szolgáltatás együ mködési igényel kiszolgálása → visszacsatolás
● BPEL op malizálási lehetőségek keresése
○ Többféle módon is definiálható ugyanaz a workflow logika BPEL-ben
■ Ak vitások újrastrukturálása teljesítménynövekedés céljából
■ Kód „áramvonalasítása” – szabványok, stb -> könnyebb
karbantarthatóság
■ Új képességek, lehetőségek keresése
59
Esettanulmány
vizsgakérdések
SOA folyamat szolgáltatás tervezése – BPEL
1. Alapok
2. Lépések
a. Interakciók modellezése
b. Folyamat interfész megtervezése
c. Partner kommunikációk formalizálása
d. Folyamat logika definiálása
e. Együ működési szkenáriók feltérképezése és folyamat definíció
véglegesítése
3. Ese anulmány: Timesheet-es folyamat szolgáltatás
60
8. [Ernő] Séma illesztés
Elérhető vállala sémák (pl. xCBL, Oagis)
● Transzformációk alkalmazása
○ Nyílt szabványokon és elterjedt standard eszközökön alapuló megoldás
● Futásidőben is működő megoldás készítése
○ Újrafelhasználhatóság, modularitás, átlátszóság figyelembevétele
● Nem funkcionális teljesítmény paraméterek vizsgálata
○ Kiszolgálási idő és áteresztőképesség becslése és mérése speciális vállala
környezetben
61
○ Tartalmazási viszonyban van – ha az egyik (A) reprezentálja valamennyi
valós világbeli en tást melyiket a másik (B) reprezentálja
○ Á edésben vannak - ha van olyan valós világ beli en tás amit A és B is
reprezentál, de A nem tartalmazza B-t és B nem tartalmazza A-t
○ Különbözőek – ha A nem reprezenál 1 olyan valós világbeli en tást sem
amit B is.
● Összete pusok relációja -> interfészek irányíto kompa bilitása
(összekapcsolhatóság egy ado folyamatban)
○ Globális és lokális séma
■ Alkalmazási területek összekapcsolása tervezési időben,
folyamatkomponálás elő
○ Reláció -> transzformációk elemhalmaza
■ A (globális en tás) és B (lokális en tás) ekvivalensek (őket
transzformációs szabályokba foglalva össze kell kötni)
■ Ha A tartalmazza C-t (lokális en tás), akkor valószínűleg össze kell
kötni A-t C-vel valamennyi transzformációs szabályban
■ Ha A és D (lokális en tás) á edésben vannak, akkor lehet, hogy
össze kell kötni A-t D-vel valamennyi leképzési szabályban
Megközelítések
● Lingvisz kus – „string alapú” egyezőségek értékelése –
pl. részszavak, leghosszabb előtagok, stb.
● Strukturális – fastruktúra hasonlóságának vizsgálata –
pl. csomópontok hasonlósága (gyerek, szülő, leszármazo , ős-csomópontok stb.)
● Szótár alapú – tartalmi kapcsolat megítélése szótár alapján –
pl. Ontológia, szeman kus szótár
● Kombinált – ke ő(vagy több megközelítés) ötvözése
○ Legelterjedtebb
62
○ Komponensekre oszto – azokat súlyozva ér el eredményt:
F= a * A + b * b + c * C.... , ahol a+b+c.... = 1
● Hasonlósági mérték megadása: 0..1 skálán
○ 1: a két en tás pontosan megegyezik
○ 0: nincs tartalmi kapcsolat a 2 en tás közö
NTA algoritmus
Fogalmak szeman kus távolságát meghatározó algoritmus: 3 tagfüggvény,
● elnevezések N(),
● csatolt fogalmak és leírások T(), illetve
● kapcsolódó a ribútumok A()
A képlet:
A képlet N része:
A képlet T része:
63
A képlet A része:
64
Küszöbérték probléma
65
Jósági mutatók
Vizsgakérdések
1. Probléma formalizálása
66
9. [Vencel] En tás centrikus szolgáltatások analízise és tervezése
(top down módszertanban)
67
1. Létező szolgáltatások felülvizsgálása
● Létezik-e már a megvalósítandó funkcionalitás más szolgáltatásokban (azok
műveleteiben)?
● Vagy létezik-e az a jól definiált környezet egy másik szolgáltatásban ahová a
művelet jelöltjeink passzolnak?
2. Entitás séma definiálása
● Szolgáltatás által használandó üzenetek definiálása – WSDL types
● XSD a SOAP body-ban elhelyeze tartalomra
● Séma tükrözze a benne foglalt tartalmat → en tás centrikus sémák használata
3. Absztrakt interfész elkészítése
4. Szolgáltatás-orientáltság biztosítása
2. Autonómia (autonomy)
3. Állapotmentesség (statelesness)
4. Kereshetőség (discoverability)
68
szolgáltatások használják őket ill. ők alkalmazási szolgáltatásokat
használnak
● Állapotmentesség – vagy magától teljesül, mivel nem fednek le túl nagy
üzle logikát, vagy külön figyelünk rá, ha több alkalmazási szolgáltatást
használnak (document-style SOAP üzenetek használatával)
● Kereshetőség – a korábbi 1. lépés mia is fontos, azaz en tás centrikus
szolgáltatások NEM fedhetnek át funkcionalitásban
○ Megfelelő metadata definiálása, hozzáadása (documenta on
elem)
5. Szolgáltatás interfész szabványosítása, finomítása
● Ez a lépés a szükséges szabványoktól és egyéb követelményektől függ. Egy
lehetséges megközelése:
3. WS-I Basic profile megfelelőség vizsgálata (a profil elvileg kész WSDl-t vár
el, de ami eddig elkészült az is vizsgálható)
69
○ Ezek következetes betartása jó kiindulópont lehet →
újrafelhasználhatóság, komponálhatóság
● Csak addig adjunk hozzá új funckionalitást, amíg annak értelme lehet...
(overhead + újra kell elemezni + implementálni kell majd egyszer, stb.)
Célja:
Folyamata
70
● En tás centrikus szolgáltatásoknál nehéz a terjedelem meghatározása
● Dokumentálás a SOA bevezetési projekt későbbi szakaszai mia kri kus
2. Meglévő üzle alkalmazások/megoldások azonosítása
● Előző pontban azonosíto /lefede funkcionalitás azonosítása meglévő
alkalmazásokban/megoldásokban
● Alkalmazási kényszerek pontos azonosítása csak a későbbi (design)
szakaszokban szükséges
3. Szolgáltatás jelöltek modellezése (service candidates)
● Szolgáltatás műveletek azonosítása, szolgáltatásokba (szolgáltatás
jelöltekbe) csoportosítása
● Ez a későbbi szolgáltatás tervezés legfőbb inputja
71
● Példa: hybrid szolgáltatások fele külön üzle szolgáltatási réteget alkothatunk
● Szolgáltatás modellezés
● Üzle folyamatmodellezés is mindenhol más és más (folyamat modell, eszköz,
nyelv -> minden folyamat egyedi)-> up-front analízis NEM kerülhető el
● Üzle szolgáltatás ~ Vállala belső működési egy egysége (unit of work)
● A folyamatmodellezés és dokumentálás azonban mindenhol más -> megfelelő
megközelítés kiválasztása, példa:
72
● Tipikusan azonnali eredmény elérése céljából használt megközelítés
– kisebb újrafelhasználhatóság
● Előző példánk Task centrikus szolgáltatásai:
○ Számlaküldő szolgáltatás
○ Megrendelés feldolgozó szolgáltatás
○ B2B partner értesítésére feliratkozó szolgáltatás (meta-data periodikus
lekéréséhez)
73
vizsgakérdések (Szolgáltatás tervezés alapok+Entitáscentrikus szolgáltatások
tervezése)
Tervezés folyamata
1. Célja
2. Folyamata
3. Üzle szolgáltatások és definiálásuk
a. Módszertanok: BPM és En tás modellek
b. Task-centrikus és en tás-centrikus szolgáltatások,
folyamat (szolgáltatások)
74
10. [Noémi] Szabványosító testületek + Tanult SOA bevezetés
szolgáltatás analízis, tervezés lépései
Szabványosító testületek
WorldWideWebConsortium(W3C)~400fő
75
● Aktuálisan: Basic Security Profile
● Példa implementációk és best prac ce-ek a használhatóság elősegítésére
● Szo ver szállítók törekednek a Basic Profile-al való kompa bilitásra
Projekt szakaszok:
Lépések
76
11. [Noémi] WS* szabványok
Szabványok:
● WS-Addressing,
● -ReliableMessaging,
● -Policy Framework,
● -MetadaExchange,
● -Security,
● -No fica on Framework,
● -Even ng
Addressing
WS-Addressing szabvány:
77
● Az üzenet ezáltal autonóm kommunikációs egységgé válik -”minden” információt
maga tartalmaz.
● Példa: Service (A, C, D) -> Üzenet[A-tól, B-nek, Válaszolj C-nek, gond van értesítsd
D-t] -> Service B
Előny:
ReliableMessaging
Miután egy szolgáltatás elküldö egy üzenetet, nem tudja azonnak, hogy:
WS-ReliableMessaging szabvány:
● Küldő értesítést kap a siker/vagy hiba tényéről ill hogy a sorrend megfelelő volt-e.
● Megvalósítás SOAP header-ekben
● Plusz logikai réteg: RM source, RM des na on az applica on source és
des na on fele (ala ? ☺), send -> transmit -> receive.
● Visszaigazolások: acknowledgements
○ <wsrm:Sequence><wsrm:SequenceAcknowledgement>
■ <wsrm:MessageNumber>
■ <wsrm:AcknowledgementRange Upper=„8” Lower=„6”>
■ <wsrm:Nack>5</wsrm:Nack> - nega v visszaigazolás
78
■ <wsrm:AckRequested>
● Egyéb elemek,
○ pl. SequenceRef a biztosíto üzenetküldés megvalósításához:
■ Legfeljebb egyszer érjen célba (AtMostOnce)
■ Legalább egyszer (AtLeastOnce)
■ Pontosan egyszer (ExactlyOnce)
■ Sorrendben (InOrder) stb. Expires – elavulás dátuma
● ReliableMessaging biztosítja a SOAP üzenetek kézbesítését, vagy a hiba jelzését
● ReliableMessaging használja az Addressing eszközeit – címzés a visszaigazolásnál,
újraküldésnél, stb.
● ReliableMessaging a korreláció egyfajta megvalósítása lehet – üzenetek
számozása
Correlation
Megvalósítható
● pl. Ws-Coordination-nal:
79
○ ac va on service felelős az ak vítások létrahozásáért, és a contextus
információk létrehozásáért és szétküldéséért.
○ Szolgáltatások ez alapján regisztálhatnak az ado kontextusba. (Megj.
Persze WS- Coordina on sokkal többről szól, teljes ac vity protocoll-okat
valósít meg mint atomic transac ons vagy business ac vi es)
SOA Policies
Mindezeket metaadatok írják le, ezt valósítja meg a Policy (így ezek explicit
leírására/használatára nem kell külön egyedi megoldás)
● Policy leírás felépítése: Policy descrip on {policy alterna ve(- Policy asser on
type(-
● Policy asser on A);(- Policy asser on B)));(policy alterna ve(..(..)))}
● Policy futásidőben mutatja a hívó szolgáltatásnak milyen korlátozások (+stb.)
ado ak a hívo szolgáltatásnál VAGY tervezési időben értelmezhető hívó
szolgáltatást implementáló humán felhasználó által ! Minden a Policy asser on
szintjén van leírva, melyeket opcionálisként és kötelezőként is meg lehet jelölni.
80
● Policy alterna ve – egy elfogadható kombinációt jelöl meg.
● Policy subject: lehet WS, üzenet, vagy más forrás. Gyűjtő leírás: policy scope-ban
(policy a achment használatával).
● <wsp:Policy> : asser on elements: TextEncoding, Language, Specversion...
● <wsp:Policy> : elements: <wsp:ExactlyOne><wsp:All>
● <wsp:Policy> : usage a ributes: Required, Op onal, Rejected, stb.
● <wsp:Policy> <wsp:PolicyA achment><wsp:AppliesTo>
● Policies támogatja a ReliableMessaging-et
● Policies addressing-et használ (applies to)
● Policies metaadatainak terjesztésére a metadata exchange ad megoldást
(szabványt)
● Policies önmagában metaadatokat ad a szolgáltatásokról (viselkedés,
preferenciák, kényszerek, stb.)
● Példa: B2B – számlafogadó rendszer Policy-val mutatja, hogy új (pl.
ReliableMessaging) szabványt használ (preferálja)– de még a régi formátumot is
fogadja (policy alterna ves). E ől függetlenül persze külön rögzíthe a
textencoding-ot kötelezőként minden esetben
81
○ ‘Metadata exchange request’ – szolgáltatás végpont ismert kell hogy
legyen!
● Megvalósítás SOAP üzenetben header-ben&/body-ban – „klasszikus”
Request-Response MEP-ben.
● <wsa:Ac on>
h p://schemas.xmlsoap.org/ws/2004/09/mex/GetMetadata/Request
</wsa:Ac on> VAGY <body><wsx:GetMetadata/><body>
○ Válasz: WSDL, Schema, Policy (lehet maga a dokumentum vagy annak
címe)
● Bővíthetőség (minden más meta lekérése) Get paranccsal:
● <wsa:Ac on> h p://schemas.xmlsoap.org/ws/2004/09/mex/Get/Request
</wsa:Ac on> <wsx:Dialect>h p://www.w3.org/2001/XMLSchema</> -
metadata exchange type and version meghatározása
● <wsx:Iden fier>h p://www.xmltc.com/tls/schemas/ap1/schemas</> - melyik
metadata elemről van szó
● <wsx:MetadataSec on> - metadat struktúrálása az üzenetben, pl.: 1. WSDL, 2.
reference-endpoint, stb.
● Szelek v get request & response (sok WSDL, XSD, stb lehet 1 végponton)
● Metadata exchange != Service Discovery
● Service contract automated administra on <- Metadata exchange
● Metadata exchange-t a standard SOAP üzenetek teszik lehetővé
● Metadata exchange addressing-et használ – pl. <wsa:ReplyTo>
● Metadata exchange a szabvány a Policy-k lekérdezésére
● Metadata exchange teszi lehetővé WS-ek közö szabványos meta-adat cserét
● Legfontosabb, hogy leveszi a terhet a fejlesztők válláról, nem kell egyedi
metadata csere megoldásokat fejleszteni.
82
● Példa: B2B számlabeküldő előbb metadata-t kérdez, ha újabb, nem megfelelő
leírásokat kap, nem küld számlát. VAGY periódikusan (pl. naponta) lekéri a
metadata-t.
SOA Security
83
● Transport level security(pl.SSL) VS message level security (ÁBRA)
Előbbinél nincs védve az adat egy intermediary service-nél – pl. rou ng,
terheléselosztó, stb.
● Utóbbi: encryp on & digital signatures („útközben nem olvasható, nem
manipulálható az üzenet)
● Web services & SOA: SOA Security
○ Security – SOAP üzenet védelme
○ Security – követelmények Pocilcy-ban vannak leírva
○ Security – biztosítja a WS-ek helyes használatát (nincs visszaélés,
engedély nélküli adat módosítás- hozzáférés, stb.)
84
■ Összete model – ÁBRA(271) – külön no fica on
broker(no fica on producer), publisher registra on
manager(feliratkozás segítése – pl. topic keresés) és subscriber
manager(ado topicra feliratkozo ak lekérdezését nyújtja a
brokernek)
○ WS-Even ng (Microso )
■ Event sources(feliratkoztatás, no fica on-ök küldése), Event
sinks(fogadó) and subscribers(feliratkoztató), Subscrip on
managers(opcionális réteg) (ÁBRA 273)
■ Subscrip on messages & filters(feliratkozás tárgya – események
halmaza):
85
12. [Tomi] Vállala tartalmak - tartalom integráció
Vállala tartalmak
● Nyomtatási kimenetek
● Elektronikus Formok
● Képek, videók, hang
● Weboldalak
● Papír alapú dokumentumok, mappák
● Irodai dokumentumok
● Fax
● Email
Tartalomkezelési szolgáltatások:
86
Tartalom integráció
Definíció:
Főbb funkciók:
Definíció:
Főbb funkciók:
● capture - felvesz/begyűjt
● manage – kezel
● store - tárol
● preserve - megőriz
● deliver - szállít
87
Capture:
Alkalmazott eszközök:
88
89
13. [Ernő] ESB
Enterprise Service Bus (ESB)
90
■ Autonóm viselkedés (rendszer & üzle események detektálása,
op malizáció...) architektúrában
○ Hívó és szolgáltató összekötése
■ Lazán csatolt módon
■ „Separa on of concerns”
○ Szolgáltatás virtualizáció
■ Rou ng – elfedi a szolgáltatót
■ Conversion – elfedi a hívás módját
■ Transforma on – elfedi az interfészt
○ Aspektus orientált kapcsolatot tesz lehetővé
■ Security
■ Management
■ Logging, audit
■ Stb.
ESB képességek
91
Bus részei
● Message Models
○ A hívó és szolgáltató közö áramló adatstruktúrák leírása, kezelése
○ Meta-modellek
■ Üzenetek leírására szolgál
■ Pl.: XML Schema language
○ Tartalom-modellek írják le a konkrét üzene pusokat
■ Pl.: XML Schema
● Az ESB-k legalább egy meta-modelt támogatnak
● Az ESB-k több tartalom-modellt támogatnak
92
● Iparág-specifikus és vállalat-specifikus modellet, ada pusok
● Gyengén- pusos modellek
● Kommunikációs protokollok
○ Kapcsolat képessége a hívókkal és szolgáltatókkal
QoS támogatás (pl.:, reliable delivery, tranzakcionalitás)
○ Interakciós minták támogatása (pl.: request/reply, one-way, pub/sub)
● Tipikus elvárások:
○ HTTP (SOAP/HTTP, XML/HTTP)
○ MQ (SOAP/JMS/MQ, XML/MQ, text/MQ, ...)
○ Adapters (legacy, EIS)
○ WS-I, WS-Security
93
94
Egyéb vizsgakérdések, amelyek nem tartoznak sehová
(nem tudjuk hogy hova a *.?.*!!*-ba valók, csak benne voltak a dia sorban!
1. XSD
2. WSDL
3. SOAP
4. kapcsolataik
5. WSDL előállítási módszerei
1. Alapok
2. Szolgáltatási rétegek meghatározása
3. Használandó alapvető (SOA-) szabványok kiválasztása
4. Szabvány kiterjesztések bevonása a SOA-ba (WS-*)
95
vizsgakérdések (Üzleti folyamatok tervezése – BPEL)
1. BPEL alapok
2. BPEL elemek
a. Process
b. Partnerlinks
c. Partnerlinktype
d. Variables
e. Sequence
f. Invoke
g. Receive
h. Copy
i. Stb…
1. Erőforrásfajták
2. „Szűk keresztmetszet” megközelítés
3. Egyszerű elméle modell
4. Válaszidő és Áteresztőképesség karakterisz kák
5. Ese anulmány
a. 4 féle transzformációt alkalmazó logika
96
EAI definíció:
EAI célja: Vállala folyamatok összekötése Vállalaton belül vagy vállalatok közö
(intra/inte r organiza onal EAI) Üzle folyamatok egyszer űsítése, automa zálása Már
létez ő rendszerek megváltoztatása nélkül Kés őbbi piaci változásokra való könnyebb
reagálás: rugalmasság biztosításával .
Alkalmazásintegráció kihívásai:
Tipkusan nagyvállala :
Kihívások:
- eltérő interfészek
- eltérő pla ormok
- eltérő kommunikációs protokollok
- eltérő rendelkezésre állás: folyamatos / időszakos / kötegelt feldolgozás
- előre nem látható igények
- előre nem látható igények
97
○ Reagálás a környeze változásokra (törvényi változások, új ipari
szabványok, konkurensek fenyegetései)
○ Innováció támogatása (versenyelőny gyors termékfejlesztési ciklus révén)
● Szerveze határokon á velő megoldások
● Hatékonyabb működés:
○ Költséghatékonyabb IT
○ Változások gyors végrehajtása
● Hatékonyabb működés
98
● Moduláris rendszerfelépítés Egységes front end (felüle integráció – portálok)
● Egységes IT security
Integrációs minták:
● Mediáció:
○ EAI rendszer megfelel ő esemény bekövetkezésekor (event) üzenetet küld
az érinte rendszerek (subscribers) felé (no fica on)
○ Az EAI rendszer csak közve t ő szerepet tölt be
○ Hozzáférési minta (access pa ern): pikusan aszinkron
● Federáció:
○ Minden alkalmazás, mindig az EAI frontend-del kommunikál
○ EAI rendszer ak v résztvev ője/irányítója minden kommunikációnak
(service requestor&provider szerep)
○ Hozzáférési minta (access pa ern): pikusan szinkron
● Egy környezetben a ke ő legtöbbször együ és egyszerre is jelen van.
● EAI eset/„példány” éle artama (life me pa ern):
○ Rövid távú: automa zált tranzakciók melyek néhány másodperc ala
végbemennek
○ Rövid távú: automa zált tranzakciók melyek néhány másodperc ala
végbemennek
99
○ Adapterek lehetnek gyártófüggőek – ha speciálisan 1- 1
alkalmazáshoz/funkcióhoz készültek
○ Adapterek lehetnek gyártófüggőek – ha speciálisan 1- 1
alkalmazáshoz/funkcióhoz készültek
100