Sistem de Administrare a Activitatii Didactice cu Acces de pe Dispozitive Mobile In Tehnologia Java

Sistem de administrare a activității didactice cu acces de pe dispozitive mobile în tehnologia Java

Proiect de diplomă

Cuprins:

Introducere

Capitolul 1. UNIX/LINUX

Scurt istoric

Distribuții Unix/Linux ale zilelor noastre

Structura sistemului de operare Linux/Unix

Kernel-ul Linux/Unix

Shell

Sistemul de fișiere

Interacțiunea cu sistemul de operare Linux/Unix

Facilități și concepte legate de interfața grafică Linux

Comparație cu Windows

Elementele componente ale interfeței grafice

Facilități și concepte legate de shell-ul Linux

Structura logică a sistemului de fișiere Linux/Unix

Caracteristici generale

Tipuri de fișiere Linux/Unix

Capitolul 2. MySQL

2.1 Carecteristici

2.2 Pachetul MySQL

2.3 Categorii de instrumente

2.4 Aplicația

Capitolul 3. Struts2

3.1 Introduce

3.2 Caracteristicile Struts 2

3.3 Arhitectura Struts2

3.4 Modelul ciclului de viața

Capitol 4. Android

4.1 Istoric

4.2 Fondarea Open Handset Alliance

4.3 Caracteristici

4.4 Dezvoltarea de software

4.5 Aplicația client

Capitolul 5. Aplicația

Concluzii

Bibliografia

Lista acronime:

TCP/IP-Transmission Control Protocol/Internet Protocol

BSD- Berkeley Software Distribution

GNU- GNU’s Not Unix

GPL- General Public License

CD- Compact Disc

DVD- Digital Versatile Disc

JDS- Java Desktop System

FIFO- First In First Out

ODBC- Open Database Connectivity

DDL- Data Definition Language

DML- Data Manipulation Language

DCL- Data Control Language

J2EE- Java 2 Edition

MVC- Model View Controller

JSP- Java Server Pages

HTML- HyperText Markup Language

ASP- Application Service Provider

PHP- Hypertext Preprocessor

Asynchronous JavaScript and XML

POJO- Plain Old Java Object

XML- Extensible Markup Language

RIA -Rich Internet Applications

CSS- Cascading Style Sheet

OGNL- Object Graph Navigation Language

Introducere:

În ziua de azi, când tehnologia și gadget-urile sunt din ce în ce mai prezente în viața fiecăruia dintre noi, aplicația prezentată în proiectul meu își propune să creeze o modalitate practică și ușoară de acces la datele de interes pentru persoanele din sistemul de învățământ, în acest caz de o universitate.

Aplicația consta într-un site la care se face accesul pe bază de login bazat pe permisiuni. Persoanele ce se pot loga sunt persoane ce aparțin sistemului universitar: studenți și profesori, precum și un admin ce se ocupă cu actualizarea datelor din sistem.

Fiecare dintre cele trei categorii au anumite facilități în cadrul aplicației, facilități mulate pe cerințele necesare. Studentul își poate vedea situația scoalara, pe parcursul anilor de studiu, poate vedea planificarea examenelor, precum și accesă materiale de studiu anexate fiecărei materii. Profesorul poate trece note pentru studenții ce au susținut examenul, poate programa data examenului pentru materia să și poate uploada materiale de studiu. Adminul are mai multe opțiuni în cadrul aplicației. El creează conturile pentru profesori, validează și activează conturile pentru studenți care și-au introdus datele în sistem asigurând astfel coerentă datelor din cadrul sistemului. Adminul acoperă și unele din funcționalitățile meniului profesorilor, cum ar fi stabilirea dații unui examen în numele unui profesor și uploadul de materiale pentru o anumită materie. Sistemul include un thread care la o dată anume, stabilită de admin, verifică ce studenți respectă condiția de promovare în anul următor și îi promoveza.

Aplicația are atât o versiune desktop, cât și o versiune pentru telefonul mobil, fapt ce îi crește utilitate, ajutând la un acces la informații în timp real. Studenții își pot vizualiza situația scoalara și situația examenelor, precum și accesă materialele de studiu, oricând și oriunde, chiar și în drum spre facultate, în mijloacele de transport în comun. O altă funcționalitate practică a aplicației este aceea că trimite notificare prin email în cazul unor modificări apărute, precum primirea unei note.

Tehnologiile folosite în dezvoltarea aplicației o fac portabilă și ușor de modificat pentru a se mula cerințelor și altor sisteme, precum un liceu, o firmă, un cabinet medical, etc.

Capitolul 1. UNIX/LINUX

1.1 Scurt istoric

UNIX reprezintă un sistem de operare apărut în 1969 la Bell Labs( o divizie de cercetare a AT&T). Revoluționar pentru vremea sa, Unix oferea posibilitatea ca mai mulți utilizatori să folosească același computer, profitând de timpii morți apăruți în execuția programelor fiecăruia dintre ei- o formă incipientă de multitasking. Istoria să se împletește cu cea a limbajului C- creat inițial pentru a ușura portarea Unix-ului pe diferite configurații hardware- și cu a stivei de protocoale TCP/IP( adăugire ulterioară ce a oferit Unix-ului capabilitatea de lucru în rețea).

Unix a debutat ca un sistem de operare free. Distribuit în rețeaua universitară, unde cercetătorii i-au adăugat multiple facilități. Unele dintre primele derivate majore ale Unix-ului original poartă numele de BSD, fiinf lansată în 1977 de colectivul de la University of California, Berkeley.

Unix-ul a captat treptat atenția companiilor, începând să fie distribuit comercial, în sistem comercial closed-source. Acest lucru îi deranjează pe cei obișnuiți cu libertatea de folosire și îmbunătățire a softului; în 1984, Richard Stallman fondează GNU( acronim recursiv: GNU’s Not Unix), ce își propune să creeze un sistem de operare free cât mai asemănător cu Unix. Pentru a se asigura de faptul că rezultatul muncii sale nu se va putea transforma vreodată în soft proprietar, Stallman creează licența GPL( General Public License) sub care sunt lansate toate aplicațiile GNU, și care dictează ca autorul unui astfel de soft este obligat să distribuie software-ul împreună cu sursele, astfel încât alții să-l poată analiza și îmbunătăți, iar cei care preiau și modifică un soft GNU sunt obligați să distribuie la rândul lor softul împreună cu sursele. GPL deschide calea îmbunătățirii softului prin contribuții individuale, interzicând ca, într-un punct oarecare al acestei căi, softul să devină closed-source.

În 1991, Linus Torvalds creează prima versiune a nucleului unui sistem de operare pentru computere compatibile IBM-PC, ce se dorește a fi unul free și asemănător cu Unix-ul, el primind un nume derivat din cel al creatorului său însă cu o consoană finală ce modifică modelul original: Linux. Beneficiind de software-ul deja creat de GNU, se naște astfel un sistem de operare free, kernel-ul Linux fiind la scurt timp după uniune lansat sub licenta GPL.

1.2 Distributii Unix/Linux ale zilelor noastre

O distribuție Linux include:

kernel-ul Linux, cu posibile modificări față de cel original, și optimizat conform scopului distribuției

un ansamblu de software GNU necesar administrării și folosirii sistemului de operare

aplicații suplimentare, selectate și ele în funcție de scopul distribuției

un mediu grafic- în general compus din serverul Xorg, un window manager și un desktop environment, plus eventualele aplicații grafice adiționale

Distribuțiile Linux se diferențiază în funcție de mai mulți factori, printre care amintim:

-platforma hardware pe care ruleaza- în ziua de azi Linux poate rula pe aproape orice( computere ce folosesc procesoare Intel, SPÂRC sau PowerPC, pe dispozitive portabile, etc.)

-scopul declarat al distributiei- unele distribuții își propun ușurință în utilizare și sunt gândite pentru folosirea computerului ca desktop, pe când altele sunt destinate rulării pe servere. În funcție de scop, pot diferi:

software-ul inclus în kitul de instalare

setul de utilitare proprii ale distribuției în cauză( soft dezvoltat de către autorii distribuției)

felul în care este optimizat kernelul

felul în care se desfășoară instalarea sistemului de operare

În zilele noastre există peste 300 de distribuții Linux. În funcție de ușurință în utilizare, iată câteva exemple de distribuții celebre:

-distributii user-friendly

RedHat- reprezintă unul dintre primele Linux-uri majore care au avut ca scop ușurință în utilizare. Ultima versiune free a fost RedHat 9; în ziua de azi compania RedHat produce o versiune comercială destinată firmelor( RedHat Enterprise Linux), iar continuatorul open-source al RedHat este proiectul Fedora

Mandriva- derivat inițial din RedHat, Mandrake este acum una dintre distribuțiile majore ce se remarcă prin utilizarea facilă

Ubuntu- fenomenul ultimilor ani, o distribuție derivată din Debian și gândită să ofere maxim de ușurință în utilizare și suport hardware bun

Knoppix- una dintre primele distribuții Linux care rulau direct din CD, oferind utilizatorului setul complet de software disponibil în Linux( interfață grafică, aplicații desktop, servere, conectivitate internet, etc). În ziua de astăzi, majoritatea distribuțiilor majore au și o variantă de live CD/DVD( spre exemplu, există Mandriva one( un Live CD) și Mandriva Flash( varianta de stick USB)

-distributii pentru specialisti- cu mai puține preocupare pentru aspectul vizual, sunt axate pe flexibilitate, pentru a permite unui utilizator/administrator compentent să-și realizeze scopurile pe calea dorită

Debian- cea mai clonată distribuție Linux. Un Linux matur, stabil, compus din software free și open-source, ce dispune de o impresionantă colecție de pachete software

Gentoo- o distribuție Linux în care abordarea administrării de software se face diferit față de multe altele; sistemul de gestionare a software-ului preia aplicațiile sub formă de surse și le poate compila pe loc, adaptându-se la platforma gazdă și personalizandu-le setările în funcție de preferințele administratorului de sistem.

În ziua de astăzi există încă un număr important de sisteme de operare considerate urmași ai Unix-ului original, majoritatea lor fiind însă proprietare. Dintre ele amintim:

Solaris- Unix-ul firmei Sun Microsystems, unul dintre sistemele de operare foarte bine cotate pentru operarea de servere. De curând, Sun a lansat openSolaris- versiunea open source a celebrului sistem de operare

AIX- versiunea de Unix a IBM

HP-UX- Unix-ul companiei HP

FreeBSD, OpenBSD, NetBSD- urmași ai BSD-ului original

1.3 Structura sistemului de operare Linux/Unix

Sistemele de operare Linux/Unix sunt compuse din trei elemente de bază:

-kernel- asigură funcționalitatea de bază a sistemului de operare, cea care permite rularea în paralel a mai multor aplicații și comunicarea cu dispozitivele hardware

-shell- interpretorul de comenzi, ce permite utilizatorului interacțiunea cu sistemul de operare

-sisteme de fisiere- stochează structurat majoritatea aplicațiilor și datelor folosite de către utilizatorul computerului

Fiecare dintre aceste componente va fi prezentată în continuare.

1.3.1 Kernel-ul Linux/Unix

Kernel-ul reprezintă nucleul sistemului de operare; el este primul încărcat la pornirea sistemului de operare și realizează gestionarea resurselor computerului, oferind posibilitatea rulării mai multor aplicații în paralel( multi-tasking). Printre funcțiile îndeplinite de kernel se numără:

– interacțiunea cu hardware-ul prezent în sistem- driverele ce controlează diversele dispozitive hardware sunt parte a kernel-ului

– gestionarea procesorului/procesoarelor- în general, într-un sistem de operare, numărul de procese este mult superior numărului de procesoare; de aceea, fiecare procesor reprezintă o resursă partajată între mai multe procese, fiind necesară gestionarea sa de așa natură încât, în final, fiecare proces să capete timp de procesor și să se poată astfel executa

-gestionarea memoriei- fiecare proces beneficiază de propriul său spațiu de memorie, separat de al celorlalte procese sau de al kernel-ului

1.3.2 Shell

Shell-ul reprezintă interpretorul de comenzi, și pe vremea apariției Unix-ului era singura modalitate de interacțiune cu un computer( interfețele grafice bazate pe ferestre apărând mai târziu). Shell-ul constituie interfața între kernel și utilizator: simpla existență a kernel-ului oferă doar posibilitatea rulării mai mcu hardware-ul prezent în sistem- driverele ce controlează diversele dispozitive hardware sunt parte a kernel-ului

– gestionarea procesorului/procesoarelor- în general, într-un sistem de operare, numărul de procese este mult superior numărului de procesoare; de aceea, fiecare procesor reprezintă o resursă partajată între mai multe procese, fiind necesară gestionarea sa de așa natură încât, în final, fiecare proces să capete timp de procesor și să se poată astfel executa

-gestionarea memoriei- fiecare proces beneficiază de propriul său spațiu de memorie, separat de al celorlalte procese sau de al kernel-ului

1.3.2 Shell

Shell-ul reprezintă interpretorul de comenzi, și pe vremea apariției Unix-ului era singura modalitate de interacțiune cu un computer( interfețele grafice bazate pe ferestre apărând mai târziu). Shell-ul constituie interfața între kernel și utilizator: simpla existență a kernel-ului oferă doar posibilitatea rulării mai multor procese- este nevoie însă de o modalitate de a interacționa cu sistemul de operare, transmițându-I operațiile ce se doresc efectuate.

Dacă în alte sisteme de operare axate pe linie de comandă interpretorul era unic( ex: command.com în MS-DOS), în Linux/Unix utilizatorul are de ales între mai multe interpretoare de comenzi posibile- iată câteva exemple:

-sh( Bourne Shell)- reprezintă unul dintre primele interpretoare de comenzi folosite în Unix;

-ksh( Korn Shell)- un interpretor cu sintaxa asemănătoare cu sh însă cu facilități îmbunătățite;

-csh( C Shell)- interpretor cu sintaxa asemănătoare cu cea din C

-bash( Bourne Again Shell)- cel mai bogat în facilități interpretor, folosit ca default în Linux.

1.3. 3 Sistemul de fișiere

Dacă sistemul de operare ar dispune numai de kernel și shell, utilizarea computerului ar fi restrânsă la comenzile cunoscute de către shell( comenzile built-in). Pentru a asigura extensibilitatea sistemului de operare, este necesar să se poată adăuga noi aplicații( comenzi), separate față de cele incluse în shell; acestea sunt memorate în sistemul de fișiere.

Sistemul de fișiere reprezintă o modalitate de stocare structurată, pesistență a informației. Structura sa presupune o ierarhie de fișiere și directoare, ce permite identificarea în mod unic a unei resurse memorate. Sistemul de operare însuși este stocat în sistemul de fișiere, deoarece el conține, pe lângă kernel și shell, o întreagă suită de aplicații ce permite exploatarea computerului.

Conținutul sistemului de fișiere poate proveni( parțial sau total) din diferite surse:

-de pe hard-disk-ul/hard-disk-urile stației pe care este instalat sistemul de operare ce rulează pe stația în cauză

-din retea- stocat pe un server și partajat în rețea

1.4 Interacțiunea cu sistemul de operare Linux/Unix

Posibilități

În ziua de astăzi, odată cu dezvoltarea interfețelor grafice, utilizatorul are la dispoziție două modalități de interacțiune cu computerul:

cea bazată pe o interfață grafica- utilizatorul folosește mouse-ul și tastatura pentru a interacționa cu un sistem grafic compus din ferestre și icon-uri. Este modalitatea de lucru preferată de către utilizatorul simplu, a cărui necesitate principală este utilizarea computerului, nu administrarea acestuia

Avantaje:

-usurinta în utilizare- necesită minim de cunoștințe legate de hardware sau arhitecura sistemului de operare

Dezavantaje:

-operatiile posibile sunt cele oferite de aplicațiile grafice disponibile; flexibilitatea este mare, dar nu maximă

-interfata grafică nu este întotdeauna disponibilă( ex: pe servere ea lipsește în general)

cea bazată pe un interpretor de comenzi- linia de comandă rămâne principala modalitate de interacțiune cu serverele Linux/Unix în scopul administrării sistemului de operare/serverelor. Chiar și atunci când pe o stație Linux rulează o interfață grafică, utilizatorul are posibilitatea de a deschide o fereastră de terminal( asemănătoare unui Command Prompt din Windows) pentru a lucra în linia de comandă.

Avantaje:

-ofera flexibilitate maxima- utilizatorul poate combina comenzile disponibile în mai multe feluri pentru a atinge un același scop. Utilizatorii pot astfel folosit sistemul de operare în concordanță cu nivelul lor de cunoștințe și pricepere, senzația rezultată fiind una de libertate în operare

-unele comnezi/operații pot fi realizate mai rapid din linie de comandă de către administratorul experimentat

-deseori un server este singura modalitate de administrare( prin conectare la distanță și folosirea unei linii de comandă în mod text)

Dezavantaje:

-incomoda pentru utilizatorul începător

-solicita cunoștințe mai bogate legate de structura sistemului de operare, sintaxa comenzilor, etc.

1.5 Facilități și concepte legate de interfață grafică Linux

1.5.1 Comparație cu Windows

Utilizatorul obișnuit cu modul de interacțiune Windows va găsi multiple similarități între modul de interacțiune cu interfata grafică în Windows și Linux/Unix. Există însă destule deosebiri( mai mult sau mai puțin subtile), o parte din acestea fiind prezentate în continuare.

Ceea ce numim “interfață grafică” în Linux este de fapt un ansamblu de aplicații, fiecare cu rolul său bine stabilit, care nu face parte din kernel. Spre deosebire de Windows, interfață grafică nu este indispensabilă funcționării sistemului de operare, ci are regimul unei aplicatii- așa cum se întâmplă la început cu Windows-ul însuși( care era la vremea aceeas o simplă aplicație pornită din sistemul de operare DOS).

1.5.2 Elementele componente ale interfeței grafice

Interfața grafică este compusă din:

-serverul grafic- este aplicația care dispune de drivere pentru diferite tastaturi, mousi, hardware video etc și care oferă infrastructura pentru crearea unei interfețe grafice bazate pe ferestre. Serverul grafic are capabilități native de lucru în retea- de exemplu, este posibil ca o aplicație grafică să ruleze pe o stație, însă output-ul ei să fie atașat în serverul grafic aflat pe o altă stație.

Serverele grafice Linux/Unix ale zilelor noastre sunt în general derivate din proiectul X( inițiat de MIT în 1984). Până acum câțiva ani, standardul de facto în Linux era Xfree86, ultimii ani consacrând însă Xorg ca server grafic folosit în Linux.

-window manager-ul( gestionarul de ferestre)- este aplicația care se ocupă de plasarea, dimensionarea, desenarea și decorarea ferestrelor. Aplicațiile își desenează output-ul în ferestrele oferite de către window manager. Există o întreagă varietate de window manager-e, cu facilități mergând de la simpla creare de ferestre care nu se suprapun, până la desktop-uri 3D cu efecte impresionante

-desktop environment( mediu de lucru desktop)- reprezintă suita de aplicații grafice de care utilizatorul are nevoie pentru a-și folosi computerul, asociate de obicei cu o anumită suită de componente grafice și un anumit mod de interacțiune cu computerul. Un desktop environment poate include aplicații pentru editate de documente( suita office), redare media, navigare pe Internet, messaging, dezvoltare de soft, etc.

Dintre cele mai cunoscute desktop environment-uri amintim:

-KDE- folosit preponderent în Linux( dar beneficiază și de versiune de Solaris). Oferă o aranjare a spațiului de lucru asemănătoare cu Windows( o bară de aplicații în partea de jos a ecranului, un meniu asemănător ca funcționalitate cu cel din Start, etc). Folosește ca window manager din oficiu KWin

-GNOME- provenit de asemenea din Linux, însă întâlnit azi pe multe alte Unix-uri( Solaris include un desktop environment numit Java Desktop System, bazat pe GNOME). Oferă o aranjare a spațiului de lucru ușor diferită, folosind două bare( în partea de sus și de jos a ecranului). Folosește ca window manager default MetaCity

-CDE- folosit până de curând că interfața de bază în Solaris( și încă prezent în versiune 10), însă va fi probabil retras în curând în favoarea JDS( Java Desktop System)

1.5.3 Facilități și concepte legate de shell-ul Linux

Terminal vs consolă

Acești doi termeni apar deseori atunci când vine vorba de lucrul în linia de comandă Unix. Ei provin de pe vremea când computerele abia începuseră să fie dispozitive interactive( ele funcționau inițial pe bază de cartele perforate) iar interacțiunea utilizatorului cu computerul se făcea printr-un așa-numit terminal, existând posibilitatea ca la un același computer să fie conectate mai multe terminale pentur o cât mai eficientă utilizare a resurselor stației în cauză. Terminalul reprezenta de fapt modalitatea de a furniza input computerului și de a primi output-ul produs de acesta. Terminalele erau compuse în general din tastatură și monitor( sau imprimantă) și se conectau la computer folosind conexiuni seriale.

Dintre terminalele conectate la un computer, unul avea statut privilegiat: cel desemnat a fi “consola” sistemului, adică terminalul pe care sunt afișate informațiile de diagnostic la bootarea sistemului de operare și singurul de pe care pot fi realizate anumite operații administrative( ex: shutdown, restart). De aceea, acest terminal era de obicei plasat într-o locație protejată fizic.

În ziua de astăzi, utilizarea terminalelor fizică este încă posibilă, însă rară; în schimb sunt folosite extensiv emulatoarele de terminal- programe care permit conectarea la o stație simulând capabilitățile unui terminal. Exemple în acest sens sunt:

-administrarea serverelor se face în general de la distant, prin LAN/Internet, folosind aplicații ce se conectează la serverul dorit și dau apoi posibilitatea administratorului să execute comenzi pe server și să vizualizeze output-ul acestora. Un exemplu tipic sunt softurile cu rol de client SSH

-pe o stație pe care rulează mediul grafic, utilizatorul poate obține o linie de comandă rulând un program ce deschide un pseudo-terminal

În plus, termenul de consolă este folosit astăzi pentru a desemna tastatura/monitorul direct conectate la computer. Unele Unix-uri oferă astfel o singură consolă, pe când Linux oferă 6 așa-numite console virtuale. Ele se numesc virtuale deoarece utilizatorul dispune, practic, de 6 console diferite deși fizic există o singură pereche tastatură/monitor ale stației în cauză.

Consolele virtuale Linux sunt accesibile folosind combinațiile de taste CTRL-ALT-F1..CTRL-ALT-F6. Prezența celor 6 console determină o mai bună organizare a lucrului în linia de comandă;spre exemplu, utilizatorul poate deschide în prima consolă documentație unui server pe care intenționează să-l configureze, în consola 2 poate deschide un editor în care să aducă modificări fișierului de configurare a serverului, în consola 3 să dea comenzile de pornire/oprire/etc a serverului, iar în consola 4 să urmărească log-urile serverului.

Pentru a putea lucra în linie de comandă, este necesară pornirea unei instanțe de interpretor de comenzi(shell). Acest lucru se poate realiza în diferite moduri:

dacă sistemul Linux a fost configurat să booteze fără interfață grafică, după pornirea sistemului de operare utilizatorul se va găsi în fața unui prompt de login, iar după o autentificare reușită va fi pornit automat un shell

dacă sistemul booteaza direct în serverul grafic:

-utilizatorul se poate loga în modul grafic, pornind apoi o aplicație de terminal( ex: konsole, gnome-terminal, xterm)

-utilizatorul poate folosi combinațiile de taste CTRL-ALT-F1..CTRL-ALT-F6 pentru a putea comuta într-una dintre consolele virtuale, urmând a reveni în serverul grafic în caz de nevoie folosind CTRL-ALT-F7

1.6 Structura logică a sistemului de fișiere Linux/Unix

1.6.1 Caracteristici generale

Sistemul de fișiere Linux/Unix se prezintă utilizatorului sub forma unui arbore de fișiere și directoare asemănător până la un punct- ca principiu- cu cel din sistemele de operare Windows. Există însă câteva diferențe notabile care trebuie menționate de la început:

-in Windows, atunci când pe hard-disk erau definite mai multe partiții, fiecare dintre ele cu propriul sistem de fișiere, utilizatorul lucrează cu mai mulți arbori distincți( denumiți C: , D: , etc) fiecare dintre ei având propria rădăcina notată cu \ ( de aici C:\, D:\ etc). În Linux/Unix există întotdeauna un arbore unic de fișiere, chiar și atunci când sistemul de fișiere este distribuit pe mai multe partiții.

-radacina sistemului de fișiere Linux/Unix este notată cu “/” și este unică

-separatorul elementelor unei căi în sistemul de fișiere Linux/Unix este/ (în Windows este \).

-denumirile fișierelor pot conține . pe orice poziție. Din acest motiv, în Linux/Unix există multe fișiere atipice pentru Windows( spre exemplu, majoritatea fișierelor nici nu au extensie) sau fișiere care nici nu ar putea fi create în Windows( ex: directorul .ssh)

-se face distincție între literele mici și literele mări, în aproape toate cazurile. Acest lucru se aplică opțiunilor, comenzilor, numelor de fișiere, etc.

-totul în Linux/Unix este fisier- inclusiv consolele virtuale, dispozitivele hardware detectate în sistem, etc. sunt prezentate sub formă de fișiere. Fișierele pot și însă de diferite tipuri.

1.6.2 Tipuri de fișiere Linux/Unix

Sistemul de operare Linux/Unix expune toate resursele sale sub formă de fisiere- și dacă pentru fișierele obișnuite( documente, poze, muzică, etc.) acest lucru nu ne miră, lucrurile se schimbă când descoperim placa de sunet, unitatea optică CD/DVD, hard-disk-ul, conexiunile de rețea sub formă de fișiere si- mai mult- putem citi din/ scrie în aceste fișiere. Ca exemplu, o copiere de partiție în Linux se poate reduce la a citi dintr-un fișier și a scrie în altul( fiecare dintre cele două fișiere corespunzând câte unei partiții de pe hard disk).

Chiar dacă totul în Linux/Unix este fișier, există categorii de fișiere, după cum urmează:

fișiere standard- pot fi text, date, executabile sau orice alt fișier al cărui nume are în spate informație folositoare utilizatorului stocată pe hard disk

directoare- reprezintă “containere” în care sunt grupate fișiere. Deși spunem că un director “ conține” fișiere, de fapt pe hard-disk el nu ocupă un spațiu egal cu suma dimensiunilor fișierelor componente; fișierul de tip director cuprinde numai lista de fișiere conținute, directorul fiind artificiul necesar pentru crearea structurii ierarhice a sistemului de fișiere

symbolic link-uri( symlink)- reprezintă “shortcut-uri” către alte fișiere sau directoare. Spre deosebire de shortcut-ul de Windows, symlink-ul de Linux/Unix nu este gândit doar pentru double-click- de fapt, nici nu are legătură cu interfața grafica- ci este o redirecționare către un alt fișier care funcționează inclusiv din linia de comandă

fișiere speciale( numite și “fișiere dispozitiv”- device files)- toate dispozitivele în UNIX sunt văzute ca fișiere, comunicația cu ele realizându-se prin accesarea fișierului corespunzător. Fiecărui dispozitiv i se asociază un major number- care îi spune kernelului ce driver să folosească, și un minor number, ce reprezintă un indicativ al dispozitivului fizic( sau modalitatea de discriminare între mai multe dispozitive fizice controlabile cu același driver).

Există mai multe tipuri de fișiere speciale:

-fisiere speciale de tip caracter- folosite pentru accesarea byte-cu-byte a dispozitivelor hardware

-fisiere speciale de tip bloc- utilizate pentru accesul prin intermediul unui buffer( în blocuri de date) al dispozitivelor

-fisiere de tip named pipe- găsit în Unix-urile de tip AT&T; reprezintă o cale de comunicație bidirecțională între două procese, prin intermediul unei cozi FIFO( First În First Ouț)

-fisiere de tip socket-un “frate” al pipe-ului, dar introdus de BSD; mai este numit “Unix domain socket” sau “local domain socket”- pentu a fi deosebit de socket-urile TCP, care permit comunicația între procese aflate “la distanță” unul de altul, pe computere conectate într-un Internet TCP/IP. Socket-ul poate fi folosit pentru scriere/citire numai de către procesul care l-a deschis, spre deosebire de un named pipe care poate fi creat de către administratorul sistemului pentru a interconecta ulterior două procese.

Capitolul 2. MySQL

2.1 Carecteristici:

MySQL este printre cele mai populare sisteme de gestiune a bazelor de date relaționale, produs de compania suedeză MySQL AB. Este un software open-source de timp DBMS relațional( Database management system), ce operează într-o arhitectură client-server. Clienții se conectează la serverul MySQL efectuând cereri către acesta.Programele client pot rula pe mașini aflate în aceeași rețea cu serverul, în altă rețea sau chiar pe mașina serverului. Pe lângă faptul că este un sistem necostisitor de gestiune a bazelor de date, MySQL mai are numeroase caracteristici atractive precum:

-Viteza: Programatorii pretind că MySQL este printre cele mai rapide sisteme de gestiune a bazelor de date care se poate găsi. Informații și comparații cu privire la performanțe se află pe site-ul MySQL: www.mysql.com/why-mysql/benchmarks/

-Usurinta în utilizare: Chiar dacă este un sistem cu performate ridicate, MySQL este relativ simplu de utilizat, iar configurarea și administrarea sunt mult mai simple decât în cazul sistemelor mai mari.

-Portabilitate: MySQL este disponibil atât în Windows, cât și Linux/Unix. Interacțiunea între server și clienți se efectuează prin intermediul unui protocol de rețea, care este același indiferent de sistemul de operare al serverului și al clienților. De aceea, este posibil că stațiile pe care rulează clienții să aibă sistem de operare diferit față de cel aflat pe stația serverului.

-Cost: MySQL este gratuit pentru majoritatea utilizărilor interne, iar pentru softurile comerciale se poate achiziționa licența de la compania producătoare.

-Suport pentru limbajele de interogare: MySQL înțelege Structured Query Language (limbaj de interogare structurat, folosit în toate sistemele moderne de baze de date). De asemenea, se poate accesa MySQL folosind aplicații care acceptă ODBC( Open Database Connectivity), un protocol de comunicație cu bazele de date creat de Microsoft.

-Conectivitate și securitate: MySQL poate fi folosit integral în rețele, iar bazele de date sunt accesibile de oriunde în Internet, datele putând fi partajate cu oricine, oriunde. În plus, MySQL are controlul accesului, astfel încât persoanele neautorizate nu au acces la date.

-Distributie liberă: MySQL este ușor de obținut, prin simpla accesare a browser-ului Web. Pentru înțelegerea mai amănunțită a funcționării unei componente sau a unui algoritm, se poate procura codul sursă și examina. Modul de funcționare al unei componente poate fi și modificat. În plus, MySQL este dotat cu un sistem de asistență performant care include un manual de referință de mari dimensiuni( ~450 pagini), contracte de asistență tehnică de la dezvoltatorii MySQL, pentru cei care preferă un acord formal. Există de asemenea, o listă de corespondență activă ce conține numeroși participanți activi, printre care și dezvoltatori MySQL. Comunitatea este extrem de cooperantă, răspunsurile la întrebări sosesc de regulă în câteva minute, iar pentru semnalarea unor probleme se lansează un remediu în câteva zile.

2.2 Pachetul MySQL

Pachetul MySQL conține următoare categorii de software:

-serverul MySQL. Este cel care gestionează bazele de date, stocate pe hard-disk(urî ) sau în memorie, și cel prin intermediul căruia clienții pot efectua operațiile dorite cu bazele de date( creare/ștergere/modificare/definire structură/populare cu date/ etc). Clienții se pot conecta fir prin rețea, folosind protocolul TCP( portul din oficiu folosit de server fiind 3306), fie prin alte mijloace care depind de sistemul de operare gazdă. Serverul este reprezentat de executabilul mysqld.

-clientii MySQL. Distribuția MySQL include și programe ce interfațează cu serverul, conectându-se la el și efectuând cereri către acestea. Se disting două categorii de utilitare:

cele pentru manipulare a structurii bazelor de date și a datelor conținute:

mysql, ce oferă utilizatorului o linie de comandă cu serverul SQL

mysqldump, ce realizează un backup al unei tabele

mysqlimport, ce importă date dintr-un fișier într-o tabelă a unei baze de date

cele pentru administrare serverului

mysqladmin, utilitar de monitorizare și administrare a serverului MySQL

-programe utilitare non-client. În această categorie intră softuri care nu se conectează la server, ci își realizează funcțiile prin accesul direct la date. Un exemplu în acest sens îl reprezintă programele de verificare și refacere a integrității bazelor de date.

2.3 Categorii de instrumente:

Se disting trei categorii de instrucțiuni ale limbajului SQL, ce formează trei porțiuni ale limbajului:

DDL( Data Definition Language). Sunt instrucțiuni care permit manipularea structurii bazei de date( creare/ștergere/vizualizare de baze de date, creare/modificare de tabele cu specificarea structurii acestora, etc)

DML( Data Manipulation Language). Reprezintă setul de instrucțiuni pentru lucrul cu datele( includere/extragere/modificare/ștergere de informație)

DCL( Data Control Language). Este fornat din acele instrucțiuni care permit gestionarea accesului la date( definirea de conturi, stabilirea de privilegii ale conturilor pe diversele baze de date/tabele/coloane)

2.4 Aplicația

Baza de date creată pentru această aplicație conține mai multe tabele în care se află informațiile despre studenți, profesori, administratorii de sistem, examene, etc.

Tabela cu informații despre studenți se numește students și are următoarele atribute:

-CNP- este folosit ca și cheie primară, pentru identificarea în mod unic a fiecărei persoane ce se loghează

-First_name- stochează prenumele studentului

-Last_name- este folosit pentru stocarea numelui de familie

Pe lângă aceste atribute , tabela mai conține și atribute necesare logării, precum:

-Pwd- conține parola studentului respectiv

-Email- pentru adresa de email a fiecărui student

-Status- atribut ce poate lua două valori: active, pentru studenții cu contul activ și respectiv inactive pentru cei cu contul blocat

Tabela students

Pentru evidența situației școlare a fiecărui student, există tabela students_assigned.

Atributele acestei tabele sunt: CNP-ul, prin care este referit fiecare student, Year, este de tipul Enum, poate lua numai valorile 1, 2, 3, 4 și desemnează anul de studiu în care este fiecare student, Yearofstudy, anul calendaristic corespondent și atribute pentru stocarea notei la fiecare materie studiată.

Programa conține 24 de materii, împărțite pe decursul a patru ani. Corespondența dintre materie și anul în care este studiată este prezentă în tabela year_class.

Popularea acestei tabele cu date s-a realizat astfel:

INSERT INTO `year_class` (`year`, `class`) VALUES

(1, 'Algebra'),

(1, 'Analiza'),

(1, 'Chimie'),

(1, 'Engleza'),

(1, 'Fizica'),

(1, 'Programarea calculatoarelor'),

(2, 'Dispozitive si circuite electronice'),

(2, 'Materiale pentru electronica'),

(2, 'Microunde'),

(2, 'Programare obiect-orientata'),

(2, 'Semnale si sisteme'),

(2, 'Teoria transmisiunii informatiei'),

(3, 'Arhitectura sistemelor de calcul'),

(3, 'Arhitecturi de retea si Internet'),

(3, 'Baze de date'),

(3, 'Prelucrarea digitala a semnalelor'),

(3, 'Tehnologii de programare in Internet'),

(3, 'Inginerie software'),

(4, 'Analiza imaginilor'),

(4, 'Calcul paralel'),

(4, 'Inteligenta artificiala'),

(4, 'Programare distribuita'),

(4, 'Retele de calculatoare'),

(4, 'Tehnici de optimizare in programare');

Informațiile despre profesori sunt conținute în tabela professors, ce este formate din următoarele atribute:

-CNP- cheia primară pentru identificarea în mod unic a fiecărui profesor

-First_name- conține prenumele fiecărui profesor

-Last_name- stochează numele de familie al fiecărui profesor

-Year- se referă la anul din ciclul universitar în care profesorul respectiv își predă materia

-Email- adresa de email a fiecărui profesor

-Pwd- parola necesară pentru efectuare operației de login

-Status- atribut de tip Enum, cu valori Active, pentru profesorii cu cont activ, respectiv Inactive, pentru profesorii cu cont inactiv

-Class- se referă la materia pe care o predă profesorul respectiv

-Credit_points_class- se referă la numărul de puncte de credit aferent fiecărei materii

Pentru evidența materialelor de studiu uploadate de fiecare profesor există tabela professors_assigned2 ce este formată din următoarele atribute:

-username- este CNP-ul profesorului care uploadeaza materiale de studiu

-year- se referă la anul în care este predată materia pentru care se uploadeaza materialul de studiu

-studymaterial- numele materialului de studiu uploadat; are forma “an_Nume materie.pdf”

-studymaterialuploadded- atribut de tip Enum, cu valorile Y, dacă există un material uploadat și N dacă nu există încă un material uploadat

Pentru situația programării examenelor există tabela exam_schedule, cu atributele următoare:

-Subject_name- numele materiei la care este programat examenul

-Year- anul de studiu în care este predată materia respectivă

-Date- data la care este programat examenul

Aplicația conține un thread care la o dată anume verifică dacă este îndeplinită condiția de promovare în anul viitor, verificând situația punctelor credit acumulate de fiecare student. Tabela system_properties conține data la care se face această verificare.

Informațiile despre administratorii de sistem sunt conținute în tabela lkup_sys_users ce are următoarele atribute:

-login_name- username-ul folosit de administrator pentru logare

-pwd- parola administratorului pentru logare

-user-type- tipul administratorului

-first_name- prenumele administratorului de sistem

-last_name- numele de familie al administratorului de sistem

-email- adresa de email a administratorului

Capitolul 3. Struts2

3.1 Introducere

J2EE – Java 2 Enterprise Edition – este un set de specificații arhitecturale provenite de la SUN Microsystems, în conformitate cu care sunt construite:

-Servere de aplicație, drept containere pentru aplicații;

Ex: IBM WebSphere, Oracle 9iAS, BEA Weblogic

-Aplicatii care rulează în serverele de aplicații.

Pe orice platformă hardware, de la servere RISC cu sistem de operare Unix, până la servere Intel-based cu sistem de operare Windows.

În esență, toate aplicațiile moderne medii-mari pentru Intranet sau Internet sunt realizate în una din tehnologiile J2EE sau Microsoft .NET, cu platforma J2EE conducând detașat prin maturitate, scalabilitate și portabilitate, îndeosebi în sisteme mari (bancar, operatori comunicații, militar, e-commerce).

Struts 2 este un framework popular bazat pe arhitectura MVC( Model View Controller). Nu este numai următoarea versiune de Struts, ci este o rescriere completă a arhitecturii Struts. MVC este un model de design de software pentru dezvoltarea de aplicații Web. Un model MVC este alcătuit din următoarele trei părți:

-Model: este responsabil pentru mentenanța datelor, înmagazinarea logicii aplicației și stării sistemului.

-View: responsabil de afișarea datelor pentru utilizator, este o colecție de clase reprezentând interfață cu utilizatorul( toate obiectele pe care utilizatorul le poate vedea pe ecran și cu care poate interacționa, cum ar fi butoane, casete de text, etc.). Este implementată prin totalitatea paginilor JSP, HTML, a stilurilor și a elementelor de design.

-Controller: codul software care controlează interacțiunea dintre Model și View.

Figura: Modelul arhitectural MVC

MVC este popular deoarece izolează logica aplicației de interfață cu utilizatorul. Controller-ul primește cererile aplicației și apoi lucrează cu Model-ul pentru a pregăti datele necesare View-ului. View-ul folosește apoi datele pregătite de Controller pentru a genera un răspuns final prezentabil.

Model-ul este responsabil cu gestionarea datelor aplicației. Răspunde la cererea View-ului, dar răspunde și la instrucțiunile Controller-ului să se updateze.

View-ul este o prezentare a datelor într-un anumit format, declanșat de decizia Controller-ului de afișare a datelor. Sunt sisteme template bazate pe script cum ar fi JSP, ASP, PHP și se integrează foarte ușor cu tehnologia AJAX.

Controller-ul este responsabil cu răspunderea la cerințele utilizatorului și cu efectuarea interacțiunilor pe modelul data obiecte. Controller-ul primește datele de intrare, validează aceste date și apoi efectuează operațiile care modifică starea modelului de date.

Apache Struts 2 este un framework elegant, extensibil pentru crearea de aplicații Web Java. Framework-ul este conceput pentru a simplifica ciclul de dezvoltare de la creare, implementare până la menținerea aplicațiilor de-a lungul timpului. Apache Struts 2 a fost inițial cunoscut sub numele de WebWork2. WebWork a început cu framework-ul Struts ca bază și scopul său a fost oferirea unui framework îmbunătățit și consolidat pentru a face realizarea de aplicații Web mai ușoară pentru dezvoltatori. După ceva timp, comunitatea Struts și framework-ul WebWork s-au alăturat pentru a crea Struts2.

3.2 Caracteristicile Struts 2

Câteva dintre caracteristicile Struts 2 care sunt de luat în considerare ar fi:

Struts 2 a eliminat ActionForm-urile care au fost parte integrantă în Struts. Cu acest framework se poate utiliza orice POJO( Plain Old Java Object) pentru a primi formele de intrare, astfel orice POJO poate fi văzut că o clasă Action.

Suport pentru tag-uri. Struts 2 a îmbunătățit form tag-urile și noile tag-uri permit dezvoltatorilor să scrie mai puțin cod.

Suport AJAX( Asynchronous JavaScript and XML). Struts 2 a recunoscut preluarea de tehnologii Web 2.0 și a integrat suport AJAX prin crearea de tag-uri AJAX, foarte similare cu cele standard ale Struts 2.

Integrare ușoară cu alte framework-uri cum ar fi Spring, Tiles și SiteMesh.

Suport de template-uri- suport pentru generarea de view-uri folosind template-uri.

Suport pentru plugin-uri. Comportamentul de bază Struts2 poate fi îmbunătățit și augmentat pentru utilizarea de plugin-uri, fiind disponibile într-un anumit număr.

Profilare. Struts2 oferă profilare integrată pentru a face debug și pentru a profila aplicația. În plus față de asta, Struts oferă, de asemenea, debugger integrat cu ajutorul instrumentelor de debug integrate.

Ușurință în modificarea tag-urilor. Marcajele tag din Struts2 pot fi optimizate folosind template-uri FreeMarker. Acest lucru nu necesită cunoștințe Java sau JSP, fiind suficiente cunoștințe de bază de HTML, XML și CSS pentru a modifica tag-urile.

Promovează folosirea cât mai mică a configurării. Struts2 promovează folosirea mai puțin a configurării prin folosirea valorilor default pentru diverse setări. Utilizatorul nu trebuie să configureze ceva, decât dacă se abate de la setările implicite setate de Struts2.

Tehnologii View. Struts2 are un suport vast pentru JSP, Freemarker, Velocity și XSLT.

Printre dezavantaje se numără documentația insuficientă, în comparație cu tehnologia servlets-ilor și JSP, Struts are puține resurse online și se întâmpla adesea ca utilizatorii începători să găsească documentația online Apache confuză și slab organizată. De asemenea, la aplicațiile Struts, se întâmplă mai multe în interiorul aplicației față de aplicațiile Web normale bazate pe Java ceea ce face mai greu de înțeles framework-ul.

Ca notă finală, un framework bun ar trebui să ofere un comportament generic pentru ca mai multe tipuri de aplicații să poate să îl folosească. Struts2 este printre cele mai bune framework-uri și este foarte folosit pentru dezvoltarea de RIA (Rich Internet Applications).

3.3 Arhitectura Struts2

Struts2 este un framework pull-MVC( sau MVC2). Modelul Model-View-Controller se realizează cu următoarele cinci componente de bază:

-Actiuni

-Interceptoare

-Stiva cu valori/ OGNL( Object Graph Navigation Language)

-Rezultate/ tipuri de rezultate

-Tehnologii View

Struts2 este puțin diferit de un framework tradițional MVC prin faptul că acțiunea ia mai degrabă rolul modelului decât al controler-ului, deși există și unele suprapuneri.

Figura: Arhitectura Struts

Diagrama descrie Model-ul, View-ul și Controller-ul al arhitecturii Struts. Controller-ul este implementat cu un FilterDispatcher servlet, precum și interceptoare, Model-ul este implementat cu acțiuni, și View-ul este implementat ca o combinație între rezultate și tipuri de rezultate. Stiva de valoare și OGNL furnizează thread-urile, legăturile și integrarea între componente.

3.4 Modelul ciclului de viață:

Bazat pe figura de mai sus, se poate explica cererea ciclului de viață a utilizatorului în Struts2, după cum urmează:

Utilizatorul trimite o cerere la server pentru a solicita unele resurse(de exemplu pagini);

FilterDispatcher-ul analizează cererea și determină acțiunea corespunzătoare;

Interceptoare configurate pe funcționalități aplică validări, uploadari de fișiere, etc;

Se alege acțiunea pentru a executa operația solicitată;

Din nou, interceptoare configurate sunt aplicate pentru a face vreo acțiune post-procesare, dacă este nevoie;

Capitol 4. Android

Android este o platformă software și un sistem de operare pentru dispozitive și telefoane mobile bazată pe nucleul Linux, dezvoltată inițial de compania Google, iar mai târziu de consorțiul comercial Open Handset Alliance. Android permite dezvoltatorilor să scrie cod gestionat în limbajul Java, controlând dispozitivul prin intermediul bibliotecilor Java dezvoltate de Google. Aplicațiile scrise în C și în alte limbaje pot fi compilate în cod mașină ARM și executate, dar acest model de dezvoltare nu este sprijinit oficial de către Google.

Lansarea platformei Android la 5 noiembrie 2007 a fost anunțată prin fondarea Open Handset Alliance, un consorțiu de 48 de companii de hardware, software și de telecomunicații, consacrat dezvoltării de standarde deschise pentru dispozitive mobile. Google a lansat cea mai mare parte a codului Android sub licența Apache, o licență de tip free-software și open source.

4.1 Istoric

În iulie 2005 Google a achiziționat Android, Inc, o mică companie de tip startup cu sediul în Palo Alto, California, SUA. Cofondatorii companiei Android, care au continuat să muncească la Google, au fost Andy Rubin (cofondator al Danger), Rich Miner (cofondator al Wildfire Communications, Inc), Nick Sears (fost vicepreședinte al T-Mobile) și Chris White (unul dintre primii ingineri ai WebTV). La acea dată se cunoștea foarte puțin despre Android, Inc., doar că făceau software pentru telefoane mobile.

La Google, echipa condusă de Rubin a dezvoltat un sistem de operare pentru dispozitive mobile bazat pe Linux, pe care l-au prezentat producătorilor de telefoane mobile și operatorilor de rețele de telefonie mobilă, cu perspectivă de a asigura un sistem flexibil, upgradabil.

4.2 Fondarea Open Handset Alliance

La 5 noiembrie 2007 a fost făcut public Open Handset Alliance, un consorțiu incluzând Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, Sprint Nextel și Nvidia, cu scopul de a dezvolta standarde deschise pentru dispozitive mobile. Odată cu formarea Open Handset Alliance, OHA a dezvăluit de asemenea primul său produs, Android, o platformă pentru dispozitive mobile construită pe nucleul Linux, versiunea 2.6.

La 9 decembrie 2008, a fost anunțat că 14 noi membri au aderat la proiectul Android, incluzând: Sony Ericsson, Vodafone Group Plc, ARM Holdings Plc, Asustek Computer Inc, Toshiba Corp și Garmin Ltd.

Începând cu 21 octombrie 2008, Android a fost disponibil ca Open Source. Google a deschis întregul cod sursă (inclusiv suportul pentru rețea și telefonie ), care anterior era indisponibil, sub licența Apache. Sub licența Apache producătorii sunt liberi să adauge extensii proprietare, fără a le face disponibile comunității open source.

4.3 Caracteristici

Caracteristici și specificații:

Configurații dispozitive: Platforma este adaptabilă la configurații mai mari, VGA, biblioteci grafice 2D, biblioteci grafice 3D bazate pe specificația OpenGL ES 1.0 și configurații tradiționale smartphone.

Stocare de date: Software-ul de baze de date SQLite este utilizat în scopul stocării datelor.

Conectivitate: Android suport tehnologii de conectivitate incluzând GSM/EDGE, CDMA, EV-DO, UMTS, Bluetooth și Wi-Fi.

Mesagerie instant: SMS și MMS sunt formele de mesagerie instant disponibile, inclusiv conversații de mesaje text.

Navigatorul de web: Navigatorul de web disponibil în Android este bazat pe platforma de aplicații open source WebKit.

Mașina virtuală Dalvik: Software-ul scris în Java poate fi compilat în cod mașină Dalvik și executat de mașina virtuală Dalvik, care este o implementare specializată de mașina virtuală concepută pentru utilizarea în dispozitivele mobile, deși teoretic nu este o Mașină Virtuală Java standard.

Suport media: Android acceptă următoarele formate media audio/video/imagine: MPEG-4, H.264, MP3, AAC, OGG, AMR, JPEG, PNG, GÂF.

Suport hardware adițional: Android poate utiliza camere video/foto, touchscreen, GPS, accelerometru, grafică accelerată 3D.

Mediu de dezvoltare: Include un emulator de dispozitive, unelte de depănare, profilare de memorie și de performanță, un plug-in pentur mediul de dezvoltate Eclipse.

Piața Android: Similar cu AppStore-ul de pe iPhone, Piața Android este un catalog de aplicații care pot fi descărcate și instalate pe hardware-ul țintă prin comunicația fără fir, fără a se utiliza un PC. Inițial au fost acceptate doar aplicații gratuite.

Multi-touch: Android are suport nativ pentru multi-touch, dar această funcționalitate este dezactivată pentru a se evita încălcarea brevetelor Apple pe tehnologia touch-screen.

4.4 Dezvoltarea de software

Software Development Kit

SDK-ul Android include un set complet de instrumente de dezvoltare. Acestea includ un program de depănare, biblioteci, un emulator de dispozitiv (bazat pe QEMU), documentație, mostre de cod și tutoriale. Platformele de dezvoltare sprijinite în prezent includ calculatoare bazate pe x86 care rulează Linux (orice distribuție Linux desktop modernă), Mac OS X 10.4.8 sau mai recent, Windows XP sau Vista. Cerințele includ, de asemenea, Java Development Kit, Apache Ant, și Python 2.2 sau o versiune ulterioară. Mediul de dezvoltare (IDE) suportat oficial este Eclipse (3.2 sau mai recent), utilizând plug-in-ul Android Development Tools (ADT), deși dezvoltatorii pot folosi orice editor de text pentru a edita fișiere XML și Java și apoi să utilizeze unelte din linia de comandă pentru a crea, să construi și depana aplicații Android.

O versiune pentru examinare a Android Software Development Kit (SDK) a fost lansată la data de 12 noiembrie 2007.

La 18 august 2008, a fost lansat Android SDK 0.9 beta. Această versiune oferă un API actualizată și extinsă, instrumente de dezvoltare îmbunătățite și un design actualizat pentru ecranul de bază. Instrucțiuni detaliate pentru actualizare sunt disponibile pentru cei care lucrează deja cu o versiune anterioară. La 23 septembrie 2008 a fost lansat SDK-ul Android 1.0 (Release 1). Conform documentației de lansare, includea "în principal remedii pentru probleme, deși au fost adăugate unele capabilități mai puțin semnificative". Includea, de asemenea, câteva modificări ale API-ului față de versiunea 0.9.

4.5 Aplicația client

În ziua de astăzi, fiecare dintre noi deține un smartphone pe care îl folosește pentru din ce în ce mai multe activități precum aflarea știrilor din toată lumea, corespondența prin email, folosirea diferitelor aplicații ale rețelelor de socializare, citirea cărților, etc.

Aplicația de administrare a activității didactice a studenților dintr-o universitate este disponibilă ca aplicație client pentru ca studentul să își poată verifica notele și situația scoalara oricând, să poată vedea planificarea examenelor și să citească materialele de studiu aferente materiilor sale. Aplicația este utilă datorită accesibilității sale, care oferă foarte multe avantaje, cum ar fi, informare exactă la orice moment de timp și de oriunde asupra situației școlare, dar și câștigarea de timp prin disponibilitatea materialelor de studiu ce pot fi studiate chiar și în drumul spre facultate, în mijloacele de transport în comun, etc.

Aplicația se regăsește în meniul telefonului, împreună cu celelalte aplicații:

La intrare în aplicație, apare pagina de login :

După logarea în aplicație, este dispusă pagina disponibilă pentru student cu meniurile aferente: grades- pentru situația școlară, examination dates- pentru programarea examenelor și study materials- unde se găsesc materialele de studiu uploadate de către profesori pentru fiecare materie.

Alte exemple de ecrane din aplicație, precum vizualizarea examenelor și a materialelor de studiu, precum și prezentarea unui material de studiu se pot vedea în capturile următoare:

Capitolul 5. Aplicația:

Aplicația este realizată pentru o universitate în scopul gestionării activității didactice. Este accesibilă atât studenților, cât și profesorilor pentru a îmbunătăți interacțiunea și a facilita accesul la situația școlară, materiale de studiu, etc. Accesul în aplicație se face pe baza logării, și în funcție de tipul utilizatorului: student/ profesor/ admin, fiecare dintre aceștia va avea anumite permisiuni.

În continuare, se prezintă meniul pentru fiecare utilizator și funcționalitățile aplicației.

Meniul care este accesibil studentului este format din trei submeniuri, precum:

-Grades- studentul își poate vedea notele; acestea sunt afișate în tabele, câte un tabel pentru fiecare an pe care l-a promovat și unul pentru anul curent;

-Examination Dates- sunt prezentate examenele sub forma unei listă: numele materiei, anul corespunzător în care se studiază și data la care se va susține examenul;

-Study Materials- în această secțiune sunt disponibile materiale de studiu, uploadate de fiecare profesor; sunt listate într-un tabel astfel: numele materiei, anul corespunzător și link-ul de unde se poate downloada.

Câteva capturi de ecrane sunt prezentate în cele ce urmează:

Studentul își poate vizualiza datele personale, le poate modifica în cazul unei greșeli, precum și parola o poate schimba atunci când dorește.

Pentru profesori, meniul este format din:

-Grade Student- profesorul poate alege în funcție de mai multe criterii să vizualizeze studenții; îi poate căuta după nume, prenume sau anul de studiu în care sunt înscriși, acestea fiind cele mai relevanțe.

-Exam Setup- are două submeniuri:

List- profesorul are acces la lista cu examene care s-au stabilit deja;

Setup- profesorul selectează o dată pentru a stabilit un examen; profesorul poate verifica dacă dată este disponibilă, întrucât aplicația nu permite stabilirea a două examene în aceeași zi.

-Materials- are două submeniuri:

List- profesorul poate vizualiza materialele ce sunt deja uploadate, poate șterge materialele care nu mai sunt de actualitate, etc.

Upload Materials- profesorul alege ce fișier dorește a fi uploadat, și anul pentru care este uploadat materialul este plasat automat, în conformitate cu materia respectivă.

Adminul are cel mai complex meniu, întrucât el se ocupă de administrare sistemului și în unele situații, poate prelua din activitățile profesorului.

Meniul adminului este format din:

-Manage Teachers- meniu pentru administrarea datelor despre profesori, este format din două submeniuri

List- adminul poate sorta lista de profesori, pentru a-i vizualiza doar pe anumiți profesori, în funcție de criterii precum: nume, prenume, anul în care predă, etc. Adminul poate căuta prin toată lista de profesori, dar și numai printre cei activi sau printre cei inactivi. Adminul are posibilitatea de a dezactiva/ activa conturi pentru profesori și studenți.

Teacher Setup- adminul poate căuta în funcție de username dacă un anumit profesor are cont. În cazul în care un profesor nu are cont, adminul este cel care îl crează.

Aplicația va trimite un email pe adresa salvată în datele personale ale profesorului, email conținând datele necesare logării: username-ul și parola.

-Manage Students- meniul pentru administrarea datelor despre studenți

List- adminul poate efectua căutări în lista de studenți, în funcție de anumite criterii, precum nume, prenume, anul în care este înscris, etc.

Student Setup- adminul verifică contul unui student, poate efectua modificări în cazul în care datele sunt eronate, poate activa/ dezactiva contul studentului respectiv, etc.

Grade Student- adminul poate vizualiza notele studenților, sortându-I în funcție de mai multe criterii, cum ar fi: nume, prenume, anul în care este înmatriculat, etc.

-Examination- meniul conținând situația examenelor

List- adminul poate vizualiza lista cu examenele deja stabilite

Setup- adminul poate programa un examen în numele unui professor

-Upload Material- adminul poate uploada materiale de studiu în numele unui profesor

-Schedule Grade- aplicația conține un thread care, la o dată anume stabilită de către admin, verifică situația punctelor credit pentru fiecare student, în scopul promovării în anul de studii următor.

Concluzii:

În concluzie, putem spune că aplicația dezvoltată pentru universitate în scopul gestionării activității didactice are anumite avantaje și funcționalități care o fac utilă și ușor de folosit în ziua de astăzi. Dintre acestea amintim:

Accesibilitate ușoară la situația școlară, atât pentru studenți cât și pentru profesori, ne mai fiind nevoie întotdeauna de documentele în format fizic;

Aplicația poate fi accesată și de pe telefonul mobil, fapt ceea ce o face foarte utilă și practică;

Aplicația poate fi ușor modificată și folosită în alte instituții, cum ar fi o firmă, un cabinet medical, etc.

Aplicația oferă actualizare în timp real pentru studenți, prin funcția care trimite email atunci când se produce vreo schimbare.

Consider aplicația a fi una practică pentru sistemul pe care este aplicată, ușor de folosit și în actualitate cu tehnologia din ziua de astăzi.

Bibliografia:

Linux unix:

http://en.wikipedia.org/wiki/Linux

http://en.wikipedia.org/wiki/Unix

( le pui cum o fi pe acolo) in capitolul lu linux

Mysql

MySQL Certification Study Guide( asta o pui la categ de instructiuni-dupa ce e scris tot)

MySQL Reference Manual: http://dev.mysql.com/doc/refman/5.1/en/

(asta o pui dupa pachetul mysql)

http://www.preferatele.com/docs/informatica/3/mysql–introducere15.php

(asta o pui dupa caracteristici)

Struts 2

http://www.tutorialspoint.com/struts_2/basic_mvc_architecture.htm ( o pui dupa arhitectura)

http://www.tutorialspoint.com/struts_2/struts_overview.htm (dupa caracteristici)

http://www.tutorialspoint.com/struts_2/struts_architecture.htm (dupa modelul ciclului de viata)

Android

http://ro.wikipedia.org/wiki/Android_(sistem_de_operare) ( o pui dupa tot ce e scris pana la aplicatie)

Bibliografia:

Linux unix:

http://en.wikipedia.org/wiki/Linux

http://en.wikipedia.org/wiki/Unix

( le pui cum o fi pe acolo) in capitolul lu linux

Mysql

MySQL Certification Study Guide( asta o pui la categ de instructiuni-dupa ce e scris tot)

MySQL Reference Manual: http://dev.mysql.com/doc/refman/5.1/en/

(asta o pui dupa pachetul mysql)

http://www.preferatele.com/docs/informatica/3/mysql–introducere15.php

(asta o pui dupa caracteristici)

Struts 2

http://www.tutorialspoint.com/struts_2/basic_mvc_architecture.htm ( o pui dupa arhitectura)

http://www.tutorialspoint.com/struts_2/struts_overview.htm (dupa caracteristici)

http://www.tutorialspoint.com/struts_2/struts_architecture.htm (dupa modelul ciclului de viata)

Android

http://ro.wikipedia.org/wiki/Android_(sistem_de_operare) ( o pui dupa tot ce e scris pana la aplicatie)

Similar Posts