65425827-licenta-saftoiu
DESCRIPTION
65425827-licenta-SaftoiuTRANSCRIPT
Utilizarea Serverelor de Baze de Date in aplicatiile de proces
1
UNIVERSITATEA DE VEST DIN TIMISOARA FACULTATEA DE ECONOMIE SI DE ADMINISTRARE A AFACERILOR SPECIALIZAREA:INFORMATICA ECONOMICA
Utilizarea Serverelor de Baze de Date
in Aplicatiile de Proces
Coordonator ştiinţific Absolvent
Prof.univ.dr. Gabriela Mircea Saftoiu Mihai
Timisoara
2011
Utilizarea Serverelor de Baze de Date in aplicatiile de proces
2
Utilizarea Serverelor de Baze de Date in aplicatiile de proces
3
Cuprins
Capitolul 1 Servers………………………………………………….. 1.1 Introducere……………………………………………….
1.2 Descriere……………………………………...................
1.3 Tipuri de Server………………………………………….
1.4 Conceptul Client/Server…………………………………
1.5 Componentele Client/Server………………………………
1.5.1 Rolul Clientului…………………………………….
1.5.2Serviciile Clientului…………………………………
1.5.3Rolul Server-ului……………………………………..
1.6 Configuratii Client/Server…………………………………
Capitolul 2 Bazele de date …………………………………………. 2.1 SQL …………………………………………………………..
2.2 Baze de Date Relationale………………………………………..……….
2.3Baze de Date Distribuite……………………………………………
2.3.1 Avantajele si Dezavantajele B.D.D………………………………..
2.4 Arhitectura SGBD-urilor……………………………………………….
2.4.1 Standardizarea SGBD…………………………………………….
2.4.2 Modele arhitecturale pentru SQBD………………………………..
Capitolul 3 Dezvoltarea unei aplicatii de proces 3.1 Necesitatea de dezvoltare a unei aplicatii ………………………………
3.2 Unelte de programare in retea …………………………………………….
3.3 Interfata cu Utilizatorul …………………………………………………..
Referinte Bibliografice
Anexă
Utilizarea Serverelor de Baze de Date in aplicatiile de proces
4
Introducere
În prezenta lucrare: "Utilizarea Serverelor de Baze de Date in Aplicatiile de Proces" , se
realizează într-o primă parte o prezentare a evolutiei dezvoltarii tehnologiei client/server iar în a
doua parte se descrie pe un exemplu concret construcţia unei aplicaţii cu baze de date distribuite
pe un server.
. Lucrarea este însoţită de o aplicaţie realizată sub NetBeans , aplicaţie ce constituie exemplul
analizat în lucrare.
.
Utilizarea Serverelor de Baze de Date in aplicatiile de proces
5
Capitolul 1. Servers
1.1 Introducere
În tehnologia informaţiei, un server este un program de aplicaţie care furnizează servicii
altor aplicaţii (numite aplicaţii client), aflate pe acelaşi calculator sau pe calculatoare diferite. De
obicei, aplicaţia server aşteaptă conexiuni din partea aplicaţiilor client. Se mai numeşte server şi
calculatorul pe care rulează una sau mai multe asemenea aplicaţii. Deseori soluţia pentru mari
aplicaţii cu mulţi utilizatori se bazează tocmai pe arhitectura client-server, care constă din cel
puţin 2 aplicaţii (şi deseori cel puţin 2 computere).
Serverele au apărut în paralel cu reţelele de calculatoare. Reţelele permit calculatoarelor să
comunice unul cu celalalt, iar cu cât reţeaua este mai mare apare nevoia ca un calculator să ia
rolul de server care să deservească alte calculatoare (acestea interacţionând eventual direct cu
utilizatorii umani), care îşi asumă la rândul lor rolul de client.
Şi după apariţia serverelor reţelele s-au dezvoltat şi au crescut mai departe; în schimb
minicomputerele – care erau mai eficiente decât cele personale dar mai puţin eficiente decât
mainframe-urile – au dispărut sau au fost "absorbite" de unele din aceste servere (au preluat rolul
de server).
Apariţia reţelelor cu calculatoare personale, a Internetului şi răspândirea utilizatorilor
acestor servicii au dat un impuls puternic dezvoltării serverelor.
Utilizarea Serverelor de Baze de Date in aplicatiile de proces
6
1.2 Descriere
Serverele ocupă un loc important în tehnologia informaticii, la fel ca şi minicomputerele
în trecut, care însă au fost înlocuite. Un server este o aplicaţie pe computer, uneori chiar un
computer întreg, care operează continuu în reţeaua sa şi aşteaptă solicitări din partea altor
calculatoare din reţea. Serverele pot fi folosite simultan şi pentru alte scopuri, dar când nevoile o
cer, ele pot fi rezervate exclusiv pentru funcţia de server. De exemplu, un calculator se poate
folosi într-un birou simultan pentru două scopuri, ca staţie de lucru şi ca server pentru celelalte
calculatoare din birou. Cuvântul server provine din cuvântul englez to serve – a servi:
calculatorul server poate în principiu deservi întreaga reţea de calculatoare clienţi, pentru a
asigura accesul la toată paleta de forme de conectare şi servicii. Deseori unul şi acelaşi computer
poate juca ambele roluri, şi de server, şi de client, în acelaşi timp. Numele de server este un alt
termen pentru Host computer – computer gazdă, spre deosebire de alte elemente "inteligente" din
reţea cum ar fi routerele şi switch-urile.
În zilele noastre serverele se aseamănă fizic cu celelalte calculatoare uzuale, deşi
configuraţia hardware este deseori optimizată pentru funcţionarea lor ca servere. Multe
componente de hardware sunt identice cu cele ce le găsim într-un calculator personal. Totuşi
serverele rulează sisteme de operare şi programe specializate care sunt foarte diferite faţă de cele
folosite pe calculatoare personale şi staţiile de lucru.
Serverele nu trebuiesc confundate cu calculatoarele de tip mainframe, care centralizează
informaţii şi procesează activităţile firmelor mari. Un mainframe poate în principiu să
funcţioneze simultan şi ca server, sau chiar ca mai multe servere virtuale, pe lângă toate celelalte
activităţi. Multe companii mari folosesc ambele tipuri de calculatoare, anume şi mainframe, şi
servere. Acestea din urmă sunt de obicei mici, multe şi descentralizate.
Utilizarea Serverelor de Baze de Date in aplicatiile de proces
7
1.3 Tipuri de servere
Se intalnesc foarte multe tipuri de servere. Cele mai multe aplicatii client/server sunt aplicatii
care se inscri in jurul unei baze de date. Cele mai importante tipuri de server sunt, serverele :
de baze de date
fisiere
de calcul
de interogare
O caracteristica majora a majoritatii serverelor este ca ele ruleaza pe sisteme de operare
multitasking. In caz contrar partea de multitasking trebuie sa fie asigurata de aplicatia server
pentru a permite mai multor utilizatori simultani.
Cateva din avantajele folosirii aplicatiilor client server:
Este un concept care permite statiilor sa fie atat server cat si clienti (in acelasi
timp) si sa combine aceste avantaje,
Este foarte flexibil si deschis in special cand se foloseste cu baze de date ce
folosesc stocarea unor proceduri de lucru,
Este foarte sigur permitand sa se foloseasca nivele de acces diferite intre statia
client si locul de unde acesta citeste sau cere date. Nu se face un acces direct al
datelor ci serverul este cel care are drepturi de citire scriere asupra bazei de date
critice, urmand ca rezultatele aplicarii cererii trimise de client si aplicate bazei de
date sa fie trimise catre client.
Modificarea partii de server nu necesita intotdeauna modificarea partii de client (mai ales
atunci cand se folosesc comenzi lansate din consola – exemplu fiind si programul client/server
atasat).
Se foloseste puterea de calcul sau interogare a serverului care se presupune ca este o masina
puternica(de regula cu un SO multiprocesor), pentru client nefiind necesare decat niste terminale
sau PC-uri modeste care primesc deja un raspuns de cantitate mica.
Permite lucrul “on-line” pe aceeasi structura de date a mai multor clienti simultan.
Permite scaderea importantei ca si risc a defectarii oricarui client, pentru ca aplicatia
server poate functiona mai departe fara acesta(sau fara unul din ei)
Utilizarea Serverelor de Baze de Date in aplicatiile de proces
8
La proiectarea unei aplicatii client/server trebuie sa se tina seama ca cele doua parti sa aiba
unul sau mai multe din procesele urmatoare:
Clientul
asigura o interfata cu utilizatorul
interpretarea comenzilor
intrare de date
validare de date
corectare erori
Serverul:
raspunde cererilor clientului
poate deservi mai multi clienti simultan
asigura functionalitati diverse pt. Diferite operatii
permite “record-locking”
gestioneaza resursele
In figura se poate vedea cum serverul poate asigura raspunsuri catre mai multi
clienti(aplicatii client) care au solicitat anumite task-uri.
Utilizarea Serverelor de Baze de Date in aplicatiile de proces
9
1.4 CONCEPTUL CLIENT/SERVER
Client/Server inseamna multe lucruri pentru multi oameni. De obicei perceptia generala este
ca aplicatia are o portiune client, ce ruleaza pe un calculator local, in speta un PC, si o parte de
server care ruleaza pe o statie UNIX sau un mainframe. De obicei aplicatiile client server sunt
orientate pe baze de date insa sunt si aplicatii care ofera anumite servicii cum sunt:
server WEB
servere email
servere RAS
servere DNS, KCC, si majoritatea serviciilor de pe server.
Servere FTP, NIS etc
1.5 COMPONENTELE CLIENT/SERVER
Clientul in modelul client/server este statia de lucru. Acceasi statie de lucru daca este
folosita in comun de mai multi utilizatori in acelasi timp devine server.
1.5.1 Rolul clientului
In modelul client/server, clientul joaca rolul de consumator al serviciilor provenite de la
un server. Modelul face o separare clara intre functiunile bazate pe ideea de servere care
furnizeaza servicii ca urmare a cererilor din partea clientilor.
Facilitati cum sunt DDE, OLE sau CORBA permit o foarte usoara comunicare intre un
server si un client prin traditionala “cut and paste”.
O statie client foloseste un SO local pentru a acoperi atat serviciile de baza cat si interfata
cu sistemul de operare de retea.
1.5.2 Serviciile clientului
Request for service
Statiile client emit cereri pentru un server arondat. Cand acest server este de fapt acelasi
procesor sau este un procesor de informatie de retea, formatul cererii este acelasi. NOS software
adauga specificatii speciale in cererea trimisa de solicitant.
Utilizarea Serverelor de Baze de Date in aplicatiile de proces
10
Comunicarea interproces (IPC) este termenul generic folosit pentru a descrie comunicatiile
intre procesele ce ruleaza. In modelul client/server, aceste procese pot fi pe acelasi computer, in
aceeasi retea sau distante in Internet.
Cel mai intalnit serviciu furnizat de NOS este redirectarea. Acest serviciu intercepteaza
cererile sistemului de operare si le redirecteaza catre serverul sistemului de operare. In acest fel,
cererile catre directoarele discului, fisierele, imprimantele , porturile serale sunt interceptate de
catre software-ul de redirectare(peste LAN) catre locatia corecta a serverului. Este posibil pentru
unele servicii sa fie furnizate de catre client.
Apeluri de proceduri distante
Aceste proceduri permit standardizarea unor proceduri prin care programatorii trebuie sa
scrie procedurile astfel incat procedurile distante sa fie recunoscute si interpretate corect.
Fax/Print Services
NOS permite clientului generarea de cereri cand printerul este ocupat. Acestea sunt
redirectate de catre NOS redirector si controlate de catre serverul de printare. Clientii pot vedea
status-ul cozii de printare in orice moment. Multe servere de printare notifica clientul cand
cererea de printate a fost terminata . Serviciile de fax sunt disponibile in aceeasi maniera ca si
print serverele, cu aceeasi interfata si notificare.
Servicii de ferestre
O statie client poate avea la un moment dat mai multe ferestre deschise la un moment dat.
Capabilitatea de a activa, muta, mari sau ascunde o fereastra este permisa de catre serviciul de
control a ferestrelor al sistemului de operare client. Aceste servicii sunt esentiale intr-o
implementare client/server, pentru ca acestea interactioneaza cu serviciul de mesaje anuntand
utilizatorul asupra diferitelor evenimente.
Servicii de pornire “remote”
Anumite aplicatii opereaza foarte bine pe clienti fara a avea un disk local de stocare date;
terminale X sunt exemplele concludente. Statiile client trebuie sa asigure suficient software intr-
un EPROM pentru a permite programului de boot care sa activeze acele interfete ce permit
incarcarea sistemului din alte medii decat cele locale.
Alte servicii la distanta
Utilizarea Serverelor de Baze de Date in aplicatiile de proces
11
Aplicatiile pot fi invocate de pe un client sau a fi executate pe un server la distanta.
Procesul de Backup este cel mai intalnit exemplu.
Servicii utilitare
Sistemele de operare permit functiuni locale cum sunt: copiere, lipire, editare, comparare.
Servicii de mesaje
Servicii de baze de date
Schimb de date dinamic
DDE este o facilitate a sistemelor Windows si OS/2 care permite utilizatorilor sa trimita
date intre aplicatii de la diferiti furnizori prin suportul unor functii API. De exemplu un chart
poate fi legat de o baza de date pentru a permite ultimele grafice atunci cand datele se modifica.
Crearea de obiecte legate sau incluse (OLE)
OLE este o extensie a DDE care permite utilizatorilor ca obiectele sa fie create de catre
aplicatii care “nu stiu” cum sa utilizeze acel obiect. Aceasta de fapt va fi o referinta care va folosi
componentele ce stiu sa manipuleze aceste date. De exemplu, un document creat cu un procesor
de texte poate include o imagine creata cu un packet grafic. Imaginea poate fi convertita intr-o
imagine grafica interna folosita de acest procesor de texte cum ar fi WPG. Cu OLE, imaginea
poate fi inclusa in forma sa originala in document. Cand imaginea este selectata, atunci packetul
care a realizat acea imagine preia controlul manipularii imaginii. Activarea software-ului este
total transparenta utilizatorilor .
CORBA
CORBA( Common Object Request Broker Arhitecture) este o specificatie de la
OMG(Object Management Group), un consortiu ce vinde sisteme UNIX. OLE accentueaza
impartirea de resurse intre aplicatii pe un singur desktop, insa CORBA adreseaza aceste
transferuri intre platforme si cum aceste obiecte se pot muta prin retea. CORBA permite
clientilor sistemului Windows sau Unix sa imparta obiecte. Un procesor de text care opereaza pe
un desktop poate include imagini generate pe o platforma Unix.
1.5.3 Rolul Serverul
Utilizarea Serverelor de Baze de Date in aplicatiile de proces
12
Serverul este un computer multiuser. Nu exista specificatii speciale care sa faca dintr-un
computer obisnuit un server. Platforma hardware trebuie sa fie selectata pe baza cerintelor si
economiei. Serverele , pentru aplicatiile client/server lucreaza cel mai bine cand ele sunt
configurate cu un sistem de operare care suporta partajarea memoriei, isolarea aplicatiilor, si
multitasking.
Serverul asigura controlul asupra resurselor partajate. Aplicatiile de pe un server trebuie sa
fie izolate unele de altele pentru ca in cazul unei erori una sa nu o poata strica pe cealalta.
Serverele ofera servicii de aplicatii, fisiere, tiparire, fax, imagine, comunicare, securitate, si
controlul retelei. Acestea vor fi descrise in cele ce urmeaza.
Este foarte important de a intelege serverul ca si concept nu ca si o implementare fizica.
Serviciile client si serverel pot fi oferite de catre acelasi sistem fizic. Aria retelelor se muta la
retelele peer (ce pot comunica liber), oferind posibilitatea ca orice “device” sa poata juca atat rol
de client cat si de server.
Serverele de aplicatii
Ofera suportul pentru clienti de a accesa informatii. In modelul client/server aceste
servicii pot fi oferite pentru o intreaga organizatie sau doar pentru o parte a acesteia invocata prin
IPC (Interprocess Control) . De exemplu, un sistem de salarii poate pastra datele despre angajati
pe un server, salariile pe un alt server, iar calculele sa se execute pe un al treilea server. Aceste
servere pot rula sisteme de operare diferite si pot fi situate la distanta mare unul de altul.
Aplicatia client invoca aceste servicii fara a considera aceste tehnologii sau de a sti de diferentele
fizice geografice intre aceste servere.
Serverele de fisiere
Ofera accesul catre fisierele sale discret catre clienti pe baza politicii de securitate
elaborata de administratorii serverului. Exemple de file servere sunt low-end: Novell NetWare,
OS/2 sau Windows NT. Clasa de mijloc o ocupa serverele UNIX cu acees via NFS. Ultimul
nivel este oferit de mainframe-uri. Servicii de fisiere Serviciile de fisiere se ocupa cu accesul la
directoarele si fisierele localizate in zona de stocare a serverului. Aceste servicii sunt posibile
prin procesul redirectare existent in sistemul de operare de pe statia client.
Server de calcul
Utilizarea Serverelor de Baze de Date in aplicatiile de proces
13
Sunt servere pe care se executa diverse calcule complexe . Acestea au configuratii
speciale hardware, multiprocesor. Un exemplu sunt realizarea de programe in domeniul grafic
3D unde sunt simulate miscari complexe cu numar foarte mare de obiecte, rezolutii foarte mari.
Serverele de baze de date
Sunt controlate de catre motoare ca si Sybase, IBM, Ingres, Informix,sau Oracle.
Serverul de fisiere ofera spatiul initial, iar baza de date aloca spatiul pentru tabelele proprii in
spatiul alocat de file server.
Aceste masini sunt responsabile pentru a oferi servicii specializate necesare de catre
produsele de backup, erori software, sau spatiu insuficient.
Primele tipuri de baze de date erau servere de fisiere cu o interfata diferita. Produse ca
dBase, Clipper, FoxPro si Paradox executa motorul de baza de date in principiu pe masina client
si foloseste serviciile de fisiere pentru accesul la inregistrari si pentru a obtine controlul spatiului
liber.
Alte motoare de baze de date client/server cum sunt Sybase, IBM Database Manager,
Ingres, Oracle si Informix aduc nou posibilitatea de a executa cereri SQL emise de la o statie de
lucru. Serviciile de fisiere sunt inca folosite pentru a aloca spatiul si servicii de directoare, dar
toate celelalte servicii sunt oferite de catre serverul de baze de date.
Dr. Codd a emis 13 reguli care trebuiesc respectate de catre un motor de baza de date
pentru a fi compatibil. Iata cateva din standardele la cate trebuie sa se alinieze:
ANSI SQL si IBM DB2
O varietate de aplicatii de nivel inalt
C si COBOL SQL precompilers
Suport pentru: Netware, OS/2, Windows NT, Mac, UNIX
Suport pentru SO client: DOS, Windows, Mac, Unix
Cateva din capabilitatile unei daze de date pentru a asigura o performanta buna este:
Utilitare pentru optimizarea performantei
Anulare tranzactii dinamice
“Roll-back”, “Roll-forward”
Recuperare fisiere auditare
Detectare erori si recuperare
Utilizarea Serverelor de Baze de Date in aplicatiile de proces
14
Unelte de reparare
Suport pentru baze de date “mirrored”
Control pentru baze de date distribuite la distanta
Mentenanta pentru acuratete si duplicare fisiere audit.
Intr-o implementare client/server, baza de date trebuie sa ruleze pe server. De aceea
motorul bazei de date trebuie sa suporte cereri SQL de la client si sa le execute total pe server,
returnand apoi raspunsul celui care a trimis cererea.
Servicii de fax/print/imagine
Imprimantele de inalta calitate, statiile care genereaza faxuri, si plotterele sunt candidati
naturali pentru a sustine un server de resurse. Serverul poate accepta intrari de la mai multi
clienti, forma coada in functie de prioritatea cererii si rezolvarea ei cand dispozituvul este
disponibil.
Serverele de tiparire ofera suport pentru clienti de a primi documente, aranja pentru
tiparire, prioritizare a lor. Un server de tiparire eficient va suporta si include modul cum se va
comporta in cazul unor probleme fizice de imprimata, notificari client, etc.
Serverele de fax asigura un serviciu similar cu cel de tiparire. In plus, serverele de fax, pot
crea cozi de intrare si de iesire pentru o distibutie ulterioara in cazul unor probleme de conexiune
sau de aglomerare. Pentru ca faxurile sunt transmise folosind grupa de compresie III sau grupa
IV , serverele de fax trebuie sa fie capabile de a comprima sau decomprima in timp real
documente pentru a le putea tipari, trimite sau afisa. Acest lucru este posibil printr-o cartela
atasata faxului.
Serverele de comunicatie
Asigura un serviciu de comunicare in retele WAN(wide area network). Acest suport
include un subset al IBM SNA, protocoale asincrone, X25,ISDN, TCP/IP, OSI.
Serverele de securitate
asigura restrictii de acces pentru software si date accesibile de pe server. Comunicarea este
controlata de catre cserverul de comunicare. Folosirea unor nume de utilizator si a unei parole
reprezinta minimul de securitate.
Cererea de procesare.
Utilizarea Serverelor de Baze de Date in aplicatiile de proces
15
Sunt cereri pe care le lanseaza un client catre NOS rezident catre masina client. Aceste
cereri sunt impachetate intr-un RPC si trimisa catre nivelul aplicatie al stivei protocolului client.
Aceasta cerere este primita de catre nivelul aplicatie.
1.6 Configuratii “client-server”
La inceput nu a fost nici un fel de aplicatii client-server. Un terminal simplu(dumb) era
legat direct de un computer gazda folosint o linie seriala RS232. Terminalul avea doar o tastatura
si un ecran. Ecranul avea capabilitatea de a afisa caractere , cursorul se putea adresa, insa setul de
caractere se afla in ROM. Toate aplicatiile rulau pe un singur host.
Tipul “Two-tier” Client Server
Utilizarea Serverelor de Baze de Date in aplicatiile de proces
16
Prima generatie de aplicatii client server a fost implementata in doua parti logice. Acesta
avea si doua parti logice de asemenea. Aplicatia ra formata din doua module diferite care ruleaza
pe calculatoare diferite.
Cantitatea de informatii vehiculata intre client si
server determina tipul server-ului “thin” sau “fat”. Modelul “thin” ( subtire) inseamna ca
aplicatia client nu are o marime mare si nu ocupa foarte mult din resursele gazdei sale,
interactiunea cu utilizatorul se face printr-un GUI. Aplicatiile client” thin” sunt foarte indicate
pe calculatoare mai vechi (486, 386) care nu au o putere mare de calcul sau de alta
natura(comparativ cu cerintele de astazi).
Nivelul mediu (middleware) Aplicatia client la aceste tipuri de aplicatii are la baza
folosirea unor interfete via API. Cele mai intalnite “middleware” sunt foarte generale si se pot
folosi pentru aproape orice tip de aplicatie. Exemple de “middleware”:
TCP/IP
DCE
NetBIOS
Named pipes
LAN Manager
Dezvoltari specifice de “middleware” sunt un nivel deasupra celor de ordin general.
Exemple sunt: ODBC pentru servere baze de date, SNMP pentru servere de email, SSL pentru
WEB.
Utilizarea Serverelor de Baze de Date in aplicatiile de proces
17
Tipul “Three-Tier” Client/Server
Este implementarea care se poate separa in mai mult de doua parti logice.
Schematic aceasta este reprezentata grafic in modelul urmator:
1.7 Metode de dezvoltare a sistemelor client/server
Scopul unei asa zise tehnologii este de a descrie un proces prin care o tehnologie poate fi
aplicata pentru ca sa poate fi atinse obiectivele propuse. Metodologia trebuie sa descrie procesele
implicate de-a lungul intregii vieti al sistemului.
Iata cateva din pasii din metodologia SILC:
Planificarea sistemului
Initializarea planificarii
Culegere de date
Identificarea situatiei curente
Descrierea sistemelor existente
Definire specificatii
Analiza aplicatii si arhitectura de date
Utilizarea Serverelor de Baze de Date in aplicatiile de proces
18
Analiza performante tehnice
Pregatire plan de implementare
Pornire proiect
Cerere
Definire relatii in LRP
Initializare proiect
Pregatite faza a doua
Definire arhitectura
Strangere de date
Extindere specificatii la urmatorul nivel
Solutii alternative conceptuale
Dezvoltarea arhitecturii propuse
Selectare produse specifice
Analiza
Strangere date
Dezvoltarea unui model al noii aplicatii de sistem
Definire informatii si specificatii
Pregatire design extern
Proiectare
Post implementare
Suport
1.8 Avantaje ale tehnologiei client/server
Organizatiile doresc sa beneficieze de avantajele costului scazut ale mediilor prietenoase ale
statiilor de lucru. Este de asemenea o nevoie puternica si o dorinta de a capitaliza investitiile
Utilizarea Serverelor de Baze de Date in aplicatiile de proces
19
existente. Astfel, retelele companiilor sunt puse in asa fel incat sa conecteze statiile de lucru catre
diferite servere..
Tehnologia client/server aduce ca beneficiu utilizarea celor mai eficiente interfete utilizator,
stocare date, conectivitate si servicii de aplicatie. Produsele client/server sunt instalate in
interiorul organizatiei prezente dar nu sunt efectiv folosite. Modelul client/server furnizeaza
mijloace tehnologice in vederea utilizarii investitiilor anterioare in concordanta cu optiunile
tehnologiei actuale. Este un declin dramatic in ceea ce priveste costul componentelor tehnologiei
client/server. Organizatiile folosesc aceasta tehnologie ca o oportunitate pentru a furniza solutii
afacerii. Competitia intre servicii si calitate pe piata maresc si mai mult nevoia de a profita de
beneficiile disponibile de la aplicatiile construite pe modelul client/server.
Tehnologia client/server in cele mai bune implementari ale sale muta captarea de date si
procesarea de informatii direct catre utilizatorul expert - adica utilizatorul cu abilitatea de a
raspunde erorilor de date, si utilizatorul cu abilitatea de a folosi informatiile facute disponibile.
Sistemele cele mai importante sunt implicate direct in procesul executarii afacerilor, si sunt
fortate sa arate valoric acest lucru.
Modelul tehnologiei client/server furnizeaza mijloace de integrare a aplicatii cu
productivitate ridicata pentru un angajat anume sau un manager cu nevoi de a procesa date
pentru a satisface cerintele de procesare a informatiilor in cadrul companiei.
Imbunatatirea partajarii datelor
Datele care sunt colectate ca parte a procesului uzual de lucru si stocate pe un server sunt
disponibile imediat tuturor utilizatorilor autorizati. Folosirea limbajului SQL pentru a defini si a
manipula date furnizeaza suportul pentru accesul deschis tuturor clientilor ce proceseaza
informatie. SQL ofera tuturor utilizatorilor autorizati accesul la informatie printr-o imagine care
este specifica nevoilor lor. Serviciile de retea transparente arata ca aceleasi date sunt disponibile
cu acelasi nivel pentru toti utilizatorii desemnati.
Servicii integrate
In modelul client/server , toate informatiile pe care clientul este indreptatit sa le utilizeze
sunt disponibile pe statia sa. Nu este necesara schimbarea in modul terminal sau logarea la alt
Utilizarea Serverelor de Baze de Date in aplicatiile de proces
20
procesor pentru accesarea de informatii. Toate procesele si informatiile autorizate sunt direct
disponibile pentru interfata statiei sale.
Resurse partajate pe platforme diverse
Modelul client/server furnizeaza oportunitati de a realiza adevarate sisteme deschise.
Aplicatiile pot fi create si implementate fara a tine cont de platforma sau caracteristici tehnice ale
software-ului. De aceea utilizatorii pot obtine servicii sau acces transparent la servicii furnizate
de baze de date, sau servere de aplicatii. Sistemele de operare si plaltformele hardware sunt
independente de aplicatii si de uneltele folosite pentru dezvoltarea plicatiei respective.
Conducere centralizata
Primul pas in a oferi o administrare eficienta a unei retele LAN este de a stabili
standardele pentru hardware, software, retele, instalari, dezvoltari si codificari. Aceste standarde
folosite impreuna cu alte produse de marca (IBM, HP, AT&T ) permit o vedere de ansamblu a
retelei LAN.
Revolutia tehnologica
Este foarte important de realizat o vedere de ansamblu asupra tehnologiei in timpul vietii
unui sistem. Arhitectura pe care un sistem este construit trebuie sa fie capabila sa suporte toti
utilizatorii de-a lungul intregii sale vieti. Organizatii largi au luat in calcul pentru aplicatiile lor o
folosinta intre 5 si 10 ani. Multe sisteme sunt construite cu o vedere asupra a numai ce exista
astazi, insa ei sunt gata sa renunte la sistemele invechite odata cu schimbarile ce apar in
arhitectura, schimbari la care nu s-ar fi putut adapta cu sistemele vechi.
Comparatii intre intrari / iesiri
Majoritatea sistemelor au nevoie de informatii citite si apoi salvate. Folosirea modelului
client/server aduce ca avantaj utilizarea puterii de procesare a serverului, clientul preluind numai
rezultatul cererii emis catre server. Serverul este de obicei o masina foarte rapida (atit pentru
accese de citire cit si de calcule, dar si pentru trimiterea datelor catre clienti ). Clientii folosesc
puterea serverului simultan rezultind o incarcare mica a statiilor client comparativ cu serverul.
Stocare de date
Utilizarea Serverelor de Baze de Date in aplicatiile de proces
21
Cea mai mare revolutie tehnologica care a afecta industria de computere a fost cauzata de
necesarul de crestere a capacitatii de stocare disponibila pentru aplicatie. Memoria RAM este
folosita pentru executia programelor si pentru a stoca date temporar sau permanent.
Utilizatorii au intrat in era utilizarii memoriilor mari si ieftine ducind la eficientizarea
aplicatiilor care aveau nevoie de memorie suplimentara.
Interfata grafica de proiectare ( utilizare )
Interfetele grafice utilizator( GUI ) au nevoie de o mare cantitate de memorie RAM
pentru a pastra imaginiile de pe ecran, listele, textul de ajutor, caile de navigatie. Deoarece GUI
permite procesarea aleatoare in locul traditionalei procesari secventiale, toate posibilele procese
logice precum si codul de control GUI asociat imaginii trebuie sa fie disponibil in RAM pentru a
furniza raspunsurile adecvate.
Utilizarea Serverelor de Baze de Date in aplicatiile de proces
22
Capitolul 2. BAZE DE DATE
2.1 SQL
Aplicatiile client/server functioneaza in doua moduri. Acestea pot functtiona ca si suport
pentru o aplicatie deja existenta – sau acestea pot furniza intrari de date, pastrare date, sau
raportare pentru un numar de clienti si servere. In celalalt caz, folosirea – sau chiar existenta –
unei masini gazda este total mascata pentru dezvoltator prin folosirea diverselor limbaje de
comunicare (exemplu limbajul SQL).
SQL este o definitie standard si un limbaj de acces. Acest standard permite multor
vanzatori care produc la ora actuala aplicatii de daze de date, motoare care sa manipuleze aceste
date ca si tabele SQL. Aproape toate uneltele de dezvoltare permit o compatibilitate cu bazele de
date accesate prin SQL. Serviciile de retea permit o conectivitate intre un client local si servere
distante. Cu cateva produse de baze de date, cum sunt Ingres Star, un utilizator poate defini o
vedere consolidata a datelor care in mod fizic distribuita intre platforme diverse.
Dezvoltatorii de sisteme au gasit un punct in care acest amestec neomogen va fi un atribut al
dezvoltarii de motoare de baze de date din ce in ce mai puternice fara a fi dependente de
platforma.
Serviciile pentru baze de date oferite ca raspuns al unei cereri SQL poate fi oferit de unul din
serverele de baze de date: Oracle, Ingres, Sybase, care ruleaza pe platforme Windows NT, OS/2,
Unix, sau Solaris. Mediul de dezvoltare (SDE) si uneltele trebuie sa implementeze o interfata cu
producatorul bazei de date si cu produsele care exista in sistemul de operare. Dezvoltatorul nu
trebuie sa stie ce motor sau ce sistem de operare ruleaza. Daca SDE nu anuleaza dreptul
Utilizarea Serverelor de Baze de Date in aplicatiile de proces
23
dezvoltatorului de a folosi acces direct in baza de date, atunci entuziasmul acestuia se va dovedi
prin evitarea folosirrii unor optiuni ale vanzatorului bazei de date.
Modelul client/server asigura capabilitatea de a face cereri pe loc de informatie. Ca rezultat,
optimizarea suportului pentru SQL dinamic in cazul bazelor de date distribuite este vital pentru
succesul noii generatii de aplicatii client/server. Prima generatie implementeaza aspectele
procesului afacerii. A doua generatie introduce cereri locale ca urmare a exerientei castigate in
interiorul informatiilor deja existente.
Prin folosirea SQL pentru accesul la date, utilizatorii pot accesa informatii din baza de
date de oriunde din retea. De pe PC-urile locale , serverul local, sau de oriunde din reteaua
WAN, accesul la date fiind oferit dezvoltatorului si utilizatorului prin aceeasi cerere. Singura
diferenta ar fi performanta diferita daca banda alocata este insuficienta. Datele mai pot fi
accesate si din memoria RAM, de pe un disc magnetic optic, prin aceleasi cereri SQL. Tabelele
logice pot fi accesate fara a cunoaste ordinea coloanelor. Numeroase tabele pot fi “alaturate”
pentru a obtine un nou tabel logic folosit de aplicatie in acelasi fel, fara a tine cont de forma lui
fizica.
Folosirea unor tipuri noi de date, cum ar fi obiectele binare foarte largi ( BLOB ) permit
altor tipuri de informatii cum ar fi imagini, video si audio sa fie stocate si accesate folosind
aceleasi cerei SQL pentru aceesul la date.
Dezvoltatorii au astazi o foarte mare independenta. Datele sunt accesate prin SQL fara a
fi nevoie de a cunoaste hardware, sisteme de operare sau locatia fizica care furnizeaza datele.
Retelele permit accese ale aplicatiilor si cerereri SQL prin RPC. Retelele pot fi bazate pe OSI
(Open Systems Interconnect ), TCPIP, SNA ( System Network Architecture) dar nu va fi nevoie
de schimbare a codului scris. Dezvoltatorul unei solutii se loveste de standarde de proces fara a
considera platforma fizica. Limbaje de dezvoltare ca: COBOL, C pot functiona pe platforme
foarte diverse.
2.2 Baze de date relationale
O alta schimbare dramatica in domeniul software este zona bazelor de date. Sistemele de
fisiere traditionale si tehnologia bazelor de date de bazeaza pe localizarea referintelor pentru o
buna performanta a accesului. Localizarea referintelor implica ca toate datele necesare sa
Utilizarea Serverelor de Baze de Date in aplicatiile de proces
24
satisfaca o cerere sunt stocate fizic unele linga altele. In orice caz, mediile de astazi au nevoie de
accese multiple ale inregistrarilor provenite din tabele diferite si locuri diferite. Performanta se
poate obtine in aceste medii cind baza de date foloseste chei de extragere organizate in liste de
cautare. Acccesul fizic la baza de date este limitat numai la selectarea inregistrarilor care satisfac
criteriul de cautare.
Tehnologia bazelor de date relationale, folosind SQL imbina aceste lucruri cu succes.
Cererea de cautare poate fi evaluata aplicand-o indexilor care identifica campurile ce satisfac
criteriul de cautare. Numai aceste inregistrari sunt citite si extrase din baza de date fizica.
2.3 Baze de date distribuite
Putem defini o baza de date distribuita ca pe o colectie de baze de date corelate logic si
distribuite pe o retea de calculatoare. Un sistem distribuit de gestionare a bazelor de date este
definit ca un sistem software care permite gestionarea bazelor de date distribuite si face
distribuirea transparenta pentru utilizatori. Sunt doi termeni importanti in aceasta definitie:
corelate logic si distribuite intr-o retea de calculatoare.
Un sistem de baze de date distribuite (SBDD) nu este numai “o colectie de fisiere” care
pot fi stocate individual la fiecare nod al unei retele de calculatoare. Pentru a forma un SBDD,
fisierele trebuie sa fie corelate logic, sa existe o anumita structura intre ele si sa fie accesate prin
intermediul unei interfete comune. Un SBDD nu este un sistem in care, in ciuda existentei unei
retele, baza de date se afla pe un singur nod al retelei. In acest caz, problemele de gestionare a
bazelor de date nu sunt diferite de cele din mediul centralizat. Baza de date este gestionata
central de un calculator si toate cererile sunt trimise catre acel calculator. Deci existenta unei
retele nu implica un mediu distribuit. Datele trebuie sa fie distribuite pe mai multe noduri ale
unei retele.
Baza de date distribuita are caracter virtual. Componentele sale sunt stocate pe baze de
date distincte, aflate pe noduri distincte ale unei retele. Fiecare nod este un sistem de baze de
date, avand propriile baze de date, utilizatori proprii si SGBD local. Sistemul distribuit poate fi
Utilizarea Serverelor de Baze de Date in aplicatiile de proces
25
vazut ca o asociere intre SGBD-ul local si o componenta noua in fiecare nod. El furnizeaza
functiile necesare pentru asociere.
Figura 1.1 Mediul SBDD
2.3.1 Avantajele si dezavantajele bazelor de date distribuite
Avantaje :
Autonomie locala. Utilizatorii unei baze de date ce se afla pe o anumita statie din retea au
controlul local al datelor, datorita organizarii descentralizate. Datele locale se pastreaza local,
unde apartin logic, în majoritatea cazurilor procesarea lor executandu-se în nodul în care sunt
stocate,
Imbunatatirea performantei. Prin executia in paralel a mai multor sarcini, pe statii
diferite, se pot reduce conflictele de acces la date si se poate imbunatati atat viteza de executie a
operatiilor asupra bazelor de date cat si viteza accesului la informatiile stocate.
Îmbunatatirea sigurantei si disponibilitatii. Daca datele sunt replicate pe mai multe
noduri, indisponibilitatea unuia dintre acestea sau o problema pe retea nu face ca datele sa nu
poata fi accesate.
Site 1
Site 2
Site 3
Site 4
Site 5
Retea de
comunicatie
Utilizarea Serverelor de Baze de Date in aplicatiile de proces
26
Economice. Daca bazele de date sunt dispersate geografic si aplicatiile ruleaza în locul în
care sunt si datele, se îmbunatatesc costurile de comunicatie.
Expandabilitatea. Într-un mediu distribuit este mult mai usoara marirea dimensiunilor
bazelor de date.
Partajabilitate. Organizatiile care au operatii distribuite geografic înmagazineaza în mod
normal si datele în aceeasi maniera.
Dezavantaje :
Complexitatea. Problemele din cadrul SBDD sunt mai complexe decat cele centralizate,
ele incluzand problemele distribuite, cat si cele nerezolvate înca în mediul centralizat. Problema
complexitatii este a programatorului si nu a utilizatorului.
Costul. Sistemele distribuite necesita hardware si software aditional, ceea ce mareste
costurile.
Distribuirea controlului. Acest punct, care este în acelasi timp si un avantaj, determina
probleme de sincronizare si coordonare.
Securitate. Este bine cunoscuta dificultatea mentinerii controlului adecvat al securitatii in
retea, deci si in bazele de date distribuite.
Adoptare dificila a tehnologiei. Multe firme au investit din greu în sistemele lor de baze
de date, care nu sunt distribuite. În prezent nu exista instrumente sau tehnologii care sa ajute
utilizatorii sa converteasca bazele de date centralizate în baze de date distribuite.
2.4 Arhitectura sistemelor de gestiune ale bazelor de date distribuite
Arhitectura unui sistem defineste structura acestuia. Adica componentele sistemului sunt
identificate, functia fiecarei componente este specificata si relatiile si interactiunile dintre aceste
componente sunt definite. Aceasta platforma ramane adevarata pentru sistemele de calcul in
general si sistemele software in particular.
2.4.1 Standardizarea SGBDD
Utilizarea Serverelor de Baze de Date in aplicatiile de proces
27
Pentru standardizarea SGBDD o sa tinem cont de relatia stransa care exista între
arhitectura unui sistem si modelul de referinta al acelui sistem, care este dezvoltat ca un
precursor al oricarei activitati de standardizare. Modelul de referinta poate fi considerat un model
arhitectural idealizat al acestui sistem. Acesta poate fi definit ca “un cadru de lucru conceptual al
carui scop este sa împarta munca de standardizare în piese gestionabile, si sa arate la un nivel
general cum aceste piese sunt legate între ele”.
Un model de referinta (si totodata arhitectura unui sistem) poate fi descris tinand cont de
trei abordari diferite:
bazat pe componente. Un SGBD este compus din mai multe componente, fiecare
furnizand anumite functionalitati.
bazat pe functionalitati. Diferite clase de utilizatori identifica o serie de
functionalitati pe care sistemul le va furniza pentru fiecare astfel de clasa.
bazat pe date. Punct de vedere fundamental deoarece un SGBD foloseste date.
Toate aceste trei abordari sunt folosite pentru a realiza un model arhitectural. La sfarsitul
anului 1972, Institutul National American de Standarde (ANSI), stabileste un Grup de Studiu
pentru Sistemele de Gestiune a Bazelor de Date condus de un Comitet pentru Standardizarea
Planificarilor si Cerintelor (SPARC). Acest grup avea rolul de a studia fezabilitatea realizarii
unor standarde în acest domeniu. S-a realizat un raport interimar (1975) si un raport final (1977).
Cadrul de lucru arhitectural propus în aceste rapoarte este cunoscut sub numele de “Arhitectura
ANSI/SPARC”.
Tinand cont de abordarile discutate anterior (legate de standardizare), arhitectura
ANSI/SPARC se bazeaza pe organizarea datelor. Foloseste trei vederi ale datelor (vezi Figura
3.4):
vederea externa: este ceea a utilizatorului
vederea interna: este cea a sistemului sau a masinii
vederea conceptuala: este cea a firmei (sau a domeniului modelat)
La cel mai de jos nivel al arhitecturii se afla vederea interna, care este legata de definirea
fizica si organizarea datelor. Localizarea datelor pe diferite periferice de înmagazinare si
mecanismele de acces folosite pentru cautarea si manipularea datelor sunt abordate la acest nivel.
La polul opus se afla vedera externa, care tine de felul in care utilizatorii vad baza de
date. Un punct de vedere al unui utilizator reprezinta portiunea unei baze de date care va fi
Utilizarea Serverelor de Baze de Date in aplicatiile de proces
28
accesata de catre respectivul utilizator precum si relatiile care exista între aceste date. O astfel de
vedere poate fi partajata între mai multi utilizatori, colectionarea acestor vederi constituind
schema externa.
Între aceste doua extreme se gaseste schema conceptuala, care este o definitie abstracta a
bazei de date. Aceasta este vederea “lumii reale” a firmei modelate de catre aceasta baza de date.
Vedere
internã
Vedere
conceptualã
Vedere
externã Vedere
externã
Vedere
externã
Schema
internã
Schema
conceptualã
Schema
externã
Utilizatori
Figura 2.1 Arhitectura ANSI/SPARC
Descrierea arhitecturii ANSI/SPARC tinand cont de functionalitatile sale genereaza o
vedere considerabil mai complexa, prezentata in Figura 2.2. Chenarele reprezinta functii de
procesare, iar hexagoanele sunt rolurile administrative. Sagetile indica fluxurile de date,
comenzi, programe si descriere si interfetele sunt reprezentate prin bare de forma “ ”.
Rolurile administrative pot ajuta la definirea unei interpretari functionale a arhitecturii
ANSI/SPARC. Cele trei roluri sunt:
administrator baza de date : responsabil pentru definirea schemei interne
administrator societate:: responsabil pentru definirea schemei conceptuale
administrator aplicatie: persoana cu un punct de interes în utilizarea informatiilor din
cadrul unei societati; responsabil cu promovarea schemelor externe pentru aplicatii.
Utilizarea Serverelor de Baze de Date in aplicatiile de proces
29
Aceste roluri pot fi indeplinite de o persoana sau mai multe. Sistemul trebuie sa ofere
suport pentru indeplinirea tuturor rolurilor mai sus mentionate. Pe langa aceste trei clase de
utilizatori definiti prin roluri, mai sunt doua: programatorii de aplicatie si programatorii de
sistem.
Figura 2.2 Schema partiala a modelului arhitectural ANSI/SPARC
2.4.2 Modele arhitecturale pentru SGBD
Se considera modurile in care mai multe baze de date pot fi puse impreuna pentru a fi
gestionate de mai multe sisteme. Se va folosi o clasificare a sistemelor de gestiune tinand cont de
autonomia sistemelor locale, distributia lor si eterogenitatea lor.
Administrator societate
Procesor schema conceptuala a bazei de date
Administrator sistem
Administrator baza de date
Procesor schema interna
Procesor schema externa
Transformare BD/conceptuala
interna
Transformare conceptual/BD
externa
Transformare inmagazinare
interna/BD interna
Programul aplicatie interna
Programul aplicatie externa
Programator sistem/aplicatie
Programator aplicatie
Utilizarea Serverelor de Baze de Date in aplicatiile de proces
30
Autonomia se refera la distribuirea controlului, nu a datelor. Indica gradul de independenta
al SGBD-urilor individuale. Autonomia depinde de un numar de factori, cum ar fi schimbul de
informatie intre componentele sistemului sau executarea independenta a tranzactiilor de catre
aceste componente. Tinand cont de autonomie, avem trei alternative de modelare: integrarea
stransa, care poate fi stocata pe mai multe baze de date si in care o imagine a intregii baze de
date este disponibila oricarui utilizator care vrea sa imparta informatia. Din punctul de vedere al
utilizatorului datele sunt centralizate logic intr-o singura baza de date.
Sistemele semiautonome contin SGBD-uri care pot (si de obicei o fac) opera
independent, dar aleg sa participe intr-o federatie pentru a-si imparti datele locale. Fiecare din
aceste SGBD-uri determina ce parti din baza lor de date pot fi accesate de utilizatorii altor
SGBD-uri. Ele nu sunt sisteme complet autonome pentru ca trebuie modificate pentru a fi
capabile sa schimbe informatia intre ele.
Ultima alternativa o reprezinta izolarea totala, unde sistemele individuale, sunt de sine
statatoare, nestiind de existenta altor SGBD-uri, sau cum sa comunice cu ele. In aceste sisteme,
procesarea tranzactiilor care acceseaza baze de date multiple este dificila deoarece nu exista un
control global al executiei asupra SGBD-urilor individuale.
Distributia se refera la distributia fizica a datelor intre mai multe locatii. Exista mai multe
moduri in care datele au fost distribuite, insa cele mai importante clase pot fi: distributia
client/server si distributia peer-to-peer.
Distributia client/server, devenita destul de populara in ultimii ani, concentreaza
gestionarea datelor la server, in timp ce partea de client se ocupa cu mediul aplicatiei, inclusiv
interfata utilizator. Gestionarea comunicarii este impartita intre server si client. Intr-o retea, se
face diferenta intre masini client si server, iar functionalitatile lor sunt diferite.
In sistemele peer-to-peer nu exista diferenta intre masinile client si server. Fiecare masina
are functionalitatile unui SGBD si poate comunica cu alte masini pentru a executa interogari si
tranzactii.
Eterogenitatea se poate manifesta in multe moduri in sistemele distribuite, de la
eterogenitatea hardware si diferenta intre protocoluri de retea la diferente intre managerii de date.
Se identifica astfel mai multe modele arhitecturale, dintre care cele mai importante sunt
(A0, D2, E0) (e.g. autonomie – integrare stransa, distributie – peer-to-peer, omogen) si (A2, D2,
H1) (autonomie – total izolata, distributie – peer-to-peer, eterogena).
Utilizarea Serverelor de Baze de Date in aplicatiile de proces
31
Din cele aproape treizeci de modele arhitecturale posibile obtinute prin combinarea unor
grade diferite de autonomie, distributie si eterogenitate, trei sunt mai importante, ele
reprezentand extreme ale acestor combinatii: sistemele client/server, baze de date distribuite si
sistemele multi-baze de date.
2.5. Cai de imbunatatire a lucrului cu baze de date
Lucru direct pe server
Bazele de date sunt de obicei mutate pe servere pentru a folosi procesoarele acestuia sau
performantele I/O mai ridicate. Alte aplicatii pot fi partajate tot pentru viteza dar si pentru
disponibilitate.
Reducerea timpului total de executie
Prin rularea unor cereri de cautare, sau alte comezi ce folosesc capacitatea de calcul
foarte intens, precum si procedurile stocate duc la reducerea acestui timp de executie.
Folosirea unui client multitasking
O data cu devenirea tot mai sofisticata a statiei client , capabilitatea ca aceasta sa execute
mai multe procese in acelasi timp este din ce in ce mai atractiva. Task-uri independente pot fi
activate pentru a gestiona procesele de comunicatie, cum sunt email, mesaje news, colectarea de
date de la servere remote. Aplicatii cu productivitate cunoscuta ca procesoare de texte si
prezentari grafice pot fi atractive. Multe din aceste aplicatii pot fi legate impreuna pentru a
furniza informatii despre mediul de procesare. Functii ca DDE sau OLE permit includerea de foi
de calcul in documente . Aceste link-uri pot fi active in sensul ca modificari ce se executa in
aceste “obiecte” se vor pastra si “updata” in documentul care le poarta.
Dezvoltatorii pot testa aprecia, crea si verifica programe in paralel.
Reducerea traficului de retea
Reducerea traficului de retea se poate face prin cateva metode bine cunoscute:
Utilizarea Serverelor de Baze de Date in aplicatiile de proces
32
Minimizarea cererilor - acestea sunt realizate prin ecrane de prezentare. In modelul
client/server, este posibil de a introduce scaderi de trafic. In vechile baze de date dBAse, FoxPro,
Access sau Paradox, cautarea este un proces pe care il gestioneaza clientul. Toate inregistrarile
sunt trimise clientului care va face si filtrarea necesara. In cazul unor baze de date de mari
dimensiuni acest lucru este dramatic. Inregistrarile care sunt blocate de un client apar ca “lock-
ed” pentru restul clientilor ele neputand fi updatate pana cand proprietarul lor nu va termina
tranzactia. Pentru acest motiv modelul server nu este eficient la un nr. mare de utilizatori.
OLTP(Online Transaction Processing) in modelul client/server are nevoie de trigere si proceduri
stocate. Produse ca Sybase, Ellipse sau Ingres folosesc capacitatile pe care serverele gazda le
ofera.
Folosirea cu grija a resurselor de retea
Folosirea aplicatiilor si a serverelor de baze de date pentru a produce un raspuns pentru
un set necesar manipularii unor date pot reduce dramatic traficul in reteaua respectiva. Nu exista
o valoare adaugata in a muta niste date de pe statia client catre alta zona a retelei. Scaderea
maxima a incarcarii retelei se realizeaza atunci cand datele care vin la client sunt doar cele
necesare in a popula forma respectiva de interogare.
Utilizarea Serverelor de Baze de Date in aplicatiile de proces
33
Capitolul 3
3.1 Necesitatea de dezvoltare software specializat de retea
Planificarea strategica, dezvoltarea si suportul pentru aplicatiile software este vitala, uneori
chiar scumpa, si poate duce a enorme beneficii si reduceri de costuri, timp de prezentare pentru
produse noi, customer satisfaction si asa mai departe. Sunt multe oportunitati care infuenteaza si
comprima timpul necesar pentru dezvoltarea unei aplicatii – prin folosirea unei strategii unitare .
Programele “Total Quality Management” cer ca programele sa fie imbunatatite si dezvoltate
continuu. O piata competitiva demonstreaza justa lor valoare.
In practica realizarea unei aplicatii client-server este un lucru care se face destul de usor.
Insa extinderea retelelor locale(LAN) de la cateva calculatoare la un parc de cateva zeci sau chiar
sute de calculatoare pune probleme in accesarea datelor simultane a mai multor utilizatori. Mai
mult utilizatorii pot forma grupuri functionale (de. Ex. Departamente: Tehnic,
Contabilitate…etc.) insa dispunerea lor in cadrul retelei sa fie la distanta: ex. o parte din
colectivul de la Tehnic sa fie in Ploiesti, o parte in Bucuresti si cealalta parte in Constanta. Toti
doresc accesarea datelor ce corespund departamentelor lor.Iata ca programele client trebuie sa
aiba capabilitatea de a se integra si comunica intr-o retea extinsa de la LAN la WAN, prin
legaturi care sunt destul de diferite ca viteza fiabilitate si care pot avea blocaje sau intreruperi.
Aplicatiile trebuie sa stie ce sa faca atunci cand un client a intrerupt legatura (din varii motive)
cand incepuse deja sa valideze anumite inregistrari. De asemenea trebuie sa aiba propriul sistem
de criptare/decriptate (in afara de autentificarile obisnuite) si pastrare a comenzilor intr-un format
care sa permita modificari usoare.
Programatorii de retea trebuie sa cunoasca acele “detalii” ale comunicarii in retea, a
tipurilor de interceptare, sau de atacuri asupra informatiei care circula intre client si server. De
exemplu se stie ca aplicatia telnet trimite toate comenzile catre server in clar (necriptat) , chiar si
Utilizarea Serverelor de Baze de Date in aplicatiile de proces
34
autentificarea adica introducerea numelui de utilizator si a parolei se face tot in clar, acest lucru
fiind un lucru grav care face ca aceasta comunicatie sa poata fi interceptata.
Prin comunicarea numai a comenzii respective de la client la server si apoi a rezultatului
aplicarii comenzii de la server la client traficul intre cele doua masini este redus la minim.
3.2 Unelte de programare de retea
Astazi sunt disponibile medii de programare cu capabiltati foarte puternice de programare
de retea cum sunt:
Delphi Borland ,
Visual Basic
PowerBuilder
Visual C++
Java.
In continuare sunt prezentate cateva din uneltele cela mai cunoscute de programare de retea:
ICONIX PowerTools, este un pachet de aplicatii ce permit dezvoltarea de aplicatii
structurate, orientate obiect.
Acest software aduce o suita de conceptein dezvoltarea aplicatiilor client/server , mai
multe informatii se pot obtine de la adresa : http://www.biap.com/iconix
Unisys TransIT Open/OLTP este o colectie de unelte de dezvoltare si software de
management care ofera module de procesare tranzactii pentru platformele Windows si Windows
NT dar si pentru platforme UNIX. Se pot dezvolta foarte repede aplicatii distribuite si scalabile
bazate pe standardele existente (X/open si ISO), API de nivel inalt, retele si protocoale. Aceste
aplicatii pot amesteca cu usurinta atribute ale diferitelor platforme, UNIX, Windows putand sa
integreze si sa sincronizeze multe baze de date prezente pe platforme diferite. Acest software de
clasa medie lucreaza foarte bine cu Microsoft sau cu alte aplicatii de dezvoltare si include librarii
pentru : C++, C sau COBOL, plus DLL(Dynamic Link Libraries) pentru Windows NT si
Windows 9x. De asemnenea pentru plaftormele Windows este disponibil OLE “point-and-click).
Pe orice platforma, aceste unelte imbunatatesc accesul la date( exemplu ODBC sa SQL) prin
introducerea capabilitatilor cu procesare de tranzactii. Aplicatiile runtime pot asigura replicari
Utilizarea Serverelor de Baze de Date in aplicatiile de proces
35
pentru servere fara ca acest lucru sa duca la probleme pentru aplicatiile client. Adresa de Internet
este: http://www.unisys.com
JAM 7, este un “tool” multiplatforma pentru constructia aplicatiilor distribuite client/server.
Este format dintr-un modul grafic pentru desen, si propriul limbaj script numit JPL, un modul
Visual de Librarii pentru a permite crearea de obiecte complexe care pot fi partajate ca si ecrane
si updatate ca si mostenire. Este format din peste 100 de functii C si diferite alte unelte si
utilitare. Aplicatiile dezvoltate in JAM pot rula in peste 100 de platforme nemodificate
enumerand doar cateva din acestea: DOS, Windows, Motif, OS/2, Macintosh, VAX, Unix. JAM
de asemenea este integrat cu peste 20 de tipuri se servere de baze de date relationale cum sunt:
Oracle, Informix, ODBC, DB/2 si altele.
INTERSOLV este unul din liderii pietei de dezvoltare a aplicatiilor client/server. Solutiile
dezvoltate se bazeaza pe dezvoltari orientate obiect, sisteme deschise si pe “data
warehouse”(baze de date de marimi mari care prin interfete cu diferite platforme pot colecta date
din diferite alte baze de date).
Adresa de Internet este http://www.intersolv.com
CS/8000 este unul din sistemele de dezvoltare care se bazeaza pe implementarea
metodologiilor in programarea client/server, sisteme expert si arhitecturi speciale de aplicatii
client/server.
Cu CS/8000 se poate realiza orice aplicatie client server de orice complexitate. Prin
structura sa, CS/8000 prezinta proiectele de lucru sub o forma organizata, avand totodata marele
avantaj de a genera in mod automat toata documentatia unui proiect.
Adresa de Internet este: http://www.cs8000.com
CI-Link este un puternic program de dezvoltare situat in clasa de mijloc al aplicatiilor de
acest gen, care permite conectari intre baze de date SQL cu baze de date Macintosh. Modulul
Ellipse Query este o modul foarte usor de folosit pe platforma Macintosh si Windows.
Adresa de Internet este : http://www.cornut.fr
MAGNA X este o aplicatie de dezvoltare care a revolutionat soft-urile de acest gen din
1990 pana in prezent. Este o aplicatie OLTP de o complexitate medie, care genereaza aplicatii
client server concentradu-se mai mult pe dezvoltarea partii de aplicatie server. Partea de aplicatie
client poate fi scrisa in orice limbaj incluzand: Power Builder, Visual Basic, Delphi, Java, C sau
Utilizarea Serverelor de Baze de Date in aplicatiile de proces
36
C++. Daca este folosit PB sau VB atunci se poate folosi “vrajitorul” integrat care automatizeaza
construirea aplicatiei fara a scrie linii de cod. Sunt suportate platforme de baze de date ca Oracle,
DB/2, Sybase sau Informix.
Dynasty este un adevarat mediu de dezvoltare aplicatii client/server pentru companii.
Aduce o reala solutie deschisa, generand cod C adevarat, nativ functie de platforma destinatie.
Dintre platformele suportate enumeram: Windows /9x/NT, OS/2, Motif, Macintosh.
Sysdeco este produs de firma Systemator , companie scandinava de software. Aplicatia
aduce suport pentru toate etapele de dezvoltare, de la modelarea pana la implementare, testare si
intretinere. De asemenea permite conectarea cu diferite servere de baze de date, pe diferite
platforme. Printr-o interfata puternica si un dialog grafic foarte bine pus la punct, Systemator
aduce un puternic motor de generare prototipuri GUI, facilitand implicarea foarte puternica inca
din primele faze ale proiectului. In modulul model designer se pot construi modele abstracte .
Modulul “data” este baza aplicatiei fiind folosit pentru generarea structurii bazei de date dar si
pentru generarea interfetelor utilizator.
NATSTAR este un mediu de dezvoltare aplicatii client/server care ofera un mediu prietenos
bazat orientat pe obiecte.
3.3 Interfata cu utilizatorul
Aplicatia client gestioneaza interfata cu utilizatorul. Aceasta include afisare ferestre,
mouse,, etc.
Aplicatiile client care permit un limbat bazat pe scripturi, trebuie sa includa si un
interpretor de comenzi. Unii clienti trebuie sa aiba capabilitatea de a interpreta parametri si a
executa proceduri cand butoanele sunt apasate sau hyperlink-uri selectate. Aceasta poate fi
numita interpretare de comenzi.
Intrare de date
Virtual toti clientii trebuie sa aiba un anumit tip de intrare de date. Intrarea de date nu se
refera doar la completarea unor forme, ci la orice fel de date intrate in sistem. Un timp de
procesare este necesar de fiecare data cand este introdusa o data.
Validare de date
Utilizarea Serverelor de Baze de Date in aplicatiile de proces
37
Dupa ce datele sunt introduse intr-o forma, acestea au nevoie de o validare primara.
Validarea poate merge pana la a fi sigur daca niste campuri contin niste date de verificat.
Validarea se refera si la orice alte verificari facute de client.
Online Help(ajutor imediat)
Majoritatea aplicatiilor inlud si posibilitatea de a obtine asistenta imediata pentru anumite
functiuni ale programului
Tratarea erorilor
Sunt multe cazuri in care tratarea erorilor intr-o aplicatie client/server joaca un rol foarte
important. Erorile pot aparea din diverse cause , cele mai frecvente sunt: erori de comunicatie, de
date, de la echipamente sau alte erori care pot aparea si care trebuie tratate ca atare.