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

Spisie treści:

Anonim

Co to jest usługa sieciowa?

Usługa sieci Web to ustandaryzowane medium służące do propagowania komunikacji między aplikacjami klienckimi i serwerowymi w sieci WWW. Usługa internetowa to moduł oprogramowania przeznaczony do wykonywania określonego zestawu zadań.

  • Usługi internetowe w przetwarzaniu w chmurze można wyszukiwać w sieci, a także można je odpowiednio wywoływać.
  • Po wywołaniu usługa internetowa byłaby w stanie zapewnić funkcjonalność klientowi, który wywołuje tę usługę internetową.

W tym samouczku dotyczącym usług internetowych nauczysz się podstaw usług internetowych:

  • Jak działają usługi sieciowe?
  • Dlaczego potrzebujesz usługi sieciowej?
  • Typ usługi internetowej
  • Zalety usług internetowych
  • Architektura usług internetowych
  • Charakterystyka usługi sieci Web
  • Jak działają usługi sieciowe?

    Jak działają usługi internetowe?

    Powyższy diagram przedstawia bardzo uproszczony pogląd na to, jak faktycznie działałaby usługa sieciowa. Klient wywoływałby serię wywołań usługi sieciowej za pośrednictwem żądań do serwera, na którym byłaby hostowana rzeczywista usługa sieciowa.

    Żą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ą hostowane przez odpowiednią usługę sieci Web.

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

    Głównym składnikiem projektu usługi internetowej 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 zrozumiały dla wielu języków programowania.

    Kiedy więc aplikacje rozmawiają ze sobą, w rzeczywistości rozmawiają w języku XML. Zapewnia to wspólną platformę do komunikacji między aplikacjami opracowanymi w różnych językach programowania.

    Usługi sieci Web używają czegoś znanego jako SOAP (Simple Object Access Protocol) do przesyłania danych XML między aplikacjami. Dane są przesyłane za pośrednictwem zwykłego protokołu 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 języku XML, aplikacja kliencka wywołująca usługę sieciową może być napisana w dowolnym języku programowania.

    Dlaczego potrzebujesz usługi sieciowej?

    Współczesne aplikacje biznesowe wykorzystują różnorodne 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ą pewnego rodzaju komunikacji między nimi. Ponieważ są tworzone przy użyciu różnych języków programowania, zapewnienie dokładnej komunikacji między aplikacjami staje się naprawdę trudne.

    Tu właśnie wkraczają usługi sieciowe. Usługi internetowe zapewniają wspólną platformę, która umożliwia wielu aplikacjom zbudowanym w różnych językach programowania komunikowanie się ze sobą.

    Typ usługi internetowej

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

    1. Usługi sieciowe SOAP.
    2. Usługi sieciowe RESTful.

    Aby usługa internetowa była w pełni funkcjonalna, należy zastosować pewne elementy. 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 (Simple Object Access Protocol)

    SOAP jest znany jako niezależny od transportu protokół przesyłania wiadomości. SOAP opiera się na przesyłaniu danych XML jako komunikatów SOAP. Każda wiadomość zawiera coś, co jest znane jako dokument XML. Tylko struktura dokumentu XML jest zgodna z określonym wzorcem, ale nie treść. Najlepszą częścią usług sieciowych i protokołu SOAP jest to, że wszystkie są wysyłane za pośrednictwem protokołu HTTP, który jest standardowym protokołem sieciowym.

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

    • Każdy dokument SOAP musi mieć element główny znany jako element . 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 ma zostać wysłany.
    • Treść będzie zawierała aktualną wiadomość.

    Poniższy diagram przedstawia prosty przykład komunikacji za pośrednictwem protokołu SOAP.

    Protokół SOAP

    Omówimy szczegółowo SOAP w tym samouczku.

    WSDL (język opisu usług sieci Web)

    Nie można użyć 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 WWW. Plik WSDL jest ponownie plikiem opartym na XML, który zasadniczo mówi aplikacji klienckiej, 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 ją wykorzystać.

    Przykład usługi sieci Web

    Przykład pliku WSDL usług WWW podano poniżej.

    
    
    
    

    Ważne aspekty, na które należy zwrócić uwagę w przypadku 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ę WWW. W powyższych przykładach usług sieciowych mamy 2 komunikaty, które mogą być wymieniane między usługą internetową 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ż łańcuchem 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 to komunikat wejściowy, a drugi to komunikat wyjściowy.
    3. - ten element zawiera używany protokół. 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.

    Szczegółowo omówimy „WDSL” w tym samouczku.

    Uniwersalny opis, wykrywanie i integracja (UDDI)

    UDDI to standard opisywania, publikowania i odkrywania usług internetowych, które są świadczone przez określonego usługodawcę. Zawiera specyfikację, która pomaga w hostowaniu informacji o usługach internetowych.

    W poprzednim temacie omówiliśmy teraz WSDL i sposób, w jaki zawiera on 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ę WWW? Zatem 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 jako baza danych zawierająca wszystkie pliki WSDL.

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

    Zalety usług internetowych

    Rozumiemy już, dlaczego pojawiły się usługi internetowe, które miały zapewnić platformę, która mogłaby umożliwić komunikację między różnymi aplikacjami.

    Przyjrzyjmy się jednak liście zalet usług internetowych, aby dowiedzieć się, dlaczego korzystanie z nich jest ważne.

    1. Udostępnianie funkcjonalności biznesowej w sieci - usługa internetowa to jednostka zarządzanego kodu, która zapewnia pewnego rodzaju funkcjonalność aplikacjom klienckim lub użytkownikom końcowym. Funkcjonalność tę można wywołać za pośrednictwem protokołu HTTP, co oznacza, że ​​można ją również wywołać przez Internet. Obecnie wszystkie aplikacje są w Internecie, co sprawia, że ​​usługi sieciowe są bardziej przydatne. Oznacza to, że usługa sieciowa może znajdować się w dowolnym miejscu w Internecie i zapewniać niezbędną funkcjonalność zgodnie z wymaganiami.

    2. Współdziałanie między aplikacjami - usługi internetowe umożliwiają różnym aplikacjom komunikowanie się ze sobą oraz współdzielenie danych i usług między sobą. Wszystkie typy aplikacji mogą ze sobą rozmawiać. Więc zamiast pisać określony kod, który może być zrozumiany tylko przez określone aplikacje, możesz teraz napisać kod ogólny, który będzie zrozumiały dla wszystkich aplikacji

    3. Znormalizowany protokół, który wszyscy rozumieją - usługi internetowe wykorzystują do komunikacji ustandaryzowany protokół branżowy. Wszystkie cztery warstwy (Service Transport, XML Messaging, Service Description i Service Discovery) używają dobrze zdefiniowanych protokołów w stosie protokołów usług sieciowych.

    4. Obniżenie kosztów komunikacji - usługi internetowe wykorzystują protokół SOAP over HTTP, dzięki czemu można używać istniejącego taniego Internetu do wdrażania usług internetowych.

    Architektura usług internetowych

    Każdy framework potrzebuje jakiejś architektury, aby upewnić się, że cały framework działa zgodnie z oczekiwaniami, podobnie w usługach internetowych. Web Services Architecture składa się z trzech odrębnych ról, jak podano poniżej:

    1. Dostawca - dostawca tworzy usługę internetową i udostępnia ją aplikacji klienckiej, która chce z niej korzystać.
    2. Żądający - żądający to nic innego jak aplikacja kliencka, która musi skontaktować się z usługą internetową. Aplikacją kliencką może być aplikacja .Net, Java lub dowolna inna aplikacja językowa, która szuka jakiejś funkcjonalności za pośrednictwem usługi sieciowej.
    3. Broker - Broker to nic innego jak aplikacja, która zapewnia 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ług, zleceniodawca usługi i rejestr usług współdziałają ze sobą.

    Architektura usług internetowych
    1. Publikuj - dostawca informuje brokera (rejestr usług) o istnieniu usługi internetowej za pomocą interfejsu publikowania brokera w celu udostępnienia usługi klientom
    2. Znajdź - żądający konsultuje się z brokerem w celu zlokalizowania opublikowanej usługi internetowej
    3. Powiązanie - dzięki informacjom uzyskanym z brokera (rejestru usług) o usłudze sieci Web, żądający może powiązać lub wywołać usługę sieci Web.

    Charakterystyka usługi sieci Web

    Usługi internetowe mają następujące szczególne cechy behawioralne:

    1. Opierają się na języku XML - usługi internetowe wykorzystują XML do reprezentowania danych w warstwach reprezentacji i transportu danych. Używanie XML eliminuje wszelkie zależności sieciowe, systemu operacyjnego lub platformy, ponieważ XML jest wspólnym językiem zrozumiałym dla wszystkich.

    2. Luźno powiązane - luźno powiązane 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ę internetową. Przyjęcie luźno powiązanej architektury sprawia, że ​​systemy oprogramowania są łatwiejsze w zarządzaniu i umożliwia prostszą integrację między różnymi systemami.

    3. Funkcjonalność synchroniczna lub asynchroniczna - Synchroniczność odnosi się do powiązania klienta z wykonaniem usługi. W operacjach synchronicznych klient faktycznie będzie czekał na zakończenie operacji przez usługę sieciową. Przykładem tego jest prawdopodobnie scenariusz, w którym wykonywane są operacje odczytu i zapisu bazy danych. Jeśli dane są odczytywane z jednej bazy danych, a następnie zapisywane w innej, operacje muszą być wykonywane w sposób sekwencyjny. Operacje asynchroniczne umożliwiają klientowi wywołanie 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 zdalnych obiektach przy użyciu protokołu opartego na języku 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 ogólny sposób reprezentowania 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.