Blog of Science





Original article:

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

Izgradnjo spletne storitve poti ostalo


Roger L. Costello
Bo najprej zagotoviti kratek uvod v počitek in nato opisati kako zgraditi spletne storitve v stilu počitek.
Kaj je ostalo?
OSTALO je skovanke Roy Fielding v njegovi doktorski disertaciji [1] opisati slogu arhitekture omrežnih sistemov. OSTALO je kratica stoji za reprezentacije država prenese.
Zakaj se imenuje reprezentacije država prenos?
Splet je sestavljena iz virov. Sredstvo je kateri koli element interesa. Na primer, lahko opredelijo Corp letala Boeing 747 vir. Odjemalci lahko dostopajo do virov s tega URL:
http://www.boeing.com/aircraft/747
Vrne zastopanje vira (npr. Boeing747.html). Zastopanje krajih odjemalski program v državi. Rezultat odjemalca, ki prečkajo hiperpovezavo v Boeing747.html je še en vir je dostopna. Nova predstavitev mesta odjemalski program v še eno stanje. Tako je odjemalski program spremeni stanje (transferji) s predstavništvom vir–> reprezentacije država prenese!
Tukaj je Roy Fielding razlago smislu reprezentacije država prenos:
“Reprezentacije država prenos namenjena Dozivati sliko kako dobro zasnovani spletni program obnaša: mreža spletnih strani (virtualni-stroj stanj), kjer uporabnik napreduje skozi aplikacija z izbiro povezave (država prehodov), posledico na naslednjo stran (ki predstavljajo v naslednjem stanju uporabe) se prenese na uporabnika in opravljene za njihovo uporabo.”
Motivacija za počitek
Motivacija za počitek je, da zajame značilnosti Web, ki je uspešen splet. Naknadno ti značilnostmi se uporabljajo za usmerjanje razvoja spleta.
OSTALO - arhitekturni slog, ne Standard
POČITEK ni standard. Ne boste videli W3C gašenju ostale specifikacije. Ne boste videli IBM ali Microsoft ali sonce prodaja ostalo developer’s toolkit. zakaj? Ker ostalo je samo arhitekturni slog. Ne more steklenico do tem slogu. Lahko samo razumem in design vaše spletne storitve v tem slogu. (Podoben arhitekturni slog odjemalec-strežnik. Ni standarda odjemalec-strežnik.)
Medtem ko je ostalo ni standard, uporabi standardov:
  • HTTP
  • URL
  • XML/HTML/GIF/JPEG/etc (vir predstavništva)
  • besedilo/xml/html besedilo, image/gif, podoba/jpeg, itd (vrste MIME)
Klasična ostali sistem
Splet je ostalo sistem! Mnoge od teh spletnih storitev, da boste uporabljali ti veliko let - knjige-naročanje storitev, storitev iskanja, spletni slovar storitev, itd - so ostali na osnovi spletnih storitev. Žal, imam been using počitek, gradbene storitve ostalo in vas niti ne veš.
OSTALO se ukvarja z “veliko sliko” Web. Ne obravnava podrobnosti izvajanja (npr., using Java servlets ali CGI izvajati s spletno storitvijo). Oglejmo si primer ustvarjanja spletne storitve z vidika ostalo “big picture”.
Deli Depot spletne storitve
Deli Depot, Inc (izmišljeno podjetje) je razporejenih nekaj spletnih storitev omogočiti strankam, da:
  • dobili seznam delov
  • Get podrobne informacije o določen del
  • Pošlji nabavni nalog (PO)
Let’s menijo, kako vsak od te storitve izvajajo na prijeten način.
Dobili seznam delov
Spletna storitev omogoča na voljo URL vir seznam delov. Odjemalec bi na primer uporabite ta URL dobiti seznam delov:
http://www.parts-depot.com/parts
Upoštevajte, da “kako” spletno storitev ustvari seznam delov popolnoma pregledne za stranko. Vse stranke ve, je, da če on/ona predloži URL zgoraj nato dokument, ki vsebuje seznam delov je vrnil. Ker izvajanje preglednih strankam, deli Depot je prost spremeniti osnovno izvedbo tega vira ne zadrgnitev strank. To je ohlapno sklopke.
Tukaj je dokument, ki jih odjemalec prejme:
<?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>
[Domnevati, da skozi vsebine pogajanj storitev določi, da stranka želi zastopanje kot XML (stroj za strojno obdelavo).] Upoštevajte, da seznam delov je peščena morska obala zadobiti nadroben zavijati približno vsak del. To je ključna značilnost počitka. Stranka prenese iz ene članice do naslednjega s proučevanjem in izbiro od alternativnih spletne naslove v odziv dokument.
Get podrobne del podatkov
Spletna storitev omogoča na voljo URL vsak del sredstev. Na primer, tukaj je, kako odjemalec zahteva del 00345:
http://www.parts-depot.com/parts/00345
Tukaj je dokument, ki jih odjemalec prejme:
<?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>
Spet opazujejo, kako je te podatke povezati še vedno več podatkov - specifikacija za ta del je mogoče najti z prečkajo hiperpovezavo. Vsak odziv dokument omogoča odjemalcu vrtati navzdol, da bi dobili bolj podrobne informacije.
Pošljite PO
Spletna storitev omogoča na voljo URL predloži PO. Odjemalec ustvarja PO Vzorčni dokument, ki ustreza PO shemi, ki deli Depot je namenjen (in oglaševana v WSDL dokumenta). Stranka navaja PO.xml kot tovor HTTP post.
PO izpisom na HTTP mesto z URL do predloženih pad. Tako stranko lahko pridobite PO kadarkoli pozneje (za posodobitev/edit, to). PO je postala del informacij, ki se deli med stranko in strežnikom. Rabi informacij (PO) je podan naslov (URL) strežnika in je izpostavljeno kot spletna storitev.
Logično URLs versus fizično URLs
Vir je konceptualno subjekt. Predstavitev je konkretne manifestacija vira. Ta URL:
http://www.parts-depot.com/parts/00345
je logično URL, ni fizično URL. Torej, ne mora obstajati, na primer, statična stran HTML za vsak del. V resnici, če je bilo milijon delov nato milijonov negiben HTML strani ne bi zelo atraktiven dizajn.
[Podrobnosti izvajanja: deli Depot lahko izvajanje storitev, ki gets podrobnejši podatki o določen del z uporabo Java Servlet, ki razčleni niz po imenu gostitelja, uporablja številko dela delov podatkov, oblikovati rezultate poizvedbe kot XML in nato vrne XML kot tovor odgovor HTTP.]
Kot zadevo slog URLs naj ne razkrije uporabljena tehnika izvajanja. Moraš biti brez vaš izvajanje sprememb brez vpliva strank ali ob zavajajočih URL.
POČITEK spletne storitve značilnosti
Tukaj so značilnosti počitek:
  • Odjemalec-strežnik: slog temeljijo na potegnite interakcije: porabijo komponente pull predstavništva.
  • Brez državljanstva: vsako zahtevo odjemalca za strežnik mora vsebovati vse podatke, potrebne za razumevanje zahtevo in ne more izkoristiti vseh shranjenih kontekst na strežniku.
  • Cache: izboljšati učinkovitost omrežja odgovor mora biti sposoben označen kot cacheable ali non-cacheable.
  • Enoten vmesnik: vse vire dostopamo z generično vmesnik (npr., HTTP GET, POST, PUT, Izbriši).
  • Imenovan virov - sistem je sestavljen iz virov, ki so poimenovane z uporabo URL.
  • Medsebojno povezanih virov predstavništva - navedbe virov so med seboj povezani z uporabo URL-jev, s čimer je omogočeno stranko napredku iz ene države v drugo.
  • Večplastne komponente - posredniki, kot so strežniki proxy, predpomnilnik strežniki, prehodi, itd, lahko vstavite med odjemalci in virov za podporo učinkovitost, varnost, itd.
    Načela počitek spletne storitve design
    1. ključ za ustvarjanje spletnih storitev v ostalo omrežje (tj, splet) je opredeliti vse konceptualne subjektov, ki si želijo odkrivati kot storitev. Zgoraj smo videli nekaj primerov virov: dele seznam, podrobno del podatkov, nabavni nalog.
    2. ustvarite URL za vsak vir. Sredstva mora biti samostalniki, ne glagolov. Na primer, nikar ne raba to:
    http://www.parts-depot.com/parts/getPart?id=00345
    Opomba glagol getPart. Namesto tega uporabite samostalnika:
    http://www.parts-depot.com/parts/00345
    3. kategoriziraju vaše vire ali stranke lahko samo prejemajo zastopanje vira ali ali strank lahko spremeni (dodate) vir. Pri prvem objaviti teh virov z uporabo HTTP GET. Za kasneje, objaviti teh virov z uporabo HTTP POST, dana in/ali izbrisati.
    4. vse vire, dostopne prek HTTP GET treba stranski učinek brezplačno. To je vir naj samo vrnitev zastopanje vira. Uveljavlja sredstva ne smejo povzročiti spreminjanja vira.
    5. noben moški/ženska je otok. Prav tako mora biti brez zastopanosti otok. Z drugimi besedami, dal hiperpovezave v vir navedbe stranke za vrtanje navzdol za več informacij in/ali sorodne informacije.
    6. oblikovanje razkriti podatkov postopoma. Ne razkrije vse, kar je v dokumentu enotnega odgovora. Zagotavljanje hiperpovezav pridobiti več podrobnosti.
    7. določite obliko podatkov o odzivu uporabo sheme (DTD, W3C Schema, RelaxNG ali Schematron). Za tiste storitve, ki zahtevajo delovno mesto ali dana, zagotavljajo tudi shemo, če želite določiti obliko odgovora.
    8. Opišite , kako so vaše storitve je mogoče priklicati z WSDL dokument ali preprosto dokument HTML.
    Povzetek
    V tem članku opisano ostalo kot arhitekturni slog. Dejstvo, da je arhitekturni slog Web. OSTALO opisuje tisto, zaradi česar Web dobro delo. Spoštovali načela, ostalo bo svoje storitve, delo tudi v okviru spleta.
    V a prihodnji člen sem pisal o razvoj spleta z uporabo načela počitek.
    Potrditev
    Zahvaljujoč Robert Leftwich in Philip Eskelin za svoje pripombe zelo koristno pri ustvarjanju tega dokumenta.