DZWON

Są tacy, którzy przeczytali tę wiadomość przed tobą.
Zapisz się, aby otrzymywać najnowsze artykuły.
E-mail
Nazwa
Nazwisko
Jak chciałbyś przeczytać The Bell
Bez spamu

Tytuł tematu jest tak naprawdę pytaniem, ponieważ Sam nie wiem, co to jest i po raz pierwszy spróbuję z tym pracować w ramach tego artykułu. Jedyne co mogę zagwarantować to to, że poniższy kod zadziała, jednak moje frazy będą jedynie przypuszczeniami i domysłami na temat tego, jak ja to wszystko rozumiem. Więc chodźmy...

Wstęp

Trzeba zacząć od tego, po co powstała koncepcja usług sieciowych. Do czasu pojawienia się tej koncepcji na świecie istniały już technologie, które pozwalały aplikacjom na interakcję na odległość, gdzie jeden program mógł wywoływać jakąś metodę w innym programie, który następnie mógł być uruchamiany na komputerze znajdującym się w innym mieście, a nawet kraju. Wszystko to jest w skrócie RPC (Remote Procedure Calling - zdalne wywołanie procedury). Przykładami są technologie CORBA, a dla Javy - RMI (Remote Method Invoking - zdalne wywołanie metody). I wszystko wydaje się być w nich dobre, zwłaszcza w CORBA, bo można z nim pracować w dowolnym języku programowania, ale wciąż czegoś brakowało. Uważam, że wadą CORBA jest to, że działa przez niektóre własne protokoły sieciowe zamiast zwykłego HTTP, który przejdzie przez każdą zaporę ogniową. Ideą serwisu internetowego było stworzenie takiego RPC, który byłby wpychany do pakietów HTTP. W ten sposób rozpoczął się rozwój standardu. Jakie są podstawowe pojęcia tego standardu:
  1. MYDŁO. Przed wywołaniem procedury zdalnej należy opisać to wywołanie Plik XML w formacie SOAP. SOAP to tylko jeden z wielu znaczników XML używanych w usługach sieciowych. Wszystko co chcemy gdzieś wysłać przez HTTP jest najpierw zamieniane na opis XML SOAP, następnie umieszczane w pakiecie HTTP i wysyłane do innego komputera w sieci przez TCP/IP.
  2. WSDL. Istnieje serwis internetowy, tj. program, którego metody można wywoływać zdalnie. Ale standard wymaga dołączenia do tego programu opisu, który mówi, że „tak, nie pomyliłeś się - to naprawdę usługa internetowa i możesz z niej wywoływać takie a takie metody”. Ten opis jest reprezentowany przez inny plik XML, który ma inny format, a mianowicie WSDL. Tych. WSDL to tylko plik XML opisujący usługę internetową i nic więcej.
Dlaczego tak krótko pytasz? Nie możesz wejść w szczegóły? Prawdopodobnie możesz, ale w tym celu będziesz musiał zwrócić się do książek takich jak Mashnin T. „Java Web Services”. Tam idzie pierwsze 200 stron szczegółowy opis każdy znacznik standardów SOAP i WSDL. Czy warto? Moim zdaniem nie, bo wszystko to jest tworzone automatycznie w Javie i wystarczy napisać zawartość metod, które mają być zdalnie wywoływane. Tak więc w Javie istnieje takie API jak JAX-RPC. Jeśli ktoś nie wie, kiedy mówi się, że Java ma takie a takie API, oznacza to, że istnieje pakiet z zestawem klas, które enkapsulują daną technologię. JAX-RPC ewoluował od wersji do wersji przez długi czas i ostatecznie przekształcił się w JAX-WS. WS oczywiście oznacza WebService i można by pomyśleć, że jest to prosta zmiana nazwy RPC na popularne obecnie modne hasło. Tak nie jest, bo teraz usługi sieciowe odeszły od pierwotnego pomysłu i umożliwiają nie tylko wywoływanie metod zdalnych, ale także po prostu wysyłanie komunikatów dokumentów w formacie SOAP. Dlaczego to jest potrzebne, jeszcze nie wiem, jest mało prawdopodobne, że odpowiedź tutaj będzie brzmiała „na wszelki wypadek, nagle jest potrzebna”. Sam chciałbym uczyć się od bardziej doświadczonych towarzyszy. I wreszcie pojawił się JAX-RS dla tzw. webserwisów RESTful, ale to już temat na osobny artykuł. To wprowadzenie można zakończyć, ponieważ. następnie nauczymy się pracować z JAX-WS.

Ogólne podejście

Usługi sieciowe zawsze mają klienta i serwer. Serwer jest naszą usługą internetową i jest czasami nazywany punktem końcowym (na przykład punktem końcowym, do którego docierają komunikaty SOAP od klienta). Musimy wykonać następujące czynności:
  1. Opisz interfejs naszego serwisu internetowego
  2. Zaimplementuj ten interfejs
  3. Uruchom nasz serwis internetowy
  4. Napisz klienta i zdalnie wywołaj żądaną metodę usługi sieciowej
Usługę internetową można uruchomić różne sposoby: albo opisz klasę z główną metodą i uruchom usługę internetową bezpośrednio jako serwer, albo wdróż ją na serwerze, takim jak Tomcat lub jakikolwiek inny. W drugim przypadku sami nie uruchamiamy nowego serwera i nie otwieramy innego portu na komputerze, ale po prostu mówimy kontenerowi serwletu Tomcat, że „napisaliśmy tutaj klasy usług sieciowych, opublikuj je, aby każdy, kto się z tobą skontaktuje, mógł z nich korzystać serwis internetowy. Bez względu na to, jak zostanie uruchomiony serwis internetowy, będziemy mieli tego samego klienta.

serwer

Uruchom IDEA i utwórz nowy projekt Utwórz nowy projekt. Podaj nazwę hellowebservice i naciśnij przycisk Następny, a następnie przycisk Skończyć. w folderze źródło stworzyć pakiet pl.javarush.ws. W tym pakiecie utworzymy interfejs HelloWebService: pakiet ru. javarush. ws; // to są adnotacje, tj. sposób na oznaczenie naszych klas i metod, // związane z technologią usług sieciowych zaimportuj javaxa. jws. WebMetoda; zaimportuj javaxa. jws. Serwis internetowy; zaimportuj javaxa. jws. mydło. SOAPWiązanie; // mówimy, że nasz interfejs będzie działał jako usługa sieciowa@Serwis internetowy // powiedz, że usługa internetowa będzie używana do wywoływania metod@SOAPBinding(style = SOAPBinding.Style.RPC) interfejs publiczny HelloWebService( // powiedzmy, że tę metodę można wywołać zdalnie@WebMethod public String getHelloString(Nazwa ciągu) ; ) W tym kodzie klasy WebService i WebMethod są tak zwanymi adnotacjami i nie robią nic poza oznaczeniem naszego interfejsu i jego metody jako usługi sieciowej. To samo dotyczy klasy SOAPBinding. Jedyna różnica polega na tym, że SOAPBinding jest adnotacją z parametrami. W tym przypadku używany jest parametr style z wartością, która mówi, że serwis internetowy będzie działał nie poprzez komunikaty dokumentowe, ale jako klasyczny RPC, tj. wywołać metodę. Zaimplementujmy naszą logikę interfejsu i utwórzmy klasę HelloWebServiceImpl w naszym pakiecie. Przy okazji zaznaczam, że klasa zakończona na Impl to konwencja w Javie, zgodnie z którą implementacja interfejsów jest tak oznaczona (Impl – od słowa implementacja, czyli implementacja). Nie jest to wymagane i możesz dowolnie nazwać klasę, ale wymagają tego dobre maniery: package ru. javarush. ws; // taka sama adnotacja jak przy opisie interfejsu, zaimportuj javaxa. jws. Serwis internetowy; // ale tutaj jest używany z parametrem endpointInterface, // wskazując pełną nazwę klasy interfejsu naszego serwisu internetowego@WebService(interfejs punktu końcowego= „en.javarush.ws.HelloWebService”) klasa publiczna HelloWebServiceImpl implementuje HelloWebService ( @Override public String getHelloString (String name) ( // po prostu zwróć powitanie return "Cześć, " + imię + "!" ; ) ) Uruchommy nasz serwis internetowy jako samodzielny serwer, tj. bez udziału jakichkolwiek serwerów Tomcat i aplikacji (to temat na osobne omówienie). Aby to zrobić, w strukturze projektu w folderze źródło utwórzmy pakiet ru.javarush.endpoint , aw nim utworzymy klasę HelloWebServicePublisher z metodą main: package ru. javarush. punkt końcowy; // klasa do uruchamiania serwera WWW z usługami WWW zaimportuj javaxa. xml. ws. punkt końcowy; // klasa naszego serwisu WWW importować en. javarush. ws. hellowebserviceimpl; klasa publiczna HelloWebServicePublisher( public static void main(String... args)( // uruchom serwer WWW na porcie 1986 // i pod adresem podanym w pierwszym argumencie, // uruchom usługę sieciową przekazaną w drugim argumencie punkt końcowy. publikować( "http://localhost:1986/wss/cześć", nowy HelloWebServiceImpl()); ) ) Teraz uruchom tę klasę, klikając Shift+F10. Nic nie pojawi się w konsoli, ale serwer działa. Możesz to sprawdzić, wpisując w przeglądarce adres http://localhost:1986/wss/hello?wsdl. Otwarta strona z jednej strony dowodzi, że mamy serwer WWW (http://) działający na porcie 1986 na naszym komputerze (localhost), az drugiej pokazuje opis WSDL naszego serwisu WWW. Jeśli zatrzymasz aplikację, opis stanie się niedostępny, podobnie jak sam serwis internetowy, więc nie będziemy tego robić, tylko przejdziemy do pisania klienta.

Klient

W folderze projektu źródło stwórzmy pakiet ru.javarush.client , aw nim klasę HelloWebServiceClient z główną metodą: package ru. javarush. klient; // potrzebny do pobrania opisu wsdl i przejścia przez niego // dotrzeć do samej usługi sieciowej importować Javę. internet. Adres URL; // taki wyjątek wystąpi podczas pracy z obiektem URL importować Javę. internet. Zniekształcony adres URLWyjątek; // klasy do parsowania xml z opisem wsdl // i sięgnij po znajdujący się w nim znacznik serwisowy zaimportuj javaxa. xml. przestrzeń nazw. Qname; zaimportuj javaxa. xml. ws. usługa; // interfejs naszego serwisu internetowego (potrzebujemy więcej) importować en. javarush. ws. hellowebservice; klasa publiczna HelloWebServiceClient( public static void main(String args) zgłasza MalformedURLException( // utwórz link do opisu wsdl adres URL= nowy adres URL ( "http://localhost:1986/wss/hello?wsdl") ; // Patrzymy na parametry następnego konstruktora w pierwszym znaczniku opisu WSDL - definicjach // spójrz na pierwszy argument w atrybucie targetNamespace // Drugi argument szukaj w atrybucie name QName qname = new QName ("http://ws.site/" , "HelloWebServiceImplService" ); // Teraz możemy dotrzeć do znacznika usługi w opisie wsdl, Usługa serwisowa = usługa. utwórz (url, qname) ; // a następnie do zagnieżdżonego w nim znacznika portu, tak że // uzyskaj referencję do oddalonego od nas obiektu usługi sieciowej HelloWebService witaj = usługa. getPort(HelloWebService.class) ; // Brawo! Teraz możesz wywołać metodę zdalną System. na zewnątrz. println(witaj. getHelloString("JavaRush" )); ) ) Podałem maksimum komentarzy do kodu w listingu. Nie mam nic do dodania, więc uruchom (Shift + F10). W konsoli powinniśmy zobaczyć tekst: Hello, JavaRush! Jeśli go nie widziałeś, prawdopodobnie zapomniałeś uruchomić usługę internetową.

Wniosek

Przedstawiony ten wątek krótka dygresja do usług sieciowych. Ponownie, wiele z tego, co napisałem, to moje domysły na temat tego, jak to działa, dlatego nie należy mi zbytnio ufać. Byłbym wdzięczny, gdyby znający się na rzeczy ludzie Poprawię, bo wtedy się czegoś nauczę. UPD.

Usługa internetowa to program, do którego inne programy mogą uzyskać dostęp przez Internet (http). Załóżmy na przykład, że masz funkcję, która dostarcza tekst w formacie HTML. Celem aplikacji jest przeglądarka internetowa, która wyświetla wyniki i osoba może łatwo przeczytać ten tekst na stronie.

Z drugiej strony docelowymi odbiorcami usługi internetowej są inne programy lub inne usługi internetowe, które wykorzystują dane obsługiwane przez usługę internetową. Zazwyczaj wypłaty są dokonywane do standardowy język, które mogą być rozumiane przez inne programy. Weź powyższy przykład, jeśli usługa sieciowa wyprowadza tekst w formacie XML, wtedy inne usługi internetowe, które potrafią odczytywać lub rozumieć XML, mogą korzystać z tych danych wyjściowych.

Główną zaletą usługi internetowej jest to, że aplikacje można pisać w dowolnym języku, ale mogą one komunikować się i komunikować ze sobą za pośrednictwem usługi internetowej. Aplikacje, napisane w różnych językach programowania i działające na różnych platformach, mogą wykorzystywać usługi sieciowe do wymiany danych przez Internet (HTTP). Ta interakcja (na przykład między Javą a Pythonem lub aplikacje Windowsa i Linux) wiąże się z wykorzystaniem otwartych standardów (XML, SOAP, HTTP).

  • SOAP (prosty protokół dostępu do obiektów)
  • UDDI (uniwersalny opis, wykrywanie i integracja)
  • WSDL (język opisu usług sieciowych)

Ile jest różnych rodzajów usług internetowych?

Przede wszystkim istnieją dwa rodzaje usług sieciowych: protokół SOAP (Simple Object Access Protocol) i REST (Representational State Transfer).

  • Usługa WWW SOAP akceptuje żądanie XML i generuje dane wyjściowe XML.
  • Usługa internetowa REST jest bardziej ogólna i może akceptować zarówno XML, jak i JSON jako żądanie i generować dane wyjściowe w XML, a także JSON, a nawet HTML

Ten problem można zbadać bardziej szczegółowo na naszej stronie.

Adnotacja: Obszary użytkowania. Zalety. Cechy tworzenia serwisów internetowych dla platformy .NET. Opis i odkrycie usługi sieciowej

Co to jest usługa internetowa XML?

Wraz z rozwojem technologii informatycznych pojawiły się różne podejścia do pisania programów: modułowe programowanie, sterowany zdarzeniami programowanie, zorientowany na komponenty programowanie i projekt. Logiczna kontynuacja tych podejść była zorientowana na usługi rozwój oprogramowania.

Zastosowanie podejścia zorientowanego na usługi pozwala nam mówić o ponownym użyciu (reuse) na poziomie makro (poziom usługi), w przeciwieństwie do poziomu mikro (poziom obiektu). Podejście zorientowane na usługi polega na wykorzystaniu prostych i ogólnie przyjętych standardów, co pozwala szerokiej gamie aplikacji na wzajemne korzystanie z funkcjonalności. Usługi mogą być pisane przy użyciu szerokiej gamy języków programowania, na różnych platformach. Ponadto usługi mogą być wdrażane oddzielnie lub jako część pakiet oprogramowania w dowolnym miejscu na świecie, a tym samym zapewnią dostęp do ich funkcjonalności przez sieć.

Zadzwońmy usługa zasób, który implementuje funkcję biznesową i ma następujące właściwości:

  • jest wielokrotnego użytku;
  • zdefiniowane przez jeden lub więcej wyraźnych interfejsów niezależnych od technologii;
  • luźno powiązane z innymi podobnymi zasobami i mogą być wywoływane za pośrednictwem protokołów komunikacyjnych, które umożliwiają interakcję zasobów między sobą.

Szczególnym przypadkiem usługi jest usługa sieciowa XML.

Usługa sieciowa XML to specjalny rodzaj aplikacji internetowej, która:

  • wdrożony na serwerze WWW;
  • publikuje metody internetowe, które mogą być wywoływane przez klientów zewnętrznych;
  • czeka na otrzymanie żądań HTTP, które są poleceniami do wywołania metod webowych;
  • wykonuje metody sieciowe i zwraca wyniki.

W przeciwieństwie do tradycyjnej aplikacji internetowej usługa internetowa nie ma interfejsu użytkownika. Zamiast tego ma interfejs oprogramowania, czyli usługa internetowa udostępnia funkcje (metody sieciowe), które można wywoływać zdalnie (na przykład przez Internet). Serwis internetowy nie jest przeznaczony do obsługi użytkowników końcowych. Jego zadaniem jest udostępnianie usług innym aplikacjom, niezależnie od tego, czy są to aplikacje webowe, aplikacje z grafiką interfejs użytkownika lub aplikacje konsolowe.

Serwis internetowy może dostarczać w czasie rzeczywistym informacji o cenach akcji, sprawdź karty kredytowe lub zgłoś prognozę pogody. Usługi sieciowe są tak różnorodne, jak konwencjonalne aplikacje.

Usługi sieciowe nie są własnością konkretnej firmy. Jest to branżowy standard oparty na otwartych protokołach (SOAP, HTTP itp.). Usługi sieciowe są wdrażane na różnych platformach (w tym na serwerach pod Sterowanie Windowsem lub UNIX). Usługi sieciowe można rozwijać przy użyciu wielu narzędzi programistycznych (od Edytor tekstu do rodziny Microsoftu pracownia wizualna ).

Metody większości usług sieciowych są wywoływane przez żądania HTTP zawierające komunikaty SOAP SOAP to język XML ( słownictwo XML ) do wywoływania zdalnych procedur przez HTTP i inne protokoły ( Pełny opis SOAP http://www.w3.org/TR/SOAP).

Miejsce usług internetowych wśród innych technologii połączeń zdalnych

Istnieje wiele protokołów i technologii połączenie zdalne: Składnik rozproszony firmy Microsoft Model obiektowy(DCOM), Common Object Request Broker Architecture (CORBA), Common Object Request Broker Architecture (CORBA), Remote Method Invocation (RMI) firmy Sun, . NET Remoting, XML Web Services.

Wszystkie te technologie zorientowane na komponenty (DCOM, CORBA i RMI) są z powodzeniem stosowane w aplikacjach intranetowych od wielu lat. Zapewniają solidną, skalowalną architekturę. Istnieją jednak dwa główne problemy związane z korzystaniem z tych technologii w Internecie. Po pierwsze, nie współpracują ze sobą dobrze. Wszystkie technologie działają z obiektami, ale różnią się znacznie szczegółami: koło życia, obsługa konstruktorów i stopień obsługi dziedziczenia. Drugim, ważniejszym aspektem jest to, że skupienie się na interakcjach RPC prowadzi do budowy ściśle powiązanych systemów opartych na jawnych wywołaniach metod obiektowych.

W przeciwieństwie do tych technologii, XML Web Services i . NET Remoting w pełni wdrożyć podejście obiektowe do programowania stron internetowych.

Usługa sieciowa XML- komponent dostarczający zestaw klientom internetowym Funkcje API lub metody internetowe. XML jest częścią nazwy, ponieważ usługi sieciowe i ich klienci używają go do wymiany danych. Usługi sieciowe oparte są na otwarte standardy, takie jak HTTP, XML (Extensible Markup Language), SOAP (Simple Object Access Protocol – standard internetowy opisujący sposób, w jaki aplikacje mogą się komunikować, czyli wywoływać wzajemnie swoje metody, wykorzystując HTTP i inne protokoły). Głównym zadaniem usług sieciowych jest zapewnienie interakcji między programami. Wiele z nich działa na serwerach UNIX i są dostępne dla klientów Windows. Dane przekazywane do usług sieciowych są serializowane do formatu XML i wysyłane w pakietach SOAP. Metadane dotyczące treści takich wiadomości są przechowywane w kontrakcie WSDL usługi internetowej i schematach XSD. Główną zaletą tego podejścia jest czytelność metadanych. Programista może łatwo przejrzeć cały opis usługi internetowej, a nawet stworzyć własny moduł analizujący pakiety SOAP.

Komunikacja zdalna .NET zapewnia infrastrukturę dla rozproszonych obiektów. Jest znacznie bardziej złożony niż prosta architektura usług internetowych oparta na przekazywaniu wiadomości. . NET Remoting obejmuje przekazywanie parametrów przez odwołanie i wartość, wywołania zwrotne, aktywację wielu obiektów i zasady zarządzania cyklem życia. Aby korzystać z tych funkcji, aplikacja kliencka musi być biegła we wszystkich technologiach. Dane w. NET Remoting są wysyłane w formacie binarnym lub SOAP. Jednak w każdym przypadku metadane dotyczące struktury przesyłanych informacji są zawarte w środowisku wykonawczym języka wspólnego. Bez środowiska uruchomieniowego języka wspólnego (CLR) aplikacja kliencka nie będzie mogła przeanalizować pliku . NET Remoting nagłówki SOAP. To jest. NET Remoting ma znacznie wyższe wymagania niż usługi sieciowe.

Rozwój serwisów internetowych na platformie .NET

Istnieje wiele sposobów pisania usług sieciowych. Można je opracować ręcznie lub przy użyciu narzędzi SOAP dostarczanych przez firmy Microsoft, IBM itp. Pisanie usług sieciowych za pomocą pomoc Microsoftu. NET ma dwie zalety:

  • .NET Framework znacznie upraszcza proces programowania, udostępniając bibliotekę klas i automatyzując poszczególne etapy programowania;
  • Usługi sieci Web napisane przy użyciu platformy .NET Framework to aplikacje zarządzane. Oznacza to, że w takich aplikacjach nie ma problemów z wyciekami pamięci, nieprawidłowo zainicjowanymi wskaźnikami i innymi problemami. typowe problemy programowanie.

kreacja

Opracujmy prostą usługę sieciową AdditionService, która wykonuje dodawanie dwóch liczb. Będzie miał tylko jedną metodę Add, która pobiera dwie liczby całkowite jako parametr i również zwraca liczbę całkowitą. AdditionService demonstruje kilka ważnych zasad programowania usług internetowych przy użyciu Microsoft .NET Framework.

  • Usługi sieciowe są implementowane jako pliki ASMX. ASMX to specjalne rozszerzenie nazwy pliku zarejestrowane w ASP .NET (dokładniej w ASP.NET HTTP Handler) w głównym pliku konfiguracyjnym ASP .NET Machine.config.
  • Pliki ASMX zaczynają się od dyrektywy @WebService. Ta dyrektywa musi zawierać co najmniej atrybut Class, który określa klasę, z której składa się usługa internetowa.
  • Klasy usługi sieci Web mogą mieć opcjonalne atrybuty usługi sieci Web. W ten przykład taki atrybut określa nazwę usługi internetowej i opis, który jest wyświetlany na stronie HTML, gdy użytkownik wywołuje AdditionService.asmx w przeglądarce.
  • Metody sieci Web są deklarowane przez przypisanie atrybutu WebMethod do metod publicznych klasy usługi sieci Web. W przypadku metod pomocniczych, które są używane wewnętrznie, ale niedostępne dla klientów zewnętrznych, ten atrybut jest po prostu pomijany.
  • HTTP, XML i SOAP są „niewidoczne”. Dane XML i komunikaty SOAP są obsługiwane przez .NET Framework.

AdditionService.asmx<%@ WebService language="C#" Class="AddService" %>using System using System.Web.Services class AddService ( public int Add (int a, int b) ( return a + b ) )

Pomimo niewielkich rozmiarów AdditionService.asmx jest kompletną usługą internetową po zainstalowaniu na serwerze sieciowym ASP.NET. Jego metody są wywoływane za pomocą SOAP, HTTP GET i HTTP POST i mogą zwracać wyniki jako odpowiedzi SOAP lub proste opakowania XML.

Korzystając z kodu w tle, klasy usługi sieciowej można przenieść z plików asmx do osobnych plików.

Usługi sieciowe obsługują użycie złożone typy danych jako parametry wejściowe lub wyjściowe. Obsługiwane są złożone typy danych, ponieważ XML ułatwia serializację większości typów danych. Jednak podczas automatycznego testowania usługi internetowej ASP .NET nie generuje stron testowych dla metod akceptujących złożone typy danych. Dzieje się tak, ponieważ nie można przekazywać złożonych typów danych do metody internetowej za pomocą HTTP GET i POST.

Usługi sieciowe umożliwiają wywoływanie własnych metod asynchronicznie. Wywołanie asynchroniczne zwraca się natychmiast, niezależnie od tego, ile czasu zajmuje usłudze sieci Web przetworzenie połączenia. Wywołania asynchroniczne są przydatne, gdy przetwarzanie wywołania zajmuje dużo czasu. Aplikacja wykonuje wywołanie, następnie kontynuuje działanie bez czekania na wynik wywołania, a później odbiera wyniki wywołania asynchronicznego. Wynik uzyskuje się poprzez ponowne wywołanie metody webowej w dogodnym dla aplikacji momencie lub poprzez zapisanie się na powiadomienie o zakończeniu przetwarzania wywołania przez web service (mechanizm delegatów).

Usługi sieciowe można tworzyć za pomocą narzędzi takich jak Microsoft Visual Studio 2005. Istnieje oddzielny typ projektu ASP .NET Web Service do tworzenia usług sieci Web. Visual Studio generuje plik asmx, plik z kodem w tle opisującym klasy usług internetowych, plik konfiguracyjny usług internetowych itp. Po uruchomieniu projektu do wykonania klasy usług są kompilowane, a plik asmx jest otwierany w oknie przeglądarki.

Opisywanie usług sieciowych za pomocą kontraktów

Aby inni programiści mogli korzystać z AdditionService, muszą wiedzieć, jakie metody udostępnia, jakie protokoły obsługuje, sygnatury metod i adres usługi internetowej (URL). Wszystkie te i inne informacje można opisać w języku WSDL (język opisu usługi sieciowej).


Wykrywanie usług internetowych

Skąd inni programiści wiedzą o istnieniu usługi AdditionService?

Po pierwsze, z pomocą DISCO (skrót od Discovery) - mechanizmu plikowego do wyszukiwania lokalnych serwisów internetowych, czyli mechanizmu pozyskiwania listy dostępnych serwisów internetowych z plików DISCO hostowanych na serwerach WWW. Ponadto pliki DISCO zawierają zapisy lokalizacji umów WSDL dostępnych usług. Plik DISCO to plik XML z rekordami.

Możliwe jest również użycie plików VSDISCO, które są podobne do plików DISCO, ale ich zawartość jest wynikiem dynamicznego wyszukiwania usług sieciowych we wskazanych katalogach i wszystkich zagnieżdżonych podkatalogach. ASP .NET odwzorowuje rozszerzenie nazwy pliku .vsdisco na procedurę obsługi HTTP, która przeszukuje dany katalog i jego podkatalogi w poszukiwaniu asmx i disco i zwraca dynamicznie generowany dokument DISCO. Ze względów bezpieczeństwa wyszukiwanie dynamiczne jest wyłączone w niektórych wersjach .NET Framework, ale można je włączyć, edytując wpisy w pliku Machine.config.

Ale jak wygląda wyszukiwanie usług internetowych w globalnej sieci? Aby wyszukiwać usługi sieciowe w globalnej sieci, Microsoft, IBM i Ariba wspólnie opracowały UDDI (Universal Description Discovery and Integration) - specyfikację do budowania rozproszone bazy dane, które pozwalają znaleźć usługi sieciowe. UDDI jest obsługiwane przez setki firm. Witryny UDDI same w sobie są usługami sieciowymi. Każdy może opublikować swój rejestr w oparciu o UDDI. Większość programistów nigdy nie korzysta bezpośrednio z interfejsu API UDDI. Zamiast tego dostęp do rejestrów UDDI uzyskuje się za pomocą narzędzi programistycznych. Generują również klasy opakowujące dla wykrytych i wybranych usług sieciowych.

Wyniki

Usługa sieci Web XML to składnik oprogramowania zapewniający funkcjonalność, z której może korzystać wiele różnych systemów obsługujących standardy, takie jak XML i HTTP. Klienci usługi sieci Web mogą być lokalni lub aplikacje zdalne. Usługi sieciowe umożliwiają tworzenie struktur ułatwiających integrację różne systemy oparte na prostych, ogólnie przyjętych standardach.

WEB-service - (z angielskiego serwisu internetowego, synonim - serwis online). Usługi sieciowe to usługi świadczone w Internecie za pomocą specjalne programy. Na przykład usługi takie jak: hosting, E-mail, Magazyn online różne informacje(pliki, zakładki), kalendarz itp. Ważną właściwością serwisu internetowego jest to, że nie jest on zależny od dostawcy, komputera czy przeglądarki – możesz pracować ze swoimi danymi w dowolnym miejscu na świecie, do którego masz dostęp.

Knyazev A.A. Słownik encyklopedyczny środków masowego przekazu. - Biszkek: Wydawnictwo KRSU. AA Knyazev. 2002 .

Zobacz, czym jest „usługa WEB” w innych słownikach:

    Serwis internetowy

    Serwis internetowy- Serwis internetowy. Usługa internetowa, usługa internetowa (angielski serwis internetowy) system oprogramowania, identyfikowane przez interfejsy łańcuchowe zdefiniowane w XML i przesyłane za pomocą protokołów internetowych. Usługa internetowa to jednostka modułowości podczas korzystania z ... ... Wikipedii

    Protokół komunikacji z pamięcią podręczną sieci Web- (WCCP) Protokół przekierowania zawartości opracowany przez firmę Cisco. Zapewnia mechanizm przekierowywania przepływów ruchu w czasie rzeczywistym. Posiada wbudowane skalowanie, równoważenie obciążenia, odporność na uszkodzenia. Cisco IOS ... ... Wikipedia

    Usługa map internetowych- (WMS Russian Web Map Service) standardowy protokół służący do udostępniania przez Internet obrazów z odniesieniami geograficznymi, generowanych przez serwer kartograficzny na podstawie danych z bazy danych GIS. Ten standard został opracowany i po raz pierwszy ... ... Wikipedia

    Web Hotel Salvador- (Salvador, Brazylia) Kategoria hotelu: hotel 2-gwiazdkowy Adres: Rua das Alfazemas … Katalog hoteli

    Web Hotel Aparecida- (Aparecida, Brazylia) Kategoria hotelu: 3-gwiazdkowy hotel Adres: Av. Isaac Ferrei… Katalog hoteli

    architektura zorientowana na usługi- Procesy biznesowe organizacji realizowane są w oparciu o usługi świadczone przez istniejące aplikacje Klienta. Jeśli aplikacje nie wspierają możliwości świadczenia usług (Web Services), wdrożenie produktu rozwija się ... ... Podręcznik tłumacza technicznego

    sieć 2

    Sieć 2.0- Kluczowe pojęcia związane z Web 2.0 Web 2.0 (definicja Tima O'Reilly'ego) to technika projektowania systemów, które dzięki uwzględnieniu interakcji sieciowych stają się lepsze niż więcej osób są one wykorzystywane. Funkcja Web 2.0. jest zasada ... ... Wikipedia

    stronie internetowej- Zapytanie „strona internetowa” jest przekierowywane tutaj. Widzieć także inne znaczenia. Witryna internetowa (z angielskiego Witryna internetowa: sieć internetowa i witryna „miejsce”) w śieć komputerowa zjednoczeni pod jednym Nazwa domeny lub adres IP) zbiór dokumentów osoby prywatnej lub……Wikipedii

Książki

  • Technologie informacyjne w branży turystycznej, VN Shitov. Podręcznik szczegółowo omawia Technologie komputerowe ogólny cel za pomocą popularnych pakiety Microsoftu Office 2010 i alternatywne kompleksy, użyj ... Kup za 546 rubli
  • 75 Kompletne rozwiązania dla Twojej strony internetowej w PHP , Steinmetz W., Ward B.. Każdy, kto tworzy lub zamierza stworzyć własną stronę internetową, nieuchronnie staje przed szeregiem zadań i trudności: jak zrobić blog na stronie……. "zapiąć" głosowanie, zamknąć pewne...

Usługa internetowa (usługa) to program, który organizuje interakcje między witrynami. Informacje z jednego portalu są przenoszone do innego.

Na przykład jest linia lotnicza. Ma odpowiednio wiele lotów, dużo biletów. Przesyła informacje za pośrednictwem usługi internetowej do witryny agregatora podróży turystycznych. Użytkownik, który wejdzie do agregatora, będzie mógł od razu kupić bilety na tę linię lotniczą.

Innym przykładem usług internetowych jest witryna śledząca pogodę, która dostarcza informacji o warunkach pogodowych w określonym mieście lub kraju jako całości. Ta informacja również często wykorzystywane przez osoby trzecie.

Informacje w Internecie są różnorodne. Witryny są zarządzane przez różne systemy. stosowane są różne protokoły transmisji i szyfrowania. Usługi sieciowe upraszczają wymianę informacji między różnymi witrynami.

Architektura i protokoły usług sieciowych

Możesz zdefiniować 3 instancje, które ze sobą współpracują: katalog, kontrahent i klient. Po utworzeniu usługi wykonawca rejestruje ją w katalogu, a klient odnajduje tam usługę.

Mechanizm wymiany danych jest ukształtowany w Opisie usług sieciowych. Jest to specyfikacja obejmująca formaty przesyłania, rodzaje treści, protokoły transportowe, które są wykorzystywane w wymianie informacji pomiędzy klientem a usługodawcą transportującym.

Obecnie do realizacji różnych usług internetowych najczęściej wykorzystuje się kilka technologii:

  1. TCP/IP jest protokołem zrozumiałym dla prawie wszystkich sprzęt sieciowy, od komputerów typu mainframe po urządzenia przenośne i PDA.
  2. HTML to uniwersalny język znaczników używany do wyświetlania treści na urządzeniach konsumenckich.
  3. XML to uniwersalne narzędzie do obsługi wszelkiego rodzaju danych. Na jego bazie mogą działać również inne protokoły wymiany informacji: SOAP i WSDL.
  4. UDDI jest uniwersalnym źródłem rozpoznawania, integracji i opisu. Z reguły działa w sieciach prywatnych i nie znalazł jeszcze wystarczającej dystrybucji.

Uniwersalność prezentowanych technologii jest podstawą zrozumienia usług internetowych. Pracują na standardowych technologiach, które są niezależne od dostawców aplikacji i innych zasobów sieciowych. Można stosować w dowolnym system operacyjny, serwery aplikacji, języki programowania itp.

Zalety

  • kreacja niezbędne warunki do interakcji komponentów oprogramowania niezależnie od platformy.
  • Usługi sieciowe oparte są na otwartych standardach protokołów. Dzięki wprowadzeniu języka XML tworzenie i konfigurowanie usług sieciowych jest łatwe.
  • Zastosowanie protokołu HTTP gwarantuje interakcję systemów poprzez dostęp międzysieciowy.

Wady

  • Niska wydajność i duży ruch w porównaniu z systemami RMI, CORBA, DCOM, ze względu na użycie wiadomości XML w kontekście tekstowym.
  • Poziom bezpieczeństwa. Wszystkie nowoczesne usługi internetowe muszą implementować kodowanie i wymagać autoryzacji użytkownika. To, czy wystarczy tutaj HTTPS, czy też potrzebne są bardziej niezawodne protokoły, takie jak XML Encryption, SAML itp., Decyduje się podczas opracowywania.

Zadania usługi sieciowej

Usługi sieciowe mogą być wykorzystywane w wielu obszarach.

Transakcje B2B

Integracja procesów przebiega od razu, bez udziału ludzi. Na przykład aktualizacja katalogu sklepu internetowego o nowe produkty. Są one przywożone do magazynu, a magazynier zaznacza przybycie w bazie danych. Informacje są automatycznie przekazywane do sklepu internetowego. A kupujący zamiast napisu „Brak na stanie” na karcie produktu widzi jego ilość.

Integracja usług korporacyjnych

Jeśli firma korzysta z programów korporacyjnych, usługa internetowa pomoże w ustaleniu ich wspólnej pracy.

Stworzenie systemu klient-serwer

Usługi służą do dostosowania działania klienta i serwera. Daje to następujące korzyści:

  • nie może sprzedawać sam oprogramowanie, ale płatny dostęp do serwisu internetowego;
  • łatwiejsze rozwiązywanie problemów za pomocą oprogramowania innych firm;
  • łatwiej zorganizować dostęp do treści i materiałów serwera.

Usługa internetowa to aplikacja, która upraszcza ustawienie techniczne interakcje zasobów.

DZWON

Są tacy, którzy przeczytali tę wiadomość przed tobą.
Zapisz się, aby otrzymywać najnowsze artykuły.
E-mail
Nazwa
Nazwisko
Jak chciałbyś przeczytać The Bell
Bez spamu