Upload
others
View
11
Download
0
Embed Size (px)
Citation preview
Rok Prejac
Prodaja nepremičnin
na mobilni platformi Android
Diplomsko delo
Maribor, januar 2012
Diplomsko delo univerzitetnega študijskega dela
Prodaja nepremičnin
na mobilni platformi Android
Študent: Rok Prejac
Študijski program: UN ŠP Računalništvo in informatika
Smer: Informatika
Mentor: izr.prof.dr. Aleš Ţivkovič
Lektorica: Meteja Volmajer, prof. slovenskega jezika
Maribor, januar 2012
Prodaja nepremičnin na mobilni platformi Android III
Prodaja nepremičnin na mobilni platformi Android IV
ZAHVALA
Zahvaljujem se vsem mojim najbližjim, družini in
prijateljem, ki so mi vedno stali ob strani in me
znova in znova podpirali pri vseh mojih odločitvah,
ki sem jih do sedaj sprejel.
Hvala tudi mojemu mentorju dr. Alešu Živkoviču
za strokovno pomoč in vodenje pri pripravi
diplomskega dela.
Prisrčna hvala vsem!
Prodaja nepremičnin na mobilni platformi Android V
PRODAJA NEPREMIČNIN NA MOBILNI PLATFORMI ANDROID
Ključne besede: Android, REST, spletne storitve, GPS, prodaja nepremičnin, Moneta,
Google geocoding
UDK:004.451:004.775(043.2)
Povzetek
V diplomskem delu smo preučili možnosti uporabe mobilnih platform za poslovno uporabo
in povezovanje poslovnih sistemov. Razvili smo aplikacijo za prodajo nepremičnin.
Odločili smo se za mobilne naprave z operacijskim sistemom Android. Slednjega smo vzeli
pod drobnogled, raziskali njegovo povezljivost s spletno storitvijo vrste REST. Pokazali
smo zmogljivosti izkoriščanja sistema GPS na mobilnem telefonu in jih praktično uporabili
v aplikaciji.
Preučili in implementirali smo povezljivost aplikacije s strežnikom in povezljivost strežnika
s podatkovno bazo. Strežnik spletnih storitev REST je bil razvit v ogrodju .NET podjetja
Microsoft. Prikazali smo tudi spletni vmesnik kot administrativni vmesnik aplikacije.
Prodaja nepremičnin na mobilni platformi Android VI
SELLING OF REAL ESTATE ON THE MOBILE PLATFORM ANDROID
Key words: Android, REST, web services, GPS, selling of real estate, Moneta, Google
geocoding
UDK:004.451:004.775(043.2)
Abstract
In the presented diploma work we examined the use of mobile phones as the interface for
selling real estate with the Android operating system.
We investigated its connectivity with the REST web service. We have shown the capacity
utilization of GPS on the phone and used them in the application.
We studied and then implemented the client-server and server-database connectivity. The
web-service server was implemented in the .NET framework. We also displayed an
administrative web interface for the application.
Prodaja nepremičnin na mobilni platformi Android VII
Vsebina
1 UVOD 1
2 PLATFORMA ANDROID 3
2.1 RAZVOJ MOBILNIH APLIKACIJ ZA PLATFORMO ANDROID 3
2.2 ANDROID SDK 5
2.3 RAZVOJNO OKOLJE ANDROID 6
3 SPLETNE STORITVE REST 8
3.1 UPORABA SPLETNIH STORITEV REST NA PLATFORMI ANDROID 9
4 TEHNOLOGIJE ZA DOLOČANJE LOKACIJE 10
4.1 SISTEM GPS 10
4.2 SISTEM A-GPS 10
4.3 DOLOČITEV LOKACIJE GLEDE NA BAZNE POSTAJE MOBILNEGA OMREŽJA 11
4.4 WI-FI LOCIRANJA 12
4.4.1 SISTEM NAJBLIŽJEGA SENZORJA 12
4.5 GOOGLE GEOCODING API 12
5 MOBILNI SISTEM PLAČEVANJA 15
5.1 SISTEMI PLAČEVANJA 15
5.2 OPIS SISTEMA MONETA 16
5.3 PLAČILNI INSTRUMENT 17
5.4 STORITEV MONETA 17
5.5 UPORABA MONETE 18
Prodaja nepremičnin na mobilni platformi Android
VIII
5.5.1 PREGLED TRANSAKCIJ 20
5.5.2 NAKUP 20
5.5.3 NAROČILO 30
6 POSLOVNI PROCES PRODAJE/NAKUPA NEPREMIČNINE 32
6.1 ISKANJE NEPREMIČNINE 32
6.2 IZBIRA NEPREMIČNINE 34
6.3 NAKUP NEPREMIČNINE 34
7 FUNKCIONALNOSTI 37
7.1 UPORABA APLIKACIJE 37
7.2 PRIMERI UPORABE 38
7.2.1 PRIMERI UPORABE: SPLETNI ODJEMALEC 38
7.2.2 PRIMERI UPORABE: MOBILNI ODJEMALEC 39
7.3 ARHITEKTURNI DIAGRAM 40
7.4 RAZVOJ STREŽNIKA 41
7.5 RAZVOJ SPLETNEGA ODJEMALCA 46
7.5.1 ZASLONSKE MASKE SPLETNEGA ODJEMALCA 48
7.6 RAZVOJ ODJEMALCA ZA ANDROID 50
7.6.1 NASTAVITVE ISKANJA 51
7.6.2 NASTAVITVE PRIKAZA 53
7.6.3 PRIDOBIVANJE PODATKOV O LOKACIJI NA TELEFONU 54
7.6.4 ISKANJE NEPREMIČNIN 55
7.6.5 ISKANJE PO CELOTNI PONUDBI 56
7.6.6 DODAJANJE NEPREMIČNIN 57
Prodaja nepremičnin na mobilni platformi Android IX
7.6.7 ZASLONSKE MASKE MOBILNE APLIKACIJE: 58
8 SKLEP 61
9 VIRI 63
10 PRILOGE 66
10.1 KAZALO SLIK 66
10.2 KAZALO PRIMEROV KODE 67
10.3 NASLOV ŠTUDENTA 68
10.4 KRATEK ŽIVLJENJEPIS 68
Prodaja nepremičnin na mobilni platformi Android X
Uporabljene kratice
XML - Extensible Markup Language
SDK - Software development kit
API - Application programming interface
OpenGL - Open Graphics Library
GPS - Global positioning system
SOAP - Simple Object Access Protocol
WSDL - Web Services Description Language
HTTP - Hypertext Transfer Protocol
HTTPS - Hypertext Transfer Protocol Secure
RSS - Really Simple Syndication
JSON - JavaScript Object Notation
GSM - Global System for Mobile Communications
UMTS - Universal Mobile Telecommunications System
SIM - Subscriber Identification Module
BPMN - Business Process Model and Notation
ADO.NET - ActiveX Data Objects for .NET
WCF - Windows Communication Foundation
IIS - Internet Information Services
ASP - Active Server Pages
ADT - Android Development Tools
AVD - Android Virtual Devices
ROA - Resource Oriented Architecture
Prodaja nepremičnin na mobilni platformi Android Stran 1
1 Uvod
Prodaja nepremičnin v Sloveniji nima tradicije, saj je še pred dvema desetletjema imela
plansko gospodarstvo. Trg se je začel razvijati, v tranziciji, v trţno usmerjeno
gospodarstvo v devetdesetih letih prejšnjega stoletja. Število nakupov je iz leta v leto strmo
naraščalo, kar tudi nakazuje število nepremičninskih agencij, katerih je bilo leta 2007 čez
930. [33]
Z gospodarsko krizo leta 2008 je prišlo tudi nepremičninskega krča, ki je povzročil
zaprtje več kot 150 nepremičninskih agencij po vsej Sloveniji. Razseţnost krča nam
prikazuje podatek, da je bilo konec leta 2007 na mesec prodanih tudi do šest tisoč
nepremičnin, v zadnjih mesecih leta 2011 pa le nekaj sto. [33]
Zadali smo si cilj, da v diplomski nalogi izdelamo programsko rešitev za iskanje
nepremičnin, ki bi predstavljala poslovno prednost nepremičninskim agencijam, predvsem
pa boljšo uporabniško izkušnjo iskalcem nepremičnin. Posledično bi s tem pripomogli tudi
k večjemu zanimanju za nakup nepremičnin.
Oblike prodaje nepremičnin so se skozi čas občutno spreminjale. Sprva so bile ustne,
kasneje pa pisne preko raznih oglasov oziroma oglasnikov. Z računalniki in dobo interneta
se je prodaja selila na svetovni splet, ki je tako postala glavni vir iskanja. Prodaja in iskanje
se počasi selita tudi na pametne telefone, ki z uporabo lokalizacijskih tehnologij in
socialnih omreţij omogočajo nove načine iskanja informacij. [23]
V okviru diplomske naloge smo implementirati rešitev za iskanje nepremičnin preko
mobilnih naprav, na katerih je nameščen operacijski sistem Android. Pri iskanju
nepremičnin smo uporabili koordinate GPS, kot nov iskalni parameter, ki v aplikaciji
predstavlja drugačen način, kako iskati nepremičnine v okolici, kjer se uporabnik nahaja.
Prodaja nepremičnin na mobilni platformi Android Stran 2
Za raziskavo področja prodaje nepremičnin smo preučili delovanje slovenskih spletnih
iskalnikov nepremičnin, ki so sluţili kot referenčne točke za izdelavo našega grafičnega
vmesnika. Prav tako smo raziskali in podprli poslovne procese prodaje nepremičnin z
vidika prodaje na spletu. Povzeli smo, kateri so najpomembnejši parametri za iskanje
nepremičnin in jih prilagojeno uporabili v naši aplikaciji. Za nepremičninske agencije smo
razvili dodaten spletni vmesnik, ki te poslovne procese podpira.
Prodaja nepremičnin na mobilni platformi Android Stran 3
2 Platforma Android
Android je operacijski sistem za mobilne naprave, ki ga je razvilo podjetje Android Inc.
Leta 2005 ga je kupilo podjetje Google. Po nakupu so začeli Google ter drugi člani Open
Handset Alliance sodelovati pri razvoju omenjenega sistema. Proti koncu leta 2010 je
postal operacijski sistem Android najbolj prodajani sistem na pametnih telefonih in je s
tem prevzel prvo mesto operacijskemu sistemu Nokia Symbian.[5] Operacijski sistem je v
sklopu zavzemanja za odprte mobilne rešitve izdan večinoma pod odprtokodno licenco
Apache. Skupaj z operacijskim sistemom so izdali tudi SDK (Software Development Kit)
in navodila za razvoj aplikacij. Oktobra 2008 so izdali prvo napravo z novim operacijskim
sistemom Android imenovano HTC Dream. Od takrat se je ponudba širila ter do junija
2011 presegla kvoto 90 mobilnih telefonov z operacijskim sistemom Android. [26]
2.1 Razvoj mobilnih aplikacij za platformo Android
Platforma Android temelji na jedru Linux 2.6 in razvojnem programskem jeziku Java.
Vključena je tudi podpora za razvoj v jeziku C++. Android SDK predstavlja enega
najpomembnejših delov za razvoj, saj vsebuje vse potrebne razrede za delo s telefonom,
hkrati pa vključujejo enostaven dostop do strojne opreme telefona. [2] Pri razvoju za
telefone Android je smotrno biti pozoren na sledeče stvari. Prva posebnost je izdelava
grafičnega vmesnika, ki ga lahko implementiramo direktno v programski kodi, tako kot v
drugih sistemih ali pa grafični vmesnik definiramo v XML datoteki. V XML datoteki
deklariramo grafične elemente, ki se med seboj hierarhično navezujejo. Dodeljujejo se jim
posamezne lastnosti in vrednosti. Ta pristop nam omogoča spreminjanje grafičnega
vmesnika neodvisno od implementacije programa. Zanimivost je tudi upravljanje s procesi.
Med seboj jih obravnava enakovredno in neodvisno od vira. To pomeni, da bo razvita
aplikacija delovala z enako prioriteto kot sistemski program oziroma proces, kar pa
predstavlja razvijalcem za Android moţnost razvoja zelo odzivnih aplikacij. Zanimivost je,
da Android prav tako izvaja vsak program oziroma proces v svoji niti, le-te pa tečejo na
navideznemu stroju Dalvik, ki je okrnjena različica Javinega navideznega stroja.
Aplikacije so lahko zgrajene iz naslednjih gradnikov:
aktivnost,
Prodaja nepremičnin na mobilni platformi Android Stran 4
storitve,
sprejemniki sporočil,
ponudniki vsebin.
Aktivnost predstavlja za uporabnika viden grafični vmesnik, preko katerega ga lahko
uporablja. To je v osnovi okno, ki vsebuje različne grafične gradnike. Vsaka aplikacija je
lahko zgrajena iz več aktivnosti. Da preidemo iz ene aktivnosti v drugo, to aktivnost
enostavno pokličemo. Aktivnosti so si med sabo neodvisne in dedujejo od razreda Activity.
V tem koraku je priporočljivo vedeti, v katerem stanju se aktivnost nahaja. Poznamo tri
osnovna stanja: aktivno, v premoru in ustavljeno (ang. active, paused, stoped). Aktivna
aktivnost je označena in se v tistem času izvaja, zato ima uporabnik dostop do nje.
Aktivnost v premoru je izgubila fokus, vendar pa je uporabniku še vedno vidna. To se
lahko zgodi, če jo prekrije druga aktivna aktivnost, ki pa ne zasede celotnega zaslona.
Ustavljena aktivnost pa je uporabniku nevidna, kljub temu pa ohranja vse njene podatke.
Storitev je del, ki nima grafične predstavitve in teče v ozadju. Uporablja se večinoma za
operacije, ki se izvajajo dlje časa. To je dobrodošlo predvsem za uporabnika, saj lahko v
tem primeru istočasno opravlja nekaj drugega.
Sprejemniki sporočil so gradniki prejema in se odzivajo na sporočila telefona. Tako
lahko telefon sprejme različna sporočila (primer: prazna baterija) in kot odziv sproţi
nekakšen proces oziroma aktivnost ali pa se kako drugače odzove. Ne vsebuje pa
grafičnega vmesnika, zato uporabnik ne more z njim direktno komunicirati.
Ponudniki vsebin so gradniki, ki omogočajo dostop do podatkov aplikacije drugim
aplikacijam. To se naredi preko podatkovne baze SQLite, datotečnega sistema ali pa na
kakšen drug način. Aplikacije lahko do teh podatkov dostopajo preko razreševalnika
vsebin (ang. Content resolver).
Prodaja nepremičnin na mobilni platformi Android Stran 5
Ob zaključku razvoja aplikacije je le-ta v fazi trţenja. Google je po vzoru drugih naredil
lastno trţnico (Android Marketplace), kjer se lahko objavljajo vse razvite aplikacije. S tem
je Google ustvaril enotno mesto, kjer lahko uporabniki iščejo in kupujejo aplikacije.
Slika 2-1 Android market
2.2 Android SDK
Android SDK je namestitveni paket, ki ga moramo namestiti, kadar razvijamo za
platformo Android. Ta je sestavljen iz treh delov. Prvi je dokumentacija, ki je enaka, kot jo
najdemo na spletni strani »http://developer.android.com«. Drugi del so primeri, ki veljajo
za skupek šestih projektov razvojnega okolja Eclipse, ki jih lahko poţenemo in testiramo.
Zelo uporaben primer je projekt API Demos. To je aplikacija, ki predstavi večino
funkcionalnosti, ki jo ponuja Android. Zadnji, tretji del je razredna knjiţnica, ki je jedro
Androida SDK. Ta je sestavljena iz dveh sklopov: Google API in opcijske knjiţnice.
Google API vsebuje razrede za delo s storitvami, ki jih ponuja Google. Razredi omogočajo
delo z imenikom, grafiko, s koledarjem in enostavno delo z Google Maps. [2] V aplikacijo
lahko vključimo zemljevide iz Google Maps, z razredi iz imenskega prostora
com.google.android.map. Google API vsebuje tudi razrede za delo z Extensible Messaging
in s Presence Protocol (XMPP), ki je bil razvit pri odprtokodni skupnosti Jabber. [27] S
tem protokolom aplikacija najde odjemalce, s katerimi lahko komunicira. Izdelava
Prodaja nepremičnin na mobilni platformi Android Stran 6
programa »Messenger« potrebuje prav takšen protokol, saj z njim ustvarja komunikacijo.
Opcijski API pa vsebuje razrede, ki upravljajo s strojno opremo, ki ni nujno nameščena na
telefonu. Med to strojno opremo se zlahka najde GPS-naprava, Bluetooth, Wi-Fi in strojna
oprema, ki podpira OpenGL. S tem je omogočen zelo enostaven dostop do teh naprav,
medtem ko je pri drugih napravah dostop nekoliko oteţen.
2.3 Razvojno okolje Android
Mobilne telefone Android lahko razvijamo v vseh razvojnih okoljih, ki podpirajo razvoj
za programski jezik Java. Pomembno je le, da se nastavijo pravilne knjiţnice. Ker je ta
proces lahko zelo zamuden, je Google izdal dodatek za razvojno okolje Eclipse. Po
namestitvi tega se v okolje integrira celotna podpora za razvoj Android. Ta izbira je
najenostavnejša, zato smo jo uporabili tudi v diplomskem delu. V prvem koraku je
potrebno namestiti Eclipse in Android SDK, ki jih najdemo kot brezplačne datoteke na
spletu in jih lahko enostavno prevzamemo ter namestimo. Uporabili smo različico Android
SDK 2.2. Sledi namestitev ADT (Android Development Tools), ki je vtičnik za Eclipse. Ta
razširi razvojno okolje z moţnostjo ustvarjanja projektov Android, ustvarjanja grafičnega
vmesnika, razhroščevanja aplikacije ter še drugih uporabnih komponent. Emulator
kontroliramo z AVD (Andorid Virtual Devices) konfiguracijsko strojno opremo, ki jih
uporablja emulator. Vsak AVD je sestavljen iz več delov:
Profil strojne opreme: ta definira, katera strojna oprema bo emulirana. Tako
lahko določimo, ali naj aparat vsebuje kamero oziroma GPS ali kakšno
tipkovnico naj uporabljamo.
Povezava s sistemsko sliko: definiramo lahko, katera verzija naprave Android
bo tekla na virtualni napravi.
Druge nastavitve: nastavimo lahko, kakšen izgled naj ima emulator in katero SD
kartico naj emulira.
Določen prostor na lokalnem računalniku, ki je uporabljen za razne nastavitve, ki jih
uporablja emulator in sistem Android: to so razni podatki o naloţenih aplikacijah in
vsebina emulirane SD-kartice. Ustvarimo lahko poljubno število AVD-konfiguracij, ki so
nastavljene glede na naše potrebe. Še eno zanimivo orodje, ki je vgrajeno v ADT, je
Prodaja nepremičnin na mobilni platformi Android Stran 7
DDMS (Dalvik Debug Monitor Server). Ta se uporablja za storitve posredovanja vrat,
zajemanja zaslona na napravi, za spletne storitve Android, posredovanje informacij o nitih
in kopicah, o procesih, za laţno predstavljanje dohodnih klicev, SMS sporočil ipd.
Slika 2-2 Android emulator
Prodaja nepremičnin na mobilni platformi Android Stran 8
3 Spletne storitve REST
Pod izrazom spletne storitve si večina predstavlja storitve, ki bazirajo na trojčku
tehnologij – komunikacijskem protokolu SOAP, jeziku za opis vmesnikov storitev WSDL
in imenikovi storitvi UDDI. Takšne storitve so podlaga za t.i. storitveno arhitekturo (angl.
SOA - Service Oriented Architecture), ki se uporablja pri implementaciji najzmogljivejših
informacijskih platform. Vpeljava storitvene arhitekture, zlasti če ţelimo primerno
implementirati varnostne standarde, lahko predstavlja velik strošek in kompleksnejšo
izgubo. Pri implementaciji manjših informacijskih sklopov postajajo vedno bolj
pomembne spletne storitve REST, ki so podlaga za arhitekturo virov (angl. ROA -
Resource Oriented Architecture), temelječo na le-teh. [20]
Osnovni koncept modela REST so viri s svojimi identifikatorji. Identifikatorji so npr.
spletne strani, sporočila novičarskih skupin ali datoteke na streţnikih FTP. Edini pogoj za
obstoj identifikatorja je, da ga lahko opišemo kot edinstveni identifikator (angl. URI –
Uniform Resource Identifier).
Pri spletnih storitvah REST se za dostop do virov uporabljajo osnovne metode
protokola http: metoda GET za branje podatkov, metoda POST za ustvarjanje novih virov,
metoda PUT za spremembe podatkov na posameznih virih in metoda DELETE za brisanje
virov.
Uporaba spletnih storitev REST je smotrna, če imamo potrebo po spletnem vmesniku in
če ţelimo do storitev dostopati iz različnih naprav – od mobilnih naprav do večjih
streţnikov. Vse naprave, ki imajo dostop do spleta, imajo namreč hkrati dostop do
osnovnega nabora metod HTTP .
Ustrezno lahko implementiramo tudi varnost. Uporabimo lahko več vrst avtentikacije in
avtorizacije, npr. Basic access authorization ali avtentikacija s certifikatom. Varno
povezavo vzpostavljamo preko protokola HTTPS.
Prodaja nepremičnin na mobilni platformi Android Stran 9
3.1 Uporaba spletnih storitev REST na platformi Android
Platformi Android je priloţena knjiţnica Apache HttpClient 4, ki omogoča
manipulacijo z viri. [20]
Podobno postopamo tudi pri manipulaciji virov z drugimi metodami HTTP – za branje,
spreminjanje ali brisanje virov. Namesto objekta HttpPost kreiramo ustrezne objekte glede
na izbrano metodo HTTP (npr. HttpGet, HttpDelete ali HttpPut), nato pa nad njimi
izvedemo metodo execute.
Slika 3-1 Arhitektura REST storitev [24]
Prodaja nepremičnin na mobilni platformi Android Stran 10
4 Tehnologije za določanje lokacije
4.1 Sistem GPS
Sistem GPS je bil razvit v Zdruţenih drţavah Amerike za vojaške namene. Šele leta
1983 so ga ponudili tudi v civilno uporabo. GPS se nanaša na 24 satelitov, ki kroţijo okoli
Zemlje v srednji orbiti (19.300 km). Pri tem so postavljeni tako, da se vidijo najmanj štirje
sateliti naenkrat. GPS-prejemniki, ki jih imajo končni uporabniki, uporabljajo signale, ki
jih pošiljajo sateliti in s pomočjo teh določijo točno lokacijo na Zemlji. To jim uspe s
pomočjo uporabe matematičnega principa trilateracije, ki se uporablja za iskanje presečišča
treh sferičnih objektov v prostoru. Tako lahko z uporabo te metode in poznavanjem
razdalje oddaljenosti satelitov določimo lokacijo na Zemlji. Kot dodatno sfero ponavadi
uporabimo kar Zemljo in tako še dodatno izboljšamo natančnost. V primeru uporabe treh
ali več satelitov lahko določimo tudi višino in zagotovimo še večjo natančnost. [21]
Za vse izračune je potrebna razdalja od satelita do sprejemnika. Ta se izračuna s
pomočjo radijskih valov, ki jih pošiljajo sateliti. Sprejemnik s pomočjo le-teh izračuna
časovno zakasnitev signala in na podlagi tega pridobi dejansko razdaljo do satelita. Teţava
se pojavi pri merjenju časovnega zamika signala, saj bi morali imeti vsi sprejemniki in
sateliti enako nastavljene ure. To so rešili tako, da so v vse satelite namestili atomske ure,
ki delujejo do nanosekunde natančno. V sprejemnikih pa so slabše ure quartz. Sprejemnik
se zelo natančno nastavi na enak čas, kot ga imajo sateliti iz signalov, ki jih ti pošiljajo.
Kompenzirajo razne napake, ki se lahko zgodijo zaradi potovanja signala skozi atmosfero,
odbijanja ţarkov od površin in poškodovanih podatkov, ki jih lahko pošljejo sateliti.
4.2 Sistem A-GPS
Sistem znan tudi po imenu Assisted GPS oziroma AGPS, izboljšuje zmogljivosti
standardnega GPS sistema v napravah povezanih na mobilna omreţja. [30] Sistem pomaga
na dva načina:
Hitreje pridobiti povezavo s sateliti (ang: time to first fix ali TTFF). Sistem A-
GPS pridobi in shrani informacije o lokacijah satelitov preko mobilnega
omreţja. Tako tega več ni potrebno pridobiti preko satelita.
Prodaja nepremičnin na mobilni platformi Android Stran 11
Pomaga pridobiti pozicijo telefona, ko je GPS signal šibek ali ni na voljo. Signal
GPS satelitov ovirajo visoke stavbe in debele stene stavb. V primeru, da GPS
signala zmanjka, sistem A-GPS uporablja določitev lokacije glede na bazne
postaje mobilnega omreţja.
4.3 Določitev lokacije glede na bazne postaje mobilnega omrežja
Ta način je alternativa za mobilne naprave, ki nimajo vgrajenega GPS-sprejemnika.
Deluje na zelo podoben način kot določevanje lokacije preko GPS-satelitov. Tukaj so v
vlogi satelitov kar bazne postaje. Naprava lahko z merjenjem oddaljenosti od teh določi
svoj poloţaj glede na te oddajnike. Določitev poloţaja poteka na več načinov:
Z uporabo trilateracije: tu je princip enak kot pri GPS-metodi. Razdalja do
oddajnikov se določi s pomočjo moči signala in časovnim zamikom signala.
Z uporabo multilateracije: je zelo podobna trilateraciji, le da namesto presečišč
sfer uporablja presečišča hiperbol. Ta način ima prednost, ker ne potrebuje
časovnih zamikov za določitev razdalje.
Z uporabo triangulacije: ta način uporablja kote med trenutno lokacijo in stolpi.
Pri tem je pomembno, da imajo oddajniki usmerjene antene, s katerimi je moţno
določiti kot.
Zgoraj našteti načini uporabe oddajnikov so manj natančni kot GPS, vendar so podprti
na vseh telefonih. Omogočajo natančnost med 100 m do 3 km, odvisno od števila baznih
postaj v bliţini naprave.
V tem sklopu je potrebno omeniti tudi Google in OpenCellID. Oba delujeta na drugačen
način, saj pošiljata podatke o samo enem telefonskem oddajniku, od koder storitvi
pridobita podatek o lokaciji. Poslani podatek o oddajniku nima nikakršnih podatkov o
lokaciji oddajnika, kar povzroči teţavo pri pridobitvi lokacije. Nastalo teţavo sta obe
storitvi rešili na enak način – s podatkovno bazo vseh telefonskih oddajnikov po svetu ter
njihovo lokacijo oziroma geografsko širino in višino. Google ima svojo bazo podatkov o
telefonskih oddajnikih, vendar do te nimamo neposrednega dostopa. OpenCellID pa je
odprt projekt in omogoča poljubno brskanje po bazi. Je tudi zelo navezan na podporo
Prodaja nepremičnin na mobilni platformi Android Stran 12
uporabnikov, saj uporabniki vnašajo podatke o oddajnikih. V ta namen ponuja OpenCellID
posebno storitev, ki omogoča dodajanje oddajnikov.
4.4 WI-FI lociranja
Sistemi, ki za določitev lokacije uporabljajo brezţična omreţja so bili razviti predvsem,
da rešijo problem pridobitve lokacije znotraj zgradb.
Za pridobitev lokacije preko WI-FI se uporablja več različnih sistemov:
triangulacija,
najbliţji senzor,
RSS (pridobljena moč signala) in
GPS (vgrajen GPS sprejemnik).
Večino sistemov smo ţe opisali v prejšnjih točkah. Glavna razlika je, da se v teh
primerih podatki pridobijo preko WI-FI vstopnih točk.
4.4.1 Sistem najbližjega senzorja
To je najenostavnejša metoda, hkrati pa tudi najmanj natančna. Storitev podpira večina
brezţičnih omreţnih ponudnikov. Sistem ugotovi vstopno točko (ang: access point)
brezţičnega omreţja ali mobilno bazno postajo, s katero je WI-FI odjemalec povezan.
Predvideva, da je to najbliţji senzor naprave in izračuna, kako daleč naprava oddaja svoj
signal.
Natančnost lahko izboljšamo s pomočjo trilateracije, katera se namesto na bazne postaje
poveţe na najbliţje senzorje.
4.5 Google geocoding API
Geo-kodiranje (ang: geocoding) je proces spreminjanja naslova (npr: »Zgornja Selnica
24b, Slovenija«) v geografske koordinate širine in dolţine, ki jih lahko uporabimo, da
označimo točke na mapi.
Prodaja nepremičnin na mobilni platformi Android Stran 13
Google Maps API ponuja razred geocoder za dinamično geo-kodiranje zahtevkov.
Zahtevki so količinsko omejeni, na 2500 zahtevkov na dan [28], da se storitev ne bi
zlorabljala. Z uporabo plačljive storitve Google Maps API Premier lahko število zahtevkov
povečamo na 100000 na dan.
Geolocaton API omogoča spletni aplikaciji, da dobi uporabnikovo geo-grafično
pozicijo. [6]
Uporablja lahko tudi spletne streţnike, da pridobi pozicijo. Streţnik ugotovi pozicijo
odjemalca z uporabo podatkov, ki jih priskrbi uporabnik. Ti podatki vsebujejo odjemalcev
IP naslov in informacije o oddajnih stolpih ali brezţičnih vozlišč, ki jih lahko zazna.
Komunikacija je narejena preko HTTP protokola, API pa naredi zahtevek (ang: request) z
uporabo HTTP POST. Tako zahtevek (ang: request), kot odgovor (ang: response) sta
oblikovana kot JSON, tip vsebine pa (content type) je application/json. Osnovna uporaba je
prikazana na primeru kode 6-1. [26]
var geocoder;
var map;
function initialize() {
geocoder = new google.maps.Geocoder();
var latlng = new google.maps.LatLng(-34.397, 150.644);
var myOptions = {
zoom: 8,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
}
function codeAddress() {
var address = document.getElementById("address").value;
geocoder.geocode( { 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
var marker = new google.maps.Marker({
Prodaja nepremičnin na mobilni platformi Android Stran 14
map: map,
position: results[0].geometry.location
});
} else {
alert("Geocode ni bil uspešen iz naslednjih razlogov: " + status);
}
});
}
<body onload="initialize()">
<div id="map_canvas" style="width: 320px; height: 480px;"></div>
<div>
<input id="address" type="textbox" value="Zg. Selnica 24.b, Slovenija">
<input type="button" value="Encode" onclick="codeAddress()">
</div>
</body>
Primer kode 4-1 Primer uporabe Google geocoding API [26]
Prodaja nepremičnin na mobilni platformi Android Stran 15
5 Mobilni sistem plačevanja
V literaturi se pojavljajo različne definicije mobilnega plačevanja, zato omenimo
nekatere bolj pogoste. Najbolj splošna definicija je, da govorimo o mobilnem plačilu
takrat, kadar za plačevanje uporabljamo kot plačilni instrument mobilni terminal.
Mobilno plačevanje predstavlja del elektronskih plačil, ki so definirana kot »prenos
elektronskega plačila od plačnika do prejemnika plačila z uporabo elektronskega
plačilnega instrumenta« (Soramaeki in Hanssens, 2003).
Če upoštevamo, da lahko proces plačila poteka po zraku, pridemo do naslednje
definicije mobilnega plačevanja (Mobile Payment Forum, 2002): »Mobilno plačilo je
prenos elektronskega plačila od plačnika do prejemnika plačila z uporabo elektronskega
plačilnega instrumenta, pri čemer mobilni terminal uporablja vsaj eden izmed udeleţencev,
ki ni vezan na lokacijo in ki oddaja ali sprejema podatke prek brezţične povezave.«
Podjetja se odločajo za mobilni način plačevanja z različnimi razlogi:
veliko število uporabnikov,
mikro plačila,
širitev delovanja trgovcev in
mobilni sistem je osnovno uporabniško orodje.
Glavni razlog za uvedbo mobilnega plačilnega sistema je ponuditi uporabnikom
dodatno vrednost in priročnost ter seveda povečati dobiček. [19]
5.1 Sistemi plačevanja
Ponujajo bistveno več storitev kot le plačevanje. Omogočajo prenos sredstev med
posamezniki ali podjetji, plačilo storitev, sodelovanje na draţbah, donacije …
Vsi sistemi temeljijo na enakem poslanstvu, vendar se med njimi pojavljajo razlike v
delovanju, predvsem pa v ponudbi. Globalna igralca sta dva:
Prodaja nepremičnin na mobilni platformi Android Stran 16
PayPal in
Google Wallet (prej Google Checkout).
PayPal ima na trgu precejšnjo prednost, predvsem zaradi daljše prisotnosti na trgu ( od
leta 1998 proti 2006). [32]
Na slovenskem trţišču je močno razširjen tudi slovenski sistem Moneta.
5.2 Opis sistema Moneta
V Sloveniji je za plačevanje z mobilnim telefonom od leta 2001 uporabnikom na voljo
storitev Moneta, ki jo je razvila druţba Mobitel, predvsem za plačevanje izdelkov in
storitev manjših vrednosti. Kupec nakupe poravna enkrat mesečno z enotnim računom
Mobitel GSM/UMTS ali z Debitelovim računom GSM. Leta 2004 sta druţba Mobitel in
Nova KBM storitve mobilnega plačevanja Moneta nadgradili in zaokroţili tako, da je
mogoče mesečni znesek nakupov poravnati tudi neposredno s transakcijskega računa pri
banki. S tem lahko postane mobilni aparat samostojno plačilno sredstvo tudi za velike
nakupe, vendar v okviru finančnega poslovanja pri banki. V Sloveniji je z mobilnim
aparatom danes moţno plačevati na spletnih straneh, prodajnih avtomatih in na vseh
prodajnih mestih, ki so opremljena s terminali za mobilno plačevanje. Z naraščanjem
števila prodajnih mest, ki omogočajo plačevanje z mobilnim aparatom, strokovnjaki
napovedujejo, da bo mobilno plačevanje v naslednjih letih predstavljajo pomemben
segment plačilnih storitev tako pri nas kot v Evropski uniji in po večini drţav po svetu.
Nekateri celo verjamejo, da bo mobilni aparat na tem področju prekosil tudi t. i. pametne
kartice. [19]
Moneta je skupna trţna znamka druţbe Mobitel in Nove KBM, s katero so
poimenovani:
celovito odprt sistem plačevanja z mobilnimi telefoni,
plačilni instrument Moneta,
storitve plačevanja z mobilnimi telefoni za uporabnike in
storitve sprejemanja plačil z mobilnimi telefoni za prodajna mesta.
Prodaja nepremičnin na mobilni platformi Android Stran 17
V sistem Moneta so povezane banke, mobilni operaterji in druge institucije, ki delujejo
kot izdajatelji plačilnega instrumenta Moneta ter lastnika sistema Moneta – druţba Mobitel
in banka NKBM. Sistem Moneta je zasnovan na načelih odprtih kartičnih plačilnih
sistemov, domačih (Activa) ali tujih (Visa, MasterCard), kar pomeni, da se institucije vanj
vključujejo v vlogi izdajateljev.
Vsi izdajatelji v sistemu Moneta so med seboj enakovredni z vidika temeljnega
poslovnega načela: izdajatelji v sistemu Moneta sproti (dnevno) poravnavajo skupni
znesek vseh transakcij svojih uporabnikov, ki so izvedeni v okviru sistema, za kar prejmejo
izdajateljsko provizijo od poravnanega zneska. Vsak posamezen član sistema ob vstopu
sklene pogodbeno razmerje z lastnikoma sistema, ki sta ob enem tudi pridobitelja v
sistemu Moneta.
5.3 Plačilni instrument
Plačilni instrument Moneta predstavlja nabor dogovorov in pravil med člani sistema
Moneta, po katerih ti poslujejo znotraj sistema in po katerih omogočajo poslovanje svojim
strankam – uporabnikom Monete. Moneta je plačilni instrument z odloţenim plačilom, kar
pomeni, da izdajatelji račune uporabnikov bremenijo enkrat mesečno v skupnem znesku
njihovih transakcij, opravljenih v obdobju od zadnje bremenitve. [19]
5.4 Storitev Moneta
Uporabo storitve Moneta in s tem plačilnega instrumenta Moneta odobri uporabniku
izdajatelj. Temeljna značilnost storitve Moneta z vidika uporabnika je, da ta kot sredstvo
za izvedbo plačilnega postopka s plačilnim instrumentom Moneta vedno uporablja svoj
mobilni telefon. Storitev Moneta tako za uporabnika pravzaprav predstavlja navidezno
plačilno kartico, ki pa ni izdana v plastični oz. materialni obliki, ampak se uporablja z
njegovim mobilnim telefonom. Storitev Moneta je v vseh svojih pojavnih oblikah vezana
na uporabo mobilnega telefona, zato lahko uporabnika pri izvedbi transakcije vedno
Prodaja nepremičnin na mobilni platformi Android Stran 18
primarno identificiramo z njegovo mobilno številko, na katero so vezani njegovi
posamezni računi. [19]
To prinaša pomemben element varnosti, saj lahko zagotovimo, da uporabnik v času
transakcije zares poseduje svoj plačilni medij, to je mobilni telefon. Seveda se morajo
uporabniki zavedati novega elementa, v tem primeru občutljivosti za svoj telefonski aparat,
saj s tem postaja le-ta tudi njihova denarnica. Po splošnih izkušnjah to ni problematično,
saj je mobilni telefonski aparat postal splošno razširjen in izrazito oseben predmet, ki ga
večina uporabnikov ob izgubi ali kraji zelo hitro pogreša, prav tako je mogoče mobilno
številko (oz. kartico SIM v aparatu) nemudoma v celoti blokirati, torej sta aparat in
številka sama po sebi manj podvrţena zlorabi.
Moneta ponuja varno mobilno plačevanje z odlogom plačila in z enotnim in varnim
postopkom identifikacije. Odkar je Moneta na voljo tudi pri operaterju Simobil, se je deleţ
pokritja prebivalcev Slovenije povečal na več kot 1,8 milijona naročnikov pri mobilnih
ponudnikih Mobitel, Debitel ter Simobil. Trenutno je eden boljših plačilnih načinov na
voljo v Sloveniji.
5.5 Uporaba Monete
Vstopna točka za skrbniške strani za ponudnike vsebin preko e-Monete je
https://nastavitve.moneta.mobitel.si/provider/login.asp. [13]
Ponudniki plačljivih storitev lahko preko spletnega vmesnika sistema Moneta za
ponudnike izvajajo naslednje:
vnos podatkov o ponudniku plačljivih storitev,
dodajanje novih uporabnikov za dostop do spletnega vmesnika,
prenos XML oblik računov in naročil na lokalni disk ponudnika,
pregled vnesenih plačljivih storitev,
pregled statistike,
Prodaja nepremičnin na mobilni platformi Android Stran 19
pregled/potrjevanje/preklic naročil,
pregled računov in
pregled transakcij.
V razdelku »nastavitve« lahko ponudnik vnese naslednje podatke:
naziv ponudnik/podatki o podjetju,
kontaktni podatki ponudnika,
sliko glave in noge računa/naročilnice,
elektronsko pošto za obveščanje o naročilih in
številčno serijo računov/naročil.
V razdelku »dostop« se prikaţe obrazec za dodajanje novih uporabnikov ter določanje
pravic, ki so jim dodeljene. V razdelku »izvoz« si lahko ponudnik pretoči XML obliko
računov in naročil na lokalni disk. V razdelku »plačljive strani« lahko ponudnik izvede
pregled nad vnosom njegovih plačljivih storitev. Razdelek »statistika« omogoča
ponudniku vpogled v statistiko skupnih zneskov transakcij. V razdelku »naročila« pa ima
ponudnik pregled nad naročili.
Nepotrjena naročila lahko ponudnik potrdi (znesek naročila se zaračuna kupcu) ali jih
zavrne. Obvestilo o potrjenem ali zavrnjenem naročilu se pošlje h kupcu na elektronsko
pošto in SMS.
Za izpis računov lahko ponudnik uporabi kombinacijo filtrov:
obdobje izdanih računov,
MSISDN številka kupca in
številka naročila.
Prodaja nepremičnin na mobilni platformi Android Stran 20
Ponudnik ima omogočen vpogled v posamezen račun ali v več računov hkrati.
5.5.1 Pregled transakcij
Za izpis transakcij lahko ponudnik uporabi kombinacijo filtrov:
obdobje opravljenih transakcij in
ConfirmationID podatek.
Izpis transakcije je sestavljen iz:
datuma transakcije,
naziv ponudnika plačljivih storitev in
tipa transakcije (nakup/naročilo), status transakcije.
5.5.2 Nakup
Ponudnik vsebin od Mobitela pri registraciji dobi svojo unikatno identifikacijsko
številko, npr. 98. [13] Ponudnik vsebin vsaki plačljivi strani določi unikatno
identifikacijsko številko – npr. 101 - in jo registrira preko skrbniških strani. Vse stare
povezave na to stran nadomesti s povezavo
http://tarfweb.adacta.si/TarifficationE.dll?TARIFFICATIONID=98&ConfirmationID=101.
S TARIFFICATIONID ponudnik torej identificira samega sebe, s ConfirmationID
parametrom pa plačljivo stran. Ker jo pred uporabo registrira v e-Moneti, lahko le-ta iz
zahteve določi ceno.
Ta način plačevanja zaračuna plačljivo stran kupcu, preden jo le-ta dobi. Lahko se
zgodi, da pride pri prenosu plačljive vsebine do napake in je kupec ne dobi, zato je ta način
primeren le za manjše nakupe.
Prodaja nepremičnin na mobilni platformi Android Stran 21
5.5.2.1 Nakup s potrditvijo
Zahteve na ponudnikovem spletnem strežniku:
aktivne spletne skripte (eno od naštetega: asp, php, pl, cgi, jsp) in
podatkovna baza (eno od naštetega: MySQL, PostgreSQL, DB2, Oracle,
MSSQL, Access).
5.5.2.2 Namestitev testnega naročanja na ponudnikov spletni strežnik
Ponudnikove plačljive strani
Na ponudnikovi plačljivi strani je dvoje spletnih skript, in sicer nakup.asp ter
potrditev.asp. [13]
Moneta pri storitvi Nakup komunicira s ponudnikovima spletnima skriptama nakup.asp
in potrditev.asp. Moneta od ponudnikovih spletnih skript nakup.asp pridobi vse potrebne
podatke o ceni storitve. Cena storitve mora biti v predpisani obliki (Točka 3: Specifikacija
dinamične cene storitve). Moneta s klicem ponudnikovih spletnih skript potrditev.asp
potrdi nakup. Moneta zaračuna ceno storitve kupcu v primeru uspešne potrditve nakupa.
Moneta klicu ponudnikovih plačljivih strani (nakup.asp ter potrditev.asp) posreduje
podatek ConfirmationID, ki je ključnega pomena pri transakciji. Podatek ConfirmationID
je povezava do posameznega nakupa v ponudnikovi lokalni podatkovni bazi.
Odzivni čas ponudnikovih plačljivih strani mora biti krajši od 60 sekund.
Vsebina datoteke ZIP, ki vsebuje izvorno kodo testnega primera storitve nakup
sistema Moneta:
nakup.asp – Moneta s klicem le-teh spletnih skript prevzame ceno storitve od
ponudnika.
potrditev.asp – Moneta s klicem le-teh spletnih skript potrdi nakup.
Korak1.asp – Začetna stran testnega nakupa (izbira cene).
Prodaja nepremičnin na mobilni platformi Android Stran 22
Korak2.asp – Vnos novega nakupa v ponudnikovo lokalno podatkovno bazo.
Preusmeritev kupca na URL za plačevanje sistema Moneta
ADODBFunctions.asp – Funkcije za dostop do podatkovne baze.
Slika 5-1 Tabela v ponudnikovi podatkovni bazi. Ime tablele: MONETA
Nakup.asp
Spletne skripte nakup.asp morajo biti dostopne celotnemu spletu (internetu). Omenjene
spletne skripte se nahajajo na ponudnikovem spletnem streţniku. Moneta od ponudnikovih
spletnih skript nakup.asp pridobi vse potrebne podatke o ceni storitve. Cena storitve mora
biti v predpisani obliki.
Funkcionalnost spletne skripte nakup.asp:
branje parametra ConfirmationID, ki ga posreduje Moneta pri klicu skript,
branje vrstice nakupa iz podatkovne baze, ki se navezuje na podatek
ConfirmationID,
Prodaja nepremičnin na mobilni platformi Android Stran 23
preverjanje veljavnosti in statusa nakupa zapisanega pod podatek
ConfirmationID,
vključitev povratne osveţitve (Ang: refresh) spletnih skript nakup.asp v HTML
izhodne podatke,
vključitev besedila, ki ponazarja status nakupa (Nakup potrjen./Nakup
zavrnjen./Nakup v obdelavi.) v HTML izhodne podatke in
v primeru uspešne potrditve (ko ima nakup pod številko ConfirmationID status
»potrjeno«) lahko ponudnik kupcu prikaţe kupljeno storitev (ţeton, novico,
članek, vstopnico) in zapiše status nakupa na »prikazano«.
Prodaja nepremičnin na mobilni platformi Android Stran 24
act Use Case View
Branje parametra
ConfirmationID
Start
Branje XML oblike
naročila ter statusov
naročila iz podatkov ne
baze
Status naročila: "Naročilo
ni bilo najdeno"Naročilo najdeno
Število osvežitev < 60Status naročila: "Potrditev
naročila ni uspela"
Status naročila = "Zavrnjeno"Status naročila: "Naročilo
zav rnjeno"
Status potrjevanja = "potrjeno"Status naročila: "Naročilo
potrjeno"
Status potrjevanja = "V obdelavi"Status naročila: "Naročilo
v obdelav i"
Status naročila: "Napaka"
Pov ratna osv ežitev strani
Izpis XML oblike naročila
Izpis statusa naročila
Konec
NE
DA
DA
DA
DA
NE
DA
NE
DANE
Slika 5-2 Diagram aktivnosti spletnih skript nakup.asp
Prodaja nepremičnin na mobilni platformi Android Stran 25
Potrditev.asp
Spletne skripte potrditev.asp morajo biti dostopne samo Moneti. Omenjene spletne
skripte se nahajajo na ponudnikovem spletnem streţniku. [13]
Moneta s klicem ponudnikovih spletnih skript potrditev.asp potrdi nakup. Moneta
zaračuna ceno storitve kupcu v primeru uspešne potrditve nakupa. Moneta kliče spletno
skripto potrditev.asp takole:
http://www.ponudnik.si/moneta/potrditev.asp?ConfirmationID=123xyz&ConfirmationSig
nature=ab*&TARIFFICATIONERROR=0&Price=4000.
Funkcionalnost spletne skripte potrditev.asp:
branje parametrov, ki jih posreduje Moneta pri klicu teh skript; ConfirmationID,
ConfirmationSignature, TARIFFICATIONERROR, Price,
branje vrstice nakupa iz podatkovne baze, ki se navezuje na podatek
ConfirmationID, če je bil nakup ţe predhodno potrjen ali zavrnjen, se
potrjevanje smatra kot neveljavno - potrditvena stran naj vrne napako
<error>1</error>,
nastavitev statusa nakupa v podatkovni bazi (zavrnjeno/potrjeno),
izhod spletnih skript potrditev.asp je samo <error>0</error> (ni napake) ali
<error>1</error> (napaka).
Prodaja nepremičnin na mobilni platformi Android Stran 26
act Diagram aktiv nosti spletnih skript Moneta
Start
Branje parametrov :
ConfirmationID,
ComfirmationSignature,
TARIFFICATIONERROR
Branje XML oblike
naročila ter statusov
naročila iz podatkov ne
baze
Klic s strani monete
Naročilo najdeno
TARIFFICATIONERROR = 0Zapiši status potrjev anja:
"Zav rnjeno"
Zapis Error: "1"
Zapiši status potrjev anja:
"Potrjeno"
Zapis Error: "0"
Konec
[da]
[ne]
[ne]
[da]
[da]
[da]
[ne]
[ne]
Slika 5-3 Diagram aktivnosti spletnih skript potrditev.asp
Prodaja nepremičnin na mobilni platformi Android Stran 27
Preverjanje potrjevanja nakupa s strani sistema Moneta
Spletne skripte potrditev.asp morajo biti dostopne samo Moneti. Direkten dostop do
spletnih skript potrditev.asp iz spleta (interneta) mora biti onemogočen.
Nekaj načinov za preprečevanje direktnega dostopa do spletnih skript potrditev.asp:
datoteka potrditev.asp se nahaja v ločeni mapi kot nakup.asp,
kompleksno ime potrditvene strani npr.: p0tr6it3v.asp,
dostop omogočen samo iz IP naslovov: 193.77.149.124 (testna Moneta) ter
213.229.249.195 (produkcijska Moneta),
uporaba gesla basic authentication in
dostop s certifikatom odjemalca.
Moneta omogoča tudi HTTPS:443.
Specifikacija dinamične cene storitve
Dinamična cena storitve mora biti v izhodni HTML kodi spletnih skript nakup.asp.
Dinamična cena določa: ceno storitve, količino, davčno stopnjo ter naziv storitve. Cena, ki
jo Moneta razbere iz dinamičnih parametrov za ceno, se zaračuna kupcu po končani
transakciji.
Vključitev dinamične cene:
<meta name="[Naziv parametra]" content="[Vsebina vrednosti]">
Nakup dveh ali več storitev hkrati
Vsaka naslednja storitev, ki jo ţeli ponudnik prodati v isti transakciji, moda vsebovati
podatek PageCode.
PageCode določa številko storitve znotraj ponudnika in je vedno isti za vsako nadaljnjo
vključeno storitev v dinamično ceno.
Prodaja nepremičnin na mobilni platformi Android Stran 28
V primeru, da ponudnik ţeli v eni transakciji prodati dve ali več storitev hkrati, mora
poslati zahtevek za številko PageCode na elektronski naslov: [email protected]
sd Diagram zaporedja poteka nakupa z Moneto
Kupec
:Moneta :Ponudnik
nakup artikla()
Kreiranje ComfirmationID()
Kreiranje XML oblike naročila()
Zapis naročila v podatkovno bazo()
posredovanje podatkov za plačilo() :(Moneta URL,
ConfirmationID)
Plačevanje(monetin URL)
Obrazec za vnos GSM številke()
Pošlji stevilko(GSM številka)
Pošiljanje SMS sporočila z PIN geslom na kupčevo GSM
številko(GSM številka)Obrazec za vnos PIN gesla()
Pošlji pin geslo(PIN geslo)
Preveri PIN
geslo(PIN)
Narocilo.asp(ConfirmationID)
Preveri naročilo(ConfirmationID)
Status naročila + XML
račun() :Status naročila,
XML račun
Preverjanje naročila(XML naročilo)
Status naročila()
:Status naročila Potrditev.asp(ConfirmationID)
Potrjevanje naročila(ConfirmationID)
Status potrjevanja naročila() :<error></error>
Zapis veljavnosti naročila()
Naročilo čaka ponudnika na ročno potrditev()
Slika 5-4 Diagram zaporedja poteka nakupa z sistemom Moneta
Prodaja nepremičnin na mobilni platformi Android Stran 29
Testiranje pravilnosti delovanja ponudnikovih plačljivih strani
Ponudnik izdela spletni skripti nakup.asp ter potrditev.asp. [13]
URL povezavi do spletnih skript pošlje na elektronski naslov:
Ponudnik prejme testni Monetin URL za plačevanje in nadaljnja navodila za
testiranje.
Ko so ponudnikove plačljive spletne skripte dokončane, se opravi testen nakup.
V roku enega tedna se opravi priklop na produkcijsko Moneto. Ponudnik prejme
produkcijski Monetin URL za plačevanje in nadaljnja navodila.
Sliki glave in noge računa
Na računu, ki ga izda sistem Moneta v imenu ponudnika, se prikaţe logotip ponudnika.
Zahteve za sliki:
sliki se prikaţeta na računu, ki ga Moneta izda v imenu ponudnika,
sliki naj bosta tipa GIF ali JPG,
sliki naj po X-osi ne presegata 600 pik in
sliki naj se nahajata na ponudnikovem streţniku.
Slika glave računa mora vsebovati naslednje podatke:
polno uradno ime podjetja (kot je registrirano in kakor se navede v pogodbi),
naslov in kraj ter
identifikacijska številka za DDV.
Slika noge računa mora vsebovati naslednje podatke:
ime in priimek odgovorne osebe ter
faksimile ţiga in podpisa odgovorne osebe.
Prodaja nepremičnin na mobilni platformi Android Stran 30
5.5.3 Naročilo
Zahteve na ponudnikovem spletnem strežniku:
aktivne spletne skripte (eno od naštetega: asp, php, pl, cgi, jsp itd.),
podatkovna baza (eno od naštetega: MySQL, PostgreSQL, DB2, Oracle,
MSSQL, Access itd.) ter
spletna trgovina.
Plačljive strani ponudnika
Ponudnikovi plačljivi strani sta spletni skripti narocilo.asp in potrditev.asp. [13]
Moneta, pri storitvi Naročilo, komunicira s ponudnikovima spletnima skriptama
narocilo.asp in potrditev.asp.
Moneta od ponudnikovih spletnih skript narocilo.asp pridobi vse potrebne podatke o
kupcu in o ceni naročila. Naročilo mora biti v predpisani XML obliki (Točka 3:
Specifikacija XML oblike naročila).
Moneta s klicem ponudnikovih spletnih skript potrditev.asp potrdi naročilo, kar pomeni,
da je Moneta uspešno prevzela ponudnikovo XML obliko naročila. Moneta klicu
ponudnikovih plačljivih strani (narocilo.asp ter potrditev.asp) posreduje podatek
ConfirmationID, ki je ključnega pomena pri transakciji. Podatek ConfirmationID je
povezava do posameznega naročila v ponudnikovi lokalni podatkovni bazi. Odzivni čas
ponudnikovih plačljivih strani mora biti krajši od 60 sekund.
Vsebina datoteke ZIP, ki vsebuje izvorno kodo testnega primera Monetine
storitve:
narocilo.asp – Moneta s klicem teh spletnih skript prevzame XML obliko
naročila od ponudnika.
potrditev.asp – Moneta s klicem teh spletnih skript potrdi prevzem XML oblike
naročila.
index.asp – Začetna stran naročila.
Prodaja nepremičnin na mobilni platformi Android Stran 31
saveorder.asp – Funkcije za kreiranje XML oblike naročila ter zapis naročila v
podatkovno bazo.
ADODBFunctions.asp – Funkcije za dostop do podatkovne baze.
Prodaja nepremičnin na mobilni platformi Android Stran 32
6 Poslovni proces prodaje/nakupa nepremičnine
Poslovni proces nakupa nepremičnine, ki je glavni poslovni proces naše storitve.
Razbili smo ga na tri podprocese: iskanje nepremičnine, izbira nepremičnine in nakup
nepremičnine. Proces nakupa nepremičnine je prikazan z BPMN diagramom na Slika
6-1.
Slika 6-1 Poslovni proces nakupa nepremičnine
Proces je iz tega vidika enostaven in prehaja iz iskanja nepremičnin v izbiro
nepremičnine in nato v nakup nepremičnine. Podproces nakupa nepremičnine ni
aplikativno podprt zaradi kompleksnosti, ki je posledica vpletenosti več akterjev (kupec,
agent, nepremičninska agencija, drţavne institucije), je pa opisan in prikazan v poslovnem
diagramu.
6.1 Iskanje nepremičnine
Iskanje nepremičnin je prvi podproces pri poslovnem procesu nakupa nepremičnine in
se začne s tem, da uporabnik zaţene aplikacijo ter prične z iskanjem. Uporabnik si mora
vnesti nastavitve iskanja in prikaza ali uporabiti privzete vrednosti. Mobilna naprava si
nato pridobi lokacijo naprave. V primeru neuspešnega pridobivanja pride do napake.
Naslednji korak je pošiljanje nastavitev iskanja in lokacije na streţnik. Tam se podatki
Prodaja nepremičnin na mobilni platformi Android Stran 33
obdelajo in vrnejo rezultati. Odjemalec nato rezultate prikaţe. Proces je prikazan z BPMN
diagramom na Slika 6-2.
Slika 6-2 Potek iskanja nepremičnine pri uporabi mobilne aplikacije
Prodaja nepremičnin na mobilni platformi Android Stran 34
6.2 Izbira nepremičnine
Podproces izbira nepremičnine je nadaljevanje procesa nakupa nepremičnine in
predvideva, da je ob začetku iskanje nepremičnin končano. Uporabnik lahko pregleda
seznam nepremičnin in se nato odloči za posamezno nepremičnino. Za naslednji korak ima
uporabnik dve moţnosti. Lahko uporabi storitev Moneta, ki mu priskrbi dodatne podatke o
nepremičnini, in si jo ogleda ali pa pokliče nepremičninskega agenta. Ta mu priskrbi
dodatne podatke in z njim opravi ogled. V primeru, da se uporabnik ne odloči za
nepremičnino, se vrne na pregled nepremičnin in proces ponovi. Če pa je nepremičnina
ustrezna, se podproces zaključi. Proces prikazuje Slika 6-.
Slika 6-3 Poslovni proces izbire nepremičnine
6.3 Nakup nepremičnine
Postopek nakupa nepremičnine se začne s pogajanjem kupca in prodajalca glede cene.
Ko se sporazumeta glede cene, se prodajalec in kupec dobita v agentovi pisarni, kjer se
dogovorijo o vseh podrobnostih glede prodaje in prodajne pogodbe. Posrednik strankam
razloţi postopek prodaje ( podpis pogodbe, prijava pogodbe na DURS, notarska overitev,
primopredaja) in pravno stanje nepremičnine. Dogovorijo se o načinu plačila kupnine,
določijo čas primopredaje, se dogovorijo o morebitnih premičninah, ki ostanejo v
Prodaja nepremičnin na mobilni platformi Android Stran 35
nepremičnini, o stroških, ki nastanejo pri prenosu lastništva in katera stranka jih plača. Vse
kar se dogovorijo, skupaj s podatki kupca in prodajalca, posrednik dostavi pravniku, ki
pripravi prodajno pogodbo.
Ko je pogodba pripravljena, se posrednik dogovori za podpis le-te. Ob podpisu pogodbe
kupec običajno plača aro.
Po podpisu prodajne pogodbe, posrednik odnese pogodbo na davčno upravo, kjer se
odmeri davek na promet nepremičnin v višini dveh procentov.
Določi se termin pri notarju, kjer kupec overi podpis na prodajni pogodbi. Po notarski
overitvi se plača preostanek kupnine in naredi primopredaja. Posrednik popiše vse števce,
preveri, če so plačani vsi stroški in če je nepremičnina v pogodbi v dogovorjenem stanju.
S primopredajo je posel zaključen. [29] Proces prikazuje Slika 6-4.
Prodaja nepremičnin na mobilni platformi Android Stran 36
Slika 6-4 Poslovni proces nakupa nepremičnine
Prodaja nepremičnin na mobilni platformi Android Stran 37
7 Funkcionalnosti
7.1 Uporaba aplikacije
Aplikacija je naravnana tako, da je za uporabnika čim bolj enostavna in logična za
uporabno. Uporabnik ob zagonu aplikacije pride v glavni meni, kjer ima na izbiro: iskanje,
iskanje celotne ponudbe, nastavitve iskanja in nastavitve prikaza rezultatov. Na zaslonu
nastavitev prikaza rezultatov lahko nastavlja različne moţnosti o tem, kako se mu bodo
vrnjeni rezultati prikazali. Na zaslonu si lahko uporabnik nastavi iskanje, ki omogoča
izbiro kriterijev, po katerih ţeli iskati nepremičnino. Funkcionalnost celotne ponudbe nam
vrne celotno ponudbo nepremičnin, ki so v sistemu, a je ob tem nameščena količinska
omejitev. Prvi prikazi se nanašajo na ponudbe, ki so najbliţji lokaciji uporabnika
aplikacije. Iskanje stranki vrne rezultate po kriterijih, ki si jih je nastavila na zaslonu
nastavitve iskanja. V primeru, da uporabnik ne vnese nastavitev, aplikacija išče po
privzetih nastavitvah. Za delovanje aplikacije mora imeti uporabnik dostop do interneta,
bodisi preko GSM/UMTS signala ali brezţičnega interneta. Natančnost iskanja dodatno
izboljša omogočen GPS signal.
Prodaja nepremičnin na mobilni platformi Android Stran 38
7.2 Primeri uporabe
7.2.1 Primeri uporabe: spletni odjemalec
Slika 7-1 Primeri uporabe spletnega odjemalca
Dodajanje agencij
Za dodajanje agencij se mora uporabnik prijaviti z uporabniškim imenom, tipa
administrator agencije, da ima primerne pravice dodajati novo agencijo. Z dodajanjem
agencije so mišljene nove poslovalnice, ki jih bo agencija v bodoče odprla ali spremenila.
Prav tako ima uporabnik tipa administrator agencije pravico dodajati nepremičninske
agente in nepremičnine.
Dodajanje agentov
Za dodajanje nepremičninskih agentov se mora uporabnik prijaviti vsaj s pravicami
administratorja poslovalnice. Uporabnik ima nato moţnost, da vstavi podatke za vnos
novega agenta. Uporabnik lahko dodaja le agente za agencijo, ki ji pripada.
Prodaja nepremičnin na mobilni platformi Android Stran 39
Dodajanje nepremičnin
Nepremičnine lahko dodajajo vsi uporabniki, ki se lahko prijavijo v sistem. Tukaj lahko
uporabnik izpolni novo nepremičnino in jo doda v bazo podatkov. Uporabnik vsaj s
pravicami administratorja poslovalnice lahko dodaja nepremičnine za vsakega
nepremičninskega agenta. Uporabniki z uporabniškim dostopom tipa nepremičninski agent
imajo pravico dodajati nepremičnine samo v svoj skupek in ne v bazo drugih agentov.
7.2.2 Primeri uporabe: mobilni odjemalec
Slika 7-2 Primeri uporabe mobilnega odjemalca
Dodajanje nepremičnin
Nepremičnine lahko dodajajo nepremičninski agentje, ki so prijavljeni s svojim
uporabniškim imenom. Vnesejo podatke v uporabniški vmesnik ter dodajo slike. Dodajajo
lahko le nepremičnine v lastni spisek nepremičnin.
Prodaja nepremičnin na mobilni platformi Android Stran 40
Iskanje nepremičnin
Ob uporabi iskanja nepremičnin nastavimo atribute nastavitev iskanja in nastavitve
prikaza (lahko se uporabijo tudi privzete vrednosti). Lokacija uporabnika se zgodi v
ozadju. Na pridobivanje lokacije ga opozori le znak za sistem GPS v operacijskem sistemu
Android. Uporabnik lahko nato išče nepremičnine iz seznama rezultatov.
Pridobivanje podatkov lokacije
Mobilna naprava ob začetku izvajanja iskanja pošlje poizvedbo za pridobitev
geolokacijskih koordinat. Te podatke pridobi s sistemom GPS ali pa z določitvijo lokacije
glede na bazne postaje.
Nastavitve prikaza
Uporabnik ima moţnost izbire nastavitev kako in koliko rezultatov mu odjemalec
prikaţe.
Nastavitve iskanja
Moţnosti izbire atributov iskanja, ki kasneje vplivajo na vrnjene rezultate.
7.3 Arhitekturni diagram
Slika 7-3 prikazuje arhitekturo naše aplikacije. Gre za tri-slojno arhitekturo. Spletni in
Android odjemalec sta predstavnika predstavitvenega sloja. Ta zajema grafični vmesnik,
logiko grafičnega vmesnika za komunikacijo s streţnikom s spletno storitvijo REST.
Dodatno mobilni odjemalec za razliko od spletnega odjemalca vsebuje tudi logiko za
pridobitev lokacije.
Streţnik predstavlja logični sloj, ki odgovarja na zahtevke odjemalcev in pošilja
poizvedbe na persistenčni sloj s pomočjo tehnologije ADO.NET.
Prodaja nepremičnin na mobilni platformi Android Stran 41
Podatkovna baza predstavlja persistenčni sloj, kjer so shranjeni vsi podatki o prodaji
nepremičnin. Podatki se vpisujejo in berejo.
deployment Arhitekturni diagram
«device»
mobilna naprav a z operacijskim
sistemom Android
«device»
Računalnik
Mobilni odjemalec
Spletni odjemalec
«device»
Aplikacijski Strežnik
Prodaja
nepremičnin
strežnik
«device»
Podatkov ni strežnik
«Database»
Prodaja
nepremičnin
podatkov na
baza
«REST
service»
«REST
service»
«ADO.NET»
Slika 7-3 Arhitekturni diagram sistema – tri slojna arhitektura
7.4 Razvoj strežnika
Streţnik je razvit v razvojnem okolju Visual Studio 2010. Sestavljajo pa ga tri glavne
tehnologije: Rest storitev za komunikacijo z odjemalcem, ADO.NET za povezavo med
spletno storitvijo in podatkovno bazo ter razvoj spletnega streţnika REST in podatkovna
baza Microsoft SQL EXPRESS.
Prodaja nepremičnin na mobilni platformi Android Stran 42
Slika 7-4 Visual Studio 2010: izbira WCF REST service projekta
Razvoj spletne storitve REST smo začeli s tem, da smo uporabili »template« v Visual
Studiu 2010, in sicer WCF REST Service Aplication. Ta nam je omogočil laţje delo z
avtomatiziranim lovljenjem http-klicev. Ponudi nam tudi dodatne knjiţice, ki nam olajšajo
implementacijo spletnih storitev REST in generira metode, ki so podprte v REST
standardu: POST, PUT, GET. Glavna naloga je bilo načrtovanje dveh metod, in sicer PUT
in POST.
PUT metoda se uporablja za pridobivanje iskalnih rezultatov. Odjemalec pošlje
nastavitve iskanja, ki jih prejme POST, jih obdela in posreduje rezultate, ki jih vrača
logika.
[WebInvoke(UriTemplate = »{id}«, Method = »PUT«)]
public RezultatiKiJihVrnemoNaTelefon Update(string id, WcfRestServiceNastavitev
nastavitevIskanja)
{
Povezava povezava = new Povezava();
Prodaja nepremičnin na mobilni platformi Android Stran 43
nastavitve = new Nastavitve(nastavitevIskanja.Razdalja, nastavitevIskanja.tipNepremicnine,
nastavitevIskanja.TipProdaje, nastavitevIskanja.SteviloSob, nastavitevIskanja.Kvadratura,
nastavitevIskanja.Cena, nastavitevIskanja.dlang, nastavitevIskanja.dlong);
RezultatiKiJihVrnemoNaTelefon rezultatiKiJihVrnemoNaTelefon = new
RezultatiKiJihVrnemoNaTelefon();
rezultatiKiJihVrnemoNaTelefon = povezava.isci(nastavitevIskanja,
rezultatiKiJihVrnemoNaTelefon);
return rezultatiKiJihVrnemoNaTelefon;
}
Primer kode 7-1 Metoda PUT v rest streţniku
Metoda POST bi se uporabljala pri vnašanju nepremičnin s strani agentov z aplikacijo
na telefonu. Agent bi poslal podatke o nepremičnini in svoje avtorizacijske podatke, nakar
bi streţnik preveril avtorizacijo in dodal nepremičnino v ponudbo. V nasprotnem primeru
pa bi vračal napako.
[WebInvoke(UriTemplate = »«, Method = »POST«)]
public WcfRestServiceNastavitev Create(PodatkiOnoviNepremicnini
podatkiOnoviNepremicnini, AvtorizacijskiPodatki avtorizacijskiPodatki)
{
If(avtorizacijskiPodatkiOK(avtorizacijskiPodatki)
{
dodajNepremicninoVponudbo(podatkiOnoviNepremicnini);
}
else {
throw new NapakaPriAvtorizacijiException();
}
}
Prodaja nepremičnin na mobilni platformi Android Stran 44
Primer kode 7-2 Metoda POST v rest streţniku
Storitve REST nam ponujajo dva načina za pošiljanje podatkov do storitve.
Prvi način je, da dobimo argumente neposredno iz URL-naslova in ima http-telo
sporočila prazno. Drugi način je, da metoda prejme objekt, ki je vsebovan v telesu http-
sporočila kot XML-serializacija razreda. Slednjo smo uporabili za sprejemanje podatkov
od odjemalca.
Za klic HTTP GET se uporabi atribut »WebGet«. Za klice HTTP PUT, POST in
DELETE pa se uporablja atribut »WebInvoke«. Parametri atributov določijo, katera http-
metoda naj se proţi in na katerem naslovu je metoda storitve REST. Ta ima dodan atribut
»ServiceBehavior«. Da bi storitev lahko namestili na spletni streţnik, smo spremenili še
končno točko storitve. To smo nastavili v datoteki Global.asx s tem, da smo nastavili
»ServiceRoute«. Glej primer kode 7-3.
private void RegisterRoutes()
{
RouteTable.Routes.Add(new ServiceRoute("IskanjeNepremicnin", new
WebServiceHostFactory(), typeof(IskanjeNepremicninRestService)));
}
Primer kode 7-3 Nastavitev poti REST streţnika
Nadaljevali smo s povezovanjem na podatkovno bazo, za kar smo uporabili ADO.NET.
V projekt smo dodali ADO.NET entitetno-relacijski model (ang: ADO.NET Entity Data
Model) (Slika 7-6). Izdelali smo entiteto relacijski model v Visual studio (slika 7-5).
Izkoristili smo zmoţnost orodja, da smo z njim ustvarili povezavo na podatkovno bazo
Microsoft SQL EXPRESS 2008, katero je shranil v projektni web.config. Orodje nam je
znalo iz entitetno-relacijskega modela izdelati datoteko entitetnoRelacijskiModel.sql, ki
vsebuje SQL izraze potrebne za izdelavo tabel in relacij med njimi. To datoteko smo
Prodaja nepremičnin na mobilni platformi Android Stran 45
uporabili v programu SQL management studio, ki nam je pripravil vse potrebno, da smo
lahko začeli uporabljati našo podatkovno bazo.
Slika 7-5 ADO.NET entitetno-relacijski model
Slika 7-6 Dodajanje ADO.NET komponente v projekt
Prodaja nepremičnin na mobilni platformi Android Stran 46
Delo s podatki iz baze je s pomočjo ADO.NET enako kot delo z objekti programskega
jezika c#.
public List<WcfNepremicnina> vrniVseNepremicnine()
{
List<WcfNepremicnina> list = new List<WcfNepremicnina>();
list = null;
foreach(WcfNepremicnina nep in nepremicnineVbazi.nepremicnina)
{
list.Add(nep);
}
return list;
}
Primer kode 7-4 Dostop do podatkov v podatkovni bazi
S tem smo naredili definicijo storitve z našim vmesnikom, implementirali rešitev in
nastavili pravilno vezavo. Vse smo imeli pripravljeno za namestitev storitve REST na
streţniku IIS. Po namestitvi smo lahko do storitve dostopali preko naslova
»http://localhost:51944/IskanjeNepremicnin/« .
7.5 Razvoj spletnega odjemalca
Spletni odjemalec je v osnovi spletna stran s podobno funkcionalnostjo kot Android
odjemalec, le da ponuja drugačno uporabniško izkušnjo, ki pa je za uporabnike bolj
optimalna. V mislih imamo predvsem delavce v nepremičninskih agencijah, ki so
odgovorni za vnašanje nepremičnin, ali pa nepremičninske posrednike. Prav tako imamo v
mislih posameznike, ki bi raje dodali nepremičnino preko spletnega vmesnika, ker nudi
bolj udobno vnašanje podatkov preko večjega zaslona in tipkovnice kot pa mobilne
aplikacije.
Spletna stran je razvita v ASP.NET tehnologiji v Visual studio 2010.
Prodaja nepremičnin na mobilni platformi Android Stran 47
Aplikacija ima sistem za prijavo, s katerim se dodeli pravica do funkcionalnosti, ki pa je
odvisna od vsakega uporabnika zase. Agencija je uporabnik, ki ima dostop nad polno
funkcionalnostjo. Uporabnik, agencijski administrator, ima pravico dodajati agente za
nepremičninsko agencijo in vnašati nepremičnine za posamezne agente. Uporabnik,
nepremičninski agent, pa lahko vnaša svoje nepremičnine, ki jih ima v ponudbi.
Prodaja nepremičnin na mobilni platformi Android Stran 48
7.5.1 Zaslonske maske spletnega odjemalca
Slika 7-7 Dodajanje agencij v spletni vmesnik
Slika 7-7 prikazuje spletni vmesnik za dodajanje agencij. Vsebuje osnovne podatke, ki
so potrebni za predstavitev agencij.
Slika 7-8 Dodajanje agentov v spletni vmesnik
Prodaja nepremičnin na mobilni platformi Android Stran 49
Slika 7-8 prikazuje spletni vmesnik za dodajanje agentov. Vsebuje polja, ki so potrebna
za predstavitev agenta.
Slika 7-9 Dodajanje nepremičnin v spletni vmesnik kot preostali uporabniki
Slika 7-9 prikazuje spletni vmesnik za dodajanje nepremičnin, če smo v spletnega
odjemalca prijavljeni kot uporabnik sistema, ki ni nepremičninski agent. Vsebuje polja, ki
so potrebna za uspešen vnos nove nepremičnine v ponudbo nepremičnin in polje za izbiro
agenta, ki naj bo kontaktna oseba za vneseno nepremičnino.
Prodaja nepremičnin na mobilni platformi Android Stran 50
Slika 7-10 Dodajanje nepremičnin v spletni vmesnik kot nepremičninski agent
Slika 7-10 prikazuje spletni vmesnik za dodajanje nepremičnin, če smo v spletnega
odjemalca prijavljeni kot nepremičninski agent. Vsebuje polja, ki so potrebna za uspešen
vnos nove nepremičnine v ponudbo nepremičnin.
7.6 Razvoj odjemalca za Android
Razvoj odjemalca smo zasnovali čim bolj enostavno, tako da odjemalec izvaja čim
manj logike in posledično porabi manj električne energije in podaljša ţivljenjsko dobo
baterije. Odjemalčeva naloga je, da pošilja in prejema podatke in jih hkrati tudi prikazuje.
Aplikacija je zgrajena iz naslednjih sklopov:
nastavitve iskanja,
nastavitve prikaza,
iskanje nepremičnin,
o iskanje po nastavitvah iskanja in
o iskanje po celotni ponudbi,
Prodaja nepremičnin na mobilni platformi Android Stran 51
prikazovanje nepremičnin,
pridobivanje dodatnih informacij o nepremičnini,
dodajanje nepremičnin in
dodajanje agentov.
7.6.1 Nastavitve iskanja
Sklop nastavitve iskanja zajema podatke, ki sluţijo kot kriteriji za iskanje nepremičnin.
Vsak atribut predstavlja vrednost, ki jo zna streţnik uporabiti in z njo vplivati na rezultate
iskanja.
Atributi so prikazani na primeru kode.
public class NastavitveIskanja {
private double razdalja;
private String tipNepremicnine;
private int steviloSob;
private int kvadratura;
private double cena;
private String tipProdaje;
private double dLat;
private double dLong;
Primer kode 7-5 Atributi razreda nastavitve iskanja
Razdalja predstavlja oddaljenost nepremičnine od mobilnika, ki je še
sprejemljiva za iskalca nepremičnin v kilometrih.
Prodaja nepremičnin na mobilni platformi Android Stran 52
Tipnepremicnine je enumeracijski tip z moţnimi vrednostmi: stanovanje, hiša,
vikend, posest, poslovni prostor, garaţa ... Predstavlja vrsto iskane
nepremičnine.
SteviloSob predstavlja podatek za največje število sob v stanovanju (enosobno,
eno in polsobno, dvosobno … ).
Kvadratura predstavlja največjo kvadtraturo v kvadratnih metrih.
Cena predstavlja največjo ceno, ki jo je uporabnik pripravljen plačati v eurih.
TipProdaje enumracijski tip z moţnimi vrednostmi, prodaja ali najem.
Predstavlja izbiro uporabnika, ali le-ta kupuje ali hoče najeti nepremičnino.
dLat predstavlja latitudo ali ekliptično širino v ekliptičnem koordinatnem
sistemu, ki jo pridobimo s pomočjo sistema GPS ali triagulacije.
dLong predstavlja longitudo ali ekliptično dolţino, ki jo pridobimo s pomočjo
sistema GPS ali triangulacije.
Atributi so trenutno predstavljeni kot enumeracijski tipi v nastavitvi IskanjaStrings.xml,
kjer so vse moţne vrednosti atirbutov ţe definirane.
Slika 7-11 Nastavitve enumeracijskih vrednosti v Eclipse za Android
Prodaja nepremičnin na mobilni platformi Android Stran 53
V primeru nadgradnje trenutnega stanja bi bilo moţno vrednosti dobiti s streţnika, kjer
bi jih definirali in shranili tako, da ne bi potrebovali dodajati vseh moţnih vrednosti na
strani odjemalca, če bi prišlo do sprememb na strani streţnika.
Nastavitve iskanja so v sistemu predstavljene kot razred NastavitveIskanja, ki je
singelton, tako da v sistemu obstaja vedno le ena različica nastavitve, po kateri se lahko
išče.
private static final NastavitveIskanja INSTANCE = new NastavitveIskanja();
Primer kode 7-6 Singelton nastavitve iskanja
Konstruktor določa nastavitve iskanja ţe ob inicializiranju. V tem koraku nastavi iskalni
niz na privzete vrednosti iskanja, ki veljajo, če jih uporabnik ne prepiše s svojimi.
Private NastavitveIskanja()
{
razdalja = 20;
tipNepremicnine = »stanovanje«;
steviloSob = 2;
kvadratura = 60;
cena = 80000;
tipProdaje = »prodaja«;
}
Primer kode 7-7 Privzeti konstruktor za nastavitve iskanja
7.6.2 Nastavitve prikaza
Nastavitve prikaza so podatki, ki sluţijo kot kriteriji za prikaz nepremičnin po
izvedenem iskanju in kasnejšem prikazu nepremičnin za uporabnika.
Atributi so prikazani na primeru kode 7-8.
Prodaja nepremičnin na mobilni platformi Android Stran 54
public class NastavitvePrikaza {
private int stNepremicninNaStran;
private boolean slikaNepremicnine;
Primer kode 7-8 Atributi nastavitve prikaza nepremičnin
stNepremicninNaStran predstavlja število nepremičnin oziroma rezultatov, ki se
prikaţejo,
slikaNepremicnine predstavlja pogoj, da mora imeti nepremičnina sliko, če je
nima se te nepremičnine ne prikaţejo.
Nastavitve prikaza so v sistemu predstavljene kot razred NastavitvePrikaza, ki je
singelton in se inicializira ob zagonu programa, lahko pa jih uporabnik spreminja skozi
uporabniški vmesnik NastavitvePrikaza v grafičnem vmesniku.
Private static final NastavitvePrikaza INSTANCE = new NastavitvePrikaza();
private NastavitvePrikaza() {
stNepremicninNaStran = 5;
slikaNepremicnine = false;
}
Primer kode 7-9 Privzeti konstruktor nastavitve prikaza in singleton.
7.6.3 Pridobivanje podatkov o lokaciji na telefonu
Pridobivanje lokacije na napravi Android je dokaj enostavno, saj je v knjiţnico ţe
vključena podpora za pridobivanje lokacijskih podatkov iz GPS-naprave. Te pridobimo
preko razreda LocationManager, kot je prikazano na primeru kode 7-10. Temu razredu
podamo, katero storitev naj uporablja (LOCATION_SERVICE) in katerega ponudnika
(GPS_PROVIDER).
LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
Prodaja nepremičnin na mobilni platformi Android Stran 55
LocationListenerGPS locationListenerGPS = new LocationListenerGPS();
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 10, 10,
locationListenerGPS);
Primer kode 7-10 Koda za nastavitev GPS-poslušalca na napravi Android
Temu razredu moramo nastaviti še poslušalca. To je razred, ki implementira vmesnik
LocationListener.
Ta vmesnik nam ponuja metode, ki se sproţijo, ko se spremeni lokacija
(onLocationChanged), ko uporabnik izklopi ali vklopi GPS-ponudnika
(onProviderDisabled, onProviderEnabled) in ko se spremeni stanje GPS-ponudnika
(onStatusChanged). Najpomembnejša je metoda, ki se proţi ob spremembi lokacije, kjer
smo implementirali klice spletne storitve s pomočjo pomoţnega razreda
RestServiceConnector. RestServiceConnector smo klicali v metodi sendRest, kjer tudi
sestavimo XM-zapis lokacije. To je vse, kar moramo storiti za pridobivanje in pošiljanje
lokacije z uporabo GPS naprave.
Druga dva načina, ki uporabljata telefonske oddajnike, smo naredili na podoben način.
Android API nam ponuja razred TelephonyManager, ki se uporablja podobno kot
LocationManager, le da ta ponuja podatke o storitvah na telefonu. Med temi storitvami je
tudi tista za pridobivanje podatkov o mobilnem omreţju. Razredu TelephonyManager
moramo seveda podati tudi poslušalca, ki se bo sproţil ob spremembah omreţja. Kako se
to naredi, prikazuje primer kode 7-11.
OpenCellId.TelephonyManager tm =
(TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
tm.listen( new MyPhoneStateListener(), PhoneStateListener.LISTEN_SERVICE_STATE);
Primer kode 7-11 Koda za nastavite poslušalca storitev telefona
7.6.4 Iskanje nepremičnin
Iskanje nepremičnin predstavlja glavno funkcionalnost aplikacije.
Sklop iskanje nepremičnin izbere vse potrebne podatke, ki smo jih opisali v prejšnjih
poglavjih in jih predela v pravo obliko za uporabo v REST storitvi. Uporabimo XML
Prodaja nepremičnin na mobilni platformi Android Stran 56
prevajalnik (XML parser), ki pomaga pri preoblikovanju nastavitev iskanja v obliko XML,
s katero bo razumljivejša našemu RESTful streţniku.
RestServiceConnector restServiceConnector = new RestServiceConnector("NaslovStrežnika");
Primer kode 7-12 Povezava na rest storitev
Po poslanem zahtevku na streţnik čaka na rezultate. Ko jih prejme, jih ponovno obdela,
v zadnjem koraku pa jih prikaţe po nastavitvah prikaza.
7.6.5 Iskanje po celotni ponudbi
Iskanje po celotni ponudbi je podoben postopek kot iskanje nepremičnin, le da tukaj na
streţnik pošljemo dogovorjene nastavitve za celotno ponudbo.
Ob izbiri iskanja celotne ponudbe se pokliče metoda setCelotnaPonudbaNastavitve().
public void setCelotnaPonudbaNastavitve(){
razdalja = 20;
tipNepremicnine = "all";
steviloSob = Integer.MAX_VALUE;
kvadratura = Integer.MAX_VALUE;
cena = Double.MAX_VALUE;
tipProdaje = "all";
}
Primer kode 7-13 Nastavitve atributov ob iskanju celotne ponudbe
Te vrednosti streţnik prepozna, kot privzete vrednosti za celotno ponudbo. Omeji se le
pri razdalji, da vrača rezultate v oddaljenosti dvajset kilometrov. S tem omejimo
obremenjenost streţnika. Vrednosti so dogovorjene s strani streţniške aplikacije.
Prodaja nepremičnin na mobilni platformi Android Stran 57
7.6.6 Dodajanje nepremičnin
Dodajanje nepremičnin je funkcionalnost, ki je namenjena nepremičninskim agentom
ali posameznikom, ki bi radi dodali nepremičnino preko mobilne aplikacije. Aplikacija
nam omogoča, da vnesemo zahtevane podatke, ki smo jih opisali pri opisu nastavljanja
nastavitev iskanja. Izberemo sliko nepremičnine. Vnesti je potrebno tudi naslov
nepremičnine, preko katerega bo GPS pridobil lokacije s strani streţnika. Obstaja moţnost,
da bi se lahko storitev z uporabo Monete zaračunala, saj bi kot trţna niša omogočala
prodajalcem nepremičnin določeno prednost. Ta prednost je predvsem vidna za
nepremičninske agente, ki so lahko tudi po cele dneve na terenu in s tem izgubljajo
potencialne stranke. Naša aplikacija omogoča takojšen in enostaven vnos nepremičnin.
Podatki se preko REST storitve PUT pošljejo na streţnik, kjer so obdelani in ob
ustreznosti podatkov se le-ti shranijo v podatkovno bazo nepremičnin.
Prodaja nepremičnin na mobilni platformi Android Stran 58
7.6.7 Zaslonske maske mobilne aplikacije:
Slika 7-12 Zaslonska maska sistema android v meniju aplikacij z našo aplikacijo
Slika 7-13 Zaslonska maska vstopnega menija in navigacije funkcionalnosti
Prodaja nepremičnin na mobilni platformi Android Stran 59
Slika 7-14 Zaslonska maska prikaza nepremičnin pokončno
Slika 7-15 Zaslonska maska prikaza nepremičnin leţeče
Prodaja nepremičnin na mobilni platformi Android Stran 60
Slika 7-16 Zaslonska maska prikaza podrobnosti nepremičnine
Slika 7-17 Zaslonska maska prikaza nastavitev iskanja
Prodaja nepremičnin na mobilni platformi Android Stran 61
8 Sklep
V diplomskem delu smo opisali moţnost iskanja informacij o nepremičninah s pomočjo
pametnih telefonov z operacijskim sistemom Android, spletnih storitev, tehnologijami za
pridobitev lokacije in uporabo sistema Monete.
Podrobneje smo opisali programsko rešitev, ki smo jo implementirali. Našo rešitev
sestavljajo naslednje komponente:
mobilni odjemalec,
spletni odjemalec,
storitveni streţnik in
podatkovni streţnik.
Mobilni odjemalec je Android mobilna aplikacija, s katero smo pokazali, da jo je
enostavno podpreti z vsemi funkcionalnostmi, ki jih omogočajo trenutni spletni iskalniki
nepremičnin. Prav tako smo prikazali uporabo lokalizacijskih tehnologij, ki smo jih
uporabili pri iskanju nepremičnin s pomočjo geolokacijskih koordinat. Prikazali smo tudi
uporabo spletnih storitev REST za iskanje nepremičnin in uporabo sistema Moneta, kot
sredstvo za plačevanje dodatnih informacij o nepremičnini.
Na streţniški strani smo razvili streţniški program za prodajo nepremičnin in prikazali
kako ponuditi REST storitve na platformi .NET. Enostavnost postopka smo ponazorili z
uporabo Windows REST foundation programskega vzorca in ga razširili z rešitvijo storitve
za iskanje nepremičnin in ostalih poslovnih storitev. Pokazali smo tudi kako enostavno
povezati aplikativni in podatkovni streţnik s pomočjo tehnologije ADO.NET, ki nam
ponuja enostavno povezavo med objektno kodo in shranjenimi podatki na praktičnem
primeru prodaje nepremičnin.
S spletnim odjemalcem smo prikazali spletno stran razvito v ASP.NET, ki se povezuje
na REST-storitve s strani streţniške aplikacije. Njen grafični vmesnik omogoča
Prodaja nepremičnin na mobilni platformi Android Stran 62
enostavnejše dodajanje in urejanje vsebin za katere je odgovorna nepremičninska agencija
kot bi to lahko urejal mobilni odjemalec.
Kot smo predstavili, je razvoj streţnika in različnih odjemalcev s strani tehnologij
enostaven in hiter, ne omejujejo ga različne programske platforme, ob enem pa omogoča
razvijalcu, da se ukvarja s poslovno idejo in ne z razvojnimi ogrodji.
Prodaja nepremičnin na mobilni platformi Android Stran 63
9 Viri
1. Leonard Richardson, Sam Ruby , RESTful web services, O'reilly maj 2007, prva
izdaja
2. Ed Burnette, Hello, Android, julij 2010, tretja izdaja
3. Joshua Bloch, Effective Java: Programming language guide, Sun microsystems,
november 2001
4. Uradna Android stran za razvijalce http://developer.android.com/, zadnji dostop:
september 2011
5. Open Handset Alliance http://www.openhandsetalliance.com/, zadnji dostop:
september 2011
6. Google maps api http://code.google.com/intl/sl-SI/apis/maps/, zadnji dostop: oktober
2011
7. Google geocoding api http://code.google.com/intl/sl-
SI/apis/maps/documentation/geocoding/index.html, zadnji dostop: november 2011
8. Google api za Android http://code.google.com/intl/sl-SI/android/add-ons/google-
apis/index.html, zadnji dostop: oktober 2011
9. Eclipse http://www.eclipse.org/, zadnji dostop: avgust 2011
10. Android SDK http://developer.android.com/sdk/index.html, zadnji dostop: julij 2011
11. RESTful orientiran Wiki http://rest.blueoxen.net/cgi-bin/wiki.pl, zadnji dostop:
avgust 2011
12. Moneta http://www.moneta.si/, zadnji dostop: september 2011
13. Tomaţ Ţveglič, Moneta internet, priročnik za uporabnike vsebin, različica 1.1,
2.12.2004
14. Tomaţ Ţveglič, Moneta internet nakup – Implementacija Monetine storitve nakup v
ponudnikove spletne strani, različica 1.0.4, avgust 2007
15. Knjiţnica za dodatne Google maps funkcionalnosti,
http://home.ameliemedia.com/android-app-aroundme/#tips, zadnji dostop: julij 2011
Prodaja nepremičnin na mobilni platformi Android Stran 64
16. Osnove Android aplikacij
http://developer.android.com/guide/topics/fundamentals.html, zadnji dostop:
september 2011
17. Android Emulator
http://developer.android.com/guide/developing/tools/emulator.html, zadnji dostop:
julij 2011
18. Android virtualna naprava, http://jaxenter.com/android-dalvik-virtual-machine-
35498.html, zadnji pristop junij 2011
19. Tomaţ Pihlar, Razvoj odprtega sistema za mobilno plačevanje, maj 2006
20. Leonard Richardson & Sam Ruby RESTful Web Services, , maj 2007
21. Marshall Brain, Tom Harris: How GPS Recivers work,
http://www.howstuffworks.com/gadgets/travel/gps.htm
22. Joe Mayo, Microsoft Visual Studio 2010: A Beginner's Guide, 2010
23. Razvoj prodaje nepremičnin, http://www.inman.com/news/2011/05/3/real-estates-
tech-evolution-social-mobile-miniature, zadnji pristop: september 2011
24. REST arhitektura https://cwiki.apache.org/WINK/1-introduction-to-apache-
wink.data/REST%20Web%20Service.jpg, zadnji pristop: avgust 2011
25. Delovanje GPS, http://www.fleettrackingguide.com/gps-fleet-tracking-technologies-
gps/, zadnji pristop: avgust 2011
26. Android telefoni, http://www.andro-phones.com, , zadnji pristop: september 2011
27. Presence Protocol (XMPP), http://code.google.com/apis/talk/, , zadnji pristop:
september 2011
28. Google maps Geocoding API
http://code.google.com/apis/maps/documentation/geocoding/index.html, , zadnji
pristop: november 2011
29. Voršič, Mateja. 2011. Intervju z nepremičninskim agentom. Maribor, 15. avgust
2011
30. A-GPS http://gps.about.com/od/glossary/g/A-GPS.htm, zadnji pristop: oktober 2011
Prodaja nepremičnin na mobilni platformi Android Stran 65
31. Google Maps Javascript API V3 Services, http://code.google.com/intl/sl-
SI/apis/maps/documentation/javascript/services.html#Geocoding, zadnji pristop:
oktober 2011
32. Damjan Andrej Veselko, Mobilni plačilni sistemi in bančništvo, Koper, 2007
33. Informacijska borza nepremičnin, http://www.ibn.si/articles/detail/5093, zadnji
pristop december 2011
Prodaja nepremičnin na mobilni platformi Android Stran 66
10 Priloge
10.1 Kazalo slik
SLIKA 2-1 ANDROID MARKET .................................................................................................................................... 5
SLIKA 2-2 ANDROID EMULATOR ................................................................................................................................ 7
SLIKA 3-1 ARHITEKTURA REST STORITEV [24] ............................................................................................................. 9
SLIKA 5-1 TABELA V PONUDNIKOVI PODATKOVNI BAZI. IME TABLELE: MONETA .............................................................. 22
SLIKA 5-2 DIAGRAM AKTIVNOSTI SPLETNIH SKRIPT NAKUP.ASP ...................................................................................... 24
SLIKA 5-3 DIAGRAM AKTIVNOSTI SPLETNIH SKRIPT POTRDITEV.ASP ................................................................................. 26
SLIKA 5-4 DIAGRAM ZAPOREDJA POTEKA NAKUPA Z SISTEMOM MONETA ........................................................................ 28
SLIKA 6-1 POSLOVNI PROCES NAKUPA NEPREMIČNINE ................................................................................................. 32
SLIKA 6-2 POTEK ISKANJA NEPREMIČNINE PRI UPORABI MOBILNE APLIKACIJE .................................................................... 33
SLIKA 7-1 PRIMERI UPORABE SPLETNEGA ODJEMALCA.................................................................................................. 38
SLIKA 7-2 PRIMERI UPORABE MOBILNEGA ODJEMALCA ................................................................................................ 39
SLIKA 7-3 ARHITEKTURNI DIAGRAM SISTEMA – TRI SLOJNA ARHITEKTURA ........................................................................ 41
SLIKA 7-4 VISUAL STUDIO 2010: IZBIRA WCF REST SERVICE PROJEKTA ......................................................................... 42
SLIKA 7-5 ADO.NET ENTITETNO-RELACIJSKI MODEL ................................................................................................... 45
SLIKA 7-6 DODAJANJE ADO.NET KOMPONENTE V PROJEKT ......................................................................................... 45
SLIKA 7-7 DODAJANJE AGENCIJ V SPLETNI VMESNIK ..................................................................................................... 48
SLIKA 7-8 DODAJANJE AGENTOV V SPLETNI VMESNIK ................................................................................................... 48
SLIKA 7-9 DODAJANJE NEPREMIČNIN V SPLETNI VMESNIK KOT PREOSTALI UPORABNIKI ....................................................... 49
SLIKA 7-10 DODAJANJE NEPREMIČNIN V SPLETNI VMESNIK KOT NEPREMIČNINSKI AGENT .................................................... 50
SLIKA 7-11 NASTAVITVE ENUMERACIJSKIH VREDNOSTI V ECLIPSE ZA ANDROID ................................................................. 52
SLIKA 7-12 ZASLONSKA MASKA SISTEMA ANDROID V MENIJU APLIKACIJ Z NAŠO APLIKACIJO ................................................ 58
SLIKA 7-13 ZASLONSKA MASKA VSTOPNEGA MENIJA IN NAVIGACIJE FUNKCIONALNOSTI ...................................................... 58
SLIKA 7-14 ZASLONSKA MASKA PRIKAZA NEPREMIČNIN POKONČNO ................................................................................ 59
SLIKA 7-15 ZASLONSKA MASKA PRIKAZA NEPREMIČNIN LEŽEČE ...................................................................................... 59
SLIKA 7-16 ZASLONSKA MASKA PRIKAZA PODROBNOSTI NEPREMIČNINE .......................................................................... 60
Prodaja nepremičnin na mobilni platformi Android Stran 67
SLIKA 7-17 ZASLONSKA MASKA PRIKAZA NASTAVITEV ISKANJA ....................................................................................... 60
10.2 Kazalo primerov kode
PRIMER KODE 4-1 PRIMER UPORABE GOOGLE GEOCODING API [26] ............................................................................. 14
PRIMER KODE 7-1 METODA PUT V REST STREŽNIKU ................................................................................................... 43
PRIMER KODE 7-2 METODA POST V REST STREŽNIKU ................................................................................................. 44
PRIMER KODE 7-3 NASTAVITEV POTI REST STREŽNIKA ................................................................................................. 44
PRIMER KODE 7-4 DOSTOP DO PODATKOV V PODATKOVNI BAZI ..................................................................................... 46
PRIMER KODE 7-5 ATRIBUTI RAZREDA NASTAVITVE ISKANJA .......................................................................................... 51
PRIMER KODE 7-6 SINGELTON NASTAVITVE ISKANJA .................................................................................................... 53
PRIMER KODE 7-7 PRIVZETI KONSTRUKTOR ZA NASTAVITVE ISKANJA ............................................................................... 53
PRIMER KODE 7-8 ATRIBUTI NASTAVITVE PRIKAZA NEPREMIČNIN ................................................................................... 54
PRIMER KODE 7-9 PRIVZETI KONSTRUKTOR NASTAVITVE PRIKAZA IN SINGLETON. ............................................................... 54
PRIMER KODE 7-10 KODA ZA NASTAVITEV GPS-POSLUŠALCA NA NAPRAVI ANDROID ......................................................... 55
PRIMER KODE 7-11 KODA ZA NASTAVITE POSLUŠALCA STORITEV TELEFONA...................................................................... 55
PRIMER KODE 7-12 POVEZAVA NA REST STORITEV ...................................................................................................... 56
PRIMER KODE 7-13 NASTAVITVE ATRIBUTOV OB ISKANJU CELOTNE PONUDBE................................................................... 56
Prodaja nepremičnin na mobilni platformi Android Stran 68
10.3 Naslov študenta
Osebni podatki diplomiranega študenta:
Rok Prejac
Zgornja Selnica 24 b
SI – 2352 Selnica ob Dravi
Telefonska številka: + 386 (40) 632 285
Elektronska pošta: [email protected]
10.4 Kratek življenjepis
Povzemajoči ţivljenjepis diplomiranega študenta:
Rojen: 15.09.1985, Maribor
Šolanje:
Osnovna šola Selnica ob Dravi
Srednja elektro-računalniška šola Maribor
o Matura
Fakulteta za Elektrotehniko, računalništvo in informatiko Maribor
o Univerzitetni šolski program
Prodaja nepremičnin na mobilni platformi Android Stran 69
Prodaja nepremičnin na mobilni platformi Android Stran 70
Prodaja nepremičnin na mobilni platformi Android Stran 71