관리 코드로 웹 서비스 프로그래밍 소개
웹 서비스를 사용하여 서로 다른 유형의 시스템 간에 XML 메시지로 느슨하게 결합된 데이터를 교환할 수 있습니다. 데이터와 응용 프로그램 논리에 대한 원격 액세스가 새로운 개념은 아니지만, 느슨하게 결합된 방식으로 이를 수행하는 것은 획기적인 개념이라 할 수 있습니다. 이전의 DCOM, IIOP 및 Java/RMI에서는 클라이언트와 서버 간에 통합이 완벽하게 이루어져야 했습니다. 또한 웹 서비스의 기초인 XML 기반 계약 대신 운영 체제와 구현별 이진 데이터 형식이 사용되었습니다.
DCOM, IIOP 및 Java/RMI에는 특정 구성 요소 기술이나 개체 호출 규칙이 필요하지만, 웹 서비스에서는 그렇지 않습니다. 웹 서비스에서 클라이언트와 서버 사이의 유일한 가정은 수신자가 자신이 받는 메시지를 이해할 것이라는 것입니다. 즉, 클라이언트와 서버가 계약에 동의합니다. 이 경우 계약은 WSDL과 XSD(XML 스키마 정의)를 사용하여 정의됩니다. 그런 다음 클라이언트와 서버가 HTTP 등의 지정된 전송을 통해 계약을 준수하는 메시지를 생성하여 통신합니다. 따라서 프로그램 작성에 사용된 구성 요소 모델, 언어 및 운영 체제에 관계없이 웹 서비스에 액세스할 수 있습니다. 또한 XML과 같은 텍스트 형식을 사용하므로 시간이 지남에 따라 느슨하게 결합 방식으로 메시지 교환이 전개될 수 있습니다. 느슨한 결합은 메시지 교환에 관련된 모든 당사자를 동시에 업데이트할 수 없는 환경에서 필수적입니다.
이 기술은 이전 버전의 기존 응용 프로그램과의 호환성을 위해 유지되며 새로운 개발에는 권장되지 않습니다. 권장되는 대체 항목에 대한 자세한 내용은 다음을 참조하세요.
Windows Communication Foundation 서비스 및 Visual Studio의 WCF.NET 데이터 서비스
웹 서비스 및 .NET Framework
ASP.NET과 .NET Framework 기반의 관리 코드를 사용하여 웹 서비스를 만드는 경우 통신 프로토콜이나 메시지 전송 등의 세부 사항을 처리하기 위해 인프라 코드를 작성할 필요가 없습니다. 또한 ASP.NET 페이지 프레임워크를 사용하는 웹 서비스를 만들 경우 서비스에서 인증, 캐싱 및 상태 관리와 같은 .NET Framework의 여러 기능을 사용할 수 있습니다.
ASP.NET 응용 프로그램 모델에서 웹 페이지의 확장명은 .aspx입니다. 웹 서비스와 일반 ASP.NET 페이지를 구별하기 위해 웹 서비스에서는 .asmx 확장명을 사용합니다.
웹 서비스를 사용하여 데이터를 양방향으로 쉽게 교환할 수 있도록 개발자는 다음 작업을 수행해야 합니다.
웹 서비스를 만듭니다. XML Web service를 만들 때 XML Web service 클라이언트에 기능을 제공하는 응용 프로그램을 만듭니다.
웹 서비스에 액세스합니다. 웹 서비스에 액세스할 때 클라이언트 응용 프로그램은 웹 서비스에 포함된 기능을 찾아 참조하고 사용합니다. XML Web service의 클라이언트는 일반적으로 응용 프로그램입니다. 이 응용 프로그램은 웹 서비스와 메시지를 주고받고 처리할 수 있습니다.
반드시 동일한 개발자가 웹 서비스를 만든 다음 해당 웹 서비스에 액세스하지 않습니다. 교통 정보 서비스 등의 일부 웹 서비스는 교통부와 같은 단일 기관에서 만들 수 있습니다. 그러나 운송 배달 회사 웹 사이트 등의 많은 웹 사이트에서 이 서비스에 액세스할 수 있습니다.
웹 서비스는 독립 실행형 응용 프로그램이거나 보다 큰 웹 응용 프로그램의 하위 구성 요소일 수 있습니다. 예를 들어, 온라인으로 책을 판매하는 웹 응용 프로그램을 만드는 경우 웹 응용 프로그램에서 다음과 같이 웹 서비스를 사용합니다.
웹 서비스를 만듭니다. 응용 프로그램에서 해당 주문 처리 논리를 웹 서비스로 제공합니다. 관계 회사 웹 사이트에서 온라인으로 책을 판매하는 웹 응용 프로그램의 이 서비스에 액세스합니다.
웹 서비스에 액세스합니다. 응용 프로그램에서 온라인 서점을 위해 전문적으로 서평을 작성하는 다른 온라인 회사에서 개발한 웹 서비스에 액세스합니다. 그러면 온라인 서점의 방문자가 특정 책의 가격을 볼 때 동일한 페이지에서 해당 책의 서평을 볼 수 있습니다.
다른 웹 서비스, 웹 응용 프로그램, Windows 응용 프로그램 및 콘솔 응용 프로그램을 비롯하여 다른 많은 종류의 응용 프로그램에서 웹 서비스에 액세스할 수 있습니다. 그러나 클라이언트는 웹 서비스에 메시지를 보낼 수 있어야 합니다.