Serwis internetowy - Web service

Termin usługa internetowa ( WS ) to:

  • usługa oferowana przez urządzenie elektroniczne innemu urządzeniu elektronicznemu, komunikująca się ze sobą za pośrednictwem sieci WWW , lub
  • serwer działający na urządzeniu komputerowym, nasłuchujący żądań na określonym porcie w sieci, obsługujący dokumenty internetowe (HTML, JSON , XML , obrazy).

W usłudze sieci Web technologia sieci Web, taka jak HTTP, jest używana do przesyłania formatów plików do odczytu maszynowego, takich jak XML i JSON .

W praktyce usługa sieciowa zwykle zapewnia obiektowy interfejs sieciowy do serwera bazy danych, używany na przykład przez inny serwer sieciowy lub aplikację mobilną , która zapewnia interfejs użytkownika użytkownikowi końcowemu. Wiele organizacji, które udostępniają dane na sformatowanych stronach HTML, udostępnia również te dane na swoim serwerze w postaci XML lub JSON, często za pośrednictwem usługi sieci Web umożliwiającej syndykację , na przykład Export . Inną aplikacją oferowaną użytkownikowi końcowemu może być aplikacja typu mashup , w której serwer sieci Web wykorzystuje kilka usług sieci Web na różnych maszynach i kompiluje zawartość w jeden interfejs użytkownika.

Usługi sieciowe (ogólne)

Asynchroniczny JavaScript i XML

Asynchroniczny JavaScript i XML (AJAX) to dominująca technologia usług internetowych. Rozwijając się z połączenia serwerów HTTP, klientów JavaScript i zwykłego starego XML (w odróżnieniu od SOAP i W3C Web Services), teraz jest często używany z JSON, a także lub zamiast XML.

ODPOCZYNEK

Representational State Transfer (REST) ​​to architektura dobrze zachowujących się usług sieci Web, która może działać na skalę internetową.

W dokumencie z 2004 r. W3C określa następujący REST jako kluczową cechę wyróżniającą usługi sieciowe:

Możemy wyróżnić dwie główne klasy usług internetowych:

  • Usługi sieci Web zgodne z REST , w których głównym celem usługi jest manipulowanie reprezentacjami XML zasobów sieci Web przy użyciu jednolitego zestawu operacji bezstanowych ; oraz
  • dowolne usługi WWW, w których usługa może eksponować dowolny zestaw operacji.
    —  W3C, architektura usług sieciowych

Usługi internetowe korzystające z języków znaczników

Istnieje wiele usług sieci Web, które używają języków znaczników:

Internetowy interfejs API

API Web jest rozwój usług internetowych, gdzie nacisk został przeprowadzce do prostszych representational state transfer (rest) opartych na komunikacji. Restful API nie wymagają protokołów usług sieci Web opartych na XML ( SOAP i WSDL) do obsługi ich interfejsów.

Usługi internetowe W3C

W odniesieniu do usług internetowych W3C, W3C zdefiniowało usługę internetową jako:

Usługa internetowa to system oprogramowania zaprojektowany do obsługi interoperacyjnej interakcji maszyna-maszyna za pośrednictwem sieci. Posiada interfejs opisany w formacie przetwarzalnym maszynowo (w szczególności WSDL ). Inne systemy współdziałają z usługą sieciową w sposób określony w jej opisie za pomocą komunikatów SOAP, zwykle przekazywanych za pomocą protokołu HTTP z serializacją XML w połączeniu z innymi standardami internetowymi.

—  W3C, Słowniczek usług sieciowych

Usługi sieciowe W3C mogą używać protokołu SOAP przez HTTP, umożliwiając mniej kosztowne (bardziej wydajne) interakcje przez Internet niż za pośrednictwem własnych rozwiązań, takich jak EDI/B2B. Oprócz SOAP przez HTTP, usługi sieciowe mogą być również implementowane na innych niezawodnych mechanizmach transportowych, takich jak FTP . W dokumencie z 2002 r. Grupa Robocza ds. Architektury Usług Sieciowych zdefiniowała architekturę usług sieciowych, wymagającą znormalizowanej implementacji „usługi sieciowej”.

Wyjaśnienie

Architektura usług WWW: dostawca usług wysyła plik WSDL do UDDI. Requester usługi kontaktuje się z UDDI, aby dowiedzieć się, kto jest dostawcą potrzebnych danych, a następnie kontaktuje się z dostawcą usług za pomocą protokołu SOAP. Usługodawca weryfikuje zgłoszenie serwisowe i przesyła uporządkowane dane w pliku XML, korzystając z protokołu SOAP. Ten plik XML zostanie ponownie zweryfikowany przez requester usługi przy użyciu pliku XSD.

Termin „usługa sieciowa” opisuje ustandaryzowany sposób integracji aplikacji opartych na sieci Web przy użyciu otwartych standardów XML , SOAP, WSDL i UDDI w sieci szkieletowej protokołu internetowego . XML to format danych używany do przechowywania danych i dostarczania wokół nich metadanych, SOAP służy do przesyłania danych, WSDL służy do opisywania dostępnych usług, a UDDI wyświetla listę dostępnych usług.

Usługa sieci Web to metoda komunikacji między dwoma urządzeniami elektronicznymi za pośrednictwem sieci. Jest to funkcja oprogramowania udostępniana pod adresem sieciowym przez Internet z usługą zawsze włączoną, jak w koncepcji obliczeń użytkowych.

Wiele organizacji korzysta z wielu systemów oprogramowania do zarządzania. Różne systemy oprogramowania często muszą wymieniać dane między sobą, a usługa sieci Web to metoda komunikacji, która umożliwia dwóm systemom oprogramowania wymianę tych danych przez Internet. System oprogramowania, który żąda danych, nazywany jest usługodawcą , podczas gdy system oprogramowania, który przetwarza żądanie i dostarcza dane, nazywa się usługodawcą .

Różne oprogramowanie może używać różnych języków programowania, a zatem istnieje potrzeba metody wymiany danych , która nie zależy od konkretnego języka programowania. Większość typów oprogramowania potrafi jednak interpretować znaczniki XML. Dzięki temu usługi sieciowe mogą wykorzystywać pliki XML do wymiany danych.

Należy zdefiniować zasady komunikacji różnych systemów, takich jak:

  • Jak jeden system może żądać danych z innego systemu.
  • Jakie konkretne parametry są potrzebne w żądaniu danych.
  • Jaka byłaby struktura wytworzonych danych. (Zwykle dane są wymieniane w plikach XML, a struktura pliku XML jest sprawdzana względem pliku .xsd).
  • Jakie komunikaty o błędach mają być wyświetlane, gdy dana reguła komunikacji nie jest przestrzegana, aby ułatwić rozwiązywanie problemów .

Wszystkie te reguły komunikacji są zdefiniowane w pliku o nazwie WSDL (Web Services Description Language), który ma .wsdlrozszerzenie. (Propozycje dotyczące autonomicznych usług internetowych ( AWS ) mają na celu opracowanie bardziej elastycznych usług internetowych, które nie opierają się na ścisłych zasadach.)

Katalog o nazwie UDDI (Universal Description, Discovery and Integration) określa, z którym systemem oprogramowania należy się skontaktować w celu uzyskania jakiego typu danych. Tak więc, gdy jeden system oprogramowania potrzebuje jednego konkretnego raportu/danych, przejdzie do UDDI i dowie się, z jakimi innymi systemami może się skontaktować w celu otrzymania tych danych. Gdy system oprogramowania dowie się, z jakimi innymi systemami powinien się skontaktować, skontaktuje się z tym systemem za pomocą specjalnego protokołu zwanego SOAP (Simple Object Access Protocol). System dostawcy usług najpierw weryfikuje żądanie danych, odwołując się do pliku WSDL, a następnie przetwarza żądanie i wysyła dane w protokole SOAP.

Zautomatyzowane metody projektowania

Zautomatyzowane narzędzia mogą pomóc w tworzeniu usługi sieciowej. W przypadku usług korzystających z WSDL, możliwe jest automatyczne wygenerowanie WSDL dla istniejących klas (model bottom-up) lub wygenerowanie szkieletu klasy na podstawie istniejącego WSDL (model top-down).

  • Deweloper korzystający z modelu oddolnego najpierw pisze klasy implementujące (w pewnym języku programowania), a następnie używa narzędzia do generowania WSDL, aby udostępnić metody z tych klas jako usługę sieci Web. Jest to prostsze do opracowania, ale może być trudniejsze w utrzymaniu, jeśli oryginalne klasy podlegają częstym zmianom.
  • Programista korzystający z modelu odgórnego najpierw pisze dokument WSDL, a następnie używa narzędzia do generowania kodu w celu utworzenia szkieletu klasy, który należy uzupełnić w razie potrzeby. Ten model jest ogólnie uważany za trudniejszy, ale może tworzyć czystsze projekty i jest ogólnie bardziej odporny na zmiany. Dopóki formaty wiadomości między nadawcą a odbiorcą nie ulegną zmianie, zmiany w samych nadawcy i odbiorcy nie mają wpływu na usługę sieci Web. Technika ta jest również określana jako umowa najpierw, ponieważ WSDL (lub umowa między nadawcą a odbiorcą) jest punktem wyjścia.
  • Programista używający Subset WSDL (SWSDL) (tj. WSDL z operacją podzbioru w oryginalnym WSDL) może przeprowadzać testowanie usług WWW i programowanie odgórne.

Krytyka

Krytycy usług internetowych innych niż REST często skarżą się, że są zbyt złożone i opierają się na dużych dostawcach oprogramowania lub integratorach, a nie na typowych implementacjach open source .

Istnieją również obawy dotyczące wydajności związane z wykorzystaniem przez usługi sieci Web XML jako formatu wiadomości oraz protokołu SOAP/HTTP w kopertowaniu i transporcie.

Testy regresyjne usług internetowych

Testowanie funkcjonalne i niefunkcjonalne usług sieci Web odbywa się za pomocą parsowania WSDL. Testy regresji przeprowadza się poprzez identyfikację zmian wprowadzonych do aktualizacji oprogramowania. Potrzeby testowania regresji usług sieci Web można podzielić na trzy różne sposoby, a mianowicie zmiany w WSDL, zmiany w kodzie i selektywne ponowne testowanie operacji. Możemy uchwycić powyższe trzy potrzeby w trzech pośrednich formach podzbioru WSDL, a mianowicie odpowiednio WSDL różnicy (DWSDL), WSDL jednostki (UWSDL) i Zredukowany WSDL (RWSDL). Te trzy pliki WSDL podzbioru są następnie łączone w celu utworzenia Combined WSDL (CWSDL), który jest dalej używany do testowania regresji usługi sieci Web. Pomoże to w Automated Web Service Change Management (AWSCM), przeprowadzając wybór odpowiednich przypadków testowych w celu skonstruowania skróconego zestawu testów ze starego zestawu testów.

Testowanie usług internetowych można również zautomatyzować za pomocą kilku narzędzi do automatyzacji testów, takich jak SOAP UI, Oracle Application Testing Suite (OATS), ujednolicone testowanie funkcjonalne, Selenium itp.

Zarządzanie zmianą usług internetowych

Praca związana z przechwytywaniem i wizualizacją zmian dokonanych w serwisie internetowym. Wizualizacja i obliczanie zmian może odbywać się w postaci artefaktów pośrednich (Podzbiór WSDL). Wgląd w obliczanie wpływu zmian jest pomocny w testowaniu, opracowywaniu odgórnym i ograniczaniu testowania regresji. AWSCM to narzędzie, które może identyfikować operacje na podzbiorach w pliku WSDL w celu skonstruowania podzbioru WSDL.

Zobacz też

Uwagi

Bibliografia

Zewnętrzne linki