83994029 Iftode Viorel Aplicatii Mobile Lucrare Licenta

Embed Size (px)

Citation preview

  • 7/28/2019 83994029 Iftode Viorel Aplicatii Mobile Lucrare Licenta

    1/82

    UNIVERSITATEA ALEXANDRU IOAN CUZA IAI FACULTATEA DE ECONOMIE I ADMINISTRAREA AFACERLOR SPECIALIZAREA: INFORMATIC ECONOMIC

    APLICAII MOBILE

    Absolvent Viorel IFTODE

    2008

  • 7/28/2019 83994029 Iftode Viorel Aplicatii Mobile Lucrare Licenta

    2/82

    CuprinsINTRODUCERE .................................................................................................................................................. 3.NET COMPACT FRAMEWORK.............................................................................................................................. 6 MICROSOFT SQL SERVER COMPACT 3.5 ................................................................................................................ 6 SCENARIU DE APLICAIE NMEDIILE MOBILE .................................................................................................. 8 DE CE REPLICAREA DE TIP SINCRONIZARE?................................................................................................................ 9 SCENARIU ..........................................

    ............................................................................................................10 MODEL DE IMPLEMENTARE A APLICAIILOR N MEDIUL MOBIL

    .....................................................................11 1. CONFIGURAREA ADAPTORULUI DE REEA I A SERVERULUI IIS DE PE MAINA PE CARE SE VOR AFLA DISTRIBUITORUL I EDITORUL ...................................................................................................................................................................11 2. CONFIGURAREA DISPOZITIVELOR MOBILE (ABONAII).............................................................................................13 3. SCHEMA BAZEI DE DATE A APLICAIEI H5N1 .......................................................................................................13 4. PREGTIREA AGENTULUI SNAPHOT ....................................................................................................................15 5. PREGTIREA DIRECTORULUI SNAPSHOT...............................................................

    ................................................16 6. REALIZAREA PUBLICAIEI BAZEIDE DATE BD_H5N1................................................................

    ..............................16 7. SETAREA PERMISIUNILOR ......................

    ................................................................................

    ..........................21 8. REALIZAREA SNAPSHOTULUI ........................

    ................................................................................

    ....................22 9. CONFIGURAREA SERVERULUI IIS ..........................

    ................................................................................

    .............22 10. REALIZAREA SUBSCRIERII .....................................

    ................................................................................

    ..........24 REALIZAREA APLICAIEI H5N1 ..........................................

    ................................................................................

    ..30 REALIZAREA CONEXIUNII CU BAZA DE DATE H5N1_MEDIC.SDF ......................

    ............................................................34 MEDIC.VB & SINCRONIZARE.VB ......................................................................

    .....................................................36 MPACHETAREA I DISTRIBUIREAAPLICAIILOR MOBILE .........................................................................40 MODALITI DE DISTRIBUIRE A APLICAIILOR ..........................................................................................................41 MPACHETAREA I DISTRIBUIREA APLICAIEI H5N1 ...................................................................................................41 STABILIREA FIIERELORCE ALCTUIESC APLICAIA .....................................................................................................41 REALIZAREA FIIERULUI .CAB ..............................................................................................................................42 SPECIFICAREA ACIUNILOR CE SE VOR EFECTUA N TIMPUL INSTALRII /DEZINSTALRII ....................................................

    ....48 REALIZAREA FIIERULUI .INI ................................................................................................................................

    .49 CONCLUZII ..................................................................

    ................................................................................

    ....52 ANEXE ...................................................................

    ................................................................................

    ..........54 ANEXA 1: MEDIC.VB..................................................

    ................................................................................

    .......54 ANEXA 2: SINCRONIZARE.VB .............................................

    ................................................................................

  • 7/28/2019 83994029 Iftode Viorel Aplicatii Mobile Lucrare Licenta

    3/82

    ..55 ANEXA 3: AUTENTIFICARE.VB..................................................

    ............................................................................57 ANEXA 4: APPH5N1.VB ....................................................................................................................................59 ANEXA5: CONSULTATIE.VB .................................................................................................................................62 ANEXA 6: CONDITII _INSTALARE_DEZINSTALARE.VB ..................................................................................................71 ANEXA 7: VARIANTA 1 (VARIANTA CLASIC) ...........................................................................................................73 ANEXA 8: VARIANTA 2 (VARIANTA CE FOLOSETE LINQ) .......................................................................

    .....................76 BIBLIOGRAFIE ...........................................................................................................................

    ......................79

    2

  • 7/28/2019 83994029 Iftode Viorel Aplicatii Mobile Lucrare Licenta

    4/82

    IntroducereRitmul n care tehnologia avanseaz este suficient de rapid astfel nct aproape i detin pe unii s nu in pasul cu ea (cazul telecomunicaiilor, informaticii, autovehiculr, etc.), alteori ritmul acesteia este lent n special n cazul tehnologiilor de vrfunde numrul specialitilor este redus (cazul medicinei, cercetrii spaiale, etc.). Pacei mai rapizi n ultimii ani au fost fcui n domeniul telecomunicaiilor ar fi nevit s notm noile tehnologii dezvoltate n ultimii cinci ani de zile (lucrarea nu i mai atinge scopul, n plus, schimbrile aprute pot fi vazute cu ochiul liber). Telefonia mobil este cea care d tonul n ultima perioad deoarece n ziua de astzi cu ajutunui dispozitiv mobil poi realiza o sumedenie de operaiuni: trimiterea i recepiona de mesaje scrise (eng. Short Message Service SMS), mesaje multimedia (eng. Mul

    timedia Messaging Service MMS);

    accesarea casuei potale prin intermediul protocoaelor Post Office Protocol version 3 (POP3), Internet Message Access Protocol (IM

    AP), Simple Mail Transfer Protocol (SMTP); iniierea i recepionarea de apeluri teleonice Global System for Mobile Communications (GSM), Voice-over-Internet protocol (VOIP), tip teleconferin, etc.; efectuarea de fotografii n format digital; traer de fiiere prin Universal Serial Bus (USB), Bluetooth, Wi-Fi; accesarea internetului prin intermediul GSM, Wireless Application Protocol (WAP), General PacketRadio Service (GPRS), Enhanced Data rates for GSM Evolution (EDGE), Circuit Switched Data (CSD), etc.; accesarea fiierelor multimedia (vizionarea filmelor, ascultarea melodiilor n format MP3, etc.); accesarea diferitelor aplicaii (clieni ERP, avigatori Global Positioning System GPS, dicionare, jocuri, etc.); etc. Motivul pentru care dispozitivele mobile au suferit transformri de la simple terminale deiniiere i recepionare a apelurilor telefonice i pn la terminale cu funcii suplim

    asemeni celor sus menionate, s-a datorat necesitii oamenilor de a accesa informaia iunde i oricnd. Acest oriunde i oricnd s-a putut realiza doar prin intermediul upozitive mobile de mici dimensiuni. Cu timpul cerinele n afaceri au determinat capersonalul unei companii s fie permanent conectat la business (n adevaratul sens al cuvntului nu numai s poat accesa resursele din companie atunci cnd resursa umanse afl fizic la sediu, ci i atunci cnd angajaii se afl n timpul liber i pot efecraiuni de rutin ce nu necesit un efort deosebit fapt care a determinat ca unele copanii s i plteasc angajaii chiar i cnd acetia sunt plecai n vacan). n cels prezentm cum anume pot fi realizate aplicaii destinate dispozitivelor mobile, ceanume avem nevoie pentru crearea acestora, vom exemplifica cu un tip de aplicaieceva mai complex, iar n finalul acestei lucrri vom puncta cteva concluzii referitoae la dezvoltarea aplicaiilor mobile pe platforma .NET. Pentru nceput inem s precizaplicaiile mobile se pot dezvolta pe mai multe platforme folosind diferite limbaj

    e de programare.Tabelul nr. 1 Scurt descriere a principalelor platforme

    Platforma Java ME

    Descriere Micro Edition sau Java ME ofer suportul pentru crearea aplicaiilor careruleaz pe dispozitivele mici fr fir (telefoane mobile, asisteni digitali personali,pagere, etc.). Java ME face parte din platforma Java2, care mai cuprinde J2EE (Java 2 Enterprise Edition) i J2SE (Java 2 Standard Edition). Tehnologia Java ME (J2ME) este asemntoare cu cea J2SE, diferenele constnd n faptul c dispozitivele penare sunt destinate aplicaiile J2ME folosesc resurse limitate. Astfel, pentru a crea astfel de 3

  • 7/28/2019 83994029 Iftode Viorel Aplicatii Mobile Lucrare Licenta

    5/82

    Symbian

    .NET Compact Framework

    Palm OS

    aplicaii este folosit un subset de clase din pachetele java.lang, java.io, java.util, pachete care fac parte din Java Standard Edition. n plus, pentru J2ME au fost construite dou maini virtuale: C Virtual Machine (CVM) i K Virtual Machine(KVM).Acestea ocup puin memorie i necesit mult mai puine resurse dect maina virtual sau J2SE. Mediul J2ME este furnizat de ctre Sun n cadrul pachetului Java 2 Micro

    Edition Wireless Toolkit (J2MEWTK).1 Actualmente (la data scrierii acestei lucrri) pachetul este gsit sub denumirea Sun Java Wireless Toolkit for Connected Limited Device Configuration versiunea 2.5.2.2 Este una din cele mai perfomante platforme de dezvoltare pentru dispozitivele mobile Nokia, Fujitsu, Sony Ericsson, Motorola dispozitivele mobile ale cror sistem de operare este Symbian. Platforma ceamai rspndit actualmente este S60 (n proporie de 67%).3 Folosit n dezvoltarea aplor mobile ale cror sistem de operare este Windows Mobile. Spre deosebire de JavaME, .NET Compact Framework folosete n ntregime librrile .NET Framework (dar adaptatpentru dispozitivele mobile). Ultima versiune a fost lansat de ctre Microsoft ladata de 25 Ianuarie 2008 sub numele .NET Compact Framework 3.5. Iniial sistem deoperare destinat dispozitivelor mobile personal digital assistants (PDAs) actualmente deinut de catre Palm, Inc.4

    Tabelul nr. 2 Evaluare comparativ a principalelor platformePlatforma Java ME

    Limbaje programare Java

    Uurin nvare Medie

    Emulator Gratis disponibil n kitul Sun Java Wireless Toolkit for CLDC 2.5.2 n funce de platforma exist emulatoare ce pot fi folosite cu sau fr eforturi financiare. Disponibil odat cu IDE-ul sau gratis descrcnd gratis kitul de pe siteul companiei Microsoft. Sunt disponibile gratis doar anumite emulatoare.

    IDE Eclipse, NetBeans Mobility Pack. Eclipse, Microsoft Visual Studio, NetBeans,etc. Microsoft Visual Studio 2003 / 2005 / 2008.

    Costuri Gratis

    Symbian

    C++

    Dificil

    Gratis sau cu eforturi financiare n funcie de utilitarele folosite. Gratis sau cueforturi financiare n funcie de utilitarele folosite.

    .NET Compact Framework

    VB.NET, C#

    Medie

    Palm OS

    C, C++

  • 7/28/2019 83994029 Iftode Viorel Aplicatii Mobile Lucrare Licenta

    6/82

    Excelent

    Eclipse.

    Gratis sau cu eforturi financiare n funcie de utilitarele folosite.

    1 2

    tefan, T., Cristian, O., Stefan, A., Java de la 0 la expert, Editura Polirom, Iasi, 2003 pg 27-28 Sun Microsystems - http://java.sun.com/javame/downloads/index.j

    sp (accesat pe 07/06/2008) 3 Symbian Ltd. - http://www.s60.com/business/developers/tools?&select1=#72 (accesat pe 07/06/2008) 4 Palm, Inc. - http://www.palm.com/us/developers/ (accesat pe 07/06/2008)

    4

  • 7/28/2019 83994029 Iftode Viorel Aplicatii Mobile Lucrare Licenta

    7/82

    Ultima versiune a sistemului de operare destinat dispozitivelor mobile i dezvoltat de ctre compania Microsoft este Windows Mobile 6.15 (lansat la data de 1 Aprilie 2008). Este un sistem de operare compact i orientat ctre zona de business i poatefi gsit sub forma a trei versiuni (n funcie de performanele hardware ale dispozitiului mobil): Windows Mobile Standard este destinat telefoanelor mobile cu funciiavansate (eng. Smartphone) precum: e-mail, mesaje text, browser internet, etc. (fiind o versiune cu mai puine funcionaliti dect Windows Mobile Classic sau Windowsbile Professional). Windows Mobile Classic este destinat dispozitivelor smart PDA (eng. Personal Digital Assistant) ce nu ndeplinesc i funcia de telefon mobil. Spre deosebire de smartphone, aceste dispozitive au ecran senzitiv al crui rezoluie este de cel puin 240 X 320 pixeli, tastatur cu mai mult de 12 taste, procesor mult

    mai performant, memorie de capacitate ridicat, adaptor de reea wireless, etc. Versiunea sistemului de operare destinat acestor dispozitive ofer inclusiv facilitile M

    icrosoft Office Mobile. Windows Mobile Professional este destinat dispozitivelorsmart PDA ce indeplinesc i funcia de telefon mobil. Versiunea sistemului de operare destinat acestor dispozitive ofer toate funciile oferite de celelalte versiuni.Anterior am spus c Windows Mobile este un sistem de operare orientat ctre zona debusiness. Motivul pentru care am afirmat acest lucru se datoreaz n principal faptului c versiunea 6.1 ofer funcionaliti frecvent cerute n zona afacerilor: coniiune Office6 adaptat dispozitivelor mobile Word, Excel, PowerPoint (permite scrierea i vizualizarea de fiiere Office inclusiv cele generate cu Microsoft Office 2007); ofer faciliti de conectare la csua potal prin intermediul Outlook Mobile7 inclusiv sincronizarea n timp real cu serverul de Exchange direct push); exist diponibil i o versiune Communicator Mobile8 un instant messanger cu funcii avansate;

    navigare internet cu ajutorul unei versiuni a Internet Explorer9; player de coninut multimedia Microsoft Media Player Mobile10; agend ce poate fi sincronizat cu cientul Outlook de pe calculatorul personal; ofer posibilitatea conectrii la distanemote Desktop; compatibil WEB 2.0; are preinstalat unui sistem de gestiune a bazelor de date ct i versiunea 2.0 a Microsoft Compact Framework; prin intermediul System Center Mobile Device Manager 200811 permite personalului IT s gestioneze n mod centralizat dispozitivele mobile i s le integreze n Active Directory (oferind chiar faciliti de implementare de politici de securitate); etc.;

    Dezvoltarea de aplicaii pentru dispozitivele mobile ale cror sistem de operare este Windows Mobile poate fi fcut folosind limbajul nativ C++ sau limbajele C# i VB.NET care sunt gestionate de maina virtual Common Language Runtime (CLR). Spre deosebire de aplicaiile scrise folosind C++, aplicaiile dezvoltate prin intermediul C# i

    VB.NET sunt mai uor de scris i pot fi realizate ntr-un timp mai scurt deoarece programatorii nu vor mai trebui s trateze neaparat aspecte privind managementul memoriei (eng. memory management), managementul firelor de execuie5 6

    Microsoft - http://www.microsoft.com/Windowsmobile/default.mspx (accesat pe 07/06/2008) Microsoft - http://www.microsoft.com/windowsmobile/software/officemobile.mspx (accesat pe 07/06/2008) 7 Microsoft - http://www.microsoft.com/windowsmobile/software/outlookmobile.mspx (accesat pe 07/06/2008) 8 Microsoft - http://office.microsoft.com/en-us/communicator/HA102027021033.aspx (accesat pe 07/06/2008)9 Microsoft - http://www.microsoft.com/windowsmobile/software/iemobile.mspx (accesat pe 07/06/2008) 10 Microsoft - http://www.microsoft.com/windowsmobile/software/mediaplayer.mspx (accesat pe 07/06/2008) 11 Microsoft - http://www.microsoft.

    com/windowsmobile/mobiledevicemanager/default.mspx (accesat pe 07/06/2008)

    5

  • 7/28/2019 83994029 Iftode Viorel Aplicatii Mobile Lucrare Licenta

    8/82

    (eng. thread management), colectorul de gunoaie (eng. garbage collection), etc.Aplicaiile scrise n C# i VB.NET la momentul compilrii lor vor fi convertite ntr-unmbaj intermediar low-level Common Intermediate Language (CIL). La momentul execuiei aplicaiilor, maina virtual CLR va converti codul CIL (prin intermediul compilatorului just-in-time eng. JIT) n cod nativ ce va fi ulterior interpretat de procesor. Deoarece este nevoie de compilarea codului CIL la execuia aplicaiei, aplicaiilece se folosesc de maina virtual CLR vor fi mai lente dect aplicaiile scrise n cod . n cazul dispozitivelor mobile, indicat ar fi scrierea aplicaiilor folosind C++ deoarece aceste dispozitive de mici dimensiuni nu au posibilitatea de a oferi performane hardware considerabile, dar n funcie de timpul pus la dispoziie pentru dezvltarea unei aplicaii, de nivelul de cunotine i experiena cu limbajul de programare

    + pe care o au programatorii, de complexitatea aplicaiei, etc. se poate alege i varianta n care la execuia unei aplicaii va fi folosit maina virtual CLR.

    .NET Compact Framework

    .NET Compact Framework12 este o versiune adaptat pentru dispozitivele mobile a .NET Framework. Folosete aceeai structur de clase ca i versiunea destinat calculatoaor, cu meniunea c la versiunea destinat dispozitivelor mobile unele metode i propriti au fost eliminate (din criterii de performan) i au fost adugate un set de clascifice pentru controlarea / gestiunea device-urilor. Trebuie amintit faptul c aplicaiile smart dezvoltate n oricare limbaj de programare .NET, pentru a putea fi funcionale trebuiesc a fi executate de pe un dispozitiv care n prealabil are instalat framework-ul .NET (corespunztor versiunii sub care acestea au fost dezvoltate).Versiunile Windows Mobile anterioare (5.0 / 2003 SE / 2003 / etc.) nu aveau pre

    instalat componenta .NET, dar pentru c numrul de aplicaii destinate dispozitivelor indows Mobile a crescut i pentru a uura etapa de deployment, Microsoft a inclus n mod implicit Compact Framework n versiunile Windows Mobile 6.0 i 6.1. Actualmente .NET Compact Framework se afl la versiunea 3.5, dar schimbrile eseniale s-au fcut odt cu trecere la versiunea 2.0 (lansat n Octombrie 2005).

    Microsoft SQL Server Compact 3.5Microsoft SQL Server Compact 3.513 este cel mai nou sistem de gestiune a bazelorde date relaionale, produs de ctre Microsoft i destinat dezvoltrii de aplicaii deop ct i pentru dispozitivele mobile (Pocket PC, Smartphone). Trebuie s reinem faptuc SQL Server Compact 3.5 nu ofer o funcionalitate att de puternic precum SQL Serv2005 sau SQL Server 2008. Este o versiune mai simpl, dar care ofer multe faciliti:aza de date SQL Server Compact Edition este ncapsulat ntr-un singur fiier, acest lu

    ru facilitnd instalarea uoar a aplicaiilor prin simpla copiere dintr-un loc n altufa de alte SGBD-uri care necesit export/import de date); SQL Compact Edition ofersibilitatea criptrii bazei de date. Nu doar protejeaz accesul la date prin intermediul unei parole, ci i ntreg coninutul bazei de date este criptat prin algoritmul RSA pe 128 bii, iar n cazul n care baza de date ajunge pe mini nepotrivite, slabe sut ansele ca datele s fie descifrate; dimensiunea unei baze de date poate atinge maxim 4GB (n viitorul apropiat, cu siguran va dispare aceast limitare); integritateferenial deplin (permite inclusiv actualizri n cascad); ACID Atomicitate, Conlare, Durabilitate (suport tranzacional);12 13

    Microsoft - http://msdn.microsoft.com/en-us/netframework/aa497273.aspx Microsoft- http://www.microsoft.com/sql/editions/compact/default.mspx

    6

  • 7/28/2019 83994029 Iftode Viorel Aplicatii Mobile Lucrare Licenta

    9/82

    se instaleaz uor att pe desktop ct i pe dispozitivele mobile; folosete tehnologiaNET n implementare; suport replicarea datelor; etc.;

    Pentru a putea dezvolta aplicaii care s ruleze pe dispozitivele mobile (Smartphone, Pocket PC, etc., ale cror sistem de operare este una din versiunile Microsoft Windows Mobile) este necesar a instala pachetul Microsoft Visual Studio. VariantaVisual Studio ideal pentru dezvoltare este Microsoft Visual Studio 2008 Professional Edition14. Din fericire, aceast variant poate fi descrcat gratuit (n versiuneial) de pe site-ul Microsoft.

    14

    Microsoft - http://msdn.microsoft.com/en-us/vstudio/products/aa700831.aspx

    7

  • 7/28/2019 83994029 Iftode Viorel Aplicatii Mobile Lucrare Licenta

    10/82

    Scenariu de aplicaie n mediile mobileO baz de date distribuit reprezint o colecie de date integrate din punct de vedere ogic, dar care sunt distribuite pe mai multe platforme conectate printr-o reea. Replicarea este un proces prin care serverul de baze de date este responsabil a actualiza i pstra datele aflate pe mai multe servere (copii / transferuri de nregistrri i obiecte ale bazei de date). n anumite cazuri, replicarea poate duce la o cretre a performanelor i a disponibilitii datelor pentru aplicaii. Principalul dezavanal sistemelor centralizate, l reprezint ntreruperea funcionalitii aplicaiilor pariiei unor disfuncionaliti la nivelul serverului, pe cnd, sistemele distribuite n intermediul replicrii pot: pstra copii ale acelorai date pe mai multe maini de ru (astfel aplicaiile vor putea accesa o baz de date local mult mai repede dect pot

    accesa datele unei baze de date aflate pe un server ndeprtat);efectua opera

    ii comlexe ce necesit citiri i prelucrri ndelungate, dar care nu afecteaz performanele

    lui sistem; mbunti timpii de citire / prelucrare a datelor; permite lucrul cu dbazei de date n mod deconectat, iar la cerere i n cazul n care se poate accesa canlul de comunicaie, se vor actualiza posibilele modificri aprute. Microsoft SQL Server suport mai multe tipuri de replicri15: replicarea snapshot; replicarea tranzacnal; replicarea de tip sincronizare (eng. merge replication). Dintre aceste treitipuri de replicare a datelor, doar replicarea sincronizat (eng. merge replication) este compatibil i cu Microsoft SQL Server Compact Edition. nainte de a trece maideparte n a descrie modul de configurare i utilizare a replicrii de tip merge ntr-aplicaie destinat dispozitivelor smart, este necesar a cunoate civa termeni frecvfolosii pe parcursul acestei lucrri. Editorul (eng. Publisher) server de baze dedate ce poate avea una sau mai multe publicaii ale crui principale roluri sunt de

    a permite efectuarea replicrii cu alte servere i de a identifica i salva modificrilaprute. Abonatul (eng. Subscriber) server de baze de date care primete date (pentru care s-a facut subscriere i care au fost transmise de editor ca urmare a procesului de replicare). Distribuitorul (eng. Distributor) serverul care administreaz fluxul de date al procesului de replicare (distribuie i stocheaz modificrile dateor). Articol (eng. Article) o colecie de date (o tabel; o poriune dintr-o tabel: mite coloane, anumite nregistrri; etc.). Publicaie (eng. Publication) set de article ce se doresc a fi replicate. Subscriere (eng. Subcription) solicitarea efecturii de copii a datelor i obiectelor ce se doresc a fi replicate. Instantaneu (eng.Snapshot) imaginea parial sau integral a coninutului bazei de date la un moment . Agentul snapshot cel ce pregtete instantaneul (snapshotul), respectiv fiierele srs ale bazei de date (fiiere ce sunt salvate ntr-un folder snapshot aflat la distritor). De fiecare dat cnd agentul snapshot este pornit, automat el va verifica mod

    ificrile aprute i va genera fiierele surs a bazei de date (.sch scheme, .dri cri i indeci, .trg declanatoare, .sys tabele cu date sistem, .cft conflicte ntle, .bcp date). Agentul de distribuie cel ce pstreaz istoricul i statisticile rilor efectuate. Agentul de sincronizare (eng. merge agent) cel ce aplic instantaneul (snapshotul) precum i modificrile aprute la abonat sau editor.15

    Microsoft - http://msdn.microsoft.com/en-us/library/ms151198.aspx

    8

  • 7/28/2019 83994029 Iftode Viorel Aplicatii Mobile Lucrare Licenta

    11/82

    Baz date distribuie (eng. Distribution database) baz de date sistem folosit doar tru replicare i care nu conine alte tabele utilizator (are rolul de a pstra tranzacile efectuate pn cnd acestea sunt propagate ctre destinatari).

    De ce replicarea de tip sincronizare?Replicarea sincronizat 16 (eng. merge replication) este replicarea ce permite efectuarea sincronizrii dintre un abonat i un editor, atunci cnd acetia pot comunica pin intermediul unei reele, fiind permis realizarea unor schimburi de date n ambelesensuri. Acest tip de replicare este recomandat a fi folosit n urmtoarele situaii: mai muli abonai pot efectua multiple actualizri asupra datelor, iar schimbrile aprvor putea fi propagate ctre editor (astfel fiind posibil ca i ali abonai s poat

    odificrile survenite);abona

    ii pot efectua modificri asupra datelor n mod deconec, ulterior efectundu-se sincronizarea cu editorul pentru a propaga schimbrile ctre

    acesta; abonaii pot obine date filtrate; n procesul de sincronizare vor fi transe modificrile nete (dac o nregistrare se modific de n ori la abonat nainte de a tua sincronizarea, nregistrarea va fi modificat o singur dat la editor n momentul re sunt propagate schimbrile). Agentul snapshot i agentul de sincronizare vor implementa replicarea de tip sincronizare. Implicit agentul snapshot analizeaz fiierele din folderul snapshot, iar n anumite condiii intervine prin a efectua schimbri lanivelul lor. Este foarte important ca agentul snapshot s actualizeze respectivele fiiere, deoarece n funcie de coninutul lor va fi revizuit i schema bazei de datbonatului. Agentul de sincronizare va aplica snapshotul asupra abonatului (abonatul trebuie s aib aceai schem a bazei de date ca i editorul) i va propaga modifice apar la editor i la abonat. Agentul de distribuie n cazul replicrii de tip sincro

    izare are rolul de a pstra istoricul i statisticile replicrilor efectuate.APLICAIE CLIENT APLICAIE CLIENT

    REPLICAREA MERGE NCEPE PRIN A GENERA I APLICA INSTANTANEUL (SNAPSHOT).

    EDITOR

    ABONAT

    MODIFICRI ALE DATELOR

    MODIFICRI ALE DATELOR

    AGENT MERGE DISTRIBUITORISTORIC DATE

    BAZ DATE DISTRIBUIE

    Figur 1 Arhitectura general a replicrii de tip sincronizare (eng. Merge Replication)

    (Surs: http://msdn2.microsoft.com/en-us/library/ms151329.aspx) n continuare prezentm un posibil scenariu ce ar solicita replicarea datelor aflate pe dispozitive mobile.16

    Microsoft - http://msdn.microsoft.com/en-us/library/ms151329.aspx

    9

  • 7/28/2019 83994029 Iftode Viorel Aplicatii Mobile Lucrare Licenta

    12/82

    ScenariuGripa aviar face s planeze ameninarea unei pandemii greu de controlat cu mijloace actuale de protecie. Exist dou posibiliti prin care H5N1 ar putea provoca milioane victime ntr-un timp scurt. Primul implic ipoteza ca virusul gripei aviare s se combine cu cel al gripei umane, astfel noul virus putndu-se transmite precum gripa umana, dar cu efectele gripei aviare. A doua posibilitate ar fi ca H5N1 s sufere omutaie spontan prin care s se transmit direct de la om la om. Avnd n vedere c diul persoanelor infectate (cei care au intrat n contact cu animale bolnave), jumtate au decedat, o posibil pandemie de grip, ar fi de temut dac virusul H5N1 al gripeiaviare s-ar adapta la om. Potrivit Organizaiei Mondiale a Sntii, o pandemie ar puface pn la o sut de milioane mori. Virusul gripei aviare se manifest la om ntr-u

    mult mai grav dect cel al gripei umane. Debutul este brutal, violent, cu simptome de febr ridicat (39-40 grade Celsius), frisoane, dureri de cap, de gt, mialgii (dureri musculare), astenie i nas nfundat. Dup cteva zile de la instalarea acestor sene, apare o tuse seac, iritant. Aceste manifestri apar i n cazul gripei umane, nsipala diferen ntre cele dou tipuri de grip (uman i aviar) o reprezint insuficiorie (pacientul simte ca nu mai poate respira i are dureri n piept). La gripa aviar, senzaia de sufocare este determinat de instalarea unei pneumonii virale (plmnulncarc cu lichid, care nu mai permite transferul de gaze). Avnd n vedere c boala eueaz foarte rapid (aproximativ zece zile) i se poate transmite relativ uor, este deimportan vital s se transmit ntr-un timp ct mai scurt toate datele care sugereacu virusul gripei aviare, n aa fel nct specialitii s se poat pronuna ct mai pvina diagnosticului i a instaurrii carantinei. Un posibil ajutor oferit de ctre noie tehnologii, ar fi, ca medicii s se deplaseze n diferite zone cu risc crescut de

    epidemie i s culeag date referitoare la pacienii crora le vor efectua consultaii ale. Datele despre pacieni vor fi completate i salvate n baze de date Microsoft SQLServer Compact Edition (.sdf), prin intermediul formularului aplicaiei H5N1, iar la anumite intervale de timp modificrile vor fi transmise prin intermediul tehnologiilor de comunicaie fr fir (ex: GPRS), ctre un centru de colectare (baz de date Mosoft SQL Sever .mdf). Principalele avantaje al unei asemenea arhitecturi sunt date de: posibilitatea lucrului n mod deconectat, transmiterea rapid a datelor, precum i luarea unor decizii n intervale scurte de timp de ctre specialiti.Editor + Distribuitor

    IIS

    Abonai

    Figur 2 Arhitectura propus pentru realizarea aplicaiei H5N1

    nainte de a trece efectiv la partea de implementare a aplicaiei H5N1, este necesara pregti (configura) canalele de comunicaie prin intermediul crora vor putea fi replicate datele aflate la abonai i editor. 10

  • 7/28/2019 83994029 Iftode Viorel Aplicatii Mobile Lucrare Licenta

    13/82

    Model de implementare a aplicaiilor n mediul mobil1. Configurarea adaptorului de reea i a serverului IIS de pe maina pe care se vor afla distribuitorul i editorulPentru a ne asigura de reuita implementrii aplicaiei prezentate pe parcursul acestui capitol, indiferent dac exista, sau nu, un adaptor de reea instalat pe maina local, trebuie instalat un adaptor de loopback (mesajele sunt transmise i recepionate printr-un singur canal de comunicaie): se accesez panoul de control (Control Panel)i se alege modul de vizualizare clasic; se face dublu click pe Add Hardware, apoi se apas butonul Next; din captul listei Installed Hardware se va selectea Add anew harware device, apoi se va apsa butonul Next; se alege opiunea Install the hardware that I manually selected from list (Advanced); din lista Common hardware t

    ypes se va selectea Network Adapters;

    din zona Manufacturer se va alege Microsoft, iar din zona Network Adapter click pe Microsoft Loopback Adapter, apoi se apas butonul Next; se apas butonul Next pentru a efectua instalarea; click pe Finishpentru a finaliza instalarea. Configurarea adaptorului (setarea adresei IP): dinpanoul de control (Control Panel) se va selecta Network Connections, urmnd a configura Local Area Connection (click dreapta Properties); din zona This connection uses the following items se va selecta Internet Protocol (TCP/IP) i apoi clickpe Properties; se va seta adresa IP (IP address: 192.168.0.1; Subnet Mask: 255.255.255.0).

    Figur 3 Setrile adaptorului de reea

    11

  • 7/28/2019 83994029 Iftode Viorel Aplicatii Mobile Lucrare Licenta

    14/82

    Pentru a verifica corectitudinea setrilor efectuate se va testa din consola Windows comanda ping 192.168.0.1. Rezultatul ar trebui s fie asemntor cu cel din imaginea alturat.

    Figur 4 Verificarea configurrii adaptorului de reea

    Crearea paginii principale a serverului IIS: Folosind editorul de texte Notepadse va realiza urmtoarea pagina web: Pagina implicita! Va rugam sa reveniti!

    Fiierul va fi salvat n calea Home Directory a serverului IIS (%homedrive%\Inetpub\wwwroot), dndu-i denumirea index.htm (File - Save As - index.htm). Prin intermediul browserului se va verifica rezultatul obinut accesnd adresa http://192.168.0.1.

    Figur 5 Noua pagin principal a serverului IIS

    12

  • 7/28/2019 83994029 Iftode Viorel Aplicatii Mobile Lucrare Licenta

    15/82

    Pentru a efectua setri suplimentare serverului IIS: se va accesa panoul de control (Control Panel) i se va alege modul de vizualizare clasic; se va deschide consola Administrative Tools i Internet Information Services; din structura arborescent se va selecta Default Web Site (click dreapta Properties).

    2. Configurarea dispozitivelor mobile (abonaii) Device Emulator Manager (Start - All programs - Microsoft Device Emulator 2.0 Preview), se acceseaz Windows Mobile 5.0 Pocket PC VGA Emulator i se va efectua operaiunea de conectare prin apsarea butonului Connect; dup ce a fost pornit emulatorul, se vor accesa proprietile acestuia (File - Configure...), alegnd cadrul de paginaNetwork i activnd NE2000 PCMCIA network adapter and bind to; din list se va alege

    adaptorul de reea existent pe maina de lucru (Microsoft Loopback Adaptor - VirtualMachine Network Services Driver n cazul n care a fost instalat adaptorul loopback

    ); de pe dispozitivul Pocket PC se va accesa Network Cards (Start - Settings - Connections); din combobox-ul My network card connects to, se va alege opiunea TheInternet; se acceseaz NE2000 Compact Ethernet Driver i se configureaz adaptorul prin intermediul cruia dispozitivul Pocket PC va putea comunica cu maina pe care este instalat serverul de baze de date Microsoft SQL Server (IP address: 192.168.0.2; Subnet mask: 255.255.255.0);

    Figur 6 Adresa IP a abonatuluidup ce s-a configurat adaptorul, trebuie reefectauat operaiunea de conectare cu adaptorul de reea (File - Configure... - Network). Pentru a verifica dac setarile aufost corect efectuate, de pe dispozitivul Pocket PC se va deschide Internet Explorer i se va accesa adresa http://192.168.0.1 (rezultatul const n afiarea paginii pincipale gzduit pe serverul IIS cu adresa IP 192.168.0.1).

    3. Schema bazei de date a aplicaiei H5N1Dei am fi putut aduce baza de date a aplicaiei H5N1, la o form care s permit o fleilitate ridicat, am decis a simplifica pe ct posibil lucrurile i propunem ca schemabazei de date BD_H5N1 s fie alctuit din dou tabele (MEDICI are rolul de a pstrareferitoare la medicii care vor efectua consultaii pacienilor; ANAMNEZA va reine

    ate privind pacienii i consultaia efectuat lor).13

  • 7/28/2019 83994029 Iftode Viorel Aplicatii Mobile Lucrare Licenta

    16/82

    Figur 7 Schema bazei de date a aplicaiei H5N1

    Pentru nceput, se va deschide SQL Server Management Studio (Start All Programs Microsoft SQL Server 2005), iar din fereastra Connect to Server pentru Server Typese va alege opiunea Database Engine.

    Figur 8 Autentificarea la serverul de baze de date Microsoft SQL Server 2005

    Din meniul File New, se va selecta Query with Current Connection pentru a deschide o nou fereastr prin intermediul creia vor putea fi transmise fraze SQL ctre SGBDUrmtoarele secvene de cod au ca rezultat generarea bazei de date BD_H5N1.

    CREATE DATABASE BD_H5N1 GO14

  • 7/28/2019 83994029 Iftode Viorel Aplicatii Mobile Lucrare Licenta

    17/82

    USE BD_H5N1 GO CREATE TABLE MEDICI ( cod_medic INTEGER IDENTITY NOT NULL PRIMARYKEY, nume_prenume_medic NVARCHAR(25) NOT NULL, nume_cont NVARCHAR(10) NOT NULLCONSTRAINT UK_nume_cont UNIQUE, parola_cont NVARCHAR(10) NOT NULL, adresa_contact NVARCHAR(50) NOT NULL, telefon_contact NVARCHAR(10) NOT NULL ) GO CREATE TABLEANAMNEZA ( cod_pacient INTEGER IDENTITY NOT NULL, cod_medic INTEGER NOT NULL, nume_prenume_pacient NVARCHAR(25) NOT NULL, adresa NVARCHAR(50), telefon NVARCHAR(10), varsta TINYINT NOT NULL, mediu_urban_rural BIT NOT NULL DEFAULT 1, nr_zile

    _apar_simpt TINYINT NOT NULL DEFAULT 0, temperatura NUMERIC(3,1) NOT NULL DEFAULT 36.5, dureri_de_cap BIT NOT NULL DEFAULT 0, dureri_de_gat BIT NOT NULL DEFAULT0, dureri_musculare BIT NOT NULL DEFAULT 0, nas_infundat BIT NOT NULL DEFAULT 0, conjunctivita BIT NOT NULL DEFAULT 0, tuse BIT NOT NULL DEFAULT 0, senzatie_de

    _sufocare BIT NOT NULL DEFAULT 0, insuficienta_respiratorie BIT NOT NULL DEFAULT0, contact_animale BIT NOT NULL DEFAULT 0, informatii_suplimentare NTEXT, data_consult DATETIME NOT NULL DEFAULT GETDATE(), CONSTRAINT pk_anamneza PRIMARY KEY(cod_pacient,cod_medic), CONSTRAINT fk_anamneza_medici FOREIGN KEY (cod_medic) REFERENCES MEDICI(cod_medic) ON UPDATE CASCADE ON DELETE NO ACTION ) GO

    Dup crearea bazei de date, urmeaz etapa prin care se va popula tabela MEDICI cu nrstrri.INSERT INTO MEDICI (nume_prenume_medic,nume_cont,parola_cont,adresa_contact,telefon_contact) values ('Abramovici Cristian','acristian','acristian','Str. M.Eminescu, nr.42','0780111111') GO INSERT INTO MEDICI (nume_prenume_medic,nume_cont,parola_cont,adresa_contact,telefon_contact) values ('Marinescu Loredana','mloredana','mloredana','Str. I.L.Caragiale, nr.1','0780111112') GO INSERT INTO MEDICI (n

    ume_prenume_medic,nume_cont,parola_cont,adresa_contact,telefon_contact) values ('Simion Laura','slaura','slaura','Str. Stefan Cel Mare, nr. 22','0780111110') GO

    4. Pregtirea agentului snaphot Se va deschide panoul de control (Control Panel) i se va alege modul de vizualizre clasic; Se va accesa Computer Management aflat n directorul sistem Administrative Tools; creai un nou utilizator accesnd System Tools Local Users and Groups Usrs: Cmp Valoare User name: agent_snapshot 15

  • 7/28/2019 83994029 Iftode Viorel Aplicatii Mobile Lucrare Licenta

    18/82

    Password: Confirm Password: User must change password at next logon Password never expires

    Abc_123 Abc_123 deselectat selectat

    5. Pregtirea directorului snapshot Se va deschide Windows Explorer, apoi din meniul Tools Folder Options... e va deselecta opiunea Use simple file sharing; Se va realiza un nou director cudenumirea director_snapshot (ex: %SystemDrive%\director_snapshot); Noul directorul creat va fi partajat - Sharing and Security...; Se va selecta Share this folder, apoi vor fi setate permisiunile (Permissions); Se va apsa butonul Add iar n zo

    na Enter the object name to select se va introduce agentul snapshot computername\agent_snapshot (unde computername se va nlocui cu denumirea staiei locale, denumire ce poate fi aflat apelnd comanda echo %computername% din consola Windows); Pentru utilizatorul agent_snapshot trebuiesc setate permisiunile Change i Read; n cadrul de pagina Security se va aduga utilizatorul agent_snapshot i i vor fi atribuitepermisiunile Read & Execute, List Folder Contents, Read i Write; Se va apsa butonul OK pentru a permanentiza setrile.

    6. Realizarea publicaiei bazei de date BD_H5N1Se va reveni n zona Object Explorer a SQL Server Management Studio: Din structuraarborescent se va selecta Replication iar din meniul contextual se va alege crea

    rea unei noi publicaii (New Publication). Se va apsa pe butonul Next din cadrul pimei ferestre a wizard-ului;

    Figur 9 Wizard-ul folosit pentru realizarea publicaiei bazei de date BD_H5N1

    n cazul n care aceasta este prima publicaie realizat, wizard-ul va cere s i fieicat serverul ce se va comporta ca Distribuitor. Se va selecta prima opiune pentru a alege serverul local.

    16

  • 7/28/2019 83994029 Iftode Viorel Aplicatii Mobile Lucrare Licenta

    19/82

    Figur 10 Specificarea serverului de baze de date care se va comporta ca Distribuitor

    n urmtoarea fereastr va trebui tastat adresa UNC a folderului snapshot (\\computernme\director_snapshot - unde computername va fi nlocuit cu denumirea staiei locale)

    . Urmtorul pas const n a selecta baza de date ce se dorete a fi publicat - BD_H5N1cum am spus i la nceputul capitolului, replicarea de tip sincronizare este singurul tip de replicare la care Microsoft Server Compact Edition poate subscrie. Seva selecta Merge replication apoi se va face click pe Next. Dintre tipurile de abonai ce vor efectua sincronizri, vom alege doar Microsoft Server Compact Edition(se va alege opiunea SQL Server 2005 Compact Edition).

    17

  • 7/28/2019 83994029 Iftode Viorel Aplicatii Mobile Lucrare Licenta

    20/82

    Urmtorul pas ce trebuie efectuat const n a selecta articolele ce se doresc a fi publicate (ANAMNEZA i MEDICI).

    Figur 11 Selectarea articolelor ce se doresc a fi publicate

    Toate articolele ce vor fi publicate necesit existena unei coloane de tip UNIQUEINDENTIFIER. Noua fereastr a wizard-ului informeaz faptul c acest tip de coloan va fi

    adugat pentru cele dou tabele ce vor fi publicate. Tipul de date UNIQUEIDENTIFIERocup un spaiu de 16 octei per valoare i de obicei opereaz cu identificatori globalnici (eng. Globally Unique Indetifiers GUIDs). Un GUID este un numr binar unic (nuciun alt calculator din lume nu va genera un duplicat al unei valori GUID), tocmai de aceea este excelent ca acest tip de date s fie folosit n cazul bazelor de date distribuite, pentru a fi folosit drept cheie primar. O valoare GUID poate fiobinut prin dou metode: o folosind funcia NEWID() n acest caz, cel ce va genera ificatorul global unic este SGBD-ul. o folosind funciile API generatorul identificatorului global unic este dat de aplicaia client. GUID este o valoare generat pebaza numrului unic de indentificare a adaptorului de reea i a numrului unic al procsorului. O tabel a unei baze de date poate conine mai multe coloane de tip UNIQUEIDENTIFIER, ns este acceptat ca doar o singur coloan din acest tip de date s aib oprietatea ROWGUIDCOL. n cazul replicrii de tip sincronizare, valorile atributelor

    de tip UNIQUEIDENTIFIER sunt cele care asigur unicitatea nregisitrrilor i permit cpierea de date de la abonat la editor (i viceversa), fr a exista posibilitatea aducerii bazei de date n stare de inconsisten. Principalele dezavantaje ale tipului dedate UNIQUEIDENTIFIER sunt: o valorile sunt lungi, lipsite de neles, generate aleator; o valorile ocup un spaiu de stocare mult mai mare dect valorile tipurilor numerice; 18

  • 7/28/2019 83994029 Iftode Viorel Aplicatii Mobile Lucrare Licenta

    21/82

    operaiile ce necesit lucrul cu indexurile atributelor de tip UNIQUEIDENTIFIER suntmai lente; o etc. Pasul Filter Table Rows permite dezvoltatorului efectuarea unor filtre pe baza crora abonaii vor primi de la editor doar nregistrrile care le sut exclusiv adresate lor. o

    Figur 12 Fereastr a wizard-ului prin intermediul creia se pot realiza filtre asupraarticolelor publicate

    n cazul n care nu s-ar aplica filtre, un medic de fiecare dat cnd va cere realizare

    sincronizrii cu editorul ar descrca ntregul coninut al tabelei MEDICI (respectivacienii consultai, inclusiv pacienii consultai de colegii lui), fapt care duce la o

    crcare inutil a bazei de date aflate pe dispozitivul smart al medicului, costuri ridicate privind comunicaiile, ncetinirea aplicaiei pe msur ce numrul pacienilor ai va crete, etc. Folosind filtrele, operaia de sincronizare va trimite ctre dispoztivul smart Windows Mobile aflat n poseseia medicului, doar nregistrrile cu privirela pacienii consultai de el. n cazul nostru filtrarea nregistrrilor se va realizabaza numelui utilizatorului prin care se realizeaz autentificarea la serverul SQL (se poate obine folosind funcia SUSER_SNAME()). Interesul nostru este de a realiza filtrarea doar pe tabela ANAMNEZA pe baza condiiei cod_medic=(SELECT cod_medicFROM MEDICI WHERE nume_cont=SUSER_SNAME()). Vom apsa butonul Add i alegem opiuneaAdd Filter..., selectm tabela ANAMNEZA, iar n seciunea Filter statement se va completa condiia de filtrare.

    19

  • 7/28/2019 83994029 Iftode Viorel Aplicatii Mobile Lucrare Licenta

    22/82

    Figur 13 Condiia de filtrare a datelor tabelei ANAMNEZA

    Totui de ce nu efectum filtrri i pe tabela MEDICI? o Numrul medicilor este cu multi mic dect numrul pacienilor, iar efectuarea filtrrii datelor pe tabele cu un numrc de nregistrri nu ar mbuntii cu mult performanele aplicaiei. o Medicii pot schozitivele smart Windows Mobile ntre ei (efectueaz consultaii pe schimburi de lucru), aadar este necesar ca la autentificarea n aplicaia H5N1, pe dispozitivul smart s

    xiste toate datele cu privire la conturile medicilor. o Apariia unui medic nou n cadrul echipelor de consultaii va nsemna realizarea unui nou cont de access la apli

    caie (operaie ce se va realiza la editor), iar respectivul medic va avea posibilitatea s se autentifice pe oricare din dispozitivele smart disponibile (nu nainte dea efectua sincronizarea cu editorul). o etc. Urmtorul pas al wizard-ului (Snapshot Agent) permite setarea realizrii snapshotului precum i a frecvenei cu care agentul snapshot va fi activat. Se vor alege ambele opiuni Create a snapshot immediately, respectiv Schedule the Snapshot Agent to run at the following times apoi seva apsa butonul Next. Din fereastra de dialog Agent Security vom face click pe Security Settings... o Se va alege opiunea Run under the following Windows account:Cmp Valoare Process account: computername\agent_snapshot17 Password: Abc_123 Confirm Password: Abc_123

    17computername va fi nlocuit cu denumirea staiei locale

    20

  • 7/28/2019 83994029 Iftode Viorel Aplicatii Mobile Lucrare Licenta

    23/82

    Ca i modalitate de conectare la editor alegem By impersonating the process account. La urmtorul pas al wizard-ului se va alege opiunea Create the publication. Atribuim publicaiei denumirea PUBLICATIE_H5N1 i cerem finalizarea wizard-ului prin apsarea butonului Finish. Dup generarea publicaiei de ctre wizard, se va apsa butonul Cose. o

    7. Setarea permisiunilorEste necesar pentru a se realiza sincronizarea dintre editor i abonat, s stabilimpermisiunile de access pentru: Agentul snapshot; Agentul IIS; Medici (pentru fie

    care medic se va crea un cont de acces, datele conturilor de acces vor coincidecu datele aflate n tabela MEDICI); Revenim n zona Object Explorer a SQL Server Management Studio, iar din meniul contextual Security se va alege crearea unui noucont de acces (New Login...). Agentul snapshot: o Din fereastra de dialog pentrucrearea conturilor de acces se va selecta Windows Authentication apoi click stnga pe butonul Search...; o Din zona Enter the object name to select se va completa computername\agent_snapshot (unde computername va fi nlocuit cu denumirea staieilocale) se va apsa butonul Check Names pentru a verifica corectitudinea datelorintroduse, apoi click stnga pe butonul OK. o Din panoul de navigaie se va face click pe User Mapping, iar din lista de baze de date disponibil vom selecta distribution i BD_H5N1 (pentru fiecare baz de date n parte se va alege rolul db_owner).

    Figur 14 Crearea i setarea permisiunilor contului agentului snapshot

    o

    Se va apsa butonul OK pentru a genera contul de acces.

    21

  • 7/28/2019 83994029 Iftode Viorel Aplicatii Mobile Lucrare Licenta

    24/82

    Agentul IIS: o Paii sunt asemntori cu cei parcuri n crearea contului agentului snaot, doar c n zona Enter the object name to select se va completa computername\IUSR

    _computername (unde computername va fi nlocuit cu denumirea staiei locale), iar pentru cele dou baze de date (distribution i BD_H5N1) nu se va mai alege rolul db_owner. Medici (se vor completa cu datele din tabela MEDICI): o Din fereastra de dialog pentru crearea conturilor de acces se va selecta SQL Server Authentication,apoi se va completa formularul conform specificaiilor din tabelul urmtor: Cmp Valoare Login name: acristian Password: acristian Confirm Password: acristian Enforce password policy deselecat o Din panoul de navigaie vom face click pe User Mapping, iar din lista de baze de date disponibil se va selecta distribution i BD_H5N1(iar pentru fiecare baz de date n parte se va alege rolul db_owner). o Pentru a ge

    nera contul de acces se va apsa butonul OK. Din fereastra de proprieti a publica

    iei(din zona Object Explorer a SQL Server Management Studio, parcurgem structura ar

    borescet pn la publicaia PUBLICATIE_H5N1, click dreapta Properties), selectm dinul de navigaie Publication Access List i folosind butonul Add vom aduga toate conturile nou create (agentul snapshot, agentul IIS, conturile medicilor).

    8. Realizarea snapshotuluiRevenim n zona Object Explorer a SQL Server Management Studio i parcurgem structura arborescet pn la publicaia PUBLICATIE_H5N1, accesm View Snapshot Agent Status (ck dreapta pe publicaie iar din meniul contextual se va alege View Snapshot AgentStatus). n noua fereastr vom apsa butonul Start pentru a genera snapshotul. La final trebuie sa ne asigurm c instantaneul a fost generat n totalitate.

    9. Configurarea serverului IISDup ce s-a creat publicaia, s-au setat permisiunile de acces i a fost generat instantaneul, va trebui configurat serverul IIS pentru a permite comunicarea serverelor SQL Compact Edition cu serverul SQL 2005. Spre a uura ct mai mult lucrurile, pentru configurarea serverului IIS exist un wizard ce poate fi accesat din meniul contextual al publicaiei PUBLICATIE_H5N1 (opiunea Configure Web Synchronization...):

    Figur 15 Configurarea serverului web pentru a permite realizarea sincronizrii dintre abonai i editor

    22

  • 7/28/2019 83994029 Iftode Viorel Aplicatii Mobile Lucrare Licenta

    25/82

    La apariia primei ferestre a wizard-ului se va apsa butonul Next. n cel de-al doilea pas (Subscriber Type) se va alege opiunea SQL Server Compact Edition. Pentru pasul Web Server se va specifica denumirea mainii pe care este instalat serverul IIS (implicit completat de ctre wizard) i vom alege opiunea Create a new virtual diretory. n cazul n care suntem ntmpinati de o csu de mesaj asemntoare cu cea din urat, nseamn ca nu am instalat SQL Server Compact Edition server components. Rezolvarea acestei probleme se va face prin accesarea butonului Yes al acestui mesaj de atenionare determin instalarea SQL Server Compact Edition server components.

    Figur 16 Mesajul afiat n cazul n care nu ai instalat SQL Server Compact Edition ser components

    Finalizarea pasului Web Server se realizeaz prin selectarea Default Web Site (cruia i va fi adugat un director virtual).

    Figur 17 Configurarea serverului web pentru a permite realizarea sincronizrii dintre abonai i editor

    Pasul Virtual Directory Information presupune completarea casetei de text Aliascu denumirea ce se dorete a fi dat directorului virtual (ex: H5N1). Cel mai probabil, dup apsarea butonului Next vom fi ntmpinai de dou casete de mesaj (o caset dprin 23

  • 7/28/2019 83994029 Iftode Viorel Aplicatii Mobile Lucrare Licenta

    26/82

    care suntem informai c directorul cu denumirea menionat n caseta de text alias nu st, i cea dea doua caset de mesaj, prin care suntem informai de efectuarea unei copi i a unei nregistrrii a agentului SQL Server Compact Edition). Urmtorul pas (SecCommunications) presupune specificarea tipului de mediu de comunicaie dintre abonat i serverul IIS (folosirea unui canal de comunicaie securizat sau nesecurizat).Deoarece nu ne aflm ntr-un mediu de productie i nu dorim a complica mai mult lucrurile, consideram ca nu este necesar a alege modul securizat de transmitere a datelor se va alege optiunea Do not require security channel (SSL). n pasul Client Authentication se va selecta Clients will connect anonymously. La pasul AnonymousAccess se vor accepta setrile implicite. La pasul Snapshot Share Access se va meniona adresa UNC a directorului snapshot (ex: \\computername\director_snapshot un

    de computername va fi nlocuit cu denumirea staiei locale).

    n fereastra de dialog apasului Complete the Wizard vor fi prezentate un sumar al setrilor efectuate pe p

    arcursul wizard-ului. Se va apsa butonul Finish pentru a finaliza configurarea serverului IIS. Verificarea corectitudinii setrilor efectuate se realizeaz prin accesarea din browserul web, a adresei http://192.168.0.1/H5N1/sqlcesa30.dll?diag.

    10. Realizarea subscrieriinainte de a realiza subscrierea, este necesar a crea o nou baza de date (ex.: H5N1

    _MEDIC) SQL Compact. Se va realiza conexiunea cu baza de date SQL Compact Edition. Din zona Object Explorer a SQL Server Management Studio, vom accesa wizard-ulfolosit pentru generarea subscrierii (se parcurge structura arborescent Replication Subscriptions, iar din meniul contextual se va alege opiunea New Subscriptions...).

    Figur 18 Realizarea subscrierii folosind SQL Server Management Studio

    n prima fereastr a wizard-ului se va face click pe butonul Next. 24

  • 7/28/2019 83994029 Iftode Viorel Aplicatii Mobile Lucrare Licenta

    27/82

    n cel de-al doilea pas (Choose Publication) se va alege din lista drop down. Se va efectua autentificarea la serverul SQL Server 2005.Dup efectuarea autentificrii, se va selecta publicaia creat n paii anteriori (PUTIE_H5N1) apoi se va face click pe butonul Next.

    Figur 19 Selectarea publicaiei la care se dorete realizarea subscrierii

    n pasul Identify Subscription se va completa caseta de de text Subscription namecu SUBSCRIERE_H5N1, sau oricare alt denumire sugestiv. Pentru a trece la pasul urmtor se va apsa butonul Next. Web Server Authentication presupune completarea adresei de acces (http://192.168.0.1/H5N1) ctre directorul virtual al serverului IIS,precum i modalitatea n care se va efectua autentificarea pe serverul WEB. Pe bazaexemplului H5N1 nu credem c este necesar autentifcarea n prealabil (The Subscriberwill connect anonymously). La pasul SQL Server Authentication se va alege opiunea

    Use SQL Server Authentication with the following SQL Server user name and password. Cmp Valoare User name: acristian Password: acristian Apsai butonul Finish pentru a finaliza wizard-ul.

    SqlCeReplication18 Principala noutate ce va fi ntlnit n codul aplicaiei H5N1 este de folosirea unor obiecte de tipul SqlCeReplication (spaiul de nume System.Data.SqlServerCe), care prin intermediul apelrii anumitor metode, ne vor ajuta s realizmsincronizarea dintre abonai i editor.18

    http://msdn.microsoft.com/en-us/library/system.data.sqlserverce.sqlcereplication(VS.80).aspx

    25

  • 7/28/2019 83994029 Iftode Viorel Aplicatii Mobile Lucrare Licenta

    28/82

    Tabelul nr. 3 Constructorii clasei SqlCeReplication

    SqlCeReplication() SqlCeReplication(internetUrl As String, internetLogin As String, internetPassword As String, publisher As String, publisherDatabase As String, publication As String, subscriber As String, subscriberConnectionString As String)

    SqlCeReplication(internetUrl As String, internetLogin As String, internetPassword As String, publisher As String, publisherDatabase As String, publisherLogin AsString, publisherPassword As String, publication As String, subscriber As String, subscriberConnectionString As String)

    Iniializeaz o nou instan a tipului SqlCeReplication. Iniializeaz o nou instanlCeReplication i totodat sunt setate valorile principalelor proprieti necesare conetrii la publicaie. Parametri: internetUrl adresa URL folosit pentru a contacta atul SQL Server Compact Edition; internetLogin numele de cont folosit pentru a putea contacta agentul SQL Server Compact Edition; internetPassword parola contului de acces; publisher denumirea editorului; publisherDatabase denumirea bazei ddate publicate; publication denumirea publicaiei; subscriber denumirea abonati; subscriberConnectionString stringul de conectare la baza de date; Aceeai funcinalitate ca i constructorul precedent doar c accept n plus transmiterea valorilor ac doi parametri: publisherLogin numele de cont folosit pentru conectarea la editor; publisherPassword - parola contului folosit pentru conectarea la editor.

    Tabelul nr. 4 Principalele proprieti ale clasei SqlCeReplicationCompressionLevel

    ConnectionRetryTimeout

    Ofer posibilitatea setrii nivelului de comprimare a datelor. Valorile ce pot fi atribuite prin intermediul acestei proprieti sunt de tip Short i cuprinse ntre 0 i 6aloarea 0 va avea ca efect anularea comprimrii datelor; valoarea 1 reprezint un grad de comprimare sczut; valoarea 6 reprezint cel mai mare grad de comprimare). Cuct gradul de comprimare este mai ridicat, cu att va crete i timpul de procesare a dtelor de ctre serverul IIS. Permite setarea numrului de secunde n care SQL Server Compact Edition va ncerca s restabileasc o conexiune euat. Unele canale de comunica

    e confrunt cu frecvente ntreruperi ce pot apare n momentul realizrii sincronizrii tre abonat i editor. n cazul n care conexiunea este restabilit n intervalul de sece specificat, atunci sincronizarea va fi continuat, n caz contrar sincronizarea vafi anulat. Valoarea implicit este de 120 secunde, iar maximul acceptat este de 900. Atenie!!! A nu se confunda cu intervalul de timp acceptat pentru 26

  • 7/28/2019 83994029 Iftode Viorel Aplicatii Mobile Lucrare Licenta

    29/82

    ConnectTimeout

    Distributor

    DistributorPassword

    DistributorAddress

    DistributorLogin

    DistributorNetwork

    DistributorSecurityMode

    ExchangeType

    HostName

    realizarea primei conexiuni. Prin intermediul acestei proprieti se poate seta sauobine intervalul de timp (n milisecunde) n care trebuie s se realizeze conexiunea cserverul. n cazul n care conexiunea nu se realizeaz n intervalul stabilit, cererearealizrii sincronizrii este anulat. Valoarea maxim admis este de 360 000 milisecund(360 secunde). Prin intermediul acestei proprieti este specificat numele distribuitorului. Distribuitorul este maina pe care este instalat Microsoft SQL Server i c

    are conine instantaneul (snapshotul), istoricul i statisticile replicrilor efectuate. Aceasta proprietate este opional, iar n cazul n care nu i este specificat o va, se consider c editorul i distribuitorul sunt instane ale aceluiai server SQL. Prietatea permite setarea parolei de acces folosit la conectarea cu distribuitorul(doar n cazul n care tipul de autentificare folosit este DBAuthentication). Permite specificarea adresei de reea (un string de forma adresaIP:port) folosit pentru a e putea realiza comunicarea dintre agentul SQL Server Compact Edition i distribuitor. Este necesar setarea acestei proprieti atunci cnd proprietatea DistributorNetwrk are setat o valoare cu totul alta dect DefaultNetwork. Proprietatea permite setarea numelui de cont folosit pentru autentificarea cu distribuitorul. Este necesar setarea acestei proprieti atunci cnd tipul de autentificare folosit este DBAuthetication. Prin intermediul acestei proprieti se poate seta sau returna tipul protocolului folosit n comunicarea cu distribuitorul (DefaultNetwork, MultiProtocol, T

    cpipSockets). Seteaz tipul de autentificare folosit la conectarea cu distribuitorul. Tipurile de autentificare sunt: DBAuthentication autentificare pe baza conturilor existente la nivelul serverului SQL. Acest tip de autentificare implic setarea proprietilor DistributorLogin respectiv Distributor Password. NTAuthentication autentificare pe baza conturilor existente la nivelul sistemului de operare. Permite setarea modului n care se va realiza sincronizarea dintre abonat i editor. BiDirectional modificrile aprute la abonat se vor reflecta ctre editor i viceversapload vor fi transmise ctre editor doar modificrile aprute la abonat. Pe baza valoii acestei proprieti se pot efectua filtre asupra nregistrrilor trimise ctre abonaPublicaiilor de tip Merge li se pot atribui filtre folosind funcii Transact-SQL precum SUSER_SNAME() i / sau HOST_NAME(). Aceste funcii vor fi incluse n clauza wherein pasul Filter Table Rows al wizard-ului de generare de publicaii. Aadar, dac n scema bazei de date exist o tabela cu un atribut ce pstreaz denumirile mainilor ce se

    vor conecta la editor, pe baza acestui atribut se pot efectua filtre folosind funcia Transact27

  • 7/28/2019 83994029 Iftode Viorel Aplicatii Mobile Lucrare Licenta

    30/82

    InternetLogin

    InternetPassword InternetUrl LoginTimeout

    Publication Publisher PublisherAddress

    PublisherChanges

    PublisherDatabase PublisherLogin

    PublisherNetwork PublisherPassword PublisherSecurityMode

    QueryTimeout

    ReceiveTimeout

    SendTimeout

    SQL HOST_NAME(). Obiectele de tip SqlCeReplication ale mainilor de lucru ce doresc a se conecta la editor sunt obligate a seta proprietatea HostName cu valori pebaza crora se vor efectua filtrri. Primete ca valoare numele de cont folosit la autentificarea cu agentul SQL Server Compact Edition. Implicit nu este setat niciovaloare. Permite setarea parolei contului folosit la autentificarea cu agentul SQL Server Compact Edition. Permite specificarea adresei URL folosit pentru contac

    tarea agentului SQL Server Compact Edition. Prin intermediul acestei proprieti sepoate specifica numrul maxim de secunde n intervalul crora se poate realiza conexiunea dintre serverul IIS i editor / distribuitor. Valoarea implicit este de 15 secunde. Seteaz denumirea publicaiei ce a fost generat pentru a se putea realiza replicarea cu abonaii. Seteaz denumirea serverului SQL cu rol de editor. Proprietate prin intermediul creia se specific adresa (un string de forma adresaIP:port) folosit tru conectarea cu editorul (atunci cnd agentul SQL Server Compact Edition i editorul se afl pe maini de lucru separate). Proprietatea este ReadOnly i returneaz numrde modificri (inserri, actualizri, tergeri nregistrri) ce au fost permanentizate onat n urma operaiunii de sincronizare. Proprietatea permite setarea denumirii bazei de date publicate. Seteaz numele de cont pe baza cruia se va face autentificarea la editor (doar n cazul n care tipul de autentificare folosit este DBAuthentication). Pe baza acestei valori se vor efectua filtrri ale nregistrrilor transmise ctr

    abonat (doar n cazul n care clauza where, din pasul Filter Table Rows al wizard-uli de generare de publicaii, are specificat o condiie ce folosete funcia Transact-SSUSER_SNAME()). Seteaz protocolul folosit n comunicarea cu editorul (DefaultNetwork, MultiProtocol, TcpipSockets). Seteaz parola de acces folosit la conectarea cu editorul. Proprietatea permite specificarea tipului de autentificare folosit la conectarea cu editorul. DBAuthentication autentificare pe baza conturilor existente la nivelul serverului SQL. NTAuthentication autentificare pe baza conturilorexistente la nivelul sistemului de operare. Seteaz sau returneaz intervalul maximde timp (n secunde) alocat efecturii procesarilor interne (ale serverului SQL). Valoarea implicit este de 300 secunde. Returneaz sau seteaz intervalul de timp (n milsecunde) n care obiectul SqlCeReplication ateapt rspuns de la server. Dac intervalde timp stabilit este depait, atunci cererea adresat serverului este anulat. Valoarea implicit este 60 000 milisecunde (60 secunde), iar maximul admis este de 360 0

    00 milisecunde (360 secunde). Returneaz sau seteaz intervalul de timp (n milisecunde) pe care 28

  • 7/28/2019 83994029 Iftode Viorel Aplicatii Mobile Lucrare Licenta

    31/82

    Subscriber SubscriberChanges

    SubscriberConnectionString

    obiectul SqlCeReplication l va atepta pentru a transmite cereri ctre server. Valoarea maxim admis este de 360 000 milisecunde (360 secunde). Proprietatea primete cavaloare denumirea subscrierii. Proprietatea este ReadOnly i returneaz numrul de modificri (inserri, actualizri, tergeri nregistrri) ce au fost permanentizate la ediurma operaiunii de sincronizare. Prin intermediul acestei proprieti se specific strngul de conectare la baza de date SQL Server Compact Edition.

    Tabelul nr. 5 Principalele metode ale clasei SqlCeReplicationAddSubscription (addOption As AddOption)

    ReinitializeSubscription (uploadBeforeReinitialize As Boolean)

    LoadProperties

    Synchronize

    SaveProperties

    Se va crea o nou subscriere la o publicaie Microsoft SQL Server. Parametrul de tip

    AddOption poate lua urmtorele valori: CreateDatabase presupune crearea bazei dedate SQL Server Compact Edition pe baza snapshotului, precum i transferul de nregistrri. ExistingDatabase presupune descrcarea de date (nregistrri) de la editor anentizarea lor n baza de date existent la abonat. Dup apelarea metodei AddSubscription va trebui apelat metoda Synchronize. Metoda va marca subscrierea pentru reiniializare. n cazul n care parametrului uploadBeforeReinitialize i este atribuit varea TRUE, nainte de a se reiniializa subscrierea, se vor trimite modificrile ctre eitor. Implicit valoarea parametrului uploadBeforeReinitialize este FALSE. Reiniializarea subscrierii se va efectua la primul apelul al metodei Synchronize. Metoda va extrage din tabelele sistem ale bazei de date, informaii referitoare la proprietile sincronizrii apoi va ncrca obiectul ce a apelat metoda, cu valorile extrasInvoc replicarea de tip sincronizare (eng. merge replication) dintre abonat i editor. nainte de a se apela metoda Synchronize, este necesar a se nchide toate conexi

    unile cu baza de date. Metoda va salva informaiile referitoare la proprietile sincronizrii (ncarcate n obiectul SqlCeReplication ce apeleaz metoda), n tabelele sistele bazei de date.

    29

  • 7/28/2019 83994029 Iftode Viorel Aplicatii Mobile Lucrare Licenta

    32/82

    Realizarea aplicaiei H5N1 Aplicaia H5N1 va fi alctuit din trei formulare ce i vor permite utilizatorulucului): autentificarea la aplicaie (pe baza unui nume de cont i a unei parole); sincronizarea cu editorul (sediul central de prelucrare a datelor); introducerea /modificarea datelor consultaiilor efectuate;

    Formularul Autentificare este alctuit dintr-o serie de componente vizuale ce i permit utilizatorului: autentificarea la aplicaie, sincronizarea anonim cu editorul, iderea aplicaiei. Autentificarea la aplicaia H5N1 se va face pe baza numelui de cont i a parolei asociate. Acestea trebuiesc completate n casetele de text txtNumeDeCont respectiv txtParolaCont, iar n urma apsrii butonului de autentificare, n func

    de datele introduse, aplicaia H5N1 va trebui s efectueze o cutare n baza de date afat pe dispozitivul smart (H5N1_MEDIC.sdf). n cazul n care datele completate nu sunt

    valide, aplicaia H5N1 va afia mesajul de avertizare Ai introdus gresit numele de cont sau parola!. Completarea corect a datelor de autentificare va determina afiareaformularului AppH5N1, de unde utilizatorul va putea accesa oricare alte funcionaliti ale aplicaiei. Formularul Autentificare ofer i posibilitatea realizrii sincri anonime cu editorul. n urma acestei operaiuni toate modificrile aprute la abonafi reflectate ctre editor, iar ctre abonat vor fi transmise doar nregistrrile ce actuiesc tabela MEDICI. Am denumit aceast sincronizare ca fiind anonim, deoarece opa de sincronizare se poate realiza i fr ca utilizatorul s fie autentificat la aplice. De fapt autentificarea la editor se va face pe baza contului computername\IUSR_computername (unde computername va fi nlocuit cu denumirea staiei locale). Aceast funcionalitate (sincronizare anonim) i va permite oricrui medic nou s se alt

    or existente i s se autentifice de pe oricare din dispozitivele smart aflate la medicii ce efectueaz consultaii n zonele cu risc (se presupune ca datele privind contul noului medic vor fi nregistrate n baza de date aflat la editor, iar autentificarea pe oricare dispozitiv va trebui precedata de operaia de sincronizare). Ieirea din aplicaie se va realiza prin apsarea Iesire app H5N1 din meniul formularului Autetificare.

    lblNumeDeCont

    txtNumeDeCont

    lblParola

    txtParolaCont mbtnSincronizareAnonimambtnIesire mbtnAutentificare

    Figur 20 Macheta general a formularului Autentificare

    30

  • 7/28/2019 83994029 Iftode Viorel Aplicatii Mobile Lucrare Licenta

    33/82

    Formularul AppH5N1 va putea fi accesat doar dac utilizatorul aplicaiei s-a autentificat cu un nume de cont valid. Acest formular permite: realizarea sincronizrii cu editorul, accesul la formularul de introducere / editare date consultaii pacieni, realizarea deautentificrii, ieirea din aplicaie. Operaiunea de sincronizare ce pote fi declanat din formularul AppH5N1, de data aceasta va efectua autentificarea la editor pe baza datelor contului cu care s-a realizat autentificarea la aplicaie. n urma operaiunii de sincronizare, modificrile efectuate de abonat vor fi reflectate ctre editor, iar editorul va transmite ctre abonat toate nregistrrile din tabelMEDICI precum i nregistrrile (doar cele ce ndeplinesc condiia de filtrare) din taa ANAMNEZA. Odat autentificai la aplicaia H5N1, medicii vor putea introduce / editadate privind consultaiile pacienilor, respectiv vor accesa (prin intermediul opiun

    ilor Consultaie pacient / Consulta

    ii efectuate) cel de-al treilea formular al aplicaiei Consultaie. Deautentificarea se va putea realiza prin apsarea Sfarsit sesiu

    in meniul formularului AppH5N1, caz n care aplicaia va direciona utilizatorul ctre ormularul Autentificare.

    lblInfMedic

    mbtnConsultatiiEfectuate mbtnConsultPacient mbtnSfarsitSesiune mbtnIesire

    mbtnSincronizare

    Figur 21 Macheta general a formularului AppH5N1

    Formularul Consultaie va ndeplini dou funcionaliti (formular de introducere date ltaie pacient, respectiv formular de editare date consultaii pacient), n funcie de are anumite controale vizuale vor fi activate / dezactivate ori vor avea culorisau mesaje diferite. n cazul introducerii de date: Titlul formularului va conine mesajul Date consult pacient!. Componenta ComboBox cmbAlegePacient va fi inactiv. xtul tuturor elementelor vizuale de tip TextBox, NumericUpDown, RadioButton, Button, va fi de culoare neagr (System.Drawing.Color.Black). n cadrul de pagina Anamneza nicio component de tip RadioButton nu va avea setat o valoare implicit. Componntele btnSalveaza i btnReseteaza vor afia mesajele Salveaza date pacient nou, respetiv Reseteaza formular. Dup confirmarea salvrii datelor pacientului, utilizatorulfi direcionat ctre formularul AppH5N1.

    31

  • 7/28/2019 83994029 Iftode Viorel Aplicatii Mobile Lucrare Licenta

    34/82

    n cazul editrii datelor: Titlul formularului va afia mesajul Modifica date pacien Componenta ComboBox cmbAlegePacient va fi activat i va conine numele i prenumelecienilor consultai. Textul tuturor elementelor vizuale de tip TextBox, NumericUpDown, RadioButton, Button, va fi de culoare roie (System.Drawing.Color.DarkRed). n cazul n care medicul autentificat are consultaii efectuate, la deschiderea formularului Consultaie, automat toate componentele vizuale vor fi completate cu datele primului pacient din componena ComboBox cmbAlegePacient. Componentele btnSalveaza ibtnReseteaza vor afia mesajele Salveaza modificari pacient! respectiv Renunta modiicari pacient!. De asemeni aceste componente vor fi active doar n cazul n care medicul autentificat la aplicaie are cel puin un pacient consultat. Dup confirmarea savrii modificrilor datelor pacientului, formularul Consultaie va rmne activ.

    cmbAlegePacient

    txtNumePrenume

    nudVarsta

    txtAdresa rbnUrban

    rbnRural

    txtNrTelefon

    Figur 22 Macheta general a formularului Consultaie (cadrul de pagin Date pacient)32

  • 7/28/2019 83994029 Iftode Viorel Aplicatii Mobile Lucrare Licenta

    35/82

    nudNrZileAparitieSimptome txtTemperatura rbnDureriCapDa rbnDureriGatDa rbnDureriMusculare Da rbnNasInfundatDa rbnConjunctivitaDa rbnTuseDa rbnSenzatieSufocareDarbnInsuficientaRespiratorieDa rbnContactAnimaleDa rbnDureriCapNu rbnDureriGatNurbnDureriMusculareNu rbnNasInfundatNu rbnConjunctivitaNu rbnTuseNu rbnSenzatieSufocareNu rbnInsuficientaRespiratorieNu rbnContactAnimaleNu

    Figur 23 Macheta general a formularului Consultaie (cadrul de pagin Anamneza)

    33

  • 7/28/2019 83994029 Iftode Viorel Aplicatii Mobile Lucrare Licenta

    36/82

    txtInformatiiSuplimentare

    btnSalveaza

    btnReseteaza

    Figur 24 Macheta general a formularului Consultaie (cadrul de pagin Salveaza)

    Realizarea conexiunii cu baza de date H5N1_MEDIC.sdfSe va creea un nou proiect Windows Mobile 5.0 Pocket PC cu denumirea H5N1, apoise vor realiza cele trei formulare (formularul Consultaie va fi creat n forma prez

    entat ca introducere date pacienti) respectnd denumirile obiectelor vizuale aa cumnt prezentate n imaginile de mai sus. Urmtorul pas const n a realiza conexiunea cu aza de date H5N1_MEDIC.sdf folosind wizard-ul pus la dispozitie de mediul VisualStudio (vom ncrca setul de date local cu toate obiectele existente n baza de date i vom atribui denumirea setul_de_date_H5N1). Dup ce s-a realizat conexiunea cu baza de date, va trebui s crem noi metode de ncrcare cu datele tabelei MEDICI din setl de date local. Deschidem schema setului de date local prin accesarea fiieruluisetul_de_date_H5N1.xsd, se acceseaz meniul contextual al tabelei MEDICI Add Query.... La pasul Specify a SQL SELECT statement a wizard-ului, se va introduce frazaSQL SELECT cod_medic, nume_prenume_medic, nume_cont, parola_cont, adresa_contact, telefon_contact, rowguid FROM MEDICI WHERE nume_cont=@nume_cont AND parola_cont=@parola_cont.

    34

  • 7/28/2019 83994029 Iftode Viorel Aplicatii Mobile Lucrare Licenta

    37/82

    Figur 25 Fraz SQL parametrizat ce va fi folosit pentru a ncrca cu date tabela MEDin setul de date local.

    n pasul Choose Methods to Generate, formularul wizard-ului va fi completat cu denumiri sugestive asemntoare cu cele din imaginea alturat.

    Figur 26 Denumirile asociate metodelor de ncarcare cu date a tabelei MEDICI din setul de date local

    35

  • 7/28/2019 83994029 Iftode Viorel Aplicatii Mobile Lucrare Licenta

    38/82

    Asemntor cu metodele create pentru tabela MEDICI din setul local de date, vor fi create noi metode (incarca_date_anamneza respectiv extrage_date_anamneza) i pentrutabela ANAMNEZA (SELECT adresa, cod_medic, cod_pacient, conjunctivita, contact_animale, data_consult, dureri_de_cap, dureri_de_gat, dureri_musculare, informatii_suplimentare, insuficienta_respiratorie, mediu_urban_rural, nas_infundat, nr_zile_apar_simpt, nume_prenume_pacient, rowguid, senzatie_de_sufocare, telefon, temperatura, tuse, varsta FROM ANAMNEZA WHERE cod_medic = @cod_medic ORDER BY nume

    _prenume_pacient). n final schema setului de date local al aplicaiei H5N1 ar trebui s fie asemntoare cu schema prezentat n imaginea alturat.

    Figur 27 Schema setului de date local al aplicaiei H5N1

    Medic.vb & Sincronizare.vbPentru a ne uura ct mai mult munca, am decis realizarea a dou clase: Medic are rl de a pstra date referitoare la persoana autentificat la aplicaie; Sincronizare reda funcionalitatea necesar aplicaiei pentru a realiza replicarea datelor. Fiecare clas va fi creat ntr-un fiier separat cu extensia .vb (din fereastra Solution Exporer click dreapta Add Class...). Medic.vb vezi Anexa 1Tabelul nr. 6 Constructorul clasei Medic

    Medic(cod_medic As Integer, nume_prenume_medic As String, nume_cont As String, parola_cont As String, adresa_contact As String, telefon_contact As String)

    Creeaz o nou instan a tipului Medic. Parametrii: cod_medic codul intern asociat

    cului; nume_prenume_medic reprezint numele i prenumele medicului autentificat la plicaia H5N1; nume_cont numele de cont cu care medicul s-a autentificat la aplicae; parola_cont parola introdus de mediul autentificat la aplicaie; adresa_contaadresa medicului; telefon_contact numrul de telefon al medicului; Valorile acestor parametrii vor fi preluate din baza 36

  • 7/28/2019 83994029 Iftode Viorel Aplicatii Mobile Lucrare Licenta

    39/82

    de date aflat pe dispozitivul smart.

    Tabelul nr. 7 Metodele clasei Medic

    get_adresa_contact() get_cod_medic() get_nume_cont() get_nume_prenume_medic() get_parola_cont() get_telefon_contact()

    Returneaz o valoare de tip String ce va conine adresa medicului autentificat la aplicaia H5N1. Returneaz o valoare de tip Integer ce va conine codul medicului autentificat la aplicaia H5N1. Returneaz o valoare de tip String ce va conine numele de cont al medicului autentificat la aplicaia H5N1. Returneaz o valoare de tip String

    ce va conine numele i prenumele medicului autentificat la aplica

    ia H5N1. Returneaz valoare de tip String ce va conine parola asociat contului medicului autentificat

    la aplicaia H5N1. Returneaz o valoare de tip String ce va conine numrul de telefonal medicului autentificat la aplicaia H5N1.

    Sincronizare.vb vezi Anexa 2

    Tabelul nr. 8 Constructorii clasei Sincronizare

    Sincronizare()

    Creeaz o instan a tipului Sincronizare. Apelul metodei sincronizare() sau reinitializare_subscriere_si_sincronizare() a unui obiect instaniat cu acest constructor,

    va determina realizarea sincronizrii cu editorul n mod anonim (autentificarea la editor se va face pe baza contului computername\IUSR_computername). Sincronizare(medic As Medic) Creeaz o instan a tipului Sincronizare. Acest constructor accept caparametru o instan a tipului Medic, fcnd astfel posibil ca apelul metodei sincronizre() sau reinitializare_subscriere_si_sincronizare(), s determine sincronizarea cu editorul, autentificarea cu acesta fcndu-se pe baza datelor obiectului transmisca parametru. Indiferent de constructor, la iniializare, membru privat repl al clasei Sincronizare va fi ncrcat cu o serie de date ce permit conectarea la publicaiInternetUrl adresa URL a agentului SQL Server Compact Edition; Publisher denumirea editorului; PublisherDatabase denumirea bazei de date publicate; Publication denumirea publicaiei; Subscriber denumirea abonatului; SubscriberConnectionStrin stringul de conectare la baza de date; Toate aceste date vor fi pstrate de membrii privai ai clasei Sincronizare, iar valorile cu care acetia sunt initializai core

    spund configuraiei prezentate pe parcursul acestui capitol (n cazul n care nu ai foosit aceleai denumiri, adrese IP, etc., valorile membrilor privai vor trebui schimbate conform configuraiei alese de dumneavoastr).Tabelul nr. 9 Metodele clasei Sincronizare

    aceeasi_subscriere()

    Apelul acestei metode va determina extragerea de informaii referitoare la proprietile ultimei sincronizrii (se vor fi obine din tabelele sistem 37

  • 7/28/2019 83994029 Iftode Viorel Aplicatii Mobile Lucrare Licenta

    40/82

    sincronizare()

    reinitializare_subscriere_si_sincronizare()

    __sysMergeArticles, __sysMergeArticles, __sysMergeArticles ale bazei de date H5N1_MEDIC.sdf). Datele extrase vor fi comparate cu datele din membrul privat repl,n funcie de care se va retuna TRUE sau FALSE. Apelul acestei metode va determinaapariia unei casete de mesaj prin intermediul creia utilizatorul va confirma (saunu) sincronizarea cu editorul. Apelul acestei metode va avea efect asemntor cu metoda sincronizare(), diferena fiind dat de faptul c noua metod va efectua i o reinizare a subscrierii.

    Implementarea funcionalitii aplicaiei H5N1 Autentificare.vb vezi Anexa 3 AppH5N1.vezi Anexa 4 nainte de a scrie codul formularului Consultaie, este necesar a realiza legtura dintre componenta vizual de tip ComboBox cmbAlegePacient i tabela ANAMNEZA din setul de date local. Mediul Visual Studio este foarte generos n aceast privin i ne permite realizarea acestei cerine prin parcurgerea a cinci pai simpli: schide formularul Consultaie i se va selecta componenta vizual cmbAlegePacient; penru proprietatea DataSource se va alege tabela ANAMNEZA a setului local;

    Figur 28 Conectarea componentei ComboBox cmbAlegePacient la tabela ANAMNEZA

    38

  • 7/28/2019 83994029 Iftode Viorel Aplicatii Mobile Lucrare Licenta

    41/82

    pentru proprietatea DisplayMember se va selecta nume_prenume_pacient; pentru proprietatea ValueMember se va selecta cod_pacient;

    Figur 29 Stabilirea principalelor proprieti pentru cmbAlegePacient

    setul de date i adaptorul generate de wizard vor fi redenumite conform imaginii urmtoare;

    Figur 30 Noile denumiri ale obiectelor generate de Wizard-ul anterior

    Consultatie.vb vezi Anexa 5

    39

  • 7/28/2019 83994029 Iftode Viorel Aplicatii Mobile Lucrare Licenta

    42/82

    mpachetarea i distribuirea aplicaiilor mobilempachetarea i distribuirea aplicaiilor destinate dispozitivelor smart, nu sunt procese relativ simplu de efectuat (comparativ cu modalitile de mpachetare i distribuirale aplicaiilor destinate desktop-urilor). Dup ce o aplicaie a fost realizat i tet, urmtorul pas const n a o distribui utilizatorilor. Este foarte important de avutvedere faptul c nivelul cunotinelor din domeniul utilizrii noilor tehnologii, difede la un utilizator la altul, mai mult dect att, dispozitivele smart au configuraiihardware i software diferite. Scopul acestui capitol este de a explica modul n care putem mpacheta i distribui aplicaiile, avnd n vedere piedicile enumerate. Treintit faptul c aplicaiile smart dezvoltate n oricare limbaj de programare .NET, pentru a putea fi funcionabile trebuiesc a fi executate de pe un dispozitiv care n pr

    ealabil are instalat framework-ul .NET (corespunztor versiunii sub care acestea au fost dezvoltate). Exist veti bune n acest sens, dispozitivele smart al cror sistede operare este Windows Mobile 6.0/6.1, au implicit instalate Microsoft .NET Compact Framework 2.0 i Microsoft SQL Server Compact Edition. n cazul n care se nceara fi executat o aplicaie dezvoltat ntr-una din platformele .NET, de pe un dispozitismart ce nu are instalat n prealabil framework-ul .NET, utilizatorul va fi informat de acest lucru prin intermediul unui mesaj suficient de sugestiv.

    Figur 31 Mesajul prin care utilizatorul este ntiinat de necesitatea instalrii n pbil a Microsoft .NET Compact Framework

    Principalii pai ce trebuiesc realizai, sunt: stabilirea fiierelor ce alctuiesc apaia; realizarea fiierului .CAB (fiier n care aplicaia va fi mpachetat) pract

    t moment aplicaia poate fi distribuit ctre utilizatori, dar pentru realizarea unuipachet de instalare, 40

  • 7/28/2019 83994029 Iftode Viorel Aplicatii Mobile Lucrare Licenta

    43/82

    care executat de pe staia local s efectueze instalarea aplicaiei pe dispozitivul smrt ataat, trebuiesc realizai i restul pailor; realizarea unui fiier .dll n care vspecificate aciunile ce se vor efectua dup / nainte de instalare/dezinstalare; realizarea pachetului de instalare n care vor fi mpachetate toate fiierele necesare pentru ca aplicaia s poat fi instalat direct de pe desktop-ul utilizatorului;

    Modaliti de distribuire a aplicaiilor prin intermediul serverelor web: utilizatorul folosind browserul (Microsoft Internet Explorer Mobile) va accesa pagina web de unde poate fi descrcat fiierul .CAB,

    urmnd apoi a efectua instalarea. prin intermediul potei electronice: utilizatorulprimete fiierul .CAB ca ataament al unui email, urmnd a-l descarc i executa. priermediul cardurilor de memorie: utilizatorul ataeaz un card de memorie (pe care este stocat fiierul .CAB) la dispozitivul smart de unde i va descrca i instala aplicprin intermediul unui director partajat: utilizatorul acceseaz de pe dispozitivul smart un director partajat de unde va putea accesa fiierul .CAB. prin intermediul ActiveSync: utilizatorul va ataa dispozitivul smart la staia local, va realiza sincronizarea prin intermediul aplicaiei ActiveSync i va executa pachetul de instalare de pe unitatea desktop, iar aplicaia va fi transferat i nregistrat pe dispozitl mobil. etc.

    mpachetarea i distribuirea aplicaiei H5N1n cele ce urmeaz, se va prezenta modalitatea n care aplicaia H5N1 (a se vedea capitlul referitor la replicarea bazelor de date) poate fi mpachetat i distribuit ctre lizatori (am considerat ca aplicaia H5N1 s fie luat drept exemplu, deoarece ea parea fi cea mai complet i mai n msur s acopere subiectele de interes ale acestui ca).

    Stabilirea fiierelor ce alctuiesc aplicaiaDup ce am scris i rulat aplicatia pentru prima dat, observm c structura fiierelordirectorul unde aplicaia a fost copiat pe dispozitivul smart) nu este chiar complex. Avem aadar dou fiiere: H5N1.exe H5N1_MEDIC.sdf Cel mai probabil, dac e s

    at emulatorul, iar sistemul de operare ales a fost Windows Mobile 5.0, nainte dea trece fiierele pe dispozitivul smart, mediul integrat Visual Studio 2008 a efectuat verificri n privina resurselor software necesare execuiei aplicaiei, iar n ccare acestea nu existau, automat s-ar fi efectuat instalarea lor. Totui, nu tottimpul aceaste resurse software necesare aplicaiei pot fi instalate automat, ns unele dintre ele (n cazul nostru SQL Server Compact Edition) permit ca atunci cnd o serie de fiiere .dll sunt incluse n proiect i distribuite mpreun cu aplicaia, insta s nu mai fie obligatorie. Dac avem curiozitatea i accesm directorul n care se afstribuiile SQL Server Compact Edition (Program Files\Microsoft SQL Server CompactEdition\v3.5\Devices\wce500) vom gsi o serie de directoare n care sunt fiiere .CABi .dll. ns, oare de ce attea directoare i fiiere care fac acelai lucru? Ei bineirile directoarelor sunt acronime de la diferite tipuri de procesoare ale 41

  • 7/28/2019 83994029 Iftode Viorel Aplicatii Mobile Lucrare Licenta

    44/82

    dispozitivelor smart. Aadar fiecare director n parte va conine fiiere .CAB i .dll cifice tipului de procesor cu denumirea directorului accesat. Deci, pentru a evita situaia n care aplicaia H5N1 nu va putea fi executat de pe un dispozitiv smart cnu are instalat SQL Server Compact Edition, va trebui s distribuim odat cu aplicaia i cteva fiierele .dll (sqlceca30.dll, sqlcecompact30.dll, sqlceer30en.dll, sqlceme30.dll, sqlceoledb30.dll, sqlceqp30.dll, sqlcese30.dll). O alt posibil ntrebare arfi: Aceleai fiiere .dll cu denumirile susmenionate se gsesc n fiecare director at unui anumit tip de procesor. Pe care le vom include?. De cele mai multe ori nuse poate ti cu exactitate pe ce arhitectur aplicaia va fi executat, iar pentru a ava garania c nu vor fi probleme, vom fi nevoii a face mai multe distribuii (fiiere B n care aplicaia va fi mpachetat) pentru fiecare tip de procesor n parte. Ca exem

    , am decis a realiza distribuiile pentru ARMV4I, SH4 i X86. De asemeni, oricare alte fiiere ce sunt necesare funcionrii corecte a aplicaiei, vor trebui identificate

    entru a putea fi mpachetate i distribuite odat cu ea.

    Realizarea fiierului .CAB1. Se va deschide proiectul H5N1 n mediul Visual Studio 2008. 2. Din fereastra Configuration Manager (Build Configuration Manager), se va seta Release pentru Active solution configuration.

    Figur 32 Pentru optimizarea codului aplicaiei se va alege modul de compilare Release

    3. Completarea informaiilor de ansamblare a aplicaie: se acceseaza meniul contextu

    al al proiectului H5N1, apoi se deschide fereastra de proprieti. n seciunea Applicaion se va apsa butonul Assembly Information. 42

  • 7/28/2019 83994029 Iftode Viorel Aplicatii Mobile Lucrare Licenta

    45/82

    Figur 33 Fereastra de proprieti a proiectului H5N1 (cadrul de pagin Application)

    Figur 34 Fereastra n care vor fi completate informaiile de ansamblare a aplicaiei

    4. Urmtorul pas const n adugarea unui nou proiect de tip Smart Device CAB la soluixistent (File Add New Project, din panoul stng al ferestrei Add New Project se vaextinde nodul Other Project Types, se va alege Setup and Deployment, iar din panoul din dreapta ferestrei se va face click pe Smart Device CAB Project). Proiectului i va fi atribuit denumirea H5N1.ARMV4I.

    43

  • 7/28/2019 83994029 Iftode Viorel Aplicatii Mobile Lucrare Licenta

    46/82

    Figur 35 Coninutul ferestrei Solution Explorer dup ce a fost adugat noul proiect detip Smart Device CAB

    5. Completarea proprietilor proiectului H5N1.ARMV4I: se va selecta noul proiect, api din fereastra Properties se vor efectua modificri asemntoare cu cele din imagineaalturat.

    Figur 36 Fereastra de proprieti a proiectului H5N1.ARMV4I

    6. Specificarea fiierelor ce se doresc a fi mpachetate: se deschide panoul File System, se va face click dreapta pe Application Folder19 Add Project Output, iar d

    in noua fereastra Add Project Output Group se va selecta Primary Output, apoi click pe butonul OK.

    19

    Conine informaii referitoare la aplicaia care va fi instalat prin intermediul pacheului.