다음을 통해 공유


청구 어댑터 샘플 정보

 

적용 대상: Windows Azure 팩

청구 어댑터 샘플은 에서 https://www.microsoft.com/en-us/download/details.aspx?id=41146사용할 수 있는 Microsoft Visual Studio 2012 솔루션입니다. 샘플 아키텍처는 청구 어댑터 코어 엔진과 시스템별 청구 어댑터 구성 요소의 두 부분으로 구성됩니다. 핵심 엔진은 Windows Azure 팩 청구 API와 상호 작용하며 쉽게 사용할 수 있는 인터페이스를 제공합니다. 시스템별 구성 요소는 핵심 엔진에서 선택한 인터페이스의 구현과 결합된 실제 청구 시스템과 통신하는 클라이언트로 구성됩니다. WHMCSHostBill의 두 가지 시스템별 청구 어댑터와 클라이언트가 제공됩니다. 다른 청구 시스템의 경우 새 구현을 만들어야 합니다.

핵심 엔진에는 상태를 유지하고 오류 복구를 지원하는 자체 데이터베이스가 있습니다. 샘플에서 제공하는 두 가지 시스템별 예제에는 ID 매핑 지원을 제공하는 데이터베이스가 포함됩니다. 이러한 데이터베이스는 구현별로 지정되며 고유한 청구 어댑터 구현을 만들 때 필요하지 않을 수 있습니다.

중요

제공된 시스템별 구현은 데이터베이스를 사용하여 ID 매핑을 수행합니다. Windows Azure Pack 식별자를 특정 청구 시스템 식별자에 매핑합니다. 청구 시스템에서 Windows Azure 팩 식별자를 사용(또는 저장)할 수 있는 경우 구현의 일부로 ID 매핑 데이터베이스가 필요하지 않습니다.

Windows Azure 팩 청구 샘플

일반 샘플 관찰

  • 청구 어댑터는 Windows 서비스 또는 콘솔 애플리케이션으로 실행할 수 있습니다. 자세한 내용은 청구 어댑터 샘플을 빌드하고 실행하는 방법을 참조하세요.

  • 청구 어댑터는 Windows Azure 팩 청구 API 및 청구 시스템에 연결할 수 있는 한 어디서나 호스팅할 수 있습니다. 응답자 중 하나라도 사용되는 경우(API 차단 또는 가격 책정 API) Windows Azure 팩도 청구 어댑터에 액세스할 수 있어야 합니다.

  • 청구 어댑터 코어 엔진은 요금제 사용을 처리하기 위해 강력한 형식의 인터페이스를 제공합니다. 그러나 이 샘플에서 구현된 두 청구 시스템은 추가 추가 기능을 가져오지 않고도 요금제 사용량을 기본으로 제공하지 않습니다.

핵심 엔진의 측면

다음은 핵심 엔진의 측면에 대해 설명합니다. 샘플 프로젝트에 대한 자세한 내용은 청구 어댑터 핵심 엔진 샘플 파일 정보를 참조하세요.

단순화 & 추상화

핵심 엔진은 사용량 Rest API를 통해 수집된 정보를 강력하게 입력하여 청구 Rest API의 복잡성을 사용하기 쉬운 인터페이스로 추상화합니다. 사용량 Rest API에 대한 자세한 내용은 Windows Azure 팩 사용량 서비스 사용량 REST API 참조를 참조하세요.

오류 처리

핵심 엔진은 내부적으로 재시도를 수행하여 시스템별 구현의 오류를 추상화합니다. Windows Azure 팩에서 발생한 오류(네트워크 오류와 같은 일시적인 오류로 간주됨)의 경우 핵심 엔진은 성공적인 응답이 반환될 때까지 계속 다시 시도합니다. 청구 어댑터(일시적 또는 영구적일 수 있음)에서 발생하는 오류의 경우 핵심 엔진은 최대 5번 다시 시도합니다. 5번이 지나면 오류가 영구적으로 간주되고 핵심 엔진이 처리 엔진을 중지하고 시스템 관리자가 오류를 분석하고 수동으로 수정할 때까지 기다립니다. 핵심 엔진은 Microsoft Windows 이벤트 로그에 오류 메시지를 씁니다. 엔진은 재시도 사이에 미리 정의된 시간 동안 절전 모드로 전환됩니다. app.config 대한 자세한 내용은 청구 어댑터 핵심 엔진 샘플 파일 정보를 참조하세요.

참고

엔진은 이벤트당 시스템별 구현을 최대 5번 호출할 수 있으므로 구현은 idempotent여야 합니다.

고가용성 & 마스터/슬레이브 선택

고가용성 및 확장성을 위해 여러 컴퓨터에 청구 어댑터를 배포할 수 있습니다. 모든 응답자(API 차단 및 가격 책정 API)가 사용하도록 설정된 경우 모든 인스턴스에서 실행됩니다. 마스터 & 슬레이브 선택은 각 프로세서(알림 이벤트 및 사용 레코드)의 한 instance(활성화된 경우)만 프로세스 및 컴퓨터에서 한 번에 실행되도록 합니다.

로깅

로그는 Microsoft 이벤트 뷰어 볼 수 있습니다. Microsoft-WindowsAzurePack.BillingAdapter 채널의 애플리케이션 및 서비스 로그 섹션에서 사용할 수 있습니다.

상태 관리

청구 어댑터 엔진은 오류로부터 복구할 수 있도록 필요한 상태를 자체 데이터베이스에 유지합니다. 이렇게 하면 시스템 특정 구현에서 성공적으로 처리된 이미 "커밋된" 이벤트가 두 번 이상 처리되지 않습니다.

시스템별 구성 요소의 측면

이 샘플에는 두 개의 청구 시스템별 구현(WHMCS 및 HostBill 청구 시스템용)이 포함되어 있습니다. 다른 청구 시스템이 있는 경우 청구 어댑터 인터페이스의 고유한 구현을 제공해야 합니다. 고유한 구현을 작성할 때 몇 가지 지침을 따라야 합니다(아래 참조). 이러한 지침은 제공된 시스템별 구현에서 설명되므로 기존 구현 중 하나를 템플릿으로 사용하고 필요에 따라 수정하는 것이 좋습니다.

재시도 처리

코드는 idempotent/re-entrant여야 합니다. 요청을 처리하는 동안 오류가 발생하면 청구 어댑터 엔진이 요청을 다시 배달하려고 시도합니다. 구현은 재시도 시도를 처리하고 처리된 이벤트의 절반을 클린 수정할 수 있어야 합니다. 포함된 샘플 구현은 청구 시스템을 수정하기 전에 현재 청구 시스템 상태를 검사. 또한 매핑 데이터베이스를 활용하여 이벤트가 이미 성공적으로 처리되었는지 검색합니다.

HostBill 및 WHMCS 샘플의 측면

두 샘플 구현 모두 필요한 API 호출이 부족하여 청구 시스템 데이터베이스와 직접 상호 작용합니다. 청구 시스템 데이터베이스 내부 구조는 버전 간에 변경될 수 있습니다. 즉, 샘플 구현이 중단될 수 있습니다. WHMCS 샘플 구현은 WHMCS 버전 5.2.7에서 테스트되었으며 HostBill 구현은 HostBill 버전 4.9.8에서 테스트되었습니다. 청구 시스템 버전이 다른 경우 호환성을 위해 현재 구현을 다시 테스트해야 합니다. 제공된 구현은 app.config 예상 버전을 읽고(app.config 대한 자세한 내용은 청구 어댑터 핵심 엔진 샘플 파일 정보 참조) 청구 시스템 버전이 예상 버전과 일치하지 않으면 실행되지 않습니다.

두 구현 모두 이벤트 알림 처리 및 차단 API 응답자를 구현합니다. HostBill은 가격 책정 응답자도 구현합니다.

참고 항목

청구 어댑터 코어 엔진 샘플 파일 정보
청구 어댑터 시스템별 샘플 파일 정보