Treść książki
Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
KlientusługisieciWeb
41
Wpoluoznaczonymnumerem1zostaływyświetlanemetody,któreudostępnia
danausługawebowa.Zostałyoneprzedstawionewpunkcie3.2.Wpoluoznaczonym
numerem2należywpisaćnazwędodawanejreferencji.Nazwataposłużyjakoprzed-
rostekjednoznacznieidentyfikującydanąusługęwebową.Wrozważanymprzypadku
wybranonazwęGoogle.PowciśnięciuprzyciskuAddReference,oznaczonegonume-
rem3,VisualStudio.NETwygenerujepośrednika(ang.proxy),któryumożliwia
korzystaniezusługiwebowej.Całyprocesgeneracjipośrednikajestdośćskompliko-
wany,aleodbywasięcałkowicieautomatycznieiniewymagażadnejdalszejingeren-
cjiużytkownika.
Napotrzebypośrednikamożepowstaćcałyszeregklas.Wrozważanymprzy-
padkusątoklasyDirectoryCategory,GoogleSearchResult,GoogleSearch-
SerViceorazResultElement.Wszystkiepowstałynapodstawieopisuusługi
webowejzawartejwplikuWSDL.Najważniejsządlaprojektowanejaplikacjijest
klasaGoogleSearchSerVice,bowłaśniewniejsązawartemetodywykorzystane
wprzeglądarce,tj.doGoogleSearch()orazdoGetCachedPage().Najważniejsze
wtejklasiejestjednakto,żedostępdojejmetodjestlokalny,alesamemetodysąwy-
konywanezdalnie(naserwerachGoogle).Programistaniemusisiętymmartwić,
anawetmożeniezdawaćsobieztegosprawy.
3.4.
Działanieprzeglądarki
Pomimożekodźródłowyprojektowanejprzeglądarkiniejestduży,tojednak
omówieniegowcałościwykraczapozaramyniniejszejksiążki.Ztegopowoduprzy-
toczonojedynienajważniejszejegofragmenty,ilustrującewykorzystanieusługwe-
bowych.Cały,obszerniekomentowany,kodźródłowyznajdujesięwInterneciepod
adresempodanymwewstępie.
GłównąklasąaplikacjijestSearchForm.Dwanajważniejszeskładnikitejklasyto:
GoogleSearchSerVicegss=newGoogleSearchSerVice();
GoogleSearchResultgsr=null;
PierwszyznichtoobiektklasyGoogleSearchSerVice,zapomocąktórego
jestprzeprowadzanecałewyszukiwanie.Drugiskładnikreprezentujewynikiwyszu-
kiwania.Początkowowartośćobiektugsrustawianajestnanull–poprawnawar-
tośćzostaniemuprzypisanajakowynikdziałaniametodydoGoogleSearch().
3.4.1.
Wyszukiwanie
WyszukiwanieodbywasięmetodąSearch()–listing3.1.