można znaleźć artykuł porównujący REST i SOAP tutaj: http://www.jopera.org/files/www2008-restws-pautasso-zimmermann-leymann.pdf
Autorzy wnioski wydawało się być:
- Użyj usługi REST dla taktycznych, integracji ad hoc przez internet
- wolą WS - * Usługi internetowe w profesjonalnych scenariuszach integracji aplikacji biznesowych o dłuższej żywotności i zaawansowanych wymaganiach dotyczących QoS
Osobiście nie lubię terminologii takiej jak "przedsiębiorstwo zawodowe", ponieważ jest luźna i nieformalna. Jednak moim zdaniem autorzy napisali kilka dobrych punktów w artykule. Może zakończyć i dać własne myśli:
Jeśli chcesz uczynić API publicznym - rób to w sposób RESTOWNOWY. Czemu? Jest prosty w użyciu dla aplikacji klienckiej, dzięki czemu twoja usługa będzie bardziej popularna. Na przykład Amazon ujawnia oba interfejsy API REST i SOAP, ale 85% ich użytkowników wybrało wersję REST Amazon API - SOAP vs. REST
Użyj stosu SOAP i WS- *, jeśli utworzysz (lub będziesz mieć kontrolę nad procesem tworzenia) zarówno konsumenci, jak i producenci twoich usług i potrzebujesz zaawansowanych funkcji WS- *. Prawdopodobnie będzie to wymagało więcej zasobów, ponieważ aplikacje SOAP są zwykle "cięższe" (więcej funkcji, ale więcej wyrafinowania).
Również rozważenie REST wydajności może być szybsze (wiadomości są zdecydowanie krótsze i nie trzeba analizować xml).
Mam nadzieję, że to pomoże.
W twoim przykładzie klienta flash - naprawdę trudno powiedzieć, nie znając szczegółów, jednak jeśli nie potrzebujemy wszystkich zabezpieczeń i funkcji transakcyjnych WS- * myślę, że budowanie aplikacji REST byłoby prostsze i szybsze.
Odpowiadając komentować
należy używać mydła, bo jestem w takim nazwie „profesjonalne przedsiębiorstwo”
I zakładając oczywiście, że wybór nie jest tak naprawdę podyktowane przez dużych dostawców oprogramowania.
SOAP nadaje się do większych przedsiębiorstw, ponieważ zachęca do bardziej formalnego podejścia. Oferuje on specyfikacje, które są ogromne, więc twoi programiści mogą potrzebować czasu, aby się ich nauczyć, a może nawet trochę szkoleń zawodowych -> więc zasoby firmy wydającej. Oferuje również narzędzia - i nie wszystkie z nich są open source, więc może to również oznaczać dodatkowe zasoby. Ale jeśli twój zespół nauczy się tego sposobu integracji usług, prawdopodobnie będzie sprawny, a wynikowy kod będzie wysokiej jakości.
Restrukturyzacja w przeciwieństwie to bardziej filozofia tworzenia aplikacji. Nie ma więc wielkich specyfikacji, żadnych wyspecjalizowanych narzędzi. Brak wydatków na zasoby. Może to działać dobrze, jeśli masz mały zespół dobrych programistów - nie będą potrzebować tylu wytycznych, jeśli znają podstawowe zasady. Niestety łatwiej jest robić rzeczy źle.
Kolejną rzeczą do rozważenia jest wielkość aplikacji - im bogatszy interfejs API, tym więcej usług chcesz zintegrować, tym trudniej będzie to zrobić REST. Również budowa małej aplikacji SOAP nie byłaby prawdopodobnie dobrym pomysłem - całkowite koszty ogólne i koszty wejścia są po prostu zbyt wysokie.
Musisz ocenić zalety i wady projektu. Niemożliwe jest wydawanie rekomendacji bez znajomości wszystkich szczegółów, które myślę.
I na koniec - nie ma to nic wspólnego z rozsądnymi argumentami, ale bardziej z polityką. Wydaje mi się, że ludzie na poziomie zarządzania wolą stos WS-* i SOAP (ma on wsparcie dla "dużych przedsiębiorstw", więc łatwiej im usprawiedliwić wybór). Z drugiej strony osoby z wykształcenia akademickiego [1] preferują REST - ponieważ wciąż istnieje wiele badań, które można przeprowadzić w tym obszarze.
[1] Jestem gdzieś pomiędzy, więc mogę obserwować zarówno zachowań ;-)
Dobra odpowiedź, ale należy uważać na użycie terminu "klient". Masz rację, jeśli masz na myśli "klienta JavaScript używającego XmlHttp do bezpośredniej rozmowy z usługą", ale nie tak bardzo, jeśli twój klient używa narzędzi do tworzenia klas proxy JavaScript, za pomocą których można rozmawiać z usługą. –
Dzięki za twoją myśl. Zgodnie z powyższymi pismami powinienem używać mydła, ponieważ jestem w tzw. "Przedsiębiorstwie zawodowym". Ale zdaję sobie sprawę z tego, że tak zwany fachowiec czasami oznacza "dostawcy celują w przedsiębiorstwo", gdzie wybory technologiczne są bardziej podyktowane interesem komercyjnym niż czysto technicznym powodem, dlatego zadaję to pytanie :) – user310291