4.5.2. Java
Java este un limbaj de programare de nivel înalt, orientat-obiect, care a fost proiectat iniţial pentru realizarea de aplicaţii pentru Internet. Acesta este utilizat în prezent cu succes şi pentru programarea aplicaţiilor destinate Intranet-urilor. În acest sens, multe firme recurg la limbajul Java în procesul de informatizare întrucât oferă un foarte bun suport pentru tehnologiile de vârf şi, nu în ultimul rând, pentru faptul că este gratuit şi în mod continuu îmbogăţit şi îmbunătăţit.
„Write once, run anywhere” (WORA) sau, uneori, „Write once, run everywhere” (WORE), este sloganul creat de Sun Microsystems pentru a ilustra beneficiile aduse de limbajul Java prin rularea pe orice tip de platformă. La modul ideal, aceasta înseamnă că un program Java poate fi dezvoltat pe orice platformă, compilat în formatul standard bytecode şi apoi rulat de pe orice sistem care are în prealabil instalată maşina virtuală Java (Java Virtual Machine - JVM).
Legătura care s-a creat între Internet şi Java a condus la situaţia în care majoritatea companiilor care dezvoltă aplicaţii pentru Internet să considere Java ca limbaj de implementare, în acest moment Java nefiind un limbaj de programare obişnuit, ci desemnând un ansamblu de tehnologii care permit trecerea de la o abordare a aplicaţiilor desk-centric, la network-centric, realizându-se platforme de calcul deschise şi universal accesibile din Internet.
Prin urmare, trecerea conceptului Java din sfera limbajului de programare în cea a tehnologiilor şi a platformelor de tehnologii nu devine improprie. Tehnologia Java stă la baza celor mai performante soluţii de dezvoltare a aplicaţiilor de întreprindere şi controlează cu adevărat funcţionalitatea unei reţele prin faptul că este în acelaşi timp un limbaj de programare precum şi o selecţie de platforme specializate. Prin aceste caracteristici, Java standardizează dezvoltarea şi implementarea unor aplicaţii securizate, portabile, stabile şi scalabile.
Caracteristicile limbajului Java
Caracteristicile limbajului Java sunt numeroase, drept pentru care vor fi prezentate cele mai semnificative, pornind de la articolul [STAN01]:
-
uşor de utilizat – atât pentru avansaţi cât si pentru începători;
-
simplu – fiind îndepărtate aspectele derutante din C++, cum ar fi supraîncărcarea operatorilor şi moştenirea multiplă; a fost introdus un colector automat de deşeuri care rezolvă problema dealocării memoriei în mod uniform, fără intervenţia programatorului;
-
independent de platformă – compilatorul Java furnizează o secvenţă de instrucţiuni ale unei maşini virtuale Java, iar execuţia aplicaţiilor este interpretată;
-
viteza scăzută de execuţie – caracteristică a limbajelor interpretate faţă de cele compilate. Pentru creşterea acestei viteze se poate cere mediului de execuţie Java să genereze automat, plecând de la codul maşinii virtuale, un executabil nativ platformei respective. De obicei, în Java se compilează doar părţile mari consumatoare de timp, celelalte fiind interpretate;
-
interpretorul Java – este gândit pentru a lucra pe maşini mici, iar împreună cu bibliotecile standard să nu depăşească 300KB;
-
orientat-obiect – deoarece se pot crea clase de obiecte şi instanţe ale acestora, se pot încapsula informaţii, se pot moşteni variabile şi metode de la o clasă la alta. Suplineşte moştenirea multiplă (care lipseşte) cu interfaţa, care permite definirea unui anumit comportament pentru a crea o clasă de obiecte, altul decât cel standard. În Java orice element este obiect, cu excepţia datelor primare şi lipsesc funcţiile şi variabilele globale;
-
distribuit – are implementate biblioteci pentru lucrul în reţeaua TCP/IP, suportă URL şi încărcarea resurselor din reţea; aplicaţiile Java pot accesa foarte uşor reţeaua, prin apelurile către un set standard de clase;
-
robust – legarea funcţiilor se face în timpul execuţiei, iar informaţiile de compilare sunt disponibile până în momentul rulării aplicaţiei. Astfel sistemul poate determina în orice moment neconcordanţa dintre tipul referit la compilare şi cel referit în timpul execuţiei, evitându-se intruziunile în sistem prin intermediul referinţelor falsificate. De asemenea, pointerii lipsesc (împreună cu aritmetica lor), eliminând încă o sursă principală de erori, iar eliberarea memoriei ocupate de obiecte şi tablouri se face automat, evitându-se încercările de eliberare multiplă a zonei de memorie;
-
securitate ridicată – prin verificarea codului la fiecare încărcare, prin mecanisme de Cyclic Redundancy Check (CRC) şi prin verificarea operaţiilor disponibile pentru fiecare set de obiecte, robusteţe, încorporarea protecţiei obiectelor la citire/scriere. Verificarea se face în timpul execuţiei, mediul de execuţie Java putând fi configurat pentru a proteja reţeaua locală, fişierele şi celelalte resurse ale calculatorului pe care rulează aplicaţia Java;
-
multithreading – suport nativ pentru aplicaţii care lucrează cu mai multe fire de execuţie, inclusiv primitive de sincronizare între firele de execuţie, independent de platformă;
-
dinamic – bibliotecile de clase în Java pot fi reutilizate cu mare uşurinţă, variabilele sunt legate doar în faza de execuţie, rezolvând problema fragilităţii superclasei din C++, regăsirea variabilelor se face prin nume şi nu prin deplasament fix; se elimină necesitatea actualizării aplicaţiilor, datorată apariţiei unei noi versiuni de bibliotecă.
Java furnizează un cadru de lucru curat, format din mai multe straturi diferite care creează mediul de execuţie Java. Aceste straturi sunt: limbajul de programare, biblioteca standard API, compilatorul Java, codul specific (bytecode), mecanismul pentru încărcarea dinamică şi verificarea bibliotecilor, automatul de colectare a deşeurilor (garbage collector), maşina virtuală universală pentru executarea bytecode-ului - Java Virtual Machine (JVM).
4.5.2.1. Platforme Java
Limbajul Java poate fi considerat unul din cele mai populare şi mai versatile limbaje de programare, mai ales dacă ne gândim la rolul lui în cadrul spaţiului World Wide Web. Rezultat al distilării celor mai bune practici în proiectarea de limbaje de programare orientate-obiect, Java a adus cu sine şi o libertate de necontestat în ceea ce priveşte alegerea elementelor de design, implementare şi exploatare a aplicaţiilor concepute în acest limbaj.
Platformele Java se pot clasifica în: Java 2 Micro Edition (J2ME), Java 2 Standard Edition (J2SE) şi Java 2 Enterprise Edition (J2EE). Acestea se utilizează după cum urmează (figura 4.19):
J2ME - mediul pentru dezvoltarea aplicaţiilor Java pentru micro-dipozitive;
J2SE - mediul standard pentru dezvoltarea aplicaţiilor Java. Sunt disponibile pachetele de bază ale limbajului Java, necesare realizării aplicaţiilor desktop;
J2EE - mediul Java pentru dezvoltarea aplicaţiilor de întreprindere. Se oferă un foarte bun suport pentru utilizarea serverelor de aplicaţii.
Figura 4.19. Platforme Java
Pentru toate tipurile de aplicaţii se remarcă avantajul tehnologiei Java: codul se scrie o singură dată dar rulează pe orice sistem - „Write once, run anywhere”.
Java 2 Micro Edition (J2ME) este un mediu Java puternic optimizat ce ţinteşte spre o largă varietate de produse de larg consum, incluzând pagere, telefoane celulare, agende electronice de buzunar şi sisteme de navigaţie pentru automobile. O aplicaţie scrisă în tehnologia Java 2 Micro Edition poate fi folosită pe orice echipament HandHeld (PDA) sau pe orice telefon mobil cu suport Java. Totodată, ediţia J2ME defineşte şi o implementare complet nouă a maşinii virtuale Java optimizată pentru dispozitivele mobile (Kilobyte Virtual Machine - KVM).
Java 2 Enterprise Edition (J2EE) este o platformă Java creată de Sun Microsystems, utilizată pentru a dezvolta, utiliza şi administra aplicaţiile multi-nivel (multi-tier). Aplicaţiile J2EE sunt aplicaţii dezvoltate pe 3 straturi: aplicaţie-client, server de aplicaţie şi server de bază de date. Noutatea este apariţia serverului de aplicaţie pe care sunt EJB-urile, acestea fiind programe scrise în Java care reprezintă aproximativ 60% din aplicaţie.
Fiind dezvoltată în Java, J2EE este o platformă independentă de sistemul de operare, având cerinţe hardware minime. Un avantaj important al J2EE se referă la faptul că dezvoltarea aplicaţiilor este mult simplificată, iar necesitatea programării efective prin scrierea de cod este redusă, întrucât sunt disponibile module de componente standardizate, reutilizabile.
Aplicaţiile Internet J2EE se pot baza atât pe servere open source (Apache Tomcat, Jetty, JBoss) cât şi pe servere performante cu renume (IBM WebSphere Application Server, Bea WebLogic Server, Oracle Application Server). Această caracteristică aduce avantajul unui buget flexibil alocat aplicaţiei respective.
În cazul sistemelor desktop, Java 2 Standard Edition (J2SE), aceeaşi aplicaţie poate rula pe orice sistem de operare, atât Windows/Machintosh, cât şi variante Unix/Linux.
Dostları ilə paylaş: |