You are on page 1of 33

I HC QUC GIA THNH PH H CH MINH

TRNG I HC CNG NGH THNG TIN


KHOA CNG NGH PHN MM

BO CO
TM HIU WEB SERVICE TRONG ANDROID
Mn hc: LP TRNH NHNG CN BN

Ging vin hng dn: ThS. PHAN NGUYT MINH


Sinh vin thc hin:
NGUYN HONG KHA
MSSV: 09520126
NGUYN MINH TR
MSSV: 09520318
L HUNH TRUNG HU
MSSV: 09520082

Lp: CNPM04
Kha: 4

Thnh ph H Ch Minh, thng 11 nm 2011

M U

Ngy nay, vi s pht trin mnh m ca khoa hc cng ngh, c bit l s


pht trin nhanh chng ca lnh vc v thit b di ng, n ngy cng i vo i
sng v tr thnh cng c lao ng, hc tp, gii tr, ca con ngi.
B mn Lp trnh Nhng cn bn l mt phn ca lnh vc cng ngh
thng tin, n gip con ngi c xy dng cc ng dng nhm phc v cho cuc
sng ca chng ta.
Cng lc , internet ngy cng pht trin mng m, vic kt ni c vi
internet hoc cc thit b khc l mt phn cn thit ca a s cc thit b di ng.
S lng cc thit b di ng ngy cng tng c v s lng ln cht lng, c bit
l cc thit b chy h iu hnh Android.
Bi bo co di y nhm gii thiu v mt kha cnh nh trong nhm gip
vic xy dng mt ng dng kt ni c vi cc thit b khc thng qua internet
hoc mng ni b.

LI CM N

Chng em chn thnh cm n C trong thi gian qua cung cp cho chng
em nhng kin thc v lnh vc chuyn ngnh ny v hng dn chng em c th
hon thnh bi bo co ny mt cch tt nht.
Tuy nhin, do s hiu bit ca chng em v lnh vc ny cn hn ch, bi
bo co cn nhiu thiu st, chng em knh mong C thng cm v gp thm.
Chng em xin chn thnh cm n C !

NHN XT (Ca ging vin hng dn)


.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................

MC LC

M U

Chng 1 - TNG QUAN V NN TNG V KIN TRC H IU


HNH ANDROID.......................................................................1
1.1

H iu hnh Android............................................................................1

1.2

Kin trc ca Android............................................................................2

1.3

B pht trin ng dng Android (Android SDK).................................3

1.4

Quy lut v thi gian phn ng ca cc ng dng mobile...................3

Chng 2 - TNG QUAN V KIN TRC HNG DCH V


(SERVICE-ORIENTED ARCHITECTURE)..........................5
2.1

nh ngha v SOA v web service........................................................5

2.2

B quy tc chung cho mt web service (WSDL)...................................7

2.3

Truyn d liu da trn ti nguyn (Resource-oriented transfer) v


da trn hnh ng (Activity-oriented transfer).................................9

2.4

Hai giao thc truyn, nhn d liu c dng ph bin...................11

2.5

Tng quan v truyn, nhn thng tin ca web service v client........12

Chng 3 - TM HIU WEB SERVICE TRONG ANDROID.................17


3.1

Cc kin trc giao tip gia ng dng Android v web service da


trn giao thc SOAP (Simple Object Access Protocal)......................17

3.2

Android khng h tr web service da trn thng ip SOAP ?......20

TI LIU THAM KHO

Trang 1

Chng 1 -

TNG QUAN V NN TNG V KIN TRC

H IU HNH ANDROID
1.1

H iu hnh Android

Android l h iu hnh trn in thoi di ng (v hin nay l c trn mt s


u pht HD, HD Player, TV) pht trin bi Google v da trn nn tng Linux.
Trc y, Android c pht trin bi cng ty lin hp Android (sau c
Google mua li vo nm 2005).
Cc nh pht trin vit ng dng cho Android da trn ngn ng Java. S ra
mt ca Android vo ngy 5 thng 11 nm 2007 gn vi s thnh lp ca lin minh
thit b cm tay m ngun m, bao gm 78 cng ty phn cng, phn mm v vin
thng nhm mc nh to nn mt chun m cho in thoi di ng trong tng lai.
Android c xy dng cho php cc nh pht trin to ra cc ng
dng di ng hp dn tn dng tt c mt chic in thoi cung cp. N c
xy dng c thc s m. V d, mt ng dng c th ku gi bt k chc nng
li ca in thoi nh thc hin cuc gi, gi tin nhn vn bn, hoc bng cch s
dng my nh, cho php cc nh pht trin to ra phong ph hn v nhiu hn
na nhng kinh nghim s dng cho ngi dng. Android c xy dng trn
Linux Kernel. Hn na, n s dng mt my o tu chnh c thit k ti u
ha b nh v ti nguyn phn cng trong mt mi trng di ng. Android l m
ngun m, n c th c ty nghi m rng. Nn tng ny s tip tc tin trin nh
cng ng nh pht trin cng vic cng nhau xy dng cc ng dng di ng
sng to.
Android l mt tp hp phn mm c t chc cho thit b di ng bao gm h
iu hnh, cc ng dng trung gian hay quan trng. N da vo nhn Linux 2.6 xy
dng cc chc nng h thng li v chy cc m lnh bng ngn ng Java trn mt

Trang 2

my o c thit k c bit c tn l Dalvik. Dalvik thc thi cc file c cc


lp Java bin dch ti u gim thiu ti a b nh.
1.2

Kin trc ca Android

S sau y (Hnh 1.1) th hin kin trc cc thnh phn chnh ca h iu


hnh Android. C th c chia thnh 5 phn:

Linux kernel
Libraries
Android runtime
Application framework
Applications

Hnh 1.1 H thng kin trc ca Android


Cc thnh phn mu xanh l c vit bng C/C++, mu xanh c pht
trin trn nn Java v chy trn my o Dalvik VM.

Trang 3

1.3

B pht trin ng dng Android (Android SDK)

SDK l vit tt ca Software Development Kit dch l: cng c pht trin


phn mm m c th y l pht trin ng dng cho Android. Android SDK cung
cp cc cng c v API cn thit bt u pht trin cc ng dng trn nn tng
Android. Bao gm: trnh cng c IDE Eclipse, gi lp, cng c debug, cng c pht
trin trc quan, mn hnh ng nhp,
1.4

Quy lut v thi gian phn ng ca cc ng dng mobile

nh gi hiu qu ca mt Web server client, chng ta thng s dng


chun Hng dn kh nng s dng c bn ca Jacob Nielsen (c xem l bc
thy v kh nng s dng Web v miu t Ba gii hn thi gian trong cc ng
dng hng Web). Cc gii hn ny c miu t nh sau:

0,1 giy l khong gii hn cho ngi dng cm nhn rng h thng

phn hi ngay lp tc, ngha l khng c phn hi c bit no cn thit ngoi vic
hin th kt qu.

1,0 giy l khong gii hn cho ngi dng suy ngh li khng b
gin on, mc d s nhn ra s chm tr. Thng thng, khng c phn hi c
bit l cn thit trong khong thi gian chm tr t sau 0,1 giy n trc 1,0 giy,
nhng ngi dng khng mt i cm gic thao tc vi d liu.

10,0 giy l khong gii hn gi s tp trung ca ngi dung vo


cc on i thoi. i vi s chm tr lu hn, ngi dung s mun thc hin cc
cng vic khc trong khi i in thoi hon thnh cng vic, v vy ngi dung
cn thng tin phn hi c bit khi no in thoi thc hin xong. Thng tin
phn hi trong thi gian chm tr th c bit quan trng nu thi gian p ng c
thay i ln, t lc ngi dung khng bit mong i nhng g.
Cc gii hn trn khng c xem l tuyt i, nhng thay v l mt phn
nh gi trn phn hi nhanh chng t nhng thng tin phn hi m ngi dng
mong i. i vi lp lun ny, gii hn c s dng nh gi rng mt Web
service client thc s p ng nhng hot ng ca ngi s dng nhanh nh th

Trang 4

no ngi s dng vn gi c s tp trung v cm nhn c nhng phn hi


t ng dng.

Trang 5

Chng 2 -

TNG QUAN V KIN TRC HNG DCH

V (SERVICE-ORIENTED ARCHITECTURE)
2.1

nh ngha v SOA v web service

Hnh 2.2 Kin trc hng dch v dng tng qut


Service-oriented Architecture Kin trc hng dch v l mt tp hp cc
dch v bao qut ton b vic xy dng cc ng dng phn mm. Kin trc m bo
cc chi tit ca phn mm c xy dng trn c s dng mt phng php pht
trin phn mm c th l lp trnh theo hng phn r phn mm thnh cc dch v
ring r, c kh nng gn kt theo mt cch no , bn trong mt h thng thng
nht.

Trang 6

Mt kin trc hng dch v l da trn nguyn tc tch bit cc thnh phn
lun l. Nhng thnh phn c tch ra v c gi l cc m-un, hoc dch v,
chng giao tip vi nhau thng qua cc tin nhn (messages).
Mc d SOA c th c xy dng bng cch s dng mt hoc mt vi
cng ngh, nhng phm vi ca bi bo co ny gii hn v ch tp trung SOA bao
gm ca mt kin trc sau:

S dng SOAP nh giao thc gi/nhn tin nhn v s dng Ngn ng

nh hnh dch v Web (WSDL) miu t cc dch v c sn;


S dng giao thc HTTP;
Service Oriented Architecture (SOA) cung cp c ch cho php cc h thng
hot ng trn cc nn tng khc nhau c th giao tip vi nhau d dng hn, thng
qua mt chun nh ngha chung nht trn ton th gii, l WSDL (Web Service
Description Language).
Mt h thng c xy dng theo m hnh SOA bao gm cc dch v tha
mn cc tnh cht m WSDL ra (Tuy nhin, c mt s tng thch li i vi cc
phin bn khc nhau ca WSDL, c th l WSDL 2.0 v WSDL 1.1). Mi service
trong h thng c th c sa i mt cch c lp vi cc service khc nhm mc
ch p ng mt yu cu mi t thc t.
By gi chng ta cng xem mt m hnh hot ng c bn c th c
chuyn i thnh mt m hnh chi tit hn nh th no.

Trang 7

Hnh 2.3 Ba thnh phn lun l ca s ny l nhng khi kin trc c bn,
c vai tr ct li trong vic vn hnh ca dch v web in hnh

Thnh phn cung cp dch v (the Service Provider) hot ng nh

l mt mi trng thc thi dch v Web , n c xy dng gm cc thnh phn


cung cp cc x l cho cc ng dng cn n. Ngoi ra, n cng qun l vic ng
k thng tin v cc dch v m mnh c th cung cp. N thng c trin khai bi
cc nh cung cp dch v nn tng Web.
ng k dch v (the Service Broker) t chc phn phi dch v v
hot ng nh mt b trung gian to iu kin cho vic phn phi dch v n cc
ng dng cn n v lu tr nhng thng tin v cc dch v Web c ng k.
Hn th na, n cn to ra mt c ch truy cp chung cho ngi yu cu dch v
xc nh cc dch v ng k.
Thnh phn s dng dch v (the Service Consumer) hot ng nh
mt mi trng thc hin dch v Web ca khch hng bng cch tm kim ti phn
ng k dch v tm cc dch v cn thit v gi chng t cc nh cung cp dch
v. N hot ng nh mt m-un cung cp dch v cho ngi yu cu dch v, a
ra cc giao din ph hp hoc to ra ni dung v a cho nhiu ng dng khch
hng, thit b, nn tng,
c th vic to ra cc kin trc hp l trn, chng ta cn mt m hnh
chung nht v mt s tiu chun c chp nhn rng ri miu t, s dng v
nh ngha cc dch v.
2.2

B quy tc chung cho mt web service (WSDL)

Vic c t chc nng, giao din giao tip ca mt dch v Web c thc
hin da vo Web Service Description Language (WSDL). WSDL l mt nh dng
XML m t cc dch v mng v cc thng tin truy cp ca n. N cho php mt
c ch rng buc gn mt giao thc, nh dng d liu, thng ip tru tng,
hoc thit lp thit b u cui xc nh v tr ca dch v.

Trang 8

Services: Cha cc method c th c s dng thng qua cc web

Ports: a ch dng kt ni n web service. Thng thng, ports

protocol.
c m t bng mt HTTP URL.

Hnh 2.4 M t cc thnh phn c bn ca mt file WSDL dng c t mt


web service

Port Types: nh ngha mt web service, cc tc v m service cung

cp v nh dng cc thng ip c s dng khi ng cc tc v ny.


Operations: Mi operation c th c xem nh mt method hay mt
li gi hm trong cc ngn ng lp trnh c in.
Binding: ch nh port type, cc operation, SOAP binding stype
(RPC/Document), SOAP protocol c dng.
Message: Mi message tng ng vi mt operation v cha cc
thng tin cn thit thc thi operation . Mi message c mt name duy nht v
mt hay nhiu logical part. Cc logical part c phn bit vi nhau qua name v
c th lu tr cc tham s cn cho operation.

Trang 9

Element: c nh ngha trong Types. Mi element c mt name

duy nht v kiu d liu. Element c dng c t d liu dng trong message.
Element c th c t cc d liu n gin (string, integer) hay phc tp hn nh
array, struct, ...
XSD file: Cc element thng c nh ngha trong cc XML
Schema Definition (XSD) file. XSD file c th trong cng file WSDL hoc file
ring bit.
Trong ct li ca m hnh dch v Web, WSDL c s dng nh l ngn
ng siu d liu xc nh cc dch v Web v m t cc nh cung cp dch v v
yu cu giao tip vi nhau nh th no. N cng m t cc chc nng ca dch v
Web c cung cp bi cc nh cung cp dch v, ni dch v c xc nh, v
lm th no truy cp dch v. Cc nh cung cp dch v thng to ra cc dch v
Web bng cch to ra WSDL t cc ng dng thng mi n.
2.3

Truyn d liu da trn ti nguyn (Resource-oriented transfer)

v da trn hnh ng (Activity-oriented transfer)


S phn chia ca cc API Bloglines (Bloglines l mt tp hp cc dch v
thit k, cho php cc nh pht trin vit cc ng dng c thng tin RSS v
Atom bng cch ly d liu trc tip t c s d liu Bloglines) thc y mt
cuc tranh lun ca Representational State Transfer (REST) so vi Simple Object
Access Protocol (SOAP). Tri ngc vi nhng g c th tin, nhng kin trc
hng dch v khc nhau (SOA) mu thit k (Design Patterns) khng loi tr ln
nhau. Cng khng c ci no vt tri so vi cc khc. Mi loi c th mnh tng
i ring v im yu trong mi quan h vi cc ng dng khc nhau, v c hai
cng tip cn hp l gii quyt cc vn .
V c bn th s khc nhau gia REST v SOAP Web service ch l vn
l ng dng hng ti nguyn (Resource-oriented) hay hng hot ng
(Activities-oriented). Theo nh ngha, cc dch v web REST theo phong cch dch
v hng ti nguyn.

Trang 10

Dch v hng ti nguyn tp trung vo d liu cc i tng ring bit m


mt s t cc hot ng tiu chun, c bn c th thc hin. V c bn, mt nh
cung cp dch v duy tr mt tp hp cc ti nguyn v a ra mt tp hp cc hot
ng c bn thc hin cc nhim v nh:

Khi phc ti nguyn (Retrieving the resources)

Sa i cc loi ti nguyn (Modifying the resources)

To ngun ti nguyn mi (Creating new resources)

Xa ngun ti nguyn (Deleting resources)

Cn v Dch v hng hot ng l nhng ng dng tp trung vo cc hnh


ng m bn c th thc hin hn l ngun ti nguyn bn c th hot ng. Mt v
d n gin ca mt dch v hng hot ng l mt giao dch ngn hng, trong
khch hng chuyn tin t mt ti khon khc. Khch hng khng mun lm vic
vi cc ngun ti nguyn trc tip (tin, ti khon ngn hng, vv), h ch mun ni
vi cc ngn hng nhng g h mun thc hin v ngn hng x l cc ngun ti
nguyn thay mt cho h. Do vy nh hng hot ng bao gm:

Lnh (Command)

Trung gian (Mediator)

Chin lc (Strategy)

Thit k mu proxy (Proxy Design Patterns)

Khng ging nh cc dch v hng ti nguyn, hng hot ng c th


c vn cn thc hin tng i lin tc khng phn bit loi ti nguyn, hot
ng trong cc dch v theo hng hot ng ph thuc hon ton vo cc loi hnh
hot ng ang c thc hin.
Trong cc dch v theo hng ti nguyn, mt thit lp ph bin ca hot
ng ng mt vai tr h tr, cho php khch hng truy cp v thao tc cc ngun
lc. Tuy nhin, ti nguyn l trung tm ca s ch , nh th hin trong di y:

Trang 11

Hnh 2.5 So snh cc dch v theo hng ti nguyn v cc dch v theo hng
hot ng
Trong cc dch v theo hng hot ng, cc hot ng l trung tm ca s
ch , vi mt hot ng n l cho tng hot ng m khch hng c th yu cu
thc hin.
2.4

Hai giao thc truyn, nhn d liu c dng ph bin


2.4.1

SOAP (Simple Object Access Protocol)

Vi s xut hin ca cc dch v Web, SOAP tr thnh tiu chun ca


giao thc truyn thng thc t cho vic to ra v gi cc ng dng hot ng qua
mng nh cc dch v. SOAP th tng t nh cc giao thc nh phn truyn thng
nh IIOP (CORBA) hoc JRMP (RMI), nhng n p dng da trn vn bn, thay v
nh phn, d liu biu din bng cch s dng XML.
SOAP l mt giao thc nh trao i thng tin trong mt mi trng phn
cp, phn phi v nh dng m ha i din cho cc loi d liu. N c th s
dng cc giao thc Internet tiu chun (chng hn nh HTTP v SMTP) cho vic
chuyn ti v cung cp cc quy c i din cho m hnh truyn thng nh cc cuc
gi th tc t xa (RPCs) v tin nhn hng ti liu. iu ny cho php truyn thng
lin ng dng trong mt mi trng phn phi v kh nng tng tc gia cc ng
dng khng ng nht trong mng.

Trang 12

2.4.2

HTTP (HyperText Transfer Protocol)

Hypertext Transfer Protocol (HTTP) l mt giao thc mng phn phi, hp


tc, h thng thng tin hypermedia . HTTP l nn tng d liu thng tin lin lc cho
World Wide Web .Chc nng ca HTTP nh l mt giao thc nhn phn hi
trong m hnh Client Server. Trong HTTP, mt trnh duyt web, hot ng nh
mt Client, trong khi mt ng dng ang chy trn mt my tnh lu tr mt trang
web c chc nng nh mt Server.
Giao thc HTTP c thit k cho php cc phn t mng trung gian ci
thin hoc cho php truyn thng gia Client v Server.
2.5

Tng quan v truyn, nhn thng tin ca web service v client


2.5.1

Plain HTTP Post

Nhng yu cu Plain HTTP Post thng l nhng tin nhn n gin c m


ha nh ng dng / x-www-form-urlencoded theo quy nh ca giao thc HTTP.
Phn hi l c trng trong mt nh dng ng dng c bit c m ha XML.
iu ny to ra cc quy trnh v yu cu b nh trong vic to ra tin nhn v phn
tch thp, nhng n cng hn ch cc tin nhn bng cch yu cu phc tp to v
phn hi c th cho mt kt qu mong i.
2.5.2

JSON/REST
JSON (JavaScript Object Notation)

JavaScript Object Notation (JSON) th dng vn bn c bn, ngn ng c


lp trao i d liu nh dng. Android xy dng sn h tr cho cc JSON, do
lm cho n l mt thay th hp dn i vi XML.
REST (Representational state transfering)
Representational State Transfer (REST) l mt kiu kin trc phn tn cc h
thng siu truyn thng. N m t mt kin trc trong mi ngun ti nguyn,
chng hn nh mt dch v web, c th hin vi mt URL duy nht. Nguyn tc

Trang 13

ca REST l s dng giao thc HTTP nh n c m hnh ha, do truy cp v


sa i cc ti nguyn thng qua cc phng thc HTTP c chun ha GET,
POST, PUT, v DELETE.
JSON over REST (JSON/REST)
REST th khng phi t n l mt giao thc c tiu chun ha, nhng c
bn da trn cch s dng cc tiu chun hin c. Trong s kt hp chng hn nh
l vi JSON, n xc nh mt kin trc dch v Web vi h tr ngy cng nhiu.
Ch rng REST khng yu cu JSON nh l nh dng trao i d liu.
Thnh cng ca dch v Web da trn REST c minh ha bng cc trang
web ln nh Flickr, del.icio.us, eBay, Google, v Amazon cung cp truy cp ti cc
dch v Web da trn REST v JSON. Ngoi ra, thng s k thut WSDL 2.0 h tr
tt c cc chc nng HTTP, cho php cc dch v REST c m t.
JSON / REST da trn cc dch v Web c thit k gn nh v d dng
truy cp, nhng li thiu chc nng phc tp hn nh kim tra kiu v tun th vo
cc chun mc.
2.5.3

SOAP (Simple Object Access Protocol)


XML message

SOAP l mt giao thc truyn tin nhn, c chp nhn nh cc giao thc tin
nhn mc nh trong SOA. Tin nhn SOAP c to ra bi cc gi ng dng c th
l tin nhn XML trong phm vi cu trc tiu chun XML-based. Kt qu l mt cu
trc tin nhn m rng c th c truyn thng qua hu ht cc mng vn chuyn
c bn nh SMTP v HTTP.
SOAP Envelope miu t cc tin nhn, xc nh ni dung v thng tin x l,
n c cha mt on thn SOAP m c th thc hin phng thc RPC v cc
thng s ca n, mt ng dng d liu c th hoc mt li SOAP bo co li v
thng tin trng thi.

Trang 14

Hnh 2.6 Cu trc mt SOAP Envelope


SOAP Transport xc nh cc rng buc cho cc giao thc chuyn ti c
bn chng hn nh HTTP v SMTP.
SOAP Encoding nh ngha mt tp hp cc quy tc m ha lp bn
cc trng hp ca cc kiu d liu ng dng c th cho cc phn t XML.
SOAP RPC conventions xc nh cc biu din ca cc yu cu RPC v
phn hi, c sp t trong mt loi d liu v c a vo mt on thn
SOAP.
SOAP node
V c bn, SOAP l mt giao thc m bn cht l khng trng thi v cung
cp mt khun mu mt chiu gi tin nhn bao gm vic chuyn i XML gia cc
ng dng SOAP hay cn c gi l cc nt SOAP. Nhng nt SOAP trnh by cc
thc th logic ng dn mt thng ip SOAP thc hin nh tuyn hoc x l
tin nhn. Chng c th c mt trong cc vai tr sau:
SOAP sender : to ra v gi tin nhn.
SOAP receiver : cui cng nhn c v x l tin nhn vi mt SOAP phn
hi, nhng tin nhn, hoc bo li.

Trang 15

SOAP intermediary : c th hot ng nh l mt SOAP sender hay


receiver. N c th ch ng v th hin mt vi chc nawg b sung hay ch
chuyn tip SOAP. C th khng c hay c nhiu SOAP intermediary gia SOAP
sender v receiver cung cp c ch x l phn tn cc tin nhn SOAP.

Hnh 2.7 M hnh chuyn i c bn cc tin nhn SOAP


T dch v Web xem SOAP l mt giao thc tin nhn trao i thng tin
gia cc nh cung cp dch v v ngi yu cu dch v. N th xc nh v cung
cp:
Mt cch tiu chun ha truyn d liu bng cch s dng da trn giao
thc Internet v mt nh dng dn ph bin (XML) gia cc nh cung cp dch v
Web v ngi yu cu.
Mt m hnh gii php m rng bng cch s dng mt khun mu da trn
XML cho php cc nh cung cp dch v Web v ngi yu cu tng thch vi
nhau trong mt m hnh lin kt n gin v khng cn bit v kin trc ng dng
c bn (chng hn nh ngn ng lp trnh v h iu hnh). iu ny cho php to
ra cc dch v Web trn cc ng dng hin c m khng sa i cc ng dng c
bn.
Trong mt chun thc thi dch v Web, SOAP c th thc thi c mt ng
dng my khch (client) hay my ch (server).
Mt ng dng SOAP my khch hot ng nh l mt ngi yu cu dch v
Web, x l mt yu cu hay phn hi da trn XML, mi tin nhn cha mt on
m XML, cc thng s cn thit gi mt phng thc t xa, hoc gi mt ng
dng SOAP my ch.

Trang 16

Mt ng dng SOAP my ch lm vic nh mt nh cung cp dch v Web,


x l cc yu cu v tin nhn SOAP bng cch gi cc SOAP my khch. N tng
tc vi cc ng dng c ng gi x l cc yu cu hoc tin nhn v sau
gi mt phn hi cho my khch ang yu cu.
Mt SOAP intermediary gia mt s tuyn truyn thng lin lc SOAP
ng c hai vai tr. SOAP h tr hai loi m hnh truyn thng dch v Web cho
thy:
SOAP RPC nh ngha mt s giao tip ng b da trn cuc gi th tc t
xa, ni cc nt SOAP gi v nhn tin nhn bng cch s dng phng php yu cu
v phn hi v chuyn i cc thng s ri sau tr li cc gi tr.Trong trng
hp phn thn ca tin nhn SOAP yu cu c cha mt phng php gi RPC vi
cc thng s ca n, trong khi phn thn SOAP phn hi tr v kt qu ca vic x
l t xa vi vi kt qu l 0 hoc cc thng s.
Tin nhn SOAP xc nh mt giao tip truyn ti liu m iu khin cc nt
SOAP gi v nhn ti liu da trn XML s dng nhn tin ng b v khng ng
b.Trong m hnh ny, phn thn tin nhn SOAP (yu cu v phn hi) l i din
c bn bi mt ti liu XML.
iu th v l cc chi tit k thut SOAP khng nh xc nh v y quyn
cho bt k giao thc c bn truyn thng no m n chn rng buc vi mt lot
cc giao thc vn chuyn gia cc nt SOAP.
Cc rng buc SOAP xc nh cc yu cu cho vic gi v nhn tin nhn
bng cch s dng mt giao thc vn chuyn. Chng cng xc nh cc quy tc c
php v ng ngha x l cc tin nhn SOAP n / i v thit lp mt h tr cho
m hnh trao i tin nhn. iu ny cho php SOAP c s dng trong nhiu cc
ng dng v trn nn tng h iu hnh bng cch s dng nhiu giao thc.

Trang 17

Chng 3 3.1

TM HIU WEB SERVICE TRONG ANDROID

Cc kin trc giao tip gia ng dng Android v web service da

trn giao thc SOAP (Simple Object Access Protocal)


Ba m hnh kin trc client/server c xc nh ph hp cho thit b di ng
v kin trc SOA : HTML frontend, Web service gateway v direct Web service
invocation.
3.1.1

HTML frontend

Dch v web client c t trn mt server nh mt ng dng web t ng


to ra phn hi HTML yu cu n my ch HTTP. Mt trnh duyt web c s
dng cho in thoi di ng client truy cp v giao tip vi ng dng web. Nh
thy hnh [3.1], yu cu n gin l HTTP yu cu t trnh duyt web n
HTTP server. HTTP server chy trn mt ng dng web s dng cc dch v SOAP
c sn, v tr v mt ng dng nh dng HTML. Ngi dung nhp vo c x l
thng qua cc bi vit di dng chun HTML.

Hnh 3.8 M hnh giao tip bng HTML


HTML frontend thng l l tng khi mt thit b d kin s lun c mt
kt ni internet v cc ng dng tng t phi c sn trn mt lot cc nn tng
thit b khc nhau. Ngoi ra, HTML frontend cho php pht trin hiu qu hn
nh cc cc cng c pht trin c sn vi s h tr SOAP.

Trang 18

u im: HTMT frontend c to ra mt cch nhanh chng v d dng. C


th c trin khai trn mi web server v mt phn ca SOAP client framework c
sn cho cc ng dng web. Ngoi ra, HTML frontend l mt phng php c lp.
Bt k thit b di ng vi mt trnh duyt internet c th truy cp cc ng dng
web tng t.
Nhc im:

Bng cch s dng mt mt giao din trnh duyt web trn client, bt

k tnh nng phng php c th khng th s dng. Khng th ng b ha vi


thit b ng dng nh lch, danh sch lin lc, bn , tin nhn SMS,

Khng may, client cn c online cho cc ng dng web c sn. Khi

mt kt ni internet, ng dng khng s dng c, c th b mt d liu m ngi


dung ang lm trn submit.

Mc d giao din web ng c xy dng cho cc trnh duyt my

tnh bn, trnh duyt in thoi di ng vn cn rt hn ch hoc khng c h tr


Javascript. V vy, cc ng dng HTML frontend c gii hn ti li trang mc
nh y v bn cp nht.
3.1.2

Direct Web service invocation

Tt c cch yu cu n dch v Web c thc hin t thit b di ng. Ng


rng in thoi di ng client phi c kh nng wrap v unwrap thng ip SOAP.

Hnh 3.9 M hnh giao tip trc tip dng SOAP

Trang 19

Direct Web service invocation l mt cch l tng khi mt ng dng client


c th s dng m khng cn kt ni internet v cn n tnh linh hot trong thay
i.
u im: Thit b di ng client c th c b nh m ni b v logic ng
b ha. Mt s client c th kt ni vi cng mt dch v v to ra bt k ng dng
dch v c h tr bi cc dch v nht nh m khng cn bt k dch v thit k
c th no.
Nhc im: SOAP messages da trn XML, thng ln v phc tp. Nh
vy s phc tp c trn vic tnh ton v chuyn giao d liu.
3.1.3

Web service gateway

Mt dch v Web client c nh mt my ch gateway v chuyn i cc


yu cu gi n t in thoi di ng client n Web service invocations. S phn
hi dch v Web ny sau c chuyn i sang mt nh dng nh hn SOAP v
tr li cho client. S phn hi thng c th c nh dng nh XML, BXML,
JSON hoc cc nh dng khc vi mt cu trc n gin hn thng ip SOAP.
Cu trc ny c thy hnh [3.3]. Ch rng mt trong nhng yu cu n cng
gateway, c th dn n nhiu SOAP yu cu v phn hi.

Web service gateway c li khi kiu Direct Web Service Invocation khng
th s dng do chi ph nhn tin qu nhiu hoc khi dch v web ny khng m cho
nhng thay i.

Trang 20

u im:
Bng cch s dng mt cng ni gia cc in thoi di ng client v dch v
web, ta c th li cc dch v khng thay i trong khi xy dng giao din nh
hn cho cc in thoi di ng client.
Kh nng s dng nn d liu, lm gim lu lng v x l d liu. iu ny
ci thin hiu sut ng dng v lm gim tr ng dng.
Nhc im:
Mt cng to ra mt yu t kin trc duy tr. Bt k tnh nng mi no u
phi trin khai trn c dch v web server, gateway v in thoi di ng client.
Ngoi ra, phng php tip cn gateway khng c chun ha. V vy, n
d dng tr thnh ng dng c th v b qua nguyn tc ca dch v Web v s
phn.
3.2

Android khng h tr web service da trn thng ip SOAP ?

Nn tng Android khng c xy dng trong SOAP h tr cho cc dch v


Web. Tuy nhin, n xy dng trong th vin cho vic giao tip HTTP thng qua
Apache HTTPClient v xy dng phn tch c php XML v thng qua cc giao
din lp trnh ng dng (API) nh SAX, DOM v XmlPull v1.
3.2.1

S dng th vin ca bn th ba

Android c xy dng vi s h tr ca XML v HTTP cho php cc tin


nhn yu cu SOAP c xy dng bng tay v gi i thng qua cc API
HTTPClient. Cc phn hi SOAP sau t phn tch c php v chuyn i thnh
cc i tng Java.
T khi thit b di ng hn ch v ti nguyn, cch hng dn ca vic to ra
v phn tch c php tin nhn SOAP c th gip gim thiu v b nh v cc yu
cu. Ngoi ra, cc ng dng in thoi di ng c xy dng nhiu nhim v theo

Trang 21

nh hng hn so vi cc my tnh bn v cc ng dng web m thng thng


nh hng dn SOAP x l t phc tp hn so vi cc SOAP client khc.
Mc d hng dn x l SOAP c th c bin minh trong nhiu trng
hp, lun n ny s tp trung vo vic s dng cc th vin ca bn th ba.
Apache Axis2
Apache Axis2 l mt cng c ct li cho cc dch v Web. l hon ton
thit k li v vit li s dng rng ri Apache Axis SOAP stack . Axis2 c sn
trong Java v C .
Axis2 khng ch cung cp kh nng thm interface Web service cc
ng dng web, nhng cng c th hot ng nh mt ng dng my ch c lp.
Ti sao dng Apache Axis2 ?
Mt kin trc mi cho Axis2 c gii thiu trong Hi ngh thng nh
nm 2004 ti Colombo, Sri Lanka. Kin trc mi trn Axis2 linh hot hn, hiu qu
hn v cu hnh tt hn so vi kin trc Axis1.x. Mt s khi nim cng c hnh
thnh t Axis1.x, nh x l, c gi li trong kin trc mi.
Apache Axis2 khng ch h tr SOAP 1.1 v SOAP 1.2, n cng h tr
tch hp rng ri cho REST style ca cc Web service.
Axis2 h tr Spring Framework .
Axis2 i km vi nhiu tnh nng mi, ci tin v trin khai k thut cng
nghip
Tnh nng Axis2
Tc - Axis2 s dng m hnh i tng ring v Stax (streaming API cho
XML ) phn tch c php t c tc ln hn ng k so vi phin bn trc
ca Apache Axis.
B nh thp - Axis2 c thit k gi b nh.

Trang 22

AXIOM - Axis2 i km vi m hnh i tng ring, AXIOM, x l tin nhn


c m rng, ti u ha hiu sut, v n gin ha cho cc nh pht trin.
Hot Deployment- Axis2 c trang b vi kh nng trin khai cc dch v
Web v x l trong khi h thng ang chy. Ni cch khc, cc dch v mi c th
c thm vo h thng m khng cn phi tt my ch. n gin ch cn th cc
dch v Web yu cu lu tr vo th mc dch v trong kho, v cc m hnh trin
khai s t ng trin khai cc dch v v lm cho n sn sng c s dng.
Cc dch v Web khng ng b - Axis2 h tr cc dch v Web khng
ng b v dch v Web gi khng ng b bng cch s dng non-blocking clients
v transports.
H tr MEP - Axis2 i km tin dng vi s linh hot h tr Message
Exchange Patterns (MEP) trong vic xy dng h tr cho MEP c bn c nh
ngha trong WSDL 2.0.
Tnh linh hot - kin trc Axis2 cung cp cho cc nh pht trin hon ton t
do chn cc phn m rng vo engine cho ty chn tiu , qun l h thng, v
bt c iu g khc m bn c th tng tng.
n nh - Axis2 nh ngha mt tp hp cc publish interface thay i tng
i chm so vi phn cn li ca Axis.
Trin khai thnh phn theo nh hng - Bn c th d dng xc nh
mng li c th ti s dng ca Handlers thc hin cc m hnh chung ca qu
trnh cho cc ng dng ca bn, hoc phn phi cho cc i tc.
Transport Framework - Abstraction n gin tch hp v s dng
transport (tc l, senders v listeners cho SOAP qua cc cc giao thc khc nhau
nh SMTP, FTP, tin nhn theo nh hng trung gian, ), v ct li ca engine l
hon ton vn chuyn c lp.

Trang 23

H tr WSDL - Axis2 h tr Web Services Description Language, phin bn


1.1 v 2.0, cho php bn d dng xy dng stubs truy cp cc dch v t xa, v
cng t ng export my c th c m t dch v ca bn trin khai t Axis2.
Add-ons - Mt s dch v Web thng s k thut c tch hp bao gm
c i vi bo v WSS4J (Apache Rampart), Sandesha cho vic truyn nhn tin
ng tin cy, Kandula l mt WS-Coordination, WS-AtomicTransaction v WSBusinessActivity.
Thnh phn v Kh nng m rng - module v giai on ci thin h tr
cho composability v m rng . Cc module h tr composability v cng c th h
tr WS-* chi tit k thut mt cch n gin v sch s. Tuy nhin, chng khng
th trin khai nng khi h thay i hnh vi tng th ca h thng.
Axis2 Modules
Axis2 cc m-un cung cp QoS tnh nng nh bo mt, ng tin cy nhn
tin,
Apache Rampart module - Apache module Rampart thm WS - Security
cc tnh nng Axis2 engine
Apache Sandesha module Qu trnh thc hin ca WS - Reliable
Messaging c c im k thut ng tin cy
Thng qua Apache Axis2 tm thy ti http://ws.apache.org/axis2, Java c
h tr y cho cc dch v Web da trn SOAP. iu ny bao gm cc loi my
cn s khai m t cc nh ngha WSDL. kSOAP2 l mt th vin SOAP thc hin
c th cho J2ME. iu ny lm cho n nhiu hn na trng lng nh hn so vi
Axis2, do ph hp vi Android tt hn. Mt s bi vit trn din n pht
trin Android khng nh rng kSOAP2 hot ng tt khng ch trn J2ME, m cn
trn Android. Tuy nhin k t kSOAP2 c thit k cho J2ME, kSOAP2 l khng
s dng cc tnh nng Java nh phn nh l khng c sn trong J2ME.

Trang 24

Bn c ng dng c thit k gi v nhn message. tng gia, bn c


Axis2. Gi s Axis ang chy hai pha client v server, tin trnh nh sau:

Hnh 3.10 S cc tin trnh x l ca Axis


-

Ngi gi to SOAP message.

Axis handlers thc hin cc hnh ng cn thit trn message nh m

ha (ca WS-Security) thng tin c lin quan.


-

Trnh vn chuyn s gi message.

Pha bn nhn, trnh transport listener pht hin message.

Chuyn message n handlers pha nhn.

Mt khi message c x l trong pha "pre-dispatch", n s c a

n dispatcher, sau n s c chuyn cho ng dng thch hp.


C hai phin bn chnh ca Axis2:
-

Standard Binary Distribution: l phin bn hon chnh ca Axis, cha

sample v nhiu script hu ch. N c s dng ci t nh mt server c lp.


-

WAR (Web Archive) Distribution: l ng dng web ca Axis2, c

trin khai trn hu ht cc trnh cha servlet.

Trang 25

kSOAP
kSOAP l mt b API c pht trin h tr cc thit b chy nn Java
(Java-based device) trong c thit b Android c th giao tip c vi web
service s dng phng thc truyn t thng ip bng cc gi SOAP (bao gm
SOAP v1.1 v SOAP v1.2), h tr ngn ng WSDL nh mt phn khng th thiu
v tch ri.
Nh cp, WSDL cung cp mt chun mc chung cho cc Web service,
khin cho vic lin lc, truyn nhn thng ip gia cc thit b client v web
service din ra nhanh, gn, tnh tng thch cao. Tuy nhin, phin bn u ca
kSOAP khng h tr WSDL, ni mt cch khc l tnh tng thch ca b API ny
khng cao, khng theo kp xu th chung ca cng ngh. K t phin bn th 2
(kSOAP v2), mt bn v (patch) c b sung, cho php kSOAP2 mang n cho
cc ng dng client (nn Java, Android) kh nng tng thch cao hn).
Direct Web service invocation
kSOAP2 (hay chnh xc l kSOAP v2) s dng phng php lin lc trc
tip, tc l thng ip c gi trong mt i tng SOAP, truyn trc tip gia
ng dng client v web service, nh cp trn. Phng php ny c a
chung bi s nhanh l, khng cn mt trm trung gian trong qu trnh truyn ti
thng ip.
Thng ip yu cu (Requests) c truyn i bi chnh thit b client, v
thit b cn thit phi c mt c ch ng gi (wrapping) v m gi (unwrapping)
cc i tng thng ip SOAP (SOAP Messages). kSOAPv2 cung cp nhng chc
nng ny, v rt d tip cn v s dng chng.
H tr WSDL
kSOAP khng h tr WSDL (kSOAPv1)
kSOAP phin bn u khng h tr tnh nng sinh code t cc tp nh ngha
web service (generation of code from Web services WSDL files), tc t ng hp

Trang 26

thc ha thun ngc (serialization deserialization) cc thng ip XML v cc


lp java.
iu ny l mt tr ngi ln khi tip cn v s dng phng thc lin lc
thng qua thng ip (message-oriented

transimission) v thng qua ch v

(service-oriented transmission), bi khng c mt c ch chung nht t ng


dch ngc cc on m XML (hoc SOAP) thnh cc i tng java s dng
trong ng dng client, mt cch tip cn mi, nhanh, d s dng hn l cch tip
cn raw (tc c d liu t b nh ngoi, khng thng qua truy xut d liu t
ni b i tng).
Tr ngi ny ngn kSOAP c s dng nh mt b th vin chnh h tr
web service trn thit b Android, chnh xc hn l cc thit b trn nn Java SE.
Java ME, phin bn Java chy trn cc thit b di ng lc by gi c h tr web
service vi WSDL, nh cp, Apache Axis2 h tr y cc cch thc t
sinh code da vo cc on m nh ngha WSDL. Tuy nhin, nn tng Android
khng h tr b th vin Java ME, cng nh thiu mt mt s b th vin Java API
chun lin quan n SOAP (javax.xml.soap), do d c s dng Apache Axis2
trn Android, cc lp trnh vin vn khng th tha hng cng ngh trn.
kSOAP h tr WSDL (kSOAPv2
kSOAP with WSDL patch)
Thy c nhng tr ngi ny, cng vi vic kSOAP c pht hnh vi
gip php m ngun m, mt s nh pht trin pht trin thm cho kSOAP kh
nng lm vic vi cc m WSDL, mt bn v WSDL (WSDL patch). Sau ny, n
c tch hp sn trong phin bn mi nht kSOAPv2.
kSOAPv2 tht ra l mt bn c vit li hon ton so vi phin bn c
(kSOAPv1), vn thiu nhiu chc nng mi, trong c WSDL.
M t hot ng ca mt web client s dng kSOAP giao tip vi
mt web service

Trang 27

Hnh 3.11 M t s lc qu trnh hot ng ca mt ng dng client trn


Android truy xut n web service s dng kSOAP
Thread c nhim v gi thi hnh tp lnh lin quan n truyn gi v nhn
tin t client n web services (create Stub)
Stub s dng cc tp lnh t kSOAP (kSOAP API), v gi n web services
(invokes Web services)
Cc gi th vin ca kSOAPv2
org.ksoap2: cha cc lp c bn cn thit thao tc vi cc i tng
SOAP, kSOAP gi chng l SOAP Envelopes. Ngoi ra, chun XML cng c h
tr bi gi ny.
org.ksoap2.serialization: h tr tnh nng Serialization v Deserialization
org.ksoap2.servlet: gi cha cc lp h tr giao tip vi server, bao gm cc
giao din c hin thc bi cc lp cc gi khc, bao gm org.ksoap2.transport
v org.ksoap2.
org.ksoap2.transport: qun l cc kt ni HTTP truyn nhn cc i tng
SOAP.

TI LIU THAM KHO

[1] Johannes Knutsen (2009), Web Service Clients on Mobile Android Devices,
Norwegian University of Science and Technology.

You might also like