2011-09-22 12 views
8

Nota prawna: Jestem bardzo zdezorientowany między usługami opartymi na usługach REST i usługami SOAP.
Po przeczytaniu wielu tutoriali (które wydają się być ze sobą sprzeczne) w serwisie internetowym opartym na REST zastanawiałem się, czy możemy/powinniśmy używać SOAP do wysyłania/odbierania wiadomości w usłudze internetowej opartej na REST?
Próbowałem poniższe linki
1) http://www.ibm.com/developerworks/webservices/library/ws-restful/Wiadomości SOAP w serwisie internetowym opartym na usługach REST

2) http://rest.elkstein.org/2008/02/how-simple-is-rest.html

Odpowiedz

16

przez "usługi SOAP oparty" Zakładam, że jesteś co oznacza WS-I Basic Profile usług internetowych. Rozróżnienie jest ważne, ponieważ SOAP może być używany z usługami REST oraz usługami WS-I BP. Pozwól mi wyjaśnić.

SOAP to oparty na XML format przesyłania wiadomości do wymiany danych. Mydło definiuje także sposób wykonywania zdalnych wywołań procedur. SOAP to otwarty standard od W3C. SOAP nie jest agnostyczny w odniesieniu do podstawowej warstwy transportowej. Często HTTP jest wykorzystywany jako warstwa transportowa, ale może z powodzeniem przebiegać przez SMTP i TCP, a także inne transporty.

REST to styl architektoniczny (nie jest standardem), więc należy uważać, aby nie porównać REST i SOAP bezpośrednio, ponieważ nie porównuje się jabłek z jabłkami. REST bierze HTTP i używa go w taki sposób, w jaki został użyty, ze wszystkimi jego subtelnościami i bogactwem. Styl architektoniczny REST może być używany do przesyłania danych w dowolnym formacie - nie wymaga żadnego konkretnego formatu danych. SOAP jest więc doskonałym formatem serializacji dla usług internetowych w stylu REST. Jednak wiele osób używa JSON, XML, zwykłego tekstu i wielu innych formatów z usługą REST. Możesz także szczęśliwie wymieniać dane binarne przez REST, np. Pliki obrazów. Dobrą rzeczą jest to, że wybierasz format danych, który najbardziej pasuje do Twojej aplikacji.

Należy pamiętać, że ponieważ REST jest wzorcem, a nie standardem, wiele się mówi o tym, co to znaczy być naprawdę RESTULT. Istnieje koncepcja o nazwie Richardson Maturity Model, która określa serię kroków w kierunku ideału REST. Porównując z modelem Richardsona, widzimy dokładnie, jak RESTful jest konkretną implementacją REST. Usługi sieci Web WS-I BP znajdują się na poziomie 0 w tej skali (tj. Nie są bardzo restrykcyjne, po prostu używają HTTP jako głupiej warstwy transportowej).

Powiedziałbym to o wyborze usługi REST vs WS-I Basic Profile - zależy to od odbiorców. Jeśli tworzysz interfejs typu B2B w przedsiębiorstwie, częściej spotykane są usługi sieciowe WSI-BP. Ponieważ istnieje podstawowy standard i ze względu na dojrzałe wsparcie ze strony dostawców korporacyjnych (takich jak IBM, Oracle, SAP, Microsoft) oraz ze względu na poziom obsługi ram, szczególnie w .NET i Java, WSI-BP ma wiele sensu gdy potrzebujesz szybko uzyskać coś, co ułatwia klientom łączenie się w środowisku korporacyjnym, a wymieniane dane są firmowymi danymi ładnie serializującymi jako SOAP.

Z drugiej strony, jeśli ujawniasz usługi internetowe szerszej publiczności internetowej, powiedziałbym, że trend odszedł od WSI-BP i do stylu REST. Ponieważ REST zakłada tylko, że klient obsługuje protokół HTTP, może on współpracować z jak najszerszą publicznością. REST zapewnia również skalowalność samej sieci, z obsługą buforowania zasobów itp., Co sprawia, że ​​będzie skalować się do dużej grupy odbiorców znacznie lepiej niż usługi internetowe WSI-BP.

+1

Co za rozkosznie rozsądna odpowiedź. –

+0

Rzeczywiście, wspaniała odpowiedź. –

+0

@saille: Dzięki stary. Teraz wszystko wydaje się łatwiejsze. – xyz

Powiązane problemy