XML-RPC와 SOAP의 차이점은 무엇입니까?


81

나는 웹 서비스 구현자가 왜 다른 것을 선택하는지 이해하지 못했습니다. XML-RPC는 일반적으로 구형 시스템에서 발견됩니까? 이것을 이해하는 데 도움을 주시면 대단히 감사하겠습니다.

답변:


88

차이점?

SOAP는 더 강력하며 소프트웨어 도구 공급 업체 (MSFT .NET, Java Enterprise 에디션 등)가 선호합니다.

SOAP는 오랫동안 (2001-2007 년) SOA를위한 프로토콜로 여겨졌습니다. xml-rpc는 그다지 많지 않습니다. REST는 프로토콜이 아니지만 새로운 SOA 사랑입니다.

SOAP는 더 장황하지만 더 기능적입니다.

SOAP는 일부 오래된 항목에서는 지원되지 않습니다. 예를 들어, 클래식 ASP에 대한 SOAP 라이브러리가 없습니다 (찾을 수 있음).

SOAP는 파이썬에서 잘 지원되지 않습니다. XML-RPC는 표준 라이브러리에서 Python을 크게 지원합니다.

SOAP는 문서 수준 전송을 지원하는 반면 xml-rpc는 구조, 목록 등과 같은 구조를 전송할 수 있지만 값 전송에 더 가깝습니다.

xm-rpc는 언어에 구애받지 않는 프로그램 간 전송에 관한 것입니다. 주로 http / https를 사용합니다. SOAP 메시지는 이메일로도 전달 될 수 있습니다.

xml-rpc는 더 독특합니다. 작업을 간단하게 수행 할 수 있으며 수행중인 작업을 알고 있으면 터미널 텍스트 편집기를 사용할 때도 고품질 웹 서비스를 배포하는 것이 매우 빠릅니다. 그런 식으로 SOAP를하는 것은 동물원입니다. 이를 실현하려면 좋은 IDE가 정말로 필요합니다.

하지만 SOAP를 아는 것은 Fortune 500 IT 작업을 위해 경쟁하는 경우 이력서 / CV에서 훨씬 더 좋아 보일 것입니다.

xml-rpc에는 ASCII가 아닌 문자 집합과 관련된 몇 가지 문제가 있습니다.

XML-RPC는 명명 된 매개 변수를 지원하지 않습니다. 순서가 정확해야합니다. SOAP에 대해서는 확실하지 않지만 그렇게 생각하십시오.


1
Python을 사용하는 SOAP의 경우 ZSI 패키지가 있습니다. 꽤 좋지만 wsdl이 절대적으로 필요합니다.
edomaur

2
이전 SOAP Toolkit이 "Classic ASP"를 지원했다고 생각합니다. 요컨대, 좋아하는 .NET 언어를 사용하여 서비스 참조를 래핑하는 COM 구성 요소를 만들 수 있으므로 클래식 ASP가 최신 웹 서비스도 사용할 수 있습니다.
John Saunders

1
@edomaur 사실 비눗물에 그것을 사용에 더 간단하고 쉽게, 더 파이썬 때문에 더 나은 선택 pypi.python.org/pypi/suds
ccpizza

14

다른 답변에 추가하기 위해 아마도 Ethereal을 사용하여 캡처하여 SOAP 및 XML-RPC 호출의 실제 텍스트 표현을 보도록 권장합니다. "XML-RPC가 더 간단합니다"라는 전체적인 주장은 SOAP 호출이 얼마나 장황한 지 알기 전까지는 그다지 의미가 없습니다. 상당히 인기있는 많은 웹 사이트는 사람들이 광범위하게 사용하기 시작하면 소비 할 대역폭의 양 때문에 SOAP를 API로 사용하지 않습니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.