Professional Documents
Culture Documents
Ime i prezime:
Jakov Semenski
Naslov rada:
Saetak:
Sadraj
Skraenice .................................................................................................................................. 7
Popis stranih izraza..................................................................................................................... 8
Uvod ........................................................................................................................................... 9
1.
2.
3.
4.
1.2.
Komunikacija ........................................................................................................... 14
1.2.1.
1.2.2.
1.3.
1.4.
2.2.
Parlay ................................................................................................................................ 22
3.1.
3.2.
3.3.
3.4.
PARLAY X .............................................................................................................. 23
3.4.1.
3.4.2.
3.4.3.
4.1.1.
4.1.2.
SOAP poruka.................................................................................................... 31
4.2.
5.
WSDL....................................................................................................................... 32
4.2.1.
4.2.2.
5.1.1.
6.
Servlet............................................................................................................... 35
5.2.
5.3.
5.3.1.
5.3.2.
Implementacija ......................................................................................................... 43
6.1.1.
6.2.
6.2.1.
6.3.
Tehnologije....................................................................................................... 43
6.3.1.
Arhitektura ....................................................................................................... 46
6.3.2.
6.3.3.
6.3.4.
Model ............................................................................................................... 55
6.3.5.
6.3.6.
6.3.7.
6.4.
6.4.1.
Arhitektura ....................................................................................................... 65
6.4.2.
6.4.3.
6.4.4.
6.4.5.
Model ............................................................................................................... 79
6.5.
6.5.1.
6.5.2.
6.6.
Zakljuak .................................................................................................................................. 85
Literatura .................................................................................................................................. 86
Skraenice
CORBA Common Object Request Broker Architecture
DCE
DTD
HINA
J2EE
JDBC
JSP
JVM
MMS
MVC
PHP
Hypertext Preprocessor
RMI
RPC
SDK
SDP
SMS
SMTP
SOAP
SQL
UDDI
UML
WAP
WSDL
XML
omotnica
form
forme
header
zaglavlje
fault
greka
gateway
provide
omoguiti
session
sesija
Uvod
Komunikacijske tehnologije danas u velikoj mjeri odreuju nain ivota i uzrokuju mnoge
drutvene promjene. U uvjetima globalnog trita tehnoloke inovacije su gotovo istovremeno
prisutne u svim dijelovima svijeta. Deregulacijom telekomunikacijskog trita otvorena je
mogunost za privatno poduzetnitvo i pravo trino natjecanje u podruju komunikacija, a to
je omoguilo pojavu novih operatera, usluga i tehnologija.
Mobilna telefonija oduzima korisnike fiksnoj telefoniji, pa iako je prijenos glasa i dalje
najisplativija usluga, vodei operateri ulau velika sredstva u izgradnju mrenih platformi
koje podravaju daljnji razvoj i proirenje dananjih mrea novim hardverskim i softverskim
elementima. Ti elementi omoguuju jednostavno kreiranje novih usluga te koritenje
otvorenih standardnih tehnologija, poput web usluga, uz smanjenje trokova poslovanja.
Mobilna tehnologija u znatnoj mjeri utjee na svakodnevni ivot velikog broja ljudi. U
Hrvatskoj je vie od 3,5 milijuna korisnika mobilnih telefona, a sve je vie i operatera koje
nude usluge mobilne telefonije. Konkurencija meu operaterima potie razvoj usluga koje
korisnicima stoje na raspolaganju.
Mobilne usluge su idealan kanal putem kojeg se korisnicima moe ponuditi jedinstven pristup
raznim informacijama i podacima, ali i mogunost da i sami razvijaju usluge. Razvojni ciklusi
novih usluga su sve krai, a razlike u uslugama namijenjenim poslovnim ili malim
korisnicima su sve manje.
Mobilni pristup elektronikoj poti, sinkronizacija s PC raunalima, WiFi moduli, koritenje
internetskih preglednika postali su standardni zahtjevi mobilnih korisnika, stoga operateri sve
vie surauju s velikim hardverskim i softverskim tvrtkama i nude nove naine za koritenje
dodatnih usluga.
10
1. Osnovni koncept
Cilj ovog rada je napraviti SMS/MMS Gateway sustav za eksperimentalno slanje i primanje
SMS, MMS, WAP Push i binarnih poruka razliitim kanalima izmeu raunalnog sustava i
mobilnog ureaja korisnika, uz mogunost administriranja i kontrole pristupa korisnika te
mjerenja i ograniavanja broja poslanih poruka.
Ovaj projekt je osmiljen kako bi osim slanja standardnih poruka korisnicima omoguio
definiranje vlastitih poruka, proirenja postojeih i stvaranje novih usluga. Korisnicima daje
potpunu slobodu kod naina pristupa infrastrukturi za slanje i primanje poruka te odabiru
tehnologije za realizaciju pristupa SMS/MMS Gatewayu.
Prednosti ovakvog sustava: korisniku se, osim postojeih formata za slanje poruka, nudi
mogunost definiranja vlastitih poruka kao i stvaranje novih usluga korisnicima mobilnih
ureaja.
Slika 1.1 prikazuje radnu shemu SMS/MMS Gatewaya, odnosno razmjenu poruka korisnika
raunalnog sustava s korisnicima mobilnih ureaja.
R
n
je
m
az
a
ka
ru
po
11
Korisnici raunalnog sustava alju SMS/MMS poruke Gatewayu kroz odreene kanale
koristei vlastite ili ve postojee aplikacije (web preglednik, e-mail ) uz njima pripadajue
protokole (HTTP, SOAP, IMAP, itd.). Gateway provjerava korisnike podatke i ukoliko
korisnik ima prava za slanje, poruka se prosljeuje drugim kanalima prema operateru
telekomunikacijskih usluga (Web servis, gsm modem, itd.). Svaki kanal prema operateru ima
svoj pretplatniki broj tako da poruka poslana od vie korisnika kroz isti kanal prema
operateru ima jednak izlazni broj.
Na slian nain provodi se i primanje poruka. Korisnici mobilnih ureaja alju poruku na
jedan od pretplatnikih brojeva kanala SMS/MMS Gateway. Gateway provodi filtriranje
poruka prema broju s kojeg je poslana i prema sadraju poruke.
Korisnik 1
Tekst: AAA
Od: 09133333
Tekst: AAA
Primanje poruka
Korisnik 2
Tekst: CCC
Od: 09155555
...
Slanje poruka
SMS/MMS Gateway
BROJ
09133333
09144444
TEKST
CCC
Korisnik N
Tekst: BBB
Od: 09144444
KORISNIK
KORISNIK
2
Broj: 09133333
Tekst: BBB
Broj: 09144444
Tekst: CCC
Broj: 09155555
12
Popis filtera sadran je u tablici filtera koja se aurira pri unosu svakog korisnika. Nakon
filtriranja, poruka se prosljeuje korisniku po kanalu (web servis, e-mail, itd.) koji je takoer
posebno definiran za svakog korisnika
Operater
telekomunikacijskih
usluga
Korisnik
HTTP posluitelj
slanje poruka
Kanal za
prijem poruka
Kanal za
slanje poruka
slanje poruka
Kanal za
prijem poruka
primanje poruka
Kanal za
slanje poruka
Logika za administriranje
Web
preglednik
Administrator
13
podrava slanje SMS, MMS, WAP Push i binarnih poruka razliitim kanalima
omoguuje konfiguriranje sustava preko web suelja: izlaznih i ulaznih kanala i ostalih
parametara sustava
omoguuje nadzor rada sustava preko web suelja u realnom vremenu (registrirani
klijenti za slanje i prijem poruka, obavljene transakcije)
1.2. Komunikacija
1.2.1.
14
Slanje poruka
Slanje poruka vri se pozivom web servisa na strani VIPneta.
Vipnet je FER-u omoguio pristup sljedeim uslugama
SMS
Slanje
mogue slati jednu poruku na vie korisnika odjednom
Slanje s notifikacijom
ukoliko se poruka alje kroz ovo suelje, korisnik smije slati poruku jednom
korisniku pri emu VIPnet alje dojavu o isporuci poruke
Binarne poruke
MMS
Slanje
mogue slati na vie korisnika odjednom
mogue dodati neogranien broj priloga razliitog formata
WAP Push
Slanje
mogue slati prema vie korisnika
15
Primajne poruka
Primanje poruka se takoer izvodi putem web servisa, no u ovom sluaju VIPnet poziva web
servis na strani SMS/MMS Gatewaya. Zbog toga je implementiran web servis na HTTP
posluitelju koji slua dolazee poruke SMS-a, MMS-a i statusa poslane poruke od strane
VIPnet Gatewaya. Usluga primanja MMS trenutno nije dostupna, ali je implementirana.
1.2.2.
16
SMS/MMS Gateway
Baza
podataka
Operater
telekomunikacijskih
usluga
Korisnik
HTTP posluitelj
Logika za slanje poruka
slanje poruka
slanje poruka
Web servis
Web servis
GSM modem
slanje i primanje
poruka
slanje poruka
Preglednik
elektronike
pote
Web servis
primanje poruka
Logika za administriranje
Web
preglednik
Administrator
17
SMS sustav ine elementi hardverskih sklopova i odgovarajue softverske podrke koji
zajedno omoguavaju razmjenu poruka izmeu raunalnog sustava i mobilnog ureaja
korisnika.
18
SDP slui kao integracijski sloj izmeu resursa mree, vanjskih javnih usluga,
vanjskih partnera, razliitih ureaja te na posljetku krajnjih korisnika.
19
Elementi koji zajedno ine jedno cjelovito rjeenje za isporuku usluga su:
Platforma za izvoenje usluga (engl. Service Execution Platform) je telekomunikacijski
aplikacijski posluitelj. To je raunalna platforma na kojoj se izvode same usluge tj.
aplikacije. Ova komponenta je najee bazirana na J2EEi ili .NET tehnologiji (raunalno
okruenje unutar kojeg se u realnom vremenu izvodi niz odvojenih .NET ili EJB procesa
koji meusobno komuniciraju putem web usluga).
Sloj za povezivanje s mreom (engl. Network Abstraction Layer) je integracijski sloj koji
prua pristup do osnovnih mrenih usluga (upravljanje pozivima, naplata, autorizacija
korisnika, SMS, MMS, lokacijske usluge). Glavni zadatak ovog sloja je maskirati
20
aplikacije,
zapravo
se
pojavljuje
itava
nova
industrija
koja
koristi
21
3. Parlay
1998 godine je osnovana organizacija Parlay Group, iji je osnovni cilj standardizacija
programskih suelja telekomunikacijskih mrea. Do sada su proizveli itav niz preporuka za
standardizaciju programskih suelja (engl. API) koja omoguuju vanjskim partnerima
koritenje usluga telekomunikacijske infrastrukture.
Najznaajnija Parlay suelja ukljuuju kontrolu poziva, konferencije, interakciju sa
korisnikom (audio i tekstualna komunikacija) i naplaivanje. Suelja su specificirana u
CORBA Interface definition language i WSDL-u. Koritenje CORBA programskog jezika
omoguuje komunikaciju na daljinu izmeu aplikacije na korisnikoj strani i Parlay
Gatewaya. Najvea uloga suelja jest da bude neovisan o tehnologiji koju koriste
telekomunikacijske mree(e.g. CDMA vs GSM vs landline SS7).
2003. godine Parlay Group je definirala skup programskih suelja - nazvan Parlay X. To je
najire prihvaen standard potpuno baziran na tehnologiji web usluga. Suelje je
pojednostavljeno, namijenjeno veem broju korisnika.
Parlay grupa usko surauje sa ETSI i 3GPP, a unutar 3GPP-a Parlay je dio Open Services
Architecture, pa se esto koristi izraz Parlay/OSA
CORBA/IDL
Java
WSDL
Parlay Framework
22
Vano je za operatora telekomunikacijske mree da zna kako koritenje bilo kojeg Parlay
suelja ne moe utjecati na sigurnost i integritet mree. Uloga Parlay/OSA Framework jest da
omogui mrei nain za verifikaciju aplikacija koje koriste Parlay/OSA API. Framework
jednako tako dozvoljava aplikacijama da otkriju mogunosti mree i omoguuje upravljake
funkcije u sluajevima pojave greaka i preoptereenosti.
3.4. PARLAY X
Parlay Group je definirala skup programskih suelja baziranih na web uslugama, nazvan
Parlay X. Web usluge su prvenstveno razvijene kao B2B84 integracijski mehanizam, dok je
CORBA zamiljena kao rjeenje za povezivanje aplikacija unutar tvrtke. Web usluge se
baziraju na HTTP protokolu i tako jednostavno prolaze kroz korporativne vatrozide, a
podrava ih i veina velikih proizvoaa softvera. Izuzetno prikladno za razvoj jednostavnijih
web aplikacija koje putem web usluga koriste telekomunikacijske resurse. Uslijed velikog
porasta popularnosti web usluga na Internetu, i sam Parlay X je dobio na vanosti. Mogue ga
je zamisliti kao jednostavan prikaz osnovnih komunikacijskih funkcionalnosti u obliku web
usluga kao to su slanje i primanje SMS-a i MMS-a, lociranje korisnika, poziv prema treoj
osobi (third party call, naplaivanje, notifikacija poziva, itd.). Ove web usluge su zamiljene
kao organizirane skupine metoda koje predstavljaju razliite grupe telekomunikacijskih
23
Parlay X
Applications
Parlay
Applications
Increasing
abstraction
Parlay X APIs
Parlay X Web Services
Parlay APIs
Parlay Gateway
Network Protocols
(e.g. SIP, INAP etc)
Network Elements
Slika 3.1 prikazuje odnose izmeu Parlay X suelja i Parlay programskog suelja (API).
Aplikacijom se smatra bilo koji softver koji putem Parlay X web usluga komunicira s Parlay
platformom. Aplikacija moe biti Java program, .NET komponenta, PHP program ili obina
XML skripta. Te aplikacije mogu biti pisane u bilo kojem programskom jeziku i izvoene na
bilo kojoj raunalnoj platformi sve dok potuju definiranu sintaksu web usluga i pravilno
interpretiraju rezultate izvoenja ovih web usluga. Skupina web usluga nazvana Parlay X je
samo pojednostavljeni prikaz nieg Parlay programskog suelja direktno integriranog s
mreom.
24
Interakcija izmeu aplikacija koje koriste Parlay X web usluge i posluitelja kojim je
implementirana Parlay platforma, vri se putem izmjene standardnih XML podataka
tj. SOAP poruka.
Ove web usluge su samo programska suelja i kao takve ne pruaju funkcionalnosti
za autorizaciju, autentifikaciju ili naplatu koritenja mrenih resursa. Koritenjem
ve prethodno navedenih mehanizama u arhitekturi usmjerenoj uslugama, nove
aplikacije preko Parlay suelja mogu pristupati specijaliziranim IT sustavima u mrei
operatera gdje te funkcije i prirodno pripadaju: sustav naplate, sustav za kontrolu
pristupa, aktivaciju usluga i ostali sustavi za potporu poslovanju.
3.4.1.
Slika 3.2 prikazuje jedan primjer koritenja SMS web servisa za slanje SMS poruke iz
aplikacije za pretplatnika na uslugu o vremenskoj prognozi. Aplikacija poziva web servis da
preuzme informacije o vremenu te ih proslijedi pretplatniku (1, 2) i koristi Parlay X suelje za
koritenje SMS web servis metoda za slanje SMS-a (3). Nakon pozivanja, SMS web servis
poziva Parlay X API metodu (4) koristei Parlay/OSA SCS-SMS suelje. Dalje operator
proslijeuje poruku pretplatniku (5, 6).
25
Weather
Info
Info meteo
Web
Service
Web Service
SMS Web
SMS-X
Service
component
Parlay X I/F
SCS-SMS
SCS-SMS
4
Parlay API
1
3
..
getMeteoInfo()
..
Retrieve
user Profile
.
2
Parlay Gateway
5
You have
a new SMS
Weather info
SMS-C
SMS-C
Mobile network
SendSms (
Weather info
..,,,)
User
profile
3.4.2.
Slika 3.3 prikazuje postupak primanja SMS-a koritenjem SMS web servisa. Aplikacija prima
poziv Parlay X web servisa za prihvaanje SMS-a poslanog od pretplatnika (1, 2). SMS
poruka sadri e-mail adresu osobe koju pretplatnik eli nazvati. Aplikacija poziva Parlay
suelje (3) prema Third Party Call web servisu zbog realizacije traenog zahtjeva (4).
4
Third Party
Call
3PC-X
Web Service
component
SMS
Web
SMS-X
Service
component
Parlay X I/F
3
Mobile network
Parlay X I/F
SOAP
SOAP
Call
mary@company.com
..
2
notifySmsReception()
{..
Retrieve
user number
.
2
User
profile
makeACall(..,,,)
26
3.4.3.
Stock
StockQuote
Quote
Web
WebService
Service
Multimedia
Message
MMSCWeb
-X
Service
component
Parlay X I/F
4
MMS-C
MMSC
MM7 VASP
Interface
1
3
User
profile
..
content1 =get StockQuote ()
..
Retrieve
user Profile
.
messageId= sendMessage( content )
.
status= getMessageDeliveryStatus
(messageId)
if status=Message_Waiting
.
fi
Mobile network
6
27
4. WEB SERVISI
Web usluge postaju sve znaajnije pri stvaranju apstraktnog suelja izmeu mrenih resursa i
vanjskih partnera. Temelje se na iroko prihvaenim industrijskim standardima poput HTTP-a
i XML-a. Prilikom objavljivanja mrenih resursa vanjskim partnerima, tehnologija web
usluga se ponovno namee kao logian izbor je se takva komunikacija odvija upravo putem
Interneta i standardnog HTTP-a.
Web servisi su aplikacije (komponente ili moduli) koje egzistiraju u distribuiranim
okruenjima poput Interneta ili privatnih LAN-ova, objavljuju se na jedinstvenoj lokaciji i
nude kao odreene usluge. Kako bi usluga bila kompletna nudi se i potpuna specifikacija
suelja, poslovnih zahtjeva, kvaliteta servisa, pravnih i financijskih uvjeta koritenja. Resursi
se adresiraju primjenom URL-a koji vraa informaciju korisniku koji je eli koristiti
Njihovo funkcioniranje temelji se na request-response paradigmi gdje request i response
mogu biti dio jedne operacije (synchronous model) ili se mogu pojaviti odvojeno
(asynchronuous model). Komunikacijski model se temelji na postojanju tzv. service providera
i service requestora koji komuniciraju koritenjem SOAP protokola tj. XML preko HTTP-a.
28
Web servis usluge opis suelja nude dovoljno detaljno kako bi se mogla izgraditi korisnika
aplikacija koja bi ih koristila. Navedeni opis ponuen je u obliku XML dokumenta koji je
pisan u WSDL jeziku.
trenutno ukljueni HTTP, SMTP i FTP, te novi protokoli kao to je BEEP (engl. Blocks
Extensible Exchange Protocol, skraeno BEEP)
XMLMessaging - nivo odgovoran za razumijevanje poruka za razmjenjivanje koje se
implementiraju
XML
formatu
trenutno
se
koristi
XML-RPC
(engl.
29
4.1.1.
protokola, iako se najee koristi vezan uz HTTP (engl. Hypertext Transfer Protocol)
protokol. HTTP protokol je podran na veini platformi i kao takav osnovni je aplikacijski
protokol globalne mree. Veina kompanija posjeduje raunalnu mrenu infrastrukturu koja
podrava HTTP protokol, kao i strunjake koji poznaju HTTP protokol.
HTTP povezivanje se koristi jer podrava tekstualnu komunikaciju porukama (GET,
POST) to pridonosi jednostavnosti koritenja SOAP poruka te omoguava slobodnu
komunikaciju koritenjem porta 80 tako da se mogu izbjei problemi propusnosti vezani za
vatrozidove. Komunikacija se takoer odvija putem HTTP POST poruka, samo to se klijent i
server trebaju dogovoriti kako prikazati podatke koje funkcija prima i vraa
Najvanija znaajka SOAP protokola je jednostavna implementacija protokola na nizu
sklopovskih i programskih platformi. SOAP protokol je sastavni dio sustava zasnovanog na
web servisima. Arhitekture sustava zasnovanih na uslugama poput DCE (engl. Distributed
Computing Environment) arhitekture ili CORBA (engl. Common Object Request Broker
Architecture) arhitekture koriste mnogo zamrenije komunikacijske protokole. Najvei
30
4.1.2.
SOAP poruka
SOAP poruka je XML dokument zadanog formata moe prenositi parametre koje treba
predati programskom bloku na obradu ili rezultate obrade podataka.
Ovaj oblik primjene SOAP specifikacije naziva se SOAP RPC (engl. SOAP Remote
Procedure Call). Uz SOAP RPC, SOAP specifikacija previa upotrebu SOAP poruka za
prijenos dokumenata.
SOAP poruka mora zadovoljavati nekoliko pravila:
SOAP poruka mora biti ispravno formatirani XML dokument i koristiti SOAP
omotnicu i SOAP XML prostor imena;
Obavezna jer identificira XML dokument kao SOAP poruku. Omotnica koristi
xmlns:soap podruje imena (engl. namespace) i uvijek mora imati vrijednost
http://www.w3.org/2001/12/soap-envelope koja definira omotnicu kao SOAP
omotnicu.
Definira okosnicu za odreivanje onoga to se nalazi u poruci, tko je treba
koristiti i kako.
Zaglavlje (engl. header)
31
4.2. WSDL
WSDL (engl. Web Services Definition Language, skraeno WSDL) je opisni jezik pomou
kojega se opisuju suelja web servisa. Opis suelja servisa je XML dokument pisan po
pravilima WSDL jezika, a ukljuuje informacije o skupini prihvatljivih SOAP poruka i o
njihovom prijenosu. Budui da su WSDL dokumenti zasnovani na XML-u, oni su pogodni za
itanje, pisanje ili mijenjanje koritenjem aplikacija koje imaju mogunost obrade XML
dokumenata.
Opis oblika poruka propisan je XML Schema dokumentom, kojim se propisuje ustrojstvo,
sadraj i smisao drugih XML dokumenta, a kojeg su razvili Microsoft i IBM u svrhu
definiranja XML poruka, operacija, te mapiranja prema koritenim komunikacijskim
protokolima. Operacije i poruke su definirane apstraktno tako da omoguuju koritenje
razliitih formata poruke i mrenih protokola.
WSDL dokument definira:
oblik poruka,
web servise u terminima krajnjih toaka (endpoints) koje komuniciraju XML
porukama,
protokol kojim se mora komunicirati sa uslugom,
32
suelje usluge,
dovoljan je za stvaranje korisnikog programa potroaa usluge.
Types
Message
Operation
Port type
- skup operacija koje podrava jedna ili vie pristupnih toaka Web
usluge
Binding
Port
Service
4.2.1.
Web servisi komuniciraju porukama koje se grade u skladu sa SOAP protokolom. Poruka je
spremna za slanje kada je u obliku SOAP omotnice. SOAP omotnica je oblik poruke koji
putuje raunalnom mreom i sastoji se od SOAP zaglavlja (engl. SOAP header) i tijela SOAP
poruke (engl. SOAP body). Zaglavlje nije nuan dio SOAP omotnice dok je tijelo SOAP
poruke nuan dio SOAP omotnice jer sadri SOAP poruku u XML obliku.
Oblik zapisa podataka koji koristi SOAP protokol je XML jezik. Mehanizam kojim se
kodiraju podaci proiriv je i mogue ga je navesti u svakoj SOAP poruci. Ako se gradi SOAP
poruka za prijenos poziva udaljene funkcije ili za prijenos rezultata izvoenja udaljene
funkcije (engl. Remote Procedure Call SOAP) tada tijelo poruke sadri ulazne parametre
funkcije ili izlazne vrijednosti poziva funkcije. Za kodiranje podataka u ovom obliku SOAP
poruke koristi se jednostavno XML kodiranje. Ako se gradi poruka za prijenos XML
33
dokumenta (engl. Document Style SOAP) tada se podaci zapisuju u skladu sa odreenim XML
Schema dokumentom.
SOAP protokol neovisan je o prijenosnom protokolu nie razine, ali postoje veze SOAP
protokola i veine prijenosnih protokola nie razine poput HTTP, SMTP, POP3, IMAP, JMS i
dugih protokola.
Proirenja SOAP protokola mogu se ostvariti preko SOAP zaglavlja. SOAP zaglavlje moe
sadravati informacije vezane uz siguran prijenos podataka, dodatke o cjelovitosti slijeda
operacija, oznake sljednica ili informacije o upravljanju prijenosom poruka.
4.2.2.
Opisni oblik funkcionalnosti koristi WSDL dokumente za opis suelja XML Web usluge.
WSDL opis usluge mora sadrati tri dijela: apstraktni dio (to), nain povezivanja sa uslugom
(kako) i nain izvedbe usluge (gdje). Dijelovi opisa mogu biti podijeljeni u vie dokumenata
kako bi se poveale mogunosti ponovnog koritenja dijelova opisa.
Apstraktni dio WSDL dokumenta opisuje tip usluge. Vie pruatelja usluga moe nuditi jedan
tip usluge. U ovom dijelu definirano je logiko suelje XML web usluge. Logiko suelje
XML web usluge opisuje niz operacija koje usluga nudi. Za svaku operaciju definirane su
ulazne i/ili izlazne SOAP poruke koje se izmjenjuju, oblik svake SOAP poruke i tip podataka
koji se koristi za svaki element u SOAP poruci.
Dio WSDL dokumenta koji opisuje nain povezivanja sa uslugom definira oblik veze
logikog suelja sa skupom prijenosnih protokola. Oblik veze odreuje hoe li poruka biti
graena u obliku poziva udaljene funkcije ili u obliku za prijenos XML dokumenta. Oblikom
veze logikog suelja i skupa prijenosnih protokola odreen je nain kodiranja poruke, izbor
XML Schema dokumenta za konstrukciju SOAP omotnice, sadraj zaglavlja SOAP omotnice
i prijenosni protokol koji se koristi.
Dio WSDL dokumenta koji opisuje nain izvedbe usluge odreuje skup prikljunica usluge
preko kojih se usluga moe koristiti. Svaka prikljunica moe koristiti poseban nain
povezivanja sa uslugom. Proizvoai mogu na ovaj nain ponuditi vie razliitih naina
koritenja jedne usluge.
34
posluiteljima. Iako je iroko koritena, tehnologija CGI skripata ima mnogo nedostataka,
ukljuujui i ovisnost o platformi i nedostatak skalabilnosti. Kako bi se rijeili ti nedostaci,
kreirana je tehnologija Java servleta i JSP (engl. Java Server Pages) kao prenosiv nain
pruanja dinamikih sadraja orijentiranih prema korisniku. Tehnologija servleta predstavlja
posluiteljsku stranu tehnologije koja je postala standard za razvoj komercijalnih web
aplikacija, a jednostavna je za uenje i razvijanje novih aplikacija. Efikasnim programiranjem,
servleti i JSP odjeljuju prezentaciju i kontrolu nad podacima, takav model programiranja zove
se MVC arhitektura (engl. Model View Controller, skraeno MVC).
Servlet
Servleti su Java programi, odnosno Java klase koje proiruju funkcionalnost servera i web
aplikacija. Ponaaju se kao posrednik izmeu zahtjeva koji dolazi od strane Web
pretraivaa ili drugog HTTP klijenta i baza podataka ili drugih aplikacija na HTTP serveru.
C
JD B
SM
T
...
Sl 5.1 Uloga posrednika
35
Program klijenta koji eli pristupiti web serveru moe biti napisan u bilo kojem programskom
jeziku, najee je to web preglednik, pristupa preko programskog modela zahtjev-odgovor
(engl. request-response). Web server prosljeuje zahtjev servletu koji procesira zahtjev,
dinamiki formira odgovor koristei informacije iz klijentovog zahtjeva zajedno s podacima
prikupljenim iz drugih izvora (drugi servleti, dijeljeni objekti, baze podataka ) i preko web
servera alje odgovor natrag klijentu.
Prednosti u odnosu na CGI:
brzina
kljuna prednost Java Servlet tehnologije je brzina,
za razliku od CGI programa, servleti se jednom uitavaju u memoriju i izvode
iz memorije nakon poetnog uitavanja,
serveti se stvaraju kao niti (engl. thread), i po prirodi su vienitni.
neovisnost o platformi (portabilnost)
Java servleti se mogu pokretati na bilo kojem web serveru koji podrava
servlete
Proirivost
imaju sve prednosti Jave i mogu se proiriti iz postojeih klasa
sigurnost
upravljanje memorijom
rukovanje iznimkama
servleti nasljeuju svojstva i sigurnost koje omoguuju web servisi
Struktura servleta
Svaki HTTP servlet proiruje apstraktnu klasu HttpServlet iz paketa javax.servlet.http. Ako
servlet nije namijenjen radu s HTTP protokolom (to je mogue) onda se kreira proirivanjem
apstraktne klase GenericServlet iz paketa javax.servlet.
Klasa HttpServlet proiruje GenericServlet koja pak implementira suelje Servlet.
36
init
service
destroy
Klasa HttpServlet prerauje metodu service iz suelja Servlet tako da moe razlikovati
razliite tipove zahtjeva web preglednika. Najei su GET i POST. Za njihovo tretiranje
HttpServlet klasa definira metode doGet i doPost koje poziva service metoda. Ona odreuje
tip zahtjeva i poziva ove dvije metode (odnosno druge, za druge tipove zahtjeva).
doGet
doPost
Druge metode klase HttpServlet su: doDelete, doHead, doOptions, doPut i doTrace.
Metode doGet i doPost dobivaju objekte koji implementiraju suelja HttpServletRequest i
HttpServletResponse koja omoguavaju interakciju izmeu klijenta i servera.
HttpServletRequest
zahtjevu klijenta.
37
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String docType =
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " +
"Transitional//EN\">\n";
out.println(docType +
"<HTML>\n" +
"<HEAD><TITLE>Hello</TITLE></HEAD>\n" +
"<BODY BGCOLOR=\"#FDF5E6\">\n" +
"<H1>Hello World</H1>\n" +
"</BODY></HTML>");
}
}
na svaki zahtjev klijenta service metoda uzima upit, vri obradu i vraa odgovor;
tokom ivotnog ciklusa servleta metoda service se poziva jednom po zahtjevu,
na svaki novi zahtjev web-server e kreirati novi thread u kojem e metoda
service biti izvrena,
ukoliko spremnik treba izbrisati servlet, on ga finalizira tako to pozove
destroy metodu servleta (kada je server u mirovanju neko vrijeme ili kada se
server gasi).
request
response
session
39
out
application
Primjert JSP-a:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>JSP Expressions</TITLE>
</HEAD>
<BODY BGCOLOR="#FDF5E6">
<H1>Current time: <%= new java.util.Date() %></H1>
</Body>
</HTML>
JSP se koristi kad ima malo dinamiki generiranih dijelova jer na taj nain izbjegavamo
ispisivanje kompleksnih HTML stranica putem naredbi za ispis servleta. Java kod je od
HTML koda odijeljen tagovima to omoguava mnogo lake oblikovanje stranica, a slinu
metodu koriste i ASP i PHP tehnologije. S druge strane, servleti su praktiniji kada je
programski dio koji generira stranicu kompleksan. U sloenim aplikacijama se stoga koristi
kombinacija servleta (koji vri obradu informacija) i JSP-a koji je zaduen za prezentaciju
rezultata.
40
JSP je slian JavaScript-u, s tom razlikom da se JavaScript kod izvrava na strani klijenta, dok
se JSP kod izvrava na serverskoj strani.
MVC je najee koritena arhitektura za GUI-e u kojoj se suelje ili dio suelja rastavlja na
tri dijela, model koji sadrava podatkovne elemente, odgovara na upite o vlastitom stanju ili
mijenja stanje, pogled ( engl. view se odnosi na grafiki prikaz modela, a controller
interpretira ulaz sa mia ili tipkovnice i pretvara ih u naredbe koje se alju modelu i view-u.
5.3.1.
Veina postojeih aplikacija spada u kategoriju malih i srednjih. Razlog uporabe ovakve
arhitekture je jednostavnost pisanja i odravanja koda. U ovakvim aplikacijama su uobiajeni
mnogi sigurnosni problemi kao to su dinamiki upiti bazi podataka koji su konstruirani iz
nedovoljno provjerenog korisnikog ulaza, zatim loe rukovanje pogrekama i slabe
autorizacijske kontrole.
5.3.2.
Velike aplikacije
Velike aplikacije zahtijevaju drugaiju arhitekturu od one koja se koristi u malim i srednjim
aplikacijama. Izrada skalabilnih aplikacija neophodna je kada aplikacija koristi vei broj
vanjskih resursa i nudi vie razliitih funkcija korisniku. Skalabilna aplikacijska arhitektura je
esto podijeljena u slojeve, a koritenjem dizajnerskih smjernica za postizanje modularnosti
sadri vie ponovno iskoristivih dijelova. Podjela aplikacije na slojeve omoguuje distribuciju
aplikacije na razliite posluitelje, ime se unapreuje skalabilnost na raun sloenosti. Jedna
od najeih arhitektura za web aplikacije je model-pogled-upravlja (engl. Model-ViewController, skraeno MVC), koji implementira aplikacijsku arhitekturu programskog jezika
SmallTalk 80. MVC se nalazi u mnogim J2EE aplikacijama, a ASP.NET tehnologija moe se
HTML izlaz s malo ili bez aplikacijske logike. Kako su mnoge aplikacije internacionalizirane
i ne sadre lokalne znakove ili informacije o kulturi u prezentacijskom sloju, moraju se
pozivati funkcije upravljaa (aplikacijske logike) za dobivanje podataka o korisnikovom
41
jeziku, kulturi, mjernim jedinicama, itd. Sav korisniki ulaz se prosljeuje natrag upravljau u
aplikacijskoj logici.
Upravlja (ili aplikacijska logika) prihvaa korisnikov ulaz i provlai ga kroz razliite
procese koji pozivaju objekte aplikacijskog modela za dohvaanje, obradu ili pohranu
podataka. Da bi se izlazni podaci proslijedili u sigurnom obliku za pogled (prezentacijski
sloj), neophodno je da upravljai centralizirano provjeravaju ulazne podatke na posluiteljskoj
strani kako bi otkrili mogue sigurnosne probleme prije prosljeivanja podataka modelu.
Model omotava funkcionalnost u web aplikacijama. Osnovna karakteristika modela je
odgovor
POGLED
(VIEW)
zahtjev
Odabir
prikaza
Upit o stanju
UPRAVLJA
(CONTROLLER)
Manipulacija
MODEL
APLIKACIJA
Sl 5.4 MVC arhitektura
42
6. Primjeri aplikacija
6.1. Implementacija
Implementacija SMS/MMS Gatewaya sastoji se od 2 aplikacije i baze podataka:
1. Aplikacija koja vri logiku za slanje i primanje poruka,
2. Web aplikacija za administriranje nad sustavom.
Rad aplikacija ne ovisi jedna o drugoj, te su zbog razliitih funkcionalnosti odvojene. Jedino
to ih povezuje je baza podataka (Slika 6.1) i konfiguracijska datoteka.
SMS/MMS Gateway
HTTP posluitelj
Baza podataka
itanje i
pisanje
Aplikacija za
slanje i primanje
poruka
Korisnici
itanje
Transakcije
itanje i
pisanje
itanje i
pisanje
itanje i
pisanje
itanje i
pisanje
Web aplikacija
za
administriranje
itanje
Filter (rijei)
Filter
(brojevi)
itanje
6.1.1.
Tehnologije
Obje aplikacije napisane su u Javi odnosno J2EE standardu i prate troslojnu (MVC)
arhitekturu. Izvode se na Apache Tomcat serveru koji koristi Apache Axis kao SOAP procesor
za podrku komunikacije s web servisima. Aplikacije komuniciraju s MySql bazom podataka
na kojoj se nalaze svi podaci potrebni za interakciju s korisnikom i administratorom sustava.
43
6.2.1.
Podaci o tablicama
users - sadri sve osnovne podatke o korisnicima, podatke potrebne za pristup gatewayu,
ime
prezime
korisniko ime
lozinka
prava
podaci o servisu
tip filtriranja (po broju ili po rijei u poruci) koji se vri pri dolasku
poruke
44
Filteri:
numbers - tablica numbers sadri popis filter elemenata (brojeva telefona) svakog
korisnika koji je odabrao filtriranje po telefonskom broju. Svaki korisnik moe imati vie
od jednog broja kao filter element. Svaki tel. broj mora biti jedinstven
podaci
strings - tablica strings sadri popis filter elemenata (tekst) svakog korisnika koji je
odabrao filtriranje po tekstu unutar poruke. Svaki korisnik moe imati vie od jedne rijei
kao filter element. Svaka rije moe se pojaviti samo jednom
podaci
Transakcije:
ukoliko je dolo do greke kod slanja ili primanja poruke, upisuje se opis
greke u transakciju
45
Arhitektura
MODEL
Pristup podacima baze podataka
Upravlja (ili aplikacijska logika) kroz web servise prihvaa poruke, provlai kroz
razliite procese koji pozivaju objekte aplikacijskog modela kako bi dohvatili, obradili i
pohranili podatke. Funkcija upravljakog modela je prosljeivanje poruke u originalnom
obliku, dohvata i auriranje podataka korisnika i na kraju upisa podataka transakcije.
46
Model dohvaa, aurira i dodaje podatke u baze podataka i alje poruke (web servisu, e-
mail).
6.3.2.
Organizacija koda
Sustav za slanje i primanje poruka je dinamika web aplikacija, sastoji se od pet paketa u
kojima su klase rasporeene po funkcionalnosti. Radi bolje razumljivosti paketi su
rasporeeni u slojeve aplikacijske logike i model.
Paketi i klase rasporeene po slojevima
Aplikacijska logika:
hr.tel.fer.server - sadri klase koje vre svu logiku aplikacije za prosljeivanje poruka
MessageFwdMob.java - sadri logiku za prosljeivanje poruka operatoru
MessageFwdClient.java - sadri logiku za prosljeivanje poruka klijentu
Model:
hr.tel.fer.beans - sadri beanove (niz objekata koji predstavljaju replike entiteta iz baze
podataka) za dohvaanje, mijenjanje i dodavanje entiteta baze podataka
47
hr.tel.fer.test - klasa koja sadri klase za testiranje (koristi se umjesto poziva web
servisa)
6.3.3.
Aplikacijska logika
48
Ulaz u aplikaciju
Svaka aplikacija mora imat definiran ulaz da bi mogla obraditi neki zahtjev. Ulaz u nau
aplikaciju je web servis klijenta i operatera.
Web servis za klijenta
Jedina metoda koja ne prihvaa polje tel. brojeva (recipient) je smsReceivedDelivery, jer se
ovom metodom alju SMS poruke za koje se vraa potvrda o isporuci poruke, to nije mogue
ako se alje na vie korisnika odjednom.
Konfiguracija
49
Nakon to je web servis konfiguriran, svaki klijent ima pristup opisu web servisa na temelju
koje moe generirati klijenta.
Web servis za operatera
Primjer koda:
50
if (user.getUser().equals(""))
return SmsConstant.NO_USER + ": " + username;// no such user
if (user.getPass().compareTo(password) != 0)
return SmsConstant.WRONG_PASS;// wrong password
if (user.getSms() == 0)
return SmsConstant.SERVICE_DENIED;// can't send sms
Slanje poruke:
Message sms = new SmsMessage(text);
SendMessage message = new SendMessage(sms, recipient,'s');
String msgId = message.send();
Upis transakcije
Transaction trans = new Transaction(SmsConstant.CLIENT_TO_MOBILE, null, new
Timestamp(System.currentTimeMillis()),
"SMS",
msgId,
null,
text,
username,
51
Pri
dolasku
poruke
web
servis
MessageListenerMob
prosljeuje
poruku
MessageFwdClient klasi.
Funkcije koje vri MessageFwdClient pri dolasku poruke:
2. Slanje poruke
a. Kreiranje objekta poruke koje se alje klijentu kanalom koji je on odredio
(poziv web servisa ili slanje mail-a)
3. Upis transakcije
53
Kod prosljeivanja potvrde o isporuci, postupak je slian kao i kod primanja poruke, a
korisnik se pretrauje u tablicama transakcija pod identifikacijskom oznakom poruke (msgId)
koji je zapisan u transakcijama (trewn) kad je korisnik uspjeno poslao poruku.
Slika 6.5 prikazuje poziv klasa prilikom primanje poruke operatera i prosljeivanja korisniku
raunalnog sustava.
54
6.3.4.
Model
bazi te pune svoje objekte podacima iz baze ili spremaju podatke objekata u bazu.
Za dohvaanje konekcije prema bazi brine se klasa DBConnection koja preko JDBC-a (engl.
Java Database Connectivity, skraeno JDBC) ili Data Pool-a (HTTP server kontrolira i
55
preko JDBC-a, zbog toga je za podizanje drivera odgovorna aplikacija, a ne server kao to je
obiaj kod Data Pool-a.
Pri prvom pristupu bazi podataka inicijalizira se objekt DBConnection koji unutar svoje init()
metode instancira drivere prema bazi.
DBConnection.java (podizanje drivera i dodjela konekcije)
public void init (){
Class.forName(driver);
}
public Connection getConn(){
return DriverManager.getConnection(url, username, password);
}
Primjer koda za spremanje podataka u bazu:
//dohvaanje konekcije
conn = dBconn.getConn();
pstmt = conn.prepareStatement(insertTransactionSQL);
//dodavanje elemenata unutar upita insertTransactionSQL
int i = 1;
pstmt.setString(i++, action);
pstmt.setTimestamp(i++, received);
// spremanje podataka
conn.setAutoCommit(false);
pstmt.execute();
// zatvaranje upita
pstmt.close();
// izvriti upit
56
conn.commit();
conn.setAutoCommit(true);
conn.close();
Slanje e-maila
GMail klasa odgovorna je za slanje mail-a, koristi mail.jar biblioteku za pristup mail
sanduiu. Za potrebe testiranja otveren je sandui na gmailu.
57
6.3.5.
MGW bilblioteka
MGW je messaging platforma koja omoguuje brzo i jednostavno pokretanje i upravljanje
VAS uslugama, SMS, MMS, LBS i WAP Push-om, te ostalim binarnim formatima SMS-ova.
MGW omoguuje operateru da otvori svoju infrastrukturu nekoj treoj strani, omogui joj
pokretanje vlastitih VAS usluga, a da u isto vrijeme zadri potpunu kontrolu nad vlastitim
core sustavima. Pri tome je mogue odrediti cijene i ograniiti propusnost, te sastaviti
opsene statistike.
Vipnet je korisnicima stavio na raspolaganje 2 MGW klijentske API biblioteke:
58
Konfiguracija pristupa
Za uspjean pristup Vipnetovoj infrastrukturi potrebno je konfigurirati vatrozid na serveru
FER-a tako da prihvaa HTTP konekcije sa porta 80 odaslane s Vipovog servera
(212.91.99.123). Isto tako, potrebno je konfigurirati Vipnet-ov server da prihvaa poruke
odaslane s FER-ovog servera (161.53.19.120) na portu 80.
Osim podeavanja vatrozida, Vipnetu prosljeujemo URL adresu web servisa na koji e nam
dolaziti
notifikacije
primljenih
poruka:
http://demo1.tel.fer.hr/MMStest
odnosno
http://161.53.19.120/MMStest
Parametri potrebni za spajanje:
Okruenje
Vipnet je objavio dvije verzije razvojnih okruenja za vanjske programere (engl. Software
Developement Kit). Jedno je bazirano na .NET tehnologiji, a drugo na Java standardima pa je
time razvojnim timovima stavljen na raspolaganje i odabir platforme na kojoj ele razvijati
svoje aplikacije ili usluge. Trei SDK koji je baziran na PHP-programskom jeziku moe se
skinuti sa TIS KIS- ovih stranica. Svi paketi su besplatni te zajedno sa njima dolaze veina
potrebnih biblioteke i programa.
Princip programiranja MGW biblioteke za slanje i primanje poruka je vrlo slian za oba
okruenja, dok se konfiguriranje posluitelja za primanje notifikacije dolazeih poruka
uvelike razlikuje, prvenstveno zato to se koriste razliiti posluitelji i servisi.
59
6.3.6.
Apache Axis
usluga)
poruke)
Slanje poruka
Za uspjeno pisanje aplikacije za slanje poruka potrebno je dodati odgovarajue biblioteke
odnosno .jar datoteke, napraviti java klasu i importirati potrebne pakete.
Najvanije klase koje je potrebno instancirati su:
(Vipnet infrastrukturom),
60
Ovisno o tome elimo li slati SMS ili MMS poruku, moramo instancirati odgovarajue
objekte:
tekstualnog sadraja
61
HTTP zahtjev za slanje SOAP poruke prikazuje poziv sendMessage metode i slanje
parametara za autentifikaciju.
Hypertext Transfer Protocol:
POST /jboss-net/services/SendMessagePort HTTP/1.0\r\n
Request Method: POST
Request URI: /jboss-net/services/SendMessagePort
Request Version: HTTP/1.0
Content-Type: multipart/related; type="text/xml";
Accept: application/soap+xml, application/dime, multipart/related, text/*\r\n
Host: oi-test.Vipnet.hr\r\n
SOAPAction: "SendMessage#sendMessage"\r\n
Credentials: user name:password
Kao povratnu informaciju metoda sendMessage vraa messageId tako da je mogue metodom
getMessageDeliveryStatus provjeriti status poruke, ali pod uvjetom da je konfiguriran web
6.3.7.
Primanje poruka
62
poruke ili status poslane poruke od gatewaya, zbog toga je aplikacija odgovorna za
implementaciju servisa, a ne MGW biblioteka.
Klase koje su nam potrebne za konfiguriranje notifikacije poruka su:
smsReceived(...)
mmsReceived(...)
deliveryStatusReceived(...)
63
proslijeuju MessageListeneru.
Primjer implementacije MmNotificationPortRetrieve suelja i konfiguriranja listenera.
public class MyNotificationPortRetriever implements MmNotificationPortRetriever {
public MmNotificationPort getMmNotificationPort(ServletContext servletContext) {
SingleRouteCredentialsHandlerImpl credentialsHandler
= new SingleRouteCredentialsHandlerImpl();
credentialsHandler.setUsername("user");
credentialsHandler.setPassword("password");
MessageManagerImpl mm = new MessageManagerImpl();
mm.setRouteCredentialsHandler(credentialsHandler);
MessageListenerl ml = new MessageListenerImpl();
MmNotificationPortImpl mi = new MmNotificationPortImpl();
mi.setMessageListener(ml);
mi.setMessageManager(mm);
return (MmNotificationPort) mi;
}
64
Arhitektura
Arhitektura web aplikacije za administraciju sustava kao i prethodna, slijedi osnove principe
gradnje J2EE aplikacija, odnosno tehnologiju Java Servleta i JSP-a kao prenosiv nain
pruanja dinamikih sadraja orijentiranih prema korisniku. Aplikacija odjeljuje prezentaciju i
kontrolu nad podacima to ini MVC arhitektura (engl. Model View Controller). Osim
serverskih skripti, aplikacija sadri i klijenske skripte JavaScript. Klase su rasporeene po
namjeni (spajanje na bazu, html prikaz podataka, klase koje vre logiku), to omoguuje
jednostavno dodavanje novih funkcija.
65
HTTP
odogovor
HTTP
zahtjev
APLIKACIJA ZA ADMINISTRIRANJE
POGLED (VIEW)
UPRAVLJA (CONTROLLER)
Logika za autentifikaciju
Rad sa
korisnicima
Rad sa
transakcijama
MODEL
Pristup podacima baze podataka
cilj generirati HTML izlaz s poneto aplikacijske logike. Poziva funkcije upravljaa
(aplikacijske logike) kako bi dobila podatke o korisnicima i transakcijama, izmijenila i dodala
podatke o korisnicima i njihovim filtrima. Osim toga prezentira konfiguracijske parametre
aplikacije za slanje i primanje poruka.
Upravlja (ili aplikacijska logika) prihvaa HTTP zahtjeve korisnika i provlai ga kroz
razliite procese koji pozivaju objekte aplikacijskog modela kako bi dohvatili, obradili ili
pohranili podatke. Centralizirano provjerava ulazne podatke kako bi otkrili mogue
sigurnosne probleme prije prosljeivanja podataka ostalim procesima i modelu, te osiguravaju
da je izlaz u sigurnom obliku za prosljeivanje pogledu.
Model dohvaa, aurira i dodaje podatke koji se prosljeuju prezentacijskom sloju kroz
aplikacijski sloj. Pozivi modela odvijaju se prema konfiguracijskoj datoteci, bazi podataka i
sesiji korisnika.
66
6.4.2.
Web aplikacija za administraciju koristi tri razliite tehnologija za uspjenu izvedbu MVC
arhitekture. Prezentacijski sloj implementiran je tehnologijom JSP-a. Struktura svake stranice
prezentacijskog sloja je veim dijelom definirana HTML kodom unutar kojeg se dohvaaju
parametri objekata sloja modela. Aplikacijska logika implementirana je tehnologijom Java
Servleta, prihvaa i prosljeuje zahtjeve ostalim servletima i poziva objekte sloja modela (sloj
Glavne stranice
Indeks.jsp - poetna stranca za autentifikaciju korinsika
Main.jsp - glavna stranica koja definira cjelokupni izgled svih ostalih stranica,
sadri glavni izbornik pored kojeg poziva ostale stranice na zahtjev korisnika
Izgled stranice
Master.css definiran je izgled parametara html elemenata koji se koriste na
svim stranicama
67
Aplikacijska logika:
Model:
6.4.3.
Prezentacijski sloj
Prezentacijski sloj ine 2 glavne stranice, to su Index.jsp i Main.jsp. Svaka od stranica poziva
svoj sebi pripadajui servlet aplikacijskog sloja koji vri logiku i vraa odgovor.
Poetna stranica
Poetna stranica je Index.jsp, predstavlja prvi ulaz u aplikaciju gdje se korisnik autentificira
svojim korisnikim imenom i lozinkom (Slika 6.7).
68
Ova stranica sadri formu koja POST metodom alje parametre login servletu. Osim to alje
login i password korisnika, forma index.jsp-a sadri i hidden polje FROMJSP koje e se
Nakon to Login servlet obradi zahtjev korisnika, ukoliko autentifikacija nije bila uspjena
korisniku se vraa ista stranica sa porukom o greci koja se dohvaa GET metodom unutar
index.jsp-a.
<% String status= request.getParameter("status");
if (status!=null) out.println("Status: "+status);%>
Glavna stranica
Ukoliko se korisnik uspjeno autentificirao, korisniku se vraa glavna stranica ili Main.jsp.
Ona definira cjelokupan izgled aplikacije i svih sporednih stranica. Sadri glavni izbornik
pored kojeg poziva ostale stranice na zahtjev korisnika (Slika 6.9).
69
Stranica se sastoji od forme (engl. form) unutar koje se nalazi tablica sa glavnim izbornikom
na lijevoj strani i sporednim stranicama na desnoj.
<form method="post" action="/AdminSms/servlet/Main" name="form">
<table class="one" width="1200px" height="700px" border="1" align="center">
<tr valign="top">
<td width="20%">
Glavni izbornik
</td>
</tr>
<tr valign="top">
<td width="80%">
Sporedne stranice
</td>
</tr>
</table>
</form>
70
Forma alje podatke POST metodom koja main servletu alje parametre potrebne za
navigaciju i obradu podataka
Navigacija
Za razliku od komercijalnih stranica gdje svaki gumb sadri link prema nekoj drugoj stranici,
ovdje svaki gumb predstavlja submit gumb forme koja post metodom alje hidden parametre
main servletu.
Hidden parametri koji se alju potrebni su main i ostalim servletima za obradu zahtjeva.
Njihove vrijednosti mijenjaju se klikom na gumb koji uz pomo Java skripte (engl.
JavaScript) postavlja njihove vrijednosti i na kraju submita formu.
command - parametar koji main servlet odreuje kojem e servletu proslijediti zahtjev
action - parametar koji servletima odreuje koje e metode pozvati i odreuje koja se
Nakon to main servlet, odnosno aplikacijska logika obradi zahtjev, poziva se Main.jsp. koji
ita SessionAtributes parametar iz sessiona-a koji sadri parametre potrebne za prikaz
sadraja. Jedan od tih parametara je i action parametar koji main.jsp odreuje stranicu koja se
poziva unutar glavne tablice desno od izbornika.
71
Sporedne stranice
Sporedne stranice pozivaju se unutar stranice Main.jsp. Svaka stranica ima definirane
elemente koje ine izgled stranice, za navigaciju i slanje parametara koriste formu Main.jsp-a.
72
Script.js - Java skripta koja provjerava podatke forme prije nego to se alju aplikaciji
73
74
6.4.4.
Aplikacijska logika
Autorizacija
Autorizacija je implementirana unutar Login servleta. Kada doe prvi zahtjev, poziva se init
metoda Login servleta unutar koje se inicijaliziraju konfiguracijski podaci. Jedan od podataka
je i administratorki username i password. Unutar doPost metode provjeravaju se uneeni
podaci, ukoliko podaci odgovaraju administratorskim, kreira se nova sesija i zahtjev se
prosljeuje main servletu.
if (user.equals(Constant.adminUser)){
if(pass.equals(Constant.adminPass)){
HttpSession session = req.getSession(true);
if (session.isNew() == false) {
75
session.invalidate();
session = req.getSession(true);
}
Prije prosljeivanja zahtjeva main servletu, sesiji se dodaje objekt SessionAtributes koji osim
parametara za prosljeivanje sadri i konekciju prema bazi podataka.
DBConnection conn=new DBConnection();
SessionAttributes atrib = new SessionAttributes();
atrib.setConn(conn);
session.setAttribute("atrib", atrib);
//prosljeivanje zahtjeva main servletu
redirect="/AdminSms/servlet/Main";
Glavna logika
Svi zahtjevi nakon autorizacije prosljeuju se main servletu koji vri glavnu logiku aplikacije.
Uloge main servleta su:
1. Provjerava da li postoji sesija korisnika
2. ita iz zahtjeva parametre command i action, potrebne radi daljnjeg prosljeivanja
zahtjeva
3. Ukljuuje (engl. include) zahtjev servletu naziva koji se nalazi unutar command
parametra
4. Prosljeuje (engl. forward) zahtjev Main.jsp koji ita parametar action za poziv
sporedne stranice
76
res.sendRedirect(redirect);
} else{
//itanje parametara iz zahtjeva
command=req.getParameter("command");
action=req.getParameter("action");
//ukljuije servlet
rd=getServletContext().getRequestDispatcher("/servlet/"+command);
rd.include(req, res);
//prosljeuje zahtjev Main.jsp-u
rd=getServletContext().getRequestDispatcher("/Main.jsp");
rd.forward(req, res);
}
pripremu podataka za prezentacijski sloj. Nakon to servlet primi zahtjev prosljeen od main
servleta, poziva metodu u ovisnosti o odabranoj akciji korisnika koja se ita iz action
parametra.
Primjer poziva metode User servleta u ovisnosti action parametra:
protected void doPost(HttpServletRequest req, HttpServletResponse res) throws
ServletException {
String action = req.getParameter("action");
if (action.equalsIgnoreCase("InsertUser")) {
insertUser(req, res);
} else if (action.equalsIgnoreCase("ViewAllUsers")) {
viewAllUsers(req, res);
} else if (action.equalsIgnoreCase("SelectUser")) {
selectUser(req, res);
77
} else if (action.equalsIgnoreCase("ChangeUser")) {
changeUser(req, res);
} else if (action.equalsIgnoreCase("DeleteUser")) {
deleteUser(req, res);
}
Funkcije koje svaka metoda vri mogu se naslutiti iz naziva metode. Na vrlo slian nain
funkcioniraju, itaju parametre iz zahtjeva i pune pozivaju metode beanova, odnosno sloja
pristupa podacima koji dohvaaju, mijenjaju ili dodaju vrijednosti u bazu podataka.
Popis funkcija servleta:
User.java
insertUser
za prikaz
selectUser
changeUser
podataka
deleteUser
Transaction.java
priprema za prikaz
selectTransaction
78
JSP
Servlet
Metoda
NewUser
User
insertUser
selectUser
User
selectUser
ViewAllUsers
User
viewAllUsers
selectTransaction
Transaction
selectTransaction
viewAllTransaction
Transaction
viewAllTransaction
DeleteUser
User
deleteUser
Home
Main
Index
Login
Main
Main
6.4.5.
Model
Primjer spremanja podataka korisnika iz baze podataka u polje stringova i dodavanje u objekt
sessiona (implementirano u User i Transaction servletu):
79
80
diplomskog rada implementirani su klijenti za slanje poruka koji koriste sve funkcije
SMS/MMS Gatewaya u jezicima Java i C#.
Za izradu klijenta potreban je opis web servisa koji korisnik moe nai na URL adresi (na
kraju URL adrese mora se dodati ?wsdl kako bi se dobila wsdl datoteka) web servisa
SMS/MMS Gatewaya.
6.5.1.
Kreiranje web servis klijenta vrlo je jednostavno pomou programskog alata Eclipse 3.2 koji
ima podrku za kreiranje web servis klijenta iz opisa web servisa (wsdl. datoteka). Eclipse
kreira odgovarajue klase i beanove.
Primjer klasa koji se izgenerira:
WebSerClient.java
WebSerClientProxy.java
WebSerClientService.java
WebSerClientServiceLocator.java
WebSerClientSoapBindingStub.java
AttachmentFer.java
Koritenje aplikacije
Za poziv web servisa jednostavno se instancira Proxy objekt i pozove odgovarajua metoda,
odnosno poziv prema web servisu.
Primjer slanja SMS poruke:
WebSerClientProxy send = new WebSerClientProxy();
send.smsReceivedDelivery("user", "pass", "Proba", "38591111111");
Za slanje MMS-a potrebno je instancirati klasu AttachmentFer, ukoliko kao prilog koristimo
neku sliku, video itd., potrebno je prebaciti taj prilog u polje byteova.
Primjer funkcije koja iz datoteke kreira polje byteova:
81
82
6.5.2.
SDK u jezicima C#
Koritenje aplikacije
Na jednak nain kreira se i web servis klijenta napisan u C#. Koritenjem alata Microsoft
Visual C# 2005 Express Edition, iz URL adrese web servisa.
FileStream fs = File.OpenRead(txtPicture.Text);
byte[] content = new byte[fs.Length];
fs.Read(content, 0, (int)fs.Length);
83
String
smsReceived(String
endpointURL,String
smsMessage,String
String
deliveryStatusReceived(String
endpointURL,String
from,String
Registrirati unutar konfiguracijske datoteke servera web servis i prijaviti URL adresu web
servisa administratoru SMS/MMS Gatewaya
84
Zakljuak
Razvoj mobilnih telekomunikacija, pojava novih tehnologija i konkurencija operatera pruaju
korisnicima sve raznovrsnije i zahtjevnije mogunosti. Dolazi do integracija i prilagodba
poslovnih informacijskih sustava takvim novim uslugama, te stvaranje novih partnerskih
odnosa u informatikom i telekomunikacijskom poslovanju.
Brzo i efikasno kreiranje novih usluga, upravljanje proizvodima i uslugama nakon njihovog
ukljuivanja u trite, te korisnika podrka za takve usluge su glavna podruja promjena u
poslovnoj praksi telekomunikacijskih tvrtki. Korisnik, njegovi zahtjevi i potrebe postaju
sredite poslovnog interesa operatera.
Vipnetov koncept otvaranja telekomunikacijske platforme prema vanjskim partnerima
omoguuje stvaranje vlastite aplikacije za slanje i primanje SMS i MMS poruka. Razvoje
takove aplikacije donosi nove sadraje u sklopu:
85
Literatura
[1]
[2]
[3]
Service Delivery Platforms and Telecom web services; Moriana Group, srpanj, 2004
[4]
http://www.telekom.hr
http://www.t.ht.hr
http://www.parlay.org
http://www.morianagroup.com/
http://www.openmobilealliance.org/
http://www.3gpp.org/
http://www.vipnet.hr/
http://www.t-mobile.hr
http://www.tele.fi/
http://www.w3.org
http://www.corba.org/
http://www.ws-i.org/
http://www.optima-telekom.hr
http://www.vodatel.hr/
http://hr.wikipedia.org/
86