Labor Jegyzőkönyv
Önálló laboratórium beszámoló BME-TMIT
Készítette: Gruber Kristóf Szak: műszaki informatika E-mail cím:
[email protected]
Neptun-kód: YCN70J Szakirány: Médiainformatika
Konzulens: Dr. Vida Rolland Email címe:
[email protected] Tanév:
2008/2009. 1. félév
Téma címe: Virtuális Post-It A témán a félév során közösen dolgoztam Sik András Ferenc kollégámmal. Természetesen a munkának voltak közös fázisai, döntések, melyeket közösen kellett meghoznunk. A beszámolóban azonban teljes mértékben nyomon követhető az önállóan elvégzett munka. Feladat: A feladat célja egy elektronikus „üzenőfal” létrehozása, amely alkalmas un. „virtuális post-it” üzenetek fogadására és tárolására, személyre szabott megjelenítéssel. A konkrét megvalósítás egy kijelzőből (pl. LCD monitor) és vezetéknélküli hozzáférési képességekkel (Bluetooth, WiFi, infra) rendelkező PC-ből (vagy egyéb hasonló képességekkel rendelkező eszközből) áll. Az üzenetet hagyni kívánó, ill. az üzeneteket olvasni akaró felhasználó a platform elé állva hagyhat, ill. kaphat üzenetet. Üzenetek elhelyezése lehetséges minden vezetéknélküli hozzáférést támogató kézi eszközről (pl. okostelefon, PDA). Az üzenetek leolvasása a felhasználó azonosítása után történik majd. Lehetnek publikus, mindenkinek szóló üzenetek, vagy személyre szabott, virtuális post-it-ek is. A feladat szervesen kapcsolódik a TMIT kutatóinak a Mobil Innovációs Központ (MIK) keretein belül végzett munkájához.
-1 -
2008.12.12.
Labor Jegyzőkönyv
1. A laboratóriumi munka környezetének ismertetése, a munka előzményei és kiindulási állapota Bevezető/elméleti összefoglaló A feladat a közismert sárga, ragadós „Post It” cetlik elektronikus megvalósítása, kihasználva a technológia előnyeit. A célunk az volt, hogy egy adott helyre fixen beszerelhető gépen olyan szoftver-környezetet alakítsunk ki, amely alkalmas vezeték nélküli üzenettovábbításra több, a közelben tartózkodó felhasználónak, anélkül, hogy az üzenetet illetéktelenek megkapnák. A vezeték nélküli adatátviteli technológiák közül a Bluetooth-t választottuk, mivel ilyen kis méretű, igény szerint kialakuló hálózatok létrehozására ez a legalkalmasabb. A Bluetooth technológia segítségével lehetőségünk nyílt arra, hogy az eszköz, amire a programot írtuk, képes legyen érzékelni és a beregisztrált mobil eszközök alapján azonosítani is a közelben tartózkodó embereket, így ők csak a nekik címzett üzeneteket kapják meg. A munka állapota, készültségi foka a félév elején A félév során a kor ábbi Önálló laboratóriumi munkánkat folytattuk, melyet a 2007/2008. tanév 1. félévében kezdtünk el. Az előző félévekhez hasonlóan továbbra sem rendelkeztünk azonban semmilyen írásos segédanyaggal, ezért csupán az általunk korábban összegyűjtött, és újonnan szerzett Internetes dokumentációkra hagyatkozhattunk. A korábbi félévek során először lefektettük a projekt követelményeit, beszereztük a hardvereket, majd elkezdtük a programozást. Az előző félév végére a program képes volt Bluetooth-on keresztül üzeneteket küldeni és fogadni, valamint egy, a kijelzőn megjelenő grafikus felület segítségével lehetőség volt jelszavas authentikáció után a rendszerben lévő üzenetek megtekintésére, tehát teljesítette a laboratórium feladatkiírásában foglaltakat. A 2007/2008 év 2. félévi munka eredményeiről egy beszámoló is készült a MIK (Mobil Innovációs Központ) számára. A program az előző félév végén tehát képes volt: • üzenetek fogadására és kézbesítésére; • grafikus felület megjelenítésére; • jelszavas authentikációra; • egy adott felhasználó üzeneteinek megjelenítésére; • a közelben lévő felhasználók azonosítására. A virtuális üzenetek tehát már személyre szabhatóak voltak, megtekintésük felhasználói jogosultságok által került szabályozásra, ezáltal csupán a címzettek olvashatták el a nekik szóló üzeneteket. Az üzenőfalat futtató eszközön hagyott üzenetek helyhez kötöttek voltak, tehát a címzettek csupán akkor kapták meg a nekik szóló üzeneteket, mikor az tényleg érdekelhette őket, tehát amikor az eszköz közelében voltak. Az így kézbesíthető üzenetek száma és hossza pedig a hagyományos papír alapú megvalósítással ellentétben lényegesen nagyobb volt.
-2 -
2008.12.12.
Labor Jegyzőkönyv Az idei félév során az előző évi tervekkel összhangban a már meglévő funkcionalitás bővítését, színesítését tűztük ki célul, megpróbálva lehetővé tenni az üzenőfalhoz való hatékonyabb, és nagyobb mértékű hozzáférést, valamint annak széleskörűbb felhasználását. Ez a program logikájának, a grafikus felület funkcióinak bővítését, a támogatott üzenetformátumok számának növelését, valamint a távoli web alapú hozzáférés lehetővé tételét jelentette.
2. Az elvégzett munka és eredmények ismertetése Áttérés Nokia N810-re A félév első felében sikerült beszereznünk a korábban használt Nokia 770-es Internet Tablet helyett egy Nokia N810[1] típusú készüléket (1. ábra), melyre a 770-es több hibája és hiányossága1 miatt volt szükség. Az N810-et két évvel a 770-es modell után dobta piacra a Nokia, így szinte mindenben jóval fejlettebb elődjénél. A hibajavításokon kívül az N810-es rendelkezik beépített billentyűzettel is, mely igen hasznos az üzenetek írásához, valamint beépített kamerával, mellyel lehetőség nyílik képek, illetve videók felvételére is. Operéciós rendszere az IT OS 2008[2], mely a Debian Linux egy mobil eszközökre optimalizált változata. A 2008-as verzió rengeteg hibajavítást hozott az általunk korábban használt 2006oshoz képest, mellyel a programunk futása gyakran indokolatlanul megszakadt. A 2008-as verizó más alapértelmezett konfigurációban érkezik, így először meg kellett vizsgálnunk, hogy a projekthez korábban kellő csomagok szükségesek-e N810-en is, amennyiben igen, akkor megfelelően működnek-e az eszközön.
1. ábra: A Nokia N810
Az operációs rendszer immár alapból tartalmaz OBEX (Object Exchange, a Bluetooth fájlküldésre alkalmas egyik protokollja) szervert, így a sobexsrv[3] telepítése a továbbiakban
1
A Nokia 770-hez készült fejlesztői környezete eléggé fejletlen, így kénytelenek voltunk előre elkészített programcsomagok használatára szorítkozni, melyek közül sok nem volt elérhető a már kifutó szériának számító Nokia 770-re. Több rendszerkomponens (pl. GTK+ felület) szintén komoly, a program futását hátráltató hibákkal rendelkezett. Nem volt megoldott a Bluetooth stabil rendszerszintű kezelése, valamint a WiFi kapcsolatok problémamentes használata sem. Az újabb operációs rendszer verziók nem támogatják már ezt a modellt.
-3 -
2008.12.12.
Labor Jegyzőkönyv nem szükséges külön, mindössze a beállításait kell módosítanunk, hogy a számunkra elvárt működést érjük el. Ehhez konkrétan a /etc/init.d/obexsrv fájl 28. sorát kell átírnunk a következőről: dsmetool -n -1 $USER_FLAGS -t "$DAEMON -l $DAEMON_OPTS"
a következőre: dsmetool -n -1 $USER_FLAGS -t "$DAEMON -l $DAEMON_OPTS↩ -r /virtualpostit/receive"
Az Nokia 770-nel ellentétben N810-re elérhető az ussp-push[4] nevű program egy működő verziója, mely segítségével a sok (főleg régebbi) telefon által nem támogatott OBEX FTP protokoll helyett OBEX push protokollon keresztül tudjuk kézbesíteni az üzeneteket Bluetooh-on. (A kettő közti különbség abban rejlik, hogy az OBEX push protokoll nem teszi lehetővé a telefonon lévő fájlok böngészését, így kisebb a biztonsági igénye, emiatt pedig gyakran nem szükséges párosítanunk a telefont az üzenőfal rendszerével.) Nem kapott helyet viszont az alap konfigurációban a hcitool nevű program, mely Bluetooth eszközökkel kapcsolatos alapvető feladatok elvégzésére használható, s melyet a projektünk aktívan felhasznál. Ezt az irodalomjegyzékben megtalálható címről tölthetjük le[5]. Hibák javítása Az N810-el való ismerkedés után következő feladatként a program ismert hibáit javítottam ki. A program több párhuzamosan futó szál összessége, melyek bizonyos helyzetekben problémát okoztak, tipikusan a GTK+ alapú grafikus felület hibát generált és a program futását megszakította, ha a grafikus felület egy-egy eleméhez több szál is közel egyszerre próbált hozzáférni (pl. gombok megjelenítése). A problémát úgy oldottam meg, hogy egyrészt korlátoztam az egyszerre nyitva lévő ablakok számát egyre (mivel az épp háttérben lévő ablakok az IT OS felületén úgysem láthatóak a teljes képernyőt befedő ablakok miatt), másrészt szemafórokat vezettem be a GUI (Graphical User Interface - grafikus felhasználói felület) módosításáért felelős részekhez, mely szemafórok segítégével egyszerre nem tud több szál hozzáérni ugyanazon objektumokhoz, ezzel elkerülve a problémát. Eddig nehézkes volt a program leállítása pont a korábban leírt több aktív szál használata miatt. Ezen dolgozva módosítottam a szálakat úgy, hogy azok a főprogramból való kilépés során maguk is leálljanak mindenképpen. A program által használt ablakok nem mindegyikében volt lekezelve a kilépés esemény, ennek korrekt implementálását szintén megoldottam. A program indítására lehetőség van parancssorból és a GUI-n menüből, egy ikont kiválasztva is. Ez utóbbi esetben viszont nem működött minden funkció tökéletesen, mivel ikonról indítva a program más felhasználóként futott. A problémát az indító shell script módosításával oldottam meg, mely ezentúl a program fájlrendszerben elfoglalt pozícióját egy
-4 -
2008.12.12.
Labor Jegyzőkönyv shell változóból olvassa ki, ezzel lehetővé téve, szemben a korábbi “beleégetett megoldásokkal”, hogy a programot bárhová elhelyezhessük a háttértárolón. Ezzel egyidejűleg a könnyebb használhatóság kedvéért átmozgattam a projektet a fájlrendszer gyökerébe, így annak elérési útja alapértelmezésként ezentúl /virtualpostit. A grafikus felület fejlesztése Sok időt töltöttem a grafikus felület finomításával, hatékonyabbá, szebbé tételével. A korábbi esetleges gombelhelyezéseket felváltottam egy szisztematikus rendszerrel, melyben sokkal magától értetődőbb a programban való navigáció. A programban bal oldalt foglal helyet a menüsáv, melyben a „Virtual Post-It” ikon, valamint az éppen elérhető főbb funkciók (pl. felhasználó hozzáadása) kapnak helyet. A jobb oldali, nagyobb rész az aktuális feladat elvégzéséhez szükséges eszközöket tartalmazza (pl. rádió gombok, melyekkel választhatunk a felhasználók közül). E panel részeként jobb oldalt egy nagy méretű gomb szolgál az aktuális adatok elfogadására, a következő lépésre, illetőleg a funkció befejezésére. A navigációt megkönnyítik a folyamatban oda-vissza mozgást szimbolizáló „«”és „»” nyilak a gombok feliratai előtt, ill. után. („Login »”). A logikailag összetartozó információkat csoportokba foglaltam (2. ábra), melyeket egy címkével ellátott keret szimbolizál (pl. „Users” az eszköz nélküli bejelentkezésnél). Amennyiben szükséges, a funkció rövid szöveges leírását megtalálhatjuk a keret felett. A jelszavas bejelentkezés sikertelenségét ezentúl egy felbukkanó üzenet jelzi, így segítve a felhasználót a hiba azonnali felismerésében. A bejelentkezett felhasználók üzeneteinek megjelenítését a „Post-It” note-okhoz illően átállítottam sárga színűre, valamint nagyobb, olvashatóbb betűtípussal jelenítettem meg. Az új üzenet írása ablakot (3. ábra) szintén letisztultabb formára hoztam, nagyobb, jobban látható betűméretet állítottam be hozzá, valamint nagyobb szövegbeviteli mezőt készítettem rá. A grafikus felület ezentúl több visszajelzést ad a Bluetooth kézbesítésért felelős modell rész működéséről: A logó alatti státusz üzenetben nemcsak a Bluetooth eszközök keresése, hanem az üzenetek kézbesítése, illetve a beérkező üzenetek feldolgozása is megjelenik.
2. ábra: Üzenet írása a grafikus felületen
-5 -
2008.12.12.
Labor Jegyzőkönyv
3. ábra: Üzenet címzettjének kiválasztása
A webes felület előkészítése A webes felület elkészítése már a hetedik féléves Önálló labor tárgyunk beszámolójának „jövőbeli feljesztési lehetőségek” részében is említésre került, mint fontos stádiuma a projektnek. A felület tényleges megvalósítását a videó üzenetküldést kivéve teljes egészében én végeztem el. Elkészültével az üzenőfal immár nem csak annak közvetlen környezetéből használható (Bluetooth hatósugáron belül vezeték nélkül, illetve az eszköz kijelzőjét használva), hanem elméletileg bárhonnan, ahol elérhető az Internet. Hasznosságát legjobban egy példa szituációval tudnám jellemezni: Az iroda tulajdonosa, akinek az ajtajára fel van szerelve az üzenőfal, reggelre egy találkozót beszél meg két kollegájával, melyre viszont nem tud időben odaérni, mivel eladkad a reggeli csúcsforgalomban. Ekkor mobiltelefonja segítségével a webes felületen át bejelentkezve lehetősége nyílik kollégáinak egy üzenet küldésére, melyet azok akkor kapnak csak meg, ha tényleg keresnék őt, vagyis az üzenőfal közelében tartózkodnak. Ugyanígy lehetősége nyílik a dugóban veszteglő munkatársnak saját üzenetei ellenőrzésére is, melyeket azok küldhettek neki, akik keresték. A felület elkészítését előzetes ismereteim, valamint célszerűsége és a feladatra alkalmassága miatt PHP[6] (rekurzív rövidítés: PHP: Hypertext Preprocessor, PHP hiperszöveg előfeldolgozó) nyelven szerettem volna kivitelezni. Lehetőség lett volna arra is, hogy a már meglévő Python programkódot bővítsük ki olymódon, hogy képes legyen webszerverként működni, azonban a HTTP protokoll[7] ily kis részének implementálását is feleslegesnek éreztem, mivel – hála az N810 Linux alapú operációs rendszerének – könnyedén alkalmazhattam már kész webszerver megoldásokat a weboldalak kialakítására sokkal célszerűbb PHP nyelven írva azokat. Az üzenőfal programozásakor kezdetektől szem előtt tartottuk, hogy a Model-ViewController architektúrának megfelelően építsük fel a programot, valamint számoltunk a webes felület elkészítésének kérdéseivel is, így az adatok megosztása a webes és a Python nyelven írt „natív” program között egyszerűen, közös adatfájlok használatával megvalósítható.
-6 -
2008.12.12.
Labor Jegyzőkönyv Első lépésként webszervert kellett telepíteni az N810-re. Az alap repository 2-k mind Apache 2[8], mind pedig lighttpd[9] webszervereket kínálnak, azonban ezek egyike sincs felkészítve PHP oldalak kiszolgálására3 . Egy internetes fórum[10] felkersése vezetett eredményre, ahol egy működő lighttpd webszervert és egy 5.2.5-ös verziójú PHP értelmezőt találtam. A PHP sajnos nem felelt meg teljes mértékig az igényeimnek, mivel nem tartalmazott iconv támogatást[11], mely karakterkészlet-konverziók elvégzésére való. Fel kellett tehát telepítenem a Nokia N810-hez készült „Maemo SDK” fejlesztői környezetet, amire egy Ubuntu Linux 6.04-et futtató virtuális gépen került sor. A fejlesztői környezet ismertetésétől most eltekintenék, mert az magában bőven meghaladja jelen beszámoló kereteit. Letöltöttem a legújabb PHP forráskódját[12], és egy a fejlesztő környezet működését ismertető leírás[13] alapján a korábban említett csomag fordítási paramétereit az alábbiakra változtatva lefordítottam: './configure' '--enable-shared' '--disable-static' '--disable-rpath' '--disable-debug' '--without-pear' '--enable-spl' '--with-config-file-path=/etc' '--disable-ipv6' '--enable-magic-quotes' '--enable-memory-limit' '--disable-short-tags' '--disable-ctype' '--disable-dom' '--enable-ftp=shared' '--without-gettext' '--enable-libxml' '--with-zlib=shared' '--without-libxml-dir' '--disable-xmlreader' '--disable-xmlwriter' '--disable-mbstring' '--disable-mbregex' '--enable-simplexml' '--enable-session' '--disable-soap' '--enable-sockets=shared' '--disable-tokenizer' '--disable-filter' '--without-curl' '--without-gd' '--without-gmp' '--without-ldap' '--without-mysql' '--without-pgsql' '--with-sqlite' '--enable-xml=shared' '--disable-xmlreader' '--disable-xmlwriter' '--disable-apc' '--enable-pcntl=shared' '--enable-pdo' '--disable-cli' '--enable-cgi' '--enable-force-cgi-redirect' '--disable-fastcgi'
A csomagban kapott PHP fordítási paramétereit csak a ‘--without-iconv’ opció eltávolításában módosítottam. A sikeres fordítás eredményeként létrejött fájlokat felmásoltam az N810-re. A felület működése A webes felület az N810 80-as portján elérhető. Ebből fakadóan célszerű az eszköz 80as portját valamilyen módon (pl. port átirányítással) az intézményen kívülről is elérhetővé tenni, hogy a dolgozók távolról is csatlakozhassanak rá. Alternatív lehetőségként esetleg VPN (Virtual Private Networking, virtuális magánhálózat) technológia használatával megvalósítható az eszköz Internetről történő elérése. (Ez esetben azonban indokolatlanul leszűkítenénk a bejelentkezésre alkalmas mobiltelefonok körét, mivel manapság még nagyon kevés eszköz támogatja a VPN-t.) Az eszköz IP címét vagy host nevét beírva a felhasználó az 4. ábrán látható bejelentkező képernyőhöz jut. 2
Repository: többnyire Linux-os programgyűjtemény megnevezése, mely ún. „csomagkezelőkkel” (mint pl. az apt vagy a yum) használható. Ezek segítségével egyszerűen telepíthetőek akár több más csomag szolgáltatásaira is építő új alkalmazások, mert képesek ezen „függőségeket” automatikusan telepíteni a kiválasztott alkalmazással együtt. 3
A PHP értelmező használata vagy egy fastcgi nevű modulon, vagy pedig saját PHP modulon keresztül történhet. Ezek egyike sem elérhető a repository-kban fellelhető webszerverekhez.
-7 -
2008.12.12.
Labor Jegyzőkönyv
4. ábra: A bejelentkező képernyő
A felhasználói név (User name) és jelszó (Password) megadása után lehetőségünk van a Stay logged in bepipálásával jelezni a rendszer számára, hogy ne jelentkeztessen ki két használat között, ami pl. egy autós használat esetén kifejezetten előnyös lehet. Belépés után – hasonlóan a grafikus felülethez – a felhasználó üzenetlistájához jutunk (5. ábra). Amennyiben nincsen üzenet a rendszerben a felhasználó számára, a táblázat egyetlen, „No messages for «felhasználói név»” sort fog csak tartalmazni. A kilistázott üzeneteknek megjelenítésre kerül a címzettje (Recipient(s)) és az üzenet szövege (Message). Minden üzenet mellett megjelenik egy Delete link, ami az üzenet törlésére szolgál. Amennyiben egy üzenetnek több címzettje is van, csupán az aktuális felhasználó fog törlődni a címzettek listájáról; a többi felhasználó továbbra is láthatja az üzenetet, amíg ők nem törlik azt. A címsor alatt található a bejelentkezett felhasználó neve, egy kilépésre (logout) szolgáló, valamint az új üzenet írására használható New Message feliratú link. Kilépés esetén törlődik a megjegyeztetett felhasználói név és jelszó.
-8 -
2008.12.12.
Labor Jegyzőkönyv
5. ábra: Az üzenetek listája
Az új üzenet írása (6. ábra) nagyon hasonló a grafikus felületen megvalósítotthoz. Megadhatjuk a címzetteket a rendszerbe beregisztrált emberek közül egyenként (Recipient users) vagy csoportosan (Recipient groups). Az üzenet szövege praktikusan bármilyen hosszú lehet, azonban a legtöbb telefon csak párszáz karakteres jegyzeteket képes kezelni, valamint a grafikus felület is csak kb. 3 sort képes megjeleníteni, így érdemes tömören fogalmazni. Az üzenet feladójának tárolása egyelőre nincs implementálva, így célszerű azt aláírni. Megadható a Delete after delivery jelölőnégyzetének bepipálásával, hogy az üzenet az összes címzettnek való kézbesítés után automatikusan törlődjön a rendszerből. A kész üzenet a Send gombra kattintva küldhető el, illetve a Cancel linket választva vethető el.
-9 -
2008.12.12.
Labor Jegyzőkönyv
6. ábra: Új üzenet írása
A felület megvalósítása A webes felület az eszközön a /wwwPHP könyvtárban foglal helyet és a következő fájlokból áll: • config.php – konfigurációs beállítások, pl. karakterkészlet beállítása • footer.php – a HTML sablon4 alsó része • getfile.php – egy videó biztonságos visszaadására szolgáló kódrészlet • header.php – a HTML sablon felső rész • index.php – egy „útválasztó”, mely a program aktuális állapotától függően a megfelelő művelet végrehajtását kezdeményezi 4
A kód HTML sablonokat használ a megjelenítésre, így megkönnyítve a jövőbeli fejlesztéseket, a több aldolal egységes kinézetének elérését, valamint ezen kinézet esetleges lecserélését.
- 10 -
2008.12.12.
Labor Jegyzőkönyv – a HTML sablon menü részét tartalmazó fájl (kijelentkezés, név) – a videó üzenetek lejátszásáért felelős rész style.css – a megjelenítés tulajdonságait leíró stíluslap virtualpostit.php – a webes felület fő funkcióit megvalósító kód
• menu.php • play.php • •
A program az „m” (mode) HTTP GET paraméter 5 értékétől függően különböző akciókat hajthat végre. Ezen akciók jelenleg a következőek: • addform – Az új üzenet írása oldal megjelenítésea • add – megírt, és paraméterül kapott üzenet elküldése • del – megadott azonosítójú üzenet törlése • logout – kiléptetés • list – üzenetek listázása • loginchk – kitöltött belépési adatok ellenőrzése • ill. default – beléptető oldal megjelenítése Az index.php ezen esetek bekövetkezésekor a virtualpostit.php függvényeit hívja meg. Ezek nagyjából megegyeznek az előbb leírt akciókkal. A fáljban néhány segédfüggvény is található, melyek részletezésétől eltekintek, mivel azok a PHP kommentekkel elegendő mértékben dokumentálva vannak. A bejelentkezés a következőképpen zajlik: minden alkalommal, amikor a felhasználó belép.egy új un. session[14] jön létre, ami a felhasználó egy alkalommal elvégzett akcióinak összességét foglalja magába. A session tartalmazhat változókat, amiket a szerver automatikusan átvisz a lekért oldalak között. A session addig tart, amíg a felhasználó bezárja a böngészőjét. Mi a felhasználói nevet tároljuk el egy session-ben, amivel egyben jelezzük, hogy a felhasználó már belépett, nincs szükség a beléptető oldal újbóli megjelenítésére. Lehetőség van ezen „beléptetett állapot” „állandósítására” is, amennyiben az belépéskor bejelölte a Stay logged in jelölőnégyzetet. Ezt a rendszer úgy éri el, hogy egy „sütit”[15] tárol el a felhasználó számítógépén vagy telefonján a felhasználói névvel és jelszóval. Amennyiben bejelentkezésekor rendelkezésre állnak ezen információk, úgy azok ellenőrzésre kerülnek, és ha helyesnek bizonyultak, nem lesz megjelenítve a beléptető oldal, hanem egyből eltárolódik egy session változóban a felhasználó neve. A „süti” egy évig érvényes, utána magától törlődik a felhasználó böngészőjéből. Az üzenetek kezelése a fájlrendszerben tárolt, pontosabban a /virtualpostit/messages könyvtárban lévő fájlok beolvasásával, ill. írásával történik. Ugyanezen fájlokat használja a Python program is, így amennyiben pl. egy új üzenet kerül tárolásra ezen könyvtárba, az azonnal megjelenik a grafikus felületen is. Az üzenetek formátumának leírása megtalálható a 8. féléves Önálló labor beszámolómban. Hasonlóan az üzenetekhez, a felhasználók és a csoportok kezelése is a fájlrendszerben lévő fájlok segítségével, a Python programmal megosztottan történik. Ezen fájlok elérési útvonalai: /virtualpostit/users (felhasználók), ill. /virtualpostit/groups (csoportok).
5
PHP oldalak egymás közti adatcseréjének a két fő módja a GET és a POST típusú paraméterátadás. Míg az előbbi az URL-ben látható, az utóbbi csak a HTTP fejlécekbe kerül bele és az egyszerű felhasználó számára láthatatlan.
- 11 -
2008.12.12.
Labor Jegyzőkönyv Összefoglalás E félévi munkám során a kitűzött célunk a videó üzenetküldés megvalósítása, valamint a webes felület elkészítése volt. Sik András kollégám az előbbi problémával foglalkozott, én pedig az utóbbival. A félév végére sikeresen teljesítettem a kitűzött célt, a webes felület teljes és működőképes. Az általam elvégzett munka tételesen felsorolva: • Ismerkedés a Nokia N810-zel, a szoftverkörnyezet felmérése • A működés pár nagyobb hibájának kijavítása (kilépéssel, szálkezeléssel kapcsolatos hibák) • A grafikus felület fejlesztése • Webszerver telepítése és beüzemelése • Maemo SDK fejlesztői környezet feltelepítése és beüzemelése • PHP értelmező fordítása, majd beüzemelése • Webes felület elkészítése (bejelentkezés, üzenet listázás, üzenethagyás, üzenet törlés)
- 12 -
2008.12.12.
Labor Jegyzőkönyv
3. Irodalom, és csatlakozó dokumentumok jegyzéke A tanulmányozott irodalom jegyzéke: [1] Nokia N810, http://www.nseries.com/products/n810, 2008. szeptember 5. [2] Nokia Europe - Nokia N810 - OS 2008 features, http://europe.nokia.com/A4579471, 2008. szeptember 5. [3] sobexsrv - Scripting/Secure OBEX Server (for BlueZ Linux), http://www.mulliner.org/bluetooth/sobexsrv.php, 2008. május [4] ussp-push Home Page, http://www.xmailserver.org/ussp-push.html, 2008. május [5] Bluez-Utils for ARMEL, http://repository.maemo.org/pool/chinook/free/b/bluez-utils/, 2008. szeptember 18. [6] PHP: Hypertext Preprocessor, http://www.php.net, 2008. október 17. [7] Hypertext Transfer Protocol -- HTTP/1.1, http://tools.ietf.org/html/rfc2068, 2008. október 15. [8] Apache HTTP Server Project, http://httpd.apache.org/, 2008. október 17. [9] lighttpd - fly light, http://www.lighttpd.net/, 2008. október 17. [10] Internet Tablet Talk Forums, http://www.internettablettalk.com/forums/showpost.php?p=235084&postcount=19, 2008. november 12. [11] PHP: iconv - Manual, http://hu.php.net/manual/en/book.iconv.php, 2008. október 18. [12] PHP: Downloads, http://hu.php.net/downloads.php, 2008. október 18. [13] maemo SDK+ - Installation Instructions, http://maemo-sdk.garage.maemo.org/install-ubuntu.html, 2008. október 18. [14] PHP: Sessions - Manual, http://hu.php.net/manual/en/book.session.php, 2008. október 22. [15] PHP: Cookies - Manual, http://hu.php.net/manual/en/features.cookies.php, 2008. október 22.
- 13 -
2008.12.12.
Labor Jegyzőkönyv Csatlakozó egyéb elkészült dokumentációk / fájlok / stb. jegyzéke: A projekt során létrehozott összes forráskód elérhető az alábbi címen: http://virtualpostit.unfuddle.com/projects/27574/ A Virtuális Post-It program egyes funkcióinak bővebb dokumentációja megtekinthető 2008/2009 1. félévében beadott TDK dolgozatunkban: Gruber Kristóf, Sik András Ferenc: Intelligens környezet, intelligens iroda – virtuális üzenőfal megvalósítása, http://www.lka.hu/home/gk/old2/down/tdk2008.pdf
- 14 -
2008.12.12.