razvoj mobilne reŠitve elektronskih darilnih bonovrazvoj na tehnologijah mobilne telefonije...
TRANSCRIPT
Matej Strmljan
RAZVOJ MOBILNE REŠITVE ELEKTRONSKIH DARILNIH BONOV
Diplomsko delo
Maribor, junij 2012
I
Diplomsko delo univerzitetnega študijskega programa
RAZVOJ MOBILNE REŠITVE ELEKTRONSKIH DARILNIH BONOV
Študent: Matej Strmljan
Študijski program: univerzitetni, računalništvo in informatika
Smer: informatika
Mentor: red. prof. dr. Marjan Heričko
Lektorica: Sanja Šikovec, prof. zgo. in slo.
Maribor, julij 2012
II
III
ZAHVALA
Zahvaljujem se mentorju dr. Marjanu Heričku za
vodenje in pomoč pri pisanju diplomskega dela.
Prav tako se za strokovno pomoč zahvaljujem
dr. Amorju Chowdhuryu in celotni ekipi podjetja
Margento R&D.
Prav posebno pa sem hvaležen svoji družini in
dekletu, saj so mi na poti do diplomskega dela
pomagali po svojih najboljših močeh in me na
tej poti usmerjali ter vzpodbujali.
Še enkrat hvala vsem za podporo. Brez vas mi
ne bi uspelo.
IV
RAZVOJ MOBILNE REŠITVE ELEKTRONSKIH DARILNIH BONOV
Ključne besede: modeliranje poslovnih procesov, agilne metode, SCRUM, informacijski sistem, strežniško procesiranje, BPMN. UDK:
Povzetek V diplomskem delu smo opredelili pojem mobilnega sistema darilnih bonov. Predstavili
smo rešitve in arhitekturo konkurenčnih ponudnikov sistemov elektronskih darilnih
bonov. Prav tako smo definirali arhitekturo sistema procesiranja mobilnih transakcij,
imenovanega Margento procesni sistem (MPS), in integracijo komponente darilnih
bonov v obstoječi sistem. Delovanje sistema je modelirano v notaciji BPMN za vse
poglavitne funkcionalnosti, ki so hkrati podrobno razložene. Modeliranje je pri razvoju
predstavljalo pomembno vlogo, ki je v diplomskem delu natančneje ovrednotena.
Podrobneje je opisan tudi princip agilne metode SCRUM, katerih načel smo se držali v
razvojni ekipi. Opisane so paradigme agilnega razvoja, ki smo jih modificirali za
potrebe projekta. Na podlagi projektnega vodenja smo v jeziku C++ izdelali strežniško
komponento, ki skrbi za procesiranje in upravljanje transakcij mobilnih darilnih bonov.
V
DEVELOPMENT OF AN ELECTRONIC GIFT CARD MOBILE
SOLUTION
Key words: business process modeling, agile methods, SCRUM, information system, server-side processing, Business Process Model Notation.
UDK:
Abstract
In this thesis we have defined the concept of mobile e-gift card system. We have
presented solutions and architecture of similar services. We have also defined
Margento mobile transaction system and explained integration of mobile gift system
into existing platform. Basic functionalities are more specifically explained by models
in Business Process Model Notation (BPMN). In thesis we evaluate importance of
modeling to development. In our research team we have followed the principles of agile
method SCRUM which is described in this paperwork. We have presented modifications
of agile method paradigms. On basis of our whole research we developed server-side
component in C++ programming language which manage and process gift card mobile
transactions.
VI
VSEBINA
1 UVOD ...................................................................................................................... 1
2 MOBILNI SISTEMI DARILNIH BONOV ......................................................... 5
2.1 SPLOŠNA PREDSTAVITEV DARILNIH BONOV....................................... 5
2.2 PREDNOSTI DARILNIH BONOV ................................................................. 7
2.3 POMANJKLJIVOSTI DARILNIH BONOV ................................................... 8
2.4 REŠITVE PONUDNIKOV DARILNIH BONOV ........................................... 8
2.4.1 Rešitev podjetja MBO............................................................................. 10
2.4.2 Rešitev podjetja Target Corporation...................................................... 10
2.4.3 Rešitev podjetja DoDo Mobile Technologies ......................................... 11
3 MARGENTO SISTEM MOBILNIH TRANSAKCIJ....................................... 12
3.1 PREDSTAVITEV OBSTOJEČIH KOMPONENT SISTEMA MARGENTO
15
3.2 POSTOPEK PROCESIRANJA TRANSAKCIJ............................................. 18
4 PRISTOP K RAZVOJU REŠITVE.................................................................... 21
4.1 AGILNE METODE........................................................................................ 21
4.2 SCRUM .......................................................................................................... 23
5 RAZVOJ SISTEMA DARILNIH BONOV MARGENTO............................... 26
5.1 MODELI POSLOVNIH PROCESOV MARGENTO SISTEMA DARILNIH
BONOV...................................................................................................................... 26
5.2 FUNKCIONALNOSTI SISTEMA ................................................................ 29
5.2.1 Nakup darilnih bonov ............................................................................. 29
5.2.2 Info transakcija....................................................................................... 29
5.2.3 Unovčevanje darilnih bonov................................................................... 30
5.2.4 Stornacija ............................................................................................... 30
5.2.5 Preklic transakcije.................................................................................. 31
5.3 UPORABNIŠKA IZKUŠNJA........................................................................ 31
5.3.1 Nakup darilnega bona ............................................................................ 32
VII
5.3.2 Koriščenje darilnega bona ..................................................................... 36
5.3.3 Stornacija transakcije............................................................................. 40
5.4 ANALIZA REŠITVE ..................................................................................... 42
6 SKLEP ................................................................................................................... 47
7 LITERATURA IN VIRI ...................................................................................... 48
KAZALO SLIK
Slika 1 − Število naročnikov mobilne telefonije na 100 prebivalcev (1997−2011)......... 2
Slika 2 − Odprta shema darilnih bonov............................................................................ 6
Slika 3 − Zaprta shema darilnih bonov............................................................................. 7
Slika 4 − Patentirana tehnologija prenosa podatkov ...................................................... 14
Slika 5 − Pregled platforme Margento ........................................................................... 15
Slika 6 − Pregled Margento procesnega sistema (MPS) ................................................ 20
Slika 7 − Grafični prikaz metodologije Scrum............................................................... 24
Slika 8 − Model poslovnega procesa nakupa darilnega bona......................................... 27
Slika 9 − Model poslovnega procesa koriščenja darilnega bona.................................... 28
Slika 10 − Margento mPOS terminal ............................................................................. 31
Slika 11 − Potrdilo o nakupu darilnega bona ................................................................. 36
Slika 12 − Potrdilo koriščenja darilnega bona................................................................ 39
Slika 13 − Potrdilo storno transakcije ............................................................................ 42
VIII
IX
UPORABLJENE KRATICE
BLP – Bonus Loyalty Program
BPM – Business Process Modeling
BPMN – Business Process Model and Notation
DoV – Data over Voice
ECC – Elliptic Curve Cryptography
GPRS – General Packet Radio Service
GSM – Global System for Mobile communications
IP – Internet Protocol
IT – Information Technology
MAP – Margento Access Point
MGW – MPay Gateway
MMS – Multimedia Messaging Service
MOP – Margento Online Payment
MPC – Margento Processing Center
MPG – Margento Payment Gateway
MPS – Margento Processing System
MPSA – Margento Processing System Administration
MSC – Mobile Switching Center
MSISDN – Mobile Station International Subscriber Directory Number
MTAP – Mobile Telecommunications Access Point
NE – Network Equipment
NFC – Near Field Communication
POS – Point of Sale
SMS – Short Message Service
USSD - Unstructured Supplementary Service Data
ZPS – Zveza potrošnikov Slovenije
Razvoj na tehnologijah mobilne telefonije temelječega sistema elektronskih darilnih bonov Stran 1
1 UVOD
Sistem darilnih bonov je preverjen poslovni model, ki je v zadnjih letih močno pridobil na
popularnosti in razširjenosti. Uspešnost je posledica dejstva, da imajo darilni boni določene
prednosti pred klasičnim obdarovanjem. Prejemnik bona lahko tako unovči darilni bon za
materialne dobrine in storitve, ki jih dejansko potrebuje – v kolikor ponudnik storitve to
nudi. Darilo, ki je uporabno oz. je izbrano po željah prejemnika, ima v glavnem veliko
večjo dodatno vrednost kot neuporabno darilo ali darilo, ki obdarovancu sploh ni všeč.
Prav tako je darilo v obliki darilnih bonov kljub vsemu bolj družbeno sprejemljivo in
osebno kot recimo denar. Nenazadnje je tudi valuta neke vrste darilni bon, le da je brez
vseh omejitev – trajanja, možnosti unovčevanja itd.
Darilni boni prav tako zmanjšujejo tveganje, da darilo prejemniku ne bo všeč. Tu se tako
kaže največja prednost za kupce darilnih bonov. Kljub temu se zdi, da z darilnimi boni
največ pridobijo trgovci (ponudniki storitve). V kolikor darilni bon ni izkoriščen, je to
najboljši možni scenarij za ponudnika, saj mu za vrednost bona po preteku roka ni
potrebno več nuditi storitve ali dobrin, za katere je potrošnik posredno plačal. Sistem
darilnih bonov prav tako povečuje ugled in zaupanje v blagovno znamko pri potrošnikih.
Mobilni telefoni so praktično postali naši vseprisotni in nepogrešljivi spremljevalci, saj
število uporabnikov mobilne telefonije in pripadajočih tehnologij strmo narašča [1]. Graf
na sliki 1 prikazuje število naročnikov mobilne telefonije na 100 prebivalcev med letoma
1997 in 2011.
Razvoj na tehnologijah mobilne telefonije temelječega sistema elektronskih darilnih bonov Stran 2
Število naročnikov mobilne telefonije na 100 prebivalcev 1997−2011
18
25
35
50
58
6570
77
86
93
102
1 2 3 58
1114
19
2630
39
4 58
1216
1923
28
34
42
51
0
20
40
60
80
100
120
1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007
Leto
Razvite državeDržave v razvojuSvetovno povprečje
Slika 1 − Število naročnikov mobilne telefonije na 100 prebivalcev (1997−2011)1
Z razmahom pametnih telefonov se ta trend le še zvišuje, prav tako pa se pri tem kaže
interes uporabnikov mobilnih telefonov za nove storitve in s tem povezane nove aplikacije
ter tehnologije. Zgovoren primer je uspeh mobilnega telefona Apple iPhone, ki je pri
kupcih praktično čez noč ustvaril potrebo po kupovanju aplikacij za omenjeno platformo.
Kljub padcu cen in dostopnosti pametnih mobilnih telefonov je na svetovnem tržišču še
vedno ogromna količina klasičnih mobilnih telefonov brez naprednih funkcionalnosti. Na
tem mestu pride do izraza patentirana tehnologija prenosa podatkov preko zvoka,
imenovana Margento DoV (Data-over-Voice). Omenjena tehnologija omogoča, da je
storitev Margento darilni boni možno uporabljati tako na včasih izredno priljubljenem
aparatu Ericsson GA628 kot tudi na najnovejših pametnih telefonih, neodvisno od
platforme, npr. iOS, Android, WebOS ali MeeGo, saj glasovna komunikacija predstavlja
presek prav vseh mobilnih telefonov.
Pogoj za uspešno konvergenco darilnih bonov in mobilne telefonije s stališča procesiranja
na strani strežnika je razvoj komponente, ki bo omogočala upravljanje operacij nad
darilnimi boni (nakup, poraba, stornacija, arhiviranje, poročanje itd.), temeljito testiranje
komponente in končna integracija v produkcijski sistem. Implementirana razširitev sistema
1 Vir: http://en.wikipedia.org/wiki/Mobile_phone (zadnjič obiskano 9. 6. 2012)
Razvoj na tehnologijah mobilne telefonije temelječega sistema elektronskih darilnih bonov Stran 3
darilnih bonov na področje mobilne telefonije bo torej predstavljala korist tako
potrošnikom kot tudi ponudnikom storitev.
Namen diplomskega dela je opis in predstavitev komponent sistema elektronskih darilnih
bonov ter implementacija poslovne logike sistema. Razvoj bo temeljil na uporabi agilnih
metodologij, saj zagotavljajo razvoj kakovostne programske opreme v najkrajšem možnem
času in prilagodljivost na nove spremembe [2].
Cilj je izdelava komponente, ki bo integrirana v Margento procesni sistem in bo
zagotavljala procesiranje darilnih bonov. Predvidena komponenta bo omogočala, da bo
uporabnik z mobilnim telefonom preko programsko prilagojenega Margento terminala
lahko podaril darilni bon prejemniku, ki mu pripada izbrana mobilna telefonska številka
(MSISDN − Mobile Station International Subscriber Directory Number). Prejemnik bo
preko sporočila SMS/MMS (Short Message Service/Multimedia Messaging Service)
obveščen o prejetem bonu. Darilni bon bo možno porabiti deloma ali v celoti, pri čemer je
obdarovanec o stanju na virtualnem računu obveščen po identifikaciji z mobilnim
telefonom. Implementirana rešitev mora podpirati stornacijo transakcij kot tudi preklic v
primeru nepredvidljivih napak, npr. komunikacijskih napak. Podprti morata biti tako zaprta
kot odprta shema darilnih bonov. Omogočena mora biti tudi podpora (glede na določila v
pogodbi) za avtentifikacijo s pomočjo gesla oz. številke PIN (Personal Identification
Number), kar še dodatno preprečuje morebitne nepooblaščene dostope.
V drugem poglavju diplomskega dela smo natančneje predstavili koncept darilnih bonov in
z njimi povezane dobre prakse. Opisali smo dobre in slabe lastnosti tega poslovnega
modela ter jih ovrednotili. Predstavili smo tudi rešitve različnih ponudnikov elektronskih
darilnih bonov. V analizo so zajete tako tuje kot domače rešitve, poleg tega pa so opisani
sistemi, ki predstavljajo neposredno konkurenco in torej omogočajo popolno poslovanje
preko tehnologij mobilne telefonije. Ovrednotili smo tudi prednosti in slabosti posameznih
rešitev v primerjavi s sistemom darilnih bonov Margento.
Tretje poglavje opisuje Margento sistem mobilnih transakcij, na katerem temelji sistem
darilnih bonov. Opisali smo ključne komponente sistema, princip obdelave transakcij in
tehnologije, ki zagotavljajo varne in robustne storitve in ki temeljijo na patentirani
tehnologiji Margento.
Četrto poglavje vsebuje predstavitev pristopa k razvoju rešitve. Poleg splošne predstavitve
agilnih metod je to poglavje osredotočeno na metodo SCRUM. Zaradi določenih specifik v
Razvoj na tehnologijah mobilne telefonije temelječega sistema elektronskih darilnih bonov Stran 4
razvoju smo metodo delno prilagodili, tako da so v tem poglavju zavedene tudi interne
prilagoditve te metode.
V petem poglavju je natančno opisan potek razvoja in paradigem, ki smo jih upoštevali.
Natančno so predstavljeni modeli poslovnih procesov, ki zagotavljajo podporo darilnim
bonom, in operacijami nad njimi. Poleg podrobnega opisa posameznih operacij smo v tem
poglavju predstavili tudi uporabniško izkušnjo pri poslovanju z darilnimi boni.
Razvoj na tehnologijah mobilne telefonije temelječega sistema elektronskih darilnih bonov Stran 5
2 MOBILNI SISTEMI DARILNIH BONOV
Darilni boni so dandanes izredno popularni, kar se odraža v vse višjih prodajnih številkah.
Po podatkih TowerGroup naj bi v letu 2010 bilo globalno prodano darilnih bonov v
vrednosti 91 milijard ameriških dolarjev, kar je 5 % več kot leto prej. Po projekcijah pa naj
bi v letu 2012 prodaja že presegla magično mejo 100 milijard ameriških dolarjev [3].
K porasti prodaje darilnih bonov nedvomno doprinašajo tudi sodobne tehnologije, saj vse
večja priljubljenost virtualnih spletnih trgovin ponovno odpira nove možnosti prodaje
darilnih bonov. Le-ti so v večini primerov v elektronski obliki, saj na takšen način še
hitreje in lažje dosežejo obdarovanca.
Razvoj tehnologije se odraža tudi v množici nepogrešljivih prenosnih elektronskih naprav:
mobilni telefoni, prenosni predvajalniki glasbe, dlančniki, tablični in prenosni računalniki
itd. Ker pa se sodobni ljudje hkrati ne želimo odpovedati svobodi pri gibanju, ponavadi
skrčimo seznam vseprisotne elektronike kvečjemu na mobilni telefon.
Mobilna telefonija tako predstavlja zelo razširjeno platformo, na kateri že temeljijo sistemi
darilnih bonov. Kot je znano, obstaja cela kopica mobilnih platform (operacijskih
sistemov): iOS, Android, Symbian, Windows Mobile. Marsikateri konkurenčni ponudnik
ponujaja sisteme, ki delujejo npr. samo na platformah iOS in Android, ne nudijo pa
aplikacij za Windows Mobile in BlackBerry, nekateri se poslužujejo tehnologij kot so SMS
(Short Message Service) in NFC (Near Field Communication). Naša rešitev za razliko od
mnogih že uveljavljenih ponudnikov zajema prav vse tipe mobilnih aparatov. Načeloma
lahko za identifikacijo uporabljamo celo stacionarni telefonski priključek.
2.1 SPLOŠNA PREDSTAVITEV DARILNIH BONOV
Princip darilnih bonov je v bistvu dokaj preprost. Pri nakupu darilnega bona prejmemo
vrednostnico z določeno nominalno vrednostjo. To vrednostnico lahko nato poklonimo v
obliki darila tretji osebi, ki jo lahko v določenem časovnem obdobju unovči bodisi za
Razvoj na tehnologijah mobilne telefonije temelječega sistema elektronskih darilnih bonov Stran 6
storitev bodisi za blago v poslovalnicah, ki so − tako kot rok trajanja − določeni v pogojih,
ki jih določi ponudnik.
Kljub precejšni razširjenosti darilnih bonov je v Sloveniji zakonodaja na tem področju
ohlapna, kar lahko potrošnikom predstavlja problem, saj ni natančno določenih
regulacijskih pravil. V tem primeru so potrošniki pri reševanju problemov prepuščeni dobri
volji ponudnikov darilnih bonov, saj ZPS (Zveza potrošnikov Slovenije) nima pravne
osnove pri ščitenju pravic potrošnikov [4].
Darilne bone glede na shemo ločujemo na odprto in zaprto shemo. Primer odprte sheme so
darilni boni BTC City ali darilni boni nakupovalnega središča Europark, kjer je darilne
bone možno koristiti v vseh poslovalnicah, ki obratujejo znotraj nakupovalnega središča. V
tem primeru lahko torej bon koristimo pri različnih trgovcih na različnih točkah prodaje
(POS), kupimo pa ga načeloma lahko le na izbranih lokacijah (običajno informativna točka
nakupovalnega središča). Slika 2 prikazuje princip odprte sheme.
Slika 2 − Odprta shema darilnih bonov1
1 Vir: Margento R&D - System Overview (interna dokumentacija) [5]
Razvoj na tehnologijah mobilne telefonije temelječega sistema elektronskih darilnih bonov Stran 7
Odprta shema s seboj prinaša potrebo po evidentiranju bonov, vzpostavitvi varnostnih
mehanizmov in dovršenega mehanizma menjave, kar se odraža v plačevanju določene
provizije. Pri zaprtih shemah potrebe po proviziji ni, saj gre v tem primeru za interno
menjavo. Kljub temu je tudi zaprto shemo potrebno zaščititi pred morebitnimi zlorabami.
Primer zaprte sheme so na primer darilni boni podjetja DM (Drogerie Markt) ali pa darilni
boni podjetja Lisca, kjer je darilne bone sicer možno kupiti in koristiti v vseh njihovih
fizičnih in spletnih prodajalnah, shema pa ne omogoča distribucije darilnih bonov za druge
trgovce. Princip delovanja je prikazan na sliki 3.
Slika 3 − Zaprta shema darilnih bonov1
2.2 PREDNOSTI DARILNIH BONOV
Bistvena prednost darilnih bonov pred konvencionalnimi darili je preprostost uporabe in
priročnost, saj je kupcu darilnega bona prihranjeno izbiranje darila. Veliko prednost
darilnih bonov predstavlja tudi hitrost nakupa, saj je v primerjavi z iskanjem primernega
darila veliko hitrejše in učinkovitejše. Ta lastnost je izrazita v trenutkih, ko moramo darilo
1 Vir: Margento R&D - System Overview (interna dokumentacija) [5]
Razvoj na tehnologijah mobilne telefonije temelječega sistema elektronskih darilnih bonov Stran 8
kupiti v zadnji minuti. Darilni boni v večini primerov deloma − pri elektronskih darilnih
bonih pa popolnoma − eliminirajo zavijanje daril in so večinoma priročnejši za transport.
Pri darilnih bonih se izognemo tudi duplikatom daril, saj obdarovancu ponavadi veliko več
pomeni deset identičnih darilnih bonov kot deset identičnih mikrovalovnih pečic. Z
darilnimi boni pa lahko pripomoremo k uresničitvi želje po nakupu nekega izdelka ali
storitve, ki si jo obdarovanec želi – darilni bon v tem primeru predstavlja prispevek [5].
2.3 POMANJKLJIVOSTI DARILNIH BONOV
Kljub vsem dobrim lastnostim darilnih bonov obstajajo tudi pomankljivosti. Iz stališča
potrošnika je ena glavnih omejitev rok trajanja. Kaj hitro se lahko zgodi, da prejeti darilni
bon založimo in ga prepozno ponovno odkrijemo. V primeru krajših rokov trajanja je
precej verjeten scenarij, da prejemnik darila enostavno nima časa, da bi darilni bon
unovčil.
Omeniti velja tudi morebitno slabost, če kupcu npr. sploh ni do kupovanja oz. da
kupovanje sovraži. V takem primeru je darilni bon lahko nezaželen, kar je ravno nasprotno
od tega, kar naj bi darilo samo po sebi predstavljalo. Rešitev takšnega problema je npr.
stornacija darilnega bona ali možnost menjave darilnega bona za denar. Ker vsi ponudniki
darilnih bonov tega ne omogočajo, je pred nakupom koristno preveriti pogoje poslovanja
ponudnika darilnih bonov [5].
2.4 REŠITVE PONUDNIKOV DARILNIH BONOV
Tabela 1 prikazuje lastnosti nekaterih konkurenčnih ponudnikov darilnih bonov na
ameriškem tržišču. Posamezne opcije, ki opisujejo sistem darilnih bonov, predstavljajo del
zahtev, ki jih je bilo potrebno upoštevati pri razvoju. V tabeli so povzeti podatki za leto
2011.
Razvoj na tehnologijah mobilne telefonije temelječega sistema elektronskih darilnih bonov Stran 9
7-Eleven
Amazon.com
American Express
Best Buy
eBay.com
Harris Bank MasterCard
Home Depot
iTunes
KeyBank MasterCard
Kmart
McDonald's
Pizza Hut
RadioShack
Starbucks
Target
U.S. Bank Visa
Walmart
Tabela 1 − Primerjava ponudnikov darilnih bonov1
Legenda:
− brez roka trajanja
− brez stroškov mirovanja in vzdrževanja
− zaščita pred izgubo ali tatvino
− na voljo zaščita s PIN
− možnost ponovnega nalaganja
− elektronski darilni bon
− vpogled v stanje na računu preko spletne strani
− brezplačna dostava
− stroški nakupa
1 Vir: http://www.creditcards.com/credit-card-news/2011-gift-card-comparison-table-1271.php [6]
Razvoj na tehnologijah mobilne telefonije temelječega sistema elektronskih darilnih bonov Stran 10
Iz tabele je razvidno, da nobeden od naštetih ponudnikov darilnih bonov ne podpira vseh
kriterijev hkrati. Na drugi strani mora rešitev Margento podpirati vse kriterije (za vsakega
naročnika posebej se v pogodbi določijo zahtevane opcije), saj je v tem primeru
omogočena enostavnejša in hitrejša realizacija prilagoditev sistema različnim zahtevam
poslovnim strankam (ponudnikom darilnih bonov). Poleg tega rešitev Margento spada med
precej redke sisteme, ki uporabljajo mobilne tehnologije.
Kljub temu, da se iz leta v leto povečuje število ponudnikov elektronskih darilnih bonov
(sistemi večinoma temeljijo na spletnih tehnologijah), je rešitev, ki temeljijo na
tehnologijah mobilne telefonije, še vedno relativno malo. Podjetja, opisana v tabeli, imajo
v večini primerov v lastni režiji razvit sistem elektronskih darilnih bonov, kar zagotovo
pripomore k manjši razširjenosti mobilnih rešitev, saj je razvoj lastne mobilne rešitve v
zaprtih shemah zaradi zahtevnosti izvedbe pogosto ekonomsko neupravičen. V naslednjih
poglavjih bodo podrobneje opisani nekateri ponudniki mobilnih darilnih bonov.
2.4.1 Rešitev podjetja MBO
MBO je podjetje, katerega storitve temeljijo predvsem na tehnologiji kratkih sporočil
(SMS). Ponujajo storitve darilnih bonov, kuponov, vstopnic, voščilnic in mobilnega
marketinga. Koriščenje darilnega bona sestoji iz dveh korakov; prejemnik darilnega bona
prejme SMS obvestilo z internetno povezavo do črtne kode. Iz zaslona lahko na blagajni
odčitajo in verificirajo darilni bon. Kot prednost pred ostalimi ponudniki klasičnih darilnih
bonov poudarjajo možnost podatkovnega rudarjenja nad podatki uporabnikov (v kolikor se
uporabniki strinjajo s pogoji poslovanja). Podjetje MBO omogoča integracijo z obstoječo
točko prodaje (POS).[7]
Večja pomanjkljivost v primerjavi z rešitvijo Margento mobilnih darilnih bonov se odraža
v tem, da ne deluje na vseh vrstah mobilnih telefonov; mobilni telefon mora omogočati
internetno povezavo (za dostop do povezave v sporočilu SMS), imeti zaslon s čim večjo
resolucijo (od prikaza črtne kode je odvisno optična prepoznava na blagajnah točk prodaje)
itd.
2.4.2 Rešitev podjetja Target Corporation
Prav tako kot pri rešitvi podjetja MBO tudi korporacija Target za delovanje zahteva
mobilni telefon z internetno povezavo (vključno s stroški povezave v breme uporabnika).
Internetna povezava je potrebna za prikaz posebne interne grafične kode in stanja na
Razvoj na tehnologijah mobilne telefonije temelječega sistema elektronskih darilnih bonov Stran 11
virtualnem računu. Pravzaprav gre za popolnoma podobno rešitev, kot jo ponuja MBO, z
razliko osnovne usmeritve podjetja. Target je namreč trgovska veriga s preko 1740
poslovalnicami. Sistem Target mobilnih darilnih bonov je tesno vpet v sam informacijski
sistem, vključno z lastno tehnologijo prepoznave kode iz zaslona.[8]
Takšen pristop onemogoča trženje znanja ('know-how'), kar pa je eden glavnih virov
prihodka podjetja MBO in nenazadnje tudi podjetja Margento R&D. Korporacija Target
tako trži le končne produkte (darilne bone), ne pa tudi uporabljene tehnologije.
2.4.3 Rešitev podjetja DoDo Mobile Technologies
Podjetje DoDo Mobile tehnologije ponuja zelo podoben pristop pri rešitvi darilnih bonov,
kar se tiče unovčevanja, saj gre ponovno za optično branje dvodimenzionalne kode iz
zaslona mobilnega telefona. Le-ta je poleg osebnega sporočila za razliko od rešitev podjetij
Target in MBO obdarovancu dostavljena preko multimedijskega sporočila (MMS).
Storitev DoDo mobilnih darilnih bonov preko povezave na blagajno ponudnika storitev
omogoča spremljanje vseh transakcij, povezanih z darilnimi boni. [9]
V primerjavi z rešitvijo Margento je uporabljena tehnologija pri implementaciji DoDo
rešitve njena bistvena pomanjkljivost, saj storitev MMS ni podprta pri vseh operaterjih in
mobilnih napravah. Možna je tudi nizka hitrost prenosa, kar nedvoumno zmanjšuje
kvaliteto uporabniške izkušnje.
Razvoj na tehnologijah mobilne telefonije temelječega sistema elektronskih darilnih bonov Stran 12
3 MARGENTO SISTEM MOBILNIH TRANSAKCIJ
Kot je razvidno iz analize tržišča, se zavoljo transakcij z darilnimi boni letno obrne kar
precej denarja, poleg tega pa je trend usmerjen navzgor. Prav zaradi tega dejstva obstajajo
mnoga podjetja, ki bi si rada odrezala svoj kos pogače. Naše podjetje je tu v določeni
prednosti, saj ponujamo cel spekter mobilnih storitev.
Margento R&D d. o. o. v lasti podjetja Margento B. V. s sedežem v Amsterdamu
(Nizozemska) je nastalo kot »spin-off« podjetja Ultra, katerega sedež je v Zagorju,
razvojno-poslovna enota v Ljubljani in razvojni center v Mariboru. Ultra svoje delovanje
širi tudi na mednarodne trge s predstavništvi na Hrvaškem in Češkem, v Avstraliji, Veliki
Britaniji, Srbiji, Črni gori, Južnoafriški republiki in Maleziji. Podjetje je bilo ustanovljeno
leta 1989 in se ukvarja z razvojem, proizvodnjo in trženjem visokotehnoloških rešitev na
področju telekomunikacij, podatkovnih storitev in industrijske elektronike. S svojimi
inovativnimi sistemi za upravljanje oskrbovalnih verig naftnih družb, mobilnega
plačevanja, satelitskega sledenja in ostalih naprednih mobilnih rešitev izboljšuje
učinkovitost poslovanja svojih strank in partnerjev ter jim omogoča najvišjo raven storitev.
Zgodovina skupine Ultra se je začela leta 1989, ko je bilo ustanovljeno podjetje v privatni
lasti. Leto kasneje je podjetje izdelalo svoj prvi produkt: ultra zvočni merilec razdalje,
namenjen merjenju višine premoga v silosu. Leta 1991 se je podjetje ukvarjalo s prvimi
celovitimi rešitvami za rudarsko industrijo in elektrogospodarstvo − v ta namen je bil
razvit sistem signalno-govornih naprav. V naslednjem letu se je razvila vrsta različnih
naprav: UPS sistemi različnih moči od 500 W do 1500 W in 2200 W za potrebe tako
civilne zaščite, policije kot za servisne dejavnosti v elektrarnah, DC/AC pretvorniki in še
nekatere druge naprave. V tem času je imela Ultra sedem zaposlenih. V letu 1995 je bila
razvita in poskusno uvajana naprava za varčevanje z energijo v javni razsvetljavi Ultra
Star. To je prvi izdelek, ki ga je to podjetje ponudilo tudi v tujino, in sicer v Južnoafriški
Republiki. Začeli pa so tudi z razvojem merilnega sistema za podzemne rezervoarje Ultra
Star (sonda in merilna postaja). Leto kasneje so pridobili EX certifikat za merilni sistem,
kar je prvi certifikat te vrste v Sloveniji. Sledila je prva vgradnja merilnega sistema Ultra
Star (BS Petrol Zagorje ob Savi) in podpis pogodbe s Petrolom za opremljanje celotne
naftne družbe z omenjenim sistemom. Začel se je razvoj integriranega sistema za
poslovanje z gorivi v naftnih družbah UltraOVEN (Oddaljeno Vzdrževanje Elektronskih
Razvoj na tehnologijah mobilne telefonije temelječega sistema elektronskih darilnih bonov Stran 13
Naprav), odprla pa se je podružnica v Ljubljani. Podjetje je pridobilo tudi certifikat
kakovosti ISO 9001 za področje razvoja, proizvodnje in prodaje elektronskih naprav.
UltraOVEN se je kasneje preimenoval v UltraCOMPECO (Computerised Petrol Control)
in razvil se je prvi prototip Compeca, ki je vseboval Commander (nadzor točilnega
avtomata Salzkotten, smart-card avtomat). V okviru Compeca se je začel razvoj
identifikacijskega sistema za točenje RFID. Leta 1998 je bia Ultra prisotna na sejmu
Automechanika v Frankfurtu. Začel se je razvoj sistema za daljinsko upravljanje in nadzor
prek GSM omrežja (kasneje imenovan Bird). Septembra 1999 je bila v Avstraliji, s
sedežem v Sydneyju, ustanovljena podružnica podjetja Ultra Pacific Pty Ltd in začeli so z
delo na projektu TalkTrack (sistem za sledenje, komunikacijo in upravljanje z vozili),
sledila pa je prva instalacija Ultrine opreme na drugi celini, v Afriki. Podjetje je bilo glavni
sponzor prireditve Infos'99, kjer je predstavilo predvsem rešitve za naftno industrijo.
Kasneje se je ustanovila podružnica podjetja v Mariboru in zaposlenih je bilo že 60 ljudi.
Leta 2000 je Ultra na aprilski prireditvi Teleinfos predstavila MobiVend − napravo, ki je
omogočala kupovanje z mobilnim telefonom. Compeco je navdušil na sejmu
Automehanika 2000 v Frankfurtu. Konec tega leta so oblikovali in razvili inovativno
napravo na področju plačevanja z mobilnim telefonom, terminal M-Pay, ki je nadomestil
star naziv MobiVend. Leto dni kasneje se je začela proizvodnja in testiranje sistema M-
Pay, in sicer za naročnika, družbo Mobitel. Konec leta 2001 se je opustila blagovna
znamka Compeco in nadaljeval se je razvoj celovitega sistema za upravljanje z naftno
družbo Ultra Supply Chain Management. Razvoj TalkTracka se je pospešil. V podjetju je
bilo takrat 80 zaposlenih. Leta 2002 je Mobitel začel s komercialnim trženjem sistema M-
Pay, pod imenom aMoneta. TalkTrack je dobil GPRS modem. Na trg se je lansirala nova
generacija rešitve M-Pay, Ultra pa je prenovila svojo grafično podobo. M-Pay je bil v
decembru istega leta nameščen na 850 prodajnih avtomatih Coca-Cole, postavljenih na
različnih lokacijah v Sloveniji. M-Pay Mobile POS terminal je bil leta 2003 že v fazi
komercializacije. Podjetje je podpisalo pogodbo z največjo hrvaško naftno družbo INA.
Sistem TalkTrack se je tržil kot naročniška storitev in je razširjal svojo funkcionalnost na
mobilno navigacijo, diagnostiko na daljavo, dostop prek WAP in več. Ultra pa je tudi
podpisala pogodbo s Siemensom in češkim podjetjem ADW, ki je z Ultrinim merilnim
sistemom opremilo 150 bencinskih servisov češke naftne družbe Čepro.
Margento R&D se ukvarja z razvojem mobilnega transakcijskega sistema (gre za izvajanje
različnih storitev prek mobilnega telefona: od plačevanja, zbiranja bonus točk oz. točk
Razvoj na tehnologijah mobilne telefonije temelječega sistema elektronskih darilnih bonov Stran 14
zvestobe, neposrednih polnitev, predplačniških mobilnih računov, elektronskih darilnih
bonov in vstopnic itd.) in ostalih storitev, povezanih z informacijsko tehnologijo.
Patentirana tehnologija prenosa podatkov preko govorne zveze (tehnologija DoV − Data-
over-Voice1) omogoča množico različnih storitev, ki jih naročnikom zagotavlja Margento
R&D.
Tehnologija Data-over-Voice tako preko kanala za govor omogoča prenos podatkov v
mobilnih omrežjih GSM, CDMA, UMTS, omogočen pa je tudi prenos podatkov preko
GPRS in etherneta [10].
Slika 4 − Patentirana tehnologija prenosa podatkov2
V povezavi tehnologije DoV z ostalimi komunikacijskimi tehnologijami (GPRS, IP) so
doseženi še krajši časi transakcij in zaradi uporabe dodatnega komunikacijskega kanala še
povišana stopnja varnosti. Rešitve Margento tako strankam omogočajo storitve, kot so
prejemanje in pošiljanje denarja, zbiranje in koriščenje točk zvestobe, polnjenje
predplačniških računov mobilnih operaterjev, plačevanje računov, kupovanje in uporabo
elektronskih vstopnic, unovčevanje elektronskih kuponov in nenazadnje kupovanje
mobilnih darilnih bonov prijateljem, znancem in družinskim članom [11].
Glede na samo naravo storitev, ki zajemajo operacije nad občutljivimi podatki, je pri
razvoju rešitev zagotavljanje varnosti eno ključnih področij. Poleg klasičnih pristopov
1
• "Sistem za izmenjavo plačilnih podatkov z uporabo plačilnega terminala", vložena na podlagi mednarodne PCT prijave: PCT/IB2000/001495 PCT, številka objave: WO/2002/03369 [12].
• "Plačilni terminal za izmenjavo plačilnih podatkov", vložena na podlagi mednarodne PCT prijave: PCT/IB2002/00123 PCT, številka objave: WO/2003/088165 [12].
2 http://www.margento.com/uploads/brochures/Margento_Corpo_Brochure.pdf [11]
Razvoj na tehnologijah mobilne telefonije temelječega sistema elektronskih darilnih bonov Stran 15
zagotavljanja varnosti, kot so šifriranje, avtorizacija in avtentikacija, morajo posamezne
komponente zagotavljati varnost na vseh treh nivojih arhitekture informacijskih sistemov;
podatkovnem, aplikacijskem in predstavitvenem nivoju. Brez integracije varnostnih
mehanizmov, aplikacij in storitev elektronskega poslovanja praktično ni mogoče razviti,
saj le tako lahko zagotovimo dovolj visok nivo varnosti [13].
Slika 5 − Pregled platforme Margento1
Sistem mobilnih transakcij Margento tako tvori kar platformo, ki nudi podporo celi paleti
poslovnih procesov, ki jih je možno integrirati vanjo. Platforma je sestavljena modularno,
njene ključne komponente so podrobneje opisane v naslednjem poglavju.
3.1 PREDSTAVITEV OBSTOJEČIH KOMPONENT SISTEMA
MARGENTO
Sistem Margento je sestavljen iz mnogih specializiranih komponent, ki so združene v
zmogljivo in dosegljivo omrežje, s pomočjo katerega so storitve zagotovljene vsem
strankam. Osrednji del sistema Margento je Margento procesni sistem (MPS), ki
zagotavlja obdelavo transakcij in integracijo z zunanjimi sistemi. Omogoča visoko
1 Vir: Margento R&D − System Overview (interna dokumentacija) [12]
Razvoj na tehnologijah mobilne telefonije temelječega sistema elektronskih darilnih bonov Stran 16
zmogljivost in različne kombinacije plačilnih storitev. Sistem Margento lahko ima eno ali
več telekomunikacijskih vstopnih točk, ki služijo kot vmesnik med sistemom in
telekomunikacijskimi omrežji ter zagotavljajo komunikacijske kanale, preko katerih lahko
uporabniki uporabljajo storitve, ki jih nudi sistem Margento. Prek omenjenih
komunikacijskih kanalov poteka tudi vsa komunikacija med procesnim centrom in
terminali Margento.
Sistem je sestavljen iz treh različnih vmesnikov (komunikacijski vmesniki, vmesniki za
plačila, integracija) in različnih aplikacij za upravljanje.
Standardne komponente sistema MPS so komponente za procesiranje in administracijo ter
obdelavo podatkov. Slika 6 prikazuje posamezne komponente MPS sistema in povezave
med njimi.
Margento telekomunikacijska dostopna točka (MTAP) je vmesnik med operaterjem
mobilnega omrežja in sistemom Margento (MPS). Ima vlogo posrednika in je na eni strani
priključen na MSC (Mobile Switching Center), na drugi strani pa je priključen na sistem
Margento (MPS).
Če je do sistema MPS omogočen dostop preko več različnih operaterjev mobilnih omrežij,
je za vsakega operaterja nameščen vmesnik MTAP. Glavna naloga vmesnika MTAP je
zagotavljanje prehoda podatkov med sistemom Margento (MPS) in mobilnim omrežjem.
Posledično omogoča varno in transparentno komunikacijo med Margento terminali in
sistemom MPS. MTAP integrira sistem IVR (avtomatski interaktivni odzivnik), ki vodi
uporabnika skozi celoten proces uporabe sistema Margento.
MTAP sestavljajo komponente Crypto Server, NE in MAP.
Crypto Server je strežniška komponenta, katere primarna naloga je zagotavljanje varne
komunikacije s terminali Margento.
Uporabljen način kriptiranja podatkov je ECC (Elliptic Curve Cryptography). Z izbranim
načinom kriptiranja so zmanjšane performančne zahteve sistema in obremenjenost
prenosnega kanala, brez izgub glede na varnost kriptiranih podatkov. S pomočjo kriptirnih
algoritmov in protokolov za izmenjavo ključev in digitalnih podpisov je zagotovljena
celovitost in zaupnost podatkov.
Razvoj na tehnologijah mobilne telefonije temelječega sistema elektronskih darilnih bonov Stran 17
Crypto Server tudi skrbi za varen prenos številk PIN od Margento terminala do institucij,
kot so izdajatelji, banke idr., in skrbi za varnost od konca do konca (End-to-End), ki je
obvezna v sistemih, kjer nastopajo transakcije.
Zaradi zanesljivosti sistema in medsebojnih povezav je ta komponenta običajno nameščena
v tesnem stiku z operaterji mobilnih omrežij in sistemom MPS.
NE (Network Equipment) je komponenta Margento, ki predstavlja vmesnik proti
telekomunikacijski omrežni opremi na strani omrežnega operaterja. Predstavlja najnižji
nivo v arhitekturi sistema Margento in omogoča povezavo s terminali ali drugimi
uporabniki sistema; kontrolira nizkonivojsko komunikacijo med terminalom Margento in
procesnim centrom, odgovorna je za modulacijo in demodulacijo glasovnega signala ter
omogoča IVR funkcionalnost.
Komponenta NE sprejema klice in ob vsakem dohodnem klicu se ustvari edinstvena seja
za to povezavo. Najprej se določi ID seje na podlagi interne številke kanala, po katerem je
prišel zahtevek. Seja živi, dokler se povezava ne prekine. NE skrbi tudi za inicializacijo
varne End-To-End crypto seje. Le-ta se začne, ko komponenta NE dobi identifikacijske
številke terminala (TID). Ko se vzpostavi varna seja, NE začne komunicirati z MAP-om
oz. mu pošlje zahtevek od terminala. V sistemu je lahko več NE in CryptoServer
komponent.
Margento Access Point (MAP) je povezovalna komponenta in predstavlja vmesnik med
različnimi vhodnimi napravami in storitvami ter komponento MPC. Podatki, ki se pošljejo
z NE na MAP, se razčlenijo, določi se, kateri podatki so potrebni za nadaljnje procesiranje
transakcije na MPC-ju in se pošljejo komponenti MPC.
Margento Processing Center (MPC) je centralna komponenta, ki skrbi za izvajanje
transakcij v Margento sistemu in je vključena skozi celoten življenjski cikel posamezne
transakcije.
Povezan je na podatkovno bazo, na komponento MAP za komunikacijo s terminalom in na
CS za pridobivanje ključa terminala.
Integracija komponente Margento Payment Gateway (MPG) omogoči povezavo s centrom
MGW in plačevanje storitve prek Monete. Preko MPG-ja se pošiljajo podatki uporabnika
do Moneta centra, kjer se preveri verodostojnost le-teh, nato pa se izvrši finančna
transakcija na Moneta centru.
Razvoj na tehnologijah mobilne telefonije temelječega sistema elektronskih darilnih bonov Stran 18
MPay Gateway (MGW) je sistem, ki zajema transakcije iz e-Commerce spletnih strani in
jih obdela v okolju MPay v realnem času. MGW povezuje vse vpletene strani z uporabo
javnih vmesnikov, ki ponujajo trgovcem oz. njihovim strankam dodaten način za izvedbo
plačila. Ta lahko vključuje spletni brskalnik, interaktivni glasovni odzivnik (IVR), mobilni
brskalnik na telefonskem aparatu in/ali SMS.
MPSA (Margento Processing System Administration) je komponenta, ki preko spletnega
uporabniškega vmesnika omogoča celovito administracijo procesnega sistema. Zajema
oddaljeno administracijo Margento terminalov, upravljanje pogodb, prodajnih mest (POS),
trgovcev itd. [14]
Poleg tega omogoča tudi pregled nad transakcijami z naprednim filtriranjem (časovni filter,
filtri glede na identifikacijsko številko terminala, ime podjetja, številka prodajnega mesta,
filter statusa transakcije itd.). Spletna komponenta MPSA podpira večnivojske uporabniške
vloge, tako da je možno popolno prilagajanje dostopa in pravic do določenih
funkcionalnosti na posameznem nivoju.
Margento Online Payment (MOP) je plačilni sistem, ki končnemu uporabniku (kupcu)
omogoča varno in robustno plačilno metodo z uporabo mobilnega telefona kot instrumenta
za avtentifikacijo. Naročniki sistema Margento lahko torej uporabljajo isti račun za
mobilno plačevanje kot tudi za internetno nakupovanje.
Dostop do spletne storitve je zagotovljen preko MOP API vmesnika. Promet preko spletne
storitve do procesne komponente MPC poteka preko komponente MOP Gateway.
Komponenta oddaljenih poročil (Remote Reports) trgovcu zagotavlja, da preko terminala
lahko dostopa do poročila uspešnih transakcij. Komponenta je preko komponente MPC
povezana do podatkovne baze, ki vsebuje informacije, ki jih lahko zahtevamo pri
oddaljenih poročil. Komponenta zagotavlja tudi izbiro časovnega okvira, ki ga poročilo
zajema.
3.2 POSTOPEK PROCESIRANJA TRANSAKCIJ
Življenjski cikel obdelave transakcije se začne, ko komponenta NE prejme klic iz
mobilnega telefona (1). Uporabnikova mobilna številka je pri tem koraku že znana. NE
sproži dogodek in klic je posredovan komponenti MAP (2). Le-ta pošlje ukaz komponenti
Razvoj na tehnologijah mobilne telefonije temelječega sistema elektronskih darilnih bonov Stran 19
MPC za začetek transakcije (3). V podatkovni bazi se inicializira transakcija z unikatnim
transakcijskim ključem (4). MAP pošlje komponenti NE ukaz za predvajanje
interaktivnega glasovnega odzivnika (IVR), ki ga NE nato tudi predvaja. MAP nato pošlje
ukaz za pošiljanje TRD paketa (5). Ko NE posreduje paket proti terminalu (6) in ga slednji
tudi zazna, se odzove s pošiljanjem identifikacijske številke terminala, ki je poleg
določenih informacij zapakirana v paketu TID (7). Le-ta se preko MAP posreduje proti
komponenti MPC (8), ki paket verificira in iz podatkovne baze zajame dodatne potrebne
informacije o terminalu (9). Na tem mestu se začne kriptirana seja pošiljanja sporočil
(sporočila so kriptirana z javnim in zasebnim ključem). Ko je kriptirana seja vzpostavljena,
komponenta MPA pošlje proti komponenti MPC zahtevek za preverjanje posodobitev
programske opreme terminala. V kolikor posodobitev obstaja, se prične prenos
vzdrževalnih paketov. Med vzpostavljeno povezavo komponenta NE čaka na zahtevek v
kriptirani obliki z informacijami, kot so: identifikator, ki nam pove, za katero storitev gre,
izbrana vrednost na terminalu ipd. (10) Te podatke mora nato kriptografski strežnik (CS)
obdelati in dešifrirane posredovati komponenti MAP (11). Le-ta nato pošlje paket z ukazi
proti komponenti MPC za avtentifikacijo (12). MPC preveri ujemanje s pogodbami in v
kolikor je vse v redu, lahko avtorizacijski zahtevek potuje proti ustrezni komponenti, ki
transakcijo ustrezno obdela z algoritmom (13). V kolikor je obdelava uspešna, lahko MAP
nadaljuje s transakcijo, tako da pošlje potrdilo proti terminalu, ki odgovori z lastnim
potrdilom (14). MAP na tem mestu pošlje zahtevek za zaključek transakcije proti
komponenti MPC, ki časovno žigosa zaključek transakcije in poleg ostalih zahtevanih
procedur transakciji nastavi ustrezen status (15). Transakcija se na tem mestu zaključi in
zapre. Potek klicne transakcije po komponentah je podrobneje orisan na sliki 6.
Razvoj na tehnologijah mobilne telefonije temelječega sistema elektronskih darilnih bonov Stran 20
Slika 6 − Pregled Margento procesnega sistema (MPS)
Margento procesni sistem poleg procedure procesiranja zgoraj opisanih klicnih transakcij
podpira tudi USSD, SMS, PushMail zahtevke kot dostop preko internetne strani, ki podpira
sistem MOP (Margento Online Payment), ali pa preko mobilne aplikacije
(iPhone/Android/Symbian/MeeGo/BlackBerry). Različnim načinom dostopa do
procesnega sistema Margento je skupna povezava do komponente MPC preko povezovalne
komponente MAP oz. spletne storitve (Web Service) v primeru MOP zahtevkov, kar
pomeni, da bistvenih razlik v procesiranju različnih transakcij praktično ni.
Razvoj na tehnologijah mobilne telefonije temelječega sistema elektronskih darilnih bonov Stran 21
4 PRISTOP K RAZVOJU REŠITVE
Zaradi problemov in negotovosti, ki lahko nastanejo ob morebitnih spremembah poslovnih
procesov, smo pri komponenti, ki omogoča procesiranje mobilnih darilnih bonov, morali
vpeljati določene spremembe v razvojnem procesu. Glede na osnovne vrednote agilnega
razvoja programske opreme in ustreznih velikosti delovnih timov za dani projekt smo se
odločili za podoben pristop.
Zaradi raznolikosti področij, ki smo jih zastopali člani delovne ekipe, smo morali izbrano
metodologijo Scrum rahlo prilagoditi za lažjo integracijo v delovanje podjetja. Narava
raziskovanja in dela podjetja Margento R&D zajema tako področje strojnih (hardware) kot
programskih (software) rešitev. Tako smo si z dobrimi praksami, ki v glavnem zajemajo le
programski del razvoja, lahko precej, ne pa v celoti pomagali.
4.1 AGILNE METODE
Termin agilnega razvoja je utemeljil manifest iz leta 2001 [15]. Agilni razvoj programske
opreme v glavnem omogoča boljšo storilnost in lažje ter hitrejše odzivanje na nove zahteve
naročnikov. Ključ do tako elastičnega razvoja leži v osnovnih vrednotah agilnega razvoja:
• posamezniki in njihova komunikacija so pomembnejši kot sam proces in orodja,
• delujoča programska oprema je pomembnejša kot popolna dokumentacija,
• vključevanje (sodelovanje) uporabnika je pomembnejše kot pogajanje na osnovi
pogodb,
• upoštevanje sprememb je pomembnejše od sledenja planu [16].
Sledi podrobnejša razčlenitev posameznih načel
Posamezniki in njihova komunikacija/proces in orodja
Takšna skupina, kjer so člani v delovnih skupinah ponavadi ljudje z različnimi znanji in
interesi, v primeru specifičnih določitev delovnih nalog svojega potenciala največkrat ne
more popolnoma izkoristiti. Pri agilnih metodah se tako veliko bolj poudarja individuum
posameznika in s pravilno porazdelitvijo vlog glede na parametre članov skupine se lahko
zagotovi večja uspešnost projekta. Prav tako se poudarja moč komunikacije, saj je dobro
Razvoj na tehnologijah mobilne telefonije temelječega sistema elektronskih darilnih bonov Stran 22
sodelovanje članov projekta in dobra komunikacija med njimi veliko pomembnejša od
striktnega upoštevanja predpisanih procesov [17].
V podjetju Margento R&D smo tako pri razdeljevanju vlog upoštevali posameznikova
znanja. Specialisti za podatkovne baze so bili odgovorni za razvoj podatkovnega modela in
optimizacijo zahtevkov, skupina razvijalcev, ki so mojstri na področju strojne opreme, so
bili odgovorni za razvoj terminalske programske kode. S podobnim ključem so bile
razvrščene še preostale vloge: razvijalci poslovne logike, člani testnega oddelka itd. Z
dobro medsebojno komunikacijo članov projekta je bilo vzpostavljeno kvalitetno delovno
ozračje, ki je pripomoglo k hitremu in uspešnemu dokončanju projekta.
Delujoča programska oprema/popolna dokumentacija
Vsak končni uporabnik si pri nakupu želi kvalitetne storitve ali produkta. V kolikor gre za
programsko rešitev, so takšna pričakovanja ponavadi še višja, saj lahko napake in
pomanjkljivosti pomenijo poslovno škodo, ki si jo nihče ne želi. Manifest agilnega razvoja
programske opreme v ta namen pred popolno dokumentacijo postavlja popolnoma
delujočo programsko opremo [17].
Glede na to, da je dokumentacija kljub vsemu izredno pomembna − nenazadnje si naročnik
ne more pomagati z delujočim programom, če ne ve, kako se ga uporablja − smo pri
projektu mobilnih darilnih bonov kljub osredotočenosti na delujočo rešitev, dokumentacijo
pripravljali sproti − vsak član projekta je dokumentiral svoj prispevek. Končni rezultat je
tako bila brezhibno delujoča programska oprema, ob zlitju (pristop »deli in vladaj«)
posameznih delov dokumentacije pa je bila rešitev tudi zadovoljivo dokumentirana.
Vključevanje (sodelovanje) uporabnika/pogajanje na osnovi pogodb
Pogodba med naročnikom in izvajalcem je nedvoumno pomemben dokument, ki vsebuje
formalne obveznosti med enim in drugim. Kljub temu je po načelu agilnih metodologij
potrebno prirediti višjo prioriteto vključevanju naročnika v razvojni cikel. To je moč
doseči le z dobrimi medsebojnimi odnosi, kar doprinese k zmanjševanju formalnosti in
nenazadnje boljše razumevanje želja in pričakovanj, ki jih naročnik najbolje pozna [17].
V praksi se vse prepogosto izkaže, da se zahteve naročnika spreminjajo ravno zaradi
slabega medsebojnega razumevanja problema med naročniki in izvajalci. Razvoj zaradi
novih ali spreminjanja starih funkcionalnosti lahko tako traja dlje od v pogodbi določenega
roka. V primeru strogega držanja pogodbenih določil, bi bilo potrebno za vsako
Razvoj na tehnologijah mobilne telefonije temelječega sistema elektronskih darilnih bonov Stran 23
spremembo podpisati novo pogodbo ali aneks k pogodbi, kar pogosto za sabo potegne
dodatne stroške in zakasnitve.
Reagiranje na spremembe/sledenje planu
V mnogih primerih so spremembe "de facto" sestavni del projektov. Razvojna ekipa mora
glede na manifestacijo agilnega razvoja programske opreme v takšnem primeru ustrezno
reagirati, tudi v primeru žrtvovanja sledenju projektnega plana, saj je neažurnem planu
najslabše slediti. To pa še ne pomeni da planiranje in delo po planu nista nepomembna v
razvoju. Potrebno je le zagotoviti dovolj odzivne modifikacije projektnega plana [17].
V primeru metodologije SCRUM lahko uspešno sledenje spremembam projektnega plana
in samo prilagajanje plana dosežemo z rednimi sestanki, ki so sestavni del omenjene
metodologije.
4.2 SCRUM
Razvoj pri metodologiji poteka tako, da najprej zberemo vse poslovne pogoje in zahteve
posameznega projekta v seznam zahtev. Posameznim funkcionalnostim in tehnologijam
nato lastnik produkta z določanjem prioritet učinkovito določa zaporedja gradnje
posameznih delov informacijskega sistema. Pri planiranju šprinta se med Scrum ekipo po
definirani prioriteti razdeli zahteve, ki bodo znotraj 30-dnevne iteracije predstavljale novo
izvedljivo funkcionalnost. Med ciklom šprinta je naloga vodje projekta (v domeni
metodologije t. i. Scrum Masterja), da vodi 15-minutne dnevne sestanke in z ekipo
odgovori na naslednja vprašanja:
• Kaj je bilo narejeno med prejšnjim in trenutnim dnevnim sestankom?
• Kakšen je plan dela do naslednjega dnevnega sestanka?
• Kako rešiti probleme, na katere so člani ekipe med razvojem morebiti naleteli?
Uspešnemu šprintu sledi natančna evalvacija funkcionalnega produkta posameznega
šprinta iz strani Scrum ekipe in lastnikom produkta. V kolikor je rezultat zadovoljiv, se
ponovno začne planiranje in začetek novega 30-dnevnega šprinta. Ko so enkrat dokončane
vse alineje v seznamu zahtev in je vsota vseh delnih funkcionalnosti (rezultatov
posameznih šprintov) enaka končnemu programu, se v naslednjem šprintu opravi migracijo
produkta v produkcijsko okolje in podpis primopredajne pogodbe [18].
Razvoj na tehnologijah mobilne telefonije temelječega sistema elektronskih darilnih bonov Stran 24
Slika 7 − Grafični prikaz metodologije Scrum1
Posebnost in hkrati prednost podjetja Margento R&D je izdelava tako programske opreme
kot tudi strojne opreme, ki vsaka zase prinaša določene specifike in nadaljnje delitve.
Zaradi teh razlik vpeljava agilnega razvoja po metodi Scrum med vsemi oddelki članov
projekta ne bi bila smiselna. V ta namen so bile smernice metodologije Scrum malce
spremenjene. Variabilni časovni okvir posameznega šprinta (dolžina šprinta je lahko
različna od 30 dni) je v primeru projekta mobilnih darilnih bonov pomenil glede na
pogodbeni rok razdeljene časovne okvire. Seznam zahtev za posamezen šprint je
predstavljal TO-BE model poslovnega procesa, pretvorjenega iz AS-IS modela (pretvorba
z optimizacijo je potekala pri planiranju šprinta). Modifikacije zajemajo tudi vpeljavo sej
programiranja v parih, ki so zagotavljale sprotno učenje, reševanje težav, testiranje in
sprotno dokumentiranje sprememb ter novih funkcionalnosti.
Pri realizaciji mobilne rešitve elektronskih darilnih bonov smo projekt razdelili na pet
sklopov, ki so predstavljali posamezne šprinte: informativna transakcija, nakup, koriščenje,
stornacija in preklic. Ko je bil enkrat natančno določen aplikacijski protokol, ki predstavlja
temelj komunikacije med strežniškimi komponentami in terminalom, in določen ter
1 Vir: M. Heričko: Sodobni procesi, prosojnice pri predmetu Gradnja informacijskih sistemov, FERI [19]
Razvoj na tehnologijah mobilne telefonije temelječega sistema elektronskih darilnih bonov Stran 25
realiziran podatkovni model, je razvoj strojne opreme in MPSA aplikacije potekal
neodvisno od SCRUM razvoja programskega (strežniškega) dela. Zaradi tega sprotne
demonstracije nove funkcionalnosti, ki so ponavadi končni rezultat posameznega šprinta,
ni bilo vedno možno opraviti v povezavi iteracije strežniške rešitve in terminala.
Demonstracija posamezne funkcionalnosti strežniške aplikacije je bila tako na začetku
opravljena s simulatorjem terminala, kasneje pa se je za to uporabljal terminal.
Med posameznimi šprinti smo v projektni skupini ob prisotnosti naročnika natančno
pregledali zahteve, prepoznali ozka grla in optimizacije modela poslovnega procesa. Ena
takšna optimizacija je npr. možnost delovanja brez številke PIN, saj smo z naročnikom
uskladili mnenje, da je potrebno čim bolj poenostaviti delovanje. Ker se naročnik dodatni
varnosti kljub temu ni želel odreči, smo to funkcionalnost realizirali tako, da jo je možno
naknadno vklopiti preko administratorskega sistema MPSA.
V projektni skupini smo na strani strežniškega dela rešitve sodelovali trije razvijalci. Vodja
skupine je skliceval dnevne 15-minutne sestanke, kjer smo določili posamezne naloge,
rešili morebitne težave in opravili pregled ter evalvacijo programske kode. Posamezni
šprint je trajal približno tri delovne dni, pri čemer smo kasneje zaradi optimizacije
delovnega procesa združili šprint za preklic transakcije in stornacijo.
Pomemben del vsakega šprinta je predstavljalo tudi testiranje, saj je morala vsaka
zaključena celota kot rezultat posameznega šprinta prestati veliko različnih testov. Kljub
temu, da smo celovite, t. i. »end-to-end« teste opravili šele po zaključku implementacije
posameznih funkcionalnosti, so testi med razvojem pripomogli k zgodnjemu odkrivanju
napak in posledično tudi k odpravljanju le-teh.
Razvoj na tehnologijah mobilne telefonije temelječega sistema elektronskih darilnih bonov Stran 26
5 RAZVOJ SISTEMA DARILNIH BONOV MARGENTO
Razvoj sistema darilnih bonov je potekal na različnih komponentah, ki jih razvijajo
različne razvijalske skupine znotraj podjetja Margento R&D. K temu štejemo razvoj
programske opreme za terminale, razvoj modula za MPSA in nenazadnje strežniške
aplikacije, ki so tudi cilj diplomskega dela.
5.1 MODELI POSLOVNIH PROCESOV MARGENTO SISTEMA
DARILNIH BONOV
Z namenom kasnejše analize in optimizacije poslovnega procesa kot tudi bolj
predstavitvenega vpogleda v arhitekturo sistema darilnih bonov smo poslovni proces
predstavili v notaciji BPMN. Slika 8 prikazuje poslovni proces nakupa darilnega bona tako
iz stališča končnega uporabnika kot tudi ponudnika storitve in procesnega sistema
Margento. Aktivnosti posameznega udeleženca v poslovnem procesu so zajete v
posameznih bazenih. Zaradi različnih in spreminjajočih zahtev naročnikov ter nenazadnje
zaradi varovanja poslovnih skrivnosti podprocesi v BPMN modelih niso podrobneje
opisani, saj so transakcije procesirane glede na pogodbena določila med naročnikom in
izvajalcem.
Razvoj na tehnologijah mobilne telefonije temelječega sistema elektronskih darilnih bonov Stran 27
Slika 8 − Model poslovnega procesa nakupa darilnega bona
Razvoj na tehnologijah mobilne telefonije temelječega sistema elektronskih darilnih bonov Stran 28
Slika 9 − Model poslovnega procesa koriščenja darilnega bona
Razvoj na tehnologijah mobilne telefonije temelječega sistema elektronskih darilnih bonov Stran 29
Na sliki 9 je prikazan model poslovnega procesa koriščenja darilnega bona. Sam model
ostaja isti tako pri delnem unovčenju darilnega bona kot unovčenju v celoti, saj je pri
aktivnosti "Vnesi željeno vrednost darila" možno oboje. BPMN model na sliki 9 vključuje
tudi model informativne transakcije, saj se le-ta predčasno izvede ob vsakem koriščenju
darilnega bona.
Posamezne funkcionalnosti sistema so podrobneje opisane v naslednjih poglavjih.
5.2 FUNKCIONALNOSTI SISTEMA
Poleg funkcionalnosti, opisanih v prejšnjem poglavju, Margento sistem darilnih bonov
omogoča tako informativne transakcije kot tudi stornacijo in preklic transakcije v primeru
morebitnih težav.
5.2.1 Nakup darilnih bonov
Proces nakupa se začne tako, da pošiljatelj bona izrazi zahtevo pri ponudniku storitev, ta pa
mu ponudi terminal, kjer pošiljatelj izbere vrednost darilnega bona. Kupec se lahko odloči
tudi za osebno sporočilo, ki je na voljo v meniju terminala. Nato je potreben vnos številke
obdarovanca. Kupec bona nato izbere datum začetka veljavnosti darilnega bona. Sledi
identifikacija uporabnika na način, da pokliče rezervirano številko in prisloni telefon k
terminalu. V kolikor je procesiranje uspešno, mora kupec darilnega bona le še plačati
vrednost bona pri prodajalcu in zanj je proces na tem mestu zaključen. Ko izbrana
veljavnost darilnega bona začne veljati, se prejemniku pošlje informativno sporočilo
SMS/MMS. Prejemnik darilnega bona ga lahko z identifikacijo koristi pri ponudniku
storitev.
Tehnologija Margento poleg nakupa preko terminala omogoča tudi nakup preko spleta. V
tem primeru se identifikacija uporabnika izvrši preko spletne storitve MOP (Margento
Online Payment). Prav tako je omogočeno kupovanje v okviru mobilne aplikacije na t. i.
"pametnih telefonih" in SMS/MMS/PushMail/USSD zahtevkov.
5.2.2 Info transakcija
Info oz. informativna transakcija omogoča prejemnikom darilnih bonov vpogled v stanje
na virtualnem računu. Rezultat transakcije je prikaz vsote veljavnih darilnih bonov za
MSISDN prejemnika na zaslonu terminala. Poteka tako, da prejemnik darilnih bonov
Razvoj na tehnologijah mobilne telefonije temelječega sistema elektronskih darilnih bonov Stran 30
pokliče na rezervirano številko (npr. 1808) in k terminalu prisloni telefon. Po uspešnem
procesiranju se proti terminalu pošlje paket s podatki o znesku, ki ga je možno koristiti
(stanje na virtualnem računu). V kolikor gre pri informativni transakciji le za vpogled v
stanje, se transakcija na tem mestu konča. Zaradi optimizacije hitrosti obdelave transakcije
pa lahko konec poslovnega procesa predstavlja tudi začetek unovčevanja.
5.2.3 Unovčevanje darilnih bonov
Unovčevanje darilnega bona se začne z aktivnostjo, ko prejemnik darilnega bona prejme
SMS/MMS obvestilo, ki je generirano na podlagi izbranega datuma dostave, osebnega
sporočila in nominalne vrednosti darilnega bona. Ko prejemnik darilnega bona prispe v
poslovalnico, kjer lahko koristi darilni bon, mu ponudnik storitev ali izdelkov ponudi
Margento terminal, kjer v meniju izbere aktivnost koriščenja darilnega bona. Prejemnik
bona pokliče na brezplačno številko in prisloni telefon k terminalu. Sledi informativna
transakcija, ki je podrobneje opisana v poglavju 5.2.2. Rezultat informativne transakcije
terminal že "seznani" z omejitvami pri vnosu zneska za unovčenje. V primeru darilnega
bona, zaščitenega s številko PIN, je potrebno vpisati veljavno geslo, sistem pa mora
preveriti pravilnost. V kolikor sredstva niso na voljo, številka PIN ni pravilna oz. virtualni
račun sploh ne obstaja, se proti terminalu pošljejo podatki o napaki. Če pa so vsi
predpogoji izpolnjeni (določeno v vsaki pogodbi s posameznim naročnikom) in uporabnik
vpiše znesek v dovoljeni meji, se začne procesiranje transakcije unovčevanja. Uspešnost
transakcije se odraža v obliki sporočila in natisnjenega potrdila. Naročnik oz. ponudnik
storitev lahko na tem mestu obdarjencu ponudi darilo (v obliki produkta ali storitve v
izbrani vrednosti), saj le-to iz finančnega stališča predstavlja uspešno obdelano in potrjeno
transakcijo.
5.2.4 Stornacija
V primeru, da je npr. prišlo do vnosa napačne številke MSISDN, napačnega datuma
dostave ali zneska, da kupec bona nima dovolj denarja, ali kakšnega podobnega scenarija,
sistem omogoča stornacijo darilnega bona. V tem primeru se stanje na virtualnem računu
zmanjša za ustrezno vrednost darilnega bona. Margento sistem mobilnih darilnih bonov
poleg tega podpira tudi stornacijo uporabe darilnega bona, pri čemer se stanje na
virtualnem računu povrne na enako vrednost pred unovčenjem. Stornacija poteka tako, da
ponudnik storitev v meniju terminala izbere stornacijo in vpiše referenčno številko, ki je
Razvoj na tehnologijah mobilne telefonije temelječega sistema elektronskih darilnih bonov Stran 31
del vsakega potrdila, ki ga natisne terminal. Ko je na terminalu vnos potrjen, se terminal
poveže na komponento darilnih bonov. Le-ta transakcijo verificira in ustrezno procesira. V
kolikor je procesiranje uspešno, se natisne potrdilo z informacijami o uspešni stornaciji
transakcije. Prav tako je uporabnik obveščen o morebitnih napakah pri obdelavi storno
transakcije (transakcija z izbrano referenčno številko je že stornirana, napačna številka
itd.).
5.2.5 Preklic transakcije
Primere, na katere ponavadi ne moremo vplivati, npr. izpad strojne opreme v podatkovnem
središču, odpoved mrežne opreme itd., je pri razvoju kakovostnih rešitev potrebno vnaprej
predvideti in načrtovati potrebne vzvode, da ne pride do nepotrebnih stroškov naročnika in
končnega uporabnika. Sistem Margento omogoča, da se takšni in podobni scenariji
upravljajo na način, ki možnost poslovne škode praktično izniči. Implementirana
funkcionalnost prav tako zagotavlja, da je vzrok preklica transakcije ovrednoten, časovno
potrjen in ustrezno zabeležen.
5.3 UPORABNIŠKA IZKUŠNJA
V tem poglavju bomo opisali izkušnjo, ki jo prek uporabniškega vmesnika Margento
mPOS terminala, prikazanega na sliki 10, doživi končni uporabnik storitve darilnih bonov.
Slika 10 − Margento mPOS terminal
Razvoj na tehnologijah mobilne telefonije temelječega sistema elektronskih darilnih bonov Stran 32
5.3.1 Nakup darilnega bona
Nakup bona123
F1 Meni
Koriščenje bonaStorno transakcije
Darilni boni
Terminal se nahaja v osnovnem oknu, kjer uporabnik s pomočjo navigacijskih tipk izbere
eno izmed ponujenih opcij (Nakup bona, Koriščenje bona, Storno transakcije). V tem
primeru izbere opcijo Nakup bona. Terminal preide v naslednje stanje.
Uporabnik mora vnesti pravilno geslo.
Izbra vrednosti bona1 5 €
10 €225 €3
Nazaj Potrdi
50 €4100 €5
Uporabnik mora izbrati eno od ponujenih vrednosti darilnega bona. S pritiskom ustrezne
tipke potrdi izbrano vrednost darilnega bona.
Uporabnik mora nato izbrati eno od ponujenih možnosti sporočila, ki bo poslano
prejemniku.
Razvoj na tehnologijah mobilne telefonije temelječega sistema elektronskih darilnih bonov Stran 33
Vnesite tel. št.
Izhod Potrdi
Uporabnik mora vnesti telefonsko številko prejemnika, na katerega bo poslan darilni bon.
Varednost 5€Prejemnik 031585855
Pokličite 1808in prislonite telefon
Nakup darilnega bona
Nazaj Datum
Če kupec želi takoj poslati prejemniku darilni bon, mora z mobilnim telefonom poklicati
izpisano številko (v našem primeru 1808).
Če kupec želi, da je darilni bon poslan prejemniku na nek določen dan, uporabnik izbere
izbiro »Datum«.
Uporabnik vnese datum, ko bo darilni bon posredovan prejemniku. S pritiskom tipke na
terminalu uporabnik potrdi vnesen datum.
Varednost 5€Prejemnik 031585855Dostavljeno 5.10.2011
Pokličite 1808in prislonite telefon
Nakup darilnega bona
Nazaj Datum
Kupec mora z mobilnim telefonom poklicati izpisano številko (v našem primeru 1808).
Razvoj na tehnologijah mobilne telefonije temelječega sistema elektronskih darilnih bonov Stran 34
V kolikor uporabnik ne želi nadaljevati z nakupom, se lahko vrne v osnovno stanje. Na tem
koraku terminal opozori končnega uporabnika, katero številko mora poklicati. Transakcija
se prične izvajati z opravljenim klicem.
Uporabnik je opravil klic, s čimer se je izvedla tudi identifikacija. Z opravljeno
identifikacijo se prične transakcija nakupa darilnega bona.
Ko MPC prejme zahtevo za procesiranje transakcije glede na identifikator ustrezne
aplikacije, to posreduje komponenti za procesiranje darilnih bonov. Pred tem komponenta
MPC preveri tudi ustreznost terminala (če je omogočen, ali je pooblaščen za določeno
opravilo itd.). V procesu avtorizacije se obravnava tudi zaključevanje (časovno žigosanje
in ustrezna sprememba statusa) morebitnih nezaključenih predhodnih transakcij in
inicializacija trenutne transakcije.
V času, ko je zahteva posredovana komponenti za procesiranje darilnih bonov, se preveri
MSISDN prejemnika in morebiten zamik pri pošiljanju darilnega bona (začetek
veljavnosti). V kolikor med preverjanjem ni prišlo do napake, se v podatkovno tabelo
vstavijo informacije o transakciji nakupa darilnega bona, ustvari se vavčer in v kolikor so
vsi koraki uspešni, se transakcijo označi kot uspešno.
Glede na izbran datum se v tabelo, ki skrbi za hranjenje SMS/MMS/PushMail/eMail
sporočil, vpiše ustrezno izbrano sporočilo, ki jo nato komponenta Messenger ustrezno
obdela in ob izbranem datumu pošlje prejemniku darilnega bona. MPC glede na uspešnost
obdelave nakupa darilnega bona transakcijo časovno žigosa in označi z ustreznim
statusom. Proti terminalu se pošljejo informacije o uspešnosti procesiranja.
Razvoj na tehnologijah mobilne telefonije temelječega sistema elektronskih darilnih bonov Stran 35
Transakcija je že skoraj končana. S tem zaslonom terminal opozori uporabnika, da se bo
transakcija kmalu zaključila. Uporabnik mora v tem primeru počakati do zaključka
transakcije.
Po zaključeni transakciji bonitetnega zbiranja terminal samodejno natisne potrdilo o
zbiranju bonusa.
Nakup darilnega bona
Transakcija uspešna!
Izhod Natisni
Po končanem tiskanju se prikaže informacija o uspešno izvedeni transakciji. S pritiskom na
tipko se terminal vrne v osnovno okno, lahko pa terminal tudi ponovno natisne potrdilo za
uporabnika. Okno je prikazano tako dolgo, dokler uporabnik ne pritisne tipke za izhod.
Nakup bona123
F1 Meni
Koriščenje bonaStorno transakcije
Darilni boni
Terminal po zaključeni transakciji prikaže osnovno okno ob pogoju, da je uporabnik na
predhodnem zaslonu pritisnil tipko za izhod.
Razvoj na tehnologijah mobilne telefonije temelječega sistema elektronskih darilnih bonov Stran 36
Slika 11 − Potrdilo o nakupu darilnega bona
5.3.2 Koriščenje darilnega bona
Nakup bona123
F1 Meni
Storno transakcije
Darilni boni
Koriščenje bona
Uporabnik v osnovnem stanju s pomočjo navigacijskih tipk oz. numeričnih tipk (1, 2, 3)
izbere eno izmed ponujenih opcij (Nakup bona, Koriščenju bona, Storno transakcije). V
tem primeru uporabnik izbere opcijo Koriščenje bona, ki jo potrdi s pritiskom ustrezne
tipke (v kolikor je bila opcija izbrana s pomočjo numerične tipke, potem potrditev ni
potrebna). Terminal preide v naslednje stanje.
Stranka mora poklicati 1808 in prisloniti telefon k terminalu, da se izvede transakcija o
stanju darilnega bona. V kolikor uporabnik ne želi nadaljevati, se lahko vrne v osnovno
Razvoj na tehnologijah mobilne telefonije temelječega sistema elektronskih darilnih bonov Stran 37
stanje. Na tem koraku terminal opozori končnega uporabnika, katero številko mora
poklicati. Transakcija se prične izvajati z opravljenim klicem.
Komponenta MPC glede na aplikacijski identifikator posreduje procesiranje transakcije
komponenti za upravljanje mobilnih darilnih bonov. Ponovno se izvede preverjanje
ustreznosti terminala in inicializacija transakcije. Komponenta za procesiranje darilnih
bonov nato glede na MSISDN stranke pregleda stanje veljavnih darilnih bonov na
virtualnem računu. Komponenta posreduje informacije o stanju proti MPC, ta pa preko
komponente MAP dalje proti terminalu.
Po uspešno izvedeni transakciji se na zaslonu izpiše razpoložljivo stanje darilnega bona.
Stanje darilnega bona
Stanje: 5 €
Transakcija uspešna!
Izhod Koriščenje
Uporabnik izbere »Koriščenje«, kjer mora nato vnesti znesek, ki ga želi koristiti stranka.
Če izbere »Izhod«, prekine postopek koriščenja darilnega bona.
Vnos zneska koriščenja
2 €Maksimum: 5
Izhod Potrdi
Razvoj na tehnologijah mobilne telefonije temelječega sistema elektronskih darilnih bonov Stran 38
Po vnesenem znesku se s pritiskom tipke »Potrdi« izvede transakcija za koriščenje
darilnega bona.
Po končanem preverjanju ustreznosti terminala in morebitnem zaključevanju predhodno
nezaključenih transakcij komponenta MPC izvede inicializacijo transakcije. Zahtevek se
glede na identifikacijsko številko aplikacije (v tem primeru je to številka, ki predstavlja
koriščenje darilnega bona) posreduje proti ustrezni komponenti.
Komponenta za procesiranje darilnih bonov preveri ustreznost izbranega zneska in
ustrezno posodobi stanje ter znesek darilnega bona, prav tako se posodobi tudi status
transakcije nad darilnimi boni. V kolikor so vsi koraki uspešni, se ta informacija posreduje
komponenti MPC (v primeru napake se le-ta ustrezno diagnosticira in ovrednotena pošlje
proti komponenti MPC), ki se preko komponente MAP posreduje proti terminalu. MPC
glede na uspešnost obdelave nakupa darilnega bona transakcijo časovno žigosa in označi z
ustreznim statusom.
Transakcija je že skoraj končana. S tem zaslonom terminal opozori uporabnika, da se bo
transakcija kmalu zaključila. Uporabnik mora v tem primeru počakati do zaključka
transakcije.
Po zaključeni transakciji terminal samodejno natisne potrdilo o koriščenju darilnega bona.
Razvoj na tehnologijah mobilne telefonije temelječega sistema elektronskih darilnih bonov Stran 39
Po končanem tiskanju se izpiše preostalo stanje darilnega bona. Terminal se lahko vrne v
osnovno okno ali pa ponovno natisne potrdilo za končnega uporabnika. Okno je prikazano
tako dolgo, dokler uporabnik ne pritisne tipke za izhod.
Če je uporabnik na predhodnem zaslonu pritisnil tipko za izhod, terminal po zaključeni
transakciji prikaže osnovno okno.
Slika 12 − Potrdilo koriščenja darilnega bona
Razvoj na tehnologijah mobilne telefonije temelječega sistema elektronskih darilnih bonov Stran 40
5.3.3 Stornacija transakcije
Terminal se nahaja v osnovnem oknu, kjer uporabnik s pomočjo navigacijskih tipk oz.
numeričnih tipk izbere eno izmed ponujenih opcij (Nakup bona, Koriščenje bona, Storno
transakcije). V tem primeru uporabnik izbere opcijo Storno transakcije, ki jo potrdi s
pritiskom ustrezne tipke (v primeru izbire z numeričnimi tipkami potrditev ni potrebna).
Uporabnik vnese referenčno številko potrdila, ki ga želi stornirati, s pomočjo numeričnih
tipk (0−9) na terminalu. Uporabnik mora vnesti celotno, 20-mestno referenčno številko
brez presledkov.
Po uspešno vneseni referenčni številki se na terminalu pokaže informativna vsebina
zaslona, na kateri je naveden tip transakcije (Storno transakcije) in predhodno vnesena 20-
mestna referenčna številka. V kolikor si stranka na tem mestu premisli, da ne želi
nadaljevati s storno proceduro, se lahko vrne v predhodno stanje. S pritiskom na gumb za
nadaljevanje uporabnik prične storno transakcijo, ampak samo v primeru, da je GPRS
signal na voljo. V obratnem primeru, kadar GPRS signala ni na voljo, terminal uporabnika
Razvoj na tehnologijah mobilne telefonije temelječega sistema elektronskih darilnih bonov Stran 41
na to opozori, s čimer se storno transakcija ne more izvesti. S pritiskom na gumb se
terminal vrne na osnovni zaslon.
Po potrditvi podatkov se prične izvajati storno transakcija. Po prejemu zahtevka na
komponento MPC ga glede na aplikacijski identifikator posreduje ustrezni komponenti. V
tem primeru je to komponenta za procesiranje darilnih bonov. Glede na referenčno številko
se pridobi ustrezna operacija, ki je zabeležena v podatkovni bazi.
Sledi preverjanje referenčne številke − ali sploh obstaja operacija z vnešeno referenčno
številko, ali je operacija s to referenčno številko že stornirana in ali je povezana operacija
ustrezno potrjena. V kolikor so vsi potrebni pogoji izpolnjeni, se transakcija nad darilnim
bonom označi kot stornirana, razpoložljiva vrednost darilnih bonov na virtualnem računu
pa se ustrezno posodobi. V kolikor so vsi koraki uspešni, se transakcija na komponenti
MPC ustrezno potrdi, proti terminalu pa preko MAP pošlje potrdilo z dodatnimi
informacijami o stornaciji.
Transakcija je že skoraj končana. S tem zaslonom terminal opozori uporabnika, da se bo
transakcija kmalu zaključila. Uporabnik mora v tem primeru počakati do zaključka
transakcije.
Razvoj na tehnologijah mobilne telefonije temelječega sistema elektronskih darilnih bonov Stran 42
Po zaključeni storno transakciji terminal samodejno natisne potrdilo za storno transakcijo
(prikazano na sliki 13) in na zaslonu terminala prikaže stanje darilnega bona po storno
transakciji.
Slika 13 − Potrdilo storno transakcije
V naslednjem poglavju je podrobneje opisana realizacija komponente, ki skrbi za
procesiranje transakcije na delu poti od zahtevka uporabnika preko interakcije s
terminalom in lastnim mobilnim telefonom do potrdila, ki ga natisne mPOS terminal, kot
zaključek posameznega poslovnega procesa, opisanega zgoraj.
5.4 ANALIZA REŠITVE
Za podporo sistemu darilnih bonov je bilo potrebno implementirati komponento znotraj
večje entitete bonusnega programa zvestobe (BLP). Komponenta je bila izdelana v
programskem jeziku C++. Prednosti izbranega programskega jezika so možnost direktne
integracije z jezikom C, zmogljivost in nizkonivojska strojna koda, v katero jo prevede
prevajalnik. Zaradi ogromne skupnosti razvijalcev v programskem jeziku C++ je na
internetu in literaturi tudi precej navodil in priporočil v obliki dobrih praks ter ostale
dokumentacije, ki nedvoumno skrajša čas razvoja. Nenazadnje je veliko priporočil, navodil
Razvoj na tehnologijah mobilne telefonije temelječega sistema elektronskih darilnih bonov Stran 43
in opisov dobrih praks dostopno tudi v interni dokumentaciji in vodičih podjetja Margento
R&D.
Zaradi hkratnega dela več razvijalcev na projektu je pomembno vlogo pri vzdrževanju reda
pri izvorni kodi, dokumentaciji in ostalih datotek (dinamične knjižnice, inicializacijske
datoteke itd.) odigral odprtokodni sistem za upravljanje verzij, TortoiseSVN. Podatki,
organizirani v relacijsko podatkovni model, so hranjeni v podatkovni bazi na tehnologiji
Microsoft SQL Server 2008. Podatkovna baza med drugim podpira tudi prožilce (trigger),
SQL funkcije in podporo transakcijskemu programskemu jeziku Transact-SQL. Pri razvoju
in takojšnjemu dostopu do podatkov je bil uporabljen produkt Microsoft SQL Management
Studio 2008. Pri razvoju poslovne logike pa smo uporabljali razvojno okolje Microsoft
Visual Studio 2005.
Komponenta za procesiranje transakcij sistema mobilnih darilnih bonov, ki že kar nekaj
časa deluje v produkcijskem okolju, je strežniški programski modul. To pomeni, da za
razliko od spletnih ali namiznih programov nima grafičnega uporabniškega vmesnika.
Kljub temu je tudi pri aplikacijah takšnega tipa potrebna interakcija z administratorji in
razvijalci zaradi sledljivosti delovanja komponente.
V ta namen je bilo zagotovljeno logiranje oz. dnevniško evidentiranje, ki beleži dogodke s
časovnim žigom. Datoteke z dnevniškimi izpisi, ki med drugim beležijo klice izbranih
funkcij in podobne podatke, se ob izteku intervala avtomatsko arhivirajo. Dnevniškim
zapisom lahko priredimo stopnjo pomembnosti: OK, INFO, ERROR, WARNING,
CRITICAL, ponavadi pa je zaradi večnitnega (multi-threading) delovanja strežniških
komponent beležen ID posamezne niti. Izvorna koda 1 prikazuje primer uporabe fukcije, ki
opravlja beleženje sistemskih dogodkov.
//...
else {
GenLogMsg(LOG_ERR,"[%I128u] BLP_AddGift ERROR Code:
%d",u128TransactionID,ERR_GIFT_TRANSACTION_ERR);
return ERR_GIFT_TRANSACTION_ERR;
}
GenLogMsg(LOG_OK,"[%I64d] uGiftHandlers: BLP_UseGift OK: %s",
u128TransactionID,achExtraOut);
Razvoj na tehnologijah mobilne telefonije temelječega sistema elektronskih darilnih bonov Stran 44
return STATUS_GIFT_OK;
//...
Izvorna koda 1 − dnevniško evidentiranje
Sistem logiranja omogoča tudi obveščanje preko elektronske pošte v primeru, da je bil
zabeležen dogodek na komponenti z določeno stopnjo pomembnosti (recimo pri vseh
dogodkih s stopnjo pomembnosti ERROR so razvijalci komponente, ki je dogodek
zabeležila, lahko nemudoma obveščeni preko elektronske pošte).
Za podporo hranjenju podatkov pri transakcijah mobilnega sistema darilnih bonov v
podatkovni bazi je bilo potrebno posodobiti in dopolniti obstoječi podatkovni model baze,
ki ga hkrati uporablja komponenta BLP. Dodali smo tabele, ki hranijo podrobnosti pogodb
ponudnikov darilnih bonov, in tabelo bonov, ki hrani podatke o posameznem darilnem
bonu, ter tabelo, ki hrani dodatne informacije o transakcijah nad darilnimi boni.
Tabela pogodb je preko identifikacijske številke prodajalca in identifikacijske številke
prodajnega mesta (POS) povezana v obstoječi podatkovni model. Tabela hrani informacije
o veljavnosti pogodbe, omejitvah vrednosti darilnih bonov, statusu pogodbe, podatkih o
zaščiti darilnih bonov izdajatelja s številko PIN, opisih in ostalo. S tem je dosežena visoka
stopnja prilagodljivosti delovanja sistema (parameterizacija) različnim zahtevam
ponudnikov darilnih bonov.
Tabela darilnih bonov je v preostali podatkovni model vpeta prek treh atributov:
identifikatorja stranke, identifikatorja navideznega oz. virtualnega računa stranke in
identifikatorja podjetja, kjer je bil darilni bon kupljen Tabela pa hrani tudi informacije o
veljavnosti posameznega darilnega bona, statusu, tipu vavčerja, informacije o vrednosti in
preostali vrednosti darilnega bona, MSISDN prejemnika in pošiljatelja, preko tujega ključa
pa je povezana tudi na morebitno osebno sporočilo, ki je bilo poslano pri nakupu darilnega
bona. Shranjena je tudi referenčna številka, ki predstavlja identifikator pri uporavljanju
darilnih bonov.
Kljub temu, da se transakcije nad vsemi operacijami sistema bonusnega programa beležijo
tudi v skupno transakcijsko tabelo, je bila smiselna dopolnitev modela s tabelo Gift
Transactions zaradi ograjevanja podatkov in pohitritve ter poenostavitve zahtevkov
predstavitvenega nivoja Margento sistema. Tabela vsebuje tuj ključ na darilni bon, saj so
vse transakcije nad darilnimi boni navezane na operacije nad vavčerji. Na tak način tabela
Razvoj na tehnologijah mobilne telefonije temelječega sistema elektronskih darilnih bonov Stran 45
darilnih transakcij ne beleži transakcij servisnih, vzdrževalnih in ostalih klicev, ki so kljub
temu zabeleženi v skupni transakcijski tabeli. Med informacijami, ki jih vodimo v
transakcijski tabeli, so tudi časovni žig, znesek in status.
Za povezavo med poslovno logiko sistema darilnih bonov in podatkovnim nivojem sistema
Margento je bila uporabljena knjižnica OTL, ki je bila zasnovana kot kombinacija ogrodja
C++ predlog in OTL adapterjev. Le-ti so ovojnice okrog programskih vmesnikov
podatkovnih baz in se v obliki razrednih tipov prenašajo v ogrodje predlog [20].
Izvorna koda 2 prikazuje primer funkcije, ki jo komponenta kliče pri branju
prednastavljenih osebnih sporočil. Funkcija iz podatkovne baze pridobi ime in priimek
klienta glede na identifikacijsko številko (primarni ključ) ter status.
int CBLPDB::RetrieveClientName(int iClientId, int iStatus, char *szFirstName, char *szLastName, CDBConnection *pcCon) { GenLogMsg(LOG_DB_OK, "BLPDB::RetrieveClientName: iClientId = %i", iClientId); CConnHold CCP(this, pcCon); if(((CDBConnection*)CCP)==NULL) return GIFTDB_NO_CONNECTION; try { otl_stream o(1,"SELECT TOP 1 FirstName, LastName " "FROM Clients " "WHERE Id=:clid<int> " "AND Status = :stat<int> " "ORDER BY Id DESC ", CCP ); o << iClientId; o << iStatus; if (o.eof()) { NetLog_Message(LOG_DB_WARN,(INT64)0,0, "BLPDB::RetrieveClientName:No Record."); o.close(); return GIFTDB_RECORD_NOT_FOUND; } o >> szFirstName; o >> szLastName; GenLogMsg(LOG_DB_DETAIL,"BLPDB::RetrieveClientName SELECT: RPC=%ld", o.get_rpc()); o.close(); return GIFTDB_SUCCESS; } catch (otl_exception& e) { NetLog_Message(LOG_DB_ERR,(INT64)0,0, "CBLPDB::RetrieveClientName: SELECT Failed: %s (State=%s, SQL='%s', Var='%s')", e.msg, e.sqlstate, e.stm_text, e.var_info); }
Razvoj na tehnologijah mobilne telefonije temelječega sistema elektronskih darilnih bonov Stran 46
catch (...) { NetLog_Message(LOG_DB_ERR,(INT64)0,0, "CBLPDB::RetrieveClientName: SELECT failed, unknown exception"); } return GIFTDB_DB_ERROR; }
Izvorna koda 2 − Funkcija, ki pridobi ime in priimek iz tabele Clients
Kot je razvidno iz kode, je delo z OTL tokom (otl_stream) precej enostavno in
samorazložljivo: v konstruktorju kot parameter podamo SQL stavek, ki je bil med
razvojem najprej intenzivno testiran v okolju SQL Management Studio. Namesto
konkretnih vrednosti v SQL označimo spremenljivke (istih podatkovnih tipov, kot je
definirano v podatkovni bazi) kot v primeru spremenljivke za identifikacijsko številko
klienta (ClientID): :clid<int>. Z operatorji << v tok po vrsti vnašamo vhodne parametre,
operatorjem >> pa na koncu pridobimo vrednost izvršenega SQL stavka s konkretnimi
vrednostmi.
SQL stavki v kodi so parameterizirani, kar je predpogoj, da preprečimo morebitne napade
z SQL vrivanjem. Poleg šifriranja povezovalnih stavkov in kriptiranja posameznih sej so
varnosti podrejeni številni mehanizmi in določila, ki jih je potrebno spoštovati že v fazi
implementacije. Kasneje, ko je določena aplikacija že v produkcijskem okolju, pa je
potrebno zagotoviti omejen dostop do kritičnih delov sistema in razdeliti pravice
posameznim vlogam. Izvajati je potrebno tudi redno revidiranje podatkovne baze, s čimer
dosežemo visoko stopnjo integritete podatkov in učinkovito nadziranje dostopov.
Rezultat implementacije je delujoča, varna in robustna strežniška programska rešitev, ki
skrbi za procesiranje transakcije nad sistemom darilnih bonov, ki temelji na tehnologijah
mobilne telefonije.
Razvoj na tehnologijah mobilne telefonije temelječega sistema elektronskih darilnih bonov Stran 47
6 SKLEP
Darilne bone ponujajo tako farmacevtska podjetja, supermarketi, restavracije, nakupovalna
središča, bencinski servisi, spletne trgovine kot tudi ponudniki, ki ponujajo darilne bone,
unovčljive v konzorcijih. Zaradi skrbne zasnove je rešitev razširljiva z minimalnimi
modifikacijami na katerokoli področje, ki ga naročniki hočejo zajeti. Že v osnovi pa
zajema celovit nabor možnih integracij − kot spletna storitev (Web Service), kot storitev,
ki uporablja protokole USSD, SMS ali MMS, kot aplikacija za pametne telefone − in
podpira različne načine identifikacije; identifikacija z interakcijo Margento terminala in
mobilnega telefona, magnetne ali NFC kartice, identificirati pa se je možno tudi z uporabo
uporabniškega imena in gesla.
V razvojnem ciklu sistema velja izpostaviti načrtovanje, kjer je modeliranje poslovnih
procesov igralo pomembno vlogo pri identifikaciji ozkih grl in možnih optimizacij ter
uporabo vrednot agilnega razvoja, natančneje metodologije Scrum v fazah implementacije
in testiranja. Nenazadnje so modeli v notaciji BPMN preprosti in predvsem
samorazlagalni, zaradi česar so lahko že kot takšni skupen jezik z naročnikom, katerega
pomembna vloga pri razvoju je skupna značilnost agilnega razvoja programske opreme.
Vpeljava agilne metode Scrum v proces razvoja je omogočila, da je končni produkt
posameznega šprinta predstavljal zaključeno enoto celotnega sistema mobilnih darilnih
bonov, katerega delovanje je bilo možno demonstrirati po zaključku posameznega šprinta.
Prav tako je zaradi vsakodnevne aktivnosti v obliki petminutnih sestankov razvoj potekal
hitro, saj so se posamezni zahtevnejši problemi reševali že na teh sestankih v obliki navodil
in priporočil.
Na splošno lahko rečemo, da so uporabljeni pristopi pripomogli k rešitvi, ki je bila
učinkovito izvedena. Sistem že tako nekaj časa uspešno deluje v produkcijskem okolju.
Gledano v celoti pa je trend nakupov darilnih bonov tako kot na globalnem tržišču
usmerjen navzgor, kar je moč opaziti v naraščajočem številu transakcij, ki jih komponenta,
katere razvoj je predstavljen v diplomskem delu, dnevno procesira. Vidik komercialnega
uspeha pa je še dodatno potrdilo, da je bil pristop k razvoju pravilen.
Razvoj na tehnologijah mobilne telefonije temelječega sistema elektronskih darilnih bonov Stran 48
7 LITERATURA IN VIRI
[1] Mobile phone http://en.wikipedia.org/wiki/Mobile_phone (zadnjič obiskano: 8. 7.
2012)
[2] P. Brajak: Uporaba agilnih metodologij pri razvoju J2EE projektov, Spletni časopis
centra za objektno tehnologijo, zima 2003.
[3] Gift-card sales rise after falling for two years http://goo.gl/Hzstu (zadnjič obiskano: 8.
7. 2012)
[4] Če pozabimo na rok veljavnosti darilnih bonov http://bit.ly/AE7MSd (zadnjič
obiskano: 8. 7. 2012)
[5] Gift Cards, Gift Certificates: Compare, and Weigh the Pros and Cons http://www.well-
chosen-gift.com/gift-cards.html (zadnjič obiskano: 8. 7. 2012)
[6] 2011 gift card comparison chart http://is.gd/SM0PLa (zadnjič obiskano: 8. 7. 2012)
[7] MBO Gift cards http://www.mbo.com/web/giftcards.jsp (zadnjič obiskano: 10. 6. 2012)
[8] Target mobile gift cards http://www.target.com/c/mobile-giftcards-target/-/N-5ckp5
(zadnjič obiskano: 8. 7. 2012)
[9] DoDo Mobile http://www.dodomobile.com/ (zadnjič obiskano: 8. 7. 2012)
[10] A. Medved, A. Chowdhury, S. Goličnik: Preizkušanje GPRS modemov ter razvoj
mPOS tiskanine za več GPRS modemov, Zbornik devetnajste mednarodne Elektrotehniške
in računalniške konference ERK 2010, 20.−22. september 2010 Portorož, Slovenija
[11] http://www.margento.com/uploads/brochures/Margento_Corpo_Brochure.pdf
[12] Margento R&D − System Overview (interna dokumentacija)
[13] B. Bombek, B. Prihavec, A. Chowdhury: Razvoj varnostnih rešitev pri
informacijskem sistemu mobilnega plačevanja, Zbornik devetnajste mednarodne
Elektrotehniške in računalniške konference ERK 2010, 20.−22. september 2010 Portorož,
Slovenia
Razvoj na tehnologijah mobilne telefonije temelječega sistema elektronskih darilnih bonov Stran 49
[14] J. Gorjanc, A. Chowdhury, P. Žerdin, J. Svečko: Margento TaPOS plačilni sistem s
podporo GPRS MDB vmesnika, Zbornik devetnajste mednarodne Elektrotehniške in
računalniške konference ERK 2010, 20.−22. september 2010 Portorož, Slovenia
[15]Agile software development http://en.wikipedia.org/wiki/Agile_software_development
(zadnjič obiskano: 8. 7. 2012)
[16] http://agilemanifesto.org/iso/en/ (zadnjič obiskano: 10. 6. 2012)
[17] M. Bajec, M. Krisper: Agilne metodologije razvoja informacijskih sistemov, FRI,
Ljubljana
[18] K. Schwaber, M. Beedle: Agile Software Development with Scrum, Pearson
Education International, 2002
[19] M. Heričko: Sodobni procesi, prosojnice pri predmetu Gradnja informacijskih
sistemov, FERI
[20] OTL 4.0, Introduction http://otl.sourceforge.net/otl3_intro.htm (zadnjič obiskano: 8. 7.
2012)
Razvoj na tehnologijah mobilne telefonije temelječega sistema elektronskih darilnih bonov Stran 50
Razvoj na tehnologijah mobilne telefonije temelječega sistema elektronskih darilnih bonov Stran 51
Razvoj na tehnologijah mobilne telefonije temelječega sistema elektronskih darilnih bonov Stran 52