Documente Academic
Documente Profesional
Documente Cultură
UNIVERSITATEA DE VEST DIN TIMISOARA FACULTATEA DE ECONOMIE SI DE ADMINISTRARE A AFACERILOR SPECIALIZAREA:INFORMATICA ECONOMICA
Timisoara 2011
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 construcia unei aplicaii cu baze de date distribuite pe un server. . Lucrarea este nsoit de o aplicaie realizat sub NetBeans , aplicaie ce constituie exemplul analizat n lucrare. .
Capitolul 1. Servers
1.1 Introducere n tehnologia informaiei, un server este un program de aplicaie care furnizeaz servicii altor aplicaii (numite aplicaii client), aflate pe acelai calculator sau pe calculatoare diferite. De obicei, aplicaia server ateapt conexiuni din partea aplicaiilor client. Se mai numete server i calculatorul pe care ruleaz una sau mai multe asemenea aplicaii. Deseori soluia pentru mari aplicaii cu muli utilizatori se bazeaz tocmai pe arhitectura client-server, care const din cel puin 2 aplicaii (i deseori cel puin 2 computere). Serverele au aprut n paralel cu reelele de calculatoare. Reelele permit calculatoarelor s comunice unul cu celalalt, iar cu ct reeaua este mai mare apare nevoia ca un calculator s ia rolul de server care s deserveasc alte calculatoare (acestea interacionnd eventual direct cu utilizatorii umani), care i asum la rndul lor rolul de client. i dup apariia serverelor reelele s-au dezvoltat i au crescut mai departe; n schimb minicomputerele care erau mai eficiente dect cele personale dar mai puin eficiente dect mainframe-urile au disprut sau au fost "absorbite" de unele din aceste servere (au preluat rolul de server). Apariia reelelor cu calculatoare personale, a Internetului i rspndirea utilizatorilor acestor servicii au dat un impuls puternic dezvoltrii serverelor.
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 aplicaie pe computer, uneori chiar un computer ntreg, care opereaz continuu n reeaua sa i ateapt solicitri din partea altor calculatoare din reea. Serverele pot fi folosite simultan i pentru alte scopuri, dar cnd nevoile o cer, ele pot fi rezervate exclusiv pentru funcia de server. De exemplu, un calculator se poate folosi ntr-un birou simultan pentru dou scopuri, ca staie de lucru i ca server pentru celelalte calculatoare din birou. Cuvntul server provine din cuvntul englez to serve a servi: calculatorul server poate n principiu deservi ntreaga reea de calculatoare clieni, pentru a asigura accesul la toat paleta de forme de conectare i servicii. Deseori unul i acelai computer poate juca ambele roluri, i de server, i de client, n acelai timp. Numele de server este un alt termen pentru Host computer computer gazd, spre deosebire de alte elemente "inteligente" din reea cum ar fi routerele i switch-urile. n zilele noastre serverele se aseamn fizic cu celelalte calculatoare uzuale, dei configuraia hardware este deseori optimizat pentru funcionarea lor ca servere. Multe componente de hardware sunt identice cu cele ce le gsim ntr-un calculator personal. Totui serverele ruleaz sisteme de operare i programe specializate care sunt foarte diferite fa de cele folosite pe calculatoare personale i staiile de lucru. Serverele nu trebuiesc confundate cu calculatoarele de tip mainframe, care centralizeaz informaii i proceseaz activitile firmelor mari. Un mainframe poate n principiu s funcioneze simultan i ca server, sau chiar ca mai multe servere virtuale, pe lng toate celelalte activiti. Multe companii mari folosesc ambele tipuri de calculatoare, anume i mainframe, i servere. Acestea din urm sunt de obicei mici, multe i descentralizate.
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) 7
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
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
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. 9
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 intrun 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
10
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.
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.
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
12
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 13
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. 14
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
15
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.
16
Este implementarea care se poate separa in mai mult de doua parti logice. Schematic aceasta este reprezentata grafic in modelul urmator:
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 17
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 18
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
19
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
20
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.
21
22
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 23
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
24
Retea de comunicatie
Site 4 Site 3
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.
25
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.
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.
26
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 27
Utilizatori
Schema extern
Vedere extern
Vedere extern
Vedere extern
Schema conceptual
Vedere conceptual
Schema intern
Vedere intern
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.
28
Administrator societate
Administrator sistem
Programator sistem/aplicatie
Programator aplicatie
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.
29
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.
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: 31
32
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, Contabilitateetc.) 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 33
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 34
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 35
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 36
37