Co to są usługi internetowe? Architektura, typy, przykład

Co to jest usługa internetowa?

Serwis internetowy to ustandaryzowane medium do propagowania komunikacji między aplikacjami klienckimi i serwerowymi w sieci WWW. Usługa sieciowa to moduł oprogramowania przeznaczony do wykonywania określonego zestawu zadań.

  • Usługi sieciowe w chmurze obliczeniowej można wyszukiwać w sieci, a także można z nich odpowiednio wywoływać.
  • Po wywołaniu usługa sieci Web byłaby w stanie zapewnić funkcjonalność klientowi, który wywołuje tę usługę sieci Web.

W tym samouczku dotyczącym usług sieci Web poznasz podstawy usług sieci Web-

  • Jak działają usługi internetowe?
  • Dlaczego potrzebujesz usługi internetowej?
  • Rodzaj usługi internetowej
  • Zalety usług internetowych
  • Architektura usług internetowych
  • Charakterystyka usługi internetowej
  • Jak działają usługi internetowe?

    Jak działają usługi internetowe?



    Powyższy diagram pokazuje bardzo uproszczony obraz tego, jak faktycznie działa usługa sieciowa. Klient wywoływałby serię wywołań usług internetowych za pośrednictwem żądań do serwera, który byłby hostem rzeczywistej usługi internetowej.

    Żądania te są wysyłane za pośrednictwem tak zwanych zdalnych wywołań procedur. Zdalne wywołania procedur (RPC) to wywołania metod, które są obsługiwane przez odpowiednią usługę sieciową.

    Na przykład Amazon udostępnia usługę internetową, która podaje ceny produktów sprzedawanych online za pośrednictwem amazon.com. Warstwa frontendowa lub warstwa prezentacji może być w .Net lub Java, ale każdy język programowania miałby możliwość komunikowania się z usługą sieciową.

    Głównym elementem projektu serwisu internetowego są dane przesyłane między klientem a serwerem, czyli XML. XML (Extensible Markup Language) jest odpowiednikiem HTML i łatwym do zrozumienia językiem pośrednim, który jest rozumiany przez wiele języków programowania.

    Więc kiedy aplikacje komunikują się ze sobą, w rzeczywistości rozmawiają w XML. Zapewnia to wspólną platformę dla aplikacji opracowanych w różnych językach programowania do wzajemnej komunikacji.

    Usługi WWW używają protokołu SOAP (Simple Object Access Protocol) do przesyłania danych XML między aplikacjami. Dane przesyłane są przez normalny HTTP. Dane wysyłane z serwisu internetowego do aplikacji nazywane są komunikatem SOAP. Komunikat SOAP to nic innego jak dokument XML. Ponieważ dokument jest napisany w XML, aplikacja kliencka wywołująca usługę sieciową może być napisana w dowolnym języku programowania.

    Dlaczego potrzebujesz usługi internetowej?

    Współczesne aplikacje biznesowe wykorzystują różne platformy programistyczne do tworzenia aplikacji internetowych. Niektóre aplikacje mogą być tworzone w Javie, inne w .Net, a inne w Angular JS, Node.js itp.

    Najczęściej te heterogeniczne aplikacje wymagają komunikacji między nimi. Ponieważ są one budowane przy użyciu różnych języków programowania, naprawdę trudno jest zapewnić dokładną komunikację między aplikacjami.

    Tutaj wkraczają usługi internetowe. Usługi internetowe zapewniają wspólną platformę, która pozwala wielu aplikacjom zbudowanym na różnych języki programowania mieć możliwość komunikowania się ze sobą.

    Rodzaj usługi internetowej

    Istnieją głównie dwa rodzaje usług internetowych.

    1. Usługi sieciowe SOAP.
    2. Usługi sieciowe zgodne z REST.

    Aby usługa internetowa była w pełni funkcjonalna, muszą istnieć pewne komponenty. Te komponenty muszą być obecne niezależnie od języka programowania używanego do programowania usługi sieciowej.

    Przyjrzyjmy się tym komponentom bardziej szczegółowo.

    SOAP (prosty protokół dostępu do obiektów)

    SOAP jest znany jako niezależny od transportu protokół przesyłania wiadomości. SOAP opiera się na przesyłaniu danych XML w postaci komunikatów SOAP. Każda wiadomość ma coś, co jest znane jako dokument XML. Tylko struktura dokumentu XML jest zgodna z określonym wzorcem, ale nie zawartość. Najlepszą częścią usług internetowych i SOAP jest to, że wszystko jest wysyłane przez HTTP, który jest standardowym protokołem internetowym.

    Oto, z czego składa się wiadomość SOAP

    • Każdy dokument SOAP musi mieć element główny zwany elementem. Element główny jest pierwszym elementem w dokumencie XML.
    • „Koperta” jest z kolei podzielona na 2 części. Pierwszy to nagłówek, a następny to treść.
    • Nagłówek zawiera dane routingu, które są w zasadzie informacją, która mówi dokumentowi XML, do którego klienta musi zostać wysłany.
    • Treść będzie zawierać rzeczywistą wiadomość.

    Poniższy schemat przedstawia prosty przykład komunikacji przez SOAP.

    Protokół SOAP

    W tym artykule omówimy szczegółowo SOAP instruktaż .

    WSDL (język opisu usług internetowych)

    Nie można korzystać z usługi internetowej, jeśli nie można jej znaleźć . Klient wywołujący usługę sieciową powinien wiedzieć, gdzie faktycznie znajduje się usługa sieciowa.

    Po drugie, aplikacja kliencka musi wiedzieć, co faktycznie robi usługa sieciowa, aby mogła wywołać odpowiednią usługę sieciową. Odbywa się to za pomocą WSDL, znanego jako język opisu usług sieci Web. Plik WSDL jest ponownie plikiem opartym na XML, który zasadniczo informuje aplikację kliencką, co robi usługa sieciowa. Korzystając z dokumentu WSDL, aplikacja kliencka byłaby w stanie zrozumieć, gdzie znajduje się usługa sieciowa i jak można z niej korzystać.

    Przykład usługi internetowej

    Poniżej podano przykład usługi sieci Web w pliku WSDL. |_+_|

    Ważne aspekty, na które należy zwrócić uwagę na temat powyższych przykładów deklaracji WSDL usług internetowych, są następujące:

    1. - Parametr komunikatu w definicji WSDL służy do definiowania różnych elementów danych dla każdej operacji wykonywanej przez usługę sieciową. Tak więc w powyższych przykładach usług sieciowych mamy 2 komunikaty, które mogą być wymieniane między usługą sieciową a aplikacją kliencką, jedna to „TutorialRequest”, a druga to operacja „TutorialResponse”. TutorialRequest zawiera element o nazwie „TutorialID”, który jest typu string. Podobnie operacja TutorialResponse zawiera element o nazwie „TutorialName”, który jest również ciągiem typu.
    2. - To właściwie opisuje operację, którą może wykonać usługa sieciowa, która w naszym przypadku nazywa się Tutorial. Ta operacja może zająć 2 wiadomości; jeden jest komunikatem wejściowym, a drugi komunikatem wyjściowym.
    3. - Ten element zawiera używany protokół. Tak więc w naszym przypadku definiujemy go tak, aby używał http ( http://schemas.xmlsoap.org/soap/http ). Określamy również inne szczegóły dotyczące treści operacji, takie jak przestrzeń nazw i czy wiadomość powinna być zakodowana.

    W tym miejscu szczegółowo omówimy „WDSL” instruktaż .

    Uniwersalny opis, wykrywanie i integracja (UDDI)

    UDDI to standard opisu, publikowania i wykrywania usług internetowych dostarczanych przez konkretnego dostawcę usług. Zawiera specyfikację, która pomaga w przechowywaniu informacji o serwisach internetowych.

    Teraz omówiliśmy w poprzednim temacie o WSDL i o tym, jak zawiera informacje o tym, co faktycznie robi usługa sieci Web. Ale w jaki sposób aplikacja kliencka może zlokalizować plik WSDL, aby zrozumieć różne operacje oferowane przez usługę sieciową? Tak więc UDDI jest odpowiedzią na to i zapewnia repozytorium, w którym mogą być hostowane pliki WSDL. Dzięki temu aplikacja kliencka będzie miała pełny dostęp do UDDI, który działa jak baza danych zawierająca wszystkie pliki WSDL.

    Podobnie jak książka telefoniczna zawiera imię i nazwisko, adres i numer telefonu konkretnej osoby, tak samo rejestr UDDI będzie zawierał istotne informacje dotyczące usługi sieciowej . Aby aplikacja kliencka wiedziała, gdzie można ją znaleźć.

    Zalety usług internetowych

    Rozumiemy już, dlaczego w pierwszej kolejności pojawiły się usługi internetowe, które miały zapewnić platformę, która umożliwiałaby komunikację między różnymi aplikacjami.

    Spójrzmy jednak na listę zalet usług internetowych, aby dowiedzieć się, dlaczego korzystanie z usług internetowych jest ważne.

    1. Ujawnianie funkcjonalności biznesowej w sieci — Usługa sieciowa to jednostka kodu zarządzanego, która zapewnia pewną funkcjonalność aplikacjom klienckim lub użytkownikom końcowym. Funkcjonalność tę można wywołać przez protokół HTTP, co oznacza, że ​​można ją również wywołać przez Internet. W dzisiejszych czasach wszystkie aplikacje są w Internecie, co sprawia, że ​​usługi sieciowe są bardziej użyteczne. Oznacza to, że usługa sieciowa może znajdować się w dowolnym miejscu w Internecie i zapewniać niezbędną funkcjonalność zgodnie z wymaganiami.

    2. Interoperacyjność między aplikacjami - Usługi sieciowe pozwalają różnym aplikacjom komunikować się ze sobą i udostępniać między sobą dane i usługi. Wszystkie typy aplikacji mogą ze sobą rozmawiać. Więc zamiast pisać konkretny kod, który może być zrozumiany tylko przez określone aplikacje, możesz teraz napisać ogólny kod, który może być zrozumiany przez wszystkie aplikacje

    3. Standardowy protokół, który wszyscy rozumieją - Usługi sieciowe używają do komunikacji znormalizowanego protokołu branżowego. Wszystkie cztery warstwy (Transport usług, Komunikaty XML, Opis usługi i Odnajdywanie usług) wykorzystują dobrze zdefiniowane protokoły w stosie protokołów usług internetowych.

    4. Redukcja kosztów komunikacji - Usługi internetowe korzystają z protokołu SOAP przez HTTP, dzięki czemu można korzystać z istniejącego taniego Internetu do wdrażania usług internetowych.

    Architektura usług internetowych

    Każda struktura potrzebuje jakiejś architektury, aby upewnić się, że cała struktura działa zgodnie z oczekiwaniami, podobnie w usługach internetowych. ten Architektura usług internetowych składa się z trzech różnych ról, jak podano poniżej:

    1. Dostawca - Dostawca tworzy usługę sieciową i udostępnia ją aplikacji klienckiej, która chce z niej korzystać.
    2. Zleceniodawca - Żądający to nic innego jak aplikacja kliencka, która musi skontaktować się z usługą sieciową. Aplikacja kliencka może być aplikacją .Net, Java lub dowolną inną aplikacją opartą na języku, która szuka jakiejś funkcjonalności za pośrednictwem usługi sieciowej.
    3. Pośrednik - Broker to nic innego jak aplikacja zapewniająca dostęp do UDDI. UDDI, jak omówiono we wcześniejszym temacie, umożliwia aplikacji klienckiej zlokalizowanie usługi sieci Web.

    Poniższy diagram pokazuje, w jaki sposób dostawca usługi, zleceniodawca usługi i rejestr usługi współdziałają ze sobą.

    Architektura usług internetowych



    1. Publikować - Dostawca informuje brokera (rejestr usług) o istnieniu usługi sieciowej za pomocą interfejsu publikowania brokera w celu udostępnienia usługi klientom
    2. Odnaleźć - Żądający konsultuje się z brokerem w celu zlokalizowania opublikowanej usługi internetowej
    3. Wiązać — Dzięki informacjom uzyskanym z brokera (rejestru usług) o usłudze sieciowej osoba żądająca może powiązać lub wywołać usługę sieciową.

    Charakterystyka usługi internetowej

    Usługi sieciowe mają następujące specjalne cechy behawioralne:

    1. Są oparte na XML - Web Services używa XML do reprezentowania danych w warstwie reprezentacji i transportu danych. Używanie XML eliminuje wszelkie zależności sieciowe, system operacyjny lub rodzaj platformy, ponieważ XML jest wspólnym językiem rozumianym przez wszystkich.

    2. Luźno powiązane – Luźne sprzężenie oznacza, że ​​klient i usługa sieciowa nie są ze sobą powiązane, co oznacza, że ​​nawet jeśli usługa sieciowa zmienia się w czasie, nie powinna zmieniać sposobu, w jaki klient wywołuje usługę sieciową. Przyjęcie luźno powiązanej architektury sprawia, że ​​systemy oprogramowania są łatwiejsze w zarządzaniu i umożliwiają prostszą integrację między różnymi systemami.

    3. Synchroniczny lub asynchroniczny funkcjonalność - Synchroniczność odnosi się do związania klienta z wykonaniem usługi. W operacjach synchronicznych klient będzie faktycznie czekał na zakończenie operacji przez usługę sieci Web. Przykładem tego jest prawdopodobnie scenariusz, w którym wykonywana jest operacja odczytu i zapisu bazy danych. Jeśli dane są odczytywane z jednej bazy danych, a następnie zapisywane do innej, operacje muszą być wykonywane w sposób sekwencyjny. Operacje asynchroniczne umożliwiają klientowi wywoływanie usługi, a następnie równoległe wykonywanie innych funkcji. Jest to jedna z powszechnych i prawdopodobnie najbardziej preferowanych technik zapewniających, że inne usługi nie zostaną zatrzymane podczas wykonywania określonej operacji.

    4. Możliwość obsługi zdalnych wywołań procedur (RPC) - Usługi sieci Web umożliwiają klientom wywoływanie procedur, funkcji i metod na obiektach zdalnych przy użyciu protokołu opartego na XML. Procedury zdalne ujawniają parametry wejściowe i wyjściowe, które musi obsługiwać usługa sieci Web.

    5. Obsługuje wymianę dokumentów - Jedną z kluczowych zalet XML jest jego ogólny sposób przedstawiania nie tylko danych, ale także złożonych dokumentów. Dokumenty te mogą być tak proste, jak reprezentowanie bieżącego adresu, lub mogą być tak złożone, jak reprezentowanie całej książki.