Click here to load reader

Objektno orjentirano programiranje - Računarstvo 550 . semestar/Objektno orijentirano programiranje... · PDF fileSOAP •Poziv metode je jednostavan u smislu da developer ne mora

  • View
    247

  • Download
    0

Embed Size (px)

Text of Objektno orjentirano programiranje - Računarstvo 550 . semestar/Objektno orijentirano...

Objektno orjentirano programiranje

Predavanje 10

Objekti u web servisima

Skriptni jezici temeljeni na objektima

Jezici poput Jave i .NET jezika spadaju u kategoriju objektno orijentiranih programskih jezika

C++ takoer ima mogunost koritenja objekata, ali nije nuno koristiti objekte (moemo napisati obini C program koristei C++ kompajler)

Postoji i klasa jezika koji se zovu skriptni jezici: JavaScript, VBScript, ASP, JSP, PHP, Perl i Python programski jezici koji mogu automatizirati i interpretirati izvravanje razliitih zadataka

Objekti i primjena u webu

Klijentska i serverska validacija

Web server Web server

1

3

2

1

2

Serverska validacija Klijentska validacija

Objekti i primjena u webu Pristupa bazama je dozvoljen samo podsredstvom servera zbog

sigurnosnih razloga

Server odluuje koje aktivnosti e dozvoliti, klijent ne moe direktno manipulirati osjetljivim podacima

S aspekta tonosti unesenih podataka potrebno je obaviti validaciju

Klijentska i serverska validacija

Kada radimo validaciju na klijentu manje podataka se treba slati na server to rezultira manjim prometom

Redundantna validacija validacija se obavlja na obje strane (i klijent i server)

Postoje naini da klijent zaobie validaciju i poalje podatke direktno na server

Objekti i primjena u webu

Za slanje podataka na server potrebno je vrijeme

Slanje podataka na server povea koliinu prometa

Slanje podataka na server zauzima serverske resurse

Slanje podataka na server moe potencijalno rezultirati pogrekom

Iz ovih razloga cilj je to vie validacije obaviti na klijentu

Tu do izraaja dolaze skriptni jezici

JavaScript validacija

JavaScript je object-based

Moemo koristiti objekte u JavaScript aplikacija da bi smo dodali vie mogunosti naoj web stranici

HTML je markup jezik koji ne prua inherentne programske mogunosti (npr. ne moemo programirati if uvjetni izraz ili napisati petlju

U ranim danima HTML-a nije bilo mogue obaviti validaciju na klijentskoj strani

Skriptni jezici su to promijenili

Koritenjem funkcionalnosti koje nam pruaju skriptni jezici web stranice mogu izvravati programsku logiku

Validacijski program

function validacijaBroja(tForm) {

if (tForm.result.value != 7 ) {

this.alert (nije 7!);

} else {

this.alert (Tono. Broj je 7);

}

}

Validate

JavaScript objekti

JavaScript objekti predstavljaju spreminke (eng. container) za imenovane vrijednosti (eng. named values)

var car = {type:"Fiat", model:500, color:"white"};

Metode objekata

Metode se spremljene u svojstva kao definicije funkcija

Property Property Value

firstName John

lastName Doe

age 50

eyeColor blue

fullName function() {return this.firstName + " " + this.lastName;}

JavaScript objekti

Pristupanje svojstvima objekata

objectName.propertyName

objectName[propertyName]

Pristupanje metodama objekata

objectName.methodName()

this pokaziva referira trenutni objekt

JavaScript ima i odreeni broj ugraenih tipova objekata, npr. Date

Svaka instanca objekta Date ima ugraene gotove metode kao getHours() ili getMinutes()

Objekti na web stranicama

Mnogi tipovi objekata mogu biti direktno ugraeni u HTML dokument

tag slui za ukljuivanje objekata

Ukljuivanje flashobjekta

Objekti na web stranicama

tag se moe koristiti za multimedije u web stranice (audio, video, Java applet, PDF, Flash)

tag se moe koristiti za prosljeivanje parametara plugin-ukoji je ugraen u object tag

Web servisi

Web servisi omoguavaju proces komunikacije izmeu klijenta i servera koritrenjem XML poruka i SOAP (Simple Object Access Protocol) standarda

SOAP je komunikacijski protokol za slanje poruka putem interneta

Neovisan je o platformama i jeziku i temeljen na XML-u

RPC (Remote Procedure Calls) su aktualni od poetka evolucije distribuiranih sustava

RPC su komunikacijski proces koji omoguava pozivanje servisa sa drugog raunala na mrei

Kada su sustavi u pravom smislu rijei objektno orijentirani RPC se moe zvati i RMI (Remote Method Invocation)

RPC

Sekvenca dogaaja tijekom RPC-a:

1. Klijent poziva klijent stub. Lokalni poziv procedure, parametri su stavljeni na stog

2. Stub pakira podatke u poruku i alje poruku marshaling

3. Klijentov lokalni OS alje poruku na server

4. Server stavlja poruku na server stub

5. Server stub odpakira poruku

6. Server stub poziva serversku proceduru sa tim podacima. Odgovor se alje klijentu na isti nain

SOAP

Poziv metode je jednostavan u smislu da developer ne mora znati da li se radi o lokalnom ili udaljenom (eng. remote) servisu

Primarna motivacija za SOAP je se mogu izvoditi pozivi procedura preko HTTP-a koritenjem XML-a

Ukratko SOAP je temeljen na XML-u i radi se o protokolu za distribuirane aplikacije

SOAP primjer

Zahtjev

POST /InStock HTTP/1.1Host: www.primjer.orgContent-Type: application/soap+xml; charset=utf-8Content-Length: nnn

Tesla

SOAP primjer

Odgovor

HTTP/1.1 200 OKContent-Type: application/soap+xml; charset=utf-8Content-Length: nnn

100.4

REST

Representational State Transfer

REST je iroko rairen i smatra se jednostavnijom alternativom SOAP-u

Temelji se na HTTP protokolu

Radi se o stilu arhitekture umreenih aplikacija. Umjesto koritenja kompleksnih mehanizama koristi se jednostavni http za pozive meu raunalima

RESTful aplikacije koriste http zahtjeve za CRUD (create/read/update/delete) operacije

REST nije standard niti postoji W3C preporuka za REST

REST

S aspekta programiranja REST je jednostavnija alternative web servisima i RPC-u

REST je:

neovisan o platformi

neovisan o jeziku

mogue koristiti uz prisutnost firewall-a

Primjer

Koritenje web servisa i SOAP

Aplikacija telefonskog imenika gdje imamo ID korisnika

SOAP verzija

Sve se alje http POST zahtjevom serveru

Odgovor e biti XML file koji e biti ugraen u SOAP response envelope

24123

Primjer REST

Zahtjev izgleda ovako:

http://www.trazilica.com/imenik/PodaciOKorisniku/24123

URL se alje jednostavnim http GET zahtjevom

Povratna informacija su isti podaci, nisu ugraeni u neki format

Ovo je jednostavnija i neodreenija vrsta komunikacije

Kada koristimo SOAP moramo koristiti biblioteke za stvaranje zahtjeva i ona parsirati odgovor koji dobijemo

REST moemo testirati direktno kroz browser

http://www.trazilica.com/imenik/PodaciOKorisniku/24123

REST vs SOAP

Analogija sa pismom i razglednicom

SOAP koristimo kao pismo koje stavljamo u omotnicu

REST koristimo kao razglednicu bez omotaa

REST moe biti siguran kao i SOAP koristei https

Bez enkripcije oba protokola su nesigurna

Primjer koritenja vie parametara

http://www.trazilica.com/imenik/PodaciOKorisniku?ime=Ivan&prezime=Ivic

U slaju da elim poslati mnogo parametara ili binarne podatke koristimo POST zahtjeve

http://www.trazilica.com/imenik/PodaciOKorisniku?ime=Ivan&prezime=Ivic

REST

Nije nuno objektno orijentiran

moe kao odgovor vraati i XML ali to esto nije sluaj

Jedna od prednosti koritenja XML-a je sigurnost u odreivanju tipova podataka

Ne moramo koristiti dedicirane biblioteke ve u veina sluajeva moemo koristiti ugraene funkcionalnosti programskih jezika

Dio 2 - Debugging

Debugging proces identifikacije uzroka greke i ispravljanje pogreke

Na nekim projektima proces debagiranja uzima i do 50% ukupnog vremena razvoja

Za veinu programera debagiranje predstavlja najtei dio razvoja softvera

Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it. Brian W. Kernighan

Razlike u uinkovitosti uklanjanja pogreaka

Najbolji nain izbjegavanja pogreaka nije debagiranje ve kvalitetan razvoj softvera

Ne trebamo birati izmeu kvalitete, cijene i vremena oni idu zajedno

Izvor: Some psychological evidence on how people debug computer programs (Gould 1975)

Tri najbra programera Tri najsporija programera

Prosjeno vrijeme debagiranja (u

minutama) 5.0 14.1

Prosjeni broj nepronaenih

defekata 0.7 1.7

Prosjean broj defekata uvedenih

ispravljenjem drugih defekata 3.0 7.7

Defekti kao prilike

to znai imati defekt u programu?

ne razumijemo tono to program radi

Programiranje pokuaja i pogreke mijenjamo program dok ne dobijemo toan rezultat bez da u potpunosti razumijemo to se odvija u programu

Ovakav pristup e vrlo vjerojatno prouzroiti pogreke

Postoje dobre prakse za proces debagiranja:

Defekti kao prilike

Naui vie o programu na kojem radi bolje razumijevanje problema vodi lakem rjeavanju defekata

Naui vie o pogrekama koje radi u budunosti e bolje izbjegavati ili uoiti takve pogreke

Razmatraj kvalitetu koda s aspekta njegove itljivosti irazumljivosti

Analiziraj svoj metode popravljanja defekata obino se drimo ustaljenih mehanizama i prakse

Pogreni pristup debagiranju

Search related