2008-09-17 16 views
67

Nigdy tak naprawdę nie rozumiem, dlaczego osoba wdrażająca usługi internetowe wybierałaby jeden nad drugim. Czy XML-RPC można znaleźć ogólnie w starszych systemach? Jakakolwiek pomoc w zrozumieniu tego będzie wielce ceniona.Jaka jest różnica między XML-RPC a SOAP?

Odpowiedz

74

Różnice?

Specyfikacja xml-rpc mieści się na 1 stronie 6 stronach. Specyfikacja SOAP 1.2 będzie Cię kosztować strony 500 ryzu 44 strony.

SOAP ma większą moc i jest preferowany przez dostawców oprogramowania (MSFT .NET, Java Enterprise Edition, tego typu rzeczy).

SOAP był przez długi czas (2001-2007) postrzegany jako wybrany protokół dla architektury SOA. xml-rpc nie tak bardzo. REST jest nową ukochaną SOA, chociaż nie jest to protokół.

SOAP jest bardziej szczegółowy, ale bardziej wydajny.

SOAP nie jest obsługiwany w niektórych starszych wersjach. Na przykład brak bibliotek SOAP dla klasycznej ASP (którą mogłem znaleźć).

SOAP nie jest dobrze obsługiwany w pythonie. XML-RPC ma świetne wsparcie w Pythonie, w standardowej bibliotece.

SOAP obsługuje transfer na poziomie dokumentu, a XML-RPC jest więcej o przeniesienie wartości, chociaż może przenieść struktur, takich jak kodowanym, list itp

XM-RPC jest naprawdę o program językowy agnostycznego transferu . Przeważnie przechodzi on przez http/https. Wiadomości SOAP mogą również przechodzić przez e-mail.

xml-rpc jest bardziej unixowy. Pozwala to na proste działanie, a kiedy wiesz, co robisz, bardzo szybko wdraża wysokiej jakości usługi sieciowe, nawet przy użyciu terminalowych edytorów tekstu. Robiąc w ten sposób SOAP jest zoo; naprawdę potrzebujesz dobrego IDE, aby było to możliwe.

Znając SOAP, będzie wyglądać znacznie lepiej na CV/CV, jeśli ubiegasz się o pracę IT w Fortune 500.

xml-rpc ma pewne problemy z zestawami znaków spoza zestawu ASCII.

Edytowane: Chciałem tylko dodać, że XML-RPC nie obsługuje nazwanych parametrów. Muszą być w poprawnej kolejności. Nie mam pewności co do SOAP, ale myślę, że tak.

+1

Dla SOAP z Python, jest pakiet ZSI. Jest całkiem niezły, ale absolutnie potrzebujesz pliku wsdl. – edomaur

+1

Wierzę, że stary zestaw narzędzi SOAP miał wsparcie dla "klasycznej ASP". Co więcej, można użyć ulubionego języka .NET do stworzenia komponentu COM, który zawija odniesienie do usługi, pozwalając klasycznej ASP na korzystanie nawet z nowoczesnych usług internetowych. –

+0

@Mark Harrison and Christopher: Co masz na myśli mówiąc "Robiąc w ten sposób SOAP to zoo". Zwykle nie mogłem zrozumieć słowa "zoo". Opisz to ... – Saravanan

11

Wystarczy dodać do innych odpowiedzi, chciałbym zachęcić do obejrzenia rzeczywistych reprezentacji tekstowej SOAP i XML-RPC, być może poprzez uchwycenie jednego z Eteryczny. Cały argument "XML-RPC jest prostszy" nie ma większego sensu, dopóki nie zobaczysz, jak niewiarygodnie szczegółowe jest wywołanie SOAP. Wiele z dość popularnych stron internetowych nie lubi SOAP jako swojego API ze względu na ilość przepustowości, którą zużyje, gdyby ludzie zaczęli go intensywnie używać.

Powiązane problemy