Java
Java predstavlja kombinaciju HLL-a, izvršenja u okruženju, i klasu biblioteke koja omogućava programeru da napiše aktivni dokumenat, a browser-u da ga izvrši. Java se može takodje koristiti kao samostalni program bez korišćenja browser-a. Ipak, Java se najčešće koristi za kreiranje apleta (applet), tj malih aplikacionih programa.
Java je objektno-orijentisani jezik, koji je, sintaktički i semantički, veoma sličan C++. No on nije tako složen kao C++ i nema te kompleksnosti koje se odnose na operator overloading ili višestruko nasledjivanje (multiple inheritance). Java je takodje hardverski nezavisna i ne koristi pokazivače. Kod Java, kao i kod drugih objektno-orijentisanih jezika, programer definiše skup objekata i postavlja operacije (metode) koje operišu nad tim objektima. On je typed jezik, što zanči da programer mora da deklariše tip bilo kog dela podatka pre nego što ga počne koristiti.
2.2. Elektronska pošta
Elektronska pošta (e-mail) omogućava korisnicima da razmenjuju poruke. Priroda ove aplikacije različita je u odnosu na druge (FTP, HTTP, TELNET). Tako na primer, kod aplikacija kakve su HTTP i FTP, server program stalno se izvršava, čekajući na zahtev od strane klijenta. Kada zahtev pristigne, server pruža uslugu. Drugim rečima, kada se izda neki zahtev postoji i odgovarajući odziv. Kod elektronske pošte situacija je drugačija. Kao prvo, elektronska pošta je jednosmerna komunikacija. Tako na primer, kada Alice pošalje e-mail poruku Bobu (vidi sliku 1) ona može da očekuje odgovor, ali taj odgovor nije obavezan da pristigne. Bob mora ali i ne mora da odgovori. Ako Bob odgovori, to je ponovo jednosmerna transakcija. Kao drugo, niti je moguće, niti logično da Bob na svom računaru neprekidno izvršava server program i čeka da mu neko pošalje poruku. Kada Bob ne korisit računar on ga obično isključi. To znači da je klijent-server programiranje implementirano na drugačiji način: Osnovna ideja se sastoji u korišćenju nekih računara tipa server kao posrednici. Računar korisnika, kada je uključen, izvršava samo klijent-program, a pomoću računara posrednika ostvaruje se klijent-server paradigma.
2.2.1. Arhitektura
Da bi objasnili arhitekturu e-mail-a, analiziraćemo standardni scenario prikazan na slici 1. Alternativna mogućnost je slučaj kada su Alice i Bob direktno povezani na jedan isti server (kao na primer, u slučaju kada dva korisnika Elektronskog fakulteta povezana na mrežu fakulteta treba međusobno da komuniciraju) tako da veza sa nekim drugim LAN-om ili WAN-om se ne ostvaruje u ovom slučaju. No, nezavisno od toga, diskusija koja sledi je i dalje važeća.
Kod scenaria sa slike 1, predajnik i prijemnik e-mail-a, Alice i Bob, povezani su preko LAN ili WAN mreže na dva e-mail servera. Administrator mreže svakog korisnika kreira jedan poštanski sanduk (mailbox) u kome se smeštaju primljene poruke. Mailbox je deo hard-diska servera, a realizovan je kao specijalni fajl sa ograničenim pravima pristupa. Samo vlasnik mailbox-a ima pravo pristupa tom fajlu (samo on može da čita sve poruke). Administrator mreže može takođe da kreira red čekanja (spool) u kome se čuvaju poruke koje čekaju da budu poslate.
Slika 1. Standardni scenario
Prenos jedne e-mail poruke od Alice do Boba (vidi sliku 1) se realizuje u devet koraka. Alice i Bob koriste tri različita agenta: User Agent (UA), Mail Transfer Agent (MTA) i Message Access Agent (MAA). Kada Alice treba da preda poruku Bobu ona aktivira UA program kojim priprema poruku i šalje je ka svom e-mail serveru. E-mail server na strani predaje koristi red čekanja (spool) kako bi sačuvao poruke koje čekaju da budu poslate. Da bi se poruka poslala sa Alice-ovog sajta na Bob-ov sajt potrebno je koristiti MTA. U ovom slučaju potrebna su dva agenta za prenos poruke, jedan na strani klijenta, a drugi na strani servera. Kao i kod najvećeg broja klijent-server programa koji se koriste na Internetu, server treba da bude stalno aktivan jer on ne zna kada će klijent zahtevati konekciju sa njim. Klijent sa druge strane, može biti aktiviran od strane sistema samo kada postoji poruka u redu čekanja koju treba poslati. UA na strani Bob-a omogućava Bobu da pročita primljenu poruku. Bob kasnije koristi MAA klijent da izbavi poruku od MAA servera koji se izvršava na drugom serveru.
Konačno, arhtekturu e-mail sistema čine dva UA, dva para MTA (jedan na klijent a drugi na server strani), i jedan par MAA (klijent i server).
Agent korisnika - UA
Prva komponenta e-mail sistema je agent korisnika (User Agent - UA). UA pruža servise koji čine korisniku da se predaja i prijem poruka lakše realizuju. UA je softverski paket (program) koji uključuje manipulacije koje se odnose na čitanje (Read), slanje (Send), odgovaranje (Replay), i prosleđivanje (Forward) poruka. Pored toga, UA može da manipuliše i sa loikalnim mailbox-om poruka (čitanje poruka po datumu prijema, čitanje po imenu korisnika, i td.).
Postoje dva tipa UA-ova: command-driven i GUI-baziran. Command-driven UA prihvata komande sa tastature i obavlja zadatak. Ovaj tip agenta je bio tipičan za početak razvoja e-mail-a a danas se retko koristi. Savremeni UA-ovi su GUI-zasnovani. Oni sadrže komponente grafičko-korisničkog interfejsa (graphical user interface - GUI) koje omogućavaju korisniku da interagije sa softverom koristeći tastaturu i miš. GUI-zasnovan UA uključuje manipulacije sa grafičkim komponentama kakve su ikone, meni barovi i prozori, pomoću kojih se olakšava pristup servisima.
Slanje mail-a
Da bi poslao mail-a, korisnik uz pomoć UA kreira mail poruku koja izgleda kao poštansko pismo (postal mail). Ovo pismo sadrži anvelopu (envelope), i poruku (message) – kako je to prikazano na slici 2. Anvelopa obično sadrži adresu predajnika, adresu prijemnika, i druge informacije. Poruka sadrži zaglavlje (header) i telo (body). Zaglavljem se definiše predajnik, prijemnik, subjekt poruke, i neke druge informacije. Telo poruke sadrži aktuelnu informaciju koju primaoc treba da pročita.
Slika 2. Foramt e-mail-a
|