Title: Paskirstytu sistemu architekturos
1Paskirstytu sistemu architekturos
- Architekturinis programines irangos, kuri vykdoma
daugiau nei viename procesoriuje, projektavimas
2Tikslai
- Paaiškinti architekturini projektavima
- Paaiškinti paskirstytu sistemu architekturos
privalumus bei trukumus - Išnagrineti skirtingus požiurius i
kliento-serverio sistemu kurima - Paaiškinti skirtumus tarp kliento-serverio ir
paskirstyto objekto architekturos - Išnagrineti objekto užklausos tarpininkus ir
pagrindiniu CORBA standartu principus
3Nagrinejamos temos
- Architekturinis projektavimas
- Paskirstytos sistemos
- Daugiaprocesorines architekturos
- Kliento-serverio architektura
- Paskirstytu objektu architektura
- CORBA
4Architekturinis projektavimas
- Ankstyva sistemos projektavimo proceso stadija
- Atspindi ryši tarp specifikacijos ir projektavimo
proceso - Dažnai vykdoma lygiagreciai su kai kuriais
specifikacijos veiksmais - Apima didesnes sistemos dalies komponentu
identifikavima ir ju bendravima.
5Aiškios architekturos privalumai
- Suinteresuotu asmenu bendravimas
- architektura gali buti panaudota kaip sistema
suinteresuotu asmenu (stakeholders) komunikavimo
centras - Sistemos analize
- reiškia, kad galima atlikti sistemos nefunkciniu
reikalavimu analize - Dideles apimties pakartotinis panaudojimas
- architektura gali buti panaudota daugeliui sitemu
6Architekturinio projektavimo procesas
- Sistemos strukturizavimas
- sistema yra suskaidoma i keleta pagrindiniu
posistemiu ir yra nustatomas komunikavimas tarp
šiu posistemiu - Valdymo modeliavimas
- nustatomas ryšiu valdymo modelis tarp skirtingu
sistemos daliu - Moduline dekompozicija
- nustatytos posistemes yra skaidomos i modelius.
7Sistemos architektura
- Programines irangos architektas yra atsakingas už
sistemos architekturini modeli, valdymo modeli ir
posistemes dekomponavimo modeli. - Retai dideles sistemos paklusta vienam
architekturiniam modeliui. - Sistemos dekompozicijos modeliai turi saugyklu
modelius, kliento-serveriu modelius ir
abstrakcius mašinu modelius. - Valdymo modeliai susideda iš centralizuoto
valdymo ir ivykiais paremto valdymo.
8Srities architekturiniai modeliai
- Modulines dekompozicijos modelis susideda iš
duomenu srautu ir objektu modeliu. - Srities specialus (domain-specific)
architekturiniai modeliai yra abstrakcijos tam
tikroje veiklos sferoje. Jie gali buti
konstruojami abstrahuojant egzistuojancias
sistemas arba idealizuojant nurodomus modelius.
9Nagrinejamos temos
- Architekturinis projektavimas
- Paskirstytos sistemos
- Daugiaprocesorines architekturos
- Kliento-serverio architektura
- Paskirstytu objektu architektura
- CORBA
10Paskirstytos sistemos
- Iš esmes, dabar visos dideles kompiuterines
sistemos yra paskirstytos sistemos - Informacijos apdorojimas yra paskirstytas keletui
kompiuteriu, o ne vienai mašinai - Paskirstytos programines irangos inžinerija dabar
yra labai svarbi
11Sistemos tipai
- Personalines sistemos, kurios nera paskirstytos
ir yra suprojektuotos veikti personaliniame
kompiuteryje ar darbo stotyje - Iterptines sistemos, kurios veikia viename
procesoriuje ar integruotoje procesoriu grupeje - Paskirstytos sistemos, kur sistemos programine
iranga veikia laisvai integruotoje grupeje
bendradarbiaujanciu procesoriu, sujungtu tinklu
12Paskirstytos sistemos charakteristikos
- Resursu dalijimasis
- Atvirumas
- Lygiagretiškumas
- Išpleciamumas
- Klaidos toleravimas
- Skaidrumas
13Paskirstytu sistemu trukumai
- Sudetingumas
- Saugumas
- Valdymo problemos
- Nenuspejamumas
14Paskirstytos sistemos
Resurso identifikacija Resursai paskirstytoje
sistemoje yra paskirstyti tarp skirtingu
kompiuteriu
ir ivardinimo schema turi buti sukurta tokia,
kad vartotojai galetu surasti ir kreiptis i
jiems reikalingus resursus. Tokios ivardinimo
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 šitu resursu bus neprieinami
sistemos vartotojams. Bendravimai
Universalus Interneto prieinamumas ir
Interneto TCP/IP bendravimo protokolu
efektyvus realizavimas reiškia, kad
daugeliui paskirstytu sistemu tai yra efekty-
viausias budas kompiuteriams bendrauti.
Nežiurint to, kur yra specifiniai reikala-
vimai našumui patikimumui ir kt. gali buti
panaudoti alternatyvus požiuriai i
bendravima. Serviso kokybe
Sistemos pasiulyta serviso kokybe atspindi jo
našuma, parengtuma ir patikimuma.
Tai yra veikiama daugelio
faktoriu, tokiu kaip procesoriu paskirstymas
procesams,
resursu paskirstymas sistemoje, tinklo ir
sistemos technines irangos ir sistemos
prisitaikymo. Progra
mines irangos Programines irangos
architektura nagrineja kaip programos
funkcionališkumas yra architektura
paskirstytas keletui loginiu komponenciu ir
kaip šitos komponentes yra paskirstytos
tarp procesoriu.
Teisingos programos architekturos pasirinkimas
yra esminis dalykas
norint pasiekti trokštama serviso
kokybe.
15Paskirstytu sistemu architektura
- Kliento-serverio architektura
- Paskirstyti servisai yra iškvieciami klientu.
Serveriai, kurie tiekia servisus yra traktuojami
skirtingai nei klientai, kurie naudojasi
servisais. - Paskirstytu objektu architektura
- Nera skirtumo tarp klientu ir serveriu. Bet
kuris objektas sistemoje gali tiekti ir naudotis
servisus iš kitu objektu.
16Tarpine programine iranga
- Programine iranga kuri valdo ir palaiko
skirtingus paskirstytos sistemos elementus. Iš
esmes, ji sedi sistemos viduryje ir
tarpininkauja. - Tarpines programines priemones yra paprastai
standartizuotos (off-the-shelf ), o ne specialiai
sudaryta programine iranga. - Pavyzdžiai
- tranzakcijas vykdantys monitoriai
- duomenu konvertoriai
- komunikavimo kontroleriai
17Nagrinejamos temos
- Architekturinis projektavimas
- Paskirstytos sistemos
- Daugiaprocesorines architekturos
- Kliento-serverio architektura
- Paskirstytu objektu architektura
- CORBA
18Daugiaprocesorines architekturos
- Paprasciausios paskirstytos sistemos modelis
- Sistema sudaryta iš daugelio procesu, kurie gali
buti ( bet nebutinai ) vykdomi skirtinguose
procesoriuose - Tai daugelio dideliu realaus laiko sistemu
architekturinis modelis - Proceso paskirstymas procesoriui gali buti iš
anksto sutvarkytas arba gali buti kontroliuojamas
dispecerio
19Daugiaprocesorine eismo kontroles sistema
20Nagrinejamos temos
- Architekturinis projektavimas
- Paskirstytos sistemos
- Daugiaprocesorines architekturos
- Kliento-serverio architektura
- Paskirstytu objektu architektura
- CORBA
21Kliento-serverio architektura
- Taikomoji programa yra sumodeliuota kaip serveriu
teikiamu paslaugu aibe ir jas naudojanciu
klientu aibe. - Klientai žino apie serverius, bet serveriai
nebutinai žino apie klientus - Klientai ir serveriai yra loginiai procesai
- Procesu paskirstymas procesoriams nebutinai yra
11
22Kliento-serverio sistema
Serverio procesas
Kliento procesas
23Kompiuteriai kliento/serverio tinkle
24Taikomuju programu sluoksniuota architektura
- Atvaizdavimo sluoksnis
- skirtas sistemos vartotoju skaiciavimo rezultatu
atvaizdavimui ir vartotojo duomenu ivedimui - Taikomosios programos vykdymo sluoksnis
- Skirtas programos specifiniam funkcionalumui,
pvz., banko sistemoje, tokios banko funkcijos
kaip saskaitos atidarymas, saskaitos uždarymas ir
t.t. - Duomenu valdymo sluoksnis
- Skirtas sistemos duomenu baziu valdymui
25Taikymu sluoksniai
26Lengvi (thin) ir sunkus ( fat) klientai
- Lengvo kliento modelis
- Lengvo kliento modelyje visu programu vykdymas ir
duomenu valdymas yra vykdomas serveryje. Klientas
yra atsakingas tik už atvaizdavimo programines
irangos veikima. - Sunkaus kliento modelis
- Šitame modelyje serveris yra atsakingas tik už
duomenu valdyma. Kliento programine iranga
igyvendina taikymus ir saveika su sistemos
vartotoju.
27Lengvi ir sunkus klientai
28Lengvo kliento modelis
- Naudojamas, kai liktines sistemos yra perkeliamos
i kliento serverio architektura - Liktine sistema veikia kaip serveris su grafine
sasaja, kuri yra realizuota kliente - Pagrindinis trukumas yra tas, kad labai
apkraunamas serveris ir tinklas
29Sunkaus kliento modelis
- Daugiau skaiciavimu yra pavesta klientui, kai
programos vykdymas atliekamas lokaliai - Tinkamiausias naujoms kliento/serverio
sistemoms, kur kliento sistemos galimybes yra
žinomos iš anksto - Sudetingesnis nei lengvo kliento modelis, ypac
valdyme. Naujos programos versijos turi buti
idiegtos visuose klientuose
30Kliento-serverio architektura banko automatu
sistemoje
31Triju lygiu architektura
- Triju lygiu architekturoje, kiekvienas iš
programos architekturos sluoksniu gali buti
vykdomas atskirame procesoriuje. - Leidžia pasiekti didesni našuma, nei lengvo
kliento metodas ir yra lengviau valdomas nei
sunkaus kliento metodas. - Labiau pleciama architektura padidejus
poreikiui, gali buti prijungiami papildomi
serveriai
32Triju lygiu kliento/serverio architekturos schema
33Internetine bankine sistema
34Kliento/serverio architekturu naudojimas
35Nagrinejamos temos
- Architekturinis projektavimas
- Paskirstytos sistemos
- Daugiaprocesorines architekturos
- Kliento-serverio architektura
- Paskirstytu objektu architektura
- CORBA
36Paskirstytu objektu architektura
- Paskirstytu objektu architekturoje tarp klientu
ir serveriu nera skirtumu - Kiekviena paskirstoma esybe yra objektas, kuris
tiekia servisus kitiems objektams ir priima
servisus iš kitu objektu - Objektai bendrauja per tarpines programines
priemones, vadinamas objekto užklausos tarpininku
(programines irangos magistrale) - Taciau tai sudetingiau projektuoti nei K/S
sistemas
37Paskirstytu objektu architektura
38Paskirstytu objektu architekturos privalumai
- Leidžia sistemos projektuotojui atideti sprendima
kur ir kaip servisai turetu buti teikiami - Tai labai atvira sistemos architektura, kuri
leidžia prijungti naujus resursus pagal
reikalavimus - Sistema yra lanksti ir išpleciama
- Imanoma dinamiškai perkonfiguruoti sistema su
objektais migruojanciais per tinkla pagal
reikalavimus
39Paskirstytu objektu architekturos naudojimas
- Kaip loginio modelio, kuris leidžia konstruoti ir
organizuoti sistema. Šiuo atveju, jus galvojate
kaip pateikti programos funkcijas tiktai
išreiškiant servisais ir servisu kombinacijomis - Kaip lankstu metoda kliento-serverio sistemos
idiegimui. Loginis sistemos modelis yra
kliento-serverio modelis, bet ir klientai ir
serveriai yra realizuojami kaip paskirstyti
objektai, bendraujantys per programines irangos
magistrale.
40Duomenu išgavimo sistema
41Duomenu išgavimo sistema
- Loginis sistemos modelis nera tik vienas servisu
teikimo budu, kur budingi ivairus duomenu
valdymo servisai - Ji leidžia didinti nagrinejamu duomenu baziu
kieki nesugriaunant sistemos - Ji leidžia nauju tipu ryšius išgauti papildant
naujais integruojanciais objektais
42Nagrinejamos temos
- Architekturinis projektavimas
- Paskirstytos sistemos
- Daugiaprocesorines architekturos
- Kliento-serverio architektura
- Paskirstytu objektu architektura
- CORBA
43CORBA
- CORBA yra tarptautinio standarto objekto užklausu
tarpininkas tarpine programa, skirta bendravimo
tarp paskirstytu objektu valdymui - Galimi keli CORBA realizavimai
- Alternatyvi Microsoft priemone skirta objekto
prašymu tarpininkavimui yra DCOM - CORBA apibreže Objektu Valdymo Grupe (OMG)
44Taikymo struktura
- Taikomieji objektai
- Standartiniai objektai, apibrežti OMG,
specifinems sritims, pvz. draudimas - Fundamentalus CORBA servisai, tokie kaip katalogu
ir apsaugos valdymas - Horizontalios (t.y. tinkancios visiems taikymams)
galimybes, tokios kaip vartotojo sasajos
priemones
45CORBA taikomosios programos struktura
Taikomosios programos
Horizontalios CORBA galimybes
Srities galimybes
Objektu užklausos tarpininkas (ORB)
CORBA servisai
46CORBA standartai
- Objektinis modelis, skirtas taikomuju programu
objektams - CORBA objektas yra busenu apjungimas
(encapsulation) su gerai apibrežta, neutralia
kalboms sasaja, nusakyta IDL kalba (sasajos
apibrežimo kalba) - Objekto užklausu tarpininkas (Object Request
Broker ORB) valdo prašymus skirtus objektu
servisams - Aibe bendru objektu servisu, naudojamu daugelyje
paskirstytu programu - Aibe bendru komponentu esanciu virš šiu servisu
47CORBA objektai
- Iš principo, CORBA objektai yra palyginami su C
ir Java objektais - Jie privalo tureti skirtingus sasajos
apibrežimus, išreiškiamus naudojant bendra kalba
(IDL) panašia i C - Yra IDL atvaizdavimas kitomis programavimo
kalbomis (C, Java ir t.t.) - Todel objektai, aprašyti skirtingomis
programavimo kalbomis, gali tarpusavyje
bendrauti
48Objektu užklausu tarpininkas (ORB)
- ORB valdo objektu bendravima. Jis žino visus
sistemos objektus ir ju sasajas - Naudojant ORB, kvieciantis objektas pririša IDL
kelma (stub), nustatanti kvieciamo objekto
sasaja - Rezultatas gaunamas kreipiantis i ORB, kuris
kviecia reikalaujama objekta per paskelbta IDL
šablona (skeleton) ir susieja sasaja su serviso
realizavimu
49ORB pagristas objektu bendravimas
o
1
o
2
S
(
o
1
)
S
(
o
2
)
I
D
L
I
D
L
kelmasstub
šablonas skeleton
Objektu užklausos tarpininkas (ORB)
50Išorinis-ORB bendravimas
- ORB dažniausiai nera atskiros programos, o yra
objektu rinkinys bibliotekoje, kuris susiejamas
su kuriama programa - ORB valdo bendravima tarp objektu naudojamu tame
paciame mechanizme - Gali buti prieinami keletas ORB ir kiekvienas
kompiuteris paskirstytoje sistemoje tures savo
ORB - Išorinio ORB bendravimai yra naudojami
paskirstytu objektu kvietimams
51Išorinis-ORB bendravimas
o
4
o
3
o
1
o
2
S
(
o
3
)
S
(
o
4
)
S
(
o
1
)
S
(
o
2
)
I
D
L
I
D
L
I
D
L
I
D
L
Objektu užklausos tarpininkas (ORB)
Objektu užklausos tarpininkas (ORB)
Tinklas
52CORBA servisai
- Ivardinimo ir apsikeitimo servisai
- Jie leidžia atrasti objektus ir pranešti kitiems
objektams tinkle - Pranešimu servisai
- Leidžia objektams pranešti kitiems objektams, kad
ivyko ivykis - Tranzakciju servisai
- Remia atskiras tranzakcijas ir grižima atgal,
esant klaidai
53Esminiai aspektai
- Beveik visos naujos dideles sistemos
paskirstytos sistemos - Paskirstytos sistemos remia resursu dalinima,
atviruma, lygiagretiškuma, išpleciamuma, klaidu
tolerancija ir permatomuma - Kliento-serverio architektura apima serveriu
teikiamus servisus programoms, veikiancioms pas
klientus - Vartotojo sasajos programine iranga visada veikia
pas klienta ir duomenys valdomi serveryje
54Esminiai aspektai
- Paskirstytu objektu architekturoje nera skirtumo
tarp klientu ir serveriu - Paskirstytu objektu sistemos reikalauja tarpiniu
programiniu priemoniu objektu bendravimui - CORBA standartai yra tarpiniu programiniu
priemoniu aibe, kuri remia paskirstytu objektu
architekturas