Gestiunea Unei Biblioteci Virtuale In Sql

LUCRARE DE LICENȚĂ

GESTIUNEA UNEI BIBLIOTECI VIRTUALE ÎN SQL

Contents

Abreviar

INTRODUCERE

CAPITOLUL 1 PREZENTAREA BIBLIOTECII ȘI ANALIZA PROCESELOR DE GESTIUNE

1.1 Prezentarea bibliotecii

1.1.1 Misiunea și viziunea

1.1.2 Scurt istoric

1.2 Analiza procesului de informatizare

1.2.1 Dotarea în trecut

1.2.2 Dotarea în prezent

CAPITOLUL 2 TEHNOLOGII INFORMATICE FOLOSITE PENTRU GESTIUNEA CĂRȚILOR DINTR-O BIBIOTECĂ

2.1 Clasificarea limbajelor de programare

2.2 Fundamentele structurale ale bazelor de date

CAPITOLUL 3 PROIECTAREA APLICAȚIEI INFORMATICE

3.1 Aspecte structurale sintactice ale Java

3.2 Interfață grafică și de acțiune

CAPITOLUL 4 PREZENTAREA APLICAȚIEI

CAPITOLUL 5 CONCLUZII

BIBLIOGRAFIE

Abreviar

ADA – Automatic Data Acquisition

BMB – Biblioteca Metropolitană București

COBOL – COmmon Business Oriented Language

FORTRAN – FORmula TRANslation

JCE – Java Crytography Extension

JDBC – Java Data Base Connectivity

LISP – LISt Processing

ODBC – Open DataBase Connectivity

PROLOG – PROgramming in LOGic)

RPG – Report Program Generator)

SQL – Structured Query Language

SSS – Server Side Script

INTRODUCERE

Structurile limbajelor de programare oferă soluții pentru provocările informatice, economice și sociale din perioada contemporană. Există câte un limbaj ascuns în spatele fiecărei interfețe, care propune utilizatorului o abordare mai simplă, mai ușoară și mai eficientă.

Tehnologiile informatice folosite oferă așadar o mai bună comunicare și gestionare a resurselor pentru utilizator. În fiecare domeniu au apărut astfel de tehnologii care să ofere o bună relaționare intre dispozitiv tehnologic și cel care îl folosește.

Și pentru gestiunea cărților dintr-o bibliotecă s-a observat necesitatea creării unei aplicații care să păstreze acuratețea informațiilor și să elimine erorile umane. La fel ca orice alt domeniu, domeniul de biblioteca a prezentat provocări și note specifice care au ridicat nivelul de dificultate în crearea unei astfel de aplicație.

Pentru construirea unei asemenea aplicații se poate alege dintr-o largă paleta de limbaje. Fiecare limbaj în parte oferă anumite soluții specifice compatibile cu un domeniu sau altul. Pentru tema aleasă, cel mai potrivit în opinia autorului este Java.

Lucrarea va conține cinci părți, care vor încerca să demonstreze utilitatea implementării unei aplicații care să gestioneze numărul și volumul de cărți dintr-o bibliotecă. Demonstrând unicitatea aplicației, autorul va sublinia avantajele utilizării limbajelor informatice în domeniile vieții de zi cu zi. Pe lângă motivele inerente, acela de ușurare a vieții omului și de eliminarea erorilor, mai exista și motivele personale prin care autorul dorește să promoveze treptat, întâi la nivel academic, apoi la nivel general utilitatea accesării și obținerii cunoștințelor informatice.

Prima parte a lucrării vă oferii date despre bibliotecă cu aprofundări în zona de gestiune a cărților. Tema va conține moduri de lucru într-o bibliotecă, moduri de gestiune și prezentarea proceselor de intrare și ieșire a cărților.

Cea de a doua parte va fi compusă din prezentări succesive a principalelor limbaje de programare concurente cu limbajul ales. Prezentările vor conține caracteristice specifice fiecărui limbaj în parte, precum și modul de interacționare cu utilizatorul.

A treia temă a lucrării va propune o incursiune în lumea proiectării aplicației. Principalele aspecte ale acestei incursiuni vor fi legate de caracteristicile specifice limbajului de programare, precum și impactul acestora în creionarea gestiunii.

Cel de al patrulea capitol va constitui partea ce mai vizibilă a lucrării conținând informații despre aplicația construită. Principalele puncte tratate vor fi relaționarea cu interfața și prezentarea diverselor comenzi.

Capitolul cinci, reprezentând concluziile, va fi încununarea muncii autorului, fiind compus nu mai din opiniile personale ale acestuia, iar opinii pertinente și argumentate, extrase din text. Pe baza acestor opinii, autorul va sublinia necesitatea creării unei aplicații de gestiune pentru cărțile dintr-o bibliotecă.

CAPITOLUL 1 PREZENTAREA BIBLIOTECII ȘI ANALIZA PROCESELOR DE GESTIUNE

Pentru ilustrarea cât mai exactă a proceselor de informatizare într-o gestiune de cărți a unei biblioteci, primul pas este alegerea unei instituții unde se poate observa la nivel general, unicitatea implementării aplicației informatice.

Un exemplu foarte concludent de împletire a proceselor informatice cu procesul de lucru al angajaților în constituie Biblioteca Metropolitană București, o instituție care va servi drept exemplu pentru ilustrarea proceselor de gestiune proprii, specifice bibliotecilor.

1.1 Prezentarea bibliotecii

1.1.1 Misiunea și viziunea

Misiunea de lectură publică, animație culturală și educație permanentă. Obiectivul acestei misiuni răspunde nevoilor de instruire, de informare și de recreere prin constituirea de colecții diversificate formate din cărți, înregistrări sonore, video, DVD-uri și CD-uri, periodice și documente on-line, cu caracter enciclopedic destinate oricărei categorii de utilizatori: copii, adolescenți, adulți de toate vârstele, persoane cu handicap.

Misiunea contribuie la formarea inițială și continuă a publicului, îl ajută în cadrul studiului individual, în formarea unei culturi generale, la pregătirea unor concursuri și a unor interviuri pentru angajări.

Această responsabilitate asumată favorizează întâlnirea publicului cu creatori, în particular cu scriitori, precum și organizarea de dezbateri, ateliere, expoziții.

Misiunea de prezervare, conservare și îmbogățire a colecțiilor, precum și a seriilor speciale. Obiectivul acestei misiuni de prezervare este în egală măsură un serviciu de salvare a documentelor și se referă îndeosebi la transpunerea în format electronic a publicațiilor cu prioritate a celor cu valoare patrimonială și, ulterior, prezentarea lor în site-ul DACOROMANICA (Biblioteca Digitală a României). Acest obiectiv este realizat și dezvoltat permanent împreună cu Biblioteca Academiei Române, instituție care reprezintă în realitate Biblioteca Națională a României din punctul de vedere a păstrării memoriei scrise a poporului român, atribut fundamental pentru definirea unei biblioteci naționale. De altfel, această funcție fundamentală de păstrare și conservare a memoriei scrise se întâlnește la toate bibliotecile naționale din țările europene, cu excepția României.

Activitatea de îmbogățire și conservare a colecțiilor, inclusiv a colecțiilor speciale cu documente specifice, manuscrise, tipărituri, documente iconografice și numismatice, este un obiectiv permanent.

Misiunea de cooperare națională și internațională. Prezența în plan internațional este o consecință firească a tradiției instituționale și a locului ocupat de către BMB în cadrul rețelei internaționale de biblioteci metropolitane.

Această dimensiune este definită prin participarea la activități științifice naționale și internaționale și de cooperare cu alte biblioteci și centre de cercetare și de documentare. În plan național, activitatea de cooperare a BMB se reflectă în deosebi în parteneriatul cu Biblioteca Academiei Române și cu Institutul Academic de Cercetare Științifică "Nicolae Iorga" și Institutul de Studii Sud-Est Europene.

Parteneriatul inter bibliotecar internațional reprezintă în mod special transpunerea în viață a prevederilor legale în domeniu, îndeosebi a legii bibliotecilor, precum și programului cultural Bucureștii, capitala tuturor românilor, potrivit căruia Bucureștii nu sunt capitală numai pentru locuitorii intra vilan. De mai multe secole, românii repetă o realitate evidentă: Soarele la București răsare.

Cooperarea internațională BMB se dezvoltă îndeosebi:

în cadrul european cu preponderență în spațiul francofon;

în rețeaua internațională a bibliotecilor metropolitane;

în legătură cu rețelele de cercetare științifică și cu instanțele profesionale.

1.1.2 Scurt istoric

La mai 1359, a fost înființată Mitropolia Țării Românești și, implicit, a fost organizată Biblioteca Mitropoliei. Cinci secole mai târziu, se stabilește înființarea Bibliotecii Colegiului Sf. Sava, cu dublu rol: bibliotecă școlară și bibliotecă publică, indirect succesoare a Bibliotecii Mitropoliei Țării Românești

Geneza bibliotecii. Fondul de carte, aproximativ 8.000 de volume, provine din patrimoniul Bibliotecii Mitropoliei București. Regăsim, totodată, cărți din Biblioteca Academiei Domnești a Sf. Sava îmbogățită de-a lungul timpului cu lucrări de către stolnicul Constantin Cantacuzino, patriarhul Hrisant al Ierusalimului, precum și de către Domnii țării Constantin Brîncoveanu, Nicolae și Constantin Mavrocordat;

Organizarea și catalogarea publicațiilor s-au făcut pe limbi, iar în cadrul fiecărei grupe lingvistice sistematic, pe domenii, folosind, în parte, clasificarea bibliografului francez Jacques Charles Brunet. Primul catalog al bibliotecii a fost tipărit, în două volume, în anii 1846 și 1847, prin îngrijirea profesorului – bibliotecar, Iosif Genilie. Manuscrisele și tipăriturile în limba română, aproximativ 600 de titluri, cuprinse în Catalog, conferă acestora și valența de primă bibliografie națională sistematică;

În 1864 la 23 octombrie, este promovată prima lege românească specifică pentru biblioteci, cunoscută sub denumirea Regulamentul bibliotecilor publice. Acest act normativ este contemporan cu întreaga dezvoltare biblioteconomică europeană: În anul 1850, este promulgată în Anglia, Legea pentru bibliotecile publice, (Public Libraries Act) prin care se asigura gratuitatea serviciului de lectură publică;

Renașterea postbelică; în 1935, Primăria Municipiului București reînființează Biblioteca Municipiului București, instituție care funcționează până în prezent și care fusese oprită de parcursul perioadei celor două războaie. Această instituție este creată în locul Bibliotecii ,,Sf Sava”.

După mai multe schimbări de structură și formă Biblioteca Municipiului București devine în 1969 Biblioteca Municipală Mihail Sadoveanu, după reorganizarea administrativă a Bucureștilor. Biblioteca a centralizat principalele servicii, iar bibliotecile raionale au devenit filiale ale Bibliotecii Municipale;

Ultima modificare a statutului bibliotecii a avut loc în 2002 când, potrivit Legii bibliotecilor a fost înființată Biblioteca Metropolitană București, succesoare a Bibliotecii Municipale Mihail Sadoveanu.

1.2 Analiza procesului de informatizare

Înscriindu-se în tendințele moderne ale bibliotecilor pe plan mondial, BMB a început procesul de informatizare în septembrie 1992, prin înființarea Departamentului de Informatică și Media. Componența laboratorului s-a constituit din persoane cu studii de specialitate aflate în bibliotecă și transformarea posturilor de bibliotecari în posturi de informaticieni (1 analist, 1 programator, 1 inginer de sistem, 1 programator-ajutor), la care s-a adăugat un post de redactor. La acel moment, biblioteca dispunea de câteva calculatoare Apple foarte vechi (care nu au putut fi utilizate niciodată) și un calculator PC (AT 386 DX/40 Mhz, 4 Mb RAM, HDD de 120 MB), calculator obținut prin donație.

1.2.1 Dotarea în trecut

Activitatea specialiștilor din laborator s-a axat, la început, pe analiza serviciilor din bibliotecă, implementarea programului ProCite 1.4 pentru baze de date bibliografice, implementarea unei aplicații de personal-salarizare, editare și tehnoredactare, precum și pe organizarea unor cursuri pentru bibliotecari.

În continuare sunt punctate evenimentele semnificative din procesul de informatizare:

1992

• rețea coaxială de PC-uri, Novell 3.11

• primele baze de date bibliografice în Procite v. 1.4

• aplicație personal-salarizare în Foxpro.

1993

• baze de date în Foxpro pentru evidența cărților și a periodicelor

• editare în WP5.1 a fișelor de catalog și a borderourilor de însoțire a cărților

• acces la informații de pe CD-ROM-uri;

1994

• apibliotecă, implementarea programului ProCite 1.4 pentru baze de date bibliografice, implementarea unei aplicații de personal-salarizare, editare și tehnoredactare, precum și pe organizarea unor cursuri pentru bibliotecari.

În continuare sunt punctate evenimentele semnificative din procesul de informatizare:

1992

• rețea coaxială de PC-uri, Novell 3.11

• primele baze de date bibliografice în Procite v. 1.4

• aplicație personal-salarizare în Foxpro.

1993

• baze de date în Foxpro pentru evidența cărților și a periodicelor

• editare în WP5.1 a fișelor de catalog și a borderourilor de însoțire a cărților

• acces la informații de pe CD-ROM-uri;

1994

• aplicație în Foxpro pentru schimb internațional;

1995

• baze de date bibliografice în Procite

• constituirea catalogului on-line folosind sistemul integrat de bibliotecă VUBIS

• conectare la Internet prin linie telefonică dedicată la rețeaua RoEduNet;

1996

• acces la Internet pentru public

• împrumut automatizat prin utilizarea modulului de circulație VUBIS, bar codare publicații și legitimații înfoliate (septembrie)

• acces on-line la baze de date bibliografice externe (Academic Dialog)

1997

• schimbarea de pe cablare rețea coaxială de 10 Mb/s la rețea cu cablu torsadat de 100 Mb/s

1999

• conversie baze de date din VUBIS în noul sistem integrat de bibliotecă ALEPH 500

• baze de date bibliografice în Procite 4 sub Windows 95

• acces on-line la catalogul propriu ALEPH prin pagină web a bibliotecii

• conectarea la rețeaua Netcity prin fibră optică;

2000

• o nouă Sală multimedia (aprilie)

• abonament la baza de date Info Trac (General Bussiness File, Expand Academic) și Engineering Village

• acces on-line la baza de date EBSCO (Academic Search Elite, Business Source

Premiere, Newspaper Source Plus) printr-un proiect SOROS

• punct de informare ONU

• acces la 12 reviste electronice full text (editura Elsevier)

• acces on-line la baze de date bibliografice interne folosind aplicația Web Poster;

2001

• conectare la Internet prin stație radio la providerul DNT;

2002

• schimbarea versiunii sistemului integrat de bibliotecă ALEPH (februarie-martie)

• baze de date bibliografice în Procite 4 sub Windows 95

• conectare la Internet prin fibră optică la providerul RDS (din 1 martie);

2003

• acces on-line la baza de date JSTOR. Arts Science Collection, plătită de Facultatea de Istorie și Filosofie pentru 2003-2004

• acces pentru public la baza legislativă Lex;

2004

• acces on-line la bazele de date ProQuest

• crearea de CD-ROM-uri cu baze bibliografice proprii

• acces la baza legislativă Legis

1.2.2 Dotarea în prezent

HARDWARE

A) În sediul central avem o rețea pe cablu torsadat de categorie 5, pe majoritatea tronsoanelor utilizându-se viteza de 100 Mb/s și având drept componente principale:

• Server Unix – calculator IMB RISC 6000, model H70, 1GB RAM, 1 HDD 4.5 GB, 4 HDD 9.1 GB, strimer de 12/24 GB, unitate CD-ROM, UPS incorporat

• Server Novell – Pentium ÎI/233Mhz, 256 MB RAM, 1 HDD 9 GB + 2 HDD 2.4 GB

• Server Internet – Pentium IV/2200 Mhz, 512 MB RAM, 2 HDD 36 GB

• Server Windows NT – Pentium III/500 Mhz, 256 MB RAM, 1 HDD 12 GB

• Server SUN2 – 256 MB RAM, 2 HDD 9 GB

• 127 stații – calculatoare Pentium

• 28 imprimante (7 laser, 14 cu jet de cerneală, 6 matriciale, 1 pt. generare barcoduri)

• 1 turn CD-ROM cu 7 unități

• 4 scanere

• 8 cititoare de barcoduri.

La aceste echipamente se adaugă componentele de conectică (switch-uri, HUB-uri, modeme etc).

B) Filialele sunt conectate în cadrul rețelelor de facultate și au următoarea dotare:

• 75 stații ale BMB – 4 calculatoare PC 486 și 71 calculatoare Pentium

• 19 calculatoare Pentium date de Netcity (1 Geografie, 1 Științe europene, 2 Științe politice, 1 Americană, 1 Teologie ortodoxă, 2 Teologie greco-catolică, 1 Matematică, 2 Fizică, 1 Austriacă, 6 Drept, 1 economice)

• 15 imprimante (3 laser, 6 cu jet de cerneală, 6 matriciale)

• 3 cititoare de barcoduri.

Rețeaua BMB este conectată la rețeaua Netcity prin fibră optică, deci are o legătură Internet la rețeaua RoEduNet și încă o legătură Internet prin providerul RDS de viteză 256->512 Kb/s.

Dispunerea calculatoarelor în rețeaua din clădirea centrală este redată în anexă conform planurilor clădirii, pe nivele, iar schema de ansamblu este prezentată în figură următoare:

Rețeaua BMB este conectată la rețeaua Netcity prin fibră optică, deci are o legătură

Internet la rețeaua RoEduNet și încă o legătură Internet prin providerul RDS de viteză

256->512 Kb/s.

Dispunerea calculatoarelor în rețeaua din clădirea centrală este redată în anexă conform

Planurilor clădirii, pe nivele, iar schema de ansamblu este prezentată în figură următoare:

SOFTWARE

Sisteme de operare:

– AIX 4.3 pentru serverul IBM cu sistemul ALEPH

– Novell 4.1 pentru aplicațiile FoxPro

– Linux Red Hat 9 pentru serverul Internet și serverul Firewall

– Linux Mandrake 8 pentru stațiile de la public cu webOPAC

– Windows NT pentru serverul cu bazele bibliografice

– Windows ‘95, ’98, NT, 2000, XP, 7 și 8 pentru stații.

Aplicații:

– Aplicații proprii în FoxPro 2.6:

• Evidența cumpărăturilor și donațiilor

• Evidența revistelor trimise și primite prin schimb internațional

• Gestionare abonamente

– Modulul de catalogare Aleph pentru Fondul Legal și listarea registrului inventar prin utilizarea unui script SQL și formatare în Excel. Catalogare/Indexare/Periodice

– Modulul de catalogare ALEPH (fișe de catalog extrase din baza Aleph și prelucrate în Corel WordPerfect 10)

Împrumut

– Modulul de circulație ALEPH

Depozit

– Modulul de circulație ALEPH pentru împrumutul la săli

– Modulul de catalogare ALEPH pentru retroconversie.

Documentare – ProCite versiunea 5 pentru lucrări analitice de mare complexitate

Bibliografică, tematice, cu posibilitatea creării de indici complementari.

Filiale:

– Modulul de catalogare ALEPH

– ProCite v. 5

– Aplicație Fox pentru casări

– Aplicație Fox pentru decont schimb internațional – statistici în Excel.

Resurse umane – aplicația Fox pentru evidența drepturilor salariale ale persoanelor.

Contabilitate

– Aplicația Ciel pentru gestiune contabilă

– Aplicații Fox pentru:

• calcul salarii

• evidență mijloace fixe

• evidență obiecte de mică valoare.

Aceste dotări au fost realizate prin suport financiar al BMB și prin participarea la proiecte/programe naționale și internaționale:

• TEMPUS JEP 3764-92/1 – Upgrading Library and Information Sciences în România, 1992-1995 – server Pentium DEC, 4 stații DEC 486 și două cititoare de barcod; sistemul integrat de bibliotecă VUBIS 3.1 pentru 12 utilizatori.

• SOROS – Conectarea la rețele de comunicații internaționale (INTERNET), 1995 -server Internet și două modeme; – alte proiecte – 10 calculatoare (4 în sediul central și 6 la filiale), 1 modem, upgrade Novell de la v. 3.11 pentru 20 de utilizatori la 4.1 pentru 50 de utilizatori, licența de FoxPro 2.6 și licența pentru programul ProCite 2.2. • TEMPUS JEP 9596 – Restructuration de la gestion des bibliothèques universitares roumaines, 1996-1998 – 1 retroproiector EPSON, 1 switch, 1 turn CD-ROM cu șapte unități, imprimantă de generare barcod, o cameră digitală, 5 HUB-uri, 7 modeme, tester de rețea, dispozitiv de etichetat, 2 cititoare de barcod și 800 m de cablu torsadat.

• PHARE HER RO9601 – Higher Education Reform Programme, 1996-2001 – 44 de calculatore și 8 modeme.

Analizând situația dotării existente se pot enunța două concluzii pe cele două direcții analizate: – dotarea hard, deși aparent bună, este deficitară la capitolul actualitate/modernitate și este insuficientă mai ales la interfața cu publicul. – Dotarea soft este foarte variată, acoperind majoritatea activităților din bibliotecă, dar este insuficientă din punct de vedere al licențelor sistemului Aleph (biblioteca având doar 20 de licențe pentru bibliotecari și 10 pentru public) ceea ce perturbă grav activitățile din bibliotecă.

Implicarea în dezvoltarea competențelor informaționale ale utilizatorilor specifici. Concomitent cu dezvoltarea colecțiilor pe suport electronic, biblioteca universitară trebuie să se preocupe și de îmbogățirea cunoștințelor în domeniul informării ale utilizatorilor specifici. Ea trebuie să joace un rol central în transmiterea conceptelor și tehnicilor culturii informației, astfel încât utilizatorii să devină autonomi și să ajungă rapid la cele mai adecvate surse de informare.

În același timp, ridicarea nivelului de competență informațională îi va face pe utilizatori să fie mult mai conștienți de calitatea și diversitatea colecțiilor și serviciilor furnizate de bibliotecă, ceea ce în mod firesc ar trebui să conducă la o creștere a frecvenței cu care le vor folosi.

În România nu există încă o strategie privind introducerea culturii informației ca obiect de studiu în cadrul programelor universitare. Pentru ca bibliotecile românești din învățământul superior să aibă un cuvânt de spus în acest domeniu, este necesar ca predarea culturii informației să fie asumată drept un obiectiv strategic al bibliotecii și să fie integrată în oferta de servicii pusă la dispoziția utilizatorilor.

Extinderea prezenței bibliotecii în mediul online. Și aici se poate vorbi de un nivel minim acceptat al serviciilor, al cărui fundament este condiția sine qua non a existenței unui site propriu al bibliotecii.

Cum serviciile de referințe prin e-mail cunosc actualmente o răspândire destul de largă în bibliotecile noastre, următorul pas ar trebui să fie dezvoltarea serviciilor de referințe furnizate prin mesagerie instantanee, care pot constitui o soluție pentru facilitarea accesului la informații al utilizatorilor aflați la distanță, ținând cont și de faptul că acest tip de comunicare este foarte popular în rândul studenților. Mai evoluate, serviciile de referințe furnizate pe dispozitive mobile sunt și ele de luat în calcul într-o perspectivă apropiată. Integrarea serviciilor Web 2.0 în oferta bibliotecilor universitare este într-o fază incipientă.

Ținând cont de popularitatea din ce în ce mai mare de care se bucură și în România rețeaua de socializare Facebook, estimăm că în viitorul apropiat ea va fi din ce în mai folosită ca instrument de marketing și relații publice al bibliotecilor universitare. În același timp, utilizarea site-urilor de partajare a imaginilor video pentru diseminarea unor filme de prezentare a bibliotecii, a unor tutori ale etc. Poate constitui o metodă de promovare cu impact foarte mare. Într-un cuvânt, timpul pe care studenții îl petrec în mediul online ar trebui să fie mult mai bine valorificat în scopul atragerii lor către folosirea resurselor bibliotecii.

Diversificarea funcțiilor îndeplinite de spațiile bibliotecii. Bibliotecile universitare trebuie să joace un rol mai important în învățământul superior, inclusiv prin punerea la dispoziția utilizatorilor a unor spații dedicate studiului individual și/sau lucrului în grup. În același timp, asumarea unei misiuni de facilitare a socializării ar face din biblioteca universitară un loc mult mai popular și mai atractiv, în special pentru studenți.

Rămânerile în urmă care se pot constata în evoluția de după 1989 a bibliotecilor universitare românești sunt cauzate, printre altele, de lipsa de coordonare și corelare a demersurilor, de comunicarea profesională defectuoasă sau inexistentă, de interesul scăzut pentru cooperare și pentru implicarea în proiecte comune.

Descentralizarea produsă în perioada postcomunistă la toate nivelurile, deci și în domeniul bibliotecilor, a fost interpretată de unii manageri de bibliotecă sau chiar simpli bibliotecari drept o invitație la izolare profesională, la redescoperirea pe plan local a unor soluții deja descoperite de alții, la „secretizarea” exemplelor de bune practici. Și din această cauză, rezultatul pe care îl vedem astăzi este un mozaic de biblioteci aflate în stadii foarte diferite de dezvoltare și modernizare.

Cum este de prevăzut că schimbarea acestor mentalități nu se va produce de la sine într-un orizont de timp foarte apropiat, soluția este, în opinia noastră, că organismele de coordonare înființate prin Legea bibliotecilor și Legea educației – Comisia Națională a Bibliotecilor, respectiv Consiliul Național al Bibliotecilor Universitare – să elaboreze strategii și politici aplicabile la nivel național și să urmărească punerea lor în practică.

Pledoaria pentru biblioteci. Bibliotecile românești, indiferent de rețeaua din care fac parte, au o mare problemă de vizibilitate și de imagine. Pe lângă alte lipsuri, ele suferă și din cauză că nu știu să comunice constant și eficient cu mediul extern, astfel încât să-și pună în valoare atuurile. Drept urmare, modul în care sunt percepute de factorii decizionali nu este unul de natură să creeze așteptări foarte mari de la aceștia.

Astfel, chiar dacă scăderea gradului de frecventare a bibliotecilor universitare românești se înscrie în tendințele raportate pe plan mondial, ea nu este determinată doar de concurența făcută de informațiile pe suport electronic. Credem că printre cauzele importante ale acestei stări de fapt se numără atitudinea față de biblioteci manifestată la nivelul autorităților finanțatoare, legislative sau guvernamentale, care dovedește de cele mai multe ori o proastă înțelegere a rolului bibliotecii în societate și, în general, a contextului informațional contemporan.

Asumarea, la nivel declarativ, a unor direcții de acțiune care vizează integrarea bibliotecilor în Societatea Informației, Societatea Cunoașterii și în alte concepte largi și primitoare care devin ușor victimele instrumentale ale adepților formelor fără fond s-a reflectat foarte puțin în fapte. Preocuparea pentru extinderea ofertei de resurse electronice este necesară și lăudabilă, dar ea trebuie să fie însoțită de măsuri eficiente care să-i stimuleze pe studenți să fie creativi, să caute noutatea, să gândească critic, astfel încât aceștia să se orienteze spre consultarea unor surse de informare actuale, de calitate, indiferent de forma în care sunt disponibile. În cazul în care această schimbare de atitudine nu se va produce la nivelul învățământului superior, accentul pus pe furnizarea accesului la informații pe suport electronic nu va avea efecte majore, iar bibliotecile virtuale cu caracter academic pentru care pledează din când în când autoritățile vor fi la fel de puțin „frecventate” ca bibliotecile tradiționale.

În același timp, modul în care factorii decizionali percep biblioteca și rolul ei în contextul informațional contemporan este și rezultatul metodelor de comunicare învechite, ineficiente pe care biblioteca le folosește pentru a-și promova activitățile. Adoptarea unor politici eficiente de marketing și relații publice trebuie să fie însoțită de o pledoarie susținută pentru importanța bibliotecilor în cadrul procesului de învățământ, care să-i informeze și să-i sensibilizeze pe cei de care depind finanțarea și definirea cadrului legislativ în care evoluează bibliotecile universitare.

Transformarea evaluării dintr-un eveniment într-un proces continuu. În bibliotecile universitare românești, evaluarea politicilor, proceselor, colecțiilor, serviciilor are un caracter aleator. Bibliotecile românești, indiferent de tipul lor, nu au o cultură a evaluării, ceea ce constituie o piedică importantă în calea modernizării. În același timp, evaluarea, în puținele cazuri în care se produce, este de cele mai multe ori formală și nu este urmată de decizii în direcția îmbunătățirii anumitor activități și procese. Și mai grav, cunoașterea nevoilor și comportamentelor informaționale ale utilizatorilor proprii, care ar trebui să fie o componentă esențială a politicilor oricărei biblioteci, este o preocupare foarte rar întâlnită. Chestionarele, sondajele, studiile de caz având ca obiect satisfacția utilizatorilor, motivațiile acestora, modul în care folosesc și receptează serviciile furnizate de bibliotecă, practicile lor de informare în interiorul și în afara bibliotecii sunt excepția și nu regula.

Pentru a asigura un cumul de baze solide pentru modernizarea bibliotecilor din învățământul superior românesc, evaluarea trebuie asumată ca un proces continuu. Ea trebuie să se materializeze într-un efort susținut, neîntrerupt de cunoaștere și analiză a rezultatelor tuturor proceselor de bibliotecă, implicit a nevoilor și comportamentelor informaționale ale utilizatorilor.

În acest context al preocupării pentru evaluare, considerăm că setul de zece indicatori pentru evaluarea utilizării bazelor de date științifice și a altor categorii de resurse electronice pe care i-am propus în ultimul capitol prezintă interes pentru bibliotecile preocupate să verifice utilitatea investițiilor costisitoare pe care le fac în acest tip de surse de informare și să le aleagă pe cele care sunt cele mai adecvate pentru studenții, cadrele didactice și cercetătorii pe care îi servesc.

Analiza gradului de utilizare este unul dintre cele mai bune mijloace pe care biblioteca universitară contemporană le are la dispoziție pentru a contura un profil comportamental al utilizatorilor săi în raport cu resursele electronice online. Pornind de la ideea că, pentru a obține o imagine complexă a interesului utilizatorilor față de resursele electronice, abordările cantitative trebuie să fie însoțite de analize calitative, chestionarul pe care l-am aplicat pe un eșantion al studenților din centrul universitar București ne-a permis configurarea unui profil comportamental al acestora în raport cu biblioteca universitară -replicabil, în mare măsură, la nivelul întregii țări, și creionarea câtorva direcții în care serviciile bibliotecii ar trebui să evolueze pentru a răspunde mai bine nevoilor lor de informare, studiu și cercetare.

Pentru caracterizarea modului în care sistemului românesc de învățământ superior se situează în raport cu informația, rezultatele chestionarului, coroborate cu cele ale altor studii pe care le-am menționat mai sus sunt edificatoare. Faptul că studenții au puține cunoștințe cu privire la rolul bibliotecii și al procesului de informare, că un procent foarte mare frecventează biblioteca foarte rar sau deloc și că majoritatea lor apelează mai des la bibliotecă în preajma examenelor decât în restul anului universitar arată că învățământul superior românesc este unul în care, în mare parte, relația dintre consultarea surselor de informare și finalizarea studiilor nu este una de condiționare.

Orientarea majorității studenților către consultarea surselor de informare indicate de profesori ți preferința pentru împrumutul la domiciliu în detrimentul lecturii în sală indică bibliotecii faptul că trebuie să-și orienteze achiziția către asigurarea unui număr suficient de exemplare din publicațiile cuprinse în bibliografiile de curs, pe care să le pună la dispoziție pentru împrumut.

Așadar, bibliotecile universitare bucureștene sunt preferate mai mult ca furnizori de publicații decât ca spațiu de lectură și sunt utilizate în principal din motive practice. Motivațiile complementare, cum ar fi nevoia de socializare, au o pondere foarte scăzută. În opinia noastră, această atitudine este determinată de tradiționalismul funcțiilor îndeplinite de spațiile bibliotecii, desigur din motive obiective (clădiri vechi, spații inadecvate sau insuficiente), în principal. Integrarea funcției de facilitare a socializării în spațiile bibliotecii este una dintre deciziile cu mare potențial de influențare a percepției pe care utilizatorii o au asupra acestei instituții. De aceea, considerăm că și bibliotecile universitare românești, în special cele care au în vedere proiectarea unor spații și clădiri noi, ar trebui să aibă în vedere acest aspect.

În ceea ce privește atitudinea studenților față de resursele electronice puse la dispoziție de bibliotecă, răspunsurile lor arată că structurile info-documentare din universitate nu îi stimulează suficient pentru a-i face să consulte în mod frecvent aceste resurse. Soluția este o mai mare atenție acordată promovării bazelor de date, e-book-urilor și altor resurse electronice achiziționate, în condițiile în care costurile ridicate pe care le implică cumpărarea lor nu se pot amortiza și justifica altfel decât printr-o rată ridicată a consultării.

O altă concluzie importantă care a rezultat din răspunsurile la chestionar este aceea că modul de interacțiune cu personalul bibliotecii, calitatea contactului uman sunt esențiale pentru studenți. Calitatea comportamentului și a asistenței acordate pot să mulțumească utilizatorul chiar atunci când resursele, spațiile, colecțiile bibliotecii nu se situează la cel mai înalt nivel, după cum și reciproca este valabilă – un comportament inadecvat și lipsa de profesionalism a personalului îl pot îndepărta de bibliotecă, indiferent de cât de bine este ea dotată.

CAPITOLUL 2 TEHNOLOGII INFORMATICE FOLOSITE PENTRU GESTIUNEA CĂRȚILOR DINTR-O BIBIOTECĂ

Domeniul de gestiune a necesitat din totdeauna abilități speciale și un mod particular de abordare. Mai mult decât atât, domeniu gestiunilor de cărți a primit atenție sporită, tocmai particularităților sale legate de înregistrarea, depozitarea și activitatea de împrumut a cărtilor.

Tocmai de aceea tehnologiile informatice care pot fi folosite în susținerea unei gestiuni a unei biblioteci, necesită o serie de caracteristici și trăsături specifice.

2.1 Clasificarea limbajelor de programare

Cea mai folosită clasificare este cea care grupează limbajele de programare pe generații și urmărește periodizarea evoluției calculatoarelor.

Generațiile de limbaje care pot fi identificate sunt:

Generația I – limbajele în cod mașină, în care toate instrucțiunile sunt numerice (șiruri de 0 și 1), fiind redactate plecând de la un cod binar propriu fiecărei mașini (calculator). Utilizatorul trebuia să țină minte toate codurile numerice, ceea ce la calculatoarele moderne ar însemna mii de coduri și adresele de memorie utilizate, astfel că productivitatea este foarte redusă. Programele scrise în limbaj mașinǎ puteau fi executate numai pe calculatorul pentru care au fost elaborate (nu erau portabile). Principalele deficiențe ale acestor limbaje sunt legate de dificultățile de corectare a programelor, aceste programe fiind mari, iar erorile greu de identificat.

Generația a II-a – limbajele de asamblare, care înlocuiesc codurile numerice cu cele mnemonice, adresele fiind alocate de sistem. Utilizarea acestor limbaje presupune existența unor programe speciale numite asambloare care să traducă instrucțiunile în limbaj cod mașină. Instrucțiunile se traduc 1 la 1, adică fiecărei instrucțiuni în limbaj de asamblare îi corespunde o instrucțiune în cod mașină. Operația poartă numele de asamblare, iar rezultatul se numește program obiect executabil. Pentru a reprezenta codurile de operații și pozițiile din memorie se folosesc simboluri, motiv pentru care aceste limbaje se mai numesc și limbaje simbolice.

Execuția unui program sursă scris într-un limbaj de asamblare are loc pe parcursul a două etape: asamblarea și execuția propriu-zisă. Schematic se obține următoarea reprezentare:

Fig. nr.1.2. Tratarea programelor în limbaje de asamblare

Limbajele de asamblare permit utilizarea de abrevieri alfabetice (mnemonice) care sunt mai ușor de memorat decât adresele scrise în binar (Ex. ADD – adunare, DIV – împărțire). Ele simplifică enorm programarea, deoarece elimină memorarea pozițiilor din memorie pentru date și instrucțiuni. Totodată, limbajul de asamblare rămâne un limbaj orientat mașină deoarece instrucțiunile în limbaj de asamblare corespund instrucțiunilor în limbaj mașină conform modelului de calculator utilizat.

O singură instrucțiune în limbaj de asamblare corespunde unei singure instrucțiuni în limbaj mașină și deci este nevoie de același număr de instrucțiuni în ambele cazuri.

Aceste limbaje sunt utilizate pentru elaborarea software-ul ui de sistem, datorită vitezei de execuție ridicate, chiar dacă limbajele evoluate solicită un efort de programare mai mic.

Exemplu: Să se calculeze media aritmetică a trei numere M= (X+Y+Z)/3 LDA X – încarcă X în registrul A ADD Y – adună Y la conținutul registrului A ADD Z -adună Z la conținutul registrului A DIV 3 – împarte rezultatul la 3 STA B – stochează rezultatul final în B

Limbajele în cod mașină și de asamblare sunt limbaje de nivel redus.

Generația a III-a – limbajele de nivel înalt sau evoluate, care au dominat peste 30 de ani piața informaticii. Reprezentative sunt: FORTRAN pentru ingineri și matematicieni și COBOL pentru mediul economic. Caracteristica lor principală este proceduralitatea (adică urmăresc pas cu pas procedura de rezolvare a unei probleme). Au fost create mii de astfel de limbaje, unele având destinații precise (FORTRAN și ALGOL sunt destinate calculelor științifice, COBOL este destinat aplicațiilor economice, SIMULA fiind un limbaj de simulare, etc.), iar altele având utilizare largă (BASIC, PASCAL, C). Și instrucțiunile scrise în aceste limbaje trebuie traduse în cod mașină; pentru aceasta se utilizează două categorii de translatoare:

compilatoare – sunt translatoare care citesc tot programul în limbajul în care este scris (în cod sursă) și apoi îl traduc în cod mașină (sunt utilizate pentru COBOL, FORTRAN);

interpretoare – sunt translatoare care citesc pe rând fiecare instrucțiune din programul sursă, o traduc și o execută (sunt utilizate pentru BASIC, PASCAL).

Prin urmare programele sursă redactate în limbaje evoluate sunt supuse unui proces de “tratare” desfășurat pe trei faze: compilarea/interpretarea;

Editarea de legături; execuția propriu-zisă. Schematic se obține următoarea reprezentare:

Fig.1.3. Tratarea programelor în limbaje evaluate

Avantaje: sunt mai ușor de învățat și utilizat decât limbajele de asamblare; sunt portabile (pot fi utilizate și pe un alt calculator); pot fi oricând modificate și actualizate. Câștigul de productivitate este remarcabil: o linie de program scris cu un limbaj de generația a III-a reprezintă mai mult de 100 de linii de instrucțiuni în cod-mașină. Dezavantaje: au reguli și sintaxe rigide și deloc ușor de învățat pentru un utilizator nespecialist; solicită mult timp pentru translatare în cod mașină (descoperirea unei erori înseamnă nu numai corectarea ei, ci și traducerea din nou în cod mașină).

Exemplu: Folosind limbaje din generația a 3-a să se codifice X = Y – Z

În COBOL: SUBSTRACT Z FROM Y GIVING X

În BASIC: LEȚ X = Y – Z

În PASCAL: X: = Y-Z

Aceste limbaje se caracterizează prin procedurali tate, adică evenimentele se succed secvențial, unul după altul. Există în literatura de specialitate o împărțire a LG3 în generații. Cu mențiunea că există și excepții, iată care sunt acestea:

generația I se încadrează în intervalul 1954 – 1958. Comenzile erau bazate pe expresii matematice. Reprezentanți: FORTRAN I, ALGOL;

generația a II-a acoperă intervalul 1959 – 1961 (FORTRAN ÎI, ALGOL 60, COBOL). Apar subrutinele programate, se definesc structurile de date și lucrul cu fișierele de date;

generația a III-a cuprinde intervalul 1962 – 1970 și este reprezentată de limbaje de programare structurate (ALGOL 68, PL/1, PASCAL, BASIC, COBOL structurat). Se impun principiile programării structurate.

Realizarea unui program începe cu definirea principalilor pași și continuă în această manieră până când întregul program este dezvoltat. Ideea structurării a apărut datorită problemelor ce apăreau la dezvoltarea de aplicații complexe, cea mai relevantă fiind lipsa viziunii de ansamblu asupra programului. Deși primele concepte ale programării structurate au apărut încă de la începutul anilor ’60, implementarea lor s-a făcut în timp, în sprijinul acesteia creându-se metodologiile care ofereau direcțiile de urmat în proiectarea de aplicații, pas-cu-pas.

După anii ’70 au apărut tot mai multe tipuri de LP, astfel ca încadrarea lor în generații a devenit tot mai dificilă. Programarea structurată s-a generalizat. În domeniul aplicațiilor economice, COBOL deținea 80% din totalul acestora.

Generația a IV-a (4GL) – limbajele de nivel foarte înalt, care au apărut în primul rând pentru utilizatorii nespecialiști, numiți și utilizatori finali. Se caracterizează prin neproceduralitate (utilizatorul trebuie să-i spună calculatorului CE SĂ FACĂ, și nu CUM SĂ FACĂ) și este un limbaj conversațional, interactiv. Se bazează în mare măsură pe utilizarea meniurilor și interfețelor grafice, fiind ușor de învățat (oferă facilități de tip HELP sau Wizard).

Evenimentul ce a perturbat evoluția limbajelor procedurale a fost apariția și, mai ales, răspândirea PC-urilor. La mijlocul anilor ’80 a început declinul mainframe-urilor și al prelucrării centralizate a datelor. Managerii erau încântați de posibilitățile pe care le oferea PC-ul în a-și rezolva singuri multe din probleme, mai ales odată cu apariția interfețelor grafice.

Utilizatorii de PC-uri nu-și propuneau să rezolve probleme complicate și să dezvolte aplicații complexe, astfel că nu aveau nevoie de limbaje declarative. Ei cereau limbaje grafice, prietenoase, de aceea limbajele procedurale au evoluat altfel decât către declarativ. A IV-a generație de limbaje de programare a fost orientată către utilizatori, fiind numită și generația utilizatorilor finali. Producătorii de software s-au orientat către crearea de instrumente și medii de lucru prietenoase, iar accentul s-a mutat pe interfața cu utilizatorul. O interfață grafică, simplă, dar nu simplistă, care să ofere utilizatorului un mediu de lucru eficient și prietenos în același timp a devenit cheia unui soft de succes.

Caracteristicile limbajelor de generația a IV-a pot fi rezumate astfel: ne-proceduralitate, interfață prietenoasă și eficacitate.

Majoritatea specialiștilor grupează limbajele din generația a patra în următoarele clase de produse:

limbaje (instrumente) de interogare;

generatoare de rapoarte;

generatoare de aplicații și/sau proiecte;

generatoare de grafice;

instrumente de sprijinire a deciziilor

Tendințe majore în software

Așa cum rezultă și din figura 1.4, două sunt tendințele care au marcat evoluția limbajelor de programare. Prima este trecerea de la programele specializate pe un tip de probleme, elaborate de programatori profesioniști la pachetele de software cu destinații diverse adaptate la nivelul utilizatorilor finali ne informaticieni. Această tendință s-a amplificat odată cu apariția microcalculatoarelor.

Tendința principală în prezent este către instrumente avansate de dezvoltare a aplicațiilor orientate pe obiect. A doua tendință este îndepărtarea de limbajele de programare tehnice, foarte dificil de utilizat, specifice începuturilor programării (limbaje de generația I și a II-a) și de limbajele procedurale. Tendința este către limbajele ne procedurale și limbajele naturale, apropiate de limbajul uman, tendință care s-a accentuat odată cu apariția celei de-a IV-a generații de limbaje.

Ea continuă prin îmbunătățirea interfețelor grafice și dezvoltarea inteligenței artificiale, care produce așteptatele limbaje naturale. Este vorba de cea de-a V-a generație de limbaje de programare, reprezentată de pachete de programe asistate de experți. Și în pachetele de programe actuale sunt încorporate unele module de ajutor sau module de sprijin inteligente (wizard) care oferă utilizatorului asistență în rezolvarea unor probleme (realizarea unui grafic sau tabel).

O altă clasificare a limbajelor de programare a fost realizată de J.E. Sammet într-o lucrare publicată în 1969, el având în vedere următoarele clase de limbaje: procedurale, ne procedurale, orientate pe problemă și speciale. Încadrarea unui limbaj de programare anume într-o clasă este uneori dificil de realizat.

Limbajele procedurale (numite și limbaje de nivel înalt) sunt utilizate pentru a descrie un algoritm de rezolvare a unei probleme. Se descriu complet operațiunile care se execută și ordinea de execuție a acestora. Ele răspund la întrebarea, CUM?” Exemple: COBOL, FORTRAN, BASIC, ALGOL, PASCAL.

Din multitudinea limbajelor de programare practica a consacrat atât limbaje de tip universal, cât și limbaje specializate pe domenii de activitate. În continuare, fără pretenția de a fi exhaustivi, prezentăm limbajele care s-au impus în domeniul economic și în cel tehnico-științific.

FORTRAN (FORmula TRANslation) este un limbaj cu orientare matematică, fiind utilizat cu precădere în aplicații tehnice (ecuații, operații cu mătrici, programare liniară, simulare). Este primul limbaj de nivel înalt. Prima versiune a apărut în 1954, fiind realizată de o echipă de la IBM și urmată de alte versiuni perfecționate. 1964 este anul în care FORTRAN a fost standardizat în SUA. A fost foarte criticat în anii ’70, conferindu-i-se atributele greoi, dezordonat, infantil și fără speranță de a deveni adecvat. Totuși, ultimele versiuni FORTRAN au fost aduse în concordanță cu noile standarde ale programării structurate. Cu toate acestea, este destul de puțin utilizat astăzi. Cele mai utilizate versiuni au fost: FORTRAN IV, FORTRAN IV PLUS, FORTRAN 77 – pentru minicalculatoare, specializat pentru prelucrări în timp real, FORTRAN 90 – variantă îmbunătățită cu atributele programării orientate obiect.

COBOL (COmmon Business Oriented Language) a fost primul limbaj orientat exclusiv către rezolvarea problemelor economice, cum reiese și din numele său. Dintre limbajele din generația a 3-a este cel mai răspândit, după FORTRAN. Se utilizează pentru exploatarea unui volum mare de date cu structuri diverse (arbori, tablouri, fișiere etc.). COBOL a fost lansat în 1964, fiind dezvoltat de o echipă de specialiști, condusă de o femeie (cpt. Grace Hooper) de la Departamentul Apărării SUA. A fost standardizat prima oară în 1968. Succesul lansării și utilizării în următorii ani (la sfârșitul anilor ’80, între 60 și 75% din aplicațiile economice erau scrise în COBOL) a fost însoțit de mai multe controverse. Avantaje: posibilitatea manipulării unor volume mari de date, descrierea completă a structurilor de date, rapiditate în execuție (datorită compilării).

FOCUS a lansat în 1994 COBOL orientat pe obiecte pentru microcalculatoare. La ora actuală, pentru microcalculatoare, firma Micro Focus oferă compilatoare COBOL care permit:

dezvoltarea de aplicații (inclusiv cu facilități grafice) pentru lucrul în rețelele de calculatoare;

dezvoltarea de aplicații cross-platform destinate unei game largi de echipamente și sisteme de operare; asigurarea portabilității la nivel de programe sursă.

PASCAL este un limbaj popular în mediul universitar (mai ales în facultățile de informatică și matematică). A apărut în 1968 și a fost denumit după matematicianul francez Blaise Pascal. Este un limbaj universal, caracterizat prin simplitate, eficiență, accesibilitate (chiar și pentru începători) și care prezintă (încă de la prima versiune) toate elementele specifice programării structurate. Sunt păreri care apreciază că învățarea limbajului PASCAL este indispensabilă pentru formarea unor informaticieni. Dezavantaje: slabă gestionare a datelor organizate în fișiere și incapacitatea de a manipula volume mari de date. Limbajul a cunoscut mai multe versiuni adaptate diverselor metode de prelucrare (Pascal secvențial, Pascal concurent, Pascal obiectual). Pascal a stat la baza elaborării de noi limbaje precum MODULA-1, MODULA-2, ADA. Ultimele versiuni, produse de firma Borland, au apărut sub numele Turbo PASCAL, cu un succes remarcabil pe piață.

ADA, (Automatic Data Acquisition și totodată numele contesei de Lovelace Augusta Ada Byron, considerată a fi primul programator din lume), elaborat la Departamentul Apărării SUA pentru aplicații tehnico-științifice în 1979. Are multe din elementele limbajului

C a fost produs de Bell Laboratories la începutul anilor ’70 (dezvoltă limbajul B elaborat de laboratoarele Bell). Este un limbaj orientat spre asigurarea fluxurilor de instrucțiuni, conducând la elaborarea de programe compacte, bine structurate. Destinat inițial programatorilor de sistem, și-a lărgit aria de utilizatori odată cu extinderea sistemului de operare UNIX. Este limbajul de programare cu cea mai impresionantă evoluție și extindere în anii ’90. C-ul preia de la limbajele de tip PASCAL gradul ridicat de portabilitate, iar de la limbajele de asamblare rapiditatea în execuția și gestionarea eficientă a memoriei. Rămâne totuși un limbaj pentru profesioniști, multe aplicații (procesoare de texte, spreadsheet-uri sau SGBD-uri) fiind scrise cu ajutorul limbajului C. În plus, ultimele versiuni ale acestui limbaj au transformat C într-un limbaj orientat pe obiect (C++). Principalii producători sunt Borland

(C++), Microsoft (Quick C, Visual C), Symantec.

RPG (Report Program Generator) este un limbaj dezvoltat de către firmă IBM la mijlocul anilor ’60 odată cu lansarea unei noi linii de minicalculatoare proiectate pentru afacerile mici și mijlocii. Limbajul permite ca pe baza unor specificații ale utilizatorului, să se genereze codul unui program care lansat în execuție va conduce la obținerea rapidă și cu un cost relativ redus, a rapoartelor dorite. PL/1 (Programming Language 1) este un limbaj lansat de către firmă IBM la începutul anilor ’60, îmbinând facilitățile din FORTRAN pentru aplicații științifice cu cele din COBOL pentru aplicațiile economice. La ora actuală acesta nu este foarte popular, utilizarea lui fiind limitată datorită faptului că este complex și greu de învățat

LISP (LISt Processing) este un limbaj adecvat inteligenței artificiale, utilizat mai ales în cercetare și în domeniul inteligenței artificiale. A apărut în 1958 la Institutul Tehnologiei din Massachussets, dar a fost considerat prea avansat pentru tehnologia vremii. Spre deosebire de celelalte limbaje prezentate, care sunt imperative, LISP este un limbaj funcțional. LISP nu face deosebirea între date și prelucrări, acestea fiind considerate obiecte și tratate la fel. Se pot declara două tipuri de obiecte: atomi și liste.

PROLOG (PROgramming în LOGic) a fost fundamentat în 1972 la Universitatea din Marsilia pentru aplicații de inteligență artificială și face parte din familia limbajelor declarative (nu algoritmice). A fost orientat spre demonstrarea de teoreme și înțelegerea limbajului natural. Permite reprezentarea și utilizarea cunoștințelor, fiind utilizat în crearea de sisteme expert. PROLOG este considerat o răzvrătire împotriva modului de programare impus de modelul Von Neumann, iar în 1982 proiectul japonez de realizare a calculatoarelor de generația a V-a prevede folosirea ca limbaj de bază a limbajului PROLOG.

Smalltalk a fost dezvoltat la mijlocul anilor ’70 de către firmă Xerox Corporation și a fost primul limbaj specific programării orientată pe obiecte. Acest limbaj nu este greu de învățat și utilizat dar reclamă schimbarea în întregime a modului de gândire a unui program. Se prevede că în viitor Smalltalk alături de celelalte limbaje orientate pe obiect să cunoască o dezvoltare și utilizaredeosebită.

JAVA este un limbaj orientat pe obiecte dezvoltat de firma Sun Microsystems. Are ca scop asigurarea comunicării între echipamente eterogene și distribuirea formatului executabil al programelor în rețea, fiind limbajul cel mai utilizat în rețeaua INTERNET. Acest limbaj operează cu tipuri obișnuite de date, dispune de instrucțiuni speciale de protecție și oferă facilități de programare de tip animație, orientare obiect, distribuție. Codul Java este portabil, același program putând fi rulat pe orice platformă care deține acest mediu de execuție.

O parte din limbajele de programare, prin diversele lor versiuni, nu pot fi încadrate strict într-o anume generație. Fiind supuse continuu perfecționării, ele tind spre generația superioară celei în care au fost proiectate inițial sistemele de baze de date reprezintă cea mai importantă dezvoltare în domeniul ingineriei programării, ele devenind din ce în ce mai accesibile pentru o largă varietate de utilizatori.

2.2 Fundamentele structurale ale bazelor de date

Conceptul de bază de date a apărut în 1964 în cadrul primului raport CODASYL prezentat la lucrările unei Conferințe pe probleme de limbaje de gestiune a datelor “Development and Management of Computer – centered date-base”. La această conferință a fost lansată ideea organizării datelor prin intermediul unui fișier de descriere globală, numit dicționar de date care are menirea de a asigura independența programelor față de date și a datelor față de programe.

Atunci când se analizează necesitățile informaționale ale unei organizații se urmărește identificarea entităților, a atributelor și a relațiilor dintre entități. De aceea, abordarea bazelor de date presupune și tratarea următoarelor elemente: entitate (articol, înregistrare logică), atribut (caracteristică, câmp) și valoare/realizare.

Prin entitate se înțelege un obiect concret său abstract (operație economică, mijloc economic etc.) reprezentat prin proprietățile sau însușirile sale. Orice proprietate poate fi exprimată printr-o pereche atribut-valoare sau caracteristică realizare. O entitate este identificată printr-un nume și cuprinde, în general, mai multe valori sau realizări.

Atributul are rolul de a descrie însușirile sau proprietățile obiectului, stabilind natura valorilor pe care acesta le poate lua. Valoarea reprezintă mărimea ce se atribuie fiecărei caracteristici din cadrul unei entități. Relația reprezintă o asociație între mai multe entități. Aceste elemente sunt prezentate în următorul tabelul:

Fig. 2.2 Relația dintre un atribut și variabila lui

O bază de date trebuie să satisfacă patru condiții esențiale:

bună reprezentare a realității înconjurătoare, adică baza de date trebuie să ofere întotdeauna o imagine fidelă a realității prin informații fiabile și actualizate; O non redundanță a informației, informația conținută în baza de date trebuind să fie unică din punct de vedere semantic și fizic;

O independență a datelor față de prelucrări; datele constituie imaginea fidelă a lumii reale, programele de aplicații trebuind să fie concepute în raport cu această structură a datelor;

Securitatea și confidențialitatea datelor; securitatea datelor trebuie asigurată prin proceduri fizice, iar confidențialitatea prin proceduri care să împiedice accesul utilizatorilor neautorizați;

Performanțe în exploatare, orice cerere de prelucrare trebuind să fie satisfăcută într-un timp convenabil utilizatorului, ceea ce presupune folosirea unor tehnici de optimizare pentru reducerea timpului de prelucrare

Tipuri de relații și structuri de reprezentare a relațiilor în cadrul unei baze de date

Entitățile aceluiași sistem informațional sunt rareori izolate unele de altele, ele antrenând, cel mai adesea, legături sau relații. Între datele diverselor tipuri de entități pot exista două categorii de legături sau relații. Prima privește relațiile dintre datele aparținătoare aceleiași entități, iar a doua se referă la relațiile dintre mai multe entități care pot fi și de tipuri diferite. La rândul lor relațiile pot fi binare și n-are.

Relațiile binare presupun existența unui domeniu, a unui codomeniu și a unei corespondențe între entitățile acestora. În practică bazelor de date se utilizează patru tipuri de relații binare:1-1 (una-la-una) în care unei realizări din domeniu îi corespunde o realizare și numai una din codomeniu.

1-n (una la mai multe) în care unei realizări din domeniu îi corespunde 0, una sau mai multe realizări din codomeniu.

Fig. 2.6 Relații de tip 1-n

N-1 (mai-multe-la-una) în care mai multe înregistrări din domeniu corespund unei realizări din codomeniu. (Figura nr.2.7)

Fig. 2.7. Relația n-1

N-m (mai-multe-la-mai-multe) în care unei realizări din domeniu îi corespund 0, una sau mai multe realizări din codomeniu, iar unei realizări din codomeniu îi corespund 0, una sau mai multe realizări din domeniu:

Fig. 2.8. Relația n-m

Relațiile n-are presupun existența unei interdependențe logice între realizările unei mulțimi de caracteristici definită pe o mulțime de tupluri.

Mecanismul de selecție și de identificare a componentelor unei baze de date presupune existența unei structuri de date. Concret o structură de date reprezintă o colecție de date între care s-au stabilit anumite relații. Structurile de date care au aceeași organizare și sunt supuse prelucrărilor cu un grup de operatori de bază cu o semantică pre definită formează un anumit tip de structură.

Principalele tipuri de structuri sunt: punctuală, liniară, arborescentă, rețea, relațională. Dintre acestea sunt considerate de bază structurile liniară și arborescentă. Prin combinarea lor în funcție de opțiunile utilizatorilor, pot fi construite și alte structuri cu grade diferite de complexitate.

Un model de date este un ansamblu de instrumente conceptuale care permit descrierea datelor, a relațiilor dintre ele, a semanticii lor, ca și a restricțiilor la care sunt supuse acestea. Se pot clasifica în: modele orientate pe obiect, modele orientate pe înregistrare și modele fizice. Cum ne vom ocupa doar de descrierea nivelurilor conceptual și extern, vom trata primele două categorii de modele.

Modelele orientate pe obiect se caracterizează prin flexibilitate și explicitate în reprezentarea structurilor de date și a restricțiilor pe care trebuie să le respecte acestea. Cele mai cunoscute sunt: modelul entități asociații, modelul semantic, modelul funcțional și modelul orientat pe obiecte.

Modelul entități-asociații are la bază percepția lumii reale sub forma unei colecții de obiecte, denumite entități, unite prin intermediul unor asociații. O entitate este un obiect care poate fi diferențiat de alte obiecte printr-un ansamblu de atribute care permit descrierea precisă a acestuia. O asociație reunește două sau mai multe entități. De exemplu, atributele

Număr și Disponibil descriu entitatea Cont la bancă. Atributele Nume, Adresă, etc. Descriu entitatea Client. Există o asociație care leagă un client de fiecare din conturile pe care le are deschise la banca respectivă. Ansamblul entităților de același tip formează o clasă de entități, iar ansamblul asociațiilor de același gen reprezintă o clasă de asociații.

În reprezentarea unei structuri de baze de date cu ajutorul modelului E-R se realizează o diagramă, care utilizează simbolurile:

dreptunghi, pentru clase de entități,

elipse, pentru atribute,

romburi, pentru clase de asociații,

linii, pentru a lega atribute de clase de entități și clasele de entități de clasele de asociații.

Fig. nr. 2.10. Modelul Entitate asociație

Modelul de date orientat spre obiecte extinde definiția unei entități pentru a include nu numai atributele care descriu starea obiectului, ci și acțiunile asociate acestuia, respectiv comportamentul. Se spune că obiectul încapsulează atât starea, cât și comportamentul.

Modelul de date orientat pe obiecte reprezintă un model logic de date care conține semantica obiectelor, acceptată în programarea orientată pe obiecte.

Modelarea orientată obiect devine din ce în ce mai populară datorită abilității de a reprezenta relații complexe ca și de a reprezenta datele și procesarea acestora cu ajutorul unor notații consistente.

Un model al datelor este o abstractizare a lumii reale ce permite "tratarea" complexității inerente în cazul problemelor din lumea reală prin concentrarea atenției asupra caracteristicilor esențiale și interesante ale datelor de care are nevoie o organizație. Un model orientat obiect este construit în jurul "obiectelor" tot așa cum modelul E-A are la bază entitățile. Totuși un obiect încapsulează atât datele cât și comportamentul, ceea ce permite utilizarea unei abordări orientate obiect nu doar pentru modelarea datelor, ci și pentru modelarea proceselor.

Pentru a modela cu strictețe o aplicație din lumea reală trebuie să se modeleze atât datele, cât și procesele ce acționează asupra datelor. Modelarea orientată obiect asigură un mediu puternic pentru dezvoltarea unor sisteme complexe, datorită posibilității de captare a datelor și a proceselor și datorită mai ales, moștenirii și reutilizării codului.

În faza de proiectare orientată obiect se definește cum va fi realizat modelul de analiză orientată obiect în cadrul mediului de implementare. Există trei motive pentru utilizarea proiectării orientate obiect:

Modelul de analiză nu este suficient de formal pentru a fi implementat direct într-un limbaj de programare. Pentru a ne deplasa către codul sursă trebuie să rafinăm mai întâi obiectele prin adoptarea unei decizii privind operatorii ce vor fi asigurați de un obiect, cum ar trebui să arate comunicația între obiecte, ce mesaje vor fi transmise etc.

Sistemul actual trebuie să fie adaptat mediului în care sistemul va fi implementat. Pentru a realiza acest lucru, modelul de analiză trebuie să fie transformat într-un model conceptual de proiectare, luând în considerare diferiți factori cum ar fi: cerințele de performanță, cerințele de timp real și concurență, hardware-ul și software-ul implicat, SGBD-ul și limbajele de programare ce vor fi adoptate etc.

Rezultatele etapei de analiză pot fi validate cu ajutorul proiectării orientate obiect. În această etapă putem verifica dacă rezultatele furnizate de analiză sunt adecvate pentru construirea sistemului și dacă este necesar să se efectueze modificări asupra modelului de analiză.

Pentru dezvoltarea modelului de proiectare trebuie să fie identificate și investigate consecințele pe care le va avea mediul de implementare asupra proiectării. Toate deciziile de proiectare strategice (cum va fi implementat SGBD-ul, cum vor fi asigurate comunicațiile între procese și tratarea erorilor, care componente vor fi reutilizate) vor fi adoptate și vor fi apoi încorporate într-un prim model de proiectare adaptat mediului de dezvoltare. În final, modelul este formalizat pentru a descrie modul în care obiectele interacționează unele cu altele pentru fiecare scenariu sau caz.

La proiectarea sistemului trebuie propusă o arhitectură globală a sistemului care îl organizează în componente, numite subsisteme și asigură contextul necesar adoptării deciziilor cum ar fi identificarea concurenței, alocarea subsistemelor pe procesoare și task-uri, asigurarea accesului la resursele globale, selectarea modalităților de implementare a controlului software etc.

În etapa de proiectare a obiectelor va fi construit un model de proiectare prin adăugarea unor detalii de implementare cum ar fi: restructurarea claselor pentru eficiență, structurile interne de date și algoritmii pentru implementarea fiecărei clase, implementarea controlului și a asociațiilor (legăturilor), precum și împărțirea în module fizice în concordanță cu strategia adoptată în timpul proiectării sistemului. Clasele de obiecte specifice domeniului aplicației din cadrul modelului de analiză vor fi îmbogățite cu o serie de elemente specifice procedurilor de calcul în scopul optimizării performanțelor.

Etapa de proiectare este urmată de o etapă de implementare. În această fază, proiectul este implementat cu ajutorul unui limbaj de programare sau a unui SGBD. Translatarea proiectului în cod sursă este un proces relativ ușor datorită faptului că modelul de proiectare încorporează deja o serie de aspecte ale limbajului de programare și SGBD-ului ales. Unele din avantajele des citate în favoarea orientării spre obiecte sunt:

Definiția unui sistem prin intermediul obiectelor facilitează construcția de componente software care seamănă îndeaproape cu domeniul de aplicație, contribuind astfel la proiectarea și înțelegerea sistemelor;

Datorită încapsulării și ascunderii informațiilor, întrebuințarea obiectelor și mesajelor încurajează proiectarea modulară;

Implementarea unui obiect nu depinde de structura internă a acestuia, ci de modul cum acesta răspunde la mesaje;

Întrebuințarea claselor și a moștenirii promovează dezvoltarea de componente reutilizabile și extensibile în construcția de noi sisteme sau pentru actualizarea celor existente.

O bază de date orientată spre obiecte este o colecție de obiecte persistente și partajabile care sunt definite de un model de date orientat pe obiecte. Un sistem SGBD orientat pe obiecte este administratorul unei baze de date orientată pe obiecte.

Aspecte structurale ale modelului de date orientat pe obiecte:

Obiectele sunt entități de bază care încorporează structuri de date și operații;

Fiecare obiect are un identificator unic, atribuit de sistem;

Clasele descriu tipuri generice de obiecte;

Conceptul de clasă este strâns legat de conceptul de moștenire;

Clasele formează ierarhii de clase;

Definirea unei clase este mecanismul de specificare a schemei bazei de date;

Schema bazei de date se poate extinde prin definirea de noi clase;

Definirea unei clase poate include atribute de tipuri definite de utilizator (imagine, sunet);

Se admit referiri recursive.

Operații ale modelului de date orientat pe obiecte:

Obiectele comunică prin mesaje;

Un mesaj poate fi trimis instanțelor din mai multe clase;

Metodele pot fi definite, șterse sau modificate;

Clasele pot fi definite, șterse sau modificate;

Instanța unei clase poate fi actualizată prin metode ce modifică valorile variabilelor propriei instanțe.

Reguli de integritate ale modelului de date orientat pe obiecte:

Obiectele trebuie să respecte caracteristicile clasei din care fac parte;

Obiectele sunt încapsulate;

Un obiect nu există fără să aibă un identificator; dacă obiectul este șters, se șterge și identificatorul;

Restricția de integritate cunoscută de la modelul relațional nu este implementată (nu există posibilitatea de ștergere în cascadă).

Toate organizațiile din ziua de azi (guvernamentale, economice) și majoritatea întreprinderilor mari și mici recunosc rolul central pe care aplicațiile software îl au în cadrul lor, aplicațiile având rolul reducerii costurilor și îmbunătățirii serviciilor față de competiție.

Această dezvoltare și necesitatea utilizării pe o arie mare a unor date de interes comun a dus la apariția, utilizarea și proiectarea modelului client/server, care oferă date distribuite, portabilitate între platforme și un acces standardizat la resurse.

CAPITOLUL 3 PROIECTAREA APLICAȚIEI INFORMATICE

Orice organizație are una sau mai multe baze de date, deoarece acestea au o aplicabilitate foarte mare: financiar, administrativ, resurse umane etc. Prezența lor în toate domeniile vieții economio – sociale a dus și la apariția:

unor motoare de baze de date, adică un soft optimizat care câteva comenzi asupra unui anumit tip de baze de date, precum și a

unui standard privind limbajul de interogare al bazelor de date: SQL (Structured Query Language).

Unul dintre standardele motoarelor de baze de date este și specificația OBDC. Cuvinte cheie: Java, baze de date, standard, securitate, Internet. Java și bazele de date ODBC (Open Data Base Connectivity) este concepută de Microsoft, fiind actualmente acceptată ca un standard de facto în acest domeniu.

Administratorul de baze de date pune la punct modelul conceptual al unei baze de date, ajuta la implementarea acesteia, urmând apoi să gestioneze integritatea și accesul la datele acumulate. Trebuie să țină cont de specificul interfeței Web și de problemele de securitate, având în acest domeniu o colaborare cu administratorul Intranet-ului.

Programatorii trebuie să se ocupe de partea de server ȘȘȘ (Server Side Script), partea de client fiind de obicei foarte simplă. Pentru accesul la baze de date se poate folosi o gamă variată de produse, de la programarea clasică (C++, C, Pascal), CGI, produse middleware (dbWeb, ColdFusion – returnează documente în format HTML), scripturi. JDBC (Java Data Base Connectivity) reprezintă o serie de API specifice Java pentru conectarea la baze de date, realizând astfel apropierea dintre Java și sfera multimedia din interiorul paginilor HTML. JDBC este un middleware destul de puțin utilizat datorită faptului că se bazează pe programarea clasică. În cadrul JDBC, un applet Java poate consulta cu ușurință înregistrările unei baze de date. Are ca dezavantaj, în afară că se bazează pe programare, și faptul că nu sunt integrate în actualele browsere clasele JDBC.

Utilizatorul trebuie deci să încarce acele clase JDBC înainte de a utiliza apllet-ul. Din această cauză, această soluție se adresează în principal Intranet-urilor, unde debitele sunt satisfăcătoare. JDBC-ul are o construcție asemănătoare cu a ODBC-ului, fiind practic varianta ODBC pe obiecte, pentru Java, ambele pornind de la specificațiile X/Open SQL Call Level Interface. Accesul la o anumită baza de date din Java via JDBC se face pe baza unui driver specific tipului bazei de date pe care dorim s-o utilizăm, fie via ODBC, folosind un bridge JDBC-ODBC. În acest caz, apelurile JDBC sunt transformate în apeluri ODBC.

Pe scurt, modul de lucru al JDBC-ului este următorul:

stabilește o conexiune cu baza de date;

trimite secventele SQL;

prelucrează rezultatele. JDBC-ul este o interfață “low- level”, fiind folosită pentru execuția directă a comenzilor SQL și care are implementate doua API-uri mai importante:

un preprocesor SQL încapsulat pentru Java, care permite folosirea secventelor mixte SQL direct din Java;

o mapare directă a tabelelor bazei de date relaționale în Java, prin care fiecare J Revista Informatică Economică, nr. 2 (18)/2001 61 articol al bazei de date devine o instanță a unei clase, și fiecare câmp corespunde unui atribut al instanței respective. JDBC-ul se afla implementat în două modele:

Modelul cu două niveluri (two-tier) – în care un applet sau o aplicație Java lucrează direct cu baza de date;

Modelul cu trei nivele (three-tier) – în care interogările se trimit către un nivel intermediar, numit server de aplicație, care retrimite cererea SQL către serverul bazei de date; în acest caz utilizatorul poate utiliza un API de nivel mai înalt, care va fi mai simplu de folosit și care transpune cererile într- un limbaj de bază, înțeles de serverul bazei de date.

Comunicarea cu baza de date se poate realiza:

direct, prin TCP/IP;

prin intermediul unui protocol nativ de rețea, specific bazei de date.

Driverele JDBC pot fi, în funcție de funcționalități, de două feluri:

– Pe partea de client;

– Mixte, atât pe partea de client cât și pe cea de server.

Firma Sun a stabilit o clasificare a tipuri lor de drivere disponibile.

Driver-ele de tipul 1 reprezintă singură punte JDBC-ODBC;

Driver-ele de tipul 2 “învelesc” codul nativ, adică driverele existente, în Java;

Driver-ele de tipul 3 sunt scrise complet în Java și utilizează o componentă pe server și un protocol de rețea pentru comunicare;

Driver-ele de tipul 4, scrise complet în Java, folosesc un protocol specific bazei de date.

Java Soft furnizează JDBC- ul cu trei componente, toate incluse în JDK, și anume: JDBC driver manager – reprezintă coloana vertebrală a arhitecturii JDBC; este mic, simplu și are funcția de a conecta aplicația Java cu driver-ul JDBC potrivit; 62 Revista Informatică Economică, nr. 2 (18)/2001

JDBC driver test – asigura că driver-ul JDBC va funcționa cu programul utilizatorului;

JDBC – ODBC bridge – permite driverelor ODBC să fie folosite ca drivere JDBC.

JDBC este implementat pe două nivele:

nivel driver – care conține implementările interfețelor specifice lucrului unuianumit tip de baza de date relaționala;

nivel aplicație – constituit din Driver Manager și clasele furnizate de driverul JDBC necesare conectării la baza de date. Execuția unei comenzi SQL din interiorul unui program Java folosind API-ul JDBC, presupune parcurgerea următoarelor etape: · încărcarea driver-ului JDBC, · realizarea conexiunii la baza de dateprin intermediul driver-ului: Connection c=DriverManagement. GetConnection () · construcția comenzii (Statement s=c. CreateStatemant), · execuția comenzii și returnarea rezultatului (ResultSet r=s. executeQuery). Pentru realizarea acestor funcții se utilizează următoarele interfețe: – java.sql. DriverManager – încarcă un driver JDBC și gestionează conexiunea la baza de date; – java.sql. Connection – reprezintă conexiunea la o bază de date; – java.sql. Statement- gestionează o conexiune SQL; – java.sql. ResultSet – asigura accesul la rezultatele obținute în urma execuției unei instrutiuni sql.

Avantajele utilizării JDBC fata de ODBC, în condițiile în care ODBC este cea mai folosită interfață pentru accesul la aproape orice tip de baze de date relaționale, ar fi următoarele: – ODBC nu este potrivit pentru a fi utilizat direct din Java pentru ca folosește interfața C, iar apelurile Java către C pot provoca probleme, legate de portabilitate și securitate; – ODBC-ul este mai greu de învățat, având opțiuni complexe chiar și pentru interogări simple; – JDBC-ul este o soluție pură Java, putând fi deci portabil și securizat pe toate platformele, de la NC (Network Computer) la mainframe-uri 5. Java și securitatea pe Internet Din punctul de vedere al securității, limbajul Java asigura un cadru de Securitate care nu poate fi subminat de coduri incorecte sau de erori ale compilatorului.

Funcționând după reguli bine stabilite de o politică de securitate la nivel aplicație, în Java exista totuși anumite clase de probleme de securitate, după cum urmează: – atacuri de refuz al serviciului (denial of service attacs) – implica așteptare ocupată, consumând ciclii CPU, alocând memorie până se blochează sistemul, blocând alte fire de execuție și procese sistem, blocândbrowserul până la scoaterea sa din uz; nu exista în Java un mecanism care să împiedice aceste atacuri.

Atacuri tripartite (three party attacs) – de exemplu, un atacator C produce un applet “cal troian”, un utilizator B pune acest applet, găsit pe Internet în pagina sa de Web, iar un utilizator A vizualizează pagina HTML a lui B, applet- ul lui C stabilind un canal ascuns pentru scurgerea informațiilor între de la A la C, fără știrea lui B; canale ascunse (convert channels);

– Informație disponibilă applet-urilor;

– Erori de implementare – reprezintă buguri care apar în cadrul subsistemului Java sau a browser-ului.

Un exemplu este propriul server proxy care poate fi folosit de intrus pentru a vedea traficul bidirecțional realizat de browserul HotJava, dacă clientul folosește protocoalele FTP și HTTP ne criptate. Măsuri semnificative de protecție se pot adăuga printr-un manager de securitate, introdus prin biblioteca API, care furnizează clasa java. Lang Security Manager, ca posibilitate de a defini un set clar de task-uri care pot sau nu să fie realizate.

Revista Informatică Economică, nr. 2 (18)/2001 63 Mediul Java conține o clasă globală, numită SecurityManager, ale cărei metode sunt utilizate pentru verificări în timpul execuției. Definind o subclasă a acestei clase se pot implementa diferite politici de protecție.

Clasa Security Manager permite stabilirea unei politici de securitate specifice, prin crearea unui obiect care determină dacă o operație pe care programul intenționează să o execute este permisă sau nu. Clasa conține metode pentru atingerea următoarelor punte din cadrul politicii de securitate:

determina dacă este permisă conectarea prin rețea, de la un host și pe un port specificat; – determina dacă un program poate fi încărcat/crea o nouă clasă într-un pachet Java specificat;

împiedica crearea unei noi clase ClassLoader;

împiedică un program să părăsească JVM fără monitorizare;

împiedica crearea unui nou SecurityManager, care se poate suprapune peste politica deja existenta;

verifica dacă un fișier poate fi șters/citit/actualizat/executat;

verifica dacă un thread poate fi utilizat de un alt thread sau de un grup de thread-uri;

verifica dacă o bibliotecă dinamică poate fi link-editată;

verifica dacă un port de rețea sigur poate fi ascultat pentru o conectare la sistemul local;

verifica dacă un program poate să creeze propria sa implementare pe socket-uri;

identifica care proprietăți pot fi accesate prin metoda System. GetProperty ();

Alt aspect important relativ la securitatea Java este diferența dintre applet-uri și aplicații Java:

aplicațiile au dreptul de a accesa resursele sistemului, pot deschide și scrie în fișiere, se pot conecta la diferite resurse de rețea și pot rula diferite programe de pe sistemul local, deoarece sunt executate direct de interpretorul Java și trebuie instalate și executate manual de către utilizator;

applet-uri pot fi rulate dinamic de navigator (prin încărcarea paginilor HTML care conțin tag-ul APPLET) și pot proven și din surse nesigure (de pe rețea) având capacitatea de a produce pagube, motiv pentru care sunt rulate într-un mediu de execuție foarte controlat.

Pentru a mai rezolva probleme de Securitate existente în Java, odată cu lansarea versiunii JDK 1.1 au apărut facilități pentru verificarea codului de pe alte surse, pentru a vedea dacă a fost sau nu alterat de un intrus, introduse prin Java Security API. Bazată pe algoritmi și concepte criptografice, biblioteca API Java Security este construită în jurul pachetului java security pachage și este proiectată atât pentru aplicații de nivel scăzut, cât și pentru cele de nivel ridicat. Include clase pentru semnături digitale, rezumat de mesaje, interfețe abstracte pentru managementul cheilor, management de certificate și controlul accesului, respectând standardul X.509.

Arhitectura de clase Java Security API conține: – Java Crytography Architecture (JCA) – reprezintă cadrul de acces și de dezvoltare a funcționalităților criptografice pentru platforme Java și cuprinde părțile interfeței Java Security API, prezentate ca un set de convenții și specificații criptografice;

Java Crytography Extension (JCE) – reprezintă extinderi ale JCA API, care include criptarea și schimbul de chei; împreuna cu JCA, oferă o platformă independent de criptografie; JCE este supus interdicțiilor de export ale guvernului SUA.

Clasele și interfețele Java Security API sunt următoarele:

– Clasa Provider – este o interfață la un pachet și oferă metode de acces la nume de furnizori, care au implementați diferiți algoritmi de criptare (DES și RSA), de semnătura digitală (DSA, MD5, RSA), pentru 64 Revista Informatică Economică, nr. 2 (18)/2001 calculul rezumatului mesajului (SHS-1, MD5);

– Clasa Security – controlează instalarea furnizorilor și proprietăților de securitate și conține metode statice (care nu pot fi in stantiate);

– Clasa MessageDigest – oferă algoritmi pentru calculul rezumatului de mesaj (SHS-1, MD5); presupune următorii pași: crearea unui obiect MessageDigest, încărcarea obiectului și prelucrarea rezumatului;

– Clasa Signature – oferă facilități de realizarea semnăturilor digitale criptografice, folosind algoritmii DSA, RSA, MD5; pașii necesari sunt: crearea unui obiect Signature, inițializarea obiectului și semnarea unor date sau verificarea semnăturii altor date.

În acest moment, Java nu oferă standard de criptare pentru transportul fișierelor prin Internet, acestea depinzând de securitatea implementată de mecanismul de transport utilizat. În forma sa actuală, limbajul Java este departe de a fi securizat în mod eficient, fiind necesară reproiectarea unor elemente din limbaj, a formatului bytecode-urilor și a runtime-system- ului. Prezența unor astfel de slăbiciuni în Java nu implică faptul că alte sisteme sunt mai sigure iar securitatea pe Web rămâne totuși o problemă, prin faptul că soluția oferită, Java, este încă incompletă.

3.1 Aspecte structurale sintactice ale Java

Platforma Java împrumuta limbajul esențial de programare care poate fi rulat atunci când e corect scris pe orice fel de platformă. Pe lângă condițiile corespondente unei platforme performante existențiala, mai este și condiția conform căreia stația respectivă trebuie să conțină o mașinărie virtuală Java. Tipologia a fost așezată structural pe limbajele minima liste de programare că C și C++, și corespunde unui model pe planuri multiple care vine în întâmpinarea necesitaților de programare a unor operații mai complexe.

Cum java este un limbaj de programare orientat pe obiecte, această natură a programului propune interfețe bazate pe relații cu întrebări care încep de la un domeniu, subdomeniu și ajung la obiect. Astfel, cerința inițială, aceea de a identifica un obiect conform unei relații, este satisfăcută în trei pași:

Prima relație presupune identificarea și interogarea domeniului, o parte a limbajului care cuprinde informații generale, nespecifice și nerelevante. Acest buchet de informații oferă soluții utilizatorului pentru diferitele sarcini pe care acesta le-ar putea trasa limbajului de programare, respectiv platformei.

Al doilea pas în interogarea făcută de utilizator efectuează trecând de la grupul de informații generale, neconcludente la grupul de informații concludente. Acesta trecere este notată și reprezintă un pas intermediar care ține de relaționarea cu utilizatorul, oferindu-i acestuia mai multe oportunități de interogare la nivel de subdomeniu. Pasul intermediar efectuat la acest moment își justifica importanta tocmai prin varietatea de oportunități pe care o oferă utilizatorului.

La finalul interogării, rezultatul reprezintă opțiunea ultimă afișată de limbaj după interacționarea cu utilizatorul. Suma tuturor pașilor parcurși în tot procesul este soluția finală și reprezintă varianta pentru care utilizatorul a ales să ruleze limbajul de programare.

În procesul de definire a unei interfețe grafice care să corespundă rigorilor unei gestiuni de cărți dintr-o bibliotecă, a fost necesară aplicarea și sporirea algoritmului prezentat. S-a pornit de la identificarea noțiunilor generale, adică cele legate de domeniul de competenta al cărților, și anume bibliotecile. Pentru creionarea câmpului principal s-a folosit prima relație, cea în care, la interfața cu utilizatorul devine domeniu.

În cadrul procesului de scriere a domeniului, pe lângă relația simplă s-au folosit și opțiunile specifice conform căreia programatorul a avut oportunitatea de a alege mai multe subdomenii. Printre oportunitățile oferite de limbaj, programatorul a ales opțiunile “citește toate”, “adaugă”, “elimina”.

În urma scrierii pentru prima parte a procesului, se trece la pasul doi, în care algoritmul propune pentru interfață cu utilizatorul mai multe opțiuni specifice. Aceste opțiuni sunt scrise având ca scop obținerea mai multor detalii. În mod specific, prin interogarea platformei, utilizatorul final obține un număr final de caractere care îl vor ajuta să primească soluția. Acest procedeu este transcris în limbaj de cod prin formarea a doi constructori. Aceleași butoane de personalizare a alegerii sunt retranscrise.

Al treilea pas este o soluție mai complexă, care oferă un număr de caracteristici concrete. Aceste caracteristici au fost desenate pentru a îi oferii utilizatorului final opțiuni cu privire la informațiile de care are nevoie. Tot în răspunsul final s-au inserat anumite variabile pentru a se oferi posibilitatea de personalizare și prelucrare al răspunsului obținut.

Această posibilitate este sprijinită și de o scriere analitică, care permite extinderea cumulului de informație. Răspunsul concret oferit a primit opțiunea de a fi extins după dorință. În dialogul cu utilizatorul final, acesta are, așadar, oportunitatea de a completa informația dorită.

În sprijinul opțiunilor enumerate, se mai pot adăuga anumite comenzi, care să permită, pe de-o parte extinderea oricărei părți din răspuns, și pe de altă parte, selectarea oricărei părți din răspunsul primit sau alcătuit.

Acesta parte de scriere a limbajului conține, mai mult date informatice, comenzi concrete, care nu au interpretare. Comanda scrisă și adăugata devine parte din algoritm, contribuind la optimizarea și eficientizarea limbajului însuși.

Fig. 3.1 Secvența din codul de creare

3.2 Interfață grafică și de acțiune

Interfața grafică sau, mai bine zis, interfață grafică cu utilizatorul (GUI), este un termen cu înțeles larg care se referă la toate tipurile de comunicare vizuală între un program și utilizatorii săi. Aceasta este o particularizare a interfeței cu utilizatorul (UI), prin care vom înțelege conceptul generic de interacțiune între un program și utilizatorii săi. Așadar, UI se referă nu numai la ceea ce utilizatorul vede pe ecran ci la toate mecanismele de comunicare între acesta și program. 
Limbajul Java pune la dispoziție numeroase clase pentru implementarea diverselor funcționalități UI, însa ne vom ocupa în continuare de acelea care permit realizarea unei interfețe grafice cu utilizatorul (GUI). 
Biblioteca de clase care oferă servicii grafice se numește java. Awt, AWT fiind prescurtarea de la Abstract Window Toolkit și este pachetul care care a suferit cele mai multe modificări în trecerea de la o versiune JDK la alta. 
În principiu, crearea unei aplicații grafice presupune următoarele lucruri:

Crearea unei suprafețe de afișare (cum ar fi o fereastră) pe care vor fi așezate obiectele grafice care servesc la comunicarea cu utilizatorul (butoane, controale de editare, texte, etc);

Crearea și așezarea obiectelor grafice pe suprafața de afișare în pozițiile corespunzătoare;

Definirea unor acțiuni care trebuie să se execute în momentul când utilizatorul interacționează cu obiectele grafice ale aplicației;

"Ascultarea" evenimentelor generate de obiecte în momentul interacțiunii cu utilizatorul și executarea acțiunilor corespunzătoare așa cum au fost ele definite

Majoritatea obiectelor grafice sunt subclase ale clasei Component, clasă care definește generic o componentă grafică care poate interacționa cu utilizatorul. Singura excepție o constituie meniurile care descind din clasa MenuComponent. 
Așadar, print-o componenta sau componenta grafică vom înțelege în continuare orice obiect care are o reprezentare grafică ce poate fi afișata pe ecran și care poate interacționa cu utilizatorul. Exemple de componente sunt ferestrele, butoanele, bare de defilare, etc. În general, toate componentele sunt definite de clase proprii ce se găsesc în pachetul java. Awt, clasa Component fiind super clasa abstractă a tuturor acestor clase.

Crearea obiectelor grafice nu realizează automat și afișarea lor pe ecran. Mai întâi ele trebuie așezate pe o suprafață de afișare, care poate fi o fereastră sau suprafața unui applet, și vor deveni vizibile în momentul în care suprafața pe care sunt afișate va fi vizibilă. O astfel de suprafața pe care se așează obiectele grafice reprezintă o instanță a unei clase obținută prin extensia clasei Container; din acest motiv suprafețele de afișare vor mai fi numite și containere. Clasa Container este o subclasă aparte a clasei Component, fiind la rândul ei super clasa tuturor suprafețelor de afișare Java (ferestre, applet-uri, etc).

Interfața grafică servește interacțiunii cu utilizatorul. De cele mai multe ori programul trebuie să facă o anumită prelucrare în momentul în care utilizatorul a efectuat o acțiune și, prin urmare, obiectele grafice trebuie să genereze evenimente în funcție de acțiunea pe care au suferit-o (acțiune transmisă de la tastatură, mouse, etc.). Începând cu versiunea 1.1 a limbajului Java evenimentele se implementează ca obiecte instanță ale clasei AWTEvent sau ale subclaselor ei. 
Un eveniment este produs de o acțiune a utilizatorului asupra unui obiect grafic, deci evenimentele nu trebuie generate de programator. În schimb într-un program trebuie specificat codul care se execută la apariția unui eveniment. Interceptarea evenimentelor se realizează prin intermediul unor clase de tip listener (ascultător, consumator de evenimente), clase care sunt definite în pachetul java. Awt. Event. În Java, orice componentă poate "consuma" evenimentele generate de o altă componentă grafică.

Figura 3.2 AWTEvent

CAPITOLUL 4 PREZENTAREA APLICAȚIEI

Rezultatul final al scrierii în programare îl reprezintă o interfață grafică care corespunde cerințelor de necesitate ale utilizatorului. Pentru tema abordată, interfața a presupus crearea unor moduri de gestionare care să cuprindă volumul de cărți al unei biblioteci.

Aceasta aplicație oferă informații atât în ansamblu cât și detaliate despre cărțile din BMB, împreună cu conținutul lor. Prima interacțiune a aplicației cu utilizatorul se desfășoară după cum urmează:

Fig. 4.1.1 Home

În figură 4.1.1 este pagina de start a aplicației. Ea conține patru butoane care oferă opțiuni pentru eventualele operații alese de utilizator.

Ca o opțiune suplimentară, în partea dreaptă, apare paragraful cel mai lung din toate cărțile disponibile în gestiune, iar sub acest paragraf este titlul cărții care conține cele mai multe capitole.

Fig. 4.1.2 Adăugarea unei cărți

Primul buton oferă posibilitatea înregistrării unei noi cărți. Prin accesarea cu un singur click a butonului “Add book”, apare fereastra din figura 4.1.2, în care utilizatorul completează câmpuri de informație specifice noii cărți adăugate. După completarea câmpurilor, acestea devin relevante pentru motoarele de căutare ale aplicației. Un aspect interesant este adăugarea categoriei “ISBN” – după codul de bare, care mărește acuratețea păstrării gestiunii. Pentru a termina înregistrarea, după o reverificare a informațiilor, se accesează butonul “OK”. Înregistrarea este valida atâta timp cât se completează toată câmpurile cerute.

Fig. 4.1.3 Motorul de căutare

Prin revenirea la pagina de întâmpinare, utilizatorul are posibilitatea să efectueze o altă operație. În Figură 4.1.3 este prezentat primul pas în căutarea unei cărți după numele de autor sau titlu. Se scrie numele căutat în text box-ul din stânga sus, apoi se apasă butonul “Search” sau butonul “Enter” de la tastatură și aplicația va afișa doar cărțile care corespund căutării. Pentru alte opțiuni cu privire la cărțile disponibile conform căutării, se apelează la butoanele existente pe pagina principală. În funcție de butonul ales, interfața accesata va oferi noi opțiuni pentru cărțile căutate.

Fig. 4.1.4 Ștergerea unei cărți

Operația prezentată în figură 4.1.4 apare ca o variantă opțională pentru cazul în care se dorește a elimina o înregistrare greșită. Butonul funcționează cu același principiu ca cel de adăugare. Se selectează cartea și se accesează butonul “Delete book”.

Fig. 4.1.5 Vizualizarea și editarea unei cărți

Revenind la pagina de start, cea mai complexă opțiune este oferită în urma accesării butonului “Select book”. Acest buton aduce utilizatorului două moduri de cestiune a cărților, unul care oferă opțiuni de modificare a textului din interiorul cărții, în timp ce celălalt mod oferă opțiuni de editare a textului.

Fig. 4.1.6 Modul Publish

“Publish Mode” este interfața specifică cititorului care oferă doar opțiuni de modificare a textului pentru a ușura procesul de citire. Cele două butoane schimba fontul și mărimea textului, limitând accesul utilizatorului pe acesta interfața la alte opțiuni.

Fig. 4.1.7 Modul Author

“Modul Author” oferă opțiuni variate de editare a textului. Butoanele din acest mod sunt rezervate celor implicați în înregistrarea, gestionare și ștergerea cărților, sau pentru cei care corectează respectiv modifica textul înregistrat.

Fig. 4.1.8 Adăugarea unui capitol

Unul din butoanele cel mai des folosite în procesul de înregistrare este butonul “Add chapter”, care oferă posibilitatea scrierii unui text și adăugării acesteia la compoziția cărții, precum și a figurării textului respectiv în cuprinsul cărții.

Fig. 4.1.9 Adăugarea unui paragraf

În ajutorul butonului “Add chapter” a fost creat butonul” Add Paragraph” care oferă posibilitatea adăugării unei bucăți de text de dimensiuni mai mici, specifice unei completări de capitol.

Un alt set de opțiuni, specifice aceluiași mod de lucru, este cel care se referă la butoanele de schimbare. Se pot schimba titlul cărții, numele autorului, ISBN-ul, fontul și mărimea textului, dar toate aceste modificări, vor fi vizibile doar după restartarea aplicației.

CAPITOLUL 5 CONCLUZII

Așa cum s-a menționat, programele Java nu solicită în maniera implicită existența unor mecanisme de tip intrare/ieșire (acestea pot fi diferite în funcție de mediul de execuție). Pentru a putea fi rulat, în mod interpretat, codul Java trebuie să se bazeze pe un mediu de execuție. Acest mediu de execuție, numit și mediu-gazdă (host environment) poate fi oferit de:

• navigatorul Web (e.G. Firefox) – programele Java vor fi incluse via elemental <script>;

• platformă de dezvoltare a aplicațiilor – de exemplu, Adobe Flex;

• aplicație – vezi suportul disponibil în cadrul utilitarului UltraEdit sau a sulitei Adobe Photoshop;

• un processor (engine) independent – de exemplu, Yahoo! Widget Engine;

componente ale sistemului de operare (precum Dashboard pentru Mac OS X, Windows Scripting Host în Windows XP sau Sidebar pentru Windows Vista).

Unii specialiști considera că Java nu prezintă doar caracteristici de limbaj obiectual, ci și de limbaj funcțional. Putem considera Java un limbaj prototopizat, după cum vom vedea în continuare.

La fel ca în cazul altor limbaje de programare, în Java pot fi definite variabile (de diverse tipuri scalare sau compuse), pot fi folosite instrucțiuni (de atribuire, de test, de ciclare, de control), pot fi utilizate obiecte, conținând metode (funcții) predefinite sau descris de programator.

Din punct de vedere sintactic, limbajul utiliza inițial următoarele cuvinte-cheie rezervate: break, else, new, văr, case, finally, return, void, catch, for, switch, while, continue, function, this, with, default, if, throw, delete, în, try, do, instanceof, typeof. În present sunt specificate și abstract, enum, int, short, Boolean, export, interface, static, byte, extends, long, super, char, final, native, synchronized, class, float, package, throws, const, goto, private, transient, debugger, implements, protected, volatile, double, import, public.

Acești termeni nu pot fi folosiți să desemneze identificatori de variabile său nume de funcții. Limbajul Java este case-sensitive – majusculele au o semnificație diferită fată de literele mici. Dintre caracteristicile principale ale limbajului amintim:

• simplitate – Java este ușor de învățat, caracteristicile complicate (supraîncărcarea operatorilor, moștenirea multiplă, șabloane) întâlnite în alte limbaje de programare sunt eliminate.

• robustețe, elimină sursele frecvente de erori ce apar în programare prin eliminarea pointerilor, administrarea automată a memoriei și eliminarea fisurilor de memorie printr-o procedură de colectare a 'gunoiului' care rulează în fundal. Un program Java care a trecut de compilare are proprietatea că la execuția să nu "crapă sistemul".

• complet orientat pe obiecte – elimină complet stilul de programare procedural; se bazează pe încapsulare, moștenire, polimorfism

• șurință în ceea ce privește programarea în rețea

• securitate, este cel mai sigur limbaj de programare disponibil în acest moment, asigurând mecanisme stricte de securitate a programelor concretizate prin: verificarea dinamică a codului pentru detectarea secvențelor periculoase, impunerea unor reguli stricte pentru rularea programelor lansate pe calculatoare aflate la distanță, etc

• este neutru din punct de vedere arhitectural

• portabilitate, cu alte cuvinte Java este un limbaj independent de platforma de lucru, aceeași aplicație rulând, fără nici o modificare, pe sisteme diferite cum ar fi Windows, UNIX sau Macintosh, lucru care aduce economii substanțiale firmelor care dezvoltă aplicații pentru Internet. Sloganul de bază este: „Write once, run anywhere”

• compilat și interpretat

• asigură o performanță ridicată a codului de octeți

• conține o librărie de clase și interfețe pentru domenii specifice cum ar fi programarea interfețelor utilizator (JFC, AWT, Swing), programare distribuită (comunicare TCP/IP, CORBA, RMI etc.)

• permite programarea cu fire de execuție (multithreaded)

• dinamicitate

• este modelat după C și C++, trecerea de la C/C++ la Java făcându-se foarte ușor.

• face diferența între literele mici și mari (este case sensitive)

• permite dezvoltarea aplicațiilor pentru Internet – crearea unor documente Web îmbunătățite cu animație și multimedia.

Mediul online a cunoscut o dezvoltare impresionantă în ultima vreme. Numărul mare de utilizatori, dar și cele mai bune servicii oferite și îmbunătățite încontinuu de către firmele specializate au dus la creșterea importanței mediului online, în defavoarea altor medii mai tradiționaliste și mai lente în dezvoltare.

Dezvoltarea acestui mediu se concretizează cel mai bine în numărul de aplicații desktop și limbaje de programare construite pentru a veni în sprijinul utilizatorilor. Aceste aplicații pentru desktop, precum și serviciile de programare Java (italic) sunt un ajutor neprețuit pentru toți cei care urmăresc să-și mulțumească clienții și să le satisfacă cererile acestora în materie.

Ajutorul specializat vine din partea companiilor care s-au profilat pe producerea de aplicații desktop și servicii de programare Java la comandă, în conformitate cu cerințele clienților.

Potrivit specialiștilor în IT, dezvoltarea pieței de aplicații desktop și de softuri de programare, în special programarea Java este extrem de importantă pentru utilizatori. Existența unor asemenea aplicații și servicii conduce la o diversificare a procesului de creație în domeniu. De asemenea, variatele aplicații desktop oferă utilizatorului exact acel grad de eficiență și profesionalism dorit, întrucât reprezintă tocmai acele instrumente necesare pentru a-și putea face munca apreciată, dar mai ales cunoscută. Aplicațiile desktop recente se caracterizează prin accesibilitate ușoară – printr-un simplu click, adaptabilitate – majoritatea funcționează sau au forme specifice de adaptare pentru orice tip de computer folosit sau cu orice sistem de operare, multe se actualizează constant pentru a vă oferi dumnevoastră cele mai noi variante de lucru, iar în caz de blocare nu vă vor afecta întregul sistem de operare.

Limbajul de programare Java este caracterizat prin simplitate, dinamism și siguranță, putând fi interpretat, dar și compilat. De asemenea, este un sistem care funcționează independent pe orice sistem de operare, lucru apreciat pentru că nu consuma foarte multe resurse. Un alt element important din construcția acestui limbaj de programare este tocmai robustețea să, reprezentată prin eliminarea erorilor comune care apar de obicei în producția de limbaje de programare. Iar veste bună pentru utilizatorii săi este ca variantele cele mai noi permit crearea unor documente în care pot fi inserate cu ușurință diverse animații și elemente multimedia, care vor face documentul respectiv extrem de atractiv dar și practic pentru publicul țintă.

Într-o lume în care competiția este cheia succesului pentru unii întreprinzători, vă veți întreba, desigur, de ce să alegeți Diosoft ca furnizor pentru aplicații desktop și servicii de programare în Java la comandă.

Răspunsul este concret și simplu. Pentru că Diosoft, folosindu-se de experiența sa acumulată în domeniu, vă va oferi aplicații desktop și servicii de programare Java la comandă, de calitate excepțională, permanent actualizate, și la un raport calitate/preț excepțional.

BIBLIOGRAFIE

Cărți:

Stefan Tanasa, Cristian Olaru, Stefan Andrei ,,Java de la 0 la expert”, Editura Polirom, anul 2011, București

C. Luca, E. Ciurea, ,,Algoritmi si programare JAVA – teorie și aplicații”, Editura Albastra, Cluj Napoca,

Jim Keogh, ,,Java fără mistere – ghid pentru autodidacți”, Editura Rosetti Educational, Bucuresti, 2006

Surse web:

http://www.bibmet.ro/detalii-articol.aspx?artId=27&catId=216&c=3

http://www.bcucluj.ro/doc/proiect-director-adjunct.pdf

http://www.unibuc.ro/studies/Doctorate2012Februarie/Coravu%20Robert%20Florin%20-%20Biblioteca%20universitara%20intre%20cultura%20tiparului%20si%20informatie%20electronica/Robert%20Coravu-REZUMATUL%20TEZEI%20DE%20DOCTORAT.pdf

http://thor.info.uaic.ro/~acf/java/curs/5/interf_grafica.html

http://revistaie.ase.ro/content/18/stanciu.pdf

http://www.scritub.com/stiinta/informatica/java/INTERFATA-GRAFICA2041991624.php
http://thor.info.uaic.ro/~acf/java/curs/5/interf_grafica.html

http://www.infoap.utcluj.ro/vcsharp/Java/Curs1_7_Interfete.pdf

BIBLIOGRAFIE

Cărți:

Stefan Tanasa, Cristian Olaru, Stefan Andrei ,,Java de la 0 la expert”, Editura Polirom, anul 2011, București

C. Luca, E. Ciurea, ,,Algoritmi si programare JAVA – teorie și aplicații”, Editura Albastra, Cluj Napoca,

Jim Keogh, ,,Java fără mistere – ghid pentru autodidacți”, Editura Rosetti Educational, Bucuresti, 2006

Surse web:

http://www.bibmet.ro/detalii-articol.aspx?artId=27&catId=216&c=3

http://www.bcucluj.ro/doc/proiect-director-adjunct.pdf

http://www.unibuc.ro/studies/Doctorate2012Februarie/Coravu%20Robert%20Florin%20-%20Biblioteca%20universitara%20intre%20cultura%20tiparului%20si%20informatie%20electronica/Robert%20Coravu-REZUMATUL%20TEZEI%20DE%20DOCTORAT.pdf

http://thor.info.uaic.ro/~acf/java/curs/5/interf_grafica.html

http://revistaie.ase.ro/content/18/stanciu.pdf

http://www.scritub.com/stiinta/informatica/java/INTERFATA-GRAFICA2041991624.php
http://thor.info.uaic.ro/~acf/java/curs/5/interf_grafica.html

http://www.infoap.utcluj.ro/vcsharp/Java/Curs1_7_Interfete.pdf

Similar Posts