Ugrás a főmenüre.
Web 2009.03.26.

iWiW videotelefon

Az iMect Bt. új Videotelefon alkalmazást indított el az iWiW felületén. Így szól az ajánlott szöveg, ezzel lehet bejelenteni az újdonságokat. Arról szól ez a bejegyzés, hogy mit, miért, kinek és hogyan.

Mit?

A leírása így szól: ingyen beszélgethetsz a többi iWiW taggal, csak egy webkamera kell hozzá. Beállítható a foglaltság, a minőség, kikapcsolható a videó (csak hang).

Azaz távolról nézve olyan, mint mondjuk a Skype, csak épp bent az iWiW-en fut. Így néz ki az ajánlója:

Videotelefon

Miért?

1. Tanulási és kipróbálási céllal

Meg szerettem volna tanulni az OpenSocial fejlesztés csínját-bínját és ki szerettem volna próbálni az új Adobe Flash P2P technológiát, mindezt a hello world szintnél jóval mélyebben. Aztán jött bele még egy kis Google AppEngine is.

2. Verseny

Inspirált az iWiW fejlesztői verseny, ezzel az alkalmazással nevezek rá. Igyekeztem a támpontoknak megfelelni.

Kinek?

A célközönségre jó példa a szüleim korosztálya. A többségüknek hiába mondanám, hogy telepítse fel a Skype-ot, nem fogja megtenni. Én pedig lusta vagyok átmenni és megcsinálni nekik. Viszont az iWiW-et remekül és gyakran használják, így kapnak hozzá egy videochat eszközt.

Hogyan?

A fejlesztői ÁSZF 8.3-as pontja elvileg tiltja, hogy know-how-t tegyek közzé, tiszta Apple iPhone NDA. De azért közzéteszem. :-) A jelenlegi megoldással "óriások vállán" nyugszik az alkalmazás, a terhelés megoszlik az iWiW, a Google és az Adobe szerverei között, az én költségem pedig egészen pontosan 0 Ft. Az alkalmazás három fő részből áll:

1. JavaScript

Az OpenSocial ugye JavaScript-es ügy, itt az API-ja mellett még MooTools 1.2-t is használok. Ez a rész jeleníti meg az alkalmazást, foglalkozik a néző és az adatlap tulajdonos adataival, kezeli az elérhetőséget/foglaltságot, a hívásindítást, fogadást, elutasítást.

Az elérhetőség/foglaltság az iWiW saját rendszerén történik felhasználónkénti adattárolással. 6 másodpercenként frissül ezt az adat, így lehet tudni, hogy ki éppen online és nem foglalt-e. Megkérdeztem a Virgo-s srácokat, hogy bírni fogja-e a rendszer ezt a terhelést, egyelőre az az álláspont, hogy mehet.

Nyilván csak akkor lesz gond, ha nagyon sokan használják, akkor viszont át tudok menni Google AppEngine-re és annak fizetős változatával le tudom kezelni a nagy tömegű lekérdezést. Ha sokan használják, akkor ez a költség nem lesz gond.

2. Google AppEngine

Mivel az owner számára nem lehet adatot írni, ezért egy külső szerverrel kell lebonyolítanom a híváskezdeményezést, illetve a Flash objektumok összekapcsolásához is szükséges. Az AppEngine-re esett a választásom, mert ingyen kapok óriási terhelhetőséget, így ez a teljesítmény sokáig elég lesz, kb. 20 000 egyidejűleg bejelentkezett felhasználóig.

Az egész csak néhány sor Python kód és még adatbázis-kezelés sem kell hozzá. Az adatokat maximum 120 másodpercig tárolom, erre pedig kíváló a Memcache, gyors, egyszerű. Ráadásul jogilag is védve vagyok, hiszen innen minden adat két percen belül elpárolog, a többi pedig az iWiW rendszerén belül marad.

3. Flash

Maga a beszélgetés már Flash-ben történik, ActionScript 3-ban írtam meg. A Flash objektumok közvetlenül, média szerver beiktatása nélkül peer-to-peer kommunikálnak UDP protokollon keresztül. Az UDP sokkal hatékonyabb audio/video továbbítására, mert megengedi, hogy elvesszen néhány adatcsomag, ami észrevehetetlen, viszont az átvitel "gördülékenyebb" lesz tőle. Ez a 10-es player nagy újdonsága és elég jól működik.

Ez nem olyan P2P, mint a BitTorrent, a kliensek már nem adják tovább a kapott streamet, ezért csak néhány fős beszélgetésekhez használható, pont az alkalmazásomhoz találták ki. Mindössze egyetlen dologhoz szükséges médiaszerver, azon regisztrálják a Flash objektumok az adás azonosítóját, tehát csak néhány bájtról van szó.

Az Adobe Stratus szolgáltatása viszont ezt az "összekapcsoló" médiaszervert is megoldja helyettem, teljesen ingyen lehet használni. Tehát mégegyszer: a Flash objektumok a Stratus és az AppEngine segítségével kapcsolódnak egymáshoz, utána viszont minden adat elpárolog és egymással kommunikálnak peer-to-peer. Nincs belehallgatás, nem tudom kideríteni, hogy ki mennyit és kivel kommunikál.

Tapasztalatok

A fejlesztés kb. egy hónapig tartott tanulással együtt. Az OpenSocial API úgy működött, ahogy azt a doksi írta és sokat segített a dev.iwiw blog. Jól lehetett érezni, hogy ezerrel dolgoznak az iWiW vonatkozó alrendszerein, mert sokszor futottam leállásokba és lassulásokba. Ez nem rossz, jó látni, hogy melóznak vele.

Az AppEngine egy sajátos valami, teljesen egyedi mindene. Jópofa a lokális szervere, kényelmes használni és telepíteni az új verziókat. A Python programozási nyelv viszont nagyon furcsa nekem. Az Adobe Flash P2P is jól működik, a Stratus pedig villámgyors.

Összességében véve kevesebb kiforratlan dologba ütköztem, mint szoktam, ami váratlan. Persze azért volt egy-két megszokott "crazy hour", amikor nem jöttem rá miért nem működik és csapkodtam a billentyűzetet. A fejlesztő élete már csak ilyen.

Meglepő, hogy a sok érintett technológia ellenére igen kicsi lett az alkalmazás letöltendő mérete: az összes fájl összesen 61 kbyte, és ebben két csengőhang is benne van. A forráskód mindenestül, kommentekkel együtt kábé 800 sor.

Szerintem elegendő funkció van az alkalmazásban az induláshoz, csak annyit sajnálok, hogy nem tudtam egy harmadik státuszt beletenni: "elérhető csak az ismerőseim számára". Ehhez az kellene, hogy tudja az alkalmazás a viewer-ről, hogy az owner ismerőse-e (barátja).

Ez az alapvető funkció egyelőre hiányzik az OpenSocial-ból, és csak egy csúnya workaround-al lehetne megoldani: le kell kérdezni az összes ismerőst és megnézni, hogy az owner benne van-e. Ez viszont túl sok http lekérést eredményezne, hiszen lehet, hogy az owner csak a 300-adik a sorban (ha legalább 300 ismerős felvette már az app-ot...).

Majd meglátjuk mi lesz belőle, remélem sokan fogják használni.

17 hozzászólás

  1. idézem 2009.03.26. 17:48
    • _akos
    Öröm volt olvasni!
  2. idézem 2009.03.26. 18:00
    • _akos via Google Reader
    Ezt öröm volt olvasni, még sok ilyen fejlesztőt Magyarlandra!
  3. idézem 2009.03.26. 19:25
    Csak kíváncsiságból, a 'navigálás' az egy ennyire egyértelmű fogalom, hogy a célközönség megérti?
  4. idézem 2009.03.26. 22:00
    • Garrotter via Google Reader
    p2p voip alakul már
  5. idézem 2009.03.27. 06:56
    @gazs Igazad van, de mi lenne jó helyette? Szerintem ezt szokták használni inkább: "A beszélgetés tartama alatt ne menj el erről a weboldalról..." Csak nagyon ronda.
  6. idézem 2009.03.27. 10:16
    Grat Neked, mi nem vágtunk bele végülis az iwiw app fejlesztésbe.
    És külön grat, hogy ennyi rendszert összeraktál egy működő egészbe, engem kiráz a hideg, ha belegondolok, hogy itt 4 rendszer dolgozik egybe (iwiw api, g app, flash kliens, adobe server)...

    Fontos kérdésem lenne viszont:
    "Ha sokan használják, akkor ez a költség nem lesz gond."
    Miért is? Akkor a reklámok fedezik a költségeidet? Vagy akkor különalku az iwiw-vel és fizetős lesz?
  7. idézem 2009.03.27. 10:23
    @bpelhos Nagyon köszönöm.

    Miért nem vágtatok bele?

    Ha sokan használják, akkor lehet üzleti modellt tenni mögé.
  8. idézem 2009.03.27. 10:32
    Miért nem vágtunk bele:
    Saját, szabad erőforrás már nem jutott a témára. Innentől kezdve elkezdtük számolni a megtérülést... és ez hiba volt :)
    Reklám (30%-a) felejtős, saját oldalra átirányítás tilos (ha az egy fizetős oldal) ...

    Az üzleti modellt nálad is ezért feszegettem, hogy mennyire gondolkodsz előre. Bár végülis ez nálad nem kritikus, mert saját erőforrást nem fogyaszt. (Nálunk az "ötlet" a Facebook video default app másolása volt.)
  9. idézem 2009.03.27. 13:15
    • LacKac via Google Reader
    szép.
  10. idézem 2009.03.27. 17:05

    @gazs Igazad van, de mi lenne jó helyette? Szerintem ezt szokták használni inkább: "A beszélgetés tartama alatt ne menj el erről a weboldalról..." Csak nagyon ronda.


    "A beszélgetés tartalma alatt ne kattints el innen." ?

    A térbeli mozgáshoz kapcsolódó metaforák magabiztosabb felhasználókhoz kapcsolódnak szerintem, de citation needed :)
  11. idézem 2009.03.27. 19:03
    Gratulálok, szép munka volt.
    Honnan jött az ötlet? LacKac írja, hogy nekik a facebookról.
    Nem értek a fejlesztéshez, de én a facebook-ról a chatet honosítottam volna, így ezt is nagyon jó ötletnek tartom. A kettőt akár össze is lehetne rakni, és az talán egyszerűbb.

    Sok ilyen jó ügyet kívánok, remélem megtérül, mert ebben és a chatben látok üzleti potenciált is.
  12. idézem 2009.03.27. 19:05
    benéztem, bpelhos írta...
  13. idézem 2009.03.28. 08:46
    @tiborg Köszi.

    Az ötlet csak annyi volt, hogy meg kellene tanulni az OpenSocialt, kipróbálni az iWiW-et és a Flash P2P újdonságait. Nem néztem, hogy mi van a Facebook-on, persze tudom, hogy van videochat ott is.
  14. idézem 2009.08.21. 02:01
    jegyezzük meg azért halkan, hogy a költségvonzata a dolognak stratus/fms oldalról nem állandó.

    a stratus csak a mézesmadzag a fejlesztőknek hogy ráharapjanak a p2p-re. majd ha itt megszokták milyen szép és jó, az adobe bezony be fogja nyögni hogy 'hoho már nem béta a stratus. örüljünk, éljen! ...ja és csengess kiskomám a keyedért'. persze ha azt mondod nekik hogy ez nem oké neked, akkor biztos felhívják a figyelmed arra hogy 'semmi gond, akkor vegyél tőlünk fms4-et ami már tudja ezt és hostold te a saját kódoddal'.

    (igen igaz hogy p2p, és van kliens-kliens közötti kapcsolat, de azt is tudjuk, hogy adobe sem volt hülye hogy az aranytojást tojó fmseit a sírba lökje, szóval arra szükség van ezután is, csak ép már p2p-hez illő szerepkörben)

    szóval tisztázzuk : stratus csak addig free amíg beta. ('While it is in beta, the Stratus service is free for developers to use.' - http://blogs.adobe.com/ktowes/2008/12/adobe_stratus_developer_keys_n.html )

    és szerintem csak addig érdekük beta-ban tartani, amíg nem készül el az eladható fms4.

    köztünk szólva meg nem olvastam stratus TOS-s, de kiváncsi vagyok mit szólnak adobenál a beta servicere épülő, iwiw lévén nagy publikumot érintő apphoz.
  15. idézem 2009.08.21. 09:46
    • Rendes Béláné
    Érdekelne az iwiw-es videotelefon, kell-e regisztálni, vagy milyen felhasználónevet és jelszót kell használni üdvözlettel
  16. idézem 2009.08.21. 10:15
    @Rendes Béláné Nem kell.
  17. idézem 2009.10.21. 20:14
    • Barna Zsolt
    keresem az igazit
Új hozzászólás
A sortörések automatikusak. Csak az üzenet kitöltése kötelező, a többi mező opcionális. A megadott e-mail címet nem tesszük közzé. Engedélyezett HTML tagek: p, a, strong, em, blockquote, ul, ol, li, dl, dt, dd.

Legutolsó hozzászólások

Diszkórobbanás a 90-es években és a legendás Campari diszkó: Árpika Palotáról: Szia ZooLou :-9 Te melyik részen melóztál?

Teh early agez... (így kezdődött) 1990-1992: Tamás Hölzer: Szia Gábor! Hozzájárulsz, hogy a http://zenci-blog.blogspot.com/p/disco-story.html blogban linkeljem a diszkó "történelmed"? Üdv; tamás

Diszkórobbanás a 90-es években és a legendás Campari diszkó: ZooLou: Finucsi, PG, Függöny, Dj Tökimanó, Barbi, Kacsa, Virág, Feri, Erzsi, Jana, és még sokan a csapatból! Én is lehúztam egy kis időt ott,...

A csatlakozás az iPhone Developer Program-hoz szívás: Nyéki Zoltán: Sziasztok, Arról nincs információtok vagy tanácsotok, hogy egy magyarországi kisvállalkozásnak hogy kell regisztrálnia az Applenél, hogy...

Rólam és a blogról: Szanto Peter: Szia, en is szeretnek veled app fejlesztes ugyben beszelni:) Ha aktualis szamodra uj projekt befogadasa, akkor kerlek irj. koszi, p

iMect means internet, media and other cool things. We're a small company located in Hungary. There is a big footer on every page where you can discover what we do and what happens with us.

Az iMect jelentése: internet, média és egyéb király dolgok. Egy kis magyar cég vagyunk. Minden oldalon van egy nagy lábléc, ahol felfedezheted, hogy mivel foglalkozunk.