COM+ SOAP 서비스 개요
HTTP는 사용자가 네트워크를 통해 원격 서버의 정보에 쉽게 액세스할 수 있도록 웹 브라우저를 사용할 수 있도록 하여 컴퓨터 사용을 혁신했습니다. XML 웹 서비스는 이제 클라이언트 애플리케이션이 네트워크를 통해 원격 메서드를 쉽게 호출할 수 있도록 하여 애플리케이션 개발에 혁명을 일으켰다.
클라이언트 애플리케이션이 원격 서버에서 구현된 메서드를 호출할 수 있는 경우가 많습니다. 경우에 따라 메서드는 원격 서버에 저장된 휘발성 정보를 사용합니다(예: 지정된 시세 기호에 해당하는 주식의 현재 가격을 반환하는 메서드). 개발자는 메서드 구현을 사용하는 모든 애플리케이션을 다시 배포하지 않고도 메서드 구현을 업그레이드하는 기능을 원합니다.
웹 페이지와 마찬가지로 XML 웹 서비스는 HTTP를 사용하여 IIS와 같은 웹 서버를 통해 액세스됩니다. 그러나 HTML로 인코딩된 웹 페이지 대신 이러한 HTTP 패킷에는 SOAP로 인코딩된 서버에서 구현된 메서드에 대한 호출의 입력 및 출력 매개 변수가 포함됩니다.
XML 웹 서비스를 사용하려면 서비스가 노출되는 URL과 호출하려는 메서드의 이름을 알고 있어야 하며, 메서드에 입력 매개 변수를 제공해야 합니다.
SOAP 1.1 표준은 지정된 시세 기호에 해당하는 주식의 현재 가격을 반환하는 에서 https://www.stockquoteserver.com/StockQuote
XML 웹 서비스에 대한 원격 호출을 포함하는 HTTP 패킷의 다음 예제를 제공합니다.
POST /StockQuote HTTP/1.1
Host: www.stockquoteserver.com
Content-Type: text/xml; "charset=utf-8"
Content-Length: nnnn
SOAPAction: "Some-URI"
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="https://schemas.xmlsoap.org/soap/envelope/"
SOAP-ENV:encodingStyle="https://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<m:GetLastTradePrice xmlns:m="Some-URI">
<symbol>DIS</symbol>
</m:GetLastTradePrice>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
앞의 예제에서 알 수 있듯이 SOAP는 HTTP 요청에 포함할 수 있는 XML 인스턴스입니다. 마찬가지로 결과는 다음 예제와 같이 SOAP 페이로드가 있는 HTTP 패킷으로 반환됩니다.
HTTP/1.1 200 OK
Content-Type: text/xml; "charset=utf-8"
Content-Length: nnnn
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="https://schemas.xmlsoap.org/soap/envelope/"
SOAP-ENV:encodingStyle="https://schemas.xmlsoap.org/soap/encoding//">
<SOAP-ENV:Body>
<m:GetLastTradePriceResponse xmlns:m="Some-URI">
<Price>34.5</Price>
</m:GetLastTradePriceResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
XML 웹 서비스의 기초가 되는 인프라를 이해하는 것이 유용하지만 COM+를 사용하면 XML 웹 서비스를 쉽게 만들고 사용할 수 있으므로 이 수준을 자세히 살펴보지 않아도 됩니다.
모든 COM+ 애플리케이션에서 구성된 COM 구성 요소의 기본 인터페이스에서 메서드를 XML 웹 서비스로 노출할 수 있습니다. 노출하려는 메서드가 기본 인터페이스에 있어야 하고 구성 요소를 구성해야 한다는 점을 제외하고는 구성 요소를 작성할 때 특별한 프로그래밍 고려 사항이 필요하지 않습니다(서버의 COM+ 카탈로그에서). 네트워크 인터페이스를 통해 통신하거나 SOAP를 구문 분석하는 코드를 작성할 필요가 없습니다. COM+ SOAP 서비스를 사용하여 XML 웹 서비스를 만드는 방법에 대한 자세한 지침은 XML 웹 서비스 만들기를 참조하세요.
COM+ 애플리케이션을 XML 웹 서비스로 노출하면 WSDL(Web Services Description Language)을 사용하여 XML 웹 서비스에서 사용할 수 있는 모든 메서드의 구문에 대한 자세한 정보가 자동으로 게시됩니다. 이 정보는 XML 웹 서비스를 사용하는 클라이언트에서 사용됩니다.
COM+는 다음과 같이 원격 XML 웹 서비스에 액세스하고 사용할 수 있는 두 가지 방법을 제공합니다.
- 잘 알려진 개체 (WKO) 모드는 COM+ 또는 Microsoft Windows를 사용하여 XML 웹 서비스를 만들지 않았더라도 WSDL을 사용하여 구문을 게시하는 XML 웹 서비스에 액세스하는 데 사용할 수 있습니다.
- 클라이언트 활성화 개체 (CAO) 모드는 COM+ 애플리케이션을 노출하여 만든 XML 웹 서비스에 액세스하는 데만 사용할 수 있습니다. CAO 모드는 현재 SOAP 표준에서 지원되지 않는 기능인 영구 연결을 사용하여 성능을 향상합니다.
두 방법 모두 클라이언트 애플리케이션이 네트워크 인터페이스를 통해 통신하거나 SOAP를 구문 분석하는 코드를 작성하지 않고도 XML 웹 서비스의 메서드를 간단하게 원격으로 호출할 수 있습니다. 두 모드에서 XML 웹 서비스에 액세스하는 방법에 대한 자세한 내용은 CAO 모드에서 XML 웹 서비스 액세스 및 WKO 모드에서 XML 웹 서비스 액세스를 참조하세요.
참고
COM+는 SOAP-Document 사양이 아닌 SOAP-RPC 사양만 지원합니다.
COM+를 사용하면 기존 COM+ 애플리케이션을 완전히 투명한 방식으로 CAO 모드의 XML 웹 서비스로 사용할 수 있으므로 XML 웹 서비스를 특히 쉽게 사용할 수 있습니다. 서버에서 XML 웹 서비스로 노출된 COM+ 애플리케이션을 내보내 는 경우 애플리케이션을 가져오는 모든 클라이언트는 가져온 애플리케이션을 사용할 때마다 서버의 XML 웹 서비스를 투명하게 사용할 수 있습니다. 이 기능을 사용하면 기존 COM+ 애플리케이션을 XML 웹 서비스로 변환하고 네트워크를 통해 이러한 서비스를 매우 쉽게 배포할 수 있습니다.
XML 웹 서비스를 사용하면 다음을 포함하여 RPC(원격 프로시저 호출)의 대체 구현에 비해 몇 가지 고유한 이점이 있습니다.
- SOAP는 상호 운용성을 높이는 진정한 플랫폼 간 RPC 구현입니다.
- XML 웹 서비스는 입력 및 출력 매개 변수를 모두 사용하는 메서드를 지원합니다.
- XML 웹 서비스는 일반적으로 다른 RPC 구현을 차단할 수 있는 방화벽을 관통할 수 있는 HTTP를 통해 실행됩니다.
- COM+를 사용하여 XML 웹 서비스를 구현하는 경우 개발자는 특수 코드를 작성할 필요가 없습니다. 이는 대체 RPC 메커니즘에 비해 엄청난 이점입니다.
참고
XML 웹 서비스는 비동기 또는 투명 트랜잭션 호출을 지원하지 않습니다. 이 기능이 필요한 경우 COM+ 대기 구성 요소 서비스를 사용합니다.
관련 항목