Web services diagram

Web Service

To inaczej usługa internetowa, która pozwala na komunikowanie się klientowi z serwerem za pomocą sieci. Najczęściej taka komunikacja odbywa się za pomocą protokołu HTTP, który jest nośnikiem żądań ze strony klienta oraz odpowiedzi ze strony serwera. Web Service to dość abstrakcyjny termin, jednak niezależnie od języka programowania czy systemu operacyjnego działanie zawsze wygląda tak samo lub bardzo podobnie w zależności jakiego rodzaju serwisu używamy. Istnieje wiele standardów, które definiują jak klient ma się komunikować z serwerem, jednak zawsze wyróżniane są dwa główne podejścia: REST oraz SOAP.

REST czy SOAP?

REST, czyli Representational State Transfer opiera się na konkretnych adresach URL, które poniekąd działają jak identyfikatory. Na dany adres URL zostaje wysłane zapytanie na serwer, następnie serwer 'mieli' nasze zapytanie i dostajemy odpowiedź. Jednak jest mały haczyk, ponieważ to jak zareaguje serwer na nasze zapytanie jest uzależnione od tego jakiej metody protokołu HTTP użyjemy. Oficjalnie takich metod jest 7, jednak korzysta się z czterech bądź nawet tylko z dwóch:

GET - pobiera dane z serwera

POST - przesyła dane na serwer

PUT - aktualizuje dane, które już są na serwerze

DELETE - usuwa dane z serwera

Najistotniejsze metody to GET oraz POST, de facto możemy zbudować aplikację webową opierając się tylko na tych dwóch metodach, jednak używanie czterech powyższych jest powszechnie uważane jako dobra praktyka w pisaniu kodu. REST jest intuicyjny i prosty w implementacji, dlatego też jest często wykorzystywany w systemach z którymi się łączy duża ilość klientów, gdzie większość operacji opiera się pobieraniu i wysyłaniu danych.

SOAP, czyli Simple Object Access Control jest nieco bardziej zautomatyzowanym standardem niz REST, implementuje się go w plikach XML, gdzie definiowany jest sposób komunikacji między klientem a serwerem. SOAP zakłada, że każdy serwis powinien udostępniać plik, który zawiera szczegółową specyfikację operacji, które chcemy wdrożyć w naszej aplikacji, jakie dane są przetwarzane w tych operacjach oraz jakiego typu. To podejście z góry narzuca jakieś zasady, do których będziemy musieli się dostosować, jednak w zamian dostajemy automatyzację dzięki narzędziom, które częściowo mogą nas wyręczyć z pracy. Mimo wszystko budowanie aplikacji opartych o SOAP może być nieco kłopotliwe i mniej zrozumiałe dla osób, które zaczynają swoją przygodę z projektowaniem aplikacji webowych.

PODSUMOWANIE

REST

  • Elastyczność i duża swoboda w implementacji
  • Implementacja może się odbywać bez użycia dodatkowych bibliotek
  • Brak ścisłych reguł prowadzi niekiedy do odsuwania się od oficjalnych standardów serwisu

SOAP

  • Dość prosty w implementacij, wszystko się odbywa w plikach XML
  • Dobrze sobie radzi z każdym typem operacji
  • Powolność, konwersja roboczych plików XML niekiedy zajmuje stosunkowo sporo czasu