비즈니스 규칙 프레임워크 아키텍처
다음 그림은 비즈니스 규칙 프레임워크의 구성 요소 아키텍처를 보여 줍니다.
Microsoft 비즈니스 규칙 프레임워크 아키텍처
다음 단락에서 프레임워크의 일부 구성 요소에 대해 설명합니다.
정책 클래스
Policy 개체는 비즈니스 정책의 단일 instance 규칙 기반 애플리케이션에서 사용되는 인터페이스를 제공합니다. 이 개체는 응용 프로그램 개발자가 규칙 저장소의 위치를 고려하지 않아도 되도록 추상화를 제공하여 규칙 저장소에서 규칙 집합을 추출하고 기본 규칙 엔진의 인스턴스를 인스턴스화하며 장기 팩트가 엔진에 어설션되도록 합니다. 대부분의 시나리오에서 규칙 기반 애플리케이션은 Policy 개체의 동시 인스턴스를 사용합니다. 이러한 동시 인스턴스는 같은 정책, 같은 정책의 다른 버전 또는 다른 정책의 다른 버전을 나타낼 수 있습니다.
RuleEngine 클래스
RuleEngine 개체는 비즈니스 정책의 실행 엔진 역할을 합니다. 이 개체는 구현에 세 개의 플러그 인 구성 요소(변환기, 유추 엔진 및 추적 인터셉터)를 사용합니다. RuleEngine 개체는 비즈니스 정책을 나타내는 RuleSet 개체를 입력으로 사용하고 규칙 집합에 대해 구성된 변환기, 유추 엔진 및 추적 인터셉터를 사용하여 규칙 집합에 정의된 비즈니스 정책을 구현합니다.
팩트 검색기
팩트 검색기는 비즈니스 정책에서 사용할 장기 팩트를 수집하는 선택적 사용자 정의 플러그 인 구성 요소입니다. 자세한 내용은 Fact Retriever를 만드는 방법을 참조하세요.
실행하기 전에 정책 개체 instance RuleEngine instance 팩트 검색자에게 제공하여 규칙 엔진의 작업 메모리에 있는 팩트 집합을 업데이트할 수 있는 기회를 제공합니다. 자세한 내용은 단기 팩트 및 Long-Term 팩트를 참조하세요.
Rule Engine Update Service
규칙 엔진 업데이트 서비스는 분산 환경에 동적 비즈니스 정책 업데이트를 제공합니다. Microsoft Windows NT 서비스 응용 프로그램 자동 시작은 비즈니스 정책이 변경되면 발생하는 정책 배포 및 배포 취소 이벤트를 등록합니다.
일반적인 엔터프라이즈 시나리오에서 비즈니스 정책은 업데이트, 테스트 및 버전 지정 이후 배포됩니다. 배포는 안전한 영구 규칙 저장소에 업데이트된 정책을 추가하고 상황에 따라 저장소에서 논리를 실행하여 모든 대상 파티에 업데이트된 정책에 대한 정보를 게시합니다. 정책에 대한 정보가 게시되며 정책 자체는 게시되지 않습니다.
규칙 기반 응용 프로그램을 호스팅하는 서버에서 실행되는 규칙 엔진 업데이트 서비스는 정책 업데이트 알림을 받고 해당 정보를 다음에 사용할 수 있게 캐시합니다. 정책 업데이트에 pub/sub 모델을 사용하면 서비스 작동 중단이나 장애 없이 거의 실시간으로 비즈니스 정책을 변경할 수 있습니다.
정책/어휘 제작 도구
Microsoft BizTalk Server 비즈니스 규칙 작성기에서는 최종 사용자와 개발자 모두에게 정책 및 어휘 작성 기능을 제공합니다.
규칙 저장소
규칙 저장소는 비즈니스 정책 및 어휘에 대한 리포지토리입니다. 리포지토리는 간단한 파일이거나 Microsoft SQL Server와 같은 안전하고 확장 가능하고 영구적이며 안정적인 데이터베이스일 수 있습니다. SQL Server는 프레임워크에 대한 기본 규칙 저장소로 사용됩니다.
캐싱
비즈니스 규칙 엔진 프레임워크는 RuleEngine 인스턴스에 대한 캐싱 메커니즘을 제공합니다. 각 RuleEngine instance 특정 정책 버전의 메모리 내 표현을 포함합니다.
다음 단계에서는 API에 대한 호출 또는 호출 규칙 셰이프 실행을 사용하여 새 정책 instance 인스턴스화되는 프로세스를 설명합니다.
Policy 개체는 규칙 엔진 캐시에서 RuleEngine instance 요청합니다.
정책 버전에 대한 RuleEngine instance 캐시에 있으면 RuleEngine instance Policy 개체로 반환됩니다. RuleEngine instance 사용할 수 없는 경우 캐시는 새 instance 만듭니다. RuleEngine instance 인스턴스화되면 정책 버전에 대해 구성된 경우 instance 새 팩트 검색기를 만듭니다.
Policy 개체에서 Execute 메서드가 호출되면 다음 단계가 수행됩니다.
팩트 검색기가 있는 경우 Policy 개체는 팩트 검색기 instance UpdateFacts메서드를 호출합니다. 팩트 리트리버의 구현 메서드는 RuleEngine의 작업 메모리에 장기 팩트를 어설션할 수 있습니다.
Policy 개체는 Execute 호출에 전달된 Array에 포함된 단기 팩트를 어설션합니다.
Policy 개체는 RuleEngine에서 Execute를 호출합니다.
RuleEngine은 실행을 완료하고 Control을 Policy개체로 반환합니다.
Policy개체는 RuleEngine에서 단기 팩트를 철회합니다. 팩트 검색기를 통해 어설션되는 장기 팩트는 규칙 엔진의 작업 메모리에 유지됩니다.
Policy 개체에서 Dispose 메서드를 호출하면 RuleEngine instance 규칙 엔진 캐시로 다시 해제됩니다.
로드에 규칙 엔진 인스턴스가 필요하고 각 규칙 엔진 인스턴스에 고유한 팩트 검색기 인스턴스가 있는 경우 규칙 엔진 캐시에 지정한 정책 버전에 대한 여러 개의 규칙 엔진 인스턴스가 포함됩니다.