Iftode Viorel - Aplicatii Mobile (Lucrare Licenta)

download Iftode Viorel - Aplicatii Mobile (Lucrare Licenta)

of 79

Transcript of Iftode Viorel - Aplicatii Mobile (Lucrare Licenta)

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

APLICAII MOBILE

Absolvent Viorel IFTODE

2008

CuprinsINTRODUCERE .................................................................................................................................................. 3 .NET COMPACT FRAMEWORK.............................................................................................................................. 6 MICROSOFT SQL SERVER COMPACT 3.5 ................................................................................................................ 6 SCENARIU DE APLICAIE N MEDIILE 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 BAZEI DE 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 DISTRIBUIREA APLICAIILOR MOBILE .........................................................................40 MODALITI DE DISTRIBUIRE A APLICAIILOR ..........................................................................................................41 MPACHETAREA I DISTRIBUIREA APLICAIEI H5N1 ...................................................................................................41 STABILIREA FIIERELOR CE 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 ...............................................................................................................................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

IntroducereRitmul n care tehnologia avanseaz este suficient de rapid astfel nct aproape i determin pe unii s nu in pasul cu ea (cazul telecomunicaiilor, informaticii, autovehiculelor, etc.), alteori ritmul acesteia este lent n special n cazul tehnologiilor de vrf unde numrul specialitilor este redus (cazul medicinei, cercetrii spaiale, etc.). Paii cei mai rapizi n ultimii ani au fost fcui n domeniul telecomunicaiilor ar fi nepotrivit s notm noile tehnologii dezvoltate n ultimii cinci ani de zile (lucrarea nu i va 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 ajutorul unui dispozitiv mobil poi realiza o sumedenie de operaiuni: trimiterea i recepionarea de mesaje scrise (eng. Short Message Service SMS), mesaje multimedia (eng. Multimedia Messaging Service MMS); accesarea casuei potale prin intermediul protocoalelor Post Office Protocol version 3 (POP3), Internet Message Access Protocol (IMAP), Simple Mail Transfer Protocol (SMTP); iniierea i recepionarea de apeluri telefonice Global System for Mobile Communications (GSM), Voice-over-Internet protocol (VOIP), tip teleconferin, etc.; efectuarea de fotografii n format digital; transfer de fiiere prin Universal Serial Bus (USB), Bluetooth, Wi-Fi; accesarea internetului prin intermediul GSM, Wireless Application Protocol (WAP), General Packet Radio 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, navigatori Global Positioning System GPS, dicionare, jocuri, etc.); etc. Motivul pentru care dispozitivele mobile au suferit transformri de la simple terminale de iniiere i recepionare a apelurilor telefonice i pn la terminale cu funcii suplimentare asemeni celor sus menionate, s-a datorat necesitii oamenilor de a accesa informaia oriunde i oricnd. Acest oriunde i oricnd s-a putut realiza doar prin intermediul unor dispozitive mobile de mici dimensiuni. Cu timpul cerinele n afaceri au determinat ca personalul unei companii s fie permanent conectat la business (n adevaratul sens al cuvntului nu numai s poat accesa resursele din companie atunci cnd resursa uman nu se afl fizic la sediu, ci i atunci cnd angajaii se afl n timpul liber i pot efectua operaiuni de rutin ce nu necesit un efort deosebit fapt care a determinat ca unele companii s i plteasc angajaii chiar i cnd acetia sunt plecai n vacan). n cele ce urmeaz vom ncerca s prezentm cum anume pot fi realizate aplicaii destinate dispozitivelor mobile, ce anume avem nevoie pentru crearea acestora, vom exemplifica cu un tip de aplicaie ceva mai complex, iar n finalul acestei lucrri vom puncta cteva concluzii referitoare la dezvoltarea aplicaiilor mobile pe platforma .NET. Pentru nceput inem s precizm c aplicaiile mobile se pot dezvolta pe mai multe platforme folosind diferite limbaje de programare.

Tabelul nr. 1 Scurt descriere a principalelor platforme

Platforma Java ME

Descriere Micro Edition sau Java ME ofer suportul pentru crearea aplicaiilor care ruleaz 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 pentru care sunt destinate aplicaiile J2ME folosesc resurse limitate. Astfel, pentru a crea astfel de 3

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 pentru J2EE 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 cea mai rspndit actualmente este S60 (n proporie de 67%).3 Folosit n dezvoltarea aplicaiilor mobile ale cror sistem de operare este Windows Mobile. Spre deosebire de Java ME, .NET Compact Framework folosete n ntregime librrile .NET Framework (dar adaptate pentru dispozitivele mobile). Ultima versiune a fost lansat de ctre Microsoft la data de 25 Ianuarie 2008 sub numele .NET Compact Framework 3.5. Iniial sistem de operare destinat dispozitivelor mobile personal digital assistants (PDAs) actualmente deinut de catre Palm, Inc.4

Tabelul nr. 2 Evaluare comparativ a principalelor platforme

Platforma Java ME

Limbaje programare Java

Uurin nvare Medie

Emulator Gratis disponibil n kitul Sun Java Wireless Toolkit for CLDC 2.5.2 n funcie 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 cu eforturi financiare n funcie de utilitarele folosite.

.NET Compact Framework

VB.NET, C#

Medie

Palm OS

C, C++

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.jsp (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

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 poate fi gsit sub forma a trei versiuni (n funcie de performanele hardware ale dispozitivului mobil): Windows Mobile Standard este destinat telefoanelor mobile cu funcii avansate (eng. Smartphone) precum: e-mail, mesaje text, browser internet, etc. (fiind o versiune cu mai puine funcionaliti dect Windows Mobile Classic sau Windows Mobile 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 Microsoft Office Mobile. Windows Mobile Professional este destinat dispozitivelor smart 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 de business. Motivul pentru care am afirmat acest lucru se datoreaz n principal faptului c versiunea 6.1 ofer funcionaliti frecvent cerute n zona afacerilor: conine o versiune 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 (permite inclusiv sincronizarea n timp real cu serverul de Exchange direct push); exist disponibil 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 clientul Outlook de pe calculatorul personal; ofer posibilitatea conectrii la distan Remote 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

(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-un limbaj 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, aplicaiile ce se folosesc de maina virtual CLR vor fi mai lente dect aplicaiile scrise n cod C++. 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 dezvoltarea unei aplicaii, de nivelul de cunotine i experiena cu limbajul de programare C++ 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 calculatoarelor, cu meniunea c la versiunea destinat dispozitivelor mobile unele metode i proprieti au fost eliminate (din criterii de performan) i au fost adugate un set de clase specifice 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 preinstalat componenta .NET, dar pentru c numrul de aplicaii destinate dispozitivelor Windows 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 odat 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 bazelor de date relaionale, produs de ctre Microsoft i destinat dezvoltrii de aplicaii desktop ct i pentru dispozitivele mobile (Pocket PC, Smartphone). Trebuie s reinem faptul c SQL Server Compact 3.5 nu ofer o funcionalitate att de puternic precum SQL Server 2005 sau SQL Server 2008. Este o versiune mai simpl, dar care ofer multe faciliti: baza de date SQL Server Compact Edition este ncapsulat ntr-un singur fiier, acest lucru facilitnd instalarea uoar a aplicaiilor prin simpla copiere dintr-un loc n altul (fa de alte SGBD-uri care necesit export/import de date); SQL Compact Edition ofer posibilitatea 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 sunt ansele ca datele s fie descifrate; dimensiunea unei baze de date poate atinge maxim 4GB (n viitorul apropiat, cu siguran va dispare aceast limitare); integritate referenial deplin (permite inclusiv actualizri n cascad); ACID Atomicitate, Consisten, Izolare, 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

se instaleaz uor att pe desktop ct i pe dispozitivele mobile; folosete tehnologia ADO.NET 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. Varianta Visual Studio ideal pentru dezvoltare este Microsoft Visual Studio 2008 Professional Edition14. Din fericire, aceast variant poate fi descrcat gratuit (n versiune trial) de pe site-ul Microsoft.

14

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

7

Scenariu de aplicaie n mediile mobileO baz de date distribuit reprezint o colecie de date integrate din punct de vedere logic, 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 cretere a performanelor i a disponibilitii datelor pentru aplicaii. Principalul dezavantaj al sistemelor centralizate, l reprezint ntreruperea funcionalitii aplicaiilor n cazul apariiei unor disfuncionaliti la nivelul serverului, pe cnd, sistemele distribuite prin intermediul replicrii pot: pstra copii ale acelorai date pe mai multe maini de lucru (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 operaii complexe ce necesit citiri i prelucrri ndelungate, dar care nu afecteaz performanele ntregului sistem; mbunti timpii de citire / prelucrare a datelor; permite lucrul cu datele bazei de date n mod deconectat, iar la cerere i n cazul n care se poate accesa canalul de comunicaie, se vor actualiza posibilele modificri aprute. Microsoft SQL Server suport mai multe tipuri de replicri15: replicarea snapshot; replicarea tranzacional; replicarea de tip sincronizare (eng. merge replication). Dintre aceste trei tipuri de replicare a datelor, doar replicarea sincronizat (eng. merge replication) este compatibil i cu Microsoft SQL Server Compact Edition. nainte de a trece mai departe n a descrie modul de configurare i utilizare a replicrii de tip merge ntr-o aplicaie destinat dispozitivelor smart, este necesar a cunoate civa termeni frecvent folosii pe parcursul acestei lucrri. Editorul (eng. Publisher) server de baze de date 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 modificrile aprute. 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 datelor). Articol (eng. Article) o colecie de date (o tabel; o poriune dintr-o tabel: anumite coloane, anumite nregistrri; etc.). Publicaie (eng. Publication) set de articole 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 dat. Agentul snapshot cel ce pregtete instantaneul (snapshotul), respectiv fiierele surs ale bazei de date (fiiere ce sunt salvate ntr-un folder snapshot aflat la distribuitor). De fiecare dat cnd agentul snapshot este pornit, automat el va verifica modificrile aprute i va genera fiierele surs a bazei de date (.sch scheme, .dri constrngeri i indeci, .trg declanatoare, .sys tabele cu date sistem, .cft conflicte ntre tabele, .bcp date). Agentul de distribuie cel ce pstreaz istoricul i statisticile replicrilor 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

Baz date distribuie (eng. Distribution database) baz de date sistem folosit doar pentru replicare i care nu conine alte tabele utilizator (are rolul de a pstra tranzaciile 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 prin intermediul unei reele, fiind permis realizarea unor schimburi de date n ambele sensuri. Acest tip de replicare este recomandat a fi folosit n urmtoarele situaii: mai muli abonai pot efectua multiple actualizri asupra datelor, iar schimbrile aprute vor putea fi propagate ctre editor (astfel fiind posibil ca i ali abonai s poat vedea modificrile survenite); abonaii pot efectua modificri asupra datelor n mod deconectat, ulterior efectundu-se sincronizarea cu editorul pentru a propaga schimbrile ctre acesta; abonaii pot obine date filtrate; n procesul de sincronizare vor fi transmise modificrile nete (dac o nregistrare se modific de n ori la abonat nainte de a se efectua sincronizarea, nregistrarea va fi modificat o singur dat la editor n momentul n care 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 la nivelul lor. Este foarte important ca agentul snapshot s actualizeze respectivele fiiere, deoarece n funcie de coninutul lor va fi revizuit i schema bazei de date a abonatului. Agentul de sincronizare va aplica snapshotul asupra abonatului (abonatul trebuie s aib aceai schem a bazei de date ca i editorul) i va propaga modificrile ce apar la editor i la abonat. Agentul de distribuie n cazul replicrii de tip sincronizare 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 DISTRIBUITOR

ISTORIC 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

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 de 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 o mutaie spontan prin care s se transmit direct de la om la om. Avnd n vedere c din totalul 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 gripei aviare s-ar adapta la om. Potrivit Organizaiei Mondiale a Sntii, o pandemie ar putea face pn la o sut de milioane mori. Virusul gripei aviare se manifest la om ntr-un mod 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 semne, apare o tuse seac, iritant. Aceste manifestri apar i n cazul gripei umane, ns principala diferen ntre cele dou tipuri de grip (uman i aviar) o reprezint insuficiena respiratorie (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 (plmnul se ncarc cu lichid, care nu mai permite transferul de gaze). Avnd n vedere c boala evolueaz foarte rapid (aproximativ zece zile) i se poate transmite relativ uor, este de importan vital s se transmit ntr-un timp ct mai scurt toate datele care sugereaz infecia cu virusul gripei aviare, n aa fel nct specialitii s se poat pronuna ct mai precoce n privina diagnosticului i a instaurrii carantinei. Un posibil ajutor oferit de ctre noile 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 medicale. Datele despre pacieni vor fi completate i salvate n baze de date Microsoft SQL Server 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 Microsoft 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 necesar a pregti (configura) canalele de comunicaie prin intermediul crora vor putea fi replicate datele aflate la abonai i editor. 10

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 a new 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 types 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 Finish pentru a finaliza instalarea. Configurarea adaptorului (setarea adresei IP): din panoul 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 click pe 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

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 Notepad se 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

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 pagina Network 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 - Virtual Machine 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 The Internet; 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 abonatului

dup ce s-a configurat adaptorul, trebuie reefectauat operaiunea de conectare cu adaptorul de reea (File - Configure... - Network). Pentru a verifica dac setarile au fost 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 principale 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 flexibilitate ridicat, am decis a simplifica pe ct posibil lucrurile i propunem ca schema bazei de date BD_H5N1 s fie alctuit din dou tabele (MEDICI are rolul de a pstra date referitoare la medicii care vor efectua consultaii pacienilor; ANAMNEZA va reine date privind pacienii i consultaia efectuat lor).

13

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 Type se 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 SGBD. Urmtoarele secvene de cod au ca rezultat generarea bazei de date BD_H5N1.CREATE DATABASE BD_H5N1 GO

14

USE BD_H5N1 GO CREATE TABLE MEDICI ( cod_medic INTEGER IDENTITY NOT NULL PRIMARY KEY, nume_prenume_medic NVARCHAR(25) NOT NULL, nume_cont NVARCHAR(10) NOT NULL CONSTRAINT UK_nume_cont UNIQUE, parola_cont NVARCHAR(10) NOT NULL, adresa_contact NVARCHAR(50) NOT NULL, telefon_contact NVARCHAR(10) NOT NULL ) GO CREATE TABLE ANAMNEZA ( 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 DEFAULT 0, 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 DEFAULT 0, 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 nregistrri.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 (nume_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 vizualizare clasic; Se va accesa Computer Management aflat n directorul sistem Administrative Tools; creai un nou utilizator accesnd System Tools Local Users and Groups Users: Cmp Valoare User name: agent_snapshot 15

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... View, se va deselecta opiunea Use simple file sharing; Se va realiza un nou director cu denumirea 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 zona 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 atribuite permisiunile 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 structura arborescent se va selecta Replication iar din meniul contextual se va alege crearea unei noi publicaii (New Publication). Se va apsa pe butonul Next din cadrul primei 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 fie specificat serverul ce se va comporta ca Distribuitor. Se va selecta prima opiune pentru a alege serverul local.

16

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 (\\computername\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_H5N1. Aa cum am spus i la nceputul capitolului, replicarea de tip sincronizare este singurul tip de replicare la care Microsoft Server Compact Edition poate subscrie. Se va 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

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 UNIQUEIDENTIFIER ocup un spaiu de 16 octei per valoare i de obicei opereaz cu identificatori globali unici (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 fi obinut prin dou metode: o folosind funcia NEWID() n acest caz, cel ce va genera identificatorul global unic este SGBD-ul. o folosind funciile API generatorul identificatorului global unic este dat de aplicaia client. GUID este o valoare generat pe baza numrului unic de indentificare a adaptorului de reea i a numrului unic al procesorului. 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 setat proprietatea ROWGUIDCOL. n cazul replicrii de tip sincronizare, valorile atributelor de tip UNIQUEIDENTIFIER sunt cele care asigur unicitatea nregisitrrilor i permit copierea 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 de date 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

operaiile ce necesit lucrul cu indexurile atributelor de tip UNIQUEIDENTIFIER sunt mai 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 sunt exclusiv adresate lor. o

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

n cazul n care nu s-ar aplica filtre, un medic de fiecare dat cnd va cere realizarea sincronizrii cu editorul ar descrca ntregul coninut al tabelei MEDICI (respectiv toi pacienii consultai, inclusiv pacienii consultai de colegii lui), fapt care duce la o ncrcare inutil a bazei de date aflate pe dispozitivul smart al medicului, costuri ridicate privind comunicaiile, ncetinirea aplicaiei pe msur ce numrul pacienilor consultai va crete, etc. Folosind filtrele, operaia de sincronizare va trimite ctre dispozitivul smart Windows Mobile aflat n poseseia medicului, doar nregistrrile cu privire la pacienii consultai de el. n cazul nostru filtrarea nregistrrilor se va realiza pe baza 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_medic FROM MEDICI WHERE nume_cont=SUSER_SNAME()). Vom apsa butonul Add i alegem opiunea Add Filter..., selectm tabela ANAMNEZA, iar n seciunea Filter statement se va completa condiia de filtrare.

19

Figur 13 Condiia de filtrare a datelor tabelei ANAMNEZA

Totui de ce nu efectum filtrri i pe tabela MEDICI? o Numrul medicilor este cu mult mai mic dect numrul pacienilor, iar efectuarea filtrrii datelor pe tabele cu un numr mic de nregistrri nu ar mbuntii cu mult performanele aplicaiei. o Medicii pot schimba dispozitivele smart Windows Mobile ntre ei (efectueaz consultaii pe schimburi de lucru), aadar este necesar ca la autentificarea n aplicaia H5N1, pe dispozitivul smart s existe 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 aplicaie (operaie ce se va realiza la editor), iar respectivul medic va avea posibilitatea s se autentifice pe oricare din dispozitivele smart disponibile (nu nainte de a 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 se va 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

17

computername va fi nlocuit cu denumirea staiei locale

20

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 Close. o

7. Setarea permisiunilorEste necesar pentru a se realiza sincronizarea dintre editor i abonat, s stabilim permisiunile de access pentru: Agentul snapshot; Agentul IIS; Medici (pentru fiecare medic se va crea un cont de acces, datele conturilor de acces vor coincide cu 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 nou cont de acces (New Login...). Agentul snapshot: o Din fereastra de dialog pentru crearea 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 staiei locale) se va apsa butonul Check Names pentru a verifica corectitudinea datelor introduse, 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

Agentul IIS: o Paii sunt asemntori cu cei parcuri n crearea contului agentului snapshot, 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 genera contul de acces se va apsa butonul OK. Din fereastra de proprieti a publicaiei (din zona Object Explorer a SQL Server Management Studio, parcurgem structura arborescet pn la publicaia PUBLICATIE_H5N1, click dreapta Properties), selectm din panoul 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 (click dreapta pe publicaie iar din meniul contextual se va alege View Snapshot Agent Status). 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

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 directory. n cazul n care suntem ntmpinati de o csu de mesaj asemntoare cu cea din imaginea alturat, 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 server 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 Alias cu 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 de mesaj prin 23

care suntem informai c directorul cu denumirea menionat n caseta de text alias nu exist, i cea dea doua caset de mesaj, prin care suntem informai de efectuarea unei copii i a unei nregistrrii a agentului SQL Server Compact Edition). Urmtorul pas (Secure Communications) 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 Anonymous Access se vor accepta setrile implicite. La pasul Snapshot Share Access se va meniona adresa UNC a directorului snapshot (ex: \\computername\director_snapshot unde computername va fi nlocuit cu denumirea staiei locale). n fereastra de dialog a pasului Complete the Wizard vor fi prezentate un sumar al setrilor efectuate pe parcursul 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-ul folosit 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

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 (PUBLICATIE_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 name cu 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 baza exemplului H5N1 nu credem c este necesar autentifcarea n prealabil (The Subscriber will 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 dat de folosirea unor obiecte de tipul SqlCeReplication (spaiul de nume System.Data.SqlServerCe), care prin intermediul apelrii anumitor metode, ne vor ajuta s realizm sincronizarea dintre abonai i editor.18

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

25

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 As String, publisherPassword As String, publication As String, subscriber As String, subscriberConnectionString As String)

Iniializeaz o nou instan a tipului SqlCeReplication. Iniializeaz o nou instan a tipului SqlCeReplication i totodat sunt setate valorile principalelor proprieti necesare conectrii la publicaie. Parametri: internetUrl adresa URL folosit pentru a contacta agentul 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 de date publicate; publication denumirea publicaiei; subscriber denumirea abonatului; subscriberConnectionString stringul de conectare la baza de date; Aceeai funcionalitate ca i constructorul precedent doar c accept n plus transmiterea valorilor a nc 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 SqlCeReplication

CompressionLevel

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 6 (valoarea 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). Cu ct gradul de comprimare este mai ridicat, cu att va crete i timpul de procesare a datelor 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 comunicaie se confrunt cu frecvente ntreruperi ce pot apare n momentul realizrii sincronizrii dintre abonat i editor. n cazul n care conexiunea este restabilit n intervalul de secunde specificat, atunci sincronizarea va fi continuat, n caz contrar sincronizarea va fi 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

ConnectTimeout

Distributor

DistributorPassword

DistributorAddress

DistributorLogin

DistributorNetwork

DistributorSecurityMode

ExchangeType

HostName

realizarea primei conexiuni. Prin intermediul acestei proprieti se poate seta sau obine intervalul de timp (n milisecunde) n care trebuie s se realizeze conexiunea cu serverul. n cazul n care conexiunea nu se realizeaz n intervalul stabilit, cererea realizrii sincronizrii este anulat. Valoarea maxim admis este de 360 000 milisecunde (360 secunde). Prin intermediul acestei proprieti este specificat numele distribuitorului. Distribuitorul este maina pe care este instalat Microsoft SQL Server i care conine instantaneul (snapshotul), istoricul i statisticile replicrilor efectuate. Aceasta proprietate este opional, iar n cazul n care nu i este specificat o valoare, se consider c editorul i distribuitorul sunt instane ale aceluiai server SQL. Proprietatea 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 se putea realiza comunicarea dintre agentul SQL Server Compact Edition i distribuitor. Este necesar setarea acestei proprieti atunci cnd proprietatea DistributorNetwork 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 DBAuthentication. Prin intermediul acestei proprieti se poate seta sau returna tipul protocolului folosit n comunicarea cu distribuitorul (DefaultNetwork, MultiProtocol, TcpipSockets). 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 viceversa. Upload vor fi transmise ctre editor doar modificrile aprute la abonat. Pe baza valorii acestei proprieti se pot efectua filtre asupra nregistrrilor trimise ctre abonat. Publicaiilor 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 where din pasul Filter Table Rows al wizard-ului de generare de publicaii. Aadar, dac n schema 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

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 pe baza crora se vor efectua filtrri. Primete ca valoare numele de cont folosit la autentificarea cu agentul SQL Server Compact Edition. Implicit nu este setat nicio valoare. Permite setarea parolei contului folosit la autentificarea cu agentul SQL Server Compact Edition. Permite specificarea adresei URL folosit pentru contactarea agentului SQL Server Compact Edition. Prin intermediul acestei proprieti se poate 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 pentru conectarea cu editorul (atunci cnd agentul SQL Server Compact Edition i editorul se afl pe maini de lucru separate). Proprietatea este ReadOnly i returneaz numrul de modificri (inserri, actualizri, tergeri nregistrri) ce au fost permanentizate la abonat 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 ctre abonat (doar n cazul n care clauza where, din pasul Filter Table Rows al wizard-ului de generare de publicaii, are specificat o condiie ce folosete funcia Transact-SQL SUSER_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 conturilor existente la nivelul sistemului de operare. Seteaz sau returneaz intervalul maxim de timp (n secunde) alocat efecturii procesarilor interne (ale serverului SQL). Valoarea implicit este de 300 secunde. Returneaz sau seteaz intervalul de timp (n milisecunde) n care obiectul SqlCeReplication ateapt rspuns de la server. Dac intervalul de timp stabilit este depait, atunci cererea adresat serverului este anulat. Valoarea implicit este 60 000 milisecunde (60 secunde), iar maximul admis este de 360 000 milisecunde (360 secunde). Returneaz sau seteaz intervalul de timp (n milisecunde) pe care 28

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 ca valoare denumirea subscrierii. Proprietatea este ReadOnly i returneaz numrul de modificri (inserri, actualizri, tergeri nregistrri) ce au fost permanentizate la editor n urma operaiunii de sincronizare. Prin intermediul acestei proprieti se specific stringul de conectare la baza de date SQL Server Compact Edition.

Tabelul nr. 5 Principalele metode ale clasei SqlCeReplication

AddSubscription (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 de date SQL Server Compact Edition pe baza snapshotului, precum i transferul de nregistrri. ExistingDatabase presupune descrcarea de date (nregistrri) de la editor i permanentizarea 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 valoarea TRUE, nainte de a se reiniializa subscrierea, se vor trimite modificrile ctre editor. 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 extrase. Invoc replicarea de tip sincronizare (eng. merge replication) dintre abonat i editor. nainte de a se apela metoda Synchronize, este necesar a se nchide toate conexiunile cu baza de date. Metoda va salva informaiile referitoare la proprietile sincronizrii (ncarcate n obiectul SqlCeReplication ce apeleaz metoda), n tabelele sistem ale bazei de date.

29

Realizarea aplicaiei H5N1 Aplicaia H5N1 va fi alctuit din trei formulare ce i vor permite utilizatorului (medicului): 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, nchiderea 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 funcie de datele introduse, aplicaia H5N1 va trebui s efectueze o cutare n baza de date aflat 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 afiarea formularului AppH5N1, de unde utilizatorul va putea accesa oricare alte funcionaliti ale aplicaiei. Formularul Autentificare ofer i posibilitatea realizrii sincronizrii anonime cu editorul. n urma acestei operaiuni toate modificrile aprute la abonat vor fi reflectate ctre editor, iar ctre abonat vor fi transmise doar nregistrrile ce alctuiesc tabela MEDICI. Am denumit aceast sincronizare ca fiind anonim, deoarece operaia de sincronizare se poate realiza i fr ca utilizatorul s fie autentificat la aplicaie. 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 alture echipelor 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 Autentificare.

lblNumeDeCont

txtNumeDeCont

lblParola

txtParolaCont mbtnSincronizareAnonima

mbtnIesire mbtnAutentificare

Figur 20 Macheta general a formularului Autentificare

30

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 poate 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 tabela MEDICI precum i nregistrrile (doar cele ce ndeplinesc condiia de filtrare) din tabela ANAMNEZA. Odat autentificai la aplicaia H5N1, medicii vor putea introduce / edita date privind consultaiile pacienilor, respectiv vor accesa (prin intermediul opiunilor Consultaie pacient / Consultaii efectuate) cel de-al treilea formular al aplicaiei Consultaie. Deautentificarea se va putea realiza prin apsarea Sfarsit sesiune din meniul formularului AppH5N1, caz n care aplicaia va direciona utilizatorul ctre formularul Autentificare.

lblInfMedic

mbtnConsultatiiEfectuate mbtnConsultPacient mbtnSfarsitSesiune mbtnIesire

mbtnSincronizare

Figur 21 Macheta general a formularului AppH5N1

Formularul Consultaie va ndeplini dou funcionaliti (formular de introducere date consultaie pacient, respectiv formular de editare date consultaii pacient), n funcie de care anumite controale vizuale vor fi activate / dezactivate ori vor avea culori sau mesaje diferite. n cazul introducerii de date: Titlul formularului va conine mesajul Date consult pacient!. Componenta ComboBox cmbAlegePacient va fi inactiv. Textul 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. Componentele btnSalveaza i btnReseteaza vor afia mesajele Salveaza date pacient nou, respectiv Reseteaza formular. Dup confirmarea salvrii datelor pacientului, utilizatorul va fi direcionat ctre formularul AppH5N1.

31

n cazul editrii datelor: Titlul formularului va afia mesajul Modifica date pacienti!. Componenta ComboBox cmbAlegePacient va fi activat i va conine numele i prenumele pacienilor 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 i btnReseteaza vor afia mesajele Salveaza modificari pacient! respectiv Renunta modificari 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 salvrii 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

nudNrZileAparitieSimptome txtTemperatura rbnDureriCapDa rbnDureriGatDa rbnDureriMusculare Da rbnNasInfundatDa rbnConjunctivitaDa rbnTuseDa rbnSenzatieSufocareDa rbnInsuficientaRespiratorieDa rbnContactAnimaleDa rbnDureriCapNu rbnDureriGatNu rbnDureriMusculareNu rbnNasInfundatNu rbnConjunctivitaNu rbnTuseNu rbnSenzatieSufocareNu rbnInsuficientaRespiratorieNu rbnContactAnimaleNu

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

33

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, apoi se vor realiza cele trei formulare (formularul Consultaie va fi creat n forma prezentat ca introducere date pacienti) respectnd denumirile obiectelor vizuale aa cum sunt prezentate n imaginile de mai sus. Urmtorul pas const n a realiza conexiunea cu baza de date H5N1_MEDIC.sdf folosind wizard-ul pus la dispozitie de mediul Visual Studio (vom ncrca setul de date local cu toate obiectele existente n baza de date i 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 setul de date local. Deschidem schema setului de date local prin accesarea fiierului setul_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 fraza SQL 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

Figur 25 Fraz SQL parametrizat ce va fi folosit pentru a ncrca cu date tabela MEDICI din 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

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 pentru tabela 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 rolul de a pstra date referitoare la persoana autentificat la aplicaie; Sincronizare va reda funcionalitatea necesar aplicaiei pentru a realiza replicarea datelor. Fiecare clas va fi creat ntr-un fiier separat cu extensia .vb (din fereastra Solution Explorer 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 medicului; nume_prenume_medic reprezint numele i prenumele medicului autentificat la aplicaia H5N1; nume_cont numele de cont cu care medicul s-a autentificat la aplicaie; parola_cont parola introdus de mediul autentificat la aplicaie; adresa_contact adresa medicului; telefon_contact numrul de telefon al medicului; Valorile acestor parametrii vor fi preluate din baza 36

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 aplicaia H5N1. Returneaz o 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 telefon al 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 ca parametru o instan a tipului Medic, fcnd astfel posibil ca apelul metodei sincronizare() sau reinitializare_subscriere_si_sincronizare(), s determine sincronizarea cu editorul, autentificarea cu acesta fcndu-se pe baza datelor obiectului transmis ca parametru. Indiferent de constructor, la iniializare, membru privat repl al clasei Sincronizare va fi ncrcat cu o serie de date ce permit conectarea la publicaie: InternetUrl adresa URL a agentului SQL Server Compact Edition; Publisher denumirea editorului; PublisherDatabase denumirea bazei de date publicate; Publication denumirea publicaiei; Subscriber denumirea abonatului; SubscriberConnectionString 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 corespund configuraiei prezentate pe parcursul acestui capitol (n cazul n care nu ai folosit 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

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 determina apariia unei casete de mesaj prin intermediul creia utilizatorul va confirma (sau nu) 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 reiniializare a subscrierii.

Implementarea funcionalitii aplicaiei H5N1 Autentificare.vb vezi Anexa 3 AppH5N1.vb 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: se deschide formularul Consultaie i se va selecta componenta vizual cmbAlegePacient; pentru proprietatea DataSource se va alege tabela ANAMNEZA a setului local;

Figur 28 Conectarea componentei ComboBox cmbAlegePacient la tabela ANAMNEZA

38

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

mpachetarea i distribuirea aplicaiilor mobilempachetarea i distribuirea aplicaiilor destinate dispozitivelor smart, nu sunt procese relativ simplu de efectuat (comparativ cu modalitile de mpachetare i distribuire ale aplicaiilor destinate desktop-urilor). Dup ce o aplicaie a fost realizat i testat, urmtorul pas const n a o distribui utilizatorilor. Este foarte important de avut n vedere faptul c nivelul cunotinelor din domeniul utilizrii noilor tehnologii, difer de la un utilizator la altul, mai mult dect att, dispozitivele smart au configuraii hardware i software diferite. Scopul acestui capitol este de a explica modul n care putem mpacheta i distribui aplicaiile, avnd n vedere piedicile enumerate. Trebuie amintit 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 prealabil are instalat framework-ul .NET (corespunztor versiunii sub care acestea au fost dezvoltate). Exist veti bune n acest sens, dispozitivele smart al cror sistem de 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 ncearc a fi executat o aplicaie dezvoltat ntr-una din platformele .NET, de pe un dispozitiv smart 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 prealabil a Microsoft .NET Compact Framework

Principalii pai ce trebuiesc realizai, sunt: stabilirea fiierelor ce alctuiesc aplicaia; realizarea fiierului .CAB (fiier n care aplicaia va fi mpachetat) practic din acest moment aplicaia poate fi distribuit ctre utilizatori, dar pentru realizarea unui pachet de instalare, 40

care executat de pe staia local s efectueze instalarea aplicaiei pe dispozitivul smart ataat, trebuiesc realizai i restul pailor; realizarea unui fiier .dll n care vor fi specificate 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: utilizatorul primete fiierul .CAB ca ataament al unui email, urmnd a-l descarc i executa. prin intermediul 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 aplicaia. prin 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 dispozitivul mobil. etc.

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

Stabilirea fiierelor ce alctuiesc aplicaiaDup ce am scris i rulat aplicatia pentru prima dat, observm c structura fiierelor (din directorul 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 fi utilizat emulatorul, iar sistemul de operare ales a fost Windows Mobile 5.0, nainte de a trece fiierele pe dispozitivul smart, mediul integrat Visual Studio 2008 a efectuat verificri n privina resurselor software necesare execuiei aplicaiei, iar n cazul n care acestea nu existau, automat s-ar fi efectuat instalarea lor. Totui, nu tot timpul 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, instalarea s nu mai fie obligatorie. Dac avem curiozitatea i accesm directorul n care se afl distribuiile SQL Server Compact Edition (Program Files\Microsoft SQL Server Compact Edition\v3.5\Devices\wce500) vom gsi o serie de directoare n care sunt fiiere .CAB i .dll. ns, oare de ce attea directoare i fiiere care fac acelai lucru? Ei bine, denumirile directoarelor sunt acronime de la diferite tipuri de procesoare ale 41

dispozitivelor smart. Aadar fiecare director n parte va conine fiiere .CAB i .dll specifice 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 ce nu 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 ar fi: Aceleai fiiere .dll cu denumirile susmenionate se gsesc n fiecare director asociat unui anumit tip de procesor. Pe care le vom include?. De cele mai multe ori nu se poate ti cu exactitate pe ce arhitectur aplicaia va fi executat, iar pentru a avea garania c nu vor fi probleme, vom fi nevoii a face mai multe distribuii (fiiere .CAB n care aplicaia va fi mpachetat) pentru fiecare tip de procesor n parte. Ca exemplu, 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 pentru 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 contextual al proiectului H5N1, apoi se deschide fereastra de proprieti. n seciunea Application se va apsa butonul Assembly Information. 42

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 soluia existent (File Add New Project, din panoul stng al ferestrei Add New Project se va extinde 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

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

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

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 din 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 pachetului.

44

Figur 37 Meniul contextual prin intermediul cruia sunt incluse n proiect fiierele necesare instalrii aplicaiei H5N1

Figur 38 Fereastra Add Project Output Group prin intermediul creia sunt incluse n proiect fiierele necesare instalrii aplicaiei H5N1

7. Ca rezultat, n zona de coninut a seciunii Application Folder va aprea o nou intrare denumit Primary output from H5N1. n acelai timp, n arborele soluiei se populeaz folderul Detected Dependencies cu fiierele necesare aplicaiei. Dintre respectivele fiiere este foarte important a include n folderul n care se afl aplicaia, fiierul System.Data.SqlServerCe.dll (se va selecta respectivul fiier iar din meniul contextual se va debifa Exclude n consecint acesta va fi adus n zona de coninut a seciunii Application Folder).

45

Figur 39 Includerea n proiect a fiierului System.Data.SqlServerCe.dll

8. Dac tot discutm despre fiierele adiacente aplicaiei, este momentul a include i restul fiierelor (baza de date H5N1_MEDIC.sdf, fiierul .ico n cazul n care s-a optat pentru o pictogram, precum i fiierele .dll sqlceca30.dll, sqlcecompact30.dll, sqlceer30en.dll, sqlceme30.dll, sqlceoledb30.dll, sqlceqp30.dll, sqlcese30.dll): a. se acceseaz din nou Add Project Output Group (click dreapta Application Folder Add Project Output), se va selecta Content Files, apoi click pe butonul OK ca rezultat al acestei operaiuni, n pachetul de instalare va fi adugat baza de date precum i pictograma asociat (fiierul .ico). b. adugarea fiierelor .dll se va face prin intermediul ferestrei Add Files (meniul contextual Application Folder Add File), se acceseaz directorul n care se afl fiierele .dll pentru tipul de procesor ARMV4I, iar apoi click pe butonul Open.

Figur 40 Includerea fiierelor .dll

9. n cazul n care se dorete ca dup instalarea aplicaiei, n directorul Programs (accesibil din meniul Start) a dispozitivului smart, s fie realizat o legatur rapid, atunci: 46

a. n folderul Application Folder, acionm click dreapta pe zona Primary output from H5N1 i selectm opiunea Create Shortcut to Primary output from H5N1. b. noul fiier va fi redenumit H5N1. c. din panoul din stnga ferestrei File System se va face click dreapta pe File System on Target Machine Add Special Folder Programs Folder.

Figur 41 Specificarea directorului n care se dorete adugarea legturii rapide

d. pentru a definitiva n mod corect problema legturii rapide, mai este necesar deplasarea ei n folderul Programs Folder prin tehnica drag&drop. 10. Finalmente coninutul proiectului H5N1.ARMV4I ar trebui s fie asemntor cu imaginea alturat.

Figur 42 Forma final a proiectului H5N1.ARMV4I

11. Tot ce ne mai rmne de fcut este s compilm proiectul (din fereastra Solution Explorer click dreapta H5N1.ARMV4I Build). Rezultatul acestei operaiuni const n generarea unui fiier cu extensia .CAB n directorul Release a proiectului. Din acest moment aplicaia poate fi distribuit ctre utilizatori. 47

Pentru realizarea fiierelor .CAB compatibile i celorlalte arhitecturi, va trebui s parcurgem aceeai pai parcuri ca i n cazul proiectului H5N1.ARMV4I, diferena fiind dat de schimbarea fiierelor .dll cu cele specifice procesorului pentru care se realizeaz mpachetarea.

Specificarea aciunilor ce se vor efectua n timpul instalrii/dezinstalrii20n cadrul aceleiai soluii se va aduga un nou proiect Windows Visual Basic de tip Class Library cruia i va fi atribuit denumirea H5N1_conditii_instalare_dezinstalare. Implicit noul proiect va conine un fiier Class1.vb pe care va trebui s l redenumim n Conditii_Instalare_Dezinstalare.vb.

Figur 43 Coninutul ferestrei Solution Explorer dup ce a fost adugat noul proiect de tip Class Library

nainte de a implementa clasa Conditii_Instalare_Dezinstalare este necesar a aduga proiectului curent dou referine System.Configuration.Install, respectiv System.Windows.Forms. Acest opera