technologie internetowe cw 14 WS, Różne, Technologie internetowe
[ Pobierz całość w formacie PDF ]
Ćwiczenie 14
Temat:
Tworzenie i
wykorzystanie
usług sieciowych
Cel ćwiczenia:
W trakcie ćwiczenia student zapozna się z procedurą tworzenia usługi
sieciowej w technologii ASP.NET oraz nauczy się tworzyć aplikację kliencką
wykorzystującą usługę sieciową.
Tworzenie usług sieciowych WebService w ASP.NET
Usługa sieciowa to komponent programistyczny udostępniający pewną funkcjonalność aplikacjom
klienckim poprzez sieć internetową. Oparcie usług sieciowych o standardowe protokoły HTTP, SOAP,
XML pozwoliło na wzajemną komunikację usługi i klienta stworzonych na dowolnych platformach
systemowych i przy pomocy różnych narzędzi programistycznych.
Tworzenie usług sieciowych w oparciu o ASP.NET nie wymaga bezpośredniej znajomości standardów
HTTP, SOAP, XML skupiając uwagę programisty bezpośrednio na funkcjonalności usługi.
Główna definicja usługi sieciowej umieszczona jest w pliku
.asmx
. Kod skryptu serwerowego
odpowiedzialny za jej funkcjonalność może zostać umieszczony w pliku .asmx lub w osobnym pliku
kodu (np.
cs
) składowanym w katalogu
App_Code
.
Usługa sieciowa może być samodzielnym serwisem lub stanowić część standardowego serwisu
ASP.NET dostarczającego stron HTML.
W celu stworzenia samodzielnej usługi sieciowej w środowisku Visual Studio należy z głównego menu
wybrać opcję
File
ã
New
ã
Web Site
. Z dostępnych typów serwisów należy wybrać
ASP.NET Web
Service
. W nowoutworzonym serwisie automatycznie zostaje utworzona pierwsza usługa
Service
(pliki
Service.asmx
i
App_Code/Service.cs
).
Plik
Service.asmx
zwiera jedynie definicję usługi:
<%
@
WebService
Language
="C#"
CodeBehind
="~/App_Code/Service.cs"
Class
="Service"
%>
Zasadniczy kod usługi zawiera plik
App_Code/Service.cs
:
using
System;
using
System.Web;
using
System.Web.Services;
[
WebService
(Namespace =
)]
[
WebServiceBinding
(ConformsTo =
WsiProfiles
.BasicProfile1_1)]
public
class
Service
: System.Web.Services.
WebService
{
public
Service () {}
[
WebMethod
]
public
string
HelloWorld() {
return
"Hello World"
;
}
}
Definiowanie funkcjonalności usługi polega na tworzeniu metod realizujących jego zadania. Metoda
dostępna dla aplikacji zewnętrznych musi być publiczna (modyfikator
public
) i oznaczona
Tworzenie i wykorzystanie usług sieciowych
30
atrybutem
[
WebMethod
]
. Jedna usługa może udostępniać wiele metod. Wszystkie muszą być
zdefiniowane wewnątrz klasy usługi.
W jednym serwisie może znajdować wiele usług sieciowych. Dodajemy je przez wybranie w
Solution
Explorer
opcji
Add New Item…
a następnie pliku typu
Web Service
.
Środowisko ASP.NET daje możliwość szybkiego przetestowania działania usługi. Wystarczy w
Solution
Explorer
wskazać plik
asmx
usługi i wybrać opcję
View in Browser
. Zobaczymy wówczas interfejs
WWW umożliwiający testowanie poszczególnych metod usługi.
Zadanie 1
1.
Utworzyć serwis typu
ASP.NET Web Service
o nazwie
UslugaSieciowa
2.
Zwrócić uwagę, że projekt serwisu został umieszczony w solucji o tej samej nazwie.
3.
Zmienić nazwę solucji na
AplikacjaRozporoszona
.
4.
W serwisie usunąć pliki domyślnej usługi
Service
(
Service.asmx
i
App_Code/Service.cs
).
5.
Dodać do serwisu usługę
JednostkiDlugosci
wyłączając opcje rozdzielania kodu usługi na
oddzielne pliki
asmx
i
cs
.
6.
Wewnątrz usługi
JednostkiMiary
utworzyć dwie metody zwracające i przyjmujące wartość
typu
double
:
a.
PrzeliczCentymetryNaCale
b.
PrzeliczCaleNaCenymetry
7.
Dodać do serwisu usługę
Kalkulator
z opcją rozdziału kodu.
8.
Wewnątrz usługi
JednostkiObjetosci
utworzyć dwie metody zwracające i przyjmujące wartość
typu
int
:
a.
SumaTrzechLiczb
Tworzenie i wykorzystanie usług sieciowych
31
b.
IloczynDwochLiczb
9.
Przetestuj z poziomu
Visual Studio
działanie obu usług.
Tworzenie aplikacji klienckiej dla usługi sieciowej
Dowolny rodzaj aplikacji stworzonej w środowisku .NET (konsolowa, okienkowa lub webowa) może w
prosty sposób skorzystać z usługi sieciowej.
W typ celu należy utworzyć tzw. referencje webową. W środowisku Visual Studio w
Solution Explorer
wybieramy opcję
Add Web Reference
a następnie wybieramy lokalizację usługi. Najprostszą opcją jest
wybór usługi znajdującej się w tej samej solucji, zwykle jednak w polu URL podaje się adres
internetowy pliku WSDL opisującego usługę.
Po wczytaniu informacji o usłudze tworzymy referencje webową nadając jej własną nazwę.
W efekcie w drzewie projektu pojawia się utworzona referencja.
Tworzenie i wykorzystanie usług sieciowych
32
Jej utworzenie oznacza zdefiniowanie klasy obiektu
PROXY
pośredniczącego pomiędzy aplikacją
kliencką a usługą. Klasa PROXY znajduje się w przestrzeni nazw o takiej samej nazwie, jak nazwa
utworzonej web referencji, a jej nazwa jest identyczna z nazwą usługi. Po utworzeniu tego obiektu
wykorzystując jego metody wywołujemy metody udostępnione przez usługę.
mojaReferencja.
Service
serv =
new
mojaReferencja.
Service
();
lblTekst.Text = serv.HelloWorld();
Zadanie 2
1.
Do solucji
AplikacjaRozproszona
w
Solution Explorer
wybierając opcję
Add…
ã
New
Web Site…
dodaj serwis typu
ASP.NET Web Site
o nazwie
Klient
.
2.
Oznacz projekt
Klient
jako projekt startowy wybierając opcję
Set as StartUp Projekt
.
3.
Utwórz w serwisie
Klient
dwie referencje webowe do usług
JednostkiDlugosci i
Kalkulator
.
4.
Utwórz stronę
Cale.aspx
z następującym interfejsem:
5.
Funkcjonalność strony ma być realizowana w oparciu i usługę
JednostkiDlugosci
.
6.
Utwórz stronę
Obliczenia
.
aspx
z następującym interfejsem:
Tworzenie i wykorzystanie usług sieciowych
33
[ Pobierz całość w formacie PDF ]