Conceperea ȘI Dezvoltarea Unei Aplicații Mobile DE Tip Portofel Electronic

CONCEPEREA ȘI DEZVOLTAREA UNEI APLICAȚII MOBILE DE TIP PORTOFEL ELECTRONIC

CUPRINS

Introducere 9

Literatura de specialitate 11

Descrierea stadiului actual 11

Metodologia de cercetare 12

Studiu de caz și rezultate 15

Proiectarea sistemului 15

Proiectarea aplicației Android 19

Concluzii 24

Listă bibliografică 25

Anexe 26

Anexa 1 26

Anexa 2 27

CONCEPEREA ȘI DEZVOLTAREA UNEI APLICAȚII MOBILE DE TIP PORTOFEL ELECTRONIC

Rezumat: Utilizarea tehnologiei smartphone este într-o continuă creștere, telefonul mobil fiind folosit în ziua de azi în nenumărate scopuri, pe lângă cel de comunicare. Pentru a înlesni viața utilizatorilor de smartphone, pe piață au apărut o diversitate de aplicații mobile, de la cele pentru editarea pozelor, comunicarea pe rețele sociale și până la cele pentru transformarea telefonului în telecomandă. Prezenta lucrare își propune conceperea și dezvoltarea unui prototip de aplicație mobilă „portofel electronic”, pentru sistemul de operare Android, bazată pe carduri electronice de reduceri comerciale, care să vină în ajutorul utilizatorilor de smartphone-uri oferindu-le acestora noi posibilități de a-și achita cumpărăturile. Principalele funcțiuni ale aplicației sunt: achitarea cupărăturilor cu ajutorul telefonului mobil, verificarea soldurilor disponibile, precum și transferul de bani dintr-un cont în altul.

Cuvinte cheie: aplicație mobilă, Android, portofel electronic.

Cod JEL: C690, M210.

Introducere

În contextul actual, smartphone-ul a devenit un obiect absolut necesar, nu doar tinerilor pasionați de noile tehnologii, ci întregii comunități. Odată cu apariția acestor "telefoane inteligente" viziunea oamenilor asupra tehnologiei și în special a utilității unui telefon s-a modificat radical, smartphone-ul fiind device-ul care pune la dispoziția utilizatorului o multitudine de aplicații dar și accesul rapid la internet.

Viteza de dezvoltare a tehnologiei mobile este uimitoare, aceasta permițând dezvoltatorilor de aplicații pentru telefoane mobile să creeze aplicații din ce în ce mai performante, mai utile și mai plăcute pentru toți utilizatorii.

Aplicațiile pentu smartphone vin în ajutorul utilizatorului oferindu-i soluții pentru a-și scurta timpul de realizare a unor lucruri, ușurarea utilizării unor instrumente virtuale, sau de ce nu o alternativă de a se relaxa prin intermediul nenumăratelor jocuri existente pentru smartphone- uri.

„Telefoanele inteligente” sunt compuse, la fel ca pc-urile cu care seamana atat de mult, din două mari părți: hardware și software. Partea hardware a smartphone-urilor este mult mai avansată decât cea software, puterea de calcul a acestor device-uri fiind mult mai mare decât este nevoie in prezent pentru a rula aplicațiile disponibile pentru aceste device-uri. Ținând cont de acest lucru, „marea bătălie” la nivel mondial se dă între producătorii de software și nu cei de hardware.

Scopul lucrării de față este conceperea și dezvoltarea unui prototip de aplicație „portofel electronic” bazată pe carduri electronice de reduceri comerciale care să vină în ajutorul utilizatorilor de smartphone-uri oferindu-le acestora noi posibilități de a-și achita cumpărăturile.

Prototipul de aplicație dezvoltat permite achitarea contravalorii cumpărăturilor de la un magazin prin conectarea directă la soluția ERP a magazinului prin intermediul unei rețele interne de tip Wi-Fi. Plata se efectuează direct din contul pe care clientul îl are deschis la

magazin, cont ce poate fi încărcat în orice moment de către client, acesta beneficiind și de eventualele reduceri comerciale datorate încărcării contului în avans.

Celelalte două funcționalități ale aplicației sunt vizualizare sold și transfer sold. Prin funcționalitatea de vizualizare sold, utilizatorul poate să verifice soldurile disponibile în fiecare magazin la care acesta are cont, iar prin transfer sold, se poate efectua transferul de bani din contul unui utilizator către contul altui utilizator, având un sistem de funcționare asemănător cu cel al cardurilor cadou.

Literatura de specialitate

Descrierea stadiului actual

Conform unui studiu de analiză a pieței aplicațiilor pentru smartphone din China (Chen, Li, Chen, Xu, 2011), utilizatorii unor astfel de gadget-uri le folosesc în special pentru a naviga pe internet și pentru a avea acces la aplicațiile ce țin de comerțul electronic prin intermediul telefoanelor mobile (m-commerce) așa cum se poate observa și in Tabelul nr.1 din Anexa 1. Cele mai căutate aplicații de către utilizatorii de smartphone-uri în domeniul comerțului electronic pe telefoanele mobile sunt cele de tip „portofel electronic”. În ciuda faptului că cererea pentru acest gen de aplicații este în creștere, pe piața aplicațiilor pentru smartphone(Google Play, Apple Store, Windows Store) am descoperit existența a doar trei astfel de aplicații la nivel global, fiecare având propria metodă de abordare, diferită de cea prezentată în această lucrare, a tranzacțiilor electronice, însă toate aceste aplicații se află incă în stadiul de testare.

Google Wallet este o aplicație dezvoltată de cei de la Google care se adreseaza utilizatoriilor ce nu doresc sa care toate cardurile de debit, credit, de loialitate sau cardurile de cadouri în portofel, ci pot folosi aceste carduri prin intermediul smartphone-ului și a unui terminal special aflat in magazin. Aplicația îți cere să introduci datele cardurilor pe care dorești sa le folosești in telefon, o singură dată, iar apoi prin intermediul tehnologiei NFC(near-field communication) va realiza tranzactia cu terminalul din magazin. O altă facilitate a acestei aplicații este posibilitatea de a efectua transferuri de bani către orice alt cont bancar. Pentru securizarea datelor se folosește un element de securizare hardware aflat lângă cartela SIM a smartphone-ului. Sistemul funcționează doar în câteva orașe din Statele Unite ale Americii (Google, 2011) .

Isis Mobile Wallet este o aplicație creată de un conglomerat de companii din care fac parte AT&T, T-Mobile și Verizon care, la fel ca si Google Wallet, vine in ajutorul utilizatorilor ce nu doresc să care în portofel toate cardurile de cumparaturi. Tranzacțiile se fac tot prin intermediul smartphone-ului si a unui terminal cu ajutorul tehnologiei NFC. Comparativ cu Google Wallet, Isis Wallet nu are integrata opțiunea de transfer bancar, însă are un nivel sporit de securitate oferit de un sistem de autentificare prin cod PIN(diferit de codul PIN al cardurilor). Această aplicație funcționeaza doar în Austin, Texas și Salt Lake City, Utah (Isis, 2011).

Square Wallet este o aplicație realizata de cei de la Square Inc. care este utilizată în special în cafenelele Starbucks din S.U.A și Canada de către clienți pentru a-și plăti consumațiile. Spre deosebire de celelalte două aplicații tranzacțiile se efectuează prin intermediul codurilor QR sau cu ajutorul unui audio jack modificat special pentru a citi benzile magnetice ale cardurilor și nu prin intermediul tehnologiei NFC. Pentru securizarea datelor se folosesc tehnicile de criptare TSL(Transport Layer Security) și PGP(Pretty Good Privacy) (Square, 2011) .

Analizând aceste aplicații am constat faptul că pentru a fi folosite toate cer introducerea datelor bancare, lucru cu care utilizatorii de smartphone-uri nu sunt de acord, indiferent de nivelul de securitate pe care aplicațiile îl propun, în special din cauza temerii pe care aceștia o au asupra securtății datelor lor bancare. Astfel că mi-am propus dezvoltarea unui prototip de aplicație care să nu necesite aceste date pentru a fi funcțională, ea neutilizând cardurile de debit sau credit ale utilizatorilor ci doar carduri electronice de cumparaturi, de cadouri sau de reduceri.

Metodologia de cercetare

Am realizat o cercetare cantitativă utilizând metoda experimentului bazată pe prototip de lucru, căutând medii de dezvoltare propice pentru aplicația dorită.

Pe piața mondială a producătorilor de software pentru smartphone-uri există trei mari concurenți: Apple, Google și Microsoft. Primii doi, prin sistemele de operare oferite iOS respectiv Android, dețin aproximativ 90% din totalul smartphone-urilor vandute la nivel global (Travis, 2013).

Android este o platformă software și un sistem de operare pentru dispozitive și telefoane mobile bazată pe nucleul Linux, dezvoltată inițial de compania Google, iar mai târziu de consorțiul comercial Open Handset Alliance. Android permite dezvoltatorilor scrierea codului gestionat în limbajul Java, controlând dispozitivul prin intermediul bibliotecilor Java dezvoltate de Google, in timp ce partea de design a aplicațiilor este realizată prin intermediului limbajului XML oferit în IDE-ul Eclipse.

Eclipse este o comunitate Open Source ce își concentrează eforturile în crearea unei platforme de dezvoltare a aplicațiilor alcătuită din framework-uri extensibile, unelte și medii de rulare pentru dezvoltarea și întreținerea de aplicații.

Se oferă suport pentru o mare varietate de limbaje de programare (C, C++, Java), iar prin intermediul unor plug-in-uri se poate lucra și în programe precum COBOL, Python, Perl și PHP.

AVD – Emulatorul de Android oferă posibilitatea de a instala aplicațiile într-un telefon virtual. Astfel, dezvoltatorul poate testa aplicația pe diferite configurații. Pentru aceasta, este pus la dispozitie un configurator de Android, Virtual Devices, cum mai este denumit emulatorul.

Dezvoltatorul poate crea oricâte astfel de dispozitive și poate configura un număr foarte mare de parametri: dimensiunea și rezoluția ecranului, CPU, RAM, memorie SD etc.

SQLite reprezintă o librărie care implementează un motor de baze de date SQL, este un

SGBD self-contained (există și se poate folosi fără necesitatea existenței unui proces

„server”), nu funcționează întocmai ca un server dar, în schimb, este mic și robust. Suportă tranzacții ACID-e (Atomicitate, Coerență, Izolare, Durabilitate), nu necesită configurări, este extrem de mic (250 KB), baza de date este stocată într-un singur fișier ce poate fi portat de pe un sistem de operare pe altul, nu are dependențe externe și este foarte rapid.

Windows Azure Mobile Service este un serviciu oferit de Microsoft lansat cu scopul de a facilita dezvoltarea unor aplicații pentru smartphone-urile ce au ca sistem de operare Windows Phone 8. Mobile Services unește un set de servicii Windows Azure ce creează un mediu de dezvoltare a aplicațiilor usor de folosit de programatori: sisteme de gestionare a tabelelor, integrarea notificărilor și serviciilor push, integrarea id providerilor pentru autentificare, posibilitatea de integrare cu alte servicii de tip cloud, posibilitatea de scalarizare a unei instanțe de servicii.

Baza de date Microsoft Windows Azure SQL extinde capacitățiile unui server obișnuit prin găzduirea în cloud. Folosind serviciul Windows Azure SQL Database un utilizator își poate crea o bază de date ușor de relaționat și de întreținut. Beneficiile sunt: manevrabilitate, grad foarte mare de disponibilitate, posibilitatea scalarizării, un model deja cunoscut de baze de date și un model de bază de date relațional.

Serviciul de stocare furnizat de Microsoft oferă aplicației acces la servicii de tip blob pentru date binare de dimensiuni mari, tabele pentru stocare non-relațională și que-riuri pentru transmiterea de mesaje între aplicații.

XAML este un limbaj de programare declarativ folosit în framework-ul .NET pentru a separa design-ul interfeței de funcționalitatea ei. Design-ul este controlat prin cod XAML, în timp ce programarea funcționalităților implementată în C# se realizează în partea de code-behind. iOS este sistemul de operare folosit de către Apple pentru generațiile lor de smartphone-uri, însa totodată este și platforma software pe care sunt dezvoltate aplicațiile pentru sistemul de operare. Spre deosebire de celelalte două care folosesc nucleul Linux, iOS folosește ca nucleu Darwin OS, dezvoltat de Apple, amândouă fiind însă derivate ale aceluiași sistem de -uri, însa totodată este și platforma software pe care sunt dezvoltate aplicațiile pentru sistemul de operare. Spre deosebire de celelalte două care folosesc nucleul Linux, iOS folosește ca nucleu Darwin OS, dezvoltat de Apple, amândouă fiind însă derivate ale aceluiași sistem de operare UNIX. Limbajul de programare folosit pentru dezvoltarea de aplicații in iOS este Objective- C, dar pot fi folosite și anumite elemente de C sau C++.

La fel ca Google sau Microsoft și Apple folosește un IDE(integrated development environment) pentru a ușura munca programatorilor, oferindu-le o serie de instrumente necesare dezvoltării de aplicații pentru iOS printre care se numără posibilitatea de a folosi orice limbaj de programare dorește dezvoltatorul și faptul că aplicația poate fi realizată astfel încât să meargă pe sisteme cu arhitecturi total diferite. Acest IDE poartă numele de Xcode și a fost lansat în anul 2003 (Apple, 2003).

iOS Simulator este varianta de emulator oferită dezvoltatorilor de cei de la Apple, pentru ca aceștia să își poată testa aplicțiile. Acest simulator oferă o viteză mult mai bună față de cel pus la dispoziție de Android prin intermediul Eclipse, însă are și un minus deoarece din cauza faptului că este dezvoltat să meargă și pe procesoare Intel nu oferă toate informațiile de care are programatorul nevoie în sensul în care o aplicație poate să funcționeze pe emulator, dar nu și pe smartphone-ul fizic.

În ceea ce privește bazele de date Xcode oferă, la fel ca și Azure și Eclipse, suport pentru bazele de date de tip SQLite sau pentru baze de date externe de tip MySQL, cu care se realizează legături prin intermediul script-urilor PHP.

Din punct de vedere al ușurinței folosirii celor trei platforme, prezentate anterior, de către începatori, toate sunt la fel de ușor de folosit necesitând doar descărcarea IDE-ului și a SDK- ului aferent fiecăruia. Diferențele apar însă atunci când vine vorba de sistemul de operare necesar pentru funcționarea IDE-urilor. În timp ce pentru Android-ul se poate folosi orice sistem de operare, pentru iOS poate fi folosit doar OS X, iar pentru Windows Phone poate fi folosit doar varianta desktop Windows 8 sau Windows 7.

Alte diferențe notabile sunt cele ce țin de support și documentație. La acest capitol Windows Phone fiind cel mai nou pe piață are cel mai mult de pierdut, neavând o ducomentație solidă și vastă astfel că dezvoltatorii trebuie să descopere singuri ceea ce au nevoie. Android-ul stă cel mai bine din acest punct de vedere având pe langă site-ul oficial și o serie de comunitați online dintre care cea mai cunoscută este StackOverflow. iOS stă aproape la fel de bine ca și Android având bloguri oficiale, dar si o serie de comunitați de programatori dedicate ajutorării incepătorilor.

Costul este un alt capitol unde apar diferențe majore între platforme. Android-ul percepe doar o taxă de 25$ pentru a publica alicația pe Google Play, în timp ce Microsoft obligă dezvoltatorii să achiziționeze varianta full a Visual Studio plus plata unei taxe anuale de 99$, iar în ceea ce privește Apple costurile sunt și mai mari (Kostas, 2012).

Toate platformele au un mare minus când vine vorba despre controlul asupra aplicațiilor. În timp ce Android este mult prea permisiv, aplicațiile putând să acceseze de la lista de contacte până la mesaje sau chiar apelurile efectuate, Windows Phone si iOS sunt foarte restrictive ceea ce face ca dezvoltatorii să nu poată crea aplicațiilor cu toate facilitățile pe care și le-au dorit.

Diferențe sunt și din punct de vedere al design-ului, capitol la care Android-ul stă cel mai prost din cauza faptului că există mult prea multe smartphone-uri cu dimensiuni total diferite, iar programatorii nu pot dezvolta aplicația astfel încât să arate la fel indiferent de device-ul

folosit. Windows Phone și iOS nu întâmpină această problemă datorită numărului limitat de

modele de device-uri disponibile cu aceste sisteme de operare.

Publicarea aplicațiilor este o altă sursă ce poate crea probleme în special în cazul iOS, unde până să poată fi publicată o aplicație trece printr-o serie de teste ce pot dura chiar săptămâni, în timp ce în cazul Windows Phone și al Android publicarea aplicației se face la câteva ore de la încărcarea acesteia în Windows Store respectiv Google Play (Mikusiak, 2013).

Analizând toate caracteristicile fiecărei platforme, precum și avantajele și dezavantajele fiecăreia în raport cu celelalte, am ajuns la concluzia că aplicația va fi creată pe platforma Android.

Studiu de caz și rezultate

Proiectarea sistemului

Sistemul necesar pentru a putea folosi telefonul mobil ca instrument de plată are patru mari componente: o soluție ERP și o rețea Wi-fi(ale magazinului în care clientul efectuează cumpărăturile), un serviciu web(ce are rol de legătură între ERP și aplicația mobilă) și aplicașia pentru smartphone propriu-zisă.

Pentru studiul de caz am ales să utilizez soluția ERP Ascent ERP, furnizată de către cei de la Ascent Soft, datorită faptului că această soluție oferă platforma de module și datele de care am nevoie pentru a testa funcționalitatea prototipului de aplicație dezvoltat, după cum se poate observa din scurta prezentare de mai jos.

Ascent ERP este un pachet complet de aplicații pentru planificarea și gestionarea resurselor unei întreprinderii (ERP) care integrează contabilitatea si gestiunea financiară cu planificarea și monitorizarea producției, urmărirea costurilor, planificarea și urmărirea stocurilor, managementul depozitelor, logistica distribuției, urmărirea și mentenanța mijloacelor fixe, salarizarea și gestionarea resurselor umane etc. Principalele caracteristici ale soluției sunt:

Operare în timp real online.

Procesara sigură și rapidă a unor cantități mari de date.

Funcționarea pe rețele LAN si WAN, precum și online pe Internet.

Timp de dezvoltare și implementare scurt.

Soluția celor de la Ascent Soft este compusă din mai multe platforme (aplicații), iar pe fiecare platformă sunt implementate mai multe module (AscentSoft, 2011) ce pot fi vizualizate în Tabelul nr.2 din Anexa 1.

În ceea ce privește gestionarea datelor soluția Ascent ERP, salvează datele în diferite tabele ale bazei de date, astfel încât legătura dintre tabele generează întregul flux de informații, iar atât interogările cât și rapoartele sunt generate într-un timp foarte scurt datorită acestui fapt. Obiectivul principal al studiului de caz este dezvoltarea unui prototip de aplicație mobilă care să ajute la fidelizarea clienților prin oferirea unui nou mod de plată și anume plata cu ajutorul telefonului mobil, mod care aduce clienților o serie de beneficii de natura reducerilor comerciale.Pentru aceasta, în urma analizei modulelor și a bazei de date a soluției Axcent ERP și în urma discuțiilor avute cu specialiști de la Ascent Soft, am ajuns la concluzia că din cadrul bazei de date va fi folosit tabelul Parteneri ce conține datele legate de clienți, acesta fiind legat de un tabel nou creat Cont care conține conturile clienților ce vor fi folosite de către aplicația mobilă, legătura făcându-se prin intermediul câmpului „nume cont”(„username”). Modulele din cadrul soluției Ascent ERP ce vor fi folosite pentru aplicație sunt următoarele:

Comenzi Clienți : Modulul gestionează comenzile date de clienți, pe articole, cantități si prețuri. Se urmărește cantitatea comandată in paralel cu cantitatea livrată si de livrat, pe termene de livrare. Livrările se generează automat la alegerea clientului: sistemul are predefinit tot ce trebuie să conțină factura și o completează automat, dând operatorului posibilitatea modificării ei.

POS offline cu sinconizare online periodică : Modulul permite centralizarea pe server a vânzărilor din magazinele care nu sunt conectate online. Sincronizarea se realizează prin conectare la Internet prin Dial-up și trimiterea direct la server a vânzărilor din magazin.

Aplicația POS din magazin permite vânzarea cu cititor de bare pe calculator și listarea facturii pe imprimantă și/sau trimiterea bonului către casa de marcat (cu emulare de tastatură – Optima si Progres).

Modulul Comenzi Clienți este folosit în forma furnizată de ERP, împreună cu tabelele Parteneri și Cont pentru a înregistra comenzile clienților, precum și pentru a le oferi acestora eventualele reduceri comerciale de care beneficiază în cazul folosirii telefonului mobil ca instrument de plată și emiterea facturii sau a bonului fiscal de consum aferente comenzii prelucrate.

În cadrul modulului POS(Point of Sale) sau casă de marcat, sunt necesare câteva modificări astfel încât să fie posibilă folosirea telefonului mobil ca instrument de plată. Principala modificare survine în cadrul ferestrei Vânzare POS (fig.1), unde este necesară adăugarea unui nou buton(E-walllet) în bara de butoane.

Figura 1. Fereastră vânzare POS

Funcția butonului nou creat (E-wallet) este de a transmite, prin intermediul unei rețele Wi-Fi și a unui web-service, către telefonul mobil al clientului suma pe care acesta o are de achitat, împreună cu un cod de identificare unic al magazinului unde se efectuează tranzacția și eventualele reduceri comerciale de care acesta poate beneficia. După ce clientul achită suma de plată, prin intermediul telefonului mobil, în cadrul ferestrei va apărea un mesaj de confirmare și se va deschide automat fereastra de emitere a bonului fiscal (fig.2).

Figura 2. Fereastră emitere bon fiscal

Pentru a se putea realiza legătura între soluția ERP și aplicația de pe telefonul mobil, este necesară existența atât a unei rețele Wi-Fi, cât și a unui web-service care prin intermediul

acestei rețele Wi-Fi să poată crea legătura dintre Android și baza de date a soluției ERP, având în vedere faptul că nici o aplicație pentru smartphone, indiferent de sistemul de operare folosit, nu se poate conecta direct la o bază de date externă.

Am ales, pentru crearea web-service-ului, soluția Visual Studio 2012 oferită de cei de la Microsoft, având în vedere faptul că framework-ul ASP.NET, parte componentă a pachetului de aplicații furnizat de Visual Studio, oferă o serie de avantaje substanțiale cum ar fi : securitate și viteză de lucru sporite, ușurință în crearea legăturii cu baza de date,etc; după cum se poate observa din scurta descriere de mai jos.

Visual Studio 2012 este un mediu integrat de dezvolatre(IDE), pentru aplicațiile ce rulează pe sistemul de operare Windows, oferit de către cei de la Microsoft. Acesta este folosit pentru dezvoltarea unor aplicații de diferite tipuri, precum : aplicații consolă, aplicații cu interfețe grafice, aplicații și site-uri web și de asemenea dezvoltarea de servicii web. Visual Studio suportă toate limbajele de programare de la C++, C#, Visual Basic la XML, HTML, CSS, JavaScript ; însă din cauza arhitecturii sale, pentru a putea folosi orice limbaj de programare trebuie să fie instalat pachetul ce conține acel limbaj(VSPackage), numit și Language Service. Tot datorită modului în care a fost gândită arhitectura acestui IDE, el nu conține nici un pachet predefinit de surse sau aplicații, utilizatorul având libertatea de a alege ce pachete și aplicații dorește să aibă instalate.

Ca orice IDE, Visual Studio conține un built-in code editor, care ajută utilizatorul în momentul în care acesta dorește apelarea unei metode, oferindu-i automat codul ce trebuie scris, precum și atunci când acesta caută să rectifice o eroare, code editorul oferă cele mai probabile posibilități de rezolvare. Pe lângă code editor, Visual Studio oferă și un debugger foarte performant ce poate funcționa atât ca un source-level debugger cât și ca machine-level debugger. Cea mai importantă caracteristică a debugger-ului este faptul că oferă posibilitatea de a seta breakpoints în timpul rulării programului pentru a vedea cum funcționează programul pănă la acel punct și de asemenea posibilitatea de a rula programul pas cu pas, adică executarea fiecărei linii de cod separat.

Pentru a putea crea serviciul web în Visual Studio, trebuie să fie instalat pachetul Visual Web Developer. Acesta oferă posibilitatea creerii de aplicații în framework-ul ASP.NET cu ajutorul limbajului C#, precum și posibilitatea creerii de legături între o bază de date găzduită pe un server de hosting și alte aplicații, de exmplu aplicațiile pentru smartphone (Microsoft, 2010).

Prima etapă a creerii serviciului web este construirea unei clase Database.cs în Visual Studio, clasă ce conține toate metodele și variabilele necesare pentru a realiza conexiunea cu baza de date a soluției ERP, acestea fiind prezentate în codul sursă de mai jos.

public class DataBase {

private DataTable dtVirtual = new DataTable(); private DataSet dsVirtual = new DataSet(); public string objectMethodBase = string.Empty; private bool AdvancedLog = false;

public void LoadDataTableBySQL(DataTable dataTable, string sql, int CommandTimeOut, string UsrName, string UsrPass)

{…

}

private void OpenConnection(bool open, PgSqlConnection conn)

{…

}

public string GetConnectionString(string UsrName, string UsrPass)

{…

}

public string GetDirectConnectionString()

{…

}

public DataSet GetDataSet(string SQL, string tblname)

{…

}

public DataTable GetDataTable(string SQL, int ConnTimeout, string UsrName, string UsrPass)

{…

}

public DataSet GetDataSet(string SQL, string tblname, string UsrName, string UsrPass)

{…

}

public bool ExecuteSQL(string SQL, string UsrName, string UsrPass)

{…

}

public string ExecuteScalar(string SQL, string UsrName, string UsrPass)

{…

}

public string ExecuteScalar(string SQL, string sqlCount, string UsrName, string UsrPass)

{…

}

public int CountDataSQL(string SQL, string UsrName, string UsrPass)

{…

}

public bool TestConnection(string username, string userpass)

{…

}

}

A doua etapă este crearea unui fișier XML care va conține toate datele necesare conexiunii precum numele de utilizator, parola, adresa IP a serverului, etc. Codul sursă al acestui fișier este cel de mai jos.

<?xml version="1.0" standalone="yes"?>

<DS_Conexiuni>

<Connections>

<numeServer>…</numeServer>

<IP>…</IP>

<Pooling>…</Pooling>

<Timeout>…</Timeout>

<port>…</port>

<numeBaza>…</numeBaza>

<user>…</user>

<passw>…</passw>

<autoconnect>…</autoconnect>

</Connections>

</DS_Conexiuni>

A treia și ultima etapă este crearea unei clase cu ajutorul framework-ului ASP.NET, clasă numită Service1.asmx.cs, care conține cele trei metode și un constructor prezentate mai jos.

public class Service1 : System.Web.Services.WebService

{

DataBase db = new DataBase(); public Service1()

{

}

[WebMethod]

public string Transfer(string suma, string accnamef, string accnamet)

{

}

[WebMethod]

public bool VerifyAccount(string accname , string accpass)

{

}

[WebMethod]

public string SendTransaction(string suma, string accname)

{

}

}

Service1.asmx.cs este clasa ce creează legătura între aplicațiile externe și serviciul web. Fiecare metodă din cadrul acestei clase va fi apelată de către aplicația mobilă, care va trimite parametri necesari fiecărei metode. Metoda VerifyAccount() este folosită pentru a verifica dacă datele de cont primite de la aplicația Android corespund cu cele din baza de date a soluției ERP, în timp ce SendTransaction() și Transfer() sunt folosite pentru efectua plata propriu-zisă, respectiv pentru a transfera fonduri dintr-un cont în altul.

Proiectarea aplicației Android

După finalizarea proiectării sistemului se trece la proiectarea aplicației mobile de tip „portofel electronic” pentru sistemul de operare Android. Pentru a crea o astfel de aplicație, care să poate funcționa împreună cu sistemul proiectat anterior, este necesară urmarea câtorva etape. În prima etapă se realizează legătura dintre aplicația mobilă și serviciul web. Pentru aceasta este necesară adăugarea bibliotecii java ksoap.jar la IDE-ul Eclipse. După ce biblioteca a fost adăugată, urmează crearea clasei ce va face legătura între aplicația Android și serviciul web creat în ASP.NET. Pentru a crea această clasă se va folosi protocolul SOAP(Simple Object Access Protocol), care funcționează cu arhitectura cerere-răspuns. Așadar primul pas este crearea unui obiect SOAP care să transmită cerearea dinspre Android spre serviciul web, lucru care se realizează cu ajutorul codului de mai jos.

SoapObject request = new SoapObject(WSDL_TARGET_NAMESPACE,OPERATION_NAME);

Următorul pas este instanțarea obiectului cu parametri de care acesta are nevoie pentru a apela metodele din cadrul serviciului web. Instanțarea se face cu ajutorul constructorului PropertyInfo(), constructor ce este predefinit în librăria ksoap, ce are ca metode setName(), numele parametrului, setType(), tipul parametrului, setValue(),pentru a da o valoare, addProperty(), pentru instanțarea obiectului.Toate acestea se realizează cu ajutrul următorului cod:

PropertyInfo pi=new PropertyInfo(); pi.setName("a");

pi.setValue(a); pi.setType(Integer.class); request.addProperty(pi);

Ultimul pas din această etapă este crearea unui pachet serializat care să poată transporta parametri SOAP către serviciul web și să memoreze răspunsul oferit de acesta. Acest lucru se realizează cu ajutorul unui obiect HttpTransportSE, după cum se exemplifică în continuare (Grasshopper, 2011):

SoapSerializationEnvelope envelope = new SoapSerializationEnvelope( SoapEnvelope.VER11);

envelope.dotNet = true;

envelope.setOutputSoapObject(request);

HttpTransportSE httpTransport = new HttpTransportSE(SOAP_ADDRESS); Object response=null;

try

{

httpTransport.call(SOAP_ACTION, envelope); response = envelope.getResponse();

}

catch (Exception exception)

{

response=exception.toString();

}

return response.toString();

În etapa a doua este necesară crearea unei subclase, care să extindă clasa părinte Thread. Această subclasă este indispensabilă din cauza faptului că sistemul de operare Android nu permite apelarea de fișiere externe în cadrul thread-ului principal, astfel că trebuie creat un thread secundar care să opereze doar în acest sens. Clasa nou creată a fost denumită Caller, iar codul sursă aferent este prezentat mai jos.

public class Caller extends Thread

{ public CallSoap cs; public int a,b; public void run(){

try{

cs=new CallSoap();

String resp=cs.Call(a, b); MySOAPCallActivity.rslt=resp;}catch(Exception ex)

{MySOAPCallActivity.rslt=ex.toString();

}

}

}

A treia etapă constă în crearea claselor și a interfețelor grafice necesare pentru a efectua operațiile descrise prin intermediul metodele serviciului web. Pentru aceasta s-au creat o serie de clase cu ajutorul limajului java, fiecare avănd atașată câte o interfață grafică realizată cu ajutorul limbajului XML. În continuare se vor prezenta cele mai importante două clase, cea pentru autentificarea utilizatorului și cea pentru efectuarea plății propriu-zise, împreună cu interfețele grafice corespunzătoare.

Autentificarea se realizează prin apelarea metodei VerifyAccount() din cadrul serviciului web cu ajutorul claselor create în etapele anterioare. Pentru a se putea efectua această operațiune în cadrul clasei de autentificare se vor citi valorile furnizate de către interfața grafică prin itermediul EditText-urilor.

public static String rslt="";

@Override

public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button b1=(Button)findViewById(R.id.button1);

final AlertDialog ad=new AlertDialog.Builder(this).create(); b1.setOnClickListener(new OnClickListener() {

@Override public void onClick(View arg0) {

// TODO Auto-generated method stub

try

{

EditText ed1=(EditText)findViewById(R.id.editText1);

EditText ed2=(EditText)findViewById(R.id.editText2); String a= ed1.getText().toString() ;

String b= ed2.getText().toString() ;

După ce valorile au fost citite și memorate în variabile, ele vor fi transmise, prin intermediul clasei Caller către clasa SOAP ce realizează legătura dintre aplicația Android și serviciul web, care la rândul ei va transmite aceste variabile către serviciul web și va memora răspunsul trimis de aceste, după cum este menționat și anterior clasele SOAP funcționează în baza arhitecturii cerere-răspuns. Răspunsul de la serviciul web este apoi transmis către clasa de autentificare, ce va acționa în două moduri în funcție de răspunsul primit, dacă răspunsul este pozitiv se va afița un meșaj de confirmare a autentificării, iar utilizatorul va fi trimis către următorul ecran, în timp ce dacă răspunsul este negativ, utilizatorul va primi un mesaj de autentificare nereușită, fiind rugat să mai încerce.

Caller_Acc c=new Caller_Acc(); c.a=a; c.b=b;

c.ad=ad;

c.join(); c.start(); while(rslt=="START") { try { Thread.sleep(10);

}catch(Exception ex) {

}

} ad.setTitle("RESULT OF ADD of "+a+" and "+b); ad.setMessage(rslt);

rslt="" ;

}catch(Exception ex) {

ad.setTitle("Error!"); ad.setMessage(ex.toString());

}

Interfața grafică corespunzătoare clasei de autentificare este cea prezentată în figura 3, iar

codul XML pentru generarea ei este următorul:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/bg"

android:orientation="vertical" >

<TextView

android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/username1" android:textAppearance="?android:attr/textAppearanceLarge" />

<EditText

android:id="@+id/editText1" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/username" >

<requestFocus />

</EditText>

<TextView

android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/password1"

android:textAppearance="?android:attr/textAppearanceLarge" />

<EditText

android:id="@+id/editText2" android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" android:hint="@string/password" android:inputType="textPassword" />

<Button

android:id="@+id/button1" android:layout_width="229dp" android:layout_height="wrap_content" android:text="@string/hello_world" />

</LinearLayout>

Figura 3. Ecran autentificare

Operațiunea de plată se realizează prin intermediul unei alte clase independente ce are atașată o interfață grafică. Funcționarea acestei clase, precum și codul sursă aferent sunt aproape identice cu cele ale clasei pentru autentificare, diferența făcându-se la tipul de date necesar, deoarece pentru plată este nevoie să fie transmiși ca parametri suma, de tip double, și numele utilizatorului, de tip string, în timp ce pentru autentificare atât numele utilizatorului cât și parola sunt de tip string. Pentru generarea interfeței grafice a acestei clase se va folosi codul XML exemplificat în Anexa 2, iar rezultatul este cel din figura 4.

Figura 4. Ecran operațiune plată

Concluzii

Contextul economico-social actual ne-a condus spre o societate a tehnologiei, a performanței continue. Aplicația realizată vine în sprijinul utilizatorului, ajutându-l să se integreze în această societate puternic tehnologizată.

Aplicația oferă beneficii atât firmelor, prin noul modul de fidelizare a clienților, cât și utilizatorilor prin noul mijloc de plată și a posibilității de a obține reduceri comerciale. Un beneficiu major al aplicației este că aceasta poate funcționa cu orice model de ERP,

singurele cerințe fiind crearea anumitor tabele și existența unui modul POS (casă de marcat). Prin urmare aplicația poate fi implementată în oricare firmă ce dorește alinierea la cerințele societății actuale.

În concluzie, aplicațiile de tip „portofel electronic” reprezintă următoarele generații de tehnologii mobile, iar prototipul propus în această lucrare oferă o serie de beneficii în plus față de cele existente, printre care se numără:

ușurința utilizării aplicației, datorită unei interfețe user-friendly.

securitatea sporită, datorată faptului că nu este necesară introducerea datelor bancare

sau personale.

reducerile comerciale, obținute de utilizator în urma încărcării propriului cont.

Listă bibliografică

Organisme și organizații

1.Ascent Soft.(2011). Prezentarea modulelor Ascent ERP (ediția a doua). Timișoara. 2.Grasshopper.(2011, Dec). Calling ASP.NET Webservice (ASMX) from an Android Application

Internet

3.Apple.(2003).Xcode. Consultat la: http://en.wikipedia.org/wiki/Xcode. 4.Google.(2011).Google Wallet. Consultat la: http://www.google.com/wallet/index.html. 5.Google.(2011).Google Wallet. Consultat la: http://en.wikipedia.org/wiki/Google_Wallet. 6.Isis.(2011).Isis Wallet. Consultat la: https://www.paywithisis.com/.

Kostas, T.(2012, Iulie 10). Android VS Windows Phone from a developer’s scope. Consultat la: http://blog.bugsense.com/post/26918984231/android-vs-windows-phone-from-a- developers-scope.

Microsoft.(2010).Microsoft Visual Studio. Consultat la: http://en.wikipedia.org/wiki/Microsoft_Visual_Studio.

Mikusiak, L.(2013, Martie). iOS vs. Android Development Comparison. Consultat la: http://www.passion4teq.com/articles/ios-android-development-comparison-1/.

Travis, B.(2013, Martie). Android vs. iOS: User Differences Every Developer Should Know. Consultat la: http://www.comscore.com/Insights/Blog/Android_vs_iOS_User_Differences_Every_Develop er_Should_Know.

Square.(2011). Square Wallet. Consultat la: https://squareup.com/wallet.

Articole electronice din baze indexate

Chen, Z., Li, R., Chen, X., Xu, H. (2011).A Survey Study on Consumer Perception of Mobile-Commerce Applications. Elsevier Ltd. ScienceDirect.

6. Anexe 6.1.Anexa 1

Tabelul nr.1 Studiu privind folosirea aplicațiilor mobile în China.

Tabelul nr.2 Modulele soluției Ascent ERP.

6.2.Anexa 2

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/bg"

android:orientation="vertical" >

<TextView

android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingBottom="@dimen/activity_horizontal_margin" android:text="@string/magaz" android:textAppearance="?android:attr/textAppearanceLarge" />

<TextView

android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/auch" android:textAppearance="?android:attr/textAppearanceMedium" />

<TextView

android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingBottom="@dimen/activity_horizontal_margin" android:text="@string/depl" android:textAppearance="?android:attr/textAppearanceMedium" />

<EditText

android:id="@+id/editText1" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="numberDecimal" >

<requestFocus />

</EditText>

<LinearLayout

android:id="@+id/linearLayout2" android:layout_width="fill_parent" android:layout_height="60dp" android:orientation="horizontal" android:paddingBottom="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_horizontal_margin" >

<RadioButton

android:id="@+id/radioButton1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="" />

<EditText

android:id="@+id/editText2" android:layout_width="0dip" android:layout_height="40dip" android:layout_weight="1" android:hint="@string/hello_world" />

</LinearLayout>

<EditText

android:id="@+id/editText3" android:layout_width="match_parent" android:layout_height="130dp"

android:inputType="textMultiLine" />

<LinearLayout

android:id="@+id/LinearLayout3" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center" android:orientation="vertical"

android:paddingTop="@dimen/activity_horizontal_margin" >

<Button

android:id="@+id/b2" android:layout_width="180dp" android:layout_height="60dp"

android:paddingTop="@dimen/activity_horizontal_margin" android:text="@string/ok" />

</LinearLayout>

</LinearLayout>

Listă bibliografică

Organisme și organizații

1.Ascent Soft.(2011). Prezentarea modulelor Ascent ERP (ediția a doua). Timișoara. 2.Grasshopper.(2011, Dec). Calling ASP.NET Webservice (ASMX) from an Android Application

Internet

3.Apple.(2003).Xcode. Consultat la: http://en.wikipedia.org/wiki/Xcode. 4.Google.(2011).Google Wallet. Consultat la: http://www.google.com/wallet/index.html. 5.Google.(2011).Google Wallet. Consultat la: http://en.wikipedia.org/wiki/Google_Wallet. 6.Isis.(2011).Isis Wallet. Consultat la: https://www.paywithisis.com/.

Kostas, T.(2012, Iulie 10). Android VS Windows Phone from a developer’s scope. Consultat la: http://blog.bugsense.com/post/26918984231/android-vs-windows-phone-from-a- developers-scope.

Microsoft.(2010).Microsoft Visual Studio. Consultat la: http://en.wikipedia.org/wiki/Microsoft_Visual_Studio.

Mikusiak, L.(2013, Martie). iOS vs. Android Development Comparison. Consultat la: http://www.passion4teq.com/articles/ios-android-development-comparison-1/.

Travis, B.(2013, Martie). Android vs. iOS: User Differences Every Developer Should Know. Consultat la: http://www.comscore.com/Insights/Blog/Android_vs_iOS_User_Differences_Every_Develop er_Should_Know.

Square.(2011). Square Wallet. Consultat la: https://squareup.com/wallet.

Articole electronice din baze indexate

Chen, Z., Li, R., Chen, X., Xu, H. (2011).A Survey Study on Consumer Perception of Mobile-Commerce Applications. Elsevier Ltd. ScienceDirect.

Similar Posts

  • Page Ranking,prezentare Generala

    Importanta algoritmului In general, cercetarile in motoarele de cautare depind de relevanta rezultatelor afisate. Majoritatea utilizatorilor folosesc un cuvand cheie sau o propozitie cheie in cercetarile lor. Utilizatorul nu are abilitatea si rabdarea necesara pentru a scana toate paginile care contin cuvantul cheie. Cu ajutorul algoritmului PageRanking , paginile vor fi afisate in motorul de…

  • Proiectarea Matritei Pentru Fabricarea Prin Injectie din Material Plastic a Reperului Capac Pentru Bateria 12 V 55 A de la S.c. Rombat S.a. Bistrita Nasaud

    Cuprins Introducere Elaborarea temei de proiect Rezumat CAPITOLUL 1: DESCRIEREA MAȘINII DE INJECTAT 1.1 Generalități 1.2 Părțile componente ale mașinii de injectat 1.2.1 Unitatea de injectare 1.2.2 Tipizarea matrițelor 1.2.3 Unitatea de închidere-deschidere a mașinii de injectat 1.2.4 Centrarea și conducerea mașinii de injectat 1.2.5 Sisteme de aruncare 1.2.6 Sisteme de temperare ale matriței 1.2.7…

  • Controlul Si Monitorizarea Prin Internet a Parametrilor de Comfort Ai Unei Locuinte

    Controlul si monitorizarea prin internet a parametrilor de comfort ai unei locuințe Cuprins 1. INTRODUCERE………………………………………………………………………………………………………….4 1.1 Scop……………………………………………………………………………………………………………….4 1.2 Obiective…………………………………………………………………………………………………………5 1.3 Motivația alegerii temei…………………………………………………………………………………….6 2. CONSIDERAȚII TEORETICE……………………………………………………………………………………..7 2.1 Raspberry Pi……………………………………………………………………………………………………7 2.2 Raspbian………………………………………………………………………………………………………..10 2.3 Limbaje de scriptare………………………………………………………………………………………..12 2.3.1 JavaScript…………………………………………………………………………………………13 2.3.2 Ajax…………………………………………………………………………………………………15 2.3.3 PHP…………………………………………………………………………………………………16 2.3.4 Python……………………………………………………………………………………………..17 2.3.5 MySQL……………………………………………………………………………………………18 2.4 Microcontrolere………………………………………………………………………………………………19 2.4.1 Microcontrolerul Atmel Atmega 328p ARV…………………………………………22 2.5 Arduino…

  • Sisteme de Coordonate

    xx. SISTEME DE COORDONATE xx.1 Date geospațiale Datele geografice reprezintă coordonatele unor puncte ale spațiului terestru și atribute non-spațiale asociate acestor puncte, măsurate sau determinate în anumite momente de timp. Coordonatele punctelor care definesc pozițiile sunt elemente fundamentale ale datelor geografice și se mai numesc date de poziție, date geospațiale sau date de tip G…

  • Simularea Configuratiei Electronice a Elementelor

    Este o combinație dintre teoria lui Rutherford privind modelul planetar și teoria cuantelor, elaborată de Max Plank în anul 1900. Concepția lui Bohr cu privire la structura atomului se bazează pe două postulate: Electronul gravitează în jurul nucleului pe orbite corespunzătoare unor energii determinate, numite orbite staționare. Pentru cuantificarea orbitelor, Bohr propune următorul postulat adițional:…

  • Statii Totale

    STAȚII TOTALE 3.3.1. Prezentare generală Stațiile totale fac parte din generația nouă a instrumentelor topografice având, în principiu, funcționalitatea unui tahimetru clasic. Apariția, perfecționarea continuă, răspândirea și folosirea lor aproape în exclusivitate, că și confirmarea avantajelor de precizie, de confort în manevrare și randament, au făcut din stațiile totale simbolul, activității topografului modern. Stațiile totale…