37
MSN-kompatibilis egyéni emotikonok kezelése XMPP/Jabber-ben Bemutatás Németh Ádám, [email protected]

MSN-kompatibilis egyéni emotikonok kezelése XMPP/Jabber-ben

  • Upload
    anila

  • View
    40

  • Download
    1

Embed Size (px)

DESCRIPTION

MSN-kompatibilis egyéni emotikonok kezelése XMPP/Jabber-ben. Bemutatás Németh Ádám, [email protected]. XMPP. eXtensible Messaging and Presence Protocol. XMPP. IETF RFC 3920-3923 (20, 21 érdekes) XML-alapú Eredeti: Jabberd, 1998, Jeremy Miller, GNU GPL - PowerPoint PPT Presentation

Citation preview

Page 1: MSN-kompatibilis egyéni emotikonok kezelése XMPP/Jabber-ben

MSN-kompatibilis egyéni emotikonok

kezeléseXMPP/Jabber-ben

BemutatásNémeth Ádám, [email protected]

Page 2: MSN-kompatibilis egyéni emotikonok kezelése XMPP/Jabber-ben

XMPP

•eXtensible

•Messaging and

•Presence

•Protocol

Page 3: MSN-kompatibilis egyéni emotikonok kezelése XMPP/Jabber-ben

XMPP

•IETF RFC 3920-3923 (20, 21 érdekes)

•XML-alapú

•Eredeti: Jabberd, 1998, Jeremy Miller, GNU GPL

•IM + “általános middleware szolgáltatás”

•Sun, Google, Adobe alapprotokoll, IBM SameTime kompatibilis, AOL elvileg lesz, Apple, ISP-k, kormányhivatalok, cégek...

Page 4: MSN-kompatibilis egyéni emotikonok kezelése XMPP/Jabber-ben

XMPP felépítés

•Kliensoldalról: kliens-szerver architektúra

•Szerveroldal: elosztott monstrum

•SMTP-hez hasonló (bárki futtathat saját szervert, user@domain azonosítók)

•A protokol kiterjeszthető - XMPP Standards Foundation felügyeli a hivatalosakat

•Transportok: csatlakozás más protokollokhoz (MSN, AIM, SIP...)

Page 5: MSN-kompatibilis egyéni emotikonok kezelése XMPP/Jabber-ben

Miért fontos nekünk?

•Google Talk, Sun IM, Apple iChat Server, Portugal Telecom, GMX (Németország), ...

•Webes integráció: Magyarországon először freemailben

•SchJabber: 2004

•Gmail.BME?

•Többiek: NDA :(

Page 6: MSN-kompatibilis egyéni emotikonok kezelése XMPP/Jabber-ben

XMPP Platformok•Desktop IM / C++, Java, .NET...

•Web IM: Flash, JavaScript, újabban XUL

•Mobil IM: Symbian, PocketPC, J2ME

•Beágyazott, middleware - állítólag ilyen is van

•15+ Platform, 15 szerver, 15 nyelv, 50 lib, 90+ kliens

Page 7: MSN-kompatibilis egyéni emotikonok kezelése XMPP/Jabber-ben

Nyelvi elemek

Page 8: MSN-kompatibilis egyéni emotikonok kezelése XMPP/Jabber-ben

XMPP nyelv•message

•Üzenetküldésre

•presence

•“The ability to communicate” - jelenlétállapotok (az is, mit hallgatsz épp)

• iq

•minden egyéb: set, get, query

Page 10: MSN-kompatibilis egyéni emotikonok kezelése XMPP/Jabber-ben

presence stanza

•Küldés: <presence> <show>xa</show><status>Gone home for the evening</status></presence>

•Fogadás: <presence from='dj@yak/Work' to='sabine@yak'> <status>Online</status> <priority>1</priority></presence>

Page 11: MSN-kompatibilis egyéni emotikonok kezelése XMPP/Jabber-ben

iq stanza

•contact list lekérése: <iq type='get' id=”roster_1”> <query xmlns='jabber:iq:roster'/></iq>

•válasz: <iq to='[email protected]/balcony' type='result' id='roster_1'> <query xmlns='jabber:iq:roster'> <item jid='[email protected]' name='Romeo' subscription='both'> <group>Friends</group> </item> </query></iq>

Page 12: MSN-kompatibilis egyéni emotikonok kezelése XMPP/Jabber-ben

Önlabtéma 2007 ősz

• Jabber-kliens van sok

•Probléma: ismerősök visszaállnak Google Talkról, mert “nincsenek olyan smiley-k”

•Megoldás: csináljunk!

•XSF-fel együttműködve (Peter Saint-André)

•Deliverables: 1) XEP 2) (esetleg) kliens

•Előny: tettünk valamit az emberiségért :)

•Hátrány: Nem implementálni szívás, kitalálni

Page 13: MSN-kompatibilis egyéni emotikonok kezelése XMPP/Jabber-ben

Önlab lépései

•MSN Protokollanalízis

•Létező megoldások felderítése

•Protocol proposal draft

•Demo implementáció

•Protocol proposal

Page 14: MSN-kompatibilis egyéni emotikonok kezelése XMPP/Jabber-ben

MSN Protokoll

•SIP-szerű

•Üzenet előtt MSNObjectként

•Ha nincs meg - file request!

•Utólagos kitöltés

•Beszélgetésenként más (thread / session)

Page 15: MSN-kompatibilis egyéni emotikonok kezelése XMPP/Jabber-ben

Smiley MSNObject

MSG 1 N 232MIME-Version: 1.0Content-Type: text/x-mms-emoticon(tux) <msnobj Creator="[email protected]" Size="978" Type="2" Location="TFRC5.dat" Friendly="AAA="SHA1D="Uz3MQadmIWHed3saSdwcTo/Tc7U=" SHA1C="e7vZQCbXV30xf3gngY3P3slZhts="/>

(baaha)<msnobj Creator="[email protected]" Size="691" Type="2" Location="TFR3FA.dat" Friendly="AAA=" SHA1D="as1WxRoW0FXQFVrERtCC1Hec8i8=" SHA1C="AeZUBbzp5rI7tlZJ++ikrO4SeUk="/>

Page 16: MSN-kompatibilis egyéni emotikonok kezelése XMPP/Jabber-ben

MSNObject XMPP

•<message/> payload

•<body/> elé

•külön namespace

Page 17: MSN-kompatibilis egyéni emotikonok kezelése XMPP/Jabber-ben

MSNObject XMPP II.

First proposal

<message to="[email protected]" from="[email protected]"> <emoticons> <emoticon alias="(heart)" type="smiley" filename="heart.png" sha1="Id0n\'tkn0wSH418YH34Rt"/> </emoticons> <body> If my (heart)'s dear love-- </body></message>

Page 18: MSN-kompatibilis egyéni emotikonok kezelése XMPP/Jabber-ben

Fájlátküldés?

•Jelenleg: IQ stanza

•nincs meg a smiley-> get

•válasz (result): smiley fájl base64 encoded

•Intelligensebb megoldások: ld. később

Page 19: MSN-kompatibilis egyéni emotikonok kezelése XMPP/Jabber-ben

Demo implementáció

•Java -ban (Jive Software Smack)

•Küldés-fogadás tesztelésére

Page 20: MSN-kompatibilis egyéni emotikonok kezelése XMPP/Jabber-ben

Demo implementáció

Architektúra•EmoticonEntity

•EmoticonManager

•EmoticonPacketExtension (+Provider)

•EmoticonTransferPacket (+Provider)

•Sender és Receiver tesztkliens

Page 21: MSN-kompatibilis egyéni emotikonok kezelése XMPP/Jabber-ben
Page 22: MSN-kompatibilis egyéni emotikonok kezelése XMPP/Jabber-ben

Problémák (küldés)

•A használt smiley-kat az üzenet szövege (<body/>)alapján lehet megmondani

•Az üzenet a küldés pillanatáig változhat

•Ergo PacketExtension toXML()-jében meg kell nézni az üzenetet, ismernie kell azt

•De: Csak az EmoticonManager ismeri a smiley-kat, viszont nem tud róla, mikor küldenek üzenetet

•Eredmény: mindenki ismer mindenkit :(

Page 23: MSN-kompatibilis egyéni emotikonok kezelése XMPP/Jabber-ben

Problémák (fogadás)

•Nehogy már a fogadó processnek kelljen beszereznie a smiley-kat : EmoticonManager!

•EM megint ismeri az üzenetet

•UPDATE??

•Web??

•MSN-átjáró?

Page 24: MSN-kompatibilis egyéni emotikonok kezelése XMPP/Jabber-ben

Még nincs kész...

Page 25: MSN-kompatibilis egyéni emotikonok kezelése XMPP/Jabber-ben

Intelligens megoldások

•SI-Pub (XEP-153)

•User Avatar (XEP-84)-szerű (PubSubon keresztül)

•SI-Pub csomagolása smiley fejlécbe

Page 26: MSN-kompatibilis egyéni emotikonok kezelése XMPP/Jabber-ben

Eddigi reakciók

•Peter Saint-André

•Per Erkström

Page 27: MSN-kompatibilis egyéni emotikonok kezelése XMPP/Jabber-ben

További infó tőlem

•http://jabbermania.blogspot.com (C++ Jabberkliens, Smack jabberbot, értelmesebb dolgok)

•Budapest New Technology Meetup Jún. 6 - Egységes Instant Messaging Hálózat Mo.-n

•NDA :(

Page 28: MSN-kompatibilis egyéni emotikonok kezelése XMPP/Jabber-ben

Referenciák

Page 29: MSN-kompatibilis egyéni emotikonok kezelése XMPP/Jabber-ben

Referenciák• jabber.org: kliensek, szerverek, libek...

•http://www.ietf.org/rfc/rfc3921.txt

•http://www.xmpp.org/extensions/ - XEP-ek (Jingle, User Tune, Publish-Subscribe etc)

• Jingle bemutatás (Peter Saint-André): http://www.saint-andre.com/jabber/Jingle.pdf

• IgniteRealtime.org - Jive szerverek, kliensek

Page 30: MSN-kompatibilis egyéni emotikonok kezelése XMPP/Jabber-ben

Jabber + P2PJabber +

MultiMedia

Page 31: MSN-kompatibilis egyéni emotikonok kezelése XMPP/Jabber-ben

Jingle pre-history•Eredetileg: Kliens-szerver architektúra

•Probléma: fájlátvitel, mediastreaming, SIP???

•Első: TINS (XEP-0111): SIP jabberül

•(:-() A kliensoldal bonyolult, jabberben nem divat!

•(:-)) Könnyű SIP-transportot írni

•Most: JINGLE (XEP-0166) - by Google

Page 32: MSN-kompatibilis egyéni emotikonok kezelése XMPP/Jabber-ben

Jingle downsides

•Van a Jingle (XEP-0166 - experimental protocol)

•Van a libjingle (GNU LGPL lib, C++, by Google)

• libjingle nem kompatibilis XEP-0166-tal!!!

•Google Talk libjingle alapú

•Készül: Jive Spark / Smack Jingle lib (JAVA), de JMF alapú - a Jive szerint is vacak

Page 33: MSN-kompatibilis egyéni emotikonok kezelése XMPP/Jabber-ben

Jingle advantages

•XMPP-alapú - hey, it’s a standard

•Egyeztetőprotokoll, mint a SIP (“lesz” gw)

•Beépített támogatás tűzfalak megkerülésére

•ELVILEG mehet webről is (Flash!)

•Nem teljesen kínai, de azért...

Page 34: MSN-kompatibilis egyéni emotikonok kezelése XMPP/Jabber-ben

Önlabtéma-variációk

Page 35: MSN-kompatibilis egyéni emotikonok kezelése XMPP/Jabber-ben

Önlabtéma II.

•Jingle

•Készül egy proto-XEP webre, flash-használattal (“VoIP”, video)

•Nincs implementáció

•Előny: ismét tettünk valami hasznosat :)

•Hátrány: JINGLE ingoványos talaj;előbb-utóbb a ClientSide vagy a Jive úgyis megírja; nincs rendes intelmac IDE hozzá

Page 36: MSN-kompatibilis egyéni emotikonok kezelése XMPP/Jabber-ben

Önlabtéma III.•Még mindig Jingle

•Haverok. Buli. Fanta. De máshol!

•Megoldás: VideoLAN (videolan.org)

•Kéne egy signaling protokoll, meg chat, minél jobb jelenlétkezelés - Jabber-Jingle!

•Előny: Nem túl hasznos, de buli

•Hátrány: illegális (Gyenge Anikó szerint), Jingle ingoványos, gyenge implementációk

•Sok kódolás, sok szívás lehet

Page 37: MSN-kompatibilis egyéni emotikonok kezelése XMPP/Jabber-ben

Önlabtéma n.

•XEP-0118 - User Tune: milyen jó lenne, ha bele tudnék hallgatni, másik mit hallgat

•Írjunk minél jobb webes klienst

•XUL, Anyone?

•Mobil: fényképez, fájlt elküld / fogad