RPC와 문서의 차이점

Anonim

웹 서비스는 종종 WSDL (Web Services Description Language) 문서를 사용하여 설명됩니다. WSDL은 지원되는 웹 서비스 작업 및 메시지를 설명하고 구체적인 네트워크 프로토콜 및 메시지 형식에 바인딩합니다. 추상 정의는 "type", "message"및 "portType"요소를 사용하여 정의됩니다. 구체적인 사양은 "바인딩"및 "서비스"요소를 사용하여 설명됩니다. 이러한 각 요소는 "definitions"요소 안에 있습니다.

RPC 스타일과 문서 스타일은 바인딩 스타일이 다르며 SOAP 바인딩 스타일이라고도합니다. WSDL은 SOAP 페이로드 또는 요소 내용의 구조에 따라 바인딩 스타일을 RPC 또는 문서로 지정합니다. SOAP 메시지는 요소의 단일 "문서"로 전송되므로 문서 스타일은 항상 기본 선택입니다. RPC 스타일 요소는 SOAP 사양에 설명 된 규칙을 따라야합니다. 규칙에 따라 연산은 연산 후에 명명 된 요소 하나만으로 구성 될 수 있으며 매개 변수는 기본 요소의 하위 요소로 해석됩니다. RPC 스타일과 문서 스타일은 대부분의 SOAP 클라이언트에서 허용되는 버전입니다. 그러나 하나를 다른 것 위에 사용하는 것은 주로 개인의 선택입니다.

use 속성은 RPC와 문서 스타일을 구별하는 데에도 도움이됩니다. use 속성은 두 스타일이 모두 XML로 표현되는 방식을 설명합니다. use 특성은 메시지 부분이 인코딩되는지 또는 메시지가 XML 스키마 정의를 따르는지를 설명합니다. 선택에 따라 RPC 스타일과 문서 스타일의 네 가지 조합이 가능합니다. RPC / encoded, RPC 리터럴, Document / Encoded 또는 Document / Literal. 4 가지 조합 모두가 사용되는 것은 아니며, 하나의 조합이 다른 조합보다 우선적으로 선호된다는 점이 개인적인 관심입니다.

문서 스타일과 RPC 스타일의 가장 큰 차이점은 문서 스타일에서 클라이언트는 개별 매개 변수 값 집합이 아닌 간단한 XML 문서 형식으로 서버에 서비스 매개 변수를 항상 전송한다는 것입니다. 문서 스타일은 RPC 스타일과 비교하여 느슨하게 결합됩니다.

Document / Literal 스타일에서 메시지는 항상 XML 유효성 검사기를 사용하여 유효성을 검사 할 수 있습니다. SOAP 본문의 내용은 스키마에서 명확하게 정의됩니다. RPC / 리터럴 스타일에서는 전송 된 데이터를 SOAP 메시지로 확인하기가 어렵습니다. Document / Literal 스타일은 SOAP 메시지에서 작업 이름을 잃어 버리는 반면 RPC / literal 스타일에서는 SOAP 메시지에 작업 이름이 여전히 존재합니다.네 가지 조합 중에서 가장 널리 사용되는 스타일은 RPC / literal 및 Document / Literal입니다.

요약:

1. 문서 스타일에서 SOAP 메시지는 단일 문서로 보내지 만 RPC 스타일에서는 SOAP 본문에 여러 요소가 포함될 수 있습니다. 2. 문서 스타일은 느슨하게 결합되어있는 반면 RPC는 밀접하게 결합되어 있습니다. 3. 문서 스타일에서 클라이언트는 간단한 XML 형식으로 서비스 매개 변수를 전송합니다 (999) 반면 RPC 스타일에서는 매개 변수가 값의 개별로 전송됩니다. 4. Document / Literal 스타일은 SOAP 메시지에서 작업 이름을 잃고, RPC / literal 스타일은 SOAP 메시지에서 작업 이름을 유지합니다. 5. Document / Literal 스타일에서 메시지는 항상 XML

유효성 검사기를 사용하여 유효성을 검사 할 수 있지만 RPC / 리터럴 스타일에서는 전송 된 데이터를 SOAP 메시지로 확인하기 어렵습니다.