87
Klijent-server arhitektura

Predavanja - šesti deo

Embed Size (px)

Citation preview

Page 1: Predavanja - šesti deo

Klijent-serverarhitektura

Page 2: Predavanja - šesti deo

2

Klijent-server arhitektura

Nakon pažljive analize korisničkih zahteva, neophodno je doneti odluku o arhitekturi sistema.

Odluka mora biti doneta na osnovu trenutnih potreba i budućeg razvoja. za jednostavne statičke Web aplikacije dovoljni su klijenti i Web

server, dok su za dinamičke i poslovne aplikacije potrebne najmanje tri komponente:

klijenti, Web server i aplikacioni server.

Odabir arhitekture zavisi od: broja korisnika i računara na mreži, vrsta razvojnih okruženja i programskih alata, modela i obima baze podataka, složenosti programskih procedura.

Page 3: Predavanja - šesti deo

3

Klijent-server arhitektura

Web aplikacije su dominantno bazirane na klijent/server modelu arhitekture

Klijent/server arhitektura je razvijena kao: višenamenska,

modularna infrastruktura,

zasnovana na slanju i primanju poruka,

sa ciljem: unapređenja upotrebljivosti,

fleksibilnosti,

interoperabilnosti i

skalabilnosti

Page 4: Predavanja - šesti deo

4

U klasičnim sistemima za obradu podataka po klijent/server modelu mogu se uočiti tri klase komponenti: server, klijenti i mreža.

Server

Klijent

Klijent

Klijent

Mreža

Klijent-server arhitektura

Page 5: Predavanja - šesti deo

5

Klijent-server arhitektura

Namena servera : optimalno upravljanje zajedničkim resursima, što su najčešće

podaci,

upravljanje bazom podataka kojoj pristupa više korisnika,

kontrola pristupa i bezbednosti podataka i

centralizovano obezbeđenje integriteta podataka za sve aplikacije.

Klijent-aplikacije vrše upravljanje korisničkim interfejsom i izvršavaju deo logike aplikacije.

Računarska mreža i komunikacioni softver omogućavaju prenos podataka između klijenta i servera.

Page 6: Predavanja - šesti deo

6

Dvoslojna arhitektura

Dvoslojna arhitektura sastoji se od 3 komponente distribuirane u dva sloja – klijentskom i serverskom. Te tri komponente su: Korisnički interfejs – sesije, unos teksta, dijaloški prozori,

prikaz na ekranu

Upravljanje procesima (process managment) – generisanje, izvođenje i nadgledanje procesa i neophodnih resursa

Upravljanje podacima (database managment) – servisi vezani za deljenje podataka i datoteka

Page 7: Predavanja - šesti deo

7

Dvoslojna arhitektura

Page 8: Predavanja - šesti deo

8

Dvoslojna arhitektura

Jedna od osnovnih karakteristika klijent/server sistema je distribuirana obrada podataka – logika aplikacije je podeljena između klijenta i servera tako da obezbedi optimalno korišćenje resursa. Na primer, prezentacija podataka i provera ulaznih podataka su

sastavni deo klijent-aplikacije, dok se

rukovanje podacima, u smislu njihovog fizičkog smeštaja i kontrole pristupa, vrši na serveru.

Page 9: Predavanja - šesti deo

9

Dvoslojna arhitektura

Neke od prednosti ovakvog modela obrade podataka su:

centralizovano upravljanje resursima sistema i

jednostavnije obezbeđivanje sigurnosti podataka.

Osnovni problem – nedostatak skalabilnosti.

Pod skalabilnošću se podrazumeva osobina sistema da omogućiefikasan rad velikom broju korisnika, i da dalje povećavanje broja korisnika ne izaziva drastičan pad performansi sistema.

Page 10: Predavanja - šesti deo

10

Skica dvoslojnog sistema zasnovanog na WWW tehnologijama

Page 11: Predavanja - šesti deo

11

Troslojni klijent/server sistemi

Klijent/server sistemi sa troslojnom arhitekturom (three-tier architecture) predstavljaju sisteme sa tri, u velikoj meri nezavisna, podsistema. U pitanju su sledeći podsistemi:

1. podsistem za interakciju sa korisnikom (implementira funkcije korisničkog interfejsa);

2. podsistem za implementaciju osnovnih funkcija sistema(implementira tzv. “poslovnu logiku”);

3. podsistem za rukovanje podacima, pri čemu se pre svega misli na fizički smeštaj podataka (ovo je, zapravo, sistem za upravljanje bazama podataka).

Page 12: Predavanja - šesti deo

12

Elementi troslojne arhitekture sistema

Ne postoji direktna veza između podsistema za interakciju sa korisnikom i podsistema za rukovanje podacima. Ovi podsistemi se nazivaju i slojevi.

Klijent aplikacija

Aplikacioni server

SUBP

Page 13: Predavanja - šesti deo

13

Elementi troslojne arhitekture sistema

Za razliku od dvoslojnog modela obrade podataka, gde je logika aplikacije bila podeljena između klijenta i servera,

u troslojnom modelu ona se nalazi koncentrisana u tzv. aplikacionom serveru – čija je namena da izvršava programski kod koji implementira logiku aplikacije.

Klijent aplikacija je namenjena samo za implementaciju korisničkog interfejsa,

a funkcija sistema za upravljanje bazom podataka je isključivo fizičko rukovanje podacima (u prethodnom slučaju je, pored toga, izvršavao i deo logike aplikacije).

Page 14: Predavanja - šesti deo

14

Prednosti troslojne arhitekture

Troslojni koncept je doveo do podele programskog koda na segmente koji implementiraju tačno određene funkcije sistema.

Tako organizovan sistem je jednostavniji za održavanje, jer je moguće nezavisno razvijati korisnički interfejs, i logiku aplikacije.

Za potrebe fizičkog rukovanja podacima najčešće se koristi neki od komercijalno dostupnih servera za tu namenu.

Troslojne arhitekture sistema podrazumevaju oslanjanje na standarde u odgovarajućim oblastima, zasnovane na Internet tehnologijama.

Oslanjanje na standarde omogućava integraciju sistema heterogenih u pogledu korišćene hardverske i softverske opreme.

Page 15: Predavanja - šesti deo

15

Prednosti troslojne arhitekture

1. Važna karakteristika troslojnih sistema je skalabilnost.a) povećavanje broja klijenata je jednostavnob) povećavanje propusne moći i brzine odziva servera srednjeg

sloja je moguće kroz dodavanje novih serverskih mašina uz korišćenje postojećih.

2. Sistem sa više servera karakteriše i povećana pouzdanost i fleksibilnost

3. Logika aplikacije se može menjati i u toku rada sistema.

4. Moguće je efikasno vršiti balansiranje opterećenja serverskog podsistema.

Page 16: Predavanja - šesti deo

16

Skica konfiguracije sistema sa troslojnom arhitekturom

Page 17: Predavanja - šesti deo

17

Skica konfiguracije sistema sa troslojnom arhitekturom

Page 18: Predavanja - šesti deo

18

Arhitektura višeslojnih sistema

Daljim proširivanjem koncepta troslojnih sistema dolazi se do pojma višeslojnih sistema (multitier architecture), gde se vrši dalja podela na komponente u okviru srednjeg sloja sa ciljem još većeg povećanja skalabilnosti, odnosno performansi.

Page 19: Predavanja - šesti deo

19

Jedna moguća arhitektura višeslojnog sistema

Srednji sloj je podeljen na dva sloja: jedan je namenjen za opsluživanje Web klijenata, a drugi sadrži komponente koje implementiraju

poslovnu logiku sistema.

Page 20: Predavanja - šesti deo

20

Java tehnologije za izgradnju višeslojnih sistema

HTML

Servlets/JSP

EJB/CORBA

JRMP/IIOPHTTPJDBC

RDBMS

RDBMS

JRMP (Java Remote Method Protocol) - protokol za komunikaciju između distribuiranih Java objekata ili

IIOP (Internet Inter-ORB Protocol) RDBMS (Relational Database Management System)

Page 21: Predavanja - šesti deo

21

Java tehnologije za izgradnju višeslojnih sistema

Interakciju sa korisnikom u sistemu obavljaju klijenti koji imajustandardan Web interfejs - Web čitači koji prikazuju HTML stranice.

Komunikacija između Web čitača i Web servera se odvija putemstandardnog HTTP protokola, uz dodatak cookie podataka kojima se prati korisnička sesija dok se on kreće po Web sajtu.

Stranice koje prikazuju klijenti su najčešće generisane dinamički, tj. po prijemu zahteva za nekom stranicom. Dinamičko generisanje Web sadržaja na osnovu podataka iz ostatka sistema vrše servleti ili se za tu namenu koriste JSP (Java Server Pages) stranice.

Page 22: Predavanja - šesti deo

22

Java tehnologije za izgradnju višeslojnih sistema

Za potrebe manipulacije podacima u sistemu servleti ili JSP stranice pristupaju objektima u okviru aplikacionih servera koji su dostupni kao CORBA (Common Object Request Broker Architecture) ili EJB(Enterprise JavaBeans) komponente.

Protokol za komunikaciju između ova dva sloja je JRMP (Java Remote Method Protocol), protokol za komunikaciju između distribuiranih Java objekata, ili IIOP (Internet Inter-ORB Protocol) ekvivalentan protokol vezan za CORBA tehnologiju.

CORBA/EJB komponente za potrebe skladištenja podataka u bazi podataka pristupaju serveru za upravljanje bazama podataka prekostandardnog JDBC (Java Database Connectivity) interfejsa.

Page 23: Predavanja - šesti deo

Tehnologije za Web

Page 24: Predavanja - šesti deo

24

Problemi tehnologija za Web

Izrada Web lokacija može biti težak posao jer se:

tehnologija izrade brzo menja,

nije uvek potpuno definisana i

neki čitači ne podržavaju je u potpunosti

Otkako je Web postao popularan – osnovna tehologija, jezik HTML više puta je redefinisan, pa postoje verzije 2.0, 3.2, 4.0, 4.01, XHTML 1, XHTML 1.1, razne privremene verzije (npr. HTML 3.0) i brojni pokušaji prilagođavanja

Page 25: Predavanja - šesti deo

25

W3C-World Wide Web Consortium

Page 26: Predavanja - šesti deo

26

Problemi tehnologija za Web

Druge tehnologije, na primer Java ili Java Script, takođe su se menjale u veoma kratkim intervalima

Proizvođači čitača redovno su objavljivali nove verzije programa koji su bili preplavljeni novim svojstvima, ali i greškama

Nedostatak stabilne i dobro podržane tehnologije veoma je veliki problem pri izradi Web lokacija

Neki autori usvajaju najnovije tehnologije i veoma brzo otkrivaju da ih popularni čitači ne podržavaju u potpunosti

Najnovije tehnologije koristiti samo kada za to postoji zaista važan razlog.

Page 27: Predavanja - šesti deo

27

Problemi tehnologija za Web

Iako tehnologije za izradu Web lokacija mogu da otežaju njihovu izradu – standardne i relativno otvorene tehnologije stvorile su izuzetno razvojno okruženje kojem pristupaju milioni korisnika sa različitih platformi

U nastavku su prikazane osnovne tehnologije za Web –globalna slika o njihovoj svrsi na Webu i uticaju na izradu Web strana

Page 28: Predavanja - šesti deo

28

Grafički prikaz odnosa klijentskih Web tehnologija

Page 29: Predavanja - šesti deo

29

Čitači

Čitač Weba prikazuje izrađene Web lokacije

Vrlo je važno razumeti koji su čitači podržani i kojim svojstvima raspolažu

Statistički podaci o upotrebi određenih čitača Weba stalno se menjaju

Problem sa izveštajima o tome koji se čitači Weba koriste jeste u tome što oni ne moraju tačno da oslikavaju realno stanje

Koji će tip čitača biti upotrebljen zavisi od toga kojim je korisnicima lokacija namenjena

Preporuka – osloniti se na podatke o čitačima koje sakupimo na SVOJOJ lokaciji

Page 30: Predavanja - šesti deo

30

Čitači

Čitači su mete koje se kreću

Svaka verzija donosi nova svojstva i nove greške Na primer: za Natscape Navigator razvijeno je 15 verzija četvrte

generacije i više od dve stotine različitih varijacija – probnih izdanja i starijih verzija

Nemoguće je paziti na svojstva svih novijih verzija čitača

S druge strane, nove tehnologije prihvataju se sporo

Preporuka: prilikom izrade lokacije uzeti u obzir mogućnosti poslednje dve (tri) verzije čitača

Za jednostavne greške korisnici uvek okrivljuju autora lokacije, a vrlo retko loš čitač Weba

Page 31: Predavanja - šesti deo

31

Page 32: Predavanja - šesti deo

32

Čitači

Izbor čitača – koje čitače koriste posetioci lokacija – pogledati dnevnike servera

Autori lokacija treba da prate porodice čitača:

http://www.w3.org/Amaya/Amaya

http://www.lynx.browser.orgLynx

http://www.developer.webtv.netWebTV

http://www.webmaster.aol.comAmerica Online

http://www.operasoftware.comOpera

http://www.netscape.comNetscape Communicator

http://www.mozilla.orgMozilla

http://www.microsoft.com/ie/Internet Explorer

URLČitač

Page 33: Predavanja - šesti deo

33

Čitači

H:\Copy of svedena tabela browsers.xls

Page 34: Predavanja - šesti deo

34

Mozilla Firefox Mozilla Firefox je Veb čitač, otvorenog koda, ranije poznat pod imenima

Phoenix i Firebird. Od 9. novembra 2004. god. Firefox u verziji 1.0 postaje ozbiljna konkurencija Internet Explorer čitaču, koji je trenutno najpopularniji.

Osobine koje karakterišu Firefox: Velika stabilnost Povećana sigurnost (u odnosu na Internet Explorer) Učitavanje stranica u pojedinačne tabove (učitavanje više stranica unutar

jednog prozora) Saglasnost sa W3C standardima Integrisani menadžer za skidanje podataka Ekstenzije - dodaci koje korisnik po potrebi može izabrati Teme - menjanje izgleda samog programa

Page 35: Predavanja - šesti deo

35

HTML

HTML jezik – sintaksa jezika nije strogo nametnuta – čitači će prilikom obrade Web strana koje sadrže greške sami pokušati da ih uklone ili će ih ignorisati

Čitači nisu strogi prema formi HTML koda – prikazaće na ekranu i nešto što uopšte nije po standardima jezika – lako bi se mogao definisati novi elemenat, koji čitaču neće smetati: <bogus> Sadržaj </bogus>

Stvarna sintaksa jezika HTML definisana je tipom dokumenta (DTD)

Svaki čitač Weba ima DTD ugrađen u svoj kod

DTD je kao legenda na putnoj karti, jer govori čitaču kako da čita HTML oznake i atribute

Pošto svaki čitač ima DTD, nije bilo potrebe da se naznačava datoteka u kojoj bi čitač našao definicije HTML oznaka i atributa

Page 36: Predavanja - šesti deo

36

DOCTYPE definicija

Svaka datoteka bi trebalo da počinje oznakom <!DOCTYPE> koja sadrži informaciju o verziji jezika HTML (XHTML) koji je upotrebljen za izradu strane

DOCTYPE definicija, koja je u XHTML jeziku obavezna, omogućava dizajnerima da navedu DTD koji sadrži definicije svih oznaka i atributa upotrebljenih u XHTML dokumentu

Čitač preuzima Web dokument i čitajući DOCTYPE definiciju s početka dokumenta, utvrđuje koji DTD mora imati da bi razumeo sve oznake i atribute kojima je stranica opisana

Ako posle proveravanja svog koda čitač utvrdi da njegov DTD nije taj koji je neophodan za stranicu, on traženi DTD može preuzeti sa URL adrese naznačene u DOCTYPE definiciji

Page 37: Predavanja - šesti deo

37

Sastav elementa <!DOCTYPE>

<!DOCTYPE html PUBLIC ”naziv verzije” ”url”>

html ukazuje da je korenski element tog dokumenta <html>oznaka

PUBLIC označava da se jeziku može javno pristupiti

naziv verzije označava celo ime za određenu verziju (X)HTML-a.Npr. ”-//W3C//DTD XHTML 1.0 Transitional//EN”

url označava gde se na – World Wide Webu nalazi definicija HTML koda.Npr.http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd

strict.dtd – dokument se strogo drži standarda i ne sadrži definicijuokvira (framesets)

transitional.dtd – dokument može da sadrži sve dozvoljene elemente i atribute bez definicije okvira

frameset.dtd – uključuje sve što i prethodni i dodaje definiciju okvira

Page 38: Predavanja - šesti deo

38

Primer ispravno napisane definicije

Primer ispravno napisane definicije dokumenta za Web stranicu: <!DOCTYPE html public ”-//W3C//DTD XHTML

1.0 Transitional//EN”“http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>

Page 39: Predavanja - šesti deo

39

XHTML

XHTML – Extensible Markup Language

XHTML - nova verzija jezika HTML – konzorcijum W3C počeo je da preporučuje u januaru 2000. godine

XHTML – reformulacija jezika HTML dodavanjem XML-a –pokušaj uvođenja strogih pravila u upotrebu HTML jezika

Pravila se u XHTML-u moraju poštovati

Ako autor napravi grešku, strana uopšte neće moći da se prikaže

Page 40: Predavanja - šesti deo

40

XHTML

Pravila korišćenja XHTML jezika – reformulacija HTML-a

Dokument mora da sadrži ispravan indikator tipa dokumenta <!DOCTYPE html PUBLIC”-//W3C//DTD XHTML 1.0 Transitional” http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd>

Dokument mora da sadrži elemente <html>, <head> i<body>

Element <title> mora biti prvi u elementu <head>

Sve vrednosti atributa elemenata, pa čak i najjednostavnijih, poput <p align=“left”> moraju biti navedeni u znakovima navoda

Page 41: Predavanja - šesti deo

41

XHTML

Pravila korišćenja XHTML jezika – reformulacija HTML-a

Oznake moraju biti ispravno ugnežđene, tako da je

<i><b> u redu </b></i>, ali

<i><b> nije </i></b>

Opcione završne oznake moraju biti zadate. Tako oznaka <p>više ne može da stoji bez svoje završne oznake – kod mora sadržati i oznaku <p> i oznaku </p>

Prazne oznake moraju biti zatvorene, na primer oznaka <hr>postaje <hr />

Sav kod piše se malim slovima

Kompletna lista pravila – http://www.w3.org/TR/xhtml1/

Page 42: Predavanja - šesti deo

42

Kaskadni stilovi (CSS)

HTML je izvorno projektovan kao strukturni jezik – nije napravljen da upravlja izgledom stranice, već se pretpostavljalo: Autor zadaje elemente stranice

Čitač Weba određuje kako će oni na ekranu izgledati

Sa podrškom za fontove, boje i druge vizuelne efekte, HTML je postao alatka za dizajniranje Web strana

Kaskadni stilovi – uvedeni su s namerom da se jeziku HTML vrati prvobitna namena – strukturiranje Web strana

Pomoću kaskadnih stilova odvaja se struktura od izgleda Web strane

Page 43: Predavanja - šesti deo

43

CSS

Kaskadni opisi stilova (CSS - Cascading Style Sheets) predstavljaju skup odrednica (pravila) pomoću koji se u potpunosti upravlja rasporedom i izgledom stranice

Opisi stilova omogućavaju pisanje naredbi za izgled i formatiranje u zaglavlju Web stranice ili u spoljašnjoj datoteci, van HTML koda kojim se zadaje sadržaj stranice

Nasuprot upotrebi tabela za raspoređivanje elemenata stranice, CSS pravila su jednostavni tekstualni iskazi, pomoću kojih istovremeno može da se raspoređuje i formatira jedan ili više elemenata

Stranica na kojoj su razdvojeni sadržaj i izgled lakše se održava i ažurira

Page 44: Predavanja - šesti deo

44

Specifikacije kaskadnih stilova

Specifikacija kaskadnih stilova je veoma obimna i njoj se neprekidno dodaju nova svojstva

Donosi podršku za vertikalno ispisan tekst i dizajn u više kolona. Poboljšana je podrška za pridruživanje postupaka i stilova. Integrisana je tehnologija grafike, boje i fontova.

CSS3

Poboljšana svojstva vezana za štampanje. Podrška za dinamičko iscrtavanje, pozicioniranje elemenata (CSSP), kaskadne stilove sa XML-om. Podrška kontroli okruženja – mogućnost izmene oblika pokazivača miša. Ograničeni postupci, na primer efekat lebdenja kod hiperveza.

CSS2

Upravljanje tekstom, uključujući mogućnost zadavanja fontova, veličine slova, stila i razmaka. Mogućnost zadavanja boje pozadine i pozadinskeslike. Podešavanje margina, ivica i razmaka između teksta i objekata. Podrška za stilove za liste.

CSS1

Prikaz svojstavaVerzija

Page 45: Predavanja - šesti deo

45

Metode izrade HTML dokumenata i kaskadnih stilova

Često daje loš HTML kod i CSS. Fino podešavanje izgleda strane najčešće zahteva ručno uređivanje HTML koda.

Autor radi direktno sa grafičkim i tekstualnim objektima. Ne zahteva dobro poznavanje jezika HTML i CSS.

Program FrontPage

Izrada strana u WYSIWYG programima

Spor. Zahteva dobro poznavanje jezika HTML i CSS.

Velika kontrola nad kodom. Brži od ručnog pisanja koda. Pruža pomoć, upozorava na greške i pomaže u pisanju struktuiranog HTML koda i CSS.

Program HomeSitePisanje koda u specijalnom programu za obradu koda

Kod nastao na ovaj način obično sadrži dosta grešaka. Zahteva dodatno pročišćavanje, dodavanje hiperveza.

Brz. Pojednostavljuje objavljivanje postojećih dokumenata.

Snimanje HTML dokumenta iz drugog programa, npr. Worda

Prevođenje

Metod je spor. Podložan je greškama. Zahteva odlično poznavanje HTML elemenata i svojstava CSS. Nema mogućnost direktne vizuelne kontrole.

Autor ima veliku kontrolu nad kodom. Moguće je odmah pristupiti greškama, novim HTML elementima i CSS svojstvima.

Pisanje koda u Notepadu

Ručno

Mane PrednostiPrimerMetod

*WYSIWYG - What You See Is What You Get Šta želite, to ćete i videti

Page 46: Predavanja - šesti deo

46

Programi za izradu Web strana

Popularan među autorima malih lokacija i dizajnerima kompanijskih prezentacija. Znatno je poboljšan od prve verzije, ali jošima reputaciju programa koji daje loše ili Microsoftske strane.

http://www.microsoft. com/frontpage

WindowsFrontPage

Veoma popularan među korisnicima računara Macintosh. Ima grafički interejs potpuno prilagođen dizajneru. Generisani kod sadrži greške, nije popularan među autorima koji teže strogom poštovanju standarda.

http://www.adobe.com/products/golive

Macintosh Windows

GoLive

Ima neverovatne mogućnost za upravljanje kodom, lošu podršku za vizuelno uređivanje. Sestrinski proizvod ColdFusion Studio pruža bolju podršku za tehnologije dinamičke izrade Web lokacije.

http://www.allaire.com/homesite

WindowsHomeSite

Dobar alat za vizuelnu izradu Web strana sa usklađenim WYSIWYG* i mogućnostima uređivanja koda. Pruža jaku podršku CSS i specifikaciji DHTML.

http:// www.macromedia.com ili www.dreamweaver.com

Windows, Macintosh

Dreamweaver

OpisKorisna adresaPlatformaProgram

Page 47: Predavanja - šesti deo

47

Programiranje i izrada Web strana

Programiranje za Web može se podeliti u dve osnovne velike grupe: klijentsko i serversko Klijentske tehnologije su one koje se izvršavaju u klijentu, tj. u

čitaču, iako postoje i neke klijentske tehnologije, poput JavaScripta i ActiveX kontrola, koje se izvršavaju na klijentskom računaru, ali izvan čitača

Programi koji se izvršavaju na serveru su serverske aplikacije

Svakoj tehnologiji pripada određeno mesto i primena, njihovo kombinovanje je najbolje rešenje

Page 48: Predavanja - šesti deo

48

Tehnologije za klijentsko i serversko programiranje Web strana

Dodaci

Serverski Java programiPomoćni programi

Serverski skriptovi

Active Server Pages ColdFusion PHP

Jezici za pisanje skriptova

Java Script VBScript Dynamic HTML

Serverski API programi (ISAPI/NSAPI)

Java programi

CGI skriptovi i programiActiveX kontrole

Serverske tehnologijeKlijentske tehnologije

Page 49: Predavanja - šesti deo

Klijentskoprogramiranje

Page 50: Predavanja - šesti deo

50

Klijentsko programiranje

Programi koji se izvršavaju na klijentskoj strani mnogo su brži od programa na serverskoj strani Nije potrebno prenositi podatke preko mreže da bi se prikazao

rezultat akcije

Klijentsko programiranje – nedostatak kontrole Teško je odrediti kakvi će korisnici pristupati lokaciji

Koji će čitač korisnici koristiti

Koja će svojstva čitača biti uključena

Koju vrstu procesora korisnik upotrebljava

Postoje korisnici koji isključuju podršku za skriptove ili koriste programe koji se tek testiraju

Page 51: Predavanja - šesti deo

51

Klijentsko programiranje

Klijentsko programiranje nije uvek efikasno

Pretpostaviti: da će sve ispravno raditi, ali napraviti i rezervnu varijantu

Page 52: Predavanja - šesti deo

52

Active X

ActiveX je Microsoft-ova tehnologija za izradu malih komponenti (kontrola) u okviru Web strane – nije programski jezik, već mnoštvo integrisanih objekata napisanih na različitim jezicima u Windowsovom okruženju.

ActiveX kontrole mogu biti programirane u više različitih programskih jezika, uključujući Javu, Delphi, Visual Basic, C++ i druge.

ActiveX objekti (kontrole) omogućavaju dodavanje programa Web stranici za rešavanje mnoštva zadataka: od prikazivanja poruka do generisanja zvučnih izlaza za tekst ili npr. mogućnosti prepoznavanja govora u programima i Web stranicama.

Page 53: Predavanja - šesti deo

53

Active X

ActiveX kontrole mogu biti izvršavane samo na Windowsoperativnim sistemima.

ActiveX objekti nisu bezbedni, jer moraju da se nalaze na korisnikovom disku da bi ih bilo moguće koristiti - imaju pristup svim resursima sistema

Zlonamerni ActiveX objekat može uneti virus i oštetiti ili uništiti podatke na disku korisnika

Page 54: Predavanja - šesti deo

54

ActiveX

Ako korisnik poseti Web stranicu koja koristi ActiveX objekat, a nema instaliran objekat na svom disku, Web server će pokušati da ga pošalje na korisnikov računar

Zavisno od korisnikovih bezbednosnih podešavanja, čitač Weba će prikazati okvir za dijalog, koji upozorava korisnika o preuzimanuju ActiveX objekta

Preporuka: koristiti samo svoje objekte, one koje su napravili poznati i pouzdani programeri i one koji su preuzeti sa pouzdanih Web lokacija (kao što je Microsoft)

Page 55: Predavanja - šesti deo

55

Java

Tehnologija kompanije Sun Microsystems

Java je razvojni jezik nezavisan od platforme, koji omogućava pisanje programa i njegovu primenu na bilo kom sistemu, čitaču ili OS koji podržava Java Virtualnu Mašinu (JVM)

Java jezik je po sintaksi donekle sličan jeziku C++

Page 56: Predavanja - šesti deo

56

Java apleti

Web strane koriste male programe pisane na jeziku Java, koji se nazivaju apleti i koji se preuzimaju i izvršavaju u samom čitaču proširujući njegove mogućnosti

Apleti se pišu na jeziku Java, prevode u bajt kod, koji je nezavisan od računara na kojem se

izvršava,

u obliku datoteke tipa .class koja se automatski preuzima u čitačkoji podržava Javu i

pokreće u okruženju samog čitača

Page 57: Predavanja - šesti deo

57

Čitač preuzima Java aplete sa Web servera

HTML kod Web stranice, slike, Java

apleti

čitač server

Zahtev čitača za Web stranicom

HTML, slike, Java apleti

Page 58: Predavanja - šesti deo

58

Java apleti

Windows radna stanica

Linux radna stanica

Mac radna stanica

Java aplet

Bajt-kod apleta

Bajt-kod apleta

Bajt-kod apleta

Java apleti koriste generički bajt-kod koji čitač prevodi u kod specifičan za mašinu – isti aplet radi na raznim tipovima mašina

Page 59: Predavanja - šesti deo

59

Java apleti

Čak i na računarima sa brzim procesorom može izgledati kao da se bajt kod izvršava sporije nego u normalno prevedenim programima

JVM pre izvršavanja mora da interpretira bajt kod apleta

Zbog toga vlada mišljenje da je Java spora

Zapravo njena interpretacija može biti spora

Page 60: Predavanja - šesti deo

60

Problemi s Javinim generičkim bajt-kodom

Problem s Javinim generičkim bajt-kodom je što čitač mora da prevede programski kod u program specifičan za procesor svaki put kada se aplikacija pokrene

Dodatni proces prevođenja izaziva kašnjenje pre pokretanja programa

Svaki put kada korisnik pokrene aplet čitač mora da ga preuzme, dok je ActiveX objekat čitač morao da preuzme samo jednom

Page 61: Predavanja - šesti deo

61

Bezbednost Java apleta

Java apleti nisu samostalni izvršni programi – oni se pokreću samo u okviru Web čitača

Javin bezbednosni model štiti korisnike od virusa i drugih opasnosti iz programa preuzetih s Weba

Radi eliminisanja virusa i krađe podataka Java apleti: ne mogu da pristupe resursima (posebno datotekama) koji se nalaze na

korisnikovom disku,

ne mogu da pristupe svojstvima sistema,

ne učitavaju datoteke,

niti otvaraju mrežnu vezu sa bilo kojim računarom osim onog s kojeg su preuzeti.

Page 62: Predavanja - šesti deo

62

Disk

Datoteke

Java apleti štite rad diska i datoteka

Java aplet

Page 63: Predavanja - šesti deo

63

JavaScript

JavaScript je skript jezik kojim Web dizajneri mogu da automatizuju postupke unutar Web stranice

Skript jezik- jer omogućava pisanje skripta (niza naredbi) koje će Web čitač izvršiti

Omogućava zadavanje grupe naredbi koje će čitač Weba izvršiti –ali se ne koristi za pravljenje spoljnog programa koji se izvršava nezavisno od čitača

Page 64: Predavanja - šesti deo

64

JavaScript

JavaScript se ugrađuje u HTML Web stranice – nije potreban poseban alat; može se koristiti isti program za uređenje teksta koji se koristi za izradu Web stranice

Najpopularniji čitači Weba imaju ugrađenu podršku za JavaScript –posetioci lokacije ne moraju instalirati dodatne programe na svoje računare

JavaScript iskazi postavljaju se između oznaka <script> i </script>, koje će ukazati čitaču Weba da izvrši JavaScript iskaze umesto da prikaže tekst na ekranu

Page 65: Predavanja - šesti deo

65

JavaScript

Iskazi skripta mogu se uokviriti HTML oznakama za komentar (<!--..-->) kako bi se sprečilo da čitači koji ne podržavaju JavaScript na ekranu prikažu iskaze skripta

Čitači koji ne podržavaju JavaScript ignorisaće oznake skripta i sve što se nalazi između početne i završne oznake komentara

Obrnuto, čitači koji podržavaju JavaScript ignorisaće oznake komentara i izvršiti funkciju skripta

Page 66: Predavanja - šesti deo

66

Sakrivanje skripta od čitača koji ne podržavaju JavaScript

<script language=“JavaScript”>

<!--

Document.bgColor=“lightyellow”;

Document.fgColor=“magenta”;

//-->

</script>

Page 67: Predavanja - šesti deo

67

Pomoćni programi

Program koji će čitač pozvati u pomoć kada naiđe na tip podataka koji ne može da obradi

Pod pretpostavkom da se programu može pridružiti MIME tip, svaki program može biti pomoćni program

Kada se objekat postavi na Web dodeljuje mu se HTTP zaglavlje sainformacijama o tipu – te informacije date su u MIME tipu

MIME type se određuje na osnovu ekstenzije fajla (na primer .html, ili .gif). Standardni skup MIME type je definisan u fajlu /usr/local/etc/httpd/conf/mime.types

Page 68: Predavanja - šesti deo

68

Pomoćni programi

Na primer. Svaki dokument načinjen u programu Acrobat trebalo bi da ima pridružen MIME tip application/pdf.

Kada čitač primi datoteku sa određenim MIME tipom, postupiće u skladu sa tim kako je podešen: Snimanje datoteke na disk

Brisanje datoteke

Prosleđivanje datoteke drugom programu

Pomoću MIME tipova i pomoćnog programa autor Web lokacije može da postavi Wordov dokument koji će korisnici moći automatski da preuzmu i pregledaju, ako na računaru imaju instaliran Word

Page 69: Predavanja - šesti deo

69

Dodatni programi za čitače

Dodaci su uvedeni da bi se rešio problem komunikacije i integracije koji je postojao kod pomoćnih programa koji nisu integrisani u čitač Weba već se izvršavaju u zasebnim prozorima i vrlo loše komuniciraju sa čitačem

Dodaci su komponente koje se izvršavaju u okviru čitača, pa se zato mogu lako ugraditi u Web stranu

Lako komuniciraju sa čitačem putem tehnologije kakva je JavaScript

Page 70: Predavanja - šesti deo

70

Dodatni programi za čitače

Proširivanje čitača pomoću dodataka ima i mane – korisnici moraju pronaći i preuzeti dodatak. Instalirati ih i ponovo pokrenuti čitač.

Za mnoge korisnike – komplikovano.

Da bi se olakšao postupak instaliranja neki popularni dodaci poput dodatka za format Flash kompanije Adobe (Macromedia), postali su sastavni deo instalacije samog čitača.

Standardni dodaci – reprodukovanju multimedijskih sadržaja

Primeri: Adobe (Macromedia) Flash, Adobe (Macromedia) Shockwave, Adobe Acrobat, RealVideo..

Page 71: Predavanja - šesti deo

Dinamičko generisanjeHTML-a

Page 72: Predavanja - šesti deo

72

Dinamičko generisanje HTML-a

HTTP protokol

Web čitači su namenjeni za prikazivanje Web stranica koje im isporučuju odgovarajući Web serveri.

Struktura i izgled samih stranica se opisuje jezikom HTML.

Komunikacija između Web klijenta (tj. čitača) i Web servera odvija se po standardnom HTTP (HyperText Transfer Protocol) protokolu.

Page 73: Predavanja - šesti deo

73

Slanje zahteva HTTP klijenta

Prvi red poruke je najvaPrvi red poruke je najvažžnijiniji - on sadrži: komandu koju klijent upućuje serveru (u ovom slučaju to je GET komanda kojom se zahteva

određena datoteka sa Web servera), putanju datoteke u okviru Web sajta servera (/docs.html) i oznaku verzije protokola (HTTP/1.0).

Naredni redovi u poruciNaredni redovi u poruci - dodatne informacije koje server može da iskoristi za svoje potrebe. U ovom primeru:

polje User-Agent predstavlja opis klijentskog softvera (tip i verzija Web čitača i operativnog sistema),

polje Host predstavlja simboličku adresu klijenta, itd.

HTTP klijent HTTP serverGET/docs.html HTTP/1.0User-Agent: Internet Explorer 6.0 (Windows XP)Accept-cookies: yesHost:vps.ns.ac.yu...

Page 74: Predavanja - šesti deo

74

Zadatak servera je da po prijemu zahteva HTTP klijenta odgovori na njega.

U ovom slučaju odgovor servera treba da sadrži traženu datoteku (docs.html), pri čemu je format odgovora takođe definisan HTTP protokolom.

Slanje odgovora HTTP klijentu

Page 75: Predavanja - šesti deo

75

Slanje odgovora HTTP klijentu

HTTP klijent HTTP serverHTTP/1.0 200 OKContent-Type:text/html

<HTML><HEAD>...

Prvi red odgovoraPrvi red odgovora sadrži: oznaku protokola, trocifreni broj koji predstavlja status izvršene operacije

(200) i tekstualni opis tog statusa (OK). - Konstanta 200 označava da je zahtev uspešno izvršen i da se tražena datoteka nalazi u nastavku poruke.

Druge konstante koje se češće sreću su: 404 (tražena datoteka nije pronađena), 407 (pristup datoteci nije dozvoljen), i 302 (datoteka premeštena na drugo mesto).

Page 76: Predavanja - šesti deo

76

Slanje odgovora HTTP klijentu

HTTP klijent HTTP serverHTTP/1.0 200 OKContent-Type:text/html

<HTML><HEAD>...

Naredni redovi u poruciNaredni redovi u poruci sadrže: Content-Type - oznaka tipa sadržaja koji se vraća (standardizovane oznake

propisane u odgovarajućim RFC dokumentima (Request For Comments) - zvanična serija dokumenata koja opisuje tehničke i organizacione detalje Interneta počevši od 1969.god.

Na primer: HTML datoteke imaju oznaku text/html, datoteke sa ASCII tekstom bez formatiranja imaju oznaku text/plain, GIF slike image/gif, JPEG slike image/jpeg, itd.

Jedan prazan red koji razdvaja zaglavlje odgovora od samog sadržaja datoteke.

Page 77: Predavanja - šesti deo

77

Statički i dinamički Web sadržaji

Jedino što klijent može da zatraži od servera je datoteka.

Na serveru je da tu datoteku pronađe (eventualno i modifikuje!) i pošalje klijentu.

Web sadržaji koji se smeštaju na server vidljivi su klijentima kao pojedine datoteke: datoteke mogu biti unapred pripremljene (npr. u editoru kakav je

Macromedia Dreamweaver) i smeštene u fajl-sistem Web servera. Mogu biti i generisane “u letu” po prijemu zahteva klijenta na neki

poseban način;

U tom smislu, Web sadržaje (zapravo, datoteke) možemo podeliti na statičke i dinamičke.

Klijent ne zna da li je datoteka koju je tražio generisana statički ilidinamički.

Page 78: Predavanja - šesti deo

78

Statički Web sadržaji

Statički Web sadržaji su datoteke koje su unapred smeštene u odgovarajući direktorijum fajl-sistema Web servera i spremne su za isporuku klijentima po njihovom zahtevu.

HTTP klijent HTTP server

1) Klijent zahteva fajl

2) Sever učitava fajl iz fajl-sistema i šalje ga klijentu

- Isporuka statičkih sadržaja -

Page 79: Predavanja - šesti deo

79

Dinamički Web sadržaji

Dinamički sadržaji nisu uskladišteni unapred već se generišu za svaki zahtev klijenta posebno.

U ovom slučaju server neće tražiti datoteku u okviru fajl-sistema; server “zna” da je u pitanju dinamički generisana datoteka i pozivaodgovarajući potprogram koji će je generisati.

Najčešće nema potrebe ovako generisanu datoteku čuvati na serveru

HTTP klijent HTTP server

1) Klijent zahteva fajl

2) server generiše fajl i šalje ga klijentu; ne snima ga u svoj fajl-sistem

- Isporuka dinamičkih sadržaja -

Page 80: Predavanja - šesti deo

80

HTTP komunikacija

Ukupna sekvenca aktivnosti klijenta i servera u HTTP komunikaciji

1. klijent otvara konekciju sa serverom

2. klijent šalje zahtev serveru

3. server vraća odgovor

4. zatvara se konekcija

Page 81: Predavanja - šesti deo

81

HTTP komunikacija

Komunikacija između klijenta i servera zasnovana nazahtev/odgovor principu.

Svaki par zahtev/odgovor smatra se nezavisnim od ostalih.

Recimo, u slučaju da prvi klijent pošalje zahtev serveru i dobijeodgovor, zatim drugi klijent pošalje zahtev i dobije odgovor, pa potom ponovo prvi klijent pošalje novi zahtev, nema načina da se ustanovi da je prvi klijent poslao dva zahteva (prvi i treći).

Server svaki zahtev opslužuje nezavisno od ostalih zahteva.

HTTP je stateless protokol: ne omogućava praćenje stanja korisničke sesije između slanja više različitih zahteva.

Page 82: Predavanja - šesti deo

82

Praćenje sesije korisnika

HTTP protokol ne omogućava praćenje sesije korisnika.

Kako bi se ovaj cilj ipak postigao definisano je pomoćno rešenje -mehanizam slanja “kolačića” (cookies) između klijenta i servera

Uveo ga je Netscape Navigator, a kasnije je postao standardan mehanizam za ovu namenu podržan od svih Web čitača i servera.

Šta je jedan cookie zapravo?

Možemo ga shvatiti kao string od tipično 20-30 nerazumljivih znakova koji je namenjen za jednoznačno identifikovanje korisnika na serveru.

Page 83: Predavanja - šesti deo

83

Praćenje sesije korisnika

Prilikom slanja prvog zahteva server će ustanoviti da mu klijent nije poslao cookie kao jednu stavku u zaglavlju zahteva.

U odgovor na taj zahtev server će dodati cookie.

Ukoliko je Web čitač podešen tako da radi sa cookie-ima, on će u svim sledećim zahtevima koje bude slao tom serveru uključiti i cookie, tako da će server moći da prepozna klijenta koga je većranije opsluživao.

Page 84: Predavanja - šesti deo

84

Praćenje sesije korisnika

HTTP klijent HTTP server

1) zahtev + cookie

2) odgovor+cookie

HTTP klijent HTTP server

1) zahtev

2) odgovor+cookie

b) svi sledeći zahtevi sadrže cookie

a) slanje prvog zahteva i prijem odgovora koji uključuje cookie

Page 85: Predavanja - šesti deo

85

Svrha kolačića

Glavna svrha kolačića jeste da sačuva informacije: Oni se uglavnom koriste za čuvanje korisničkog imena i lozinke

– korisnik ne mora da ih unosi svaki put kada pristupi lokaciji

Mogu se koristiti za čuvanje svih podešavanja koja je korisnik zadao kada je poslednji put pristupao lokaciji

Sa programerske tačke gledišta: Kolačići se koriste da reše probleme vezane za upravljanje

stanjem – problem stanja je povezan sa činjenicom da se između dve posete lokaciji server ne seća korisnika

Page 86: Predavanja - šesti deo

86

Upotreba kolačića

Nekim korisnicima se ne dopada kada neko prati njihovo ponašanje na Webu, pa će oni isključiti kolačiće

Da bi se to izbeglo i steklo poverenje korisnika, autori Web lokacije bi trebalo da sačine:

poseban dokument o privatnosti ili

izjavu o upotrebi i tako obaveste korisnika za šta će kolačići biti upotrebljeni

samo jedan kolačić koji će istovremeno i da prati korisnika i da čuva informacije o podešavanjima koja je on zadao – više kolačića zahteva od korisnika niz potvrda, jer svaki mora biti prihvaćen

alternativno rešenje za korisnike koji ne žele da prihvate kolačiće

Page 87: Predavanja - šesti deo

Dinamičko generisanjeHTML-a