서비스 아키텍처(Reporting Services)
Reporting Services에서 보고서 서버는 개별 응용 프로그램 도메인에서 실행되는 고유 기능 영역으로 구성된 Windows 서비스로 구현됩니다. 이 서비스는 보고서 관리자, 보고서 서버 웹 서비스 및 백그라운드 처리 기능 영역을 호스팅합니다. 이 항목에서는 설정할 기능과 발생한 문제 해결 방식을 올바르게 선택하는 데 도움이 되는 서비스 구성에 대해 설명합니다.
아키텍처 다이어그램
다음 다이어그램에서는 Reporting Services의 서비스 아키텍처를 보여 줍니다.
[!참고]
이 아키텍처 다이어그램에는 일부 보고서 서버 기능만 표시되어 있습니다. 예를 들어 이 다이어그램에 표시된 세 가지 기능 영역 범위 밖에 있는 초기화 및 해독 가능한 암호화도 중요한 서버 작업입니다.
서비스 및 인프라
보고서 서버 Windows 서비스는 단일 보고서 서버 데이터베이스 및 구성 파일 집합에 대한 액세스 권한이 있는 단일 계정을 사용하여 단일 프로세스에서 실행되는 통합 응용 프로그램 집합입니다. 전체 서비스에 대한 구성 설정은 RSeportServer.config, ReportServerServices.exe.config 및 보고서 서버 데이터베이스에 저장됩니다.
서비스 내에서 보고서 관리자, 웹 서비스 및 백그라운드 처리는 개별 응용 프로그램 도메인으로 실행됩니다. 이러한 세 가지 기능 영역은 모두 기본적으로 설정되어 있지만 지정된 시간에 사용할 특정 서비스를 구성할 수 있습니다. 예를 들어 요청 시 보고 또는 대화형 보고를 지원하지 않으려면 웹 서비스를 해제할 수 있습니다.
서버 기능 영역은 개별 응용 프로그램 도메인으로 격리되어 있지만 메모리 관리 및 프로세스 상태는 서비스에서 전반적으로 관리됩니다. 메모리 임계값은 서비스 전체에 대해 구성됩니다. 보고서 서버는 재활용 동작을 내부 작업으로 처리합니다. 요청 시 서비스의 개별 부분을 재활용할 수 없습니다. 하지만 영구 연결을 열어 둘 기간을 지정하는 구성 설정은 지정할 수 있습니다.
여러 인스턴스에 서비스의 기능 영역을 분할하면(예: 한 인스턴스에 보고서 관리자 설정, 두 번째 인스턴스에 웹 서비스 설정, 세 번째 인스턴스에 백그라운드 처리 설정) 메모리 및 구성 설정이 특정 인스턴스에서 실행되는 응용 프로그램에 적용됩니다. 서비스의 기능 영역을 분할하더라도 기능 영역 사이에는 상호 종속성이 존재합니다. 보고서 서버 전체 설치는 일반적으로 세 개의 기능 영역을 모두 사용합니다. 자세한 내용은 방법: Reporting Services 설정 또는 해제를 참조하십시오.
HTTP 수신기
Reporting Services에는 로컬 컴퓨터의 특정 포트에 있는 HTTP.SYS로 들어오는 요청을 모니터링하는 HTTP 수신기가 포함되어 있습니다. 호스트 이름 및 포트는 서버를 구성할 때 URL 예약에 지정합니다. 사용 중인 운영 체제에 따라 지정된 포트를 다른 응용 프로그램과 공유할 수 있습니다.
HTTP 수신기는 HTTP 1.1 프로토콜을 구현하며 운영 체제에서 제공하는 HTTP.SYS 기능을 사용합니다. 왜냐하면 Reporting Services에 HTTP.SYS를 내부 구성 요소로 포함하는 운영 체제가 필요하기 때문입니다.
HTTP 수신기는 요청을 처리할 때 사용자 ID를 확인하기 위해 요청을 인증 계층으로 전달합니다. 요청이 인증되면 보고서 서버 웹 서비스가 호출됩니다.
HTTP 수신기는 HTTP 서버 API 버전 1.0을 사용합니다. 자세한 내용은 MSDN에서 HTTP 서버 API(HTTP Server API)를 참조하십시오.
인증 계층
Reporting Services에는 요청을 만든 사용자 또는 응용 프로그램의 ID를 확인하는 인증 계층이 포함되어 있습니다. 지원되는 인증 유형에는 Windows 통합 보안, NTLM 인증, 기본 인증, 폼 및 사용자 지정 인증, 익명 액세스 등이 있습니다. Reporting Services에서는 기본적으로 Windows 통합 보안과 NTLM 인증을 사용하지만 구성 파일에서 다른 인증 유형을 지정할 수 있습니다. 각 보고서 서버 인스턴스에는 하나의 인증 유형만 구성할 수 있습니다. 확장 배포 구성을 사용하는 경우 환경의 각 노드에서 같은 인증 유형을 사용해야 합니다.
보고서 서버 인증은 네트워크 보안 설정 및 클라이언트 응용 프로그램의 컨텍스트 내에서 작동합니다. 특정 인증 유형의 성공적인 사용 여부는 브라우저 및 네트워크 보안 기능에 달려 있습니다. 예를 들어 Windows 통합 보안을 사용하려면 Internet Explorer와 Kerberos 네트워크 인증을 사용하고 가장을 설정해야 합니다. 또한 보고서 데이터 원본 연결을 위해 통합 보안을 사용하려면 원격 데이터 원본에 대한 후속 연결을 허용하도록 위임을 설정해야 합니다.
Reporting Services의 인증에 대한 자세한 내용은 Reporting Services의 인증 구성을 참조하십시오.
보고서 관리자
보고서 관리자는 보고서 서버 웹 서비스에 대한 웹 프런트 엔드 액세스를 제공하는 자원 사용이 없는 클라이언트이며 보고서 서버 콘텐츠 및 작업을 보고 관리할 수 있는 즉시 사용 가능한 도구입니다.
기본적으로 보고서 관리자는 동일한 서버 인스턴스에서 실행되는 웹 서비스에 대한 프런트 엔드 액세스를 제공합니다. 서버 인스턴스에 웹 서비스가 설정되지 않은 경우 구성 파일에서 URL을 설정하여 보고서 관리자를 다른 인스턴스 또는 컴퓨터의 보고서 서버 웹 서비스로 지정할 수 있습니다.
보고서 관리자는 클라이언트 컴퓨터의 브라우저 세션 내에서 실행됩니다. 응용 프로그램 파일 또는 설정은 클라이언트에 저장되지 않습니다. 세션 상태는 브라우저 창이 열려 있는 동안 유지됩니다. 사용자별 설정은 보고서 서버 데이터베이스에 저장되며 사용자가 보고서 관리자에 연결할 때마다 다시 사용됩니다.
보고서 관리자는 구독 정의 페이지에서 사용자 지정 배달 확장 프로그램 설정을 지정할 수 있습니다. 사용자 지정 배달 확장 프로그램을 만들고 배포하면 보고서 관리자가 해당 확장 프로그램에 옵션 및 텍스트를 동적으로 표시할 수 있습니다.
보고서 관리자를 사용하려면 응용 프로그램 URL을 정의해야 합니다. 처음에 URL을 만들지 않으면 보고서 관리자를 간단히 비활성화할 수 있습니다. Reporting Services를 기본 구성으로 설치한 경우에는 URL이 이미 생성되어 있으며 응용 프로그램을 해제하려면 이 URL을 삭제해야 합니다.
보고서 서버를 SharePoint 통합 모드로 실행되도록 구성하면 보고서 관리자가 해제됩니다. 이전에 URL을 구성한 경우에도 SharePoint 통합 모드에서 실행되는 보고서 서버에서는 보고서 관리자를 사용할 수 없습니다.
보고서 관리자에 대한 자세한 내용은 보고서 관리자 및 방법: 보고서 관리자 구성을 참조하십시오.
보고서 서버 웹 서비스
보고서 서버 웹 서비스는 실시간으로 사용자 또는 응용 프로그램에 의해 시작되는 모든 요청 시 실행 보고서 및 모델 처리 요청(보고서 관리자에 대한 대부분의 요청 포함)을 위한 핵심 엔진입니다.
보고서 서버 웹 서비스는 요청 시 실행되는 보고서에 대해 엔드 투 엔드 처리를 수행합니다. 대화형 처리를 지원하기 위해 웹 서비스는 요청을 처리하기 전에 사용자를 인증하고 권한 부여 규칙을 확인합니다. 웹 서비스는 기본 Windows 보안 확장 프로그램 및 사용자 지정 인증 확장 프로그램을 지원합니다.
웹 서비스는 또한 보고서 서버와 통합되는 사용자 지정 응용 프로그램을 위한 기본 프로그래밍 인터페이스를 제공합니다. 사용자 지정 사용자 인터페이스를 제공하려는 경우 보고서 관리자 없이 웹 서비스를 사용할 수 있습니다.
자세한 내용은 보고서 서버 웹 서비스를 참조하십시오.
백그라운드 처리
백그라운드 처리란 백그라운드에서 실행되며 보고서 서버에 의해 시작되는 작업을 말합니다. 대부분의 백그라운드 처리는 예약된 보고서 처리 및 구독 배달 작업으로 구성되지만 보고서 서버 데이터베이스 유지 관리 태스크도 포함됩니다.
예약, 구독 및 배달의 백그라운드 처리는 Management Studio에서 정책 기반 관리의 Reporting Services 패싯에 있는 노출 영역 구성을 통해 해제할 수 있습니다. 이러한 작업을 해제하면 예약된 보고서 또는 모델 처리를 현재 서비스 인스턴스에서 사용할 수 없습니다. 데이터베이스 유지 관리는 서버가 작동 상태에 있도록 유지하므로 해제할 수 없는 핵심 태스크입니다.
백그라운드 처리 작업은 정의로 인해 프런트 엔드 응용 프로그램 또는 웹 서비스에 따라 다릅니다. 특히 일정 및 구독은 보고서 관리자의 응용 프로그램 페이지 또는 SharePoint 사이트(보고서 서버가 SharePoint 통합으로 구성된 경우)에서 작성된 후 웹 서비스로 전달된 다음 여기서 정의를 만들어 보고서 서버 데이터베이스에 저장합니다.
백엔드 처리에 대해 프로그래밍 방식 액세스가 필요한 사용자 지정 코드를 제공하려면 Reporting Services WMI 공급자를 사용합니다. 자세한 내용은 Reporting Services WMI 공급자를 참조하십시오. 일정 예약 및 배달 처리 기능에 대한 자세한 내용은 일정 예약 및 배달 프로세서를 참조하십시오.
백그라운드 처리에 대한 인증 및 메모리 관리
위의 서비스 아키텍처 다이어그램에 표시된 대로 백그라운드 처리에서는 보고서 관리자 및 웹 서비스와는 다른 방식으로 인증 및 메모리 관리를 처리합니다. 백그라운드 처리에서는 Authz.dll을 사용하여 구독을 만드는 데 사용된 사용자 계정에 보고서를 볼 수 있는 올바른 권한이 있는지 확인합니다. 이러한 검사를 통해 보고서를 수신하려는 사용자가 도메인에서 유효한 Windows 사용자인지 확인합니다. 백그라운드 처리로 실행되는 다른 모든 보고서 및 모델 처리는 무인 실행 계정의 ID로 요청됩니다.