Download - Arhitekturalni dizajn
7/26/2019 Arhitekturalni dizajn
http://slidepdf.com/reader/full/arhitekturalni-dizajn 1/13
POGLAVLJE 6: Dizajn arhitekture
Dizajn proces za identifikaciju podsistema, čineći sistem i framework za kontrolu podsistema i
komunikaciju je zapravo arhitekturalni dizajn.
Rezultat ovog dizajn procesa je opis softverske arhitekture.
Arhitekturalni dizajn - početna faza dizajn procesa. Predstavlja vezu među specifikacijom i dizajnom procesa. Često se sprovodi paralelno sa nekom aktivnošću iz specifikacije. Uključuje identificiranje glavne komponente sistema i njihove komunikacije.
Arhitektura u malom se bavi arhitekturom individualnih programa.
Arhitektura u velikom se bavi arhitekturom složenih poslovnih sistema koji uključuju druge sisteme,programe, i programske komponente.
Prednosti eksplicitne arhitekture:
Komunikacija sa zainteresiranim stranama (arhitektura može biti korištena kao fokus diskusijesistemas sa zainteresiranim stranama)
Sistem analize (podrazumijeva analizu da li sistem može zadovoljiti svoje nefunkcionalnezahtjeve)
Visko-skalirani reuse (ponovna upotreba) (arhitektura može biti korištena kroz različite
sisteme)
Arhitekturalna reprezentacija - neformalni blok dijagrami koji prikazuju entitete i veze koji su najčešćekorištene metode za dokumentiranje softverske arhitekture.
Box and line dijagrami:
Veoma apstraktni – ne prikazuju prirodu veza komponetni niti eksterno vidljive propertije
podsistema.
Korisni za komunikaciju sa zainteresiranim stranama i za projektno planiranje.
Upotreba:
Kao način olakšavanja rasprave o dizajnu sistema
Kao način dokumentiranja arhitekture koja je dizajnirana (cilj je proizvesti kompletan modelsistema koji prikazuje različite komponente u sistemu, njihove interfejse i njihove veze)
Dizajn arhitekture je kreativan proces, pa se proces razlikuje u zavisnosti od vrste sistema koji se
razvija.
7/26/2019 Arhitekturalni dizajn
http://slidepdf.com/reader/full/arhitekturalni-dizajn 2/13
Međutim, određeni broj zajedničkih odluka utiče na dizajn svih procese, te ove odluke utiču nanefunkcionalne karakteristike sistema.
Da li ima generička aplikacija arhitekture koja se može koristiti?
Kako će sistem biti distribuiran?
Kojji su stilovi zadovoljavajući?
Koji pristup će biti korišten da se struktuira sistem?
Kako će sistem biti rastavljen u module?
Koja kontrolna strategija bi se trebala koristiti?
Kako će se vrijednovati dizajn?
Kako će arhitektura biti dokumentovana?
Ponovna upotreba arhitekture:
Sistemi u istoj domeni često imaju sličnu arhitekturu koja odražava koncept domene.
Aplikacijske linije proizvoda su napravljenje oko jezgre arhitekture sa varijantama kojezadovoljavaju djelimično zahtijeve klijenata.
Arhitektura sistema može biti dizajnirana oko jedne ili više arhitekturalnih paterna.
Arhitektura i sistemske karakteristike:
Performanse (Lokaliziranje kritičnih operacija i minimizacija komunikacija. Korištenje većih
komponenti.)
Sigurnost (security) (Koristiti slojevite arhitekture s kritičnim dijelovima u unutarnjim slojevima.)
Sigurnost (safety) (Lokalizirati sigunosno-kritične osobine u mali broj podsistema.)
Dostupnost (Uključiti redudantne komponente i mehanizme za tolerisanje grešaka.) Održavanje (Koristiti komponente koje su zamijenjive.)
Arhitekturalni pogledi:
Koji pogledi ili perspektive su korisne pri dizajniranju i dokumentiranju sistemske arhitekture?
Koje notacije bi se trebale koristiti za opisivanje arhitekturalni modela?
Svaki arhitektualni model pokazuje samo jednu perspektivu sistema.
4+1 pogled softverske arhitekture:
Logički pogled – ključne apstrakcije u sistemu kao što su objekti ili klase objekata
Procesni pogled – kako je , za vrijeme izvršavanja, sistem sastavljen od interaktivnih procesa
Razvojni pogled - kako je sistem dekompoziran za razvoj
Fizički pogled – sistemski hardver i kako softverske komponente su distribuirane u procesoru
unutar sistema
7/26/2019 Arhitekturalni dizajn
http://slidepdf.com/reader/full/arhitekturalni-dizajn 3/13
Povezani-korištenje use case ili scenarija
Arhitekturalni patterni
Patterni su sredstva za prezentovanje, dijeljenje i ponovnu upotrebu znanja.
Arhitekturalni pattern je stilizovani opis dobre prakse dizajna, koja je isprobana i testirana u
različitim okruženjima.
Patterni trebaju uključivati informaciju o tome gdje su, a gdje nisu upotrebljivi.
Patterni mogu biti predstavljeni tabelarno ili grafički.
PATTERN: MVC
Opis:
Razdvaja prezentaciju i interakciju od sistemskih podataka. Sistem je struktuiran u 3 logič ke
komponente koje su u međusobnoj interakciji. Model komponenta upravlja sistemskim podacima i operacijama na tim podacima.
View komponenta definira i upravlja kako će podaci biti prezentovani korisniku.
Controller komponenta upravlja korisničkom interkacijom i prosljeđuje ove interakcije do Viewi Model.
Kada se koristi:
Koristi se kada postoji više načina na poglede i interakciju sa podacima, također koristi se za budućezahtjeve za interakciju i prezentaciju nepoznatih podataka.
Prednosti:
Dopušta podacima da se mijenjaju neovisno o njihovoj prezentaciji i obrnuto. Podržava prezentacijuistih podataka na različite načine sa promjenama načinjenom u jednoj prezentaciji, a prikazanoj u
svakoj.
Nedostaci:
Može uključiti dosta dodatnog koda kada je model podataka i interakcije jednostavan.
7/26/2019 Arhitekturalni dizajn
http://slidepdf.com/reader/full/arhitekturalni-dizajn 4/13
ORGANIZACIJA MODEL-VIEW-CONTROLLER WEB APLIKACIJA SA MVC PATTERNOM
Slojevita arhitektura
koristi se za modeliranje interfejsa
podsistema
organizira sistem u set slojeva (ili apstraktnih mašina) od kojih svaki pruža odrđeni set servisa
podržava inkrementalni razvoj podistema različitih slojeva. Kada se interfej sloja mijenja, samo
je susjedni sloj zahvaćen.
PATTERN: SLOJEVITA ARHITEKTURA
Opis:
Organizira sistem u slojeve sa funkcionalnostima asociranim sa svakim slojem. Sloj pruža serviseslojevima iznad njega, pa tako najniži sloj predstavlja jezgro servisa koji su korišteni kroz servis.
Kada se koristi:
Koristi se kada pravimo nove dijelove na vrhu već postojećeg sistema, kada je razvoj raširen na višetimova pri čemu svaki tim odgovara tačno nekom sloju funkcionalnosti, kada je zahtijevana višeslojnazaštita.
Prednosti:
Dopušta zamjenu cijelih slojeva dokle god se interfejs održava.
Nedostaci:
U praksi,ne postoji jasna razliku između slojeva, tako slojevi na visokom nivou mogu da imaju
interakciju direktno sa nižim slojevima, mimo slojeva koji se nalaze između njih.Performanse mogu biti problem zbog više razina interpretacije zahtjeva za uslugom.
7/26/2019 Arhitekturalni dizajn
http://slidepdf.com/reader/full/arhitekturalni-dizajn 5/13
GENERIČKA SLOJEVITA ARHITEKTURA
ZAKLJUČAK:
Softverska arhitektura je opis kako je softver organizovan.
Arhitekturalni dizaj obuhvaća odluke koji tip aplikacije, koja distribucija sistema, koji
arhiterkturalni stil će biti korišten.
Arhitekture mogu biti dokumentovane iz različitih perspektiva i pogleda kao što su konceptualni,
logički, procesni i razvojni pogled.
Arhitekturalni patterni su sredstva za ponovnu upotrebu znanja o generičkim sistemsim
arhitekturama. Opisuju arhitekturu, objašnjavaju kada može biti korištena, te opisuju njene
prednosti i nedostatke.
Arhitektura repozitorija:
Podsistemi moraju vršiti razmjenu podataka. To se realizuje na jedan od sljedećih načina:
7/26/2019 Arhitekturalni dizajn
http://slidepdf.com/reader/full/arhitekturalni-dizajn 6/13
Dijeljeni podaci se čuvaju u centralnoj bazi podataka ili repozitoriju i svi podsistemi im mogu
prostupati. (Preporučljivo za velike količine podataka.)
Svaki podsistem posjeduje vlastitu bazu podataka i prosljeđuje podatke eksplicitno drugom
podsistemu.
PATTERN: REPOZITORIJ
OPIS:
Upravljanje podataka u sistemu se vrši u centralnom repozitoriju koji je dostupan svim sis temskim
komponentama. Komponente ne vrše interakciju direktno, nego preko repozitorija.
Kada se koristi:
Ovaj patern treba koristit kada imate sistem u kojima velike količine informacija su generirane i koje
trebaju da se spase na duže vrijeme. Također se koristi u data-driven sistemima gdje je uključenepodataka u repozitoriju izaziva akciju ili alat.
Prednosti:
Komponente mogu biti neovisne, ne moraju znati za postojanje drugih komponenti. Izmjene učinjeneod strane jedne komponente mogu biti propagirane do svih komponenti. Svim podacima se možeupravljati konizstentno kao da su na jednom mjestu.
Nedostaci:
Repozitorij je jedino mjesto gdje se dešavaju greške pa problem u repozitoriju zahvati kompletan
sistem. Mogu se javiti neefikasnosti u organizaciji svih komunikacija kroz repozitorij. Raspodijelarepozitorija kroz nekoliko računara može biti teška.
ARHITEKTURA REPOZITORIJA ZA IDE
7/26/2019 Arhitekturalni dizajn
http://slidepdf.com/reader/full/arhitekturalni-dizajn 7/13
Klijent-server arhitektura:
Distribuirani modeli sistema koji pokazuju kako podaci i procesiranje je distribuirano preko
određenog broja komponenti.
Set samostalnih servera koji pružaju specifične servise.
Set klijenata koji se pozivaju na ove servise.
Mreža koja dozvoljava klijentima da pristupe serverima.
PATTERN: KLIJENT-SERVER
U klijent/server arhitekturi, funkcionalnost sistema je organizirana kroz servise, gdje svaki servis pružasa odvojenog servera. Klijenti su korisnici ovih servisa i pristupaju serveru da mogu koristiti servise.
Kada se koristi:Koristi se kada su podaci u dijeljenoj bazi i treba da su pristupačni sa udaljene lokacije. Zato što se servermože replicirati, može se i koristiti kada je opterećenje na sistemu promjenljivo.
Prednosti:
7/26/2019 Arhitekturalni dizajn
http://slidepdf.com/reader/full/arhitekturalni-dizajn 8/13
Najveća prednost ovog modela je u tome da serveri mogu biti distribuirani preko mreže. Glavnefunkcionalnosti mogu biti dostupne svim klijentima i ne moraju biti implementirani od strane svih
servisa.
Nedostaci:Svaki servis je jedna tačka koja može biti tačka neuspjeha takva da nastane uskraćivanje pristupaservera kao i napada na server. Perfomanse mogu biti nepredvidive zato što ovise o mreži kao i osistemu. Moze biti problema ako je upravljanje serverima od različitih organizacija
KLIJENT-SERVER: FILM LIBRARY
Pipe i filter arhitektura:
Funkcionalne transformacije procesiraju ulaze i proizvode ozlaze
Varijacije ovog pristupa su vrlo čete. Kada transformacije su sekvencijalne, ovaj batch
sekvencijalni model je često korišten u sistemima za procesiranje podataka.
Nije za interaktivne sisteme.
PATTERN: PIPE i FILTER
OPIS:
Procesuiranje podataka u sistemu je organizovano tako da svaka procesuirana komponenta je diskretna
7/26/2019 Arhitekturalni dizajn
http://slidepdf.com/reader/full/arhitekturalni-dizajn 9/13
i nosi jedan tip podataka koji se transformišu. Podataci se kreću (kao u cijevi) od jedne komponenteprema drugoj za procesuiranje.
Korištenje: Najčešće se koriste u aplikacijama za procesiranje podataka gdje su ulazi procesirani u različitim fazama
da generišu povezane izlaze.
Prednosti:
Lagani za razumijeti i podržavaju transformiranje i ponovnu upotrebu. Workflow stil odgovara strukturimnogih poslovnih procesa. Evolucija dodavanjem transformacija je jednostavna. Može bitiimplementiran kao sekvencijalan ili konkurentan sistem.
Nedostaci:
Format za transfer podataka mora biti dogovoren između komunikacijskih transformacija. Svakatransformacija mora biti analiziran ulaz i neobrađen izlaz u dogovorenu formu. Ovo povećava sistem i
može značiti da je ponovno korištenje funkcionalnosti nekompaktibilno sa strukturom podataka.
Aplikacijske arhitekture:
Aplikacijski sistemi su dizajnirani kako bi zadovoljili potrebe organizacije.
Generička aplikacijsa arhitektura je erhitektura za tip softvera koji može biti konfigurisan i
adapritan kako bi se kreirao sistem koji zadovoljava sprecifične zahtjeve.
Upotreba:
kao početna tačka arhitekturalnog dizajna
kao dizajn checklista
kao način organizovanja posla razvojnog tima
kao sredstvo za procjenu komponente za ponovnu upotrebu
kao rječnik o aplikacijskim tipovima
Primjeri aplikacijskih tipova:
aplikacije za procesiranje podataka (procesiraju podatke u serijam bez eksplicitne intervencijekorisnika prilikom procesiranja)
aplikacije za procesiranje transakcija (procesiraju korisničke zahtjeve i ažuriraju podatke u bazi
podataka) – e-commerce sistemi, sistemi za rezervacije
sistemi za procesiranje događaja (akcije sistema zavise od interpretacije događaja iz okruženja
sistema)
7/26/2019 Arhitekturalni dizajn
http://slidepdf.com/reader/full/arhitekturalni-dizajn 10/13
sistemi za procesiranje jezika (namjere korisnika su specificiranje u formalnom jeziku koji je
procesiran i interpretiran od sistema) – kompajleri, interpreteri komandi
Sistemi za procesiranje transakcija – procesiraju korisničke zahtjeve za informacijama iz baze podataka
ili zahtjeve za ažuriranje iste
Iz korisničke perspektive transakcija je koherentna sekvenca operacija koja vodi do dostizanja ciljeva.
Korisnici kreiraju asihrone zahtjeve za servis koji je procesiran od strane transakcijskog menadžera.
Arhitekture informacionih sistema:
Informacioni sistemi imaju generičku arhitekturu koja može biti organizovana u slojevitu
strukturu.
Ovo su transakcijski-bazirani sistemi, za interakciju obično zahtjeva ju transakcije sa bazom
podataka
Slojevi uključuju: korisnički interfejs
korisničke komunikacije
povlačenje informacija
sistem baze podataka
7/26/2019 Arhitekturalni dizajn
http://slidepdf.com/reader/full/arhitekturalni-dizajn 11/13
Web bazirani informacioni sistemi
Informacije i sistemi za upravljanje resursima su danas najčešće web-bazirani sistemi gdje ej
korisnički interfejs implementiran upotrebom web pretraživača.
primjer: e-commerse je internet-bazirani sistem za upravljanje resursima koji prihvata
elektronske narudžbe za proizvode ili usluge i onda aranžira dostavu ovih proizvoda ili usluga
krajnjem kupcu.
Serverske implementacije:
Ovi sistemi su često više-rangirane klijent/server arhitekture
web server je zadužen za svu omunikaciju sa korisničkim interfejsom koji je implementiran
upotrebom web pretraživača
aplikacijski server je odgovoran za implementaciju specifičnih logičkih i informacionih skladišta
i zahtjeva za povlačenje informacija
Server baze podataka pomjera informacije do i od baze podataka i obrađuje transakcije.
Sistemi za procesiranje podataka:
7/26/2019 Arhitekturalni dizajn
http://slidepdf.com/reader/full/arhitekturalni-dizajn 12/13
prihvataju prirodni ili vještački jezik kao ulaz i generiraju neku drugu reprezentaciju tog jezika
mogu uključivati interpretere koji izvode instrukcije u jeziku koji se procesira
koriste se u situacijama gdje je najlakši način rješavanja problema opisivanje aloritma ili
sistema podataka
Kompajlerske komponente:
leksiči analizator, koji uzima za ulaz jezički tokeni konvertira ga u internu formu
tabela simbola, koja čuva informacije o imenima entiteta
sintasksni analizator, koji provjerava sintaksu jezika koji se prevodi
sintaksno drvo, koje je interna struktura prezentacije programa koji se kompajlira
semantički analizator, koji koristi informacije iz sintaksnog stveta i tabele simbola da provjeri
semantičku tačnost ulaznog teksta
generator koda, koji 'se kreće' sintaksnim drvetom i generira kod apstraktne mašine
7/26/2019 Arhitekturalni dizajn
http://slidepdf.com/reader/full/arhitekturalni-dizajn 13/13
ZAKLJUČAK:
Modeli aplikacijskih sistemskih arhitektura pomažu nam da razumijemo i poredimo aplikacije,
validiramo dizajn aplikacijskog sistema i procjenimo komponente za ponovnu upotrebu.
Sistemi za procesiranje transakcija su interaktivni sistemi koji dozvoljavaju korisnicima da
pristupaju podacima u bazi podataka i da ih modificiraju.
Sistemi za procesiranje jezika se koriste za prevođenje tekstova iz jednog jezika u drugi i za
izvođenje instrukcija specificiranih ulaznim jezikom. Uključuju prevoditelja i apstraktnu mašinu
koja izvršava generisani jezik.