Aaron H. Kim Fearless Integration Maniac

BizTalk Q&A : 룰 엔진이 뭐죠?

2009-01-05
Aaron Kim

이 글은 기획 강의 BizTalk Q&A 200의 일부입니다.

흔히 줄여 BRE(Business Rule Engline)로 부릅니다. 비즈니스 룰 세트를 효과적으로 정의할 수 있게 도와주는 도구로 BizTalk Server 제품에서 기본(out of box) 제공합니다. 이 점 때문에 BizTalk 에서만 사용 가능한 게 아닌가 오해를 사기도 하지만 오케스트레이션 없이 일반 닷넷 코드에서도 얼마든지 룰 세트 호출이 가능합니다. 문제는 룰 엔진을 사용을 위해 BizTalk 라이센스가 필요하다는 점이지요.

개발자는 Business Rule Composer 란 도구를 통해 빠르고, 쉽게 비즈니스 룰을 정의할 수 있습니다. 이렇게 정의한 룰을 오케스트레이션이나 닷넷 코드에서 실시간으로 호출하고, 룰 엔진이 이를 실행한 후 값을 돌려줍니다.

그렇지만 실제 BizTalk 프로젝트에서 BRE 를 굳이 사용하는 경우는 드뭅니다. 하지만 사용하게 되면 비즈니스 룰과 워크 플로우를 손쉽게 분리할 수 있어 여러모로 좋습니다.

오케스트레이션 내에 비즈니스 룰 처리 로직을 구현해 놓은 경우 비즈니스 룰이 바뀌었을 때(무척 자주 바뀌는 비즈니스 룰의 경우 필히 BRE 사용을 권장합니다) 골치 아픕니다. Visual Studio 를 열어 오케스트레이션을 불러온 후, 필요한 셰이프의 코드를 수정하고, 빌드 후 수정된 어셈블리를 재배포해야 합니다. 오케스트레이션을 호스트하는 BizTalk application 을 중단하고, 재시작하는 과정도 필요합니다.

반대로 비즈니스 룰을 BRE 로 구현한 경우, 아무것도 재컴파일 할 필요없이 Business Rule composer 에서 필요 룰 세트만 수정후 배포하면 즉시 반영됩니다. 호스트 인스턴스 재시작도 필요 없습니다. 오케스트레이션의 경우 개발자가 아니면 변경하기 어렵지만 Business Rule 의 경우 BA(Business Analyst)가 직접 정정할 수 있을만큼 읽기 쉽다는 장점도 있습니다(현실에선 이놈이나 저놈이나 다 개발자가 합니다).


Similar Posts

Comments