2 1.Introducere 2e/baterea pri"ind de/"oltarea aplicatiilor pe platfora !a"a sau pe platfora .#et este una ce se desfasoara fara oprire intre sustinatorii celor doua platfore3 fiecare dintre acestia "orbind despre declinul celeilalte. !a"a este predecesorul tuturor celorlalte liba4e de pro1raare este open source iar aplicatiile reali/ate in 4a"a sunt independente de platfora pe care rulea/a3 aspecte ce au facut ca !a"a sa fie preferat de aatori si profesionisti deopotri"a.In acelasi tip platfora .#et perite reali/area3 foarte usoar3 a schibuli de date intre di"erse aplicatii soft(are printr-un set coun de asa nuitele 5e6chan1e forats73 !a"a si .#et sunt platforele doinante in ceea ce pri"este de/"oltarea de aplicatii soft(are si totodata cele ai raspandite3 iar suprapunerea dintre cele doua este considerabila.In 2009 $68 din intreprinderi folosesc abele platfore crescand de la 2*8 in 200).&doptia platforei .#et este ai are decat cea a !a"a la copaniile cu ai putin de 9000 de an1a4ati3 in tip ce utili/area !a"a este ai are la copaniile care au ai ult de 20 000 de an1a4ati.Pe se1entul 9000-20 000 de an1a4ati !a"a este in od traditional cea ai utili/ata insa .#et pare ca "ine din ura In 2010 )18 din aceste copanii foarte ari folosesc !a"a in tip ce 6*8 folosesc .#et.
3 .i11.1 &doptia platforelor soft(are in perioada 200)-2009 sursa:.orrester ;esearch3 Inc.
.i11.2 Penetrarea se1entelor de piata 2.Platformele Java si .Net Platfora !a"a consta intr-un liba4 denuit !a"a3 un set de asini "irtuale cu ar fi !<M3 =<M sau C<M pentru a e6ecuta b-te code-urile interediare pe PC sau sistee incorporate3 la care se adau1a un set de &PI-uri si biblioteci.<i/iunea !a"a propunea un sin1ur liba4 pentru toate sisteele de operare si de aceea foloseste protocolul ;eote Methode In"ocation>;MI?.@un3 de/"oltatorul !a"a3 sustinea ca platfora sa este sin1ura de tipul 5Arite once run an-(here73 dar dupa introducerea !2,, si a !2M, a adis ca aceasta tipolo1ie nu functionea/a. @pre deosebire de platfora !a"a3 .#et consta intr-un set de liba4e de pro1raare printre care se afla CBB3 <0.#,C><0 ).6? si CD.%a acestea se adau1a un ediu runtie siilar cu !a"a <irtual Machine si un set de &PI-uri ce inclina puternic in fa"oarea arhiteturii Aindo(s.;untie-ul este 1a/duit intr-un container ce poate fi un bro(ser3 un ser"er (eb3 sau un Eperatin1 @-ste @hell si in "iitor poate chair de un ser"er @F%. In ultiii ani se poate obser"a ca platforele !a"a si .#et continua sa de"ina con"er1ente si diferenta dintre ele in ceea ce pri"este caracteristicile3 bibliotecile si liba4ele continua sa se icsore/e.Pe lan1a aceste aspecte abele platfore au fost3 pana intr-un anuit punct3 portate de pe "ersiunea oficiala si rulea/a acu pe sistee ce nu au fost 1andite $ de desi1ne-ul ori1inal.&plicatii reali/ate in &@P.#et pot rula prin interediul Mono si a sa asina "irtuala Coon %an1ua1e ;untie>C%;?3 pe aproape tot atatea platfore ca si aplicatiile !a"a.
.i1.2.1 &rhitectura C%; In acelasi tip aplicatiile !a"a pot rula pe platfora .#et cu a4utorul I=<M.#,C un soft(are 1ratuit ce include uratoarele coponente: E ipleentare a !a"a <irtual Machine in .#etG E ipleentare a bibliotecilor de clase !a"a in .#etG Hn instruent ce traduce b-tecode-ul !a"a>fisiere 4ar? in .#et I%>fisiere 2%%s sau ,I,?G Instruente pentru interoperabilitate intre !a"a si .#et. 9 . .i1 2.2 &rhitectura !<M Cu toate acestea3 in pofida tuturor eleentelor de con"er1enta dintre cele doua platfore3 e6ista in continuare a"anta4e si de/a"anta4e in ceea ce pri"este ale1erea uneia sau a alteia pentru aplicatia enterprise3 des'top3 (eb sau obile. 2.1 Licenta Principala ipleentare a platforei !a"a este disponibila ca o ipleentare de tipul open source si poarta denuirea de Epen!2=.2esi 5!a"a7 este o arca inre1istrata Eracle3 dupa achi/itionarea @un Micros-stes3 e6ista nueroase proiecte de sof(are 1ratuit copatibile cu Eracle !a"a3 cele ai notabile fiind G#H Classpath si GC! oferind o biblioteca de clase si un copilator partial copatibile cu actuala "ersiune de Eracle !a"a. In ceea ce pri"este .#et3 C%I e6ecutable en"ironent si cate"a biblioteci de clas aferente au fost standardi/ate si pot fi ipleentate 1ratuit fara licenta.Ca si in ca/ul !a"a au fost inpleentate cate"a solutii soft(are 1ratuite si copatibile printre care Mono Pro4ect si 2otG#H. 2.2 Aplicatii desktop 2esi bibliotecile &AC>&bstract Aindo( Cool'it? si @(in1 nu duc lipsa de caracteristici3 !a"a s-a chinut sa se stabili/e/e pe piata aplicatiilor des'top.Hnele opinii spun ca @un Micros-stes nu a proo"at corespun/ator !a"a de/"oltatorilor si utili/atorilor ca o solutie "iabila pentru aplicatiile des'top.%ansarea "ersiunii 6.0 in 2ecebrie 2006 a reinnoit 6 atentia pentru aplicatiile des'top introducand un nou set de instruente pentru inte1rare pe des'top. .#et este ai populara in /ona aplicatiilor des'top oferind Aindo(s .ors3 Aindo(s Presentation .oundation si @il"erli1ht.&plicatiile .#et sunt de pri ran1 in ediul Aindo(s oferind o sen/atie de apartenenta coparati" cu !a"a @(in1. 2.3 Aplicatii web &cest tip de aplicatii repre/inta /ona cu cea ai are concurenta intre cele doua platfore. !a"a prin interediul !a"a ,, si .#et prin &@P.#et concurea/a in a oferi continut dinaic (eb si aplicatii.&bele platfore sunt utili/ate si sunt bine repre/entate in piata prin seturi ari de instruente si produse adiacente.Cu toate acestea solutiile soft(are la scara lar1a de tipul 5hi1h-end7 tind sa opte/e pentru platfora !a"a datorita unei stabilitati crescute3 caracteristici cu ar fi !M@3 !C&3 dar si abilitatea de a rula pe orice siste de operare sau platfora hard(are. 2.4 Aplicatii mobile In acest doeniu este cunoscut faptul ca platfora &ndroid pentru aplicatii obile apartinand Goo1le se ba/ea/a pe platfora !a"a3 Goo1le creind o noua asina "irtuala personali/ata denuita 2al"i' pentru a optii/a e6ecutia codului !a"a pe dispo/it"ele obile. Eracle pune la dispo/itie !a"a M, o ipleentare de referinta pentru distribuitorii de telefoane obile.!a"a M, este alcatuita din di"erse profile ce sunt subseturi ale ediului de de/"oltare !a"a des'top la care se adau1a biblioteci aditionale ce "i/ea/a dispo/iti"ele obile si o de/"oltare de aplicatii de tipul set-top-bo6.Chiar daca ulte telefoane inclu o asina "irtuala !a"a aceasta nu este ereu folosita de utili/atori.Initial aplicatiile !a"a pe cele ai ulte telefoane constau in niuri3 ici 4ocuri sa soft(are pentru d(nload-ul de rin1tone-uri3 la acestea se adau1a aplicatii preincarcate pe telefon cu ar fi dictionare3 ora pe 1lob sau calculatoare. Microsoft ofera in acest doeniu .#et Copact .rae(or' ce rulea/a pe Aindo(s C, si dispo/iti"e obile dar si pe I0EI 3603 dar si .#et Micro .rae(or' folosita pentru de/"oltarea cu resurse liitate. ) 3.aparea relational!obiectuala Maparea relational-obiectuala sau obiectual relationala sau EJ;M este o tehnica de pro1raare care lea1a ba/ele de date de liba4ele de pro1raare orientate-obiect3 creand o ba/a "irtuala de obiecte. ,6ista pachete coerciale Ki 1ratuite disponibile pe piata care efectuea/a aparea intre obiect Ki relational3 desi unii pro1raatori prefera sa-si reali/e/e si utili/e/e propriul cod pentru apare. 3.1"ibernate +ibernate este o biblioteca de apare relational-obiectuala3 pentru liba4ul !a"a oferind un frae(or' pentru aparea unui odel orientat obiect peste o ba/a de date relationala.+ibernate re/ol"a problea 5ob4ect-relational ipedance isatch73 problea ce apare atunci cand un siste de 1estiune al ba/elor de date relationale este folosit de un pro1ra scris intr-un liba4 de pro1raare orientat obiect. &ceasta tehnolo1ie este 1ratuita si open source3 distribuita sub licenta G#H %esser General Public %icense.& fost lansat in 2001 ca alternati"a la !20,-st-le entit- beans si in pre/ent se afla la "ersiunea $.1.93 incepandu-se de/"olatrea pentru "ersiunea 9.
.i1.3.1 &rhitectura +ibernate Principala caracteristica a +ibernate este aparea intre clasele !a"a si tabelele ba/elor de date precu si intre tipurile de date !a"a si @F%. +ibernate pune la dispo/itie posibilitatea redactarii de Luer--uri si data-retrie"al. @al"area datelor >repre/entate prin clase? intr-un spatiu de storare se nueste persistenta. * Maparea claselor !a"a la tabelele ba/ei de date este reali/ata prin confi1urarea unui fisier IM% sau folosind !a"a &nnotations.Cand se foloseste un fisier IM%3 +ibernate poate 1enera cod sursa pentru clasele persistente.&cest lucru nu este necesar cand sunt folosite adnotari.+ibernate poate folosi fisierul IM% pentru a entine schea ba/ei de date.@unt asi1urate facilitati de reali/are a asocierilor intre clase de tipul unu-la- ulti sau ulti-la- ulti3 dar si asocieri refle6i"e cand un obiect are o relatie de tipul unu-la-ulti cu o instanta de acelasi tip. +ibernate asi1ura persistenta transparenta pentru Plain Eld !a"a Eb4ects3 denuire folosita pentru a arata ca un obiect nu este un obiect special ci un obiect !a"a noral.@in1ura cerinta pentru clasa persistenta este un constructor fara ar1uente dar care nu este necesar sa fie public.Coportaent corespun/ator in anuite aplicatii necesita de aseenea atentie sporita la etodele equals() si hashCode(). Colectiile de date sunt de obicei stocate in obiecte cu ar fi @et si %ist.Ebiectele siilare pot fi confi1urate astfel incat sa transita operatiile de la unul catre celalalt.2e e6eplu un obiect parinte denuit album poate fi confi1urat sa transita operatiile de sal"are siJsau ster1ere obiectelor copil melodie, operatie ce reduce tipul de de/"oltare.E functie de tipul dirty checking asi1ura e"itarea actiunilor de scriere in ba/a de date efectuandupdate-uri sLl doar asupra capurilor odificate sau obiectelor persistente.+ibernate asi1ura un liba4 inspirat din @F% denuit +ibernate Fuer- %an1ua1e. +ibernate poate fi folosit atat in aplicatiile !a"a standalone dar si in aplicatii !a"a ,, folosind ser"let-uri si coponente de ser"icii !0I.2e aseenea poate fi introdus ca o coponenta in alte liba4e de pro1raare3 de e6eplu &dobe inte1rea/a +ibernate in "ersiunea 9 a Cold.usion ce rulea/a pe ser"ere de aplicatii !2,,. 3.2 #ntit$ %ramework ,ntit- .rae(or' este un frae(or' open source de apare relational obiectuala pentru platfora .#et.Per ansablu este un set de tehnolo1ii in &2E.#et ce sustine de/"oltarea de aplicatii soft(are orientate pe date.&rhitectii si de/"oltatorii de aplicatii orientate pe date s-au straduit sa atin1a doua obiecti"e foarte diferite: Crebuie sa odele/e entitatile3relatiile si lo1ica de bussiness a probleei pe care o re/ol"aG Crebuie sa lucre/e cu otorul de date folosit pentru a stoca si re1asi dateleG &cest frae(or' le perite sa lucre/e cu date sub fora unor obiecte si proprietati specifice doeniului3 cu ar fi clientul3 sau adresa clientului fara sa fie preocupati de tabelele 9 care stau la ba/a ba/ei de data sau coloanele unde "or fi stocate acestste date.&stfel de/"oltatorii pot lucra la un ni"el superior de abstracti/are a datelor si pot crea si intretine aplicatii orientate pe date cu ai putine linii de cod decat aplicatiile traditionale. Pria "ersiune3 ,."1 a fost inclusa in .#et .rae(or' 3.9 @er"ice Pac' 1 si <isual @tudio 200* @er"ice Pac' 1 si lansata in &u1ust 200*.Hltia "ersiune este 9.0.0 si are ca tinta .#et .rae(or' $.9. &rhitectura ,ntit- .rae(or' contine uratoarele eleente: Pro"ider specific de surse de dateG Map pro"ider un pro"ider specific ba/ei de date ce traduce coand tree-ul ,ntit-@F% intr-o intero1are nati"a a ba/ei de dateG <ie( appin1 din schea relationala crea/a "ie(-uri ale datelor corespondente odelului conceptualG Fuer- and update pipeline procesea/a intero1ari3 filtrea/a si face update cererilorG Metadata ser"ices 1estionea/a etadatele le1ate de entitati3 relatii si apariG CransactionsG Conceptual la-er &PI runtie-ul ce e6pune odelul de pro1raareG ,bedded database include o ba/a de date incorporata pentru intero1area datelor relationaleG 2esin1 tools siplifica tas'-ul de apare a scheei conceptuale la schea relationalaG Pro1rain1 la-er e6pune ,2M-ul>,ntit- 2ata Model? ca unitati ce pot fi utili/ate de liba4ul de pro1raareG Eb4ect ser"ices cod 1enerat autoat pentru clasele C%; ce detin aceleasi proprietati ca o entitate3 dand astfel posibilitatea instantierii entitatilor ce obiecte .#etG Aeb ser"ices e6pun entitatile ca ser"icii (ebG 10
.i1. 3.2 &rhitectura ,ntit- .rae(or' ,ntit- 2ata Model>,2M? specifica odelul conceptual al datelor prin interediul Entity-Relationship model3 ce se ocupa in principal de entitati si asocierile din care acestea fac parte.In <isual @tudio ,2M Ai/ard initial 1enerea/a o apare 1:1 a scheei ba/ei de date la schea conceptuala.In schea relationala eleentele sunt copuse din tabele3 in care cheile priare si cheile e6terne tin tabelele corelate in stransa le1atura.In contrast Entity ypes defineste schea conceptuala a datelor.Cipurile de entitati sunt o a1re1are a unor tipuri de capuri ultiple3 fiecare cap apand o coloana din ba/a de date3 capuri ce pot contine inforatii din ai ulte tabele fi/ice.Cipurile de entitati pot fi corelate unele cu altele3 independent de relatiile din schea fi/ica.,ntitatile corelate sunt e6puse siilar prin interediul unui cap al carui nue denota relatia in care acestea se afla.@cea lo1ica si aparea ei pe schea fi/ica este repre/entata ca un ,2M si specificata ca un fisier IM%. ,ntitatile sunt instante al tipurilor de entitati3 repre/entand instante indi"iduale ale obiectelor >de e6eplu client sau coanda? la care se refera inforatia.Cipul de entitate defineste clasa de care apartine o entitate dar si proprietatile pe care o entitate le are.Proprietatile descriu anuite aspecte ale entitatii dandu-i acesteia un nue si un tip.Ericare doua tipuri entitati pot a"ea o le1atura fie printr-o relatie de tipul !ssociation fie printr-una de tipul Contaninment, tipul de relatie este specificat printr-un Relationship ype ce este caracteri/at de nuarul de tipuri de entitate pe care le lea1a dar si de ultiplicitatea 11 acestora>repre/entand nuarul de entitati ce pot fi le1ate?.0a/andu-ne pe ultiplicitate relatiile pot fi de unu-la-unu3 unu-la-ulti sau ulti-la-ulti.Hn tip de relatie poate a"ea atasata o !ctiune sau o "peratie#Hnei relatii i se poate specifica sa efectue/e o actiune atunci cand o operatie este e6ecutata asupra unei entitati cu care are le1atura. &2E.#et ,ntit- .rae(or' foloseste o "arianta de liba4 structurat de intero1are denuit ,ntit- @F% ce a fost creat pentru a scrie intero1ari si update-uri asupra entitatilor si relatiilor la ni"el conceptual. 3.3 N"ibernate #hibernate este o solutie de apare relational-obiectuala pentru platfora .#et ce asi1ura un frae(or' pentru aparea unui odel orientat obiect pe o ba/a de date relationala.,ste un soft(are 1ratuit distribuit de G#H %esser General Public %icense si repre/inta o portare pe platfora .#et a solutiei !a"a +ibernate.In pre/ent aceasta se afla la "ersiunea 3.31 lansata in Iunie 2012. 4.&onclu'ii Platforele !a"a si .#et isi disputa de ani supreatia in doeniul de/"oltarii aplicatiilor soft(are fie ca este "orba de aplicatii des'top3 (eb sau obile abele ofera solutii "iabile de/"oltatorilor aatori sau profesionisti. Cehnolo1iile de apare relational obiectuala e6ista de ulti ani3 +ibernate fiind printre priele poate chiar pria biblioteca E;M3 reali/ata pentru platfora !a"a.Insa asta/i e6ista atat #+ibernate3 repre/entand o portare a +ibernate pe platfora .#et3 dar si ,ntit- .rae(or'. @-a do"edit in nenuarate randuri ca ata +ibernate cat si ,ntit- .rae(or' detin capacitatile necesare ipleentarii tehnicii E;M atat in abordarea $odel %irst cat si in abordarea &atabase %irst#,ntit- .rae(or' crea/a clasele definite in odelul de date autoat3 +ibernate nu.Insa pe de alta parte din punct de "edere al de/"oltatorului crearea anuala a entitatilor si a relatiilor dintre ele a4uta ai ult la intele1erea detaliilor unui pro1ra.Codul sursa 1enerat dinaic de catre ,. poate a"ea diensiuni ari iar anuite atribute si etode pot sa nu fie folositoare3 in tip ce scriere de ana conduce la obtinerea unui cod sursa ce contine doar ce este necesar. 12 @e poate obser"a ca pentru fiecare dintre cele doua solutii e6ista a"anta4e si de/a"anta4e3 insa ceea ce este ai iportant este faptul ca e6ista solutii ultiple capabile sa ofere toate facilitatile necesare de/"oltarii aplicatiilor.&stfel de/"oltatorilor nu le raane decat sa se decida care este "arianta ce li se potri"este cel ai bine. (iblio)rafie M1N - http:JJen.(i'ipedia.or1J(i'iJCoparisonOofOtheO!a"aOandO.#,COplatfors M2N - http:JJen.(i'ipedia.or1J(i'iJ,ntit-O.rae(or' M3N - http:JJen.(i'ipedia.or1J(i'iJ+ibernateO>!a"a? M$N - http:JJ(eblo1s.asp.netJricardoperesJarchi"eJ2012J06J0)Jdifferences-bet(een-nhibernate- and-entit--frae(or'.asp6 M9N - ;e"ista Inforatica ,conoica3 nr. 3>2)?J2003 M6N - http:JJblo1s.forrester.coJapplicationOde"elopentJ2010J02Jforrester-datab-te- application-platfor-adoption-trends.htl 13