WSDL, SOAP 및 REST 란 무엇입니까?


153

WSDL 이란 무엇입니까 ? SOAP 과 어떤 관련이 있습니까? REST 는이 모든 것에 어디에 적합합니까?


2
어떤 종류의 "예"를 찾고 있습니까? 내가 말했듯이 "간단한"예제를 얻을 수있는 것은 간단한 일이 아닙니다.
John Saunders

답변:


180

WSDL은 웹 서비스를 설명하는 XML 문서입니다. 실제로는 웹 서비스 설명 언어를 나타냅니다.

SOAP는 응용 프로그램간에 특정 프로토콜 (예 : HTTP 또는 SMTP 일 수 있음)을 통해 정보를 교환 할 수있는 XML 기반 프로토콜입니다. Simple Object Access Protocol의 약어이며 메시징 형식으로 XML을 사용하여 정보를 중계합니다.

REST는 네트워크 시스템의 아키텍처 스타일이며 Representational State Transfer를 나타냅니다. 표준 자체는 아니지만 HTTP, URL, XML 등과 같은 표준을 사용합니다.


4
SOAP를 사용할 수있는 프로토콜의 예로 SMTP 또는 HTTP를 사용하려고했습니다. HTTP가 사용할 수있는 유일한 프로토콜이라는 것을 의미하지는 않았습니다 (예를 들어 단지 그것을 사용했습니다).
keith_c

7
REST (Representational State Transfer)는 웹 서비스에 적용되는 경우 성능, 확장 성 및 수정 가능성과 같은 바람직한 특성을 유도하여 서비스가 웹에서 가장 잘 작동하도록하는 균일 한 인터페이스와 같은 제한 조건을 지정하는 아키텍처 스타일입니다. REST 스타일에서 데이터 및 기능은 자원으로 간주되며 URI (Uniform Resource Identifier)를 사용하여 액세스합니다. 리소스는 간단하고 정의 된 일련의 작업을 사용하여 수행됩니다. 클라이언트 / 서버 아키텍처를 따르며 상태 비 저장 통신 프로토콜 (일반적으로 HTTP)을 사용하도록 설계되었습니다.
kingAm

4
WSDL의 'D'가 "정의"대신 "설명"을 나타내지 않습니까?
Sparkzz

11
"A WSDL is an XML document that describes a web service. It actually stands for Web Services Definition Language." 이것은 실제로 그것이 무엇인지 설명하지 않습니다 ...
Ojonugwa Jude Ochalifu

2
wikipedia에 따르면 @Sparkzz :The current version of WSDL is WSDL 2.0. The meaning of the acronym has changed from version 1.1 where the "D" stood for "Definition".
Bochu

106

예 : 웹 서비스 계산기를 사용하는 경우 간단한 용어로 말하면됩니다.

WSDL : WSDL은 클라이언트에 구현하거나 노출 할 수있는 기능에 대해 알려줍니다. 예를 들어, 더하기, 삭제, 빼기 등이 있습니다.

SOAP : SOAP를 사용하는 경우 실제로 doDelete (), doSubtract (), doAdd ()와 같은 작업을 수행합니다. 따라서 SOAP와 WSDL은 사과와 오렌지입니다. 우리는 그것들을 비교해서는 안됩니다. 둘 다 서로 다른 기능을 가지고 있습니다.

SOAP 및 WSDL을 사용하는 이유 : 플랫폼 독립적 인 데이터 교환 용.

편집 : 일상 생활의 예 :

WSDL : 식당에 가면 메뉴 항목이 표시되는데, 이는 WSDL입니다.

프록시 클래스 : 이제 메뉴 항목을 본 후 마음을 구성합니다 (주문 대상에 대한 처리). 따라서 기본적으로 WSDL 문서를 기반으로 프록시 클래스를 만듭니다.

SOAP : 메뉴의 다음을 기준으로 실제로 음식을 주문할 때 : 프록시 클래스를 사용하여 SOAP를 사용하여 수행되는 서비스 메소드를 호출합니다. :)


38

누군가가 SOAP / WSDL을 언급 할 때마다 XML에 정의 된 객체와 클래스를 생각합니다.

"PHP 클래스와 동일한 방식으로 SOAP를 사용합니다. 그러나이 경우 클래스는 로컬 응용 프로그램 파일 시스템에는 없지만 http를 통해 액세스하는 원격 사이트에는 없습니다." ... "SOAP 서비스를 다른 PHP 클래스로 사용하려는 경우 WSDL 문서는 사용 가능한 모든 클래스 메소드 및 특성의 목록입니다."

http://www.doublehops.com/2009/07/07/quick-tutorial-on-getting-started-with-soap-in-php/comment-page-1/

.. 그리고 누군가 REST에 대해 이야기 할 때마다 POST, GET 및 DELETE와 같은 HTTP 명령 (요청 방법)을 생각합니다.


19

SOAP-> SOAP (Simple Object Access Protocal)는 시스템 간 상호 작용을 위해 생성 된 응용 프로그램 수준의 프로토콜입니다. 프로토콜은 표준 규칙을 정의합니다. 특정 프로토콜을 사용하는 모든 당사자는 프로토콜 규칙을 준수해야합니다. TCP와 마찬가지로 전송 계층에서 풀리므로 SOAP 프로토콜은 응용 프로그램 계층 (SOAP-Axis2, .Net을 지원하는 모든 응용 프로그램)에 의해 이해됩니다.

WSDL-> SOAP 메시지는 SoapEnevelope-> SoapHeader 및 SoapBody로 구성됩니다. 메시지 형식이 무엇인지 정의하지 않습니까? 지원하는 모든 전송 (HTTP, JMS)은 무엇입니까? 이 정보가 없으면 특정 웹 서비스를 사용하려는 클라이언트가 SOAP 메시지를 작성하기가 어렵습니다. 그들이 할지라도 확실하지 않을 것입니다. 항상 작동합니다. WSDL이 구조입니다. WSDL (Web Service description Language)은 SOAP 메시지의 조작, 메시지 형식 및 전송 세부 사항을 정의합니다.

REST-> REST (Representational State Transfer)는 전송을 기반으로합니다. 조치를 대상으로하는 SOAP와 달리 REST는 자원에 더 관심이 있습니다. REST는 URL (예 : -http : // {serverAddress} / employees / employeeNumber / 12345)을 사용하여 자원을 찾고 조치에 대한 전송 프로토콜 (HTTP-GET, POST, PUT, DELETE 사용)에 따라 다릅니다. 자원에서 수행됩니다. REST 서비스는 URL을 기반으로 자원을 찾고 전송 조치 동사를 기반으로 조치를 수행합니다. 건축 스타일과 관습에 더 가깝습니다.


16

복잡한 것을 "간단하게"이해하지 않을 것입니다.

WSDL은 웹 서비스를 설명하기위한 XML 기반 언어입니다. 서비스에서 사용하는 메시지, 작업 및 네트워크 전송 정보에 대해 설명합니다. 이러한 웹 서비스는 일반적으로 SOAP를 사용하지만 다른 프로토콜을 사용할 수 있습니다.

WSDL은 프로그램에서 읽을 수 있으므로 웹 서비스를 호출하는 데 필요한 클라이언트 코드의 전부 또는 일부를 생성하는 데 사용될 수 있습니다. 이것이 SOAP 기반 웹 서비스를 "자체 서술 (self-describing)"이라 부르는 의미입니다.

REST는 WSDL과 전혀 관련이 없습니다.


11

SOAP는 단순 (sic) 객체 액세스 프로토콜을 나타냅니다. HTTP를 통해 XML을 전송하여 원격 개체에 대한 원격 프로 시저 호출을 수행하는 방법입니다.

WSDL은 웹 서비스 기술 언어입니다. 엔드 포인트로 '.wsdl'로 끝나는 요청은 사용이 예상 할 수있는 요청 및 응답을 설명하는 XML 메시지를 생성합니다. 서비스와 고객 간의 계약을 설명합니다.

REST는 HTTP를 사용하여 메시지를 서비스로 보냅니다.

SOAP는 사양이고 REST는 스타일입니다.


2
-1 : 죄송하지만 SOAP을 RPC와 연결하는 데 동의하지 않습니다. 메시지 스타일 서비스는 어떻습니까? 또한 .wsdl 또는? wsdl로 끝나는 요청이 WSDL을 생성한다고 말하는 표준은 없습니다.
John Saunders

4
SOAP를 사용하여 RPC를 수행 할 수 없다는 말입니까? 나는 그것이 전체 표준을 포괄하지는 않을지 모르지만 그것은 분명히 원래의 동기였습니다. WSDL URL이 표준의 일부인지 여부에 따라 귀하가 저에게 있음을 인정합니다. 일반적으로 내가 본 방식이지만, 표준을 지시하는 내용은 인용 할 수 없습니다.
duffymo

1
SOAP가 XML-RPC에서 파생되었다는 사실과 SOAP이 원래 RPC로 의도되었다는 생각을 혼동했을 수도 있습니다. 그러나 WSDL은 처음부터 RPC 스타일 서비스 외에도 문서 스타일 서비스를 설명 할 수있었습니다. RPC가 SOAP 및 WSDL의 원동력 인 경우 문서 스타일 서비스가 원래 표준에 없을 것으로 예상 할 수 있습니다.
존 손더스

6

Wikipedia는 "웹 서비스 기술 언어는 웹 서비스를 설명하기위한 모델을 제공하는 XML 기반 언어"라고 말합니다. 달리 말하면, WSDL은 웹 서비스에 대한 것이며 javadoc은 Java 라이브러리에 대한 것입니다.

그러나 WSDL의 가장 좋은 점은 소프트웨어가 WSDL을 사용하여 클라이언트와 서버를 생성 할 수 있다는 것입니다.


4

REST는 인코딩 측면에서 가벼우 며 경량 장치, 즉 비 엄격한 API에 훨씬 유용합니다.

REST는 형식에 독립적입니다. XML, HTML, JSON 모든 옵션을 사용할 수 있습니다.

REST는 WSDL / SOAP 상호 작용이 다중 지점 메시지 상호 작용 인 2 지점 메시지 전송 기능 (REST가 REpresentational State Transfer를 나타내므로 놀라운 일이 아님)을 제공합니다.

REST는 XML 메시지에 대한 새로운 확장이 필요하지 않으며 WSDL / SOAP에서는이 경우에 해당합니다.

WSDL / SOAP는 여러 전송 프로토콜을 사용하며 REST는 HTTP에만 의존합니다. 따라서 WSDL / SOAP는 RESTful 방식처럼 사용할 수 있지만 간단한 요청은 지나치게 복잡하거나 무겁습니다.

간단한 비유 : REST는 모토 보이처럼 음식을 쉽고 빠르게 제공합니다. XML은 WSDL / SOAP를 UPS 제공, 구조화되고 진지한 것들과 비슷하지만 비용이 많이 듭니다.



0

WSDL 문서는 웹 서비스를 설명합니다. 각 주요 요소를 사용하여 서비스 위치 및 서비스 방법을 지정합니다.

SOAP (Simple Object Access Protocol)는 다른 운영 체제에서 실행되는 프로그램이 http 및 xml을 사용하여 통신 할 수 있도록하는 메시징 프로토콜입니다.

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