WS-I Basic Profile
WS-I(Web Services-Interoperability) Basic Profile은 상호 운용성을 승격하는 비-독점 웹 서비스 스펙 세트입니다. WebSphere® Application Server는 WS-I Basic Profile 버전 1.1 및 WS-I Basic Security Profile 버전 1.0을 준수합니다.
WS-I Organization의 지침 아래 IBM®을 포함한 업계 주도 업체의 컨소시엄에서 WS-I Basic Profile을 제어합니다. 프로파일은 웹 서비스 기술의 공개 표준 산출과 관련된 일련의 원칙으로 구성됩니다. 웹 서비스 간의 상호 운용성 승격에 관심이 있는 모든 조직은 웹 서비스 WS-I(Web Services Interoperability) Organization의 멤버가 되는 것이 좋습니다.
여러 기술 컴포넌트가 메시징, 설명, 발견 및 보안을 포함한 웹 서비스의 구성과 구현에 사용됩니다. 이들 각 컴포넌트는 SOAP 1.1, XML(Extensible Markup Language) 1.0, HTTP 1.1, WSDL(Web Services Description Language) 1.1 및 UDDI(Universal Description, Discovery and Integration)를 포함한 스펙과 표준으로 지원됩니다. WS-I Basic Profile은 이들 기술 컴포넌트가 함께 사용되어 상호 운용성을 얻고 해당되는 경우 각 기술의 특정 사용을 지시하는 방법을 지정합니다. WS-I 조직 웹 사이트에서 WS-I Basic Profile에 대해 더 자세히 알 수 있습니다.
기술 컴포넌트가 업데이트되며, 이들 컴포넌트가 웹 서비스의 구성과 구현에도 사용됩니다. 한 예로, SOAP 1.1과 SOAP 1.2가 현재 지원된다는 점을 들 수 있습니다.
- WS-I Basic Profile V1.2는 WS-I Basic Profile V1.0 및 WS-I Basic Profile V1.1을 빌드하고 WS-A(WS-Addressing) 및 SOAP MTOM(Message Transmission Optimization Mechanism)에 대한 지원을 추가합니다. WS-Addressing 스펙으로 비동기 메시지가 패턴을 교환할 수 있어, 서비스 응답으로부터의 서비스 요청을 결합 해제할 수 있습니다. 전송자 요청의 SOAP 헤더는 제공자의 응답이 전송된 엔드포인트 참조를 정의하는 wsa:ReplyTo 값을 포함합니다. 응답에서의 요청을 결합 해제하면 장기 실행 중인 웹 서비스 상호 작용이 가능합니다. WS-Addressing과의 조합으로 JAX-WS 버전 2.1의 비동기 프로그래밍 모델 지원을 이용하면, 이제 응답이 리턴되기를 기다리지 않고도 클라이언트가 계속 작업을 처리할 수 있는 웹 서비스 호출을 작성하는 기능을 사용할 수 있습니다. 웹 서비스를 호출하는 데 보다 동적이고 효율적인 모델을 제공합니다. MTOM을 사용하면 SOAP 메시지 내에서 최적으로 2진 데이터를 전송하고 수신할 수 있습니다.
- WS-I Basic Profile V2.0은 SOAP 1.2에 대한 지원 추가로 Basic Profile V1.2에서 빌드됩니다.
- WS-I Reliable Secure Profile 1.0은 WS-I Basic Profile V1.2, WS-I Basic Profile V2.0, WS-I Basic Security Profile V1.0 및 WS-I Basic Security Profile V1.1에서 빌드되며, WS-Reliable Messaging 1.1, WS-Make Connection 1.0 및 WS-Secure Conversation 1.3에 대한 지원을 추가합니다. WS-Reliable Messaging 1.1은 웹 서비스 상호작용을 위한 메시지 레벨 신뢰성을 제공하는 세션 기반 프로토콜입니다. WS-Make Connection 1.0은 WS-Reliable Messaging 작업 그룹에서 개발되어 웹 서비스 엔드포인트가 방화벽 뒤에 있거나 엔드포인트에서 엔드포인트 참조를 볼 수 없는 시나리오를 다룹니다. 신뢰할 수 있는 세션 중 웹 서비스 엔드포인트가 연결이 끊기는 경우, WS-Make Connection은 신뢰할 수 있는 세션을 다시 설정하도록 효율적인 방법을 제공합니다. 또한, WS-Secure Conversation V1.3은 메시지 레벨 보안을 위한 암호화 알고리즘을 기반으로 효율적인 대칭 키를 사용하는 세션 기반 보안 프로토콜입니다. WS-I Reliable Secure Profile V1.0은 보안 신뢰할 수 있는 세션 지향 웹 서비스 상호작용을 제공합니다.
각 기술 컴포넌트에는 WS-I Organization 웹 사이트에서 세부사항에 대해 읽을 수 있는 요구사항이 있습니다. 예를 들어, UTF(Universal Transformation Format)-16 인코딩은 WS-I Basic Profile에서 필요합니다. UTF-16은 범용 문자 세트(UCS) 문자를 저장하기 위해 16비트 값을 사용하는 유니코드 인코딩 체계의 일종입니다. UTF-8은 인터넷 상에서 사용되는 가장 공통된 인코딩이고 UTF-16 인코딩은 일반적으로 Java™ 및 Windows 제품 애플리케이션에 대해 사용됩니다. UTF-32는 여러 Linux 및 UNIX 시스템에서 사용됩니다. UTF-8과 달리, UTF-16에는 big-endian 및 little-endian의 문제가 있으며 BOM(Byte Order Mark)을 포함하여 endian을 표시합니다. BOM은 UTF-16 인코딩에 필수이고 이는 UTF-8에서 사용할 수 있습니다.
애플리케이션 서버는 SOAP 메시지의 UTF-8 및 UTF-16 인코딩만을 지원합니다.
UTF-8에서 UTF-16으로 인코딩을 수정하는 방법을 알려면 WSI-Basic Profile을 지원하기 위한 SOAP 메시지 인코딩 변경에 대한 정보를 참조하십시오.
바이트 | 인코딩 |
---|---|
EF BB BF | UTF-8 |
FF FE | UTF-16, little-endian |
FE FF | UTF-16, big-endian |
00 00 FE FF | UTF-32, big-endian |
FF FE 00 00 | UTF-32, little-endian |
POST http://www.whitemesa.net/soap12/add-test-rpc HTTP/1.1
Content-Type: application/soap+xml; charset=utf-16; action=""
SOAPAction:
Host: localhost: 8080
Content-Length: 562
OxFF0xFE<?xml version="1.0" encoding="utf-16"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2002/12/soap-envelope"
xmlns:soapenc="http://www.w3.org/2002/12/soap-encoding
xmlns:tns="http://whitemesa.net/wsdl/soap12-test"
xmlns:types="http://whitemesa.net/wsdl/soap12-test/encodedTypes"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Body>
<q1:echoString xmlns:q1="http://soapinterop.org/">
<inputString soap:encodingStyle="http://example.org/unknownEncoding"
xsi:type="xsd:string">
Hello SOAP 1.2
</inputString>
</q1:echoString>
</soap:Body>
</soap:Envelope>
예 코드에서, 0xFF0xFE는 바이트 코드를 표시하며, <?xml> 선언은 텍스트 표시입니다.
OxFF0xFE<?xml version="1.0" encoding="utf-16"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2002/12/soap-envelope"
xmlns:soapenc="http://www.w3.org/2002/12/soap-encoding
xmlns:tns="http://whitemesa.net/wsdl/soap12-test"
xmlns:types="http://whitemesa.net/wsdl/soap12-test/encodedTypes"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Body>
<q1:echoString xmlns:q1="http://soapinterop.org/">
<inputString xsi:type="xsd:string">
Hello SOAP 1.2
</inputString>
</q1:echoString>
</soap:Body>
</soap:Envelope>
지원되는 표준 및 스펙의 전체 목록은 웹 서비스 스펙과 API 문서를 참조하십시오.