Upload
misae
View
83
Download
0
Embed Size (px)
DESCRIPTION
Lekcija 13. Baze podataka i aplikacije. Baze podataka. Sadržaj. Uvod Integrisana rešenja Slojevita struktura aplikacija Specifičnosti pristupa BP iz različitih slojeva Tehnologije koje omogućavaju razmenu podataka između BP i aplikacija. Uvod. Klijent server paradigma - PowerPoint PPT Presentation
Citation preview
26.12.2006. Predavanja 2
Sadržaj
• Uvod
• Integrisana rešenja
• Slojevita struktura aplikacija
• Specifičnosti pristupa BP iz različitih slojeva
• Tehnologije koje omogućavaju razmenu podataka između BP i aplikacija
26.12.2006. Predavanja 3
Uvod
• Klijent server paradigma• SUBP – serverska strana• Aplikacija koja koristi BP – klijentska strana
Uspostavakonekcije
Zahtev za servisomDavanjeservisa
Raskidkonekcije
26.12.2006. Predavanja 4
Integrisana okruženja
• Klijent i server su jedno• Primer Access-a i MS JetDB• Sve je u jednom fajlu • Platformska zavisnost
JetDB engineAccess
Forms
Reports
Queries
Modules
26.12.2006. Predavanja 10
Slojevita struktura aplikacija
• Pojavom OOP omogućeno je:– razdvajanje podataka od logike njihove
obrade – razdvajanje podataka od interfejsa prema
korisnicima podataka.
• Objekti preuzimaju odovornost za obavljanje specifičnih funkcionalnosti aplikacije
26.12.2006. Predavanja 11
Slojevita struktura aplikacija
• Raslojavanje aplikacije - odvajanje njenih delova prema funkcionalnosti
• Slojevi – grupisani objekti srodnih funkcionalnosti
• Pravilo dobrog dizajna aplikacija: – između objekata (klasa) u istom sloju treba da
se postigne visoka kohezija (high cohesion), – slaba sprega između slojeva (low coupling).
26.12.2006. Predavanja 12
Slojevita struktura aplikacija
• Osnovni aplikacioni model je troslojni model– Prezentcioni sloj (presentation layer)– Sloj poslovne logike (buisness logic layer)– Sloj podataka (data layer)
26.12.2006. Predavanja 14
Slojevita struktura aplikacija
• Aplikacije mogu imati više od tri sloja
• Podaci mogu biti razdvojeni na više različitih mesta
• Više nivoa obrade
• Primer: Web aplikacije
26.12.2006. Predavanja 16
Slojevita struktura aplikacija
• Aplikacije servisi (nezavisne softverske komponente )
• Web servisi su zasnovani na tri osnovna standarda:
– XML (za prikazivanje podataka), – SOAP (za razmenu podataka između
davalaca i korisnika servisa) i, – WSDL za potrebe opisa servisa, definisan je
poseban jezik
26.12.2006. Predavanja 18
Pristup BP
• Specifičnosti pristupa BP iz različitih slojeva
– Pristup podacima iz prezentacionog sloja– Pristup podacima iz sloja poslovne logike– Pristup iz sloja podataka
26.12.2006. Predavanja 19
Pristupa BP - Prezentacioni sloj -
• Prezentacioni sloj sadrži objekte koriničkog interfejsa
• Uokvireni prozori sa naslovnom linijom koji sadrže kontrole za interakciju sa korisnikom
26.12.2006. Predavanja 21
1:Private Sub Form_Close()2:DoCmd.RunSQL "UPDATE KolicineSred SET [KOLIC] = 3:Forms![TSredstva]![RecSum] WHERE
KolicineSred.ID_BR = 4:Forms![TSredstva]![ID_BR] AND 5:KolicineSred.SifDug=Forms![TSredstva]![SifDug];"6:End Sub
Pristupa BP - Prezentacioni sloj -
26.12.2006. Predavanja 24
1: <html>2: <body>3: <%4: set conn=Server.CreateObject("ADODB.Connection")5: conn.Provider="Microsoft.Jet.OLEDB.4.0"6: conn.Open "d:/webdata/partneri.mdb“7: sql="INSERT INTO kupci (naz_firme, adresa, postbroj)"8: sql=sql & " VALUES “9: sql=sql & "('" & Request.Form("firma") & "',“10: sql=sql & "'" & Request.Form("adresa") & "',“11: sql=sql & "'" & Request.Form("postkod") & "')“12: on error resume next13: conn.Execute sql,recaffected14: if err<>0 then15: Response.Write("Nemate prava na dodavanje podataka!")16: else 17: Response.Write("<h3>Klijent " & Request.Form("firma") 18: & " je dodat</h3>")19: end if20: conn.close21: %>22: </body>23: </html>
Pristup BP iz ASP stranice
- Prezentacioni sloj -
26.12.2006. Predavanja 25
1: <sql:query var="upit1">2: SELECT * FROM moja_tabela3: </sql:query>4: <c:forEach var="naziv_polja" items="${upit1.columnNames}">5: <th><c:out value="${naziv_polja}"/></th>6: </c:forEach>7: <c:forEach var="red" items="${upit1.rows}">8: <tr>9: <c:forEach var="kolona" items="${red}">10: <td><c:out value="${kolona.value}"/></td>11: </c:forEach>12: </tr>13: </c:forEach>
Posebno dizajnirani tag-ovi za pristupanje BP iz prezentacionog sloja
Pristupa BP - Prezentacioni sloj -
26.12.2006. Predavanja 26
1: mysql_connect("biblioteka.snemanja.net:3617",$username,$password);2: @mysql_select_db("biblioteka") or die( "Nema konekcije sa BP");3: $result = mysql_query("SELECT * FROM knjige");4: $num = mysql_numrows($result);5: mysql_close();6: $i=0;7: while ($i < $num) {8: $naslov = mysql_result($result,$i,"naslov");9: $autor = mysql_result($result,$i,"autor");10: $i++;11: }
Pristupanje BP iz PHP stranice
Pristupa BP - Prezentacioni sloj -
26.12.2006. Predavanja 27
Pristup BP - sloj poslovne logike -
• Najčešće korišćen pristup kod višeslojnih aplikacija• Entiteti (klase ili moduli) zaduženi za komunikciju
sa BP• Uslužne klase koje omogućavaju interakciju sa BP • CDatabase, CRecordset klase iz Microsoft (MFC) • ResultSet, Connection klase u Java-inom paketu
java.sql.*
26.12.2006. Predavanja 29
C++ kod koji preuzima nazive proizvoda iz tabele u BPi dodaje ih u listu proizvoda u korisničkom interfejsu
Pristup BP - sloj poslovne logike -
26.12.2006. Predavanja 30
Java kod koji u tabelu t_mtutor_groups u BPdodaje novi zapis (novi naziv grupe)
Pristup BP - sloj poslovne logike -
26.12.2006. Predavanja 31
• Izmeštanje SQL naredbi iz izvornog koda aplikacije u SUBP
Pristup BP - sloj podataka -
26.12.2006. Predavanja 32
• Preduslov - SUBP mora da poseduje mogućnosti kreiranja procedura
• SQL naredbe se ugnježdavaju kao procedure (stored procedure) u ciljnu BP
1: CREATE PROCEDURE `spUsedTestSets`(IN u_id INTEGER(11))2: BEGIN3: SELECT * FROM `t_mtutor_used_test_sets` WHERE ( user_id = u_id );4: END;
Pristup BP - sloj podataka -
26.12.2006. Predavanja 33
• Poziv ugnježdenih procedura
1: cs = conn.prepareCall("{call spUsedTestSets(?)}");2: cs.setInt("user_id", u_id);3: rs = cs.executeQuery();4: while( rs.next() ){5: int test_id = rs.getInt("test_set_id");6: Date test_dat = rs.getDate("date");7: }
Pristup BP - sloj podataka -
26.12.2006. Predavanja 34
Razmena podataka između BP i aplikacija
• Tehnologije koje omogućavaju razmenu podataka između BP i aplikacija ODBC– DAO (Data Access Objects)– ADO– JDBC
26.12.2006. Predavanja 35
• Pre kreiranja aplikacije potrebno je izvršiti registrovanje BP kojoj se pristupa posredstvom ODBC drajvera.
• Registracija je obavezna bez obzira na tip BP
• U Windows-ovom kontrol-panelu se bira ikonica ODBC, pri čemu se otvara administatorski dijalog prozor
Razmena podataka između BP i aplikacija
- ODBC -
26.12.2006. Predavanja 36
Dodavanje novogODBC veznika
Razmena podataka između BP i aplikacija
- ODBC -
26.12.2006. Predavanja 38
Zadavanje imenaODBC izvora podataka
Izbor BP
Razmena podataka između BP i aplikacija
- ODBC -
26.12.2006. Predavanja 40
• Dalje se kreiraju brokerske klase koje koriste ODBC preko datog naziva, da bi uspostavile interakciju sa podacima u BP
Naziv ODBC-a
Naziv tabele
Povezivanje polja u tabeli sapodacima u brokerskoj klasi
Razmena podataka između BP i aplikacija
- ODBC -
26.12.2006. Predavanja 41
• Automatizacija – potpuna nezavisnost objekata aplikacije od prezentacije podataka u ciljnoj BP
• Potpunija kontrola i jednostavniji pristup svim entitetima u SUBP
• Različiti DAO paketi i biblioteke
Razmena podataka između BP i aplikacija
- DAO -
26.12.2006. Predavanja 42
• Svi objekti u SUBP su obavijeni odgovarajućim aplikacionim objektima:– SUBP– BP
• Tabele– Polja– indeksi
• Upiti
• ...
– Grupe– Korisnici
Razmena podataka između BP i aplikacija
- DAO -
26.12.2006. Predavanja 43
1: try{2: CDaoDatabase db;3: db.Open(“s_erw05.mdb”):4: db.Execute(“INSERT INTO t_masters VALUES (‘test’,’test_pwd’,0)”);5: db.Close();6: }catch(CDaoException* pe){..;}
1: CDaoDatabase db; CDaoMasterSet ms; 2: try{3: ms.Open(AFX_DAO_USE_DEFAULT_TYPE,4: “SELECT * FROM t_masters WHERE status = 0 ”):4: while (!ms.IsEOF()){5: fillCombo(ms.m_sUserName);6: ms.MoveNext();7: }7: }catch(CDaoException* pe){..;}
Razmena podataka između BP i aplikacija
- DAO -
26.12.2006. Predavanja 44
DAO DAO u Web okruu Web okruženjuženju
Razmena podataka između BP i aplikacija
- DAO -
26.12.2006. Predavanja 45
• ADO – ActiveX Data Objects• Pristup svemu što može da poseduje
podatke (e-mailovi, Excel tabele, datoteke)• ADO sloj nadgradnje nad OLE radi
uprošćavanja pristupa podacima
Razmena podataka između BP i aplikacija
- ADO -