Business Activity Monitoring(BAM: 비즈니스 활동 모니터링)
다음 다이어그램은 BAM(비즈니스 활동 모니터링) 기능의 아키텍처를 보여 줍니다.
도구
다음 도구를 사용하여 BAM과 통합되는 BizTalk 솔루션을 디자인, 개발 및 배포할 수 있습니다.
Microsoft Excel. Excel용 BAM 추가 기능은 활동 및 보기를 생성하는 동안 비즈니스 분석가를 안내하는 사용자 인터페이스를 제공합니다. Excel은 비즈니스 분석가용 디자인 도구 및 비즈니스 사용자용 데이터 사용 도구의 역할을 모두 수행합니다. Excel용 BAM Add-In 대한 자세한 내용은 Excel 용 BAM Add-In 사용 요구 사항을 참조하세요.
BAM 관리 유틸리티. BAM 관리 유틸리티는 Excel에서 생성한 BAM 정의를 기업에 배포할 수 있게 하는 배포 도구입니다. BAM 관리 유틸리티는 필요한 SQL Server 데이터베이스, Analysis Services 큐브, SQL Notification Services 데이터베이스, DTS 또는 SSIS 작업(설치된 SQL Server 버전에 따라 다름) 등을 만듭니다. BAM 관리자에 대한 자세한 내용은 BAM 관리 유틸리티를 참조하세요.
추적 프로필 편집기. 추적 프로필 편집기를 사용하면 BizTalk 개발자가 비즈니스 분석가에 의해 정의된 데이터 요소를 오케스트레이션 및 메시징을 비롯한 BizTalk 구현에 매핑할 수 있습니다. 추적 프로필 편집기에 대한 자세한 내용은 추적 프로필 편집기를 참조하세요.
추적 프로필 배포 유틸리티. 추적 프로필 배포 유틸리티를 사용하면 IT 전문가가 새 추적 프로필과 업데이트된 추적 프로필을 BAM 인프라에 배포할 수 있습니다. 추적 프로필 배포 도구에 대한 자세한 내용은 추적 프로필 배포 유틸리티를 참조하세요.
프레젠테이션
프레젠테이션 계층은 다음으로 구성됩니다.
BAM 포털. Microsoft BizTalk Server BAM 포털은 비즈니스 프로세스에 대한 실시간 엔드 투 엔드 가시성을 제공합니다. BAM 포털은 ASP.NET 페이지 컬렉션으로 구성된 웹 기반 기능입니다. BAM을 사용자 지정하여 성능과 환경을 향상시킬 수 있습니다. BAM 포털에 대한 자세한 내용은 BAM 포털을 참조하세요.
Microsoft Excel. Excel용 BAM 추가 기능은 활동 및 보기를 생성하는 동안 비즈니스 분석가를 안내하는 사용자 인터페이스를 제공합니다. Excel은 비즈니스 분석가용 디자인 도구 및 비즈니스 사용자용 데이터 사용 도구의 역할을 모두 수행합니다. Excel용 BAM Add-In 대한 자세한 내용은 Excel 용 BAM Add-In 사용 요구 사항을 참조하세요.
사용자 지정 사용자 인터페이스. ISV 및 개발자는 BAM 데이터를 표시하는 사용자 지정 응용 프로그램을 만들 수 있습니다.
처리 중
처리 계층은 다음으로 구성됩니다.
BAM 관리 웹 서비스. 이 웹 서비스는 BAM 포털 응용 프로그램이 BAM PIT(기본 가져오기 테이블)와 통신하는 데 사용됩니다. 데이터베이스와의 통신은 구성 중에 생성된 레지스트리에 저장되는 가장된 자격 증명을 사용하여 수행합니다. 이 웹 서비스에 의해 노출된 메서드를 사용자 지정 클라이언트에서 사용하여 모든 사용자에 대한 보기와 보기의 세부 정보, 관련 활동 및 피벗 테이블 레이아웃을 가져올 수 있습니다. 또한 이러한 메서드는 데이터베이스에서 경고를 관리하는 데 사용될 수 있습니다.
Event Bus . BAM 이벤트 버스 서비스는 소스 데이터베이스에 저장된 추적 데이터(스트림)를 처리하고 대상 데이터베이스에서 쿼리 테이블 형식으로 해당 데이터를 유지합니다.
SQL Notification Services. SQL Notification Services는 비즈니스 사용자가 정의한 인스턴스 및 집계 BAM 경고를 평가합니다.
다음 다이어그램은 BAM 아키텍처의 기본 실제 프로세스를 보여 줍니다.
디자인 타임 환경
다음 다이어그램은 디자인 타임 환경을 보여 줍니다.
다음 단계는 위 그림에 나온 순서를 설명합니다.
추적 프로필 편집기는 BizTalk Server가 구성되었고 하나 이상의 BAM 정의가 BM.exe를 사용하여 배포되었으며 기본 가져오기 데이터베이스를 비롯한 인프라가 생성되었다고 가정합니다. 추적 프로필 편집기는 BizTalk 구성 중에 설정된 레지스트리 키를 사용하여 관리 데이터베이스가 있는 위치를 확인합니다.
BAM은 기본 가져오기 데이터베이스가 검색된 후 이 데이터베이스 내의 활동을 열거합니다. BizTalk 개발자는 BAM 기본 가져오기 데이터베이스에서 가져온 배포된 활동을 선택합니다.
BizTalk 개발자는 BizTalk 관리 데이터베이스에서 검색한 배포된 어셈블리를 검토하여 이러한 내용을 물리적 구현에 매핑합니다.
개발자가 BizTalk 아티팩트에 이러한 내용을 시각적으로 매핑하고 나면 BizTalk Server 런타임에 메타데이터가 전송되어 데이터를 수집 및 저장합니다. 이 작업은 주석(수집된 데이터를 디코딩하는 데 사용되는 메시징 정보) 및 추적 프로필(런타임 데이터를 검색하는 데 사용)을 통해 수행합니다.
Microsoft Excel은 디자인 타임 도구 및 데이터 사용 또는 프레젠테이션 도구로 사용됩니다. 디자인 타임 Excel 환경에서 사용자는 BAM 활동 및 보기를 만들어 BAM 정의를 생성할 수 있습니다. 또한 최종적으로 BAM 포털에 표시되는 피벗 컨트롤 및 그래프를 만들 수 있습니다.
배포
배포에는 두 가지 범주가 있습니다.
동적 인프라 작성
데이터 수집을 위한 런타임 계측
다음 다이어그램은 BAM 배포를 보여 줍니다.
다음 단계는 위 그림에 나온 순서를 설명합니다.
BAM 관리 유틸리티는 동적 인프라를 작성하는 데 사용됩니다. BAM 구성 XML 파일 외에 BAM 정의 또는 디자인 타임 Excel 통합 문서를 사용하여 BAM 관리 유틸리티는 필요한 모든 데이터베이스와 시스템이 작동하는 데 필요한 해당 DTS 및 SSIS 작업을 작성합니다.
BAM 기본 가져오기 데이터베이스 및 지원되는 모든 저장 프로시저, 트리거, DTS 또는 SSIS 작업 등이 생성됩니다.
BAM 보관 데이터베이스가 정의되지만 DTS 또는 SSIS 보관 작업이 실행될 때까지 생성되지는 않습니다.
BAM OLAP 집계가 정의된 경우 BAM 별모양 스키마 데이터베이스가 작성됩니다. Excel 스프레드시트의 실시간 집계 단추를 사용할 수 없거나 BAM 정의에서 CreateOlapCube 가 true 로 설정되고 Configuration XML 파일에 AnalysisDatabase용 배포 단위가 있는지 집계가 정의되었는지 확인할 수 있습니다.
BAM OLAP 큐브를 만들려면 BAM 정의 및 구성 XML에는 RTA가 아닌 집계가 정의되어 있어야 합니다.
BAM 관리자 프로세스의 분해된 보기에서는 SQL NS 데이터베이스를 만들기 위해 Notification Services 프로세스(nscontrol.exe)가 호출됨을 보여 줍니다.
추적 프로필 편집기 UI에는 런타임 시스템에서 데이터를 추적 및 디코딩하기 위해 런타임을 계측하는 배포 명령이 있습니다. 이 경우 주석을 BAM 기본 가져오기 데이터베이스로 푸시 합니다 (메시징 시스템에서 데이터를 가져온 경우). BAM 시스템에 게시할 데이터를 결정하기 위해 BizTalk 런타임에 사용되는 BizTalk 관리 데이터베이스에 추적 프로필이 삽입됩니다.
BizTalk 추적 배포 명령줄 도구를 사용하면 추적 프로필 편집기에서 수행하는 것과 비슷하게 추적 프로필을 BAM 기본 가져오기 데이터베이스 및 관리 데이터베이스에 게시할 수 있지만 이 명령줄 도구에서는 매핑 기능이 허용되지 않습니다.
데이터 사용량
데이터 사용은 BAM 인프라에서 수집한 정보를 비즈니스 사용자가 사용하는 프로세스를 말합니다. 이 시점에서는 BAM 정의가 작성되었고(수집할 데이터 및 데이터를 보는 방법 정의) BAM 정의가 배포되었으며(인프라를 동적으로 작성) BAM 정의가 물리적 구현에 매핑되었다고(데이터 수집 위치 정의 및 경우에 따라 시스템에 밀어넣을 코드 작성) 가정합니다.
다음 다이어그램은 데이터 사용 프로세스를 보여 줍니다.
다음 단계는 위 그림에 나온 순서를 설명합니다.
BAM 포털은 인터넷 정보 서비스에서 호스팅되는 두 개의 프로세스인 Internet Explorer 및 BAM 웹 포털 프로세스로 분할됩니다.
Internet Explorer는 BAM 포털 웹 사이트에 연결하는 비즈니스 사용자의 보안 컨텍스트를 사용합니다. BAM 포털 웹 사이트는 BAM 관리 웹 서비스를 사용하여 정보를 수집하는 ASPX 응용 프로그램입니다.
BAM 포털은 BAM 관리 웹 서비스를 호출하여 특정 비즈니스 사용자가 볼 수 있는 BAM 활동/보기와 같은 정보를 검색합니다. BAM 관리 웹 서비스가 비즈니스 사용자를 가장할 수 있는 것이 중요하므로 일반적인 배포에서는 BAM 포털과 웹 서비스가 동일한 컴퓨터에서 호스팅됩니다.
참고
기업에서 Kerberos를 지원하고 Active Directory가 설정되어 위임이 지원되는 경우 포털과 웹 서비스를 다른 컴퓨터에 둘 수 있습니다.
웹 서비스는 BAM 기본 가져오기에서 저장 프로시저를 호출하여 보안 검사, 메타데이터 검색 및 BAM 실시간 집계에 대한 정보 검색을 수행합니다.
참고
현재 BAM 포털은 쿼리 웹 서비스라는 문서화되지 않은 웹 서비스를 사용합니다. 이 웹 서비스는 지원되지 않으며 다음 릴리스에서 더 이상 사용되지 않을 것입니다.
Internet Explorer는 BAM Analysis Services 큐브에 직접 연결을 설정하는 OWC(Office Web Controls)를 호스팅합니다.
Excel
런타임
BAM 정의가 정의되었고 인프라가 작성되었으며 개발자가 필요한 시스템을 계측하여 표시를 활성화한 경우 시스템을 통해 데이터 흐름이 시작될 수 있습니다.
데이터 삽입
데이터가 BAM 시스템으로 흐르는 기본 방법 중 하나는 BizTalk 서비스(BTSNTSvc.exe)를 경유하는 것입니다. BizTalk 서비스는 논리적 하위 시스템을 포함할 수 있도록 설계됩니다.
다음 다이어그램에서는 이 프로세스를 보여 줍니다.
다음 단계는 위 그림에 나온 순서를 설명합니다.
하나의 하위 시스템이 BizTalk Server 엔진을 직접 호스팅합니다. 이 엔진은 오케스트레이션 및 메시징 실행을 담당합니다.
또 다른 하위 시스템은 이벤트 버스 서비스입니다. 이벤트 버스 서비스는 버퍼링된 이벤트 스트림 데이터를 BAM 기본 가져오기 데이터베이스에 기록하는 작업을 담당합니다.
런타임 부팅
BizTalk 서비스가 시작되면 각 하위 시스템은 하위 시스템이 작동하는 데 필요한 메타데이터를 로드합니다.
다음 다이어그램에서는 이 프로세스를 보여 줍니다.
다음 단계는 위 그림에 나온 순서를 설명합니다.
BizTalk 엔진은 오케스트레이션 또는 메시징이 실행 중일 경우 엔진에서 BAM으로 데이터 흐름을 조정하는 인터셉터를 호출합니다. 엔진에서 인터셉터를 호출할 경우 인터셉터는 오케스트레이션 또는 메시징 아티팩트의 실행 순서와 관련하여 엔진이 있는 위치를 분석합니다. 엔진이 현재 실행되고 있는 위치에서 검색해야 하는 데이터가 있을 경우 인터셉터는 적절한 데이터를 수집합니다. 데이터를 캡처해야 하는 위치와 캡처해야 하는 데이터를 결정하는 메타데이터가 추적 프로필에 들어 있습니다. BizTalk 서비스를 부팅하는 동안 엔진의 인터셉터는 BizTalk 관리 데이터베이스에 연결하여 실행 중인 아티팩트에 대한 적절한 추적 프로필을 끌어옵니다.
이벤트 버스 서비스의 기본 기능은 BizTalk 엔진에 의해 작성된 데이터 BLOB을 유용한 데이터 항목으로 변환하고 데이터를 BAM 기본 가져오기 데이터베이스에 삽입하는 것입니다. 메시징 인터셉터는 원시 데이터를 압축된 형태로 기록합니다. 큰 메모리 작업 집합을 방지하기 위해 이 작업이 수행됩니다. 이벤트 버스 서비스에서 메시징 데이터를 유용한 데이터 항목으로 변환하려면 먼저 원시 데이터를 해석할 수 있는 메타데이터를 로드해야 합니다. 이 메타데이터를 주석이라고 합니다. 주석 메타데이터는 추적 프로필 편집기나 명령줄 추적 프로필 배포 도구를 통해 저장되었습니다. 배포된 솔루션이 메시징에서 데이터를 검색하지 못하면 주석이 존재하지 않는 것입니다. 이벤트 버스 서비스에서 추가 주석 없이 올바르게 디코딩할 수 있도록 오케스트레이션 인터셉터는 충분한 정보를 원시 형태로 인코딩합니다.
데이터 저장
이 섹션에서는 BizTalk 서비스에서 데이터를 캡처하는 방법에 대해 설명합니다.
다음 다이어그램에서는 이 프로세스를 보여 줍니다.
다음 단계는 위 그림에 나온 순서를 설명합니다.
앞에서 설명한 것처럼 BizTalk 엔진은 오케스트레이션 및 메시징 솔루션의 런타임 실행 중에 호출되는 인터셉터를 가집니다. 추적 프로필 정보를 기준으로 인터셉터는 캡처할 데이터를 결정한 다음 이진 형식으로 BizTalk MessageBox에 송신합니다. 런타임 중에 캡처한 serialize된 BLOB 데이터를 보유하는 TrackingData라는 테이블이 있습니다. 처리 중에 엔진은 자신이 보유한 데이터를 실행 중에 메모리에 저장해야 할 경우가 있습니다. 이러한 경우를 지속성 포인트라고 하며 엔진이 지속성 포인트가 발생하는 시점을 결정합니다. 지속성 포인트가 발생하면 인터셉터에서 캡처된 데이터가 동일한 트랜잭션 내에서 플러시되어 지속됩니다. 이렇게 하면 엔진의 데이터 일관성이 유지되며 최종적으로 BAM에서 볼 수 있는 내용의 일관성이 확보됩니다. 오류가 발생하고 트랜잭션이 롤백될 경우 연결된 BAM 데이터도 롤백됩니다.
이벤트 버스 서비스는 엔진과 동일한 실행 가능 프로세스에 들어 있습니다. 이 서비스는 BTS 엔진이나 BufferedEventStream 데이터 소스에 의해 저장되는 TrackingData 테이블의 데이터를 사용합니다. 그림은 어셈블리 Microsoft.BizTalk.Bam.EventObservation을 보여 줍니다. 이 어셈블리는 BufferedEventStream에서 데이터를 검색하는 메서드를 노출하지 않습니다. 이 코드는 이벤트 버스 서비스 자체에 들어 있습니다. 데이터가 검색된 다음 기본 가져오기 데이터베이스에 저장하기 위해 준비됩니다. 대부분의 파트에서 이진 데이터는 리하이드레이션된 이후에 개체에 있던 속성이 형식이 지정된 SQL 문으로 이동하는 serialize된 .NET 개체입니다.
데이터 저장이 발생할 경우 이벤트 버스 서비스는 큰 일괄 처리를 시도합니다. 이 일괄 처리에는 BAM 관리자 배포 도구에 의해 생성된 저장 프로시저에 대한 호출이 포함되어 있습니다. 많은 데이터베이스 활동이나 기타 테이블 잠금 환경으로 인해 일괄 처리 저장이 실패할 수 있습니다. 실패가 발생할 경우 일괄 처리가 몇 차례 더 시도됩니다. 재시도에 실패할 경우 일괄 처리는 더 작은 일괄 처리로 분해되고 다시 시도됩니다. 이 재시도에도 실패할 경우 일괄 처리는 FailedTracking 테이블로 이동합니다.
사용자 지정 데이터 삽입
위 섹션에서는 다양한 방법을 사용하여 BizTalk Server 호스트에서 BAM이 데이터를 검색하는 방법에 대해 자세히 설명했습니다. 간접적으로 추적 프로필 편집기를 사용하여 프로필을 만들거나 직접적으로 이벤트 스트림 메서드를 코드 내에서 바로 사용했습니다. 그러나 BAM과 관련된 모든 데이터를 BizTalk에서 사용할 수 있는 것은 아닙니다. 따라서 작성된 사용자 지정 응용 프로그램에 사용할 수 있는 어셈블리가 있습니다.
다음 다이어그램에서는 이 프로세스를 보여 줍니다.
다음 단계는 위 그림에 나온 순서를 설명합니다.
사용자 지정 애플리케이션은 BAM 활동에 데이터를 삽입하는 BAM 메서드에 액세스하려면 Microsoft.BizTalk.Bam.EventObservation 어셈블리를 로드할 수 있어야 합니다. 노출되는 기본 클래스는 DirectEventStream 및 BufferedEventStream의 두 가지 클래스가 있습니다. 위 그림에서는 DirectEventStream 클래스가 강조되어 있습니다. 이 클래스는 기본 가져오기 데이터베이스에 직접 기록합니다. 이는 BAM 활동에 데이터를 기록하는 가장 일반적인 방법입니다.
BizTalk에서 데이터를 저장하는 방법과 비슷하게 BufferedEventStream 클래스는 이진 BLOB을 간접 데이터베이스에 기록합니다. 이 경우 BizTalk MessageBox가 중간 저장소로 사용됩니다. 여러 요소에 따라 선택하는 클래스가 달라지지만 성능이 가장 기본적인 사항입니다. BufferedEventStream 클래스는 데이터를 일괄 처리하고 더 높은 처리량을 유지합니다. 단점은 데이터가 즉시 기록되지 않는다는 것입니다.
BizTalk에서 데이터를 삽입하는 방법과 마찬가지로 이벤트 버스 서비스는 이진 데이터를 처리하여 디코딩하고 최종적으로 BAM 기본 가져오기 데이터베이스 내에 저장합니다. 이 작업은 BufferedEventStream 클래스를 통해 기록된 데이터에만 필요합니다.
분산 탐색
BAM 포털 분산 탐색 기능을 사용하면 사용자가 원격 경계에서 활동 관계를 볼 수 있습니다.