Tìm hiểu giao thức soap và viết ứng dụng demo bằng ngôn ngữ perl

62 1 0
Tìm hiểu giao thức soap và viết ứng dụng demo bằng ngôn ngữ perl

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

BQ GIAO DUC vA DAo TAO TRUONG DAI HOC DAN LAp NGOAI NGfi TIN HOC TP.HCM KIiOA CONG NGH~ THONG TIN " , ~ ~ ~ KHOA LUAN TOT NGHIEP • • TiM HIEU GIAO THUC SOAP vA VIET UNG DUNG DEMO BANG • NGON NGU PERL ~~, /.~~,.' /~"';'1~u ".~f" : ':' ~UfL~ ,~-~~ ·- ~ J.\"+/ ~l~ ~ ~ GVHD: ThS D~NG TuAN NGHiA SVTH : NGUYEN VIET THE ANH TP HO CHi MINH - 2006 L(JICAMON •• Chung em xin chan cam an ban giam hi~u va khoa cong ngh~ thong tin twang D~i hc Dan l?p Ngo~i ngfr va Tin hc,trong su6t thai gian vua qua nha tfUemg da t~o midiSu ki~n thu?n lqi dS chung em co thS hc t?P va nghien Clm khoa lu?n t6t nghi~p Quy th~y co clla nha twang luon t?n tinh giai dap nhfrng v~n dS rna chung em vuang m~c va d~y them chung em nhfrng kinh nghi~m dS lam m9t dS tai co hi~u qua va phil hqp v6'i yeu c~u d~ Chung em cling xin gui lai cam an dSn quy th~y co lam vi~c t~i thu vi~n nha twang da t~o di~u ki~n thu?n lqi cho chung em su d\lllg cac tai li~u tham khao dS lam tu li~u cho d~ tai Va d~c bi~t chung em xin cam an th~y D~ng Tu~n Nghla, th~y da t?n tinh huang dful chung em th\fc hi~n dS tai, th~y da gqi y va chi dfin nhfi'ng tai li~u tham khao cling nhu v~n d~ lien quan dSn d~ tai rna chung em chua thong su6t Chung em co thS hoan t~t dugc dS tai ngoai c6 g~ng clla ban than co S\l'giup dO'nhi~t tinh clla quy th~y co M~c dil da c6 g~g hSt minh nhung d~ tai clla chung em vfin nhi~u thiSu xot kinh mong dugc S\l'danh gia va chi d~y nhi~u han clla quy th~y co dS chung em co thS phat triSn d~ tai r9ng han f LOIMODAu XML co thS tra nen than thuQc vai b~n tuang lai Tuy nhien nhfrng khai ni~m va ung d1,1ngvS XML rfrt maio XML la nSn tang cO' ban cho chung ta huang d@nxay d\ffig chuang trinh cho th@h~ internet maio Tfrt ea dfr li~u cung chuang trinh ung d1,1ngtrong tuang lai se tich hqp va hiSu thong qua XML Trong linh vvc l~p trinh web, l~p trinh Perl CGI la mQt cach l~p trinh c6 diSn va quen thuQc Ngay nay, dVa tren cong ngh~ XML, l~p trinh Perl CGI co thS lam nhiSu vi~c han No co thS giup b~n lam cho may tinh ch~y tren h~ diSu hanh khac hay cac chuang trinh vi@ttren cac ngon ngfr l~p trinh khac chi a se thvc hi~n, hay co thS Slr d1,1ngcac cQng C1,1 dS phan b6 cac ung d1,1ng,cho phep theo dai cac thong tin truySn nh~n gifra hai may tinh Cac dich V1,1Web (web services) la mQt t~p hqp cac cong C1,1cho phep b~n phan b6 cac Ung d1,1ngphi a tren cac Co' So' h~ tc1ngm~ng dil co s~n Cac ung d1,1ngnay Slr d1,1ngm~ng nhu la lap giao v~n, nhung khong d.n sv huang dan cua nguai thong qua cac trinh duy~t (browser) Vi~c lam nhu tren se giam duQ'c chi phi cho vi~c thi@tl~p cac ung d1,1ngva cho phep Slr d1,1ngtfrt ca cac chuc nang xay dVng cho web D~c bi~t la dich V1,1 web 2.0, web 2.0 dil Slr d1,1nggiao thuc SOAP dS gQi cac dich V1,1 web L~p trinh Perl, hay C1,1 thS la giao thuc SOAP se duQ'c chung ta dS c~p tai dS lam cac tinh nang cua chung MUCLUC • • • , d~au L,.0'1n01 Chuang 1: GiOi thi~u " cua d~ , e taL M \ICt1eu Gi6i thi~u chung 4 Chuang 2:T6ng quan vS SOAP G'1m , th'"1~u ? • 1.1.Dinh nghia 1.2.Muc tieu thiSt kS 1.3 Tap ki hi eu 1.4.Vi d\I vS SOAP 2.Cac Model trao d6i thong di~p SOAP 3.Lien kSt t6i XML: 4.Phuang thuc hO(;ltdQng: 4.1.YSu t6 SOAP Envelope: 4.2.YSu t6 SOAP Header: 4.2.1.ThuQc tinh actor: 4.3.YSu t6 SOAP Body: 4.4 YSu t6 SOAP Fault: 5.Ma hoa SOAP: 5.1.T~p cac kiSu rna hoa XML: 5.2.KiSu dan gian: 5.2.1.String: 5.2.2.Enurneration 5.2.3.Array of the bytes 5.3.NhiSu hinh d(;lngaccessor: 5.4.KiSu ghep: 5.4.1.Struct: 5.4.2.Array: 5.5 Gia tri rn~c dinh: : 5.6 ThuQc tinh g6c SOAP: 6.Dung SOAP HTTP 7 10 11 12 13 13 14 14 17 18 21 22 23 24 24 25 25 25 25 26 26 6.l.Yeu cfiu cua SOAP HTTP: 6.1.1.Ho~t dQng cua SOAP tren HTTP: 6.2 Tra 16'icua SOAP HTTP: 6.3.S\f rna rQng khung HTTP: 6.4.Vi dV v~ SOAP HTTP: 7.SU dVng SOAP RPC: 7.I.RPC va SOAP Body: 7.2.RPC va SOAP Header: 27 27 27 28 28 29 30 31 8.KSt 1u~n 32 Chuang 3: SOAP with Attachments 1.Giai thi~u: 2.G6i thong di~p SOAP: 3.Tham vfin SOAP v6i S\f g~n vao 4.Lien kSt dSn SOAP: 5.KSt n6i v6i HTTP: 6.MIME va thong di~p SOAP vai S\f g~n vao 7.KSt Iu~n: 33 33 35 40 40 42 44 Chuang 4: SOAP-Lite I.Dinh nghla 2.D?c tinh 3.L6p va g6i SOAP::Lite 4.Cac phuong thuc SOAP: :Lite 5.KSt Iu~n 45 45 46 47 52 Chuang 5: Xay dvng trng dVng Demo I.Mo ta trng dVng DEMO 2.Moi truang 3.KSt qua 52 55 56 Chuang 6: T6ng kSt I.Yeu cfiu d~t duQ'c Vng dVng Tai li~u tham khao 60 60 Chuang 1: Gi6'i thi~u GiOi thieu • I.Muc tieu d~ tili : 1.1 Tim hiSu giao thuc SOAP 1.2 Tim hiSu ve SOAP vai S\f gful vao 1.3 Tim hiSu thu vi~n SOAP::Lite 1.4 Tim hiSu ngon ngfr Perl 1.4 Xay d\lng Demo 2.GiOi thi~u chung: Trong cac giao thuc truyen Utifile gifra cac h~ th6ng m~ng, SOAP la giao thuc dan giC:mva hi~u qua vi~c tren SOAP la Simple Object Access Protocol SOAP la giao thuc nSn tang la XML bao g6m phful : • MQt Envelop dinh nghTa khung lam vi~c vi~c mo ta mQt thong di~p lam cai gi va xu ly nhu thS nao • MQt t?P nguyen t~c rna hoa cac vi d\l r5 rang cua cac lo~i dfr li~u dinh nghTatrng d\lng • Va mieu ta thu t\lCg9i va tra lai ham tiT xa SOAP co thS kha nang dugc dung vi~c kSt n6i vai nhiSu giao thuc khac; nhien, vi~c kSt n6i ph~n mo ta dung SOAP thS nao vi~c kSt n6i vai HTTP va khung lam vi~c rna rQng HTTP DS co thS viSt trng d\lng SOAP mQt cach dan gian vai Perl, nguai ta da xay d\lTIgnen mQt module SOAP-Lite Day la module chua d\lTIgcac lap va ham dS nguai dung co thS dung dS hgp thanh, truyen tai va xu ly cua thong di~p SOAP B~n se ng~c nhien vai mQt do~n code nh6 ho~c SlJ nh?n biSt nhu thS nao cua SOAP dugc yeu c~u dS khai t~o th?t SlJ mQt dich V\lWeb vai cong C\ldo Perlla mQt ngon ngfr rna no co thS dugc dung mQt luqng Ian cac cong vi~c Chuang 1: Gi6'i thi~u Cai dan gian d~c trung cach dung Perl la vi~c trich thong tin tu l11'mymethod', 1, SOAP::Header->name(t1 => 5)->attr( {'~V:mustUnderstand' => 1}), SOAP::Header->name(t2 => 7)->mustUnderstand(2), ); : SOAP: :Data B getQuote('MSFT'), "\n"; use SOAP: :Lite; my $service = SOAP::Lite -> schema(.http://www.xmethods.net/sd/ B?n co thS khoi t?O g6c v6i submaker script: Perl stubmaker pI http://www.xmethods.net/sd/StockOuoteService Va b?n cling truy C?P dich V\l SOAP dong: wsdl Chuong 4: MODULE SOAP::LITE 51 perl "-MStockQuoteService qw(:all)" -Ie "print getQuote('MSFT')" Cli phap khac duQ'che>trQ'v6i stub(s) : use StockQuoteService ':all'; print getQuote('MSFT'), "\n"; use StockQuoteService; print StockQuoteService->getQuote('MSFT'), "\n"; use StockQuoteService; my $service = StockQuoteService->new; print $service->getQuote('MSFT'), "\n"; : SOAP: :Trace SOAP: :Trace cung c~p cho b:;mv6i kha nang gO' r6i va danh d~u vS, thu vi~n SOAP: :Lite D~ kich ho:;tt no b:;tn cftn chi r5 danh sach cua cac phftn va S\f ki~n co thS v:;tchra cua SOAP::Lite: Use SOAP::Lite +trace =>Qw(list of available traces here); S\Tki~n thich hQ'P: Transport - (client) truy c~p dSn yeu cftu va tra lai tftng transport Dispatch - (server) thS hi~n ten dfty du cua phuong thuc gai di Result - (server) kSt qua cua phuong thuc gQi Parameters - (server) tham s6 phuong thuc gQi Headers - (server) phftn dftu cua thong di~p nh~n Objects - (both) phuong thuc new/destroy Method - (both) tham s6 '-.7 envelope( method =>' Fault - (both) tham s6 '-.7envelope(fault =>' Treeform - (both) tham s6 '-.7envelope(freeform =>' Trace - (borth) d~u vSt di vao m9t vai function quan Debug - (both) chi tiSt vS transport Vi du: Use SOAP::Lite +trace =>Qw(method fault); B:;tndung 'debug' thay cho 'trace' : use SOAP: :Lite; my $s = SOAP: :Lite 52 Chuong 4: MODULE SOAP: :LITE -> uri('http://tempuri.org/') ->proxy('http://beta.search.mi crosoft com! search/MSComSearchService asrnx ') -> on_debug(sub{print@_}) # show you request/response with headers print $s->GetVocabulary(SOAP::Data->name(,~:Query' => 'something')) ->valueof('/ /FOUND'); Hay chuySn no tung rieng Ie : Use SOAP::Lite +trace => debuf; Hay: Use SOAP::Lite +trace => debug => sub(' '); K~t luan: Trong chuang mlY chung ta tim hiSu duqc module SOAP: :Lite va cac goi cua SOAP::Lite Chung ta co thS su dVng module dS viSt web service giao thuc SOAP 53 Chuang 5: DEMO ChU'O'ng 5: xA Y DT/NG UNG D1)NG DEMO Mo ta D'ng dl}ng DEMO: Demo g6m phfin chinh la client va sever •: Server: Trong chuang trinh CGI co lOp dan giim dS gQi ben gQi ham SOAP Nhung chung ta co chuang trinh CGI khac dS gui phuang thuc SOAP dSn nhiSu lOp khac Khi yeu cfiu SOAP duQ'c nh~n boi server, thi server chi lOp duQ'c yeu cfiu LOp da duQ'c dua len server, theo cach viSt "static" co nghTa la ten cua lOp duQ'c chi cfiu hinh, d6i v6i "dynamic" thi ten cua lOp chi duemg d~n thu m\lc rna vai lOp tu thu m\lc co thS duQ'ctruy c~p Static internal use SOAP::Transport::HTTP; SOAP: :Transport: :HTTP::CGI -> dispatch _to('Demo ') -> handle; package Demo; sub hi { return "hello , world'" , } sub bye { return "goodbye, cruel world"; } 1; Chuang 5: DEMO 54 Static external Giang nhu static internal nhung lap "demo" n~m vai nai ben ngoai do~n server use SOAP: :Transport: :HTTP; use Demo; SOAP: :Transport: :HTTP::CGI -> dispatch _to('Demo ') -> handle; Goi Demo dugc viSt file Demo.pm package Demo; sub hi { return "hello , world'" , } sub bye { return "goodbye, cruel world"; } l', Dynamic Nhu da thiiy ca cach viSt Static internal va Static external, thi ten module dugc d?t do~n rna server Nhung nSu them nhiSu module m6i rna khong c~n sua d6i server, thi Dynamic cho phep b~n lam diSu Chi ro thu m\lc va vai module thu m\lc tra thich hgp vi~c gai di #!perl-w use SOAP: :Transport: :HTTP; SOAP: :Transport: :HTTP::CGI -> dispatch _to('/home/soaplite/modules') -> handle; Chuang 5: DEMO 55 Sau d~t Demo.pm thu m\lc /home/soaplite/modules package Demo; sub hi { return "hello , world"., } sub bye { return "goodbye, cruel world"; } l', : Client: #! c:/perllbiniPerl.exe # SOAP::Lite guide.soaplite.com Copyright (C) 2001 Paul use SOAP: :Lite+autodispatch => uri => 'http://localhost/Demo', proxy => 'http://localhost/cgi-bin/server.cgi'; Hien thrrc: M6i wOng: US viSt demo ta phai co ActivePerl 5.8 , Apache server, va goi SOAP:Lite 0.66, goi SOAP: :MIME Cai d~t : • Cai d~t Apache va c~u hinh file Apache • Cai d~t Perl, goi SOAP: :Lite va goi MIME 56 Chuang 5: DEMO K~t qua: lIfIiIIlliWtAl&4AiW;;Uil 1l! •• miJh4l&W>==~ 7J Upload and Download w , '''4*,1I18U ;, * Zi ••••••• -*44." If r Chuang 5: DEMO to M6 ta: Demo g6m phAn: • PhAn tren Upload: • ThS hi~n thu m\lC t~i client • Ch

Ngày đăng: 01/09/2023, 22:04

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan