다음을 통해 공유


관리 코드로 웹 서비스 프로그래밍 소개

업데이트: 2007년 11월

웹 서비스를 사용하면 유형이 다른 시스템 간에 데이터를 XML 메시지 형식으로 교환할 수 있습니다. 데이터와 응용 프로그램 논리에 대한 원격 액세스가 새로운 개념은 아니지만, 느슨하게 결합된 방식으로 이것을 수행하는 것은 획기적인 개념이라 할 수 있습니다. 이전의 DCOM, IIOP 및 Java/RMI에서는 클라이언트와 서버 간에 통합이 완벽하게 이루어져야 했을 뿐 아니라 특정한 이진 데이터 형식의 플랫폼과 구현을 사용했습니다. 그러한 프로토콜에는 특정 구성 요소 기술이나 개체 호출 규칙이 필요하지만, 웹 서비스에서는 그렇지 않습니다. 웹 서비스에서 클라이언트와 서버 사이의 유일한 가정은 수신자가 자신이 받는 메시지를 이해할 것이라는 점입니다. 다시 말해서, 클라이언트와 서버는 WSDL과 XSD를 사용하여 설명되는 계약에 동의하고, 이러한 계약을 담은 메시지를 HTTP와 같은 지정된 전송 프로토콜을 통해 전달함으로써 서로 통신합니다. 따라서 프로그램 작성에 사용된 구성 요소 모델, 언어 및 운영 체제에 상관없이 웹 서비스에 액세스할 수 있습니다. 또한 XML과 같이 융통성 있는 텍스트 형식을 사용하므로 시간이 지남에 따라 이완 결합 방식으로 메시지 교환이 전개될 수 있습니다. 느슨한 결합은 메시지 교환에 관련된 모든 당사자를 동시에 업데이트할 수 없는 환경에서 필수적입니다.

ASP.NET 페이지 프레임워크를 사용하여 웹 서비스를 만들면 인증, 캐싱 및 상태 관리와 같은 .NET Framework의 여러 기능에 액세스할 수 있습니다. 관리 코드를 사용하는 웹 서비스에 대한 기초는 ASP.NET과 .NET Framework이므로 개발자는 인프라 코드를 작성할 필요 없이 웹 서비스를 만들거나 액세스하는 데 집중할 수 있습니다.

ASP.NET 응용 프로그램 모델에서 브라우저에 사용하는 웹 페이지의 확장명은 .aspx입니다. 웹 서비스와 일반 ASP.NET 페이지를 구별하기 위해 웹 서비스에서는 .asmx 확장명을 사용합니다.

웹 서비스 작업 시에는 다음 두 가지의 기본적인 역할이 있습니다.

  • 웹 서비스 만들기 — XML Web service를 만들 때 XML Web service 클라이언트에 기능을 제공하는 응용 프로그램을 만듭니다.

  • 웹 서비스 액세스 — 웹 서비스에 액세스할 때 클라이언트 응용 프로그램은 별도의 웹 서비스에 포함된 기능을 찾아 참조하고 사용합니다. 웹 서비스의 클라이언트는 일반적으로 웹 서비스와 메시지를 주고 받고 처리할 수 있는 응용 프로그램입니다. 이 클라이언트는 적어도 웹 서비스에 메시지를 보낼 수는 있어야 합니다. .NET Framework를 사용하는 모든 응용 프로그램이 클라이언트가 될 수 있습니다.

웹 서비스는 독립 실행형 응용 프로그램 또는 보다 큰 웹 응용 프로그램의 하위 구성 요소일 수 있습니다. 예를 들어, 온라인 상에서 책을 판매하는 웹 응용 프로그램을 만드는 경우, 웹 응용 프로그램은 웹 서비스와 다음과 같이 상호 작용합니다.

  • 웹 서비스 만들기 — 응용 프로그램은 주문 처리 논리를 웹 서비스로 노출하고, 관련 웹 사이트에서는 해당 웹 응용 프로그램을 사용하여 고객의 사이트 방문을 요구하지 않으면서 온라인 상점을 통해 책을 판매합니다.

  • 웹 서비스 액세스 — 응용 프로그램에서는 온라인 서점을 위해 전문적으로 서평을 작성 및 제공하는 다른 온라인 회사의 웹 서비스에 액세스합니다. 그러면 온라인 서점의 방문자가 특정 책에 대한 자세한 내용을 볼 때 동일한 페이지에서 책에 대한 평가도 볼 수 있습니다.

다른 웹 서비스, 웹 응용 프로그램, Windows 응용 프로그램 및 콘솔 응용 프로그램을 비롯하여 모든 종류의 응용 프로그램에서 웹 서비스에 액세스할 수 있습니다. 이 클라이언트는 적어도 웹 서비스에 메시지를 보낼 수는 있어야 합니다.

참고 항목

기타 리소스

관리 코드의 웹 서비스

웹 서비스를 사용한 웹 프로그래밍

관리 코드로 웹 서비스 만들기

관리 코드의 웹 서비스 액세스