Budowa sieci Web usługi sposób odpoczynku

Original: http://www.xfront.com/REST-Web-Services.html


Roger L. Costello
Ja najpierw zapewnić krótkie wprowadzenie do odpoczynku i następnie opisać jak zbudować usług sieci Web w stylu odpoczynku.
Co to jest reszta?
Reszta to termin ukuty przez Roy Fielding w jego rozprawa doktorska [1] do opisu stylu architektury systemów sieciowych. Reszta to akronim stojąca na Representational State Transfer.
Dlaczego jest nazywany Representational State Transfer?
Tkanina składa się z zasobów. Zasób jest to dowolny przedmiot zainteresowania. Na przykład Corp samolotów Boeing mogą określić zasób 747. Klienci mogą uzyskać dostęp do danego zasobu z tego adresu URL:
http://www.boeing.com/aircraft/747
Zwracany jest reprezentacja zasobu (np. Boeing747.html). Przedstawienie miejsca aplikacji klienckiej w państwie. Wynik klienta przechodzenie przez hiperłącze w Boeing747.html jest inny zasób jest dostępny. Nowe przedstawienie miejsca aplikacji klienta do jeszcze innego Państwa. W związku z tym aplikacja klient zmienia stan (transfery) z każdego zasobu reprezentacji–> Representational State Transfer!
Oto wyjaśnienie znaczenia Representational State transfer Roy Fielding:
“Representational State Transfer ma na celu wywołać obraz zachowuje się jak dobrze zaprojektowanej aplikacji sieci Web: sieć stron internetowych (wirtualna maszyna stanów), gdzie użytkownik postępuje za pośrednictwem aplikacji wybierając linki (przejścia do stanu), wynikające w ten najbliższy stronica (reprezentujących następnego stanu aplikacji) przesyłane do użytkownika i świadczonych na ich użytek.”
Motywacja dla odpoczynku
Motywacja dla odpoczynku było uchwycić cechy sieci Web, które sieci udane. Następnie te cechy wykorzystywane do kierowania rozwojem sieci.
RESZTA styl architektoniczny, nie Standard
RESZTA nie jest standardem. Nie widać W3C gasił reszta specyfikacji. Nie widać IBM i Microsoft lub Sun sprzedaży developer reszta toolkit. Dlaczego? Bo reszta to tylko styl architektoniczny. Ty nie butelka tego stylu. Można tylko zrozumieć i projektowanie usług sieci Web w tym stylu. (Analogiczne do stylu architektury klient serwer.Jest tam nie standardowy klient serwer.)
A reszta to nie standard, to używać norm:
  • HTTP
  • ADRES URL
  • XML/HTML/GIF/JPEG/itp (reprezentacje zasobów)
  • text/xml, text/html, image/gif, image/jpeg, itp (typy MIME)
Klasyczne reszty systemu
W Internecie jest system reszta! Wiele z tych serwisów, że ci przy tych wielu lat książki zamawianie usług, usług wyszukiwania, słownik online usług itd. oparte na pozostałych serwisów. Niestety został przy użyciu reszta, reszta usług budowlanych i nawet nie wiesz.
RESZTA związana jest z “big picture” w Internecie. Nie zajmuje się szczegóły implementacyjne (np. używając Java servlets lub CGI do wdrożenia usługi sieci Web). Więc spójrzmy na przykład tworzenia serwisu www z punktu widzenia “big picture” reszta.
Części magazynu sieci Web Services
Części zajezdni, Inc (fikcyjnej firmy) ma wdrożona niektórych usług sieci web, aby umożliwić swoim klientom:
  • uzyskać listę części
  • uzyskać szczegółowe informacje na temat poszczególnych części
  • złożenia zamówienia zakupu (PO)
Rozważmy, jak każdy z tych usług realizowane w sposób spokojny.
Lista części
Usługa sieci web udostępnia adres URL do listy części zasobu. Na przykład klient chcieliby Użyj tego adresu URL w celu uzyskania listy części:
http://www.parts-depot.com/parts
Należy zauważyć, że “jak” usługi sieci web generuje listę części jest całkowicie niewidoczny dla klienta. Klient wie, jest to, że jeśli on twierdzi, że powyższy URL a następnie dokument zawierający wykaz części jest zwracany. Ponieważ wdrożenie jest niewidoczne dla klientów, części zajezdni jest swobodnie modyfikować realizacji podstawowych zasobów bez wpływu na klientów. To luźne sprzęgu.
Tutaj jest dokument, który klient otrzymuje:
<?xml version="1.0"?>
<p:Parts xmlns:p="http://www.parts-depot.com" 
         xmlns:xlink="http://www.w3.org/1999/xlink">
      <Part id="00345" xlink:href="http://www.parts-depot.com/parts/00345"/>
      <Part id="00346" xlink:href="http://www.parts-depot.com/parts/00346"/>
      <Part id="00347" xlink:href="http://www.parts-depot.com/parts/00347"/>
      <Part id="00348" xlink:href="http://www.parts-depot.com/parts/00348"/>
</p:Parts>
[Zakładam, że przez negocjacja zawartości usługi określa, że klient chce reprezentacji jako XML (dla komputera przetwarzanie).] Należy zauważyć, że listy części ma linki, aby uzyskać szczegółowe informacje o każdej części. To jest kluczowym elementem odpoczynku. Klient przelewa się z jednego stanu do następnego badając i wyboru spośród alternatywnych adresów URL w dokumencie odpowiedzi.
Część szczegółowych danych
Usługa sieci web udostępnia adres URL do każdej części zasobów. Oto jak klient żąda część 00345:
http://www.parts-depot.com/parts/00345
Tutaj jest dokument, który klient otrzymuje:
<?xml version="1.0"?>
<p:Part xmlns:p="http://www.parts-depot.com"   
        xmlns:xlink="http://www.w3.org/1999/xlink">
      <Part-ID>00345</Part-ID>
      <Name>Widget-A</Name>
      <Description>This part is used within the frap assembly</Description>
      <Specification xlink:href="http://www.parts-depot.com/parts/00345/specification"/>
      <UnitCost currency="USD">0.10</UnitCost>
      <Quantity>10</Quantity>
</p:Part>
Ponownie obserwować, jak ten danych wiąże się jeszcze więcej danych Specyfikacja dla tej części można znaleźć przez przejeżdżające hiperłącza. Każdy dokument odpowiedzi pozwala klientowi drążyć niedziałający, aby uzyskać bardziej szczegółowe informacje.
Złożyć PO
Usługa sieci web udostępnia adres URL do przedstawienia PO. Klient tworzy PO wystąpienie dokument, który odpowiada schemat PO części zajezdni zaprojektował (i nagłośnione w dokumencie WSDL). Klient przesyła PO.xml jako ładunek metody POST protokołu HTTP.
PO usługa odpowiada HTTP POST z adresem URL do dodano PO. W ten sposób klient może pobrać PO dowolnym czasie następnie (do aktualizacji/Edytuj to). PO stał się fragment informacji, który jest podzielony między klientem a serwerem. Udostępnionych informacji (PO) jest podany adres (URL) przez serwer i jest udostępniany jako usługa sieci Web.
Logicznych adresów URL i fizycznych adresów URL
Zasób jest obiekt pojęciowy. Przedstawienie jest przejawem konkretnego zasobu. Ten adres URL:
http://www.parts-depot.com/parts/00345
jest logiczną URL, nie fizycznego adresu URL. W związku z tym tu nie musi być, przykładowo statyczne strony HTML dla każdej części. W rzeczywistości jeśli było milion części następnie milion statycznych stron HTML nie będzie bardzo atrakcyjny wygląd.
[Szczegóły realizacji: magazyn części może wdrożyć usługę, która pobiera dane szczegółowe informacje dotyczące określonej części zatrudniając serwletu Java, który analizuje ciąg po nazwę hosta, używa numer części kwerendy bazy danych części, formułowanie wyników kwerendy jako XML, a następnie powrócić XML jako ładunek odpowiedzi HTTP.]
Jako kwestia stylu adresów URL nie powinna ujawnić Technika wykonania. Trzeba zmienić implementacji bez wpływu na klientów lub o błędnych adresów URL.
Cechy usługi sieci Web REST
Oto cechy odpoczynku:
  • Klient-serwer: stylu opartego na ściągać interakcji: spożywanie składniki replikacji ściąganej oświadczenia.
  • Bezpaństwowców: każde żądanie od klient do serwera musi zawierać wszystkie informacje niezbędne do zrozumienia wniosek i nie może skorzystać z dowolnym kontekście przechowywanych na serwerze.
  • Pamięć podręczna: do poprawy wydajności sieci odpowiedzi musi być zdolny jest oznaczona jako buforowalne lub buforowanego.
  • Jednolity interfejs: wszystkie zasoby dostępne z rodzajowy interfejs (np. HTTP GET, POST, PUT, DELETE).
  • O nazwie zasobów system składa się z zasobów, które nazwane przy użyciu adresu URL.
  • Połączonych ze sobą zasobów oświadczenia oświadczenia zasobów ze sobą połączone za pomocą adresów URL, umożliwiając klientowi do postępu z jednego stanu do drugiego.
  • Elementy warstwowe pośredników, takich jak serwery proxy, serwerów pamięci podręcznej, bramki itd., mogą być wstawiane między klientami i zasobów do obsługi, wydajności, bezpieczeństwa, itp.
Zasady projektowania usługi sieci Web reszta
1 klucz do tworzenia usług sieci Web w sieci odpoczynku (np. sieci Web) jest zidentyfikowanie wszystkich podmiotów koncepcyjne, które chcesz wystawiać jako usługi. Powyżej widzieliśmy przykłady zasoby: Lista części, część szczegółowych danych, zamówienie zakupu.
2. Utwórz adres URL do każdego zasobu. Zasoby powinny być rzeczowniki, czasowniki nie. Na przykład nie używać to:
http://www.parts-depot.com/parts/getPart?id=00345
Uwaga czasownika, getPart. Zamiast tego należy użyć rzeczownika:
http://www.parts-depot.com/parts/00345
3. kategoryzacji zasobów czy klienci mogą odbierać tylko Reprezentacja zasobu, lub czy klientów można zmienić (dodać) zasób. Dla byłej, aby te zasoby dostępne za pomocą HTTP GET. Na później aby te zasoby dostępne za pomocą HTTP POST, PUT, lub Usuń.
4. wszystkie zasoby dostępne za pośrednictwem HTTP GET powinny być efekt uboczny darmo. Oznacza to, że zasób tylko powinny powrócić do reprezentacji zasobu. Powołując się na zasób nie powinno skutkować w modyfikowaniu zasobów.
5. nie kobieta mężczyzna jest wyspą. Podobnie nie powinno być wyspą. Innymi słowy umieścić hiperłącza w ramach zasobów oświadczenia klientom drążyć niedziałający, aby uzyskać więcej informacji lub uzyskać informacje.
6. projekt do ujawnienia danych stopniowo. Nie zdradzaj wszystkiego w dokumencie pojedyncza odpowiedź. Zawierają hiperłącza, aby uzyskać więcej szczegółów.
7. należy określić format danych odpowiedzi przy użyciu schematu (DTD, W3C Schema, RelaxNG lub Schematron). Dla tych usług, które wymagają POST lub PUT, także schemat, aby określić format odpowiedzi.
8. Proszę opisać, jak usługi mają być wywoływane przy użyciu dokumentu WSDL, albo po prostu dokument HTML.
Krótki opis
W tym artykule opisane reszta jako styl architektoniczny. W rzeczywistości to jest styl sieci Web. RESZTA opisuje, co sprawia, że Web działa dobrze. Stosując się do zasad odpoczynku sprawi, że działa dobrze w kontekście sieci usług.
W przyszłości art napiszę o rozwoju sieci Web przy użyciu zasad odpoczynku.
Potwierdzenie
Dzięki Robert Leftwich i Philip Eskelin do uwag bardzo pomocne w tworzeniu tego dokumentu.

Comments are closed.