2013-04-03 2 views
2

우리는 거대한 웹 응용 프로그램을 가지고 있으며 새로운 기능을 추가하고 있습니다. 웹 응용 프로그램이므로 Struts2, Spring 프레임 워크를 사용하고 있습니다.웹 응용 프로그램의 Jboss Drools

내가 많이 봤 거든, 웹 응용 프로그램에서 Jboss Drools 사용법에 대한 자습서를 찾을 수 없습니다.

웹 응용 프로그램/프로젝트를 기반으로 한 Drools Tutotial 작업을 보여줄 수 있습니까?

사용자가 선택한 옵션에 따라 JSP에서 몇 가지 옵션을 선택하면 Drools 엔진을 실행할 수 있도록 Drools를 구성 할 수 있습니까? 해고함으로써 뷰를 동적으로 변경할 수 있어야합니다.

카트 [보기 페이지]에 3 개의 제품이 있다고 가정 해 봅니다. 사용자가 A 제품을 선택하면 그에게 더 많은 옵션을 표시해야합니다. 사용자가 A와 B를 모두 선택하고 세 번째 제품 선택을 해제하면 ... [Drools에서 제어보기]

+0

규칙 엔진을 필요로하는 복잡한 규칙이없는 경우, 직접 작성하는 것은 위험합니다. –

+0

물론. 나는 더 좋은 의견을 얻으려고 노력하는 것에 대답 할 것이다;) –

답변

5

위의 내 의견을 확장하려고 시도 : 일부 동료 Struts2/Spring.drl 톤의 파일 (133 개 파일, 각각 500 ~ 3000 행)을 기반으로 한 거대한 추악한 웹 응용 프로그램을 개발하고 배포하는 데 있습니다.

나는 이제는 표현 논리, 워크 플로우 관리 등 Jboss Drools을 사용하지 않는 방법을 알고 있다고 말할 수 있습니다.

Jboss Drools은 쓰레기가 아닙니다. Jboss Drools은 훌륭한 도구입니다 ... 설계된 용도로 사용되는 경우 : 애플리케이션의 로직 규칙을 지원합니다.

문제는 사람들이 기술을 차갑게 보거나 높은 발음의 이름을 사용하여 스택에 넣어야하는 기술을 선택해야하는 경우가 많습니다. 또는 적어도 수행) 스카우트.

그것은 배울 수 (그래서) 빠르고 (확실히) 빠른되지는 통합 아니다

Drools,하지 (즉) 쉬운 mantain하고, 그것이 잘못된 목적을 위해 사용되는 경우, 그것은 에 대한 작업의주/달을 삼킬 것 아마 예상보다 다른 결과를 보일 것입니다. 당신이이 질문에 무엇을 요구 예와 모두 찾을 수있는 공식 Drools Expert 문서에서

, (다른 사람 Drools가, 그들을 밖으로 검사) : http://docs.jboss.org/drools/release/5.2.0.Final/drools-expert-docs/html/ch01.html

1.2.2. 규칙 엔진은 언제 사용해야합니까?

가장 짧은 대답은 "만족스러운 전통적인 프로그래밍 방식으로 문제를 해결할 수 없을 때"입니다. 짧은 답변을 감안할 때 좀 더 설명이 필요합니다. 더 "전통적인"방법이없는 이유는 아마도 다음 중 하나입니다

  • 문제는 기존의 코드를 너무 바이올린입니다.

    문제는 복잡하지 않을 수 있지만 문제를 해결할 수있는 방법은 없습니다.

  • 문제는 명백한 알고리즘 솔루션을 벗어납니다.

    해결해야 할 복잡한 문제이며 명백한 전통적인 해결책이 없거나 기본적으로 문제가 완전히 이해되지 않았습니다.

  • 로직 변경은 종종

    논리 자체도 간단 할 수 있지만 규칙은 자주 변경합니다. 많은 조직에서 소프트웨어 릴리즈는 사이에 거의 없으며 플러그 형 규칙이 필요한 "민첩성"을 제공하고 이 합리적으로 안전한 것으로 예상됩니다.

  • 도메인 전문가 (또는 비즈니스 분석가)는 쉽게 사용할 수 있지만 기술적이지는 않습니다.

    도메인 전문가는 종종 비즈니스 규칙 및 프로세스에 대한 풍부한 지식을 보유하고 있습니다. 그들은 일반적으로 기술이 없지만 매우 논리적 일 수 있습니다. 규칙을 통해 논리를 자신의 관점에서 표현할 수 있습니다. 물론 그들은 여전히 ​​비판적으로 생각하고 논리적 사고가 가능해야합니다. 기술이 아닌 위치에있는 많은 사람들은 공식 논리에서 훈련을받지 않으므로 규칙으로 비즈니스 지식을 체계화하고 있기 때문에 비즈니스 규칙 및 프로세스가 현재 이해되는 방식으로 구멍을 노출하는 경우가 많습니다 ( ).

마지막 문장

는 세 달러짜리 지폐로 가짜입니다. 당신은 프로젝트 관리자 나 장관은 "그들은 단순히 규칙이 아닌 자바 파일이야"때문에 ... 개발자를 포함하지 않고 규칙을 변경 희망 유지할 것이라고 생각하면

는 : D를

규칙 분석 꽤 좋은 필요 기술, 프로그래밍 기술 외에도 imho "Java"가 훨씬 쉽습니다. Nontechnicals (일반적으로 PM이 의미하는대로) 일반적으로 수정하거나 규칙을 이해하는 데 필요한 지식을 습득 할 수 없습니다.

대신 굵은 글씨는 실제 값입니다.

모기지 (예 : 이자율, 계수 등)가 매월 변경되는 모기지를 처리하는 응용 프로그램을 개발하는 경우 Drools을 사용하는 것이 좋습니다. 응용 프로그램의 논리를 변경할 필요가 없으며 단순히 수식을 변경하면 마법이 발생합니다.

그러나 Drools을 사용하는 경우 웹 응용 프로그램이 더 이상 배포되지 않도록하기 때문에 (릴리스 관리 비용을 줄이기 위해 읽음) 두 번 생각해야합니다.

결정을 내리기 전에 적어도 2 주간의 스카우팅을 제안합니다./

을 위 링크 같은 문서에서 :

1.2.3이 자동으로 손 에 날려 버릴 수 있습니다 물건의 종류이다.주전 Drools가 메일 링리스트를 인용하려면 규칙 엔진

를 사용하지 않는 경우 :


그것은 나에게 보인다 사람들이 규칙 엔진임을 잊지 규칙 엔진 작업의 흥분 단지 하나의 복잡한 응용 프로그램 또는 솔루션. 규칙 엔진은 실제로 워크 플로 또는 프로세스 실행을 처리하거나 워크 플로 엔진이나 규칙을 수행하도록 설계된 프로세스 관리 도구 인 을 의미하지 않습니다. 작업에 에 맞는 도구를 사용하십시오. 물론 펜치 한 쌍을 핀치에서 망치질 도구로 사용할 수는 있지만 이는을 위해 설계된 것이 아닙니다. --Dave Hamu

룰 엔진 (규칙 저장 및 관리 데이터로 갱신 될 수 있다는 의미에서 동적 인) 동적 같이

, 는 종종 이 문제에 대한 솔루션에보고되고 소프트웨어 배포. ( 소프트웨어 부서를 막기 위해 IT 부서가 존재하는 것 같습니다. 규칙을 사용하려는 경우 을 작성할 수있는 경우 규칙 엔진이 가장 잘 작동한다는 점에 유의하십시오. 규칙. 데이터 기반 디자인 (조회 테이블) 또는 스크립트 처리 엔진 스크립트가 데이터베이스에서 관리되고 즉시 을 업데이트 할 수 있다고 생각할 수도 있습니다. 마지막 생각으로

, 당신은 설명 된 요구 사항은 하나의 객체

2) 사용자가 여러 선택 나에게 많은

1) 사용자가 선택 것을 진화 할 수 꽤 정적 무언가를 보인다 객체

이것은 전혀 다른 것이 아니며, 2, 3 또는사이에서 다른 방식으로 다중 선택을 처리하는 응용 프로그램이나 웹 사이트를 본 적이 없습니다.요소. ==1이거나 >1입니다.

진화한다면, 코드도 변경해야합니다. 오늘 >1에 대해 하나의 작업을 수행하면 내일 >1 && <=5>5에 대해 서로 다른 두 가지 작업을 수행합니다. 그러면 새 작업도 코드해야합니다.

이것은 Drools가 의미하는 것이 아니라 In In My Humble, Humble Opinion입니다.

+0

안녕하세요, 저의 저어지 휴식 웹 서비스에 졸음을 통합하고 싶습니다. 휴식시, 모든 조건이 생성되고 일치 된 규칙을 얻기 위해 drools 엔진에 삽입됩니다. 저지 휴식 웹 서비스와 통합하는 방법. 도와주세요. 감사합니다 – Kumar

+1

오, 이런, 당신은 도움이 필요할 것입니다. Drools의 전문가 (나 아닌)가 당신을 도울 수 있도록 새로운 질문을하십시오. 하지만 당신의 요구는 이상합니다. REST는 나에게 Drools와 비교하여 우주 반대편에 있습니다.[REST에서는 모든 것이 간단하고 URL은 읽을 수 있으며 다른 HTTP 동사와 동일한 URL을 호출하면 자동으로 수행 할 작업을 지시합니다.] (http://stackoverflow.com/questions/2001773/understanding-rest-verbs-error- 코드 및 인증). 프론트에 REST를 사용하고 후드 아래의 Drools가 이상하게 보입니다 (귀하의 비즈니스를 알지 못함) –

+0

의견을 보내 주셔서 감사합니다. 이미 새로운 질문을 열었습니다. http://stackoverflow.com/questions/19151071/how-to-integrate-drools-in-jersey-rest-web-service?noredirect=1#comment28327654_19151071 다시 한번 고맙습니다. 당신의 친절. – Kumar

관련 문제