Budapesti Corvinus Egyetem Gazdálkodástudományi Kar Információrendszerek Tanszék
Készítette: Cziva Gergely Gazdaságinformatikus (Bsc) szak Közszolgálati informatika szakirány 2010
-1-
„Én, Cziva Gergely teljes felelősségem tudatában kijelentem, hogy a jelen szakdolgozatban szereplő minden szövegrész, ábra és táblázat – az előírt szabályoknak megfelelően hivatkozott részek kivételével – eredeti és kizárólag a saját munkám eredménye, más dokumentumra vagy közreműködőre nem támaszkodik.”
-2-
1
Bevezetés .................................................................................................................. 6
2
Számítási felhő, felhő-alkalmazások bemutatása ..................................................... 7 2.1
A számítási felhő – Cloud Computing ............................................................... 7
2.1.1
A felhő ........................................................................................................ 7
2.1.2
A számítási felhők fajtái ............................................................................. 7
2.1.3
A számítási felhő előnyei ............................................................................ 9
2.1.4
A számítási felhő hátrányai....................................................................... 10
2.2
Felhő-alkalmazások.......................................................................................... 10
2.2.1 2.3
3
Felhő-alkalmazás a felhasználó szemszögéből ......................................... 12
Felhő-alkalmazások technológiai, fejlesztői szemszögből .............................. 12
2.3.1
Felhő-alkalmazás a fejlesztő szemszögéből ............................................. 13
2.3.2
Keretrendszer ............................................................................................ 13
2.3.3
Szoftver keretrendszer .............................................................................. 14
2.3.4
A .NET, mint példa szoftver keretrendszerre ........................................... 14
2.3.5
Web alkalmazás keretrendszer és AJAX keretrendszer ........................... 15
2.3.6
Az Ajax bemutatása .................................................................................. 15
2.3.7
Adattárolás a felhőben – elosztott adatbázisok ......................................... 16
Ismert felhő-alkalmazások, szolgáltatások ............................................................. 18 3.1
Windows Azure Platform – a Microsoft platform alapú szolgáltatása ............ 18
3.1.1
Windows Azure ........................................................................................ 18
3.1.2
Microsoft SQL Azure ............................................................................... 19
3.1.3
Microsoft Azure platform AppFabric ....................................................... 19
3.2
Ubuntu One – Az Ubuntu adattároló felhője ................................................... 19
3.3
Amazon Web Services - AWS ......................................................................... 20
3.4
Gmail – a Google ingyenes levelező szolgáltatása .......................................... 21
-3-
4
3.5
Google Calendar – a Google ingyenes naptár szolgáltatása ............................ 22
3.6
Gliffy – online diagramszerkesztő ................................................................... 23
Felhő-alkalmazások döntéshozói szemszögből ...................................................... 24 4.1
SWOT elemzés................................................................................................. 24
4.2
Felhő alapú adattárolás bevezetésének SWOT elemzése................................. 25
4.2.1
Erősségek .................................................................................................. 25
4.2.2
Gyengeségek ............................................................................................. 26
4.2.3
Lehetőségek .............................................................................................. 26
4.2.4
Veszélyek .................................................................................................. 26
4.3
5
Felhő alapú iroda szoftvercsomag bevezetése ................................................. 26
4.3.1
Irodai szoftvercsomagok ........................................................................... 27
4.3.2
Működő vállalkozások számszerűsítése ................................................... 28
4.3.3
A mikro vállalkozás .................................................................................. 28
4.3.4
A kisvállalkozás ........................................................................................ 29
4.3.5
Tanulságok ................................................................................................ 31
Saját felhő-alkalmazás fejlesztése és bemutatása ................................................... 32 5.1
iMenetrend mobil web alkalmazás................................................................... 32
5.2
Tervezési architektúrák .................................................................................... 32
5.2.1
MVC (Model, View, Controller) – Modell, Vezérlő, Nézet..................... 32
5.2.2
Document-View – Dokumentum-Nézet ................................................... 33
5.3
Specifikáció ...................................................................................................... 34
5.3.1
Követelmény specifikáció......................................................................... 34
5.3.2
Funkcionális specifikáció ......................................................................... 35
5.3.3
Rendszer specifikáció ............................................................................... 38
5.3.4
Rendszer architektúrája............................................................................. 39
5.4
Implementáció .................................................................................................. 41
5.4.1
Szoftver fejlesztői környezet meghatározása ............................................ 41 -4-
5.4.2
A fejlesztés menete ................................................................................... 41
5.4.3
Felhasznált komponensek ......................................................................... 41
5.5
Az elkészült alkalmazás ................................................................................... 44
5.5.1 5.6
Használata ................................................................................................. 44
Tapasztalatok a fejlesztés során és további lehetőségek .................................. 47
6
Összefoglalás .......................................................................................................... 48
7
Irodalomjegyzék ..................................................................................................... 49
8
Ábrajegyzék ............................................................................................................ 51
-5-
Napjainkban az internet egyes országokban már alanyi jog. Folyamatosan bővül, egyre több felhasználóhoz jut el és egyre több felhasználó használja napi szinten. Természetesen nagyon sok mindent megváltoztatott már eddig is és vélhetőleg több mindent meg is fog még változtatni. A jelszó a folyamatos kommunikáció, interakció és a mobilitás. Az elérhető szolgáltatások is folyamatosan változnak és fejlődnek, az emberek közösségi életet élnek az interneten, megosztják gondolataikat, élményeiket, képeiket, videóikat. Ezek a szolgáltatások pedig a felhőből érkeznek. Sokszor nem is tudja a felhasználó, hogy éppen egy felhőszolgáltatást vesz igénybe akkor, amikor a böngészőjéből elküld egy elektronikus levelet, vagy éppen feltölti a fotóját valamelyik képmegosztó oldalra. A dolgozat célja a felhő és az ott használt szolgáltatások ismertetése, használatának bemutatása, hogy az olvasó képet alkothasson ezekről az új fogalmakról és lehetőségekről. Először magát a felhőt, mint számítási felhőt veszem górcső alá előnyeivel és hátrányaival együtt. Emellett bemutatom általánosságban a felhőalkalmazásokat, azokat megvizsgálom fejlesztői szemszögből is. Ezután ismertetek néhány elterjedt felhő-szolgáltatást és alkalmazást is. A dolgozat egyes ábráinak megszerkesztésére is felhasználásra került az egyik ilyen alkalmazás. Természetesen magam is használok és készítek felhő-alkalmazásokat, ezért is választottam ezt a témát, mivel így hitelesen tudok róla beszámolni. Fontosnak tartom a fejlesztői, technológiai megközelítés mellett a döntéshozói megközelítést is, éppen ezért külön fejezetben elemzem többféle megközelítésből a felhő-alkalmazásokat. SWOT elemzést készítek a felhő alapú adattárolásról, majd két példa vállalkozáson keresztül megvizsgálom, milyen költségmegtakarítást lehet azzal elérni, hogyha a vállalkozás az irodai szoftvercsomag felhő alapú megoldását választja. Végül egy saját tervezésű és készítésű alkalmazáson keresztül mutatom be azt, hogy hogyan készíthetőek felhő-alkalmazások. Itt kitérek az fejlesztéshez szükséges tervezési módszerek ismertetésére is, a fejlesztés során szerzett tapasztalatokra, valamint továbbfejlesztési lehetőségekre.
-6-
A dolgozatom első fejezete a számítási felhőről és a felhő-alkalmazásokról szól. Egy általános ismertető keretében bemutatom, mi a számítási felhő, miként lehet csoportosítani, miért jó és mik lehetnek a veszélyei. Ezután a felhő-alkalmazásokat ismertetem, megvizsgálom milyen technológiák szükségesek a működéséhez, valamint hogy mik az előnyei és hátrányai.
2.1.1 A felhő Itt egyszerre gondolhatunk magára az internetre vagy olyan hálózatok, hardverek, architektúrák,
szolgáltatások
összességére,
aminek
a
felépítése
a
vizsgálat
szempontjából lényegtelen vagy éppen nem is ismert. Ami fontos, hogy az egyes elemek (akik lehetnek éppen felhasználók, eszközök stb.) kapcsolatban vannak a felhővel, de hogy a felhőn belül mi hogyan történik, az a külső szemlélőt, felhasználót nem érinti. Manapság a számítási felhő egy igencsak népszerű és gyakran hangoztatott fogalom az informatika területén. Alapjaiban véve nem jelent mást, mint hogy az egyes adatok, állományok és akár a hozzájuk tartozó programok is, nem a saját gépünkön, eszközeinken tárolódnak (vagy futnak) fizikailag, hanem magában a felhőben (az interneten, elosztott szervereken, adatbázisokban). Sokszor a felhasználók nem is sejtik vagy tudják, hogy éppen számítási felhőt és azon belül is egy felhő-alkalmazást használnak, pedig pontosan ez történik, amikor a Google e-mail vagy éppen táblázatkezelő szolgáltatását veszik igénybe. De természetesen nem csak a Google-nél találhatunk ilyesfajta szolgáltatásokat: Yahoo, Microsoft, Amazon, SUN, Facebook, Twitter és még sokan mások tették le voksukat a számítási felhő és az ilyen megoldások mellett.
2.1.2 A számítási felhők fajtái Ahhoz, hogy a számítási felhőket csoportosítani lehessen, először is ismernünk kell azokat az informatikai rétegeket, melyekkel a felhasználók „érintkezhetnek”: -7-
Hardver számítógépek, szerverek, hálózati infrastruktúra, adattároló eszközök stb.
Operációs rendszer, szoftveres szolgáltatások a felső rétegek felé: tűzfal, címfeloldás, hitelesítés, felügyelet, operációs rendszerek stb.
Adattárolás adatbázis-kezelő rendszerek, relációs adatbázisok vagy objektum-relációs adatbázisok
Alkalmazás ERP, CRM, CMS rendszerek, levelező-kiszolgáló, alkalmazás szerver, web szerver stb.
A számítási felhők csoportosítása attól függ, hogy az egyes rétegeket fizikailag hova helyezik, hogyan működtetik. Természetesen a rétegek tovább bontásával, és azok szétosztásával rengeteg csoportosítást kaphatunk, ezek közül hármat emelnék ki, a rétegek szétbontása nélkül.
Infrastruktúra alapú számítási felhő Az a legegyszerűbb és legalacsonyabb szintű megvalósítási mód, melyben a szolgáltatás csak az infrastruktúrára terjed ki (Infrastructure as a Service). A szolgáltató feladata biztosítani tehát a hardvert,
fizikai
kapcsolatokat,
hálózati
infrastruktúrát, tápellátást és az összes többi feladat magára a megrendelőre marad, tehát gyakorlatilag egy „üres” rendszert kap, amit úgy 1. ábra Infrastruktúra alapú számítási felhő felépítése
épít fel, ahogy ő szeretne, azt telepít rá, amit ő szeretne. Többnyire virtualizációs megoldásokat
használnak, ami a háttérben történik, így az el van fedve a megrendelő elől. Ilyen például az Amazon Xen alapú szolgáltatása.
-8-
Előnyei közé sorolható, hogy nincsen szükség saját szerverekre, szerverteremre, hálózati eszközökre, ezeket mind a szolgáltató biztosítja (Bruce, 2010). Platform alapú számítási felhő Ebben a megvalósításban a szolgáltató a hardver infrastruktúra mellé platformot (szoftverkörnyezetet) is biztosít. Manapság a két leginkább elterjedt platform a .NET (Windows Azure) és a Java. Előny, hogy nem szükséges ezeket külön telepíteni és menedzselni. Szoftver alapú számítási felhő Maga a szolgáltatás azon alapul, hogy komplett felhő-
2. ábra Platform alapú számítási felhő felépítése
alkalmazásokat lehet használni. Mindent a szolgáltató biztosít, a hardver infrastruktúrát, az alkalmazásokat, ő menedzseli
és
verzióköveti
a
szoftvereket.
Mindenképpen olcsóbb, mintha egyes szoftvereket külön kellene megvásárolni, erről az elemzés a 4. fejezetben olvasható. Ilyen megoldás például a Google Alkalmazások. (Lepenye, 2010)
3. ábra Szoftver alapú számítási felhő felépítése
2.1.3 A számítási felhő előnyei
Elérhető Általában a szolgáltatók garanciát vállalnak arra, hogy a szolgáltatás milyen arányban áll rendelkezésre pl. 99.9%.
Nem helyhez kötött Az interneten keresztül bárhonnan és bármikor elérhető, mivel földrajzilag is elosztott a rendszer, ezért egyes régiókat optimálisan tudnak kiszolgálni.
Skálázható Könnyebben és gyorsabban lehet aktiválni új erőforrásokat.
Mérhető, tervezhető és számlázható A kihasználtságot könnyen mérhetik, előre jelezhető mikor van szükség beavatkozásra.
-9-
Biztonságos A tervezett felépítésnek köszönhetően a biztonság jóval nagyobb, amelyeket a szolgáltatók különböző tanúsítványokkal igazolnak.
Méretgazdaságos Egy jól kihasznált számítási felhő egységköltsége igen alacsony más rendszerekhez képest.
2.1.4 A számítási felhő hátrányai Azok a szempontok lehetnek a számítási felhők hátrányai, mint az előnyei. Ha éppen valamilyen hiba folytán megszakad az internetkapcsolat, akkor a munka leáll, nem lehet elérni a szükséges adatokat. Ez nem fordulna elő akkor, hogyha az összes rendszer helyben elérhető volna. Felmerül a kérdés, hogy mi történik vagy történhet akkor, amikor a megrendelő már túlságosan kiszolgáltatott lesz a szolgáltatónak. Jelenleg e jogi a szabályozások még gyerekcipőben járnak. Ezen kívül pl. adózási kérdésekben sincsenek pontos döntések. A
biztonság
kérdése
is
ugyancsak
felmerül,
hiszen
az
adataink
teljes
kiszolgáltatottságban vannak egy olyan helyen, ahol egyáltalán nincs lehetőségünk megtudni, hogy még az emelt biztonsági szint mellett is, ki nézhetett bele, esetleg fejthette vissza a titkosításokat (Liber, 2010).
A felhő-alkalmazás alapvetően nem jelent mást, mint egy olyan alkalmazást, amit a kliensprogram (pl. internetböngésző) segítségével lehet elérni, használni az interneten vagy intraneten keresztül és az adatok maguk fizikailag a felhőben (valahol, nem fontos hol) tárolódnak. Ezek a programok általában egy vagy több központi gépen, szerveren futnak, és olyan módon vannak elkészítve, hogy megfelelő kimenetet képesek generálni a kliensek felé (HTML, Javascript, XML, JSON stb.), amik aztán „futtatják” a programot, kezelik az interakciókat és adatforgalmat bonyolítanak. Az interneten az egyik legelterjedtebb a kliens-szerver modell, amikor a felhasználó egy vagy több meghatározott protokollon keresztül képes elérni a kiszolgáló (szerver) gépet, annak kéréseket küldeni, amiknek az eredményei a kliensen megjelennek. A web - 10 -
alkalmazásoknál a böngésző a kliens, a szerver pedig általában egy web szerver, összetettebb esetben egy alkalmazás szerver. Mivel a kliens a böngésző, ahol többnyire adatmegjelenítés, egyszerűbb interakciók zajlanak és a szerveren található az alkalmazáslogika (tehát a kliens igénybe veszi a távoli erőforrásokat), ezért vékony kliens architektúráról beszélünk. Legtöbb esetben a szerver HTML, XHTML kódot küld a kliens felé, és az kerül megjelenítésre. Ezek csak a megjelenítésért és a tartalom leírásáért felelősek, adatokat főleg XML és JSON formátumban küld a szerver és/vagy a kliens. Emellett vannak még más, böngészőben vagy külön programként futó alkalmazások is, ilyen pl. a Flash és a Java Applet. A Java Applet, ugyanúgy ahogy a többi Java kód, egy virtuális gépen fut (Java Virtual Machine – JVM), és be van ágyazva többnyire egy HTML oldalba. Az Appletek használatával hasonlóképpen létrehozható dinamikus web alkalmazás, mint egy egyszerű weboldalon keresztül, hiszen közvetlen adatbázis kapcsolat létrehozására képesek, rendelkeznek rengeteg beépített komponenssel. A Flash fájlokat egy böngészőhöz kapcsolódó bővítmény (azon belül egy virtuális gép) futtatja, és ugyancsak dinamikus tartalmakat (pl. zene lejátszás, 3D megjelenítés) lehet vele létrehozni. A szerver oldalon manapság az egyik legelterjedtebb nyelv a PHP, de természetesen lehet találkozni más nyelven íródott programokkal is: ASP.NET, Java (főleg üzleti környezetben), ColdFusion, Perl, Python, Ruby. Egy felhő-alkalmazás előnye egyértelmű: bárhol használható, ahol van egy megfelelő böngésző és internetes elérés. Gyakorlatilag ezek a kitételek ma már egy fejlettebb mobil eszközben megtalálhatóak. A felgyorsult világban pedig megjelenik az igény, hogy adatainkat, munkáinkat bárhonnan képesek legyünk elérni, módosítani. Természetesen biztonsági szempontból nagyobb kockázatot jelenthetnek ezek az alkalmazások, mint asztali társaik, de megfelelő lépések megtételével (titkosított protokoll használata, többlépcsős azonosítás) a kockázatok csökkenthetőek.
- 11 -
2.2.1 Felhő-alkalmazás a felhasználó szemszögéből
4. ábra Felhő-alkalmazás, amit a felhasználó lát
Ebben az alfejezetben két, fejlesztői szempontból is külön megközelítés kerül bemutatásra. Elsőként a keretrendszerek és hozzá kapcsolódó technológiák kerülnek terítékre, hiszen ezek szükségesek (mindenesetre ajánlottak) ahhoz, hogy megfelelő minőségben és rövid idő alatt elő lehessen állítani egy felhő-alkalmazást.
Ezután
elosztott adatbáziskezelő-rendszerek rövid bemutatására kerül sor. Azért tartom szükségesnek, mert egy felhő-szolgáltatás (főleg ha az adattároló felhő) tervezésénél kritikus az, hogy milyen megoldásokat alkalmaznak, hogyan oldják meg az elosztott adatbázisok problémáit és hogyan használják ki az előnyöket.
- 12 -
2.3.1 Felhő-alkalmazás a fejlesztő szemszögéből
5. ábra Amit a fejlesztő lát
2.3.2 Keretrendszer A keretrendszerek (framework) létrejöttének egyértelmű célja, hogy megkönnyítse a programozók,
programtervezők
számára
az
alkalmazásfejlesztést.
Legtöbbször
keretrendszernek hívják az egyes, már előre megírt, tipikusan sokat használt komponenseket, metódusokat tartalmazó könyvtárakat. Ezen felül általában egy ilyen rendszer több programozási nyelvet támogat, több technológiát fog össze, biztonságos futtatást biztosít (felügyelt a futtatókörnyezet), lehet objektum-orientált vagy akár strukturált, rendelkezik sok beépített osztállyal, komponenssel (amik akár tetszés szerint bővíthetőek, átírhatóak), támogatja az adatbázis kapcsolatokat valamint különböző tervezési minták használatát segíti. A keretrendszer nem más, mint egy stabil alap, valamint sok építőelem és eszköztár, amikből a fejlesztő építkezhet, és ebből kifolyólag egyszerűen oldhat meg komplex feladatokat (Benedek, Levendovszky, 2007).
- 13 -
2.3.3 Szoftver keretrendszer A szoftver keretrendszer hasonló a könyvtárakhoz (libraries), tehát ugyanúgy absztrakt komponenseket, osztályokat, metódusokat tartalmaznak és azokat egy jól definiált APIn keresztül lehet elérni. Míg azonban a könyvtárakat magának a fejlesztőnek kell beilleszteni, és a megfelelő metódusokat hívni, addig keretrendszer esetében ez mind a futtatókörnyezet feladata és emiatt ez rejtve marad a fejlesztő elől.
2.3.4 A .NET, mint példa szoftver keretrendszerre Maga a .NET két fő részből áll: közös nyelvi futtatókörnyezet (Common Language Runtime - CLR) és osztálykönyvtárak (Base Class Library – BCL). A közös nyelvi futtatókörnyezet (CLR) több programnyelv integrációját, típus kompatibilitást és felügyelt, biztonságos futtatókörnyezetet biztosít (Microsoft,2010). A keretrendszer több technológiát foglal magába, néhány példa erre:
Windows Forms (ablakos, asztali alkalmazások, vastag és vékony kliens alkalmazások)
ASP.NET (dinamikus web alkalmazások)
ADO.NET and XML (alkalmazásokhoz adatbázis támogatás)
Web Services (web szolgáltatások)
Silverlight (weboldalba ágyazott vagy kliens alkalmazások)
A .NET felépítése
6. ábraA .NET réteges felépítése (Benedek, Levendovszky, 2007)
- 14 -
Látható hogy maga a rendszer rétegesen épül fel, hasonlóképpen, mint például a hálózati kommunikáció. A Common Language Runtime található az operációs rendszer felett. Feladata a futtatási környezet biztosítása, valamint az operációs rendszerrel való kommunikáció, és annak a bonyolultságának elfedése. A Base Class Library tartalmazza az előre megírt komponenseket, metódusokat, amiket a felettük elhelyezkedő technológiák használni tudnak. A felső rétegekben található technológiák közül már a fejlesztő választhat, hogy melyiket használja az egyes problémák megoldására. Látható hogy sok programozási nyelvet lehet használni, amit a CLS, azaz a közös nyelvi specifikáció tesz lehetővé. Maga a .NET keretrendszer nyelv független, minden szolgáltatása elérhető minden nyelv számára.
2.3.5 Web alkalmazás keretrendszer és AJAX keretrendszer Gyakorlatilag a szoftver keretrendszer kibővítése olyan komponensekkel, amelyek segítségével tervezhetünk dinamikus weboldalakat, web alkalmazásokat, web szolgáltatásokat. A legtöbb ilyen framework tartalmaz adatbázis, sablon (template) támogatást
és
munkafolyamat
felügyeletet
(session
management).
Az
Ajax
keretrendszerek természetesen az előbb felsorolt tulajdonságok mellett még a megfelelő Ajaxos eszköztárakkal is rendelkeznek.
2.3.6 Az Ajax bemutatása Az Ajax egy új módszer, szerszámkészlet ahhoz, hogy izgalmasabb, interaktívabb, nagyobb
felhasználói
élményt
nyújtó
és
gyorsabb
web/felhő-alkalmazásokat
készíthessünk. A mai trendek azt mutatják, hogy a régen megszokott asztali (desktop) alkalmazások legtöbbje eltűnik és böngészőben futó felhő-alkalmazások veszik át a szerepét.
Eleinte
ezek
az
alkalmazások
igen
kezdetlegesek
voltak,
lassú
munkafolyamatok jellemezték, hiszen minden művelet elvégzése után a kliensen végbement változtatásokat el kellett küldeni a szervernek. A szerver feldolgozta majd küldött rá egy választ és az oldal újból betöltődött. Képzeljük el ezt egy hosszabb űrlap kitöltésénél, és ha még hibázunk is, sok időt kell eltöltenünk az oldalon amíg sikerül minden adatot bevinni. Az Ajax ezt (is) hivatott megszüntetni, hiszen az új módszerekkel nem kell mindig újratöltenünk a lapot, nem kell mindig várni a teljes oldal betöltődésére, hanem elég csak a megfelelő részeket frissíteni. Ezek az új - 15 -
alkalmazások már nagyon hasonlítanak a régi asztali verziókra, szinte folyamatos időben lehet velük dolgozni és már olyan funkciókat is támogatnak, mint pl. a „drag and drop”, „zoom”, „instant messages” és még sok mást is. Az ilyen web/felhőalkalmazások előnye asztali társaikhoz képest egyértelmű: bárhonnan elérhetőek, platform függetlenek, nem kell hozzá más, mint internetkapcsolat és egy (korszerű) böngésző. Ezek manapság akár már egy újabb mobil eszközben is megtalálhatóak, míg az asztali programokat telepíteni kellett, csak egy gépen működött (legtöbbjük platformfüggő), ahol pedig nem volt telepítési jogunk, ott használhatatlanok voltak. Az Ajax az „Asynchronous JavaScript and XML” (Aszinkron JavaScript és XML)-t takarja. De mi is az Ajax? Nem egy programozási nyelv, nem is egy beépülő modul (plugin), hanem inkább egy technika. Olyan technika, amely ötvöz és összefog több, a web fejlesztés során alkalmazott technológiát, megoldási módot, mintát (Garret, 2005). Megfelelő kérés – válasz parancsokkal történik az adatátvitel a böngészőprogram (azon belül a JavaScript feldolgozó egység) és a szerver között, mindez a háttérben úgy, hogy akár a felhasználó nem is észleli. Mivel a kliens nem kéri le mindig az egész oldalt, csak annak egy részét, jelentős adatforgalom csökkenést lehet így elérni. Előnye egyértelmű: kevesebb adatmozgatás, kisebb sávszélesség igény, jobb szerverkihasználtság érhető el.
2.3.7 Adattárolás a felhőben – elosztott adatbázisok Hogyan is oldják meg azt a felhőben, hogy megtalálják mindig a szükséges adatokat? Elosztott adatbázisokkal, ami nem más, mint csomópontok összessége, amelyek rendelkeznek saját központi processzorral, háttértárral és adatbázis-kezelővel. Ezen csomópontok úgy vannak összekötve, hogy képesek legyenek egymás között adatcserét lebonyolítani, miközben az adatbázis-kezelők felhasználói (itt most gondolhatunk a felhő üzemeltetőjére) csak egyetlen, logikailag egységes adatbázist látnak, fizikailag nem tudják, hol helyezkedik el az adat (Kovács, 2002).
Az elosztott adatbázisok előnyei:
nagyobb megbízhatóság
nagyobb elérhetőség - 16 -
kisebb kommunikációs költségek
gyorsabb válaszidő
moduláris növekedés
A nagyobb megbízhatóság, elérhetőség biztosításához és fenntartásához alapvető, hogy olyan komponenseket használjanak, amik már maguk is nagy megbízhatósággal rendelkezzenek. Fontos az adatok duplikált (redundáns) tárolása, különböző fizikai helyeken, és a csomópontok közti összeköttetések hibái ellen többszörös elérési utakat kell biztosítani. Egy vagy több csomópont meghibásodása esetén sem állhat le a rendszer működése, fel kell készülni arra, hogy a csomópontok adott esetben átvegyék a kieső pontok feladatait. Meg kell oldani a tranzakció, valamint a globális és lokális adatok megfelelő kezelését is, de ez már adatbázis tervezés és szervezés témakörébe tartozik. Az elosztott adatbázisok hátrányai:
költséges szoftver
túlzott komplexitás
adatintegritás biztosítása egyre nehezebb
lassú válaszidő
Ha rosszul szervezik meg az elosztott adatbázist, akkor az elosztottságból fakadó előnyök, hátrányokká változnak. Rossz elosztás esetén a válaszidő növekszik, túl sok üzenetküldésből kifolyólag. Ilyen rendszereknél a legfontosabb a tervezés és a megfelelő tranzakciós protokollok (pl. WALL, 3PC stb.) használata (Gajdos, 2006).
- 17 -
A Microsoft a saját platformjának felhő változatát hozta létre Windows Azure Platform néven. Akik eddig is ebben a környezetben fejlesztettek, azok nagyon könnyen tudnak alkalmazásokat írni a felhő környezetre is, hiszen ugyanazokat a fejlesztőeszközöket kell használniuk és a két rendszer közötti portolás végtelenül egyszerű. Mivel alapja a felügyelt .NET környezet, ezért az ott megszokott és használt nyelvek természetesen itt is használhatóak.
7. ábra Windows Azure
3.1.1 Windows Azure Maga a termék, egy felhőszolgáltatásokat nyújtó operációs rendszer, ami biztosítja, a fejlesztők számára az egységes fejlesztői környezetet, a szolgáltatásüzemeltetők számára pedig az egyszerű munkavégzést. Legnagyobb előnye, hogy rendkívül gyorsan lehet egyes ötleteket lefejleszteni és azokat piacra juttatni. A rendszer online szolgáltatásként érhető el, a számlázás pedig forgalom vagy előfizetés alapján történhet (Microsoft, 2010).
- 18 -
3.1.2 Microsoft SQL Azure Az SQL Azure nem más, mint egy felhő alapon működő relációs adatbázis-kezelő rendszer. Természetesen ennek is Microsoft alapjai vannak és ötvözi a felhő nyújtotta előnyöket a saját adatbázis kezelő rendszerükkel. Ennek segítségével egyszerűen lehet létrehozni és beállítani akár egyszerre több adatbázist is.
3.1.3 Microsoft Azure platform AppFabric A fejlesztők lehetőséget kapnak arra, hogy az AppFabric-on keresztül összekapcsolják a lokálisan futó alkalmazásaikat a felhőben futó alkalmazásokkal vagy szolgáltatásokkal.
Az Ubuntu méltán népszerű a Linux disztribúciók között, hiszen ingyenes,
kellemes kezelőfelülettel
rendelkezik,
tökéletesen
megfelel otthoni és akár üzleti felhasználásra is és jelenleg már a 10.10-es verziónál tartanak. Mivel igen sokan használják ezt a disztribúciót netbookon ahol viszonylag szűk tárhely áll rendelkezésre, ezért jöhetett létre az Ubuntu saját adattároló felhő szolgáltatása az Ubuntu One. Alapvető szolgáltatása a biztonságos fájltárolás, szinkronizálás és megosztás, de ezen felül nyújt még extrákat is. Képes könyvjelzőket és címjegyzéket is elmenteni és természetesen azt szinkronizálni is. Az adatokat elérhetjük webes felületen, de ami fontosabb, hogy mobil eszközökről (Android és iOS) is. Jelenleg még csak Ubuntu felhasználók élvezhetik mindezt, de a készítők már dolgoznak a Windows operációs rendszerre szánt változaton is. A szolgáltatás kis csomagja ingyenes, de ebben csak 2 GB adatot tárolhatunk, míg a nagyobb csomagban 50GB is elfér, mindössze havi 10 USD-ért (Ubuntu, 2010).
- 19 -
Az Amazon igazi úttörő a felhőszolgáltatások terén, infrastruktúrán alapuló szolgáltatásokkal kezdte, de mára ezeket kibővítette és több mint egy tucat termékkel jelentkezik. Az AWS – Amazon Web Services egy olyan platform, ami számítási teljesítményt, tárhelyet, gyors kiszolgálást és még számos egyéb funkciót nyújt az üzleti szférának, kis- és középvállalkozásoknak hogy költséghatékonyan fejleszthessenek, használhassanak egyes alkalmazásokat. Ezek közül a szolgáltatások közül ismertetek néhányat (Amazon, 2010): Amazon Simple Storage Service (S3) Adattároló szolgáltatás. Fájlokat tárolhatunk biztonságosan és érhetünk el a weben. Tárhelyből korlátlan áll rendelkezésre, redundancia biztosított és akár verziókövetés funkció
is
aktiválható.
Kiváló
biztonsági
mentések
tárolására
és
webes
fájlmegosztáshoz is. Számlázás használat (tárolt adatmennyiség és forgalom) alapján történik. Amazon Elastic Compute Cloud (EC2) Ez a szolgáltatatás könnyen méretezhető, szabályozható, garantált teljesítményű számítógépes
kapacitást
kínál.
Igazából
szervertípusok
készíthetők
ezzel
a
szolgáltatással. Vannak az Amazon által előre definiáltak, de akár saját AMI (Amazon Machine Image) is létrehozható. A számlázás itt is használat alapján történik (számítási kapacitás, idő és adatforgalom). Amazon Virtual Private Cloud (VPC) Biztonságos kapcsolatot kínál a már meglévő üzleti IT infrastruktúra és az Amazon S3+EC2 szolgáltatási közé. Ez egy kiterjesztett VPN kapcsolat, ami hidat képez a szolgáltatások között. Akárcsak az előzőeknél, a számlázás itt is használat (idő és forgalmazott adatmennyiség) alapján történik. Amazon SimpleDB és Amazon Relational Database Service (RDS) Relációs adatbázis szolgáltatás a felhőben, biztonságosan, redundánsan kihasználva a felhő minden előnyét. Számlás a szokott módon, használat alapján.
- 20 -
Vélhetőleg ez a legnépszerűbb szolgáltatása a Google-nek a keresője után. Ingyenes email rendszer, ami több mint 170 milló felhasználóval büszkélkedhet (NumberOf.net, 2010). Ezt a szolgáltatást a keresőcég 2004-ben indította, de népszerűsége 2007-ben lett igazán, amikor is már 7 GB tárhelyet kínált. Eleinte a regisztrálás meghívásos alapon működött, de mára ez megszűnt, bárki előtt nyitva áll a lehetőség. Használatához ajánlott egy modern böngésző, hiszen azon keresztül már a felhasználói élmény is jóval nagyobb az Ajax megoldásoknak köszönhetően, de a régebbi böngészőprogramokkal is elérhető a felület egyszerű HTML nézetben.
8. ábra A Gmail felülete
Felülete egyszerű és letisztult, de akár más sablonokat használva személyesebbé tehetjük. Ez a felhő-alkalmazás úgy lett elkészítve, hogy a gyorsbillentyű parancsokat is használhassunk, így felgyorsítva azokkal munkát. Beépített spamszűréssel rendelkezik, automatikus mentéssel óvja a már megírt levél részleteket és a címkézés segítségével könnyen rendszerezhetjük leveleinket. A Gmail levelezőfiókunkat elérhetjük akár mobil eszközökről is, mind weben vagy natív program keretében, de ugyancsak elérhető dedikált levelező kliensből POP3 vagy IMAP protokollon keresztül, de levelet is küldhetünk SMTP-n keresztül. A Gmail-en keresztül akár saját domain-ünket is használhatjuk, a cím a mienk lesz, de az e-mailszolgáltatást teljes mértékben a rendszer végzi.
- 21 -
Akárcsak a Gmail, ez is ingyenes szolgáltatatás, de vannak olyan opciói, amelyek fizetősek. Alapvetően egy olyan felhő-alkalmazás a Google Calendar, mint bármelyik naptár alkalmazás, legnagyobb előnye azonban természetesen az, hogy az adatok interneten tárolódnak és egy böngésző segítségével elérhető a szolgáltatás. Természetesen az egyszerű naptár funkción kívül tartalmaz egyéb megoldásokat is: az események könnyen megoszthatóak másokkal, az ismerőseink a naptáron keresztül jelezhetik hogy részt vesznek-e az adott eseményen és akár SMS értesítés kérhető egyegy eseményhez. Könnyű importálni és exportálni az alkalmazásból az iCal (.ics) formátum segítségével. Maga a szolgáltatás integrálva lett a levelező szolgáltatással, és akár az e-mail alapján felvehetünk a naptárunkba egy új időpontot. Természetesen a mobilitás itt is fontos, egyes mobil eszközökre már megjelentek a különböző szinkronizáló programok, amiken keresztül könnyen összekapcsolható a Google Calendar az eszköz naptár alkalmazásával.
9. ábra A Google Calendar felülete
Az üzleti felhasználók a Google Alkalmazások keretében vehetik igénybe a (fizetős) szolgáltatást. Ez esetben az Calendarban lehet erőforrásokat kezelni (pl. teremfoglalás), integrálható Microsoft Exchange Serverrel, jogosultsági beállítások kiterjeszthetőek, valamint akár saját domain név alá is helyezhetik a naptár elérést (Google, 2010).
- 22 -
A Gliffy online modellező szolgáltatást nyújt. Alapjában véve a szerkesztő eltérően a pl. a Google szolgáltatásaitól nem HTML, hanem Flash alapú, így ezzel a bővítménnyel a felhasználónak rendelkeznie kell, de a Flash igen elterjedt (Adobe, 2010).
10. ábra A Gliffy felülete
Természetesen előnye az, hogy online, bármikor elérhető egy asztali számítógépről. Az elkészített diagramokat, modelleket online is tárolja, de természetesen le is menthetőek, ha szükséges. Alapból tartalmaz beépített sablonokat különböző kategóriákhoz, de itt is használható saját sablon is. Következő sablonokkal rendelkezik: weboldal vagy szoftver felhasználói felület, Venn diagram, szervezeti diagram, SWOT analízis, folyamatábra, hálózati diagram, szoftvertervezés/UML diagram, üzleti folyamatok és alaprajz. A szolgáltatás alapvetően ingyenes, de 30 napig ingyen kipróbálható a bővített (Premium) verzió is.
Egy felhasználónak a bővített szolgáltatás 5$ havonta, de
támogatja a Gliffy a több felhasználós használatot is, aminek keretében kedvezmények érvényesíthetők (Gliffy, 2010).
- 23 -
Ebben a fejezetben a felhő-alkalmazásokat (és ez által a számítási felhőt is) döntéshozói szempontból vizsgálom. Mivel napjainkban az internet már közművé nőtte ki magát, így igen fontosnak tartom, hogy a döntéshozók rendelkezzenek minél több információval az informatikai megoldásokat illetően és éljenek az új lehetőségekkel. Először SWOT elemzés segítségével vizsgálom azt, hogy milyen hatása lehet egy felhő alapú rendszer bevezetésének a szervezetre nézve. Majd a fejezet második felében, arra a kérdésre keresem a választ, hogy érdemes-e kis- és középvállalkozások számára a felhő megoldásokban gondolkozni, érdemes-e felhő alapú irodai szoftver csomagot választaniuk az asztali csomag helyett, vagy érdemes-e a biztonsági mentéseiket a felhőben tárolni.
„A Harvard Business School iskolában oktatott ismeretek lényegét foglalja össze ez a koncepció, amely a későbbiekben bizonyos kiegészítésekkel SWOT modellnek nevezték el. Az eljárás a környezet, a szervezeti célok, a stratégiák akcióinak komplex, rendszerelméleti megközelítésére törekszik. A vállalati sikeresség alapfeltétele ebben a modellben a vállalatra ható/működésére jellemző külső/belső feltételek részletes elemzése.” (Hollóné, Nagy, Román, Tánczos, 2004, 84. oldal) A SWOT mozaikszó, aminek leírása a következő ábrán látható. A magyar megfelelője a GYELV. Általában az elemzés üzleti terv részét képezi, főként a döntéshozók számára készül, mert ezzel feltérképezhető egy üzlet, termék vagy szolgáltatás életképessége, segít megismertetni, hogy melyek a legfontosabb feladatok a stratégia szempontjából. Az elemzés során a felsorolt négy témakör szerint jellemezük a kívánt terméket, szolgáltatást vagy akár az egész vállalatot. Fontos szempont lehet az elemzés vállalat stratégiájának kialakításában. Természetesen ezt követően ki kell értékelni és ez alapján érvényesíteni kell a változtatásokat stratégiai és operatív szinten is. (Chikán, 2005)
- 24 -
11. ábra SWOT elemzés
4.2.1 Erősségek
Magas rendelkezésre állás
Megbízhatóság
Nagyvállalati háttér
Skálázhatóság
Használat alapú számlázás
Szoftver licenszekért a szolgáltató felel
Kisebb áramfogyasztás
Olcsóbb üzemeltetés - 25 -
4.2.2 Gyengeségek
Függés a tárhely szolgáltatótól
Függés az internetszolgáltatótól
Biztonsági kérdések
4.2.3 Lehetőségek
Nincs szükség lokális tárolásra
Kevesebb kihasználatlan kapacitás
Olcsóbb infrastruktúra bevezetése
Megtakarítás érhető el, ha nincs saját informatikai központ
4.2.4 Veszélyek
Megszakadhat az üzletmenet
Külső ember hozzáférése bizalmas adatokhoz
Örökölt rendszerek inkompatibilitása
Úgy gondolom egy újonnan alapított vállalkozásnak érdemes fontolóra vennie a felhő alapú adattárolás lehetőségét. Mindenképpen költségcsökkentés érhető el ez által és gyakorlatilag, mint közmű tudja használni ezt a szolgáltatást, és fizetnie is csak a „használt” mennyiségek után kell.
Ebben a fejezetben arra keresem a választ, vajon megéri-e egy kisvállalkozásnak felhő alapú irodai szoftvercsomagot bevezetnie vagy arra áttérni. Számításaimat a KSH statisztikai adatok, valamint a Kisvállalkozás indítása és működtetése tantárgy adatainak alapján végzem. Alapvetően feltételezem, hogy a vállalkozások számára szükség van irodai szoftverekre (szövegszerkesztő, táblázatkezelő), hiszen mindennapi munkájuk során szükség lehet dokumentumok készítésére. A magyar gazdaságban a KKV cégek 99,9%-os arányban szerepelnek, és 50%-os arányban részesülnek a hozzáadott értékből (Vecseny, 2003). Egyes vállalkozásoknál a költségcsökkentés életmentő lehet, valamint új vállalkozások alapításánál is fontos az, - 26 -
hogy milyen indulási és működési költségekkel kell számolniuk. Általában elmondható, hogy a kisvállalkozások indulás során nem rendelkeznek óriási tőkével, tehát jól meg kell tervezniük mire, mennyit áldoznak. Előnye még a felhő alapú irodai szoftvercsomagoknak, hogy ingyenesen használhatóak vagy olcsóbban elérhetőek, mint a dobozos, licenszelt verziók. Ha éppen egy vállalkozásnak nincsen szüksége olyan szoftverekre, amelyek csak dedikált operációs rendszeren futnak (pl. Microsoft Windows) és az informatikát csak dokumentumok készítésére, valamint internetezésre használják, valós alternatíva lehet számukra valamilyen ingyenes Linux alapú operációs rendszer (pl. Ubuntu, későbbiekben akár Google Chrome OS), ezzel is csökkentve az induló és működési költségeket.
4.3.1 Irodai szoftvercsomagok Név
Microsoft Office Home and Business (dobozos)
OpenOffice.org (dobozos)
Microsoft Office Live (felhő alapú)
Google Docs (felhő alapú)
Ár
Tartalom
szövegszerkesztő táblázatkezelő prezentációkészítő levelező kliens
$279 ~ 60 000Ft / PC
szövegszerkesztő táblázatkezelő prezentációkészítő rajzoló és adatbázis kezelő
ingyenes
szövegszerkesztő táblázatkezelő prezentációkészítő
ingyenes
szövegszerkesztő táblázatkezelő prezentációkészítő rajzoló űrlapkészítő
ingyenes
- 27 -
(kiskereskedelmi boltok árai alapján)
4.3.2 Működő vállalkozások számszerűsítése Az alábbi ábra mutatja, hogy a működő vállalkozások alkalmazottainak száma szerint hogyan oszlanak meg. Az adatok 2008-as KSH forrásból származnak.
39 560 18 10 853073 6 111 1-4 fő 5-9 fő 10-19 fő 20-49 fő 626 793
50 fő felett
Látható, hogy főleg mikro és kisvállalkozások a jellemzőek a magyarországi viszonyokra létszám alapján. Egy mikro (5 fő) és egy kisvállalkozás (15 fő) esetében vizsgálom, hogy mekkora megtakarítás érhető el azáltal, hogy ingyenes felhő alapú irodai megoldásokat használnak.
4.3.3 A mikro vállalkozás Mivel a vállalkozás kicsi, maguk az alkalmazottak is több szerepet láthatnak el. A következő feltételezésekkel élek: két számítógéppel és egy notebookkal rendelkezik a cég. A két számítógép irodai környezetben található, míg a notebookkal az ügyvezető dolgozik. Az egyik számítógépet a pénzügyekért felelős, a másikat pedig az adminisztrációs ügyekért felelős személy kezeli. Nem rendelkeznek különösebb hálózati infrastruktúrával, csak a céges internetkapcsolatot osztják meg. Nem rendelkeznek külön biztonsági mentésekkel. Mivel mindkét esetben a hardvereszközökre szükség van, ott nem lehet költségcsökkentés elérni, de a szoftvereken igen. Feltételezem azt is, hogy a vállalkozás nem használ operációs rendszer specifikus programokat. Ezen információk alapján a következzen egy költségbecslés felhő alapú és dobozos szoftverek választásával kapcsolatban.
- 28 -
2 db PC
Termék
Ár
Operációs rendszer:
~ 40 000Ft x 2 = 80 000 Ft
Microsoft
Windows
7
Professional (OEM)
Irodai szoftver:
~ 60 000 Ft x 2 = 120 000 Ft
Microsoft Office 2010 Home and Business
Notebook
Operációs rendszer:
notebook árában
~ 60 000 Ft Irodai szoftver:
Microsoft Office 2010 Home and Business
(kiskereskedelmi árak alapján számolva) Jelen esetben, csak a szoftver licenszek árai több mint negyed millió forint felett vannak. Ez megközelítőleg a fele a teljes hardver árának. Véleményem szerint, egy mikro vállalkozásnál ez jelentős mértékű költség, ezt mindenképpen meg tudják takarítani az esetben, hogyha mondjuk Office Live-t vagy Google Docs-t használnak, ingyenes operációs rendszeren. Aminek előnye lenne még az, hogy bárhonnan elérhető, automatikusan készül biztonsági mentés és egyszerre akár többen is szerkeszthetik.
4.3.4 A kisvállalkozás Itt a példa vállalkozás már 15 alkalmazottal rendelkezik és tevékenységi körükből fakadóan, minden alkalmazott számítógép használó. 10 asztali számítógéppel és 5 notebookkal rendelkezik a vállalkozás. Mivel egyes alkalmazottak használnak Windows specifikus szoftvereket, ezért nem minden gépen, de legalább ötön szükséges ezt használni. Ekkora cég esetében már fontos a központi szerver a biztonságos adattárolás - 29 -
szempontjából. A következő táblázatban azokat a tételeket tüntetem fel, amivel adott esetben csökkenthető az informatikai kiadás egy induló vállalkozás esetén, ha helyette felhő alapú megoldásokat választanak.
10 db PC
Termék
Ár
Operációs rendszer:
~ 40 000Ft x 5 =200 000 Ft
Microsoft
Windows
7
Professional (OEM)
(5db-ra szükséges)
Irodai szoftver:
~ 60 000 Ft x 10 = 600 000 Ft
Microsoft Office 2010 Home and Business
5 db Notebook
Operációs rendszer:
notebook árában
~ 60 000 Ft x 5 = 300 000 Ft Irodai szoftver:
Microsoft Office 2010 Home and Business
Központi szerver
Itt
hardver
költség ~ 500 000 Ft
jelentkezik, szerver, háttértár, szünetmentes tápegység stb.
(kiskereskedelmi árak alapján számolva) A szoftver több mint egy millió forint, míg a biztonsági mentések és a központi adattároláshoz szükséges szerver ára is legalább 500 000 Ft. Egy ilyen vállalkozás számára igen csak megfontolandó, hogy adattárolásra pl. Amazon S3 szolgáltatást vegyenek igénybe, aminek ára töredéke a szerver árának évente.
- 30 -
Ebben az esetben, nem az ingyenes Google Docs-t ajánlanám, hanem a Google Apps Premium (Alkalmazások) csomagot. Az irodai szoftverek mellett tartalmaz még emailszolgáltatást (Gmail), naptárat, webhely és videó szolgáltatást is (további paraméterek: http://www.google.com/apps/intl/hu/business/features.html). Ára pedig felhasználónként 50$ egy évre, ez megközelítőleg 150 000 Ft évente (15 felhasználó), ami majdnem 90%-os megtakarítást jelent ahhoz képest, ha dobozos szoftvereket vásárolnának. Ez jelentős összeg és a csomag még jóval több mindent is tartalmaz.
4.3.5 Tanulságok Mind a Google, mind a Microsoft egyre inkább bővítik ingyenes vagy igen olcsó online szolgáltatásaikat. A számokból látható, hogy igen nagy összegek takaríthatóak meg a felhő szolgáltatások használatával és a mostani tendenciákat figyelembe véve, várhatóan egyre többen is fogják majd ezeket az alkalmazásokat, szolgáltatásokat igénybe venni. Természetesen nem szabad figyelmen kívül hagyni azt sem, hogy ezeknek is vannak kockázataik, hátrányaik. Szükséges hozzájuk oktatás, akárcsak bármilyen szoftverhez, de véleményem szerint ezek a kockázatok eltörpülnek az előnyök mellett.
- 31 -
Saját alkalmazás fejlesztése során bemutatom, hogy milyen egy felhő-alkalmazás fejlesztése, azt milyen eszközökkel lehet megkönnyíteni. Ez az alkalmazás az iMenetrend, ami mobil eszközökre, főleg iOS-ra és Androidra készült. Mivel ez egy webes alkalmazás, ezért a szolgáltatás bármilyen modern böngészővel rendelkező eszközön elérhető (de mivel mobilra optimalizált, ezért a megjelenése eltér). A célja, hogy bármikor, bárhonnan, gyorsan elérjük a MÁV menetrendjét. A fejlesztés során először létrehozom az alkalmazás specifikációját, lefektetem az alapkövetelményeket, definiálom a funkcionalitást, majd a rendszer és az architektúra specifikációját. Ezután következik
az
implementációs
szakasz,
a
szoftver
fejlesztői
környezet
meghatározásával, valamint néhány implementációs lépés ismertetésével. Végül az alkalmazás
és
használatának
a
bemutatásával,
valamint
a
tapasztalatok
összefoglalásával zárom a fejezetet.
Egyes alkalmazások (a webes/felhő-alkalmazások tipikusan ilyenek) több rétegből épülnek fel, ami annak a következménye, hogy alacsonyabb és magasabb szintű funkciókból épülnek fel. Általában az alkalmazás felbontható modulokra, így egyes változtatásokat a többi modultól függetlenül végre lehet hajtani. Két legelterjedtebb architektúrális modell, amit a web alkalmazások fejlesztésénél használnak az MVC (Model, View, Controller) és a Document – View.
Az iMenetrend alkalmazás
fejlesztése MVC architektúra szerint történt.
5.2.1 MVC (Model, View, Controller) – Modell, Vezérlő, Nézet A Model tartalmazza az alkalmazáslogikát, adatbázis kapcsolatokat. Gyakorlatilag ezen réteg felelős az adatok feldolgozásáért. A View felel a megjelenítésért a felhasználó felé. A Controller biztosítja az interakciót a felhasználóval, kapocs a View és a Model réteg között (Helman, 1998).
- 32 -
Előnyei:
Több nézet hozzárendelése egyszerűen
Egymástól függetlenül cserélhető nézetek és kontrollerek
Hátrányai:
Egy idő után túl nagy lehet a komplexitása
Frissítések száma akár indokolatlanul nagy lehet
12. ábra MVC felépítése
5.2.2 Document-View – Dokumentum-Nézet A Controllert és a Modelt összevonták, ebből keletkezett a Document. Ez tartalmazza az adatokat és az interakciókat. Ezáltal csökkenthető a komplexitás és a frissítések száma, de a nézetek előnyei megmaradnak. Ezt használja a Microsoft Foundation Class Library (MFC).
- 33 -
13. ábra Document-View felépítése
5.3.1 Követelmény specifikáció Az iMenetrend alkalmazásnak mobil eszközök, okostelefonok (iPhone, Android, esetleg BlackBerry) böngészőjében kell futnia. Az alkalmazásnak képesnek kell lennie keresésre a beállított állomás vagy megállóhelyek között, valamint képesnek kell lennie szűrnie beállított időpontra is. Természetesen a keresési találatokat meg kell jeleníteni, azokat kiválasztva plusz információkkal ellátni a felhasználót (vonat késése, átszállások). Az alkalmazásnak fel kell ajánlania a keresési kulcsszó begépelése során a lehetséges választásokat, ezzel segítve a felhasználót. Követelmény az, hogyha a felhasználó megosztja a földrajzi helyét (koordinátáit) az alkalmazással, akkor a keresési mezőbe automatikusan bekerüljön a legközelebbi állomás vagy megállóhely neve, ezzel megint csak növelve a felhasználói élményt és a keresés meggyorsítását. Amikor már a felhasználó kapott keresési találatokat, képesnek kell lennie egy gombnyomással elérnie a visszaútra vonatkozó információkat is. Ezeket a követelményeket az alábbi use-case diagram mutatja be:
- 34 -
14. ábra Az alkalmazás use-case diagramja
5.3.2 Funkcionális specifikáció A felhasználó a következő felületre érkezik, miután az oldalra navigál:
15. ábra Felületterv: kezdőképernyő
- 35 -
1. A keresőmezők. Ide írhatja a felhasználó a kívánt megálló vagy állomásneveket. 2. Időpont kiválasztó, legördülő lista. 3. Gombok, amelyekkel a földrajzi helyzetünket oszthatjuk meg, és ennek hatására a legközelebbi állomás neve kerül a megfelelő mezőbe. 4. Keresés gomb, amivel indíthatjuk a keresést. Az 1.-es számmal jelölt mezőkbe lépve, a gépelés során az alkalmazás felajánlja a gépelés alapján a lehetséges állomásokat. A felajánlási lista azokat az állomásokat tartalmazza, aminek a kezdőbetűi (kisbetű, nagybetű különbség nem számít) megegyeznek a már begépelt betűkkel. A 4.-es számmal jelölt gombra kattintva a keresési mezők eltűnnek (bezáródnak, később ezek kinyithatóak) és a felhasználó a keresési találatok képernyőre jut. Keresési találatok képernyő:
16. ábra Felületterv: keresési találatok
- 36 -
1. Töltési indikátor jelzi az adatok letöltését. 2. A keresési doboz kis méretben megtalálható, így a felhasználó könnyen tud újból keresni. Kattintásra lenyitható és visszacsukható. 3. Ez a keresési találatok szekció, melyben listaszerűen megtalálhatóak a vonatok időpontjai. 4. Ha az egyes időpontokat kiválasztja a felhasználó, akkor az Vonatinformáció képernyőre jut. 5. Visszaút gomb. Használatával a felhasználó a már beállított keresési értékek alapján megkapja a visszaút menetrendjét. Vonatinformáció képernyő:
17. ábra Felületterv: vonatinformáció
1. Visszalépés az előző képernyőre (Keresési találatok). 2. Az állomások felsorolása, átszállás esetén természetesen több. 3. A menetrend szerinti érkezési és indulási időpontok, valamint egyes vonatoknál a késésekkel számolt időpontok láthatóak. 4. A vonatok egyedi száma.
- 37 -
5.3.3 Rendszer specifikáció
Adatbázis: Oracle MySQL Community Server A MySQL a legelterjedtebb szabad felhasználású SQL alapú relációs adatbáziskezelő. Elterjedtségét annak köszönheti, hogy teljesen nyílt forráskódú, ezáltal költséghatékony megoldást nyújt. A legtöbb operációs rendszerhez elérhető. Az elkészült alkalmazás adatbázis szervere UNIX környezetben fog futni, de Windowsos környezetre is könnyű migrálni.
Web kiszolgáló: Apache HTTP Server Ugyancsak nyílt forráskódú, szabad felhasználású termék. UNIX környezetben fog futni, de ugyancsak elérhető több operációs rendszerhez. Igen elterjedt web kiszolgáló.
Kliens oldali keretrendszerek: jQuery és jQuery Touch Manapság az egyik legnagyobb, GNU licensz alatt elérhető JavaScript könyvtár. Cross-browser, CSS1-3 támogatás jellemzi. A projekt oldalán különböző plugineket is találhatunk, amelyek a csomag lehetőségeit kihasználni, szinte már kész alkalmazásokat nyújtanak. A jQuery Touch pedig kifejezetten mobil eszközökhöz készült keretrendszer, egyszerűsítendő a fejlesztés menetét.
Böngészők: iOS Safari és Android beépített böngésző Mindkét mobil platform Webkit alapú böngészővel rendelkezik, ezért megfelelő előkészítéssel (ezek a mobil kliens oldali keretrendszerek) a fejlesztés során olyan terméket lehet létrehozni, ami mindkét platformon működik.
- 38 -
5.3.4 Rendszer architektúrája
18. ábra Rendszer architektúrája
A 18. ábrán látható a rendszer architektúrája. Három fő pillér látható: a MÁV szervere, a saját alkalmazás szervere, valamint a felhasználók eszközei (azon belül is a böngészők). A felhasználó által intézett interakciók kapcsán vizsgálom, hogy ezen az architektúrán az eseményeknek megfelelően milyen adatmozgások, adatfeldolgozások történnek. Az alkalmazás megnyitása A mobil eszköz böngészője HTTP kérést küld az imenetrend.com web kiszolgálójának. Az válaszol és elküldi az oldal megjelenítéséhez szükséges adatokat (HTML fájlok, képek, stílusfájlok, parancsfájlok stb.) (Tanenbaum, 2004). A keresőmezőbe történő gépelés Ezt az eseményt már a jQuery Javascript keretrendszer kezeli le. Mivel egy „autoComplete” komponens van rendelve a keresőmezőkhöz, így ilyenkor Ajax kérést indít a böngésző az iMenetrend web kiszolgálójához. A kiszolgáló feldolgozza a kérést, a paramétereknek megfelelően lekérdezést indít az adatbázis kiszolgáló felé. Ezen lekérdezés eredménye tartalmazza azokat az állomásneveket, aminek a kezdőbetűi egyeznek a keresőmezőbe begépelt karakterekkel. Ezután a web kiszolgáló az - 39 -
eredményt JSON formátumba konvertálja, amit visszaküld a böngészőnek. A választ ugyancsak a jQuery keretrendszer dolgozza fel, majd egy választó listaként megjeleníti az adatokat. A „legközelebbi állomás” gomb megnyomása Ez a metódus nagyon hasonló az előzőhöz. A gomb lenyomás eseményt a jQuery keretrendszer lekezeli és meghívja a szükséges függvényeket, jelen esetben először a böngésző fele indít egy kérést, ami a jelenlegi koordináták lekérdezésére irányul. Ha erre választ kap, akkor egy Ajax kérésben elküldi a böngésző által megadott koordinátákat az imenetrend.com kiszolgálójának. A kiszolgáló ilyenkor meghívja a szükséges programot, ami paraméterben megkapja a kérésben szállított koordinátákat. A program adatbázis lekérdezést indít és megkeresi a koordinátáknak megfelelő legközelebbi állomás nevét, majd azt a web kiszolgáló az Ajax kérésre adott válaszban visszaküldi a kliensnek. Ezután a kliens beilleszti azt a megfelelő keresőmezőbe. A „keresés” gomb megnyomása Az eseményt a már megszokott jQuery keretrendszer kezeli: Ajax kérést indít a honnan, hova és mikor paraméterekkel a saját kiszolgáló felé. A kiszolgáló ellenőrzést végez, hogy az adatok megfelelőek-e, ha nem akkor elutasítja azokat és hibát jelez a válaszban. Ha a kérés jó, akkor egy (Perl) programhoz jutnak a paraméterek. Ez a program HTTP POST kérésben elküldi a paramétereket a MÁV web kiszolgálója felé. Az (ha működik, és jók a paraméterek) visszaküldi az iMenetrend kiszolgálónak a válaszban azt a HTML oldalt, amit akkor kapnánk, ha asztali böngészőből néznék a MÁV menetrendjét. Mivel jelen esetben nem kell képeket, stílusfájlokat stb. letölteni, csak egyszerű szövegfájlt ez igen gyorsan megtörténik (főleg szerver-szerver közti vonalon). A válaszban kapott HTML oldalt a program XPath segítségével feldolgozza, kinyeri belőle a szükséges információkat és azt JSON formátumba alakítja. Ezt a programot Oroszi Róbert fejlesztette, és API-ként elérhető, szabadon használható (api.oroszi.net). Az API több paramétert kezel, és több formátumban tud válaszolni (JSON, XML, HTML stb.). Miután a JSON elkészült a web kiszolgáló ezt válasz üzenetben küldi a kliensnek. Alapvetően nem csak az állomások listáját tartalmazza időpontokkal, hanem már a részletes információkat is. Ennek oka, hogy így egy lekérésen belül minden információ elküldhető, nem kell minden esetben a szerverhez fordulnia a kliensnek, amikor a részletes információkra vagyunk kíváncsiak. Ezzel sávszélességet és akkumulátor - 40 -
időtartamot takarítunk meg. A választ a keretrendszer feldolgozza, listát készít, belőle majd megjeleníti a felhasználónak. Természetesen az architektúra e verziója leegyszerűsített, de így jobban átláthatóak a kérések, válaszok és egyszerűbben megérthető a működés.
5.4.1 Szoftver fejlesztői környezet meghatározása Jelen webes fejlesztés nem igényel különleges fejlesztőeszközöket. Alapvetően egyszerű szövegszerkesztők használatával el lehet végezni a feladatot, bármelyik asztali operációs rendszeren. Természetesen érdemes olyat választani, ami támogatja a kódszínezést (syntax highlighting), és automatikus formázást. Ilyenből több ingyenes és/vagy open-source elérhető, mint pl. NetBeans, Eclipse stb. A fejlesztés Windows 7 operációs rendszeren történt, Microsoft Visual Studio 2010 fejlesztőeszközzel. 5.4.2 A fejlesztés menete Mivel már a fejlesztés megkezdésekor rendelkezésre állt az API, így a lekérésekhez már ezt használtam. Helyenként szükség volt bővítésre és módosításra, ezt az API fejlesztője - Oroszi Róbert - el is végezte. Először az XHTML oldal létrehozása történt meg (input mezők, gombok, linkek stb.), ide kerültek beillesztésre a kliens oldali keretrendszerek (jQuery, jQTouch). Ezek segítségével már fel lehetett készíteni az alkalmazást az események kezelésére, különböző kérések küldésére és a válaszok fogadására. Miután a funkciók már megfelelően működtek, következhetett a felhasználói felület kialakítása és az ehhez szükséges animációk, interakciók beállítása. A kész látványtervből elkészült képeket és stíluslapot az XHTML fájlba illesztve már a végső kinézetet nyerte el az alkalmazás. Végül még az iPhone specifikus dolgok beállítása következett: ikon, kezdőképernyő, lokális adattárolás. 5.4.3 Felhasznált komponensek A fejlesztést jelentősen meggyorsította az, hogy kész keretrendszereket lehetett használni, azokon belül is kész komponenseket. Ezek közül mutatok be hármat: autocomplete keresőmező, ajax kérés, geolocation lekérés. - 41 -
Autocomplete keresőmező Ezzel a komponenssel segíthetjük a felhasználót. Amikor elkezdi begépelni a keresendő kifejezést, egy listában megjelennek azok a lehetőségek, amik megfelelőek a már begépelt karakterek alapján. Így a felhasználó gyorsabban eredményhez juthat és csökken a hibás keresések száma.
var data = ["alma", "repa", "korte", "dinnye"]; var options = { matchContains: true, //bárhol keres a listában minChars: 1 //1 karakter begépelés szükséges a listához minimum }; $(function(){ $("#keresomezo").autocomplete(data, options); });
A jQuery Autocomplete komponens használata rendkívül egyszerű. Pár sorból készíthető ilyen mező, mint azt a fenti kódrészlet is mutatja. Meg kell adni először, hogy milyen adatok között keressen, ez lehet már egy tömb is, de persze Ajax kérés is alkalmazható. Különböző opciók kapcsolhatók be vagy ki, a kódrészlet kettőt ilyen opciót mutat be. Ajax kérés http://api.jquery.com/jQuery.ajax/ A jQuery.ajax() segítségével aszinkron HTTP kéréseket indíthatunk. Lehet egyszerű adatlekérés vagy éppen adatküldés, ami a lényeg, hogy mindehhez nem szükséges újratölteni a weboldalt a böngészőben, hanem minden a háttérben történik.
$.ajax({ url: "teszt.html", cache: false, success: function(html){
- 42 -
$("#kontener").append(html); } });
Jelen esetben a kód igen rövid, és csak mindössze annyit csinál, hogy aszinkron módon betölti a teszt.html tartalmát a kontener azonosítójú HTML elembe. Ez a metódus számos opcióval rendelkezik, számos adattípusra fel van készítve. Az iMenetrend alkalmazásban pl. JSON adatok küldése és fogadása történik ezzel a módszerrel. Geolocation lekérés Egyes böngészők már megvalósítják a Geolocation API-t, így ennek használatával hozzá lehet férni a felhasználó helyéhez (ha a felhasználó hozzájárul ehhez). A felsőkategóriás mobil eszközök már rendelkeznek beépített GPS vevővel így igen pontos értékeket lehet kinyerni a felhasználó tartózkodását illetően. Az iMenetrend is a Geolocation API-t használja, mivel mind az iOS böngészők, mint az Android böngészők támogatják ezt a funkciót.
if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(success); } else { alert("nem támogatott böngésző"); } function success(position) { var latitude = position.coords.latitude; var longitude = position.coords.longitude; alert("lat: "+latitude+" + lon: "+longitude); }
//jQTouch használatával: jQT.updateLocation(success);
Látható, hogy használatához csak pár sor kódra van szükség. Ha a böngésző támogatja a navigator.geolocation szolgáltatást (létezik ez az objektum), akkor annak meghívja egy - 43 -
metódusát (getCurrentPostion()). Ha a metódus sikeres, akkor végrehajtódik a success függvény, ami paraméterben megkapja a pozíció objektumot, aminek csak ki kell olvasni a megfelelő attribútumait és máris rendelkezésre áll a felhasználó helyzete. jQTouch keretrendszert használva még egyszerűbb a Geolocation API használata, csak egy függvényt kell hívni, mint ahogy a példa kód is mutatja (W3C, 2010).
Az elkészült iMenetrend alkalmazás megfelel a követelmény specifikációban leírtaknak: a felhasználó képes keresni, böngészni a keresési találatok között, képes megosztani földrajzi helyzetét és így hozzájutni a legközelebbi állomáshoz. Képes visszaút tervezésére, valamint az egyes vonatok információit megtekinteni. Az alkalmazás működése a funkcionális specifikációban előírt módon történik valamint a felhasználói felület a képernyőtervek koncepcióját követi. Az elkészült alkalmazás iPhone készüléken tesztelve kifogástalanul működik, de szélesebb körben tesztelve Android és BlackBerry felhasználóktól is pozitív visszajelzés érkezett működést illetően. Az alkalmazás nagyközönség számára is elérhető a következő web címen: http://imenetrend.com. Kijelenthető, hogy az alkalmazás megfelel a tervezettnek, ezt következő fejezet képernyőmentései is bizonyítják.
5.5.1 Használata Ha a web címet asztali böngészőben használjuk, akkor az alkalmazást népszerűsítő nyitóoldalra érünk (19. ábra). Ahhoz, hogy mobil készüléken is használni lehessen az alkalmazást, internetkapcsolatra van szükség, valamint a mobil készülék böngészőjébe kell beírni a címet: http://imenetrend.com. Ilyenkor automatikusan a mobil felület fog betöltődni, aminek használatát a következő képernyőképek demonstrálják.
- 44 -
19. ábra iMenetrend nyitóképernyő asztali böngészőben
Az alkalmazás használat közben:
20. ábra Alkalmazás használat közben 1.
1. iPhone készüléken lehetőség van a web alkalmazásokat az asztalra menteni. 2. Azt elindítva, mint egy natív applikáció indul, kezdőképernyővel. 3. Az iMenetrend főképernyője, itt lehet keresni. Látható, hogy a dátum mező, napon belül már csak az aktuális vonatokra enged keresni.
- 45 -
21. ábra Alkalmazás használat közben 2.
4. A lokalizáció ikonra nyomva, megkapjuk a legközelebbi állomást. 5. Miután engedélyeztük a hozzáférést, az alkalmazás beírja a megfelelő mezőbe a legközelebbi állomás nevét. 6. Az úti cél beállítása gépeléssel történik, látható a keresési találatokat felajánló lista is.
22. ábra Alkalmazás használat közben 3.
7. A keresés gombra nyomva, indikátor jelzi az adatok betöltését (természetesen, hiba esetén az alkalmazás figyelmeztet). 8. A vonatok listája megtekinthető. Pirossal kiemelve az 1 órán belül indulók. 9. A vonatot kiválasztva elérhetőek róla a részletes információk. - 46 -
Kihasználva a jQuery és jQTouch keretrendszer nyújtotta előnyöket, igen gyorsan és egyszerűen el lehetett készíteni az alkalmazást. Nem volt a fejlesztés során különösebb fennakadás, valamint a keretrendszereknek köszönhetően nem csak iOS, hanem Android és BlackBerry platformon is működik az iMenetrend. Helyenként még gyorsabb működést is lehet tapasztalni, mint az eredeti oldal használatával, mivel itt csak szöveges adatok kerülnek továbbításra (azok is tömörítve) és nem kell letölteni azokat a képeket, amit asztali böngésző esetében szükséges. A fejlesztés során megjelent a jQuery keretrendszer készítőitől egy új, direkt mobil eszközökhöz fejlesztett keretrendszer is a jQuery Mobile. Jelenleg még csak alpha verzióban érhető el, de elképzelhető, hogy később az iMenetrend alkalmazásnál is ez kerül használatra. Továbbfejlesztési lehetőségek:
Kedvencek, ahova el lehet menteni az egyes irányokat
Átszállások kiírása
Integrálás közösségi szolgáltatásokkal (Facebook, Twitter, foursquare)
Jegyárak kiírása
Jegyvásárlás
- 47 -
Szakdolgozatomat a felhő és a számítási felhők bemutatásával kezdtem. Ismertetem fajtáit felhasználási szempontból, majd sorra veszem az előnyöket és a hátrányokat. Ezután a felhő alkalmazások kerülnek terítékre egy általános bemutató keretében, majd fejlesztői
szemszögből
vizsgálom
azt,
mi
szükséges
egy ilyen
alkalmazás
elkészítéséhez, mért jó keretrendszert használni, valamint kitérek a felhőn belüli elosztott adatbázisokra is. A következő fejezetben 6 különböző felhő alapú szolgáltatást ismertetek. Ezek mindegyike más területet fed le. Van köztük egyszerű felhő-alkalmazás, mint pl. grafikonrajzoló, de van közte felhő alapú adattárolást és számítási teljesítményt biztosító szolgáltatás is. Ebből a fejezetből is látszik, hogy a felhasználási terület óriási lehet, attól függően, hogy éppen melyik rétegben nyújtjuk a szolgáltatást. Ezután a felhő szolgáltatásokat és alkalmazásokat döntéshozói szempontból vizsgálom. Arra kérdésre keresem a választ, hogy megéri-e egy kis- vagy középvállalkozásnak ilyen megoldásokat használni, esetleg már indulásakor ezeket igénybe venni. Két példa vállalkozás informatikai igényét figyelve arra a következtetésre jutottam, hogy ezekkel a szolgáltatásokkal jelentős mértékű költségcsökkentést lehet elérni. Ez azért is fontos, mert az ilyen jellegű szolgáltatásokat nem csak a magán vagy versenyszféra vehet igénybe, hanem adott esetben érdemes állami szinten is hasonlóban gondolkozni. Egyes e-government rendszerek már felhő alapúak, de mindenképpen érdemes lehet ezt kiterjeszteni. Az utolsó fejezetben pedig egy konkrét felhő-alkalmazás tervezését és elkészítését mutatom be. Saját ötletből fakadóan készült az iMenetrend alkalmazás, ami működő szolgáltatásként van jelen az interneten, bárki számára elérhető. Egy későbbi dolgozat témája lehet, ezen szakdolgozat valamelyik fejezetének mélyebb ismertetése, vagy éppen az iMenetrend alkalmazás továbbfejlesztése. Mindenesetre úgy gondolom, hogy ez egy fontos téma az informatika területén, hiszen eddig az internet, mint platform volt jelen, ezt a felhő felfogás pedig megváltoztatja és az internet közművé válik.
- 48 -
Adobe: Flash Player penetration http://www.adobe.com/products/player_census/flashplayer/ Letöltés dátuma: 2010. november 14. Andrew S. Tanenbaum: Számítógép-hálózatok, Panem kiadó, 2004 Amazon: What is AWS? http://aws.amazon.com/what-is-aws/ Letöltés dátuma: 2010. szeptember 12. Benedek Zoltán, Levendovszky Tihamér Dr.(2007): Szoftvertechnikák előadásanyagok, BME AUT, Budapest Bruce Tyson (2010): Explaining Infrastructure as a Service (IaaS) http://www.brighthub.com/environment/green-computing/articles/85165.aspx Letöltés: 2010. október 24. Chikán Attila (2005): Vállalatgazdaságtan, Aula kiadó, Budapest Dean Helman (1998): Model-View-Controller http://ootips.org/mvc-pattern.html Letöltés dátuma: 2010. május 13. Gajdos Sándor (2006): Adatbázisok, Műegyetemi Kiadó, Budapest Gliffy: Featuer and Benefits http://www.gliffy.com/features/ Letöltés dátuma: 2010. szeptember 12. Google: Welcome to Google Calendar http://www.google.com/googlecalendar/about.html Letöltés dátuma: 2010. október 11. Hollóné Kacsó Erzsébet PhD, Nagy Miklós, dr. Román Róbert, Tánczos Tamás (2004): Alapfogalmaktól az üzleti tervig, BVB Nyomda és Kiadó Kft., Eger Jesse James Garret (2005): Ajax: A New Approach to Web Applications http://www.adaptivepath.com/ideas/essays/archives/000385.php Letöltés dátuma: 2010. május 5. Kovács Ferenc (2002): Adatbázis-kezelő rendszerek előadás, BME, Budapest
- 49 -
Lepenye Tamás (2010): Felhős ég az IT felett – Bevezetés a számítási felhők világába http://lepenyet.wordpress.com/2010/04/23/felhos-eg-az-it-felett-%E2%80%93bevezetes-a-szamitasi-felhok-vilagaba/ Letöltés dátuma: 2010. október 10. Lepenye Tamás (2010): Felhős ég az IT felett – Bevezetés a számítási felhők világába 2. http://lepenyet.wordpress.com/2010/04/25/felhos-eg-az-it-felett-%E2%80%93bevezetes-a-szamitasi-felhok-vilagaba-2/ Letöltés dátuma: 2010. október 10. Liber Ádám (2010): Cloud Computing – adatfeldolgozás a felhőben http://www.dataprivacy.hu/archives/256 Letöltés dátuma: 2010. november 1. NumberOf.net (2010): http://www.numberof.net/number-of-gmail-users/ Letöltés dátuma: 2010. október 10. Microsoft: Document/View Architecture http://msdn.microsoft.com/enus/library/4x1xy43a%28VS.80%29.aspx Letöltés dátuma: 2010. május 13. Microsoft: .NET Framework Overview http://www.microsoft.com/net/overview.aspx Letöltés dátuma: 2010. május 10. Microsoft: Windows Azure Platform http://www.microsoft.com/hun/windowsazure/ Letöltés dátuma: 2010. szeptember 12. Ubuntu: Ubuntu One https://one.ubuntu.com/ Letöltés dátuma: 2010. szeptember 12. Vecsenyi János (2003): Vállalkozás - Az ötlettől az újrakezdésig, Aula kiadó, Budapest W3C (2010): Geolocation API Specification http://dev.w3.org/geo/api/spec-source.html Letöltés dátuma: 2010. szeptember 23.
- 50 -
1. ábra Infrastruktúra alapú számítási felhő felépítése ............................................................................... 8 2. ábra Platform alapú számítási felhő felépítése ........................................................................................ 9 3. ábra Szoftver alapú számítási felhő felépítése ........................................................................................ 9 4. ábra Felhő-alkalmazás, amit a felhasználó lát ....................................................................................... 12 5. ábra Amit a fejlesztő lát ......................................................................................................................... 13 6. ábraA .NET réteges felépítése (Benedek, Levendovszky, 2007) ............................................................ 14 7. ábra Windows Azure .............................................................................................................................. 18 8. ábra A Gmail felülete ............................................................................................................................. 21 9. ábra A Google Calendar felülete ............................................................................................................ 22 10. ábra A Gliffy felülete ............................................................................................................................ 23 11. ábra SWOT elemzés ............................................................................................................................. 25 12. ábra MVC felépítése ............................................................................................................................ 33 13. ábra Document-View felépítése .......................................................................................................... 34 14. ábra Az alkalmazás use-case diagramja ............................................................................................... 35 15. ábra Felületterv: kezdőképernyő ......................................................................................................... 35 16. ábra Felületterv: keresési találatok ..................................................................................................... 36 17. ábra Felületterv: vonatinformáció ....................................................................................................... 37 18. ábra Rendszer architektúrája ............................................................................................................... 39 19. ábra iMenetrend nyitóképernyő asztali böngészőben ........................................................................ 45 20. ábra Alkalmazás használat közben 1. ................................................................................................... 45 21. ábra Alkalmazás használat közben 2. ................................................................................................... 46 22. ábra Alkalmazás használat közben 3.................................................................................................... 46
- 51 -