patogiau.lt - duomenimis paremta architektura žiniatinklyje.ppt
DESCRIPTION
PATOGIAU.LT - Data Driven Design in Web. PATOGIAU.LT - Duomenimis paremta architektūra žiniatinklyje.TRANSCRIPT
10/01/09 1
Data driven design in webKęstutis Valinčius
Sigitas PovilaitisRytis Ūsalis
Paulius Paškevičius
KAUNO TECHNOLOGIJOS UNIVERSITETAS
10/01/09 2
Sudėtingas žiniatinklio programų plečiamumas
Brangus naujo funkcionalumo įgyvendinimas
Lėtas tinklalapio interaktyvumo valdymas
Aukštos kvalifikacijos specialistų poreikis
10/01/09 3
Tinklalapiui pritaikyti duomenimis paremtą
architektūrą (Data Driven Design).
Sukurti įrankį, grafiškai leisiantį kurti
scenarijus.
10/01/09 4
10/01/09 5
Grafinio redagavimo posistemėPaskirtis: Grafiškai kurti ir redaguoti veiklos scenarijus
Pagrindinės funkcijos: Objektų bei ryšių tarp jų atvaizdavimas
10/01/09 6
Grafinio redagavimo posistemėBendradarbiavimas su kitomis
posistemėmis
Pradiniai duomenys atkeliaus iš UML
apdorojimo posistemės XML formatu
Rezultatai bus siunčiami į kodo generavimo
posistemę
10/01/09 7
Grafinio redagavimo posistemė
10/01/09 8
Kodo generavimo posistemėPaskirtis:
Iš skripto generuoti sistemos kodą.
Pagrindinės funkcijos:
Iš skripto realizuoti funkcijų pakvietimus, ciklus,
sąlygos sakinius.
Įskiepiais paremta architektūra
10/01/09 9
Kodo generavimo posistemėBendradarbiavimas su kitomis
posistemėmis
Duomenys gaunami iš grafinės redagavimo
posistemės skripto pavidalu.
Sugeneruotas kodas išsiunčiamas sistemos
varikliui.
10/01/09 10
Paskirtis:
Architektūroje specifikuotų objektų realizacija
Pagrindinės funkcijos:
Teikti programines sąsajas (API) architektūroje
specifikuotų objektų valdymui
Apdoroti duomenų srautus pateiktus objektams.
10/01/09 11
Bendradarbiavimas su kitomis posistemėmis
Programinių sąsajų (API) teikimas kodo
generavimo posistemei
10/01/09 12
Pavyzdys: Pavyzdinė sistema realizuota su „Google maps“
įskiepiu. Trumpas scenarijaus aprašymas:
Vartotojui reikia sudaryti krovinio vežimo scenarijaus iš Kauno į Vilnių demonstraciją. Įmonės būstinė yra Garliavoje. Vairuotojas važiuoja į Kauną, kur tikrinama ar yra pervežimo užsakymų. Jeigu užsakymų yra, krovinys vežamas į Vilnių ir grįžtama atgal. Ši procedūra kartojama tol, kol kroviniai baigiasi. Tada vairuotojas grįžta į būstinę.
10/01/09 13
Sistemos UML specifikacijos pavyzdys:
Pervežimų sistemos UML klasių diagrama
+važiuotiĮ(in Miestas : string)+yraKrovinių() : bool+nustatytiPradžiosKoordinatę(in Miestas : string)
-Greitis : int-Automobilio Tipas : string
Krovinių vežimas
Google Maps API
10/01/09 14
Grafinio redaktoriaus sumodeliuotas vaizdas:
Krovinio vežimo grafinis modelis
Jei(yraKrovinių ())nustatytiPradžiosKoordinatę(„Garliava“ )
važiuotiĮ („Kaunas“) važiuotiĮ(„Garliava“ )
važiuotiĮ(„Vilnius“ )
Taip
Ne
10/01/09 15
Grafinio redaktoriaus XML išvestis: <Busena id=“start“>
<next id=“B1“ /> </Busena> <Busena id=“B1“> <function name=“nustatytiPradziosKoordinate“> <param value=“Garliava“ /> </function> <next id=“B2“ /> </Busena> <Busena id=“B2“> <function name=“vaziuotiI“> <param value=“Kaunas“ /> </function> <next id=“B3“ /> </Busena> <Busena id=“B3“> <function name=“if“> <param name=“yraKroviniu“ /> <true id=“B4“ /> <falše id=“B2“ /> </function> </Busena> <Busena id=“B4“> <function name=“vaziuotiI“> <param value=“Vilnius“ /> </function> <next id=“B2“ /> </Busena> <Busena id=“B5“> <function name=“vaziuotiI“> <param value=“Garliava“ /> </function> <next id=“end“ /> </Busena>
10/01/09 16
Sugeneruotas programinis kodas: function B1(){nustatytiPradziosKoordinate(“Garliava”); B2();} function B2(){vaziuotiI(“Kaunas”); B3();} function B3(){ if(yraKroviniu()) B4(); else B5(); } function B4(){vaziuotiI(“Vilnius”); B2();} function B5(){vaziuotiI(“Garliava”);} B1();
10/01/09 17
Ačiū už dėmesį