Share via


ASP.NET을 사용하여 만든 XML Web services에 대한 디자인 지침

웹 서비스는 인터넷을 통해 프로그래밍 방식으로 액세스될 수 있는 서비스를 제공하는 강력한 기술입니다. 다음은 효율적인 웹 서비스를 만들기 위한 권장 사항입니다.

  • 웹 서비스는 해당 웹 서비스를 호스트하는 서버와 클라이언트와 간의 동기 통신과 비동기 통신을 모두 지원합니다. 동기 통신에서는 클라이언트가 서비스 호스트 서버에 서비스 요청을 보내고 응답을 기다립니다. 클라이언트는 결과를 기다리는 동안 다른 작업을 수행할 수 없습니다. 그러나 비동기 통신에서는 클라이언트가 응답을 기다리면서 다른 작업을 계속 처리할 수 있으며, 서비스 요청 결과가 제공되면 이에 응답합니다.

    웹 서비스 기술 언어 도구(Wsdl.exe)를 사용하여 프록시 클래스를 만들 경우 메서드의 표준 동기 버전과 비동기 버전이 클래스에 생성됩니다. 비동기 버전은 BeginEnd라는 두 개의 메서드로 구성됩니다. Begin 메서드는 웹 서비스를 시작하는 데 사용되고, End 메서드는 결과를 검색하는 데 사용됩니다.

    비동기 통신을 사용하면 시스템 유용성이 향상되고 웹 서비스 결과를 기다리는 동안 클라이언트에서 지연이 발생하지 않습니다.

    코드 예제에 대한 자세한 내용은 방법: 웹 서비스 클라이언트에서 비동기 호출 수행을 참조하십시오. 비동기 통신에 대한 자세한 내용은 XML Web Services와 비동기적으로 통신을 참조하십시오.

  • 인터넷을 통해 많은 서비스 요청을 수행하면 클라이언트 응용 프로그램의 성능에 영향을 줄 수 있습니다. 웹 서비스를 디자인할 때 서비스 요청을 효율적으로 사용하려면 관련 정보를 모아 분류하는 메서드를 만듭니다. 예를 들어, 책에 대한 정보를 검색하는 웹 서비스가 있다고 가정합니다. 책 제목, 저자 및 출판사를 검색하는 메서드를 개별적으로 만드는 대신 한 번의 요청에서 이 정보를 모두 반환하는 메서드를 만듭니다. 정보를 작은 블록으로 여러 번 전송하는 것보다 큰 블록으로 한 번에 전송하는 것이 더 효율적입니다.

  • 코드 예제에 대한 자세한 내용은 방법: 단일 웹 서비스 메서드에 관련 정보 그룹화를 참조하십시오. 웹 서비스를 디자인할 때 표준 개체 지향 프로그래밍을 사용해야 합니다. 구현 정보를 숨기려면 캡슐화를 사용합니다. 보다 복잡한 웹 서비스의 경우 상속성과 다형성을 사용하여 코드를 재사용하고 디자인을 간소화할 수 있습니다.

  • 코드 예제에 대한 자세한 내용은 방법: 웹 서비스에서 상속 사용을 참조하십시오. 출력 캐싱을 사용하여 웹 서비스의 성능을 향상시킵니다. 출력 캐싱을 설정하면 서비스 요청 결과가 지정된 기간 동안 출력 캐시에 저장됩니다. 비슷한 웹 서비스 요청을 만들 경우 계산을 다시 수행하지 않고 캐시에서 결과를 가져올 수 있습니다. 그러면 웹 서비스 서버에 필요한 처리량이 감소되어 웹 서비스의 응답 시간이 향상됩니다. 캐싱은 클라이언트와 서버 모두에서 수행될 수 있습니다. 웹 서비스 출력을 캐시하는 시간은 Duration 속성을 사용하여 지정할 수 있습니다.

    클라이언트에서 출력 캐싱을 활성화하는 지시문은 다음과 같습니다.

    <%@ OutputCache Duration="60" %>
    For a code example, see How to: Enable Output Caching on a Web Service Client.You can also use the CacheDuration property of the WebMethod attribute class to enable caching on the server. For a code example, see How to: Enable Server-Side Output Caching for a Web Service.
    
  • 웹 서비스를 디자인할 때 스키마의 형식이 지정되는 구조를 따르도록 합니다.

  • 웹 서비스는 SOAP를 기본 전송 및 serialization 프로토콜로 사용합니다. SOAP 메시지는 선택적 헤더와 메시지 본문으로 구성됩니다. 헤더 섹션에는 웹 서버의 인프라에서 처리할 수 있는 정보가 포함됩니다. SOAP는 헤더를 정의하지 않습니다. 본문 섹션에는 웹 서비스의 매개 변수 또는 반환 값처럼 응용 프로그램에서 처리되는 정보가 포함됩니다.

    SOAP 헤더 사용에 대한 자세한 내용은 SOAP 헤더 사용을 참조하십시오.

  • 서비스의 작업 및 데이터 구조를 설명하는 웹 서비스에 대한 설명서(예: 정적 HTML 파일)를 제공하고, 웹 서비스의 사용 방법에 대한 예제도 포함합니다. 서비스 설명이나 서비스 도움말 페이지 외에 자체 설명서를 제공하도록 합니다.

참고 항목

작업

방법: 웹 서비스 클라이언트에서 비동기 호출 수행
방법: 단일 웹 서비스 메서드에 관련 정보 그룹화
방법: 웹 서비스에서 상속 사용
방법: 웹 서비스 클라이언트에서 출력 캐싱을 사용하도록 설정
방법: 웹 서비스의 서버측 출력 캐싱을 사용하도록 설정

개념

XML Web services와 비동기적으로 통신

기타 리소스

ASP.NET을 사용하는 XML Web services
SOAP 헤더 사용

Footer image

Copyright © 2007 by Microsoft Corporation. All rights reserved.