2013-07-16 3 views
1

여러분 최근 SOAP 기반의 웹 서비스와 RESTful 웹 서비스를 다루는 webservices 서를 방문했습니다. 두 매개 변수가 비슷해 보이므로 (개발자 관점에서도) 매개 변수 중 하나를 선택해야하는 매개 변수가 확실하지 않습니다. 여기 내 요점은RESTful 대 SOAP 기반 웹 서비스?

SOAP webservices에서 우리는 WSDL 파일을 사용하여 webservices를 생성 한 다음이를 기반으로 클라이언트 측 스텁을 작성합니다.

나의 이해는 내부적으로 스텁 원격 자바 웹 서비스와 통신하기 위해 HTTP 프로토콜 을 사용하는 것입니다. 권리?

여기에는 HTTP 요청/응답 본문에 SOAP 메시지 (XML 메시지)가 있습니다. REST 기반 웹 서비스에서 드릴 다운 할 레이어가 하나 더 있으므로 HTTP 요청 자체가 메시지로 동작합니다. 여기에는 WSDL 대신 WADL이 있습니다. 여기에서도 WADL을 기반으로 스텁을 만들 수 있습니다. 그래서 모든 것들은 약간의 기술적 차이를 제외하고 비슷하게 보입니다. 소비자가 생산자와 연결되고 요청/응답이 어떻게 처리 되는지요. 개발자의 관점에서 볼 때 B/W 나머지 기반 및 비누 기반 웹 서비스는별로 다르지 않습니다. (개발자의 작업량은 거의 같다).

내 이해가 정확합니까?

아마도 SOAP은 SOAP의 REST 웹 서비스 becoz보다 더 복잡 할 것입니다. SOAP 메시지는 메시지 안에 있습니다 (SOAP 메시지는 HTTP 요청에 포함됩니다).하지만 REST 기반 서비스에서는 HTTP 요청 자체가 메시지로 작동합니다.

+0

[이 답변] (http://stackoverflow.com/a/209945/2051952)로 원하는 정보를 얻을 수 있습니다. – dmahapatro

답변

3

SOAP 및 REST는 동일한 일련의 문제를 해결하는 것을 목표로합니다. 즉, 가능한 한 가장 쉬운 방법으로 이기종 응용 프로그램 간의 상호 작용을 촉진하는 것입니다. 이제 REST 또는 SOAP 중 무엇을 선택 하느냐는 개발 노력의 양에 좌우되지 않습니다. 당신은뿐만 아니라 다음과 같은 몇 가지 요인을 고려해야한다

  1. 데이터의 유형 또는 매우 복잡한 스키마 (또는 이진 데이터) (이름 값 쌍 등)의 단순한 객체는 응용 프로그램 사이에서 데이터를 교환 할 수 있는지 여부

    .
  2. 고객 서비스입니다. 예 : REST는 RIA을 개발할 때 더 적합합니다.
  3. 보안 요구 사항. SOAP은 표준 지향적이기 때문에 보안 측면의 매우 미세한 수준의 조정을 제공합니다. SOAP xml 메시지의 개별 요소 인코딩 범위로 이동할 수 있습니다. REST에서는 이러한 유형의 작업을 수행 할 수 없습니다 (지금은 필요하지 않음).
  4. 과 같은 요즘 표기법 JSON은 가벼운 데이터 교환에 널리 사용되며 많은 REST 서비스 프레임 워크가이를 매우 쉽게 사용할 수 있습니다.
  5. 기술적으로 REST 웹 서비스를 만들 때 어떤 프레임 워크가 필요하지 않습니다. WADL 등이 표준화 요소를 도입하기 위해 최근에 출시되었지만 WADL이 오기 훨씬 전에 REST가 존재했음을 이해합니다. REST는 새로운 것이 아닙니다. 웹 방식은입니다. REST 프레임 워크는 매우 쉽습니다.

SOAP 표준에 의해 구동되며, 따라서 당신이 그들과 함께 작업 할 때 명예에 더 많은 제약이있다. 그래서 당신이 사용하는 경우 간단하다 (매우 주관적이다), REST에 가서.

+0

Santosh : "WADL이 오기 전에 REST가 존재했다"고 말했기 때문에. 여기 내 질문은 WADL (또는 다른 설명)없이 소비자가 생산자 측에 공개 된 작업이 무엇인지 알 수 있습니까? 소비자가 의도 한 것을 목표로 할 수 있도록 생산 된 웹 서비스에 대한 설명이 있어야합니다. 권리? –

+0

내가 발견 한 또 다른 주요한 differnce는 REST 데이터 (XML, json, string과 같은)가 이름 값 쌍으로 이동하고 비누 기반 웹 서비스에서 스텁/스켈 톤을 생성 할 필요가 없다는 것입니다. 데이터는 XML로 이동합니다 http 메시지 본문에있는 비누 봉투 아래 메시지.또한 상호 운용성을 위해 스텁/스켈 톤이 필요합니다. 그게 맞습니까? –

+0

@ Wachl은 표준화 요소를 도입하기 시작했으며 REST 그 자체와 관련하여 툴링 지원 (스텁 등 _ 생성)과 관련이 있습니다. 핵심은 REST가 웹 작업 방식 일뿐입니다. 리소스를 지정하고 일반 단순 URL을 지정합니다. WADL을 사용하기 전에 일부 매개 변수를 전달하여 웹 서비스를 호출하고 출력을 확인하거나 서비스 제공 업체가 각 서비스 예 [Google API]에 대한 자세한 문서를 제공합니다 (http://googlesystem.blogspot.in/2008/04/google -search-rest-api.html). – Santosh

0

큰 차이는 없습니다 (특히 개발자보기에서).

유일한 차이점은 SOAP는 WS- * 권장 사항으로 표준화된다는 것입니다. SOAP에서도 트랜잭션을 생성하고 표준을 기반으로 메시지 자체를 보호 할 수 있습니다. 따라서 상호 운용성을 위해 SOAP에는 이점에 기반한 이점이 있습니다.

1

다음은 웹 서비스를 개발하는 두 가지 다른 방법입니다 ... 그리고 그 차이점 (및 이점)에 대해 많은 논의가 있습니다.

SOAP 웹 서비스는 사용자가 참조하는 포인트보다 훨씬 많으며 실제로 이러한 웹 서비스를 디자인하고 구현하는 방법을 표준화하는 것을 목표로하는 완벽한 "스택"(WS- *)이 있습니다. 이것은 일부 시스템에서는 좋지만 다른 시스템에서는 "너무 많이"무겁습니다. 뒤에서 HTTP는 메시지를 "전송"하는 가장 보편적 인 방법이지만 다른 프로토콜을 통해 구현 될 수있는 유일한 방법은 아닙니다. SOAP에서는 "WSDL"스펙에 크게 의존합니다. "WSDL"스펙은 서버 및 클라이언트 코드를 "생성"하는 데 실제로 사용될 수 있습니다. 이 스펙에서는 웹 서비스에서 수행해야 할 "작업"에 대해 많이 생각합니다.

한편 REST에서는 "자원"(주어진 URI로 설명 됨)에 대해 생각하고 HTTP 작업을 수행합니다. WADL이 존재하기는하지만 SOAP 웹 서비스와 같은 명세의 개념은 그리 많지 않습니다. 실제로 큰 차이점은 사람들이별로 생각하지 않지만 (실제로는 REST 원칙의 핵심입니다.) REST에서는 클라이언트 - 서버가 통신 할 수 있도록하는 "하이퍼 링크"라는 개념이 있습니다 SOAP 웹 서비스에서 "동적으로"처리되지 않는 "상태"(다음으로 갈 위치).

개발자의 관점에서 보면 SOAP에는 많은 도구가 필요합니다 (예 : 모든 Eclipse 웹 서비스 도구). 그러나 약간 번거롭고 많은 "코드"가되는 경향이 있습니다. REST 개발은 일반적으로보다 간단하고 간단합니다.나는 둘 다 당신이 상대하고있는 상황의 기능으로 사용되는 해결책이라고 생각합니다. 당신은 "하나"를 선택해서는 안됩니다. 예를 들어, 거대한 엔터프라이즈 애플리케이션이 있고, 많은 부분과 상호 의존성, 트랜잭션 처리 등이있는 경우, 아마도 WSDL (계약)이있는 SOAP 웹 서비스가 필요합니다. 반면에 상호 의존성이없는 하나의 웹 서비스 (또는 API)를 클라이언트에 노출 시키면 아마도 REST가 가장 흥미로 우며 (지난 5 년 간 변경된 사항을 볼 수 있습니다. 모든 주요 웹 APIS - 구글, 트위터 등은 모두 REST 웹 서비스로 노출됨).

+0

당신이 말했듯이 "SOAP는 약간 성 가시고 많은"코드 "경향이 있습니다. REST 개발은 일반적으로 더 간단하고 간단합니다." 내 요점은 모두 똑같이 번거롭고 거의 같은 양의 코드가 필요합니다. 당신은 당신에게 성명서 비트를 자세히 설명 할 수 있습니까? 미리 감사드립니다. –

+0

나는 WSDL에서 웹 서비스의 통신을 처리하기 위해 많은 코드 (스켈레톤과 스텁)를 생성한다는 것을 의미했다. REST (예 : Java에서 Jersey 사용)에서는 서버 코드 (예 : API 리소스, 클래스의 Java 메소드로 처리)를 API에 노출시키기 위해 메소드에 간단한 주석을 추가하면 꽤 좋다 많은 것 (Jersey의 hello world 예제 참조 : http://www.mkyong.com/webservices/jax-rs/jersey-hello-world-example/). 그것이 내가 더 깨끗한 경향이 있다고 언급 한 이유입니다. 그러나 어떤 경우에는 SOAP 웹 서비스가 더 적합 할 수 있습니다. – emgsilva