2009-08-22 2 views
4

비즈니스 프로세스 로직을 건드리지 않고 규칙을 추가 할 수 있도록 비즈니스 프로세스에서 비즈니스 규칙을 외부화하려면 어떻게해야합니까?비즈니스 프로세스와 비즈니스 규칙 분리

예를 들어 "제품 추가"및 "제품 업데이트"라는 두 가지 비즈니스 프로세스가 있는데이 두 프로세스가 공유하는 몇 가지 공통 규칙이 있으며 나중에 규칙이 계속 추가 될 수 있습니다. 특정 프로세스에 대해 사용 가능한 모든 규칙을 실행하는 비즈니스 프로세스를 한 번 작성하고, 예외가 발생하지 않으면 비즈니스 프로세스를 성공적으로 완료합니다.

규칙 엔진을 사용하지 않으려 고하므로 내 아키텍처에 너무 무거울 수 있습니다. 내가 여기 쓸 수있는 것보다

감사와 안부,
아제

+0

규칙 엔진에 어떤 문제가 있습니까? –

+1

질문은 유효하지만 -1을 입력 한 사람은 얼굴을 보여 주시고이 질문에 대한 의견을 적어주십시오. 나는 유효한 질문에 +1을 준다. –

+0

내 응용 프로그램 도메인에는 컨텍스트 등에 따라 여러 매개 변수가있는 매우 복잡한 규칙이 필요하지 않습니다.그래서 나는 규칙 엔진이 아키텍처에서 부풀어 오를 것이라고 느낍니다. – Ajay

답변

1

이 질문에 대한 대답은 더 복잡하다. 이것은 데이터 관계, 보안, 정책 교리 및 비즈니스/산업의 행정 제약에 대한 과학에 적용됩니다.

"비즈니스 규칙"및 "비즈니스 정책"보다 모호하지 않은 부분을 의미하는 경우 귀하의 질문을 오해 할 수 있습니다.

0

질문은 상당히 광범위하므로 일반 패턴의 관점에서 대답하겠습니다.

많은 경우 내가 한 것은 프로세스의 적절한 단계에서 많은 "게이트 키퍼"활동을 삽입하도록 프로세스를 정의하는 것입니다. 이 게이트 키퍼 각각은 비즈니스 규칙의 특정 하위 집합을 시행 할 책임이 있습니다. 예를 들어, 그러한 활동 중 하나가 데이터 품질을 강화할 수 있습니다. 또 다른 회사는 비즈니스 규칙에 따라 라우팅 결정을 내릴 수 있습니다. 또 다른 가격. 등등.

실제 규칙 자체는 워크 플로 외부에 있으며 자체 규칙과 독립적으로 수정할 수 있습니다. 트릭은 규칙 평가의 "프로세스 결과"를 제한하여 예측 가능한 (테스트 가능한) 프로세스를 계속 유지할 수 있도록하는 것입니다.

1

많은 기술을 사용하여 프로세스의 흐름과 규칙을 분리 할 수 ​​있습니다. 일부 abstarction 수준에서는 비즈니스 프로세스의 다양한 지점에서 "방법"을 호출합니다. 그런 다음 문제는 비즈니스 프로세스 자체를 변경하지 않고 해당 방법을 수정할 수있는 메커니즘 중 하나가됩니다.

자체 라이브러리 (dll, jar 또는 기타)에이 메소드를 패키지하고 해당 jar를 새 버전으로 바꿀 수 있습니다. 라이브러리를 변경하고 비즈니스 규칙을 변경하십시오.

데이터베이스에서 얻은 구성 가능한 매개 변수로이 방법의 논리를 표현할 수 있습니다. 데이터베이스를 변경하고 비즈니스 규칙을 변경하십시오.

복잡도가 높아지면 자신 만의 규칙 엔진을 구현 한 것으로 나타납니다.

어떤 시점에서이 휠을 다시 만들지 않고 기존 규칙 엔진을 사용하는 것이 더 효율적입니다.

자세한 내용은 귀하가하고있는 일에 대해 더 자세히 알려주십시오.

관련 문제