ebook img

komponenta za razmjenu poruka i informacija o prisutnosti na uređajima s operacijskim sustavom ... PDF

47 Pages·2015·1.54 MB·Croatian
by  
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview komponenta za razmjenu poruka i informacija o prisutnosti na uređajima s operacijskim sustavom ...

SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 4088 KOMPONENTA ZA RAZMJENU PORUKA I INFORMACIJA O PRISUTNOSTI NA UREĐAJIMA S OPERACIJSKIM SUSTAVOM ANDROID Katarina Matić Zagreb, lipanj 2015. Sadržaj Uvod ...................................................................................................................................... 1 1. Protokol XMPP ............................................................................................................. 2 1.1. Povijest protokola XMPP ...................................................................................... 2 1.2. Osnovna svojstva protokola XMPP ...................................................................... 3 1.2.1. Arhitektura ..................................................................................................... 3 1.2.2. Adresiranje..................................................................................................... 5 1.2.3. Tijek komunikacije ........................................................................................ 5 1.3. Prisutnost ............................................................................................................... 8 1.4. Trenutno poručivanje ........................................................................................... 10 2. Komunikacija s poslužiteljem ..................................................................................... 14 2.1. Direktna komunikacija temeljena na protokolu XMPP ....................................... 14 2.1.1. Komunikacija između klijenta i poslužitelja ............................................... 14 2.1.2. Komunikacija između poslužitelja .............................................................. 16 2.2. Posredna komunikacija preko poslužitelja GCM-CSS ........................................ 17 2.3. Usporedba direktne i posredne komunikacije s poslužiteljem ............................ 20 3. Komponenta za razmjenu poruka i informacija o prisutnosti ...................................... 22 3.1. Struktura Android aplikacija ............................................................................... 22 3.1.1. Osnovni elementi aplikacija ........................................................................ 22 3.2. Oblikovanje i programska izvedba komponente za razmjenu poruka i informacija o prisutnosti ..................................................................................................................... 26 3.2.1. Struktura komponente ................................................................................. 27 3.3. Testiranje komponente ........................................................................................ 31 Zaključak ............................................................................................................................. 34 Literatura ............................................................................................................................. 35 Sažetak ................................................................................................................................. 36 Summary .............................................................................................................................. 37 Skraćenice ............................................................................................................................ 38 Ključni pojmovi ................................................................................................................... 40 Key terms ............................................................................................................................. 41 Privitak A ............................................................................................................................. 42 Uvod Broj korisnika pametnih telefona kontinuirano raste od njihove pojave početkom 20. stoljeća. Pametni telefoni su brzo prihvaćeni upravo zato što uz uobičajene funkcionalnosti mobilnih telefona poput poziva i SMS poruka nude i mogućnosti naprednijih mobilnih operacijskih sustava. Time je započeo rast u razvoju aplikacija koje mogu pokretati takvi operacijski sustavi, među kojima operacijski sustav Android od početka ovog desetljeća prednjači po popularnosti. Glavna funkcionalnost mnogih od tih aplikacija je komunikacija između korisnika koristeći Internet vezu. Budući da je korisniku pri komunikaciji porukama najvažnije da poruka do drugog dostupnog korisnika dođe što brže, aplikacije za komunikaciju porukama obično nude uslugu trenutnog poručivanja. Trenutno poručivanje obično uključuje tri usluge: prikaz korisnikovih kontakata, prikaz prisutnosti kontakata te razmjenu poruka između dva korisnika. Pritom se korisniku razmjena poruka i informacija o prisutnosti čini gotovo trenutnom. U radu je razvijena komponenta koja, nakon ugradnje u sustav, korisniku uređaja s operacijskim sustavom Android pruža usluge razmjene poruka i informacija o prisutnosti drugih korisnika. Komponenta se temelji na komunikacijskom protokolu XMPP (Extensible Messaging and Presence Protocol, skraćeno XMPP), a informacije razmjenjuje koristeći poslužitelj koji se temelji na istom protokolu. U radu je također prikazana usporedba između direktne komunikacije s poslužiteljem koji koristi protokol XMPP te posredne komunikacije preko poslužitelja GCM-CSS (Google Cloud Messaging - Cloud Connection Server, skraćeno GCM-CSS). 1 1. Protokol XMPP U ovom poglavlju analizira se protokol XMPP uz naglasak na značajke protokola važne za izgradnju komponente za razmjenu poruka i informacija o prisutnosti. Prvi dio poglavlja ukratko opisuje povijest protokola XMPP, a drugi njegova osnovna svojstva važna za razumijevanje rada protokola. Nakon toga se obrađuje prisutnost (presence) i trenutno poručivanje (instant messaging), dijelovi funkcionalnosti koje omogućuje protokol XMPP, koji se koriste u programskom ostvarenju ovog rada. 1.1. Povijest protokola XMPP Protokol XMPP je nastao standardizacijom i formalizacijom protokola za razmjenu poruka i prisutnosti koji su se temeljili na toku podataka u obliku XML-a (Extensible Markup Language, skraćeno XML). Razvoj takvih protokola bio je potaknut željom da se razmjena poruka i prisutnosti pojednostavi u odnosu na tadašnje tehnologije te da se podupru otvoreni standardi u komunikaciji u stvarnom vremenu (real-time), a započeo je u siječnju 1999. godine kada se pojavljuje otvorena tehnologija imena Jabber čiji je začetnik Jeremie Miller. Budući da su poslužitelj, klijenti, programske biblioteke i dodatci za trenutno poručivanje i prisutnost bili otvorenog koda, tehnologija je brzo napredovala uz potporu zajednice programera, te je Miller krajem iste godine podnio zahtjev organizaciji IETF (Internet Engineering Task Force, skraćeno IETF) tražeći standardizaciju proizvoda Jabber projekta. Prva stabilna verzija poslužitelja jabberd i protokola Jabber pojavila se već sljedeće godine. 2001. godine osnovana je JSF (Jabber Software Foundation, skraćeno JSF), od 2007. XSF (XMPP Software Foundation, skraćeno XSF), čija je zadaća bila upravljanje projektima otvorenog koda koji su koristili tehnologije Jabber.[1] Preko te organizacije je 2002. ponovno predan zahtjev IETF-u za standardizaciju tehnologija. Zahtjev je prihvaćen, a ubrzo je stvoren XMPP Working Group te je pokrenuta standardizacija protokola pod imenom Extensible Messaging and Presence Protocol. Standardizacija je završena nakon promjena vezanih uz sigurnost poput korištenja SASL-a (Simple Autentification and Security Layer, skraćeno SASL) za autentifikaciju i TLS-a (Transport Layer Security, skraćeno TLS) za kodiranje kanala. Promjene su uključivale i definiranje XMPP adresa poznatih kao JID 2 (Jabber ID, skraćeno JID), dodatke za blokiranje i biranje kontakata. Do kraja 2004. IETF prihvaća XMPP i njegove standarde. Nakon standardizacije, započinje razdoblje prihvaćanja protokola XMPP i razvoja tehnologija i usluga koje se temelje na njemu. U 2005. se pojavljuju XMPP usluge Google Talk IM i VoIP (Voice over Internet Protocol, skraćeno VoIP) te utjecajne tvrtke poput IBM, Apple, Nokia-e i sličnih počinju koristiti XMPP tehnologije. Otvoreni protokol XMPP se otada nadograđuje i proširuje dodatcima, a za standardizaciju i definiciju brine se XSF kao samostalna neprofitna organizacija. 1.2. Osnovna svojstva protokola XMPP U ovom dijelu opisuje se opća arhitektura XMPP sustava. Slijedi analiza adresiranja XMPP entiteta te oblika i načina komunikacije između XMPP entiteta. Nakon toga pobliže će biti opisane prisutnost i trenutno poručivanje. 1.2.1. Arhitektura Komunikacija između klijentskih procesa se u slučaju korištenja XMPP tehnologija odvija prema modelu klijent-poslužitelj. Klijentski procesi ne komuniciraju direktno, već posredno pomoću poslužitelja. Također, arhitektura je decentralizirana, te je prikazana na slici Slika 1.1. Takva arhitektura omogućuje klijentskim programima jednostavnost u smislu da se ne moraju brinuti o sigurnosti mreže i podataka koji se njome prenose. Klijentski programi više pažnje posvećuju iskustvu korisnika i prezentaciji podataka. XMPP poslužiteljski programi se, s druge strane, brinu o problemima sigurnosti, autentifikacije korisnika, zaštitnom kodiranju podatkovnih kanala te jedinstvenosti korisničkih adresa. Neki od programa koji se izvode na Jabber serverima su ejabberd, Tigase i Openfire. Nakon što klijent zatraži slanje poruke drugom klijentu, klijentski program koji šalje povezuje se na odlazni poslužitelj svoje domene, kao kod e-mail komunikacije. Budući da su XMPP poslužitelji različitih domena međusobno dobro povezani, kada primatelj pripada nekoj drugoj domeni, odlazni poslužitelj prosljeđuje poruku odredišnom poslužitelju koji je dalje prosljeđuje odredišnom klijentskom programu. Poruka se pritom šalje u samo jednom skoku, između odlaznog i odredišnog poslužitelja, bez poslužitelja posrednika. Takav način 3 organizacije mreže među poslužiteljima sprječava neke vrste neželjene komunikacije poput neželjenih poruka (spam) te onemogućava ubacivanje lažne adrese pošiljatelja. Slika 1.1 XMPP arhitektura XMPP poslužitelji omogućuju nadogradnju. Administratori smiju dodavati komponente ili usluge na poslužitelj ovisno o tome kako žele proširiti usluge poslužitelja. Neke od tih nadogradnji su sobe za čavrljanje s više korisnika, servisi za čavrljanje tijekom igranja internetskih igrica, dodatci za društvene mreže i slično. Osim klijenta i poslužitelja, postoje i automatizirani klijenti kojima ne upravlja ljudski korisnik, a mogu biti dio mreže. Takvi se klijenti koriste za pružanje komunikacijskih usluga, na primjer, korisnik može komunicirati s automatiziranim klijentom, ili automatizirani klijent može pružati smjernice korisnicima u razgovorima s više korisnika. 4 1.2.2. Adresiranje Opći oblik adrese XMPP entiteta glasi korisnič[email protected]/resurs, a zove se JID (JabberID). [2] Korisničko ime bira korisnik ili mu se dodjeljuje automatski, a ono predstavlja virtualni identitet korisnika u mreži. Kod korisničkog imena se ne razlikuju mala i velika slova. Domena JID-a se u pravilu mapira na potpuno kvalificirano domensko ime (Fully Qualified Domain Name, skraćeno FQDN) kao kod adresa elektroničke pošte. Nakon svake instalacije XMPP poslužiteljskog programa, odabire se domensko ime te se koristeći sustav imenovanja adresa (Domain Name System, DNS) mapira na jedan ili više poslužitelja za što se osoba koja vrši instalaciju programa ne mora brinuti. Taj dio adrese, kao i korisničko ime, ne razlikuje mala i velika slova abecede. Budući da XMPP standardi teže internacionalizaciji, korisnička imena i imena domena u adresama smiju uključiti bilo koji Unicode znak. Sljedeći dio adrese odnosi se na domene najviše razine poput .com, .org i slično. Pri svakom povezivanju klijenta s poslužiteljem klijent bira ili mu se dodjeljuje resursni identifikator te se on dodaje na kraj adrese. Taj se dio adrese koristi za razlikovanje veza ostvarenih s istim korisničkim računom, ali na različitim uređajima. Obično je to ime računala ili lokacija klijenta te razlikuje mala i velika slova. Takav dodatak adresi omogućuje drugim klijentima slanje poruka na odabrani uređaj, a uz to svaki uređaj ima vlastita stanja prisutnosti. 1.2.3. Tijek komunikacije U tehnologiji XMPP, razmjena informacija između entiteta mreže odvija se pomoću toka XML podataka. Dijelovi XML koda, najmanje jedinice u komunikaciji koje imaju značenje, zovu se XML strofe (stanza). Kako bi klijent mogao započeti komunikaciju s drugim klijentom, prvo se mora otvoriti stalna TCP (Transmission Control Protocol, skraćeno TCP) veza između XMPP poslužitelja i klijenta. Zatim klijent traži otvaranje toka prema poslužitelju koji otvara dva toka u oba smjera između sebe i klijenta. Nakon što je XML tok uspostavljen, može započeti razmjena XML strofa. Postoje tri vrste strofa: poruka (message), prisutnost (presence) i strofa za 5

Description:
http://xmpp.org/about-xmpp/history/, 23.04.2015. [2] PETER SAINT-ANDRE, KEVIN SMITH, AND REMKO TRONÇON, W. XMPP: The. Definitive Guide
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.