SOAP

SOAP(Simple Object Access Protocol이라고도 함)는 분산 환경에서 정보를 교환하기 위한 간단한 프로토콜입니다. SOAP 메시지는 송신측에서 수신측으로의 정보 전송입니다. 요청/응답 패턴을 수행하기 위해 SOAP 메시지를 결합할 수 있습니다.

SOAP는 전송에 독립적이지만 기존 인터넷 하부 구조에서 실행하기 위해 일반적으로 HTTP를 통해 전달됩니다. SOAP는 메시지 라우팅을 위한 메시지 경로를 정의하여 발견된 웹 서비스의 사용 및 바인딩을 가능하게 합니다. SOAP를 사용하여 UDDI에서 웹 서비스를 조회합니다. 워크벤치는 SOAP 1.1을 지원합니다.

SOAP는 모든 메시지에 대해 다음 세 파트를 정의하는 XML 기반 프로토콜입니다.

바인딩 스타일

SOAP는 다음 두 가지 통신 스타일을 지원합니다.

RPC(Remote Procedure Call):  결과를 리턴하는 오퍼레이션의 호출. 일반적으로 WS-I를 따르지 않는 SOAP 인코딩에 사용됩니다.

문서 스타일:  문서 지향 또는 메시지 지향 스타일이라고도 함. 이 스타일은 하위 계층의 추상을 제공하고 추가 프로그래밍 작업을 필요로 합니다.

인코딩 유형

분산 컴퓨팅 환경에서 인코딩 유형은 애플리케이션에 정의된 데이터 값과 특정 프로토콜 형식 간에 변환되는 방법을 정의합니다. 이러한 변환 프로세스를 직렬화 및 직렬화 해제라고 합니다.

SOAP 스펙은 다음 SOAP 인코딩 유형을 정의합니다.

SOAP 인코딩:  SOAP 인코딩 유형을 사용하여 SOAP 데이터 모델로부터 데이터 유형 값을 직렬화/직렬화 해제할 수 있습니다. 이 인코딩 유형은 SOAP 1.1 표준에 정의되어 있고 WS-I를 준수하지 않습니다.

WSDL은 다음 리터럴 XML 인코딩 유형을 정의합니다.

리터럴 XML:  리터럴은 문서를 그대로 읽거나 인코딩하지 않아야 한다는 팩트를 나타냅니다. 문서는 XMI로 직렬화됩니다. 즉, 메시지 XML은 WSDL에서 스키마를 따릅니다. 리터럴 인코딩을 사용하는 경우 각 메시지 파트는 구체적 스키마 정의를 참조합니다. 리터럴 인코딩은 WS-I를 따릅니다.

데이터 모델

SOAP 데이터 모델은 공통 프로그래밍 언어 유형에서 사용된 데이터 유형의 언어 독립적 추상을 제공하는 데 사용됩니다. 다음과 같이 구성됩니다.

SOAP 데이터 모델을 구성하는 모든 요소와 ID는 네임스페이스 URI에 정의됩니다. SOAP 표준은 데이터 유형을 구성하는 방법의 규칙을 정의합니다. 프로젝트 특정 XML 스키마는 실제 데이터 유형을 정의해야 합니다. SOAP 스펙의 요소는 http://schemas.xmlsoap.org/soap/envelope/http://schemas.xmlsoap.org/soap/encoding/에 정의됩니다.

SOAP 구현

현재 다양한 SOAP 프로토콜 구현을 사용할 수 있습니다. 예를 들어, Apache Foundation은 SOAP4J라는 IBM® 프로젝트에서 성장한 Apache SOAP는 물론 Apache Axis와 IBM WebSphere® 런타임 환경을 제공합니다.

맵핑

맵핑은 규정된 XML 요소 이름, Java™ 클래스 이름과 인코딩 유형 사이의 연관을 정의합니다. 맵핑은 지정된 인코딩에 따라 완전한 이름의 수신 XML 요소가 Java 클래스로 변환되는 방법 또는 그 반대의 경우를 지정합니다.

Apache SOAP에 대한 자세한 정보는 xml.apache.org/soap를 참조하십시오. SOAP에 대한 자세한 정보는 www.w3.org/TR/SOAP를 참조하십시오.