R16-T.DOC

(323 KB) Pobierz
Szablon dla tlumaczy

Rozdział 16.
Tworzenie serwisów sieci WWW

W poprzednim rozdziale przedstawione zostały sposoby tworzenia komponentów wykorzystywanych w aplikacjach ASP.NET. Z komponentów tych można korzystać za pośrednictwem Internetu, aby zapewnić możliwości funkcjonalne stronom ASP.NET. Co się jednak stanie, jeśli będziemy chcieli udostępnić te komponenty bez konieczności korzystania z nich za pośrednictwem stron ASP.NET?

Serwisy sieci WWW są nowym sposobem uruchamiania aplikacji. Dzięki wykorzystaniu XML-a oraz innych standardowych technologii serwisy sieci WWW umożliwiają aplikacjom oraz komponentom na porozumiewanie się z innymi aplikacjami, niezależnie od miejsca w którym są uruchamiane.

W tym rozdziale poznasz zasady tworzenia serwisów sieci WWW. Są one rewolucyjnym sposobem myślenia o aplikacjach internetowych i stanowią niezwykle ważne zagadnienie dla programistów ASP.NET. W kolejnym rozdziale dowiesz się, jak można wykorzystywać serwisy sieci WWW we własnych aplikacjach.

W tym rozdziale omówione zostaną następujące zagadnienia:

·         Czym są serwisy sieci WWW.

·         Jak działają serwisy sieci WWW.

·         Kiedy należy ich używać.

·         Sposoby tworzenia serwisów sieci WWW.

·         Sposoby tworzenia serwisów sieci WWW przy wykorzystaniu istniejących obiektów biznesowych.

Sposób działania WWW w nowym ujęciu

Gdy na początku niniejszej książki zaczynałeś swoje spotkanie z ASP.NET, poznałeś podstawowy sposób działania sieci WWW — chodzi konkretnie o model operacji żądanie – odpowiedź. Klient (na przykład, przeglądarka WWW) przesyła na serwer żądanie dotyczące wybranej strony, a serwer, w odpowiedzi, przesyła klientowi tę stronę.

Później poznałeś rozwiązania programistyczne związane z siecią WWW. ASP.NET oraz inne technologie pozwalające na wykonywanie określonych czynności w momencie odebrania żądania. Udostępniając na serwerze możliwości programistyczne, można zwracać dane w sposób dynamiczny. Choć ASP.NET rozszerza ten model o mechanizm działania sterowany zdarzeniami, to jednak podstawowa zasada działania WWW pozostaje taka sama — wciąż jest to żądanie i odpowiedź.

Strony ASP.NET udostępniają interfejs, pozwalający użytkownikom na interakcję z witryną WWW. Poza tym interfejsem, zapewne pod postacią obiektów biznesowych, może się kryć potężna logika działania aplikacji. Ale co można zrobić jeśli możliwości funkcjonalne jednej aplikacji są tak potężne, że inni programiści chcą korzystać z nich w swoich aplikacjach? Albo co zrobić jeśli ktoś chce wykorzystać możliwości funkcjonalne, lecz nie może użyć interfejsu użytkownika; co może się zdarzyć, na przykład, gdy pracuje z poziomu wiersza poleceń? Jak można wykorzystać model żądanie – odpowiedź w takich sytuacjach?

To całkiem proste. Przeanalizuj sposób w jaki strony ASP.NET wykorzystują obiekty biznesowe. Otóż używają one metod i właściwości tych obiektów do wykonywania określonych operacji, a obiekty mogą, lecz nie muszą zwracać informacji. W rezultacie strona wysyła żądanie wykonania pewnych czynności, a następnie czeka na otrzymanie wyników.

Dlaczego inna aplikacja nie mogłaby wykorzystywać obiektów w taki sam sposób — wysłać żądanie przez Internet i poczekać na otrzymanie wyników? Idea ta została zilustrowana na rysunku 16.1. Sam pomysł jest bardzo prosty, choć aż do tej pory nie istniała żadna technologia, która pozwoliłaby na jego realizację.

 

 

Rysunek 16.1.              Aplikacje powinny być w stanie prowadzić interakcję z serwisami sieci WWW w podobny sposób, jak strony ASP.NET korzystają z obiektów biznesowych

Opis rysunku

ASP.NET page — Strona ASP.NET

Send commnads — Przesyła polecenia

Business … — Obiekt biznesowy

Return data — Zwraca dane

 

 

A oto nieco bardziej praktyczny przykład — jedna witryna WWW powinna być w stanie przesłać żądanie do innej witryny i poczekać na odpowiedź. Pierwsza z witryn mogłaby wykorzystywać metody i właściwości udostępniane przez drugą. Pomysł ten został zilustrowany na rysunku 16.2, na przykładzie witryny prezentującej notowania giełdowe. Użytkownik przesyła żądanie do witryny WWW, która z kolei przesyła żądanie do witryny obsługującej operacje giełdowe. Druga z witryn zwraca odpowiednie informacje pierwszej witrynie, która może je zaprezentować w dowolnej formie.

 

Rysunek 16.2.              Serwisy sieci WWW pozwalają witrynom WWW na wykorzystanie możliwości funkcjonalnych innych witryn

Opis rysunku

User … — Użytkownik żąda informacji o „ACME”

Site 1 — Witryna WWW nr. 1

Site 1 receives request… — Pierwsza witryna WWW otrzymuje żądanie. Żąda informacji o „ACME” od witryny WWW nr. 2.

Witryna nr. 1 otrzymuje informacje i wyświetla je na stronie.

Site 2.… — Witryna WWW nr. 2 (operacje giełdowe)

Witryna nr. 2 otrzymuje żądanie, pobiera informacje dotyczące „ACME” z bazy danych i przesyła je z powrotem do witryny nr. 1.

 

Prezentacja serwisów sieci WWW

Nowe określenie

Zanim poznasz serwisy sieci WWW warto określić czym jest normalny „serwis”. Gdy ktoś wykonuje dla Ciebie jakąś czynność, to świadczy na Twoją rzecz pewną usługę. Na przykład, na pewno jeździsz na stację benzynową aby zatankować lub naprawić samochód. Te usługi świadczy stacja benzynowa i znajdujący się przy niej warsztat, dzięki czemu nie musisz samemu wykonywać określonych czynności. Wyobraź sobie co by było, gdyby każdy posiadacz samochodu musiał mieć własny dystrybutor z paliwem. Bez wątpienia nie byłaby to idealne rozwiązanie. Na pewno chodzisz także do restauracji, które świadczą usługi gastronomiczne. Są to wszystko zadania, które możesz wykonać samodzielnie, choć możesz nie mieć ochoty tego robić. A zatem usługa (serwis) jest dodatkową operacją świadczoną przez pewną osobę lub firmę, dzięki której nie musisz samodzielnie wykonywać określonych czynności.

Dokładnie tym samym są serwisy sieci WWW. Witryna WWW może udostępniać takie serwisy, z których mogą korzystać użytkownicy a nawet inne witryny WWW. Wyobraź sobie portal, który prezentuje informacje lokalne i ogólnokrajowe, prognozę pogody, serwis sportowy oraz stronę zawierającą informacje wybrane przez użytkownika. Serwis udostępniany przez ten portal, polega na gromadzeniu, przetwarzaniu i zapisywaniu informacji pochodzących z wielu różnych źródeł. Niemniej jednak, jeśli portal nie dysponuje ogromnym budżetem oraz rzeszą pracowników, to gromadzenie i tworzenie aktualnych informacji dla wszystkich tych działów jest niemal niemożliwe.

Jednak portal może wykorzystać inne rozwiązanie — użyć treści pochodzącej z innych witryn zapewniając jedynie mechanizm ich prezentacji. W takim przypadku wciąż będzie on udostępniał usługi dla swych użytkowników lecz jednocześnie jego działanie będzie zależne od usług udostępnianych przez inne witryny.

Rozwiązanie takie jest bardzo często wykorzystywane w witrynach informacyjnych. Na przykład, Polska Agencja Prasowa udostępnia taki serwis, z którego mogą korzystać wydawcy gazet. Następnym razem gdy będziesz czytać gazetę, poszukaj w niej doniesień dostarczanych przez PAP. Zostały one pobrane właśnie z tego serwisu.

Systemy tego typu nie były zbyt popularne na Internecie ze względu na problemy dotyczące, między innymi, sposobów komunikacji poszczególnych serwisów. Wiele firm podejmowało próby stworzenia własnych, opatentowanych systemów komunikacyjnych, które umożliwiłyby wymianę informacji z serwisami; rozwiązania te są jednak przeważnie zbyt drogie i skomplikowane, aby mogła z nich korzystać większość użytkowników Internetu. Występowały także problemy innego typu — związane ze strukturą systemów bezpieczeństwa wykorzystywanych na Internecie. Wiele spośród tych specjalistycznych systemów komunikacyjnych miało poważne trudności z przekazywaniem informacji przez zapory ogniowe, które zostały zaprojektowane w celu blokowania nieupoważnionych transmisji sieciowych.

Serwisy sieci WWW dostępne w środowisku .NET stanowią rozwiązanie wymienionych powyżej, oraz wielu innych problemów. Serwis sieci WWW jest programowalnym obiektem (przypominającym nieco obiekt biznesowy) udostępniającym możliwości funkcjonalne, z których można korzystać za pośrednictwem Internetu. Serwisy sieci Web działają, gdyż wykorzystują standardowe technologie zapewniające możliwość wymiany  informacji pomiędzy obiektami. Ani specjalistyczne systemy ani opatentowane mechanizmy nie są konieczne do zapewnienia poprawnego funkcjonowania serwisów sieci WWW. Jedynym niezbędnym elementem jest połączenie z Internetem.

Działanie serwisów sieci WWW opiera się na założeniu, że każdy system oraz aplikacja może korzystać z protokołu HTTP (standardowego protokołu komunikacyjnego wykorzystywanego na Internecie) oraz jest w stanie wykorzystywać informacje zapisane w języku XML (stanowiącym standardowy sposób dostarczania danych za pośrednictwem Sieci). Serwisy sieci WWW wykorzystują język XML do przesyłania poleceń oraz przesyłania danych do oraz z obiektów dostępnych na serwerze. Aplikacje korzystające z tych danych i wysyłające polecenia, mogą być tworzone w dowolnym języku, na komputerach o dowolnej architekturze i mogą być całkiem proste lub bardzo złożone. Jedyna informacją jaką taka aplikacja musi posiadać, jest lokalizacja serwisu sieci WWW (czyli jego internetowy adres).

Serwisy sieci WWW stanowią nowy poziom przetwarzania. Na tej samej zasadzie, która pozwalała programistom gromadzić różne obiekty i na ich podstawie tworzyć aplikację, teraz można wykorzystać grupę serwisów działających w dowolnym miejscu i wykorzystać je w swojej aplikacji. Dzięki serwisom sieci WWW różne platformy komputerowe mogą teraz bez przeszkód wymieniać informacje, łącząc i zapewniając możliwość współpracy zupełnie niezależnych systemów działających w miejscach kuli ziemskiej.

Scenariusze wykorzystania serwisów sieci WWW

Załóżmy, że stworzyliśmy komponent udostępniający podstawowe funkcje obliczeniowe, takie jak te, zaimplementowane w kalkulatorze przedstawionym w rozdziale 2., pt.: „Tworzenie stron ASP.NET”. Przypominasz sobie zapewne, że kalkulator wykonuje podstawowe operacje arytmetyczne. Na potrzeby innej witryny, działającej w innym miejscu kuli ziemskiej, został stworzony komponent umożliwiający składanie zamówień dla sklepu z materiałami budowlanymi i remontowymi. Zakładając, że oba te komponenty są serwisami sieci WWW, przezorny i sprytny programista, może je połączyć i wykorzystać do stworzenia witryny umożliwiającej użytkownikom zaprojektowanie i obliczenie kosztów budowy lub remontu mieszkania lub domu. Jeśli użytkownik będzie musiał określić wymiary i przeprowadzić obliczenia, będzie mógł skorzystać z serwisu udostępniającego funkcje obliczeniowe. Po zgromadzeniu wszystkich potrzebnych informacji, może on złożyć zamówienie przy użyciu drugiego z serwisów. Wszystkie te czynności mogą być wykonane z poziomu jednej aplikacji, a użytkownik nie musi wiedzieć skąd pochodzą wykorzystywane możliwości funkcjonalne. Przykład ten został zilustrowany na rysunku 16.3.

 

Rysunek 16.3.              Pojedyncza aplikacja wykorzystująca wiele serwisów sieci WWW

Opis rysunku

Internet - Internet

Calculator service — Serwis sieci WWW zapewniający możliwości obliczeniowe

Shopping service — Serwis sieci WWW realizujący składanie zamówień

Calculate measurements — Obliczenie wymiarów

Place … — Złożenie zamówienia

Home design … — Aplikacja umożliwiająca projektowanie domu lub mieszkania

 

Serwisy sieci WWW mogą być wykorzystywane nawet przez aplikacje internetowe. Wyobraź sobie witrynę zajmującą się handlem elektronicznym, która musi obliczać koszty wysyłki towarów zamawianych przez użytkowników. W normalnym przypadku, witryna taka musiałaby posiadać tabelę z aktualnymi informacjami na temat stawek usług kurierskich w zależności od wielkości i ciężaru przesyłki, jej miejsca docelowego, priorytetu oraz wielu innych czynników. W przypadku wykorzystania serwisów sieci WWW, witryna taka mogłaby przesłać odpowiednie „żądanie” bezpośrednio do witryny firmy kurierskiej używając w tym celu poleceń zapisanych w języku XML i bezzwłocznie otrzymać wyliczoną kwotę określającą kosz konkretnej przesyłki. Serwisy WWW pozwalają na bardzo proste połączenie aplikacji, których połączenie nastręczyłoby wcześniej bardzo dużych problemów.

Model programistyczny serwisów sieci WWW

Jak już wcześniej wspominałem, serwisy sieci WWW komunikują się przy wykorzystaniu języka XML. Jednak jakie informacje są wymieniane?

Nowe określenie

Pierwszy wysyłany komunikat zazwyczaj wiąże się z procesem określanym jako odkrywanie”, który umożliwia klientowi odszukanie i zdobycie informacji na temat serwisu sieci WWW. Proces ten wiąże się z wymianą komunikatów zawierających informacje opisujące możliwości konkretnego serwisu sieci WWW. Klient musi znać te informacje, nim będzie w stanie skorzystać z serwisu. Serwis informuje równocześnie klienta o innych rodzajach komunikatów jakie można do niego przesyłać.

Proces odkrywania nie musi być wykonywany. Na przykład, jeśli autorzy serwisu nie chcą, aby ktokolwiek  niepowołany mógł się dowiedzieć o jego istnieniu i możliwościach, mogą wyłączyć obsługę tego procesu. Jest to jeden ze środków zabezpieczających, dzięki którym nie każdy będzie mógł korzystać z utworzonych serwisów sieci WWW.

Po fazie „odkrycia”, serwis powinien poinformować klienta o informacjach jakie spodziewa się otrzymać (czyli o poleceniach, które akceptuje) oraz o postaci zwracanych danych. Ten etap musi być koniecznie wykonany, gdyż dzięki niemu zarówno serwis jak i klient wiedzą jak mogą się wzajemnie komunikować. Informacje wymieniane podczas tego etapu określane są mianem opisu serwisu sieci WWW. W przypadku obiektów biznesowych programista zazwyczaj zawczasu wie jaki polecenia obsługuje wykorzystywany obiekt (na przykład, na podstawie jego dokumentacji). W zasadzie, opis serwisu sieci WWW jest dokumentacją tego serwisu zapisaną w języku XML.

I w końcu ostatni etap polega na wymianie pomiędzy klientem i serwisem, komunikatów zawierających polecenia i wyniki; przy czym klient przesyła polecenia, a serwis odpowiedzi zawierające wyniki. Także w tym przypadku, wszystkie wymieniane informacje są zapisane w języku XML. Cały ten proces został przedstawiony na rysunku 16.4.

 

Rysunek 16.4. Wykorzystanie serwisu sieci WWW wiąże się z jego „odkryciem”, pobraniem opisu oraz przesyłaniem poleceń

Opis rysunku

UWAGA!!!! wszystkie strzałki na rysunku powinny być skierowane w przeciwnym kierunku!!

1. Discovery — 1. Odkrycie

Application — Aplikacja

Web service — Serwis sieci WWW

What do you do? — Jakie są możliwości serwisu?

Description — Opis

2. Service description — Opis serwisu sieci WWW

What do you expect? — Czego serwis oczekuje?

3. Commands — Polecenia

Do this — Wykonaj to

Here are — Oto wyniki

 

Na szczęście ASP.NET zapewnia niemal całą infrastrukturę konieczną do wykonania wszystkich tych czynności. W końcu środowisko to jest w stanie obsługiwać żądania i odpowiedzi, operować na danych zapisanych w języku XML, korzystać z obiektów biznesowych — przez co doskonale się nadaje do tworzenia serwisów sieci WWW.

Protokoły umożliwiające korzystanie z serwisów sieci WWW

Już wiesz, że serwisy sieci WWW przesyłają dane i otrzymują polecenia przy użyciu komunikatów zapisanych w języku XML. Konkretnie rzecz biorąc, dane XML są wykorzystywane przy „odkrywaniu” serwisu oraz do jego opisania. Natomiast komunikaty zawierające polecenia kierowane do serwisu nie muszą być zapisywane w języku XML. Można je przesyłać przy użyciu dwóch dodatkowych metod — Http-Get oraz Http-Post. Metody te są używane przez strony ASP.NET do przesyłania łańcuchów zapytań oraz informacji wpisywanych w polach formularzy.

Http-Get

Http-Get jest standardowym protokołem umożliwiającym klientom komunikację z serwerami przy użyciu protokołu HTTP. To właśnie w ten sposób są zazwyczaj przesyłane żądania dotyczące stron WWW. Operację Http-Get można sobie wyobrazić jako pobranie przez klienta strony z serwera WWW. Ogólnie rzecz biorąc klient przesyła na serwer żądanie HTTP dotyczące zasobu o konkretnym adresie URL, a serwer w odpowiedzi zwraca odpowiedni kod HTML. Wszelkie parametry konieczne do prawidłowego obsłużenia żądania są dołączone do adresu URL jako, tak zwany, łańcuch zapytania. Oto przykład:

http://www.serwer.com.pl/default.aspx?id=Chris&plec=M

 

Parametry id oraz plec są przesyłane na serwer jako dane wejściowe i zostają dopisane na końcu adresu URL. Strona ASP.NET może pobrać te wartości przy użyciu poniższego fragmentu kodu:

Request.Querystring("id")

Request.Querystring("plec")

 

Serwisy sieci WWW mogą wykorzystywać żądania Http-Get i łańcuch zapytania do przesyłania poleceń i zwracania wyników, zamiast komunikatów zapisanych w języku XML. Warto zwrócić uwagę, że informacje przesyłane w ten sposób stanowią część adresu URL. Metoda ta ma jednak ograniczone możliwości, gdyż umożliwia przesyłanie wyłącznie par nazwa-wartość.

Http-Post

Protokół ten przypomina Http-Get, lecz różni się od niego tym, iż informacje nie są przekazywane w formie łańcucha zapytania, lecz zapisywane w nagłówkach żądania HTTP. Gdy klient przesyła żądanie przy użyciu tego protokołu, generuje on żądanie HTTP zawierające dodatkowe informacje zapisane w formie par nazwa-wartość. Serwer odbierając takie żądanie musi je przetworzyć, aby określić nazwy parametrów oraz ich wartości. Protokół ten jest najczęściej wykorzystywany przy przesyłaniu formularzy HTML.

Na przykład, wyobraź sobie formularz HTML zawierający pola tekstowe o nazwach id oraz plec, którego kod przedstawiony został na poniższym przykładzie:

<form method="post">

  <input type="text" id="id">

  <input type="text" id="plec">

 

  <input type="submit" id="idSubmit" value="Wyślij" />

</form>

 

W momencie wysyłania tego formularza przeglądarka pobiera wartości wprowadzone w polach tekstowych i dopisuje je do nagłówków żądania HTTP przesyłanych na serwer. Na serwerze, wartości te można pobrać przy użyciu poniższego fragmentu kodu:

Request.Form("id")

Request.Form("plec")

 

Możliwości tego protokołu, podobnie jak poprzedniego, ograniczają się jedynie do przesyłania par nazwa-wartość.

Notatka
Zwróć uwagę, że informacje podawane w polach formularzy można przesyłać także przy użyciu protokołu Http-Get. Aby to zrobić, atrybutowi METHOD znacznika <FORM> należy przypisać wartość GET. W tym przypadku, przy wysyłaniu formularza na serwer informacje podane w jego polach zostaną dopisane do łańcucha zapytania i nie będą umieszczane w nagłówkach HTTP. Oto przykład:

<form method="get">

 

 

SOAP

SOAP — prosty protokół dostępu do obiektów (ang: Simple Object Access Protocol) — jest stosunkowo nowym standardem przesyłania informacji z klienta na serwer. W odróżnieniu od dwóch poprzednich protokołów, SOAP przesyła informacje w formie XML a nie przy użyciu żądań HTTP. Oznacza to, że przy jego użyciu można przesyłać nie tylko proste pary nazwa-wartość, lecz także znacznie bardziej skomplikowane obiekty, takie jak złożone typy danych, klasy, obiekty, itp.

Wysyłania komunikatów SOAP różni się nieco od sposobów przesyłania komunikatów do których jesteśmy przyzwyczajeni. W przypadku użycia protokołu Http-Get informacje były przekazywane w formie łańcucha zapytania, a w razie zastosowania protokołu Http-Post — poprzez przesyłanie formularzy (przy czym informacje były zapisywane w nagłówkach żądania HTTP). Protokół SOAP także przesyła dane przy wykorzystaniu HTTP, jednak jego działanie nie ogranicza się do modelu żądanie – odpowiedź. Za jego pomocą można przesyłać dowolne komunikaty dowolnych typów, niezależnie od tego czy klient zażądał ich czy nie. Dzięki temu, protokół SOAP jest niezwykle elastycznym medium przesyłu danych.

Ponieważ protokół ten bazuje na języku XML, można go wykorzystywać do przesyłania informacji za pośrednictwem WWW. Dane zapisane w języku XML to zwyczajny tekst, który można przesyłać dokładnie tak samo jak strony WWW, w tym także poprzez zapory ogniowe. SOAP jest standardowym protokołem wykorzystywanym przez serwisy sieci WWW do komunikacji z klientami.

Notatka
Wiele osób może się pogubić porównując SOAP i XML. Jeśli protokół SOAP jest tak doskonałym sposobem przesyłania komunikatów, to dlaczego nie wykorzystać go zamiast XML? Różnica jednak polega na tym, że XML służy do określania formatu danych, podczas gdy SOAP określa protokół używany do ich przesyłania. Protokół SOAP wykorzystuje XML do zapisu przesyłanych komunikatów. Język XML jest idealnym sposobem przesyłania większości istniejących typów danych. Protokół SOAP używany jest wyłącznie w przypadkach, gdy trzeba przesyłać takie elementy jak polecenia bądź instrukcje.

Dlaczego warto używać serwisów sieci WWW?

Teraz kiedy już wiesz czym są serwisy sieci WWW, możesz się zastanawiać dlaczego warto ich używać.

Spróbuj przypomnieć sobie świat 10 lub 15 lat temu, zanim pojawił się Internet. W tamtych czasach systemu komputerowe były zupełnie niezależnymi „bytami”, które nie dysponowały żadnym dostępem do innych systemów. Aplikacje były projektowane w celu wykorzystania na jednym komputerze i nie miały żadnych możliwości dzielenia się i wspólnego korzystania z informacji. Także możliwości wymiany informacji wewnątrz firmy lub pomiędzy firmami przy wykorzystaniu komputerów, były w tamtych czasach bardzo ograniczone. Nawet prywatne wiadomości były przeważnie dostarczane ręcznie.

Internet całkowicie zmienił sposób komunikacji. Zmienił także sposób tworzenia aplikacji. Aktualnie bardzo trudno spotkać aplikacje, które w żaden sposób nie wykorzystują jego możliwości. Istnieje natomiast wiele aplikacji, takich jak internetowe komunikatory, w których dostarczanie danych użytkownikom jest w całości zależne od Internetu.

Kolejnym etapem zapewniania łączności pomiędzy użytkownikami, jest dostarczanie aplikacji za pośrednictwem Internetu. Już teraz firmy starają się łączyć tradycyjne aplikacje tak, aby tworzyły ściśle zintegrowane, wieloelementowe pakiety. Wziąwszy pod uwagę ilość wciąż używanych starych aplikacji, jest to ogromne i przerażające zadanie.

Serwisy sieci WWW udostępniają bardzo prosty mechanizm służący do wzajemnej wymiany informacji pomiędzy aplikacjami. Umożliwiają one współdzielenie komponentów i udostępniają możliwości funkcjonalne, z których mogą korzystać wszyscy niezależnie od swego położenia. Wyobraź sobie, że już nigdy nie będziesz musiał instalować na swoim komputerze jakiegokolwiek oprogramowania — wystarczy, że nawiążesz połączenie z Internetem i skorzystasz z odpowiedniego serwisu.

Wszystko dobrze, ale w jaki sposób serwisy sieci WWW są w stanie poprawić metody tworzenia aplikacji internetowych? Jednym ze sposobów jest ułatwienie wielokrotnego wykorzystywania kodu. Przypomnij sobie, że jednym z powodów przemawiających za stosowaniem obiektów biznesowych była możliwość wielokrotnego wykorzystywania kodu, bez konieczności jego powtórnego tworzenia. Nawet logika rozgałęziania — czyli funkcje i procedury — ułatwiają wielokrotne wykorzystywanie tego samego kodu (więcej informacji na ten temat znajdziesz w rozdziale 3., pt.: „Stosowanie Visual Basic.NET”). Dzięki serwisom sieci WWW można korzystać z kodu napisanego przez inne osoby bez konieczności kopiowania i instalowania czegokolwiek. W ten sposób można zaoszczędzić czas i energię, i uprościć dodawanie nowych możliwości funkcjonalnych do tworzonych aplikacji ASP.NET.

Kolejną cenną zaletą serwisów sieci WWW jest łatwość wdrażania i utrzymania. Dzięki nim już nigdy nie będzie trzeba instalować własnych komponentów i aplikacji na wielu różnych systemach komputerowych. Zamiast tego użytkownicy będą dysponować standardowym środowiskiem zapewniającym możliwość korzystania z aplikacji — za pośrednictwem Internetu. Co więcej, w razie konieczności wprowadzenia jakichś zmian, nie będzie trzeba udostępniać żadnych poprawek ani nowych wersji programów. W zupełności wystarczy wprowadzenie modyfikacji w jednym miejscu — serwisie sieci WWW — a wszystkie korzystające z niego klienty automatycznie będą mogły z nich skorzystać. (Chyba że usuniesz możliwości funkcjonalne od których zależy działanie tych klientów, gdyż w takim przypadku konieczna będzie ich modyfikacja. Niemniej jednak, w obu przypadkach proces ten jest znacznie łatwiejszy z punktu widzenia programisty.)

Tworzenie serwisów sieci WWW

Tworzenie serwisów sieci WWW składa się z kilku etapów, do których można zaliczyć implementację możliwości funkcjonalnych oraz tworzenie opisu serwisu. W kolejnych częściach rozdziału zostaną opisane poszczególne etapy tworzenia prostego serwisu sieci WWW.

Implementacja możliwości funkcjonalnych

Pliki serwisów sieci WWW są w zasadzie zwyczajnymi plikami zawierającymi kod źródłowy napisany w języku VB.NET, którym nadano rozszerzenie .asmx. Sam serwis jest natomiast reprezentowany przez klasę potomną klasy WebService. Przykład bardzo prostego serwisu sieci WWW został przedstawiony na listingu 16.1.

 

Listing 16.1.              Prosty serwis sieci WWW.

1           <%@ WebService Language="VB" Class="Calculator" %>

2            

3           Imports System.Web.Services

4            

5           public Class Calculator : Inherits WebService

6              <WebMethod()> Public Function Add(intA As Integer, _

7                 intB As Integer) As Integer

8                  Return(intA + intB)

9              End Function

10        End Class

 

Analiza

Zapisz powyższy kod w pliku o nazwie Calculator.asmx. Jak widać, w 1. wierszu powyższego przykładu została umieszczona dyrektywa WebService; przypomina ona nieco dyrektywę Page lecz informuje, iż plik reprezentuje serwis sieci WWW. Dyrektywa ta umożliwia użycie znanego już atrybutu Language, który w naszym przypadku informuje, że serwis został napisany w języku VB. Dyrektywa obsługuje także inny atrybut — Class. Określa on nazwę klasy tworzonego serwisu sieci WWW. I faktycznie, w wierszu 5. można się przekonać, że nazwa klasy naszego serwisu to Calculator. W dalszej części rozdziału poznasz  interesujące i przydatne możliwości tego atrybutu.

Następnie, w wierszu 3. jest importowana przestrzeń nazw System.Web.Services...

Zgłoś jeśli naruszono regulamin