Paskirstytų sistemų architektūros
-
Upload
tristram-davies -
Category
Documents
-
view
44 -
download
4
description
Transcript of Paskirstytų sistemų architektūros
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 1
Paskirstytų sistemų architektūros
Architektūrinis programinės įrangos, kuri vykdoma daugiau nei viename procesoriuje, projektavimas
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 2
Tikslai Paaiškinti architektūrinį projektavimą Paaiškinti paskirstytų sistemų architektūros
privalumus bei trūkumus Išnagrinėti skirtingus požiūrius į kliento-serverio
sistemų kūrimą Paaiškinti skirtumus tarp kliento-serverio ir
paskirstyto objekto architektūros Išnagrinėti objekto užklausos tarpininkus ir
pagrindinių CORBA standartų principus
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 3
Nagrinėjamos temos Architektūrinis projektavimas Paskirstytos sistemos Daugiaprocesorinės architektūros Kliento-serverio architektūra Paskirstytų objektų architektūra CORBA
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 4
Architektūrinis projektavimas
Ankstyva sistemos projektavimo proceso stadija
Atspindi ryšį tarp specifikacijos ir projektavimo proceso
Dažnai vykdoma lygiagrečiai su kai kuriais specifikacijos veiksmais
Apima didesnės sistemos dalies komponentų identifikavimą ir jų bendravimą.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 5
Aiškios architektūros privalumai
Suinteresuotų asmenų bendravimas• architektūra gali būti panaudota kaip sistema
suinteresuotų asmenų (stakeholders) komunikavimo centras
Sistemos analizė• reiškia, kad galima atlikti sistemos nefunkcinių
reikalavimų analizę
Didelės apimties pakartotinis panaudojimas• architektūra gali būti panaudota daugeliui sitemų
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 6
Architektūrinio projektavimo procesas
Sistemos struktūrizavimas• sistema yra suskaidoma į keletą pagrindinių
posistemių ir yra nustatomas komunikavimas tarp šių posistemių
Valdymo modeliavimas• nustatomas ryšių valdymo modelis tarp skirtingų
sistemos dalių
Modulinė dekompozicija• nustatytos posistemės yra skaidomos į modelius.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 7
Sistemos architektūra Programinės įrangos architektas yra atsakingas už
sistemos architektūrinį modelį, valdymo modelį ir posistemės dekomponavimo modelį.
Retai didelės sistemos paklūsta vienam architektūriniam modeliui.
Sistemos dekompozicijos modeliai turi saugyklų modelius, kliento-serverių modelius ir abstrakčius mašinų modelius.
Valdymo modeliai būna centralizuoto valdymo ir įvykiais paremto valdymo.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 8
Nagrinėjamos temos Architektūrinis projektavimas Paskirstytos sistemos Daugiaprocesorinės architektūros Kliento-serverio architektūra Paskirstytų objektų architektūra CORBA
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 9
Paskirstytos sistemos Iš esmės, dabar visos didelės kompiuterinės
sistemos yra paskirstytos sistemos Informacijos apdorojimas yra paskirstytas keletui
kompiuterių, o ne vienai mašinai Paskirstytos programinės įrangos inžinerija dabar
yra labai svarbi
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 10
Sistemos tipai Personalinės sistemos, kurios nėra paskirstytos ir
yra suprojektuotos veikti personaliniame kompiuteryje ar darbo stotyje
Įterptinės sistemos, kurios veikia viename procesoriuje ar integruotoje procesorių grupėje
Paskirstytos sistemos, kur sistemos programinė įranga veikia laisvai integruotoje grupėje bendradarbiaujančių procesorių, sujungtų tinklu
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 11
Paskirstytos sistemos charakteristikos
Resursų dalijimasis Atvirumas Lygiagretiškumas Išplečiamumas Klaidos toleravimas Skaidrumas
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 12
Paskirstytų sistemų trūkumai Sudėtingumas Saugumas Valdymo problemos Nenuspėjamumas
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 13
Resurso identifikacija Resursai paskirstytoje sistemoje yra paskirstyti tarp skirtingų kompiuterių ir įvardinimo schema turi būti sukurta tokia, kad vartotojai galėtų surasti ir
kreiptis į jiems reikalingus resursus. Tokios įvardinimo schemos pavyzdys yra URL (uniform resource locator-pastovus resurso lokatorius), kuris nau- dojamas identifikuoti www puslapius. Jei nebus naudojama prasminga ir visapusiškai suprantama identifikacijos schema, tai daugelis šitų resursų bus neprieinami sistemos vartotojams.
Bendravimai Universalus Interneto prieinamumas ir Interneto TCP/IP bendravimo protokolų efektyvus realizavimas reiškia, kad daugeliui paskirstytų sistemų tai yra efekty-
viausias būdas kompiuteriams bendrauti. Nežiūrint to, kur yra specifiniai reikala- vimai našumui patikimumui ir kt. gali būti panaudoti alternatyvūs požiūriai į bendravimą.
Serviso kokybė Sistemos pasiūlyta serviso kokybė atspindi jo našumą, parengtumą ir patikimumą. Tai yra veikiama daugelio faktorių, tokių kaip procesorių paskirstymas procesams, resursų paskirstymas sistemoje, tinklo ir sistemos techninės įrangos ir sistemos prisitaikymo.
Programinės įrangos Programinės įrangos architektūra nagrinėja kaip programos funkcionališkumas yraarchitektūra paskirstytas keletui loginių komponenčių ir kaip šitos komponentės yra paskirstytos tarp procesorių. Teisingos programos architektūros pasirinkimas yra esminis dalykas norint pasiekti trokštamą serviso kokybę.
Paskirstytos sistemos
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 14
Paskirstytų sistemų architektūra Kliento-serverio architektūra
• Paskirstyti servisai yra iškviečiami klientų. Serveriai, kurie tiekia servisus yra traktuojami skirtingai nei klientai, kurie naudojasi servisais.
Paskirstytų objektų architektūra• Nėra skirtumo tarp klientų ir serverių. Bet kuris objektas
sistemoje gali tiekti ir naudotis servisus iš kitų objektų.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 15
Tarpinė programinė įranga Programinė įranga kuri valdo ir palaiko skirtingus
paskirstytos sistemos elementus. Iš esmės, ji “sėdi” sistemos viduryje ir tarpininkauja.
Tarpinės programinės priemonės yra paprastai standartizuotos (off-the-shelf ), o ne specialiai sudaryta programinė įranga.
Pavyzdžiai:• tranzakcijas vykdantys monitoriai
• duomenų konvertoriai
• komunikavimo kontroleriai
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 16
Nagrinėjamos temos Architektūrinis projektavimas Paskirstytos sistemos Daugiaprocesorinės architektūros Kliento-serverio architektūra Paskirstytų objektų architektūra CORBA
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 17
Daugiaprocesorinės architektūros
Paprasčiausios paskirstytos sistemos modelis Sistema sudaryta iš daugelio procesų, kurie gali
būti ( bet nebūtinai ) vykdomi skirtinguose procesoriuose
Tai daugelio didelių realaus laiko sistemų architektūrinis modelis
Proceso paskirstymas procesoriui gali būti iš anksto sutvarkytas arba gali būti kontroliuojamas dispečerio
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 18
Daugiaprocesorinė eismo kontrolės sistema
Daviklio procesorius
Eismo davikliai ir kameros
Operatoriaus konsolės
Šviesoforai
Šviesoforų kontrolės procesorius
Šviesos kontrolės procesas
Vaizdavimo procesas
Daviklių kontrolės procesas
Eismo procesorius
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 19
Nagrinėjamos temos Architektūrinis projektavimas Paskirstytos sistemos Daugiaprocesorinės architektūros Kliento-serverio architektūra Paskirstytų objektų architektūra CORBA
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 20
Kliento-serverio architektūra Taikomoji programa yra sumodeliuota kaip
serverių teikiamų paslaugų aibė ir jas naudojančių klientų aibė.
Klientai žino apie serverius, bet serveriai nebūtinai žino apie klientus
Klientai ir serveriai yra loginiai procesai Procesų paskirstymas procesoriams nebūtinai yra
1:1
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 21
Kliento-serverio sistema
s1
s2 s3
s4c1
c2 c3 c4
c5
c6c7 c8
c9
c10
c11
c12
Serverio procesas
Kliento procesas
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 22
Kompiuteriai kliento/serverio tinkle
SC1SC2
CC1 CC2 CC3
CC5 CC6CC4
s1, s2 s3, s4
c5, c6, c7
c1 c2 c3, c4
c8, c9 c10, c11, c12
Tinklas Serverio kompiuteris
Kliento kompiuteris
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 23
Taikomųjų programų sluoksniuota architektūra
Atvaizdavimo sluoksnis» skirtas sistemos vartotojų skaičiavimo rezultatų atvaizdavimui ir
vartotojo duomenų įvedimui
Taikomosios programos vykdymo sluoksnis» Skirtas programos specifiniam funkcionalumui, pvz., banko
sistemoje, tokios banko funkcijos kaip sąskaitos atidarymas, sąskaitos uždarymas ir t.t.
Duomenų valdymo sluoksnis• Skirtas sistemos duomenų bazių valdymui
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 24
Taikymų sluoksniai
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 25
Lengvi (thin) ir sunkūs ( fat) klientai
Lengvo kliento modelis» Lengvo kliento modelyje visų programų vykdymas ir duomenų
valdymas yra vykdomas serveryje. Klientas yra atsakingas tik už atvaizdavimo programinės įrangos veikimą.
Sunkaus kliento modelis» Šitame modelyje serveris yra atsakingas tik už duomenų valdymą.
Kliento programinė įranga įgyvendina taikymus ir sąveiką su sistemos vartotoju.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 26
Lengvi ir sunkūs klientai
K lien ta s
K lien ta s
S erv e ris
S e rv e ris
L en g v o k lien tom o d elis
S u n k a u s k lien tom o d elis
A tv a izd av im as
Taik o m o sio s p ro g ram o s v y k d y m as
D u o m en ųv a ld y m as
Ta ik o m o sio s p ro g ram o s v y k d y m as
A tv a izd av im as
D u o m en ųv a ld y m as
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 27
Lengvo kliento modelis Naudojamas, kai liktinės sistemos yra
perkeliamos į kliento serverio architektūrą» Liktinė sistema veikia kaip serveris su grafine sąsaja, kuri yra
realizuota kliente
Pagrindinis trūkumas yra tas, kad labai apkraunamas serveris ir tinklas
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 28
Sunkaus kliento modelis Daugiau skaičiavimų yra pavesta klientui, kai
programos vykdymas atliekamas lokaliai Tinkamiausias naujoms kliento/serverio
sistemoms, kur kliento sistemos galimybės yra žinomos iš anksto
Sudėtingesnis nei lengvo kliento modelis, ypač valdyme. Naujos programos versijos turi būti įdiegtos visuose klientuose
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 29
Kliento-serverio architektūra banko automatų sistemoje
ATM
ATM
ATM
ATM
S ąsk a ito s se rv e ris
D u o m en ųap d o ro jim om o n ito riu s
K lien tosąsk a ito s
d u o m en y s
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 30
Trijų lygių architektūra Trijų lygių architektūroje, kiekvienas iš programos
architektūros sluoksnių gali būti vykdomas atskirame procesoriuje.
Leidžia pasiekti didesnį našumą, nei lengvo kliento metodas ir yra lengviau valdomas nei sunkaus kliento metodas.
Labiau plečiama architektūra – padidėjus poreikiui, gali būti prijungiami papildomi serveriai
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 31
Trijų lygių kliento/serverio architektūros schema
A tv a iz d av im a s
K lien ta s
S erv e ris S e rv e ris
Ta ik o m o sio s p ro g ra m o s v y k d y m a s
D u o m en ųv a ld y m a s
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 32
Internetinė bankinė sistema
SQ L
K lien tas
K lien tas
K lien tas
K lien tas
H T T P s sa jaą
S Q L u žk lau saT in k lo se rv e ris D u o m en ų b azė
S ąsk a itų p as lau g ųte ik im as
K lien to są sk a ito s
d u o m en y s
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 33
Kliento/serverio architektūrų naudojimas
Architektūra Taikymas Dviejų lygių K/S architektūra su lengvais klientais
Liktinės sistemos, kuriose atskirti taikomuosius skaičiavimus ir duomenų valdymą yra nepraktiška. Tai intensyvių skaičiavimų taikymai, tokių kaip kompiliatoriai be arba su labai mažu duomenų valdymu (duomenys atmintyje). Taip pat užklausų ir paieškų taikymai beveik be taikomųjų skaičiavimų.
Dviejų lygių K/S architektūra su sunkiais klientais
Taikymai, kur taikomieji skaičiavimai atliekami kliente, užbaigtų sistemų pagalba (COTS), kaip Microsoft Exel. Taip pat taikymai, kur reikia intensyvių skaičiavimų duomenų apdorojimui, kaip duomenų avaizdavimui arba kur yra stabilios, gerai apibrėžtos galinio vartotojo funkcijos.
Trijų lygių arba daugelio lygių K/S architektūra
Didelės apimties taikymai su šimtais ar tūkstančiais klientų , kai nepastovūs duomenų bei taikymų skaičiavimai, kai integruojami duomenys iš daugelio šaltinių.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 34
Nagrinėjamos temos Architektūrinis projektavimas Paskirstytos sistemos Daugiaprocesorinės architektūros Kliento-serverio architektūra Paskirstytų objektų architektūra CORBA
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 35
Paskirstytų objektų architektūra Paskirstytų objektų architektūroje tarp klientų ir serverių
nėra skirtumų Kiekviena paskirstoma esybė yra objektas, kuris tiekia
servisus kitiems objektams ir priima servisus iš kitų objektų
Objektai bendrauja per tarpines programines priemones, vadinamas objekto užklausos tarpininku (programinės įrangos magistralė)
Tačiau tai sudėtingiau projektuoti nei K/S sistemas
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 36
Paskirstytų objektų architektūra o 1 o 2 o 3 o 4
o 5 o 6
S (o 1 ) S (o 2 ) S (o 3 ) S (o 4 )
S (o 5 ) S (o 6 )
P ro g ram in ės įran g o s m ag is tra lė
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 37
Paskirstytų objektų architektūros privalumai
Leidžia sistemos projektuotojui atidėti sprendimą kur ir kaip servisai turėtų būti teikiami
Tai labai atvira sistemos architektūra, kuri leidžia prijungti naujus resursus pagal reikalavimus
Sistema yra lanksti ir išplečiama Įmanoma dinamiškai perkonfigūruoti sistemą su
objektais migruojančiais per tinklą pagal reikalavimus
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 38
Paskirstytų objektų architektūros naudojimas
Kaip loginio modelio, kuris leidžia konstruoti ir organizuoti sistemą. Šiuo atveju, jūs galvojate kaip pateikti programos funkcijas tiktai išreiškiant servisais ir servisų kombinacijomis
Kaip lankstų metodą kliento-serverio sistemos įdiegimui. Loginis sistemos modelis yra kliento-serverio modelis, bet ir klientai ir serveriai yra realizuojami kaip paskirstyti objektai, bendraujantys per programinės įrangos magistralę.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 39
Duomenų išgavimo sistemaD u o m en ų b a zė 1
D u o m en ų b a zė 2
D u o m en ų b a zė 3
P ran e š im ų g en .In teg ra to riu s 1
In teg ra to riu s 2
Va iz d o k ū rim as
A tv a izd a v im a s
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 40
Duomenų išgavimo sistema
Loginis sistemos modelis nėra tik vienas servisų teikimo būdų, kur būdingi įvairūs duomenų valdymo servisai
Ji leidžia didinti nagrinėjamų duomenų bazių kiekį nesugriaunant sistemos
Ji leidžia naujų tipų ryšius išgauti papildant naujais integruojančiais objektais
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 41
Nagrinėjamos temos Architektūrinis projektavimas Paskirstytos sistemos Daugiaprocesorinės architektūros Kliento-serverio architektūra Paskirstytų objektų architektūra CORBA
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 42
CORBA CORBA yra tarptautinio standarto objekto
užklausų tarpininkas – tarpinė programa, skirta bendravimo tarp paskirstytų objektų valdymui
Galimi keli CORBA realizavimai Alternatyvi Microsoft priemonė skirta objekto
prašymų tarpininkavimui yra DCOM CORBA apibrėžė Objektų Valdymo Grupė
(OMG)
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 43
Taikymo struktūra Taikomieji objektai Standartiniai objektai, apibrėžti OMG,
specifinėms sritims, pvz. draudimas Fundamentalūs CORBA servisai, tokie kaip
katalogų ir apsaugos valdymas Horizontalios (t.y. tinkančios visiems taikymams)
galimybės, tokios kaip vartotojo sąsajos priemonės
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 44
CORBA taikomosios programos struktūra
Srities galimybės Horizontalios CORBA galimybės
Objektų užklausos tarpininkas (ORB)
CORBA servisai
Taikomosios programos
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 45
CORBA standartai Objektinis modelis, skirtas taikomųjų programų
objektams• CORBA objektas yra būsenų apjungimas (encapsulation) su gerai
apibrėžta, neutralia kalboms sąsaja, nusakyta IDL kalba (sąsajos apibrėžimo kalba)
Objekto užklausų tarpininkas (Object Request Broker – ORB) valdo prašymus skirtus objektų servisams
Aibė bendrų objektų servisų, naudojamų daugelyje paskirstytų programų
Aibė bendrų komponentų esančių virš šių servisų
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 46
CORBA objektai Iš principo, CORBA objektai yra palyginami su C++ ir
Java objektais Jie privalo turėti skirtingus sąsajos apibrėžimus,
išreiškiamus naudojant bendrą kalbą (IDL) panašią į C++ Yra IDL atvaizdavimas kitomis programavimo kalbomis
(C++, Java ir t.t.) Todėl objektai, aprašyti skirtingomis programavimo
kalbomis, gali tarpusavyje bendrauti
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 47
Objektų užklausų tarpininkas (ORB)
ORB valdo objektų bendravimą. Jis žino visus sistemos objektus ir jų sąsajas
Naudojant ORB, kviečiantis objektas pririša IDL „kelmą” (“stub”), nustatantį kviečiamo objekto sąsają
Rezultatas gaunamas kreipiantis į ORB, kuris kviečia reikalaujamą objektą per paskelbtą IDL šabloną (skeleton) ir susieja sąsaja su serviso realizavimu
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 48
ORB pagrįstas objektų bendravimas
o1 o2
S (o1) S (o2)
IDL IDL
Objektų užklausos tarpininkas (ORB)
„kelmas”stub
šablonas skeleton
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 49
Išorinis-ORB bendravimas ORB dažniausiai nėra atskiros programos, o yra
objektų rinkinys bibliotekoje, kuris susiejamas su kuriama programa
ORB valdo bendravimą tarp objektų naudojamų tame pačiame mechanizme
Gali būti prieinami keletas ORB ir kiekvienas kompiuteris paskirstytoje sistemoje turės savo ORB
Išorinio ORB bendravimai yra naudojami paskirstytų objektų kvietimams
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 50
Išorinis-ORB bendravimas
o1 o2
S (o1) S (o2)
IDL IDL
o3 o4
S (o3) S (o4)
IDL IDL
Objektų užklausos tarpininkas (ORB)
Objektų užklausos tarpininkas (ORB)
Tinklas
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 51
CORBA servisai Įvardinimo ir apsikeitimo servisai
• Jie leidžia atrasti objektus ir pranešti kitiems objektams tinkle
Pranešimų servisai• Leidžia objektams pranešti kitiems
objektams, kad įvyko įvykis Tranzakcijų servisai
• Remia atskiras tranzakcijas ir grįžimą atgal, esant klaidai
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 52
Beveik visos naujos didelės sistemos – paskirstytos sistemos
Paskirstytos sistemos remia resursų dalinimą, atvirumą, lygiagretiškumą, išplečiamumą, klaidų toleranciją ir permatomumą
Kliento-serverio architektūra apima serverių teikiamus servisus programoms, veikiančioms pas klientus
Vartotojo sąsajos programinė įranga visada veikia pas klientą ir duomenys valdomi serveryje
Esminiai aspektai
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 53
Esminiai aspektai Paskirstytų objektų architektūroje nėra
skirtumo tarp klientų ir serverių Paskirstytų objektų sistemos reikalauja
tarpinių programinių priemonių objektų bendravimui
CORBA standartai yra tarpinių programinių priemonių aibė, kuri remia paskirstytų objektų architektūras