today software magazine n8/2013

Upload: serghei-cebotari

Post on 04-Apr-2018

226 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/29/2019 Today Software Magazine N8/2013

    1/44

    T O D A Y

    S O F T W A R E

    No. 8 Februarie 2013 www.todaysoftmag.ro www.todaysoftmag.com

    M A G A Z I N E

  • 7/29/2019 Today Software Magazine N8/2013

    2/44

  • 7/29/2019 Today Software Magazine N8/2013

    3/44

    6

    Educatie.Antreprenoriat.

    StartupWeekend

    Echipa Startup Weekend

    7

    Provocrile unui lider- partea I

    Martin Mackay

    9

    Istoria IT-uluiClujean (III)

    Marius Mornea

    11

    Particulariti aleproiectelor informatice

    Dan Suciu

    14

    Omniprezenta aplicabilittiin ecosistemul personal

    Bogdan Nastasa

    17

    Probleme arhitecturale nproiecte Liferay

    Alexandra Coldea

    20

    SEO local prinintermediul Google+

    Radu Popescu

    22

    Puncte de scalabilitate

    pe cloud

    Radu Vunvulea

    25

    In-Memory Database -Platforma real-time

    SAP HANA

    Horea Raiu

    Victor Ionescu

    28

    Codereview

    Mdlin Ilie

    32

    Recenzie carte: JavaPersistence with JPA

    Silviu Dumitrescu

    34

    Managementulechipei

    Andreea Prvu

    36

    Lansarea unui site web- paii de baz

    Attila-Mihaly Balazs

    38

    Startup cu bani putini (II)- Microsoft Bizspark

    Drago Andronic

    39

    Ecosistemultech-startups din Cluj

    Mircea Vdan

    40

    Managementul de personalin domeniul SAP

    Oana Oprean

    41

    Gogu Gogu si vaca lui sefu

    Simona Bonghez, Ph.D.

  • 7/29/2019 Today Software Magazine N8/2013

    4/44

    4 nr. 8/2013 | www.todaysoftmag.ro

    Salut,

    M bucur c am ajuns la numrul 8 SM. mi amintesc cum, anul trecut pe aceeaivreme pregteam primul numr cu ajutorul prietenilor i a ctorva cunoscui. Rugminteapentru ecare era s scrie un articol proesionist, n acelai mod n care cineva ar preda naa unei clase. Nu a ost un lucru simplu pentru c necesita ieirea din acea comoditatea week-end-ului i sintetizarea unor idei n aa el nct cititorul s rmn cu o lecienvat i poate cu dorina de a-l contacta pe autor pentru mai multe detalii. Nu a ostcazul :). Feedback-ul a ost minim, chiar inexistent, de multe ori rugndu-ne de prietenis ne trimit un eedback; aveam atunci mailing list-ul de vreo sut de persoane al luiMarius. Practic toate acestea ne duc pe partea de educaie, de cultura de a ace so, demodul de interaciune ntr-o comunitate, de nelegere c implicarea i eedback-ul e

    pozitiv sau negativ aduce valoare. Putem s ne mndrim cu civa autori care au scrisn multe numere din SM: Radu Popescu - seria de articole SEO, Simona Bonghez -ntmplrile lui Gogu, Radu Vunvulea - tehnologii Microso, Andreea Prvu - HR, aviBolog - Java/Agile/Ruby, Marius Mornea - startups/seria Istoria I-ului Clujean, MihaiNad - SAAS, Andrei Avdnei - seria de articole despre securitate, Attila Balazs - Java/Php/Good practices. Alturi de ei sunt muli autori aai la primul articol, iar acest lucrueste benec pentru comunitatea crora li-i se adreseaz tocmai din ideea nceperii unuidialog. Vom continua s promovm toate acestea i prin noul site cruia ncercm s-idm drumul n curnd. Noutatea va o interaciune mai bun ntre autori i cititori,posibilitatea de a-i urma, design-ul responsive adaptat pentru desktop ct i tablete sauteleoane, posibilitatea de a trimite trimite direct un articol online pentru ca n urmaunui review s poate publicat n cel mai scurt timp. Idealul este un concept de Pinterest

    ce conine articole tehnice n loc de poze iar la nalul ecrei luni cele mai bune articolevor publicate n revist. Uneature la care se lucreaz n paralel este punerea revistei normat tiprit la dispoziia celor care nu pot s vina la evenimentul de lansare sau la alteleunde SM este prezent. Acesta va realizat prin integrarea cu un sistem de ePayment iarlivrarea se va ace prin Pota Romn. n lista de noi servicii rmne publicarea revistein Apple Newstand. O alt noutate este apariia lunar a revistei.

    Numrul 8 cuprinde o serie de articole interesante dintre care menionez, Provocrileunui leaderscris de ctre CEO-ul Neverail, Martin Mackay, care prezint direciile pecare conductorul unei companii trebuie s le aib n vedere. Particularitile proiectelorinormatice ne arat dierena dintre un proiect clasic i unul soware, printre care iposibilitatea de a ntrzia un proiect n loc de a crete n cazul n care se adaug resurse ntimpul execuiei. Omniprezena aplicabilitii n ecosistemul personalne prezin modul ncare trebuie abordate proiectele de UIX. Continum cu un articol ce prezintproblemele

    arhitecturale din proiecte Lieray. SEO prin Google+ este oarte practic n acest numr iprezint un aspect important pentru orice business local. Cum s acem util Code Review,ce ar trebui s urmreasc developer-ul care scrie codul precum i cel care ace review-ul sunt subiecte dezbtute pe larg. De asemenea, pornim o serie de articole de recenziede cri care debuteaz n acest numr cu: Java Persistence with JPA. Din aria HR-uluiManagementul echipei abordat ntr-o manier schematic iManagementul de personaln domeniul SAP. Startup-urile sau crearea acestora sunt stimulate de invitaia la eveni-mentului Startup Week-end Cluj, Lansarea unui site web i prezentarea ecosistemului detech-startups din Cluj.

    V dorim o lectur plcut!

    Ovidiu ManFondator i CEO al Today Sofware Magazine

    Ovidiu Man, [email protected]

    Fondator i CEO al

    Today Sotware Magazine

    editorial

  • 7/29/2019 Today Software Magazine N8/2013

    5/44

    5www.todaysoftmag.ro | nr. 8/2013

    TODAY SOFTWARE MAGAZINE

    Redacia oday Soware Magazine

    Fondator / Editor in chie: Ovidiu [email protected]

    Editor (startups i interviuri): Marius [email protected]

    Graphic designer: Dan [email protected]

    Colaborator marketing: Ioana [email protected]

    Colaborator social media: Rodica [email protected]

    raductor: Cintia [email protected]

    Reviewer: avi [email protected]

    Reviewer: Adrian [email protected]

    Produs deoday Soware Solutions SRL

    str. Plopilor, nr. 75/77Cluj-Napoca, Cluj, [email protected]

    www.todaysomag.rowww.acebook.com/todaysomag

    twitter.com/todaysomag

    ISSN 2284 6352

    Copyright oday Soware Magazine

    Reproducerea parial sau total a articolelordin revista oday Soware Magazine

    r acordul redaciei este strict interzis.

    www.todaysomag.rowww.todaysomag.com

    Silviu [email protected]

    Consultant Java@ .msg systems Romania

    Marius [email protected] senior sotware developerin cadrul Nokia, n prezentondatorul platormei MintakaResearch

    Alexandra [email protected]

    Java Developer@ ISDC

    Mdlin [email protected]

    Java discipline lead@ Endava

    Attila-Mihaly [email protected]

    Code Wrangler @ UdacityTrainer @ Tora Trading

    Andreea [email protected]

    Recruiter n cadrul Endavai trainer specializat ndezvoltarea abilitilor sicompeteneelor de leadership

    Radu [email protected]

    Senior Sotware Engineer@iQuest

    Simona Bonghez, [email protected]

    Speaker, trainer i consultant nmanagementul proiectelor,

    Owner al Conucius Consulting

    Radu [email protected]

    QA i Web designer@ Small Footprint

    Lista autorilor

    Horea [email protected]

    Director Departament SAP@ .msg systems Romania

    Martin [email protected]

    CEO @ Neverail Group.

    Dan [email protected]

    Director o Delivery@ 3Pillar Global

    Bogdan [email protected]

    UX/UI Design Lead@ Endava

    Drago [email protected]

    CTO

    @ TXTFeedback

    Victor [email protected]

    SAP IT Consultant@ .msg systems Romania

    Mircea [email protected]

    Co-ondator i coordonator@ Use Together

    Oana [email protected]

    Center o Competence Manager@ .msg systems Romania

  • 7/29/2019 Today Software Magazine N8/2013

    6/44

    6 nr. 8/2013 | www.todaysoftmag.ro

    startup

    Educaie.Antreprenoriat.StartupWeekend

    Sergiu Biri susine c direcia adop-tat este una bun, dei tot el airm:Facem pai importani prin evenimente i

    conerine, ns din pcate nou ne lipsetei educaia antreprenorial pe care ar trebuis o primim de acas. Suntem crescui sm buni angajai, nu antreprenori.

    AntreprenoriatPentru a susine ormarea unui mediu

    propice dezvoltrii indutriei I i respec-tiv a antreprenoriatului inormatic, nanul 2012 s-a niinat n Cluj Napoca,I Cluster. Aceasta este o dovad a ap-tului c mediul clujean este unul propice

    implementrii proiectelor de o anvergurcomparabil cu Sillicon Valley.Dup cum susine i Marius Ghenea,

    ceea ce ne lipsete nou sunt modeleleantreprenoriale, oamenii de succes cares dovedit c se poate i n Romnia sconstruim aaceri de milioane de Euro. idac pentru unii acesta este un lucru nega-tiv (lipsa de modele), noi considerm cacesta ar trebui s e primul imbold, i celmai mare de a reui dorina de a demon-stra c se poate i la noi exact la el ca i nSillicon Valley.

    Startup WeekendStartup Weekend, parte integrant

    a Kauman Foundation este una dintre

    micrile cele mai ample la nivel mondialcare ncearc s oere participanilor siun mediu de dezvoltare i optimizare acalitilor antreprenoriale. Dac n slile decurs, antreprenoriatul rmne la un nivelmai mult sau mai puin teoretic, aici suntreproduse la o scar mica toate condiiilereale ale mediului de aaceri concuren,presiune, echip, investitori i piaa real.Cunotinele teoretice pe care le gsetiaici sunt oerite de mentori a cror coal aost propria lor aacere i a cror diplom o

    reprezint succesul nsui.ntrebat despre mediul antrepre-norial din Romnia , Karen E. Willson,unul dintre membrii consiliului KaumanFoundation, s-a aratt plcut surprinsla ct de repede evolueaz mediul antre-prenorial de aici : Oamenii au nceput scontientizeze ct de multe oportuniti auprin antreprenoriat i inovaie.

    Adunnd ntr-un singur loc Educaiai Antreprenoriatul, Startup Weekend or-meaz oamenii de aaceri de mine, acolounde ideea nu este cel mai important

    ingredient al unei aaceri de succes, undeechipa valoreaz la el de mult ca i vizi-unea, iar mentorii sunt acolo ca s indice

    direcii.

    EducaieSub presiunea global a micrii startup-urilor i dup modelul american, Romnia a intrat i ea de ceva timp n rndul rilor

    care promoveaz pe scar larg educaia antreprenorial. Materializat n conerine i evenimente dedicate startup-urilor, precum in cursuri teoretice predate elevilor i studenilor, promovarea nu aduce totui eectele scontate.

    EchipaStartup Weekend

    [email protected]

  • 7/29/2019 Today Software Magazine N8/2013

    7/44

    7www.todaysoftmag.ro | nr. 8/2013

    TODAY SOFTWARE MAGAZINE

    Provocarile unui lider - partea I

    Ateptrile de la un nou lider suntmari. oate prile interesate doresc svad schimbri rapide, mbuntirea per-

    spectivelor de aaceri i rezultate pe termenscurt. Consiliul care a cut modiicareavrea s nu dea gres n alegerea sa. Angajatiivor s neleag ce va aduce noul CEO incompanie pentru a justiica schimbareaeectuat la nivelul nalt, i, bineneles, sneleag oarte repede ce impact va aveaasupra lor ca indivizi. Echipa de condu-cere se va simi aproape sigur incomod in potenial pericol ( i va avea, probabil,resentimente a de noua sosire). Clieniii partenerii cheie de aaceri pot implicai

    n potentiale revolte provocate de schim-bare, n special n cazul n care celor dininteriorul procesului li se pare a bruscsau chiar nejusticata. Un clieu spune cai doar o singur ans de a ace o primaimpresie, dar un clieu este doar numit caatare, deoarece este un truism de multe orirepetat. Prin urmare, odata cu sosirea, noullider trebuie s i stabileasc oarte curnd,propriul plan de organizare pentru a aveasucces. n cele din urm, importana estencrederea pe care liderul o poate inspiraangajailor care vor determina modul n

    care mandatul su este validat.Angajaii vor s cread n viitorul

    organizaiei, deoarece acetia doresc slucreze pentru o companie de succes - ncazul n care lucreaz pentru o companiede succes se vor simi bine cu ei nii, vorlucra din greu i cu un angajament crescut;n cele din urm succesul se va construipe succes ntr-un cerc virtuos. Pentru caangajaii s cread n viitorul organizaieiau nevoie mai nti s aib ncredere nliderul lor. Pentru a inspira ncredere

    angajailor, liderul trebuie s e capabili screeze planul pentru succes.Exis t , des igur , multe moduri

    dierite n care un lider poate stabili credi-bilitatea i aborda procesul de planicare

    a schimbrii. Comportamentele necesaren vederea stabilirii autenticitii, care stala baza conceptului de leadership de suc-

    ces, vor examinate n ultimul articol dinaceasta serie. Aici am stabilit cele cincicomponente cheie pentru un astel de plan,care s uncioneze pe baza experieneimele i pe care le punem n practic, laNeverail.

    Primul pas este de a stabili o viziunepentru aaceri. Imediat conceptul de vizi-une poate avea un eect oarte negativ dacne gndim la airmaii r sens pline debuzzwords sau ne aducem aminte de dez-bateri sterile despre nevoia unei declaraii

    de viziune, a unei declaraii de misiune sauambele i care este dierena dintre celedou. n cele din urm, viziunea pentruaaceri este critica, deoarece inspir sensi scop; cu sensul i scopul nglobate npsihicul angajailor angajamentul lor nactivitate crete semnicativ i, aa cum amarmat, implicarea angajatului st la bazaoricrei aaceri de succes. Este o poveste aa doi zidari care lucrau pe un santier. Unvizitatori l ntreab pe unul dintre ei: Ceaci? Acesta raspunde Cioplesc aceastbucat de piatr n orma potrivit, astel va

    ncpea n peretele la de acolo. Vizitatorulpune aceeai ntrebare i celui de-al doileasi el rspunde: Eu construiesc o catedral.Ce trebuie s ac un lider de succes este si inspire pe toi angajaii s cread c suntparte dintr-o echipa n construirea uneicatedrale i, pentru a ace acest lucru, arenevoie de o viziune clar a aacerii.

    Acest lucru nu ar trebui s ie stabi-lit n termeni inanciari (dei, aa cumvom vedea rezultatele sunt cruciale), ci ntermeni mai largi pentru a oeri compa-

    niei scopul i direcia, care pot provoca siinspira. n al doilea articol, vom exploramodul n care am pus n practic aceastaprovocare, la Neverail.

    Al doilea pas este de a deni strategia,

    care va ghida activitatea spre realizareaviziunii. Aceasta este, probabil, elemen-tul cel mai important dintre toate: pentru

    ca viziunea s ie inspirational,aceastatrebuie s e att aspiraional, ct i rea-lizabil. Pentru a realizabil, trebuie sexiste o cale clar denit. Strategia de aa-ceri este calea clar.

    Strategia are n esen trei teme: ino-vare, int imitatea clientului i excelenaopera ion a l . L ideru l t rebu ie s explice modul n care aceste trei temeinteracioneaz, msurile generale care vor luate pe baza acestor teme i modul n careprogresele vor msurate. De exemplu, la

    Neverail ne-am stabilit strategia noastr deinovare bazata att pe dezvoltarea produse-lor noastre i pe mbuntirea proceselorinterne; am pus intimitatea clientului incentrul aacerii noastre, astel c planurilenoastre de produse sunt stabilite pe bazacererilor clientului (i a pieei), mai degrabdect o viziune introspectiva; iar proceselenoastre sunt remodelate pentru a crea ceeace noi numim experien memorabila cuclientul; excelen noastra operaional (ntermeni de raportare i msurare i proceseeciente de backoce) este deja mare, dar

    ne concentrm pe mbuntirea acesteiaprin introducerea unui nou sistem completde management al perormantei n cadrulcompaniei, care ne va ajuta s gestionam is mentinem talentul nostru.

    Al treilea pas pe care liderul trebuies l ac este de a construi ncredereaintern n companie n randul angajailor(i ale altor pri interesate, inclusivConsiliul). O mare parte din aceasta vinede la comportamentele expuse de lider (i,n al treilea articol din aceast serie, vom

    explora aceste comportamente mai ndetaliu). Comportamentul cel mai impor-tant pe care liderul trebuie s il adopteeste autenticitatea. Acest lucru este absolutundamental, pentru c un lider autentic

    Cnd un nou lider este numit pentru o organizaie, schimbarea are loc aproape invariabil, deoarece Consiliul de Administraie astabilit c acest lucru este necesar pentru a ndeplini potenialul companiei. Aici, n primul dintr-o serie de trei articole, MartinMackay, recent numit n uncia de CEO al Grupului Neverail, exploreaz un cadru pe care il utilizeaz pentru a rspundela provocarea schimbrilor de conducere. Al doilea articol va discuta mai n detaliu cele cinci responsabiliti-cheie pe care un lidertrebuie s le recunoasc i ultimul articol va revizui cele apte comportamente pe care un lider trebuie s le dezvolte.

    business

  • 7/29/2019 Today Software Magazine N8/2013

    8/44

    8 nr. 8/2013 | www.todaysoftmag.ro

    business

    este de ncredere, iar ncrederea nseamnimplicarea angajailor. Se spune c nu poimima sinceritatea lipsa unei astel deautenticiti va imediat evident pentruangajai. Liderul autentic comunic n modregulat prin canale multiple de mass-media(n Neverail vom olosi e-mail, Chatter -instrumentul de la Salesorce.com - precumi ntlniri periodice n locaiile noastredierite i ntlniri one-to-one) i comunicn mod constant i cu claritate.

    Modelul tradiional al abordrii ierar-hice de comand i control nu va sucientn lumea de astzi, angajaii sunt mult mai

    exigenti i nu vor rspunde doar la cererileeului. n esen, acetia sunt n cutareaa dou lucruri de la liderul lor: ei dorescclaritate n ceea ce privete ateptrile,perormanele companiei i direcia vii-toare i doresc s se simt ca cnd partedin companie, astel nct este sa ie evi-dent pentru ei c rolul pe care l joac imunca pe care o depun sunt n mod clarrelevante pentru ndeplinirea viziunii. ncazul n care liderul poate livra aceste douelemente angajatilor in mediul lor de lucru,

    atunci va aprea si ncrederea intern.Pentru a echilibra nevoia de ncredereintern am ajuns la a patra etap a proce-sul de gestionare a schimbrilor de succes:dezvoltarea ncrederii externe. ncredereaextern este modul n care piaa monetar(clieni, parteneri, analiti i observatori dinindustrie) vizualizeaz compania. Proiecia

    cea mai evident a imaginii companiei pepia este prin intermediul site-ului, darmerge dincolo de aceasta. Este de aptimaginea pe care compania o are ade partenerii de aaceri, analitii i, celmai crucial, cu clienii. Vnzarea bazatpe reerine nu este un concept nou, darn mod sigur o recomandare venit dinpartea colegilor ntr-o organizaie este ounealt generatoare de cereri, mult maiecient dect orice campanie de market-ing. De obicei aceasta recomandare va venidintr-o experien de neuitat cu clientul,n care imaginea companiei i realitatea

    experienei se potrivesc. La Neverail amstabilit standarde ridicate cu numele nos-tru! rebuie s ne asigurm c numelenostru se ridic la nivelul ateptrilor, astelnct aplicatiile critice de business ale clien-tilor nostri s nu dea gre niciodat.

    Deci, cu viziune, strategie, ncrede-rea intern i extern stabilit, am ajunsla elementul inal al arhitecturii noastre:rezultatele nanciare. Rezultatele nanci-are sunt absolut cruciale, deoarece acesteasunt o dovad obiectiv a succesului pla-

    nului nostru. Cu toate acestea, ceea ce dese ntmpl de obicei este c presiunea dinpartea acionarilor externi i a Consiliulace ca majoritatea liderilor s se concen-treze pe acest lucru i protul pe termenscurt s devin prioritar, in dauna valorilorcheie construite pe termen lung, care vindin implicarea angajailor i experienele de

    neuitat ale clienilor. La Neverail abordareanoastr este clar: avem msurarea rigu-roas a perormanelor noastre nanciarei ne impunem s lucrm n conormitatecu planul nostru. Cu toate acestea, cre-dem c vom ace acest lucru, ca urmare apunerii n aplicare a primelor patru ele-mente ale cadrului. Prin urmare, n timpce perormana nanciar este indicatorulnostru de baz, ne vom concentra pe atin-gerea obiectivelor noastre, asigurndu-nec avem viziune, strategie i ncredere dinpartea tuturor celor interesati.

    Deci, procesul n cinci pai de stabi-

    lire a unei viziuni, denire a unei strategii,construire a ncrederii interne i externe imsurarea necontenit a progresului prinrezultatele nanciare reprezint un modelpentru noul lider de a opera cu schim-barea. Evoluia viitoare n gestionareaschimbrilor de conducere st n a nelegeresponsabilitile cheie pe care liderul leare; acest lucru va subiectul celui de-aldoilea articol din aceast serie.

    Martin [email protected]

    CEO @ Neverail Group.

  • 7/29/2019 Today Software Magazine N8/2013

    9/44

    9 nr. 8/2013 | www.todaysoftmag.ro

    Istoria IT-ului Clujean (III)Fondator vs. Pionieri

    istorie

    Am ales ca i punct de pornire eortu-

    rile lui iberiu Popoviciu, matematiciande renume, care n 1957 ondeaz la Cluj,Institutul de Calcul, o redenumire datseciei de matematic a lialei AcademieiRomne la Cluj, (prima ondat tot de .Popoviciu n 1951, iar a doua de ctre EmilPetrovici n 1948).

    De ce am ales 1957? pentru catunci apare pentru prima dat terme-nul de Departament de Calculatoare.Departament prolic, care la doar doi anide la niinare construiete primul cal-

    culator cu relee MARICA (1959), urmatde DACCIC-1 (1963) cu tuburi electro-nice i tranzistori, iar n 1968 calculatorulDACCIC-200 complet tranzistorizat. Existi certe preocupri didactice, astel nct. Popoviciu pred primele cursuri deLimbaje de programare i Maini de Calculdin ar. Cu toate acestea, la nivel naional,Bucuretiul i imioara au un uoravans, iar realizrile lui Victor oma, dela Institutul de Fizic Atomic Bucureti-Mgurele, au pus Romnia pe locul 11mondial n ierarhia rilor cu dezvoltare n

    domeniul I. Din pcate, n 1975, institutuleste transerat de sub tutela academiei, indpreluat de Ministerul Educaiei Naionale,care reduce numrul de cercettori de la 48la 6. Acest an va aduce i o pierdere impor-tant, decesul lui iberiu Popoviciu la doar6 luni de la transerul institutului.

    Odat cu activitatea lui . Popoviciu,axat n mod special pe cercetare,predilecie motenit de la o puternicmicare a matematicienilor clujeni dela 1920, condusa de Petre Sergescu; n

    anii 1960 intr n scen i institutele denvmnt superior cu rol de ormatori

    i promotori ai I-ului clujean. n cadrul

    Institutului Politehnic din Cluj (actualaUCN), se remarc eorturile proesoruluiLiviu Mnduc, care ondeaz Facultatea deElectromecanic n 1960 i Electrotehnicn1964, iar n 1965 l numete pe MariusHngnu, proesor de Automatic.Aceast numire implic un parteneriat cuun alt actor important, Institutul de FizicAtomic din Cluj (devenit IIM n 1977 iINCDIM n 1999), lial a IFA Bucureticondus de Victor oma. Aceast alian acercetrii cu educaia, duce la o dezvoltare

    imediat i accelerat a celei din urm.Merit menionat c anul 1965 este iun punct de biurcaie a istoriei I-ului clu-jean. Apar dou perspective dierite: una adepartamentului de tiina Calculatoarelori una a celui de Automatic. Primul estecondus de Ioan Dancea cu al su colec-tiv ormat din K. Pusztai, I. A. Leia, O.Negru i I. Ignat, iar al doilea este condusde M. Hngnu, mpreun cu . Coloi,C. Fetil, etc. Segregarea se pstreaz i lanivel de colaboratori, primii alegnd ICpentru derularea proiectelor comune, pe

    cnd cei de la Automatic ntresc legturacu Bucuretiul prin IFA i IPA (Institutul deCercetare n Automatic). Perspectiva asu-pra educaiei este completat n anul 1975odat cu intrarea n scena a UBB Cluj, prinninarea Centrului de Calcul, condus deG. Moldovean i L. mbulea. Urmeaz n1994 redenumirea acultii de matematicla Facultatea de Matematic i Inormatic,datorit includerii de specializri dedicateI. n continuare educaia, att la nivelsuperior, ct i prin ormarea unui liceu

    tehnic (la propunerea M. Hngnu), vaprelua rolul de motor al I-ului clujean

    pn la apariia pieei private n anii 90 i

    intrarea n perioada contemporan.

    Dup cum se vede n cele de mai sus,nu exist o singur iniiativ ondatoare aI-ului clujean, att datorit predilecieiunora ctre cercetare i a altora spreeducaie, a unora spre matematic, a altoraspre automatic sau tiina calculatoarelor,dar i datorit inuentelor politice, admi-nistrative i alianelor cu dierite institutede cercetare i educaie locale sau naionale.n acest peisaj ragmentat am s mi permit

    s renun la orice tentativ de ierarhizare ii numesc pionieri, pe toi cei care au con-tribuit la naterea i dezvoltarea I-ului nCluj, i am s i privesc ca parte integranta aceluiai ecosistem, colabornd directsau indirect, iecare reuind s constru-iasc peste ce au cut cei dinaintea lor, scompleteze iniiativele existente i s umplegolurile lsate de schimbarea generaiilorsau modiicri administrative i politice.Succesul actual se datoreaz acestui mixtntre contribuiile individuale de excepie actorva pionieri i ineria pe care au reuit

    s o imprime celor din jur.O lecie care poate aplicat i acum, n

    peisajul antreprenorial ragmentat, n carecei cu succes trebuie s neleag nevoiasusinerii comunitii locale pentru a creaun moment de inerie similar.

    Ontrebare important pentru orice istorie este: cum a nceput totul? Din pcate, rareori se poate da un rspuns punctual iexact, pentru c istoria are tendina s e, mai degrab o desurare continu de evenimente i inuene, de perspectivesubiective i istorii mai mici i paralele. Pentru I-ul clujean lucrurile stau n mare msur la el.

    Marius [email protected]

    Fost senior sotware developerin cadrul Nokia, n prezent

    ondatorul platormei MintakaResearch

  • 7/29/2019 Today Software Magazine N8/2013

    10/44

    10www.todaysoftmag.ro | nr. 8/2013

    TODAY SOFTWARE MAGAZINE

    ransylvania Java User GroupComunitate dedicat tehnologiilor Java.Website: http://www.transylvania-jug.org/Data ninrii: 15.05.2008 / Nr. Membri: 518 / Nr. Evenimente: 40

    Romanian esting CommunityComunitate dedicat QA.Website: http://www.romaniatesting.roData ninrii: 10.05.2011 / Nr. Membri: 560 / Nr. Evenimente: 1

    GeekMeet ClujComunitate dedicat tehnologiilor web.

    Website: http://geekmeet.ro/Data ninrii: 10.06.2006 / Nr. Membri: 522 / Nr. Evenimente:13 (Cluj)

    Cluj.rbComunitate dedicat tehnologiilor Ruby.Website: http://www.meetup.com/cluj-rb/Data ninrii: 25.08.2010 / Nr. Membri: 130 / Nr. Evenimente: 31

    Te Cluj Napoca Agile Soware Meetup GroupComunitate dedicat metodelor Agile de dezvoltare soware.Website: http://www.agileworks.roData ninrii: 04.10.2010 / Nr. Membri: 293 / Nr. Evenimente: 17

    Cluj Semantic WEB MeetupComunitate dedicat tehnologiilor semantice.Website: http://www.meetup.com/Cluj-Semantic-WEB/Data ninrii: 08.05.2010 / Nr. Membri: 136/ Nr. Evenimente: 19

    Romanian Association or Better SowareComunitate dedicata oamenilor cu experienta din I indierent detehnologie sau specializare.Website: http://www.rabs.roData ninrii: 10.02.2011 / Nr. Membri: 193/ Nr. Evenimente: 11

    Comunitatea SMComunitate construita in jurul revistei oday Soware Magazine.Website: http://www.todaysomag.roData ninrii: 06.02.2012 / Nr. Membri: 389 / Nr. Evenimente: 5

    Am s continui iniiativa de numrul trecut i, n loc s discut despre criteriile de ordonare a comunitilor de mai jos, ams vorbesc despre ce m bucur n peisajul local. n acest numr este vorba de OpenConnect, att ca eveniment, dar maimult prin atitudinea i viziunea organizatorilor (Mircea, Victor, Florin, etc.). Acetia mbin entuziasmul cu spiritul critic,competiia cu construirea pe undaiile existente i propun tot timpul colaborarea ca element esenial n maturizarea i coagulareainiiativelor disparate ntr-o ormul capabil de aciune, nu doar de discuii i polemici. Dei am mai vorbit toi, chiar i eu, de multeori, de o reunire a eorturilor i ntlniri ntre liderii comunitilor locale pentru a construi o agend comun, de cnd cu eortul con-certat al celor de la OpenConnect lucrurile par mai aproape de a se mplini. Evident c punctul lor orte: tinereea, prin avntul care ianim, este i punctul lor slab, pentru c nu au nc experiena i constana care s i sprijine, dar tocmai de aceea v rog s i ajutai isusinei prin experiena voastr i deschiderea spre colaborare.

    Calendar

    Februarie 6Monthly Meetuphttp://www.meetup.com/abara-de-estare-Cluj/

    Martie 1-3Startup Weekend - Recomandat SMhttp://cluj.startupweekend.org/

    Joi/sptmnalOpenConnect

    http://www.acebook.com/groups/355893314491424/

    Miercuri/bilunarOpenCoeehttp://www.acebook.com/opencoeecluj

    Comuniti IT Cluj-Napoca

    comuniti

    abara de testareComunitate dedicat QA.Website: http://www.meetup.com/abara-de-estare-Cluj/Data ninrii: 15.01.2012/Nr. Membri: 133/ Nr. Evenimente: 10

    Meniuni: Cluj Perl Mongers (www.cluj.pm), ISpark (http://itspark.ro/deault.aspx), CodeCamp (http://www.codecamp.

    ro/), Cluj Mobile Developers (http://www.meetup.com/Cluj-Mobile-Developers/), CodExpert (http://www.codexpert.ro/),PHPRomania (http://www.phpromania.net/), ARIES (http://www.aries.ro/).

  • 7/29/2019 Today Software Magazine N8/2013

    11/44

    11www.todaysoftmag.ro | nr. 8/2013

    TODAY SOFTWARE MAGAZINE

    Unul dintre cele mai intens citaterapoarte statistice cu privire la succe-sul proiectelor inormatice este StandishGroup Chaos Report, care an de an publicrezultate procentuale ce evideniaz ponde-rea proiectelor nalizate cu succes, a celor

    euate precum i a celor care au ntmpi-nat diiculti majore pn la inalizare.Criteriile care stau la baza acestui raportsunt oarte simple i se reer ca scop, timpi bani, sau mai precis la:

    respectarea i implementarea cerin-elor specicate,

    ncadrarea n bugetul estimat iniiali

    respectarea termenelor de livrareagreate.

    Proiectele de succes erau considerate

    acelea care respectau cu brio toate acestecriterii, cele euate erau cele care se stopaur a mai i inalizate din cauza neres-pectrii unuia sau mai multor criterii, iarcele nalizate reprezentau proiectele careau ost pn la urm terminate, rezultatulproiectelor ind implementat cu condiiareevaluri i ajustrii n mode semnicativa unora dintre criterii.

    abelul urmtor prezint cteva dintrerezultatele raportului de-a lungul timpului,ncepnd cu rezultatul ocant din 1994,

    ce relev o rat de succes extrem de sc-zut, i pn aproape de zilele noastre. iaceast statistic vine s conrme existenaunei dierene evidente ntre proiecteleinormatice i celelalte proiecte, un procent

    de eec de 20-30% ind de neconceput nvreunul dintre celelalte domenii, de la celal construciilor de cldiri sau maini pnla servicii medicale.

    An Succes Finalizat Eec

    1994 16% 53% 31%

    1996 27% 33% 40%

    1998 26% 46% 28%

    2000 28% 49% 23%

    2002 34% 51% 15%

    2004 29% 53% 18%

    2007 35% 46% 19%

    2009 32% 44% 24%

    Desigur c se poate discuta mult pemarginea acestor statistici i a relevaneilor. Pentru c proiect inormatic este un

    termen care acoper un spectru destul delarg i eterogen de proiecte, e neclar ce elde proiecte au ost luate n considerare.ntre anii 1994 i 2000 de exemplu, s-austudiat n jur de 30000 de proiecte inor-matice doar din Statele Unite ale Americii.Pentru 2004 raportul precizeaz c au ostluate n considerare peste 50000 de pro-iecte din ntreaga lume (58% SUA, 27%Europa, 15% rest), cei de la Standish GroupInternational asigurndu-ne c s-a respec-tat un echilibru ntre numrul proiectelor

    mici, medii i mari.n alt ordine de idei, este destul derestrictiv s msurm succesul unui pro-iect lund n considerare doar criteriilescop, timp i ban. Calitatea produsului sau

    Particulariti aleproiectelor inormatice

    U

    nul dintre primele lucruri pe care le ai atunci cnd citeti un articol sau ocarte despre gestiunea proiectelor din I este acela c proiectele inormatice sedeosebesc oarte mult de toate celelalte proiecte. Chiar i atunci cnd subiectul

    principal este legat de gestiunea proiectelor n general, se ac reeriri directe cu privire laineciena anumitor metode atunci cnd avem de-a ace cu proiecte soware. Din pcatenu este ntotdeauna explicat n ce costau acele deosebiri i se insist mai degrab pe adescrie soluii, mai mult sau mai puin eciente. Articolul de a si propune s evideni-eze i analizeze principalele aspecte caracteristice proiectelor inormatice.

    programare

    Dan [email protected]

    Director o Delivery@ 3Pillar Global

  • 7/29/2019 Today Software Magazine N8/2013

    12/44

    12 nr. 8/2013 | www.todaysoftmag.ro

    a serviciului rezultat reprezint la rndulsu un criteriu important. De asemenea,exist proiecte care nu au respectat cele treicriterii, dar care au ost considerate de ctreorganizaiile n care s-au desurat ca indde mare success pentru c au atras ulteriornoi proiecte importante, dup cum existi proiecte ce au excelat n toate cele treidirecii ns presiunea exercitat a cut caechipa de proiect s se destrame rapid dupterminarea proiectului pierzndu-se expe-riena i expertiza ctigat n domeniulproiectului respectiv.

    Dup cum se poate observa i dingraicul urmtor, n 2012 raportul vinecu inormaii agregate pe dierite tipuride metodologii utilizate n gestiona-rea proiectelor. Aa cum era de ateptat,metodologiile Agile amelioreaz simitor

    numrul de proiecte euate, ns ele nu pot aplicate cu success pentru toate tipurile

    de proiecte inormatice.Dar ne-am ndeprtat destul de mult de

    scopul declarat al articolului. Ce am dorits subliniem pn la acest punct este doarc exist dierene notabile ntre proiecteleinormatice i celelalte tipuri de proiecte ic aceste dierene par a inuena negativsuccesul acestora. n cele ce urmeaz levom descrie pe cele mai importante.

    1. Sotul este nemsurabilDin ericire sau din pcate (n uncie

    de perspectiva din care privim lucrurile),activitatea de dezvoltare a soului este unacreativ. Nu exist, aa cum se ntmpl ncazul altor activiti, un nomenclator cares precizeze care este timpul uzual nece-sar pentru implementarea unei erestre ceconine, s zicem, dou liste derulante, ungrid i dou butoane. n ciuda dezvolt-rii de instrumente sosticate de generareautomat a codului sau de implemen-tarea diverselor biblioteci de clase sauramework-uri, iecare proiect nou vine

    cu provocrile proprii n ceea ce privetecreativitatea.Un exemplu edicator n acest sens este

    dat n cartea Te Healthy Soware Project:a guide to successul development, (1993,

    autori M. Norris, P. Rigby, M. Payne) careace un experiment chestionnd un numrde 44 de experi n legtur cu numrul deinstruciuni care apar n codul de mai jos:#dene LOWER 0#dene UPPER 300#dene STEP 20main(){

    int fahr;for (fahr=LOWER; fahr

  • 7/29/2019 Today Software Magazine N8/2013

    13/44

    13www.todaysoftmag.ro | nr. 8/2013

    TODAY SOFTWARE MAGAZINE

    numrul de tranziii i traduceri ce tre-buie realizate ntre azele ciclului de viaal unui produs. Speciicaiile uncionale(redactate n limbaj natural) sunt transla-tate ntr-un model de analiz (diagramevizuale care modeleaz toate soluiile posi-bile ale problemei enunate n specicaii),care ulterior este translatat ntr-un modelde proiectare (unde se particularizeazmodelul de analiz pentru o soluie spe-cic), care mai apoi este translatat n codsurs, acesta din urm ind translatat ntr-un model executabil (prin compilare sauinterpretare). ot acest lan de translatri,n ciuda aptului c anumite tranziii suntautomatizate, ace procesul de dezvol-tare a soului mult mai vulnerabil la eroriumane. Acest lucru este cauzat de greelide traducere sau prin persistarea erorilor

    nedescoperit la timp n azele de speci-care sau analiz pn n modelul executabil.

    4. Sotul este dinamicDinamismul cu care se conrunt pro-

    iectele soware se maniest n trei direciirelevante. Pe de o parte exist atracianoutii tehnologice. tim c tehnologiaavanseaz oarte rapid i an de an aparbiblioteci i ramework-uri noi, i versiunimbuntite ale limbajelor i mediilor dedezvoltare. Din punct de vedere al unui

    project manager, pstrarea ramewok-urilor iniiale n care a ost dezvoltat unanumit so este o condiie elementar depstrare a stabilitii acestui so. Pe de altparte nu trebuie ignorat apetena echi-pei pentru a lucra cu ultimele tehnologii(inerent mai instabile i cu neajunsuri ncnerezolvate sau nediscutate pe orumurilede specialitate). Exist un eort constant

    i care nu trebuie neglijat, de pstrare aunui echilibru ntre stabilitate i eliminareaunui sentiment de plaonare a echipei dedezvoltare.

    A doua direcie ce coner dinamismproiectelor sotware este luctuaia per-sonalului, care n domeniul I este oarteridicat. O uctuaie sntoas pentru oorganizaie se situeaz undeva n jurul a10 procente. Un studiu realizat de ZiarulFinanciar arat ca n domeniul I nRomnia uctuaia de personal este la nive-lul de 20%, i ea nu se datoreaz n principalnivelului de salarizare (cum este n cazulaltor domenii) ci dierenelor de culturi a sentimentului de nerealizare proesio-nal. Eectele acestei uctuaii, dup cumsubliniam i n seciunea 1, constau nreconsiderarea planicrilor anterioare i

    de adaptare a noilor venii la proiect. Nutrebuie ns neglijat tendina noilor veniide a respinge codul scris de predecesoriilor, ncercnd uneori chiar s i asume res-ponsabilitatea nlocuirii complete a acestuicod, aciune ce conduce la anularea valid-rilor anterioare.

    n ne, o dinamic aparte a de alteproiecte o au cererile de modicare rec-vente venite din partea clientului n diverseaze ale ciclului de via a dezvoltrii unuiproiect sotware. Aceast caracteristic a

    proiectelor sotware a condus la dezvol-tarea medologiilor Agile care includ acestaspect ca pe o component activ a proce-sului de dezvoltare.

    ConcluziiAm ncercat s evideniem unele dintre

    aspectele care considerm c diereniazn mod clar proiectele sotware de alte

    proiecte existente i care au o contribuiedecisiv n situarea acestor proiecte pe unloc runta n topul eecurilor pe tipuri deproiecte.

    Desigur c alturi de diicultile demsurare, invizibilitatea, intangibilitatea,complexitatea, i dinamismul proiectelorsoware, exist i alte aspecte specice. Deexemplu, sporirea resurselor ntr-un pro-iect soware ntrziat nu elimin decalajulci sporete ntrzierea, deoarece capacita-tea de eort a membrilor echipei scade cu ocantitate egal cu eortul de comunicare cunoul membru. Aceste lucruri nu se ntm-pl n marea majoritate a proiectelor n carese desoar cu preponderen activitide rutin.

    Scopul articolului nu a ost acela de aemite soluii de gestionare a particularit-

    ilor, acestea putnd contitui subiectul unuiviitor articol. Cu siguran ns, categoriametodologiilor Agile de dezvoltare a so-tului are n vedere o bun parte a acestorparticulariti.

    Nu dorim s ncheiem articolul ra pune o ntrebare ireasc ce rezult nurma acestei analize: Cum se ace c, npoda tuturor acestor neajunsuri, indus-tria sotware rezist i chiar nlorete?Rspunsul este unul optimist, ce se reer labeneciile aduse de rezultatele proiectelor

    soware i a necesitii acestora. Fr doari poate, aplicaiile soware au menirea de ane ace viaa mai simpl ntr-o multitudinede aspecte ale vieii cotidiene. Chiar dacuneori ele se blocheaz sau uncioneazeronat, le acceptm, trecem cu uurinpeste multe dintre aceste erori sau gsimci de ocolire a lor deoarece avantajele obi-nute pun n umbr aceste neajunsuri.

  • 7/29/2019 Today Software Magazine N8/2013

    14/44

    14 nr. 8/2013 | www.todaysoftmag.ro

    ntr-un astel de mediu, o adevaratprovocare n aplicabilitate este repre-zentat de satisacerea oricrei doleane apersoanelor care olosesc astel de aparate.Bineneles c au ost realizate programesotware care s suporte sarcinile zilnice

    (ex: editor de documente, client de email,calendar, etc), dar totul trebuie gndit irealizat astel nct s nu limitat doar la undispozitiv specic. i doreti s poi olosiorice aparat de tip teleon, tablet, laptop,computerul personal, chiar i televizorultu inteligent, s-i ndeplineti sarcinileuzuale (ex: s ii legtura cu prietenii, sciteti emailuri, etc). Din pcate, nu toateaparatele vor suporta toate cerinele tale,precum printarea unui document sau aunui email, dar datorit posibilitii acestorsisteme de a conlucra, oerind o mobilitate

    sporit a transerului de inormaii, veiputea realiza orice sarcin din cele pe carei le-ai propus.

    n centrul acestui conglomerat de apa-rate, scopul principal este gsirea unuipunct de echilibru astel nct experienaunui utilizator s e una natural.

    D e a c e e a e s t eabsolut vital ca unproiectant s realizezeun lux de inormaiii pai, ct mai precis,dar totodat trebuie

    s u r m r e a s c nperman en pre-rile utilizatorilor: ianume cum i cndse olosete, cum iinlueneaz, timpulalocat pentru realiza-rea unei sarcini etc. nuncie de aceti paiurmai de utilizatori,proiectantul va puteags i s c pr i le d inproiect.

    Dac se dorete scoaterea n eviden aunei proprieti sau a unei uncionaliti,trebuie apelat n azele timpurii ale rea-lizrii aplicaiei, la cteva concepte deproiectare. n acest mod se poate comu-nica mult mai uor viziunea i se poatevedea cum un anumit design poate avea unimpact emoional asupra utilizatorului. Da,un design bun, un curs perect i natural denavigare n aplicaie, poate crea utilizatoru-lui o stare de linite i o ncredere sporit soloseasc aplicaia respectiv.

    Unul dintre cele mai simple i la nde-mn concepte de proiecte o reprezintdesenarea, schiarea viziunii sau a ideiipe hrtie sau n ormat digital cu ajutoru-lui unei aplicaii (ex: Balsamiq, Mockow,

    Omniprezena aplicabilitiin ecosistemul personal

    Puterea de prelucrare a inormaiilor cu ajutorul aparatelor de mici dimensiuni,permite s ne desurm ecient activitatea chiar i n aara biroului de lucru. ncontextul unei dezvoltri continue a tehnologiilor, capacitatea de stocare i aare

    a inormaiilor este vizibil mbuntit, iar posibilitile de comunicare ntre aparatesunt nelimitate.

    UIX

    Bogdan [email protected]

    UX/UI Design Lead

    @ Endava

    www.nastasabogdan.eu

  • 7/29/2019 Today Software Magazine N8/2013

    15/44

    15www.todaysoftmag.ro | nr. 8/2013

    TODAY SOFTWARE MAGAZINE

    Mockingbird). Dac nc nu ai o ideemrea care s schimbe lumea, stai linititi primul pas, i anume s ai o multitu-dine de idei.

    Dupa ce i-ai cut schiele pentru ideeata sau a unui proiect deja existent, dar carenecesit mbuntiri, arat-le unui gruprestrns de prieteni, cunotine i culegeprerile lor. n urma prerilor exprimate,ntr-un timp relativ scurt, vei putea s-imbunteti ideea. Urmtorul pas este

    s-i creionezi etapele pe care trebuie s leparcurg utilizatorul. Bineneles, arat dinnou modicrile tale la grupul de persoanei ia n considerare din nou prerile lor.

    Cred c ai observat deja ct de impor-tant este s ii cont de observaiile icomentariile persoanelor care i testeazschiele n aceast etap timpurie. n acestel te va ajuta s-i realizezi o strategie is anticipezi lucrurile care pot interveni i

    sunt greu de prevzut n timp. i dac ncnu ai realizat, n acest moment ai deja rs-punsurile la ntrebrile tale: Cum va artaaplicaia? Cum va unciona? Ce el deexperien vor avea utilizatorii?

    Cnd doreti s realizezi un produs/uncionalitate nou, trebuie s te gndetila ce-i va motiva pe utilizatori s o olo-seasc. Cnd ai raspunsul, trebuie neaprats-l incluzi n aplicaie i s-l aci ct maivizibil vizitatorilor. Exemplu: dac aplicaiata strnge onduri pentru diverse activitti,o parte din prot doneaz-l pentru o cauznobil. Sentimentul creat prin donaie l vaajuta i inuena pe utilizator s contribuiechiar mai mult n cadrul aplicaiei.

    Scopul acestui concept de proiec-tare o reprezint realizarea rapid a uneisoluii din perspectiva grac a aplicaiei

    (poziionarea elementelor n ecran).Un alt concept de proiectare este repre-

    zentat de realizarea unor prototipuri cares oere suport interactiv pentru ranareaunui anumit lux de pai urmat de utili-zatori dar i pentru observarea utilitiin olosirea aplicaiei. Aceste prototipurise pot realiza cu diverse aplicaii printrecare enumerm doar cteva dintre ele:Justinmind, Axure, Invisionapp.

    C n d d o r e t is cuprinzi aceast

    in terac iu n e d in treaplicaie i utilizator,trebuie luat n conside-rare, asa cum am maimenionat mai devremen acest articol, impactulemoional care are loc iasta pentru c se doretes existe o relaie petermen lung a utilizrii

    aplicaiei. Clienii extatici sunt clieniideli.

    Acum c am observat care sunt concep-tele olosite, s mergem mai departe i sle vedem n aciune. Dar nainte de toatetrebuie s im contieni c i realizareaacestor schie poate s e consumatoare detimp, i de aceea este sucient n prim azs realizm machete cu o delitate sczut.S lum ca exemplu urmtoarea schi, a

    unei poriuni din site-ul www.endava.com.impul de realizare a ost de aproximativ 5minute, dar cu aceast schi, proprietarulsite-ului va ti exact unde va pozitionatlogo-ul companiei, meniul, noutile, etc.Dup ce aceast etap este inalizat iaprobat, se va trece la partea graic cuo delitate ridicat. Astel s-a redus con-

    siderabil timpul alocat pentru claricareaproiectului iar clientul poate s compareschiele cu specicaiile proiectului, avndastel un control sporit i o vizibilitate maibun a ceea ce se va realiza.

    Enumr cteva metode de a ace o eva-luare a calitii schiei:

    C o n s i s t e n i s t a n d a r d -Utilizatorii trebuie s ie obinuiicu ecranele, situaiile intervenite,

  • 7/29/2019 Today Software Magazine N8/2013

    16/44

    16 nr. 8/2013 | www.todaysoftmag.ro

    texte, butoane, pstrnd peste totconveniile aplicaiei.

    Vizibilitate - Coninutul trebuie se accesibil i uor de neles de ctreutilizatori.

    Design minimalist - Ecranele aatetrebuie s conin doar inormaiirelevante pentru vizitatori.

    Mesaje de eroare - Mesajele deeroare trebuie s indice cu exactitateproblema ntmpinat i s sugereze

    o soluie abil.

    Analizm www.bostonglobe.com,care are implementat un design adaptiv ladimensiunile ecranului pe care este aat.Bineneles sunt avantaje i dezavantaje aleoptrii unui design adaptiv, dar acestea le

    vom discuta ntr-un articolvii tor. n schie le prezentatemai jos sunt trei variantede machete pentru aiareasite-ului: pe monitorul unuicomputer personal, pe o tableti pe un teleon. Durata mediede realizare a acestor machetea ost de aproximativ 20-30 deminute. n acest moment clien-tul poate s observe diereneledintre versiuni, s evaluezei s modiice poziionareaelementelor.

    Schiele ajut s se neleagceea ce va implementat i sse determine care este structuraecrei pagini/seciuni, iar sco-pul principal este s se reduc

    costurile i timpul de imple-mentare a proiectului. n aceast etap sepot modiica problemele de design, iarimplicarea de ctre client n dezvoltareaaplicaiei este mbuntit considerabilla el i comunicarea dintre dezvoltatori,analiti i utilizatori. Menionez c toateschiele prezentate n acest articol au ostrealizate cu aplicaiaJustinmind (www.jus-tinmind.com).

    Nevoia de a unciona pe majoritateaplatormelor reprezint o adevarat provo-care de exibilitate a proiectelor dezvoltate.Noile aplicaii aprute au calitate sporit aexperienei utilizatorilor i devin o sursde inspiraie pentru o varietate de produsenoi.

    Omniprezena aplicabilitii n ecosistemul personal

    UIX

    MONITOR TABLET TELEFON

  • 7/29/2019 Today Software Magazine N8/2013

    17/44

    17 nr. 8/2013 | www.todaysoftmag.ro

    arhitectur

    Acest articol analizeaz problemearhitecturale care trebuie adresate lanceputul proiectului pentru a obineun produs lexibil r ajustri majoreulterioare.

    Cu Lieray sau r Lieray

    Lieray este un portal open sourcesub licen GPL, pentru aplicaiienterprise. Vine mpreun cu multeuncionaliti personalizabile: usermanagement, multi-tennanti multi-language, CMS , integrare cu motoarede reguli (rule engine), cu motoare decutare i multe altele out o the box.Funcionez pe o serie de applicationservers (printre care JBoss , GlassFish),servlet containers (omcat, Jetty, Resin)i cu multe DBMS-uri. Poate deployatn cloud.

    nainte de nceperea oricrui proiecttrebuie pus ntrebarea: este ntr-adevrnevoie de Lieray? Astel, dac e nevoiede un portal complex, o aplicaie careadministreaz coninut mult atuncise potrivete. Dac aplicaia este mareca dimensiune, dar nu e orientat spreconinut (content-centric), Lieraypoate s e util, dar nu e recomandabil.n schimb, dac aplicaia este simpli manipuleaz coninut puin, atunciLieray adaug prea mult complexitate.

    rebuie s se in cont i de aptul cLieray este un container de portlei inu merit s se oloseasc pentru aplica-ii web clasice.

    Service Builder sau Layer de serviciipropriu

    Service Builder-ul este un tooldez-voltat de Lieray pentru a automatizacrearea intereelor i claselor olosite deportal i portlei pentru layer-ele de ser-vicii i acces la date. Se genereaz codul

    pentru bean-uri, Persistena, Model imaprile de Spring. Acesta este tool-ulolosit i de developeri Lieray pentrua genera serviciile din Lieray core. Deaceea, a ost ndelung testat i proble-mele rezolvate sau cel puin identicate.Problemele gsite sunt logate n Jira isunt publice: http://issues.lieray.com/browse/LPS. Service Builder-ulasigurtranzacionalitatea serviciilor, are unmecanism de clusteringi chiar oerposibilitatea de a internaionaliza oriceentitate cu eort minim.

    otui, din punctul de vedere aldocumentaiei, Service Builderul bene-ciaz doar de o pagin de wiki care nueste oarte detaliat. Aceasta nseamnc, dac nu ntelegi exact ce ac anu-mite atribute, trebuie s investighezicodul generat pentru a anticipa cum seva comporta. De obicei, nevoia pentruaceste investigaii nu poate identicatdect n timpul implementrii i aceastanseamn ntrzieri neprevzute. nschimb, exist training-uri organizate de

    Lieray unde se pot acumula cunotin-ele necesare.Pe de alt parte, se poate opta pentru

    dezvoltarea unui layer de servicii pro-priu. Avantajul este deinerea controlului

    Probleme arhitecturale nproiecte Lieray

    ntr-un mediu de aaceri din ce n ce mai agile, cu tot mai multe companii careconcureaz pentru aceeai cot de pia, posibilitatea de a dezvolta aplicaiicu multe uncionaliti out o the box, Lieray este unramework cel puin

    interesant.

    Alexandra [email protected]

    Java Developer@ ISDC

  • 7/29/2019 Today Software Magazine N8/2013

    18/44

    18 nr. 8/2013 | www.todaysoftmag.ro

    complet asupra codului scris i posibilitateadenirii documentaiei proprii. ns, over-head-ulde a deni dou layere persisteni servicii cu intereele i nivelul de abs-tractizare oerit de Service Builder esteoarte mare. Astel, timpul de implemen-tare i livrare (time to market) va oarteridicat.

    otui, exist unele cazuri n careService Builder-ul nu este necesar. Deexemplu dac se comunic cu un sistem 3rdpartycare administreaz datele i expuneservicii, va nevoie doar de apelarea lor.

    n continuare vom discuta despre pro-iecte n care se olosete Service Builder-ul.

    Decuplarea componentelor aplicaieiCa n orice arhitectur pe layere, com-

    ponentele trebuie meninute separate, dar

    decizia asupra nivelului de granularitate lacare se separ n arteacte trebuie cntritcu atenie pentru c poate aduce o penali-zare de perorman sau poate ace codulgreu de nteles i meninut.

    Figura 1 prezint mparirea logic acomponentelor dintr-un proiect de Lieray.n mod implicit, Service Builder-ulgene-reaz api-ul separat de implementare,ntr-un older din WEBINF. Aceasta estemodalitatea Ant de structurare a proiectu-lui. Modalitatea Maven este de a-l genera

    ntr-un modul separat.Ct despre mpachetarea componente-lor, exist mai multe modalitti de a aceacest lucru, n uncie de necesitile pro-iectului. Pentru cel mai simplu proiect, estesucient s se mpacheteze api-ul ntr-unjar i portleii mpreun cu implementareantr-un war. Avantajul acestei soluii e codat ce contractul e denit implementa-rea se poate schimba i i se poate ace hotdeploy. eoretic, se poate modica logica de

    business i serverul nu trebuie oprit pentrua avea soluia n producie. Dar, din pcate,n practic de oartepuine ori se va ntam-pla s lucrezi un sprint laservicii i s nu modiciceva din interat. Hotdeploy-uleste mai multpentru hot xes.

    Pentru a pastra unseparation o concernsi a crete nivelul deizolare, se poate ca imple-mentarea serviciilor sconstituie un modulseparat i s ie deployatca unjar, aa cum e prezentat n Figura 2.Aceasta ar nsemna c, dac la un momentdat clientul se hotrte c doreste s sto-

    cheze datele ntr-un mod dierit, trebuiedoar nlocuit modulul de implementare.Dezavantajul este c deploy-uldureaz maimult, apt care se simte mai ales n timpuldevelopment-ului .

    Din acest punct de vedere, dac proiec-tul este unul mare i oarte agil, cu un clientimprevizibil, cea mai bun soluie ar sse separe implementarea serviciilor ntr-unmodul dierit de la nceput, dar se renunla posibilitatea de a deploya hot xes pe ser-vicii. Pentru developmentse poate olosi o

    congurare asemntoare cu cea din Figura3, n care acest modul e mpachetat mpre-un cuportleii ntr-un wari astel se poateace hot deployi nu se creaz overheadpentru asta.

    Un alt aspect care dier de la proiectla proiect este modul n care portleii suntseparai nplugin-uri. Variaiile sunt oartemari: n unul dintre proiectele pe care amlucrat, se olosea unplugin per portlet, pecnd n altul exista un singurplug-in pen-

    tru toi portleii. Fiecareabordare are avantajele i

    dezavantajele ei. n primaeste oarte uor s contro-lezi ce uncionaliti puila dispozitie unui tenant,dar deployul dureazmult i comunicareainter-pluginuri poate icostisitoare. A doua esteo variant mai rapid, totbusiness-ul iind la unloc. Dar aceasta din urmeste avantajoas numai

    pn la un anumit numrde portlei.Decizia depinde de

    necesitile clientului idimensiunea proiectului.

    Cnd aceasta din urm ncepe s creasc,uncionalitile care au o legtur logic

    sau au sens mpreun pentru business,ar trebui s ie grupate n acelai plugin.Chiar dac la nceputul proiectului totul

    este dezvoltat mpreun, este posibil ca laun moment dat clientul s vrea s pun ladispoziie diverilor tenani uncionalitidierite.

    Interaciunea dintre componenteO problem care de cele mai multe ori

    se pune prea trziu este standardizareala nivel de proiect a comunicrii dintrecomponente.

    Lieray urmrete un Model DrivenArchitecture, unde Service Builderulacio-

    neaz ca unModel Driven ransormationool. Deci, layer-ulde servicii este cel res-ponsabil cu transormarea entitilor deback-endn entiti care pot olosite delayer-ulde portlei . Dar, la el ca portleii ,serviciile pentru entitile care au valoarede business mpreun ar trebui grupate iaceste grupuri s e izolate unele de altele.Aceasta pentru c se poate decide la unmoment dat c anumite uncionalititrebuie mutate pe un complet alt environ-ment. De exemplu, ntr-o aplicaie care seocup cu managementul studenilor, toate

    inormaiile reeritoare la notele de la exa-mene trebuie mutate ntr-un trust centerdin motive legale.

    n aceste condiii, pentru a ace leg-tura dintre prezentare i back-end, avemnevoie de servicii compuse, numite wrap-pere. Figura 4 prezint aceast arhitectur.Comunicarea dintre nivelul de wrap-pere si nivelul portleilor se ace olosindDO-uri sau business objects. Layer-uldeservicii expune entiti de Service Builderi toate operatiile pe care le ace sunt ato-

    mice, pentru c totul e ntr-o tranzacie.De aceea, nivelul de granularitate la careserviciile se mpart n uniti uncionaletrebuie cntrit cu grij pentru a nu scoatedin tranzacii operaii care ar trebui s eFigura 1

    Figura 2

    Probleme arhitecturale n proiecte Lieray

    arhitectur

  • 7/29/2019 Today Software Magazine N8/2013

    19/44

    19www.todaysoftmag.ro | nr. 8/2013

    TODAY SOFTWARE MAGAZINE

    atomice (ex. tergerea unui student separat de tergerea notelorlui). Mai mult, clientul poate s decid c dorete s i expunbusiness-ul ca un serviciu (Soware as a Service). Dac proiectule modularizat ecient, logica de business pentru o uncionalitatee centralizat, aceast schimbare ar trebui s e simpl, pentru cService Builder-uloer posibilitatea de a expune servicii RES

    sau SOAP doar scriind o implementare n layer-ulde servicii. n

    schimb, dac layerulcu wrapper-uleste cel care asigur consistenabazei de date, trecerea va una dureroas.

    Concluziin concluzie, nu exist un mod standard de a structura o apli-

    caie Lieray, exist doar o serie de ntrebri care trebuie pusela nceputul iecrui proiect. Cu ct aceste ntrebri care stan-dardizeaz modalitile de lucru sunt puse mai trziu, cu attreactorizarea pentru a avea un proiect consistent va mai costi-sitoare, exibilitatea i extensibilitatea vor aectate.

    ISDC.EU/CAREERS

    WE DO PROJECTS

    WITH IMPACT. WE

    DELIVER RESULTS,

    NOT RESOURCES.

    OUR CUSTOMERS

    ARE IMPRESSED

    BY OUR AWESOME

    TECH TEAMS.

    ISDC

    ENGINEERS

    YOUR

    DREAMS!

    [email protected]

    [email protected]

    WE HIRE IN GOOD COMPANY

    L

    P

    V T

    .NET ARCHITECT

    Figura 3

    Figura 4

  • 7/29/2019 Today Software Magazine N8/2013

    20/44

    20 nr. 8/2013 | www.todaysoftmag.ro

    Google+ or Business este un instru-ment gratuit oerit de ctre Google, ce seadreseaz aacerilor mici i mijlocii. Prinintermediul su, companiile pot atrageclieni noi din proximitatea lor. Integrareacu Google+ i Google Maps l ac un instru-

    ment oarte bun n promovarea onlinelocal. O uncionalitate cheie este siste-mul Zagat. Acesta olosete o scar de 30de puncte prin care oricine poate oeri unrating acelei companii sau serviciilor sale.

    Cum ne poate ajuta o pagin Google+or Business

    Pentru a nelege modul n care Google+or Business ne poate ajuta, haidei s lumun exemplu. Presupunem c tocmai amajuns n Cluj-Napoca i dorim s cutmo anumit caenea. Accesm Google iapoi tastm starbucks. Datorit setrilor

    de cutare, Google va ti c noi realizmo cutare local i va include n rezultatesale i cteva detalii de pe pagina Google+or Business a caenelei (n caz c aceastaexist). n urma cutrii, putem vedea c nCluj-Napoca exist aceast caenea (Figura1). Fr pagina Google+ or Business nu ami tiut acest lucru pentru c locaia din

    Aproximativ 40% din cutrile realizate pe dispozitive mobile olosind Googlesunt locale. Avnd n vedere aceast cir, exist un potenial oarte mare decretere a numrului de clieni locali ai unei aaceri prin optimizarea online

    local. Datorit paginilor Google+ or Business aacerile locale i pot crete vizibilitateaonline n zona geograc n care activeaz.

    business

    SEO local prin intermediulGoogle+

    Figura 1

    Radu [email protected]

    QA i Web designer

    @ Small Footprint

  • 7/29/2019 Today Software Magazine N8/2013

    21/44

    21www.todaysoftmag.ro | nr. 8/2013

    TODAY SOFTWARE MAGAZINE

    oraul Cluj-Napoca nu deine un website propriu. n plus vedemi zona n care se gsete i ratingul oarte bun pe care l are.

    O a doua modalitate prin care proprietarii de aaceri localepot atrage clieni noi, olosind Google+ or Business, este prinintermediul reelei sociale Google+. n doar 2 minute putemcuta cazare ntr-un ora n care suntem pentru prima dat, olo-sind butonul Local din meniul principal al contului Google+.Cautm hotel 5 stele (locaia curent va Cluj-Napoca datoritIP Geolocation), iar rezultatele ne vor prezenta hotelurile de 5stele din ora (Figura 2), iar pe baza scorului i a locaiei putem

    alege unde ne cazm.Rezultatele locale ale unei cutri se pot modica n unciede review-urile i rating-ul oerit de ctre prietenii din prolulGoogle+. Dac persoanele din cercurile tale au apreciat un anu-mit restaurant, acela i va aat i ie printre primele rezultate.Practic aceast integrare ntre reeaua social a Google i paginilelocale oer nite recomandri, iar acest lucru poate duce la cre-terea constant a numrului de clieni.

    Pe baza acestor exemple, putem vedea c lipsa unei paginiGoogle+ or Business va ace ca aacerea sau magazinul dumnea-voastr s nu apar n aceste cutri locale, pierznd oarte mulipoteniali clieni.

    Pentru a putea crea o pagin Google+ or Business vom avea

    nevoie de un cont Google+. Din meniul acestui cont, vom selectaMore i apoi Pages. n pagina care se va deschide selectm CreateNew Page, iar apoi tipul paginii i anume Local Business or Place.Paii urmtori presupun completarea prolului cu datele nece-sare, iar mai apoi vericarea sa. Acesta se va ace prin intermediulunui cod pe care l vei primi prin pot, la adresa specicat nprol.

    Recomandri pentru optimizarea paginii Google+ orBusiness

    Periodic trebuie s ne asigurm c inormaiile prezente peaceast pagin sunt actualizate. n acest mod evitm situaiile n

    care pierdem clieni din cauza aptului c datele de contact sauadresa nu mai sunt valabile. Pe lng actualizarea prolului tre-buie s avem n vedere i urmtoarele elemente pentru a prota lamaxim de potenialul paginii noastre:

    Utilizarea unui numr de teleon ix (avnd i preixuljudeului) ajut algoritmii de cutare la determinarea pro-ximitii persoanei care caut a de locaia aacerii;

    Este recomandat olosirea cuvintelor cheie numai ndescriere i categorii. itlul nu trebuie s conin cuvintecheie pentru c acestea pot crea conuzii;

    Pagina trebuie s conin ct mai multe otograi pentru a mai atrgtoare;

    n rubrica external website este de preerat s adugailinkuri spre paginile Contact sau Localizare n locul adreseiweb a sitului;

    ndemnai clienii s oere review-uri aacerii dumneavoas-

    tr pe pagina Google+; Pregtii o strategie pentru eedback-ul negativ (n caz c

    va veni). Acest lucru v poate ajuta s rectigai un clientnemulumit.

    Figura 2

  • 7/29/2019 Today Software Magazine N8/2013

    22/44

    22 nr. 8/2013 | www.todaysoftmag.ro

    programare

    Puncte de scalabilitate pecloud

    Cnd ne gndim la cloudce ne vine nminte? Una, dou sau mai multe instanepe care le inem ntr-un cloud, iar cndavem nevoie de mai multe resurse putems cretem oarte uor numrul de instane.

    n momentul de a un provider decloudprecum Microso ne oer mult mai

    multe puncte de scalabilitate. n cadrulacestui articol vom vedea prin ce altemoduri putem s crem o aplicaie pentrucloudcare s e scalabil i s oloseascserviciile pe care Windows Azure le punela dispoziie.

    Content Delivery NetworkS ne imaginm c avem o aplica-

    ie web care conine oarte mult coninutstatic. Prin coninut static nelegem orice

    coninut precum imagini, CSS, HMLcare nu se schimb n ecare secund (laecare requestn parte). n mod normal nmomentul n care observm c ncrcareape mainile noastre este mare vom ncercas cretem numrul de instane. Acest lucrupoate s e o soluie la problema noastr,

    dar din punct de vedere a costurilor s-arputea s nu e cea mai bun.Chiar dac vom ncerca s acem cache

    la coninut pe server (prin IIS sau altemetode), toate request-urile vor ajungepn la mainile noastre. Din aceast cauzpentru ecare request acestea o s e nevo-ite s rspund, consumnd resursele pecare le avem la dispoziie.

    n acest caz o soluie pentru problemanoastr poate s e olosirea unor Content

    Cloud un alt buzz word pe care l auzim aproape n ecare zi. n momentulde a exist mai muli provideri care oer acest serviciu: Amazon, Microso(Windows Azure), Google, Rackspace.Radu [email protected]

    Senior Sotware Engineer@iQuest, proiectele pe care

    lucreaz sunt de tip LoB, n generalolosind ultimele tehnologiiMicrosot. Face parte din grupulentuziatilor, motiv pentru careii place s fe la curent cu tot ceapare nou in domeniul IT, in spe-cial din punct de vedere sotware.

  • 7/29/2019 Today Software Magazine N8/2013

    23/44

    23www.todaysoftmag.ro | nr. 8/2013

    TODAY SOFTWARE MAGAZINEprogramare

    Delivery Network (CDN). Prin inter-mediul acestui serviciu coninutul staticpoate s e cache-uitpe dierite CDN-urin uncie de locaia izic a clientului.oate cererile pentru coninutul static os e rezolvate de ctre CDN-uri. n modnormal un CDN poate s se ocupe doarde coninutul static, dar noile versiunide CDN-uri suport i coninutul dina-mic. Acest serviciu este oerit i de ctreWindows Azure i poate s e integrat cuuurin n aplicaiile noastre.

    Prin olosirea unui mecanism delivrare a coninutului precum acesta, mai-nile care gzduiesc aplicaia noast nu vormai lovite la ecare cerere a unei resurse.n mod automat nivelul de ncrcare aacestora va scadea destul de mult.

    CacheUrmtorul loc n aplicaie unde putem

    s introducem oarte uor un punct descalabilitate este cache-ul. Ca s evitm sacem nenumrate request-uri la dieriteservicii externe sau s recalculm dieriiparametri, putem s olosim un mecanismde caching.

    Windows Azure oer acest serviciu ndierite moduri. Avantajul olosirii unuiserviciu pentru a ace cache la date esten momentul n care avem nevoie s sca-lm mecanismul de cache nu trebuie s nepunem problema de achiziionarea uneimaini, a licenelor i sincronizarea aces-tor noduri.

    n prezent, cnd crem o main nWindows Azure putem s speciicm

    ct memorie RAM s e alocat pentrucache. Un alt sistem de caching este princrearea unor maini dedicate pentru acestlucru, n care toat memoria RAM va ialocat pentru caching. n ambele variante,

    sincronizarea datelor dintre dou sau maimulte instane de cache este suportatnativ. Aceste setri se pot ace nainte sacem deployla soluie.

    A treia variant de cachingpe care o

    avem la dispoziie este prin olosirea unuiserviciu dedicat de cache. n acest caz, noinu trebuie s ne ocupm deloc de instane,aceast resurs ind vzut n ntregime caun serviciu.

    Folosirea unui mecanism de cachingde acest gen ne ia de pe umeri problemepe care ni le poate pune un mecanism decachingclasic. Probleme precum sincro-

    nizarea sau adugareaunui nou nod de cachedispar n totalitate.

    Video streamPn acuma am

    analizat dou problemeclasice care apar norice aplicaie web. Darce putem ace dac estenevoie s acem streamvideo. Dup cum toiitim, acest lucru esteextrem de costisitornu doar din punct deve der e a re su rs el or

    consumate pe partea deserver ct i a bandei de

    internet.n mod normal putem s ajungem s

    avem maini dedicate care s se ocupe destreaming video. Iar momentele n careavem oarte muli clieni activi pot s nepun probleme destul de mari. Pentruaceste cazuri Windows Azure ne vine najutor cu un serviciu dedicat pentru acestlucru. Windows Azure Media Services seocup n totalitate de streaming-ulvideo.

    ncepnd de la partea de encoding, ajun-gnd la encriptare i livrare a coninutului(ofine i online).

    Acest serviciu elibereaz n totalitateinstanele noastre, care ar trebuit s se

    ocupe de procesarea i livrarea acestuia.Fiind un serviciu dedicat pentru acestlucru, scalabilitatea ne este asigurat dinstart.

    Servicii webMomentan am vzut trei locuri die-

    rite unde putem s scalm olosind dieriteservicii n cloudr s e nevoie s multi-plicm numrul de instane a aplicaiei. nuncie de tipul de aplicaie, s-ar putea sexpunem dierite servicii web care colec-teaz dierite inormaii de la client.

    Ce putem s acem dac existmomente cnd exist un numr prea marede clieni care doresc s se conecteze lanoi? n mod normal am ncerca s alocm

    un numr mai mare de instane care s seocupe de acest lucru.O soluie pe care Windows Azure ne-o

    oer este Service Bus Relay. Prin interme-diul acestui serviciu putem s expunemorice serviciu web de tip re and orget.oate cererile o s ie stocate sub ormaunei cozi de mesaje, iar serviciul nostruo s le poate procesa pe rnd. Chiar dacnumrul de cereri crete extrem de mult,serviciul pe care l avem expus la clieni os e mereu disponibil.

    Windows Azure Service Bus Relay

    poate s e integrat cu uurin n aplica-ia noastr. Singura modicare de care estenevoie ntr-o aplicaie care olosete WCFeste modicarea ierului de congurare.

    Comunicare ntre instanen general cnd avem o aplicaie com-

    plex, vom avea dierite tipuri de mainipe care vor rula componente ale aplicaieinoastre. Va i necesar s asigurm ntreaceste instane un mod de comunicare per-sistent i independent de ecare instan n

    parte.Putem s ncercm s implementmun sistem de comunicare prin intermediulunei baze de date sau prin intermediulaltei instane care s se ocupe doar de acest

  • 7/29/2019 Today Software Magazine N8/2013

    24/44

    24 nr. 8/2013 | www.todaysoftmag.ro

    programarePuncte de scalabilitate pe cloud

    lucru. n momentul n care este nevoie sscalm, ar i necesar s ne gndim cumputem s rezolvm probleme precum sin-cronizarea instanelor.

    Windows Azure ne vine n ajutor,punnd la dispoziie dierite moduri detrimitere de mesaje. oate aceste serviciisunt accesate pe baza unui URL i pot se accesate din orice locaie de pe internet.

    Cel mai de baz serviciu, dar care are icele mai mici costuri este Windows AzureQueues. Acest coad de mesaje ne permites distribuim mesajele ntr-un mod oartesimplu, rapid i iein. Dac este necesar sputem distribui mesajele la mai muli con-sumatori, s avem suport de death-letterssau s putem garanta ordinea mesajeloratunci cnd lucrm cu Windows AzureService Bus Queues i Windows Azure

    Service Bus opics.

    Trasmitere de dateO aplicaie client-server poate s

    nsemne un schimb permanent de date.De oarte multe ori acest lucru nseamnexpunerea de dierite servicii web princare clienii notri pot s execute query-uripeste o baz de date. n aceste cazuri apli-caia noastr va trebui s conin instanecare expun acest serviciu i o baz de date(relaional sau non-relaional). Pe lng

    c este nevoie s inem aceste instane va

    nevoie s ne ocupm i de mentenanaacestor servicii web.

    n astel de cazuri ne putem imaginantr-un alt mod sistemul nostru. Putems stocm i s expunem datele pe care leavem prin intermediul Windows Azureable Storage Service. Aceste tabele non-relaionale ne permit s stocm sute de gigade coninut r nici un el de probleme.

    Cnd dorim s olosim o astel de solu-ie ne pot aprea n minte dou probleme:ce inormaie poate s acceseze iecareclient i audit. Prin intermediul unortoken-uri pe care le putem genera pentruecare client n parte putem s denim lace coninut are clientul acces, ce el de ope-raii poate s execute i ct timp un tokeneste valabil. Acest uncionalitate poartnumele de Shared Access Signature i ne

    permite s eliminm din ecuaie instanelecare trebuie s oere date clienilor. Acestetabele nu trebuie s reprezinte modul ncare stocm noi datele intern, ci datele pecare noi dorim s le oerim clienilor notri.

    Windows Azure Storage Servicesuport n mod nativ audit-ul. ot ce estenecesar este s l activm i s specicmla ce el de operaii dorim s acem audit.

    Folosind o astel de soluie va nece-sar s avem o component care se ocupde generarea i managmentul acestor

    token-uri. Nu mai avem nevoie de alte

    componenete.

    ConcluzieAm analizat dierite modaliti prin

    care putem s acem aplicaia noastr sca-labil. ncepnd de la dierite sisteme decache sau de trimitere de mesaje, la serviciicare ne permit s acem stream video ar sne punem problema de alocare de resursesau de securitate.

    Cel mai important lucru pe care trebuies l acem cnd ncepem s ne gndim lao aplicaie n cloudeste s ncercm sidentiicm toate punctele n care putems scalm i s cutam servicii care ne potoeri acest lucru. n cazul n care dieriteuncionaliti de care avem nevoie nu leputem gsi deja pe cloudatunci este bines ncercm s le separm pe instane die-

    rite sau cel puin pe dierite procese. Astelnct dac este nevoie s scalm, s ne emai uor s cretem numrul de instanecare se ocup de o anumit uncionalitate.

    n ziua de azi o soluie cloudnseamnmai mult dect mai multe maini pe careruleaz aplicaia noastr mpreun cu unload balancer - scalabilitate pe orizontal.Cloudnseamn o multitudine de serviciicare vin n ajutorul nostru pentru a puteacrea aplicaii mai complexe i care s sca-leze acolo unde avem nevoie.

  • 7/29/2019 Today Software Magazine N8/2013

    25/44

    25www.todaysoftmag.ro | nr. 8/2013

    TODAY SOFTWARE MAGAZINEprogramare

    Conceptul In-Memory Database

    Volumul de date din cadrul sistemelorde business actuale se a ntr-o continucretere, calitatea datelor este oarte dierit,de la date structurate la cele nestructurate.Odat cu apariia tehnologiilor Mobile s-aschimbat i modul de acces al datelor astelnct userii au acces real-time, iar timpulde rspuns trebuie sa e minimal ( < 1s ).

    n cazul sistemelor clasice de mana-gement al bazelor de date, datoritlimitelor tehnologice, ncrcarea datelor seace printr-o separare a soluiilor de data

    management n procesri transzacionale (OLP Online ransaction Processing) ianalitice ( OLAP - Online application pro-cessing).

    Exemplu de In-Memory DB IMDB Data rmnepermanentn memorie. M e m o r i a p r i n c i p a l e s t e

    persistenaprimar. otui : loggarea se ace pe disk/

    recuperarea datelor se ace tot de pedisk.

    Accesul la memoria principal este

    nouaprovocare. Algoritmii de cache/structurile de

    date sunt cruciale.

    Generaia actual de soluii SAP Enter-prise

    Arhitectura generaiei actuale desisteme de business reect condiiile teh-nologice i evoluia soluiilor de business :

    Database layer : Sistemele demanagement de baze de date aost construite pentru a optimiza

    perormana accesului la harddisk,de exemplu, prin minimizarea citiriin memoria principal a numruluide pagini de disk la procesarea unuiquery.

    Business application layer :Soware-ul de business a ost con-struit olosind paradigma procesriisecveniale. abelele de baze de dateerau aduse din baza de date, pro-cesate rnd cu rnd, si apoi repuse

    napoi n baza de date.

    Figura 2 ilustreaz osituaie tipic pentru unsoware de tip enterprise ngeneraia actual de soluii.Companiile de mari dimen-siuni posed mai multesisteme de tip enterpriseresource planning(ERP) e-care cu baza de date propriepentru datele operaionale.Datele analitice sunt conso-lidate ntr-un enterprise data

    warehouse i consumate dectre business useri cu aju-torul soluiilor de BusinessIntelligence (BI).

    In-Memory Database -

    Platorma real-time SAP HANA

    Dezvoltarea soluiilor de business SAP reprezint o continu provocare extinspe doua planuri att la nivel tehnic ct i la acela de cunoatere al mediului deaaceri. Nevoia de perorman i adaptabilitate ridicat n crearea unui sowarede business SAP implic inovaie, ale crei rezultate revoluionare deja aplicabile am dorisa le expunem n rndurile ce urmeaz.

    Horea Raiu

    [email protected]

    Director Departament SAP@ .msg systems Romania

    Victor [email protected]

    SAP IT Consultant@ .msg systems Romania

    Figura 1 Exemplu de structur a unei BD In-Memory

  • 7/29/2019 Today Software Magazine N8/2013

    26/44

    26 nr. 8/2013 | www.todaysoftmag.ro

    Modul n care revoluioneaz SAP HANAaplicaiile de business i beneciileimediate pe care le aduce

    n aplicaiile nanciare i de business,

    dierite tipuri de balane totale sunt deobicei persistate sub orma de agregatematerializate. n cazul SAP HANA si a sal-vrii datelor n memorie , aceste agregatematerializate pot i eliminate astel ncttoate calculele de balane i sume necesarerapoartelor sunt determinate real-time cuo perorman ridicat a documentelor, deexemplu cele contabile.

    n situaia utilizrii unui system deDBMS classic, necesitatea permanent de aavea acces la inormaii actualizate conduce

    la crearea de tabele adiionale pentru stoca-rea acestor date. n cazul SAP HANA acestetabele sunt eliminate, inormaiile necesareputnd calculate n timp real, astel sim-plicndu-se modelul de date.

    oate modulele SAP alturi de rele-ase-urile noi sunt si vor adaptate pentru

    platorma In Memory-Database SAPHANA. Datorit succesului avut pnacum SAP HANA este contractat i deaplicaiile noi dezvoltate n SAP-ABAP.

    SAP oer un road-map incrementalcare permite companiei sau organizaieis exploreze tehnologiile de ultim or,s rein oportunitile n scenarii side-by-side, i s ie pregtit pentru rata ncontinu cretere de a ace business.

    Platorma tehnic SAP HANAPlatorma SAP HANA nu se rezumla a i abordarea SAP a conceptului deIn-Memory Database, ci vine cu o serie deinovaii menite s oloseasc la maximum

    progresul tehnologic din ultimii ani. ncontinuare vom discuta structura internaa platormei, evideniind aceste inovaiicare diereniaz SAP HANA de alte soluiiIMDB.

    Interee. SQL ScriptSpre deosebire de un DBMS obinuit

    platorma SAP HANA oer, pe lng inter-aa SQL standard, i alte interee precumSQLScript sau MDX(multidimensionalexpression). Existena acestora aduce unplus de exibilitate platormei i permitedezvoltarea de aplicaii optimizate pentruprocese n timp real.

    Odat cu implementarea pe scar totmai larg a bazelor de date In-Memory

    este de ateptat ca i enomenul de CodePushdown s devin tot mai recvent ntl-nit - acesta presupune migrarea logicii de

    business considerate a data-intensive dela nivelul aplicaie la cel al bazelor de date.Interaa SQLScript a SAP HANA are rolul

    de a veni n ntmpinarea acestui enomen,SQLScript ind un limbaj dezvoltat de SAPtocmai cu scopul de a sprijini implemen-tarea unei logici complexe la nivelui bazeide date.

    Instruciunile SQL Script au la bazoperaii SQL standard i proceduri prede-nite. Astel, din punct de vedere conceptual,SQLScript poate asemnat cu procedurilestocate, SQL Script aducnd ns mbu-ntiri semniicative n ceea ce privetepotenialul de optimizare al operaiilor.Astel, pentru a i procesate, procedurileSQLScript sunt compilate ntr-un plan deexecuie bazat pe limbajul L iar mai apoin limbaj C++ n vederea execuiei eective.

    De asemenea la nivelul layer-uluiC++ au ost dezvoltate i o serie de libr-rii menite s uureze implementarealogicilor de business n cadrul bazei de date.Exemple de astel de librrii sunt BusinessFunction Library(BFL) i Predictiveanalysis library(PAL).

    ParalelismUn alt aspect important de care s-a

    inut cont n dezvoltarea platormei SAPHANA este capacitatea masiv de para-lelizare a generaiei actuale de procesoaremulticore.

    Astel, un benchmark1 eectuat de Intelmpreun cu SAP pe platorma HANA siutiliznd procesoare Intel a relevat o rela-ie de natur aproape liniar ntre cretereaparalelismului(numrului de thread-uri) iscderea timpului de execuie la operaii pe

    baza de date.Secretul din spatele acestor perormaneconst n utilizarea unui model computa-

    ional optimizat. Practic, instruciunileSQLScript sunt compilate i reprezentatesub orma unui data ow graph un gra

    aciclic orientat n care ecare nod al gra-ului reprezint o transormare ce trebuie

    1 S tudiul compl et : ht tp : / /ww w.inte l .com/c o n t e n t /w w w / u s / e n / h i g h - p e r or m a n c e - c o m pu t i n g /high-perormance-computing-xeon-e7-analyze-business-as-it-hap-pens-with-sap-hana-soware-brie.html

    Figura 2. Soluie enterprise SAP din generaia actual

    Figura 3. Structura interna a platformei tehnice SAP HANA

    Figura 3. Migrarea tuturor aplicaiilor

    (total sau parial) pe platforma SAP HANA

    In-Memory Database - Platorma real-time SAP HANAprogramare

  • 7/29/2019 Today Software Magazine N8/2013

    27/44

    27www.todaysoftmag.ro | nr. 8/2013

    TODAY SOFTWARE MAGAZINE

    aplicat asupra setului de date.ipurile de operaii ce pot nglobate

    n aceste noduri sunt: Operaii pe mulimi (agregare, reu-

    niune, intersecie), Instruciuni SQL, Script-uri reprezentnd operaii

    complexe, care nu pot i modelatesub orma unui data ow graph.

    Reprezentarea instruciunilor subaceast orma permite o mai bun partiio-nare a datelor n submulimi independente,care pot procesate n paralel. Utilizarea

    unei asemenea abordri oer posibilitateaplatormei SAP HANA s prote la maxi-mum de puterea de procesare masiv ageneraiei actuale de multi-core-uri, astelexplicndu-se i rezultatele uimitoare obi-nute n benchmarkulIntel.

    Column/Row StoreUna dintre proprietile distinctive ale

    SAP HANA este aptul c dispune att deun model de stocare bazat pe rnduri(rowstore) ct i pe coloane(column store).

    Dei o tabel este prin deiniie bidi-

    mensional, memoria calculatorului esteorganizat ca o succesiune secvenial delocaii. Astel, decizia de a stoca o tabelsub orma unei succesiuni de rnduri,respectiv de coloane, poate avea un impactsemnicativ asupra perormanei aplicaiei.

    SAP HANA oer posibilitatea de alua aceast decizie individual pentru e-care tabel, lund n calcul natura acesteia.abelul urmtor prezint situaiile n careeste recomandat utilizare unui row store,respectiv a unui column store.

    Row store Column Store

    Tabel cu numr redusde rnduri, de ex.tabele de congurare

    Operaii executatepe o singur (saupuine) coloane

    Row store Column Store

    Aplicaia proceseazcte un rnd

    Numr mare dernduri, i suntnecesare operaii pe

    coloane(agregare,cutare .a.m.d.)

    Agregrile nu suntnecesare

    Numr mare de coloaneal tabelei

    Coloanele coninvalori distincte,astfel potenialul decompresie a datelorind redus

    Tabela este parcursdoar pe baza valo-rilor din anumitecoloane

    Evaluarea perormaneiEvident, discuia despre platorma SAP

    HANA nu poate i ncheiat altel dectrspunznd la ntreabarea Care este c-tigul concret de perorman obinut prin

    migrarea pe o platorm SAP HANA?Pentru a cuantica acest ctig au ost rea-lizate nenumrate benchmark-uri, probabilcele mai relevante ind cele desurate ncontextul de Data Warehousing.

    n continuare vor prezentate pe scurtrezultatele unui asemenea benchmark rea-lizat pe platorma SAP HANA. n cadrultestului s-a urmrit analiza puterii de pro-cesare analitice a SAP HANA n contextulBI real-time.

    estul a ost executat pe un set de datede 100B, acestea ind stocate ntr-o tabel

    de apte cu 100 de miliarde de nregistrrii n tabelele de dimensiuni aerente. Setulde date reprezint nregistrrile corespun-ztoare pentru un interval de cinci ani aleunui modul de SD (Sales&Distribution).

    Operaiile alese pentru evaluare sunt denatur mixt, ele acoperiind mare parte dinactivitile de BI obinuite:

    General reporting, Iterative querying (drill downs), Ranking, Year-over-year analysis.

    estul a urmrit att msurarea tim-pului de execuie al unui query ct ideterminarea throughput-ului (exprimat canumr de query-uri/or)

    RezultateMajoritatea query-urilorau rezultat n

    timpi de rspuns de sub o secund, pni cea mai complex operaie, eectuatasupr ntregului set de date de cinci ani,ncheindu-se n mai puin de 4 secunde2.

    Desigur, ceea ce conteaz ntr-un naleste modul n care aceast mbuntirede perorman este resimit de end-userii sistemului n mediul productiv. Sevehiculeaz c migrarea de pe un DBMSobinuit(cu stocare pe suport magnetic) peSAP HANA aduce cu sine mbuntiri cuun actor de cteva mii.

    Acest apt este susinut i de declarai-ile diverilor clieni care au trecut deja prinaceast etap:

    [R]eplacing our enterprise-wide Oracledata mart and resulting in over 20,000-times

    speed improvement processing our mostcomplex reight transportation cost calcula-tion . . . our stand-alone mobile applicationsthat were previously running on Oracle arenow running on SAP HANA. Our 2,000local sales representatives can now interactwith real-time data instead and have theability to make on-the-fy promotion decisi-ons to improve sales. Nongu Spring

    [O]ur internal technical comparisondemonstrated that SAP HANA outperorms

    traditional disk-based systems bya actor o 408,000. Mitsui Knowledge Industry Co. Ltd.

    With SAP HANA, we see a tremendousopportunity to dramatically improve ourenterprise data warehouse solutions, dras-tically reducing data latency and improvingspeed when we can return query results in 45seconds rom SAP NetWeaver BW on SAPHANA versus waiting up to 20 minutes orempty results rom SAP NetWeaver BW on atraditional disk-based database.

    Shanghai Volkswagen

    2 Detaliile testului pot i consultate aici: http://download.sap.com/download.epd?context=CCBE2C4417A4583A96A74DC0E2D820576429CADB38C81772D70FE496C29B362BCBBAB6D377ADC5D7063F40D27A0790298C2238F3F161645E

    Figura 4. Timpi de procesare pentru un set de date de 120 de mili-

    oane de nregistrri. Variaia timpilor cu creterea paralelismului

  • 7/29/2019 Today Software Magazine N8/2013

    28/44

    28 nr. 8/2013 | www.todaysoftmag.ro

    Code review

    De ce este Code Review-ul importantSteve McConell prezint n cartea sa

    Code Complete (http://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670) ctevaargumente oarte bune despre eicienaprocesului de Code Review:

    estarea soului n sine are ecacitatelimitat rata medie de detectare a deec-telor este de 25% pentru unit testing, 35%pentru testarea uncional i 45% pentruintegration testing. n opoziie, ecacitateaCode Review-ului si Design Review-uluieste ntre 55%-60%. Studiile de caz pen-tru revizuirea rezultatelor aplicrii CodeReview-ului au ost impresionante:

    Dintr-o serie de 11 proiecte sowaredezvoltate de aceeai echip, primele5 au ost dezvoltate r a avea proce-sul de Code Review, iar urmtoarele

    6 au ost dezvoltate olosind i proce-sul de Code Review-ul. Dup ce toatecele 11 proiecte au ajuns n producie,primele 5 au avut o rat de 4.5 eroripe 100 de linii de cod. Urmtoarele6 au avut doar 0.82 de erori pe 100de linii de cod. Review-urile aumbuntit rata de erori cu 80%.

    Aetna Insurance Company a gsit82% din erori cu ajutorul CodeReview-ului ceea ce le-a permis sscad i numrul de resurse alocate

    dezvoltrii cu 20%. Proiectul Orbit de la IBM utiliza

    11 nivele de review. A ost livrat latimp i a avut doar 1% din numrul

    de deecte care n mod normal ar aprut.

    Un studiu realizat la companiaA& a artat c dup introducereareview-urilor numrul de deecte asczut cu 90%, iar productivitatea acrescut cu 14%.

    Jet Propul sions Laboratori es est i-

    meaz c economisesc 25.000$ perreview.

    Motivele principale pentru care seace Code Review-ul sunt:

    Gsirea i xarea deectelor devremen procesul de dezvoltare;

    O mai bun nelegere comun acodului surs;

    Ajut la meninerea unui nivelde consis ten n des ign iimplementare;

    Ajut la identiicarea deectelor

    comune n echip si la reducereatimpului de xare;

    Ajut la creterea ncrederiistakeholder-ilor asupra calitii pro-cesului de devoltare;

    O nelegere comun i uniorma codului ajut i la reducereaimpactului n proiect atunci cndanumii membrii ai echipei devinindisponibili;

    O perspectiv nou. O alt pere-che de ochi crete gradul de

    obiectivitate. La el ca i n cazulseparrii ntre dezvoltare i testare,Code Review-ul introduce distananecesar pentru a recunoate mai

    Code Review-uleste o examinare sistematic a codului surs. Scopul acestui proces

    este identicarea i corectarea problemelor trecute cu vederea n aza iniial descriere a codului, mbuntind n acelai timp calitatea codului ct i abilitile

    dezvoltatorilor.

    Mdlin [email protected]

    Java discipline lead@ Endava

    programare

  • 7/29/2019 Today Software Magazine N8/2013

    29/44

    29www.todaysoftmag.ro | nr. 8/2013

    TODAY SOFTWARE MAGAZINE

    uor problemele; M n d r i e / r e c o m p e n s .

    Recunoaterea abilitilor este orecompens semniicativ pentrumuli programatori;

    Coeziune mai bun a echipei.

    Pentru a nelege ct de important estes xm cat mai multe deecte nc din azade dezvoltare, avei mai sus un grac des-pre costurile unui deect n dierite aze aleprodusului:

    Ariile principale pe care se concen-

    treaz Code Review-ul: Unit testing, Documentarea codului i convenii

    de codare, ratarea erorilor, Resource leaks, Tread Saety, Structuri de cotrol, Perorman, Funcionalitate, Securitate, Consisten cu designul i arhitec-

    tura existent Utilizarea corect a librriilor

    externe

    Roluri i responsabilitiDezvoltatorul : este persoana care

    a scris codul ce urmeaz a i revizuit ieste cel care iniiaz cererea pentru CodeReview.

    Reviewer/s: sunt persoanele care vorrevizui codul i vor raporta problemelegsite devoltatorilor.

    La el ca orice alt abilitate, reviewer-ii

    devin mai buni cnd oarte mult prac-tic. Iat cteva ponturi care v vor ajuta spornii pe drumul cel bun.

    Saturi pentru Dezvoltarori

    1. Primul reviewer este chiar autorulcodului i.e. U

    2. Creeaz un checklist cu lucrurilepe care se ocuseaz cel mai multprocesul de Code Review. O astelde list ar trebui s e destul de sim-plu de cut. De obicei, se urmrescideile cele mai importante din stan-dardele de codare. Pentru c este olist personal, te poi concentra peariile pe care tii c ai cele mai mariprobleme i poi omite ariile despre

    care tii c te descurci oarte bine.Nu doar c vei reduce numrul deprobleme gsite, dar vei