Oficiální zadání práce
České vysoké učení technické v Praze Fakulta elektrotechnická Katedra Počítačů
¨
Bakalářská práce
Porovnání vybraných telekomunikačních organizací operujících na českém trhu. Petr Mejsnar
Vedoucí práce: RNDr. Bohumír Štědroň, CSc.
Studijní program: Softwarové technologie a management Obor: Softwarové Inţenýrství Květen 2010
Poděkování Chtěl bych tímto poděkovat všem lidem, kteří přispěli ke vzniku této bakalářské práce. Děkuji vedoucímu bakalářské práce RNDr. Bohumíru Štědroňovi, CSc. za pomoc a za velmi zajímavé téma. Dále bych chtěl poděkovat své rodině a přítelkyni za jejich podporu, bez které by tato práce určitě nemohla vzniknout
Prohlášení Prohlašuji, ţe jsem svou bakalářskou práci vypracoval samostatně a pouţil jsem pouze podklady uvedené v přiloţeném seznamu. Nemám závaţný důvod proti uţití tohoto školního díla ve smyslu §60 Zákona č. 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů (autorský zákon).
V Praze 28.5. 2010…………………………………………………………………
Abstract This work is focused on comparison of telecomunication companies operating in Czech market. Result, based on history of telecomunication companies and theirs technologies, is be design and implementation of aplication, which will choose the best cell-phone tariff for user. This work includes implementation description and future vision.
Abstrakt Tato práce se zabývá srovnáním vybraných telekomunikačních společností působících na českém trhu.Výsledkem, na základě prostudování historie a technologií mobilních operátorů, bude návrh a implementace aplikace, která uţivateli vybere idealní mobilní tarif na míru, včetně popisu implementace a výhledu do budoucna.
Obsah Contents 1.
Úvod.......................................................................................................................... 1
2.
Popis problému, specifikace cíle .............................................................................. 3
3.
Historie...................................................................................................................... 5
4.
5.
3.1.
Vodafone ............................................................................................................ 6
3.3.
T-Mobile ............................................................................................................ 7
3.4.
U-fon .................................................................................................................. 7
Srovnání Operátorů ................................................................................................... 9 4.1.
Ceny ................................................................................................................... 9
4.2.
Pokrytí ................................................................................................................ 9
4.3.
Technologie ...................................................................................................... 11
Analýza a návrh řešení ............................................................................................ 13 5.1.
Analýza aplikace .............................................................................................. 13
5.2.
Případy Pouţití ................................................................................................. 13
5.3.
Moţnosti implementace ................................................................................... 20
5.3.1.
Webové rozhraní .......................................................................................... 20
5.3.2.
Aplikace v Javě............................................................................................. 20
5.4. 6.
Databáze ........................................................................................................... 21
Realizace ................................................................................................................. 23 6.1.
Java................................................................................................................... 23
6.2.
Model-view-controller ..................................................................................... 24
6.2.1.
Princip........................................................................................................... 24
6.3.
Apache Derby................................................................................................... 25
6.4.
Netbeans ........................................................................................................... 25
6.5.
Popis kódu ........................................................................................................ 25
6.5.1.
Třída Main .................................................................................................... 26
6.5.2.
Třída View .................................................................................................... 26
6.5.3.
Třídy Tarif, Operátor, User .......................................................................... 26
6.5.4.
Třída Calculate ............................................................................................. 28
7.
Testování ................................................................................................................. 31
8.
Srovnání s existujícím řešením ............................................................................... 33
9.
8.1.
Hledání.............................................................................................................. 33
8.2.
Popis ................................................................................................................. 33
8.3.
Srovnání ............................................................................................................ 33
Závěr........................................................................................................................ 35 A.
Literatura ....................................................................................................... 37
B.
Seznam pouţitých zkratek ............................................................................ 39
C.
Snímky aplikace ............................................................................................ 41
D.
Instalační příručka ......................................................................................... 45
E.
Obsah přiloţeného CD .................................................................................. 47
Seznam obrázků Obrázek 4.2: Pokrytí signálem datových sluţeb ............................................................. 10 Obrázek 4.1: Pokrytí signálem hlasových sluţeb ........................................................... 10 Obrázek 5.1: Databázový diagram.................................................................................. 21 Obrázek 6.1: Duke - maskot jazyka Java ........................................................................ 23 Obrázek 6.2: Logo Apache Derby .................................................................................. 25 Obrázek 9.1: Tabulka tarifů ............................................................................................ 41 Obrázek 9.2: Přidání tarifu.............................................................................................. 41 Obrázek 9.3: Tabulka operátorů ..................................................................................... 42 Obrázek 9.4: Úprava operátora ....................................................................................... 42 Obrázek 9.5: Záloţka výpočet a menu uţivatel .............................................................. 43 Obrázek 9.6: Okno výsledek výpočtu ............................................................................. 43
Seznam tabulek Tabulka 4.1: Srovnání technologií mobilních operátorů ................................................ 11 Tabulka 5.0.1: Use Case Přidat operátora ....................................................................... 15 Tabulka 5.0.2: Use Case Editovat operátora ................................................................... 15 Tabulka 5.0.3: Use Case Smazat operátora .................................................................... 16 Tabulka 5.0.4: Use Case Přidat tarif ............................................................................... 16 Tabulka 5.0.5: Use Case Editovat tarif ........................................................................... 17 Tabulka 5.0.6: Use Case Smazat tarif ............................................................................. 17 Tabulka 5.0.7: Use Case Vybrat tarif na míru ................................................................ 18 Tabulka 5.0.8: Use Case Přidat uţivatele ....................................................................... 18 Tabulka 5.0.9: Use Case Editovat Uţivatele .................................................................. 19 Tabulka 5.0.10: Use Case Smazat uţivatele ................................................................... 19
1.
Úvod
Co si představíme pod pojmem telekomunikační organizace operující na českém trhu? Pravděpodobně společnosti poskytující telekomunikační sluţby. V minulosti mezi tyto sluţby patřila například telegrafie, dnes si spíše vybavíme telefonii, rádio, televizi a v neposlední řadě internet. Telekomunikační technologie se pro nás staly kaţdodenní samozřejmostí. Vývoj v této oblasti pokračuje v obrovském tempu. To co bylo před deseti lety téměř nemoţné, je dnes běţně k dostání. Bez internetu si někteří lidé v současnosti nedokáţou představit ţivot. Mobilní telefon uţ vlastní téměř kaţdý. Bohuţel však všechny tyto technologie nejsou zdarma. A s větším rozšířením přichází i větší náklady na jejich provoz. Vzhledem k této skutečnosti vznikla myšlenka této práce. Protoţe nikdo z nás jistě nechce vyhazovat peníze takzvaně z okna, bylo by vhodné srovnat nabídky jednotlivých organizací a jak lépe to udělat neţ pomocí počítačové aplikace. Pro účely této bakalářské práce budeme pracovat jen s daty současných nejrozšířenějších organizací poskytujících mobilní telefonii. Tato oblast v sobě spojuje v podstatě všechny dnešní telekomunikační technologie. Společnosti poskytující pevnou telefonii, televizi, rádio a internet necháme stranou z důvodu jejich omezeného zaměření. Druhá kapitola rozebírá důvody, proč jsem se rozhodl pro toto téma a specifikuje cíle, které jsem si určil. Třetí kapitola popisuje stručnou historii telekomunikací a mobilních operátorů, kteří v současnosti působí na českém trhu. Čtvrtá kapitola srovnává telekomunikační společnosti a ukazuje nám, které technologie pouţívají. V páté kapitole se věnuji analýze nové aplikace, představuji případy pouţití a porovnávám různé způsoby implementace. Dále představuji poţadavky a řešení databáze. V šesté kapitole se zabývám realizací. Představuji pouţité technologie a popisuji vzniklý zdrojový kód. Sedmá kapitola se zaměřuje na testování vzniklé aplikace. V osmé kapitole hledám jiţ existující konkurenční řešení a porovnávám s ním svou nově vyniklou aplikaci. Poslední kapitola shrnuje výsledek práce a navrhuje moţné budoucí pokračování ve vývoji.
1
2
2. Popis problému, specifikace cíle Mobilní technologie v dnešní době pouţívá valná většina populace. Nabídky telekomunikačních společností jsou široké, různorodé a někdy aţ matoucí. Pro normálního člověka je široká nabídka výhodná, jenţe ne kaţdý z nás má čas nebo i chuť se věnovat dlouhé hodiny nebo i dny výběru nej výhodnější sluţby. V takovém případě kaţdý rád vyuţije moţnosti srovnání několika různých moţností během pár okamţiků. A v tuto chvíli přichází na scénu má aplikace. Rozhodl jsem se, ţe naprogramuji aplikaci, která uţivateli vybere mobilní tarif na míru jeho poţadavkům. Mým cílem bylo, abych na základě prostudování historie operátorů a technologií, které nabizejí navrhl a naprogramoval jednoduchou aplikaci, která toto zvládne. Důraz je pritom kladen na to, aby uţivatel měl moţnost co nejpodrobněji zadat své poţadavky a přitom aby touto činností strávil co nejméně času.
3
4
3.
Historie
Historie mobilní komunikace sahá aţ do první poloviny 19. století. Jiţ v roce 1837 sestrojil Samuel Morse první telegraf, který však fungoval zatím jen s pomocí drátů. Bezdrátové přenosy se začaly testovat aţ v pozdějšich letech devatenáctého století. Mezi průkopníky patřili Angličan D. E. Hughes, německý vědec Heinrich Hertz a nakonec Ital GuglielmoMarconi, který roku 1897 jako první úspěšně sestrojil a zprovoznil radiový systém. Marconi prozatím přenášel jen telegrafní kód. Teprve roku 1906 přenesl R. Fesseden pomocí radia lidský hlas. V desátých a dvacátých letech minulého století došlo k velkému rozvoji radiového vysílání. Průkopníkem v pouţívání radia byla detroitská policie, kde v roce 1921 zprovoznili první auto s radiopřijímačem morseovky a o sedm let později jiţ přenášeli také hlas. V desátých a dvacátých letech minulého století došlo k velkému a zpočátku naprosto nekontrolovanému rozvoji radiového vysílání. Počátkem dvacátých let se v USA začaly pouţívat mobilní radiové stanice, které fungovaly v pásmu 2 MHz. Pouţívaly je pouze policejní a vojenské sloţky a většinou šlo pouze o přijímače. Průkopníkem v pouţívání radia byla detroitská policie, kde v roce 1921 zprovoznili první auto s radiopřijímačem morseovky a o sedm let později jiţ přenášeli také hlas. I v následujících letech stála policie, armáda a záchranné síly v čele výzkumu mobilního radia. První mobilní radio, které přenášelo hlas v obou směrech, sestrojili v Bell Laboratories roku 1924. Veřejnost měla moţnost pouţívat rádiové přenosy od roku 1946, Konkrétně šlo o radiotelefony montované do automobilů, které pouţívaly šest kanálů v pásmu 150 MHz. Poté se vývoj bezdrátových technologií rozběhl na plné obrátky. Vývoj se zaměřil především na cellulární sítě. V Evropě vzniklo několik rozdílných sítí. V roce 1982 proto Evropská komise pro pošty a telekomunikace (sdruţující 26 evropských telekomunikačních společností) spustila projekt Groupe Spéciale Mobile (GSM), která měla vyvinout celoevropskou mobilní telefonní síť. Bylo rozhodnuto, ţe nová síť bude plně digitální a bude pracovat na frekvenci 900 MHz.V roce 1989 převzal zodpovědnost nad vývojem GSM Evropský telekomunikační institut a o rok později byl zveřejněn první návrh standardu. Standard byl vydán v roce 1991. Ke spuštění prvních sítí došlo v průběhu roku 1992 Společně s vývojem GSM probíhal ve Velké Británii vývoj systému DCS1800, který byl zaloţen na standardu GSM, ale pouţíval frekvenci 1800 MHz. Roku 1995 byl definován standard GSM Phase 2, který zavedl nové sluţby - např. datové přenosy. Došlo také k přejmenování standardu DCS1800 na GSM1800. V Evropě se pouţívají
5
pásma 900 MHz i 1800 MHz, přičemţ většina mobilních telefonů dokáţe pracovat v obou pásmech a přepínají se podle momentální dostupnosti a kvality signálu.
3.1.
Vodafone
Získal licence na provozování duální mobilní sítě GSM 900/1800 v říjnu roku 1999 ještě pod značkou Český Mobil a.s.. Byl prvním duálním mobilním operátorem v České republice. Komerční provoz GSM sítě v ČR zahájil pod značkou Oskar. Na trh Oskar vstoupil 1. března 2000 jako 3. mobilní operátor v České republice. Během necelého roku vybudovali síť srovnatelnou s konkurencí. V červnu 2005 se Oskar stal členem rodiny Vodafone a v roce 2006 se Oskar Mobil a.s. přejmenoval na Vodafone Czech Republic a.s. V roce 2007 se Vodafone stal komplexním telekomunikačním operátorem, kdyţ spustil první skutečně konvergovanou sluţbu Vodafone OneNet, která firmám nabízí mobilní a pevné hlasové i datové sluţby včetně připojení k internetu. V březnu 2009 spustil komerční provoz 3G sítě.
3.2.
Telefónica O2 Czech Republic, a.s.
Společnost Eurotel Praha spol. s.r.o. byla zaloţena 9.4.1991. Eurotel byl právně zaloţen v roce 9.4.1991. Ještě před zapsáním do obchodního rejstříku získal 16. listopadu 1990 výhradní pětiletou licenci na provozování veřejné datové sítě a dvacetiletou licenci pro pásmo 450 MHz na sluţby analogové mobilní sítě NMT a automaticky také nárok na nákup licence na tehdy ještě neprovozovaný digitální telefonní systém GSM. Eurotel Praha byl 6 let jediný mobilní operátor v České republice a provozoval mobilní sluţby pro téměř všechny zákazníky s potřebami komunikace přes mobilní telefon. Provoz NMT byl ukončen v červenci 2006. Eurotel roku 2001 získal licenci na síť třetí generace UMTS. Komerční provoz tedy musel spustit nejpozději 1. ledna 2007. To společnost splnila a 1.12.2005 odstartovala nabídkou pokrytí Prahy a Brna technologií UMTS. Další pokrytí pokračovalo jen pomalu.V dubnu 2006 spouštil Eurotel rychlá data HSDPA v 3G síti UMTS. Eurotel patřil od 1.7.2006 pod Telefónicu O2 Czech Republic, a.s. aţ do 31.8. 2006, kdy Eurotel definitivně zanikl a změnil se na O2.
6
3.3.
T-Mobile
V Česku vlastní T-Mobile stejnojmennou mobilní síť. Tu začala roku 1996 pod jménem Paegas provozovat firma RadioMobil. Síť začala fungovat jiţ na digitálním standardu GSM Název sítě Paegas byl pouţíván společností RadioMobil, a. s. aţ do roku 2002, kdy konsorcium CMobil B.V. koupilo od Českých radiokomunikaci část akcií a navýšilo svůj podíl ve společnosti nyní na celkových 60,77 %. Název sítě se z Paegas na T- mobile změnil prakticky okamţitě, společnost se přejmenovala na nynější název T-Mobile Czech Republic, a.s. aţ o rok později.
3.4.
U-fon
MobilKom, a.s., je český mobilní operátor, který od května 2007 nabízí pod značkou U:fon rychlý a levný mobilní internet a hlasové sluţby. MobilKom nabízí své hlasové a datové sluţby prostřednictvím technologie CDMA2000 EVDO, jeţ je datovou sítí 3. generace srovnatelnou s UMTS nebo O2 CDMA. Vybudovat v České republice celoplošnou CDMA mobilní síť umoţnila MobilKomu licence na celoplošné vysílání v pásmu 410-430 MHz, kterou společnost získala v roce 2006.
7
8
4.
Srovnání Operátorů
Srovnávat společnosti poskytující mobilní sluţby není jednoduchý úkol. Můţeme ho pojmout hned z několika různých pohledů a i tak bude pro kaţdého z nás důleţité jiné srovnání. Na základě subjektivních preferencí. Pro tuto práci jsem vybral několik ruzných srovnání na základě nejdůleţitějších charakteristik těchto společností.
4.1.
Ceny
V dnešní době šetření je cena samozřejmě jeden z nejdůleţitějších rozhodovacích faktorů při výběru poskytovatele mobilních sluţeb. Toto srovnání se stalo v podstatě hlavním tématem této bakalářské práce. V dalších kapitolách se budu zabývat návrhem a implementací aplikace, která vám vybere tarif ušitý přímo na míru.
4.2.
Pokrytí
Pokrytí je asi nejdůleţitější charakteristika operátorů. Je to dáno hlavně tím, ţe jakmile někdo ţije na místě, kde není pokrytí mobilním signálem některé ze společností, tak dotyčného asi ani nenapadne vyuţít sluţeb tohoto operátora. Pokrytí bych ještě rozdělil do dvou větví, a to do pokrytí signálem pro hlasové sluţby a pokrytí signálem pro datové sluţby. V dnešní době udávají operátoři téměř stoprocentní pokrytí signálem. To je sice teoreticky velmi pěkný údaj, ale zkuste v praxi přemluvit ten malý kopec, zakrývající nejbliţší BTS, aby vám nestál v signálu. Srovnání pokrytí signálu si můţete prohlédnout na obrázcích 4.1 a 4.2. V levém horním rohu je pokrytí O2, v pravém horním T-Mobile, v levém dolním U:fon a v posledním rohu je pokrytí společnosti Vodafone.
9
Obrázek 4.1: Pokrytí signálem hlasových služeb
Obrázek 4.2: Pokrytí signálem datových služeb
10
4.3.
Technologie
Mobilní technologie jsou jedním z nejrychleji se rozvíjejících odvětví moderní doby. Bohuţel s rychlým vývojem přichází i problém, kdy vzniká mnoho různých standardů a neexistuje jednota. Proto se při výběru operátora musí lidé zamýšlet i nad tím k čemu vlastně chtějí mobilní telefon vyuţívat a jaká techologie se pro to nejvíce hodí. V tabulce 4.1 můţete vidět, který operátor podporuje jaké technologie.
GSM
GPRS
EDGE
T-Mobile
x
x
x
x
Vodafone
x
x
x
x
O2
x
x
x
U:fon
CDMA
x x
Tabulka 4.1: Srovnání technologií mobilních operátorů
11
UMTS
x
12
Analýza a návrh řešení
5.
Před realizací bylo potřeba udělat důkladnou analýzu a návrh aplikace, abych měl kvalitní základ, ze kterého budu vycházet při implementaci. Úplně prvním krokem muselo být zjistění, zda se data tarifů jednotlivých operátorů dají automaticky načítat z internetu. Pokud by to bylo moţné, byla by aplikace z větší části automatická a uţivatelsky přívětivější. Bohuţel však současný trend, který nám umoţňuje si tarify upravit na míru, nám zároveň brání v získání dat automaticky.
5.1.
Analýza aplikace
Aplikace na výběr tarifu není nijak zvlášť sloţitá.Vzhledem k tomu, ţe není moţné načítat tarify automaticky z webů operátorů, bude aplikace umět:
Přidávání, úpravu a mazání Tarifů
Přidávání, úpravu a mazání Operátorů
Přidávání, úpravu a mazání Uţivatelů
Výpočet tarifu na míru
Hlavní funkcí mojí aplikace je srovnání tarifů a výpočet toho nejlepšího vzhledem k uţivateli. Kaţdý tarif má velké mnoţství atributú( jako například měsíční paušál, cena za volaní, sms a mms a mnoho dalších), které jsou uloţeny v databázi. Zbytek funkcí je ve stylu přidání dat, jejich editace a případné mazání. Kompletní seznam datových tabulek a atributů najdete v kapitole 4.4. Uţivatel i Administrátor stráví většinu času prací s daty a databází, z toho důvodu je potřeba navrhnout řešení, které uţivateli co nejvíce tyto úkony ulehčí. Důraz proto bude na propracované grafické rozhraní, které bude uţivateli ulehčovat práci a zároveň ho kontrolovat, aby zadával data správně.
5.2.
Případy Použití
V návrhu počítám s tím, ţe aplikace bude obsahovat dvě role: Administrátora a Uţivatele. Tyto role jsou zároveň i aktéry případů pouţití. Uţivatel je základní uţivatel, který můţe prohlíţet , přidávat a mazat své tarify a operátory. Samozřejmě si můţe vypočítat svůj ideální tarif. Administrátor má všechny funkce uţivatele a k tomu ješte navíc můţe přidávat, upravovat a mazat uţivatele.
13
Obrázek 5.2: Diagram případů použití
14
Přidat Operátora ID Hlavní aktéří Vedlejší aktéři Vstupní podmínky
1 Uţivatel Systém Uţivatel má otevřený panel Operátori 1.Uţivatel zmáčkne tlačítko Přidat. 2.Uţivatel zadá data do formuláře. 3.Uţivatel zmáčkne tlačítko Přidat. 4. Systém uloţí operátora do databáze.
Hlavní scénář Výstupní podmínky Alternativní scénář
Ţádné Pokud nastane chyba při ukládání do databáze, systém zobrazí chybovou Tabulka 5.5.1: Use Casehlášku. Přidat operátora Editovat Operátora ID 2 Hlavní Uţivatel aktéří Vedlejší Systém aktéři Vstupní Uţivatel má vybraný záznam v tabulce podmínky Operatori. 1.Uţivatel zmáčkne tlačítko Editovat. 2.Uţivatel zadá data do formuláře. 3.Uţivatel zmáčkne tlačítko Uloţit. Hlavní scénář
4. Systém uloţí zeditovaná data do databáze.
Výstupní Ţádné podmínky Alternativní Pokud nastane chyba při ukládání do scénář databáze, systém zobrazí chybovou hlášku. Tabulka 5.5.2: Use Case Editovat operátora
15
Smazat Operátora ID Hlavní aktéří Vedlejší aktéři Vstupní podmínky
3 Uţivatel Systém Uţivatel má vybraný záznam v tabulce Operatori.
1.Uţivatel zmáčkne tlačítko Smazat. 2. Systém smaţe operátora z databáze. Hlavní scénář Výstupní podmínky Alternativní scénář
Ţádné Pokud nastane chyba při ukládání do databáze, systém zobrazí chybovou hlášku.
Tabulka 5.5.3: Use Case Smazat operátora
Přidat Tarif ID Hlavní aktéří Vedlejší aktéři
4 Uţivatel Systém
Vstupní podmínky
Uţivatel má otevřený panel Tarif 1.Uţivatel zmáčkne tlačítko Přidat. 2.Uţivatel zadá data do formuláře. 3.Uţivatel zmáčkne tlačítko Přidat. 4. Systém uloţí Tarif do databáze.
Hlavní scénář Výstupní podmínky Alternativní scénář
Ţádné Pokud nastane chyba při ukládání do databáze, systém zobrazí chybovou hlášku.
Tabulka 5.5.4: Use Case Přidat tarif
16
Editovat Tarif ID Hlavní aktéří Vedlejší aktéři Vstupní podmínky
5 Uţivatel Systém Uţivatel má vybraný záznam v tabulce Tarif. 1.Uţivatel zmáčkne tlačítko Editovat. 2.Uţivatel zadá data do formuláře. 3.Uţivatel zmáčkne tlačítko Uloţit.
Hlavní scénář Výstupní podmínky Alternativní scénář
4. Systém uloţí zeditovaná data do databáze. Ţádné Pokud nastane chyba při ukládání do databáze, systém zobrazí chybovou hlášku.
Tabulka 5.5.5: Use Case Editovat tarif
Smazat Tarif ID Hlavní aktéří Vedlejší aktéři Vstupní podmínky
6 Uţivatel Systém Uţivatel má vybraný záznam v tabulce Tarif.
1.Uţivatel zmáčkne tlačítko Smazat. 2. Systém smaţe operátora z databáze. Hlavní scénář Výstupní podmínky Alternativní scénář
Ţádné Pokud nastane chyba při ukládání do databáze, systém zobrazí chybovou hlášku.
Tabulka 5.5.6: Use Case Smazat tarif
17
Vypočítat tarif na míru ID 7 Hlavní aktéří Uţivatel Vedlejší aktéři Systém Vstupní podmínky
Uţivatel má otevřený panel Výpočet 1.Uţivatel zadá data do formulářě. 2. Uţivatel zmáčkne tlačítko Vypočítat. 3.Systém vypočítá nejlepší tarif a zobrazí tabulku s výsledkem.
Hlavní scénář Výstupní podmínky Alternativní scénář
Ţádné Pokud nastane chyba v zadaných datech, systém zobrazí chybovou hlášku.
Tabulka 5.5.7: Use Case Vybrat tarif na míru
Přidat Uţivatele ID Hlavní aktéří Vedlejší aktéři
8 Uţivatel Systém
Vstupní podmínky
Uţivatel má otevřený panel Tarif 1 Uţivatel zmáčkne tlačítko Přidat. 2. Uţivatel zadá data do formuláře. 3. Uţivatel zmáčkne tlačítko Přidat. 4. Systém uloţí Tarif do databáze.
Hlavní scénář Výstupní podmínky Alternativní scénář
Ţádné Pokud nastane chyba při ukládání do databáze, systém zobrazí chybovou hlášku.
Tabulka 5.5.8: Use Case Přidat uživatele
18
Editovat Uţivatele ID Hlavní aktéří Vedlejší aktéři Vstupní podmínky
9 Administrator Systém Administrator má vybraný záznam v tabulce Tarif. 1. Administrator zmáčkne tlačítko Editovat. 2. Administrator zadá data do formuláře. 3. Administrator zmáčkne tlačítko Uloţit.
Hlavní scénář Výstupní podmínky Alternativní scénář
4. Systém uloţí zeditovaná data do databáze. Ţádné Pokud nastane chyba při ukládání do databáze, systém zobrazí chybovou hlášku.
Tabulka 5.5.9: Use Case Editovat Uživatele
Smazat Uţivatele ID Hlavní aktéří Vedlejší aktéři Vstupní podmínky
10 Administrator Systém Administrator v tabulce Tarif.
má
vybraný
záznam
1. Administrator zmáčkne tlačítko Smazat. 2. Systém smaţe operátora z databáze. Hlavní scénář Výstupní podmínky Alternativní scénář
Ţádné Pokud nastane chyba při ukládání do databáze, systém zobrazí chybovou hlášku.
Tabulka 5.5.10: Use Case Smazat uživatele
19
5.3.
Možnosti implementace
Aplikace na výběr ideálního tarifu bude pouţívat rozsáhlé grafické rozhraní. Objevila se proto otázka, jakou technologii zvolit pro naprogramovani propracovaného grafického rozhraní. V průběhu analýzy jsem zvaţoval 2 různá řešení: Udělat webové rozhraní Naprogramovat aplikaci v Javě Obě vybrané moţnosti mají svoje plusy i mínusy.
5.3.1. Webové rozhraní Webové rozhraní má mnoho kladných vlastností, které z něj dělají výbornou volbu. Webové stránky jsou velmi jednoduché z pohledu tvorby a proto by nebyl velký problém s vytvořením grafického rozhraní. Dalším plusem je, ţe aplikaci můţe vyuţívat větší mnoţství lidí a tím se databáze můţe pravidelně aktualizovat. Existují také ale i nevýhody. Webové stránky jsou nepřenosné, je potřeba mít nějaký prostor, kam webovou prezentaci nahrát.
5.3.2. Aplikace v Javě Další moţností, která nakonec zvítězila, bylo naprogramovat aplikaci v Javě. Výhodou Javy je přenosnost aplikace, program si můţe kdokoliv nainstalovat doma na svůj počítač. Další plus je tvorba Grafického uţivatelského rozhraní, které se díky průvodci v programu Netbeans téměř vyrovná v jednoduchosti webovému rozhraní. Nevýhoda je, ţe takto vytvořený program je většinou vyuţitelný jen pro menší mnoţství lidí a tudíţ tu není tak velká aktuálnost jako u webu. To se však dá ošetřit tím, ţe se vytvoří veřejná databáze na kterou se můţou uţivatelé připojovat pomocí javového klienta.
20
5.4.
Databáze
Dlouho jsem uvaţoval o tom, jakou pouţiji databázi. Výběr je široký a všechny databáze mají svoje klady. Nakonec jsem si řekl, ţe potřebuji databázi, která bude jednoduchá, malá a nenáročná. Vzhledem k tomu, ţe by se aplikace měla uţivateli jevit jednoduše, bylo potřeba najít řešení co nejelegantnější Zpočátku jsem hledal mezi databázemi síťovými. Jako nejvýhodnější se mi jevila databáze Apache Derby. Její velikost 2MB a jednoduchá instalace ji jednoznačně pasovali na vítěze. Problémem však bylo celkem zdlouhavé zprovozňování aplikace s tímto typem databáze. Jelikoţ jsem v minulosti neměl moc velké zkušenosti s databázemi, celkem mě překvapilo, kdyţ jsem zjistil, ţe Derby databáze existuje i v takzvané „embedded“ verzi, coţ vpodstaté znamená, ţe databáze můţe být přímo součástí aplikace. Ještě příjemnější překvapení pro mě bylo, ţe je tato databáze součásti Javy. V tuto chvíli bylo vše rozhodnuto. Schéma databáze mého programu můţete vidět na obrázku níţe.
Obrázek 5.1: Databázový diagram
21
22
6.
Realizace
Výběr technologií pro moji aplikaci jsem jiţ zmínil v předchozích částech práce, proto bych jen pro připomenutí zmínil, ţe klientská část aplikace bude realizována pomocí technologie Java a databázová pomocí Apache Derby Database. Rozhodl jsem se, ţe v této aplikaci vyuţiji architekturu MVC, která se v tomto případě přímo nabízí.Podrobněji se o této architektuře zmíním dále v této kapitole. Jako programovací nástroj pro tvorbu této bakalářské práce jsem si vybral program Netbeans a to hned z několika důvodů. Prvním z nich je to, ţe toto vývojové prostředí znám jiţ z dřívějších prací ve škole. Dalším důvodem je, ţe Netbeans mají velice příjemný průvodce tvorbou grafického uţivatelského rozhraní. A posledním z důvodů je, ţe Netbeans mají zabudovaný databázový server, na kterém se dá spouštět a testovat Derby databáze.
6.1.
Java
Obrázek 6.1: Duke - maskot jazyka Java
Java je objektově orientovaný programovací jazyk, který vyvinula firma Sun Microsystems a představila ho 23. května 1995. Java je v současné době jedním z nejpouţívanějších programovacích jazyků na světě. Vzhledem ke své přenositelnosti je pouţíván pro všemoţné programy, které mají pracovat na různých systémech, například pro čipové karty (platforma JavaCard), mobilní telefony a různá zabudovaná zařízení (platforma Java ME), aplikace pro desktopové počítače (platforma Java SE), rozsáhlé distribuované systémy pracující na řadě spolupracujících počítačů rozprostřené po celém světě (platforma Java EE) a další. Tyto technologie se jako celek nazývají platforma Java.
23
Dne 8. května 2007 Sun zveřejnil zdrojové kódy Javy (cca 2,5 miliónů řádků kódu) a Java má dále být vyvíjena jako open source. Java je oblíbená z mnoha různých důvodů. Její syntaxe je zjednodušenou a upravenou verzí syntaxe jazyka C a C++, je objektově orientovaná, podporujě aplikace v síti, je nezávislá na architektuře počítače(Programy fungují všude, kde je interpret Javy), správa paměti je realizována pomocí automatického Garbage collectoru který automaticky vyhledává jiţ nepouţívané části paměti a uvolňuje je pro další pouţití a v neposlední řadě je elegantní, velmi dobře se v ní pracuje a kód je čitelný. Samozřejmě, ţe Java nemá jen samé výhody. Mezi stinné stránky patří pomalejšístart proti programovacím jazykům s takzvanou statickou kompilací(C++), protoţe prostředí musí program nejprve přeloţit a potom teprve spustit. Další nevýhodou projevující se hlavně u jednodušších programů je větší paměťová náročnost při běhu způsobená nutností mít v paměti celé běhové prostředí.
6.2.
Model-view-controller
Model-view-controller (MVC) je softwarová architektura, která rozděluje datový model aplikace, uţivatelské rozhraní a řídicí logiku do tří nezávislých komponent tak, ţe modifikace některé z nich má minimální vliv na ostatní. Alternativou k MVC je architektura Model 1. Ta odděluje pouze datový model od uţivatelského rozhraní s řídicí logikou.
6.2.1. Princip Aplikace vyuţívající architekturu MVC jsou programovány do 3 komponent, mezi které patří: Model (model), coţ je doménově specifická reprezentace informací, s nimiţ aplikace pracuje.
View (pohled), který převádí data reprezentovaná modelem do podoby vhodné k interaktivní prezentaci uţivateli.
Controller (řadič), který reaguje na události (typicky pocházející od uţivatele) a zajišťuje změny v modelu nebo v pohledu.
24
6.3. Apache Derby
Obrázek 6.2: Logo Apache Derby
Apache Derby je stoprocentní Javovský database management system(systém řízení báze dat). Tento systém můţe fungovat jako síťový databázový server nebo je také moţné ho vloţít přímo do vyvíjené aplikace. Velikost tohoto databázového systému je něco přes 2MB. Apache Derby je vyvíjena jako open-sourcový projekt.
6.4. Netbeans NetBeans je open source projekt vývíjený z převáţné části českými vývojáři v praţské pobočce Sun Microsystems na Chodově. Má rozsáhlou uţivatelskou základnou a komunitu vývojářů s více neţ 100 partnery po celém světě. Pod firmu Sun Microsystems, přešel projekt v říjnu 1999. Pod open-source licencí byl produkt uvolněn v červnu 2000. Vývojové prostředí NetBeans IDE je nástroj, pomocí kterého programátoři mohou psát, překládat, ladit a šířit programy. NetBeans IDE je napsáno v jazyce Java a je postaveno na stejnojmenné platformě.
6.5. Popis kódu V tomto oddíle zběţně představím strukturu programu a vysvětlím některé části zdrojového kódu. Můj projekt má 6 různých tříd a já je teď postupně popíšu.
25
6.5.1. Třída Main Tato třída se stará vpodstatě jen o spustění aplikace, pouţívá k tomu tento kód: java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new View().setVisible(true); } }); Tímto spustí JFrame ve třídě View.
6.5.2. Třída View View je třída, která se stará kompletně o grafické rozhraní programu(GUI). To znamená, ţe tato třída má na starosti všechny tlačítka, tabulky, rozbalovací seznamy a prostě vše co vidíte na obrazovce. Nestará se však o nic jiného, data která zobrazuje sama nezpracovává. O to se starají ostatní třídy.
6.5.3. Třídy Tarif, Operátor, User Tyto tři třídy fungují jako Table Modely. To znamená, ţe připravují a zpracovávají data z databáze pro třídu View, která je uţ poté jen zobrazí. Podle názvu není těţké odhadnout, která třída zpracovává jaká data. Aby mohly pracovat s daty z databáze, musí se do nějaké taky připojit. K připojení do databáze slouţí následující dvě části kódu: private String driver = "org.apache.derby.jdbc.EmbeddedDriver"; private String databaseUrl = "jdbc:derby:database; create=true"; private String user = "app"; private String password = "app";
Tady vidíme údaje, které potřebujeme k připojení do databáze. Driver je ovladač k databázi, v tomto případě jde o Derby embedded db. Url je kam se má program připojit. A user a password jsou asi všem jasné.
26
try{ Class.forName(driver); } catch (ClassNotFoundException e){ ---ZKRACENO--} try{ con = DriverManager.getConnection(databaseUrl, user, password); stat = con.createStatement(); } Chatch{ }
V druhé části kódu je jiţ vidět jak se databáze s danými údaji připojuje. Vše je ošetřeno vyjímkami, které v případě problému vyhodí dialogové okno a vypíšou chybovou hlášku. Dalším krokem je načtení dat z databáze, to nebudu přímo popisovat, ale dám sem jen část kódu, kde uvidíme, jak se data ukládají do vektoru, který se pak odesílá třídě view. allRows = new Vector(); while(rs.next()){ newRow = new Vector(); for(int i = 1; i <= li_cols; i++){ newRow.addElement(rs.getObject(i)); } allRows.addElement(newRow); } Proměnná li_cols udává počet sloupů, které načítáme z databáze.
27
public void deleteRow(int rowToDelete){ ---ZKRACENO--} Metoda deleteRow se stará o mazání řádky v tabulce. Stejně tak editRow řádku edituje a addRow řádku přidává. public void reload(){ ---ZKRACENO--} Metoda reload se stará o refreshnutí tabulky po změnách řádků.
6.5.4. Třída Calculate Tato třída se stará o výpočet nejlepšího tarifu a o zobrazení výsledkové tabulky. V mnoha částech je podobná jak předcházející 3 třídy. Za zmínku tady stojí především mechanismus jakým probíhá výpočet. public void prepocet(---ZKRACENO---){ ---ZKRACENO--if(callOwn
28
vysledek = Mesicni_Poplatek + zbyvaZaplatit*volani_vlastni + zbyvaZaplatitDif*volani_cizi + volani_pevna*callHard + zbyvaZaplatitMms*mms_vlastni + zbyvaZaplatitMmsDif*mms_cizi + zbyvaZaplatitSms*sms_vlastni + zbyvaZaplatitSmsDif*sms_cizi + cdataDay*data_den + cdataKB*data_kb + cdataMonth*data_mesic; Tento kód uţ předtavuje koncový výpočet ceny tarifu.
29
30
7.
Testování
Testování je nedílnou součástí vývoje kaţdé aplikace. Umoţňuje nám zjistit skryté neduhy aplikace a zamezit vzniku chyb způsobených uţivatelem. Testování aplikace probíhalo po celou dobu vývoje. Za účelem testování byla v databázi vytvořena testovací data, na kterých se testovala funkčnost a vhodnost řešení různých funkcí. Jako testovací objekty jsem pouţil svoji rodinu a některé spoluţáky.
31
32
8. Srovnání s existujícím řešením V této kapitole bÿch se rád zabýval srovnáním mé aplikace s jiţ existujícím konkukenčním řešením, pokud nějaké takové existuje.
8.1. Hledání Při hledání konkurenčního řešení jsem narazil na několik různých moţností. Bohuţel většina z těchto aplikací byla zastaralá, nefunkční nebo uţ vpodstatě neexistovala. Nakonec se mi přeci jen podařilo najít na internetu jeden portál, který provozuje obdobnou aplikaci, jakou jsem já programoval. Adresa tohoto portálu je http://srovnam.cz/mobilni-tarify.
8.2. Popis Jedná se o webovou aplikaci. Grafická stránka je podle mého názoru velmi povedená. Nejideálnější tarif pro vaše vyuţití se vybírá z databáze tarifů, které jsou uloţeny v databázi. Zadávání dat je řešeno velmi zajímavým způsobem, kdy si pomocí posuvníku vyberete kolik uděláte hovorů měsíčně, jak dlouhý je váš průměrný telefonát. Jestli voláte procentuelně více do cizích sítí nebo do vlastní. Mezi další moţnosti patří výběr z operátorů, které byste chtěli vyuţít, počet odeslaných sms, kolika lidem voláte a jestli nejste student.
8.3. Srovnání Aplikace srovnam.cz je sice pěkná, ale zároveň si myslím, ţe má také mnoho nedostatků. Hlavním rozdílem je typ aplikace. Muj program je vyuţitelný kdekoliv doma, zatímco srovnam.cz je webový portál. Další důleţitý rozdíl je, ţe mají pevně danou databázi, kterou bezpochyby musí někdo updatovat. To však v dnešní době, kdy se objevuje trend operátorů nabízejících proměnlivé tarify na míru, není podle mého názoru nejšťastnější řešení. Také data podle kterých vám tarify vybírají jsou značně omezená, vůbec se nepočíta s MMS a datovým připojení a cenové rozdíly SMS do vlastní sítě a do cizí také neřeší. Toto srovnání mi ukázalo, ţe v mnoha ohledech je moje řešení propracovanější, ale zároveň mě aplikace na webu srovnam.cz inspirovala, jak bych mohl v budoucnu svoji aplikaci rozšířit.
33
34
9.
Závěr
Cílem této práce bylo naprogramovat aplikaci, která uţivateli vybere mobilní tarif na míru jeho poţadavkům. Na základě prostudování historie operátorů a technologií, které nabizejí jsem měl navrhnout a naprogramovat jednoduchou aplikaci, která toto zvládne. Důraz přitom měl být kladen na to, aby uţivatel měl moţnost co nejpodrobněji zadat své poţadavky a přitom aby touto činností strávil co nejméně času. Výsledkem je funkční aplikace, která splňuje zadané cíle, a je moţné, ţe se bude nadále vyvíjet. Oproti poţadavkům se v průběhu programování trochu odklonila a to tak, ţe uţivatel má všechna práva stejně jako administrátor jednoduše z toho důvodu, ţe u tohoto řešení, které nešlo cestou webového rozhraní nemá jejich rozdělení smysl. Nic není dokonalé a tak i tato aplikace by určitě snesla několik vylepšení. Jak uţ jsem psal dříve, v budoucnu by bylo moţné rozšírit výpočet o počet kontaktů, které uţivatel nejčastěji volá a určité vylepšení by snesl i vzhled aplikace.
35
36
A. Literatura [1]Historie mobilní komunikace http://home.zcu.cz/~kennysha/index.htm [2] Tutoriály Java http://java.sun.com/docs/books/tutorial/ [3]Konkurenční řešení srovnání mobilních tarifů http://srovnam.cz/mobilni-tarify [4] Apace Derby http://db.apache.org/derby/ [5] Netbeans http://cs.wikipedia.org/wiki/NetBeans [6] T-Mobile http://cs.wikipedia.org/wiki/T-Mobile [7] Eurotel http://cs.wikipedia.org/wiki/Eurotel. [8] O2 http://www.cz.o2.com [9] U:fon. http://www.ufon.cz [10] Vodafone http://www.vodafone.cz [11] MVC http://cs.wikipedia.org/wiki/Model-view-controller [12]Java http://cs.wikipedia.org/wiki/Java_%28programovac%C3%AD_jazyk%29
37
38
B. Seznam použitých zkratek URL Uniform Resource Locator Specifikuje umístění dokumentu nebo sluţby na Internetu. GSM Global System for Mobile Communications GSM je nejpopouţívanější standard pro mobilní telefony na světě. Je to buňková síť, coţ znamená ţe mobilní telefony se připojují do sítě prostřednictvím nejbliţší buňky. GPRS General Packet Radio Service General Packet Radio Service (GPRS) je mobilní datová sluţba přístupná pro uţivatele GSM mobilních telefonů UMTS Universal Mobile Telecommunication System UMTS je 3G systém standardu mobilních telefonů. UMTS byl koncipován jako nástupník systému GSM. CDMA Code Division Multiple Access Sluţba CDMA je mobilní bezdrátové připojení k internetu, zaloţené na nejmodernější technologii, která pracuje v pásmu 450 MHz. EDGE Enhanced Data Rates for GSM Evolution EDGE je dalším vývojovým stupněm v technologii GSM po zavedení datových přenosů pomocí GPRS (General Packet Radio Services). Technologie EDGE nabízí několik metod a vylepšení, které umoţňují dosáhnout efektivního přenosu dat a vysoké spektrální účinnosti v tomto úzkopásmovém buňkovém systému. BTS Base transceiver station BTS je část sítě GSM, která je zodpovědná za přenos a příjem radiových signálů z mobilního telefonu. MMS Multimedia Messaging Service Multimediální paralela k SMS. Pomocí MMS je moţné posílat kromě textu i obrázky, audio a videoklipy, podobně jako e-mailem. MMS zprávy jsou přenášeny jako datový tok prostřednictvím datové technologie GPRS v GSM a pokročilejších.
39
HSDPA High-Speed Downlink Packet Access protokol mobilní telefonie označovaný také jako technologie 3,5G – tříapůltá generace. Objevil se v 5. vydání standardu UMTS SMS Short message service Název pro sluţbu dostupnou na většině digitálních mobilních telefonů. Zprávu lze posílat mezi mobilními telefony, jinými zařízeními, na pevné telefony nebo přes internet. Délka zprávy je omezena na 160 znaků.
40
C. Snímky aplikace
Obrázek 9.1: Tabulka tarifů
Obrázek 9.2: Přidání tarifu
41
Obrázek 9.3: Tabulka operátorů
Obrázek 9.4: Úprava operátora
42
Obrázek 9.5: Záložka výpočet a menu uživatel
Obrázek 9.6: Okno výsledek výpočtu
43
44
D. Instalační příručka Díky embedded Apache Derby databázi není spuštění aplikace nic sloţitého. Stačí spustit soubor BakalarskaPrace.jar a program se rozběhne. Jedinou podmínkou je, ţe tento soubor je v adresáři se sloţkami database a lib. Ze sloţky lib si program načítá potřebné knihovny, zatímco ze sloţky database spouští databázi. Všechny tyto soubory a adresáře najdete na přiloţeném CD, ve sloţce Executable.
45
46
E. Obsah přiloženého CD
\Readme.txt – obsahuje návod na instalaci a poţadavky ke spuštění
\Executable\ - obsahuje spustitelnou aplikaci
\Javadoc\ - obsahuje Javadoc vygenerovaný z mého projektu
\Source_codes\ - obsahuje zdrojové kódy aplikace
\Sql\ - script, pomocí kterého byla naplněna databáze
\Text\ - obsahuje bakalářskou práci ve formátech *.pdf a *.docx
47